Welcome to Data Crystal's new home! Data Crystal is now part of the TCRF family (sort of).
The wiki has recently moved; please report any issues in Discord. Pardon the dust.
The wiki has recently moved; please report any issues in Discord. Pardon the dust.
Lagoon (SNES)/ROM map: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
m (Hawk moved page Lagoon/ROM map to Lagoon (SNES)/ROM map) |
||
(23 intermediate revisions by 5 users not shown) | |||
Line 2: | Line 2: | ||
Keep in mind that two-byte numbers are in reverse order in the file. | Keep in mind that two-byte numbers are in reverse order in the file. | ||
This offsets differ by 0x8000 in a file versus memory. | |||
Example: 0x0013 in a rom file is 0x8013 in memory. | |||
ROM offsets are noted in brackets for illustrative purposes. | |||
ROM File offsets: | ROM File offsets: | ||
Line 7: | Line 11: | ||
==ASM Code Bank== | ==ASM Code Bank== | ||
0x00:0013 Reset Vector | 0x00:0013 Reset Vector | ||
0x00:d05a (000002) Shortsword price ( | [8013] | ||
0x00:d05c (000002) Bandit armor price | 0x00:0013-00af First code block (initializations) | ||
0x00:d05e (000002) Iron shield price | [8013-80af] | ||
0x01:05f6 (000028) Routine reads dialogue text into RAM | |||
0x00:00b3 Main game subroutine | |||
0x00:00b9 Game intro subroutine | |||
0x00:00e6 Game intro subroutine | |||
0x00:0112 Subroutine | |||
0x00:0120 Subroutine | |||
0x00:04e9-06e5 Subroutine | |||
0x00:1304-1366 Program loop, calls the game intro subroutine and the main game subroutine | |||
[9304-9366] | |||
0x00:9220 (000003) Substract hitpoints for both Nasir and monsters | |||
0x00:94f7 (000037) Str increase subroutine | |||
0x00:952f (00004f) Def increase subroutine | |||
0x00:cd95 (000003) checks event byte 7e04e2 | |||
cd9f (000003) checks bit using bit masks in 00:d3d9 | |||
Chests and Shops Bit Toggling Subroutine | |||
0x00:cda3 (000001) beginning of subroutine | |||
0x00:cda8 (000003) reads item/equipment byte | |||
0x00:cdab (000003) toggles bit using OR with a bit mask found 00:d3d9 | |||
0x00:cdae (000003) writes item/equipment byte | |||
0x00:cdb3 (000001) subroutine ends | |||
--- | |||
0x00:cde6 (000001) beginning of subroutine | |||
0x00:cdeb (000003) reads item/equipment to see if Nasir already has it | |||
0x00:cdee (000003) | |||
0x00:cdf5 (000001) end of subroutine | |||
Atland Weapon Shop Inventory Data | |||
0x00:d057 (000001) First item sold at the Atland weapon shop (default: 0x51 = shortsword) | |||
0x00:d058 (000001) Second item sold at the Atland weapon shop (default: 0x56 = bandit armor) | |||
0x00:d059 (000001) Third item sold at the Atland weapon shop (default: 0x5b = iron shield) | |||
0x00:d05a (000002) Shortsword price (Atland) | |||
0x00:d05c (000002) Bandit armor price (Atland) | |||
0x00:d05e (000002) Iron shield price (Atland) | |||
0x00:d06a Shop prices | |||
0x00:d07a Weapon shop prices for Voloh | |||
0x00:d08a Weapon shop prices for Denegal: sonic armor, great shield | |||
0x00:d3cd-d3d8 Subroutine called at cda5 and cde8 | |||
0x00:d3d9 (000008) Bit masks | |||
==Leveling Data Tables== | |||
0x00:e0b0 (000047) Base str table | |||
0x00:e0f8 (000047) Base def table | |||
0x00:e140 (000023) HP table | |||
0x00:e164 (000023) MP table | |||
==More ASM== | |||
0x01:5640 Call opening animation | |||
[02:d64c] | |||
0x01:5dd7 Opening logo subroutine | |||
[02:ddd7 | |||
0x01:05f6 (000028) Routine reads dialogue text into RAM (7e5000) | |||
0x01:0810 Reads name/place strings into RAM. (7e5000) | |||
0x01:59d9 Starting level | 0x01:59d9 Starting level | ||
0x01:59ec Starting strength | 0x01:59ec Starting strength | ||
0x01:59fb Starting defense | 0x01:59fb Starting defense | ||
0x01:5a01 (000002) Starting gold | 0x01:5a01 (000002) Starting gold | ||
0x01:5f2c Display opening logo | |||
[02:df2c] | |||
0x01:5f4e Subroutine call | |||
[02:df4e] | |||
==Text Bank== | ==Text Bank== | ||
Line 23: | Line 102: | ||
==Monster Data Bank== | ==Monster Data Bank== | ||
0x02: | 0x02:91f9 Monster data table starts here | ||
Table width is 0x0f bytes | |||
Examples | |||
0x02: | 0x02:91fa-0b (000002) gold cave demon hp | ||
0x02: | 0x02:9202-03 (000002) gold cave demon gold | ||
0x02: | 0x02:9204-05 (000002) gold cave demon exp | ||
0x02: | 0x02:9209-0a (000002) slime hp | ||
0x02: | 0x02:9211-12 (000002) slime gold | ||
0x02: | 0x02:9213-14 (000002) slime exp | ||
0x02: | 0x02:9218-19 (000002) skeleton hp | ||
0x02: | 0x02:9220-21 (000002) skeleton gold | ||
0x02: | 0x02:9222-23 (000002) skeleton exp | ||
0x02: | 0x02:9227-28 (000002) beetle hp | ||
0x02: | 0x02:922f-30 (000002) beetle gold | ||
0x02: | 0x02:9231-32 (000002) beetle exp | ||
Boss Data Table (table width is 0x0f) | |||
0x02:946b-6c (000002) Samson gold | |||
0x02:946d-6e (000002) Samson exp | |||
0x02:947a-7b (000002) Natela gold | |||
0x02:947c-7d (000002) Natela exp | |||
0x02:9489-8a (000002) Eardon gold | |||
0x02:948b (000002) Eardon exp | |||
0x02:9498 (000002) Duma gold | |||
0x02:949a (000002) Duma exp | |||
0x02:94c5 (000002) Thimale gold | |||
0x02:94c7 (000002) Thimale exp | |||
0x02:94d4 (000002) Battler gold | |||
0x02:94d6 (000002) Battler exp | |||
0x02:953d (000002) Ella gold | |||
0x02:953f (000002) Ella exp | |||
==Misc== | ==Misc== | ||
0x02:ca81 (000002) Gold gift from Atland Mayor | 0x02:ca81 (000002) Gold gift from Atland Mayor | ||
==More Asm== | |||
0x04:ff3d Load data into audio memory | |||
[0c:ff3d] | |||
==Audio== | |||
0x06:80a8 (000c9c) Audio code/data | |||
==Graphics== | ==Graphics== | ||
Line 54: | Line 155: | ||
==Unused== | ==Unused== | ||
0x0f:fca0-ffd0 Unused | 0x0f:fca0-ffd0 Unused | ||
{{Internal Data}} |
Latest revision as of 20:51, 28 January 2024
The following article is a ROM map for Lagoon (SNES).
Keep in mind that two-byte numbers are in reverse order in the file.
This offsets differ by 0x8000 in a file versus memory. Example: 0x0013 in a rom file is 0x8013 in memory. ROM offsets are noted in brackets for illustrative purposes.
ROM File offsets:
ASM Code Bank
0x00:0013 Reset Vector [8013] 0x00:0013-00af First code block (initializations) [8013-80af]
0x00:00b3 Main game subroutine
0x00:00b9 Game intro subroutine
0x00:00e6 Game intro subroutine
0x00:0112 Subroutine
0x00:0120 Subroutine
0x00:04e9-06e5 Subroutine
0x00:1304-1366 Program loop, calls the game intro subroutine and the main game subroutine [9304-9366]
0x00:9220 (000003) Substract hitpoints for both Nasir and monsters
0x00:94f7 (000037) Str increase subroutine 0x00:952f (00004f) Def increase subroutine
0x00:cd95 (000003) checks event byte 7e04e2 cd9f (000003) checks bit using bit masks in 00:d3d9
Chests and Shops Bit Toggling Subroutine 0x00:cda3 (000001) beginning of subroutine 0x00:cda8 (000003) reads item/equipment byte 0x00:cdab (000003) toggles bit using OR with a bit mask found 00:d3d9 0x00:cdae (000003) writes item/equipment byte 0x00:cdb3 (000001) subroutine ends --- 0x00:cde6 (000001) beginning of subroutine 0x00:cdeb (000003) reads item/equipment to see if Nasir already has it 0x00:cdee (000003) 0x00:cdf5 (000001) end of subroutine
Atland Weapon Shop Inventory Data 0x00:d057 (000001) First item sold at the Atland weapon shop (default: 0x51 = shortsword) 0x00:d058 (000001) Second item sold at the Atland weapon shop (default: 0x56 = bandit armor) 0x00:d059 (000001) Third item sold at the Atland weapon shop (default: 0x5b = iron shield) 0x00:d05a (000002) Shortsword price (Atland) 0x00:d05c (000002) Bandit armor price (Atland) 0x00:d05e (000002) Iron shield price (Atland)
0x00:d06a Shop prices
0x00:d07a Weapon shop prices for Voloh
0x00:d08a Weapon shop prices for Denegal: sonic armor, great shield
0x00:d3cd-d3d8 Subroutine called at cda5 and cde8
0x00:d3d9 (000008) Bit masks
Leveling Data Tables
0x00:e0b0 (000047) Base str table 0x00:e0f8 (000047) Base def table 0x00:e140 (000023) HP table 0x00:e164 (000023) MP table
More ASM
0x01:5640 Call opening animation [02:d64c]
0x01:5dd7 Opening logo subroutine [02:ddd7
0x01:05f6 (000028) Routine reads dialogue text into RAM (7e5000)
0x01:0810 Reads name/place strings into RAM. (7e5000)
0x01:59d9 Starting level 0x01:59ec Starting strength 0x01:59fb Starting defense 0x01:5a01 (000002) Starting gold
0x01:5f2c Display opening logo [02:df2c] 0x01:5f4e Subroutine call [02:df4e]
Text Bank
0x02:0200-0670 Text 0x02:0870-5010 Text 0x02:5210-6680 Text 0x02:6790-77d0 Text
Monster Data Bank
0x02:91f9 Monster data table starts here Table width is 0x0f bytes Examples 0x02:91fa-0b (000002) gold cave demon hp 0x02:9202-03 (000002) gold cave demon gold 0x02:9204-05 (000002) gold cave demon exp 0x02:9209-0a (000002) slime hp 0x02:9211-12 (000002) slime gold 0x02:9213-14 (000002) slime exp 0x02:9218-19 (000002) skeleton hp 0x02:9220-21 (000002) skeleton gold 0x02:9222-23 (000002) skeleton exp 0x02:9227-28 (000002) beetle hp 0x02:922f-30 (000002) beetle gold 0x02:9231-32 (000002) beetle exp
Boss Data Table (table width is 0x0f) 0x02:946b-6c (000002) Samson gold 0x02:946d-6e (000002) Samson exp 0x02:947a-7b (000002) Natela gold 0x02:947c-7d (000002) Natela exp 0x02:9489-8a (000002) Eardon gold 0x02:948b (000002) Eardon exp 0x02:9498 (000002) Duma gold 0x02:949a (000002) Duma exp 0x02:94c5 (000002) Thimale gold 0x02:94c7 (000002) Thimale exp 0x02:94d4 (000002) Battler gold 0x02:94d6 (000002) Battler exp 0x02:953d (000002) Ella gold 0x02:953f (000002) Ella exp
Misc
0x02:ca81 (000002) Gold gift from Atland Mayor
More Asm
0x04:ff3d Load data into audio memory [0c:ff3d]
Audio
0x06:80a8 (000c9c) Audio code/data
Graphics
0x08:8000-b600 Nasir Graphics (uncompressed) 0x08:b600-be00 Shield graphics (uncompressed) 0x0b:8e00-a800 Item graphics (uncompressed)
Compressed Graphics
0x0e:e47a-e54f Logo graphic compression dictionary 0x0e:e54f Logo graphic starting byte (compressed)
Unused
0x0f:fca0-ffd0 Unused
Internal Data for Lagoon (SNES)
| |
---|---|