Even if animations are split, it seems like Crono have 255 animation slots for use, some are unused and some are glitched.
So by purely based on sprite assembly, you're saying that there isn't any problem in using a sheet whose size is greater than 64k for Crono as long as all assembly data is correct? If that's the case (I'm really hoping it is), re-using tiles is a secondary priority to me while making it easy to replace is a higher priority even at expense of ROM space. Also, if his size is only based on his assembly, why the 5th byte of his header is for sprite assembly size?
Yeah, what I meant by new GFX pack is to simply point Crono's GFX pack to another one (custom and bigger) in the expanded ROM space.
That hard-coded bank isn't precisely the GFX pack (and thus my question of whether 64k is the size limit or not)? After further research, it seems that the absolute pointer is used to point to an address while also including it's DB (data bank). That's why I'm asking first before attempting to include a sprite sheet bigger than 64k (mainly, is there a size limit to Crono's sprite data bank?).
Vehek, thx for explaining the palette thingy. I figured the 0xC00000 part. It just means that somehow, the game subtracts 0xC00000 from the sprite packet address to point to the real address.
So let's recap what I have to do to replace him to see if it's right: His GFX pack address is at 242000, which points to 1272C0 (after subtracting C00000), which starts with a bunch of 0's (why?). Whatever the meaning of these 0's are, I just need to make 242000 point to my new address and insert my sprite sheet there, right?
Since his palette is shared and there are only 252 palettes, changing the value of 24F002 to FD will make it point to 242BFA, allowing my custom palette to be inserted at 2417B8. Does anybody knows what each of the 24 palette bytes mean (and their order needs to be reversed too in the ROM? if so, reversed only in pairs or totally reversed and inserted backwards, from the last of the 24 bytes up to the 1st?)?
Unfortunately, animation pointer is also relative to it's index bank so I can't change it without breaking the game. Plus, it seems like Crono already have 255 animations,although some are unused and others glitched and can be used elsewhere. Since there's not a single byte left to use at his original address, I'll be changing 242600 to 2417B8, providing 936 new bytes to use on top of what he have already (up to 241FFF).
Then comes the real meat. Changing his sprite assembly pointer at 242300 to my new address with plenty of space (at which point I dunno if the limit is really 64k or doesn't exist).So far, so good. But this is where things gets messy. The doc says his assembly "size" (measuring what?) is 26C0 (9920 decimal). It can't be bytes, because the difference between his and the next assembly is 7328 hex or 29480 decimal. What gives?
Then comes the hardest part, figuring out sprite assembly and animation. Any help here? If I can figure out which parts of sprite assembly and animation points to actual sprite gfx address in the rom, I'm set (because I can create the rest of the content with CCV). But since I'll have to reallocate the gfx AFTER assembling/animating, I need to know which of those lines determine which position in the ROM, and how (it's relative to the sheet size? Since his GFX pack is 31,680kb and immediately followed by another, where 1 ends and another begins is something the game must know).
Any info on both is much appreciated (and if some CT guru is around, any way to do global routines for location events? And about the Random Number command on TF, what's the range of the random number generated so I can actually use it?)
Also, is there some tut on how to insert new gfx in the ROM while choosing a specific offset of my choice? Thx