diff --git a/README.md b/README.md index b821724..2b3f54b 100644 --- a/README.md +++ b/README.md @@ -67,6 +67,14 @@ Whether you want instant-drop gravity to be active at any level. ### Start Level Choose any of the speed breakpoints to start the game at. +### D-Pad Filter +Choose which D-Pad buttons get priority. +- DLRU: Down > Left/Right > Up +- ULRD: Up > Left/Right > Down +- LRUD: Left/Right > Up/Down +- UDLR: Up/Down > Left/Right +- NONE: No filtering or priority. + ## Scoring After each piece is dropped, a check is made: diff --git a/bin/DMGTRIS.GBC b/bin/DMGTRIS.GBC index 61ba697..f1e7afd 100644 Binary files a/bin/DMGTRIS.GBC and b/bin/DMGTRIS.GBC differ diff --git a/bin/DMGTRIS.map b/bin/DMGTRIS.map index 4c2e748..5275749 100644 --- a/bin/DMGTRIS.map +++ b/bin/DMGTRIS.map @@ -190,394 +190,402 @@ ROM0 bank #0: $1d49 = GradeRendering.mo $1d4f = GradeRendering.mm $1d55 = GradeRendering.gmgrade - SECTION: $1d60-$220a ($04ab bytes) ["SRAM Functions"] + SECTION: $1d60-$221d ($04be 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 + $1de7 = TrustedLoad.jumps + $1dff = TrustedLoad.dmgt + $1e05 = TrustedLoad.tgm1 + $1e0b = TrustedLoad.tgm3 + $1e11 = TrustedLoad.deat + $1e17 = TrustedLoad.shir + $1e1d = TrustedLoad.chil + $1e23 = TrustedLoad.myco + $1e29 = TrustedLoad.search + $1e3b = TrustedLoad.notfound + $1e42 = TrustedLoad.fallback + $1e5d = InitializeSRAM + $1fb7 = ResetScores + $1fc5 = ResetScores.jumps + $1fda = ResetScores.dmgt + $1fe6 = ResetScores.tgm1 + $1ff2 = ResetScores.tgm3 + $1ffe = ResetScores.deat + $200a = ResetScores.shir + $2016 = ResetScores.chil + $2022 = ResetScores.myco + $202e = NextProfile + $2037 = NextProfile.update + $203a = ChangeProfile + $203a = ChangeProfile.backup + $2069 = ChangeProfile.first + $2077 = ChangeProfile.second + $2085 = ChangeProfile.third + $2093 = ChangeProfile.fourth + $20a1 = ChangeProfile.fifth + $20af = ChangeProfile.sixth + $20bd = ChangeProfile.seventh + $20cb = ChangeProfile.eighth + $20d9 = ChangeProfile.ninth + $20e7 = ChangeProfile.tenth + $20f5 = ChangeProfile.restore + $2125 = ChangeProfile.lfirst + $2134 = ChangeProfile.lsecond + $2143 = ChangeProfile.lthird + $2152 = ChangeProfile.lfourth + $2161 = ChangeProfile.lfifth + $2170 = ChangeProfile.lsixth + $217f = ChangeProfile.lseventh + $218e = ChangeProfile.leighth + $219d = ChangeProfile.lninth + $21ac = ChangeProfile.ltenth + $21bb = ResetProfile + SECTION: $221e-$269d ($0480 bytes) ["Grading Functions"] + $221e = GradeInit + $2252 = GradeInit.grade9start + $2257 = GradeInit.end + $2259 = UpdateGrade + $2267 = UpdateGrade.gradejumptable + $227c = DecayGradeProcess + $228a = DecayGradeProcess.gradejumptable + $229f = DecayGradeDelay + $22ad = DecayGradeDelay.gradejumptable + $22c2 = PrepareScore + $22d5 = DrawGradeProgressDMGT + $22e1 = !0 + $22f0 = UpdateGradeDMGT + $2329 = UpdateGradeDMGT.checklineclears + $2343 = UpdateGradeDMGT.clearrate + $2354 = UpdateGradeDMGT.combomult + $2361 = UpdateGradeDMGT.combo13 + $2372 = UpdateGradeDMGT.combo8 + $2383 = UpdateGradeDMGT.combo1 + $2392 = UpdateGradeDMGT.prelevel + $23a1 = UpdateGradeDMGT.single + $23b1 = UpdateGradeDMGT.double + $23c2 = UpdateGradeDMGT.adddonce + $23c6 = UpdateGradeDMGT.triple + $23d7 = UpdateGradeDMGT.addtonce + $23db = UpdateGradeDMGT.tetris + $23df = UpdateGradeDMGT.levelmult + $23f7 = UpdateGradeDMGT.mult4 + $23fd = UpdateGradeDMGT.mult3 + $2402 = UpdateGradeDMGT.mult2 + $2406 = UpdateGradeDMGT.mult1 + $2407 = UpdateGradeDMGT.processgrade + $2430 = UpdateGradeDMGT.increasegrademaybe + $2454 = UpdateGradeDMGT.gotgm + $2462 = DecayGradeDMGT + $2486 = DecayGradeDMGT.nodecay + $248d = DecayGradeDMGT.decay + $249b = UpdateGradeTGM1 + $24ac = UpdateGradeTGM1.trygradeup + $24c7 = UpdateGradeTGM1.increasegrade + $24dc = UpdateGradeTGM1.skipjingle + $24e8 = UpdateGradeTGM1.check300 + $2507 = UpdateGradeTGM1.success300 + $250e = UpdateGradeTGM1.fail300 + $2515 = UpdateGradeTGM1.check500 + $2534 = UpdateGradeTGM1.success500 + $253b = UpdateGradeTGM1.fail500 + $2542 = UpdateGradeTGM1.check999 + $257a = UpdateGradeTGM1.success999 + $2592 = UpdateGradeTGM1.fail999 + $2598 = UpdateGradeDEAT + $25a4 = UpdateGradeDEAT.notgm + $25c0 = UpdateGradeDEAT.notm + $25e3 = UpdateGradeDEAT.disqualify + $2601 = UpdateGradeSHIR + $2644 = UpdateGradeSHIR.s5torikan + $2654 = UpdateGradeSHIR.s10torikan + $2663 = UpdateGradeSHIR.disqualify + $2672 = UpdateGradeSHIR.l1000 + $2688 = UpdateGradeSHIR.l500 + SECTION: $269e-$2a16 ($0379 bytes) ["Level Functions"] + $269e = LevelInit + $2703 = SpecialLevelInit + $2711 = SpecialLevelInit.jumps + $2726 = SpecialLevelInit.dmgt + $272b = SpecialLevelInit.tgm1 + $2730 = SpecialLevelInit.tgm3 + $2735 = SpecialLevelInit.deat + $273a = SpecialLevelInit.shir + $273f = SpecialLevelInit.chil + $2744 = SpecialLevelInit.myco + $2749 = SpecialLevelInit.loaddata + $277e = LevelUp + $27a8 = LevelUp.doit + $27ea = LevelUp.checknlevel + $281b = !0 + $2833 = !1 + $283c = LevelUp.bellmaybe + $2858 = LevelUp.leveljinglemaybe + $2868 = LevelUp.checkspeedup + $287c = !2 + $2889 = !3 + $289a = !4 + $28a7 = DoSpeedUp + $28e8 = CheckSpecialLevelConditions + $2919 = CheckSpecialLevelConditions.override + $2934 = CheckSpecialLevelConditions.nooverride + $293a = CheckSpecialLevelConditions.speciallock + $295e = CheckSpecialLevelConditions.bones + $2973 = CheckSpecialLevelConditions.enterthebonezone + $2978 = CheckSpecialLevelConditions.invis + $298d = CheckSpecialLevelConditions.vanishoxyaction + $2992 = CheckSpecialLevelConditions.killscreen + $29a3 = CheckSpecialLevelConditions.rip + $29d3 = CheckSpecialLevelConditions.staffroll + $29e1 = CheckSpecialLevelConditions.justkill + $29f5 = TriggerKillScreen + SECTION: $2a17-$2ccc ($02b6 bytes) ["Grading Data"] + $2a17 = sTGM1GradeScores + $2a39 = sTGM3InternalGradeSystem + $2ad9 = sTGM3GradeBoosts + $2af8 = sTGM3LevelMultiplier + $2afc = sTGM3BaselineCOOL + $2b05 = sTGM3REGRETConditions + $2b19 = sDMGTGrading + $2bcd = sDMGTGaugeLUT + SECTION: $2ccd-$2f6c ($02a0 bytes) ["SFX Functions"] + $2ccd = SFXInit + $2cef = SFXPopQueue + $2d04 = SFXPushQueue + $2d15 = SFXProcessQueue + $2d26 = !0 + $2d41 = !1 + $2d43 = SFXTriggerNoise + $2d50 = !2 + $2d5d = !3 + $2d69 = SFXEnqueue + $2d7e = SFXEnqueue.findsfx + $2d93 = !4 + $2da3 = !5 + $2db3 = !6 + $2dc3 = !7 + $2dd3 = !8 + $2de3 = !9 + $2df3 = !10 + $2e03 = !11 + $2e13 = !12 + $2e23 = !13 + $2e33 = !14 + $2e43 = !15 + $2e53 = !16 + $2e63 = !17 + $2e73 = !18 + $2e82 = !19 + $2e91 = !20 + $2ea0 = !21 + $2eaf = !22 + $2ebd = !23 + $2ecb = !24 + $2ed8 = SFXKill + $2f0b = SFXPlayNoise + $2f16 = SFXPlayNoise.noisereg + $2f23 = !25 + $2f2d = SFXPlayNoise.savenoiseplayhead + $2f36 = SFXPlay + $2f41 = !26 + $2f44 = SFXPlay.play + $2f50 = SFXPlay.getRegister + $2f5a = !27 + $2f64 = SFXPlay.savePlayhead + SECTION: $2f6d-$319d ($0231 bytes) ["RNG Functions"] + $2f6d = HarvestEntropy + $2f73 = HarvestEntropy.loop + $2f94 = RNGInit + $2fca = !0 + $2ffa = RNGInit.complexinit + $3011 = !1 + $302c = ShiftHistory + $3049 = GetNextHellPiece + $304e = GetNextTGM1Piece + $3051 = !2 + $3069 = !3 + $306b = GetNextTGM2Piece + $306e = !4 + $3086 = !5 + $3088 = GetNextNesPiece + $3096 = GetNextTGM3Piece + $3099 = !6 + $30bc = !7 + $30bf = !8 + $30cf = !9 + $30d9 = !10 + $30e7 = !11 + $30f6 = !12 + $3102 = !13 + $310e = !14 + $311a = !15 + $3126 = !16 + $3132 = !17 + $313e = !18 + $314d = GetNextPiece + $315b = GetNextPiece.nextpiecejumps + $316a = Next35Piece + $316a = !19 + $3174 = Next7Piece + $3174 = !20 + $317e = NextByte + SECTION: $319e-$3361 ($01c4 bytes) ["Hi Score Functions"] + $319e = CheckAndAddHiscore + $31a8 = CheckAndAddHiscore.checkloop + $31ad = CheckAndAddHiscore.checkgrade + $31b6 = CheckAndAddHiscore.oldgraded + $31c1 = CheckAndAddHiscore.oldungraded + $31c8 = CheckAndAddHiscore.checklevel + $31ed = CheckAndAddHiscore.checkscore + $3230 = CheckAndAddHiscore.notbetter + $323d = CheckAndAddHiscore.better + $323f = InsertHiScore + $323f = InsertHiScore.copylower + $3250 = InsertHiScore.copyupper + $325d = !0 + $3271 = InsertHiScore.findrow + $327e = !1 + $3282 = InsertHiScore.insert + $32db = InsertHiScore.persist + $32ec = GetHiScoreEntry + $3301 = !2 + $3305 = GetHiScoreEntry.store + $330e = InitTargetHSTable + $3319 = InitTargetHSTable.jumps + $332e = InitTargetHSTable.dmgt + $3333 = InitTargetHSTable.tgm1 + $3338 = InitTargetHSTable.tgm3 + $333d = InitTargetHSTable.deat + $3342 = InitTargetHSTable.shir + $3347 = InitTargetHSTable.chil + $334c = InitTargetHSTable.myco + $334f = InitTargetHSTable.store + SECTION: $3362-$34ab ($014a bytes) ["Progress Data"] + $3362 = sProgressData + SECTION: $34ac-$35eb ($0140 bytes) ["Hi Score Data"] + $34ac = sHiscoreDefaultData + SECTION: $35ec-$371f ($0134 bytes) ["Input Functions"] + $35ec = InputInit + $35fe = GetInput + $35fe = GetInput.btns + $360b = GetInput.readA + $360f = GetInput.setA + $361a = GetInput.clearA + $361d = GetInput.readB + $3621 = GetInput.setB + $362c = GetInput.clearB + $362f = GetInput.readSelect + $3633 = GetInput.setSelect + $363e = GetInput.clearSelect + $3641 = GetInput.readStart + $3645 = GetInput.setStart + $3650 = GetInput.clearStart + $3653 = GetInput.dpad + $3660 = GetInput.readUp + $3664 = GetInput.setUp + $366f = GetInput.clearUp + $3672 = GetInput.readDown + $3676 = GetInput.setDown + $3681 = GetInput.clearDown + $3684 = GetInput.readLeft + $3688 = GetInput.setLeft + $3693 = GetInput.clearLeft + $3696 = GetInput.readRight + $369a = GetInput.setRight + $36a5 = GetInput.clearRight + $36a8 = GetInput.priorities + $36b5 = GetInput.jumps + $36c4 = GetInput.dlru + $36d7 = GetInput.ulrd + $36ea = GetInput.lrud + $36f7 = GetInput.udlr + $3704 = GetInput.zeroud + $370a = GetInput.zerolr + $3710 = GetInput.zerolrd + $3718 = GetInput.zerolru + SECTION: $3720-$37ff ($00e0 bytes) ["Score Functions"] + $3720 = ScoreInit + $3748 = IncreaseScore + $3780 = IncreaseScore.doConvert + $3782 = !0 + $3798 = IncreaseScore.carry + $379a = IncreaseScore.postConvert + $37a7 = !1 + $37ae = IncreaseScore.preAddDigit + $37d6 = IncreaseScore.addDigit + $37ec = IncreaseScore.nextDigit + SECTION: $3800-$38ca ($00cb bytes) ["Title Function Trampolines"] + $3800 = SwitchToTitle + $3809 = TitleEventLoopHandler + $3813 = TitleVBlankHandler + $381d = PersistLevel + $382b = DrawSpeedMain + $387b = DrawSpeedSettings + SECTION: $38cb-$3990 ($00c6 bytes) ["Time Functions"] + $38cb = TimeInit + $38eb = StartCountdown + $38f9 = ResetGameTime + $3904 = CheckTorikan + $391b = CheckTorikan.failure + $391d = CheckTorikan.success + $3920 = HandleTimers + $3946 = HandleTimers.reduce + $3953 = HandleTimers.clock + $396d = HandleTimers.go + SECTION: $3991-$3a42 ($00b2 bytes) ["Progress Functions"] + $3991 = SetProgress + $399c = SetProgress.loop + $39a0 = SetProgress.correct + $39c7 = SetProgress.wvr_u1 + $39d3 = SetProgress.wvr_u2 + $39e1 = SetProgress.wvr_u3 + $39ed = SetProgress.wvr_u4 + $39fb = SetProgress.wvr_u5 + $3a07 = SetProgress.wvr_u6 + $3a15 = SetProgress.wvr_u7 + $3a21 = SetProgress.wvr_u8 + $3a2f = SetProgress.wvr_u9 + $3a3b = SetProgress.wvr_u10 + SECTION: $3a43-$3ad4 ($0092 bytes) ["Code Entry Point"] + $3a43 = Main + $3a6c = Main.notgbc + $3a72 = Main.wvr_u1 + $3a99 = EventLoop + $3aaf = EventLoop.eventloopjumps + $3ab8 = EventLoopPostHandler + $3aba = EventLoopPostHandler.wvb_u2 + $3acc = EventLoopPostHandler.vblankjumps + SECTION: $3ad5-$3b26 ($0052 bytes) ["Tile Functions"] + $3ad5 = LoadTitleTiles + $3af3 = LoadGameplayTiles + $3b09 = LoadGameplayTiles.gbc + $3b18 = LoadGameplayTiles.dmg + SECTION: $3b27-$3b62 ($003c bytes) ["Time Data"] + $3b27 = sFramesToCS + SECTION: $3b63-$3b90 ($002e bytes) ["Memory Functions"] + $3b63 = UnsafeMemCopy + $3b6c = SafeMemCopy.wvr_u1 + $3b6c = SafeMemCopy + $3b7b = UnsafeMemSet + $3b83 = SafeMemSet + $3b83 = SafeMemSet.wvr_u2 + SECTION: $3b91-$3bb6 ($0026 bytes) ["Gameplay Function Trampolines"] + $3b91 = SwitchToGameplay + $3b9a = SwitchToGameplayBig + $3ba3 = GamePlayEventLoopHandler + $3bad = GamePlayBigEventLoopHandler + SECTION: $3bb7-$3bdb ($0025 bytes) ["Interrupt Initialization Functions"] + $3bb7 = EnableScreenSquish + $3bd1 = DisableScreenSquish + SECTION: $3bdc-$3bfd ($0022 bytes) ["OAM Functions"] + $3bdc = CopyOAMHandler + $3be8 = ClearOAM + SECTION: $3bfe-$3c0c ($000f bytes) ["Banking Functions"] + $3bfe = BankingInit + SECTION: $3c0d-$3c16 ($000a bytes) ["OAM DMA Code"] + $3c0d = OAMDMA + $3c17 = OAMDMAEnd + EMPTY: $3c17-$3fff ($03e9 bytes) + TOTAL EMPTY: $03f4 bytes ROMX bank #1: SECTION: $4000-$4007 ($0008 bytes) ["Bank ID BANK_OTHER"] @@ -678,7 +686,7 @@ ROMX bank #3: ROMX bank #4: SECTION: $4000-$4007 ($0008 bytes) ["Bank ID BANK_TITLE"] - SECTION: $4008-$50f5 ($10ee bytes) ["Title Functions Banked"] + SECTION: $4008-$5910 ($1909 bytes) ["Title Functions Banked"] $4008 = SwitchToTitleB $400e = SwitchToTitleB.wvr_u1 $4017 = !0 @@ -696,290 +704,549 @@ ROMX bank #4: $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 + $415b = SwitchTitleMode.switchCredits + $416f = TitleEventLoopHandlerB + $417d = TitleEventLoopHandlerB.jumps + $418c = TitleEventLoopHandlerB.eventLoopMain + $41b6 = TitleEventLoopHandlerB.d0 + $41ca = TitleEventLoopHandlerB.eventLoopProfile + $41f4 = TitleEventLoopHandlerB.d2 + $4209 = TitleEventLoopHandlerB.l2 + $421e = TitleEventLoopHandlerB.r2 + $4233 = TitleEventLoopHandlerB.eventLoopSettings + $425d = TitleEventLoopHandlerB.d1 + $4272 = TitleEventLoopHandlerB.l1 + $4287 = TitleEventLoopHandlerB.r1 + $429b = TitleEventLoopHandlerB.eventLoopRecords + $42cf = TitleEventLoopHandlerB.eventLoopCredits + $42e5 = TitleEventLoopHandlerB.quitrecords + $42e5 = TitleEventLoopHandlerB.quitcredits + $42ea = TitleVBlankHandlerB + $42f8 = TitleVBlankHandlerB.jumps + $4307 = TitleVBlankHandlerB.vblankMain + $4311 = TitleVBlankHandlerB.notselected_u5 + $4316 = TitleVBlankHandlerB.selected_u5 + $4319 = TitleVBlankHandlerB.done_u5 + $4323 = TitleVBlankHandlerB.notselected_u6 + $4328 = TitleVBlankHandlerB.selected_u6 + $432b = TitleVBlankHandlerB.done_u6 + $4335 = TitleVBlankHandlerB.notselected_u7 + $433a = TitleVBlankHandlerB.selected_u7 + $433d = TitleVBlankHandlerB.done_u7 + $4347 = TitleVBlankHandlerB.notselected_u8 + $434c = TitleVBlankHandlerB.selected_u8 + $434f = TitleVBlankHandlerB.done_u8 + $4359 = TitleVBlankHandlerB.notselected_u9 + $435e = TitleVBlankHandlerB.selected_u9 + $4361 = TitleVBlankHandlerB.done_u9 + $436b = TitleVBlankHandlerB.notselected_u10 + $4370 = TitleVBlankHandlerB.selected_u10 + $4373 = TitleVBlankHandlerB.done_u10 + $43fd = TitleVBlankHandlerB.disabled + $4409 = TitleVBlankHandlerB.profile + $4418 = TitleVBlankHandlerB.vblankProfile + $4422 = TitleVBlankHandlerB.notselected_u11 + $4427 = TitleVBlankHandlerB.selected_u11 + $442a = TitleVBlankHandlerB.done_u11 + $4434 = TitleVBlankHandlerB.notselected_u12 + $4439 = TitleVBlankHandlerB.selected_u12 + $443c = TitleVBlankHandlerB.done_u12 + $4446 = TitleVBlankHandlerB.notselected_u13 + $444b = TitleVBlankHandlerB.selected_u13 + $444e = TitleVBlankHandlerB.done_u13 + $4458 = TitleVBlankHandlerB.notselected_u14 + $445d = TitleVBlankHandlerB.selected_u14 + $4460 = TitleVBlankHandlerB.done_u14 + $446a = TitleVBlankHandlerB.notselected_u15 + $446f = TitleVBlankHandlerB.selected_u15 + $4472 = TitleVBlankHandlerB.done_u15 + $447c = TitleVBlankHandlerB.notselected_u16 + $4481 = TitleVBlankHandlerB.selected_u16 + $4484 = TitleVBlankHandlerB.done_u16 + $44a3 = TitleVBlankHandlerB.vblankSettings + $44ad = TitleVBlankHandlerB.notselected_u17 + $44b2 = TitleVBlankHandlerB.selected_u17 + $44b5 = TitleVBlankHandlerB.done_u17 + $44bf = TitleVBlankHandlerB.notselected_u18 + $44c4 = TitleVBlankHandlerB.selected_u18 + $44c7 = TitleVBlankHandlerB.done_u18 + $44d1 = TitleVBlankHandlerB.notselected_u19 + $44d6 = TitleVBlankHandlerB.selected_u19 + $44d9 = TitleVBlankHandlerB.done_u19 + $44e3 = TitleVBlankHandlerB.notselected_u20 + $44e8 = TitleVBlankHandlerB.selected_u20 + $44eb = TitleVBlankHandlerB.done_u20 + $44f5 = TitleVBlankHandlerB.notselected_u21 + $44fa = TitleVBlankHandlerB.selected_u21 + $44fd = TitleVBlankHandlerB.done_u21 + $4507 = TitleVBlankHandlerB.notselected_u22 + $450c = TitleVBlankHandlerB.selected_u22 + $450f = TitleVBlankHandlerB.done_u22 + $4519 = TitleVBlankHandlerB.notselected_u23 + $451e = TitleVBlankHandlerB.selected_u23 + $4521 = TitleVBlankHandlerB.done_u23 + $452b = TitleVBlankHandlerB.notselected_u24 + $4530 = TitleVBlankHandlerB.selected_u24 + $4533 = TitleVBlankHandlerB.done_u24 + $453d = TitleVBlankHandlerB.notselected_u25 + $4542 = TitleVBlankHandlerB.selected_u25 + $4545 = TitleVBlankHandlerB.done_u25 + $45cf = TitleVBlankHandlerB.disabled1 + $45db = TitleVBlankHandlerB.buttons + $45f4 = TitleVBlankHandlerB.filter + $4618 = !2 + $4620 = TitleVBlankHandlerB.donetetry + $4646 = TitleVBlankHandlerB.vblankRecords + $4647 = TitleVBlankHandlerB.vblankCredits + $4648 = MainHandleA + $4656 = MainHandleA.jumps + $4668 = MainHandleA.tosettings + $466d = MainHandleA.tocredits + $4672 = MainHandleA.toprofile + $4677 = MainHandleA.torecords + $467c = MainHandleUp + $4688 = !3 + $468e = MainHandleDown + $469a = !4 + $469f = SettingsHandleA + $46ac = ProfileHandleB + $46ac = SettingsHandleB + $46b1 = SettingsHandleDown + $46bd = !5 + $46c2 = SettingsHandleUp + $46ce = !6 + $46d4 = SettingsHandleLeft + $46e5 = SettingsHandleLeft.jumps + $4700 = SettingsHandleLeft.buttons + $470f = !7 + $4718 = SettingsHandleLeft.rng + $4727 = !8 + $4730 = SettingsHandleLeft.rot + $473f = !9 + $4748 = SettingsHandleLeft.drop + $4757 = !10 + $4760 = SettingsHandleLeft.curve + $4772 = !11 + $477e = SettingsHandleLeft.hig + $478d = !12 + $4796 = SettingsHandleLeft.filter + $47a3 = !13 + $47ab = SettingsHandleRight + $47bc = SettingsHandleRight.jumps + $47d7 = SettingsHandleRight.buttons + $47e6 = !14 + $47ee = SettingsHandleRight.rng + $47fd = !15 + $4805 = SettingsHandleRight.rot + $4814 = !16 + $481c = SettingsHandleRight.drop + $482b = !17 + $4833 = SettingsHandleRight.curve + $4845 = !18 + $4850 = SettingsHandleRight.hig + $485f = !19 + $4867 = SettingsHandleRight.filter + $4874 = !20 + $487b = ProfileHandleA + $488f = ProfileHandleRight + $48a3 = ProfileHandleRight.jumps + $48b2 = ProfileHandleRight.idx + $48bb = ProfileHandleRight.doit + $48be = ProfileHandleRight.l0 + $48c8 = ProfileHandleRight.doit1 + $48cf = ProfileHandleRight.l1 + $48d9 = ProfileHandleRight.doit2 + $48e0 = ProfileHandleRight.l2 + $48ea = ProfileHandleRight.doit3 + $48f1 = ProfileHandleLeft + $4905 = ProfileHandleLeft.jumps + $4914 = ProfileHandleLeft.idx + $491e = ProfileHandleLeft.doit + $4921 = ProfileHandleLeft.l0 + $492b = ProfileHandleLeft.doit1 + $4932 = ProfileHandleLeft.l1 + $493c = ProfileHandleLeft.doit2 + $4943 = ProfileHandleLeft.l2 + $494d = ProfileHandleLeft.doit3 + $4954 = ProfileHandleDown + $4960 = !21 + $4965 = ProfileHandleUp + $4971 = !22 + $4977 = DecrementLevel + $498d = IncrementLevel + $49a3 = InitSpeedCurve + $49b2 = GetEnd + $49bd = !23 + $49c5 = !24 + $49cd = !25 + $49d5 = !26 + $49dd = !27 + $49e5 = !28 + $49e9 = GetStart + $49f4 = !29 + $49fc = !30 + $4a04 = !31 + $4a0c = !32 + $4a14 = !33 + $4a1c = !34 + $4a20 = CheckLevelRange + $4a39 = CheckLevelRange.notatend + $4a59 = CheckLevelRange.notatstart + $4a5a = RecordsHandleLeft + $4a71 = !35 + $4a79 = RecordsHandleRight + $4a90 = !36 + $4a97 = RecordsHandleSelect + $4aa0 = RenderScores + $4aa0 = !37 + $4acb = RenderScores.score_u26 + $4ad0 = RenderScores.wvr_u27 + $4add = RenderScores.wvr_u28 + $4aea = RenderScores.wvr_u29 + $4af7 = RenderScores.wvr_u30 + $4b04 = RenderScores.wvr_u31 + $4b11 = RenderScores.wvr_u32 + $4b1e = RenderScores.wvr_u33 + $4b2b = RenderScores.wvr_u34 + $4b35 = RenderScores.level_u26 + $4b42 = RenderScores.wvr_u35 + $4b4d = RenderScores.wvr_u36 + $4b58 = RenderScores.wvr_u37 + $4b63 = RenderScores.wvr_u38 + $4b70 = RenderScores.wvr_u39 + $4b7d = RenderScores.wvr_u40 + $4b8a = RenderScores.wvr_u41 + $4b97 = RenderScores.wvr_u42 + $4ba9 = RenderScores.name_u26 + $4bb0 = RenderScores.wvr_u43 + $4bbb = RenderScores.wvr_u44 + $4bc6 = RenderScores.wvr_u45 + $4bd8 = RenderScores.nograde_u26 + $4bdb = RenderScores.wvr_u46 + $4be5 = RenderScores.grade_u26 + $4be8 = RenderScores.wvr_u47 + $4bf0 = RenderScores.postgrade_u26 + $4bf5 = RenderScores.wvr_u48 + $4c02 = RenderScores.wvr_u49 + $4c0f = RenderScores.wvr_u50 + $4c1c = RenderScores.wvr_u51 + $4c39 = RenderScores.score_u52 + $4c3e = RenderScores.wvr_u53 + $4c4b = RenderScores.wvr_u54 + $4c58 = RenderScores.wvr_u55 + $4c65 = RenderScores.wvr_u56 + $4c72 = RenderScores.wvr_u57 + $4c7f = RenderScores.wvr_u58 + $4c8c = RenderScores.wvr_u59 + $4c99 = RenderScores.wvr_u60 + $4ca3 = RenderScores.level_u52 + $4cb0 = RenderScores.wvr_u61 + $4cbb = RenderScores.wvr_u62 + $4cc6 = RenderScores.wvr_u63 + $4cd1 = RenderScores.wvr_u64 + $4cde = RenderScores.wvr_u65 + $4ceb = RenderScores.wvr_u66 + $4cf8 = RenderScores.wvr_u67 + $4d05 = RenderScores.wvr_u68 + $4d17 = RenderScores.name_u52 + $4d1e = RenderScores.wvr_u69 + $4d29 = RenderScores.wvr_u70 + $4d34 = RenderScores.wvr_u71 + $4d46 = RenderScores.nograde_u52 + $4d49 = RenderScores.wvr_u72 + $4d53 = RenderScores.grade_u52 + $4d56 = RenderScores.wvr_u73 + $4d5e = RenderScores.postgrade_u52 + $4d63 = RenderScores.wvr_u74 + $4d70 = RenderScores.wvr_u75 + $4d7d = RenderScores.wvr_u76 + $4d8a = RenderScores.wvr_u77 + $4da7 = RenderScores.score_u78 + $4dac = RenderScores.wvr_u79 + $4db9 = RenderScores.wvr_u80 + $4dc6 = RenderScores.wvr_u81 + $4dd3 = RenderScores.wvr_u82 + $4de0 = RenderScores.wvr_u83 + $4ded = RenderScores.wvr_u84 + $4dfa = RenderScores.wvr_u85 + $4e07 = RenderScores.wvr_u86 + $4e11 = RenderScores.level_u78 + $4e1e = RenderScores.wvr_u87 + $4e29 = RenderScores.wvr_u88 + $4e34 = RenderScores.wvr_u89 + $4e3f = RenderScores.wvr_u90 + $4e4c = RenderScores.wvr_u91 + $4e59 = RenderScores.wvr_u92 + $4e66 = RenderScores.wvr_u93 + $4e73 = RenderScores.wvr_u94 + $4e85 = RenderScores.name_u78 + $4e8c = RenderScores.wvr_u95 + $4e97 = RenderScores.wvr_u96 + $4ea2 = RenderScores.wvr_u97 + $4eb4 = RenderScores.nograde_u78 + $4eb7 = RenderScores.wvr_u98 + $4ec1 = RenderScores.grade_u78 + $4ec4 = RenderScores.wvr_u99 + $4ecc = RenderScores.postgrade_u78 + $4ed1 = RenderScores.wvr_u100 + $4ede = RenderScores.wvr_u101 + $4eeb = RenderScores.wvr_u102 + $4ef8 = RenderScores.wvr_u103 + $4f15 = RenderScores.score_u104 + $4f1a = RenderScores.wvr_u105 + $4f27 = RenderScores.wvr_u106 + $4f34 = RenderScores.wvr_u107 + $4f41 = RenderScores.wvr_u108 + $4f4e = RenderScores.wvr_u109 + $4f5b = RenderScores.wvr_u110 + $4f68 = RenderScores.wvr_u111 + $4f75 = RenderScores.wvr_u112 + $4f7f = RenderScores.level_u104 + $4f8c = RenderScores.wvr_u113 + $4f97 = RenderScores.wvr_u114 + $4fa2 = RenderScores.wvr_u115 + $4fad = RenderScores.wvr_u116 + $4fba = RenderScores.wvr_u117 + $4fc7 = RenderScores.wvr_u118 + $4fd4 = RenderScores.wvr_u119 + $4fe1 = RenderScores.wvr_u120 + $4ff3 = RenderScores.name_u104 + $4ffa = RenderScores.wvr_u121 + $5005 = RenderScores.wvr_u122 + $5010 = RenderScores.wvr_u123 + $5022 = RenderScores.nograde_u104 + $5025 = RenderScores.wvr_u124 + $502f = RenderScores.grade_u104 + $5032 = RenderScores.wvr_u125 + $503a = RenderScores.postgrade_u104 + $503f = RenderScores.wvr_u126 + $504c = RenderScores.wvr_u127 + $5059 = RenderScores.wvr_u128 + $5066 = RenderScores.wvr_u129 + $5083 = RenderScores.score_u130 + $5088 = RenderScores.wvr_u131 + $5095 = RenderScores.wvr_u132 + $50a2 = RenderScores.wvr_u133 + $50af = RenderScores.wvr_u134 + $50bc = RenderScores.wvr_u135 + $50c9 = RenderScores.wvr_u136 + $50d6 = RenderScores.wvr_u137 + $50e3 = RenderScores.wvr_u138 + $50ed = RenderScores.level_u130 + $50fa = RenderScores.wvr_u139 + $5105 = RenderScores.wvr_u140 + $5110 = RenderScores.wvr_u141 + $511b = RenderScores.wvr_u142 + $5128 = RenderScores.wvr_u143 + $5135 = RenderScores.wvr_u144 + $5142 = RenderScores.wvr_u145 + $514f = RenderScores.wvr_u146 + $5161 = RenderScores.name_u130 + $5168 = RenderScores.wvr_u147 + $5173 = RenderScores.wvr_u148 + $517e = RenderScores.wvr_u149 + $5190 = RenderScores.nograde_u130 + $5193 = RenderScores.wvr_u150 + $519d = RenderScores.grade_u130 + $51a0 = RenderScores.wvr_u151 + $51a8 = RenderScores.postgrade_u130 + $51ad = RenderScores.wvr_u152 + $51ba = RenderScores.wvr_u153 + $51c7 = RenderScores.wvr_u154 + $51d4 = RenderScores.wvr_u155 + $51f1 = RenderScores.score_u156 + $51f6 = RenderScores.wvr_u157 + $5203 = RenderScores.wvr_u158 + $5210 = RenderScores.wvr_u159 + $521d = RenderScores.wvr_u160 + $522a = RenderScores.wvr_u161 + $5237 = RenderScores.wvr_u162 + $5244 = RenderScores.wvr_u163 + $5251 = RenderScores.wvr_u164 + $525b = RenderScores.level_u156 + $5268 = RenderScores.wvr_u165 + $5273 = RenderScores.wvr_u166 + $527e = RenderScores.wvr_u167 + $5289 = RenderScores.wvr_u168 + $5296 = RenderScores.wvr_u169 + $52a3 = RenderScores.wvr_u170 + $52b0 = RenderScores.wvr_u171 + $52bd = RenderScores.wvr_u172 + $52cf = RenderScores.name_u156 + $52d6 = RenderScores.wvr_u173 + $52e1 = RenderScores.wvr_u174 + $52ec = RenderScores.wvr_u175 + $52fe = RenderScores.nograde_u156 + $5301 = RenderScores.wvr_u176 + $530b = RenderScores.grade_u156 + $530e = RenderScores.wvr_u177 + $5316 = RenderScores.postgrade_u156 + $531b = RenderScores.wvr_u178 + $5328 = RenderScores.wvr_u179 + $5335 = RenderScores.wvr_u180 + $5342 = RenderScores.wvr_u181 + $535f = RenderScores.score_u182 + $5364 = RenderScores.wvr_u183 + $5371 = RenderScores.wvr_u184 + $537e = RenderScores.wvr_u185 + $538b = RenderScores.wvr_u186 + $5398 = RenderScores.wvr_u187 + $53a5 = RenderScores.wvr_u188 + $53b2 = RenderScores.wvr_u189 + $53bf = RenderScores.wvr_u190 + $53c9 = RenderScores.level_u182 + $53d6 = RenderScores.wvr_u191 + $53e1 = RenderScores.wvr_u192 + $53ec = RenderScores.wvr_u193 + $53f7 = RenderScores.wvr_u194 + $5404 = RenderScores.wvr_u195 + $5411 = RenderScores.wvr_u196 + $541e = RenderScores.wvr_u197 + $542b = RenderScores.wvr_u198 + $543d = RenderScores.name_u182 + $5444 = RenderScores.wvr_u199 + $544f = RenderScores.wvr_u200 + $545a = RenderScores.wvr_u201 + $546c = RenderScores.nograde_u182 + $546f = RenderScores.wvr_u202 + $5479 = RenderScores.grade_u182 + $547c = RenderScores.wvr_u203 + $5484 = RenderScores.postgrade_u182 + $5489 = RenderScores.wvr_u204 + $5496 = RenderScores.wvr_u205 + $54a3 = RenderScores.wvr_u206 + $54b0 = RenderScores.wvr_u207 + $54cd = RenderScores.score_u208 + $54d2 = RenderScores.wvr_u209 + $54df = RenderScores.wvr_u210 + $54ec = RenderScores.wvr_u211 + $54f9 = RenderScores.wvr_u212 + $5506 = RenderScores.wvr_u213 + $5513 = RenderScores.wvr_u214 + $5520 = RenderScores.wvr_u215 + $552d = RenderScores.wvr_u216 + $5537 = RenderScores.level_u208 + $5544 = RenderScores.wvr_u217 + $554f = RenderScores.wvr_u218 + $555a = RenderScores.wvr_u219 + $5565 = RenderScores.wvr_u220 + $5572 = RenderScores.wvr_u221 + $557f = RenderScores.wvr_u222 + $558c = RenderScores.wvr_u223 + $5599 = RenderScores.wvr_u224 + $55ab = RenderScores.name_u208 + $55b2 = RenderScores.wvr_u225 + $55bd = RenderScores.wvr_u226 + $55c8 = RenderScores.wvr_u227 + $55da = RenderScores.nograde_u208 + $55dd = RenderScores.wvr_u228 + $55e7 = RenderScores.grade_u208 + $55ea = RenderScores.wvr_u229 + $55f2 = RenderScores.postgrade_u208 + $55f7 = RenderScores.wvr_u230 + $5604 = RenderScores.wvr_u231 + $5611 = RenderScores.wvr_u232 + $561e = RenderScores.wvr_u233 + $563b = RenderScores.score_u234 + $5640 = RenderScores.wvr_u235 + $564d = RenderScores.wvr_u236 + $565a = RenderScores.wvr_u237 + $5667 = RenderScores.wvr_u238 + $5674 = RenderScores.wvr_u239 + $5681 = RenderScores.wvr_u240 + $568e = RenderScores.wvr_u241 + $569b = RenderScores.wvr_u242 + $56a5 = RenderScores.level_u234 + $56b2 = RenderScores.wvr_u243 + $56bd = RenderScores.wvr_u244 + $56c8 = RenderScores.wvr_u245 + $56d3 = RenderScores.wvr_u246 + $56e0 = RenderScores.wvr_u247 + $56ed = RenderScores.wvr_u248 + $56fa = RenderScores.wvr_u249 + $5707 = RenderScores.wvr_u250 + $5719 = RenderScores.name_u234 + $5720 = RenderScores.wvr_u251 + $572b = RenderScores.wvr_u252 + $5736 = RenderScores.wvr_u253 + $5748 = RenderScores.nograde_u234 + $574b = RenderScores.wvr_u254 + $5755 = RenderScores.grade_u234 + $5758 = RenderScores.wvr_u255 + $5760 = RenderScores.postgrade_u234 + $5765 = RenderScores.wvr_u256 + $5772 = RenderScores.wvr_u257 + $577f = RenderScores.wvr_u258 + $578c = RenderScores.wvr_u259 + $57a9 = RenderScores.score_u260 + $57ae = RenderScores.wvr_u261 + $57bb = RenderScores.wvr_u262 + $57c8 = RenderScores.wvr_u263 + $57d5 = RenderScores.wvr_u264 + $57e2 = RenderScores.wvr_u265 + $57ef = RenderScores.wvr_u266 + $57fc = RenderScores.wvr_u267 + $5809 = RenderScores.wvr_u268 + $5813 = RenderScores.level_u260 + $5820 = RenderScores.wvr_u269 + $582b = RenderScores.wvr_u270 + $5836 = RenderScores.wvr_u271 + $5841 = RenderScores.wvr_u272 + $584e = RenderScores.wvr_u273 + $585b = RenderScores.wvr_u274 + $5868 = RenderScores.wvr_u275 + $5875 = RenderScores.wvr_u276 + $5887 = RenderScores.name_u260 + $588e = RenderScores.wvr_u277 + $5899 = RenderScores.wvr_u278 + $58a4 = RenderScores.wvr_u279 + $58b6 = RenderScores.nograde_u260 + $58b9 = RenderScores.wvr_u280 + $58c3 = RenderScores.grade_u260 + $58c6 = RenderScores.wvr_u281 + $58ce = RenderScores.postgrade_u260 + $58d3 = RenderScores.wvr_u282 + $58e0 = RenderScores.wvr_u283 + $58ed = RenderScores.wvr_u284 + $58fa = RenderScores.wvr_u285 + SECTION: $5911-$692c ($101c bytes) ["Title Screen Static Data"] + $5911 = sEasterM0 + $5916 = sEasterM1 + $591b = sEasterC0 + $5926 = sEasterC1 + $5931 = sEasterA0 + $593c = sEasterA1 + $5947 = sEasterS0 + $594c = sEasterS1 + $5951 = sBUTTONSMode + $5959 = sRNGMode + $596d = sROTMode + $597d = sDROPMode + $5991 = sCURVEMode + $59ad = sHIGMode + $59b5 = sDisabled + $59b9 = sFilterMode + $59cd = sTetryButtons + $5a0d = sTetryRNG + $5a4d = sTetryROT + $5a8d = sTetryDROP + $5acd = sTetryCURVE + $5b0d = sTetryHIG + $5b4d = sTetrySTART + $5b8d = sTetryFILTER + $5bcd = sTetryEXIT + $5c0d = sTitleScreenMainMap + $5ead = sTitleScreenSettingsMap + $5ead = sTitleScreenMainMapEnd + $614d = sTitleScreenCreditsMap + $614d = sTitleScreenSettingsMapEnd + $63ed = sTitleScreenProfileMap + $63ed = sTitleScreenCreditsMapEnd + $668d = sTitleScreenRecordsMap + $668d = sTitleScreenProfileMapEnd + $692d = sTitleScreenRecordsMapEnd + EMPTY: $692d-$7fff ($16d3 bytes) + TOTAL EMPTY: $16d3 bytes ROMX bank #5: SECTION: $4000-$4007 ($0008 bytes) ["Bank ID BANK_GAMEPLAY"] @@ -2661,7 +2928,8 @@ SRAM bank #0: $a00e = rSpeedCurveState $a00f = rAlways20GState $a010 = rSelectedStartLevel - $a012 = rUnused + $a012 = rFilterMode + $a013 = rUnused $a047 = rProfileData0 $a047 = rProfileName0 $a04a = rSwapABState0 @@ -2671,7 +2939,8 @@ SRAM bank #0: $a04e = rSpeedCurveState0 $a04f = rAlways20GState0 $a050 = rSelectedStartLevel0 - $a052 = rUnused0 + $a052 = rFilterMode0 + $a053 = rUnused0 $a087 = rProfileData1 $a087 = rProfileName1 $a08a = rSwapABState1 @@ -2681,7 +2950,8 @@ SRAM bank #0: $a08e = rSpeedCurveState1 $a08f = rAlways20GState1 $a090 = rSelectedStartLevel1 - $a092 = rUnused1 + $a092 = rFilterMode1 + $a093 = rUnused1 $a0c7 = rProfileData2 $a0c7 = rProfileName2 $a0ca = rSwapABState2 @@ -2691,7 +2961,8 @@ SRAM bank #0: $a0ce = rSpeedCurveState2 $a0cf = rAlways20GState2 $a0d0 = rSelectedStartLevel2 - $a0d2 = rUnused2 + $a0d2 = rFilterMode2 + $a0d3 = rUnused2 $a107 = rProfileData3 $a107 = rProfileName3 $a10a = rSwapABState3 @@ -2701,7 +2972,8 @@ SRAM bank #0: $a10e = rSpeedCurveState3 $a10f = rAlways20GState3 $a110 = rSelectedStartLevel3 - $a112 = rUnused3 + $a112 = rFilterMode3 + $a113 = rUnused3 $a147 = rProfileData4 $a147 = rProfileName4 $a14a = rSwapABState4 @@ -2711,7 +2983,8 @@ SRAM bank #0: $a14e = rSpeedCurveState4 $a14f = rAlways20GState4 $a150 = rSelectedStartLevel4 - $a152 = rUnused4 + $a152 = rFilterMode4 + $a153 = rUnused4 $a187 = rProfileData5 $a187 = rProfileName5 $a18a = rSwapABState5 @@ -2721,7 +2994,8 @@ SRAM bank #0: $a18e = rSpeedCurveState5 $a18f = rAlways20GState5 $a190 = rSelectedStartLevel5 - $a192 = rUnused5 + $a192 = rFilterMode5 + $a193 = rUnused5 $a1c7 = rProfileData6 $a1c7 = rProfileName6 $a1ca = rSwapABState6 @@ -2731,7 +3005,8 @@ SRAM bank #0: $a1ce = rSpeedCurveState6 $a1cf = rAlways20GState6 $a1d0 = rSelectedStartLevel6 - $a1d2 = rUnused6 + $a1d2 = rFilterMode6 + $a1d3 = rUnused6 $a207 = rProfileData7 $a207 = rProfileName7 $a20a = rSwapABState7 @@ -2741,7 +3016,8 @@ SRAM bank #0: $a20e = rSpeedCurveState7 $a20f = rAlways20GState7 $a210 = rSelectedStartLevel7 - $a212 = rUnused7 + $a212 = rFilterMode7 + $a213 = rUnused7 $a247 = rProfileData8 $a247 = rProfileName8 $a24a = rSwapABState8 @@ -2751,7 +3027,8 @@ SRAM bank #0: $a24e = rSpeedCurveState8 $a24f = rAlways20GState8 $a250 = rSelectedStartLevel8 - $a252 = rUnused8 + $a252 = rFilterMode8 + $a253 = rUnused8 $a287 = rProfileData9 $a287 = rProfileName9 $a28a = rSwapABState9 @@ -2761,7 +3038,8 @@ SRAM bank #0: $a28e = rSpeedCurveState9 $a28f = rAlways20GState9 $a290 = rSelectedStartLevel9 - $a292 = rUnused9 + $a292 = rFilterMode9 + $a293 = rUnused9 $a2c7 = rScoreTableDMGT $a407 = rScoreTableTGM1 $a547 = rScoreTableTGM3 @@ -2992,33 +3270,34 @@ HRAM bank #0: SECTION: $ffdd-$ffe6 ($000a bytes) ["OAM DMA"] $ffdd = hOAMDMA $ffe3 = !0 - SECTION: $ffe7-$ffef ($0009 bytes) ["High SFX Variables"] - $ffe7 = hPlayhead - $ffe9 = hCurrentlyPlaying - $ffea = hPlayQueue - $ffee = hNoisePlayhead - SECTION: $fff0-$fff7 ($0008 bytes) ["High Input Variables"] - $fff0 = hUpState - $fff1 = hDownState - $fff2 = hLeftState - $fff3 = hRightState - $fff4 = hAState - $fff5 = hBState - $fff6 = hStartState - $fff7 = hSelectState - SECTION: $fff8-$fff9 ($0002 bytes) ["High Time Variables"] - $fff8 = hFrameCtr - $fff9 = hEvenFrame - SECTION: $fffa-$fffa ($0001 byte) ["High Globals"] - $fffa = hGameState - SECTION: $fffb-$fffb ($0001 byte) ["High Interrupt Variables"] - $fffb = hLCDCCtr - EMPTY: $fffc-$fffe ($0003 bytes) - TOTAL EMPTY: $0003 bytes + SECTION: $ffe7-$ffef ($0009 bytes) ["High Input Variables"] + $ffe7 = hUpState + $ffe8 = hDownState + $ffe9 = hLeftState + $ffea = hRightState + $ffeb = hAState + $ffec = hBState + $ffed = hStartState + $ffee = hSelectState + $ffef = hFilterMode + SECTION: $fff0-$fff8 ($0009 bytes) ["High SFX Variables"] + $fff0 = hPlayhead + $fff2 = hCurrentlyPlaying + $fff3 = hPlayQueue + $fff7 = hNoisePlayhead + SECTION: $fff9-$fffa ($0002 bytes) ["High Time Variables"] + $fff9 = hFrameCtr + $fffa = hEvenFrame + SECTION: $fffb-$fffb ($0001 byte) ["High Globals"] + $fffb = hGameState + SECTION: $fffc-$fffc ($0001 byte) ["High Interrupt Variables"] + $fffc = hLCDCCtr + EMPTY: $fffd-$fffe ($0002 bytes) + TOTAL EMPTY: $0002 bytes SUMMARY: - ROM0: 15250 bytes used / 1134 free - ROMX: 66671 bytes used / 31633 free in 6 banks + ROM0: 15372 bytes used / 1012 free + ROMX: 68830 bytes used / 29474 free in 6 banks SRAM: 2951 bytes used / 5241 free in 1 bank WRAM0: 3909 bytes used / 187 free - HRAM: 124 bytes used / 3 free + HRAM: 125 bytes used / 2 free diff --git a/bin/DMGTRIS.pocket b/bin/DMGTRIS.pocket index 97df7f8..4782536 100644 Binary files a/bin/DMGTRIS.pocket and b/bin/DMGTRIS.pocket differ diff --git a/bin/DMGTRIS.sym b/bin/DMGTRIS.sym index 50ecfea..2c445b9 100644 --- a/bin/DMGTRIS.sym +++ b/bin/DMGTRIS.sym @@ -155,307 +155,315 @@ 00:1d55 GradeRendering.gmgrade 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 +00:1de7 TrustedLoad.jumps +00:1dff TrustedLoad.dmgt +00:1e05 TrustedLoad.tgm1 +00:1e0b TrustedLoad.tgm3 +00:1e11 TrustedLoad.deat +00:1e17 TrustedLoad.shir +00:1e1d TrustedLoad.chil +00:1e23 TrustedLoad.myco +00:1e29 TrustedLoad.search +00:1e3b TrustedLoad.notfound +00:1e42 TrustedLoad.fallback +00:1e5d InitializeSRAM +00:1fb7 ResetScores +00:1fc5 ResetScores.jumps +00:1fda ResetScores.dmgt +00:1fe6 ResetScores.tgm1 +00:1ff2 ResetScores.tgm3 +00:1ffe ResetScores.deat +00:200a ResetScores.shir +00:2016 ResetScores.chil +00:2022 ResetScores.myco +00:202e NextProfile +00:2037 NextProfile.update +00:203a ChangeProfile +00:203a ChangeProfile.backup +00:2069 ChangeProfile.first +00:2077 ChangeProfile.second +00:2085 ChangeProfile.third +00:2093 ChangeProfile.fourth +00:20a1 ChangeProfile.fifth +00:20af ChangeProfile.sixth +00:20bd ChangeProfile.seventh +00:20cb ChangeProfile.eighth +00:20d9 ChangeProfile.ninth +00:20e7 ChangeProfile.tenth +00:20f5 ChangeProfile.restore +00:2125 ChangeProfile.lfirst +00:2134 ChangeProfile.lsecond +00:2143 ChangeProfile.lthird +00:2152 ChangeProfile.lfourth +00:2161 ChangeProfile.lfifth +00:2170 ChangeProfile.lsixth +00:217f ChangeProfile.lseventh +00:218e ChangeProfile.leighth +00:219d ChangeProfile.lninth +00:21ac ChangeProfile.ltenth +00:21bb ResetProfile +00:221e GradeInit +00:2252 GradeInit.grade9start +00:2257 GradeInit.end +00:2259 UpdateGrade +00:2267 UpdateGrade.gradejumptable +00:227c DecayGradeProcess +00:228a DecayGradeProcess.gradejumptable +00:229f DecayGradeDelay +00:22ad DecayGradeDelay.gradejumptable +00:22c2 PrepareScore +00:22d5 DrawGradeProgressDMGT +00:22f0 UpdateGradeDMGT +00:2329 UpdateGradeDMGT.checklineclears +00:2343 UpdateGradeDMGT.clearrate +00:2354 UpdateGradeDMGT.combomult +00:2361 UpdateGradeDMGT.combo13 +00:2372 UpdateGradeDMGT.combo8 +00:2383 UpdateGradeDMGT.combo1 +00:2392 UpdateGradeDMGT.prelevel +00:23a1 UpdateGradeDMGT.single +00:23b1 UpdateGradeDMGT.double +00:23c2 UpdateGradeDMGT.adddonce +00:23c6 UpdateGradeDMGT.triple +00:23d7 UpdateGradeDMGT.addtonce +00:23db UpdateGradeDMGT.tetris +00:23df UpdateGradeDMGT.levelmult +00:23f7 UpdateGradeDMGT.mult4 +00:23fd UpdateGradeDMGT.mult3 +00:2402 UpdateGradeDMGT.mult2 +00:2406 UpdateGradeDMGT.mult1 +00:2407 UpdateGradeDMGT.processgrade +00:2430 UpdateGradeDMGT.increasegrademaybe +00:2454 UpdateGradeDMGT.gotgm +00:2462 DecayGradeDMGT +00:2486 DecayGradeDMGT.nodecay +00:248d DecayGradeDMGT.decay +00:249b UpdateGradeTGM1 +00:24ac UpdateGradeTGM1.trygradeup +00:24c7 UpdateGradeTGM1.increasegrade +00:24dc UpdateGradeTGM1.skipjingle +00:24e8 UpdateGradeTGM1.check300 +00:2507 UpdateGradeTGM1.success300 +00:250e UpdateGradeTGM1.fail300 +00:2515 UpdateGradeTGM1.check500 +00:2534 UpdateGradeTGM1.success500 +00:253b UpdateGradeTGM1.fail500 +00:2542 UpdateGradeTGM1.check999 +00:257a UpdateGradeTGM1.success999 +00:2592 UpdateGradeTGM1.fail999 +00:2598 UpdateGradeDEAT +00:25a4 UpdateGradeDEAT.notgm +00:25c0 UpdateGradeDEAT.notm +00:25e3 UpdateGradeDEAT.disqualify +00:2601 UpdateGradeSHIR +00:2644 UpdateGradeSHIR.s5torikan +00:2654 UpdateGradeSHIR.s10torikan +00:2663 UpdateGradeSHIR.disqualify +00:2672 UpdateGradeSHIR.l1000 +00:2688 UpdateGradeSHIR.l500 +00:269e LevelInit +00:2703 SpecialLevelInit +00:2711 SpecialLevelInit.jumps +00:2726 SpecialLevelInit.dmgt +00:272b SpecialLevelInit.tgm1 +00:2730 SpecialLevelInit.tgm3 +00:2735 SpecialLevelInit.deat +00:273a SpecialLevelInit.shir +00:273f SpecialLevelInit.chil +00:2744 SpecialLevelInit.myco +00:2749 SpecialLevelInit.loaddata +00:277e LevelUp +00:27a8 LevelUp.doit +00:27ea LevelUp.checknlevel +00:283c LevelUp.bellmaybe +00:2858 LevelUp.leveljinglemaybe +00:2868 LevelUp.checkspeedup +00:28a7 DoSpeedUp +00:28e8 CheckSpecialLevelConditions +00:2919 CheckSpecialLevelConditions.override +00:2934 CheckSpecialLevelConditions.nooverride +00:293a CheckSpecialLevelConditions.speciallock +00:295e CheckSpecialLevelConditions.bones +00:2973 CheckSpecialLevelConditions.enterthebonezone +00:2978 CheckSpecialLevelConditions.invis +00:298d CheckSpecialLevelConditions.vanishoxyaction +00:2992 CheckSpecialLevelConditions.killscreen +00:29a3 CheckSpecialLevelConditions.rip +00:29d3 CheckSpecialLevelConditions.staffroll +00:29e1 CheckSpecialLevelConditions.justkill +00:29f5 TriggerKillScreen +00:2a17 sTGM1GradeScores +00:2a39 sTGM3InternalGradeSystem +00:2ad9 sTGM3GradeBoosts +00:2af8 sTGM3LevelMultiplier +00:2afc sTGM3BaselineCOOL +00:2b05 sTGM3REGRETConditions +00:2b19 sDMGTGrading +00:2bcd sDMGTGaugeLUT +00:2ccd SFXInit +00:2cef SFXPopQueue +00:2d04 SFXPushQueue +00:2d15 SFXProcessQueue +00:2d43 SFXTriggerNoise +00:2d69 SFXEnqueue +00:2d7e SFXEnqueue.findsfx +00:2ed8 SFXKill +00:2f0b SFXPlayNoise +00:2f16 SFXPlayNoise.noisereg +00:2f2d SFXPlayNoise.savenoiseplayhead +00:2f36 SFXPlay +00:2f44 SFXPlay.play +00:2f50 SFXPlay.getRegister +00:2f64 SFXPlay.savePlayhead +00:2f6d HarvestEntropy +00:2f73 HarvestEntropy.loop +00:2f94 RNGInit +00:2ffa RNGInit.complexinit +00:302c ShiftHistory +00:3049 GetNextHellPiece +00:304e GetNextTGM1Piece +00:306b GetNextTGM2Piece +00:3088 GetNextNesPiece +00:3096 GetNextTGM3Piece +00:314d GetNextPiece +00:315b GetNextPiece.nextpiecejumps +00:316a Next35Piece +00:3174 Next7Piece +00:317e NextByte +00:319e CheckAndAddHiscore +00:31a8 CheckAndAddHiscore.checkloop +00:31ad CheckAndAddHiscore.checkgrade +00:31b6 CheckAndAddHiscore.oldgraded +00:31c1 CheckAndAddHiscore.oldungraded +00:31c8 CheckAndAddHiscore.checklevel +00:31ed CheckAndAddHiscore.checkscore +00:3230 CheckAndAddHiscore.notbetter +00:323d CheckAndAddHiscore.better +00:323f InsertHiScore +00:323f InsertHiScore.copylower +00:3250 InsertHiScore.copyupper +00:3271 InsertHiScore.findrow +00:3282 InsertHiScore.insert +00:32db InsertHiScore.persist +00:32ec GetHiScoreEntry +00:3305 GetHiScoreEntry.store +00:330e InitTargetHSTable +00:3319 InitTargetHSTable.jumps +00:332e InitTargetHSTable.dmgt +00:3333 InitTargetHSTable.tgm1 +00:3338 InitTargetHSTable.tgm3 +00:333d InitTargetHSTable.deat +00:3342 InitTargetHSTable.shir +00:3347 InitTargetHSTable.chil +00:334c InitTargetHSTable.myco +00:334f InitTargetHSTable.store +00:3362 sProgressData +00:34ac sHiscoreDefaultData +00:35ec InputInit +00:35fe GetInput +00:35fe GetInput.btns +00:360b GetInput.readA +00:360f GetInput.setA +00:361a GetInput.clearA +00:361d GetInput.readB +00:3621 GetInput.setB +00:362c GetInput.clearB +00:362f GetInput.readSelect +00:3633 GetInput.setSelect +00:363e GetInput.clearSelect +00:3641 GetInput.readStart +00:3645 GetInput.setStart +00:3650 GetInput.clearStart +00:3653 GetInput.dpad +00:3660 GetInput.readUp +00:3664 GetInput.setUp +00:366f GetInput.clearUp +00:3672 GetInput.readDown +00:3676 GetInput.setDown +00:3681 GetInput.clearDown +00:3684 GetInput.readLeft +00:3688 GetInput.setLeft +00:3693 GetInput.clearLeft +00:3696 GetInput.readRight +00:369a GetInput.setRight +00:36a5 GetInput.clearRight +00:36a8 GetInput.priorities +00:36b5 GetInput.jumps +00:36c4 GetInput.dlru +00:36d7 GetInput.ulrd +00:36ea GetInput.lrud +00:36f7 GetInput.udlr +00:3704 GetInput.zeroud +00:370a GetInput.zerolr +00:3710 GetInput.zerolrd +00:3718 GetInput.zerolru +00:3720 ScoreInit +00:3748 IncreaseScore +00:3780 IncreaseScore.doConvert +00:3798 IncreaseScore.carry +00:379a IncreaseScore.postConvert +00:37ae IncreaseScore.preAddDigit +00:37d6 IncreaseScore.addDigit +00:37ec IncreaseScore.nextDigit +00:3800 SwitchToTitle +00:3809 TitleEventLoopHandler +00:3813 TitleVBlankHandler +00:381d PersistLevel +00:382b DrawSpeedMain +00:387b DrawSpeedSettings +00:38cb TimeInit +00:38eb StartCountdown +00:38f9 ResetGameTime +00:3904 CheckTorikan +00:391b CheckTorikan.failure +00:391d CheckTorikan.success +00:3920 HandleTimers +00:3946 HandleTimers.reduce +00:3953 HandleTimers.clock +00:396d HandleTimers.go +00:3991 SetProgress +00:399c SetProgress.loop +00:39a0 SetProgress.correct +00:39c7 SetProgress.wvr_u1 +00:39d3 SetProgress.wvr_u2 +00:39e1 SetProgress.wvr_u3 +00:39ed SetProgress.wvr_u4 +00:39fb SetProgress.wvr_u5 +00:3a07 SetProgress.wvr_u6 +00:3a15 SetProgress.wvr_u7 +00:3a21 SetProgress.wvr_u8 +00:3a2f SetProgress.wvr_u9 +00:3a3b SetProgress.wvr_u10 +00:3a43 Main +00:3a6c Main.notgbc +00:3a72 Main.wvr_u1 +00:3a99 EventLoop +00:3aaf EventLoop.eventloopjumps +00:3ab8 EventLoopPostHandler +00:3aba EventLoopPostHandler.wvb_u2 +00:3acc EventLoopPostHandler.vblankjumps +00:3ad5 LoadTitleTiles +00:3af3 LoadGameplayTiles +00:3b09 LoadGameplayTiles.gbc +00:3b18 LoadGameplayTiles.dmg +00:3b27 sFramesToCS +00:3b63 UnsafeMemCopy +00:3b6c SafeMemCopy.wvr_u1 +00:3b6c SafeMemCopy +00:3b7b UnsafeMemSet +00:3b83 SafeMemSet +00:3b83 SafeMemSet.wvr_u2 +00:3b91 SwitchToGameplay +00:3b9a SwitchToGameplayBig +00:3ba3 GamePlayEventLoopHandler +00:3bad GamePlayBigEventLoopHandler +00:3bb7 EnableScreenSquish +00:3bd1 DisableScreenSquish +00:3bdc CopyOAMHandler +00:3be8 ClearOAM +00:3bfe BankingInit +00:3c0d OAMDMA +00:3c17 OAMDMAEnd 01:4008 sDMGTSpeedCurve 01:4203 sDMGTSpeedCurveEnd 01:4205 sDMGTSpeedCurveSpecialData @@ -550,253 +558,510 @@ 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 +04:415b SwitchTitleMode.switchCredits +04:416f TitleEventLoopHandlerB +04:417d TitleEventLoopHandlerB.jumps +04:418c TitleEventLoopHandlerB.eventLoopMain +04:41b6 TitleEventLoopHandlerB.d0 +04:41ca TitleEventLoopHandlerB.eventLoopProfile +04:41f4 TitleEventLoopHandlerB.d2 +04:4209 TitleEventLoopHandlerB.l2 +04:421e TitleEventLoopHandlerB.r2 +04:4233 TitleEventLoopHandlerB.eventLoopSettings +04:425d TitleEventLoopHandlerB.d1 +04:4272 TitleEventLoopHandlerB.l1 +04:4287 TitleEventLoopHandlerB.r1 +04:429b TitleEventLoopHandlerB.eventLoopRecords +04:42cf TitleEventLoopHandlerB.eventLoopCredits +04:42e5 TitleEventLoopHandlerB.quitrecords +04:42e5 TitleEventLoopHandlerB.quitcredits +04:42ea TitleVBlankHandlerB +04:42f8 TitleVBlankHandlerB.jumps +04:4307 TitleVBlankHandlerB.vblankMain +04:4311 TitleVBlankHandlerB.notselected_u5 +04:4316 TitleVBlankHandlerB.selected_u5 +04:4319 TitleVBlankHandlerB.done_u5 +04:4323 TitleVBlankHandlerB.notselected_u6 +04:4328 TitleVBlankHandlerB.selected_u6 +04:432b TitleVBlankHandlerB.done_u6 +04:4335 TitleVBlankHandlerB.notselected_u7 +04:433a TitleVBlankHandlerB.selected_u7 +04:433d TitleVBlankHandlerB.done_u7 +04:4347 TitleVBlankHandlerB.notselected_u8 +04:434c TitleVBlankHandlerB.selected_u8 +04:434f TitleVBlankHandlerB.done_u8 +04:4359 TitleVBlankHandlerB.notselected_u9 +04:435e TitleVBlankHandlerB.selected_u9 +04:4361 TitleVBlankHandlerB.done_u9 +04:436b TitleVBlankHandlerB.notselected_u10 +04:4370 TitleVBlankHandlerB.selected_u10 +04:4373 TitleVBlankHandlerB.done_u10 +04:43fd TitleVBlankHandlerB.disabled +04:4409 TitleVBlankHandlerB.profile +04:4418 TitleVBlankHandlerB.vblankProfile +04:4422 TitleVBlankHandlerB.notselected_u11 +04:4427 TitleVBlankHandlerB.selected_u11 +04:442a TitleVBlankHandlerB.done_u11 +04:4434 TitleVBlankHandlerB.notselected_u12 +04:4439 TitleVBlankHandlerB.selected_u12 +04:443c TitleVBlankHandlerB.done_u12 +04:4446 TitleVBlankHandlerB.notselected_u13 +04:444b TitleVBlankHandlerB.selected_u13 +04:444e TitleVBlankHandlerB.done_u13 +04:4458 TitleVBlankHandlerB.notselected_u14 +04:445d TitleVBlankHandlerB.selected_u14 +04:4460 TitleVBlankHandlerB.done_u14 +04:446a TitleVBlankHandlerB.notselected_u15 +04:446f TitleVBlankHandlerB.selected_u15 +04:4472 TitleVBlankHandlerB.done_u15 +04:447c TitleVBlankHandlerB.notselected_u16 +04:4481 TitleVBlankHandlerB.selected_u16 +04:4484 TitleVBlankHandlerB.done_u16 +04:44a3 TitleVBlankHandlerB.vblankSettings +04:44ad TitleVBlankHandlerB.notselected_u17 +04:44b2 TitleVBlankHandlerB.selected_u17 +04:44b5 TitleVBlankHandlerB.done_u17 +04:44bf TitleVBlankHandlerB.notselected_u18 +04:44c4 TitleVBlankHandlerB.selected_u18 +04:44c7 TitleVBlankHandlerB.done_u18 +04:44d1 TitleVBlankHandlerB.notselected_u19 +04:44d6 TitleVBlankHandlerB.selected_u19 +04:44d9 TitleVBlankHandlerB.done_u19 +04:44e3 TitleVBlankHandlerB.notselected_u20 +04:44e8 TitleVBlankHandlerB.selected_u20 +04:44eb TitleVBlankHandlerB.done_u20 +04:44f5 TitleVBlankHandlerB.notselected_u21 +04:44fa TitleVBlankHandlerB.selected_u21 +04:44fd TitleVBlankHandlerB.done_u21 +04:4507 TitleVBlankHandlerB.notselected_u22 +04:450c TitleVBlankHandlerB.selected_u22 +04:450f TitleVBlankHandlerB.done_u22 +04:4519 TitleVBlankHandlerB.notselected_u23 +04:451e TitleVBlankHandlerB.selected_u23 +04:4521 TitleVBlankHandlerB.done_u23 +04:452b TitleVBlankHandlerB.notselected_u24 +04:4530 TitleVBlankHandlerB.selected_u24 +04:4533 TitleVBlankHandlerB.done_u24 +04:453d TitleVBlankHandlerB.notselected_u25 +04:4542 TitleVBlankHandlerB.selected_u25 +04:4545 TitleVBlankHandlerB.done_u25 +04:45cf TitleVBlankHandlerB.disabled1 +04:45db TitleVBlankHandlerB.buttons +04:45f4 TitleVBlankHandlerB.filter +04:4620 TitleVBlankHandlerB.donetetry +04:4646 TitleVBlankHandlerB.vblankRecords +04:4647 TitleVBlankHandlerB.vblankCredits +04:4648 MainHandleA +04:4656 MainHandleA.jumps +04:4668 MainHandleA.tosettings +04:466d MainHandleA.tocredits +04:4672 MainHandleA.toprofile +04:4677 MainHandleA.torecords +04:467c MainHandleUp +04:468e MainHandleDown +04:469f SettingsHandleA +04:46ac ProfileHandleB +04:46ac SettingsHandleB +04:46b1 SettingsHandleDown +04:46c2 SettingsHandleUp +04:46d4 SettingsHandleLeft +04:46e5 SettingsHandleLeft.jumps +04:4700 SettingsHandleLeft.buttons +04:4718 SettingsHandleLeft.rng +04:4730 SettingsHandleLeft.rot +04:4748 SettingsHandleLeft.drop +04:4760 SettingsHandleLeft.curve +04:477e SettingsHandleLeft.hig +04:4796 SettingsHandleLeft.filter +04:47ab SettingsHandleRight +04:47bc SettingsHandleRight.jumps +04:47d7 SettingsHandleRight.buttons +04:47ee SettingsHandleRight.rng +04:4805 SettingsHandleRight.rot +04:481c SettingsHandleRight.drop +04:4833 SettingsHandleRight.curve +04:4850 SettingsHandleRight.hig +04:4867 SettingsHandleRight.filter +04:487b ProfileHandleA +04:488f ProfileHandleRight +04:48a3 ProfileHandleRight.jumps +04:48b2 ProfileHandleRight.idx +04:48bb ProfileHandleRight.doit +04:48be ProfileHandleRight.l0 +04:48c8 ProfileHandleRight.doit1 +04:48cf ProfileHandleRight.l1 +04:48d9 ProfileHandleRight.doit2 +04:48e0 ProfileHandleRight.l2 +04:48ea ProfileHandleRight.doit3 +04:48f1 ProfileHandleLeft +04:4905 ProfileHandleLeft.jumps +04:4914 ProfileHandleLeft.idx +04:491e ProfileHandleLeft.doit +04:4921 ProfileHandleLeft.l0 +04:492b ProfileHandleLeft.doit1 +04:4932 ProfileHandleLeft.l1 +04:493c ProfileHandleLeft.doit2 +04:4943 ProfileHandleLeft.l2 +04:494d ProfileHandleLeft.doit3 +04:4954 ProfileHandleDown +04:4965 ProfileHandleUp +04:4977 DecrementLevel +04:498d IncrementLevel +04:49a3 InitSpeedCurve +04:49b2 GetEnd +04:49e9 GetStart +04:4a20 CheckLevelRange +04:4a39 CheckLevelRange.notatend +04:4a59 CheckLevelRange.notatstart +04:4a5a RecordsHandleLeft +04:4a79 RecordsHandleRight +04:4a97 RecordsHandleSelect +04:4aa0 RenderScores +04:4acb RenderScores.score_u26 +04:4ad0 RenderScores.wvr_u27 +04:4add RenderScores.wvr_u28 +04:4aea RenderScores.wvr_u29 +04:4af7 RenderScores.wvr_u30 +04:4b04 RenderScores.wvr_u31 +04:4b11 RenderScores.wvr_u32 +04:4b1e RenderScores.wvr_u33 +04:4b2b RenderScores.wvr_u34 +04:4b35 RenderScores.level_u26 +04:4b42 RenderScores.wvr_u35 +04:4b4d RenderScores.wvr_u36 +04:4b58 RenderScores.wvr_u37 +04:4b63 RenderScores.wvr_u38 +04:4b70 RenderScores.wvr_u39 +04:4b7d RenderScores.wvr_u40 +04:4b8a RenderScores.wvr_u41 +04:4b97 RenderScores.wvr_u42 +04:4ba9 RenderScores.name_u26 +04:4bb0 RenderScores.wvr_u43 +04:4bbb RenderScores.wvr_u44 +04:4bc6 RenderScores.wvr_u45 +04:4bd8 RenderScores.nograde_u26 +04:4bdb RenderScores.wvr_u46 +04:4be5 RenderScores.grade_u26 +04:4be8 RenderScores.wvr_u47 +04:4bf0 RenderScores.postgrade_u26 +04:4bf5 RenderScores.wvr_u48 +04:4c02 RenderScores.wvr_u49 +04:4c0f RenderScores.wvr_u50 +04:4c1c RenderScores.wvr_u51 +04:4c39 RenderScores.score_u52 +04:4c3e RenderScores.wvr_u53 +04:4c4b RenderScores.wvr_u54 +04:4c58 RenderScores.wvr_u55 +04:4c65 RenderScores.wvr_u56 +04:4c72 RenderScores.wvr_u57 +04:4c7f RenderScores.wvr_u58 +04:4c8c RenderScores.wvr_u59 +04:4c99 RenderScores.wvr_u60 +04:4ca3 RenderScores.level_u52 +04:4cb0 RenderScores.wvr_u61 +04:4cbb RenderScores.wvr_u62 +04:4cc6 RenderScores.wvr_u63 +04:4cd1 RenderScores.wvr_u64 +04:4cde RenderScores.wvr_u65 +04:4ceb RenderScores.wvr_u66 +04:4cf8 RenderScores.wvr_u67 +04:4d05 RenderScores.wvr_u68 +04:4d17 RenderScores.name_u52 +04:4d1e RenderScores.wvr_u69 +04:4d29 RenderScores.wvr_u70 +04:4d34 RenderScores.wvr_u71 +04:4d46 RenderScores.nograde_u52 +04:4d49 RenderScores.wvr_u72 +04:4d53 RenderScores.grade_u52 +04:4d56 RenderScores.wvr_u73 +04:4d5e RenderScores.postgrade_u52 +04:4d63 RenderScores.wvr_u74 +04:4d70 RenderScores.wvr_u75 +04:4d7d RenderScores.wvr_u76 +04:4d8a RenderScores.wvr_u77 +04:4da7 RenderScores.score_u78 +04:4dac RenderScores.wvr_u79 +04:4db9 RenderScores.wvr_u80 +04:4dc6 RenderScores.wvr_u81 +04:4dd3 RenderScores.wvr_u82 +04:4de0 RenderScores.wvr_u83 +04:4ded RenderScores.wvr_u84 +04:4dfa RenderScores.wvr_u85 +04:4e07 RenderScores.wvr_u86 +04:4e11 RenderScores.level_u78 +04:4e1e RenderScores.wvr_u87 +04:4e29 RenderScores.wvr_u88 +04:4e34 RenderScores.wvr_u89 +04:4e3f RenderScores.wvr_u90 +04:4e4c RenderScores.wvr_u91 +04:4e59 RenderScores.wvr_u92 +04:4e66 RenderScores.wvr_u93 +04:4e73 RenderScores.wvr_u94 +04:4e85 RenderScores.name_u78 +04:4e8c RenderScores.wvr_u95 +04:4e97 RenderScores.wvr_u96 +04:4ea2 RenderScores.wvr_u97 +04:4eb4 RenderScores.nograde_u78 +04:4eb7 RenderScores.wvr_u98 +04:4ec1 RenderScores.grade_u78 +04:4ec4 RenderScores.wvr_u99 +04:4ecc RenderScores.postgrade_u78 +04:4ed1 RenderScores.wvr_u100 +04:4ede RenderScores.wvr_u101 +04:4eeb RenderScores.wvr_u102 +04:4ef8 RenderScores.wvr_u103 +04:4f15 RenderScores.score_u104 +04:4f1a RenderScores.wvr_u105 +04:4f27 RenderScores.wvr_u106 +04:4f34 RenderScores.wvr_u107 +04:4f41 RenderScores.wvr_u108 +04:4f4e RenderScores.wvr_u109 +04:4f5b RenderScores.wvr_u110 +04:4f68 RenderScores.wvr_u111 +04:4f75 RenderScores.wvr_u112 +04:4f7f RenderScores.level_u104 +04:4f8c RenderScores.wvr_u113 +04:4f97 RenderScores.wvr_u114 +04:4fa2 RenderScores.wvr_u115 +04:4fad RenderScores.wvr_u116 +04:4fba RenderScores.wvr_u117 +04:4fc7 RenderScores.wvr_u118 +04:4fd4 RenderScores.wvr_u119 +04:4fe1 RenderScores.wvr_u120 +04:4ff3 RenderScores.name_u104 +04:4ffa RenderScores.wvr_u121 +04:5005 RenderScores.wvr_u122 +04:5010 RenderScores.wvr_u123 +04:5022 RenderScores.nograde_u104 +04:5025 RenderScores.wvr_u124 +04:502f RenderScores.grade_u104 +04:5032 RenderScores.wvr_u125 +04:503a RenderScores.postgrade_u104 +04:503f RenderScores.wvr_u126 +04:504c RenderScores.wvr_u127 +04:5059 RenderScores.wvr_u128 +04:5066 RenderScores.wvr_u129 +04:5083 RenderScores.score_u130 +04:5088 RenderScores.wvr_u131 +04:5095 RenderScores.wvr_u132 +04:50a2 RenderScores.wvr_u133 +04:50af RenderScores.wvr_u134 +04:50bc RenderScores.wvr_u135 +04:50c9 RenderScores.wvr_u136 +04:50d6 RenderScores.wvr_u137 +04:50e3 RenderScores.wvr_u138 +04:50ed RenderScores.level_u130 +04:50fa RenderScores.wvr_u139 +04:5105 RenderScores.wvr_u140 +04:5110 RenderScores.wvr_u141 +04:511b RenderScores.wvr_u142 +04:5128 RenderScores.wvr_u143 +04:5135 RenderScores.wvr_u144 +04:5142 RenderScores.wvr_u145 +04:514f RenderScores.wvr_u146 +04:5161 RenderScores.name_u130 +04:5168 RenderScores.wvr_u147 +04:5173 RenderScores.wvr_u148 +04:517e RenderScores.wvr_u149 +04:5190 RenderScores.nograde_u130 +04:5193 RenderScores.wvr_u150 +04:519d RenderScores.grade_u130 +04:51a0 RenderScores.wvr_u151 +04:51a8 RenderScores.postgrade_u130 +04:51ad RenderScores.wvr_u152 +04:51ba RenderScores.wvr_u153 +04:51c7 RenderScores.wvr_u154 +04:51d4 RenderScores.wvr_u155 +04:51f1 RenderScores.score_u156 +04:51f6 RenderScores.wvr_u157 +04:5203 RenderScores.wvr_u158 +04:5210 RenderScores.wvr_u159 +04:521d RenderScores.wvr_u160 +04:522a RenderScores.wvr_u161 +04:5237 RenderScores.wvr_u162 +04:5244 RenderScores.wvr_u163 +04:5251 RenderScores.wvr_u164 +04:525b RenderScores.level_u156 +04:5268 RenderScores.wvr_u165 +04:5273 RenderScores.wvr_u166 +04:527e RenderScores.wvr_u167 +04:5289 RenderScores.wvr_u168 +04:5296 RenderScores.wvr_u169 +04:52a3 RenderScores.wvr_u170 +04:52b0 RenderScores.wvr_u171 +04:52bd RenderScores.wvr_u172 +04:52cf RenderScores.name_u156 +04:52d6 RenderScores.wvr_u173 +04:52e1 RenderScores.wvr_u174 +04:52ec RenderScores.wvr_u175 +04:52fe RenderScores.nograde_u156 +04:5301 RenderScores.wvr_u176 +04:530b RenderScores.grade_u156 +04:530e RenderScores.wvr_u177 +04:5316 RenderScores.postgrade_u156 +04:531b RenderScores.wvr_u178 +04:5328 RenderScores.wvr_u179 +04:5335 RenderScores.wvr_u180 +04:5342 RenderScores.wvr_u181 +04:535f RenderScores.score_u182 +04:5364 RenderScores.wvr_u183 +04:5371 RenderScores.wvr_u184 +04:537e RenderScores.wvr_u185 +04:538b RenderScores.wvr_u186 +04:5398 RenderScores.wvr_u187 +04:53a5 RenderScores.wvr_u188 +04:53b2 RenderScores.wvr_u189 +04:53bf RenderScores.wvr_u190 +04:53c9 RenderScores.level_u182 +04:53d6 RenderScores.wvr_u191 +04:53e1 RenderScores.wvr_u192 +04:53ec RenderScores.wvr_u193 +04:53f7 RenderScores.wvr_u194 +04:5404 RenderScores.wvr_u195 +04:5411 RenderScores.wvr_u196 +04:541e RenderScores.wvr_u197 +04:542b RenderScores.wvr_u198 +04:543d RenderScores.name_u182 +04:5444 RenderScores.wvr_u199 +04:544f RenderScores.wvr_u200 +04:545a RenderScores.wvr_u201 +04:546c RenderScores.nograde_u182 +04:546f RenderScores.wvr_u202 +04:5479 RenderScores.grade_u182 +04:547c RenderScores.wvr_u203 +04:5484 RenderScores.postgrade_u182 +04:5489 RenderScores.wvr_u204 +04:5496 RenderScores.wvr_u205 +04:54a3 RenderScores.wvr_u206 +04:54b0 RenderScores.wvr_u207 +04:54cd RenderScores.score_u208 +04:54d2 RenderScores.wvr_u209 +04:54df RenderScores.wvr_u210 +04:54ec RenderScores.wvr_u211 +04:54f9 RenderScores.wvr_u212 +04:5506 RenderScores.wvr_u213 +04:5513 RenderScores.wvr_u214 +04:5520 RenderScores.wvr_u215 +04:552d RenderScores.wvr_u216 +04:5537 RenderScores.level_u208 +04:5544 RenderScores.wvr_u217 +04:554f RenderScores.wvr_u218 +04:555a RenderScores.wvr_u219 +04:5565 RenderScores.wvr_u220 +04:5572 RenderScores.wvr_u221 +04:557f RenderScores.wvr_u222 +04:558c RenderScores.wvr_u223 +04:5599 RenderScores.wvr_u224 +04:55ab RenderScores.name_u208 +04:55b2 RenderScores.wvr_u225 +04:55bd RenderScores.wvr_u226 +04:55c8 RenderScores.wvr_u227 +04:55da RenderScores.nograde_u208 +04:55dd RenderScores.wvr_u228 +04:55e7 RenderScores.grade_u208 +04:55ea RenderScores.wvr_u229 +04:55f2 RenderScores.postgrade_u208 +04:55f7 RenderScores.wvr_u230 +04:5604 RenderScores.wvr_u231 +04:5611 RenderScores.wvr_u232 +04:561e RenderScores.wvr_u233 +04:563b RenderScores.score_u234 +04:5640 RenderScores.wvr_u235 +04:564d RenderScores.wvr_u236 +04:565a RenderScores.wvr_u237 +04:5667 RenderScores.wvr_u238 +04:5674 RenderScores.wvr_u239 +04:5681 RenderScores.wvr_u240 +04:568e RenderScores.wvr_u241 +04:569b RenderScores.wvr_u242 +04:56a5 RenderScores.level_u234 +04:56b2 RenderScores.wvr_u243 +04:56bd RenderScores.wvr_u244 +04:56c8 RenderScores.wvr_u245 +04:56d3 RenderScores.wvr_u246 +04:56e0 RenderScores.wvr_u247 +04:56ed RenderScores.wvr_u248 +04:56fa RenderScores.wvr_u249 +04:5707 RenderScores.wvr_u250 +04:5719 RenderScores.name_u234 +04:5720 RenderScores.wvr_u251 +04:572b RenderScores.wvr_u252 +04:5736 RenderScores.wvr_u253 +04:5748 RenderScores.nograde_u234 +04:574b RenderScores.wvr_u254 +04:5755 RenderScores.grade_u234 +04:5758 RenderScores.wvr_u255 +04:5760 RenderScores.postgrade_u234 +04:5765 RenderScores.wvr_u256 +04:5772 RenderScores.wvr_u257 +04:577f RenderScores.wvr_u258 +04:578c RenderScores.wvr_u259 +04:57a9 RenderScores.score_u260 +04:57ae RenderScores.wvr_u261 +04:57bb RenderScores.wvr_u262 +04:57c8 RenderScores.wvr_u263 +04:57d5 RenderScores.wvr_u264 +04:57e2 RenderScores.wvr_u265 +04:57ef RenderScores.wvr_u266 +04:57fc RenderScores.wvr_u267 +04:5809 RenderScores.wvr_u268 +04:5813 RenderScores.level_u260 +04:5820 RenderScores.wvr_u269 +04:582b RenderScores.wvr_u270 +04:5836 RenderScores.wvr_u271 +04:5841 RenderScores.wvr_u272 +04:584e RenderScores.wvr_u273 +04:585b RenderScores.wvr_u274 +04:5868 RenderScores.wvr_u275 +04:5875 RenderScores.wvr_u276 +04:5887 RenderScores.name_u260 +04:588e RenderScores.wvr_u277 +04:5899 RenderScores.wvr_u278 +04:58a4 RenderScores.wvr_u279 +04:58b6 RenderScores.nograde_u260 +04:58b9 RenderScores.wvr_u280 +04:58c3 RenderScores.grade_u260 +04:58c6 RenderScores.wvr_u281 +04:58ce RenderScores.postgrade_u260 +04:58d3 RenderScores.wvr_u282 +04:58e0 RenderScores.wvr_u283 +04:58ed RenderScores.wvr_u284 +04:58fa RenderScores.wvr_u285 +04:5911 sEasterM0 +04:5916 sEasterM1 +04:591b sEasterC0 +04:5926 sEasterC1 +04:5931 sEasterA0 +04:593c sEasterA1 +04:5947 sEasterS0 +04:594c sEasterS1 +04:5951 sBUTTONSMode +04:5959 sRNGMode +04:596d sROTMode +04:597d sDROPMode +04:5991 sCURVEMode +04:59ad sHIGMode +04:59b5 sDisabled +04:59b9 sFilterMode +04:59cd sTetryButtons +04:5a0d sTetryRNG +04:5a4d sTetryROT +04:5a8d sTetryDROP +04:5acd sTetryCURVE +04:5b0d sTetryHIG +04:5b4d sTetrySTART +04:5b8d sTetryFILTER +04:5bcd sTetryEXIT +04:5c0d sTitleScreenMainMap +04:5ead sTitleScreenSettingsMap +04:5ead sTitleScreenMainMapEnd +04:614d sTitleScreenCreditsMap +04:614d sTitleScreenSettingsMapEnd +04:63ed sTitleScreenProfileMap +04:63ed sTitleScreenCreditsMapEnd +04:668d sTitleScreenRecordsMap +04:668d sTitleScreenProfileMapEnd +04:692d sTitleScreenRecordsMapEnd 05:4008 FieldInit 05:403e FieldClear 05:4049 ToBackupField @@ -2336,7 +2601,8 @@ 00:a00e rSpeedCurveState 00:a00f rAlways20GState 00:a010 rSelectedStartLevel -00:a012 rUnused +00:a012 rFilterMode +00:a013 rUnused 00:a047 rProfileData0 00:a047 rProfileName0 00:a04a rSwapABState0 @@ -2346,7 +2612,8 @@ 00:a04e rSpeedCurveState0 00:a04f rAlways20GState0 00:a050 rSelectedStartLevel0 -00:a052 rUnused0 +00:a052 rFilterMode0 +00:a053 rUnused0 00:a087 rProfileData1 00:a087 rProfileName1 00:a08a rSwapABState1 @@ -2356,7 +2623,8 @@ 00:a08e rSpeedCurveState1 00:a08f rAlways20GState1 00:a090 rSelectedStartLevel1 -00:a092 rUnused1 +00:a092 rFilterMode1 +00:a093 rUnused1 00:a0c7 rProfileData2 00:a0c7 rProfileName2 00:a0ca rSwapABState2 @@ -2366,7 +2634,8 @@ 00:a0ce rSpeedCurveState2 00:a0cf rAlways20GState2 00:a0d0 rSelectedStartLevel2 -00:a0d2 rUnused2 +00:a0d2 rFilterMode2 +00:a0d3 rUnused2 00:a107 rProfileData3 00:a107 rProfileName3 00:a10a rSwapABState3 @@ -2376,7 +2645,8 @@ 00:a10e rSpeedCurveState3 00:a10f rAlways20GState3 00:a110 rSelectedStartLevel3 -00:a112 rUnused3 +00:a112 rFilterMode3 +00:a113 rUnused3 00:a147 rProfileData4 00:a147 rProfileName4 00:a14a rSwapABState4 @@ -2386,7 +2656,8 @@ 00:a14e rSpeedCurveState4 00:a14f rAlways20GState4 00:a150 rSelectedStartLevel4 -00:a152 rUnused4 +00:a152 rFilterMode4 +00:a153 rUnused4 00:a187 rProfileData5 00:a187 rProfileName5 00:a18a rSwapABState5 @@ -2396,7 +2667,8 @@ 00:a18e rSpeedCurveState5 00:a18f rAlways20GState5 00:a190 rSelectedStartLevel5 -00:a192 rUnused5 +00:a192 rFilterMode5 +00:a193 rUnused5 00:a1c7 rProfileData6 00:a1c7 rProfileName6 00:a1ca rSwapABState6 @@ -2406,7 +2678,8 @@ 00:a1ce rSpeedCurveState6 00:a1cf rAlways20GState6 00:a1d0 rSelectedStartLevel6 -00:a1d2 rUnused6 +00:a1d2 rFilterMode6 +00:a1d3 rUnused6 00:a207 rProfileData7 00:a207 rProfileName7 00:a20a rSwapABState7 @@ -2416,7 +2689,8 @@ 00:a20e rSpeedCurveState7 00:a20f rAlways20GState7 00:a210 rSelectedStartLevel7 -00:a212 rUnused7 +00:a212 rFilterMode7 +00:a213 rUnused7 00:a247 rProfileData8 00:a247 rProfileName8 00:a24a rSwapABState8 @@ -2426,7 +2700,8 @@ 00:a24e rSpeedCurveState8 00:a24f rAlways20GState8 00:a250 rSelectedStartLevel8 -00:a252 rUnused8 +00:a252 rFilterMode8 +00:a253 rUnused8 00:a287 rProfileData9 00:a287 rProfileName9 00:a28a rSwapABState9 @@ -2436,7 +2711,8 @@ 00:a28e rSpeedCurveState9 00:a28f rAlways20GState9 00:a290 rSelectedStartLevel9 -00:a292 rUnused9 +00:a292 rFilterMode9 +00:a293 rUnused9 00:a2c7 rScoreTableDMGT 00:a407 rScoreTableTGM1 00:a547 rScoreTableTGM3 @@ -2635,19 +2911,20 @@ 00:ffdb hPrePause 00:ffdc hRequestedJingle 00:ffdd hOAMDMA -00:ffe7 hPlayhead -00:ffe9 hCurrentlyPlaying -00:ffea hPlayQueue -00:ffee hNoisePlayhead -00:fff0 hUpState -00:fff1 hDownState -00:fff2 hLeftState -00:fff3 hRightState -00:fff4 hAState -00:fff5 hBState -00:fff6 hStartState -00:fff7 hSelectState -00:fff8 hFrameCtr -00:fff9 hEvenFrame -00:fffa hGameState -00:fffb hLCDCCtr +00:ffe7 hUpState +00:ffe8 hDownState +00:ffe9 hLeftState +00:ffea hRightState +00:ffeb hAState +00:ffec hBState +00:ffed hStartState +00:ffee hSelectState +00:ffef hFilterMode +00:fff0 hPlayhead +00:fff2 hCurrentlyPlaying +00:fff3 hPlayQueue +00:fff7 hNoisePlayhead +00:fff9 hFrameCtr +00:fffa hEvenFrame +00:fffb hGameState +00:fffc hLCDCCtr diff --git a/src/grading.asm b/src/grading.asm index 749b4a7..1101fdf 100644 --- a/src/grading.asm +++ b/src/grading.asm @@ -440,13 +440,13 @@ UpdateGradeDMGT:: ; What is our single/double/triple multiplier? .combomult ld a, [hComboCt] - cp a, 10 - jr nc, .combo10 - cp a, 5 - jr nc, .combo5 + cp a, 13 + jr nc, .combo13 + cp a, 8 + jr nc, .combo8 jr .combo1 -.combo10 +.combo13 ld a, 2 ld [wSMult], a ld a, 3 @@ -455,7 +455,7 @@ UpdateGradeDMGT:: ld [wTMult], a jr .prelevel -.combo5 +.combo8 ld a, 1 ld [wSMult], a ld a, 2 diff --git a/src/include/globals.asm b/src/include/globals.asm index 8e9e04d..2bb4896 100644 --- a/src/include/globals.asm +++ b/src/include/globals.asm @@ -293,6 +293,13 @@ DEF HIG_MODE_OFF EQU 0 DEF HIG_MODE_ON EQU 1 DEF HIG_MODE_COUNT EQU 2 +DEF FILTER_MODE_DLRU EQU 0 +DEF FILTER_MODE_ULRD EQU 1 +DEF FILTER_MODE_LRUD EQU 2 +DEF FILTER_MODE_UDLR EQU 3 +DEF FILTER_MODE_NONE EQU 4 +DEF FILTER_MODE_COUNT EQU 5 + ; VRAM Offsets for title screen tiles DEF TITLE_OPTIONS EQU 7 DEF TITLE_OPTION_0 EQU $9900 @@ -432,7 +439,7 @@ DEF TITLE_MAIN_SEL_RECORDS EQU 4 DEF TITLE_MAIN_SEL_CREDITS EQU 5 DEF TITLE_SETTINGS_OPTION_BASE EQU $9840 -DEF TITLE_SETTINGS_OPTIONS EQU 8 +DEF TITLE_SETTINGS_OPTIONS EQU 9 DEF TITLE_SETTINGS_BUTTONS EQU $984F DEF TITLE_SETTINGS_RNG EQU $986F DEF TITLE_SETTINGS_ROT EQU $988F @@ -440,8 +447,9 @@ DEF TITLE_SETTINGS_DROP EQU $98AF DEF TITLE_SETTINGS_SCURVE EQU $98CF DEF TITLE_SETTINGS_HIG EQU $98EF DEF TITLE_SETTINGS_START EQU $990F +DEF TITLE_SETTINGS_FILTER EQU $992F DEF TITLE_SETTINGS_TETRY EQU $99C0 -DEF TITLE_SETTINGS_SEL_BACK EQU 7 +DEF TITLE_SETTINGS_SEL_BACK EQU 8 DEF TITLE_PROFILE_OPTION_BASE EQU $9842 DEF TITLE_PROFILE_OPTIONS EQU 6 diff --git a/src/input.asm b/src/input.asm index 3199b9a..bf7f4f6 100644 --- a/src/input.asm +++ b/src/input.asm @@ -31,6 +31,7 @@ hAState:: ds 1 hBState:: ds 1 hStartState:: ds 1 hSelectState:: ds 1 +hFilterMode:: ds 1 @@ -195,18 +196,92 @@ GetInput:: ; If left or right are pressed, zero out up and down. .priorities + ldh a, [hFilterMode] + ld b, a + add a, b + add a, b + ld c, a + ld b, 0 + ld hl, .jumps + add hl, bc + jp hl + +.jumps + jp .dlru + jp .ulrd + jp .lrud + jp .udlr + no_jump + +.dlru + ldh a, [hDownState] + cp a, 0 + jr nz, .zerolru + + ldh a, [hLeftState] + cp a, 0 + jr nz, .zeroud ldh a, [hRightState] cp a, 0 - jr nz, .zero + ret z + jr .zeroud + +.ulrd + ldh a, [hUpState] + cp a, 0 + jr nz, .zerolrd + + ldh a, [hLeftState] + cp a, 0 + jr nz, .zeroud + ldh a, [hRightState] + cp a, 0 + ret z + jr .zeroud + +.lrud + ldh a, [hRightState] + cp a, 0 + jr nz, .zeroud ldh a, [hLeftState] cp a, 0 ret z + jr .zeroud -.zero +.udlr + ldh a, [hUpState] + cp a, 0 + jr nz, .zerolr + ldh a, [hLeftState] + cp a, 0 + ret z + jr .zerolr + +.zeroud xor a, a ldh [hUpState], a ldh [hDownState], a ret +.zerolr + xor a, a + ldh [hLeftState], a + ldh [hRightState], a + ret + +.zerolrd + xor a, a + ldh [hLeftState], a + ldh [hRightState], a + ldh [hDownState], a + ret + +.zerolru + xor a, a + ldh [hLeftState], a + ldh [hRightState], a + ldh [hUpState], a + ret + ENDC diff --git a/src/res/sources/map_title_main_settings.gbm b/src/res/sources/map_title_main_settings.gbm index bb896a2..507f379 100644 Binary files a/src/res/sources/map_title_main_settings.gbm and b/src/res/sources/map_title_main_settings.gbm differ diff --git a/src/res/title_data.inc b/src/res/title_data.inc index 54cd009..9a9a202 100644 --- a/src/res/title_data.inc +++ b/src/res/title_data.inc @@ -75,6 +75,13 @@ sHIGMode:: sDisabled:: db "----" +sFilterMode:: + db "DLRU" + db "ULRD" + db "LRUD" + db "UDLR" + db "NONE" + sTetryButtons:: db "THIS OPTION WILL" db "CHANGE WHICH WAY" @@ -117,6 +124,12 @@ sTetrySTART:: db "START IN THE SP-" db "EED CURVE " +sTetryFILTER:: + db "THIS OPTION WILL" + db "DETERMINE WHICH " + db "D-PAD BUTTONS " + db "HAVE PRIORITY " + sTetryEXIT:: db "OH OKAY THEN- " db "BYE BYE! " @@ -224,10 +237,10 @@ sTitleScreenSettingsMap:: DB $0C,$1D,$1F,$01,$17,$10,$21,$10,$17,$01 DB $28,$01,$01,$01,$01,$29,$00,$00,$00,$00 DB $00,$00,$00,$00,$00,$00,$00,$00,$5D,$01 - DB $0D,$0C,$0E,$16,$6F,$01,$01,$01,$01,$01 - DB $01,$01,$01,$01,$01,$01,$01,$01,$00,$00 + DB $0F,$2A,$1B,$0C,$0F,$01,$11,$14,$17,$1F + DB $10,$1D,$28,$01,$01,$01,$01,$29,$00,$00 DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 - DB $01,$01,$01,$01,$01,$01,$01,$01,$01,$01 + DB $5D,$01,$0D,$0C,$0E,$16,$6F,$01,$01,$01 DB $01,$01,$01,$01,$01,$01,$01,$01,$01,$01 DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 DB $00,$00,$01,$01,$01,$01,$01,$01,$01,$01 diff --git a/src/sram.asm b/src/sram.asm index a563d33..414591b 100644 --- a/src/sram.asm +++ b/src/sram.asm @@ -34,7 +34,8 @@ rDropModeState\1:: ds 1 rSpeedCurveState\1:: ds 1 rAlways20GState\1:: ds 1 rSelectedStartLevel\1:: ds 2 -rUnused\1:: ds (64-11) +rFilterMode\1:: ds 1 +rUnused\1:: ds (64-12) ENDU ENDM @@ -53,7 +54,8 @@ rDropModeState:: ds 1 rSpeedCurveState:: ds 1 rAlways20GState:: ds 1 rSelectedStartLevel:: ds 2 -rUnused:: ds (PROFILE_SIZE - 11) ; 11 = sum of the above +rFilterMode:: ds 1 +rUnused:: ds (PROFILE_SIZE - 12) ; 12 = sum of the above ENDU PROFILE 0 PROFILE 1 @@ -121,6 +123,8 @@ TrustedLoad: ld [wProfileName+1], a ld a, [rProfileName+2] ld [wProfileName+2], a + ld a, [rFilterMode] + ldh [hFilterMode], a ; Restore the start level. ld b, BANK_OTHER @@ -269,6 +273,10 @@ InitializeSRAM: ld [rAlways20GState], a ld [wAlways20GState], a + ld a, FILTER_MODE_DLRU + ld [rFilterMode], a + ldh [hFilterMode], a + ; Set to the default start level. ld hl, sDMGTSpeedCurve ld a, l @@ -662,6 +670,10 @@ ResetProfile:: ld [rAlways20GState], a ld [wAlways20GState], a + ld a, FILTER_MODE_DLRU + ld [rFilterMode], a + ldh [hFilterMode], a + ; Set to the default start level. ld hl, sDMGTSpeedCurve ld a, l diff --git a/src/state_title.asm b/src/state_title.asm index ee6eb24..45f4ce8 100644 --- a/src/state_title.asm +++ b/src/state_title.asm @@ -355,7 +355,10 @@ SwitchTitleMode: ldh [hSelectState], a ld [wDisplayingScoreMode], a ld [wScoreFlipTimer], a - jp RenderScores + call RenderScores + ld a, LCDCF_ON | LCDCF_BGON | LCDCF_BLK01 + ldh [rLCDC], a + ret .switchCredits ld de, sTitleScreenCreditsMap @@ -875,6 +878,20 @@ TitleVBlankHandlerB: ld bc, 4 call UnsafeMemCopy +.filter + ld b, 0 + ldh a, [hFilterMode] + sla a + sla a + ld c, a + ld hl, sFilterMode + add hl, bc + ld d, h + ld e, l + ld hl, TITLE_SETTINGS_FILTER + ld bc, 4 + call UnsafeMemCopy + ; START level. call DrawSpeedSettings @@ -1030,6 +1047,7 @@ SettingsHandleLeft: jp .curve jp .hig jp DecrementLevel + jp .filter no_jump .buttons @@ -1112,6 +1130,20 @@ SettingsHandleLeft: ld [rAlways20GState], a ret +.filter + ldh a, [hFilterMode] + cp a, 0 + jr z, :+ + dec a + ldh [hFilterMode], a + ld [rFilterMode], a + ret +: ld a, FILTER_MODE_COUNT-1 + ldh [hFilterMode], a + ld [rFilterMode], a + ret + + SettingsHandleRight: ld a, [wSelected] @@ -1135,6 +1167,7 @@ SettingsHandleRight: jp .curve jp .hig jp IncrementLevel + jp .filter no_jump .buttons @@ -1217,6 +1250,20 @@ SettingsHandleRight: ld [rAlways20GState], a ret +.filter + ldh a, [hFilterMode] + cp a, FILTER_MODE_COUNT-1 + jr z, :+ + inc a + ldh [hFilterMode], a + ld [rFilterMode], a + ret +: xor a, a + ldh [hFilterMode], a + ld [rFilterMode], a + ret + + ProfileHandleA: ld a, [wSelected] cp a, TITLE_PROFILE_SEL_BACK @@ -1571,14 +1618,6 @@ RecordsHandleSelect: jp RenderScores RenderScores: - ; Turn the screen off if it's on. - ldh a, [rLCDC] - and LCDCF_ON - jr z, :+ ; Screen is already off. - wait_vram - xor a, a - ldh [rLCDC], a - ; Draw the mode. : ld b, 0 ld a, [wSelected] @@ -1591,7 +1630,7 @@ RenderScores: ld e, l ld hl, TITLE_RECORDS_MODE ld bc, 4 - call UnsafeMemCopy + call SafeMemCopy ; Get the correct speed curve. ld a, [wSelected] @@ -1613,35 +1652,59 @@ RenderScores: ld a, [de] inc de add a, "0" - ld [hl+], a + ld b, a + wait_vram + ld [hl], b + inc hl ld a, [de] inc de add a, "0" - ld [hl+], a + ld b, a + wait_vram + ld [hl], b + inc hl ld a, [de] inc de add a, "0" - ld [hl+], a + ld b, a + wait_vram + ld [hl], b + inc hl ld a, [de] inc de add a, "0" - ld [hl+], a + ld b, a + wait_vram + ld [hl], b + inc hl ld a, [de] inc de add a, "0" - ld [hl+], a + ld b, a + wait_vram + ld [hl], b + inc hl ld a, [de] inc de add a, "0" - ld [hl+], a + ld b, a + wait_vram + ld [hl], b + inc hl ld a, [de] inc de add a, "0" - ld [hl+], a + ld b, a + wait_vram + ld [hl], b + inc hl ld a, [de] inc de add a, "0" - ld [hl+], a + ld b, a + wait_vram + ld [hl], b + inc hl ; Go render the name. jr .name\@ @@ -1659,29 +1722,53 @@ RenderScores: ; Render it. ld a, "L" - ld [hl+], a + ld b, a + wait_vram + ld [hl], b + inc hl ld a, "V" - ld [hl+], a + ld b, a + wait_vram + ld [hl], b + inc hl ld a, "L" - ld [hl+], a + ld b, a + wait_vram + ld [hl], b + inc hl ld a, 115 - ld [hl+], a + ld b, a + wait_vram + ld [hl], b + inc hl ld a, [de] inc de add a, "0" - ld [hl+], a + ld b, a + wait_vram + ld [hl], b + inc hl ld a, [de] inc de add a, "0" - ld [hl+], a + ld b, a + wait_vram + ld [hl], b + inc hl ld a, [de] inc de add a, "0" - ld [hl+], a + ld b, a + wait_vram + ld [hl], b + inc hl ld a, [de] inc de add a, "0" - ld [hl+], a + ld b, a + wait_vram + ld [hl], b + inc hl ; And jump back to the name. push hl @@ -1702,13 +1789,22 @@ RenderScores: ; Render name. ld a, [de] inc de - ld [hl+], a + ld b, a + wait_vram + ld [hl], b + inc hl ld a, [de] inc de - ld [hl+], a + ld b, a + wait_vram + ld [hl], b + inc hl ld a, [de] inc de - ld [hl+], a + ld b, a + wait_vram + ld [hl], b + inc hl ; Jump to tells. ld bc, 10 @@ -1721,28 +1817,46 @@ RenderScores: jr nz, .grade\@ .nograde\@ ld a, 197 - ld [hl+], a + ld b, a + wait_vram + ld [hl], b + inc hl jr .postgrade\@ .grade\@ add a, TITLE_RECORDS_GRADE_BASE - ld [hl+], a + ld b, a + wait_vram + ld [hl], b + inc hl .postgrade\@ ld a, [de] inc de add a, TITLE_RECORDS_RNG_BASE - ld [hl+], a + ld b, a + wait_vram + ld [hl], b + inc hl ld a, [de] inc de add a, TITLE_RECORDS_ROT_BASE - ld [hl+], a + ld b, a + wait_vram + ld [hl], b + inc hl ld a, [de] inc de add a, TITLE_RECORDS_DROP_BASE - ld [hl+], a + ld b, a + wait_vram + ld [hl], b + inc hl ld a, [de] inc de add a, TITLE_RECORDS_HIG_BASE - ld [hl+], a + ld b, a + wait_vram + ld [hl], b + inc hl ; Jump to next line. push hl @@ -1757,8 +1871,6 @@ RenderScores: add hl, bc ENDR - ld a, LCDCF_ON | LCDCF_BGON | LCDCF_BLK01 - ldh [rLCDC], a ret