FrankenGraphics wrote:
Quote:
Map data tends to look different from game to game. It could theoretically be stored as raw nametable-compliant data, but this is generally speaking wasteful on what little ROM space there is. It might instead be compressed, metatiled, drawn with the help of algorithms, stampcloned from structures varying in size (at least these are the most common methods), or a combination of said methods.
Thanks a lot for all that info! Guess I will need to do more homework and investigate what method is the game using
tokumaru wrote:
Quote:
Typically you start by putting breakpoints on name table writes, so you can see where the game is copying the data from. This will probably be a buffer in RAM. The next step is to use breakpoints to find out where the data in that buffer is coming from. Just keep following the data like that, and you'll eventually find where in the ROM it's coming from.
Yes, that's exactly what I have doing! However, something I can't quite understand is happening: after following the data from breakpoint to breakpoint I reached this address:
07:C149:B1 57 LDA ($57),Y @ $87E8 = #$91
07:C14B:9D F0 05 STA $05F0,X @ $05F1 = #$15
91 is the value that is finally displayed in the nametable and it seems to be loaded from the $87E8 address, so the next logical step would be to create a writing breaking point for $87E8, to find out where that address it getting that data from, right? But the thing is, after creating the breaking point, nothing happened! It seems like nothing is ever written in $87E8, which is weird since when I create a
reading breaking point for $87E8, at the moment when is read the value is indeed 91, but right before is 00, so obviously
something is writting data into it, right? So then, why the writing breaking point doesn't detect this change?