Difference between revisions of "Seiken Densetsu 3:ROM map"

From Data Crystal
Jump to: navigation, search
(Added rommap template)
 
Line 2: Line 2:
  
 
<pre>
 
<pre>
C239CA-C23CB8 decompression routine A (graphic sets)
+
C05297-C052C6 decompression assembly (world map graphics)
C2418D-C2437A decompression routine B (tilesets)
+
instructions are stored to RAM and executed there
C243DA-C2441C decompression routine C (solidity sets)
+
C052C7-C0537B decompression routine (world map graphics)
C24527-C24876 decompression routine D (tilemaps)
 
  
 +
C0EA03-C0FA42 dialogue script-related
 +
C0EA70 read event script pointer
 +
C0EA87 read event script bank
 +
 +
C239CA-C23CB8 decompression routine (graphic sets)
 +
C2418D-C2437A decompression routine (tilesets)
 +
C243DA-C2441C decompression routine (solidity sets)
 +
C24527-C24876 decompression routine (tilemaps)
 +
C2AAF0-C2AC03 decompression routine (world map tilemap)
 +
 +
C403A0 read action script opcode
 +
 +
C42F5D-C4C4CD dialogue script-related routines
 +
C49561 load "Closed Garden" track for load game menu
 +
 +
C51E90-C51F2A BRR sample pointers (52 samples, 3 bytes each)
 +
C51F2B-C52064 BRR sample relative volumes, pitches
 +
C52065-C52148 SPC data pointers (70 spcs, 3 bytes each)
 +
C53FC9-C735D9 SPC data
 +
C73903-C9A6DE BRR sample data
 +
 +
CA0000-CA7FFF world map sub-map graphics (uncompressed)
 +
CAFA00-CAFFFF cursor graphics (uncompressed)
 
CB040A-CB0B09 palette set pointers (7 pointers each = 14 bytes each) (bank $CD)
 
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)
+
CB0B0A-CB49DB tilemap offsets, dynamic data (from 01,00 of location data @ CB73DC)
 
3 bytes per offset, a string is terminated by FF
 
3 bytes per offset, a string is terminated by FF
 
2 string are read: 1st for tilemap L1, 2nd for tilemap L2
 
2 string are read: 1st for tilemap L1, 2nd for tilemap L2
Line 17: Line 39:
 
d6-d7 facing direction
 
d6-d7 facing direction
 
03,02 destination
 
03,02 destination
CB73DC-CB9F5F level data (by level index @ 7E6028, 1114 items, 10 bytes each)
+
CB73DC-CB9F5F location data (by location index @ 7E6028, 1114 items, 10 bytes each)
 
01,00 tilemap pack (+ $CB0000 = dynamic data, terminated by FF)
 
01,00 tilemap pack (+ $CB0000 = dynamic data, terminated by FF)
 
02 map pack (* 7 + $CD0750)
 
02 map pack (* 7 + $CD0750)
Line 24: Line 46:
 
05
 
05
 
07,06 exit field index pack (+ $CB0000)
 
07,06 exit field index pack (+ $CB0000)
09,08 monster set
+
09,08 NPC map pointer (+ $CC0000)
 
CB9F60-CBFFBF exit field index packs (2 bytes per pointer, packs are dynamic size)
 
CB9F60-CBFFBF exit field index packs (2 bytes per pointer, packs are dynamic size)
 
some pointers: & 0x7FF * 2 + $CB49DC = offset of exit field
 
some pointers: & 0x7FF * 2 + $CB49DC = offset of exit field
...yet others (& 0x7FF) look like actual level indexes?
+
...yet others (& 0x7FF) look like actual location indexes?
 +
CBD9D2-CBE1C3 tilemaps (compressed)
 
CBFFC0-CBFFFF priority sets (4 bytes each)
 
CBFFC0-CBFFFF priority sets (4 bytes each)
 
00 d0-d4 enable mosaic
 
00 d0-d4 enable mosaic
Line 35: Line 58:
 
d6 half intensity
 
d6 half intensity
 
d7 minus subscreen
 
d7 minus subscreen
+
CC0000-CC05FF monster pack collection (256 items, 6 bytes each)
 +
* 4 + $CC0600 = monster pack
 +
