Lagoon:ROM map

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