11 March 2016 - Forum Rules

Main Menu

Modifying existing editors

Started by Jigglysaint, March 09, 2012, 02:05:50 PM

Previous topic - Next topic


I just quickly wanted to know, if it was at all possible, to manually hack an existing level editor to tweak it to work with a rom with major data shifts.  For example I want one specific editor to change the location it reads the chr rom from, and possibly also myself to switch between existing level data offsets, and new ones(manually).  I'm sure it would be possible if I had source code and the ability to change things from there, but I wonder if it's even possible to do it manually though hex editing?


That heavily depends on the editor you want to modify (and especially on how it is programmed). It has to store the offsets somewhere, but you have no guarantee that they're stored in the same place, or that they're constants. If you find them, you can of course just change them with a hex editor. Either way you will probably have to resort to x86 assembler to find out how the software calculates the offsets.


If indeed it is just a different source address or some truly basic additions (one field changed to 24 bits from 16 or something) the technique to hacking programs (assuming you are not dealing with an interpreted language- many rom hacking tools of the game/franchise specific variety seem to be written in VB or some form of .net meaning there are nice disassembler/decompiler options far beyond that which you might get for C++) is not that different to those techniques used to hack the roms they operate upon (set up a debugger, find the instruction that looks at the location in the file and work backwards). The only thing I would be wary of those is if for some reason it uses some pointer arithmetic somewhere as editing a source/start address could have unexpected fallout.


I'm not sure what it was coded in, but certainly not VB or .net.  I guess I just sort of figured that I could load the whole thing up in a hex editor and find out that way.


I don't know exactly what you are doing, but as a possible alternative, you can use the editor on a vanilla or compatible ROM, and use some sort of "build process" that extracts your edited data and inserts it into the hack ROM and does anything else that needs to be done (assembling, graphics patches, etc.). This is my preferred technique anyways, because you don't need to worry about corrupting the ROM or overwriting something because you get a whole new ROM with each build. In the past I've used batch files with a couple of real simple command-line utilities, but these days I prefer my still-not-quite-finished hacking IDE.

If you want to hack the editor, you could try decompiling it, but that seems like more trouble than it's worth.


Or you could just hunt down the author of the editor and ask for help.