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.

Lagoon (SNES)/ROM map: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
No edit summary
m (Hawk moved page Lagoon/ROM map to Lagoon (SNES)/ROM map)
 
(28 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{rommap|game=Lagoon}}
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:


  0x00:0013     Reset Vector
==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


  0x00:d05a-d05b Shortsword price (atland)
  Boss Data Table (table width is 0x0f)
  0x00:d05c-d05d Bandit armor price
0x02:946b-6c (000002) Samson gold
  0x00:d05e-d05f Iron shield price
  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


0x01:59d9      Starting level
==Misc==
  0x01:59ec      Starting strength
  0x02:ca81 (000002) Gold gift from Atland Mayor
  0x01:59fb      Starting defense
0x01:5a01-5a02 Starting gold


0x02:0200-0670 Text
==More Asm==
0x02:0870-5010 Text
  0x04:ff3d    Load data into audio memory
  0x02:5210-6680 Text
  [0c:ff3d]
0x02:6790-77d0 Text


0x02:91f0      Monster data follows this offset
==Audio==
  0x02:946b-946c Samson gold
  0x06:80a8 (000c9c) Audio code/data
  0x02:946d-946e Samson exp
0x02:947a-947b Natela gold
0x02:947c-947d Natela exp


  0x02:ca81-ca82 Gold gift from Atland Mayor
==Graphics==
  0x08:8000-b600      Nasir Graphics (uncompressed)
0x08:b600-be00      Shield graphics (uncompressed)
0x0b:8e00-a800      Item graphics (uncompressed)


  0x08:8000-b600 Nasir Graphics (uncompressed)
==Compressed Graphics==
  0x08:b600-be00 Shield graphics (uncompressed)
  0x0e:e47a-e54f      Logo graphic compression dictionary
  0x0e:e54f          Logo graphic starting byte (compressed)


0x0b:8e00-a800 Item graphics (uncompressed)
==Unused==
  0x0f:fca0-ffd0     Unused
  0x0e:e47a-e54f Logo graphic compression dictionary
0x0e:e54f     Logo graphic starting byte (compressed)


0x0f:fca0-ffd0 Unused
{{Internal Data}}

Latest revision as of 20:51, 28 January 2024

Chip tiny.png 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