CC0600-CC09FF monster packs (256 items, 4 bytes each)
 +
* 3 + $CC0A00/CC0D00 = monster/NPC pack
 +
CC0A00-CC0CFF monster packs (256 items, 3 bytes each)
 +
CC0D00-CC0FFF NPC packs (256 items, 3 bytes each)
 
CC1000-CC1899 graphics packs (dynamic, each string terminated by FFFF)
 
CC1000-CC1899 graphics packs (dynamic, each string terminated by FFFF)
 
* 3 + $CD02D0 = offset of pointer
 
* 3 + $CD02D0 = offset of pointer
CC189A-CC60C0 solidity sets (compressed, 2 bytes per tile)
+
CC189A-CC6161 solidity sets (compressed, 2 bytes per tile)
 
00 d0 SE quadrant
 
00 d0 SE quadrant
 
d1 SW quadrant
 
d1 SW quadrant
Line 47: Line 75:
 
d6 W edge blocked
 
d6 W edge blocked
 
01 d7 exit trigger enabled
 
01 d7 exit trigger enabled
+
CC6162-CCE20D NPC maps (dynamic lengths)
 +
CC67F4-CC6820 NPC map for location 0018 (Rabite Forest from Castle City Jad)
 +
CC6811 level of first 3 monsters
 +
CCE20E-CCF600 tilemaps (compressed)
 
CCFC00-CCFC79 animation string pointers
 
CCFC00-CCFC79 animation string pointers
 
CCFC7A-CCFFFF animation strings
 
CCFC7A-CCFFFF animation strings
Line 61: Line 92:
 
CD0240-CD02CF solidity set L2 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)
 
CD02D0-CD060B graphics pointers (276 items, 3 bytes each)
CD0750-CD0A3C map packs (107 items, 7 bytes each)
+
 
 +
CD0750-CD0A3C tileset packs (107 items, 7 bytes each)
 
00 tileset L1 (* 2 + $CD01B0 = offset of pointer)
 
00 tileset L1 (* 2 + $CD01B0 = offset of pointer)
 
01 tileset L2 (* 2 + $CD01B0 = offset of pointer)
 
01 tileset L2 (* 2 + $CD01B0 = offset of pointer)
Line 74: Line 106:
 
CD1EB7 palette for Kevin
 
CD1EB7 palette for Kevin
 
CD3551-CDA314 palette sets (180 bytes each, 6 palettes p/set, 30 bytes p/palette)
 
CD3551-CDA314 palette sets (180 bytes each, 6 palettes p/set, 30 bytes p/palette)
 +
 +
CDBFDF-CDC9A7 tilemaps (compressed)
  
 
CE0000-CFD284 tilesets (compressed)
 
CE0000-CFD284 tilesets (compressed)
  
D133D0 Monster base HPs (2 bytes each)
+
CFD720-CFE5AB tilemaps (compressed)
D134F2 Werewolf
 
D1F5E0-?????? monster XPs (3 bytes each)
 
D1F61C Dark Battum
 
  
 +
D10000-D111FF monster stats (128 items, 36 bytes each)
 +
00 sprite
 +
01 palette
 +
04-02 pointer to action script
 +
 
D12A40-D12B83 sprite mold pointers (2 bytes each, 162 items total)
 
D12A40-D12B83 sprite mold pointers (2 bytes each, 162 items total)
 
* 4 + $D50000 = offset of mold pack
 
* 4 + $D50000 = offset of mold pack
 
Duran, Kevin, Hawk, Angela, Carlie, Lise (the rest are NPCs)
 
Duran, Kevin, Hawk, Angela, Carlie, Lise (the rest are NPCs)
 +
 +
D133D0-D1393F monster base HPs (696 items, 2 bytes each)
 +
D134F2 Werewolf
 +
(level - 1) * 14
 +
 +
D1F5E0-...... monster XPs (3 bytes each)
 +
D1F61C Dark Battum
 +
 +
D22D92-D2F817 dialogue script-related
 +
D30A13-D3F301 dialogue script-related
 +
 
D50000-D72FFF mold packs and mold data for sprites
 
