Crystal Beans From Dungeon Explorer:Main game engine ROM map

From Data Crystal
Jump to: navigation, search
  • 020000-0021DC2 (7619) = Asm code
    • 020028 = RemoveAllFuncPtr2()
    • 020039 = byte index<X> AddFuncPtr(long funcPtr<$2C>)
    • 020065 = ExecuteAllFuncPtr()
    • 020094 = ExecuteFuncPtr()
    • 020097 = RemoveFuncPtr(byte index<X>)
    • 0200A1 = RemoveAllFuncPtr()
    • 0200B2 = InitIORegs()
    • 0201CF = lzssInitBufAndVars(word addr<X>, byte bank<A>)
    • 0201ED = lzssDecomp(word destAddr<X>, byte destBank<A>, word numBytes<Y>)
    • 02026A = Member:ClearCurAddressesOffset()
    • 020272 = Party:SetSpriteGfxAddressesForUpload()
    • 0202B7 = Party:UploadSpritesGfxToVRAM()
    • 020732 = Obj:SetBankIndex?(byte objOfs<X>)
    • 020806 = Map:EnterRoom?(word entranceIndex?<$DC>)
    • 020924 = Map:LoadBGData()
    • 020AAE = Map:LoadObjects?(byte levelIndex<$68>, byte roomIndex<$67>)
    • 020B7F = ClearMapBGTilemap()
    • 020B96 = SendUnkToVRAM()
    • 020D2D = bool <c>, word origX<$DE>, word origY<$E2> Map:CalcPartyViewportOrigin()
    • 020DFB = word <A,$E4> MultiplyBy16(byte num<A>)
    • 020FD0 = Map:DrawMapBG()
    • 021031 = Map:CalcAndSendBlockToVRAM(word colPixCoord<$E4>, word linePixCoord<$E6>)
    • 021043 = word VRAMAddr<A> Map:CalcBlockValues(word colPixCoord<$E4>, word linePixCoord<$E6>)
    • 021145 = Map:SendBlockToVRAM(word VRAMAddr<A>, word blockTmDataOfs<X>, word leftTilesPal<$38>, word rightTilesPal<$3B>)
    • 02118A = Map:SetStructDataToSendToVRAM?
    • 0211D6 = Map:CheckForAltBlock1()
    • 02126D = Map:CheckForAltBlock2()
    • 02151E = Party:InitPlayersMainWindow()
    • 021555 = Party:InitPlayersSecondaryWindow()
    • 021584 = CharInfoArea:UpdatePlayerWindow?()
    • 0215AD = CharInfoArea:UpdateSinglePlayerSecondaryWindow()
    • 0215D7 = CharInfoArea:SetTile(word tile<$DC>, byte x<$DE>, byte y<$DF>, byte pal<$E0>)
    • 021620 = CharInfoArea:Init?()
    • 021635 = CharInfoArea:SetHDMAValues?(byte numPartyMembers+1<A>)
    • 02164C = CharInfoArea:DrawCharName(byte memberOfs<X>, byte x<$DE>, byte y<$DF>)
    • 02165B = CharInfoArea:DrawSavedCharName?(byte memberOfs<X>)
    • 021723 = byte orgX<$DE> CharInfoArea:GetPlayerMenuOrgX?(byte memberOfs<X>)
    • 02173B = CharInfoArea:DrawChar(byte char<A>, byte col<$DE>, byte line<$DF>, byte pal<$E0>)
    • 02174A = Member:DrawWhiteJarsNumber(byte memberOfs<X>)
    • 021751 = Member:DrawBlackSkullsNumber(byte memberOfs<X>)
    • 0217E5 = CharInfoArea:DrawLivesIcons()
    • 021814 = CharInfoArea:ClearMainWindow+DrawMagicIcons()
    • 021831 = CharInfoArea:ClearPlayerMainWindow()
    • 021844 = CharInfoArea:ClearPlayerSecondaryWindow()
    • 02185F = CharInfoArea:SetPlayerWindowTiles(word windowStruct*<$DE>, word contentTiles*<$E4>)
    • 0218BE = byte <A> CharInfoArea:GetPlayerMainWindowOrgX(byte memberOfs+2<$DC>, byte NumPartyMembers<$DE>)
    • 0218DA = Member:RefreshStatusWindow?(byte memberOfs<X>, byte col<$DE>, byte line<$DF>)
    • 0218DD = Member:UpdateMainInfoWindow(byte memberOfs<X>)
    • 0219A1 = CharInfoArea:DrawNumber(byte col<$DE>, byte line<$DF>, byte pal<$E0>, word num<$EA>)
    • 021A29 = CharInfoArea:DrawMemberLevelWindow(byte memberOfs<$F6>)
    • 021AA6 = CharInfoArea:DrawMemberLevelWindowCurHp()
    • 021AD0 = CharInfoArea:DrawMemberStatusWindow()
    • 021B53 = byte orgX<$EE>, byte orgY<$EF> CharInfoArea:GetPlayerSecondaryWindowOrg()
    • 021B6F = byte orgX<$EE>, byte orgY<$EF> CharInfoArea:GetPlayerMainWindowOrg()
    • 021B8B = CharInfoArea:DrawStatBar(byte len<$DC>, byte pal<$F0>, byte x<$F3>, byte y<$F4>)
    • 021C83 = CharInfoArea:DrawString(byte index<A>, byte orgX<$EE>, byte orgY<$EF>)
    • 021CD2 = CharInfoArea:DrawNullPasswordWindow()
    • 021CE4 = CharInfoArea:DrawMemberPasswordWindow()
    • 021D24 = CharInfoArea:DrawInputPasswordWindow()
    • 021D5E = CharInfoArea:DrawStartMenuWindow()
    • 021D81 = CharInfoArea:DrawMemberSaveMenuWindow()
  • 021DC3-021DD2 (16) = Hex digits
  • 021DD3-0223D4 (1538) = Unknown data, doesn't seem to be referenced
  • 0223D5-0225CB (503) = Asm code
    • 0223D5 = UncompressToVRAM(long srcAddr<$44>, word destAddr<$47>, word uncompLen<$4A>)
    • 02242B = UncompressToCGRAM(long srcAddr<$44>, word destAddr<$47>, word uncompLen<$4A>)
    • 022481 = UncompressToWRAM()
    • 0224BB = TransferToVRAM(word srcAddr<$44>, word destAddr<$47>, word numWords<$4A>)
    • 0224EE = TransferToCGRAM(word srcAddr<$44>, word destAddr<$47>, word numWords<$4A>)
    • 022521 = ClearPlayerButtonPresses1_L()
    • 022532 = ClearPlayerButtonPresses2_L()
    • 022543 = byte<X> Dlg:GetCurrentPlayer_L?()
    • 022553 = Dlg:PutString_L?(byte secIndex<$E3>, byte strIndex<$E2>)
    • 02259E = Dlg:PrepPrintL(byte secIndex<$E3>, byte strIndex<$E2>)
    • 0225B8 = Dlg:ExecPrintHandler_L()
  • 0225CC-0225D9 (14) = 16-bits pointers to print handler functions
  • 0225DA-0227D9 (512) = Asm code (print handlers)
    • 0225DA = Dlg:HandleNormalPrinting()
    • 022607 = Dlg:HandleEndOfString()
    • 022638 = Dlg:HandleEndOfPage()
    • 0226B0 = Dlg:HandleInsertDigits()
    • 0226F5 = Dlg:HandleInsertString()
    • 022786 = Dlg:CheckChar()
    • 0227C6 = Dlg:PrintCharAndAdvanceCursor()
  • 0227DA-022816 (61) = Dlg:SpecialCodesDef ({byte, 16-bits pointer to function} structs terminated by 0xFF)
  • 022817-022992 (380) = Asm code (dialog special code handlers)
    • 022817 = Dlg:Code02Handler()
    • 02282C = Dlg:Code04Handler()
    • 022841 = Dlg:Code06Handler()
    • 02284B = Dlg:Code08Handler()
    • 022860 = Dlg:Code0AHandler()
    • 022867 = Dlg:Code0CHandler()
    • 022888 = Dlg:Code0EHandler()
    • 0228A1 = Dlg:Code10Handler()
    • 0228C1 = Dlg:Code12Handler()
    • 0228C8 = Dlg:Code14Handler()
    • 0228F5 = Dlg:Code16Handler()
    • 02291A = Dlg:Code18Handler()
    • 022957 = Dlg:Code1CHandler()
    • 022969 = Dlg:InsertCharName(byte charOff<A>)
    • 02298A = Dlg:Code1EHandler()
  • 022993-0229A6 (20) = 16-bits pointers to function used by Dlg:Code1EHandler()
  • 0229A7-02352A (2948) = Asm code (dialog special code handlers)
    • 022A20 = Dlg:Code20Handler()
    • 022A2B = Dlg:Code22Handler()
    • 022A41 = Dlg:Code24Handler()
    • 022A56 = Dlg:Code26Handler()
    • 022A66 = Dlg:Code28Handler()
    • 022A71 = Dlg:Code2AHandler()
    • 022AA0 = Dlg:LoadNewStrPtr_L()
    • 022AAB = Dlg:LoadStrPtr_L(byte secIndex<$E3>, byte strIndex<$E2>)
    • 022ADE = byte<A> Dlg:AskYesNo_L()
      • returns 0 = Yes, 1 = No
    • 022BBA = Dlg:AskNumPlayer_L()
    • 022CC1 = word<A> GetButtonPressed2()()
    • 022CE0 = word<A> GetButtonPressed1(byte playersToCheck<$128F>)
    • 022CFF = Dlg:PrintChoiceStr()
    • 022D32 = bool<A> Dlg:GetNPCGameFlagFromStr_L()
    • 022D36 = bool<A> Dlg:GetNPCGameFlag_L()
    • 022D46 = bool<A> Dlg:GetGameFlagFromStr_L()
    • 022D4A = bool<A> Dlg:GetGameFlag_L()
    • 022D5A = Dlg:SetNPCGameFlagFromStr()
    • 022D5E = Dlg:SetNPCGameFlag()
    • 022D71 = Dlg:ClearGameFlagFromString()
    • 022D8A = Dlg:IncStrPtr(byte num<A>)
    • 022EC2 = Dlg:HandleNPCDlg?(byte secIndex<$FF>, byte strIndex<$FE>)
    • 023051 = Dlg:HandleNPCDlg?()
    • 0233C4 = ClearArrays_L?()
    • 0233FE = Dlg:OutputCharLevel_L()
    • 023467 = Level:HandleSpecialActionRoom_L?()
    • 02350F = Dlg:InitPrintHandler()
    • 023519 = Dlg:ExecPlaceNamePrintHandler()
  • 02352B-02353A (16) = 16-bits pointers to print handler functions
  • 02353B-02353B (1) = Zero, used to clear window in Dlg:PlaceNameInitDlgWndGfxAndMap?()
  • 02353C-023543 (8) = Dlg:GfxLineVRAMAddrs
  • 023544-023A0F (1228) = Asm code (mainly print handlers)
    • 023544 = Dlg:PlaceNameCursorPos0()
    • 02354A = Dlg:PlaceNameInitDlgWndGfxAndMap?()
    • 023611 = Dlg:PlaceNameEnterPlace?()
    • 023623 = Dlg:PrintPlaceName?()
    • 023647 = Dlg:PlaceNameCheckButtonPress()
    • 02365A = Dlg:PutCurChar()
    • 023666 = Dlg:PutChar(word char<A>, byte position<Y>)
  • 023A10-023A13 (4) = Unknown data (words)
  • 023A14-023A6B (88) = Asm code (1 function)
  • 023A6C-023A6F (4) = Unknown data (words)
  • 023A70-023E4B (988) = Asm code
    • 023B5B = word <$DC> CalcMemberSpeed?(byte memberIndex<X>)
    • 023B70 = Party:LoadProjectileGfx()
    • 023B99 = Member:LoadProjectileGfx(byte memberOfs<X>)
    • 023BF7 = Member:RestoreFullHp(byte memberOfs<X>)
    • 023C06 = word <$38> Member:CalcMaxHp(byte memberOfs<X>)
  • 023E4C-023F27 (220) = Unknown data (seems to organized in chunk of 11 bytes)
  • 023F28-0248A1 (2426) = Asm code
    • 023FE0 = HandleMemberObjInteraction(byte memberOfs<X>)
    • 0247EE = HandleMemberUseProjectileAttack(byte memberOfs<X>)
    • 02486D = HandleMemberUseCloseAttack(byte memberOfs<X>)
  • 0248A2-0 (22) = Unknown data (byte char stat list)
  • 0248B8-024A4B (404) = Asm code
    • 0248B8 = HandleMemberIdleAnim(byte memberOfs<X>)
  • 024A4C-024A61 (22) = Unknown data (byte char stat list)
  • 024A62-025D8C (4906) = Asm code
    • 024B04 = Obj:Clear_L(byte objOfs<X>)
    • 024C61 = Member:MakePassword(byte memberOfs<X>)
    • 024E35 = ScramblePassword?()
    • 024E79 = UnscramblePassword?()
    • 024EC8 = bool wrongChar<z> SetVarsFromPassword()
    • 024F40 = SetVarsFromPassword?()
    • 025049 = bool error<s> VerifyPasswordChecksum()
    • 0250D6 = SetBitFlagL(byte bitIndex<A>)
    • 0250E3 = bool <A> GetBitFlagL(byte bitIndex<A>)
    • 02531C = Function to calculate and remove damage done by player?
    • 02540B = byte byteOfs<Y>, byte bitMask<A> MakeBitOfsMask_L(byte bitIndex<A>)()
    • 025583 = byte <A,$38> Member:CalcDamage(byte memberOfs<X>)
    • 025668 = byte <A> Member:CalcAtk_L(byte memberOfs<X>)
    • 025680 = byte <A> Member:CalcAgl_L(byte memberOfs<X>)
    • 025688 = byte <A> Member:CalcAgl_S(byte memberOfs<X>)
    • 0256A0 = byte <$4216> Member:CalcBaseSpeed?(byte memberIndex<X>)
    • 0256B4 = byte <A> Member:CalcStr_L(byte memberOfs<X>)
    • 0256B8 = byte <A> Member:CalcStr_S(byte memberOfs<X>)
    • 0256D0 = byte <A> Member:CalcBaseHP?(byte memberOfs<X>)
    • 0256EB = byte <A> Member:CalcInt_L(byte memberOfs<X>)
    • 0256EF = byte <A> Member:CalcInt_S(byte memberOfs<X>)
    • 025707 = byte <A> ClipCharStatTo20(byte val<A>)
    • 02570E = bool <c> MemberObj:IsTouchingObj?(byte objOfs<X>, byte memberObjOfs<Y>)
    • 025859 = Member:RemoveHpDamage(byte memberOfs<Y>, word damage<$38>)
    • 025B67 = HandleSaveCmd?()
    • 025C56 = ClearMagicAttackVRAMData()
    • 025C8C = Member:UseWhiteJar(byte memberOfs<X>)
    • 025CF1 = Member:UseBlackSkull(byte memberOfs<X>)
  • 025D8D-025DA4 (24) = MagicEffectivenessByInt[24]
    • white jars: number to divide max hp by to determine restore value
    • black skulls: number of black skulls needed to activate attack
  • 025DA5-025DBC (24) = Asm code (bool <s> Level:IsTownLevel?(byte unk<$AF>))
  • 025DBD-025DC7 (11) = Array of town level ids (bytes)
  • 025DC8-025DE9 () = Asm code (bool <s> Level:HasOverlay(byte levelIndex<$68>, byte roomIndex<$67>))
  • 025DEA-025DF9 (16) = Array of room indices (words)
  • 025DFA-025F0E (277) = Asm code (bool inProgress<s> HandleMagicAttack())
  • 025F0F-025F16 (8) = MagicAttackGfxVRAMAddr[4] (words)
  • 025F17-250F1E (8) = MagicAttackAnimFrameGfxBufPtrs?[4] (words)
  • 050F1F-025FEB (205) = Asm code (bool inProgress<s> HandleMagicAttack(), second part)
  • 025FEC-025FEC (1) = Zero, used in MagicAttackClearTilemapVRAM
  • 025FED-02601B (47) = Asm code(MagicAttackClearTilemapVRAM())
  • 02601C-0605D (64) = MagicAttackAnimFrameTilemapPtrs[32] (16-bits pointers to bank $7F)
  • 02605C-0260C3 (104) = Asm code (bool inProgress<s> HandleMagicAttack(), third part)
  • 0260C4-026108 (69) = MagicAttackAnims (24-bits pointers)
  • 026109-0261C9 (193) = MagicAttackAnimWizard
  • 0261CA-02628A (193) = MagicAttackAnimWarrior
  • 02628B-02632D (163) = MagicAttackAnimFighter
  • 02632E-0263CA (157) = MagicAttackAnimKage
  • 0263CB-0264BB (241) = MagicAttackAnimThief
  • 0264BC-026529 (110) = MagicAttackAnimBard
  • 02652A-02664A (289) = MagicAttackAnimPriest
  • 02664B-02677D (307) = MagicAttackAnimWitch
  • 02677E-02685C (223) = MagicAttackAnimBowman
  • 02685D-0268E7 (139) = MagicAttackAnimRobot
  • 0268E8-026A0E (295) = MagicAttackAnimDragon
  • 026A0F-026AA5 (151) = MagicAttackAnimMonk
  • 026AA6-026ABE (25) = MagicAttackAnimInvalidChar
  • 026ABF-026B03 (69) = 24-bits pointers to compressed magic attack tilemap
  • 026B04-026B48 (69) = 24-bits pointers to compressed magic attack graphics
  • 026B49-026B8D (69) = 24-bits pointers to compressed magic attack palette
  • 026B8E-026DF1 (612) = Asm code
    • 026B8E = Map:SetPaletteAndPostProc?()
    • 026C75 = Map:HandleDarkLabyrinthLighting()
    • 026D77 = Map:HandleGasDamage()
  • 026DF2-0270EB (762) = Unknown data
  • 0270EC-02711F (52) = Asm code (1 function)
  • 027120-027161 (66) = CharSpriteGfxPtrs (24-bits pointer char stat list)
  • 027162-0278AA (1865) = Asm code
    • 027162 = LoadHostileObjectsGfxAndPal()
    • 027267 = LoadFriendlyObjectsGfxAndPal()
    • 027366 = byte firstTileNum<A> Obj:LoadGfx(ObjectDef *<2C>)
    • 0273D9 = LoadFriendlyObjectPalette(byte palIndex<$DC>, byte destPalIndex<$DD>)
    • 02740B = LoadHostileObjectPalette(byte palIndex<$DC>)
    • 027441 = UncompressPalette()
    • 027468 = long <$2C> Obj:GetHandlerDefAddr?(byte objOfs<X>)
    • 0274A2 = Obj:InitObjPos(byte objOfx<$F3>, byte x<$E4>, byte y<$E6>)
    • 0274BE = bool <c> Map:ObjStillExists(byte subType<$F4>, byte type<$F5>)
    • 027506 = bool <c> Map:NPCStillExists(byte subType<$F4>, byte type<$F5>)
    • 02758F = Obj:InitMonster()
    • 0275B6 = bool <c> Map:UniqueItemStillExists(byte subType<$F4>, byte type<$F5>)
    • 027653 = byte byteOfs<Y>, byte bitMask<A> MakeLevelBitOfsMaskL(byte bitIndex<A>, byte levelIndex<$68>)
    • 02766A = byte byteOfs<X>, byte bitMask<A> MakeBitOfsMask_L(byte bitIndex<A>)
    • 0276FC = Obj:InitItem(byte objOfs<X>, byte itemType<A>)
    • 0277F1 = Map:LoadObjectsGfxAndPal(long objTypes*<FD>)
  • 0278AB-0278B0 (6) = Unknown data
  • 0278B1-02876D (3773) = Asm code (AI?)
    • 0278B1 = function to calculate and remove damage done to member?
    • 027BFC = HandleVolcanoBossDlg?()
    • 027E8E = HandleForestBossDlg?()
    • 028044 = HandleLabyrinthBossDlg?()
    • 0285C7 = HandleDaimonHiddenIslandBoss2Dlg?()
  • 02876E-02877D (16) = Unknown data (16-bits pointers)
  • 02877E-02B8B0 (12595) = Asm code (AI?)
    • 028BCF = HandleDarkRoadBossDlg?()
    • 0290E1 = HandleDemonGutsBossDlg?()
    • 029478 = HandleWaterfallBossDlg?()
    • 0298B2 = HandleTreeBossDlg?()
    • 0298DE = HandleTreeRootRoomDlg?()
    • 02A44D = HandleDesertTempleBoss1Dlg?()
    • 02A957 = HandleDesertTempleBoss2Dlg?()
    • 02B299 = HandleGarnetCastleBoss1Dlg?()
  • 02B8B1-02EE5D (13741) = Unknown data (bytes and 16-bits pointers)