diff --git a/bin/PandorasBlocks.gbc b/bin/PandorasBlocks.gbc index a4c1a5f..2e33753 100644 Binary files a/bin/PandorasBlocks.gbc and b/bin/PandorasBlocks.gbc differ diff --git a/bin/PandorasBlocks.map b/bin/PandorasBlocks.map index 6ddb888..927557e 100644 --- a/bin/PandorasBlocks.map +++ b/bin/PandorasBlocks.map @@ -115,7 +115,7 @@ ROM0 bank #0: $1893 = !11 $18e1 = !12 $192f = !13 - SECTION: $1980-$1f9b ($061c bytes) ["Domain Specific Functions"] + SECTION: $1980-$1fae ($062f bytes) ["Domain Specific Functions"] $1980 = SetPal $198d = SetPal.darker $1993 = SetPal.lighter @@ -133,408 +133,410 @@ ROM0 bank #0: $1a6c = ApplyNext.skipoffn $1b08 = ApplyNext.done $1b0b = ApplyHold - $1b13 = ApplyHold.bone - $1b32 = ApplyHold.nobone - $1b4e = ApplyHold.hide - $1b60 = ApplyHold.show - $1b70 = ApplyHold.x - $1b80 = ApplyHold.regular - $1b86 = ApplyHold.postoffsets - $1b89 = ApplyHold.getoffh - $1b94 = ApplyHold.skipoffh - $1bce = ApplyTime - $1c1f = ApplyTime.loop0 - $1c4e = ApplyTime.loop1 - $1ca3 = ApplyNumbers8 - $1d05 = ApplyNumbers8.one - $1d0f = ApplyNumbers8.two - $1d19 = ApplyNumbers8.three - $1d23 = ApplyNumbers8.four - $1d2d = ApplyNumbers8.five - $1d37 = ApplyNumbers8.six - $1d41 = ApplyNumbers8.seven - $1d4b = ApplyNumbers8.eight - $1d54 = ApplyNumbers4 - $1d82 = ApplyNumbers4.one - $1d8c = ApplyNumbers4.two - $1d96 = ApplyNumbers4.three - $1da0 = ApplyNumbers4.four - $1da9 = SetNumberSpritePositions - $1ec0 = GradeRendering - $1ef3 = GradeRendering.effect - $1f03 = GradeRendering.noeffect - $1f0b = GradeRendering.drawgrade - $1f12 = GradeRendering.regulargrade - $1f1a = GradeRendering.sgrade - $1f30 = GradeRendering.hisgrade - $1f46 = GradeRendering.mgrade - $1f5c = GradeRendering.lettergrade - $1f79 = GradeRendering.mk - $1f7f = GradeRendering.mv - $1f85 = GradeRendering.mo - $1f8b = GradeRendering.mm - $1f91 = GradeRendering.gmgrade - SECTION: $1f9c-$24ba ($051f bytes) ["SRAM Functions"] - $1f9c = RestoreSRAM - $1fcb = TrustedLoad - $1fdc = !0 - $1fed = !1 - $1ffe = !2 - $200f = !3 - $2020 = !4 - $2031 = !5 - $2040 = !6 - $2051 = !7 - $207f = TrustedLoad.jumps - $2097 = TrustedLoad.dmgt - $209d = TrustedLoad.tgm1 - $20a3 = TrustedLoad.tgm3 - $20a9 = TrustedLoad.deat - $20af = TrustedLoad.shir - $20b5 = TrustedLoad.chil - $20bb = TrustedLoad.myco - $20c1 = TrustedLoad.search - $20d3 = TrustedLoad.notfound - $20da = TrustedLoad.fallback - $20f5 = InitializeSRAM - $2256 = ResetScores - $2264 = ResetScores.jumps - $2279 = ResetScores.dmgt - $2285 = ResetScores.tgm1 - $2291 = ResetScores.tgm3 - $229d = ResetScores.deat - $22a9 = ResetScores.shir - $22b5 = ResetScores.chil - $22c1 = ResetScores.myco - $22cd = NextProfile - $22d6 = NextProfile.update - $22d9 = ChangeProfile - $22d9 = ChangeProfile.backup - $2307 = ChangeProfile.first - $2315 = ChangeProfile.second - $2323 = ChangeProfile.third - $2331 = ChangeProfile.fourth - $233f = ChangeProfile.fifth - $234d = ChangeProfile.sixth - $235b = ChangeProfile.seventh - $2369 = ChangeProfile.eighth - $2377 = ChangeProfile.ninth - $2385 = ChangeProfile.tenth - $2393 = ChangeProfile.restore - $23c2 = ChangeProfile.lfirst - $23d1 = ChangeProfile.lsecond - $23e0 = ChangeProfile.lthird - $23ef = ChangeProfile.lfourth - $23fe = ChangeProfile.lfifth - $240d = ChangeProfile.lsixth - $241c = ChangeProfile.lseventh - $242b = ChangeProfile.leighth - $243a = ChangeProfile.lninth - $2449 = ChangeProfile.ltenth - $2458 = ResetProfile - SECTION: $24bb-$2916 ($045c bytes) ["Level Functions"] - $24bb = LevelInit - $252b = SpecialLevelInit - $2539 = SpecialLevelInit.jumps - $254e = SpecialLevelInit.dmgt - $2553 = SpecialLevelInit.tgm1 - $2558 = SpecialLevelInit.tgm3 - $255d = SpecialLevelInit.deat - $2562 = SpecialLevelInit.shir - $2567 = SpecialLevelInit.chil - $256c = SpecialLevelInit.myco - $2571 = SpecialLevelInit.loaddata - $25a6 = LevelUp - $25d0 = LevelUp.doit - $260f = LevelUp.checknlevel - $2643 = !0 - $265b = !1 - $2664 = LevelUp.checkcool - $2685 = LevelUp.checkregret - $26a2 = LevelUp.resetsectiontimer - $26c5 = LevelUp.regretavailable - $26c9 = LevelUp.bellmaybe - $26e5 = LevelUp.leveljinglemaybe - $26f5 = AdjustSpeedCurve - $26fb = AdjustSpeedCurve.docheck - $26fb = AdjustSpeedCurve.checkthousands - $270a = AdjustSpeedCurve.checkhundreds - $2717 = AdjustSpeedCurve.checktens - $2726 = AdjustSpeedCurve.checkones - $2731 = AdjustSpeedCurveForced - $276c = AdjustSpeedCurveForced.continue - $2771 = BuildTrueCLevel - $2799 = BuildTrueCLevel.thousands - $27ae = CheckSpecialLevelConditions - $27df = CheckSpecialLevelConditions.override - $27fa = CheckSpecialLevelConditions.nooverride - $2800 = CheckSpecialLevelConditions.speciallock - $2824 = CheckSpecialLevelConditions.bones - $2839 = CheckSpecialLevelConditions.enterthebonezone - $283e = CheckSpecialLevelConditions.invis - $2853 = CheckSpecialLevelConditions.vanishoxyaction - $2858 = CheckSpecialLevelConditions.killscreen - $2869 = CheckSpecialLevelConditions.rip - $2899 = CheckSpecialLevelConditions.staffroll - $28a7 = CheckSpecialLevelConditions.justkill - $28bb = TriggerKillScreen - $28dd = GetSection - $28eb = GetSectionBCD - $28f4 = GetAdjustedSection - $2902 = GetAdjustedSectionBCD - $290b = SkipSection - SECTION: $2917-$2c84 ($036e bytes) ["SFX Functions"] - $2917 = SFXInit - $2945 = SFXPopQueue - $295a = SFXPushQueue - $296b = SFXProcessQueue - $297c = !0 - $2997 = !1 - $2999 = SFXTriggerNoise - $29a6 = !2 - $29ba = !3 - $29c6 = SFXEnqueue - $29df = SFXEnqueue.findsfx - $29fe = !4 - $2a0e = !5 - $2a1e = !6 - $2a2e = !7 - $2a3e = !8 - $2a4e = !9 - $2a5e = !10 - $2a6e = !11 - $2a7e = !12 - $2a8e = !13 - $2a9e = !14 - $2aae = !15 - $2abe = !16 - $2ace = !17 - $2ade = !18 - $2aed = !19 - $2afc = !20 - $2b0b = !21 - $2b1a = !22 - $2b29 = !23 - $2b38 = !24 - $2b45 = SFXKill - $2b7b = SFXPlayNoise - $2b86 = SFXPlayNoise.noisereg - $2b93 = !25 - $2b9d = SFXPlayNoise.savenoiseplayhead - $2ba6 = SFXPlay - $2bab = SFXPlay.play - $2bb5 = SFXPlay.getRegister - $2bb6 = SFXPlay.checkEndOfSong - $2bc8 = SFXPlay.checkEndOfSample - $2bcc = SFXPlay.checkChangeBank - $2bd6 = SFXPlay.checkChangePlayHead - $2be9 = SFXPlay.applyRegister - $2bee = SFXPlay.savePlayhead - $2bf7 = SFXGoRoll - $2c34 = SFXEndOfGame - SECTION: $2c85-$2eb4 ($0230 bytes) ["RNG Functions"] - $2c85 = HarvestEntropy - $2c8b = HarvestEntropy.loop - $2cac = RNGInit - $2ce2 = !0 - $2d12 = RNGInit.complexinit - $2d29 = !1 - $2d44 = ShiftHistory - $2d61 = GetNextHellPiece - $2d66 = GetNextTGM1Piece - $2d69 = !2 - $2d81 = !3 - $2d83 = GetNextTGM2Piece - $2d86 = !4 - $2d9e = !5 - $2da0 = GetNextNesPiece - $2dae = GetNextTGM3Piece - $2db1 = !6 - $2dd4 = !7 - $2dd7 = !8 - $2de7 = !9 - $2df1 = !10 - $2dff = !11 - $2e0d = !12 - $2e19 = !13 - $2e25 = !14 - $2e31 = !15 - $2e3d = !16 - $2e49 = !17 - $2e55 = !18 - $2e64 = GetNextPiece - $2e72 = GetNextPiece.nextpiecejumps - $2e81 = Next35Piece - $2e81 = !19 - $2e8b = Next7Piece - $2e8b = !20 - $2e95 = NextByte - SECTION: $2eb5-$3079 ($01c5 bytes) ["Hi Score Functions"] - $2eb5 = CheckAndAddHiscore - $2ebf = CheckAndAddHiscore.checkloop - $2ec4 = CheckAndAddHiscore.checkgrade - $2ecd = CheckAndAddHiscore.oldgraded - $2edc = CheckAndAddHiscore.oldungraded - $2ee3 = CheckAndAddHiscore.checklevel - $2f08 = CheckAndAddHiscore.checkscore - $2f4b = CheckAndAddHiscore.notbetter - $2f58 = CheckAndAddHiscore.better - $2f5a = InsertHiScore - $2f5a = InsertHiScore.copylower - $2f6b = InsertHiScore.copyupper - $2f77 = !0 - $2f8b = InsertHiScore.findrow - $2f97 = !1 - $2f9b = InsertHiScore.insert - $2ff4 = InsertHiScore.persist - $3005 = GetHiScoreEntry - $3019 = !2 - $301d = GetHiScoreEntry.store - $3026 = InitTargetHSTable - $3031 = InitTargetHSTable.jumps - $3046 = InitTargetHSTable.dmgt - $304b = InitTargetHSTable.tgm1 - $3050 = InitTargetHSTable.tgm3 - $3055 = InitTargetHSTable.deat - $305a = InitTargetHSTable.shir - $305f = InitTargetHSTable.chil - $3064 = InitTargetHSTable.myco - $3067 = InitTargetHSTable.store - SECTION: $307a-$31c3 ($014a bytes) ["Progress Data"] - $307a = sProgressData - SECTION: $31c4-$330a ($0147 bytes) ["Time Functions"] - $31c4 = TimeInit - $31ed = StartCountdown - $31fb = ResetGameTime - $320f = CheckTorikan - $3225 = CheckTorikan.failure - $3227 = CheckTorikan.success - $322a = HandleTimers - $3250 = HandleTimers.reduce - $325d = HandleTimers.clock - $3277 = HandleTimers.go - $329b = CheckCOOL_REGRET - $32b2 = CheckCOOL_REGRET.failure - $32b4 = CheckCOOL_REGRET.success - $32b7 = HandleSectionTimers - $32d3 = HandleSectionTimers.continue - $32e7 = HandleSectionTimers.sectiongo - SECTION: $330b-$344a ($0140 bytes) ["Hi Score Data"] - $330b = sHiscoreDefaultData - SECTION: $344b-$3574 ($012a bytes) ["Input Functions"] - $344b = InputInit - $345d = GetInput - $345d = GetInput.btns - $346a = GetInput.readA - $346e = GetInput.setA - $3479 = GetInput.clearA - $347c = GetInput.readB - $3480 = GetInput.setB - $348b = GetInput.clearB - $348e = GetInput.readSelect - $3492 = GetInput.setSelect - $349d = GetInput.clearSelect - $34a0 = GetInput.readStart - $34a4 = GetInput.setStart - $34af = GetInput.clearStart - $34b2 = GetInput.dpad - $34bf = GetInput.readUp - $34c3 = GetInput.setUp - $34ce = GetInput.clearUp - $34d1 = GetInput.readDown - $34d5 = GetInput.setDown - $34e0 = GetInput.clearDown - $34e3 = GetInput.readLeft - $34e7 = GetInput.setLeft - $34f2 = GetInput.clearLeft - $34f5 = GetInput.readRight - $34f9 = GetInput.setRight - $3504 = GetInput.clearRight - $3507 = GetInput.priorities - $3514 = GetInput.jumps - $3523 = GetInput.dlru - $3533 = GetInput.ulrd - $3543 = GetInput.lrud - $354e = GetInput.udlr - $3559 = GetInput.zeroud - $355f = GetInput.zerolr - $3565 = GetInput.zerolrd - $356d = GetInput.zerolru - SECTION: $3575-$3654 ($00e0 bytes) ["Score Functions"] - $3575 = ScoreInit - $359d = IncreaseScore - $35d5 = IncreaseScore.doConvert - $35d7 = !0 - $35ed = IncreaseScore.carry - $35ef = IncreaseScore.postConvert - $35fc = !1 - $3603 = IncreaseScore.preAddDigit - $362b = IncreaseScore.addDigit - $3641 = IncreaseScore.nextDigit - SECTION: $3655-$371f ($00cb bytes) ["Title Function Trampolines"] - $3655 = SwitchToTitle - $365e = TitleEventLoopHandler - $3668 = TitleVBlankHandler - $3672 = PersistLevel - $3680 = DrawSpeedMain - $36d0 = DrawSpeedSettings - SECTION: $3720-$37d0 ($00b1 bytes) ["Progress Functions"] - $3720 = SetProgress - $372a = SetProgress.loop - $372e = SetProgress.correct - $3755 = SetProgress.wvr_u1 - $3761 = SetProgress.wvr_u2 - $376f = SetProgress.wvr_u3 - $377b = SetProgress.wvr_u4 - $3789 = SetProgress.wvr_u5 - $3795 = SetProgress.wvr_u6 - $37a3 = SetProgress.wvr_u7 - $37af = SetProgress.wvr_u8 - $37bd = SetProgress.wvr_u9 - $37c9 = SetProgress.wvr_u10 - SECTION: $37d1-$3871 ($00a1 bytes) ["Code Entry Point"] - $37d1 = Main - $37fa = Main.notgbc - $3806 = Main.wvr_u1 - $3833 = EventLoop - $384c = EventLoop.eventloopjumps - $3855 = EventLoopPostHandler - $3857 = EventLoopPostHandler.wvb_u2 - $3869 = EventLoopPostHandler.vblankjumps - SECTION: $3872-$38a7 ($0036 bytes) ["Grading Functions Unbanked"] - $3872 = GradeInit - $387b = UpdateGrade - $3884 = DecayGradeProcess - $388d = DecayGradeDelay - $3896 = TGM3REGRETHandler - $389f = TGM3COOLHandler - SECTION: $38a8-$38d5 ($002e bytes) ["Memory Functions"] - $38a8 = UnsafeMemCopy - $38b1 = SafeMemCopy.wvr_u1 - $38b1 = SafeMemCopy - $38c0 = UnsafeMemSet - $38c8 = SafeMemSet - $38c8 = SafeMemSet.wvr_u2 - SECTION: $38d6-$38fb ($0026 bytes) ["Gameplay Function Trampolines"] - $38d6 = SwitchToGameplay - $38df = SwitchToGameplayBig - $38e8 = GamePlayEventLoopHandler - $38f2 = GamePlayBigEventLoopHandler - SECTION: $38fc-$3920 ($0025 bytes) ["Interrupt Initialization Functions"] - $38fc = EnableScreenSquish - $3916 = DisableScreenSquish - SECTION: $3921-$3942 ($0022 bytes) ["OAM Functions"] - $3921 = CopyOAMHandler - $392d = ClearOAM - SECTION: $3943-$3953 ($0011 bytes) ["Intro Effect Trampoline"] - $3943 = DoIntroEffect - SECTION: $3954-$3962 ($000f bytes) ["Banking Functions"] - $3954 = BankingInit - SECTION: $3963-$396c ($000a bytes) ["OAM DMA Code"] - $3963 = OAMDMA - $396d = OAMDMAEnd - EMPTY: $396d-$3fff ($0693 bytes) - TOTAL EMPTY: $069b bytes + $1b1e = ApplyHold.drawhold + $1b26 = ApplyHold.bone + $1b45 = ApplyHold.nobone + $1b61 = ApplyHold.hide + $1b73 = ApplyHold.show + $1b83 = ApplyHold.x + $1b93 = ApplyHold.regular + $1b99 = ApplyHold.postoffsets + $1b9c = ApplyHold.getoffh + $1ba7 = ApplyHold.skipoffh + $1be1 = ApplyTime + $1c32 = ApplyTime.loop0 + $1c61 = ApplyTime.loop1 + $1cb6 = ApplyNumbers8 + $1d18 = ApplyNumbers8.one + $1d22 = ApplyNumbers8.two + $1d2c = ApplyNumbers8.three + $1d36 = ApplyNumbers8.four + $1d40 = ApplyNumbers8.five + $1d4a = ApplyNumbers8.six + $1d54 = ApplyNumbers8.seven + $1d5e = ApplyNumbers8.eight + $1d67 = ApplyNumbers4 + $1d95 = ApplyNumbers4.one + $1d9f = ApplyNumbers4.two + $1da9 = ApplyNumbers4.three + $1db3 = ApplyNumbers4.four + $1dbc = SetNumberSpritePositions + $1ed3 = GradeRendering + $1f06 = GradeRendering.effect + $1f16 = GradeRendering.noeffect + $1f1e = GradeRendering.drawgrade + $1f25 = GradeRendering.regulargrade + $1f2d = GradeRendering.sgrade + $1f43 = GradeRendering.hisgrade + $1f59 = GradeRendering.mgrade + $1f6f = GradeRendering.lettergrade + $1f8c = GradeRendering.mk + $1f92 = GradeRendering.mv + $1f98 = GradeRendering.mo + $1f9e = GradeRendering.mm + $1fa4 = GradeRendering.gmgrade + SECTION: $1faf-$24cd ($051f bytes) ["SRAM Functions"] + $1faf = RestoreSRAM + $1fde = TrustedLoad + $1fef = !0 + $2000 = !1 + $2011 = !2 + $2022 = !3 + $2033 = !4 + $2044 = !5 + $2053 = !6 + $2064 = !7 + $2092 = TrustedLoad.jumps + $20aa = TrustedLoad.dmgt + $20b0 = TrustedLoad.tgm1 + $20b6 = TrustedLoad.tgm3 + $20bc = TrustedLoad.deat + $20c2 = TrustedLoad.shir + $20c8 = TrustedLoad.chil + $20ce = TrustedLoad.myco + $20d4 = TrustedLoad.search + $20e6 = TrustedLoad.notfound + $20ed = TrustedLoad.fallback + $2108 = InitializeSRAM + $2269 = ResetScores + $2277 = ResetScores.jumps + $228c = ResetScores.dmgt + $2298 = ResetScores.tgm1 + $22a4 = ResetScores.tgm3 + $22b0 = ResetScores.deat + $22bc = ResetScores.shir + $22c8 = ResetScores.chil + $22d4 = ResetScores.myco + $22e0 = NextProfile + $22e9 = NextProfile.update + $22ec = ChangeProfile + $22ec = ChangeProfile.backup + $231a = ChangeProfile.first + $2328 = ChangeProfile.second + $2336 = ChangeProfile.third + $2344 = ChangeProfile.fourth + $2352 = ChangeProfile.fifth + $2360 = ChangeProfile.sixth + $236e = ChangeProfile.seventh + $237c = ChangeProfile.eighth + $238a = ChangeProfile.ninth + $2398 = ChangeProfile.tenth + $23a6 = ChangeProfile.restore + $23d5 = ChangeProfile.lfirst + $23e4 = ChangeProfile.lsecond + $23f3 = ChangeProfile.lthird + $2402 = ChangeProfile.lfourth + $2411 = ChangeProfile.lfifth + $2420 = ChangeProfile.lsixth + $242f = ChangeProfile.lseventh + $243e = ChangeProfile.leighth + $244d = ChangeProfile.lninth + $245c = ChangeProfile.ltenth + $246b = ResetProfile + SECTION: $24ce-$2929 ($045c bytes) ["Level Functions"] + $24ce = LevelInit + $253e = SpecialLevelInit + $254c = SpecialLevelInit.jumps + $2561 = SpecialLevelInit.dmgt + $2566 = SpecialLevelInit.tgm1 + $256b = SpecialLevelInit.tgm3 + $2570 = SpecialLevelInit.deat + $2575 = SpecialLevelInit.shir + $257a = SpecialLevelInit.chil + $257f = SpecialLevelInit.myco + $2584 = SpecialLevelInit.loaddata + $25b9 = LevelUp + $25e3 = LevelUp.doit + $2622 = LevelUp.checknlevel + $2656 = !0 + $266e = !1 + $2677 = LevelUp.checkcool + $2698 = LevelUp.checkregret + $26b5 = LevelUp.resetsectiontimer + $26d8 = LevelUp.regretavailable + $26dc = LevelUp.bellmaybe + $26f8 = LevelUp.leveljinglemaybe + $2708 = AdjustSpeedCurve + $270e = AdjustSpeedCurve.docheck + $270e = AdjustSpeedCurve.checkthousands + $271d = AdjustSpeedCurve.checkhundreds + $272a = AdjustSpeedCurve.checktens + $2739 = AdjustSpeedCurve.checkones + $2744 = AdjustSpeedCurveForced + $277f = AdjustSpeedCurveForced.continue + $2784 = BuildTrueCLevel + $27ac = BuildTrueCLevel.thousands + $27c1 = CheckSpecialLevelConditions + $27f2 = CheckSpecialLevelConditions.override + $280d = CheckSpecialLevelConditions.nooverride + $2813 = CheckSpecialLevelConditions.speciallock + $2837 = CheckSpecialLevelConditions.bones + $284c = CheckSpecialLevelConditions.enterthebonezone + $2851 = CheckSpecialLevelConditions.invis + $2866 = CheckSpecialLevelConditions.vanishoxyaction + $286b = CheckSpecialLevelConditions.killscreen + $287c = CheckSpecialLevelConditions.rip + $28ac = CheckSpecialLevelConditions.staffroll + $28ba = CheckSpecialLevelConditions.justkill + $28ce = TriggerKillScreen + $28f0 = GetSection + $28fe = GetSectionBCD + $2907 = GetAdjustedSection + $2915 = GetAdjustedSectionBCD + $291e = SkipSection + SECTION: $292a-$2c97 ($036e bytes) ["SFX Functions"] + $292a = SFXInit + $2958 = SFXPopQueue + $296d = SFXPushQueue + $297e = SFXProcessQueue + $298f = !0 + $29aa = !1 + $29ac = SFXTriggerNoise + $29b9 = !2 + $29cd = !3 + $29d9 = SFXEnqueue + $29f2 = SFXEnqueue.findsfx + $2a11 = !4 + $2a21 = !5 + $2a31 = !6 + $2a41 = !7 + $2a51 = !8 + $2a61 = !9 + $2a71 = !10 + $2a81 = !11 + $2a91 = !12 + $2aa1 = !13 + $2ab1 = !14 + $2ac1 = !15 + $2ad1 = !16 + $2ae1 = !17 + $2af1 = !18 + $2b00 = !19 + $2b0f = !20 + $2b1e = !21 + $2b2d = !22 + $2b3c = !23 + $2b4b = !24 + $2b58 = SFXKill + $2b8e = SFXPlayNoise + $2b99 = SFXPlayNoise.noisereg + $2ba6 = !25 + $2bb0 = SFXPlayNoise.savenoiseplayhead + $2bb9 = SFXPlay + $2bbe = SFXPlay.play + $2bc8 = SFXPlay.getRegister + $2bc9 = SFXPlay.checkEndOfSong + $2bdb = SFXPlay.checkEndOfSample + $2bdf = SFXPlay.checkChangeBank + $2be9 = SFXPlay.checkChangePlayHead + $2bfc = SFXPlay.applyRegister + $2c01 = SFXPlay.savePlayhead + $2c0a = SFXGoRoll + $2c47 = SFXEndOfGame + SECTION: $2c98-$2ebe ($0227 bytes) ["RNG Functions"] + $2c98 = HarvestEntropy + $2c9e = HarvestEntropy.loop + $2cbf = RNGInit + $2d00 = RNGInit.hellinit + $2d1c = RNGInit.complexinit + $2d33 = RNGInit.getfirstpiece + $2d48 = RNGInit.getqueue + $2d4e = ShiftHistory + $2d6b = GetNextHellPiece + $2d70 = GetNextTGM1Piece + $2d73 = !0 + $2d8b = !1 + $2d8d = GetNextTGM2Piece + $2d90 = !2 + $2da8 = !3 + $2daa = GetNextNesPiece + $2db8 = GetNextTGM3Piece + $2dbb = !4 + $2dde = !5 + $2de1 = !6 + $2df1 = !7 + $2dfb = !8 + $2e09 = !9 + $2e17 = !10 + $2e23 = !11 + $2e2f = !12 + $2e3b = !13 + $2e47 = !14 + $2e53 = !15 + $2e5f = !16 + $2e6e = GetNextPiece + $2e7c = GetNextPiece.nextpiecejumps + $2e8b = Next35Piece + $2e8b = !17 + $2e95 = Next7Piece + $2e95 = !18 + $2e9f = NextByte + SECTION: $2ebf-$3083 ($01c5 bytes) ["Hi Score Functions"] + $2ebf = CheckAndAddHiscore + $2ec9 = CheckAndAddHiscore.checkloop + $2ece = CheckAndAddHiscore.checkgrade + $2ed7 = CheckAndAddHiscore.oldgraded + $2ee6 = CheckAndAddHiscore.oldungraded + $2eed = CheckAndAddHiscore.checklevel + $2f12 = CheckAndAddHiscore.checkscore + $2f55 = CheckAndAddHiscore.notbetter + $2f62 = CheckAndAddHiscore.better + $2f64 = InsertHiScore + $2f64 = InsertHiScore.copylower + $2f75 = InsertHiScore.copyupper + $2f81 = !0 + $2f95 = InsertHiScore.findrow + $2fa1 = !1 + $2fa5 = InsertHiScore.insert + $2ffe = InsertHiScore.persist + $300f = GetHiScoreEntry + $3023 = !2 + $3027 = GetHiScoreEntry.store + $3030 = InitTargetHSTable + $303b = InitTargetHSTable.jumps + $3050 = InitTargetHSTable.dmgt + $3055 = InitTargetHSTable.tgm1 + $305a = InitTargetHSTable.tgm3 + $305f = InitTargetHSTable.deat + $3064 = InitTargetHSTable.shir + $3069 = InitTargetHSTable.chil + $306e = InitTargetHSTable.myco + $3071 = InitTargetHSTable.store + SECTION: $3084-$31cd ($014a bytes) ["Progress Data"] + $3084 = sProgressData + SECTION: $31ce-$3314 ($0147 bytes) ["Time Functions"] + $31ce = TimeInit + $31f7 = StartCountdown + $3205 = ResetGameTime + $3219 = CheckTorikan + $322f = CheckTorikan.failure + $3231 = CheckTorikan.success + $3234 = HandleTimers + $325a = HandleTimers.reduce + $3267 = HandleTimers.clock + $3281 = HandleTimers.go + $32a5 = CheckCOOL_REGRET + $32bc = CheckCOOL_REGRET.failure + $32be = CheckCOOL_REGRET.success + $32c1 = HandleSectionTimers + $32dd = HandleSectionTimers.continue + $32f1 = HandleSectionTimers.sectiongo + SECTION: $3315-$3454 ($0140 bytes) ["Hi Score Data"] + $3315 = sHiscoreDefaultData + SECTION: $3455-$357e ($012a bytes) ["Input Functions"] + $3455 = InputInit + $3467 = GetInput + $3467 = GetInput.btns + $3474 = GetInput.readA + $3478 = GetInput.setA + $3483 = GetInput.clearA + $3486 = GetInput.readB + $348a = GetInput.setB + $3495 = GetInput.clearB + $3498 = GetInput.readSelect + $349c = GetInput.setSelect + $34a7 = GetInput.clearSelect + $34aa = GetInput.readStart + $34ae = GetInput.setStart + $34b9 = GetInput.clearStart + $34bc = GetInput.dpad + $34c9 = GetInput.readUp + $34cd = GetInput.setUp + $34d8 = GetInput.clearUp + $34db = GetInput.readDown + $34df = GetInput.setDown + $34ea = GetInput.clearDown + $34ed = GetInput.readLeft + $34f1 = GetInput.setLeft + $34fc = GetInput.clearLeft + $34ff = GetInput.readRight + $3503 = GetInput.setRight + $350e = GetInput.clearRight + $3511 = GetInput.priorities + $351e = GetInput.jumps + $352d = GetInput.dlru + $353d = GetInput.ulrd + $354d = GetInput.lrud + $3558 = GetInput.udlr + $3563 = GetInput.zeroud + $3569 = GetInput.zerolr + $356f = GetInput.zerolrd + $3577 = GetInput.zerolru + SECTION: $357f-$365e ($00e0 bytes) ["Score Functions"] + $357f = ScoreInit + $35a7 = IncreaseScore + $35df = IncreaseScore.doConvert + $35e1 = !0 + $35f7 = IncreaseScore.carry + $35f9 = IncreaseScore.postConvert + $3606 = !1 + $360d = IncreaseScore.preAddDigit + $3635 = IncreaseScore.addDigit + $364b = IncreaseScore.nextDigit + SECTION: $365f-$3729 ($00cb bytes) ["Title Function Trampolines"] + $365f = SwitchToTitle + $3668 = TitleEventLoopHandler + $3672 = TitleVBlankHandler + $367c = PersistLevel + $368a = DrawSpeedMain + $36da = DrawSpeedSettings + SECTION: $372a-$37da ($00b1 bytes) ["Progress Functions"] + $372a = SetProgress + $3734 = SetProgress.loop + $3738 = SetProgress.correct + $375f = SetProgress.wvr_u1 + $376b = SetProgress.wvr_u2 + $3779 = SetProgress.wvr_u3 + $3785 = SetProgress.wvr_u4 + $3793 = SetProgress.wvr_u5 + $379f = SetProgress.wvr_u6 + $37ad = SetProgress.wvr_u7 + $37b9 = SetProgress.wvr_u8 + $37c7 = SetProgress.wvr_u9 + $37d3 = SetProgress.wvr_u10 + SECTION: $37db-$387b ($00a1 bytes) ["Code Entry Point"] + $37db = Main + $3804 = Main.notgbc + $3810 = Main.wvr_u1 + $383d = EventLoop + $3856 = EventLoop.eventloopjumps + $385f = EventLoopPostHandler + $3861 = EventLoopPostHandler.wvb_u2 + $3873 = EventLoopPostHandler.vblankjumps + SECTION: $387c-$38b1 ($0036 bytes) ["Grading Functions Unbanked"] + $387c = GradeInit + $3885 = UpdateGrade + $388e = DecayGradeProcess + $3897 = DecayGradeDelay + $38a0 = TGM3REGRETHandler + $38a9 = TGM3COOLHandler + SECTION: $38b2-$38df ($002e bytes) ["Memory Functions"] + $38b2 = UnsafeMemCopy + $38bb = SafeMemCopy.wvr_u1 + $38bb = SafeMemCopy + $38ca = UnsafeMemSet + $38d2 = SafeMemSet + $38d2 = SafeMemSet.wvr_u2 + SECTION: $38e0-$3905 ($0026 bytes) ["Gameplay Function Trampolines"] + $38e0 = SwitchToGameplay + $38e9 = SwitchToGameplayBig + $38f2 = GamePlayEventLoopHandler + $38fc = GamePlayBigEventLoopHandler + SECTION: $3906-$392a ($0025 bytes) ["Interrupt Initialization Functions"] + $3906 = EnableScreenSquish + $3920 = DisableScreenSquish + SECTION: $392b-$394c ($0022 bytes) ["OAM Functions"] + $392b = CopyOAMHandler + $3937 = ClearOAM + SECTION: $394d-$395d ($0011 bytes) ["Intro Effect Trampoline"] + $394d = DoIntroEffect + SECTION: $395e-$396c ($000f bytes) ["Banking Functions"] + $395e = BankingInit + SECTION: $396d-$3976 ($000a bytes) ["OAM DMA Code"] + $396d = OAMDMA + $3977 = OAMDMAEnd + EMPTY: $3977-$3fff ($0689 bytes) + TOTAL EMPTY: $0691 bytes ROMX bank #1: SECTION: $4000-$4007 ($0008 bytes) ["Bank ID BANK_OTHER"] @@ -1683,7 +1685,7 @@ ROMX bank #4: $5395 = ClearLines.r_u48 $5395 = ClearLines.fixgarbo $5398 = ClearLines.fixgarboloop - SECTION: $53a2-$62c0 ($0f1f bytes) ["Gameplay Function Banked"] + SECTION: $53a2-$62c9 ($0f28 bytes) ["Gameplay Function Banked"] $53a2 = SwitchToGameplayB $53a8 = SwitchToGameplayB.wvr_u1 $53b1 = SwitchToGameplayB.loadtilemap @@ -2169,139 +2171,139 @@ ROMX bank #4: $629d = DoHold.cp4 $62ab = DoHold.noRotation $62b6 = DoHold.doHoldOperation - SECTION: $62c1-$6b56 ($0896 bytes) ["Gameplay Static Data"] - $62c1 = sLeftDasSlam - $62c7 = sRightDasSlam - $62cd = sLeady - $62d7 = sGo - $62e1 = sPause - $6309 = sKill - $63a9 = sYouAreGM - $640d = sFinalChallenge - $64d5 = sPieceXOffsets - $64f1 = sPieceYOffsets - $650d = sPieceFastRotationStates - $657d = sPieceRotationStates - $65ed = sTGM3Bag - $6610 = sTGM3Droughts - $6617 = sGameplayTileMap - $68b7 = sGameplayUngradedTileMap - $68b7 = sGameplayTileMapEnd - $6b57 = sGameplayUngradedTileMapEnd - SECTION: $6b57-$7268 ($0712 bytes) ["Grading Functions Banked"] - $6b57 = GradeInitB - $6ba1 = GradeInitB.grade9start - $6ba6 = UpdateGradeB - $6ba6 = GradeInitB.end - $6bb4 = UpdateGradeB.gradejumptable - $6bc9 = DecayGradeProcessB - $6bd7 = DecayGradeProcessB.gradejumptable - $6bec = DecayGradeDelayB - $6bfa = DecayGradeDelayB.gradejumptable - $6c0f = PrepareScore - $6c22 = DrawGradeProgressDMGT - $6c2e = !0 - $6c3d = UpdateGradeDMGT - $6c76 = UpdateGradeDMGT.checklineclears - $6c8f = UpdateGradeDMGT.clearrate - $6ca0 = UpdateGradeDMGT.combomult - $6cad = UpdateGradeDMGT.combo13 - $6cbe = UpdateGradeDMGT.combo8 - $6ccf = UpdateGradeDMGT.combo1 - $6cde = UpdateGradeDMGT.prelevel - $6ced = UpdateGradeDMGT.single - $6cfd = UpdateGradeDMGT.double - $6d0e = UpdateGradeDMGT.adddonce - $6d12 = UpdateGradeDMGT.triple - $6d23 = UpdateGradeDMGT.addtonce - $6d27 = UpdateGradeDMGT.tetris - $6d2b = UpdateGradeDMGT.levelmult - $6d43 = UpdateGradeDMGT.mult4 - $6d49 = UpdateGradeDMGT.mult3 - $6d4e = UpdateGradeDMGT.mult2 - $6d52 = UpdateGradeDMGT.mult1 - $6d53 = UpdateGradeDMGT.processgrade - $6d7c = UpdateGradeDMGT.increasegrademaybe - $6da0 = UpdateGradeDMGT.gotgm - $6dae = DecayGradeDMGT - $6dd1 = DecayGradeDMGT.nodecay - $6dd8 = DecayGradeDMGT.decay - $6de6 = UpdateGradeTGM1 - $6df6 = UpdateGradeTGM1.trygradeup - $6e11 = UpdateGradeTGM1.increasegrade - $6e26 = UpdateGradeTGM1.skipjingle - $6e32 = UpdateGradeTGM1.check300 - $6e50 = UpdateGradeTGM1.success300 - $6e57 = UpdateGradeTGM1.fail300 - $6e5e = UpdateGradeTGM1.check500 - $6e7c = UpdateGradeTGM1.success500 - $6e83 = UpdateGradeTGM1.fail500 - $6e8a = UpdateGradeTGM1.check999 - $6ec1 = UpdateGradeTGM1.success999 - $6ed9 = UpdateGradeTGM1.fail999 - $6edf = UpdateGradeDEAT - $6eeb = UpdateGradeDEAT.notgm - $6f07 = UpdateGradeDEAT.notm - $6f2a = UpdateGradeDEAT.disqualify - $6f48 = UpdateGradeSHIR - $6f8a = UpdateGradeSHIR.s5torikan - $6f9a = UpdateGradeSHIR.s10torikan - $6fa9 = UpdateGradeSHIR.disqualify - $6fb8 = UpdateGradeSHIR.l1000 - $6fce = UpdateGradeSHIR.l500 - $6fe4 = UpdateGradeTGM3 - $6fe4 = UpdateGradeTGM3.GradePoints - $6ff3 = !1 - $6ff8 = UpdateGradeTGM3.GetOffset - $700a = UpdateGradeTGM3.loadpoints - $7014 = UpdateGradeTGM3.multipliers - $7021 = !2 - $703b = !3 - $7040 = UpdateGradeTGM3.levelmultiplier - $7059 = UpdateGradeTGM3.Level750 - $706d = UpdateGradeTGM3.under750 - $7073 = UpdateGradeTGM3.Level500 - $7081 = UpdateGradeTGM3.Level250 - $7090 = UpdateGradeTGM3.under250 - $7094 = UpdateGradeTGM3.Multiply - $7097 = !4 - $709e = UpdateGradeTGM3.IncreaseInternalGrade - $70b6 = TGM3UpdateDisplayedGrade - $70cb = TGM3UpdateDisplayedGrade.update - $70e8 = TGM3UpdateDisplayedGrade.cool - $7107 = TGM3UpdateDisplayedGrade.nocool - $7113 = TGM3UpdateDisplayedGrade.continue - $7124 = CheckCOOL - $7138 = CheckCOOL.cool - $7159 = DecayGradeTGM3 - $716d = DecayGradeTGM3.points - $718a = !5 - $718e = DecayGradeTGM3.GetOffset - $7197 = DecayGradeTGM3.lpoints - $719b = TGM3COOLHandlerB - $71c2 = TGM3COOLHandlerB.checkCOOL - $71cc = TGM3COOLHandlerB.checkBaselineCOOL - $71d4 = TGM3COOLHandlerB.cool - $71ee = TGM3COOLHandlerB.nocool - $71fa = TGM3REGRETHandlerB - $7216 = TGM3REGRETHandlerB.regret - $7243 = TGM3StaffRollGradeUpdate - $7259 = TGM3StaffRollGradeUpdate.UpdateGrade - SECTION: $7269-$7592 ($032a bytes) ["Grading Data"] - $7269 = sDMGTGrading - $731d = sDMGTGaugeLUT - $741d = sTGM1GradeScores - $743f = sTGM3InternalGradeSystem - $74df = sTGM3GradeBoosts - $74fe = sTGM3HowManyInternalGradesToDecrease - $751d = sTGM3HowManyInternalGradesToIncrease - $753c = sTGM3ComboMultipliers - $756e = sTGM3LevelMultiplier - $7571 = sTGM3BaselineCOOL - $757a = sTGM3REGRETConditions - $758e = sTGM3StaffrollGrading - EMPTY: $7593-$7fff ($0a6d bytes) - TOTAL EMPTY: $0a6d bytes + SECTION: $62ca-$6b5f ($0896 bytes) ["Gameplay Static Data"] + $62ca = sLeftDasSlam + $62d0 = sRightDasSlam + $62d6 = sLeady + $62e0 = sGo + $62ea = sPause + $6312 = sKill + $63b2 = sYouAreGM + $6416 = sFinalChallenge + $64de = sPieceXOffsets + $64fa = sPieceYOffsets + $6516 = sPieceFastRotationStates + $6586 = sPieceRotationStates + $65f6 = sTGM3Bag + $6619 = sTGM3Droughts + $6620 = sGameplayTileMap + $68c0 = sGameplayUngradedTileMap + $68c0 = sGameplayTileMapEnd + $6b60 = sGameplayUngradedTileMapEnd + SECTION: $6b60-$7271 ($0712 bytes) ["Grading Functions Banked"] + $6b60 = GradeInitB + $6baa = GradeInitB.grade9start + $6baf = UpdateGradeB + $6baf = GradeInitB.end + $6bbd = UpdateGradeB.gradejumptable + $6bd2 = DecayGradeProcessB + $6be0 = DecayGradeProcessB.gradejumptable + $6bf5 = DecayGradeDelayB + $6c03 = DecayGradeDelayB.gradejumptable + $6c18 = PrepareScore + $6c2b = DrawGradeProgressDMGT + $6c37 = !0 + $6c46 = UpdateGradeDMGT + $6c7f = UpdateGradeDMGT.checklineclears + $6c98 = UpdateGradeDMGT.clearrate + $6ca9 = UpdateGradeDMGT.combomult + $6cb6 = UpdateGradeDMGT.combo13 + $6cc7 = UpdateGradeDMGT.combo8 + $6cd8 = UpdateGradeDMGT.combo1 + $6ce7 = UpdateGradeDMGT.prelevel + $6cf6 = UpdateGradeDMGT.single + $6d06 = UpdateGradeDMGT.double + $6d17 = UpdateGradeDMGT.adddonce + $6d1b = UpdateGradeDMGT.triple + $6d2c = UpdateGradeDMGT.addtonce + $6d30 = UpdateGradeDMGT.tetris + $6d34 = UpdateGradeDMGT.levelmult + $6d4c = UpdateGradeDMGT.mult4 + $6d52 = UpdateGradeDMGT.mult3 + $6d57 = UpdateGradeDMGT.mult2 + $6d5b = UpdateGradeDMGT.mult1 + $6d5c = UpdateGradeDMGT.processgrade + $6d85 = UpdateGradeDMGT.increasegrademaybe + $6da9 = UpdateGradeDMGT.gotgm + $6db7 = DecayGradeDMGT + $6dda = DecayGradeDMGT.nodecay + $6de1 = DecayGradeDMGT.decay + $6def = UpdateGradeTGM1 + $6dff = UpdateGradeTGM1.trygradeup + $6e1a = UpdateGradeTGM1.increasegrade + $6e2f = UpdateGradeTGM1.skipjingle + $6e3b = UpdateGradeTGM1.check300 + $6e59 = UpdateGradeTGM1.success300 + $6e60 = UpdateGradeTGM1.fail300 + $6e67 = UpdateGradeTGM1.check500 + $6e85 = UpdateGradeTGM1.success500 + $6e8c = UpdateGradeTGM1.fail500 + $6e93 = UpdateGradeTGM1.check999 + $6eca = UpdateGradeTGM1.success999 + $6ee2 = UpdateGradeTGM1.fail999 + $6ee8 = UpdateGradeDEAT + $6ef4 = UpdateGradeDEAT.notgm + $6f10 = UpdateGradeDEAT.notm + $6f33 = UpdateGradeDEAT.disqualify + $6f51 = UpdateGradeSHIR + $6f93 = UpdateGradeSHIR.s5torikan + $6fa3 = UpdateGradeSHIR.s10torikan + $6fb2 = UpdateGradeSHIR.disqualify + $6fc1 = UpdateGradeSHIR.l1000 + $6fd7 = UpdateGradeSHIR.l500 + $6fed = UpdateGradeTGM3 + $6fed = UpdateGradeTGM3.GradePoints + $6ffc = !1 + $7001 = UpdateGradeTGM3.GetOffset + $7013 = UpdateGradeTGM3.loadpoints + $701d = UpdateGradeTGM3.multipliers + $702a = !2 + $7044 = !3 + $7049 = UpdateGradeTGM3.levelmultiplier + $7062 = UpdateGradeTGM3.Level750 + $7076 = UpdateGradeTGM3.under750 + $707c = UpdateGradeTGM3.Level500 + $708a = UpdateGradeTGM3.Level250 + $7099 = UpdateGradeTGM3.under250 + $709d = UpdateGradeTGM3.Multiply + $70a0 = !4 + $70a7 = UpdateGradeTGM3.IncreaseInternalGrade + $70bf = TGM3UpdateDisplayedGrade + $70d4 = TGM3UpdateDisplayedGrade.update + $70f1 = TGM3UpdateDisplayedGrade.cool + $7110 = TGM3UpdateDisplayedGrade.nocool + $711c = TGM3UpdateDisplayedGrade.continue + $712d = CheckCOOL + $7141 = CheckCOOL.cool + $7162 = DecayGradeTGM3 + $7176 = DecayGradeTGM3.points + $7193 = !5 + $7197 = DecayGradeTGM3.GetOffset + $71a0 = DecayGradeTGM3.lpoints + $71a4 = TGM3COOLHandlerB + $71cb = TGM3COOLHandlerB.checkCOOL + $71d5 = TGM3COOLHandlerB.checkBaselineCOOL + $71dd = TGM3COOLHandlerB.cool + $71f7 = TGM3COOLHandlerB.nocool + $7203 = TGM3REGRETHandlerB + $721f = TGM3REGRETHandlerB.regret + $724c = TGM3StaffRollGradeUpdate + $7262 = TGM3StaffRollGradeUpdate.UpdateGrade + SECTION: $7272-$759b ($032a bytes) ["Grading Data"] + $7272 = sDMGTGrading + $7326 = sDMGTGaugeLUT + $7426 = sTGM1GradeScores + $7448 = sTGM3InternalGradeSystem + $74e8 = sTGM3GradeBoosts + $7507 = sTGM3HowManyInternalGradesToDecrease + $7526 = sTGM3HowManyInternalGradesToIncrease + $7545 = sTGM3ComboMultipliers + $7577 = sTGM3LevelMultiplier + $757a = sTGM3BaselineCOOL + $7583 = sTGM3REGRETConditions + $7597 = sTGM3StaffrollGrading + EMPTY: $759c-$7fff ($0a64 bytes) + TOTAL EMPTY: $0a64 bytes ROMX bank #5: SECTION: $4000-$4007 ($0008 bytes) ["Bank ID BANK_GAMEPLAY_BIG"] @@ -2602,7 +2604,7 @@ ROMX bank #5: $5266 = BigClearLines.fixgarbo $5269 = BigClearLines.fixgarboloop $5286 = BigWidenField - SECTION: $55d6-$6597 ($0fc2 bytes) ["Gameplay Function Big Banked"] + SECTION: $55d6-$65a0 ($0fcb bytes) ["Gameplay Function Big Banked"] $55d6 = SwitchToGameplayBigB $55dc = SwitchToGameplayBigB.wvr_u214 $55e5 = SwitchToGameplayBigB.loadtilemap @@ -3108,25 +3110,25 @@ ROMX bank #5: $6574 = BigDoHold.cp4 $6582 = BigDoHold.noRotation $658d = BigDoHold.doHoldOperation - SECTION: $6598-$6e03 ($086c bytes) ["Gameplay Big Static Data"] - $6598 = sBigLeftDasSlam - $659e = sBigRightDasSlam - $65a4 = sBigLeady - $65ae = sBigGo - $65b8 = sBigPause - $65e0 = sBigKill - $6680 = sBigYouAreGM - $66e4 = sBigFinalChallenge - $67ac = sBigPieceXOffsets - $67c8 = sBigPieceYOffsets - $67e4 = sBigPieceFastRotationStates - $6854 = sBigPieceRotationStates - $68c4 = sBigGameplayTileMap - $6b64 = sBigGameplayUngradedTileMap - $6b64 = sBigGameplayTileMapEnd - $6e04 = sBigGameplayUngradedTileMapEnd - EMPTY: $6e04-$7fff ($11fc bytes) - TOTAL EMPTY: $11fc bytes + SECTION: $65a1-$6e0c ($086c bytes) ["Gameplay Big Static Data"] + $65a1 = sBigLeftDasSlam + $65a7 = sBigRightDasSlam + $65ad = sBigLeady + $65b7 = sBigGo + $65c1 = sBigPause + $65e9 = sBigKill + $6689 = sBigYouAreGM + $66ed = sBigFinalChallenge + $67b5 = sBigPieceXOffsets + $67d1 = sBigPieceYOffsets + $67ed = sBigPieceFastRotationStates + $685d = sBigPieceRotationStates + $68cd = sBigGameplayTileMap + $6b6d = sBigGameplayUngradedTileMap + $6b6d = sBigGameplayTileMapEnd + $6e0d = sBigGameplayUngradedTileMapEnd + EMPTY: $6e0d-$7fff ($11f3 bytes) + TOTAL EMPTY: $11f3 bytes ROMX bank #6: SECTION: $4000-$4007 ($0008 bytes) ["Bank ID BANK_MUSIC_0"] @@ -3567,8 +3569,8 @@ HRAM bank #0: TOTAL EMPTY: $0000 bytes SUMMARY: - ROM0: 14693 bytes used / 1691 free - ROMX: 110558 bytes used / 36898 free in 9 banks + ROM0: 14703 bytes used / 1681 free + ROMX: 110576 bytes used / 36880 free in 9 banks SRAM: 2951 bytes used / 5241 free in 1 bank WRAM0: 3926 bytes used / 170 free HRAM: 127 bytes used / 0 free diff --git a/bin/PandorasBlocks.pocket b/bin/PandorasBlocks.pocket index 62ad4e2..8d29f45 100644 Binary files a/bin/PandorasBlocks.pocket and b/bin/PandorasBlocks.pocket differ diff --git a/bin/PandorasBlocks.sym b/bin/PandorasBlocks.sym index 8110619..bcf172f 100644 --- a/bin/PandorasBlocks.sym +++ b/bin/PandorasBlocks.sym @@ -95,323 +95,327 @@ 00:1a6c ApplyNext.skipoffn 00:1b08 ApplyNext.done 00:1b0b ApplyHold -00:1b13 ApplyHold.bone -00:1b32 ApplyHold.nobone -00:1b4e ApplyHold.hide -00:1b60 ApplyHold.show -00:1b70 ApplyHold.x -00:1b80 ApplyHold.regular -00:1b86 ApplyHold.postoffsets -00:1b89 ApplyHold.getoffh -00:1b94 ApplyHold.skipoffh -00:1bce ApplyTime -00:1c1f ApplyTime.loop0 -00:1c4e ApplyTime.loop1 -00:1ca3 ApplyNumbers8 -00:1d05 ApplyNumbers8.one -00:1d0f ApplyNumbers8.two -00:1d19 ApplyNumbers8.three -00:1d23 ApplyNumbers8.four -00:1d2d ApplyNumbers8.five -00:1d37 ApplyNumbers8.six -00:1d41 ApplyNumbers8.seven -00:1d4b ApplyNumbers8.eight -00:1d54 ApplyNumbers4 -00:1d82 ApplyNumbers4.one -00:1d8c ApplyNumbers4.two -00:1d96 ApplyNumbers4.three -00:1da0 ApplyNumbers4.four -00:1da9 SetNumberSpritePositions -00:1ec0 GradeRendering -00:1ef3 GradeRendering.effect -00:1f03 GradeRendering.noeffect -00:1f0b GradeRendering.drawgrade -00:1f12 GradeRendering.regulargrade -00:1f1a GradeRendering.sgrade -00:1f30 GradeRendering.hisgrade -00:1f46 GradeRendering.mgrade -00:1f5c GradeRendering.lettergrade -00:1f79 GradeRendering.mk -00:1f7f GradeRendering.mv -00:1f85 GradeRendering.mo -00:1f8b GradeRendering.mm -00:1f91 GradeRendering.gmgrade -00:1f9c RestoreSRAM -00:1fcb TrustedLoad -00:207f TrustedLoad.jumps -00:2097 TrustedLoad.dmgt -00:209d TrustedLoad.tgm1 -00:20a3 TrustedLoad.tgm3 -00:20a9 TrustedLoad.deat -00:20af TrustedLoad.shir -00:20b5 TrustedLoad.chil -00:20bb TrustedLoad.myco -00:20c1 TrustedLoad.search -00:20d3 TrustedLoad.notfound -00:20da TrustedLoad.fallback -00:20f5 InitializeSRAM -00:2256 ResetScores -00:2264 ResetScores.jumps -00:2279 ResetScores.dmgt -00:2285 ResetScores.tgm1 -00:2291 ResetScores.tgm3 -00:229d ResetScores.deat -00:22a9 ResetScores.shir -00:22b5 ResetScores.chil -00:22c1 ResetScores.myco -00:22cd NextProfile -00:22d6 NextProfile.update -00:22d9 ChangeProfile -00:22d9 ChangeProfile.backup -00:2307 ChangeProfile.first -00:2315 ChangeProfile.second -00:2323 ChangeProfile.third -00:2331 ChangeProfile.fourth -00:233f ChangeProfile.fifth -00:234d ChangeProfile.sixth -00:235b ChangeProfile.seventh -00:2369 ChangeProfile.eighth -00:2377 ChangeProfile.ninth -00:2385 ChangeProfile.tenth -00:2393 ChangeProfile.restore -00:23c2 ChangeProfile.lfirst -00:23d1 ChangeProfile.lsecond -00:23e0 ChangeProfile.lthird -00:23ef ChangeProfile.lfourth -00:23fe ChangeProfile.lfifth -00:240d ChangeProfile.lsixth -00:241c ChangeProfile.lseventh -00:242b ChangeProfile.leighth -00:243a ChangeProfile.lninth -00:2449 ChangeProfile.ltenth -00:2458 ResetProfile -00:24bb LevelInit -00:252b SpecialLevelInit -00:2539 SpecialLevelInit.jumps -00:254e SpecialLevelInit.dmgt -00:2553 SpecialLevelInit.tgm1 -00:2558 SpecialLevelInit.tgm3 -00:255d SpecialLevelInit.deat -00:2562 SpecialLevelInit.shir -00:2567 SpecialLevelInit.chil -00:256c SpecialLevelInit.myco -00:2571 SpecialLevelInit.loaddata -00:25a6 LevelUp -00:25d0 LevelUp.doit -00:260f LevelUp.checknlevel -00:2664 LevelUp.checkcool -00:2685 LevelUp.checkregret -00:26a2 LevelUp.resetsectiontimer -00:26c5 LevelUp.regretavailable -00:26c9 LevelUp.bellmaybe -00:26e5 LevelUp.leveljinglemaybe -00:26f5 AdjustSpeedCurve -00:26fb AdjustSpeedCurve.docheck -00:26fb AdjustSpeedCurve.checkthousands -00:270a AdjustSpeedCurve.checkhundreds -00:2717 AdjustSpeedCurve.checktens -00:2726 AdjustSpeedCurve.checkones -00:2731 AdjustSpeedCurveForced -00:276c AdjustSpeedCurveForced.continue -00:2771 BuildTrueCLevel -00:2799 BuildTrueCLevel.thousands -00:27ae CheckSpecialLevelConditions -00:27df CheckSpecialLevelConditions.override -00:27fa CheckSpecialLevelConditions.nooverride -00:2800 CheckSpecialLevelConditions.speciallock -00:2824 CheckSpecialLevelConditions.bones -00:2839 CheckSpecialLevelConditions.enterthebonezone -00:283e CheckSpecialLevelConditions.invis -00:2853 CheckSpecialLevelConditions.vanishoxyaction -00:2858 CheckSpecialLevelConditions.killscreen -00:2869 CheckSpecialLevelConditions.rip -00:2899 CheckSpecialLevelConditions.staffroll -00:28a7 CheckSpecialLevelConditions.justkill -00:28bb TriggerKillScreen -00:28dd GetSection -00:28eb GetSectionBCD -00:28f4 GetAdjustedSection -00:2902 GetAdjustedSectionBCD -00:290b SkipSection -00:2917 SFXInit -00:2945 SFXPopQueue -00:295a SFXPushQueue -00:296b SFXProcessQueue -00:2999 SFXTriggerNoise -00:29c6 SFXEnqueue -00:29df SFXEnqueue.findsfx -00:2b45 SFXKill -00:2b7b SFXPlayNoise -00:2b86 SFXPlayNoise.noisereg -00:2b9d SFXPlayNoise.savenoiseplayhead -00:2ba6 SFXPlay -00:2bab SFXPlay.play -00:2bb5 SFXPlay.getRegister -00:2bb6 SFXPlay.checkEndOfSong -00:2bc8 SFXPlay.checkEndOfSample -00:2bcc SFXPlay.checkChangeBank -00:2bd6 SFXPlay.checkChangePlayHead -00:2be9 SFXPlay.applyRegister -00:2bee SFXPlay.savePlayhead -00:2bf7 SFXGoRoll -00:2c34 SFXEndOfGame -00:2c85 HarvestEntropy -00:2c8b HarvestEntropy.loop -00:2cac RNGInit -00:2d12 RNGInit.complexinit -00:2d44 ShiftHistory -00:2d61 GetNextHellPiece -00:2d66 GetNextTGM1Piece -00:2d83 GetNextTGM2Piece -00:2da0 GetNextNesPiece -00:2dae GetNextTGM3Piece -00:2e64 GetNextPiece -00:2e72 GetNextPiece.nextpiecejumps -00:2e81 Next35Piece -00:2e8b Next7Piece -00:2e95 NextByte -00:2eb5 CheckAndAddHiscore -00:2ebf CheckAndAddHiscore.checkloop -00:2ec4 CheckAndAddHiscore.checkgrade -00:2ecd CheckAndAddHiscore.oldgraded -00:2edc CheckAndAddHiscore.oldungraded -00:2ee3 CheckAndAddHiscore.checklevel -00:2f08 CheckAndAddHiscore.checkscore -00:2f4b CheckAndAddHiscore.notbetter -00:2f58 CheckAndAddHiscore.better -00:2f5a InsertHiScore -00:2f5a InsertHiScore.copylower -00:2f6b InsertHiScore.copyupper -00:2f8b InsertHiScore.findrow -00:2f9b InsertHiScore.insert -00:2ff4 InsertHiScore.persist -00:3005 GetHiScoreEntry -00:301d GetHiScoreEntry.store -00:3026 InitTargetHSTable -00:3031 InitTargetHSTable.jumps -00:3046 InitTargetHSTable.dmgt -00:304b InitTargetHSTable.tgm1 -00:3050 InitTargetHSTable.tgm3 -00:3055 InitTargetHSTable.deat -00:305a InitTargetHSTable.shir -00:305f InitTargetHSTable.chil -00:3064 InitTargetHSTable.myco -00:3067 InitTargetHSTable.store -00:307a sProgressData -00:31c4 TimeInit -00:31ed StartCountdown -00:31fb ResetGameTime -00:320f CheckTorikan -00:3225 CheckTorikan.failure -00:3227 CheckTorikan.success -00:322a HandleTimers -00:3250 HandleTimers.reduce -00:325d HandleTimers.clock -00:3277 HandleTimers.go -00:329b CheckCOOL_REGRET -00:32b2 CheckCOOL_REGRET.failure -00:32b4 CheckCOOL_REGRET.success -00:32b7 HandleSectionTimers -00:32d3 HandleSectionTimers.continue -00:32e7 HandleSectionTimers.sectiongo -00:330b sHiscoreDefaultData -00:344b InputInit -00:345d GetInput -00:345d GetInput.btns -00:346a GetInput.readA -00:346e GetInput.setA -00:3479 GetInput.clearA -00:347c GetInput.readB -00:3480 GetInput.setB -00:348b GetInput.clearB -00:348e GetInput.readSelect -00:3492 GetInput.setSelect -00:349d GetInput.clearSelect -00:34a0 GetInput.readStart -00:34a4 GetInput.setStart -00:34af GetInput.clearStart -00:34b2 GetInput.dpad -00:34bf GetInput.readUp -00:34c3 GetInput.setUp -00:34ce GetInput.clearUp -00:34d1 GetInput.readDown -00:34d5 GetInput.setDown -00:34e0 GetInput.clearDown -00:34e3 GetInput.readLeft -00:34e7 GetInput.setLeft -00:34f2 GetInput.clearLeft -00:34f5 GetInput.readRight -00:34f9 GetInput.setRight -00:3504 GetInput.clearRight -00:3507 GetInput.priorities -00:3514 GetInput.jumps -00:3523 GetInput.dlru -00:3533 GetInput.ulrd -00:3543 GetInput.lrud -00:354e GetInput.udlr -00:3559 GetInput.zeroud -00:355f GetInput.zerolr -00:3565 GetInput.zerolrd -00:356d GetInput.zerolru -00:3575 ScoreInit -00:359d IncreaseScore -00:35d5 IncreaseScore.doConvert -00:35ed IncreaseScore.carry -00:35ef IncreaseScore.postConvert -00:3603 IncreaseScore.preAddDigit -00:362b IncreaseScore.addDigit -00:3641 IncreaseScore.nextDigit -00:3655 SwitchToTitle -00:365e TitleEventLoopHandler -00:3668 TitleVBlankHandler -00:3672 PersistLevel -00:3680 DrawSpeedMain -00:36d0 DrawSpeedSettings -00:3720 SetProgress -00:372a SetProgress.loop -00:372e SetProgress.correct -00:3755 SetProgress.wvr_u1 -00:3761 SetProgress.wvr_u2 -00:376f SetProgress.wvr_u3 -00:377b SetProgress.wvr_u4 -00:3789 SetProgress.wvr_u5 -00:3795 SetProgress.wvr_u6 -00:37a3 SetProgress.wvr_u7 -00:37af SetProgress.wvr_u8 -00:37bd SetProgress.wvr_u9 -00:37c9 SetProgress.wvr_u10 -00:37d1 Main -00:37fa Main.notgbc -00:3806 Main.wvr_u1 -00:3833 EventLoop -00:384c EventLoop.eventloopjumps -00:3855 EventLoopPostHandler -00:3857 EventLoopPostHandler.wvb_u2 -00:3869 EventLoopPostHandler.vblankjumps -00:3872 GradeInit -00:387b UpdateGrade -00:3884 DecayGradeProcess -00:388d DecayGradeDelay -00:3896 TGM3REGRETHandler -00:389f TGM3COOLHandler -00:38a8 UnsafeMemCopy -00:38b1 SafeMemCopy.wvr_u1 -00:38b1 SafeMemCopy -00:38c0 UnsafeMemSet -00:38c8 SafeMemSet -00:38c8 SafeMemSet.wvr_u2 -00:38d6 SwitchToGameplay -00:38df SwitchToGameplayBig -00:38e8 GamePlayEventLoopHandler -00:38f2 GamePlayBigEventLoopHandler -00:38fc EnableScreenSquish -00:3916 DisableScreenSquish -00:3921 CopyOAMHandler -00:392d ClearOAM -00:3943 DoIntroEffect -00:3954 BankingInit -00:3963 OAMDMA -00:396d OAMDMAEnd +00:1b1e ApplyHold.drawhold +00:1b26 ApplyHold.bone +00:1b45 ApplyHold.nobone +00:1b61 ApplyHold.hide +00:1b73 ApplyHold.show +00:1b83 ApplyHold.x +00:1b93 ApplyHold.regular +00:1b99 ApplyHold.postoffsets +00:1b9c ApplyHold.getoffh +00:1ba7 ApplyHold.skipoffh +00:1be1 ApplyTime +00:1c32 ApplyTime.loop0 +00:1c61 ApplyTime.loop1 +00:1cb6 ApplyNumbers8 +00:1d18 ApplyNumbers8.one +00:1d22 ApplyNumbers8.two +00:1d2c ApplyNumbers8.three +00:1d36 ApplyNumbers8.four +00:1d40 ApplyNumbers8.five +00:1d4a ApplyNumbers8.six +00:1d54 ApplyNumbers8.seven +00:1d5e ApplyNumbers8.eight +00:1d67 ApplyNumbers4 +00:1d95 ApplyNumbers4.one +00:1d9f ApplyNumbers4.two +00:1da9 ApplyNumbers4.three +00:1db3 ApplyNumbers4.four +00:1dbc SetNumberSpritePositions +00:1ed3 GradeRendering +00:1f06 GradeRendering.effect +00:1f16 GradeRendering.noeffect +00:1f1e GradeRendering.drawgrade +00:1f25 GradeRendering.regulargrade +00:1f2d GradeRendering.sgrade +00:1f43 GradeRendering.hisgrade +00:1f59 GradeRendering.mgrade +00:1f6f GradeRendering.lettergrade +00:1f8c GradeRendering.mk +00:1f92 GradeRendering.mv +00:1f98 GradeRendering.mo +00:1f9e GradeRendering.mm +00:1fa4 GradeRendering.gmgrade +00:1faf RestoreSRAM +00:1fde TrustedLoad +00:2092 TrustedLoad.jumps +00:20aa TrustedLoad.dmgt +00:20b0 TrustedLoad.tgm1 +00:20b6 TrustedLoad.tgm3 +00:20bc TrustedLoad.deat +00:20c2 TrustedLoad.shir +00:20c8 TrustedLoad.chil +00:20ce TrustedLoad.myco +00:20d4 TrustedLoad.search +00:20e6 TrustedLoad.notfound +00:20ed TrustedLoad.fallback +00:2108 InitializeSRAM +00:2269 ResetScores +00:2277 ResetScores.jumps +00:228c ResetScores.dmgt +00:2298 ResetScores.tgm1 +00:22a4 ResetScores.tgm3 +00:22b0 ResetScores.deat +00:22bc ResetScores.shir +00:22c8 ResetScores.chil +00:22d4 ResetScores.myco +00:22e0 NextProfile +00:22e9 NextProfile.update +00:22ec ChangeProfile +00:22ec ChangeProfile.backup +00:231a ChangeProfile.first +00:2328 ChangeProfile.second +00:2336 ChangeProfile.third +00:2344 ChangeProfile.fourth +00:2352 ChangeProfile.fifth +00:2360 ChangeProfile.sixth +00:236e ChangeProfile.seventh +00:237c ChangeProfile.eighth +00:238a ChangeProfile.ninth +00:2398 ChangeProfile.tenth +00:23a6 ChangeProfile.restore +00:23d5 ChangeProfile.lfirst +00:23e4 ChangeProfile.lsecond +00:23f3 ChangeProfile.lthird +00:2402 ChangeProfile.lfourth +00:2411 ChangeProfile.lfifth +00:2420 ChangeProfile.lsixth +00:242f ChangeProfile.lseventh +00:243e ChangeProfile.leighth +00:244d ChangeProfile.lninth +00:245c ChangeProfile.ltenth +00:246b ResetProfile +00:24ce LevelInit +00:253e SpecialLevelInit +00:254c SpecialLevelInit.jumps +00:2561 SpecialLevelInit.dmgt +00:2566 SpecialLevelInit.tgm1 +00:256b SpecialLevelInit.tgm3 +00:2570 SpecialLevelInit.deat +00:2575 SpecialLevelInit.shir +00:257a SpecialLevelInit.chil +00:257f SpecialLevelInit.myco +00:2584 SpecialLevelInit.loaddata +00:25b9 LevelUp +00:25e3 LevelUp.doit +00:2622 LevelUp.checknlevel +00:2677 LevelUp.checkcool +00:2698 LevelUp.checkregret +00:26b5 LevelUp.resetsectiontimer +00:26d8 LevelUp.regretavailable +00:26dc LevelUp.bellmaybe +00:26f8 LevelUp.leveljinglemaybe +00:2708 AdjustSpeedCurve +00:270e AdjustSpeedCurve.docheck +00:270e AdjustSpeedCurve.checkthousands +00:271d AdjustSpeedCurve.checkhundreds +00:272a AdjustSpeedCurve.checktens +00:2739 AdjustSpeedCurve.checkones +00:2744 AdjustSpeedCurveForced +00:277f AdjustSpeedCurveForced.continue +00:2784 BuildTrueCLevel +00:27ac BuildTrueCLevel.thousands +00:27c1 CheckSpecialLevelConditions +00:27f2 CheckSpecialLevelConditions.override +00:280d CheckSpecialLevelConditions.nooverride +00:2813 CheckSpecialLevelConditions.speciallock +00:2837 CheckSpecialLevelConditions.bones +00:284c CheckSpecialLevelConditions.enterthebonezone +00:2851 CheckSpecialLevelConditions.invis +00:2866 CheckSpecialLevelConditions.vanishoxyaction +00:286b CheckSpecialLevelConditions.killscreen +00:287c CheckSpecialLevelConditions.rip +00:28ac CheckSpecialLevelConditions.staffroll +00:28ba CheckSpecialLevelConditions.justkill +00:28ce TriggerKillScreen +00:28f0 GetSection +00:28fe GetSectionBCD +00:2907 GetAdjustedSection +00:2915 GetAdjustedSectionBCD +00:291e SkipSection +00:292a SFXInit +00:2958 SFXPopQueue +00:296d SFXPushQueue +00:297e SFXProcessQueue +00:29ac SFXTriggerNoise +00:29d9 SFXEnqueue +00:29f2 SFXEnqueue.findsfx +00:2b58 SFXKill +00:2b8e SFXPlayNoise +00:2b99 SFXPlayNoise.noisereg +00:2bb0 SFXPlayNoise.savenoiseplayhead +00:2bb9 SFXPlay +00:2bbe SFXPlay.play +00:2bc8 SFXPlay.getRegister +00:2bc9 SFXPlay.checkEndOfSong +00:2bdb SFXPlay.checkEndOfSample +00:2bdf SFXPlay.checkChangeBank +00:2be9 SFXPlay.checkChangePlayHead +00:2bfc SFXPlay.applyRegister +00:2c01 SFXPlay.savePlayhead +00:2c0a SFXGoRoll +00:2c47 SFXEndOfGame +00:2c98 HarvestEntropy +00:2c9e HarvestEntropy.loop +00:2cbf RNGInit +00:2d00 RNGInit.hellinit +00:2d1c RNGInit.complexinit +00:2d33 RNGInit.getfirstpiece +00:2d48 RNGInit.getqueue +00:2d4e ShiftHistory +00:2d6b GetNextHellPiece +00:2d70 GetNextTGM1Piece +00:2d8d GetNextTGM2Piece +00:2daa GetNextNesPiece +00:2db8 GetNextTGM3Piece +00:2e6e GetNextPiece +00:2e7c GetNextPiece.nextpiecejumps +00:2e8b Next35Piece +00:2e95 Next7Piece +00:2e9f NextByte +00:2ebf CheckAndAddHiscore +00:2ec9 CheckAndAddHiscore.checkloop +00:2ece CheckAndAddHiscore.checkgrade +00:2ed7 CheckAndAddHiscore.oldgraded +00:2ee6 CheckAndAddHiscore.oldungraded +00:2eed CheckAndAddHiscore.checklevel +00:2f12 CheckAndAddHiscore.checkscore +00:2f55 CheckAndAddHiscore.notbetter +00:2f62 CheckAndAddHiscore.better +00:2f64 InsertHiScore +00:2f64 InsertHiScore.copylower +00:2f75 InsertHiScore.copyupper +00:2f95 InsertHiScore.findrow +00:2fa5 InsertHiScore.insert +00:2ffe InsertHiScore.persist +00:300f GetHiScoreEntry +00:3027 GetHiScoreEntry.store +00:3030 InitTargetHSTable +00:303b InitTargetHSTable.jumps +00:3050 InitTargetHSTable.dmgt +00:3055 InitTargetHSTable.tgm1 +00:305a InitTargetHSTable.tgm3 +00:305f InitTargetHSTable.deat +00:3064 InitTargetHSTable.shir +00:3069 InitTargetHSTable.chil +00:306e InitTargetHSTable.myco +00:3071 InitTargetHSTable.store +00:3084 sProgressData +00:31ce TimeInit +00:31f7 StartCountdown +00:3205 ResetGameTime +00:3219 CheckTorikan +00:322f CheckTorikan.failure +00:3231 CheckTorikan.success +00:3234 HandleTimers +00:325a HandleTimers.reduce +00:3267 HandleTimers.clock +00:3281 HandleTimers.go +00:32a5 CheckCOOL_REGRET +00:32bc CheckCOOL_REGRET.failure +00:32be CheckCOOL_REGRET.success +00:32c1 HandleSectionTimers +00:32dd HandleSectionTimers.continue +00:32f1 HandleSectionTimers.sectiongo +00:3315 sHiscoreDefaultData +00:3455 InputInit +00:3467 GetInput +00:3467 GetInput.btns +00:3474 GetInput.readA +00:3478 GetInput.setA +00:3483 GetInput.clearA +00:3486 GetInput.readB +00:348a GetInput.setB +00:3495 GetInput.clearB +00:3498 GetInput.readSelect +00:349c GetInput.setSelect +00:34a7 GetInput.clearSelect +00:34aa GetInput.readStart +00:34ae GetInput.setStart +00:34b9 GetInput.clearStart +00:34bc GetInput.dpad +00:34c9 GetInput.readUp +00:34cd GetInput.setUp +00:34d8 GetInput.clearUp +00:34db GetInput.readDown +00:34df GetInput.setDown +00:34ea GetInput.clearDown +00:34ed GetInput.readLeft +00:34f1 GetInput.setLeft +00:34fc GetInput.clearLeft +00:34ff GetInput.readRight +00:3503 GetInput.setRight +00:350e GetInput.clearRight +00:3511 GetInput.priorities +00:351e GetInput.jumps +00:352d GetInput.dlru +00:353d GetInput.ulrd +00:354d GetInput.lrud +00:3558 GetInput.udlr +00:3563 GetInput.zeroud +00:3569 GetInput.zerolr +00:356f GetInput.zerolrd +00:3577 GetInput.zerolru +00:357f ScoreInit +00:35a7 IncreaseScore +00:35df IncreaseScore.doConvert +00:35f7 IncreaseScore.carry +00:35f9 IncreaseScore.postConvert +00:360d IncreaseScore.preAddDigit +00:3635 IncreaseScore.addDigit +00:364b IncreaseScore.nextDigit +00:365f SwitchToTitle +00:3668 TitleEventLoopHandler +00:3672 TitleVBlankHandler +00:367c PersistLevel +00:368a DrawSpeedMain +00:36da DrawSpeedSettings +00:372a SetProgress +00:3734 SetProgress.loop +00:3738 SetProgress.correct +00:375f SetProgress.wvr_u1 +00:376b SetProgress.wvr_u2 +00:3779 SetProgress.wvr_u3 +00:3785 SetProgress.wvr_u4 +00:3793 SetProgress.wvr_u5 +00:379f SetProgress.wvr_u6 +00:37ad SetProgress.wvr_u7 +00:37b9 SetProgress.wvr_u8 +00:37c7 SetProgress.wvr_u9 +00:37d3 SetProgress.wvr_u10 +00:37db Main +00:3804 Main.notgbc +00:3810 Main.wvr_u1 +00:383d EventLoop +00:3856 EventLoop.eventloopjumps +00:385f EventLoopPostHandler +00:3861 EventLoopPostHandler.wvb_u2 +00:3873 EventLoopPostHandler.vblankjumps +00:387c GradeInit +00:3885 UpdateGrade +00:388e DecayGradeProcess +00:3897 DecayGradeDelay +00:38a0 TGM3REGRETHandler +00:38a9 TGM3COOLHandler +00:38b2 UnsafeMemCopy +00:38bb SafeMemCopy.wvr_u1 +00:38bb SafeMemCopy +00:38ca UnsafeMemSet +00:38d2 SafeMemSet +00:38d2 SafeMemSet.wvr_u2 +00:38e0 SwitchToGameplay +00:38e9 SwitchToGameplayBig +00:38f2 GamePlayEventLoopHandler +00:38fc GamePlayBigEventLoopHandler +00:3906 EnableScreenSquish +00:3920 DisableScreenSquish +00:392b CopyOAMHandler +00:3937 ClearOAM +00:394d DoIntroEffect +00:395e BankingInit +00:396d OAMDMA +00:3977 OAMDMAEnd 01:4008 sDMGTSpeedCurve 01:4203 sDMGTSpeedCurveEnd 01:4205 sDMGTSpeedCurveSpecialData @@ -1908,128 +1912,128 @@ 04:629d DoHold.cp4 04:62ab DoHold.noRotation 04:62b6 DoHold.doHoldOperation -04:62c1 sLeftDasSlam -04:62c7 sRightDasSlam -04:62cd sLeady -04:62d7 sGo -04:62e1 sPause -04:6309 sKill -04:63a9 sYouAreGM -04:640d sFinalChallenge -04:64d5 sPieceXOffsets -04:64f1 sPieceYOffsets -04:650d sPieceFastRotationStates -04:657d sPieceRotationStates -04:65ed sTGM3Bag -04:6610 sTGM3Droughts -04:6617 sGameplayTileMap -04:68b7 sGameplayUngradedTileMap -04:68b7 sGameplayTileMapEnd -04:6b57 sGameplayUngradedTileMapEnd -04:6b57 GradeInitB -04:6ba1 GradeInitB.grade9start -04:6ba6 UpdateGradeB -04:6ba6 GradeInitB.end -04:6bb4 UpdateGradeB.gradejumptable -04:6bc9 DecayGradeProcessB -04:6bd7 DecayGradeProcessB.gradejumptable -04:6bec DecayGradeDelayB -04:6bfa DecayGradeDelayB.gradejumptable -04:6c0f PrepareScore -04:6c22 DrawGradeProgressDMGT -04:6c3d UpdateGradeDMGT -04:6c76 UpdateGradeDMGT.checklineclears -04:6c8f UpdateGradeDMGT.clearrate -04:6ca0 UpdateGradeDMGT.combomult -04:6cad UpdateGradeDMGT.combo13 -04:6cbe UpdateGradeDMGT.combo8 -04:6ccf UpdateGradeDMGT.combo1 -04:6cde UpdateGradeDMGT.prelevel -04:6ced UpdateGradeDMGT.single -04:6cfd UpdateGradeDMGT.double -04:6d0e UpdateGradeDMGT.adddonce -04:6d12 UpdateGradeDMGT.triple -04:6d23 UpdateGradeDMGT.addtonce -04:6d27 UpdateGradeDMGT.tetris -04:6d2b UpdateGradeDMGT.levelmult -04:6d43 UpdateGradeDMGT.mult4 -04:6d49 UpdateGradeDMGT.mult3 -04:6d4e UpdateGradeDMGT.mult2 -04:6d52 UpdateGradeDMGT.mult1 -04:6d53 UpdateGradeDMGT.processgrade -04:6d7c UpdateGradeDMGT.increasegrademaybe -04:6da0 UpdateGradeDMGT.gotgm -04:6dae DecayGradeDMGT -04:6dd1 DecayGradeDMGT.nodecay -04:6dd8 DecayGradeDMGT.decay -04:6de6 UpdateGradeTGM1 -04:6df6 UpdateGradeTGM1.trygradeup -04:6e11 UpdateGradeTGM1.increasegrade -04:6e26 UpdateGradeTGM1.skipjingle -04:6e32 UpdateGradeTGM1.check300 -04:6e50 UpdateGradeTGM1.success300 -04:6e57 UpdateGradeTGM1.fail300 -04:6e5e UpdateGradeTGM1.check500 -04:6e7c UpdateGradeTGM1.success500 -04:6e83 UpdateGradeTGM1.fail500 -04:6e8a UpdateGradeTGM1.check999 -04:6ec1 UpdateGradeTGM1.success999 -04:6ed9 UpdateGradeTGM1.fail999 -04:6edf UpdateGradeDEAT -04:6eeb UpdateGradeDEAT.notgm -04:6f07 UpdateGradeDEAT.notm -04:6f2a UpdateGradeDEAT.disqualify -04:6f48 UpdateGradeSHIR -04:6f8a UpdateGradeSHIR.s5torikan -04:6f9a UpdateGradeSHIR.s10torikan -04:6fa9 UpdateGradeSHIR.disqualify -04:6fb8 UpdateGradeSHIR.l1000 -04:6fce UpdateGradeSHIR.l500 -04:6fe4 UpdateGradeTGM3 -04:6fe4 UpdateGradeTGM3.GradePoints -04:6ff8 UpdateGradeTGM3.GetOffset -04:700a UpdateGradeTGM3.loadpoints -04:7014 UpdateGradeTGM3.multipliers -04:7040 UpdateGradeTGM3.levelmultiplier -04:7059 UpdateGradeTGM3.Level750 -04:706d UpdateGradeTGM3.under750 -04:7073 UpdateGradeTGM3.Level500 -04:7081 UpdateGradeTGM3.Level250 -04:7090 UpdateGradeTGM3.under250 -04:7094 UpdateGradeTGM3.Multiply -04:709e UpdateGradeTGM3.IncreaseInternalGrade -04:70b6 TGM3UpdateDisplayedGrade -04:70cb TGM3UpdateDisplayedGrade.update -04:70e8 TGM3UpdateDisplayedGrade.cool -04:7107 TGM3UpdateDisplayedGrade.nocool -04:7113 TGM3UpdateDisplayedGrade.continue -04:7124 CheckCOOL -04:7138 CheckCOOL.cool -04:7159 DecayGradeTGM3 -04:716d DecayGradeTGM3.points -04:718e DecayGradeTGM3.GetOffset -04:7197 DecayGradeTGM3.lpoints -04:719b TGM3COOLHandlerB -04:71c2 TGM3COOLHandlerB.checkCOOL -04:71cc TGM3COOLHandlerB.checkBaselineCOOL -04:71d4 TGM3COOLHandlerB.cool -04:71ee TGM3COOLHandlerB.nocool -04:71fa TGM3REGRETHandlerB -04:7216 TGM3REGRETHandlerB.regret -04:7243 TGM3StaffRollGradeUpdate -04:7259 TGM3StaffRollGradeUpdate.UpdateGrade -04:7269 sDMGTGrading -04:731d sDMGTGaugeLUT -04:741d sTGM1GradeScores -04:743f sTGM3InternalGradeSystem -04:74df sTGM3GradeBoosts -04:74fe sTGM3HowManyInternalGradesToDecrease -04:751d sTGM3HowManyInternalGradesToIncrease -04:753c sTGM3ComboMultipliers -04:756e sTGM3LevelMultiplier -04:7571 sTGM3BaselineCOOL -04:757a sTGM3REGRETConditions -04:758e sTGM3StaffrollGrading +04:62ca sLeftDasSlam +04:62d0 sRightDasSlam +04:62d6 sLeady +04:62e0 sGo +04:62ea sPause +04:6312 sKill +04:63b2 sYouAreGM +04:6416 sFinalChallenge +04:64de sPieceXOffsets +04:64fa sPieceYOffsets +04:6516 sPieceFastRotationStates +04:6586 sPieceRotationStates +04:65f6 sTGM3Bag +04:6619 sTGM3Droughts +04:6620 sGameplayTileMap +04:68c0 sGameplayUngradedTileMap +04:68c0 sGameplayTileMapEnd +04:6b60 sGameplayUngradedTileMapEnd +04:6b60 GradeInitB +04:6baa GradeInitB.grade9start +04:6baf UpdateGradeB +04:6baf GradeInitB.end +04:6bbd UpdateGradeB.gradejumptable +04:6bd2 DecayGradeProcessB +04:6be0 DecayGradeProcessB.gradejumptable +04:6bf5 DecayGradeDelayB +04:6c03 DecayGradeDelayB.gradejumptable +04:6c18 PrepareScore +04:6c2b DrawGradeProgressDMGT +04:6c46 UpdateGradeDMGT +04:6c7f UpdateGradeDMGT.checklineclears +04:6c98 UpdateGradeDMGT.clearrate +04:6ca9 UpdateGradeDMGT.combomult +04:6cb6 UpdateGradeDMGT.combo13 +04:6cc7 UpdateGradeDMGT.combo8 +04:6cd8 UpdateGradeDMGT.combo1 +04:6ce7 UpdateGradeDMGT.prelevel +04:6cf6 UpdateGradeDMGT.single +04:6d06 UpdateGradeDMGT.double +04:6d17 UpdateGradeDMGT.adddonce +04:6d1b UpdateGradeDMGT.triple +04:6d2c UpdateGradeDMGT.addtonce +04:6d30 UpdateGradeDMGT.tetris +04:6d34 UpdateGradeDMGT.levelmult +04:6d4c UpdateGradeDMGT.mult4 +04:6d52 UpdateGradeDMGT.mult3 +04:6d57 UpdateGradeDMGT.mult2 +04:6d5b UpdateGradeDMGT.mult1 +04:6d5c UpdateGradeDMGT.processgrade +04:6d85 UpdateGradeDMGT.increasegrademaybe +04:6da9 UpdateGradeDMGT.gotgm +04:6db7 DecayGradeDMGT +04:6dda DecayGradeDMGT.nodecay +04:6de1 DecayGradeDMGT.decay +04:6def UpdateGradeTGM1 +04:6dff UpdateGradeTGM1.trygradeup +04:6e1a UpdateGradeTGM1.increasegrade +04:6e2f UpdateGradeTGM1.skipjingle +04:6e3b UpdateGradeTGM1.check300 +04:6e59 UpdateGradeTGM1.success300 +04:6e60 UpdateGradeTGM1.fail300 +04:6e67 UpdateGradeTGM1.check500 +04:6e85 UpdateGradeTGM1.success500 +04:6e8c UpdateGradeTGM1.fail500 +04:6e93 UpdateGradeTGM1.check999 +04:6eca UpdateGradeTGM1.success999 +04:6ee2 UpdateGradeTGM1.fail999 +04:6ee8 UpdateGradeDEAT +04:6ef4 UpdateGradeDEAT.notgm +04:6f10 UpdateGradeDEAT.notm +04:6f33 UpdateGradeDEAT.disqualify +04:6f51 UpdateGradeSHIR +04:6f93 UpdateGradeSHIR.s5torikan +04:6fa3 UpdateGradeSHIR.s10torikan +04:6fb2 UpdateGradeSHIR.disqualify +04:6fc1 UpdateGradeSHIR.l1000 +04:6fd7 UpdateGradeSHIR.l500 +04:6fed UpdateGradeTGM3 +04:6fed UpdateGradeTGM3.GradePoints +04:7001 UpdateGradeTGM3.GetOffset +04:7013 UpdateGradeTGM3.loadpoints +04:701d UpdateGradeTGM3.multipliers +04:7049 UpdateGradeTGM3.levelmultiplier +04:7062 UpdateGradeTGM3.Level750 +04:7076 UpdateGradeTGM3.under750 +04:707c UpdateGradeTGM3.Level500 +04:708a UpdateGradeTGM3.Level250 +04:7099 UpdateGradeTGM3.under250 +04:709d UpdateGradeTGM3.Multiply +04:70a7 UpdateGradeTGM3.IncreaseInternalGrade +04:70bf TGM3UpdateDisplayedGrade +04:70d4 TGM3UpdateDisplayedGrade.update +04:70f1 TGM3UpdateDisplayedGrade.cool +04:7110 TGM3UpdateDisplayedGrade.nocool +04:711c TGM3UpdateDisplayedGrade.continue +04:712d CheckCOOL +04:7141 CheckCOOL.cool +04:7162 DecayGradeTGM3 +04:7176 DecayGradeTGM3.points +04:7197 DecayGradeTGM3.GetOffset +04:71a0 DecayGradeTGM3.lpoints +04:71a4 TGM3COOLHandlerB +04:71cb TGM3COOLHandlerB.checkCOOL +04:71d5 TGM3COOLHandlerB.checkBaselineCOOL +04:71dd TGM3COOLHandlerB.cool +04:71f7 TGM3COOLHandlerB.nocool +04:7203 TGM3REGRETHandlerB +04:721f TGM3REGRETHandlerB.regret +04:724c TGM3StaffRollGradeUpdate +04:7262 TGM3StaffRollGradeUpdate.UpdateGrade +04:7272 sDMGTGrading +04:7326 sDMGTGaugeLUT +04:7426 sTGM1GradeScores +04:7448 sTGM3InternalGradeSystem +04:74e8 sTGM3GradeBoosts +04:7507 sTGM3HowManyInternalGradesToDecrease +04:7526 sTGM3HowManyInternalGradesToIncrease +04:7545 sTGM3ComboMultipliers +04:7577 sTGM3LevelMultiplier +04:757a sTGM3BaselineCOOL +04:7583 sTGM3REGRETConditions +04:7597 sTGM3StaffrollGrading 05:4008 BigFieldInit 05:4049 BigFieldClear 05:40ef GoSmall @@ -2780,22 +2784,22 @@ 05:6574 BigDoHold.cp4 05:6582 BigDoHold.noRotation 05:658d BigDoHold.doHoldOperation -05:6598 sBigLeftDasSlam -05:659e sBigRightDasSlam -05:65a4 sBigLeady -05:65ae sBigGo -05:65b8 sBigPause -05:65e0 sBigKill -05:6680 sBigYouAreGM -05:66e4 sBigFinalChallenge -05:67ac sBigPieceXOffsets -05:67c8 sBigPieceYOffsets -05:67e4 sBigPieceFastRotationStates -05:6854 sBigPieceRotationStates -05:68c4 sBigGameplayTileMap -05:6b64 sBigGameplayUngradedTileMap -05:6b64 sBigGameplayTileMapEnd -05:6e04 sBigGameplayUngradedTileMapEnd +05:65a1 sBigLeftDasSlam +05:65a7 sBigRightDasSlam +05:65ad sBigLeady +05:65b7 sBigGo +05:65c1 sBigPause +05:65e9 sBigKill +05:6689 sBigYouAreGM +05:66ed sBigFinalChallenge +05:67b5 sBigPieceXOffsets +05:67d1 sBigPieceYOffsets +05:67ed sBigPieceFastRotationStates +05:685d sBigPieceRotationStates +05:68cd sBigGameplayTileMap +05:6b6d sBigGameplayUngradedTileMap +05:6b6d sBigGameplayTileMapEnd +05:6e0d sBigGameplayUngradedTileMapEnd 06:4008 sMusicMenu 06:6ac1 sMusicMenuEnd 07:4008 sMusicRoll1 diff --git a/src/include/globals.asm b/src/include/globals.asm index a694ec7..a95dd9a 100644 --- a/src/include/globals.asm +++ b/src/include/globals.asm @@ -209,6 +209,7 @@ DEF PIECE_J EQU 3 DEF PIECE_L EQU 4 DEF PIECE_O EQU 5 DEF PIECE_T EQU 6 +DEF PIECE_NONE EQU 7 ; Sound effect names DEF REG_NR10_CH1_SWEEP EQU $10 diff --git a/src/res/other_data.inc b/src/res/other_data.inc index d3207ae..5eccca8 100644 --- a/src/res/other_data.inc +++ b/src/res/other_data.inc @@ -1015,7 +1015,7 @@ sTitleTiles:: DB $80,$80,$C0,$C0,$60,$60,$60,$60 DB $F0,$F0,$F0,$F0,$E0,$E0,$C0,$C0 DB $00,$00,$87,$00,$84,$00,$87,$00 - DB $81,$00,$D7,$00,$00,$00,$00,$00 + DB $85,$00,$D7,$00,$00,$00,$00,$00 DB $C0,$C0,$F0,$F0,$FC,$FC,$FF,$FF DB $FC,$FC,$F0,$F0,$C0,$C0,$00,$00 DB $C0,$00,$F0,$00,$FC,$00,$FF,$00 diff --git a/src/res/sources/tiles_title.gbr b/src/res/sources/tiles_title.gbr index 607a9a2..acf1d25 100644 Binary files a/src/res/sources/tiles_title.gbr and b/src/res/sources/tiles_title.gbr differ diff --git a/src/rng.asm b/src/rng.asm index 144940a..c636176 100644 --- a/src/rng.asm +++ b/src/rng.asm @@ -104,18 +104,16 @@ RNGInit:: call UnsafeMemCopy rst RSTRestoreBank - ; Start with a random non-S/Z piece held. -: call Next7Piece - cp a, PIECE_Z - jr z, :- - cp a, PIECE_S - jr z, :- + ; Start with no piece held. + ld a, PIECE_NONE ldh [hHeldPiece], a ; If we're in HELL mode, we don't care about anything but a random piece to start with. ld a, [wRNGModeState] cp a, RNG_MODE_HELL jr nz, .complexinit + +.hellinit call Next7Piece ld [hUpcomingPiece2], a call Next7Piece @@ -139,19 +137,20 @@ RNGInit:: ld a, [wRNGModeState] cp a, RNG_MODE_TGM1 - jr z, :+ + jr z, .getfirstpiece ld a, PIECE_S ldh [hPieceHistory+2], a ldh [hPieceHistory+3], a ; Get the first piece and make sure it's not Z, S or O. -: call Next7Piece +.getfirstpiece + call Next7Piece cp a, PIECE_Z - jr z, :- + jr z, .getfirstpiece cp a, PIECE_S - jr z, :- + jr z, .getfirstpiece cp a, PIECE_O - jr z, :- + jr z, .getfirstpiece ; Save the generated piece and put it in the history. ldh [hPieceHistory], a @@ -159,6 +158,7 @@ RNGInit:: ldh [hUpcomingPiece2], a ; Generate the next 2 to fill up the queue. +.getqueue call GetNextPiece jp GetNextPiece diff --git a/src/sprites.asm b/src/sprites.asm index 9d916ff..a4e0128 100644 --- a/src/sprites.asm +++ b/src/sprites.asm @@ -350,7 +350,19 @@ ApplyNext:: ; Draws the held piece. ; Index of held piece in A. ApplyHold:: + ; Do we have a piece to draw? + cp a, PIECE_NONE + jr nz, .drawhold + ld a, TILE_BLANK + ld [wSPRHold1+2], a + ld [wSPRHold2+2], a + ld [wSPRHold3+2], a + ld [wSPRHold4+2], a + ret + + ; If we're in Shirase mode and past level 1000... +.drawhold ld b, a ld a, [wBonesActive] cp a, $FF diff --git a/src/state_gameplay.asm b/src/state_gameplay.asm index 0033279..b7ff9b2 100644 --- a/src/state_gameplay.asm +++ b/src/state_gameplay.asm @@ -887,7 +887,13 @@ DoHold: ldh [hHeldPiece], a ld a, b ldh [hCurrentPiece], a - ret + cp a, PIECE_NONE + ret nz + + ; This is the first piece, in this case we need to fetch a new one. + ldh a, [hNextPiece] + ldh [hCurrentPiece], a + jp GetNextPiece @@ -1716,7 +1722,13 @@ BigDoHold: ldh [hHeldPiece], a ld a, b ldh [hCurrentPiece], a - ret + cp a, PIECE_NONE + ret nz + + ; This is the first piece, in this case we need to fetch a new one. + ldh a, [hNextPiece] + ldh [hCurrentPiece], a + jp GetNextPiece ENDC