Joined: 25 Dec 2008
Hex editing DC ScummVM
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...)