If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

Notes:Addams Family Values (SNES)

From The Cutting Room Floor
Jump to navigation Jump to search

This page contains notes for the game Addams Family Values (SNES).

Memory Addresses

7E0060 - in object scripts, holds 24-bit jump address to routines (object script command FC)
7E0074 - temp RAM - pointer (24-bit) to current event script command being executed

7E00A0 - object index (ex: 00EE = Fester)

7E0104 - frame counter since last controller input (16-bit)
7E0106 - frame counter (16-bit)

7E0234 - RNG value (16-bit) seed = #$5257

7E0414 - if #$5257 (ASCII RW), allowed access to debug menu and debug WTW/collision disable. if non-zero, allowed access to debug menu functions and debug inventory. if zero, no debug access.

7E0658 - SECTION

7E065E - ROOM

7E07C2 - direction facing? (TODO) see also 7E104F

7E088A - set to #$0001 if completed event script where currently standing (set to #$0000 after walking away) TODO

7E0BB4 - currently equipped item index (16-bit) (see RAM range starting at 7EE9D7 below for item ID) FFFF=nothing equipped

7E0DFB - P1 controller presses 0100=right 0200=left 0400=down 0800=up

7E1027 - multiple bits 0001=Fester movement enabled 0004=unknown

7E104F - Fester direction facing 0001=left 0002=right 0004=up 0008=down
7E1051 - counter for Fester pressed against an object or wall

7E105D - pointer to object script (16-bit)

7E9000,object object ID

7E91E0,object x coord? 
7E92D0,object y coord?
7E93C0,object ???

7E9870,object ???

7E9B42,object ???
7E9C32,object countdown timer for object
7E9D22,object frame counter for object
7E9E12,object animation frame index (TODO - check if stored as 8-bit or 16-bit)
7E9F02,object ???

7EA72E,object ??? (possibly a script pointer)

7EA90E,object script pointer used by commands DA,D9
7EA9FE,object script pointer used by commands A5,A4
7EAAEE,object processor status - uses bits 0x80 (negative) 0x02 (zero) 0x01 (carry)

7EACCE,object movement counter (object keeps moving until counter reaches 0?)

7EB08E,object x coord copied from 7E91E0,object?
7EB17E,object y coord copied from 7E92D0,object?

7EB62E,object ??? used by command D8
7EB71E,object ??? used by command D7
7EB80E,object ??? used by command D6
7EB8FE,object ??? used by command D5
7EB9EE,object ??? used by command D4
7EBADE,object ??? used by command D3
7EBBCE,object ??? used by command D5
7EBCBE,object ??? used by command D4
7EBDAE,object ??? used by command D3

7EBE9E,object multiple bits (Fester touched object, draw object) bit 0x02 used by command DE TODO
7EBF8E,object ???

7EC07E,object ??? used by command CF
7EC16E,object ???
7EC25E,object ???
7EC34E,object ??? used by command BB

7EC52E,object ??? used by command B8

7ECD9E,object if value isn't #$4321, the object being touched is an item that can be picked up

7ED15E,object ??? used by command B1

Cutscene flags (16-bit) 0000=off FFFF=viewed cutscene
7EE8BA - ID 00 Front gate
7EE8BC - ID 01 Smashed pillar hidden staircase
7EE8BE - ID 02 Bookcase (MANSION ROOM 010)
7EE8C0 - ID 03 Wednesday pumpkin
7EE8C2 - ID 04 Petrified wilderness
7EE8C4 - ID 05 Swamp
7EE8C6 - ID 06 Uncle Fritz
7EE8C8 - ID 07 Mansion
7EE8CA - ID 08 Pipe ready to burst
7EE8CC - ID 09 Foul sewage
7EE8CE - ID 0A Congratulations! Ending
7EE8D0 - ID 0B Gargoyle
7EE8D2 - ID 0C Thing escapes up the vine
7EE8D4 - ID 0D Bookcase (MANSION ROOM 011)
7EE8D6 - ID 0E Bookcase (MANSION ROOM 012)
7EE8D8 - ID 0F Bookcase (MANSION ROOM 013)

