# 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. |