D50000-D72FFF mold packs and mold data for sprites
D52581-D525?? mold pack for Kevin (2 bytes each)
+
D52581-D525.. mold pack for Kevin (2 bytes each)
 +
 
 +
D7C400-D7D5FF sprite graphics, magic, etc. (uncompressed)
 +
D7DC00-D7E1FF graphics, Kevin, wolf head (uncompressed)
 +
D7F600-D7FA.. numeral graphics, etc. (uncompressed)
  
 
D80000-E3DFFF sprite graphics (uncompressed)
 
D80000-E3DFFF sprite graphics (uncompressed)
  
F00000-F4FFFF level graphics (compressed)
+
E60000-E7CBFF magic, attack effect graphics (uncompressed)
 +
 
 +
// SD3 world map tilemaps are drawn on 8x8 tile basis
 +
E80000-E801FF pointers to world map tilemap chunks
 +
E80200-E803FF pointers to holy land tilemap chunks
 +
E80400-E88947 world map tilemap chunks (compressed)
 +
E88948-E8A598 holy land tilemap chunks (compressed)
 +
 
 +
E8B000-E8BD83 tilemaps (compressed)
 +
 
 +
E8E800-E8EFFF world map mini-map (uncompressed)
 +
E8F000-E8FFFF battle numerals, symbols (2bpp, uncompressed)
 +
 
 +
// SD3 Mode7 GFX are drawn in 8bpp linear format
 +
E90000-E90001 pointer to holy land animated GFX
 +
E90002-E90003 pointer to world map animated GFX
 +
E90004-E9291E world map GFX (compressed)
 +
E9291F-E92E9B holy land animated GFX (compressed)
 +
E92E9C-...... world map animated GFX (compressed)
 +
E96080-...... world map palettes
 +
 
 +
EA0000-EFFFFF tilemaps (compressed)
  
 +
F00000-F6FFFF location graphics (compressed)
 
F70000-F77FFF animated graphics (uncompressed)
 
F70000-F77FFF animated graphics (uncompressed)
 +
 +
F7E8C4-F7FC8F item effect graphics (uncompressed)
 +
 +
F7FC90-F7FFFF tilemaps (compressed)
 +
 +
F80000-FBECA1 event scripts
 +
F96D36 Karl attacks Kevin
 +
F81200-F869FF dialogue script-related
 +
F90200-F9B1F0 dialogue script-related
 +
F94000-F95FFF title screen BG clouds (uncompressed)
 +
FAB1F1-FAFFFF dialogue script-related
 +
 +
FC0000-FCAE88 tilemaps (compressed)
 +
 +
FCF500-FD41FF uncompressed graphics
 +
 +
FE2E00-FE4DFF event script pointers
 +
FE2F00-FE8F7B letter characters, symbols (uncompressed)
 +
FE4E00-FE55FF event script bank indexes (+ $F8)
 +
FEA6F5-...... title screen FG graphics (compressed)
 +
FEFA60-...... title screen BG graphics (compressed)
 
</pre>
 
</pre>

Latest revision as of 20:28, 6 August 2013

C05297-C052C6	decompression assembly (world map graphics)
				instructions are stored to RAM and executed there
C052C7-C0537B	decompression routine (world map graphics)

C0EA03-C0FA42	dialogue script-related
C0EA70	read event script pointer
C0EA87	read event script bank

C239CA-C23CB8	decompression routine (graphic sets)
C2418D-C2437A	decompression routine (tilesets)
C243DA-C2441C	decompression routine (solidity sets)
C24527-C24876	decompression routine (tilemaps)
C2AAF0-C2AC03	decompression routine (world map tilemap)

C403A0	read action script opcode

C42F5D-C4C4CD	dialogue script-related routines
C49561	load "Closed Garden" track for load game menu

C51E90-C51F2A	BRR sample pointers (52 samples, 3 bytes each)
C51F2B-C52064	BRR sample relative volumes, pitches
C52065-C52148	SPC data pointers (70 spcs, 3 bytes each)
C53FC9-C735D9	SPC data
C73903-C9A6DE	BRR sample data

