diff --git a/bin/DMGTRIS.GBC b/bin/DMGTRIS.GBC index 7770130..16ab336 100644 Binary files a/bin/DMGTRIS.GBC and b/bin/DMGTRIS.GBC differ diff --git a/bin/DMGTRIS.map b/bin/DMGTRIS.map index c9d03f2..31b0aaa 100644 --- a/bin/DMGTRIS.map +++ b/bin/DMGTRIS.map @@ -232,7 +232,7 @@ ROM0 bank #0: $2119 = ChangeProfile.lninth $2128 = ChangeProfile.ltenth $2137 = ResetProfile - SECTION: $2193-$2572 ($03e0 bytes) ["Grading Functions"] + SECTION: $2193-$256b ($03d9 bytes) ["Grading Functions"] $2193 = GradeInit $21be = GradeInit.grade9start $21c3 = GradeInit.end @@ -260,278 +260,277 @@ ROM0 bank #0: $2343 = UpdateGradeDMGT.addtonce $2347 = UpdateGradeDMGT.tetris $234b = UpdateGradeDMGT.levelmult - $2363 = UpdateGradeDMGT.mult5 - $236a = UpdateGradeDMGT.mult4 - $2370 = UpdateGradeDMGT.mult3 - $2375 = UpdateGradeDMGT.mult2 - $2379 = UpdateGradeDMGT.mult1 - $237a = UpdateGradeDMGT.processgrade - $23a3 = UpdateGradeDMGT.increasegrademaybe - $23c7 = UpdateGradeDMGT.gotgm - $23d5 = DecayGradeDMGT - $23f9 = DecayGradeDMGT.nodecay - $2400 = DecayGradeDMGT.decay - $240e = UpdateGradeTGM1 - $2418 = UpdateGradeTGM1.trygradeup - $2432 = UpdateGradeTGM1.increasegrade - $2447 = UpdateGradeTGM1.skipjingle - $2454 = UpdateGradeTGM1.maybegm - $246d = UpdateGradeDEAT - $2479 = UpdateGradeDEAT.notgm - $2495 = UpdateGradeDEAT.notm - $24b8 = UpdateGradeDEAT.disqualify - $24d6 = UpdateGradeSHIR - $2519 = UpdateGradeSHIR.s5torikan - $2529 = UpdateGradeSHIR.s10torikan - $2538 = UpdateGradeSHIR.disqualify - $2547 = UpdateGradeSHIR.l1000 - $255d = UpdateGradeSHIR.l500 - SECTION: $2573-$28e7 ($0375 bytes) ["Level Functions"] - $2573 = LevelInit - $25d8 = SpecialLevelInit - $25e6 = SpecialLevelInit.jumps - $25fb = SpecialLevelInit.dmgt - $2600 = SpecialLevelInit.tgm1 - $2605 = SpecialLevelInit.tgm3 - $260a = SpecialLevelInit.deat - $260f = SpecialLevelInit.shir - $2614 = SpecialLevelInit.chil - $2619 = SpecialLevelInit.myco - $261e = SpecialLevelInit.loaddata - $2653 = LevelUp - $267d = LevelUp.doit - $26c7 = LevelUp.checknlevel - $26f5 = !0 - $270d = !1 - $2716 = LevelUp.bellmaybe - $272f = LevelUp.leveljinglemaybe - $273c = LevelUp.checkspeedup - $2750 = !2 - $275d = !3 - $276e = !4 - $277b = DoSpeedUp - $27bc = CheckSpecialLevelConditions - $27ed = CheckSpecialLevelConditions.override - $2808 = CheckSpecialLevelConditions.nooverride - $280e = CheckSpecialLevelConditions.speciallock - $282f = CheckSpecialLevelConditions.bones - $2844 = CheckSpecialLevelConditions.enterthebonezone - $2849 = CheckSpecialLevelConditions.invis - $285e = CheckSpecialLevelConditions.vanishoxyaction - $2863 = CheckSpecialLevelConditions.killscreen - $2874 = CheckSpecialLevelConditions.rip - $28a4 = CheckSpecialLevelConditions.staffroll - $28b2 = CheckSpecialLevelConditions.justkill - $28c6 = TriggerKillScreen - SECTION: $28e8-$2b9d ($02b6 bytes) ["Grading Data"] - $28e8 = sTGM1GradeScores - $290a = sTGM3InternalGradeSystem - $29aa = sTGM3GradeBoosts - $29c9 = sTGM3LevelMultiplier - $29cd = sTGM3BaselineCOOL - $29d6 = sTGM3REGRETConditions - $29ea = sDMGTGrading - $2a9e = sDMGTGaugeLUT - SECTION: $2b9e-$2e37 ($029a bytes) ["SFX Functions"] - $2b9e = SFXInit - $2bc0 = SFXPopQueue - $2bd5 = SFXPushQueue - $2be6 = SFXProcessQueue - $2bf7 = !0 - $2c12 = !1 - $2c14 = SFXTriggerNoise - $2c21 = !2 - $2c2e = !3 - $2c3a = SFXEnqueue - $2c4f = SFXEnqueue.findsfx - $2c64 = !4 - $2c74 = !5 - $2c84 = !6 - $2c94 = !7 - $2ca4 = !8 - $2cb4 = !9 - $2cc4 = !10 - $2cd4 = !11 - $2ce4 = !12 - $2cf4 = !13 - $2d04 = !14 - $2d14 = !15 - $2d24 = !16 - $2d34 = !17 - $2d44 = !18 - $2d53 = !19 - $2d62 = !20 - $2d71 = !21 - $2d80 = !22 - $2d8e = !23 - $2d9c = !24 - $2da9 = SFXKill - $2dd6 = SFXPlayNoise - $2de1 = SFXPlayNoise.noisereg - $2dee = !25 - $2df8 = SFXPlayNoise.savenoiseplayhead - $2e01 = SFXPlay - $2e0c = !26 - $2e0f = SFXPlay.play - $2e1b = SFXPlay.getRegister - $2e25 = !27 - $2e2f = SFXPlay.savePlayhead - SECTION: $2e38-$3068 ($0231 bytes) ["RNG Functions"] - $2e38 = HarvestEntropy - $2e3e = HarvestEntropy.loop - $2e5f = RNGInit - $2e95 = !0 - $2ec5 = RNGInit.complexinit - $2edc = !1 - $2ef7 = ShiftHistory - $2f14 = GetNextHellPiece - $2f19 = GetNextTGM1Piece - $2f1c = !2 - $2f34 = !3 - $2f36 = GetNextTGM2Piece - $2f39 = !4 - $2f51 = !5 - $2f53 = GetNextNesPiece - $2f61 = GetNextTGM3Piece - $2f64 = !6 - $2f87 = !7 - $2f8a = !8 - $2f9a = !9 - $2fa4 = !10 - $2fb2 = !11 - $2fc1 = !12 - $2fcd = !13 - $2fd9 = !14 - $2fe5 = !15 - $2ff1 = !16 - $2ffd = !17 - $3009 = !18 - $3018 = GetNextPiece - $3026 = GetNextPiece.nextpiecejumps - $3035 = Next35Piece - $3035 = !19 - $303f = Next7Piece - $303f = !20 - $3049 = NextByte - SECTION: $3069-$31b2 ($014a bytes) ["Progress Data"] - $3069 = sProgressData - SECTION: $31b3-$3292 ($00e0 bytes) ["Score Functions"] - $31b3 = ScoreInit - $31db = IncreaseScore - $3213 = IncreaseScore.doConvert - $3215 = !0 - $322b = IncreaseScore.carry - $322d = IncreaseScore.postConvert - $323a = !1 - $3241 = IncreaseScore.preAddDigit - $3269 = IncreaseScore.addDigit - $327f = IncreaseScore.nextDigit - SECTION: $3293-$335f ($00cd bytes) ["Input Functions"] - $3293 = InputInit - $32a5 = GetInput - $32a5 = GetInput.btns - $32b2 = GetInput.readA - $32b6 = GetInput.setA - $32c1 = GetInput.clearA - $32c4 = GetInput.readB - $32c8 = GetInput.setB - $32d3 = GetInput.clearB - $32d6 = GetInput.readSelect - $32da = GetInput.setSelect - $32e5 = GetInput.clearSelect - $32e8 = GetInput.readStart - $32ec = GetInput.setStart - $32f7 = GetInput.clearStart - $32fa = GetInput.dpad - $3307 = GetInput.readUp - $330b = GetInput.setUp - $3316 = GetInput.clearUp - $3319 = GetInput.readDown - $331d = GetInput.setDown - $3328 = GetInput.clearDown - $332b = GetInput.readLeft - $332f = GetInput.setLeft - $333a = GetInput.clearLeft - $333d = GetInput.readRight - $3341 = GetInput.setRight - $334c = GetInput.clearRight - $334f = GetInput.priorities - $335a = GetInput.zero - SECTION: $3360-$342a ($00cb bytes) ["Title Function Trampolines"] - $3360 = SwitchToTitle - $3369 = TitleEventLoopHandler - $3373 = TitleVBlankHandler - $337d = PersistLevel - $338b = DrawSpeedMain - $33db = DrawSpeedSettings - SECTION: $342b-$34f0 ($00c6 bytes) ["Time Functions"] - $342b = TimeInit - $344b = StartCountdown - $3459 = ResetGameTime - $3464 = CheckTorikan - $347b = CheckTorikan.failure - $347d = CheckTorikan.success - $3480 = HandleTimers - $34a6 = HandleTimers.reduce - $34b3 = HandleTimers.clock - $34cd = HandleTimers.go - SECTION: $34f1-$35a2 ($00b2 bytes) ["Progress Functions"] - $34f1 = SetProgress - $34fc = SetProgress.loop - $3500 = SetProgress.correct - $3527 = SetProgress.wvr_u1 - $3533 = SetProgress.wvr_u2 - $3541 = SetProgress.wvr_u3 - $354d = SetProgress.wvr_u4 - $355b = SetProgress.wvr_u5 - $3567 = SetProgress.wvr_u6 - $3575 = SetProgress.wvr_u7 - $3581 = SetProgress.wvr_u8 - $358f = SetProgress.wvr_u9 - $359b = SetProgress.wvr_u10 - SECTION: $35a3-$3634 ($0092 bytes) ["Code Entry Point"] - $35a3 = Main - $35cc = Main.notgbc - $35d2 = Main.wvr_u1 - $35f9 = EventLoop - $360f = EventLoop.eventloopjumps - $3618 = EventLoopPostHandler - $361a = EventLoopPostHandler.wvb_u2 - $362c = EventLoopPostHandler.vblankjumps - SECTION: $3635-$36ac ($0078 bytes) ["Hi Score Data"] - $3635 = sHiscoreDefaultData - SECTION: $36ad-$36fe ($0052 bytes) ["Tile Functions"] - $36ad = LoadTitleTiles - $36cb = LoadGameplayTiles - $36e1 = LoadGameplayTiles.gbc - $36f0 = LoadGameplayTiles.dmg - SECTION: $36ff-$373a ($003c bytes) ["Time Data"] - $36ff = sFramesToCS - SECTION: $373b-$3768 ($002e bytes) ["Memory Functions"] - $373b = UnsafeMemCopy - $3744 = SafeMemCopy.wvr_u1 - $3744 = SafeMemCopy - $3753 = UnsafeMemSet - $375b = SafeMemSet - $375b = SafeMemSet.wvr_u2 - SECTION: $3769-$378e ($0026 bytes) ["Gameplay Function Trampolines"] - $3769 = SwitchToGameplay - $3772 = SwitchToGameplayBig - $377b = GamePlayEventLoopHandler - $3785 = GamePlayBigEventLoopHandler - SECTION: $378f-$37b3 ($0025 bytes) ["Interrupt Initialization Functions"] - $378f = EnableScreenSquish - $37a9 = DisableScreenSquish - SECTION: $37b4-$37d5 ($0022 bytes) ["OAM Functions"] - $37b4 = CopyOAMHandler - $37c0 = ClearOAM - SECTION: $37d6-$37e4 ($000f bytes) ["Banking Functions"] - $37d6 = BankingInit - SECTION: $37e5-$37ee ($000a bytes) ["OAM DMA Code"] - $37e5 = OAMDMA - $37ef = OAMDMAEnd - EMPTY: $37ef-$3fff ($0811 bytes) - TOTAL EMPTY: $081a bytes + $2363 = UpdateGradeDMGT.mult4 + $2369 = UpdateGradeDMGT.mult3 + $236e = UpdateGradeDMGT.mult2 + $2372 = UpdateGradeDMGT.mult1 + $2373 = UpdateGradeDMGT.processgrade + $239c = UpdateGradeDMGT.increasegrademaybe + $23c0 = UpdateGradeDMGT.gotgm + $23ce = DecayGradeDMGT + $23f2 = DecayGradeDMGT.nodecay + $23f9 = DecayGradeDMGT.decay + $2407 = UpdateGradeTGM1 + $2411 = UpdateGradeTGM1.trygradeup + $242b = UpdateGradeTGM1.increasegrade + $2440 = UpdateGradeTGM1.skipjingle + $244d = UpdateGradeTGM1.maybegm + $2466 = UpdateGradeDEAT + $2472 = UpdateGradeDEAT.notgm + $248e = UpdateGradeDEAT.notm + $24b1 = UpdateGradeDEAT.disqualify + $24cf = UpdateGradeSHIR + $2512 = UpdateGradeSHIR.s5torikan + $2522 = UpdateGradeSHIR.s10torikan + $2531 = UpdateGradeSHIR.disqualify + $2540 = UpdateGradeSHIR.l1000 + $2556 = UpdateGradeSHIR.l500 + SECTION: $256c-$28e0 ($0375 bytes) ["Level Functions"] + $256c = LevelInit + $25d1 = SpecialLevelInit + $25df = SpecialLevelInit.jumps + $25f4 = SpecialLevelInit.dmgt + $25f9 = SpecialLevelInit.tgm1 + $25fe = SpecialLevelInit.tgm3 + $2603 = SpecialLevelInit.deat + $2608 = SpecialLevelInit.shir + $260d = SpecialLevelInit.chil + $2612 = SpecialLevelInit.myco + $2617 = SpecialLevelInit.loaddata + $264c = LevelUp + $2676 = LevelUp.doit + $26c0 = LevelUp.checknlevel + $26ee = !0 + $2706 = !1 + $270f = LevelUp.bellmaybe + $2728 = LevelUp.leveljinglemaybe + $2735 = LevelUp.checkspeedup + $2749 = !2 + $2756 = !3 + $2767 = !4 + $2774 = DoSpeedUp + $27b5 = CheckSpecialLevelConditions + $27e6 = CheckSpecialLevelConditions.override + $2801 = CheckSpecialLevelConditions.nooverride + $2807 = CheckSpecialLevelConditions.speciallock + $2828 = CheckSpecialLevelConditions.bones + $283d = CheckSpecialLevelConditions.enterthebonezone + $2842 = CheckSpecialLevelConditions.invis + $2857 = CheckSpecialLevelConditions.vanishoxyaction + $285c = CheckSpecialLevelConditions.killscreen + $286d = CheckSpecialLevelConditions.rip + $289d = CheckSpecialLevelConditions.staffroll + $28ab = CheckSpecialLevelConditions.justkill + $28bf = TriggerKillScreen + SECTION: $28e1-$2b96 ($02b6 bytes) ["Grading Data"] + $28e1 = sTGM1GradeScores + $2903 = sTGM3InternalGradeSystem + $29a3 = sTGM3GradeBoosts + $29c2 = sTGM3LevelMultiplier + $29c6 = sTGM3BaselineCOOL + $29cf = sTGM3REGRETConditions + $29e3 = sDMGTGrading + $2a97 = sDMGTGaugeLUT + SECTION: $2b97-$2e30 ($029a bytes) ["SFX Functions"] + $2b97 = SFXInit + $2bb9 = SFXPopQueue + $2bce = SFXPushQueue + $2bdf = SFXProcessQueue + $2bf0 = !0 + $2c0b = !1 + $2c0d = SFXTriggerNoise + $2c1a = !2 + $2c27 = !3 + $2c33 = SFXEnqueue + $2c48 = SFXEnqueue.findsfx + $2c5d = !4 + $2c6d = !5 + $2c7d = !6 + $2c8d = !7 + $2c9d = !8 + $2cad = !9 + $2cbd = !10 + $2ccd = !11 + $2cdd = !12 + $2ced = !13 + $2cfd = !14 + $2d0d = !15 + $2d1d = !16 + $2d2d = !17 + $2d3d = !18 + $2d4c = !19 + $2d5b = !20 + $2d6a = !21 + $2d79 = !22 + $2d87 = !23 + $2d95 = !24 + $2da2 = SFXKill + $2dcf = SFXPlayNoise + $2dda = SFXPlayNoise.noisereg + $2de7 = !25 + $2df1 = SFXPlayNoise.savenoiseplayhead + $2dfa = SFXPlay + $2e05 = !26 + $2e08 = SFXPlay.play + $2e14 = SFXPlay.getRegister + $2e1e = !27 + $2e28 = SFXPlay.savePlayhead + SECTION: $2e31-$3061 ($0231 bytes) ["RNG Functions"] + $2e31 = HarvestEntropy + $2e37 = HarvestEntropy.loop + $2e58 = RNGInit + $2e8e = !0 + $2ebe = RNGInit.complexinit + $2ed5 = !1 + $2ef0 = ShiftHistory + $2f0d = GetNextHellPiece + $2f12 = GetNextTGM1Piece + $2f15 = !2 + $2f2d = !3 + $2f2f = GetNextTGM2Piece + $2f32 = !4 + $2f4a = !5 + $2f4c = GetNextNesPiece + $2f5a = GetNextTGM3Piece + $2f5d = !6 + $2f80 = !7 + $2f83 = !8 + $2f93 = !9 + $2f9d = !10 + $2fab = !11 + $2fba = !12 + $2fc6 = !13 + $2fd2 = !14 + $2fde = !15 + $2fea = !16 + $2ff6 = !17 + $3002 = !18 + $3011 = GetNextPiece + $301f = GetNextPiece.nextpiecejumps + $302e = Next35Piece + $302e = !19 + $3038 = Next7Piece + $3038 = !20 + $3042 = NextByte + SECTION: $3062-$31ab ($014a bytes) ["Progress Data"] + $3062 = sProgressData + SECTION: $31ac-$328b ($00e0 bytes) ["Score Functions"] + $31ac = ScoreInit + $31d4 = IncreaseScore + $320c = IncreaseScore.doConvert + $320e = !0 + $3224 = IncreaseScore.carry + $3226 = IncreaseScore.postConvert + $3233 = !1 + $323a = IncreaseScore.preAddDigit + $3262 = IncreaseScore.addDigit + $3278 = IncreaseScore.nextDigit + SECTION: $328c-$3358 ($00cd bytes) ["Input Functions"] + $328c = InputInit + $329e = GetInput + $329e = GetInput.btns + $32ab = GetInput.readA + $32af = GetInput.setA + $32ba = GetInput.clearA + $32bd = GetInput.readB + $32c1 = GetInput.setB + $32cc = GetInput.clearB + $32cf = GetInput.readSelect + $32d3 = GetInput.setSelect + $32de = GetInput.clearSelect + $32e1 = GetInput.readStart + $32e5 = GetInput.setStart + $32f0 = GetInput.clearStart + $32f3 = GetInput.dpad + $3300 = GetInput.readUp + $3304 = GetInput.setUp + $330f = GetInput.clearUp + $3312 = GetInput.readDown + $3316 = GetInput.setDown + $3321 = GetInput.clearDown + $3324 = GetInput.readLeft + $3328 = GetInput.setLeft + $3333 = GetInput.clearLeft + $3336 = GetInput.readRight + $333a = GetInput.setRight + $3345 = GetInput.clearRight + $3348 = GetInput.priorities + $3353 = GetInput.zero + SECTION: $3359-$3423 ($00cb bytes) ["Title Function Trampolines"] + $3359 = SwitchToTitle + $3362 = TitleEventLoopHandler + $336c = TitleVBlankHandler + $3376 = PersistLevel + $3384 = DrawSpeedMain + $33d4 = DrawSpeedSettings + SECTION: $3424-$34e9 ($00c6 bytes) ["Time Functions"] + $3424 = TimeInit + $3444 = StartCountdown + $3452 = ResetGameTime + $345d = CheckTorikan + $3474 = CheckTorikan.failure + $3476 = CheckTorikan.success + $3479 = HandleTimers + $349f = HandleTimers.reduce + $34ac = HandleTimers.clock + $34c6 = HandleTimers.go + SECTION: $34ea-$359b ($00b2 bytes) ["Progress Functions"] + $34ea = SetProgress + $34f5 = SetProgress.loop + $34f9 = SetProgress.correct + $3520 = SetProgress.wvr_u1 + $352c = SetProgress.wvr_u2 + $353a = SetProgress.wvr_u3 + $3546 = SetProgress.wvr_u4 + $3554 = SetProgress.wvr_u5 + $3560 = SetProgress.wvr_u6 + $356e = SetProgress.wvr_u7 + $357a = SetProgress.wvr_u8 + $3588 = SetProgress.wvr_u9 + $3594 = SetProgress.wvr_u10 + SECTION: $359c-$362d ($0092 bytes) ["Code Entry Point"] + $359c = Main + $35c5 = Main.notgbc + $35cb = Main.wvr_u1 + $35f2 = EventLoop + $3608 = EventLoop.eventloopjumps + $3611 = EventLoopPostHandler + $3613 = EventLoopPostHandler.wvb_u2 + $3625 = EventLoopPostHandler.vblankjumps + SECTION: $362e-$36a5 ($0078 bytes) ["Hi Score Data"] + $362e = sHiscoreDefaultData + SECTION: $36a6-$36f7 ($0052 bytes) ["Tile Functions"] + $36a6 = LoadTitleTiles + $36c4 = LoadGameplayTiles + $36da = LoadGameplayTiles.gbc + $36e9 = LoadGameplayTiles.dmg + SECTION: $36f8-$3733 ($003c bytes) ["Time Data"] + $36f8 = sFramesToCS + SECTION: $3734-$3761 ($002e bytes) ["Memory Functions"] + $3734 = UnsafeMemCopy + $373d = SafeMemCopy.wvr_u1 + $373d = SafeMemCopy + $374c = UnsafeMemSet + $3754 = SafeMemSet + $3754 = SafeMemSet.wvr_u2 + SECTION: $3762-$3787 ($0026 bytes) ["Gameplay Function Trampolines"] + $3762 = SwitchToGameplay + $376b = SwitchToGameplayBig + $3774 = GamePlayEventLoopHandler + $377e = GamePlayBigEventLoopHandler + SECTION: $3788-$37ac ($0025 bytes) ["Interrupt Initialization Functions"] + $3788 = EnableScreenSquish + $37a2 = DisableScreenSquish + SECTION: $37ad-$37ce ($0022 bytes) ["OAM Functions"] + $37ad = CopyOAMHandler + $37b9 = ClearOAM + SECTION: $37cf-$37dd ($000f bytes) ["Banking Functions"] + $37cf = BankingInit + SECTION: $37de-$37e7 ($000a bytes) ["OAM DMA Code"] + $37de = OAMDMA + $37e8 = OAMDMAEnd + EMPTY: $37e8-$3fff ($0818 bytes) + TOTAL EMPTY: $0821 bytes ROMX bank #1: SECTION: $4000-$4007 ($0008 bytes) ["Bank ID BANK_OTHER"] @@ -2883,7 +2882,7 @@ HRAM bank #0: TOTAL EMPTY: $0003 bytes SUMMARY: - ROM0: 14310 bytes used / 2074 free + ROM0: 14303 bytes used / 2081 free ROMX: 63957 bytes used / 34347 free in 6 banks SRAM: 1551 bytes used / 6641 free in 1 bank WRAM0: 3679 bytes used / 417 free diff --git a/bin/DMGTRIS.pocket b/bin/DMGTRIS.pocket index 4799b2d..4221dd6 100644 Binary files a/bin/DMGTRIS.pocket and b/bin/DMGTRIS.pocket differ diff --git a/bin/DMGTRIS.sym b/bin/DMGTRIS.sym index eeadd0a..1178f77 100644 --- a/bin/DMGTRIS.sym +++ b/bin/DMGTRIS.sym @@ -219,200 +219,199 @@ 00:2343 UpdateGradeDMGT.addtonce 00:2347 UpdateGradeDMGT.tetris 00:234b UpdateGradeDMGT.levelmult -00:2363 UpdateGradeDMGT.mult5 -00:236a UpdateGradeDMGT.mult4 -00:2370 UpdateGradeDMGT.mult3 -00:2375 UpdateGradeDMGT.mult2 -00:2379 UpdateGradeDMGT.mult1 -00:237a UpdateGradeDMGT.processgrade -00:23a3 UpdateGradeDMGT.increasegrademaybe -00:23c7 UpdateGradeDMGT.gotgm -00:23d5 DecayGradeDMGT -00:23f9 DecayGradeDMGT.nodecay -00:2400 DecayGradeDMGT.decay -00:240e UpdateGradeTGM1 -00:2418 UpdateGradeTGM1.trygradeup -00:2432 UpdateGradeTGM1.increasegrade -00:2447 UpdateGradeTGM1.skipjingle -00:2454 UpdateGradeTGM1.maybegm -00:246d UpdateGradeDEAT -00:2479 UpdateGradeDEAT.notgm -00:2495 UpdateGradeDEAT.notm -00:24b8 UpdateGradeDEAT.disqualify -00:24d6 UpdateGradeSHIR -00:2519 UpdateGradeSHIR.s5torikan -00:2529 UpdateGradeSHIR.s10torikan -00:2538 UpdateGradeSHIR.disqualify -00:2547 UpdateGradeSHIR.l1000 -00:255d UpdateGradeSHIR.l500 -00:2573 LevelInit -00:25d8 SpecialLevelInit -00:25e6 SpecialLevelInit.jumps -00:25fb SpecialLevelInit.dmgt -00:2600 SpecialLevelInit.tgm1 -00:2605 SpecialLevelInit.tgm3 -00:260a SpecialLevelInit.deat -00:260f SpecialLevelInit.shir -00:2614 SpecialLevelInit.chil -00:2619 SpecialLevelInit.myco -00:261e SpecialLevelInit.loaddata -00:2653 LevelUp -00:267d LevelUp.doit -00:26c7 LevelUp.checknlevel -00:2716 LevelUp.bellmaybe -00:272f LevelUp.leveljinglemaybe -00:273c LevelUp.checkspeedup -00:277b DoSpeedUp -00:27bc CheckSpecialLevelConditions -00:27ed CheckSpecialLevelConditions.override -00:2808 CheckSpecialLevelConditions.nooverride -00:280e CheckSpecialLevelConditions.speciallock -00:282f CheckSpecialLevelConditions.bones -00:2844 CheckSpecialLevelConditions.enterthebonezone -00:2849 CheckSpecialLevelConditions.invis -00:285e CheckSpecialLevelConditions.vanishoxyaction -00:2863 CheckSpecialLevelConditions.killscreen -00:2874 CheckSpecialLevelConditions.rip -00:28a4 CheckSpecialLevelConditions.staffroll -00:28b2 CheckSpecialLevelConditions.justkill -00:28c6 TriggerKillScreen -00:28e8 sTGM1GradeScores -00:290a sTGM3InternalGradeSystem -00:29aa sTGM3GradeBoosts -00:29c9 sTGM3LevelMultiplier -00:29cd sTGM3BaselineCOOL -00:29d6 sTGM3REGRETConditions -00:29ea sDMGTGrading -00:2a9e sDMGTGaugeLUT -00:2b9e SFXInit -00:2bc0 SFXPopQueue -00:2bd5 SFXPushQueue -00:2be6 SFXProcessQueue -00:2c14 SFXTriggerNoise -00:2c3a SFXEnqueue -00:2c4f SFXEnqueue.findsfx -00:2da9 SFXKill -00:2dd6 SFXPlayNoise -00:2de1 SFXPlayNoise.noisereg -00:2df8 SFXPlayNoise.savenoiseplayhead -00:2e01 SFXPlay -00:2e0f SFXPlay.play -00:2e1b SFXPlay.getRegister -00:2e2f SFXPlay.savePlayhead -00:2e38 HarvestEntropy -00:2e3e HarvestEntropy.loop -00:2e5f RNGInit -00:2ec5 RNGInit.complexinit -00:2ef7 ShiftHistory -00:2f14 GetNextHellPiece -00:2f19 GetNextTGM1Piece -00:2f36 GetNextTGM2Piece -00:2f53 GetNextNesPiece -00:2f61 GetNextTGM3Piece -00:3018 GetNextPiece -00:3026 GetNextPiece.nextpiecejumps -00:3035 Next35Piece -00:303f Next7Piece -00:3049 NextByte -00:3069 sProgressData -00:31b3 ScoreInit -00:31db IncreaseScore -00:3213 IncreaseScore.doConvert -00:322b IncreaseScore.carry -00:322d IncreaseScore.postConvert -00:3241 IncreaseScore.preAddDigit -00:3269 IncreaseScore.addDigit -00:327f IncreaseScore.nextDigit -00:3293 InputInit -00:32a5 GetInput -00:32a5 GetInput.btns -00:32b2 GetInput.readA -00:32b6 GetInput.setA -00:32c1 GetInput.clearA -00:32c4 GetInput.readB -00:32c8 GetInput.setB -00:32d3 GetInput.clearB -00:32d6 GetInput.readSelect -00:32da GetInput.setSelect -00:32e5 GetInput.clearSelect -00:32e8 GetInput.readStart -00:32ec GetInput.setStart -00:32f7 GetInput.clearStart -00:32fa GetInput.dpad -00:3307 GetInput.readUp -00:330b GetInput.setUp -00:3316 GetInput.clearUp -00:3319 GetInput.readDown -00:331d GetInput.setDown -00:3328 GetInput.clearDown -00:332b GetInput.readLeft -00:332f GetInput.setLeft -00:333a GetInput.clearLeft -00:333d GetInput.readRight -00:3341 GetInput.setRight -00:334c GetInput.clearRight -00:334f GetInput.priorities -00:335a GetInput.zero -00:3360 SwitchToTitle -00:3369 TitleEventLoopHandler -00:3373 TitleVBlankHandler -00:337d PersistLevel -00:338b DrawSpeedMain -00:33db DrawSpeedSettings -00:342b TimeInit -00:344b StartCountdown -00:3459 ResetGameTime -00:3464 CheckTorikan -00:347b CheckTorikan.failure -00:347d CheckTorikan.success -00:3480 HandleTimers -00:34a6 HandleTimers.reduce -00:34b3 HandleTimers.clock -00:34cd HandleTimers.go -00:34f1 SetProgress -00:34fc SetProgress.loop -00:3500 SetProgress.correct -00:3527 SetProgress.wvr_u1 -00:3533 SetProgress.wvr_u2 -00:3541 SetProgress.wvr_u3 -00:354d SetProgress.wvr_u4 -00:355b SetProgress.wvr_u5 -00:3567 SetProgress.wvr_u6 -00:3575 SetProgress.wvr_u7 -00:3581 SetProgress.wvr_u8 -00:358f SetProgress.wvr_u9 -00:359b SetProgress.wvr_u10 -00:35a3 Main -00:35cc Main.notgbc -00:35d2 Main.wvr_u1 -00:35f9 EventLoop -00:360f EventLoop.eventloopjumps -00:3618 EventLoopPostHandler -00:361a EventLoopPostHandler.wvb_u2 -00:362c EventLoopPostHandler.vblankjumps -00:3635 sHiscoreDefaultData -00:36ad LoadTitleTiles -00:36cb LoadGameplayTiles -00:36e1 LoadGameplayTiles.gbc -00:36f0 LoadGameplayTiles.dmg -00:36ff sFramesToCS -00:373b UnsafeMemCopy -00:3744 SafeMemCopy.wvr_u1 -00:3744 SafeMemCopy -00:3753 UnsafeMemSet -00:375b SafeMemSet -00:375b SafeMemSet.wvr_u2 -00:3769 SwitchToGameplay -00:3772 SwitchToGameplayBig -00:377b GamePlayEventLoopHandler -00:3785 GamePlayBigEventLoopHandler -00:378f EnableScreenSquish -00:37a9 DisableScreenSquish -00:37b4 CopyOAMHandler -00:37c0 ClearOAM -00:37d6 BankingInit -00:37e5 OAMDMA -00:37ef OAMDMAEnd +00:2363 UpdateGradeDMGT.mult4 +00:2369 UpdateGradeDMGT.mult3 +00:236e UpdateGradeDMGT.mult2 +00:2372 UpdateGradeDMGT.mult1 +00:2373 UpdateGradeDMGT.processgrade +00:239c UpdateGradeDMGT.increasegrademaybe +00:23c0 UpdateGradeDMGT.gotgm +00:23ce DecayGradeDMGT +00:23f2 DecayGradeDMGT.nodecay +00:23f9 DecayGradeDMGT.decay +00:2407 UpdateGradeTGM1 +00:2411 UpdateGradeTGM1.trygradeup +00:242b UpdateGradeTGM1.increasegrade +00:2440 UpdateGradeTGM1.skipjingle +00:244d UpdateGradeTGM1.maybegm +00:2466 UpdateGradeDEAT +00:2472 UpdateGradeDEAT.notgm +00:248e UpdateGradeDEAT.notm +00:24b1 UpdateGradeDEAT.disqualify +00:24cf UpdateGradeSHIR +00:2512 UpdateGradeSHIR.s5torikan +00:2522 UpdateGradeSHIR.s10torikan +00:2531 UpdateGradeSHIR.disqualify +00:2540 UpdateGradeSHIR.l1000 +00:2556 UpdateGradeSHIR.l500 +00:256c LevelInit +00:25d1 SpecialLevelInit +00:25df SpecialLevelInit.jumps +00:25f4 SpecialLevelInit.dmgt +00:25f9 SpecialLevelInit.tgm1 +00:25fe SpecialLevelInit.tgm3 +00:2603 SpecialLevelInit.deat +00:2608 SpecialLevelInit.shir +00:260d SpecialLevelInit.chil +00:2612 SpecialLevelInit.myco +00:2617 SpecialLevelInit.loaddata +00:264c LevelUp +00:2676 LevelUp.doit +00:26c0 LevelUp.checknlevel +00:270f LevelUp.bellmaybe +00:2728 LevelUp.leveljinglemaybe +00:2735 LevelUp.checkspeedup +00:2774 DoSpeedUp +00:27b5 CheckSpecialLevelConditions +00:27e6 CheckSpecialLevelConditions.override +00:2801 CheckSpecialLevelConditions.nooverride +00:2807 CheckSpecialLevelConditions.speciallock +00:2828 CheckSpecialLevelConditions.bones +00:283d CheckSpecialLevelConditions.enterthebonezone +00:2842 CheckSpecialLevelConditions.invis +00:2857 CheckSpecialLevelConditions.vanishoxyaction +00:285c CheckSpecialLevelConditions.killscreen +00:286d CheckSpecialLevelConditions.rip +00:289d CheckSpecialLevelConditions.staffroll +00:28ab CheckSpecialLevelConditions.justkill +00:28bf TriggerKillScreen +00:28e1 sTGM1GradeScores +00:2903 sTGM3InternalGradeSystem +00:29a3 sTGM3GradeBoosts +00:29c2 sTGM3LevelMultiplier +00:29c6 sTGM3BaselineCOOL +00:29cf sTGM3REGRETConditions +00:29e3 sDMGTGrading +00:2a97 sDMGTGaugeLUT +00:2b97 SFXInit +00:2bb9 SFXPopQueue +00:2bce SFXPushQueue +00:2bdf SFXProcessQueue +00:2c0d SFXTriggerNoise +00:2c33 SFXEnqueue +00:2c48 SFXEnqueue.findsfx +00:2da2 SFXKill +00:2dcf SFXPlayNoise +00:2dda SFXPlayNoise.noisereg +00:2df1 SFXPlayNoise.savenoiseplayhead +00:2dfa SFXPlay +00:2e08 SFXPlay.play +00:2e14 SFXPlay.getRegister +00:2e28 SFXPlay.savePlayhead +00:2e31 HarvestEntropy +00:2e37 HarvestEntropy.loop +00:2e58 RNGInit +00:2ebe RNGInit.complexinit +00:2ef0 ShiftHistory +00:2f0d GetNextHellPiece +00:2f12 GetNextTGM1Piece +00:2f2f GetNextTGM2Piece +00:2f4c GetNextNesPiece +00:2f5a GetNextTGM3Piece +00:3011 GetNextPiece +00:301f GetNextPiece.nextpiecejumps +00:302e Next35Piece +00:3038 Next7Piece +00:3042 NextByte +00:3062 sProgressData +00:31ac ScoreInit +00:31d4 IncreaseScore +00:320c IncreaseScore.doConvert +00:3224 IncreaseScore.carry +00:3226 IncreaseScore.postConvert +00:323a IncreaseScore.preAddDigit +00:3262 IncreaseScore.addDigit +00:3278 IncreaseScore.nextDigit +00:328c InputInit +00:329e GetInput +00:329e GetInput.btns +00:32ab GetInput.readA +00:32af GetInput.setA +00:32ba GetInput.clearA +00:32bd GetInput.readB +00:32c1 GetInput.setB +00:32cc GetInput.clearB +00:32cf GetInput.readSelect +00:32d3 GetInput.setSelect +00:32de GetInput.clearSelect +00:32e1 GetInput.readStart +00:32e5 GetInput.setStart +00:32f0 GetInput.clearStart +00:32f3 GetInput.dpad +00:3300 GetInput.readUp +00:3304 GetInput.setUp +00:330f GetInput.clearUp +00:3312 GetInput.readDown +00:3316 GetInput.setDown +00:3321 GetInput.clearDown +00:3324 GetInput.readLeft +00:3328 GetInput.setLeft +00:3333 GetInput.clearLeft +00:3336 GetInput.readRight +00:333a GetInput.setRight +00:3345 GetInput.clearRight +00:3348 GetInput.priorities +00:3353 GetInput.zero +00:3359 SwitchToTitle +00:3362 TitleEventLoopHandler +00:336c TitleVBlankHandler +00:3376 PersistLevel +00:3384 DrawSpeedMain +00:33d4 DrawSpeedSettings +00:3424 TimeInit +00:3444 StartCountdown +00:3452 ResetGameTime +00:345d CheckTorikan +00:3474 CheckTorikan.failure +00:3476 CheckTorikan.success +00:3479 HandleTimers +00:349f HandleTimers.reduce +00:34ac HandleTimers.clock +00:34c6 HandleTimers.go +00:34ea SetProgress +00:34f5 SetProgress.loop +00:34f9 SetProgress.correct +00:3520 SetProgress.wvr_u1 +00:352c SetProgress.wvr_u2 +00:353a SetProgress.wvr_u3 +00:3546 SetProgress.wvr_u4 +00:3554 SetProgress.wvr_u5 +00:3560 SetProgress.wvr_u6 +00:356e SetProgress.wvr_u7 +00:357a SetProgress.wvr_u8 +00:3588 SetProgress.wvr_u9 +00:3594 SetProgress.wvr_u10 +00:359c Main +00:35c5 Main.notgbc +00:35cb Main.wvr_u1 +00:35f2 EventLoop +00:3608 EventLoop.eventloopjumps +00:3611 EventLoopPostHandler +00:3613 EventLoopPostHandler.wvb_u2 +00:3625 EventLoopPostHandler.vblankjumps +00:362e sHiscoreDefaultData +00:36a6 LoadTitleTiles +00:36c4 LoadGameplayTiles +00:36da LoadGameplayTiles.gbc +00:36e9 LoadGameplayTiles.dmg +00:36f8 sFramesToCS +00:3734 UnsafeMemCopy +00:373d SafeMemCopy.wvr_u1 +00:373d SafeMemCopy +00:374c UnsafeMemSet +00:3754 SafeMemSet +00:3754 SafeMemSet.wvr_u2 +00:3762 SwitchToGameplay +00:376b SwitchToGameplayBig +00:3774 GamePlayEventLoopHandler +00:377e GamePlayBigEventLoopHandler +00:3788 EnableScreenSquish +00:37a2 DisableScreenSquish +00:37ad CopyOAMHandler +00:37b9 ClearOAM +00:37cf BankingInit +00:37de OAMDMA +00:37e8 OAMDMAEnd 01:4008 sDMGTSpeedCurve 01:4203 sDMGTSpeedCurveEnd 01:4205 sDMGTSpeedCurveSpecialData diff --git a/src/grading.asm b/src/grading.asm index cc91f23..e493079 100644 --- a/src/grading.asm +++ b/src/grading.asm @@ -173,39 +173,39 @@ sDMGTGrading: db 125, 10, 20, 40, 50 ; Grade 9 — frames/decay, single base, double base, triple base, tetris base db 80, 10, 20, 30, 40 ; Grade 8 — frames/decay, single base, double base, triple base, tetris base db 80, 10, 20, 30, 40 ; Grade 7 — frames/decay, single base, double base, triple base, tetris base - db 50, 10, 20, 30, 40 ; Grade 6 — frames/decay, single base, double base, triple base, tetris base - db 45, 5, 20, 30, 40 ; Grade 5 — frames/decay, single base, double base, triple base, tetris base - db 45, 5, 20, 30, 40 ; Grade 4 — frames/decay, single base, double base, triple base, tetris base - db 45, 5, 20, 30, 40 ; Grade 3 — frames/decay, single base, double base, triple base, tetris base - db 40, 5, 20, 20, 30 ; Grade 2 — frames/decay, single base, double base, triple base, tetris base - db 40, 5, 20, 20, 30 ; Grade 1 — frames/decay, single base, double base, triple base, tetris base - db 40, 2, 20, 20, 30 ; Grade S1 — frames/decay, single base, double base, triple base, tetris base - db 40, 2, 20, 20, 30 ; Grade S2 — frames/decay, single base, double base, triple base, tetris base - db 40, 2, 20, 20, 30 ; Grade S3 — frames/decay, single base, double base, triple base, tetris base - db 30, 2, 20, 20, 30 ; Grade S4 — frames/decay, single base, double base, triple base, tetris base - db 30, 2, 15, 20, 30 ; Grade S5 — frames/decay, single base, double base, triple base, tetris base - db 30, 2, 15, 20, 30 ; Grade S6 — frames/decay, single base, double base, triple base, tetris base + db 40, 10, 20, 30, 40 ; Grade 6 — frames/decay, single base, double base, triple base, tetris base + db 40, 5, 20, 30, 40 ; Grade 5 — frames/decay, single base, double base, triple base, tetris base + db 40, 5, 20, 30, 40 ; Grade 4 — frames/decay, single base, double base, triple base, tetris base + db 40, 5, 20, 30, 40 ; Grade 3 — frames/decay, single base, double base, triple base, tetris base + db 40, 2, 20, 20, 30 ; Grade 2 — frames/decay, single base, double base, triple base, tetris base + db 40, 2, 15, 20, 30 ; Grade 1 — frames/decay, single base, double base, triple base, tetris base + db 20, 2, 15, 20, 30 ; Grade S1 — frames/decay, single base, double base, triple base, tetris base + db 20, 2, 15, 20, 30 ; Grade S2 — frames/decay, single base, double base, triple base, tetris base + db 20, 2, 15, 20, 30 ; Grade S3 — frames/decay, single base, double base, triple base, tetris base + db 20, 2, 15, 20, 30 ; Grade S4 — frames/decay, single base, double base, triple base, tetris base + db 20, 2, 15, 20, 30 ; Grade S5 — frames/decay, single base, double base, triple base, tetris base + db 20, 2, 15, 20, 30 ; Grade S6 — frames/decay, single base, double base, triple base, tetris base db 20, 2, 15, 20, 30 ; Grade S7 — frames/decay, single base, double base, triple base, tetris base db 20, 2, 15, 20, 30 ; Grade S8 — frames/decay, single base, double base, triple base, tetris base - db 20, 2, 15, 20, 30 ; Grade S9 — frames/decay, single base, double base, triple base, tetris base - db 20, 2, 15, 20, 30 ; Grade S10 — frames/decay, single base, double base, triple base, tetris base - db 20, 2, 15, 20, 30 ; Grade S11 — frames/decay, single base, double base, triple base, tetris base + db 15, 2, 15, 20, 30 ; Grade S9 — frames/decay, single base, double base, triple base, tetris base + db 15, 2, 15, 20, 30 ; Grade S10 — frames/decay, single base, double base, triple base, tetris base + db 15, 2, 15, 20, 30 ; Grade S11 — frames/decay, single base, double base, triple base, tetris base db 15, 2, 15, 20, 30 ; Grade S12 — frames/decay, single base, double base, triple base, tetris base - db 15, 2, 15, 20, 30 ; Grade S13 — frames/decay, single base, double base, triple base, tetris base - db 15, 2, 15, 15, 30 ; Grade m1 — frames/decay, single base, double base, triple base, tetris base - db 15, 2, 15, 15, 30 ; Grade m2 — frames/decay, single base, double base, triple base, tetris base - db 15, 2, 15, 15, 30 ; Grade m3 — frames/decay, single base, double base, triple base, tetris base - db 15, 2, 15, 15, 30 ; Grade m4 — frames/decay, single base, double base, triple base, tetris base + db 15, 2, 12, 15, 30 ; Grade S13 — frames/decay, single base, double base, triple base, tetris base + db 15, 2, 12, 15, 30 ; Grade m1 — frames/decay, single base, double base, triple base, tetris base + db 15, 2, 12, 15, 30 ; Grade m2 — frames/decay, single base, double base, triple base, tetris base + db 15, 2, 12, 15, 30 ; Grade m3 — frames/decay, single base, double base, triple base, tetris base + db 15, 2, 12, 15, 30 ; Grade m4 — frames/decay, single base, double base, triple base, tetris base db 15, 2, 12, 15, 30 ; Grade m5 — frames/decay, single base, double base, triple base, tetris base - db 15, 2, 12, 15, 30 ; Grade m6 — frames/decay, single base, double base, triple base, tetris base - db 15, 2, 12, 15, 30 ; Grade m7 — frames/decay, single base, double base, triple base, tetris base + db 10, 2, 12, 15, 30 ; Grade m6 — frames/decay, single base, double base, triple base, tetris base + db 10, 2, 12, 15, 30 ; Grade m7 — frames/decay, single base, double base, triple base, tetris base db 10, 2, 12, 15, 30 ; Grade m8 — frames/decay, single base, double base, triple base, tetris base - db 5, 2, 12, 15, 30 ; Grade m9 — frames/decay, single base, double base, triple base, tetris base - db 5, 2, 12, 13, 30 ; Grade M — frames/decay, single base, double base, triple base, tetris base - db 5, 2, 12, 13, 30 ; Grade MK — frames/decay, single base, double base, triple base, tetris base - db 5, 2, 12, 13, 30 ; Grade MV — frames/decay, single base, double base, triple base, tetris base - db 5, 2, 12, 13, 30 ; Grade MO — frames/decay, single base, double base, triple base, tetris base - db 5, 2, 8, 10, 20 ; Grade MM — frames/decay, single base, double base, triple base, tetris base + db 5, 2, 8, 13, 30 ; Grade m9 — frames/decay, single base, double base, triple base, tetris base + db 5, 2, 8, 13, 30 ; Grade M — frames/decay, single base, double base, triple base, tetris base + db 5, 2, 8, 13, 30 ; Grade MK — frames/decay, single base, double base, triple base, tetris base + db 5, 1, 8, 13, 30 ; Grade MV — frames/decay, single base, double base, triple base, tetris base + db 5, 1, 8, 13, 20 ; Grade MO — frames/decay, single base, double base, triple base, tetris base + db 4, 1, 4, 10, 20 ; Grade MM — frames/decay, single base, double base, triple base, tetris base ; No entry for GM. We're done there. sDMGTGaugeLUT: @@ -531,9 +531,9 @@ UpdateGradeDMGT:: .levelmult ld a, [hCLevel+CLEVEL_THOUSANDS] ; thousands cp a, 1 - jr nc, .mult5 + jr nc, .mult4 ld a, [hCLevel+CLEVEL_HUNDREDS] ; hundreds - cp a, 7 + cp a, 9 jr nc, .mult4 cp a, 5 jr nc, .mult3 @@ -541,14 +541,6 @@ UpdateGradeDMGT:: jr nc, .mult2 jr .mult1 -.mult5 - ld a, d - add a, d - add a, d - add a, d - add a, d - jr .processgrade - .mult4 ld a, d add a, d