Lagoon:ROM map
Jump to navigation
Jump to search
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