diff --git a/bin/DMGTRIS.GBC b/bin/DMGTRIS.GBC index 205cddb..61ba697 100644 Binary files a/bin/DMGTRIS.GBC and b/bin/DMGTRIS.GBC differ diff --git a/bin/DMGTRIS.map b/bin/DMGTRIS.map index 2e53f9d..4c2e748 100644 --- a/bin/DMGTRIS.map +++ b/bin/DMGTRIS.map @@ -190,389 +190,394 @@ ROM0 bank #0: $1d49 = GradeRendering.mo $1d4f = GradeRendering.mm $1d55 = GradeRendering.gmgrade - SECTION: $1d60-$21df ($0480 bytes) ["Grading Functions"] - $1d60 = GradeInit - $1d94 = GradeInit.grade9start - $1d99 = GradeInit.end - $1d9b = UpdateGrade - $1da9 = UpdateGrade.gradejumptable - $1dbe = DecayGradeProcess - $1dcc = DecayGradeProcess.gradejumptable - $1de1 = DecayGradeDelay - $1def = DecayGradeDelay.gradejumptable - $1e04 = PrepareScore - $1e17 = DrawGradeProgressDMGT - $1e23 = !0 - $1e32 = UpdateGradeDMGT - $1e6b = UpdateGradeDMGT.checklineclears - $1e85 = UpdateGradeDMGT.clearrate - $1e96 = UpdateGradeDMGT.combomult - $1ea3 = UpdateGradeDMGT.combo10 - $1eb4 = UpdateGradeDMGT.combo5 - $1ec5 = UpdateGradeDMGT.combo1 - $1ed4 = UpdateGradeDMGT.prelevel - $1ee3 = UpdateGradeDMGT.single - $1ef3 = UpdateGradeDMGT.double - $1f04 = UpdateGradeDMGT.adddonce - $1f08 = UpdateGradeDMGT.triple - $1f19 = UpdateGradeDMGT.addtonce - $1f1d = UpdateGradeDMGT.tetris - $1f21 = UpdateGradeDMGT.levelmult - $1f39 = UpdateGradeDMGT.mult4 - $1f3f = UpdateGradeDMGT.mult3 - $1f44 = UpdateGradeDMGT.mult2 - $1f48 = UpdateGradeDMGT.mult1 - $1f49 = UpdateGradeDMGT.processgrade - $1f72 = UpdateGradeDMGT.increasegrademaybe - $1f96 = UpdateGradeDMGT.gotgm - $1fa4 = DecayGradeDMGT - $1fc8 = DecayGradeDMGT.nodecay - $1fcf = DecayGradeDMGT.decay - $1fdd = UpdateGradeTGM1 - $1fee = UpdateGradeTGM1.trygradeup - $2009 = UpdateGradeTGM1.increasegrade - $201e = UpdateGradeTGM1.skipjingle - $202a = UpdateGradeTGM1.check300 - $2049 = UpdateGradeTGM1.success300 - $2050 = UpdateGradeTGM1.fail300 - $2057 = UpdateGradeTGM1.check500 - $2076 = UpdateGradeTGM1.success500 - $207d = UpdateGradeTGM1.fail500 - $2084 = UpdateGradeTGM1.check999 - $20bc = UpdateGradeTGM1.success999 - $20d4 = UpdateGradeTGM1.fail999 - $20da = UpdateGradeDEAT - $20e6 = UpdateGradeDEAT.notgm - $2102 = UpdateGradeDEAT.notm - $2125 = UpdateGradeDEAT.disqualify - $2143 = UpdateGradeSHIR - $2186 = UpdateGradeSHIR.s5torikan - $2196 = UpdateGradeSHIR.s10torikan - $21a5 = UpdateGradeSHIR.disqualify - $21b4 = UpdateGradeSHIR.l1000 - $21ca = UpdateGradeSHIR.l500 - SECTION: $21e0-$2656 ($0477 bytes) ["SRAM Functions"] - $21e0 = RestoreSRAM - $2210 = TrustedLoad - $2262 = TrustedLoad.jumps - $227a = TrustedLoad.dmgt - $2280 = TrustedLoad.tgm1 - $2286 = TrustedLoad.tgm3 - $228c = TrustedLoad.deat - $2292 = TrustedLoad.shir - $2298 = TrustedLoad.chil - $229e = TrustedLoad.myco - $22a4 = TrustedLoad.search - $22b6 = TrustedLoad.notfound - $22bd = TrustedLoad.fallback - $22d8 = InitializeSRAM - $23f7 = ResetScores - $2405 = ResetScores.jumps - $241a = ResetScores.dmgt - $2426 = ResetScores.tgm1 - $2432 = ResetScores.tgm3 - $243e = ResetScores.deat - $244a = ResetScores.shir - $2456 = ResetScores.chil - $2462 = ResetScores.myco - $246e = NextProfile - $2477 = NextProfile.update - $247a = ChangeProfile - $247a = ChangeProfile.backup - $24a9 = ChangeProfile.first - $24b7 = ChangeProfile.second - $24c5 = ChangeProfile.third - $24d3 = ChangeProfile.fourth - $24e1 = ChangeProfile.fifth - $24ef = ChangeProfile.sixth - $24fd = ChangeProfile.seventh - $250b = ChangeProfile.eighth - $2519 = ChangeProfile.ninth - $2527 = ChangeProfile.tenth - $2535 = ChangeProfile.restore - $2565 = ChangeProfile.lfirst - $2574 = ChangeProfile.lsecond - $2583 = ChangeProfile.lthird - $2592 = ChangeProfile.lfourth - $25a1 = ChangeProfile.lfifth - $25b0 = ChangeProfile.lsixth - $25bf = ChangeProfile.lseventh - $25ce = ChangeProfile.leighth - $25dd = ChangeProfile.lninth - $25ec = ChangeProfile.ltenth - $25fb = ResetProfile - SECTION: $2657-$29cf ($0379 bytes) ["Level Functions"] - $2657 = LevelInit - $26bc = SpecialLevelInit - $26ca = SpecialLevelInit.jumps - $26df = SpecialLevelInit.dmgt - $26e4 = SpecialLevelInit.tgm1 - $26e9 = SpecialLevelInit.tgm3 - $26ee = SpecialLevelInit.deat - $26f3 = SpecialLevelInit.shir - $26f8 = SpecialLevelInit.chil - $26fd = SpecialLevelInit.myco - $2702 = SpecialLevelInit.loaddata - $2737 = LevelUp - $2761 = LevelUp.doit - $27a3 = LevelUp.checknlevel - $27d4 = !0 - $27ec = !1 - $27f5 = LevelUp.bellmaybe - $2811 = LevelUp.leveljinglemaybe - $2821 = LevelUp.checkspeedup - $2835 = !2 - $2842 = !3 - $2853 = !4 - $2860 = DoSpeedUp - $28a1 = CheckSpecialLevelConditions - $28d2 = CheckSpecialLevelConditions.override - $28ed = CheckSpecialLevelConditions.nooverride - $28f3 = CheckSpecialLevelConditions.speciallock - $2917 = CheckSpecialLevelConditions.bones - $292c = CheckSpecialLevelConditions.enterthebonezone - $2931 = CheckSpecialLevelConditions.invis - $2946 = CheckSpecialLevelConditions.vanishoxyaction - $294b = CheckSpecialLevelConditions.killscreen - $295c = CheckSpecialLevelConditions.rip - $298c = CheckSpecialLevelConditions.staffroll - $299a = CheckSpecialLevelConditions.justkill - $29ae = TriggerKillScreen - SECTION: $29d0-$2c85 ($02b6 bytes) ["Grading Data"] - $29d0 = sTGM1GradeScores - $29f2 = sTGM3InternalGradeSystem - $2a92 = sTGM3GradeBoosts - $2ab1 = sTGM3LevelMultiplier - $2ab5 = sTGM3BaselineCOOL - $2abe = sTGM3REGRETConditions - $2ad2 = sDMGTGrading - $2b86 = sDMGTGaugeLUT - SECTION: $2c86-$2f25 ($02a0 bytes) ["SFX Functions"] - $2c86 = SFXInit - $2ca8 = SFXPopQueue - $2cbd = SFXPushQueue - $2cce = SFXProcessQueue - $2cdf = !0 - $2cfa = !1 - $2cfc = SFXTriggerNoise - $2d09 = !2 - $2d16 = !3 - $2d22 = SFXEnqueue - $2d37 = SFXEnqueue.findsfx - $2d4c = !4 - $2d5c = !5 - $2d6c = !6 - $2d7c = !7 - $2d8c = !8 - $2d9c = !9 - $2dac = !10 - $2dbc = !11 - $2dcc = !12 - $2ddc = !13 - $2dec = !14 - $2dfc = !15 - $2e0c = !16 - $2e1c = !17 - $2e2c = !18 - $2e3b = !19 - $2e4a = !20 - $2e59 = !21 - $2e68 = !22 - $2e76 = !23 - $2e84 = !24 - $2e91 = SFXKill - $2ec4 = SFXPlayNoise - $2ecf = SFXPlayNoise.noisereg - $2edc = !25 - $2ee6 = SFXPlayNoise.savenoiseplayhead - $2eef = SFXPlay - $2efa = !26 - $2efd = SFXPlay.play - $2f09 = SFXPlay.getRegister - $2f13 = !27 - $2f1d = SFXPlay.savePlayhead - SECTION: $2f26-$3156 ($0231 bytes) ["RNG Functions"] - $2f26 = HarvestEntropy - $2f2c = HarvestEntropy.loop - $2f4d = RNGInit - $2f83 = !0 - $2fb3 = RNGInit.complexinit - $2fca = !1 - $2fe5 = ShiftHistory - $3002 = GetNextHellPiece - $3007 = GetNextTGM1Piece - $300a = !2 - $3022 = !3 - $3024 = GetNextTGM2Piece - $3027 = !4 - $303f = !5 - $3041 = GetNextNesPiece - $304f = GetNextTGM3Piece - $3052 = !6 - $3075 = !7 - $3078 = !8 - $3088 = !9 - $3092 = !10 - $30a0 = !11 - $30af = !12 - $30bb = !13 - $30c7 = !14 - $30d3 = !15 - $30df = !16 - $30eb = !17 - $30f7 = !18 - $3106 = GetNextPiece - $3114 = GetNextPiece.nextpiecejumps - $3123 = Next35Piece - $3123 = !19 - $312d = Next7Piece - $312d = !20 - $3137 = NextByte - SECTION: $3157-$32c5 ($016f bytes) ["Hi Score Functions"] - $3157 = CheckAndAddHiscore - $3161 = CheckAndAddHiscore.checkloop - $31a5 = CheckAndAddHiscore.notbetter - $31b1 = CheckAndAddHiscore.better - $31b3 = InsertHiScore - $31b3 = InsertHiScore.copylower - $31c4 = InsertHiScore.copyupper - $31d1 = !0 - $31e5 = InsertHiScore.findrow - $31f2 = !1 - $31f6 = InsertHiScore.insert - $323f = InsertHiScore.persist - $3250 = GetHiScoreEntry - $3265 = !2 - $3269 = GetHiScoreEntry.store - $3272 = InitTargetHSTable - $327d = InitTargetHSTable.jumps - $3292 = InitTargetHSTable.dmgt - $3297 = InitTargetHSTable.tgm1 - $329c = InitTargetHSTable.tgm3 - $32a1 = InitTargetHSTable.deat - $32a6 = InitTargetHSTable.shir - $32ab = InitTargetHSTable.chil - $32b0 = InitTargetHSTable.myco - $32b3 = InitTargetHSTable.store - SECTION: $32c6-$340f ($014a bytes) ["Progress Data"] - $32c6 = sProgressData - SECTION: $3410-$354f ($0140 bytes) ["Hi Score Data"] - $3410 = sHiscoreDefaultData - SECTION: $3550-$362f ($00e0 bytes) ["Score Functions"] - $3550 = ScoreInit - $3578 = IncreaseScore - $35b0 = IncreaseScore.doConvert - $35b2 = !0 - $35c8 = IncreaseScore.carry - $35ca = IncreaseScore.postConvert - $35d7 = !1 - $35de = IncreaseScore.preAddDigit - $3606 = IncreaseScore.addDigit - $361c = IncreaseScore.nextDigit - SECTION: $3630-$36fc ($00cd bytes) ["Input Functions"] - $3630 = InputInit - $3642 = GetInput - $3642 = GetInput.btns - $364f = GetInput.readA - $3653 = GetInput.setA - $365e = GetInput.clearA - $3661 = GetInput.readB - $3665 = GetInput.setB - $3670 = GetInput.clearB - $3673 = GetInput.readSelect - $3677 = GetInput.setSelect - $3682 = GetInput.clearSelect - $3685 = GetInput.readStart - $3689 = GetInput.setStart - $3694 = GetInput.clearStart - $3697 = GetInput.dpad - $36a4 = GetInput.readUp - $36a8 = GetInput.setUp - $36b3 = GetInput.clearUp - $36b6 = GetInput.readDown - $36ba = GetInput.setDown - $36c5 = GetInput.clearDown - $36c8 = GetInput.readLeft - $36cc = GetInput.setLeft - $36d7 = GetInput.clearLeft - $36da = GetInput.readRight - $36de = GetInput.setRight - $36e9 = GetInput.clearRight - $36ec = GetInput.priorities - $36f7 = GetInput.zero - SECTION: $36fd-$37c7 ($00cb bytes) ["Title Function Trampolines"] - $36fd = SwitchToTitle - $3706 = TitleEventLoopHandler - $3710 = TitleVBlankHandler - $371a = PersistLevel - $3728 = DrawSpeedMain - $3778 = DrawSpeedSettings - SECTION: $37c8-$388d ($00c6 bytes) ["Time Functions"] - $37c8 = TimeInit - $37e8 = StartCountdown - $37f6 = ResetGameTime - $3801 = CheckTorikan - $3818 = CheckTorikan.failure - $381a = CheckTorikan.success - $381d = HandleTimers - $3843 = HandleTimers.reduce - $3850 = HandleTimers.clock - $386a = HandleTimers.go - SECTION: $388e-$393f ($00b2 bytes) ["Progress Functions"] - $388e = SetProgress - $3899 = SetProgress.loop - $389d = SetProgress.correct - $38c4 = SetProgress.wvr_u1 - $38d0 = SetProgress.wvr_u2 - $38de = SetProgress.wvr_u3 - $38ea = SetProgress.wvr_u4 - $38f8 = SetProgress.wvr_u5 - $3904 = SetProgress.wvr_u6 - $3912 = SetProgress.wvr_u7 - $391e = SetProgress.wvr_u8 - $392c = SetProgress.wvr_u9 - $3938 = SetProgress.wvr_u10 - SECTION: $3940-$39d1 ($0092 bytes) ["Code Entry Point"] - $3940 = Main - $3969 = Main.notgbc - $396f = Main.wvr_u1 - $3996 = EventLoop - $39ac = EventLoop.eventloopjumps - $39b5 = EventLoopPostHandler - $39b7 = EventLoopPostHandler.wvb_u2 - $39c9 = EventLoopPostHandler.vblankjumps - SECTION: $39d2-$3a23 ($0052 bytes) ["Tile Functions"] - $39d2 = LoadTitleTiles - $39f0 = LoadGameplayTiles - $3a06 = LoadGameplayTiles.gbc - $3a15 = LoadGameplayTiles.dmg - SECTION: $3a24-$3a5f ($003c bytes) ["Time Data"] - $3a24 = sFramesToCS - SECTION: $3a60-$3a8d ($002e bytes) ["Memory Functions"] - $3a60 = UnsafeMemCopy - $3a69 = SafeMemCopy.wvr_u1 - $3a69 = SafeMemCopy - $3a78 = UnsafeMemSet - $3a80 = SafeMemSet - $3a80 = SafeMemSet.wvr_u2 - SECTION: $3a8e-$3ab3 ($0026 bytes) ["Gameplay Function Trampolines"] - $3a8e = SwitchToGameplay - $3a97 = SwitchToGameplayBig - $3aa0 = GamePlayEventLoopHandler - $3aaa = GamePlayBigEventLoopHandler - SECTION: $3ab4-$3ad8 ($0025 bytes) ["Interrupt Initialization Functions"] - $3ab4 = EnableScreenSquish - $3ace = DisableScreenSquish - SECTION: $3ad9-$3afa ($0022 bytes) ["OAM Functions"] - $3ad9 = CopyOAMHandler - $3ae5 = ClearOAM - SECTION: $3afb-$3b09 ($000f bytes) ["Banking Functions"] - $3afb = BankingInit - SECTION: $3b0a-$3b13 ($000a bytes) ["OAM DMA Code"] - $3b0a = OAMDMA - $3b14 = OAMDMAEnd - EMPTY: $3b14-$3fff ($04ec bytes) - TOTAL EMPTY: $04f7 bytes + SECTION: $1d60-$220a ($04ab bytes) ["SRAM Functions"] + $1d60 = RestoreSRAM + $1d90 = TrustedLoad + $1de2 = TrustedLoad.jumps + $1dfa = TrustedLoad.dmgt + $1e00 = TrustedLoad.tgm1 + $1e06 = TrustedLoad.tgm3 + $1e0c = TrustedLoad.deat + $1e12 = TrustedLoad.shir + $1e18 = TrustedLoad.chil + $1e1e = TrustedLoad.myco + $1e24 = TrustedLoad.search + $1e36 = TrustedLoad.notfound + $1e3d = TrustedLoad.fallback + $1e58 = InitializeSRAM + $1fab = ResetScores + $1fb9 = ResetScores.jumps + $1fce = ResetScores.dmgt + $1fda = ResetScores.tgm1 + $1fe6 = ResetScores.tgm3 + $1ff2 = ResetScores.deat + $1ffe = ResetScores.shir + $200a = ResetScores.chil + $2016 = ResetScores.myco + $2022 = NextProfile + $202b = NextProfile.update + $202e = ChangeProfile + $202e = ChangeProfile.backup + $205d = ChangeProfile.first + $206b = ChangeProfile.second + $2079 = ChangeProfile.third + $2087 = ChangeProfile.fourth + $2095 = ChangeProfile.fifth + $20a3 = ChangeProfile.sixth + $20b1 = ChangeProfile.seventh + $20bf = ChangeProfile.eighth + $20cd = ChangeProfile.ninth + $20db = ChangeProfile.tenth + $20e9 = ChangeProfile.restore + $2119 = ChangeProfile.lfirst + $2128 = ChangeProfile.lsecond + $2137 = ChangeProfile.lthird + $2146 = ChangeProfile.lfourth + $2155 = ChangeProfile.lfifth + $2164 = ChangeProfile.lsixth + $2173 = ChangeProfile.lseventh + $2182 = ChangeProfile.leighth + $2191 = ChangeProfile.lninth + $21a0 = ChangeProfile.ltenth + $21af = ResetProfile + SECTION: $220b-$268a ($0480 bytes) ["Grading Functions"] + $220b = GradeInit + $223f = GradeInit.grade9start + $2244 = GradeInit.end + $2246 = UpdateGrade + $2254 = UpdateGrade.gradejumptable + $2269 = DecayGradeProcess + $2277 = DecayGradeProcess.gradejumptable + $228c = DecayGradeDelay + $229a = DecayGradeDelay.gradejumptable + $22af = PrepareScore + $22c2 = DrawGradeProgressDMGT + $22ce = !0 + $22dd = UpdateGradeDMGT + $2316 = UpdateGradeDMGT.checklineclears + $2330 = UpdateGradeDMGT.clearrate + $2341 = UpdateGradeDMGT.combomult + $234e = UpdateGradeDMGT.combo10 + $235f = UpdateGradeDMGT.combo5 + $2370 = UpdateGradeDMGT.combo1 + $237f = UpdateGradeDMGT.prelevel + $238e = UpdateGradeDMGT.single + $239e = UpdateGradeDMGT.double + $23af = UpdateGradeDMGT.adddonce + $23b3 = UpdateGradeDMGT.triple + $23c4 = UpdateGradeDMGT.addtonce + $23c8 = UpdateGradeDMGT.tetris + $23cc = UpdateGradeDMGT.levelmult + $23e4 = UpdateGradeDMGT.mult4 + $23ea = UpdateGradeDMGT.mult3 + $23ef = UpdateGradeDMGT.mult2 + $23f3 = UpdateGradeDMGT.mult1 + $23f4 = UpdateGradeDMGT.processgrade + $241d = UpdateGradeDMGT.increasegrademaybe + $2441 = UpdateGradeDMGT.gotgm + $244f = DecayGradeDMGT + $2473 = DecayGradeDMGT.nodecay + $247a = DecayGradeDMGT.decay + $2488 = UpdateGradeTGM1 + $2499 = UpdateGradeTGM1.trygradeup + $24b4 = UpdateGradeTGM1.increasegrade + $24c9 = UpdateGradeTGM1.skipjingle + $24d5 = UpdateGradeTGM1.check300 + $24f4 = UpdateGradeTGM1.success300 + $24fb = UpdateGradeTGM1.fail300 + $2502 = UpdateGradeTGM1.check500 + $2521 = UpdateGradeTGM1.success500 + $2528 = UpdateGradeTGM1.fail500 + $252f = UpdateGradeTGM1.check999 + $2567 = UpdateGradeTGM1.success999 + $257f = UpdateGradeTGM1.fail999 + $2585 = UpdateGradeDEAT + $2591 = UpdateGradeDEAT.notgm + $25ad = UpdateGradeDEAT.notm + $25d0 = UpdateGradeDEAT.disqualify + $25ee = UpdateGradeSHIR + $2631 = UpdateGradeSHIR.s5torikan + $2641 = UpdateGradeSHIR.s10torikan + $2650 = UpdateGradeSHIR.disqualify + $265f = UpdateGradeSHIR.l1000 + $2675 = UpdateGradeSHIR.l500 + SECTION: $268b-$2a03 ($0379 bytes) ["Level Functions"] + $268b = LevelInit + $26f0 = SpecialLevelInit + $26fe = SpecialLevelInit.jumps + $2713 = SpecialLevelInit.dmgt + $2718 = SpecialLevelInit.tgm1 + $271d = SpecialLevelInit.tgm3 + $2722 = SpecialLevelInit.deat + $2727 = SpecialLevelInit.shir + $272c = SpecialLevelInit.chil + $2731 = SpecialLevelInit.myco + $2736 = SpecialLevelInit.loaddata + $276b = LevelUp + $2795 = LevelUp.doit + $27d7 = LevelUp.checknlevel + $2808 = !0 + $2820 = !1 + $2829 = LevelUp.bellmaybe + $2845 = LevelUp.leveljinglemaybe + $2855 = LevelUp.checkspeedup + $2869 = !2 + $2876 = !3 + $2887 = !4 + $2894 = DoSpeedUp + $28d5 = CheckSpecialLevelConditions + $2906 = CheckSpecialLevelConditions.override + $2921 = CheckSpecialLevelConditions.nooverride + $2927 = CheckSpecialLevelConditions.speciallock + $294b = CheckSpecialLevelConditions.bones + $2960 = CheckSpecialLevelConditions.enterthebonezone + $2965 = CheckSpecialLevelConditions.invis + $297a = CheckSpecialLevelConditions.vanishoxyaction + $297f = CheckSpecialLevelConditions.killscreen + $2990 = CheckSpecialLevelConditions.rip + $29c0 = CheckSpecialLevelConditions.staffroll + $29ce = CheckSpecialLevelConditions.justkill + $29e2 = TriggerKillScreen + SECTION: $2a04-$2cb9 ($02b6 bytes) ["Grading Data"] + $2a04 = sTGM1GradeScores + $2a26 = sTGM3InternalGradeSystem + $2ac6 = sTGM3GradeBoosts + $2ae5 = sTGM3LevelMultiplier + $2ae9 = sTGM3BaselineCOOL + $2af2 = sTGM3REGRETConditions + $2b06 = sDMGTGrading + $2bba = sDMGTGaugeLUT + SECTION: $2cba-$2f59 ($02a0 bytes) ["SFX Functions"] + $2cba = SFXInit + $2cdc = SFXPopQueue + $2cf1 = SFXPushQueue + $2d02 = SFXProcessQueue + $2d13 = !0 + $2d2e = !1 + $2d30 = SFXTriggerNoise + $2d3d = !2 + $2d4a = !3 + $2d56 = SFXEnqueue + $2d6b = SFXEnqueue.findsfx + $2d80 = !4 + $2d90 = !5 + $2da0 = !6 + $2db0 = !7 + $2dc0 = !8 + $2dd0 = !9 + $2de0 = !10 + $2df0 = !11 + $2e00 = !12 + $2e10 = !13 + $2e20 = !14 + $2e30 = !15 + $2e40 = !16 + $2e50 = !17 + $2e60 = !18 + $2e6f = !19 + $2e7e = !20 + $2e8d = !21 + $2e9c = !22 + $2eaa = !23 + $2eb8 = !24 + $2ec5 = SFXKill + $2ef8 = SFXPlayNoise + $2f03 = SFXPlayNoise.noisereg + $2f10 = !25 + $2f1a = SFXPlayNoise.savenoiseplayhead + $2f23 = SFXPlay + $2f2e = !26 + $2f31 = SFXPlay.play + $2f3d = SFXPlay.getRegister + $2f47 = !27 + $2f51 = SFXPlay.savePlayhead + SECTION: $2f5a-$318a ($0231 bytes) ["RNG Functions"] + $2f5a = HarvestEntropy + $2f60 = HarvestEntropy.loop + $2f81 = RNGInit + $2fb7 = !0 + $2fe7 = RNGInit.complexinit + $2ffe = !1 + $3019 = ShiftHistory + $3036 = GetNextHellPiece + $303b = GetNextTGM1Piece + $303e = !2 + $3056 = !3 + $3058 = GetNextTGM2Piece + $305b = !4 + $3073 = !5 + $3075 = GetNextNesPiece + $3083 = GetNextTGM3Piece + $3086 = !6 + $30a9 = !7 + $30ac = !8 + $30bc = !9 + $30c6 = !10 + $30d4 = !11 + $30e3 = !12 + $30ef = !13 + $30fb = !14 + $3107 = !15 + $3113 = !16 + $311f = !17 + $312b = !18 + $313a = GetNextPiece + $3148 = GetNextPiece.nextpiecejumps + $3157 = Next35Piece + $3157 = !19 + $3161 = Next7Piece + $3161 = !20 + $316b = NextByte + SECTION: $318b-$334e ($01c4 bytes) ["Hi Score Functions"] + $318b = CheckAndAddHiscore + $3195 = CheckAndAddHiscore.checkloop + $319a = CheckAndAddHiscore.checkgrade + $31a3 = CheckAndAddHiscore.oldgraded + $31ae = CheckAndAddHiscore.oldungraded + $31b5 = CheckAndAddHiscore.checklevel + $31da = CheckAndAddHiscore.checkscore + $321d = CheckAndAddHiscore.notbetter + $322a = CheckAndAddHiscore.better + $322c = InsertHiScore + $322c = InsertHiScore.copylower + $323d = InsertHiScore.copyupper + $324a = !0 + $325e = InsertHiScore.findrow + $326b = !1 + $326f = InsertHiScore.insert + $32c8 = InsertHiScore.persist + $32d9 = GetHiScoreEntry + $32ee = !2 + $32f2 = GetHiScoreEntry.store + $32fb = InitTargetHSTable + $3306 = InitTargetHSTable.jumps + $331b = InitTargetHSTable.dmgt + $3320 = InitTargetHSTable.tgm1 + $3325 = InitTargetHSTable.tgm3 + $332a = InitTargetHSTable.deat + $332f = InitTargetHSTable.shir + $3334 = InitTargetHSTable.chil + $3339 = InitTargetHSTable.myco + $333c = InitTargetHSTable.store + SECTION: $334f-$3498 ($014a bytes) ["Progress Data"] + $334f = sProgressData + SECTION: $3499-$35d8 ($0140 bytes) ["Hi Score Data"] + $3499 = sHiscoreDefaultData + SECTION: $35d9-$36b8 ($00e0 bytes) ["Score Functions"] + $35d9 = ScoreInit + $3601 = IncreaseScore + $3639 = IncreaseScore.doConvert + $363b = !0 + $3651 = IncreaseScore.carry + $3653 = IncreaseScore.postConvert + $3660 = !1 + $3667 = IncreaseScore.preAddDigit + $368f = IncreaseScore.addDigit + $36a5 = IncreaseScore.nextDigit + SECTION: $36b9-$3785 ($00cd bytes) ["Input Functions"] + $36b9 = InputInit + $36cb = GetInput + $36cb = GetInput.btns + $36d8 = GetInput.readA + $36dc = GetInput.setA + $36e7 = GetInput.clearA + $36ea = GetInput.readB + $36ee = GetInput.setB + $36f9 = GetInput.clearB + $36fc = GetInput.readSelect + $3700 = GetInput.setSelect + $370b = GetInput.clearSelect + $370e = GetInput.readStart + $3712 = GetInput.setStart + $371d = GetInput.clearStart + $3720 = GetInput.dpad + $372d = GetInput.readUp + $3731 = GetInput.setUp + $373c = GetInput.clearUp + $373f = GetInput.readDown + $3743 = GetInput.setDown + $374e = GetInput.clearDown + $3751 = GetInput.readLeft + $3755 = GetInput.setLeft + $3760 = GetInput.clearLeft + $3763 = GetInput.readRight + $3767 = GetInput.setRight + $3772 = GetInput.clearRight + $3775 = GetInput.priorities + $3780 = GetInput.zero + SECTION: $3786-$3850 ($00cb bytes) ["Title Function Trampolines"] + $3786 = SwitchToTitle + $378f = TitleEventLoopHandler + $3799 = TitleVBlankHandler + $37a3 = PersistLevel + $37b1 = DrawSpeedMain + $3801 = DrawSpeedSettings + SECTION: $3851-$3916 ($00c6 bytes) ["Time Functions"] + $3851 = TimeInit + $3871 = StartCountdown + $387f = ResetGameTime + $388a = CheckTorikan + $38a1 = CheckTorikan.failure + $38a3 = CheckTorikan.success + $38a6 = HandleTimers + $38cc = HandleTimers.reduce + $38d9 = HandleTimers.clock + $38f3 = HandleTimers.go + SECTION: $3917-$39c8 ($00b2 bytes) ["Progress Functions"] + $3917 = SetProgress + $3922 = SetProgress.loop + $3926 = SetProgress.correct + $394d = SetProgress.wvr_u1 + $3959 = SetProgress.wvr_u2 + $3967 = SetProgress.wvr_u3 + $3973 = SetProgress.wvr_u4 + $3981 = SetProgress.wvr_u5 + $398d = SetProgress.wvr_u6 + $399b = SetProgress.wvr_u7 + $39a7 = SetProgress.wvr_u8 + $39b5 = SetProgress.wvr_u9 + $39c1 = SetProgress.wvr_u10 + SECTION: $39c9-$3a5a ($0092 bytes) ["Code Entry Point"] + $39c9 = Main + $39f2 = Main.notgbc + $39f8 = Main.wvr_u1 + $3a1f = EventLoop + $3a35 = EventLoop.eventloopjumps + $3a3e = EventLoopPostHandler + $3a40 = EventLoopPostHandler.wvb_u2 + $3a52 = EventLoopPostHandler.vblankjumps + SECTION: $3a5b-$3aac ($0052 bytes) ["Tile Functions"] + $3a5b = LoadTitleTiles + $3a79 = LoadGameplayTiles + $3a8f = LoadGameplayTiles.gbc + $3a9e = LoadGameplayTiles.dmg + SECTION: $3aad-$3ae8 ($003c bytes) ["Time Data"] + $3aad = sFramesToCS + SECTION: $3ae9-$3b16 ($002e bytes) ["Memory Functions"] + $3ae9 = UnsafeMemCopy + $3af2 = SafeMemCopy.wvr_u1 + $3af2 = SafeMemCopy + $3b01 = UnsafeMemSet + $3b09 = SafeMemSet + $3b09 = SafeMemSet.wvr_u2 + SECTION: $3b17-$3b3c ($0026 bytes) ["Gameplay Function Trampolines"] + $3b17 = SwitchToGameplay + $3b20 = SwitchToGameplayBig + $3b29 = GamePlayEventLoopHandler + $3b33 = GamePlayBigEventLoopHandler + SECTION: $3b3d-$3b61 ($0025 bytes) ["Interrupt Initialization Functions"] + $3b3d = EnableScreenSquish + $3b57 = DisableScreenSquish + SECTION: $3b62-$3b83 ($0022 bytes) ["OAM Functions"] + $3b62 = CopyOAMHandler + $3b6e = ClearOAM + SECTION: $3b84-$3b92 ($000f bytes) ["Banking Functions"] + $3b84 = BankingInit + SECTION: $3b93-$3b9c ($000a bytes) ["OAM DMA Code"] + $3b93 = OAMDMA + $3b9d = OAMDMAEnd + EMPTY: $3b9d-$3fff ($0463 bytes) + TOTAL EMPTY: $046e bytes ROMX bank #1: SECTION: $4000-$4007 ($0008 bytes) ["Bank ID BANK_OTHER"] @@ -673,278 +678,308 @@ ROMX bank #3: ROMX bank #4: SECTION: $4000-$4007 ($0008 bytes) ["Bank ID BANK_TITLE"] - SECTION: $4008-$4fcf ($0fc8 bytes) ["Title Screen Static Data"] - $4008 = sEasterM0 - $400d = sEasterM1 - $4012 = sEasterC0 - $401d = sEasterC1 - $4028 = sEasterA0 - $4033 = sEasterA1 - $403e = sEasterS0 - $4043 = sEasterS1 - $4048 = sBUTTONSMode - $4050 = sRNGMode - $4064 = sROTMode - $4074 = sDROPMode - $4088 = sCURVEMode - $40a4 = sHIGMode - $40ac = sDisabled - $40b0 = sTetryButtons - $40f0 = sTetryRNG - $4130 = sTetryROT - $4170 = sTetryDROP - $41b0 = sTetryCURVE - $41f0 = sTetryHIG - $4230 = sTetrySTART - $4270 = sTetryEXIT - $42b0 = sTitleScreenMainMap - $4550 = sTitleScreenSettingsMap - $4550 = sTitleScreenMainMapEnd - $47f0 = sTitleScreenCreditsMap - $47f0 = sTitleScreenSettingsMapEnd - $4a90 = sTitleScreenProfileMap - $4a90 = sTitleScreenCreditsMapEnd - $4d30 = sTitleScreenRecordsMap - $4d30 = sTitleScreenProfileMapEnd - $4fd0 = sTitleScreenRecordsMapEnd - SECTION: $4fd0-$5e32 ($0e63 bytes) ["Title Functions Banked"] - $4fd0 = SwitchToTitleB - $4fd6 = SwitchToTitleB.wvr_u1 - $4fdf = !0 - $5002 = SwitchToTitleB.wvb_u2 - $5009 = SwitchToTitleB.wvbe_u3 - $500f = SwitchTitleMode - $5020 = SwitchTitleMode.wvr_u4 - $5029 = !1 - $5034 = SwitchTitleMode.jumps - $5043 = SwitchTitleMode.switchMain - $5070 = SwitchTitleMode.notsgb - $5091 = SwitchTitleMode.notmgb - $50b9 = SwitchTitleMode.agb - $50d3 = SwitchTitleMode.done - $50db = SwitchTitleMode.switchProfile - $50ef = SwitchTitleMode.switchSettings - $5103 = SwitchTitleMode.switchRecords - $5118 = SwitchTitleMode.switchCredits - $512c = TitleEventLoopHandlerB - $513a = TitleEventLoopHandlerB.jumps - $5149 = TitleEventLoopHandlerB.eventLoopMain - $5173 = TitleEventLoopHandlerB.d0 - $5187 = TitleEventLoopHandlerB.eventLoopProfile - $51b1 = TitleEventLoopHandlerB.d2 - $51c6 = TitleEventLoopHandlerB.l2 - $51db = TitleEventLoopHandlerB.r2 - $51f0 = TitleEventLoopHandlerB.eventLoopSettings - $521a = TitleEventLoopHandlerB.d1 - $522f = TitleEventLoopHandlerB.l1 - $5244 = TitleEventLoopHandlerB.r1 - $5258 = TitleEventLoopHandlerB.eventLoopRecords - $5275 = TitleEventLoopHandlerB.eventLoopCredits - $528b = TitleEventLoopHandlerB.quitrecords - $528b = TitleEventLoopHandlerB.quitcredits - $5290 = TitleVBlankHandlerB - $529e = TitleVBlankHandlerB.jumps - $52ad = TitleVBlankHandlerB.vblankMain - $52b7 = TitleVBlankHandlerB.notselected_u5 - $52bc = TitleVBlankHandlerB.selected_u5 - $52bf = TitleVBlankHandlerB.done_u5 - $52c9 = TitleVBlankHandlerB.notselected_u6 - $52ce = TitleVBlankHandlerB.selected_u6 - $52d1 = TitleVBlankHandlerB.done_u6 - $52db = TitleVBlankHandlerB.notselected_u7 - $52e0 = TitleVBlankHandlerB.selected_u7 - $52e3 = TitleVBlankHandlerB.done_u7 - $52ed = TitleVBlankHandlerB.notselected_u8 - $52f2 = TitleVBlankHandlerB.selected_u8 - $52f5 = TitleVBlankHandlerB.done_u8 - $52ff = TitleVBlankHandlerB.notselected_u9 - $5304 = TitleVBlankHandlerB.selected_u9 - $5307 = TitleVBlankHandlerB.done_u9 - $5311 = TitleVBlankHandlerB.notselected_u10 - $5316 = TitleVBlankHandlerB.selected_u10 - $5319 = TitleVBlankHandlerB.done_u10 - $53a3 = TitleVBlankHandlerB.disabled - $53af = TitleVBlankHandlerB.profile - $53be = TitleVBlankHandlerB.vblankProfile - $53c8 = TitleVBlankHandlerB.notselected_u11 - $53cd = TitleVBlankHandlerB.selected_u11 - $53d0 = TitleVBlankHandlerB.done_u11 - $53da = TitleVBlankHandlerB.notselected_u12 - $53df = TitleVBlankHandlerB.selected_u12 - $53e2 = TitleVBlankHandlerB.done_u12 - $53ec = TitleVBlankHandlerB.notselected_u13 - $53f1 = TitleVBlankHandlerB.selected_u13 - $53f4 = TitleVBlankHandlerB.done_u13 - $53fe = TitleVBlankHandlerB.notselected_u14 - $5403 = TitleVBlankHandlerB.selected_u14 - $5406 = TitleVBlankHandlerB.done_u14 - $5410 = TitleVBlankHandlerB.notselected_u15 - $5415 = TitleVBlankHandlerB.selected_u15 - $5418 = TitleVBlankHandlerB.done_u15 - $5422 = TitleVBlankHandlerB.notselected_u16 - $5427 = TitleVBlankHandlerB.selected_u16 - $542a = TitleVBlankHandlerB.done_u16 - $5449 = TitleVBlankHandlerB.vblankSettings - $5453 = TitleVBlankHandlerB.notselected_u17 - $5458 = TitleVBlankHandlerB.selected_u17 - $545b = TitleVBlankHandlerB.done_u17 - $5465 = TitleVBlankHandlerB.notselected_u18 - $546a = TitleVBlankHandlerB.selected_u18 - $546d = TitleVBlankHandlerB.done_u18 - $5477 = TitleVBlankHandlerB.notselected_u19 - $547c = TitleVBlankHandlerB.selected_u19 - $547f = TitleVBlankHandlerB.done_u19 - $5489 = TitleVBlankHandlerB.notselected_u20 - $548e = TitleVBlankHandlerB.selected_u20 - $5491 = TitleVBlankHandlerB.done_u20 - $549b = TitleVBlankHandlerB.notselected_u21 - $54a0 = TitleVBlankHandlerB.selected_u21 - $54a3 = TitleVBlankHandlerB.done_u21 - $54ad = TitleVBlankHandlerB.notselected_u22 - $54b2 = TitleVBlankHandlerB.selected_u22 - $54b5 = TitleVBlankHandlerB.done_u22 - $54bf = TitleVBlankHandlerB.notselected_u23 - $54c4 = TitleVBlankHandlerB.selected_u23 - $54c7 = TitleVBlankHandlerB.done_u23 - $54d1 = TitleVBlankHandlerB.notselected_u24 - $54d6 = TitleVBlankHandlerB.selected_u24 - $54d9 = TitleVBlankHandlerB.done_u24 - $5563 = TitleVBlankHandlerB.disabled1 - $556f = TitleVBlankHandlerB.buttons - $5594 = !2 - $559c = TitleVBlankHandlerB.donetetry - $55c2 = TitleVBlankHandlerB.vblankRecords - $55c3 = TitleVBlankHandlerB.vblankCredits - $55c4 = MainHandleA - $55d2 = MainHandleA.jumps - $55e4 = MainHandleA.tosettings - $55e9 = MainHandleA.tocredits - $55ee = MainHandleA.toprofile - $55f3 = MainHandleA.torecords - $55f8 = MainHandleUp - $5604 = !3 - $560a = MainHandleDown - $5616 = !4 - $561b = SettingsHandleA - $5628 = ProfileHandleB - $5628 = SettingsHandleB - $562d = SettingsHandleDown - $5639 = !5 - $563e = SettingsHandleUp - $564a = !6 - $5650 = SettingsHandleLeft - $5661 = SettingsHandleLeft.jumps - $5679 = SettingsHandleLeft.buttons - $5688 = !7 - $5691 = SettingsHandleLeft.rng - $56a0 = !8 - $56a9 = SettingsHandleLeft.rot - $56b8 = !9 - $56c1 = SettingsHandleLeft.drop - $56d0 = !10 - $56d9 = SettingsHandleLeft.curve - $56eb = !11 - $56f7 = SettingsHandleLeft.hig - $5706 = !12 - $570f = SettingsHandleRight - $5720 = SettingsHandleRight.jumps - $5738 = SettingsHandleRight.buttons - $5747 = !13 - $574f = SettingsHandleRight.rng - $575e = !14 - $5766 = SettingsHandleRight.rot - $5775 = !15 - $577d = SettingsHandleRight.drop - $578c = !16 - $5794 = SettingsHandleRight.curve - $57a6 = !17 - $57b1 = SettingsHandleRight.hig - $57c0 = !18 - $57c8 = ProfileHandleA - $57dc = ProfileHandleRight - $57f0 = ProfileHandleRight.jumps - $57ff = ProfileHandleRight.idx - $5808 = ProfileHandleRight.doit - $580b = ProfileHandleRight.l0 - $5815 = ProfileHandleRight.doit1 - $581c = ProfileHandleRight.l1 - $5826 = ProfileHandleRight.doit2 - $582d = ProfileHandleRight.l2 - $5837 = ProfileHandleRight.doit3 - $583e = ProfileHandleLeft - $5852 = ProfileHandleLeft.jumps - $5861 = ProfileHandleLeft.idx - $586b = ProfileHandleLeft.doit - $586e = ProfileHandleLeft.l0 - $5878 = ProfileHandleLeft.doit1 - $587f = ProfileHandleLeft.l1 - $5889 = ProfileHandleLeft.doit2 - $5890 = ProfileHandleLeft.l2 - $589a = ProfileHandleLeft.doit3 - $58a1 = ProfileHandleDown - $58ad = !19 - $58b2 = ProfileHandleUp - $58be = !20 - $58c4 = DecrementLevel - $58da = IncrementLevel - $58f0 = InitSpeedCurve - $58ff = GetEnd - $590a = !21 - $5912 = !22 - $591a = !23 - $5922 = !24 - $592a = !25 - $5932 = !26 - $5936 = GetStart - $5941 = !27 - $5949 = !28 - $5951 = !29 - $5959 = !30 - $5961 = !31 - $5969 = !32 - $596d = CheckLevelRange - $5986 = CheckLevelRange.notatend - $59a6 = CheckLevelRange.notatstart - $59a7 = RecordsHandleLeft - $59b8 = !33 - $59c0 = RecordsHandleRight - $59d1 = !34 - $59d8 = RecordsHandleSelect - $59e1 = RenderScores - $59e7 = RenderScores.wvr_u25 - $59f0 = !35 - $5a53 = RenderScores.nograde_u26 - $5a58 = RenderScores.grade_u26 - $5a5b = RenderScores.postgrade_u26 - $5abc = RenderScores.nograde_u27 - $5ac1 = RenderScores.grade_u27 - $5ac4 = RenderScores.postgrade_u27 - $5b25 = RenderScores.nograde_u28 - $5b2a = RenderScores.grade_u28 - $5b2d = RenderScores.postgrade_u28 - $5b8e = RenderScores.nograde_u29 - $5b93 = RenderScores.grade_u29 - $5b96 = RenderScores.postgrade_u29 - $5bf7 = RenderScores.nograde_u30 - $5bfc = RenderScores.grade_u30 - $5bff = RenderScores.postgrade_u30 - $5c60 = RenderScores.nograde_u31 - $5c65 = RenderScores.grade_u31 - $5c68 = RenderScores.postgrade_u31 - $5cc9 = RenderScores.nograde_u32 - $5cce = RenderScores.grade_u32 - $5cd1 = RenderScores.postgrade_u32 - $5d32 = RenderScores.nograde_u33 - $5d37 = RenderScores.grade_u33 - $5d3a = RenderScores.postgrade_u33 - $5d9b = RenderScores.nograde_u34 - $5da0 = RenderScores.grade_u34 - $5da3 = RenderScores.postgrade_u34 - $5e04 = RenderScores.nograde_u35 - $5e09 = RenderScores.grade_u35 - $5e0c = RenderScores.postgrade_u35 - EMPTY: $5e33-$7fff ($21cd bytes) - TOTAL EMPTY: $21cd bytes + SECTION: $4008-$50f5 ($10ee bytes) ["Title Functions Banked"] + $4008 = SwitchToTitleB + $400e = SwitchToTitleB.wvr_u1 + $4017 = !0 + $403a = SwitchToTitleB.wvb_u2 + $4041 = SwitchToTitleB.wvbe_u3 + $4047 = SwitchTitleMode + $4058 = SwitchTitleMode.wvr_u4 + $4061 = !1 + $406c = SwitchTitleMode.jumps + $407b = SwitchTitleMode.switchMain + $40a8 = SwitchTitleMode.notsgb + $40c9 = SwitchTitleMode.notmgb + $40f1 = SwitchTitleMode.agb + $410b = SwitchTitleMode.done + $4113 = SwitchTitleMode.switchProfile + $4127 = SwitchTitleMode.switchSettings + $413b = SwitchTitleMode.switchRecords + $4156 = SwitchTitleMode.switchCredits + $416a = TitleEventLoopHandlerB + $4178 = TitleEventLoopHandlerB.jumps + $4187 = TitleEventLoopHandlerB.eventLoopMain + $41b1 = TitleEventLoopHandlerB.d0 + $41c5 = TitleEventLoopHandlerB.eventLoopProfile + $41ef = TitleEventLoopHandlerB.d2 + $4204 = TitleEventLoopHandlerB.l2 + $4219 = TitleEventLoopHandlerB.r2 + $422e = TitleEventLoopHandlerB.eventLoopSettings + $4258 = TitleEventLoopHandlerB.d1 + $426d = TitleEventLoopHandlerB.l1 + $4282 = TitleEventLoopHandlerB.r1 + $4296 = TitleEventLoopHandlerB.eventLoopRecords + $42ca = TitleEventLoopHandlerB.eventLoopCredits + $42e0 = TitleEventLoopHandlerB.quitrecords + $42e0 = TitleEventLoopHandlerB.quitcredits + $42e5 = TitleVBlankHandlerB + $42f3 = TitleVBlankHandlerB.jumps + $4302 = TitleVBlankHandlerB.vblankMain + $430c = TitleVBlankHandlerB.notselected_u5 + $4311 = TitleVBlankHandlerB.selected_u5 + $4314 = TitleVBlankHandlerB.done_u5 + $431e = TitleVBlankHandlerB.notselected_u6 + $4323 = TitleVBlankHandlerB.selected_u6 + $4326 = TitleVBlankHandlerB.done_u6 + $4330 = TitleVBlankHandlerB.notselected_u7 + $4335 = TitleVBlankHandlerB.selected_u7 + $4338 = TitleVBlankHandlerB.done_u7 + $4342 = TitleVBlankHandlerB.notselected_u8 + $4347 = TitleVBlankHandlerB.selected_u8 + $434a = TitleVBlankHandlerB.done_u8 + $4354 = TitleVBlankHandlerB.notselected_u9 + $4359 = TitleVBlankHandlerB.selected_u9 + $435c = TitleVBlankHandlerB.done_u9 + $4366 = TitleVBlankHandlerB.notselected_u10 + $436b = TitleVBlankHandlerB.selected_u10 + $436e = TitleVBlankHandlerB.done_u10 + $43f8 = TitleVBlankHandlerB.disabled + $4404 = TitleVBlankHandlerB.profile + $4413 = TitleVBlankHandlerB.vblankProfile + $441d = TitleVBlankHandlerB.notselected_u11 + $4422 = TitleVBlankHandlerB.selected_u11 + $4425 = TitleVBlankHandlerB.done_u11 + $442f = TitleVBlankHandlerB.notselected_u12 + $4434 = TitleVBlankHandlerB.selected_u12 + $4437 = TitleVBlankHandlerB.done_u12 + $4441 = TitleVBlankHandlerB.notselected_u13 + $4446 = TitleVBlankHandlerB.selected_u13 + $4449 = TitleVBlankHandlerB.done_u13 + $4453 = TitleVBlankHandlerB.notselected_u14 + $4458 = TitleVBlankHandlerB.selected_u14 + $445b = TitleVBlankHandlerB.done_u14 + $4465 = TitleVBlankHandlerB.notselected_u15 + $446a = TitleVBlankHandlerB.selected_u15 + $446d = TitleVBlankHandlerB.done_u15 + $4477 = TitleVBlankHandlerB.notselected_u16 + $447c = TitleVBlankHandlerB.selected_u16 + $447f = TitleVBlankHandlerB.done_u16 + $449e = TitleVBlankHandlerB.vblankSettings + $44a8 = TitleVBlankHandlerB.notselected_u17 + $44ad = TitleVBlankHandlerB.selected_u17 + $44b0 = TitleVBlankHandlerB.done_u17 + $44ba = TitleVBlankHandlerB.notselected_u18 + $44bf = TitleVBlankHandlerB.selected_u18 + $44c2 = TitleVBlankHandlerB.done_u18 + $44cc = TitleVBlankHandlerB.notselected_u19 + $44d1 = TitleVBlankHandlerB.selected_u19 + $44d4 = TitleVBlankHandlerB.done_u19 + $44de = TitleVBlankHandlerB.notselected_u20 + $44e3 = TitleVBlankHandlerB.selected_u20 + $44e6 = TitleVBlankHandlerB.done_u20 + $44f0 = TitleVBlankHandlerB.notselected_u21 + $44f5 = TitleVBlankHandlerB.selected_u21 + $44f8 = TitleVBlankHandlerB.done_u21 + $4502 = TitleVBlankHandlerB.notselected_u22 + $4507 = TitleVBlankHandlerB.selected_u22 + $450a = TitleVBlankHandlerB.done_u22 + $4514 = TitleVBlankHandlerB.notselected_u23 + $4519 = TitleVBlankHandlerB.selected_u23 + $451c = TitleVBlankHandlerB.done_u23 + $4526 = TitleVBlankHandlerB.notselected_u24 + $452b = TitleVBlankHandlerB.selected_u24 + $452e = TitleVBlankHandlerB.done_u24 + $45b8 = TitleVBlankHandlerB.disabled1 + $45c4 = TitleVBlankHandlerB.buttons + $45e9 = !2 + $45f1 = TitleVBlankHandlerB.donetetry + $4617 = TitleVBlankHandlerB.vblankRecords + $4618 = TitleVBlankHandlerB.vblankCredits + $4619 = MainHandleA + $4627 = MainHandleA.jumps + $4639 = MainHandleA.tosettings + $463e = MainHandleA.tocredits + $4643 = MainHandleA.toprofile + $4648 = MainHandleA.torecords + $464d = MainHandleUp + $4659 = !3 + $465f = MainHandleDown + $466b = !4 + $4670 = SettingsHandleA + $467d = ProfileHandleB + $467d = SettingsHandleB + $4682 = SettingsHandleDown + $468e = !5 + $4693 = SettingsHandleUp + $469f = !6 + $46a5 = SettingsHandleLeft + $46b6 = SettingsHandleLeft.jumps + $46ce = SettingsHandleLeft.buttons + $46dd = !7 + $46e6 = SettingsHandleLeft.rng + $46f5 = !8 + $46fe = SettingsHandleLeft.rot + $470d = !9 + $4716 = SettingsHandleLeft.drop + $4725 = !10 + $472e = SettingsHandleLeft.curve + $4740 = !11 + $474c = SettingsHandleLeft.hig + $475b = !12 + $4764 = SettingsHandleRight + $4775 = SettingsHandleRight.jumps + $478d = SettingsHandleRight.buttons + $479c = !13 + $47a4 = SettingsHandleRight.rng + $47b3 = !14 + $47bb = SettingsHandleRight.rot + $47ca = !15 + $47d2 = SettingsHandleRight.drop + $47e1 = !16 + $47e9 = SettingsHandleRight.curve + $47fb = !17 + $4806 = SettingsHandleRight.hig + $4815 = !18 + $481d = ProfileHandleA + $4831 = ProfileHandleRight + $4845 = ProfileHandleRight.jumps + $4854 = ProfileHandleRight.idx + $485d = ProfileHandleRight.doit + $4860 = ProfileHandleRight.l0 + $486a = ProfileHandleRight.doit1 + $4871 = ProfileHandleRight.l1 + $487b = ProfileHandleRight.doit2 + $4882 = ProfileHandleRight.l2 + $488c = ProfileHandleRight.doit3 + $4893 = ProfileHandleLeft + $48a7 = ProfileHandleLeft.jumps + $48b6 = ProfileHandleLeft.idx + $48c0 = ProfileHandleLeft.doit + $48c3 = ProfileHandleLeft.l0 + $48cd = ProfileHandleLeft.doit1 + $48d4 = ProfileHandleLeft.l1 + $48de = ProfileHandleLeft.doit2 + $48e5 = ProfileHandleLeft.l2 + $48ef = ProfileHandleLeft.doit3 + $48f6 = ProfileHandleDown + $4902 = !19 + $4907 = ProfileHandleUp + $4913 = !20 + $4919 = DecrementLevel + $492f = IncrementLevel + $4945 = InitSpeedCurve + $4954 = GetEnd + $495f = !21 + $4967 = !22 + $496f = !23 + $4977 = !24 + $497f = !25 + $4987 = !26 + $498b = GetStart + $4996 = !27 + $499e = !28 + $49a6 = !29 + $49ae = !30 + $49b6 = !31 + $49be = !32 + $49c2 = CheckLevelRange + $49db = CheckLevelRange.notatend + $49fb = CheckLevelRange.notatstart + $49fc = RecordsHandleLeft + $4a13 = !33 + $4a1b = RecordsHandleRight + $4a32 = !34 + $4a39 = RecordsHandleSelect + $4a42 = RenderScores + $4a48 = RenderScores.wvr_u25 + $4a51 = !35 + $4a7c = RenderScores.score_u26 + $4aa6 = RenderScores.level_u26 + $4ada = RenderScores.name_u26 + $4af1 = RenderScores.nograde_u26 + $4af6 = RenderScores.grade_u26 + $4af9 = RenderScores.postgrade_u26 + $4b22 = RenderScores.score_u27 + $4b4c = RenderScores.level_u27 + $4b80 = RenderScores.name_u27 + $4b97 = RenderScores.nograde_u27 + $4b9c = RenderScores.grade_u27 + $4b9f = RenderScores.postgrade_u27 + $4bc8 = RenderScores.score_u28 + $4bf2 = RenderScores.level_u28 + $4c26 = RenderScores.name_u28 + $4c3d = RenderScores.nograde_u28 + $4c42 = RenderScores.grade_u28 + $4c45 = RenderScores.postgrade_u28 + $4c6e = RenderScores.score_u29 + $4c98 = RenderScores.level_u29 + $4ccc = RenderScores.name_u29 + $4ce3 = RenderScores.nograde_u29 + $4ce8 = RenderScores.grade_u29 + $4ceb = RenderScores.postgrade_u29 + $4d14 = RenderScores.score_u30 + $4d3e = RenderScores.level_u30 + $4d72 = RenderScores.name_u30 + $4d89 = RenderScores.nograde_u30 + $4d8e = RenderScores.grade_u30 + $4d91 = RenderScores.postgrade_u30 + $4dba = RenderScores.score_u31 + $4de4 = RenderScores.level_u31 + $4e18 = RenderScores.name_u31 + $4e2f = RenderScores.nograde_u31 + $4e34 = RenderScores.grade_u31 + $4e37 = RenderScores.postgrade_u31 + $4e60 = RenderScores.score_u32 + $4e8a = RenderScores.level_u32 + $4ebe = RenderScores.name_u32 + $4ed5 = RenderScores.nograde_u32 + $4eda = RenderScores.grade_u32 + $4edd = RenderScores.postgrade_u32 + $4f06 = RenderScores.score_u33 + $4f30 = RenderScores.level_u33 + $4f64 = RenderScores.name_u33 + $4f7b = RenderScores.nograde_u33 + $4f80 = RenderScores.grade_u33 + $4f83 = RenderScores.postgrade_u33 + $4fac = RenderScores.score_u34 + $4fd6 = RenderScores.level_u34 + $500a = RenderScores.name_u34 + $5021 = RenderScores.nograde_u34 + $5026 = RenderScores.grade_u34 + $5029 = RenderScores.postgrade_u34 + $5052 = RenderScores.score_u35 + $507c = RenderScores.level_u35 + $50b0 = RenderScores.name_u35 + $50c7 = RenderScores.nograde_u35 + $50cc = RenderScores.grade_u35 + $50cf = RenderScores.postgrade_u35 + SECTION: $50f6-$60bd ($0fc8 bytes) ["Title Screen Static Data"] + $50f6 = sEasterM0 + $50fb = sEasterM1 + $5100 = sEasterC0 + $510b = sEasterC1 + $5116 = sEasterA0 + $5121 = sEasterA1 + $512c = sEasterS0 + $5131 = sEasterS1 + $5136 = sBUTTONSMode + $513e = sRNGMode + $5152 = sROTMode + $5162 = sDROPMode + $5176 = sCURVEMode + $5192 = sHIGMode + $519a = sDisabled + $519e = sTetryButtons + $51de = sTetryRNG + $521e = sTetryROT + $525e = sTetryDROP + $529e = sTetryCURVE + $52de = sTetryHIG + $531e = sTetrySTART + $535e = sTetryEXIT + $539e = sTitleScreenMainMap + $563e = sTitleScreenSettingsMap + $563e = sTitleScreenMainMapEnd + $58de = sTitleScreenCreditsMap + $58de = sTitleScreenSettingsMapEnd + $5b7e = sTitleScreenProfileMap + $5b7e = sTitleScreenCreditsMapEnd + $5e1e = sTitleScreenRecordsMap + $5e1e = sTitleScreenProfileMapEnd + $60be = sTitleScreenRecordsMapEnd + EMPTY: $60be-$7fff ($1f42 bytes) + TOTAL EMPTY: $1f42 bytes ROMX bank #5: SECTION: $4000-$4007 ($0008 bytes) ["Bank ID BANK_GAMEPLAY"] @@ -2865,31 +2900,33 @@ WRAM0 bank #0: $cf29 = wInitialA $cf2a = wInitialB $cf2b = wInitialC - SECTION: $cf2c-$cf31 ($0006 bytes) ["Time Variables"] - $cf2c = wMinutes - $cf2d = wSeconds - $cf2e = wFrames - $cf2f = wCountDown - $cf31 = wCountDownZero - SECTION: $cf32-$cf36 ($0005 bytes) ["Title Variables"] - $cf32 = wSelected - $cf33 = wTitleMode - $cf34 = wProfileName - SECTION: $cf37-$cf3a ($0004 bytes) ["Banking Variables"] - $cf37 = wBankBackup - SECTION: $cf3b-$cf3e ($0004 bytes) ["Gameplay Variables"] - $cf3b = wRollLine - $cf3c = wInStaffRoll - $cf3d = wBigModeTransfered - $cf3e = wGameOverIgnoreInput - SECTION: $cf3f-$cf41 ($0003 bytes) ["GBC Variables"] - $cf3f = wOuterReps - $cf40 = wInnerReps - $cf41 = wTitlePal - SECTION: $cf42-$cf42 ($0001 byte) ["SRAM Variables"] - $cf42 = wTarget - EMPTY: $cf43-$cfff ($00bd bytes) - TOTAL EMPTY: $00bd bytes + SECTION: $cf2c-$cf32 ($0007 bytes) ["Title Variables"] + $cf2c = wSelected + $cf2d = wTitleMode + $cf2e = wProfileName + $cf31 = wDisplayingScoreMode + $cf32 = wScoreFlipTimer + SECTION: $cf33-$cf38 ($0006 bytes) ["Time Variables"] + $cf33 = wMinutes + $cf34 = wSeconds + $cf35 = wFrames + $cf36 = wCountDown + $cf38 = wCountDownZero + SECTION: $cf39-$cf3c ($0004 bytes) ["Banking Variables"] + $cf39 = wBankBackup + SECTION: $cf3d-$cf40 ($0004 bytes) ["Gameplay Variables"] + $cf3d = wRollLine + $cf3e = wInStaffRoll + $cf3f = wBigModeTransfered + $cf40 = wGameOverIgnoreInput + SECTION: $cf41-$cf43 ($0003 bytes) ["GBC Variables"] + $cf41 = wOuterReps + $cf42 = wInnerReps + $cf43 = wTitlePal + SECTION: $cf44-$cf44 ($0001 byte) ["SRAM Variables"] + $cf44 = wTarget + EMPTY: $cf45-$cfff ($00bb bytes) + TOTAL EMPTY: $00bb bytes HRAM bank #0: SECTION: $ff80-$ff9a ($001b bytes) ["High Field Variables"] @@ -2980,8 +3017,8 @@ HRAM bank #0: TOTAL EMPTY: $0003 bytes SUMMARY: - ROM0: 15113 bytes used / 1271 free - ROMX: 66020 bytes used / 32284 free in 6 banks + ROM0: 15250 bytes used / 1134 free + ROMX: 66671 bytes used / 31633 free in 6 banks SRAM: 2951 bytes used / 5241 free in 1 bank - WRAM0: 3907 bytes used / 189 free + WRAM0: 3909 bytes used / 187 free HRAM: 124 bytes used / 3 free diff --git a/bin/DMGTRIS.pocket b/bin/DMGTRIS.pocket index 4d9d64e..97df7f8 100644 Binary files a/bin/DMGTRIS.pocket and b/bin/DMGTRIS.pocket differ diff --git a/bin/DMGTRIS.sym b/bin/DMGTRIS.sym index 39f0858..50ecfea 100644 --- a/bin/DMGTRIS.sym +++ b/bin/DMGTRIS.sym @@ -153,304 +153,309 @@ 00:1d49 GradeRendering.mo 00:1d4f GradeRendering.mm 00:1d55 GradeRendering.gmgrade -00:1d60 GradeInit -00:1d94 GradeInit.grade9start -00:1d99 GradeInit.end -00:1d9b UpdateGrade -00:1da9 UpdateGrade.gradejumptable -00:1dbe DecayGradeProcess -00:1dcc DecayGradeProcess.gradejumptable -00:1de1 DecayGradeDelay -00:1def DecayGradeDelay.gradejumptable -00:1e04 PrepareScore -00:1e17 DrawGradeProgressDMGT -00:1e32 UpdateGradeDMGT -00:1e6b UpdateGradeDMGT.checklineclears -00:1e85 UpdateGradeDMGT.clearrate -00:1e96 UpdateGradeDMGT.combomult -00:1ea3 UpdateGradeDMGT.combo10 -00:1eb4 UpdateGradeDMGT.combo5 -00:1ec5 UpdateGradeDMGT.combo1 -00:1ed4 UpdateGradeDMGT.prelevel -00:1ee3 UpdateGradeDMGT.single -00:1ef3 UpdateGradeDMGT.double -00:1f04 UpdateGradeDMGT.adddonce -00:1f08 UpdateGradeDMGT.triple -00:1f19 UpdateGradeDMGT.addtonce -00:1f1d UpdateGradeDMGT.tetris -00:1f21 UpdateGradeDMGT.levelmult -00:1f39 UpdateGradeDMGT.mult4 -00:1f3f UpdateGradeDMGT.mult3 -00:1f44 UpdateGradeDMGT.mult2 -00:1f48 UpdateGradeDMGT.mult1 -00:1f49 UpdateGradeDMGT.processgrade -00:1f72 UpdateGradeDMGT.increasegrademaybe -00:1f96 UpdateGradeDMGT.gotgm -00:1fa4 DecayGradeDMGT -00:1fc8 DecayGradeDMGT.nodecay -00:1fcf DecayGradeDMGT.decay -00:1fdd UpdateGradeTGM1 -00:1fee UpdateGradeTGM1.trygradeup -00:2009 UpdateGradeTGM1.increasegrade -00:201e UpdateGradeTGM1.skipjingle -00:202a UpdateGradeTGM1.check300 -00:2049 UpdateGradeTGM1.success300 -00:2050 UpdateGradeTGM1.fail300 -00:2057 UpdateGradeTGM1.check500 -00:2076 UpdateGradeTGM1.success500 -00:207d UpdateGradeTGM1.fail500 -00:2084 UpdateGradeTGM1.check999 -00:20bc UpdateGradeTGM1.success999 -00:20d4 UpdateGradeTGM1.fail999 -00:20da UpdateGradeDEAT -00:20e6 UpdateGradeDEAT.notgm -00:2102 UpdateGradeDEAT.notm -00:2125 UpdateGradeDEAT.disqualify -00:2143 UpdateGradeSHIR -00:2186 UpdateGradeSHIR.s5torikan -00:2196 UpdateGradeSHIR.s10torikan -00:21a5 UpdateGradeSHIR.disqualify -00:21b4 UpdateGradeSHIR.l1000 -00:21ca UpdateGradeSHIR.l500 -00:21e0 RestoreSRAM -00:2210 TrustedLoad -00:2262 TrustedLoad.jumps -00:227a TrustedLoad.dmgt -00:2280 TrustedLoad.tgm1 -00:2286 TrustedLoad.tgm3 -00:228c TrustedLoad.deat -00:2292 TrustedLoad.shir -00:2298 TrustedLoad.chil -00:229e TrustedLoad.myco -00:22a4 TrustedLoad.search -00:22b6 TrustedLoad.notfound -00:22bd TrustedLoad.fallback -00:22d8 InitializeSRAM -00:23f7 ResetScores -00:2405 ResetScores.jumps -00:241a ResetScores.dmgt -00:2426 ResetScores.tgm1 -00:2432 ResetScores.tgm3 -00:243e ResetScores.deat -00:244a ResetScores.shir -00:2456 ResetScores.chil -00:2462 ResetScores.myco -00:246e NextProfile -00:2477 NextProfile.update -00:247a ChangeProfile -00:247a ChangeProfile.backup -00:24a9 ChangeProfile.first -00:24b7 ChangeProfile.second -00:24c5 ChangeProfile.third -00:24d3 ChangeProfile.fourth -00:24e1 ChangeProfile.fifth -00:24ef ChangeProfile.sixth -00:24fd ChangeProfile.seventh -00:250b ChangeProfile.eighth -00:2519 ChangeProfile.ninth -00:2527 ChangeProfile.tenth -00:2535 ChangeProfile.restore -00:2565 ChangeProfile.lfirst -00:2574 ChangeProfile.lsecond -00:2583 ChangeProfile.lthird -00:2592 ChangeProfile.lfourth -00:25a1 ChangeProfile.lfifth -00:25b0 ChangeProfile.lsixth -00:25bf ChangeProfile.lseventh -00:25ce ChangeProfile.leighth -00:25dd ChangeProfile.lninth -00:25ec ChangeProfile.ltenth -00:25fb ResetProfile -00:2657 LevelInit -00:26bc SpecialLevelInit -00:26ca SpecialLevelInit.jumps -00:26df SpecialLevelInit.dmgt -00:26e4 SpecialLevelInit.tgm1 -00:26e9 SpecialLevelInit.tgm3 -00:26ee SpecialLevelInit.deat -00:26f3 SpecialLevelInit.shir -00:26f8 SpecialLevelInit.chil -00:26fd SpecialLevelInit.myco -00:2702 SpecialLevelInit.loaddata -00:2737 LevelUp -00:2761 LevelUp.doit -00:27a3 LevelUp.checknlevel -00:27f5 LevelUp.bellmaybe -00:2811 LevelUp.leveljinglemaybe -00:2821 LevelUp.checkspeedup -00:2860 DoSpeedUp -00:28a1 CheckSpecialLevelConditions -00:28d2 CheckSpecialLevelConditions.override -00:28ed CheckSpecialLevelConditions.nooverride -00:28f3 CheckSpecialLevelConditions.speciallock -00:2917 CheckSpecialLevelConditions.bones -00:292c CheckSpecialLevelConditions.enterthebonezone -00:2931 CheckSpecialLevelConditions.invis -00:2946 CheckSpecialLevelConditions.vanishoxyaction -00:294b CheckSpecialLevelConditions.killscreen -00:295c CheckSpecialLevelConditions.rip -00:298c CheckSpecialLevelConditions.staffroll -00:299a CheckSpecialLevelConditions.justkill -00:29ae TriggerKillScreen -00:29d0 sTGM1GradeScores -00:29f2 sTGM3InternalGradeSystem -00:2a92 sTGM3GradeBoosts -00:2ab1 sTGM3LevelMultiplier -00:2ab5 sTGM3BaselineCOOL -00:2abe sTGM3REGRETConditions -00:2ad2 sDMGTGrading -00:2b86 sDMGTGaugeLUT -00:2c86 SFXInit -00:2ca8 SFXPopQueue -00:2cbd SFXPushQueue -00:2cce SFXProcessQueue -00:2cfc SFXTriggerNoise -00:2d22 SFXEnqueue -00:2d37 SFXEnqueue.findsfx -00:2e91 SFXKill -00:2ec4 SFXPlayNoise -00:2ecf SFXPlayNoise.noisereg -00:2ee6 SFXPlayNoise.savenoiseplayhead -00:2eef SFXPlay -00:2efd SFXPlay.play -00:2f09 SFXPlay.getRegister -00:2f1d SFXPlay.savePlayhead -00:2f26 HarvestEntropy -00:2f2c HarvestEntropy.loop -00:2f4d RNGInit -00:2fb3 RNGInit.complexinit -00:2fe5 ShiftHistory -00:3002 GetNextHellPiece -00:3007 GetNextTGM1Piece -00:3024 GetNextTGM2Piece -00:3041 GetNextNesPiece -00:304f GetNextTGM3Piece -00:3106 GetNextPiece -00:3114 GetNextPiece.nextpiecejumps -00:3123 Next35Piece -00:312d Next7Piece -00:3137 NextByte -00:3157 CheckAndAddHiscore -00:3161 CheckAndAddHiscore.checkloop -00:31a5 CheckAndAddHiscore.notbetter -00:31b1 CheckAndAddHiscore.better -00:31b3 InsertHiScore -00:31b3 InsertHiScore.copylower -00:31c4 InsertHiScore.copyupper -00:31e5 InsertHiScore.findrow -00:31f6 InsertHiScore.insert -00:323f InsertHiScore.persist -00:3250 GetHiScoreEntry -00:3269 GetHiScoreEntry.store -00:3272 InitTargetHSTable -00:327d InitTargetHSTable.jumps -00:3292 InitTargetHSTable.dmgt -00:3297 InitTargetHSTable.tgm1 -00:329c InitTargetHSTable.tgm3 -00:32a1 InitTargetHSTable.deat -00:32a6 InitTargetHSTable.shir -00:32ab InitTargetHSTable.chil -00:32b0 InitTargetHSTable.myco -00:32b3 InitTargetHSTable.store -00:32c6 sProgressData -00:3410 sHiscoreDefaultData -00:3550 ScoreInit -00:3578 IncreaseScore -00:35b0 IncreaseScore.doConvert -00:35c8 IncreaseScore.carry -00:35ca IncreaseScore.postConvert -00:35de IncreaseScore.preAddDigit -00:3606 IncreaseScore.addDigit -00:361c IncreaseScore.nextDigit -00:3630 InputInit -00:3642 GetInput -00:3642 GetInput.btns -00:364f GetInput.readA -00:3653 GetInput.setA -00:365e GetInput.clearA -00:3661 GetInput.readB -00:3665 GetInput.setB -00:3670 GetInput.clearB -00:3673 GetInput.readSelect -00:3677 GetInput.setSelect -00:3682 GetInput.clearSelect -00:3685 GetInput.readStart -00:3689 GetInput.setStart -00:3694 GetInput.clearStart -00:3697 GetInput.dpad -00:36a4 GetInput.readUp -00:36a8 GetInput.setUp -00:36b3 GetInput.clearUp -00:36b6 GetInput.readDown -00:36ba GetInput.setDown -00:36c5 GetInput.clearDown -00:36c8 GetInput.readLeft -00:36cc GetInput.setLeft -00:36d7 GetInput.clearLeft -00:36da GetInput.readRight -00:36de GetInput.setRight -00:36e9 GetInput.clearRight -00:36ec GetInput.priorities -00:36f7 GetInput.zero -00:36fd SwitchToTitle -00:3706 TitleEventLoopHandler -00:3710 TitleVBlankHandler -00:371a PersistLevel -00:3728 DrawSpeedMain -00:3778 DrawSpeedSettings -00:37c8 TimeInit -00:37e8 StartCountdown -00:37f6 ResetGameTime -00:3801 CheckTorikan -00:3818 CheckTorikan.failure -00:381a CheckTorikan.success -00:381d HandleTimers -00:3843 HandleTimers.reduce -00:3850 HandleTimers.clock -00:386a HandleTimers.go -00:388e SetProgress -00:3899 SetProgress.loop -00:389d SetProgress.correct -00:38c4 SetProgress.wvr_u1 -00:38d0 SetProgress.wvr_u2 -00:38de SetProgress.wvr_u3 -00:38ea SetProgress.wvr_u4 -00:38f8 SetProgress.wvr_u5 -00:3904 SetProgress.wvr_u6 -00:3912 SetProgress.wvr_u7 -00:391e SetProgress.wvr_u8 -00:392c SetProgress.wvr_u9 -00:3938 SetProgress.wvr_u10 -00:3940 Main -00:3969 Main.notgbc -00:396f Main.wvr_u1 -00:3996 EventLoop -00:39ac EventLoop.eventloopjumps -00:39b5 EventLoopPostHandler -00:39b7 EventLoopPostHandler.wvb_u2 -00:39c9 EventLoopPostHandler.vblankjumps -00:39d2 LoadTitleTiles -00:39f0 LoadGameplayTiles -00:3a06 LoadGameplayTiles.gbc -00:3a15 LoadGameplayTiles.dmg -00:3a24 sFramesToCS -00:3a60 UnsafeMemCopy -00:3a69 SafeMemCopy.wvr_u1 -00:3a69 SafeMemCopy -00:3a78 UnsafeMemSet -00:3a80 SafeMemSet -00:3a80 SafeMemSet.wvr_u2 -00:3a8e SwitchToGameplay -00:3a97 SwitchToGameplayBig -00:3aa0 GamePlayEventLoopHandler -00:3aaa GamePlayBigEventLoopHandler -00:3ab4 EnableScreenSquish -00:3ace DisableScreenSquish -00:3ad9 CopyOAMHandler -00:3ae5 ClearOAM -00:3afb BankingInit -00:3b0a OAMDMA -00:3b14 OAMDMAEnd +00:1d60 RestoreSRAM +00:1d90 TrustedLoad +00:1de2 TrustedLoad.jumps +00:1dfa TrustedLoad.dmgt +00:1e00 TrustedLoad.tgm1 +00:1e06 TrustedLoad.tgm3 +00:1e0c TrustedLoad.deat +00:1e12 TrustedLoad.shir +00:1e18 TrustedLoad.chil +00:1e1e TrustedLoad.myco +00:1e24 TrustedLoad.search +00:1e36 TrustedLoad.notfound +00:1e3d TrustedLoad.fallback +00:1e58 InitializeSRAM +00:1fab ResetScores +00:1fb9 ResetScores.jumps +00:1fce ResetScores.dmgt +00:1fda ResetScores.tgm1 +00:1fe6 ResetScores.tgm3 +00:1ff2 ResetScores.deat +00:1ffe ResetScores.shir +00:200a ResetScores.chil +00:2016 ResetScores.myco +00:2022 NextProfile +00:202b NextProfile.update +00:202e ChangeProfile +00:202e ChangeProfile.backup +00:205d ChangeProfile.first +00:206b ChangeProfile.second +00:2079 ChangeProfile.third +00:2087 ChangeProfile.fourth +00:2095 ChangeProfile.fifth +00:20a3 ChangeProfile.sixth +00:20b1 ChangeProfile.seventh +00:20bf ChangeProfile.eighth +00:20cd ChangeProfile.ninth +00:20db ChangeProfile.tenth +00:20e9 ChangeProfile.restore +00:2119 ChangeProfile.lfirst +00:2128 ChangeProfile.lsecond +00:2137 ChangeProfile.lthird +00:2146 ChangeProfile.lfourth +00:2155 ChangeProfile.lfifth +00:2164 ChangeProfile.lsixth +00:2173 ChangeProfile.lseventh +00:2182 ChangeProfile.leighth +00:2191 ChangeProfile.lninth +00:21a0 ChangeProfile.ltenth +00:21af ResetProfile +00:220b GradeInit +00:223f GradeInit.grade9start +00:2244 GradeInit.end +00:2246 UpdateGrade +00:2254 UpdateGrade.gradejumptable +00:2269 DecayGradeProcess +00:2277 DecayGradeProcess.gradejumptable +00:228c DecayGradeDelay +00:229a DecayGradeDelay.gradejumptable +00:22af PrepareScore +00:22c2 DrawGradeProgressDMGT +00:22dd UpdateGradeDMGT +00:2316 UpdateGradeDMGT.checklineclears +00:2330 UpdateGradeDMGT.clearrate +00:2341 UpdateGradeDMGT.combomult +00:234e UpdateGradeDMGT.combo10 +00:235f UpdateGradeDMGT.combo5 +00:2370 UpdateGradeDMGT.combo1 +00:237f UpdateGradeDMGT.prelevel +00:238e UpdateGradeDMGT.single +00:239e UpdateGradeDMGT.double +00:23af UpdateGradeDMGT.adddonce +00:23b3 UpdateGradeDMGT.triple +00:23c4 UpdateGradeDMGT.addtonce +00:23c8 UpdateGradeDMGT.tetris +00:23cc UpdateGradeDMGT.levelmult +00:23e4 UpdateGradeDMGT.mult4 +00:23ea UpdateGradeDMGT.mult3 +00:23ef UpdateGradeDMGT.mult2 +00:23f3 UpdateGradeDMGT.mult1 +00:23f4 UpdateGradeDMGT.processgrade +00:241d UpdateGradeDMGT.increasegrademaybe +00:2441 UpdateGradeDMGT.gotgm +00:244f DecayGradeDMGT +00:2473 DecayGradeDMGT.nodecay +00:247a DecayGradeDMGT.decay +00:2488 UpdateGradeTGM1 +00:2499 UpdateGradeTGM1.trygradeup +00:24b4 UpdateGradeTGM1.increasegrade +00:24c9 UpdateGradeTGM1.skipjingle +00:24d5 UpdateGradeTGM1.check300 +00:24f4 UpdateGradeTGM1.success300 +00:24fb UpdateGradeTGM1.fail300 +00:2502 UpdateGradeTGM1.check500 +00:2521 UpdateGradeTGM1.success500 +00:2528 UpdateGradeTGM1.fail500 +00:252f UpdateGradeTGM1.check999 +00:2567 UpdateGradeTGM1.success999 +00:257f UpdateGradeTGM1.fail999 +00:2585 UpdateGradeDEAT +00:2591 UpdateGradeDEAT.notgm +00:25ad UpdateGradeDEAT.notm +00:25d0 UpdateGradeDEAT.disqualify +00:25ee UpdateGradeSHIR +00:2631 UpdateGradeSHIR.s5torikan +00:2641 UpdateGradeSHIR.s10torikan +00:2650 UpdateGradeSHIR.disqualify +00:265f UpdateGradeSHIR.l1000 +00:2675 UpdateGradeSHIR.l500 +00:268b LevelInit +00:26f0 SpecialLevelInit +00:26fe SpecialLevelInit.jumps +00:2713 SpecialLevelInit.dmgt +00:2718 SpecialLevelInit.tgm1 +00:271d SpecialLevelInit.tgm3 +00:2722 SpecialLevelInit.deat +00:2727 SpecialLevelInit.shir +00:272c SpecialLevelInit.chil +00:2731 SpecialLevelInit.myco +00:2736 SpecialLevelInit.loaddata +00:276b LevelUp +00:2795 LevelUp.doit +00:27d7 LevelUp.checknlevel +00:2829 LevelUp.bellmaybe +00:2845 LevelUp.leveljinglemaybe +00:2855 LevelUp.checkspeedup +00:2894 DoSpeedUp +00:28d5 CheckSpecialLevelConditions +00:2906 CheckSpecialLevelConditions.override +00:2921 CheckSpecialLevelConditions.nooverride +00:2927 CheckSpecialLevelConditions.speciallock +00:294b CheckSpecialLevelConditions.bones +00:2960 CheckSpecialLevelConditions.enterthebonezone +00:2965 CheckSpecialLevelConditions.invis +00:297a CheckSpecialLevelConditions.vanishoxyaction +00:297f CheckSpecialLevelConditions.killscreen +00:2990 CheckSpecialLevelConditions.rip +00:29c0 CheckSpecialLevelConditions.staffroll +00:29ce CheckSpecialLevelConditions.justkill +00:29e2 TriggerKillScreen +00:2a04 sTGM1GradeScores +00:2a26 sTGM3InternalGradeSystem +00:2ac6 sTGM3GradeBoosts +00:2ae5 sTGM3LevelMultiplier +00:2ae9 sTGM3BaselineCOOL +00:2af2 sTGM3REGRETConditions +00:2b06 sDMGTGrading +00:2bba sDMGTGaugeLUT +00:2cba SFXInit +00:2cdc SFXPopQueue +00:2cf1 SFXPushQueue +00:2d02 SFXProcessQueue +00:2d30 SFXTriggerNoise +00:2d56 SFXEnqueue +00:2d6b SFXEnqueue.findsfx +00:2ec5 SFXKill +00:2ef8 SFXPlayNoise +00:2f03 SFXPlayNoise.noisereg +00:2f1a SFXPlayNoise.savenoiseplayhead +00:2f23 SFXPlay +00:2f31 SFXPlay.play +00:2f3d SFXPlay.getRegister +00:2f51 SFXPlay.savePlayhead +00:2f5a HarvestEntropy +00:2f60 HarvestEntropy.loop +00:2f81 RNGInit +00:2fe7 RNGInit.complexinit +00:3019 ShiftHistory +00:3036 GetNextHellPiece +00:303b GetNextTGM1Piece +00:3058 GetNextTGM2Piece +00:3075 GetNextNesPiece +00:3083 GetNextTGM3Piece +00:313a GetNextPiece +00:3148 GetNextPiece.nextpiecejumps +00:3157 Next35Piece +00:3161 Next7Piece +00:316b NextByte +00:318b CheckAndAddHiscore +00:3195 CheckAndAddHiscore.checkloop +00:319a CheckAndAddHiscore.checkgrade +00:31a3 CheckAndAddHiscore.oldgraded +00:31ae CheckAndAddHiscore.oldungraded +00:31b5 CheckAndAddHiscore.checklevel +00:31da CheckAndAddHiscore.checkscore +00:321d CheckAndAddHiscore.notbetter +00:322a CheckAndAddHiscore.better +00:322c InsertHiScore +00:322c InsertHiScore.copylower +00:323d InsertHiScore.copyupper +00:325e InsertHiScore.findrow +00:326f InsertHiScore.insert +00:32c8 InsertHiScore.persist +00:32d9 GetHiScoreEntry +00:32f2 GetHiScoreEntry.store +00:32fb InitTargetHSTable +00:3306 InitTargetHSTable.jumps +00:331b InitTargetHSTable.dmgt +00:3320 InitTargetHSTable.tgm1 +00:3325 InitTargetHSTable.tgm3 +00:332a InitTargetHSTable.deat +00:332f InitTargetHSTable.shir +00:3334 InitTargetHSTable.chil +00:3339 InitTargetHSTable.myco +00:333c InitTargetHSTable.store +00:334f sProgressData +00:3499 sHiscoreDefaultData +00:35d9 ScoreInit +00:3601 IncreaseScore +00:3639 IncreaseScore.doConvert +00:3651 IncreaseScore.carry +00:3653 IncreaseScore.postConvert +00:3667 IncreaseScore.preAddDigit +00:368f IncreaseScore.addDigit +00:36a5 IncreaseScore.nextDigit +00:36b9 InputInit +00:36cb GetInput +00:36cb GetInput.btns +00:36d8 GetInput.readA +00:36dc GetInput.setA +00:36e7 GetInput.clearA +00:36ea GetInput.readB +00:36ee GetInput.setB +00:36f9 GetInput.clearB +00:36fc GetInput.readSelect +00:3700 GetInput.setSelect +00:370b GetInput.clearSelect +00:370e GetInput.readStart +00:3712 GetInput.setStart +00:371d GetInput.clearStart +00:3720 GetInput.dpad +00:372d GetInput.readUp +00:3731 GetInput.setUp +00:373c GetInput.clearUp +00:373f GetInput.readDown +00:3743 GetInput.setDown +00:374e GetInput.clearDown +00:3751 GetInput.readLeft +00:3755 GetInput.setLeft +00:3760 GetInput.clearLeft +00:3763 GetInput.readRight +00:3767 GetInput.setRight +00:3772 GetInput.clearRight +00:3775 GetInput.priorities +00:3780 GetInput.zero +00:3786 SwitchToTitle +00:378f TitleEventLoopHandler +00:3799 TitleVBlankHandler +00:37a3 PersistLevel +00:37b1 DrawSpeedMain +00:3801 DrawSpeedSettings +00:3851 TimeInit +00:3871 StartCountdown +00:387f ResetGameTime +00:388a CheckTorikan +00:38a1 CheckTorikan.failure +00:38a3 CheckTorikan.success +00:38a6 HandleTimers +00:38cc HandleTimers.reduce +00:38d9 HandleTimers.clock +00:38f3 HandleTimers.go +00:3917 SetProgress +00:3922 SetProgress.loop +00:3926 SetProgress.correct +00:394d SetProgress.wvr_u1 +00:3959 SetProgress.wvr_u2 +00:3967 SetProgress.wvr_u3 +00:3973 SetProgress.wvr_u4 +00:3981 SetProgress.wvr_u5 +00:398d SetProgress.wvr_u6 +00:399b SetProgress.wvr_u7 +00:39a7 SetProgress.wvr_u8 +00:39b5 SetProgress.wvr_u9 +00:39c1 SetProgress.wvr_u10 +00:39c9 Main +00:39f2 Main.notgbc +00:39f8 Main.wvr_u1 +00:3a1f EventLoop +00:3a35 EventLoop.eventloopjumps +00:3a3e EventLoopPostHandler +00:3a40 EventLoopPostHandler.wvb_u2 +00:3a52 EventLoopPostHandler.vblankjumps +00:3a5b LoadTitleTiles +00:3a79 LoadGameplayTiles +00:3a8f LoadGameplayTiles.gbc +00:3a9e LoadGameplayTiles.dmg +00:3aad sFramesToCS +00:3ae9 UnsafeMemCopy +00:3af2 SafeMemCopy.wvr_u1 +00:3af2 SafeMemCopy +00:3b01 UnsafeMemSet +00:3b09 SafeMemSet +00:3b09 SafeMemSet.wvr_u2 +00:3b17 SwitchToGameplay +00:3b20 SwitchToGameplayBig +00:3b29 GamePlayEventLoopHandler +00:3b33 GamePlayBigEventLoopHandler +00:3b3d EnableScreenSquish +00:3b57 DisableScreenSquish +00:3b62 CopyOAMHandler +00:3b6e ClearOAM +00:3b84 BankingInit +00:3b93 OAMDMA +00:3b9d OAMDMAEnd 01:4008 sDMGTSpeedCurve 01:4203 sDMGTSpeedCurveEnd 01:4205 sDMGTSpeedCurveSpecialData @@ -530,238 +535,268 @@ 02:6b59 sSFXLockEnd 03:4008 sMusicMenu 03:6ac1 sMusicMenuEnd -04:4008 sEasterM0 -04:400d sEasterM1 -04:4012 sEasterC0 -04:401d sEasterC1 -04:4028 sEasterA0 -04:4033 sEasterA1 -04:403e sEasterS0 -04:4043 sEasterS1 -04:4048 sBUTTONSMode -04:4050 sRNGMode -04:4064 sROTMode -04:4074 sDROPMode -04:4088 sCURVEMode -04:40a4 sHIGMode -04:40ac sDisabled -04:40b0 sTetryButtons -04:40f0 sTetryRNG -04:4130 sTetryROT -04:4170 sTetryDROP -04:41b0 sTetryCURVE -04:41f0 sTetryHIG -04:4230 sTetrySTART -04:4270 sTetryEXIT -04:42b0 sTitleScreenMainMap -04:4550 sTitleScreenSettingsMap -04:4550 sTitleScreenMainMapEnd -04:47f0 sTitleScreenCreditsMap -04:47f0 sTitleScreenSettingsMapEnd -04:4a90 sTitleScreenProfileMap -04:4a90 sTitleScreenCreditsMapEnd -04:4d30 sTitleScreenRecordsMap -04:4d30 sTitleScreenProfileMapEnd -04:4fd0 sTitleScreenRecordsMapEnd -04:4fd0 SwitchToTitleB -04:4fd6 SwitchToTitleB.wvr_u1 -04:5002 SwitchToTitleB.wvb_u2 -04:5009 SwitchToTitleB.wvbe_u3 -04:500f SwitchTitleMode -04:5020 SwitchTitleMode.wvr_u4 -04:5034 SwitchTitleMode.jumps -04:5043 SwitchTitleMode.switchMain -04:5070 SwitchTitleMode.notsgb -04:5091 SwitchTitleMode.notmgb -04:50b9 SwitchTitleMode.agb -04:50d3 SwitchTitleMode.done -04:50db SwitchTitleMode.switchProfile -04:50ef SwitchTitleMode.switchSettings -04:5103 SwitchTitleMode.switchRecords -04:5118 SwitchTitleMode.switchCredits -04:512c TitleEventLoopHandlerB -04:513a TitleEventLoopHandlerB.jumps -04:5149 TitleEventLoopHandlerB.eventLoopMain -04:5173 TitleEventLoopHandlerB.d0 -04:5187 TitleEventLoopHandlerB.eventLoopProfile -04:51b1 TitleEventLoopHandlerB.d2 -04:51c6 TitleEventLoopHandlerB.l2 -04:51db TitleEventLoopHandlerB.r2 -04:51f0 TitleEventLoopHandlerB.eventLoopSettings -04:521a TitleEventLoopHandlerB.d1 -04:522f TitleEventLoopHandlerB.l1 -04:5244 TitleEventLoopHandlerB.r1 -04:5258 TitleEventLoopHandlerB.eventLoopRecords -04:5275 TitleEventLoopHandlerB.eventLoopCredits -04:528b TitleEventLoopHandlerB.quitrecords -04:528b TitleEventLoopHandlerB.quitcredits -04:5290 TitleVBlankHandlerB -04:529e TitleVBlankHandlerB.jumps -04:52ad TitleVBlankHandlerB.vblankMain -04:52b7 TitleVBlankHandlerB.notselected_u5 -04:52bc TitleVBlankHandlerB.selected_u5 -04:52bf TitleVBlankHandlerB.done_u5 -04:52c9 TitleVBlankHandlerB.notselected_u6 -04:52ce TitleVBlankHandlerB.selected_u6 -04:52d1 TitleVBlankHandlerB.done_u6 -04:52db TitleVBlankHandlerB.notselected_u7 -04:52e0 TitleVBlankHandlerB.selected_u7 -04:52e3 TitleVBlankHandlerB.done_u7 -04:52ed TitleVBlankHandlerB.notselected_u8 -04:52f2 TitleVBlankHandlerB.selected_u8 -04:52f5 TitleVBlankHandlerB.done_u8 -04:52ff TitleVBlankHandlerB.notselected_u9 -04:5304 TitleVBlankHandlerB.selected_u9 -04:5307 TitleVBlankHandlerB.done_u9 -04:5311 TitleVBlankHandlerB.notselected_u10 -04:5316 TitleVBlankHandlerB.selected_u10 -04:5319 TitleVBlankHandlerB.done_u10 -04:53a3 TitleVBlankHandlerB.disabled -04:53af TitleVBlankHandlerB.profile -04:53be TitleVBlankHandlerB.vblankProfile -04:53c8 TitleVBlankHandlerB.notselected_u11 -04:53cd TitleVBlankHandlerB.selected_u11 -04:53d0 TitleVBlankHandlerB.done_u11 -04:53da TitleVBlankHandlerB.notselected_u12 -04:53df TitleVBlankHandlerB.selected_u12 -04:53e2 TitleVBlankHandlerB.done_u12 -04:53ec TitleVBlankHandlerB.notselected_u13 -04:53f1 TitleVBlankHandlerB.selected_u13 -04:53f4 TitleVBlankHandlerB.done_u13 -04:53fe TitleVBlankHandlerB.notselected_u14 -04:5403 TitleVBlankHandlerB.selected_u14 -04:5406 TitleVBlankHandlerB.done_u14 -04:5410 TitleVBlankHandlerB.notselected_u15 -04:5415 TitleVBlankHandlerB.selected_u15 -04:5418 TitleVBlankHandlerB.done_u15 -04:5422 TitleVBlankHandlerB.notselected_u16 -04:5427 TitleVBlankHandlerB.selected_u16 -04:542a TitleVBlankHandlerB.done_u16 -04:5449 TitleVBlankHandlerB.vblankSettings -04:5453 TitleVBlankHandlerB.notselected_u17 -04:5458 TitleVBlankHandlerB.selected_u17 -04:545b TitleVBlankHandlerB.done_u17 -04:5465 TitleVBlankHandlerB.notselected_u18 -04:546a TitleVBlankHandlerB.selected_u18 -04:546d TitleVBlankHandlerB.done_u18 -04:5477 TitleVBlankHandlerB.notselected_u19 -04:547c TitleVBlankHandlerB.selected_u19 -04:547f TitleVBlankHandlerB.done_u19 -04:5489 TitleVBlankHandlerB.notselected_u20 -04:548e TitleVBlankHandlerB.selected_u20 -04:5491 TitleVBlankHandlerB.done_u20 -04:549b TitleVBlankHandlerB.notselected_u21 -04:54a0 TitleVBlankHandlerB.selected_u21 -04:54a3 TitleVBlankHandlerB.done_u21 -04:54ad TitleVBlankHandlerB.notselected_u22 -04:54b2 TitleVBlankHandlerB.selected_u22 -04:54b5 TitleVBlankHandlerB.done_u22 -04:54bf TitleVBlankHandlerB.notselected_u23 -04:54c4 TitleVBlankHandlerB.selected_u23 -04:54c7 TitleVBlankHandlerB.done_u23 -04:54d1 TitleVBlankHandlerB.notselected_u24 -04:54d6 TitleVBlankHandlerB.selected_u24 -04:54d9 TitleVBlankHandlerB.done_u24 -04:5563 TitleVBlankHandlerB.disabled1 -04:556f TitleVBlankHandlerB.buttons -04:559c TitleVBlankHandlerB.donetetry -04:55c2 TitleVBlankHandlerB.vblankRecords -04:55c3 TitleVBlankHandlerB.vblankCredits -04:55c4 MainHandleA -04:55d2 MainHandleA.jumps -04:55e4 MainHandleA.tosettings -04:55e9 MainHandleA.tocredits -04:55ee MainHandleA.toprofile -04:55f3 MainHandleA.torecords -04:55f8 MainHandleUp -04:560a MainHandleDown -04:561b SettingsHandleA -04:5628 ProfileHandleB -04:5628 SettingsHandleB -04:562d SettingsHandleDown -04:563e SettingsHandleUp -04:5650 SettingsHandleLeft -04:5661 SettingsHandleLeft.jumps -04:5679 SettingsHandleLeft.buttons -04:5691 SettingsHandleLeft.rng -04:56a9 SettingsHandleLeft.rot -04:56c1 SettingsHandleLeft.drop -04:56d9 SettingsHandleLeft.curve -04:56f7 SettingsHandleLeft.hig -04:570f SettingsHandleRight -04:5720 SettingsHandleRight.jumps -04:5738 SettingsHandleRight.buttons -04:574f SettingsHandleRight.rng -04:5766 SettingsHandleRight.rot -04:577d SettingsHandleRight.drop -04:5794 SettingsHandleRight.curve -04:57b1 SettingsHandleRight.hig -04:57c8 ProfileHandleA -04:57dc ProfileHandleRight -04:57f0 ProfileHandleRight.jumps -04:57ff ProfileHandleRight.idx -04:5808 ProfileHandleRight.doit -04:580b ProfileHandleRight.l0 -04:5815 ProfileHandleRight.doit1 -04:581c ProfileHandleRight.l1 -04:5826 ProfileHandleRight.doit2 -04:582d ProfileHandleRight.l2 -04:5837 ProfileHandleRight.doit3 -04:583e ProfileHandleLeft -04:5852 ProfileHandleLeft.jumps -04:5861 ProfileHandleLeft.idx -04:586b ProfileHandleLeft.doit -04:586e ProfileHandleLeft.l0 -04:5878 ProfileHandleLeft.doit1 -04:587f ProfileHandleLeft.l1 -04:5889 ProfileHandleLeft.doit2 -04:5890 ProfileHandleLeft.l2 -04:589a ProfileHandleLeft.doit3 -04:58a1 ProfileHandleDown -04:58b2 ProfileHandleUp -04:58c4 DecrementLevel -04:58da IncrementLevel -04:58f0 InitSpeedCurve -04:58ff GetEnd -04:5936 GetStart -04:596d CheckLevelRange -04:5986 CheckLevelRange.notatend -04:59a6 CheckLevelRange.notatstart -04:59a7 RecordsHandleLeft -04:59c0 RecordsHandleRight -04:59d8 RecordsHandleSelect -04:59e1 RenderScores -04:59e7 RenderScores.wvr_u25 -04:5a53 RenderScores.nograde_u26 -04:5a58 RenderScores.grade_u26 -04:5a5b RenderScores.postgrade_u26 -04:5abc RenderScores.nograde_u27 -04:5ac1 RenderScores.grade_u27 -04:5ac4 RenderScores.postgrade_u27 -04:5b25 RenderScores.nograde_u28 -04:5b2a RenderScores.grade_u28 -04:5b2d RenderScores.postgrade_u28 -04:5b8e RenderScores.nograde_u29 -04:5b93 RenderScores.grade_u29 -04:5b96 RenderScores.postgrade_u29 -04:5bf7 RenderScores.nograde_u30 -04:5bfc RenderScores.grade_u30 -04:5bff RenderScores.postgrade_u30 -04:5c60 RenderScores.nograde_u31 -04:5c65 RenderScores.grade_u31 -04:5c68 RenderScores.postgrade_u31 -04:5cc9 RenderScores.nograde_u32 -04:5cce RenderScores.grade_u32 -04:5cd1 RenderScores.postgrade_u32 -04:5d32 RenderScores.nograde_u33 -04:5d37 RenderScores.grade_u33 -04:5d3a RenderScores.postgrade_u33 -04:5d9b RenderScores.nograde_u34 -04:5da0 RenderScores.grade_u34 -04:5da3 RenderScores.postgrade_u34 -04:5e04 RenderScores.nograde_u35 -04:5e09 RenderScores.grade_u35 -04:5e0c RenderScores.postgrade_u35 +04:4008 SwitchToTitleB +04:400e SwitchToTitleB.wvr_u1 +04:403a SwitchToTitleB.wvb_u2 +04:4041 SwitchToTitleB.wvbe_u3 +04:4047 SwitchTitleMode +04:4058 SwitchTitleMode.wvr_u4 +04:406c SwitchTitleMode.jumps +04:407b SwitchTitleMode.switchMain +04:40a8 SwitchTitleMode.notsgb +04:40c9 SwitchTitleMode.notmgb +04:40f1 SwitchTitleMode.agb +04:410b SwitchTitleMode.done +04:4113 SwitchTitleMode.switchProfile +04:4127 SwitchTitleMode.switchSettings +04:413b SwitchTitleMode.switchRecords +04:4156 SwitchTitleMode.switchCredits +04:416a TitleEventLoopHandlerB +04:4178 TitleEventLoopHandlerB.jumps +04:4187 TitleEventLoopHandlerB.eventLoopMain +04:41b1 TitleEventLoopHandlerB.d0 +04:41c5 TitleEventLoopHandlerB.eventLoopProfile +04:41ef TitleEventLoopHandlerB.d2 +04:4204 TitleEventLoopHandlerB.l2 +04:4219 TitleEventLoopHandlerB.r2 +04:422e TitleEventLoopHandlerB.eventLoopSettings +04:4258 TitleEventLoopHandlerB.d1 +04:426d TitleEventLoopHandlerB.l1 +04:4282 TitleEventLoopHandlerB.r1 +04:4296 TitleEventLoopHandlerB.eventLoopRecords +04:42ca TitleEventLoopHandlerB.eventLoopCredits +04:42e0 TitleEventLoopHandlerB.quitrecords +04:42e0 TitleEventLoopHandlerB.quitcredits +04:42e5 TitleVBlankHandlerB +04:42f3 TitleVBlankHandlerB.jumps +04:4302 TitleVBlankHandlerB.vblankMain +04:430c TitleVBlankHandlerB.notselected_u5 +04:4311 TitleVBlankHandlerB.selected_u5 +04:4314 TitleVBlankHandlerB.done_u5 +04:431e TitleVBlankHandlerB.notselected_u6 +04:4323 TitleVBlankHandlerB.selected_u6 +04:4326 TitleVBlankHandlerB.done_u6 +04:4330 TitleVBlankHandlerB.notselected_u7 +04:4335 TitleVBlankHandlerB.selected_u7 +04:4338 TitleVBlankHandlerB.done_u7 +04:4342 TitleVBlankHandlerB.notselected_u8 +04:4347 TitleVBlankHandlerB.selected_u8 +04:434a TitleVBlankHandlerB.done_u8 +04:4354 TitleVBlankHandlerB.notselected_u9 +04:4359 TitleVBlankHandlerB.selected_u9 +04:435c TitleVBlankHandlerB.done_u9 +04:4366 TitleVBlankHandlerB.notselected_u10 +04:436b TitleVBlankHandlerB.selected_u10 +04:436e TitleVBlankHandlerB.done_u10 +04:43f8 TitleVBlankHandlerB.disabled +04:4404 TitleVBlankHandlerB.profile +04:4413 TitleVBlankHandlerB.vblankProfile +04:441d TitleVBlankHandlerB.notselected_u11 +04:4422 TitleVBlankHandlerB.selected_u11 +04:4425 TitleVBlankHandlerB.done_u11 +04:442f TitleVBlankHandlerB.notselected_u12 +04:4434 TitleVBlankHandlerB.selected_u12 +04:4437 TitleVBlankHandlerB.done_u12 +04:4441 TitleVBlankHandlerB.notselected_u13 +04:4446 TitleVBlankHandlerB.selected_u13 +04:4449 TitleVBlankHandlerB.done_u13 +04:4453 TitleVBlankHandlerB.notselected_u14 +04:4458 TitleVBlankHandlerB.selected_u14 +04:445b TitleVBlankHandlerB.done_u14 +04:4465 TitleVBlankHandlerB.notselected_u15 +04:446a TitleVBlankHandlerB.selected_u15 +04:446d TitleVBlankHandlerB.done_u15 +04:4477 TitleVBlankHandlerB.notselected_u16 +04:447c TitleVBlankHandlerB.selected_u16 +04:447f TitleVBlankHandlerB.done_u16 +04:449e TitleVBlankHandlerB.vblankSettings +04:44a8 TitleVBlankHandlerB.notselected_u17 +04:44ad TitleVBlankHandlerB.selected_u17 +04:44b0 TitleVBlankHandlerB.done_u17 +04:44ba TitleVBlankHandlerB.notselected_u18 +04:44bf TitleVBlankHandlerB.selected_u18 +04:44c2 TitleVBlankHandlerB.done_u18 +04:44cc TitleVBlankHandlerB.notselected_u19 +04:44d1 TitleVBlankHandlerB.selected_u19 +04:44d4 TitleVBlankHandlerB.done_u19 +04:44de TitleVBlankHandlerB.notselected_u20 +04:44e3 TitleVBlankHandlerB.selected_u20 +04:44e6 TitleVBlankHandlerB.done_u20 +04:44f0 TitleVBlankHandlerB.notselected_u21 +04:44f5 TitleVBlankHandlerB.selected_u21 +04:44f8 TitleVBlankHandlerB.done_u21 +04:4502 TitleVBlankHandlerB.notselected_u22 +04:4507 TitleVBlankHandlerB.selected_u22 +04:450a TitleVBlankHandlerB.done_u22 +04:4514 TitleVBlankHandlerB.notselected_u23 +04:4519 TitleVBlankHandlerB.selected_u23 +04:451c TitleVBlankHandlerB.done_u23 +04:4526 TitleVBlankHandlerB.notselected_u24 +04:452b TitleVBlankHandlerB.selected_u24 +04:452e TitleVBlankHandlerB.done_u24 +04:45b8 TitleVBlankHandlerB.disabled1 +04:45c4 TitleVBlankHandlerB.buttons +04:45f1 TitleVBlankHandlerB.donetetry +04:4617 TitleVBlankHandlerB.vblankRecords +04:4618 TitleVBlankHandlerB.vblankCredits +04:4619 MainHandleA +04:4627 MainHandleA.jumps +04:4639 MainHandleA.tosettings +04:463e MainHandleA.tocredits +04:4643 MainHandleA.toprofile +04:4648 MainHandleA.torecords +04:464d MainHandleUp +04:465f MainHandleDown +04:4670 SettingsHandleA +04:467d ProfileHandleB +04:467d SettingsHandleB +04:4682 SettingsHandleDown +04:4693 SettingsHandleUp +04:46a5 SettingsHandleLeft +04:46b6 SettingsHandleLeft.jumps +04:46ce SettingsHandleLeft.buttons +04:46e6 SettingsHandleLeft.rng +04:46fe SettingsHandleLeft.rot +04:4716 SettingsHandleLeft.drop +04:472e SettingsHandleLeft.curve +04:474c SettingsHandleLeft.hig +04:4764 SettingsHandleRight +04:4775 SettingsHandleRight.jumps +04:478d SettingsHandleRight.buttons +04:47a4 SettingsHandleRight.rng +04:47bb SettingsHandleRight.rot +04:47d2 SettingsHandleRight.drop +04:47e9 SettingsHandleRight.curve +04:4806 SettingsHandleRight.hig +04:481d ProfileHandleA +04:4831 ProfileHandleRight +04:4845 ProfileHandleRight.jumps +04:4854 ProfileHandleRight.idx +04:485d ProfileHandleRight.doit +04:4860 ProfileHandleRight.l0 +04:486a ProfileHandleRight.doit1 +04:4871 ProfileHandleRight.l1 +04:487b ProfileHandleRight.doit2 +04:4882 ProfileHandleRight.l2 +04:488c ProfileHandleRight.doit3 +04:4893 ProfileHandleLeft +04:48a7 ProfileHandleLeft.jumps +04:48b6 ProfileHandleLeft.idx +04:48c0 ProfileHandleLeft.doit +04:48c3 ProfileHandleLeft.l0 +04:48cd ProfileHandleLeft.doit1 +04:48d4 ProfileHandleLeft.l1 +04:48de ProfileHandleLeft.doit2 +04:48e5 ProfileHandleLeft.l2 +04:48ef ProfileHandleLeft.doit3 +04:48f6 ProfileHandleDown +04:4907 ProfileHandleUp +04:4919 DecrementLevel +04:492f IncrementLevel +04:4945 InitSpeedCurve +04:4954 GetEnd +04:498b GetStart +04:49c2 CheckLevelRange +04:49db CheckLevelRange.notatend +04:49fb CheckLevelRange.notatstart +04:49fc RecordsHandleLeft +04:4a1b RecordsHandleRight +04:4a39 RecordsHandleSelect +04:4a42 RenderScores +04:4a48 RenderScores.wvr_u25 +04:4a7c RenderScores.score_u26 +04:4aa6 RenderScores.level_u26 +04:4ada RenderScores.name_u26 +04:4af1 RenderScores.nograde_u26 +04:4af6 RenderScores.grade_u26 +04:4af9 RenderScores.postgrade_u26 +04:4b22 RenderScores.score_u27 +04:4b4c RenderScores.level_u27 +04:4b80 RenderScores.name_u27 +04:4b97 RenderScores.nograde_u27 +04:4b9c RenderScores.grade_u27 +04:4b9f RenderScores.postgrade_u27 +04:4bc8 RenderScores.score_u28 +04:4bf2 RenderScores.level_u28 +04:4c26 RenderScores.name_u28 +04:4c3d RenderScores.nograde_u28 +04:4c42 RenderScores.grade_u28 +04:4c45 RenderScores.postgrade_u28 +04:4c6e RenderScores.score_u29 +04:4c98 RenderScores.level_u29 +04:4ccc RenderScores.name_u29 +04:4ce3 RenderScores.nograde_u29 +04:4ce8 RenderScores.grade_u29 +04:4ceb RenderScores.postgrade_u29 +04:4d14 RenderScores.score_u30 +04:4d3e RenderScores.level_u30 +04:4d72 RenderScores.name_u30 +04:4d89 RenderScores.nograde_u30 +04:4d8e RenderScores.grade_u30 +04:4d91 RenderScores.postgrade_u30 +04:4dba RenderScores.score_u31 +04:4de4 RenderScores.level_u31 +04:4e18 RenderScores.name_u31 +04:4e2f RenderScores.nograde_u31 +04:4e34 RenderScores.grade_u31 +04:4e37 RenderScores.postgrade_u31 +04:4e60 RenderScores.score_u32 +04:4e8a RenderScores.level_u32 +04:4ebe RenderScores.name_u32 +04:4ed5 RenderScores.nograde_u32 +04:4eda RenderScores.grade_u32 +04:4edd RenderScores.postgrade_u32 +04:4f06 RenderScores.score_u33 +04:4f30 RenderScores.level_u33 +04:4f64 RenderScores.name_u33 +04:4f7b RenderScores.nograde_u33 +04:4f80 RenderScores.grade_u33 +04:4f83 RenderScores.postgrade_u33 +04:4fac RenderScores.score_u34 +04:4fd6 RenderScores.level_u34 +04:500a RenderScores.name_u34 +04:5021 RenderScores.nograde_u34 +04:5026 RenderScores.grade_u34 +04:5029 RenderScores.postgrade_u34 +04:5052 RenderScores.score_u35 +04:507c RenderScores.level_u35 +04:50b0 RenderScores.name_u35 +04:50c7 RenderScores.nograde_u35 +04:50cc RenderScores.grade_u35 +04:50cf RenderScores.postgrade_u35 +04:50f6 sEasterM0 +04:50fb sEasterM1 +04:5100 sEasterC0 +04:510b sEasterC1 +04:5116 sEasterA0 +04:5121 sEasterA1 +04:512c sEasterS0 +04:5131 sEasterS1 +04:5136 sBUTTONSMode +04:513e sRNGMode +04:5152 sROTMode +04:5162 sDROPMode +04:5176 sCURVEMode +04:5192 sHIGMode +04:519a sDisabled +04:519e sTetryButtons +04:51de sTetryRNG +04:521e sTetryROT +04:525e sTetryDROP +04:529e sTetryCURVE +04:52de sTetryHIG +04:531e sTetrySTART +04:535e sTetryEXIT +04:539e sTitleScreenMainMap +04:563e sTitleScreenSettingsMap +04:563e sTitleScreenMainMapEnd +04:58de sTitleScreenCreditsMap +04:58de sTitleScreenSettingsMapEnd +04:5b7e sTitleScreenProfileMap +04:5b7e sTitleScreenCreditsMapEnd +04:5e1e sTitleScreenRecordsMap +04:5e1e sTitleScreenProfileMapEnd +04:60be sTitleScreenRecordsMapEnd 05:4008 FieldInit 05:403e FieldClear 05:4049 ToBackupField @@ -2525,23 +2560,25 @@ 00:cf29 wInitialA 00:cf2a wInitialB 00:cf2b wInitialC -00:cf2c wMinutes -00:cf2d wSeconds -00:cf2e wFrames -00:cf2f wCountDown -00:cf31 wCountDownZero -00:cf32 wSelected -00:cf33 wTitleMode -00:cf34 wProfileName -00:cf37 wBankBackup -00:cf3b wRollLine -00:cf3c wInStaffRoll -00:cf3d wBigModeTransfered -00:cf3e wGameOverIgnoreInput -00:cf3f wOuterReps -00:cf40 wInnerReps -00:cf41 wTitlePal -00:cf42 wTarget +00:cf2c wSelected +00:cf2d wTitleMode +00:cf2e wProfileName +00:cf31 wDisplayingScoreMode +00:cf32 wScoreFlipTimer +00:cf33 wMinutes +00:cf34 wSeconds +00:cf35 wFrames +00:cf36 wCountDown +00:cf38 wCountDownZero +00:cf39 wBankBackup +00:cf3d wRollLine +00:cf3e wInStaffRoll +00:cf3f wBigModeTransfered +00:cf40 wGameOverIgnoreInput +00:cf41 wOuterReps +00:cf42 wInnerReps +00:cf43 wTitlePal +00:cf44 wTarget 00:ff80 hPieceDataBase 00:ff82 hPieceDataBaseFast 00:ff84 hPieceDataOffset diff --git a/src/hiscore.asm b/src/hiscore.asm index 504c729..815be31 100644 --- a/src/hiscore.asm +++ b/src/hiscore.asm @@ -25,25 +25,25 @@ INCLUDE "globals.asm" SECTION "Hi Score Data", ROM0 sHiscoreDefaultData:: db 0, 0, 0, 0, 0, 0, 0, 0, "DMG", GRADE_NONE, RNG_MODE_TGM3, ROT_MODE_ARSTI, DROP_MODE_FIRM, HIG_MODE_OFF - db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + db 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 db 0, 0, 0, 0, 0, 0, 0, 0, "TRI", GRADE_NONE, RNG_MODE_TGM3, ROT_MODE_ARSTI, DROP_MODE_FIRM, HIG_MODE_OFF - db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + db 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 db 0, 0, 0, 0, 0, 0, 0, 0, "SDM", GRADE_NONE, RNG_MODE_TGM3, ROT_MODE_ARSTI, DROP_MODE_FIRM, HIG_MODE_OFF - db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + db 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 db 0, 0, 0, 0, 0, 0, 0, 0, "GTR", GRADE_NONE, RNG_MODE_TGM3, ROT_MODE_ARSTI, DROP_MODE_FIRM, HIG_MODE_OFF - db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + db 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 db 0, 0, 0, 0, 0, 0, 0, 0, "ISD", GRADE_NONE, RNG_MODE_TGM3, ROT_MODE_ARSTI, DROP_MODE_FIRM, HIG_MODE_OFF - db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + db 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 db 0, 0, 0, 0, 0, 0, 0, 0, "MGT", GRADE_NONE, RNG_MODE_TGM3, ROT_MODE_ARSTI, DROP_MODE_FIRM, HIG_MODE_OFF - db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + db 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 db 0, 0, 0, 0, 0, 0, 0, 0, "RIS", GRADE_NONE, RNG_MODE_TGM3, ROT_MODE_ARSTI, DROP_MODE_FIRM, HIG_MODE_OFF - db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + db 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 db 0, 0, 0, 0, 0, 0, 0, 0, "DMG", GRADE_NONE, RNG_MODE_TGM3, ROT_MODE_ARSTI, DROP_MODE_FIRM, HIG_MODE_OFF - db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + db 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 db 0, 0, 0, 0, 0, 0, 0, 0, "TRI", GRADE_NONE, RNG_MODE_TGM3, ROT_MODE_ARSTI, DROP_MODE_FIRM, HIG_MODE_OFF - db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + db 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 db 0, 0, 0, 0, 0, 0, 0, 0, "SDM", GRADE_NONE, RNG_MODE_TGM3, ROT_MODE_ARSTI, DROP_MODE_FIRM, HIG_MODE_OFF - db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + db 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 SECTION "Hi Score Variables", WRAM0 @@ -68,6 +68,86 @@ CheckAndAddHiscore:: ; Load the score at position a. call GetHiScoreEntry + ; Backup HL to DE for later. + ld d, h + ld e, l + + + ; Compare grades, HL needs to forwarded 11 bytes. +.checkgrade + ld bc, 11 + add hl, bc + + ; HL is now pointing to the grade in this high score. + ; The handling depends on whether or not the old score had a grade. + ld a, [hl] + cp a, GRADE_NONE + jr z, .oldungraded + + ; The old score had a grade, so compare ours to theirs. +.oldgraded + ld b, a + ld a, [wDisplayedGrade] + cp a, b + jr c, .notbetter ; If we're less, we're not better. + jr nz, .better ; If we're higher, we're better. + jr .checklevel ; Equal, so check level. + + ; The old score did NOT have a grade. So check if we do. +.oldungraded + ld a, [wDisplayedGrade] + cp a, GRADE_NONE + jr nz, .better ; We do have a grade, so we win. + ; We don't have a grade either, so continue as equals. + + + ; Our grade is equal. + ; Compare levels. HL needs to be forwarded 5 bytes. +.checklevel + ld bc, 5 + add hl, bc + + ; HL is now pointing to the level in this high score. + ; Make BC point to our level. + ld bc, hCLevel + + ; And compare the first digit... + ld a, [bc] + cp a, [hl] + jr c, .notbetter ; Lower? Not better. + jr nz, .better ; Higher? Better. + inc bc ; Equal? Keep checking... + inc hl + + ; Second... + ld a, [bc] + cp a, [hl] + jr c, .notbetter + jr nz, .better + inc bc + inc hl + + ; Third... + ld a, [bc] + cp a, [hl] + jr c, .notbetter + jr nz, .better + inc bc + inc hl + + ; Fourth... + ld a, [bc] + cp a, [hl] + jr c, .notbetter + jr nz, .better + + + ; Our level is equal. + ; So now also check the score. Restore the DE from earlier. +.checkscore + ld h, d + ld l, e + ; HL is pointing to that score, make BC point to our current score. ld bc, hScore @@ -133,6 +213,8 @@ CheckAndAddHiscore:: jr c, .notbetter jr nz, .better + + ; If we fell through all the way to here, we are completely equal. Oldest score has priority. ; Loop or return if we didn't make the scores. .notbetter ld a, [wInsertTarget] @@ -140,7 +222,7 @@ CheckAndAddHiscore:: ld [wInsertTarget], a cp a, 10 ret z - jr .checkloop + jp .checkloop .better jr InsertHiScore @@ -223,10 +305,26 @@ InsertHiScore:: ld [hl+], a ld a, [wAlways20GState] ld [hl+], a + ldh a, [hCLevel+0] + ld [hl+], a + ldh a, [hCLevel+1] + ld [hl+], a + ldh a, [hCLevel+2] + ld [hl+], a + ldh a, [hCLevel+3] + ld [hl+], a + ldh a, [hNLevel+0] + ld [hl+], a + ldh a, [hNLevel+1] + ld [hl+], a + ldh a, [hNLevel+2] + ld [hl+], a + ldh a, [hNLevel+3] + ld [hl+], a - ; 16 filler bytes. + ; 8 filler bytes. xor a, a - REPT 16 + REPT 8 ld [hl+], a ENDR diff --git a/src/res/other_data.inc b/src/res/other_data.inc index 59810ed..98e3dae 100644 --- a/src/res/other_data.inc +++ b/src/res/other_data.inc @@ -1338,8 +1338,8 @@ sTitleTiles:: DB $50,$50,$20,$20,$24,$24,$00,$00 DB $40,$40,$C0,$C0,$40,$40,$40,$40 DB $40,$40,$40,$40,$E4,$E4,$00,$00 - DB $44,$44,$AC,$AC,$A4,$A4,$A4,$A4 - DB $A4,$A4,$A4,$A4,$4E,$4E,$00,$00 + DB $4C,$4C,$A2,$A2,$A2,$A2,$A4,$A4 + DB $A8,$A8,$A8,$A8,$4E,$4E,$00,$00 sTitleTilesEnd:: sGameplayTilesM:: diff --git a/src/res/sources/tiles_title.gbr b/src/res/sources/tiles_title.gbr index 03ed3af..155335f 100644 Binary files a/src/res/sources/tiles_title.gbr and b/src/res/sources/tiles_title.gbr differ diff --git a/src/sram.asm b/src/sram.asm index 843413a..a563d33 100644 --- a/src/sram.asm +++ b/src/sram.asm @@ -98,7 +98,7 @@ RestoreSRAM:: cp a, 0 jp nz, InitializeSRAM ld a, [rCheck+5] - cp a, 3 + cp a, 4 jp nz, InitializeSRAM ; SRAM is initialized and for this build, so we can load the data. @@ -228,7 +228,7 @@ InitializeSRAM: ld [rCheck+3], a ld a, 0 ld [rCheck+4], a - ld a, 3 + ld a, 4 ld [rCheck+5], a xor a, a @@ -340,6 +340,27 @@ InitializeSRAM: ld a, "9" ld [rProfileName9+2], a + ld a, 6 + ld [wSelected], a + call ResetScores + ld a, 5 + ld [wSelected], a + call ResetScores + ld a, 4 + ld [wSelected], a + call ResetScores + ld a, 3 + ld [wSelected], a + call ResetScores + ld a, 2 + ld [wSelected], a + call ResetScores + ld a, 1 + ld [wSelected], a + call ResetScores + xor a, a + ld [wSelected], a + ; Set the default scores. ResetScores:: ld a, [wSelected] diff --git a/src/state_title.asm b/src/state_title.asm index 03c39a3..ee6eb24 100644 --- a/src/state_title.asm +++ b/src/state_title.asm @@ -27,6 +27,8 @@ SECTION "Title Variables", WRAM0 wSelected:: ds 1 wTitleMode:: ds 1 wProfileName:: ds 3 +wDisplayingScoreMode:: ds 1 +wScoreFlipTimer:: ds 1 SECTION "Title Function Trampolines", ROM0 @@ -351,6 +353,8 @@ SwitchTitleMode: call GBCTitleInit xor a, a ldh [hSelectState], a + ld [wDisplayingScoreMode], a + ld [wScoreFlipTimer], a jp RenderScores .switchCredits @@ -556,8 +560,19 @@ TitleEventLoopHandlerB: ; Select ldh a, [hSelectState] cp a, 255 ; Max hold duraction + jp z, RecordsHandleSelect + + ld a, [wScoreFlipTimer] + inc a + ld [wScoreFlipTimer], a + cp a, 180 ret nz - jp RecordsHandleSelect + xor a, a + ld [wScoreFlipTimer], a + ld a, [wDisplayingScoreMode] + cpl + ld [wDisplayingScoreMode], a + jp RenderScores .eventLoopCredits ldh a, [hAState] @@ -1522,6 +1537,8 @@ CheckLevelRange: RecordsHandleLeft: xor a, a ldh [hSelectState], a + ld [wDisplayingScoreMode], a + ld [wScoreFlipTimer], a ld a, [wSelected] cp a, 0 jr z, :+ @@ -1535,6 +1552,8 @@ RecordsHandleLeft: RecordsHandleRight: xor a, a ldh [hSelectState], a + ld [wDisplayingScoreMode], a + ld [wScoreFlipTimer], a ld a, [wSelected] cp a, SCURVE_COUNT-1 jr z, :+ @@ -1585,7 +1604,12 @@ RenderScores: ld hl, TITLE_RECORDS_SCORE_BASE+4 REPT 10 + ld a, [wDisplayingScoreMode] + cp a, $FF + jr z, .level\@ + ; Render score. +.score\@ ld a, [de] inc de add a, "0" @@ -1619,11 +1643,63 @@ RenderScores: add a, "0" ld [hl+], a + ; Go render the name. + jr .name\@ + + ; Jump forward to level in the score. +.level\@ + push hl + ld h, d + ld l, e + ld bc, 16 + add hl, bc + ld d, h + ld e, l + pop hl + + ; Render it. + ld a, "L" + ld [hl+], a + ld a, "V" + ld [hl+], a + ld a, "L" + ld [hl+], a + ld a, 115 + ld [hl+], a + ld a, [de] + inc de + add a, "0" + ld [hl+], a + ld a, [de] + inc de + add a, "0" + ld [hl+], a + ld a, [de] + inc de + add a, "0" + ld [hl+], a + ld a, [de] + inc de + add a, "0" + ld [hl+], a + + ; And jump back to the name. + push hl + ld h, d + ld l, e + ld bc, -12 + add hl, bc + ld d, h + ld e, l + pop hl + + +.name\@ ; Jump back to Name. ld bc, -12 add hl, bc - ; Render it. + ; Render name. ld a, [de] inc de ld [hl+], a @@ -1644,7 +1720,7 @@ RenderScores: cp a, GRADE_NONE jr nz, .grade\@ .nograde\@ - ld a, TILE_BLANK + ld a, 197 ld [hl+], a jr .postgrade\@ .grade\@