インスマウスの館 ROM map

All addresses are in hexadecimal.

AddressC definitionDescription
0Switch lookup table for function 81C4 (8 words)
64Switch lookup table for function 11ED0 (9 words)
88Other switch lookup tables
168Start of nothing
8000Start of code
1B248Start of nothing
40000s16 kColumnTable[]Column table for both screens (512 bytes)
40600Accessed by function 95B2
40610WAM data
40798tyROMDemoData kDemoData[]DEMO playback data; see below
40958End of DEMO playback data
40968WAM data for ending A
412DCAccessed by function C66E
41324tyNextLevel kNextLevel[]Next level data; see below
415C0char kPassword[]Passwords; see InsmEdit readme (ASCII characters)
4167CUsed for intermission; charset or BGMap?
41978Pointed to by pointer at 419B8
419B8A list of pointers accessed by function DA1A
41AFAAccessed by DA1A
41B1Cs16 kMonsterKind[]Monster kinds; see InsmEdit readme
41B78Pointers to charsets for each monster kind (4 words)
41C58Monster lists; see InsmEdit readme
42450tyROMMonster* kMonsters[]Pointers to monster lists (sorted by password index)
4D0A0Monster data?
4D0E0Monster data? Accessed by function F3A2
4D1D8Accessed by function 118C8
4D2F8Charset: I'MAX logo
4E2F8BGMap: I'MAX
4F0F8Charset for mansion exterior etc.
510F8Charset for mansion exterior and clouds
528F8BGMap of trees and high fog; charset 0 is 4F0F8
53CF8BGMap of mansion exterior; charset 0 is 4F0F8
54CF8BGMap of clouds?
57CF8Charset: close-up of mansion door
59CF8Charset: close-up of mansion door
5BCF8BGMap: close-up of mansion door; charset 0 and 1 are 57CF8
5CAF8BGMap: close-up of mansion door; charset 0 and 1 are 57CF8
5E8F8Charset: monster face close-up - face
608F8Charset: monster face close-up - eyes and teeth
618F8BGMap for monster face close-up; charset 0 is 5E8F8, 1 is 608F8
758C8Charset: moon?
779F8BGMap: moon?
857F8Charset for title screen: title, circle, "NEW GAME"/"PASSWORD"
877F8Charset for title screen: background, copyright
88DF8BGMap for title screen; charset 0 is 857F8, 1 is 877F8
8ADF8BGMap for title screen; spinning creature; charset 0 is 857F8
8B5F8Charset for intermission, password entry, death-by-monster game over
8D5F8Charset for password entry; letters and some of the background
8E5F8BGMap for password entry; charset 0 is 8B5F8, 1 is 8D5F8
8F3F8BGMap for password entry; charset 0 is 8B5F8, 1 is 8D5F8
905F8Charset for intermission (large password letters etc.)
915F8BGMap for intermission; charset 0 is 8B5F8
945F8Charset for monster game over?
955F8BGMap for monster game over?
9A8F8Charset for monsters of kind 0 (1024 characters)
9E0F8Charset for monsters of kind 1 (1024 characters)
A20F8Charset for monsters of kind 2 (1024 characters)
A60F8Charset for monsters of kind 3 (1024 characters)
AA0F8Charset for floor, ceiling, walls (256 characters)
AB0F8Charset for floor, ceiling, walls, "moving parts"
AC0F8Charset for floor, ceiling, walls
AD0F8Charset for automap
AE0F8Charset for timer numbers, orbs, hearts, ammo, key, lights, etc.
AF0F8Charset for precaution screen
B00F8Font charset: 8x8 hiragana, 8x8 katakana, 8x8 Latin, "AUTO PAUSE", large kanji
B10F8Charset for credits roll
B3BF8Charset for picture at credits roll
B40F8Charset for credits roll
B70F8Charset for intermission map screen
B80F8Charset for level names on intermission map screen (each name has 4 characters, so 64 bytes)
B90F8First person view BGMap; charset 0 is AA0F8, others unknown
BB0F8Same as previous BGMap but for other eye
BD0F8BGMaps for doors, charset 0 is AA0F8, others unknown
BF0F8Same as previous BGMap but for other eye
C10F8Unknown BGMap
C30F8Same as previous BGMap but for other eye
C50F8Unknown BGMap
C70F8Same as previous BGMap but for other eye
C90F8BGMap for automap; charset 0 is AD0F8
CB0F8Automatic pause BGMap; charset 0 is B00F8, charset 3 unknown
CD0F8Credits roll BGMap
CF0F8Credits roll BGMap
D10F8BGMap for intermission map (top and bottom); charset 0 is B70F8
D30F8BGMap for intermission map (diagram & names); charset 0 is B70F8
D51B0Player starting positions; see InsmEdit readme
D520DPlayer starting directions; halfwords, values as in WRAM
D5268Layouts; see InsmEdit readme
DB7A8Not a layout but accessed by function 1237C
DBC28End of layouts, pointers to layouts, sorted by password index
DBCE0tyLvProps kLvProps[]End of layout pointers, level properties; see InsmEdit readme
DBDF4End of level properties, this somehow affects rendering and the HUD
?Incomplete Latin/hiragana font for precaution screen
DCDE8Accessed by function 12F7C - first halfwords of world properties?
DCDF0Halfword - accessed by function 17526
DCDF4Charset for alignment screen
E0DF4BGMap for precaution screen
E1BF4BGMap for adjustment screen (left); charset 0 is DCDF4
E29F4BGMap for adjustment screen (right); charset 0 is DCDF4
E37F4BGMap for automatic pause option screen
E61F4Another 8x8 Latin font, monkey sprites, Nintendo logo (from Sample Soft for VUE Programming)
EA230WAM data
EA260WAM data for credits roll
EB318Something related to waveforms
EC2C9Start of SFX pointers? (Non-contiguous?)
ECF5B"Three-part sawtooth" waveform
ECFDBSawtooth waveform: starts with 0, ends with 31
ED05BSawtooth waveform: starts with 0, ends with 7
ED0DB"Two-part sawtooth" waveform
ED15BSquare waveform (min 0, max 49)
ED1DB"All silence" waveform, constantly 49
ED2E0Nothing more except ROM footer

Structures

Next level data

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;

Monster kind array

Specifies which kind of monsters appears in each level. The array is sorted by password index. Possible values:

ValueKind
0Big-mouthed, small-eyed monsters
1Big-eyed monsters
2Monkey-faced (as in ROPE)
3Faceless (as in HYDE)

Other values turn the monsters into garbage.

DEMO playback data

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.


First published on .
Last updated on .

Table of contents

Contact me