# Addresses | Bank | Address Range | Description | | ---- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------- | | 11 | $8210 - $821F | Lookup table of per-screen sprite info table pointers per area<br><br>The rest of bank 11 contains further lookup tables and the data | | 15 | $DDAD - $DDB4 | Regions for each temple | | 15 | $DDB5 - $DDBC | Player start X positions for each temple | | 15 | $DDBD - $DDC4 | Player start Y positions for each temple | | 15 | $DDC5 - DDCC | TODO: Temple info (governs byte $03DA) | | 15 | $DDCD - $DDD4 | Maybe: Area when exiting each temple | | 15 | $DDD5 - $DDDC | Temple spawn screen per area | | 15 | $DF34 - $DF3B | Area to Screen Data Banks table | | 15 | $DF3C - $DF43 | Area to Screen Data Indexes in Bank table | | 15 | $E5DB - $E5E6 | Door key requirements | | 15 | $E5E7 - $E5F2 | ?? Region transition maps | | 15 | $E5F3 - $E5FE | ?? Screen transition maps | | 15 | $E5FF - $E608 | Music for each inside(?) area | | 15 | $E609 - $E612 | ?? Screen area-to-area room transition tables | | 15 | $E613 - $E61C | Maybe: Tiles indexes for areas | | 15 | $E61D - $E626 | Start X/Y positions for areas | | 15 | $E8D9 - $E8E8 | Block property impassability map | | 15 | $EA37 - $EA4F | ?? Some per-area table and then 4<br>bytes of screen -> screen/XY/area data.<br><br>Data only used for Apolune. | | 15 | $EA9C - $EAAB | Area -> Town transitions lookup map | | 15 | $EAAC - $EB2E | Area -> Town transitions data | | 15 | $EF63 - $EF67 | Screen event lookup table | | | | | # Banks Area data is in the following banks: | Area | Blocks Bank | Blocks Ptr Offset | Blocks Address | | ------------- | ----------- | ----------------- | -------------- | | Eolis | 0 | 0 | | | Apolune | 1 | 0 | | | Forepaw | 0 | 1 | | | Mascon | 0 | 2 | | | Victim | 2 | 1 | | | Conflate | 1 | 1 | | | Daybreak | 2 | 0 | | | Evil Fortress | 2 | 2 | | # Town Transitions Town transitions: Bank 15, $EA9C # Doors ## Destinations/Requirements Data 1. Screen index 2. Area (maybe?) 3. Key requirement > [!seealso] `Area_SetStateFromDoorDestination` (Bank 15, $E7C5). ## Key Requirements | Index | Key | | ----- | ------------- | | 0 | None | | 1 | "A"<br> | | 2 | "K" | | 3 | "Q" | | 4 | "J" | | 5 | "Jo" | | 6 | Ring of Elf | | 7 | Ring of Dworf | | 8 | Demon's Ring | # Areas Table # Block Data Blocks are compressed in # Block Properties | Value | Name | Passable | | ----- | ---------------- | -------- | | 0 | Air | ✅ | | 1 | Solid | | | 2 | Ladder | ✅ | | 3 | Door | ✅ | | 4 | | ✅ | | 5 | | | | 6 | Pushable block | | | 7 | | | | 8 | | | | 9 | Transition down? | ✅ | | 10 | Transition up | ✅ | | 11 | | | | 12 | Transition right | ✅ | | 13 | Transition left | ✅ | | 14 | | ✅ | | 15 | | ✅ | # Memory | Address Range | Description | | ------------- | ----------------------------------------------------------------------------------------------------------------------------------- | | $054 | Scrolling Mode:<br><br>0x01 = Scrolling horizontally<br>0x02 = Scrolling vertically<br>0xFF = Not scrolling | | $0600-$06FF | Data on the current screen.<br><br>This also overlaps with memory used for the password screen and the intro/outro game animations. |