CA0000-CA7FFF	world map sub-map graphics (uncompressed)
CAFA00-CAFFFF	cursor graphics (uncompressed)
CB040A-CB0B09	palette set pointers (7 pointers each = 14 bytes each) (bank $CD)
CB0B0A-CB49DB	tilemap offsets, dynamic data (from 01,00 of location 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	location data (by location 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	NPC map pointer (+ $CC0000)
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 location indexes?
CBD9D2-CBE1C3	tilemaps (compressed)
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
CC0000-CC05FF	monster pack collection (256 items, 6 bytes each)
				* 4 + $CC0600 = monster pack
CC0600-CC09FF	monster packs (256 items, 4 bytes each)
				* 3 + $CC0A00/CC0D00 = monster/NPC pack
CC0A00-CC0CFF	monster packs (256 items, 3 bytes each)
CC0D00-CC0FFF	NPC packs (256 items, 3 bytes each)
CC1000-CC1899	graphics packs (dynamic, each string terminated by FFFF)
				* 3 + $CD02D0 = offset of pointer
CC189A-CC6161	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
CC6162-CCE20D	NPC maps (dynamic lengths)
	CC67F4-CC6820	NPC map for location 0018 (Rabite Forest from Castle City Jad)
		CC6811	level of first 3 monsters
CCE20E-CCF600	tilemaps (compressed)
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	tileset 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)

CDBFDF-CDC9A7	tilemaps (compressed)

CE0000-CFD284	tilesets (compressed)

CFD720-CFE5AB	tilemaps (compressed)

D10000-D111FF	monster stats (128 items, 36 bytes each)
			00		sprite
			01		palette
			04-02	pointer to action script
			
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)

D133D0-D1393F	monster base HPs (696 items, 2 bytes each)
	D134F2	Werewolf
	(level - 1) * 14

D1F5E0-......	monster XPs (3 bytes each)
	D1F61C	Dark Battum

D22D92-D2F817	dialogue script-related
D30A13-D3F301	dialogue script-related

D50000-D72FFF	mold packs and mold data for sprites
	D52581-D525..	mold pack for Kevin (2 bytes each)

D7C400-D7D5FF	sprite graphics, magic, etc. (uncompressed)
D7DC00-D7E1FF	graphics, Kevin, wolf head (uncompressed)
D7F600-D7FA..	numeral graphics, etc. (uncompressed)

D80000-E3DFFF	sprite graphics (uncompressed)

E60000-E7CBFF	magic, attack effect graphics (uncompressed)

// SD3 world map tilemaps are drawn on 8x8 tile basis
E80000-E801FF	pointers to world map tilemap chunks
E80200-E803FF	pointers to holy land tilemap chunks
E80400-E88947	world map tilemap chunks (compressed)
E88948-E8A598	holy land tilemap chunks (compressed)

E8B000-E8BD83	tilemaps (compressed)

E8E800-E8EFFF	world map mini-map (uncompressed)
E8F000-E8FFFF	battle numerals, symbols (2bpp, uncompressed)

// SD3 Mode7 GFX are drawn in 8bpp linear format
E90000-E90001	pointer to holy land animated GFX
E90002-E90003	pointer to world map animated GFX
E90004-E9291E	world map GFX (compressed)
E9291F-E92E9B	holy land animated GFX (compressed)
E92E9C-......	world map animated GFX (compressed)
E96080-......	world map palettes

EA0000-EFFFFF	tilemaps (compressed)

F00000-F6FFFF	location graphics (compressed)
F70000-F77FFF	animated graphics (uncompressed)

F7E8C4-F7FC8F	item effect graphics (uncompressed)

F7FC90-F7FFFF	tilemaps (compressed)

F80000-FBECA1	event scripts
	F96D36	Karl attacks Kevin
F81200-F869FF	dialogue script-related
F90200-F9B1F0	dialogue script-related
F94000-F95FFF	title screen BG clouds (uncompressed)
FAB1F1-FAFFFF	dialogue script-related

FC0000-FCAE88	tilemaps (compressed)

FCF500-FD41FF	uncompressed graphics

FE2E00-FE4DFF	event script pointers
FE2F00-FE8F7B	letter characters, symbols (uncompressed)
FE4E00-FE55FF	event script bank indexes (+ $F8)
FEA6F5-......	title screen FG graphics (compressed)
FEFA60-......	title screen BG graphics (compressed)