Event flags 0x7A total (8-bit) 00=off FF=on
7EE8DE

7EE94F door in final boss room FF=open 00=closed - set in MANSION ROOM 019, checked in MANSION ROOM 019

7EE956 Jellinsky defeated - set in MANSION ROOM 037

Event flags (8-bit) 00=off FF=on
7EE958

Items (8-bit) 00=nothing FF=have item
7EE9D7 ID 00 THE GREENHOUSE KEY (added SWAMPS ROOM 008)
7EE9D8 ID 01 A GREEN KEY (added GREENHSE ROOM 004)
7EE9D9 ID 02 A SKULL KEY
7EE9DA ID 03 THE STONE TWIG KEY
7EE9DB ID 04 A JEWELLED KEY
7EE9DC ID 05 THE STONE KEY
7EE9DD ID 06 THE SPIDER KEY
7EE9DE ID 07 THE IRON KEY
7EE9DF ID 08 DRAGON BELCH COOKIE
7EE9E0 ID 09 BLACK BEETLE COOKIE
7EE9E1 ID 0A CRUSTY COOKIE
7EE9E2 ID 0B CRUMBLE COOKIE
7EE9E3 ID 0C DRAGON BELCH COOKIE
7EE9E4 ID 0D BLACK BEETLE COOKIE
7EE9E5 ID 0E CRUSTY COOKIE
7EE9E6 ID 0F CRUMBLE COOKIE
7EE9E7 ID 10 RED POTION
7EE9E8 ID 11 PORTAL POTION (unused)
7EE9E9 ID 12 SLIMMING POTION
7EE9EA ID 13 BOTTLE OF DR JIBES PLANT FOOD (added GREENHSE ROOM 020)
7EE9EB ID 14 SMALL ROCKS
7EE9EC ID 15 BLUE MARBLES
7EE9ED ID 16 MAGICAL SEEDS
7EE9EE ID 17 SWAMP SLIME
7EE9EF ID 18 CLYDE'S COOKIE COMPENDIUM
7EE9F0 ID 19 BIG BOOK OF BISCUITS
7EE9F1 ID 1A MAX's MUNCH MANUAL
7EE9F2 ID 1B JOURNAL (added ENDBAD 0 ROOM 000 - Gomez)
7EE9F3 ID 1C PUMPKIN (added GREENHSE ROOM 004)
7EE9F4 ID 1D HEADLESS TEDDY
7EE9F5 ID 1E SACK OF GOLD
7EE9F6 ID 1F CANDLE (added DUNGEON ROOM 117)
7EE9F7 ID 20 BONE SPOON
7EE9F8 ID 21 SKULL RATTLE (added ROCKIES ROOM 000 - Phweep)
7EE9F9 ID 22 BOOK OF FLYING
7EE9FA ID 23 BLACK ROSE (added DUNGEON ROOM 015)
7EE9FB ID 24 MUSICAL BOX
7EE9FC ID 25 AMULET OF TRUESIGHT
7EE9FD ID 26 SHOCKWAVE
7EE9FE ID 27 SPIDERS EYE
7EE9FF ID 28 MAGNET
7EEA00 ID 29 STRANGE BLACK CUBE
7EEA01 ID 2A STONE BUTTON
7EEA02 ID 2B LARGE VINE
7EEA03 ID 2C FIREFLY
7EEA04 ID 2D LURCH'S BOWLING BALL
7EEA05 ID 2E BLACK EGG (unused)
7EEA06 ID 2F GOLD COIN

Temporary event flags?
7EEA09

Map Script Commands

