Seiken Densetsu 3:ROM map

From Data Crystal
Revision as of 00:45, 16 March 2011 by Giangurgolo (talk | contribs) (ROM map of SD3 plus some info on the data format. Almost all of this is level/location related)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

C239CA-C23CB8 decompression routine A (graphic sets) C2418D-C2437A decompression routine B (tilesets) C243DA-C2441C decompression routine C (solidity sets) C24527-C24876 decompression routine D (tilemaps)

CB040A-CB0B09 palette set pointers (7 pointers each = 14 bytes each) (bank $CD) CB0B0A-CB49DB tilemap offsets, dynamic data (from 01,00 of level data @ CB73DC) 3 bytes per offset, a string is terminated by FF 2 string are read: 1st for tilemap L1, 2nd for tilemap L2 1st pointer of a string points to the compressed tilemap, the rest are unknown CB49DC-CB73DB exit fields (4 bytes per field) 00 dest X coord 01 dest Y coord d6-d7 facing direction 03,02 destination CB73DC-CB9F5F level data (by level index @ 7E6028, 1114 items, 10 bytes each) 01,00 tilemap pack (+ $CB0000 = dynamic data, terminated by FF) 02 map pack (* 7 + $CD0750) 03 palette set 04 05 07,06 exit field index pack (+ $CB0000) 09,08 monster set CB9F60-CBFFBF exit field index packs (2 bytes per pointer, packs are dynamic size) some pointers: & 0x7FF * 2 + $CB49DC = offset of exit field ...yet others (& 0x7FF) look like actual level indexes? CBFFC0-CBFFFF priority sets (4 bytes each) 00 d0-d4 enable mosaic 01 d0-d4 enable mainscreen 02 d0-d4 enable subscreen 03 d0-d4 color math d6 half intensity d7 minus subscreen

CC1000-CC1899 graphics packs (dynamic, each string terminated by FFFF) * 3 + $CD02D0 = offset of pointer CC189A-CC60C0 solidity sets (compressed, 2 bytes per tile) 00 d0 SE quadrant d1 SW quadrant d2 NE quadrant d3 NW quadrant d4 N edge blocked d5 can slide against d6 W edge blocked 01 d7 exit trigger enabled

CCFC00-CCFC79 animation string pointers CCFC7A-CCFFFF animation strings 00 d6,7 if clear, 4-byte length d6 unknown, 3-byte length if set d7 unknown, 1-byte length if set if d6/d7 clear: & 0x0F * 0x80 = offset of VRAM to draw to 01,02 unknown if 00,d6/d7 set 03,02 if d6/d7 clear: + $F70000 = offset of animation graphics CD0000-CD00D7 tileset L1 pointers (72 items, 3 bytes each) CD00D8-CD01AF tileset L2 pointers (72 items, 3 bytes each) CD01B0-CD023F solidity set L1 pointers (bank $CC)(72 items, 2 bytes each) CD0240-CD02CF solidity set L2 pointers (bank $CC)(72 items, 2 bytes each) CD02D0-CD060B graphics pointers (276 items, 3 bytes each) CD0750-CD0A3C map packs (107 items, 7 bytes each) 00 tileset L1 (* 2 + $CD01B0 = offset of pointer) 01 tileset L2 (* 2 + $CD01B0 = offset of pointer) 02 scrolling L2 d0-d2 speed d3 enable scrolling 03 & 0x0F = priority set 04 animation index * 2 + CCFC00 = pointer's offset 06,05 graphics pack (bank $CC) CD0A3D-CD3550 sprite palettes CD1EB7 palette for Kevin CD3551-CDA314 palette sets (180 bytes each, 6 palettes p/set, 30 bytes p/palette)

CE0000-CFD284 tilesets (compressed)

D133D0 Monster base HPs (2 bytes each) D134F2 Werewolf D1F5E0-?????? monster XPs (3 bytes each) D1F61C Dark Battum

D12A40-D12B83 sprite mold pointers (2 bytes each, 162 items total) * 4 + $D50000 = offset of mold pack Duran, Kevin, Hawk, Angela, Carlie, Lise (the rest are NPCs) D50000-D72FFF mold packs and mold data for sprites D52581-D525?? mold pack for Kevin (2 bytes each)

D80000-E3DFFF sprite graphics (uncompressed)

F00000-F4FFFF level graphics (compressed)

F70000-F77FFF animated graphics (uncompressed)