øAslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&action=profile;u=339;area=showposts;start=120e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/index691c-3.htmlslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&action=profile;area=showposts;u=339e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/index691c-3.html.zxÝ›h^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ`¦D–QOKtext/htmlISO-8859-1gzip@øÕ–QÿÿÿÿÿÿÿÿWed, 11 Mar 2020 08:22:13 GMT0ó°° ®0®P®€§²ð®Ü›h^”–Q Show Posts - avalanche

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - avalanche

Pages: « 1 2 3 4 5 6 7 8 9
121
Some or all of this may be known, but here's what I know about the animated tiles.  There are at least two kinds: those that are animated with 4 graphics tiles (e.g. torches, clocks, waterfalls), and those with some kind of palette trick (e.g. glowing effect in Tower/Giant and palette cycling effect in the Whale).  I haven't deciphered the latter kind.

As I mentioned last time, if bit 0 of byte 1 is on AND bit 5 of byte 0 is on, then it is animated.  Then byte 0 which is normally the graphics tile index becomes instead:
Code: [Select]
byte 0: tt1MMMnn
        tt:  I think this may be speed or type of palette effect?
        1:   Indicates it is animated
        MMM: Major index
        nn:  Minor index

I need to re-investigate the "tt" bits to see if that is what indicates the difference, I didn't take enough notes, but I seem to remember the palette effects might be indicated here.
Assuming it is of the 4-frame variety, the base graphics tile offset is major_index * 16 + minor_index.  Each has 4 frames, which are always 4 tiles in stride no matter how many sub tiles of the 16x16 are animated.  See the attached image for an example of the candle, clock, and torch tiles and note the green/blue arrows show the interleave.  Those are simple in that all four subtiles of the 16x16 tiles are animated, so they are just packed together intuitively.  In some other tilesets, only 1 or 2 of the subtiles of a tile are animated, and so they can interleave with totally unrelated tiles where there is room.

I wasn't able to determine how to correctly calculate the base address for these animated tiles, but they don't seem to be in the same place as the non-animated graphics.  Now that I think of it, a read breakpoint in Geiger's might help.  I manually located a few, so I'll just list them here.

#3 Castle Exterior: FBEC0
#4 Town: FC040
#5 House FC4C0
#6 Castle Interior: FC640
#14 Cave:  FCF40

122
However, despite that, there are some graphics that just aren't showing up correctly, almost like it's reading the right set of sprites for part of the tileset, but the wrong set of sprites for another part. To see what I mean, check out how it displays f.ex. the Lunar Core tileset. Most of it is fine, but the teleporters look messed up. If anyone has any insight or ideas on why this might be the case or some ideas of where to look for an answer they would be greatly appreciated!

Hey Pinkpuff.  I finally got an account to say thanks to you and others here who have helped me with my project so much.   I hope I can contribute back.  I can't fully answer your question, but I think I can give some insight to part of it.

There is a bit or two in the 2-byte tile assembly data at play here.  The usual documentation here says the first byte is the 8x8 tile index and the second byte has extra flags.  I found that if bit 0 (least significant) is on in the second byte, that it often means that 8x8 tile is animated, which causes it to be pulled from a different location entirely (I'll leave the animated tiles for a different post).  In the case of the Lunar Core tiles you are working on, that didn't work.  So then I realized that if bit 0 is on BUT the first byte does not have the 0x20 bit on, then it is not animated but you have to add 256 to the tile index and then you can pull that as normal.  It's basically a way to add a 9th bit to the tile index for 32 more tiles until that 0x20 bit is reached.  The teleport and several other tiles in the Lunar Core are examples of this case.  I guess another way to describe it is that it's a 9-bit index, and it is animated if it is >= 288 (120 hex).

That will fix a bunch of those tiles, but not all of those ones that look like duplicates.  The good news is that I don't think those are actually used in the maps.

Let me know if that makes sense.  I'll have to work on making my descriptions a little more clear in the future.

Pages: « 1 2 3 4 5 6 7 8 9