1
ROM Hacking Discussion / Re: Hack ideas: for those without the skill but with all the ideas.
« on: July 16, 2016, 04:03:49 pm »
One idea I've had for some years now: we hackers at all levels would definitely like to have a modular meta-utility to be used for producing game-specific hacking utilities for numerous different games.
The reason this comes to mind now is that while I've lately been working with my hex editors on mapping out Wisdom Tree's Spiritual Warfare (Version 6.1) for a future project, and I can't help noticing some remarkable similarities between some of its coding and that of Idol Shisen Mahjong. Two more dissimilar games for the NES than these would be difficult to imagine: Spiritual Warfare runs on Mapper 11 and is a Christianized Legend of Zelda-style adventure game; Idol Shisen Mahjong runs on Mapper 3 and is a puzzle game in which the prizes for which one plays are naughty pictures. Yet the name tables for various areas on Spiritual Warfare's game map work with a tiling-and-palette assignment system very much like the tiling-and-palette assignment system for the name tables on Idol Shisen Mahjong's naughty pictures.
If one were to design a map editor for Spiritual Warfare, it seems to me the editor wouldn't be that difficult to adapt into a picture editor for Idol Shisen Mahjong as well... provided, of course, that the hacker who programmed the first utility were to be programming the second as well; but how likely is that? The game-specific utilities various people churn out on here are programmed in different languages on different platforms using different methods. Even if these other hackers provide their source code along with their programs, one has to be an expert programmer to adapt any such editor for use on a different game.
If, on the other hand, there were some meta-utility with standardized modules, some program into which one simply plugged in hexadecimal addresses for the table one wished to edit and the tiles or blocks of tiles it uses (provided either from plugging in further hexadecimal addresses pointing to the relevant data, or from a chart the hacker builds and loads in separately) along with information about the palettes and compression scheme(s) it uses (if any), one could make a multitude of new game-specific editors for a great many different kinds of games from the same template. It's my understanding there's a French guy working on something like this already, though his NEStorLab is still in the early stages of its development; and of course, it'll need to be translated for us English-speakers too. From what I've seen of the beta he provides for download so far, it also seems to work only with graphics tables and ASM codes at the moment.
We've already got some multi-game utilities for games from specific companies such as Capcom and Konami, but what if we had a utility more comprehensive than that? At the very least, every NES game that emulators have been able to operate must be using some known common formats for its tables and compression schemes. The 16-bit SNES and Genesis systems presumably worked from a limited set of common formats as well. Seems to me some genius programmer who builds the wonderful utilities we already have on here ought to be able to program such a meta-utility for all the games of at least one of these old consoles...
The reason this comes to mind now is that while I've lately been working with my hex editors on mapping out Wisdom Tree's Spiritual Warfare (Version 6.1) for a future project, and I can't help noticing some remarkable similarities between some of its coding and that of Idol Shisen Mahjong. Two more dissimilar games for the NES than these would be difficult to imagine: Spiritual Warfare runs on Mapper 11 and is a Christianized Legend of Zelda-style adventure game; Idol Shisen Mahjong runs on Mapper 3 and is a puzzle game in which the prizes for which one plays are naughty pictures. Yet the name tables for various areas on Spiritual Warfare's game map work with a tiling-and-palette assignment system very much like the tiling-and-palette assignment system for the name tables on Idol Shisen Mahjong's naughty pictures.
If one were to design a map editor for Spiritual Warfare, it seems to me the editor wouldn't be that difficult to adapt into a picture editor for Idol Shisen Mahjong as well... provided, of course, that the hacker who programmed the first utility were to be programming the second as well; but how likely is that? The game-specific utilities various people churn out on here are programmed in different languages on different platforms using different methods. Even if these other hackers provide their source code along with their programs, one has to be an expert programmer to adapt any such editor for use on a different game.
If, on the other hand, there were some meta-utility with standardized modules, some program into which one simply plugged in hexadecimal addresses for the table one wished to edit and the tiles or blocks of tiles it uses (provided either from plugging in further hexadecimal addresses pointing to the relevant data, or from a chart the hacker builds and loads in separately) along with information about the palettes and compression scheme(s) it uses (if any), one could make a multitude of new game-specific editors for a great many different kinds of games from the same template. It's my understanding there's a French guy working on something like this already, though his NEStorLab is still in the early stages of its development; and of course, it'll need to be translated for us English-speakers too. From what I've seen of the beta he provides for download so far, it also seems to work only with graphics tables and ASM codes at the moment.
We've already got some multi-game utilities for games from specific companies such as Capcom and Konami, but what if we had a utility more comprehensive than that? At the very least, every NES game that emulators have been able to operate must be using some known common formats for its tables and compression schemes. The 16-bit SNES and Genesis systems presumably worked from a limited set of common formats as well. Seems to me some genius programmer who builds the wonderful utilities we already have on here ought to be able to program such a meta-utility for all the games of at least one of these old consoles...