Trials of Mana (SNES)/ROM map

From Data Crystal
Jump to navigation Jump to 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)