If you are still using the old URL (datacrystal.romhacking.net), please update your bookmarks! The old URL may stop working soon.
The current URL is datacrystal.tcrf.net.
The current URL is datacrystal.tcrf.net.
Crystal Beans from Dungeon Explorer/ROM map
Jump to navigation
Jump to search
The following article is a ROM map for Crystal Beans from Dungeon Explorer.
Overview
This present the layout of the ROM. Data with unknown function is omitted. The start of asm code whose function is known is mentioned under the code block definition. The function pointers used in a ShortSwitch() or LongSwitch() call are included in code blocks not in data blocks.
Core engine
- 000000-007E2E (32302) = Core engine asm code
- 000000 = IRQ handler
- returns carry set if mouse is plugged
- 000048 = BRK handler
- 000060 = Party:PreInitMembers()
- 000093 = Party:InitActiveMembers()
- 0000B8 = Party:InitMembers()
- 0000DC = ClearShadowRAM()
- 000103 = CharInfoArea:InitTextTilemapVRAM()
- 00011F = InitOAMData()
- 0002BC = HandleMapObjectsEvents?()
- 0002E9 = HandleEvents?()
- 000551 = Map:ShowVisibleObjs_S(byte levelIndex<$68>, byte RoomIndex<$67>)
- 000FB0 = HandleDemonGutsBossDlg?()
- 001A6B = HandleItemPicked?(byte objOfs<X>)
- 001A9A = CallPickedItemHandler(byte item<A>, byte objOfs<X>)
- 001AAB = Obj:IntBoosterPicked()
- This item was removed from finished game
- 001AD2 = Obj:AtkBoosterPicked()
- This item was removed from finished game
- 001AF9 = Obj:BootsPicked(byte objOfs<X>)
- 001B20 = Obj:StrBoosterPicked()
- This item was removed from finished game
- 001B47 = Obj:BigHeartPicked(byte objOfs<X>)
- 001B5E = Obj:BeanPicked(byte objOfs<X>)
- 001B8C = Obj:WhiteJarPicked(byte objOfs<X>)
- 001BAC = Obj:BlackSkullPicked(byte objOfs<X>)
- 001BCC = Obj:ScareEnemiesItemPicked()
- This item was removed from finished game
- 001BED = Obj:ConfuseEnemiesItemPicked()
- This item was removed from finished game
- 001C0E = Obj:MirrorPicked(byte objOfs<X>)
- 001C28 = Obj:LittleHeartPicked(byte objOfs<X>)
- 001C54 = Obj:CapePicked(byte objOfs<X>)
- 001C80 = Obj:UnkEffectOnEnemiesItemPicked()
- This item was removed from finished game
- 001CBE = Obj:RemoveItemAndPlaySound(byte objOfx<X>)
- 001CD8 = SetLevelFlag_S(byte bitIndex<A>, byte levelIndex<$68>)
- 001D64 = WaitForPlayerToPickGem()
- 001DD2 = LevelUpStat(byte statIndex<$DE>, byte memberIndex<$133A>)
- 0021B3 = SetPalette(byte palIndex<X>)
- 002692 = HandleThousandValleysBoss1Dlg?()
- 002B0A = HandleThousandValleysBoss2Dlg?()
- 0033A2 = HandleShoalTunnelBossDlg?()
- 003A0D = HandleDaimonHiddenIslandBoss1Dlg?()
- 0042EE = HandleDaimonHiddenIslandBoss3Dlg?()
- 004D2A = HandleGarnetCastleBoss2DlgAfter?()
- 005083 = HandleGarnetCastleBoss2DlgBefore?()
- 00542C = HandleBloodstoneCastleBoss2DlgAfter?()
- 005776 = HandleBloodstoneCastleBoss2DlgBefore?()
- 007659 = Dlg:Code22-Subcode03Handler()
- 0076BF = SetLevelUpRoom()
- 007722 = Dlg:Code22-Subcode04Handler()
- 007735 = Dlg:Code22-Subcode05Handler()
- 007761 = Dlg:Code22-Subcode06Handler()
- 0077D5 = ThousandValleysGasMaskCheck()
- 0077F4 = Dlg:Code22-Subcode08Handler()
- 007859 = Dlg:Code22-Subcode09Handler()
- 007867 = FirstDialogWithTheKing()
- 007885 = LabyrinthMoonlightLampCheck()
- 0078D8 = Dlg:Code22-Subcode0BHandler()
- 0078E9 = Dlg:Code22-Subcode0DHandler()
- 007905 = Dlg:Code22-Subcode11Handler()
- 00790F = Dlg:Code22-Subcode12Handler()
- Remove 5 black skulls from current player or change string if he doesn't have enough
- 007935 = Dlg:Code22-Subcode13Handler()
- 007968 = HandleThiefJoiningRoomDlg()
- 007987 = HandleRobotBrainRoomDlg()
- 0079A9 = Dlg:Code22-Subcode19Handler()
- 0079EA = WorldMap:SelectPlace()
- 007B97 = Dlg:LoadChosenPlaceNamePtr()
- 007B9F = Dlg:LoadCurPlaceNamePtr()
- 007BF5 = byte <X> WorldMap:HandleChoosePlaceInput()
- 000000 = IRQ handler
- 007E2F-007FFF (465) = Unknown data, doesn't seem to be referenced
- 008000-0083CB (971) = Core engine asm code
- 008000 = ABORT handler
- 008375 = CharInfoArea:SetFrame()
- 0083CC-0083E5 (26) = Direct HDMA table for initial BG1HOFS data
- 0083E6-0083EE (9) = Direct HDMA table for initial BGMODE data
- 0083EF-0083FE (16) = Direct HDMA table for initial BG1SC data
- 0083FF-008409 (11) = Direct HDMA table for initial BG12NBA data
- 00840A-008419 (16) = Indirect HDMA table for TM data
- 00841A-008429 (16) = Indirect HDMA table for CGADSUB data
- 00842A-008436 (13) = Indirect HDMA table for BG2HOFS data
- 008437-00881E (1000) = Core engine asm code
- 008437 = MainNMIHandlerInitVars()
- 0084AD = WriteOAMAndUpdateBG2ScrollData()
- 0084EA = EnableInterrupts()
- 0084F4 = DisableInterruptsAndStopDMA()
- 00850B = CopyPlayerButtonsHeld()
- 00853D = MainNMIHandler()
- 0086DD = ValidatePadData(byte padIndex<X>)
- 00870D = CopyPlayerButtonsHeldSleep_L(byte numFrameToSleep<A>)
- 008711 = CopyPlayerButtonsHeldSleep_S(byte numFrameToSleep<A>)
- 00873A = Obj:SetOAM?_S()
- 00881F-00886E (80) = Pointers used by Obj:SetOAM?_S()
- 00886F-0088D9 (107) = Core engine asm code (1 function)
- 0088DA-0089CA (241) = Data used by Obj:SetOAM?_S()
- 0089CB-0089CE (4) = SpritePosMultiplier?, used by function at 00886F
- 0089CF-008A5D (143) = Core engine asm code
- 0089CF = ShortSwitch(byte caseIndex<$0C35>)
- data following the JSR are short pointers to functions
- 0089E9 = LongSwitch(byte caseIndex<$0C35>)
- data following the JSR are long pointers to functions
- 008A15 = SPC:ClearLastCommandSent()
- 008A19 = SPC:SendCommand$F2()
- 008A2F = SPC:SendCommand?()
- 0089CF = ShortSwitch(byte caseIndex<$0C35>)
- 008A5E-008A66 (9) = Unknown data, doesn't seem to be referenced
- 008A67-008B00 (154) = Offset of the character sprite's first tile in the movement sprite graphics (77 words)
- 008B01-008B08 (8) = VRAM addresses for the character sprite graphics
- 008B09-008B0C (4) = Core engine asm code (Obj:SetOAM?_L())
- 008B0D-008B2C (32) = OAM offsets?
- 008B2D-008B34 (8) = Member:SpriteFirstTile (words)
- 008B35-008B4A (22) = Byte char stat list for Member:SpritePalettes?
- 008B4B-008B5A (16) = Unknown data
- 008B5B-008BA4 (74) = Some struct list terminated by 0xFFFF related to maps
- 008BA5-008BAC (8) = Core engine asm code (2 functions)
- 008BA5 = Map:ShowVisibleObjs_L()
- 008BA9 = Dlg:GetGameFlag_L()
- 008BAD-008C0E (97) = Unknown data
- 008C0F-008C24 (22) = Byte char stat list for CharInfoArea:CharNameTileLine
- 008C25-008C35 (17) = Unknown data
- 008C36-008C5D (40) = CharInfoArea:?OrgX[8][5] (indexed by [NumPlayers][MemberIndex])
- 008C5E-008C67 (10) = CharInfoArea:LivesIconXPositions[10]
- 008C68-008C71 (10) = CharInfoArea:MainWindowPos[5] (table of pointers to PlayerWindowPos struct list
- 008C72-008C76 (5) = PlayerWindowPos struct list for 1 player primary info window
- 008C77-008C7E (8) = PlayerWindowPos struct list for 2 players primary and secondary info windows
- 008C7F-008C89 (11) = PlayerWindowPos struct list for 3 players primary and secondary info windows
- 008C8A-008C97 (14) = PlayerWindowPos struct list for 4? players primary and secondary info windows
- 008C98-008CA8 (17) = PlayerWindowPos struct list for 5? players primary and secondary info windows
- 008CA9-008CAD (5) = PlayerWindowPos struct list for 1 player secondary info window
- 008CAE-008CC6 (25) = Tile numbers composing the empty info window with magic icons
- 008CC7-008CDF (25) = Tile numbers composing the empty info window
- 008CE0-008CE9 (10) = CharInfoArea:SecondaryWindowPos[5] (table of pointers to PlayerWindowPos struct list
- 008CEA-008CEE (5) = CharInfoArea:WindowLineTilemapIncrement[5]
- 008CEF-008CF8 (10) = Players:InfoWindowStartCol[5] (table of pointers to byte arrays)
- 008CF9-008D07 (14) = Data referenced by pointer table above
- 008D08-008D09 (2) = PowersOfTen[2] (used to draw numbers in the info windows)
- 008D0A-008D10 (7) = CharInfoArea:LevelWindowStringIndices[7]
- 008D11-008D29 (25) = CharInfoArea:SecondaryWindowOrgX[5][5] (indexed by [NumPlayers][MemberIndex])
- 008D2A-008D42 (25) = CharInfoArea:MainWindowOrgX[5][5] (indexed by [NumPlayers][MemberIndex])
- 008D43-008D4B (8) = CharInfoArea:StatBarChars[8]
- 008D4C-008D53 (8) = Unknown data
- 008D54-008D91 (62) = CharInfoArea:Strings[31] (table of 16-bits pointers to CharInfoArea:Strings
- 008D92-008E93 (258) = CharInfoArea:Strings
- 008E94-008E98 (5) = CharInfoArea:StartMenuWindowNormalStringIndices[5]
- 008E99-008E9D (5) = CharInfoArea:StartMenuWindowSelectedStringIndices[5]
- 008E9E-008EA0 (3) = CharInfoArea:MenuWindowNormalStringIndices[3]
- 008EA1-008EA3 (3) = CharInfoArea:MenuWindowSelectedStringIndices[3]
- 008EA4-008EEC (72) = Core engine asm code (1 function)
- 008EED-008F17 (43) = Unknown data, used by function above
- 008F18-008FFD (229) = Core engine asm code
- 008FFE-009003 (6) = Unknown data, doesn't seem to be referenced (two 3 bytes values?)
- 009004-0093BB (952) = Core engine asm code
- 0093BC-00944B (144) = Array of {word, byte} structs
- 00944C-0094C4 (79) = Core engine asm code
- 0094C5-0094D8 (20) = String "START OF MULTI5 BIOS"
- 0094D9-009550 (120) = Core engine asm code (UpdateJoypads())
- 009551-009571 (33) = String "NINTENDO SHVC MULTI5 BIOS Ver2.10"
- 009572-009583 (18) = String "END OF MULTI5 BIOS"
- 009584-0095A0 (29) = String "START OF MULTI5 CONNECT CHECK"
- 0095A1-009601 (97) = Core engine asm code (ConnectCheck())
- 009602-00962B (42) = String "NINTENDO SHVC MULTI5 CONNECT CHECK Ver1.00"
- 00962C-009646 (27) = String "END OF MULTI5 CONNECT CHECK"
- 009647-00972E (232) = Core engine asm code, related to dialog
- 009668 = PringObjDlg?(byte btnsToAccept<A>, byte secIndex<$E3>, byte strIndex<$E2>)
- 0096CE = ClearPlayerButtonPresses_S()
- 0096D3 = Dlg:GetCurrentPlayer_S()
- 0096D9 = Dlg:PutString_S?(byte secIndex<$E3>, byte strIndex<$E2>)
- 0096DE = Dlg:ExecPrintHandler_S()
- 0096E3 = Dlg:AskYesNo_S()
- 0096E8 = Dlg:AskNumPlayer_S()
- 0096ED = Dlg:PrepPrint_S(byte secIndex<$E3>, byte strIndex<$E2>)
- 0096F2 = Dlg:Init/ClearWindow_S?()
- 0096F7 = Dlg:GetNPCGameFlag_S()
- 00970C = Dlg:LoadStrPtr_S()
- 009716 = Dlg:OutputCharLevel_S()
- 00971B = Level:HandleSpecialActionRoom_S?()
- 009725 = CallSpecialRoomHandler()
- 00972F-009738 (10) = Dlg:Digits (bytes, used to print numbers)
- 009739-00973C (4) = Dlg:TaChi ("たち", used with table code <CMHP>)
- 00973D-00973F (3) = Unknown data, used by Dlg:Code18Handler()
- 009740-009781 (66) = Character names string pointer structs
- 009782-0097CD (76) = Character names
- 0097CE-0097E5 (24) = Unknown data, doesn't seem to be referenced (words?)
- 0097E6-0097EC (6) = Core engine asm code (Dlg:Code22CallSubcodeHandler())
- 0097ED-009852 (102) = Function pointers to dialog code 22 subcode handlers
- 009853-009860 (13) = Core engine asm code
- 009853 = Dlg:Code22SubcodeEOS()
- 00985A = Dlg:OutputCharLevel_L()
- 009861-009862 (2) = Pointer to Dlg:OutputCharLevel_S (used Dlg:OutputCharLevel_L)
- 009863-009864 (2) = Dlg:YesNoWndStrPos
- 009865-009868 (4) = Unknown data, used by Dlg:AskYes/No_L() (words)
- 009869-00986B (3) = Pointer and length of Yes/No question string
- 00986C-00987D (18) = Yes/No question string
- 00987E-009883 (6) = Unknown data, used by Dlg:AskNumPlayers_L() (words)
- 009884-009886 (3) = Pointer and length of number of players question string
- 009887-00989E (24) = Number of players question string
- 00989F-0098A1 (3) = Dlg:NumPlayerWndStrPos
- 0098A2-0098A9 (8) = ByteBitMask[8]
- 0098AA-0098FD (84) = Core engine asm code
- 0098AA = Dlg:Init/ClearWindow_L()
- 0098FE-00992F (50) = Unknown data (16-bits pointers to functions)
- 009930-009945 (22) = Unknown data (byte char stat list)
- 009946-00994F (10) = Dlg:PowersOf10 (used to display level number)
- 009950-009969 (26) = SpecialActionRoomDefs? (list of {byte, byte, byte} structs terminated by 0xFFFF)
- 00996A-009979 (16) = Table of function pointers to special room handlers (16-bits)
- 00997A-009987 (14) = Unknown data (list of {byte, byte, byte} structs terminated by 0xFFFF)
- 009988-00998F (8) = Unknown data (words, all 0)
- 009990-009997 (8) = ByteBitMask[8]
- 009998-0099E3 (76) = Unknown data
- 0099E4-0099EB (8) = Unknown data (Array of 16-bits pointer to RAM, related to loading of players projectile graphics)
- 0099EC-009B42 (343) = Core engine asm code
- 009B43-009B5D (26) = Unknown data
- 009B5E-009B65 (8) = InvertedDirs?[8], used in HandleMemberObjInteraction()
- 009B66-009B71 (12) = BeanRoomCharacterIds
- 009B72-009B85 (20) = Unknown data
- 009B86-009BA5 (32) = WordDescBitMask[16]
- 009BA6-009BC5 (32) = WordBitsMask[16]
- 009BC6-009C25 (96) = Unreferenced, 3 other 16 word bit mask arrays
- 009C2A-009C8B (98) = Unknown data
- 009C8C-009D1B (144) = Core engine asm code (1 function)
- 009D1C-009D25 (10) = Unknown data, used by function above
- 009D26-009D98 (115) = Core engine asm code
- 009D7A = ZeroPlayerStats(byte playerNum<Y>)
- 009D99-009DD0 (56) = 16-bits pointers to player stats to clear used by ZeroPlayerStats()
- 009DD1-009DE6 (22) = Unknown data (byte char stat list, used in HandleMemberIdleAnim)
- 009DE7-009F02 (284) = Core engine asm code
- 009EBE = Obj:Clear_S(byte objOfs<X>)
- 009F03-009F12 (16) = Unknown data, used in code above
- 009F13-009F2E (28) = Core engine asm code (byte <Y>, bool failed<c> FindFreeObjSlotInSlice?(byte sliceIndex<A>))
- 009F2F-009F74 (70) = Obj:StartObjIndex/EndObjIndex[35] (stat pairs, slice definitions used in FindFreeObjSlotInSlice?())
- 009F75-00A082 (270) = Core engine asm code
- 009F75 = byte <Y>, bool failed<c> FindFreeObjSlot?(byte startObjOfs<$DC>, byte endObjOfs<$DD>)
- 00A083-00A09F (29) = Unknown data, doesn't seem to be referenced
- 00A0A0-00A0DF (64) = Used in making passwords (bytes)
- 00A0E0-00A0FF (32) = Used for scrambling and unscrambling passwords (16-bits pointers)
- 00A100-00A25D (350) = Used for scrambling and unscrambling passwords (bytes)
- 00A25E-00A269 (12) = Used for scrambling and unscrambling passwords (16-bits pointers)
- 00A26A-00A2EB (130) = Core engine asm code
- 00A2EC-00A2F3 (8) = ByteBitMask[8]
- 00A2F4-00A2F7 (4) = Core engine asm code (Obj:Clear_L(byte objOfs<X>))
- 00A2F8-00A337 (64) = Array of {byte, byte, byte, byte} structs?
- 00A338-00A3A7 (112) = Core engine asm code
- 00A3A8-00A3AC (5) = ByteBitMask[5]
- 00A3AD-00A3B0 (3) = Used in HandleSaveCmd?()
- 00A3B0-00A3CD (30) = Array of {byte, byte} structs?
- 00A3CE-00A3E3 (22) = Byte char stat list for characters initial agility
- 00A3E4-00A3FA (22) = Byte char stat list for characters base speed multiplier
- 00A3FA-00A40F (22) = Byte char stat list for unknown characters stat
- 00A410-00A421 (22) = Byte char stat list for unknown characters stat
- 00A426-00A43B (22) = Byte char stat list for unknown characters stat
- 00A43C-00A451 (22) = Byte char stat list for unknown characters stat
- 00A452-00A467 (22) = Byte char stat list for characters initial attack
- 00A468-00A47D (22) = Byte char stat list for characters normal base damage
- 00A47E-00A493 (22) = Byte char stat list for characters boosted base damage
- 00A494-00A4A9 (22) = Byte char stat list for characters initial strength
- 00A4AA-00A4BF (22) = Byte char stat list for characters base hp multiplier
- 00A4C0-00A4D5 (22) = Byte char stat list for characters initial intelligence
- 00A4D6-00A4EB (22) = Unreferenced byte char stat list for unknown characters stat
- 00A4EC-00A501 (22) = Byte char stat list for unknown characters stat
- 00A502-00A539 (56) = 16-bits pointers to RAM
- 00A53A-00A565 (44) = Word pointer char stat list for unknown characters stat (related to loading of the characters projectile graphics)
- 00A566-00A591 (44) = Word pointer char stat list for unknown characters stat (related to loading of the characters projectile graphics)
- 00A592-00A59B (10) = Core engine asm code
- 00A59C-00A5AB (16) = 16-bits pointers to object stats in RAM
- 00A5AC-00A5C5 (26) = Unknown data
- 00A5C6-00A5C9 (4) = Obj:InitItemDirectionFacing[4] (used in Map:ShowVisibleObjs_S)
- 00A5CA-00A5F2 (41) = Unknown data (bytes, used in Map:ShowVisibleObjs_S)
- 00A5F3-00A5FA (8) = ByteBitMask[8]
- 00A5FB-00A60B (17) = Unknown data (bytes, used in Obj:InitItem())
- 00A60C-00A61C (17) = Obj:InitItemXSizes[17]
- 00A61D-00A62D (17) = Obj:InitItemYSizes[17]
- 00A62E-00A7E4 (439) = Core engine asm code
- 00A7E5-00A7F0 (12) = Unknown data (bytes, used in code above)
- 00A7F1-00A832 (66) = Core engine asm code (1 function)
- 00A833-00A83A (8) = Unknown data (bytes, used in code above)
- 00A83B-00A992 (344) = Obj:Offsets1 (words, offset part of 24-bits pointers, bank comes from Obj:Banks)
- 00A993-00AAEB (344) = Obj:Offsets2 (words, offset part of 24-bits pointers, bank comes from Obj:Banks)
- 00AAEB-00AC42 (344) = Obj:Offsets3 (words, offset part of 24-bits pointers, bank comes from Obj:Banks)
- 00AC43-00ACEE (172) = Obj:Banks (bytes, bank part of 24-bits pointers)
- 00ACEF-00AEA7 (441) = Unknown data
- 00AEA8-00AEDB (52) = Unknown data (16-bits pointers to functions)
- 00AEDC-00AEF6 (27) = Unknown data (bytes?)
- 00AEF7-00AF47 (81) = Unknown data (24-bits pointers)
- 00AF48-00AF48 (1) = Unknown data
- 00AF49-00AF96 (78) = Unknown data (24-bits pointers)
- 00AF97-00AF9E (8) = Unknown data (object directions, used in Obj:NPC|AnimatedObj?())
- 00AF9F-00AFBA (28) = Core engine asm code (object handlers)
- 00AFBB-00AFC2 (8) = Unknown data ({byte, byte} structs?)
- 00AFC3-00B276 (692) = Core engine asm code
- 00B144 = Obj:InitSpawnPoint(byte objOfs<X>, byte x<$E4>, byte y<$E6>, byte objSubType/DlgIndex<$E8> byte objDefIdx<$EA>)
- 00B277-00B27A (4) = Unknown data
- 00B27B-00B28A (16) = Core engine asm code (object handlers)
- 00B28B-00B29B (16) = Unknown data
- 00B29B-00B2C0 (38) = Core engine asm code (object handlers)
- 00B2C1-00B2D0 (16) = Unknown data
- 00B2D1-00B306 (54) = Core engine asm code (object handlers)
- 00B307-00B30A (4) = Unknown data
- 00B30B-00B32E (36) = Core engine asm code (object handlers)
- 00B32F-00B339 (11) = Unknown data
- 00B33A-00B37A (65) = Core engine asm code (object handlers)
- 00B37B-00B37E (4) = Unknown data
- 00B37F-00B38A (12) = Core engine asm code (object handlers)
- 00B38B-00B392 (8) = Unknown data
- 00B393-00B3AD (27) = Core engine asm code (HandleItem?(byte objOfs<X>))
- 00B3AE-00B3CD (32) = ItemPickedHandlers[16] (16-bits pointers to functions)
- 00B3CE-00B3D7 (10) = Unknown data
- 00B3D8-00B3E0 (9) = Core engine asm code (object handlers)
- 00B3E1-00B3E1 (1) = Unknown data
- 00B3E2-00B3EB (10) = WordBitMask[5]
- 00B3EC-00B3F3 (8) = InitialStatsPtrs[4] (16-bits pointers)
- 00B3F4-00B3FB (8) = GemStatsPtrs[4] (16-bits pointers to RAM)
- 00B3FC-00B403 (8) = CurStatsPtrs?[4] (16-bits pointers to RAM)
- 00B404-00B421 (30) = Unknown data (used in WaitForPlayerToPickGem())
- 00B422-00B45D (60) = Unknown data (used in WaitForPlayerToPickGem())
- 00B45E-00B5DF (386) = Unknown data
- 00B5E0-00B681 (162) = Core engine asm code (object handlers)
- 00B682-00B6A2 (33) = Unknown data
- 00B6A3-00B6D1 (47) = Core engine asm code (object handlers)
- 00B6D2-00B6D9 (8) = Unknown data
- 00B6DA-00B741 (104) = Core engine asm code (1 function)
- 00B742-00B750 (15) = Unknown data ({byte, byte, byte} structs?)
- 00B751-00B7D1 (129) = Core engine asm code (object handlers)
- 00B7D2-00B7EA (24) = Unknown data ({byte, byte, byte, byte} structs?)
- 00B7EB-00B7F6 (12) = Core engine asm code (object handlers)
- 00B7F7-00B80E (24) = Unknown data (16-bits pointers)
- 00B80F-00B934 (294) = Unknown data
- 00B935-00B9C0 (140) = Core engine asm code (object handlers)
- 00B9C1-00B9C4 (4) = Unknown data ({byte, byte} structs?)
- 00B9C5-00B9E0 (28) = Core engine asm code (object handlers)
- 00B9E1-00B9F5 (21) = Unknown data
- 00B9F6-00BA60 (107) = Core engine asm code (object handlers)
- 00BA61-00BA9F (63) = Unknown data
- 00BAA0-00BB36 (151) = Core engine asm code
- 00BB37-00BB48 (18) = Unknown data
- 00BB49-00BBD8 (144) = Core engine asm code (object handlers)
- 00BBD9-00BBEC (20) = Unknown data
- 00BBED-00BBF8 (12) = Core engine asm code (object handlers)
- 00BBF9-00BC10 (24) = Unknown data
- 00BC11-00BD30 (288) = Core engine asm code (object handlers)
- 00BD31-00BD38 (8) = Unknown data
- 00BD39-00BDC5 (141) = Core engine asm code (object handlers)
- 00BDC6-00BE09 (68) = Unknown data
- 00BE0A-00BE1C (19) = Core engine asm code (object handlers)
- 00BE1D-00BE58 (60) = Unknown data
- 00BE59-00BEFC (164) = Core engine asm code (object handlers)
- 00BEFD-00BF42 (70) = Unknown data
- 00BF43-00BF63 (33) = Core engine asm code (object handlers)
- 00BF64-00BF9B (54) = Unknown data
- 00BF9A-00C052 (185) = Core engine asm code (object handlers)
- 00C053-00C07A (40) = Unknown data
- 00C07B-00C096 (28) = Core engine asm code (object handlers)
- 00C097-00C197 (257) = Unknown data
- 00C198-00C215 (126) = Core engine asm code (object handlers)
- 00C216-00C21C (6) = Unknown data
- 00C21D-00C245 (41) = Core engine asm code (object handlers)
- 00C246-00C27F (58) = Unknown data
- 00C280-00C385 (262) = Core engine asm code (object handlers)
- 00C386-00C419 (148) = Unknown data
- 00C41A-00C4EC (211) = Core engine asm code (object handlers)
- 00C4ED-00C50E (34) = Unknown data
- 00C50F-00C523 (21) = Core engine asm code (object handlers)
- 00C524-00C535 (18) = Unknown data
- 00C536-00C54B (22) = Core engine asm code (object handlers)
- 00C54C-00C551 (6) = Unknown data
- 00C552-00C594 (67) = Core engine asm code (object handlers)
- 00C595-00C672 (222) = Unknown data
- 00C673-00C697 (37) = Core engine asm code (object handlers)
- 00C698-00C6A2 (11) = Unknown data
- 00C6A3-00C6B6 (20) = Core engine asm code (object handlers)
- 00C6B7-00C707 (81) = Unknown data
- 00C708-00C754 (77) = Core engine asm code (object handlers)
- 00C755-00C766 (18) = Unknown data
- 00C767-00C7B3 (77) = Core engine asm code (object handlers)
- 00C7B4-00C7CD (26) = Unknown data
- 00C7CE-00C811 (68) = Core engine asm code (object handlers)
- 00C812-00C8C3 (178) = Unknown data
- 00C8C4-00C8ED (42) = Core engine asm code (object handlers)
- 00C8EE-00C939 (76) = Unknown data
- 00C93A-00C943 (10) = Core engine asm code (object handlers)
- 00C944-00C95F (28) = Unknown data
- 00C960-00C991 (50) = Core engine asm code (object handlers)
- 00C992-00C999 (8) = Unknown data
- 00C99A-00C9AB (18) = Core engine asm code (object handlers)
- 00C9AC-00C9D1 (38) = Unknown data
- 00C9D2-00CA04 (51) = Core engine asm code (object handlers)
- 00CA05-00CA76 (114) = Unknown data
- 00CA77-00CAAB (53) = Core engine asm code (object handlers)
- 00CAAC-00CAAD (2) = Unknown data
- 00CAAE-00CAF0 (67) = Core engine asm code (object handlers)
- 00CAF1-00CBF6 (262) = Unknown data
- 00CBF7-00CC28 (50) = Core engine asm code (object handlers)
- 00CC29-00CC2C (4) = Unknown data
- 00CC2D-00CD67 (315) = Core engine asm code (object handlers)
- 00CD68-00CDC7 (96) = Unknown data
- 00CDC8-00CE1C (85) = Core engine asm code (object handlers)
- 00CE1D-00CE2B (15) = Unknown data
- 00CE2C-00CF0C (225) = Core engine asm code (object handlers)
- 00CF0D-00CF14 (8) = Unknown data
- 00CF15-00CF5B (71) = Core engine asm code (object handlers)
- 00CF5C-00CFBB (96) = Unknown data
- 00CFBC-00D17B (448) = Core engine asm code
- 00D17C-00D183 (8) = Unknown data
- 00D184-00D1C7 (68) = Core engine asm code
- 00D1C8-00D1D7 (16) = Unknown data
- 00D1D8-00D244 (109) = Core engine asm code
- 00D245-00D24C (8) = Unknown data
- 00D24D-00D27B (47) = Core engine asm code
- 00D27C-00D27F (4) = Unknown data
- 00D280-00D2B2 (51) = Core engine asm code
- 00D2B3-00D2B6 (4) = Unknown data
- 00D2B7-00D2E2 (43) = Core engine asm code
- 00D2E2-00D301 (32) = Unknown data
- 00D302-00D3FF (254) = Core engine asm code
- 00D400-00D413 (20) = Unknown data
- 00D414-00D669 (598) = Core engine asm code
- 00D66A-00D6AF (70) = Unknown data (16-bits pointers)
- 00D6B0-00D818 (361) = Unknown data
- 00D819-00D85A (66) = Unknown data (16-bits pointers)
- 00D85B-00D9C3 (361) = Unknown data
- 00D9C4-00DC29 (614) = Core engine asm code
- 00DC2A-00DC61 (56) = Unknown data
- 00DC62-00DDA9 (328) = Core engine asm code
- 00DDAA-00DDE9 (64) = Unknown data (16-bits pointers)
- 00DDEA-00DEE1 (248) = Unknown data
- 00DEE2-00E072 (401) = Core engine asm code
- 00E073-00E08A (24) = Unknown data
- 00E08B-00E23E (436) = Core engine asm code
- 00E23F-00E25A (28) = Unknown data
- 00E25B-00E32B (209) = Core engine asm code
- 00E32C-00E32F (4) = Unknown data
- 00E330-00E3A0 (113) = Core engine asm code
- 00E3A1-00E3AC (12) = Unknown data (16-bits pointers)
- 00E3AD-00E3EB (63) = Unknown data
- 00E3EC-00E43C (81) = Core engine asm code
- 00E43D-00E43E (2) = Unknown data
- 00E43F-00E48E (80) = Core engine asm code
- 00E48F-00E490 (2) = Unknown data
- 00E491-00E6AB (539) = Core engine asm code
- 00E6AC-00E70B (96) = Unknown data (16-bits pointers)
- 00E70C-00E804 (249) = Unknown data
- 00E805-00E88B (135) = Core engine asm code
- 00E88C-00E88D (2) = Unknown data
- 00E88E-00E8C3 (54) = Core engine asm code
- 00E8C4-00E8CA (7) = Unknown data
- 00E8CB-00EA40 (374) = Core engine asm code
- 00EA41-00EA48 (8) = Unknown data (16-bits pointers)
- 00EA49-00EA6C (36) = Unknown data
- 00EA6D-00EB53 (231) = Core engine asm code
- 00EB54-00EB5E (11) = Unknown data, doesn't seem to be referenced
- 00EB5F-00ED56 (504) = Core engine asm code
- 00ED57-00ED66 (16) = Unknown data
- 00ED67-00EFD2 (620) = Core engine asm code
- 00EFD3-00F072 (160) = Unknown data
- 00F073-00F0A8 (54) = Core engine asm code
- 00F0A9-00F0AC (4) = Unknown data
- 00F0AD-00F118 (108) = Core engine asm code
- 00F119-00F120 (8) = Unknown data
- 00F121-00F24B (299) = Core engine asm code
- 00F24C-00F2CB (128) = Unknown data, doesn't seem to be referenced
- 00F2CC-00F479 (430) = Core engine asm code
- 00F47A-00F499 (32) = Unknown data (16-bits pointers)
- 00F49A-00F559 (192) = Unknown data
- 00F55A-00F5D5 (124) = Core engine asm code
- 00F5D6-00F605 (48) = Unknown data
- 00F606-00F63F (58) = Core engine asm code
- 00F640-00F643 (4) = Unknown data
- 00F644-00F685 (66) = Core engine asm code
- 00F686-00F689 (4) = Unknown data
- 00F68A-00F839 (432) = Core engine asm code
- 00F83A-00F871 (56) = Unknown data
- 00F872-00F8BF (78) = Core engine asm code
- 00F8C0-00F8CB (12) = Unknown data
- 00F8CC-00F90C (65) = Core engine asm code (SetBeanRoomCharacters())
- 00F90D-00F922 (22) = CharObjIdxInBeanRoom? (byte char stat list)
- 00F923-00FBEC (714) = Core engine asm code
- 00F923 = ChooseInitialPlayers()
- 00FA31 = HandleChooseCharInput()
- 00FA56-00FA65 (16) = ChooseInitialCharPrevDir/NextDir[8] (stat pairs, embedded in HandleChooseCharInput())
- 00FB26 = HandleChooseStartCmdInput()
- 00FBD5 = LoadPasswordTextFromSaveFile()
- 00FBED-00FBEF (3) = PasswordSramOfs[3]
- 00FBF0-00FCC7 (216) = Core engine asm code
- 00FBF0 = HandlePasswordCmdInput()
- 00FC6C = HandlePasswordInput()
- 00FCC8-00FCF8 (49) = PasswordOfsFromTilePos[7][7]
- 00FCF9-00FD4B (83) = Core engine asm code (SetInitialCharChosen?())
- 00FD4C-00FD51 (6) = InitialCharIdsOfs (words)
- 00FD52-00FD69 (24) = BeanRoomCharIds (words containing character ids)
- 00FD6A-00FD79 (16) = Core engine asm code (UpdatePlayerPadConnections?())
- 00FD7A-00FDD0 (87) = Unknown data
- 00FDD1-00FDD4 (4) = Core engine asm code (Dlg:Code22-Subcode07Handler)
- 00FDD5-00FDE0 (12) = Unknown data, doesn't seem to be referenced
- 00FDE1-00FDFB (27) = Core engine asm code (Dlg:Code22-Subcode15Handler)
- 00FDFC-00FE09 (14) = Unknown data, doesn't seem to be referenced
- 00FE0A-00FE37 (46) = Unknown data, related to the place selection screen
- 00FE38-00FE4A (19) = String "DUNGEON EXPLORER 2\0", doesn't seem to be referenced
- 00FE4B-00FE5B (17) = String "SOUND CHECK MODE\0", doesn't seem to be referenced
- 00FE5C-00FE6D (18) = "String BGM SE \0", doesn't seem to be referenced
- 00FE6E-00FF48 (219) = Unknown data, doesn't seem to be referenced
- 00FF49-00FF5B (19) = String "DUNGEON EXPLORER 2\0", doesn't seem to be referenced
- 00FF5C-00FF6C (17) = String "SOUND CHECK MODE\0", doesn't seem to be referenced
- 00FF6D-00FF7E (18) = "String BGM SE \0", doesn't seem to be referenced
- 00FF7F-00FFAF (49) = Unknown data, doesn't seem to be referenced
- 00FFB0-00FFDF (48) = Cartridge header
- 00FFE0-00FFE5 (6) = Core engine asm code (RESET handler)
- 00FFE6-00FFFF (26) = Interrupt vector
Data bank 1
- 010000-010663 (1636) = Unknown data (bytes and 16-bits pointers)
- 010664-0106FD (154) = PCSpriteAnim? (16-bits pointers)
- 0106FE-010705 (8) = PCAnimNormal?
- 010706-01070D (8) = PCAnimIdle?
- 01070E-01070E (1) = PCAnimNul? (0)
- 01070F-010FCB (2237) = Unknown data (bytes and 16-bits pointers)
- 010FCC-010FEB (32) = NPCSpriteAnim? (16-bits pointers)
- 010FEC-011043 (88) = NPC sprite animations
- 011044-01FFFF (61372) = Unknown data (bytes and 16-bits pointers)
Dialog data
- 03E396-03E401 (108) = Dialog section pointer table (36 24-bits pointers)
- 03E402-03E79D (924) = Dialog string pointer table (308 24-bits pointers)
- 03E79E-04649A (31997) = Dialog strings
- 04649B-04FFFA (39776) = Dialog font graphics (2 bpp planar aka GameBoy format)
Character movement sprite graphics
- 050000-053FFF (16384) = Bard (4 bpp Snes format)
- 054000-057FFF (16384) = Bowman (4 bpp Snes format)
- 058000-05BFFF (16384) = Warrior (4 bpp Snes format)
- 05C000-05FFFF (16384) = Kage (4 bpp Snes format)
- 060000-053FFF (16384) = Robot (4 bpp Snes format)
- 064000-057FFF (16384) = Wizard (4 bpp Snes format)
- 068000-05BFFF (16384) = Monk (4 bpp Snes format)
- 06C000-05FFFF (16384) = Dragon (4 bpp Snes format)
- 070000-053FFF (16384) = Fighter (4 bpp Snes format)
- 074000-057FFF (16384) = Priest (4 bpp Snes format)
- 078000-05BFFF (16384) = Thief (4 bpp Snes format)
- 07C000-05FFFF (16384) = Witch (4 bpp Snes format)
Music
- 120000-12038E (911) = Music engine asm code
- 120030 = InitAPU?()
- 120087 = UploadSong?(byte songIndex<A>, byte numPatterns?<X>, byte <Y>)
- 120151 = UploadPattern?(byte patternIndex<A>)
- 1201EC = SelectInstrument?(byte instrument<A>)
- 120204 = UploadInstrument?(byte instIndex<A>)
- 12028E = SrcAddrAddition(word addr<X>, word bank<A>)
- 1202C9 = StopSong?()
- 120305 = SendToAPU(word numToTransfer<X>, word apuTargetAddr<Y>)
- if X = 0, send terminating block
- 120378 = InitSPCTransfer()
- 12038F-1204FF (369) = Unused/Padding
- 120500-1207FF (4864) = SPC Program
The following pointers use 121800 as the base address
- 121800-121801 (2) = pointer to next song chunk
- 121802-121803 (2) = number of pointers in next pointer table
- 121804-121837 (52) = song pattern order pointer table (26 16-bits pointers)
- 121838-121C0C (981) = songs pattern order (list of pattern indices terminated by a $FF byte)
- 121C0D-121C0E (2) = number of pointers in next pointer table
- 121C0F-121CC6 (184) = Pattern pointer table (92 16-bits pointers)
- 121CC7-12A08C (33734) = Patterns
- 12A08D-12A0FF (115) = Unused/Padding
- 12A100-12A4BF (960) = Instruments
- 12A4C0-145FFD (113469) = BRR Samples
- 145FFD-145FFF (3) = Unused/Padding
Cutscenes
- 146000-147907 (6408) = Cutscene font graphics
- 14B000-14B9B8 (2489) = Compressed graphics for weapons shadow
- 14B9B9-14B9DC (36) = Compressed palette for weapons shadow
- 14B9DD-14BDEB (1039) = Unknown compressed data (weapons shadow tilemap?)
- 14BDEC-14CA10 (3109) = Compressed graphics for rain cloud
- 14CA11-14CA2E (30) = Compressed palette for rain cloud, crystal shards and some unknown sprites
- 14CA2F-14D0FF (1745) = Unknown compressed data (rain cloud tilemap?)
- 14D100-14D239 (314) = Compressed graphics for crystal shards
- 14D23A-14D77E (1349) = Unknown compressed data (crystal shards tilemap?)
- 14D77F-14DA93 (789) = Compressed graphics for little beanstalk
- 14DA94-14DAB6 (35) = Compressed palette for little beanstalk
- 14DAB7-14DBB4 (254) = Unknown compressed data (little beanstalk tilemap?)
- 14DBB5-14DC56 (162) = Compressed graphics for small crystals
- 14DC57-14DCD7 (129) = Compressed palette for small crystals
- 14DCD8-14E521 (2122) = Compressed graphics for other little beanstalk
- 14E522-14E562 (65) = Compressed palette for other little beanstalk
- 14E563-14E724 (450) = Unknown compressed data (other little beanstalk tilemap?)
- 14E725-14E8CE (426) = Compressed graphics for small growing beanstalk
- 14E8CF-14E8F1 (35) = Compressed palette for small growing beanstalk
- 14E8F2-15146F (11134) = Compressed graphics for world map
- 151470-151503 (148) = Compressed initial palette, also used for title screen and world map
- 151504-15155C (89) = compressed additional palette for world map
- 15155D-151A14 (1208) = Unknown Compressed data (world map tilemap?)
- 151A15-1536DB (7367) = Compressed graphics for world map sprites
- 1536DC-153759 (126) = Compressed palette for world map sprites
- 15375A-156478 (11551) = Compressed graphics for monsters
- 156479-1564C5 (77) = Compressed palette for monsters
- 1564C6-156900 (1083) = Unknown compressed data (monsters tilemap?)
- 156901-1585A6 (7334) = Compressed graphics for monster outlines
- 1585A7-1585EC (70) = Compressed palette for monster outlines
- 1585ED-1589DB (1007) = Unknown compressed data (monsters outlines tilemap?)
- 1589DC-15AE21 (9286) = Compressed graphics for large beanstalk
- 15AE22-15AE58 (55) = Compressed palette for large beanstalk
- 15AE59-15B1D5 (893) = Unknown compressed data (large beanstalk tilemap?)
- 15B1D6-15B555 (896) = Unknown compressed data (large beanstalk tilemap?)
- 15B556-15EC94 (14143) = Compressed graphics for large growing beanstalk
- 15EC95-15ECD0 (60) = Compressed palette for large growing beanstalk
- 15ECD1-15F320 (1616) = Unknown compressed data (large growing beanstalk tilemap?)
- 15F321-16026D (3917) = Compressed graphics for pedestal
- 16026E-1602D5 (104) = Compressed palette for pedestal
- 1602D6-160500 (555) = Unknown compressed data (pedestal tilemap?)
- 160501-16119D (3229) = Compressed graphics for shining crystal
- 16119E-1611C0 (35) = Compressed palette for shining crystal
- 1611C1-162871 (5809) = Compressed graphics for castle
- 162872-1628E8 (119) = Compressed palette for castle
- 1628E9-162AF3 (523) = Unknown compressed data (throne room tilemap?)
- 162AF4-162CD2 (479) = Unknown compressed data (bean room tilemap?)
- 162CD3-163730 (2654) = Compressed graphics for boss room
- 163731-1637BF (143) = Compressed palette for boss room
- 1637C0-1638C9 (266) = Unknown compressed data (boss room tilemap?)
- 1638CA-164C62 (5017) = Compressed graphics for characters
- 164C63-164CEB (137) = Compressed palette for characters
- 164CEC-164CFC (17) = Compressed additional palette for castle
- 164CFD-1694F5 (18425) = Compressed graphics for title screen background
- 1694F6-169548 (83) = Compressed additional palette for title screen background
- 169549-169BB1 (1641) = Unknown compressed data (title screen background tilemap?)
- 169BB2-16B4BC (6411) = Compressed graphics for title screen text
- 16B4BD-16B52C (112) = Compressed palette for title screen text
- 16B52D-16BA07 (1243) = Compressed graphics for title screen clouds
- 16BA08-16BA12 (11) = Compressed palette for title screen clouds
- 16BA13-16BECB (1209) = Unknown compressed data (title screen clouds tilemap?)
- 16BECC-16D7D5 (6410) = Compressed graphics for castle sprites
- 16D7D6-16D8A2 (205) = Compressed palette for castle sprites
- 16D8A3-17001B (10105) = Compressed graphics for castle people sprites
- 17001C-171A36 (6683) = Compressed graphics for town
- 171A37-171ACE (152) = Compressed palette for town
- 171ACF-171CF4 (550) = Unknown Compressed data (town tilemap?)
- 171CF5-1728B7 (3011) = Compressed graphics for credit sprites
- 1728B8-1728F0? (57?) = Compressed palette for credit sprites
- 178000-179128 (4393) = Cutscene engine asm code (script related)
- 178000 = ShowCutscene(byte cutsceneIndex<A>)
- 178138-178141 (10) = Cutscene script pointer table (5 16-bits pointer)
- 1781AE-1781CF (34) = Cutscene command function pointer table (17 16-bits pointer)
- 1782C2 = SetSrcAddr()
- 1782D2 = SetUncompressedLength()
- 1782D9 = SetVRAMAddr()
- 17855F = SetScrollRegs()
- 1788F2 = SendToVram()
- 178927 = CheckCutsceneInterruption()
- 178961-178965 (5) = Cutscene interruption control bytes (1 if cutscene can be interrupted by pressing the START button, 0 otherwise)
- 17899D = CutsceneNMIHandler()
- 178A29 = UploadPalette()
- 178A9B = UploadToVRAM()
- 178CAC = SendToVRAM()
- 178DBD = MemsetVRAM?()
- 178DD3 = DecompToWRAM()
- 178DFC = DecompToVRAM()
- 178E26 = DecompToPaletteBuf()
- 178F37 = SetOAMFromArray()
- 179037 = LzssInitVars()
- 1790CD = LzssGetNextByte()
- 1790DC = byte<A> tLzssUncompressNextByte()
- 179129-17B8FB (10196) = Cutscene sprite data struct lists
- 17BDF3-17BE9F (173) = Script for title screen
- 17BEA0-17C22F (912) = Script for introduction
- 17C230-17C3D9 (426) = Script for beanstalk growing scene
- 17C3DA-17C7D1 (1016) = Script for ending and credits
- 17C7D2-17C7ED (28) = Script for mouse message
- 17C7EE-17D3E3 (3062) = Cutscene engine asm code
- 17C7EE = InitScreenRegs?()
- 17C822-17C862 (65) = Cutscene screen registers initialization structs
- 17C8BA = PlaySong()
- 17C8CE = SetLogoScrollFlag()
- 17C8D6 = SetOBSEL()
- 17C8E9 = PrintScrollingString()
- 17C95A = PutNormalString()
- 17D02C = SetTextWindow()
- 17D5E4-17D611 (46) = Cutscene string pointer table (23 16-bits pointers)
- 17D616-17DFC3 (2477) = Cutscene strings
- 17DFC4-17E488 (1221) = Cutscene engine asm code (string display related)
- 17DFC4 = iPrintNormalString(word stringIndex<A>, word startRow<Y>)
- 17E09D = PrepScrollingString()
- 17E141 = PrintScrollingString()
- 17E1F0 = UpdateBufIndex()
- 17E200 = GetNextChar()
- 17E22E = PutChar()
- 17E2C7 = LoadTile()
- 17E308 = GetTileMapIndex(word tileIndex<$38>)
- 17E322 = UpdateTileMap()