News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Author Topic: Chrono Trigger Tileset Animation  (Read 1912 times)

Zakyrus

  • Jr. Member
  • **
  • Posts: 13
    • View Profile
Chrono Trigger Tileset Animation
« on: August 21, 2012, 04:40:32 am »
Has this ever been figured out?

Let's say I replaced the snow in Death Peak (also added that to North Cape) to something a little more conventional (sorry, screenshot not available)

JLukas informed me a few years back, that each pallet has code that determines whether or not that particular pallet set allows animation or not. So, in order
to "activate" animation data for a particular pallet, there's some bytes that have to be changed...

Formula is (palette index hex value) *2 +3DF9C7 (That will give the address of the 2 byte pointer)

Example:

North Cape palette is 43, so 43 * 2 (=86)... add 86 to 3DF9C7 to get 3DFA4D.
Head to 3DFA4D in hex editor, and you find: 3B 03

I have no idea what "3B 03" actually does, (I'm still in the learning stages so my trace-route skills are infancy)--but it seems to do nothing animation-wise... HOWEVER, viewing a pallet set that *does* have animation enabled says 88 00, change: 3DFA4D 88 (was 3B) & 3DFA4E 00 (was 03). Now North Cape's Pallet 43 will have an animated Layer 3. (ex: If I put water tiles like in Heckran Caves in the background, they'll animate, before we changed those two bytes the water would be motionless)


ANYWAYS, (back to my question) let's say I've imported some new snow graphics, has anyone actually figured out how the animated tiles work together?(obviously the new is static--even if I have it scroll across the screen, which looks very lame) I'd love to be able to animate the tiles. After viewing the graphics packs for the animated tent flags in the Millennial Fair, I see how the tiles are placed in the compressed packs and set up my snow the way I need, but where is the data/code that tells these tiles what to do? I presume that each sub-tile has some code somewhere that tells it to animate to another sub-tile (and so on)  :banghead:

Knowing this would be VERY useful for water, conveyors, snow, clouds, rain, etc, etc...

Any input is appreciated. Thanks.

~Z



« Last Edit: August 21, 2012, 04:57:02 am by Zakyrus »

Mauron

  • Sr. Member
  • ****
  • Posts: 475
    • View Profile
Re: Chrono Trigger Tileset Animation
« Reply #1 on: August 21, 2012, 01:10:37 pm »
3DF9C7 is a list of relative pointers, starting at 3DFA77.

For North Cape, 3DFA77 + 033B = 3DFDB2.

Geiger's Chrono Trigger Database has some notes on the subject.
Quote
3DF290   3DF30F   PTR   N   "Pointers to unknown data (+3DF310, local, first at 3DF310)"   2004.12.07
3DF310   3DF9CC   ???   N   "Unknown Data (related to Location L1&2 Tilesets, 12 bytes each)"   2004.12.07
3DF9CD   3DFA7C   ???   N   Unknown Data (related to Locations)   2003.07.10
3DFA7D   3DFFE4   ???   N   Unknown Data (related to Locations)   2003.07.10

A few of those values are wrong - The first unknown data block ends at 3DF9C6, and the second runs from 3DF9C7 to 3DFA76. The third starts at 3DFA77, and ends at 3DFF16.

3DFF17 to 3DFFE4 could be the same format data, but it would have to be loaded elsewhere -  the pointers at 3DF9C7 don't cover it.

The data at 3DFA77 is a variable length, either 1 or 4 bytes per entry, for a total of 6 entries. If it loads 0, it moves on to the next entry, otherwise it loads 3 more bytes. There are special conditions for bits 10 and 80, but I haven't traced those yet.

I'm not sure how all this works yet, but I followed where it stored this data: 7E0520   9   FF   Location   Location Event Loaded Sprites   2007.08.15

The second entry was stored at 7E052C, which leads me to believe that the notes were inaccurate here - it seems more like 6 sets of 0C bytes.

The remaining code I followed appeared to be changing location palette sets that were copied into RAM, but I don't fully understand it.
Mauron wuz here.