Yoshi's Story/RAM map

From Data Crystal
Jump to navigation Jump to search

Chip tiny.png The following article is a RAM map for Yoshi's Story.

Skelux's notes

Hmmm...
To do:
confirm which of these are RAM offsets and which of these are ROM offsets
803D5CC0 - gets level names for trial mode
800F8E5C - unlocks levels in trial mode
803D5EC4 - column 1
803D5EF0 - column 2
803D5F1C - column 3
803D5F48 - column 4

803D7944 - level one button
0x165 - button active

8005DCF4 - hides buttons if 0x165 = 0x01

803D6AE0 - checks if level open to let you select
803D6B28 - selects level, A0 is current object (button)

803D6B64 - hand motion

803D6BA0 - fade screen and load level
803D6BE0 - upper nibble for row, lower for column
803D6CB0 - loads from level table 803D6f8c
800F8dfc - current level
803E9DE0 - loads level byte from 803eab50

existing levels:
Row 1:2B 33 0D 12
Row 2:2E 13 10 17
Row 3:34 28 20 0E
Row 4:11 16 0C 1B
Row 5:15 1E 1F 1C
Row 6:0F 23 22 18
unused:80 3E 7B B8

Extra levels ID:
00 - nintendo logo
01 - Name entry
02 - yoshi select
03 - score screen
04 - main menu
05 - lucky fruit
06 - score screen 2
07 - name entry 2
08 - yoshi death
09 - japanese trial screen
0A - options
14 - score screen 3
19 - practice stage
1A - score screen 4
1D - yoshi death 2
24 - test map 1 
25 - test map 2 (0xB50F94)
27 - test map 3 (800A79D8/0xB5114C)
2A - unused 'Mode Challenge'
2C - unused 'Challenge'
4B - white shyguy cutscene
4C - ending cutscene
4E - final boss
4F - blank level with yoshi select sounds (800A7B18)
50 - main menu
A5 - blubber boss
A9 - final boss no music
B0 - death warp (last in table)

//LEVEL SCRIPTS
8006E06C - handles level ID
800F8438 - level ID
**below 0x4f are treated differently?
800284AC - special level params?
8006DA0C - process level ID into addresses
800A78A0(0xA84A0) - list of level scripts in bank 0x04 (00B47A10 ROM)
8007DF0C - A1 is ROM location of level script

//REPLACE FIRST LEVEL WITH TEST MAP 2
0xC03730: 25

(from here)