Here is what I understand of it. As well as some clips of the document by Euclid.
Quote
Euclid's MMX3 Decomp document:
0x37732 to 0x37B83 - gfx pointers, there's 221 of them (followed by lotsa FFs), 5 bytes,
- first 3 bytes are 3 byte pointers
- the next 2 values is the length
So here are the values you would find in the rom at that address0x37732 to 0x37B83 - gfx pointers, there's 221 of them (followed by lotsa FFs), 5 bytes,
- first 3 bytes are 3 byte pointers
- the next 2 values is the length
00 80 1a c0 03
0c 83 1a 00 26
3e 88 1a a0 07
f6 8d 1a e0 07
82 93 1a 00 04
So when they are rearranged to become physical snes rom addresses they should be?
1A8000 (03C0 Bytes)
1A830C (2600 Bytes)
1A883E (07A0 Bytes)
1A8DF6 (07E0 Bytes)
1A9382 (0400 Bytes)
There sure isn't any gfx data at 1A8000, it is the Tile arrangement data for Doppler stage #1.
The thing that really confused me is he points to the following location and length for his sample C decompression routine that works great.
0xE84B3
Length of data it reads is 0xA00
0
According to this data wouldn't the pointer look like
B3 84 0E 00 0A
That surely does not show up anywhere in the rom or pointer table.
What I do know is the compressed graphics are stored around 0xD0000-0x110000 since I can easily corrupt them and see them get messed up...
I did read somewhere that pointers can be tricky and do not all follow the same rules. Obviously this one being three bytes long is different than the standard documents suggest.
I am working on learning to use the debugger and tracer to maybe understand it on my own.
Anybody got any ideas?
I'd like to put out a program to uncrompress all the compressed gfx in the rom so one can edit them and reinsert them.