I released a translation patch just now
and during the hacking process I ran into a hueg pointer array. More or less copypasta from the jul thread:
The array is $3EA0 bytes big ($10 bytes per entry so 1002 entries in total) and it's located at 0x30BFE. A similar array is present in other games in the Sutte Hakkun series (the several Satellaview versions). It is as follows: pp pp pp pp dsize csize cflag uu uu uu uu uu uu
00 4C CC 00 00 40 C9 12 01 00 FF FF FF FF FF FF
pp = pointer to data
dsize = decompressed size
csize = compressed size
cflag = is the data compressed?
uu = unused
(dsize and csize are the same if cflag is 0)
I checked out every pointer and the data they point to. Frankly, the ROM hacking implications here are absolutely amazing. You might already realise that this massive array is essentially a file lookup table and it encompasses the whole (rest of the) ROM; everything from 0x34A9E to 0x300000 (pretty much everything except the game code, some smaller stuff and the player graphics). A Table Of Contents, if you will.
After extracting the compressed and uncompressed files and having a look at them, I was even more impressed – everything is super neat. Things are in a very logical order, even the level format can be understood by a baby, tilemaps are clean, graphics pages value readability over minimising tile redundancy... and everything is its own file. Every stage, every physmap, every tilemap, every palette, every graphics page. Additionally, the ROM is huge so there's lots of free space at the end of the ROM anyway.
Alas, although I know Python, I don't think I know if well enough to author a real editor. I did make a level visualiser (binary to TMX) to help understand what's going on:
Is anyone interested in hacking the game(s)? I've never seen anything like this (a single pointer array that lists 99% of the game content in a neat manner) in a ROM before.