Hex editing DC ScummVM

Subforum for discussion and help with ScummVM's Dreamcast port

Moderator: ScummVM Team

Post Reply
User avatar
Stryfe
Posts: 65
Joined: Thu Dec 25, 2008 8:27 pm

Hex editing DC ScummVM

Post by Stryfe » Tue Oct 26, 2010 4:08 pm

Hi all.

I've been attempting to hex edit ScummVM to only recognize certain games.

The reason? = Disc drive thrashing.

While I'd like to put multiple games on one disc, the more you put on one, the harder the disc searching beats on the drive.

It's actually worse for some games with lots of essential files (quantity), and not related to how much space they actual take up (size). It also seems to be unrelated to the age of the games, and some newer (more advanced engine) games are easier on the DC disc drive search.

SO, I went about opening the latest stable build files in a hex editor.

It was fairly simple to add 'single' games from different plugins (*.PLG) onto one disc (ie - 1 SCUMM engine game, 1 AGOS engine game, etc.) by hex editing the 'SCUMMVM.BIN' 'PLG' entry from the line starting at offset '0004C4060' to an arbitrary new extension like 'LUC'.

This allowed me to add games from differing engines onto one disc by modifying the extension of the PLG in the main binary, and then renaming the extension of the actual plugin.

I would then by use an app like Dream Inducer, or Selfboot Inducer (the same?), to burn two copies of the SCUMMVM.BIN to a disc. Example: One hex edited to work with plugins renamed to '*.LUC', and one hex edited to work with plugins renamed to '*.AGO'.

This greatly reduced search time on the disc, because the main binary/executable could only find the one game engine's data files.

Now I seem to be getting stuck on modifying the plugins themselves. I want to be able to put multiple games from the same engine on the same disc, but only have one game from the supported list recognized by using a hex editing method similar to what I did above.

Does anyone have any idea what part of the plugins I need to change to eliminate searching for certain files? If I were to use the 'required game data files' page from the wiki as a reference, could I then text search the plugin for those specific files? (Which I would then edit out...)

User avatar
DCDayDreamer
Posts: 90
Joined: Sat Nov 05, 2005 5:13 pm
Location: Dream Land
Contact:

Post by DCDayDreamer » Tue Oct 26, 2010 8:24 pm

ScummVM.ini support was added to the Dreamcast port, if the ini file is present on the CD the autodetection is bypassed, any game entries on the ini will display in the ScummVM menu. An easier way to achieve what you are trying to do is follow this example:

1 descramble SCUMMVM.BIN
2 add TINSEL.PLG
3 add ScummVM.ini
4 make entry for Discworld in ScummVM.ini
5 duplicate SCUMMVM.BIN (rename if necessary)
6 hex edit duplicate SCUMMVM.BIN ini entry to Scumm01.ini
7 add whatever.PLG
8 add Scumm01.ini
9 make entry in Scumm01.ini for whatever game/s compatible with whatever.PLG
10 repeat 5 - 9 as necessary
11 create Dream Inducer menu entries for all SCUMMVM.BINs
Stryfe wrote:I would then by use an app like Dream Inducer, or Selfboot Inducer (the same?)
Dream Inducer is a Dreamcast multi-binary loading menu system created by DCGrendel, Selfboot Inducer is a Windows application created by burnerO making it easy to use Dream Inducer. The later versions of Selfboot Inducer were updated by SiZiOUS, he labelled them as 'unofficial builds' for some reason or another (out of respect for burnerO I guess).

Good grief!, I need to get a life. :roll:

Post Reply