All addresses are in hexadecimal.
Address | C definition | Description |
---|---|---|
0 | Switch lookup table for function 81C4 (8 words) | |
64 | Switch lookup table for function 11ED0 (9 words) | |
88 | Other switch lookup tables | |
168 | Start of nothing | |
8000 | Start of code | |
1B248 | Start of nothing | |
40000 | s16 kColumnTable[] | Column table for both screens (512 bytes) |
40600 | Accessed by function 95B2 | |
40610 | WAM data | |
40798 | tyROMDemoData kDemoData[] | DEMO playback data; see below |
40958 | End of DEMO playback data | |
40968 | WAM data for ending A | |
412DC | Accessed by function C66E | |
41324 | tyNextLevel kNextLevel[] | Next level data; see below |
415C0 | char kPassword[] | Passwords; see InsmEdit readme (ASCII characters) |
4167C | Used for intermission; charset or BGMap? | |
41978 | Pointed to by pointer at 419B8 | |
419B8 | A list of pointers accessed by function DA1A | |
41AFA | Accessed by DA1A | |
41B1C | s16 kMonsterKind[] | Monster kinds; see InsmEdit readme |
41B78 | Pointers to charsets for each monster kind (4 words) | |
41C58 | Monster lists; see InsmEdit readme | |
42450 | tyROMMonster* kMonsters[] | Pointers to monster lists (sorted by password index) |
4D0A0 | Monster data? | |
4D0E0 | Monster data? Accessed by function F3A2 | |
4D1D8 | Accessed by function 118C8 | |
4D2F8 | Charset: I'MAX logo | |
4E2F8 | BGMap: I'MAX | |
4F0F8 | Charset for mansion exterior etc. | |
510F8 | Charset for mansion exterior and clouds | |
528F8 | BGMap of trees and high fog; charset 0 is 4F0F8 | |
53CF8 | BGMap of mansion exterior; charset 0 is 4F0F8 | |
54CF8 | BGMap of clouds? | |
57CF8 | Charset: close-up of mansion door | |
59CF8 | Charset: close-up of mansion door | |
5BCF8 | BGMap: close-up of mansion door; charset 0 and 1 are 57CF8 | |
5CAF8 | BGMap: close-up of mansion door; charset 0 and 1 are 57CF8 | |
5E8F8 | Charset: monster face close-up - face | |
608F8 | Charset: monster face close-up - eyes and teeth | |
618F8 | BGMap for monster face close-up; charset 0 is 5E8F8, 1 is 608F8 | |
758C8 | Charset: moon? | |
779F8 | BGMap: moon? | |
857F8 | Charset for title screen: title, circle, "NEW GAME"/"PASSWORD" | |
877F8 | Charset for title screen: background, copyright | |
88DF8 | BGMap for title screen; charset 0 is 857F8, 1 is 877F8 | |
8ADF8 | BGMap for title screen; spinning creature; charset 0 is 857F8 | |
8B5F8 | Charset for intermission, password entry, death-by-monster game over | |
8D5F8 | Charset for password entry; letters and some of the background | |
8E5F8 | BGMap for password entry; charset 0 is 8B5F8, 1 is 8D5F8 | |
8F3F8 | BGMap for password entry; charset 0 is 8B5F8, 1 is 8D5F8 | |
905F8 | Charset for intermission (large password letters etc.) | |
915F8 | BGMap for intermission; charset 0 is 8B5F8 | |
945F8 | Charset for monster game over? | |
955F8 | BGMap for monster game over? | |
9A8F8 | Charset for monsters of kind 0 (1024 characters) | |
9E0F8 | Charset for monsters of kind 1 (1024 characters) | |
A20F8 | Charset for monsters of kind 2 (1024 characters) | |
A60F8 | Charset for monsters of kind 3 (1024 characters) | |
AA0F8 | Charset for floor, ceiling, walls (256 characters) | |
AB0F8 | Charset for floor, ceiling, walls, "moving parts" | |
AC0F8 | Charset for floor, ceiling, walls | |
AD0F8 | Charset for automap | |
AE0F8 | Charset for timer numbers, orbs, hearts, ammo, key, lights, etc. | |
AF0F8 | Charset for precaution screen | |
B00F8 | Font charset: 8x8 hiragana, 8x8 katakana, 8x8 Latin, "AUTO PAUSE", large kanji | |
B10F8 | Charset for credits roll | |
B3BF8 | Charset for picture at credits roll | |
B40F8 | Charset for credits roll | |
B70F8 | Charset for intermission map screen | |
B80F8 | Charset for level names on intermission map screen (each name has 4 characters, so 64 bytes) | |
B90F8 | First person view BGMap; charset 0 is AA0F8, others unknown | |
BB0F8 | Same as previous BGMap but for other eye | |
BD0F8 | BGMaps for doors, charset 0 is AA0F8, others unknown | |
BF0F8 | Same as previous BGMap but for other eye | |
C10F8 | Unknown BGMap | |
C30F8 | Same as previous BGMap but for other eye | |
C50F8 | Unknown BGMap | |
C70F8 | Same as previous BGMap but for other eye | |
C90F8 | BGMap for automap; charset 0 is AD0F8 | |
CB0F8 | Automatic pause BGMap; charset 0 is B00F8, charset 3 unknown | |
CD0F8 | Credits roll BGMap | |
CF0F8 | Credits roll BGMap | |
D10F8 | BGMap for intermission map (top and bottom); charset 0 is B70F8 | |
D30F8 | BGMap for intermission map (diagram & names); charset 0 is B70F8 | |
D51B0 | Player starting positions; see InsmEdit readme | |
D520D | Player starting directions; halfwords, values as in WRAM | |
D5268 | Layouts; see InsmEdit readme | |
DB7A8 | Not a layout but accessed by function 1237C | |
DBC28 | End of layouts, pointers to layouts, sorted by password index | |
DBCE0 | tyLvProps kLvProps[] | End of layout pointers, level properties; see InsmEdit readme |
DBDF4 | End of level properties, this somehow affects rendering and the HUD | |
? | Incomplete Latin/hiragana font for precaution screen | |
DCDE8 | Accessed by function 12F7C - first halfwords of world properties? | |
DCDF0 | Halfword - accessed by function 17526 | |
DCDF4 | Charset for alignment screen | |
E0DF4 | BGMap for precaution screen | |
E1BF4 | BGMap for adjustment screen (left); charset 0 is DCDF4 | |
E29F4 | BGMap for adjustment screen (right); charset 0 is DCDF4 | |
E37F4 | BGMap for automatic pause option screen | |
E61F4 | Another 8x8 Latin font, monkey sprites, Nintendo logo (from Sample Soft for VUE Programming) | |
EA230 | WAM data | |
EA260 | WAM data for credits roll | |
EB318 | Something related to waveforms | |
EC2C9 | Start of SFX pointers? (Non-contiguous?) | |
ECF5B | "Three-part sawtooth" waveform | |
ECFDB | Sawtooth waveform: starts with 0, ends with 31 | |
ED05B | Sawtooth waveform: starts with 0, ends with 7 | |
ED0DB | "Two-part sawtooth" waveform | |
ED15B | Square waveform (min 0, max 49) | |
ED1DB | "All silence" waveform, constantly 49 | |
ED2E0 | Nothing more except ROM footer |
Specifies the possible next levels for each level by password index. The array is sorted by password index. Values 0xF0 to 0xF3 specify endings.
typedef struct
{
s16 UpperLevel;
s16 LowerLevel;
} tyNextLevel;
Specifies which kind of monsters appears in each level. The array is sorted by password index. Possible values:
Value | Kind |
---|---|
0 | Big-mouthed, small-eyed monsters |
1 | Big-eyed monsters |
2 | Monkey-faced (as in ROPE) |
3 | Faceless (as in HYDE) |
Other values turn the monsters into garbage.
typedef struct
{
s16 Unknown; // A value of 0xFF terminates the array.
s16 Direction; // Camera direction
s16 Position; // Camera coordinates
} tyROMDemoData;
There are two additional padding bytes, so the whole structure is 8 bytes long.