Some clarification: * When I talk about "address space", I mostly refer to the memory map (gbdev.io/pandocs/Memory_Map.html ) where the CPU addresses hardware by a continuous address space. ROM data is always located between 0x0000 and 0x3FFF and 0x4000 and 0x7FFF respectively. * Game Genie codes do not change the ROM, but they intercept a request to a certain ROM address and return a replacement value. Which makes it a non-invasive modification method. That's also why the codes (under cheat) did not persist after saving the ROM. * From my understanding, patches store the differences between the original ROM and a hack of the same ROM. So, it will alter an original ROM without containing the game itself, which makes it somewhat legal, depending on whether it contains copyrighted material. * The hex values in the ROM store different things like OP-codes for the CPU, attributes for the OP-codes, tables, pointers, graphical data (e.g. the tile data), music,... we only modified entries in a table and two unknown values. * Instead of overwriting existing values, I could have inserted more ROM values in-between. The problem there would be that existing pointers to ROM addresses would need to be adjusted accordingly. Which I think requires a shiftable dis-assembly. That's definitely above my skill level. * At one point I say something along the lines of "This is the first time I'm doing something like this." - this is true in the sense of ROM-Hacking and creating a solution that changes the game. I have done some reverse-engineering before (2-player mode) and I applied changes to the ROM before, using existing game genie codes. Also, I am interested in how the Game Boy works. I read a lot and watched numerous videos on these topics, but have never done something hands-on on the ROM. I mix up a lot of things, let me know, what I've gotten wrong. So, I can clarify these things here.
Пікірлер: 5