0000 ???? ???? ???? use exit unverified TODO
0100 ii00 add item - ii=index of item to add, range $00-2F (see Memory Addresses for list)
0200 ????
0300 unknown, has no arguments?
0400 unknown, has no arguments?
0500 ???? ???? ???? probably a warp command
0600 ???? ???? ???? probably a warp command
0700 ???? ???? ???? probably a warp command
0800 ??00 ??00 ??00 warp - TODO
0900 ???? ???? ???? probably a warp command
0A00 ii00 display cutscene - cc=index of cutscene to display, range $00-0F (see Memory Addresses for list)
0B00 ii00 vv00 flip bits (8-bit) - if RAM address is #$00, flip all bits (set to #$FF) if X button pressed. if RAM address already non-zero, do ??? - ii=index to base RAM table vv=value to add to base address for final RAM address
0C00 ii00 vv00 set RAM address to #$FF (8-bit) if X button pressed - ii=index to base RAM table vv=value to add to base address for final RAM address
0D00 ii00 vv00 set RAM address to #$00 (8-bit) if X button pressed - ii=index to base RAM table vv=value to add to base address for final RAM address
0E00 ii00 display textbox - ii=index of textbox to display, range $00-C1 (range needs verification)
0F00 ???? unknown TODO
1000 ii00 vv00 tttt ffff if statement - ii=index to base RAM table vv=value to add to base address for final RAM address tttt=pointer to event if RAM zero ffff=pointer to event if RAM non-zero
1100 ii00 vv00 ii00 vv00 tttt ffff if statement - multiple RAM addresses - ii=index to base RAM table vv=value to add to base address for final RAM address tttt=pointer to event if true ffff=pointer to event if false TODO
1200 probably an if statement TODO
1300 probably an if statement TODO
1400 ii00 jump to event - ii=index (multiply x2) of event to jump to
1500 ii00 vv00 flip bits (8-bit) - if RAM address is #$00, flip all bits (set to #$FF) if RAM address already non-zero, do ???  - ii=index to base RAM table vv=value to add to base address for final RAM address TODO
1600 ii00 vv00 flip bits (8-bit) - if RAM address is #$00, flip all bits (set to #$FF) - ii=index to base RAM table vv=value to add to base address for final RAM address
1700 ii00 multipurpose - performs a special action - ii=index (multiply x2) for pointer table at $80FB96-80FBAD, range $00-0B
1800 ii00 vv00 clear bits (8-bit) - if RAM address is non-zero, clear all bits (set to #$00) - ii=index to base RAM table vv=value to add to base address for final RAM address
1900 set Continue point (NEEDS VERIFICATION)
1A00 ii00 play sound effect - ii=index of sound effect
FFFF end script

RAM Base Address

Value for ii used by map script commands 0B, 0C, 0D, 10, 11, 15, 16, 18 and maybe more

00 - 7EE8DE event flags
01 - 7EE9D7 inventory
02 - 7EEA09 temp. event flags?
03 - FFFFFFFF likely an unused slot
04 - 7EE958 event flags
05 - 12341234 currently equipped item in 7E0BB4 (16-bit)
Example:

Map script located at SNES addressd $8A8F7B
0C00 0400 0000 (7EE958 set to #$FF, switch pressed flag)
0C00 0000 0000 (7EE8DE set to #$FF, gate open flag)
1A00 2800 (play sound effect #$28- pressed switch)
FFFF (end)

Map Script Command 17

00 - if 7EE764 (16-bit) value is non zero, store #$0001 to 7EE788
01 - if 7EE764 (16-bit) value is non zero, store #$0001 to 7EE78C - used in GREENHSE ROOM 003
02 - if 7EE764 (16-bit) value is non zero, store #$0001 to 7EE78A
03 - store #$0001 (1. ACTIVE) to 7EE762 (RIMB SIGN) 
04 - store #$0001 to 7EE786
05 - store #$0002 to 7EE786
06 - store #$0003 to 7EE786
07 - store #$0001 to 7EE782
08 - checks 7E0D18, then writes #$0007 to RAM range 7E0C5A-7E0C79 ($20 total) TODO
09 - compares 7E0870 to 7E087A and 7E087C - TODO
0A - display text index #$00C1 "HEY I CAN'T LEAVE JUST YET(...)" when trying to use the south exit at the very beginning of the game
0B - if 7EE764 (MOROBE4) and 7EE766 (MOROBE5) are both #$0001 (1. ACTIVE), set 7EE760 (MOROBE2) to #$0002 (2. SLEEP) and 7EE6F2 (MOROBE3) to #$0001 (1. ACTIVE) - TODO NEEDS VERIFICATION

Object Script Commands

Command, EOR #$FF then ASL, Offset, Length, Description

<80 display animation frame
FF   00x02=00   83B933   03   FF vvvv unfinished or placeholder or unused. vvvv=16-bit value note: loads the value into accumulator and exits, but accumulator is then overwritten by the next script command to load
FE   01x02=02   83B939   03   FE vvvv store 16-bit value to 7EB942,object. vvvv=16-bit value TODO
FD   02x02=04   83B945   05   FD aaaaaaaa jump to programming then resume script. aaaaaaaa=jml address note: pushes #$83, and also Y
FC   03x02=06   83B962   05   FC aaaaaaaa jump to programming then end script. aaaaaaaa=jml address note: pushes #$83
FB   04x02=08   83B97E   07   FB vvvv aaaaaaaa store 16-bit value. vvvv=16-bit value aaaaaaaa=address to store to
FA   05x02=0A   83B994   09   FA vvvvvvvv aaaaaaaa store 32-bit value. vvvvvvvv=32-bit value aaaaaaaa=address to store to
F9   06x02=0C   83B9B6   05   F9 vvvv aaaa store 16-bit value indexed. vvvv=16-bit value aaaa=address to store to,object
F8   07x02=0E   83B9CF   07   F8 vvvv aaaaaaaa comparison. vvvv=value to compare aaaaa=address note: saves comparison result to 7EAAEE,object TODO
F7   08x02=10   83B9F3   05   F7 vvvv aaaa comparison. vvvv=16-bit value to compare aaaa=address + 7E0000 + object index x2 note: saves comparison result to 7EAAEE,object TODO
F6   09x02=12   83BA1A   03   F6 aaaa branch. aaaa=address to branch to if value at 7EAAEE,object is zero
F5   0Ax02=14   83BA35   03   F5 aaaa branch. aaaa=address to branch to if value at 7EAAEE,object is non-zero
F4   0Bx02=16   83BA50   03   F4 aaaa branch. aaaa=address to branch to if value at 7EAAEE,object is positive
F3   0Cx02=18   83BA6B   03   F3 aaaa branch. aaaa=address to branch to if value at 7EAAEE,object is negative
F2   0Dx02=1A   83BA86   03   F2 aaaa branch. aaaa=address to branch to if carry clear at 7EAAEE,object
F1   0Ex02=1C   83BAA1   03   F1 aaaa branch. aaaa=address to branch to if carry set at 7EAAEE,object
F0   0Fx02=1E   83BABC   03   F0 aaaa jump to script. aaaa=address to jump to (local, must be within same bank)
EF   10x02=20   83BAC5   01   EF end script (sets carry flag to exit)
EE   11x02=22   83BAC7   01   EE remove object and end script? note: stores #$0000 to 7EA72E,object 7E9870,object 7E9B42,object TODO
ED   12x02=24   83BB3E   01   ED remove object and end script? note: stores #$0000 to 7E9B42,object TODO
EC   13x02=26   83BB4C   03   EC vvvv reset object timer vvvv=16-bit timer value to set at 7E9C32,object note: sets 7E9D22,object counter to zero
EB   14x02=28   83BB5F   03   EB vvvv coordinates comparison of distance between objects? vvvv=value note: saves comparison result (carry flag set/not set) to 7EAAEE,object TODO
EA   15x02=2A   83BC09   05   EA oooo vvvv spawn object. oooo=object ID vvvv=16-bit value to store to 7EA72E,object (possibly a script pointer) note: appears to be used for dropped items (eg: skull health refill)
E9   16x02=2C   83BD14   01   E9 copy object properties? uses 7EBF8E,object to copy values at 7E91E0,object 7E92D0,object 7E93C0,object 7E9F02,object TODO
E8   17x02=2E   83BD45   03   E8 appears to link multi-part objects? vvvv=16-bit value note: value 0100 is valid TODO
E7   18x02=30   83BDEC   05   E7 aaaa bbbb add values. aaaa=16-bit value to add to 7E91E0,object bbbb=16-bit value to add to 7E92D0,object TODO
E6   19x02=32   83BE0A   05   E6 aaaa bbbb unknown. aaaa=16-bit value added with 7E91E0,object then stored to 7E0A94 bbbb=16-bit value added with 7E92D0,object then stored to 7E0A96
E5   1Ax02=34   83BE55   03   E5 vvvv store value to 7EC16E,object. vvvv=16-bit value
E4   1Bx02=36   83BE61   03   E4 aaaa branch. aaaa=address to branch to if value at 7EC16E,object is positive
E3   1Cx02=38   83BE7B   01   E3 copy object unknown properties. copies 7E91E0,object to 7EB08E,object. copies 7E92D0,object to 7EB17E, object. copies 7E93C0, object to 7EB26E,object note: opposite of command E2 TODO
E2   1Dx02=3A   83BE97   01   E2 copy object unknown properties. copies 7EB08E,object to 7E91E0,object. copies 7EB17E,object to 7E92D0, object. copies 7EB26E, object to 7E93C0,object note: opposite of command E3 TODO
E1   1Ex02=3C   83BEB3   05   E1 vvvv aaaa add value to address indexed. vvvv=16-bit value to add aaaa=address + 7E0000 + object index x2 note: use #$FFFF for -1
E0   1Fx02=3E   83BEDD   07   E0 vvvv aaaaaaaa add value to address. vvvv=16-bit value to add aaaaaaaa=address
DF   20x02=40   83BEF6   03   DF vvvv store value to 7EC25E,object. vvvv=16-bit value TODO
DE   21x02=42   83BF02   01   DE toggle bit $02 (zero flag) in 7EBE9E,object. note: saves comparison result to 7EAAEE,object TODO
DD   22x02=44   83BF1D   01   DD unknown possible coordinates comparison. note: saves comparison result to 7EAAEE,object TODO
DC   23x02=46   83BFBC   01   DC unknown possible remove object. checks 7EBF8E,object
DB   24x02=48   83BDE9   01   DB jump. branches over the next byte in the script. likely used to jump over a script ending command
DA   25x02=4A   83C016   03   DA aaaa jump to script and store return address in 7EA90E,object aaaa=address to jump to (local/must be within same bank)
D9   26x02=4C   83C02D   01   D9 return from script by loading return address from 7EA90E,object
D8   27x02=4E   83C03A   03   D8 vvvv store value to 7EB62E,object. vvvv=16-bit value TODO
D7   28x02=50   83C046   03   D7 vvvv store value to 7EB71E,object. vvvv=16-bit value TODO
D6   29x02=52   83C052   03   D6 vvvv store value to 7EB80E,object. vvvv=16-bit value TODO
D5   2Ax02=54   83C05E   05   D5 aaaa bbbb unknown. aaaa=value to store to 7EB8FE,object. bbbb=value to store to 7EBBCE,object TODO
D4   2Bx02=56   83C072   05   D4 aaaa bbbb unknown. aaaa=value to store to 7EB9EE,object. bbbb=value to store to 7EBCBE,object TODO
D3   2Cx02=58   83C086   05   D3 aaaa bbbb unknown. aaaa=value to store to 7EBADE,object. bbbb=value to store to 7EBDAE,object TODO
D2   2Dx02=5A   83C09A   01   D2 unknown. adds value to various RAM addresses including 7EB8FE,object with 7EBBCE,object and 7EB9EE,object with 7EBCBE,object and 7EBADE,object with 7EBDAE,object also adds to 7E91E0,object and 7E92D0,object and 7E93C0,object TODO
D1   2Ex02=5C   83C10A   01   D1 unknown. TODO
D0   2Fx02=5E   83C1FE   01   D0 transfer object properties? loads value from 7EBF8E,object then if non-negative uses 7EB8FE,object and 7EB9EE,object and 7EB62E,object and 7EB71E,object and 7EBBCE,object and 7EBCBE,object TODO
CF   30x02=60   83C20C   01   CF transfer object properties? loads value from 7EC07E,object then if non-negative uses 7EB8FE,object and 7EB9EE,object and 7EB62E,object and 7EB71E,object and 7EBBCE,object and 7EBCBE,object TODO
CE   31x02=62   83C257   05   CE ffff tttt add value from RAM address. ffff=RAM address containing 16-bit value to add + 7E0000 + object index x2 tttt=RAM address to add to + 7E0000 + object index x2 note: saves processor status 7EAAEE,object
CD   32x02=64   84C28C   03   CD vvvv set bits vvvv=bits to set in RAM address 7EBE9E,object
CC   33x02=66   83C29C   03   CC vvvv clear bits vvvv=bits to clear in RAM address 7EBE9E,object
CB   34x02=68   83C2B3   03   CB vvvv unknown comparison. vvvv=value to compare to 7EBE9E,object note: saves processor status 7EAAEE,object
CA   35x02=6A   83C2D0   03   CA vvvv flip bits. vvvv=value to XOR with 7EBE9E,object
C9   36x02=6C   83C2E4   03   C9 aaaa flip all bits and increment. aaaa=address to modify + 7E0000
C8   37x02=6E   83C2FD   05   C8 ffff tttt copy 16-bit value indexed. ffff=RAM address to copy from + 7E0000 + object index x2 tttt=RAM address to copy to + 7E0000 + object index x2
C7   38x02=70   83C31E   07   C7 pppp vvvv aaaa add random number. pppp=number of possibilities for RNG vvvv=base value to add random number to aaaa=address to store result to + 7E0000
C6   39x02=72   83C342   03   C6 aaaa set new timer from RAM address and reset counter. aaaa=address to load new timer value from + 7E0000 then store to 7E9C32,object (timer) and also store #$0000 to 7E9D22,object (counter)
C5   3Ax02=74   83C361   03   C5 aaaa decrement and store. aaaa=address to load value from + 7E0000 and then decrement and store result to 7EC16E,object TODO
C4   3Bx02=76   83C37A   01   C4 unknown. TODO
C3   3Cx02=78   83C45B   05   C3 aaaa bbbb comparison of two RAM addresses. aaaa=address to load from + 7E0000,object bbbb=address to load from + 7E0000,object note: saves comparison result to 7EAAEE,object
C2   3Dx02=7A   83C48D   09   C2 aaaa bbbb cccc dddd store value based on object direction facing? loads 7E9F02,object then aaaa=store to 7E9B42,object if #$0004 bbbb=store to 7E9B42,object if #$0008 cccc=store to 7E9B42,object if #$0001 dddd=store to 7E9B42,object if #$0002 TODO
C1   3Ex02=7C   83C4D1   03   C1 uuuu unknown. TODO
C0   3Fx02=7E   83C579   05   C0 aaaa bbbb unknown possibly direction facing related. aaaa=address to load from + 7E0000,object bbbb=address to load from + 7E0000,object and later store result to TODO
BF   40x02=80   83C5E8   03   BF pppp get random number and store. pppp=number of possibilities for RNG stores random number to 7EC16E,object TODO
BE   41x02=82   83C5FA   05   BE aaaa bbbb unknown possibly used for mode7 effects. aaaa=address to load from + 7E0000,object bbbb=address to load from + 7E0000,object also uses 7E91E0,object and 7E92D0,object TODO
BD   42x02=84   83C669   05   BD vvvv wwww unknown. vvvv=value to store to 7E0642. wwww=value to store to 7E063E (add +1) also uses 7E91E0,object and 7E92D0,object TODO
BC   43x02=86   83C6F5   05   BC vvvv wwww unknown. vvvv=value to store to 7E0642. wwww=value to store to 7E063E (add +1) also uses 7E91E0,object and 7E92D0,object TODO
BB   44x02=88   83CA99   03   BB vvvv unknown. vvvv=value to store to 7EC34E,object TODO
BA   45x02=8A   83CAA5   07   BA vvvv aaaa bbbb unknown. vvvv=value to store to 7E001F temp aaaa=address to store to + 7E0000,object bbbb=address to store to + 7E0000,object TODO
B9   46x02=8C   83CB68   05   B9 aaaa bbbb unknown. aaaa=address to load value from + 7E0000,object then adds and stores to 7E91E0,object bbbb=address to load from + 7E0000,object then adds and stores to 7E92D0,object TODO
B8   47x02=8E   83CB9B   05   B8 vvvv wwww unknown. vvvv=value to store to 7E9B42,object if 7EC52E,object is zero wwww=value to store to if 7E9B42,object if 7EC52E,object is non-zero TODO
B7   48x02=90   83CBBF   05   B7 vvvv aaaa comparison. vvvv=value to compare aaaa=address + 7E0000,object which contains a pointer to the final address to compare to note: saves comparison result to 7EAAEE,object TODO
B6   49x02=92   83CBED   05   B6 vvvv aaaa store unknown. vvvv=value to store aaaa=address + 7E0000,object which contains a pointer to the final address to store to TODO
B5   4Ax02=94   83CC0C   07   B5 aaaa bbbbbbbb copy value. aaaa=address to load value from + 7E0000,object bbbbbbbb=address to store value to
B4   4Bx02=96   83CC31   03   B4 vvvv add value to RAM address. vvvv=value + #$0011 to store to 7E070B TODO
B3   4Cx02=98   83CC3E   03   B3 vvvv screen display/brightness. vvvv=value to store to register $2100 upper 8 bits ignored
B2   4Dx02=9A   83CC4B   05   B2 aaaa bbbb unknown possibly coordinates related. aaaa=address to load from + 7E0000,object also uses 7E91E0,object and 7E0A94 bbb=address to load from + 7E0000,object also uses 7E92D0,object and 7E0A96 TODO
B1   4Ex02=9C   83B811   05   B1 dddd tttt talk when press X button. dddd=distance between object and Fester (in pixels?) tttt=set to non-zero value to auto-talk when Fester within range note: uses 7ED15E,object and also saves comparison result to 7EAAEE,object TODO
B0   4Fx02=9E   83B919   03   B0 aaaa unknown. aaaa=address load value from indexed then add #$0011 and store to 7E070B TODO
AF   50x02=A0   83CCB3   03   AF aaaa unknown. aaaa=address to load from if value at 7EBF8E,object is positive then takes that value to use as an index and store obtained value to aaaa,object TODO
AE   51x02=A2   83CCD3   03   AE aaaa unknown. aaaa=address to load from if value at 7EC07E,object is positive then takes that value to use as an index and store obtained value to aaaa,object TODO
AD   52x02=A4   83CCF3   03   AD iiii unknown possibly play music or sound effect? iiii=index TODO
AC   53x02=A6   83CD02   05   AC aaaa bbbb possible play sound effect. aaaa=sound effect index? bbbb=unknown TODO
AB   54x02=A8   83CD51   05   AB iiii uuuu unknown. iiii=index(x2) to 81EC72,y uuuu=unknown 0000, 0001 or 0002 are known accepted values TODO
AA   55x02=AA   83B8A1   05   AA dddd tttt talk when press X button. dddd=distance between object and Fester (in pixels?) tttt=set to non-zero value to auto-talk when Fester within range note: saves comparison result to 7EAAEE,object TODO
A9   56x02=AC   83CD76   09   A9 uuuu iiii xxxx yyyy spawn item. uuuu=unknown, when #$FFFF do ??? iiii=item xxxx=x coord yyyy=y coord TODO
A8   57x02=AE   83CE95   03   A8 vvvv unknown. vvvv=value to add + #$0014 and store to 7E0870 used for ??? TODO
A7   58x02=B0   83BBC5   03   A7 dddd compare Y? coordinates. dddd=distance between object and Fester (in pixels?) note: saves comparison result to 7EAAEE,object TODO
A6   59x02=B2   83B7F9   01   A6 subtraction unknown. subtracts 7E93C0,object from 7E92D0,object and stores result to 7E92D0,object then sets 7E93C0,object to #$0000 TODO
A5   5Ax02=B4   83CEB8   03   A5 aaaa jump to script from RAM address,object. aaaa=address + 7E0000 containing script pointer and if it's non-zero, store current script to 7EA9FE,object
A4   5Bx02=B6   83CEE1   01   A4 return from script. loads script pointer from 7EA9FE,object

Sound Effects List

28 - pressed switch

Misc.

  • Cousin It is located in SWAMPS ROOM 006
  • Morobe/Black Egg is in MANSION ROOM 020 (the room before the final boss)