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