diff --git a/bin/PandorasBlocks.gbc b/bin/PandorasBlocks.gbc index a7b611c..5ed67a8 100644 Binary files a/bin/PandorasBlocks.gbc and b/bin/PandorasBlocks.gbc differ diff --git a/bin/PandorasBlocks.map b/bin/PandorasBlocks.map index d408f4d..55e9d54 100644 --- a/bin/PandorasBlocks.map +++ b/bin/PandorasBlocks.map @@ -32,574 +32,562 @@ ROM0 bank #0: $00f4 = DoDMGEffect.wvbe_u13 EMPTY: $00fd-$00ff ($0003 bytes) SECTION: $0100-$014f ($0050 bytes) ["Cartridge Header"] - SECTION: $0150-$0fb9 ($0e6a bytes) ["GBC Functions"] + SECTION: $0150-$0f11 ($0dc2 bytes) ["GBC Functions"] $0150 = ToATTR $0172 = GBCTitleInit $0353 = GBCTitleInit.agb $0523 = GBCTitleInit.postpalettes - $0563 = GBCGameplayInit - $0744 = GBCGameplayInit.agb - $0914 = GBCGameplayInit.postpalettes - $093f = GBCTitleProcess - $095b = GBCTitleProcess.jumps - $096a = GBCTitleProcess.eventLoopMain - $097b = GBCTitleProcess.nores - $097e = GBCTitleProcess.noinc - $0995 = !0 - $09a2 = GBCTitleProcess.eventLoopProfile - $09b3 = GBCTitleProcess.nores3 - $09b6 = GBCTitleProcess.noinc3 - $09cd = !1 - $09da = GBCTitleProcess.eventLoopSettings - $09eb = GBCTitleProcess.nores1 - $09ee = GBCTitleProcess.noinc1 - $0a05 = !2 - $0a12 = GBCTitleProcess.eventLoopRecords - $0a23 = GBCTitleProcess.nores4 - $0a26 = GBCTitleProcess.noinc4 - $0a33 = GBCTitleProcess.eventLoopCredits - $0a44 = GBCTitleProcess.nores2 - $0a47 = GBCTitleProcess.noinc2 - $0a54 = GBCGameplayProcess - $0a90 = GBCGameplayProcess.goverride - $0a9b = !3 - $0aa4 = !4 - $0aad = !5 - $0ab5 = GBCGameplayProcess.colorfield - $0c1b = !6 - $0c29 = GBCGameplayProcess.outer1 - $0c2e = GBCGameplayProcess.inner1 - $0c52 = GBCGameplayProcess.outer2 - $0c57 = GBCGameplayProcess.inner2 - $0c7c = GBCGameplayProcess.empty - $0c80 = GBCGameplayProcess.sub59 - $0c82 = GBCGameplayProcess.sub52 - $0c84 = GBCGameplayProcess.sub45 - $0c86 = GBCGameplayProcess.sub38 - $0c88 = GBCGameplayProcess.sub31 - $0c8a = GBCGameplayProcess.sub24 - $0c8c = GBCGameplayProcess.sub17 - $0c8e = GBCGameplayProcess.sub10 - $0c90 = GBCGameplayProcess.done - $0cb2 = GBCGameplayProcess.darker - $0cb9 = GBCGameplayProcess.wvr_u1 - $0cc6 = GBCGameplayProcess.lighter - $0ccd = GBCGameplayProcess.wvr_u2 - $0cda = GBCGameplayProcess.black - $0ce1 = GBCGameplayProcess.wvr_u3 - $0cee = GBCBigGameplayProcess - $0d2a = GBCBigGameplayProcess.goverride - $0d35 = !7 - $0d3e = !8 - $0d47 = !9 - $0d4f = GBCBigGameplayProcess.colorfield - $0eb5 = !10 - $0ec3 = GBCBigGameplayProcess.outer1 - $0ec8 = GBCBigGameplayProcess.inner1 - $0eec = GBCBigGameplayProcess.outer2 - $0ef1 = GBCBigGameplayProcess.inner2 - $0f16 = GBCBigGameplayProcess.empty - $0f1a = GBCBigGameplayProcess.sub59 - $0f1c = GBCBigGameplayProcess.sub52 - $0f1e = GBCBigGameplayProcess.sub45 - $0f20 = GBCBigGameplayProcess.sub38 - $0f22 = GBCBigGameplayProcess.sub31 - $0f24 = GBCBigGameplayProcess.sub24 - $0f26 = GBCBigGameplayProcess.sub17 - $0f28 = GBCBigGameplayProcess.sub10 - $0f2a = GBCBigGameplayProcess.done - $0f4c = GBCBigGameplayProcess.darker - $0f53 = GBCBigGameplayProcess.wvr_u4 - $0f60 = GBCBigGameplayProcess.lighter - $0f67 = GBCBigGameplayProcess.wvr_u5 - $0f74 = GBCBigGameplayProcess.black - $0f7b = GBCBigGameplayProcess.wvr_u6 - $0f88 = ToVRAM - $0f88 = GBCBlitField - SECTION: $0fba-$1793 ($07da bytes) ["Field Function Unbanked"] - $0fba = BlitField - $117d = BlitField.waitendvbloop - $1182 = !0 - $11d0 = !1 - $121e = !2 - $126c = !3 - $12ba = !4 - $1308 = !5 - $1356 = !6 - $13a7 = BigBlitField - $156a = BigBlitField.waitendvbloop - $156f = !7 - $15bd = !8 - $160b = !9 - $1659 = !10 - $16a7 = !11 - $16f5 = !12 - $1743 = !13 - SECTION: $1794-$1daf ($061c bytes) ["Domain Specific Functions"] - $1794 = SetPal - $17a1 = SetPal.darker - $17a7 = SetPal.lighter - $17ad = ApplyTells - $17ad = SetPal.setpal - $17eb = ApplyTells.myco - $17f0 = ApplyTells.dropmode - $1814 = ApplyNext - $181c = ApplyNext.bone - $183b = ApplyNext.nobone - $185c = ApplyNext.pos - $186c = ApplyNext.regular - $1872 = ApplyNext.postoffsets - $1875 = ApplyNext.getoffn - $1880 = ApplyNext.skipoffn - $191c = ApplyNext.done - $191f = ApplyHold - $1927 = ApplyHold.bone - $1946 = ApplyHold.nobone - $1962 = ApplyHold.hide - $1974 = ApplyHold.show - $1984 = ApplyHold.x - $1994 = ApplyHold.regular - $199a = ApplyHold.postoffsets - $199d = ApplyHold.getoffh - $19a8 = ApplyHold.skipoffh - $19e2 = ApplyTime - $1a33 = ApplyTime.loop0 - $1a62 = ApplyTime.loop1 - $1ab7 = ApplyNumbers8 - $1b19 = ApplyNumbers8.one - $1b23 = ApplyNumbers8.two - $1b2d = ApplyNumbers8.three - $1b37 = ApplyNumbers8.four - $1b41 = ApplyNumbers8.five - $1b4b = ApplyNumbers8.six - $1b55 = ApplyNumbers8.seven - $1b5f = ApplyNumbers8.eight - $1b68 = ApplyNumbers4 - $1b96 = ApplyNumbers4.one - $1ba0 = ApplyNumbers4.two - $1baa = ApplyNumbers4.three - $1bb4 = ApplyNumbers4.four - $1bbd = SetNumberSpritePositions - $1cd4 = GradeRendering - $1d07 = GradeRendering.effect - $1d17 = GradeRendering.noeffect - $1d1f = GradeRendering.drawgrade - $1d26 = GradeRendering.regulargrade - $1d2e = GradeRendering.sgrade - $1d44 = GradeRendering.hisgrade - $1d5a = GradeRendering.mgrade - $1d70 = GradeRendering.lettergrade - $1d8d = GradeRendering.mk - $1d93 = GradeRendering.mv - $1d99 = GradeRendering.mo - $1d9f = GradeRendering.mm - $1da5 = GradeRendering.gmgrade - SECTION: $1db0-$2269 ($04ba bytes) ["SRAM Functions"] - $1db0 = RestoreSRAM - $1ddf = TrustedLoad - $1e36 = TrustedLoad.jumps - $1e4e = TrustedLoad.dmgt - $1e54 = TrustedLoad.tgm1 - $1e5a = TrustedLoad.tgm3 - $1e60 = TrustedLoad.deat - $1e66 = TrustedLoad.shir - $1e6c = TrustedLoad.chil - $1e72 = TrustedLoad.myco - $1e78 = TrustedLoad.search - $1e8a = TrustedLoad.notfound - $1e91 = TrustedLoad.fallback - $1eac = InitializeSRAM - $2005 = ResetScores - $2013 = ResetScores.jumps - $2028 = ResetScores.dmgt - $2034 = ResetScores.tgm1 - $2040 = ResetScores.tgm3 - $204c = ResetScores.deat - $2058 = ResetScores.shir - $2064 = ResetScores.chil - $2070 = ResetScores.myco - $207c = NextProfile - $2085 = NextProfile.update - $2088 = ChangeProfile - $2088 = ChangeProfile.backup - $20b6 = ChangeProfile.first - $20c4 = ChangeProfile.second - $20d2 = ChangeProfile.third - $20e0 = ChangeProfile.fourth - $20ee = ChangeProfile.fifth - $20fc = ChangeProfile.sixth - $210a = ChangeProfile.seventh - $2118 = ChangeProfile.eighth - $2126 = ChangeProfile.ninth - $2134 = ChangeProfile.tenth - $2142 = ChangeProfile.restore - $2171 = ChangeProfile.lfirst - $2180 = ChangeProfile.lsecond - $218f = ChangeProfile.lthird - $219e = ChangeProfile.lfourth - $21ad = ChangeProfile.lfifth - $21bc = ChangeProfile.lsixth - $21cb = ChangeProfile.lseventh - $21da = ChangeProfile.leighth - $21e9 = ChangeProfile.lninth - $21f8 = ChangeProfile.ltenth - $2207 = ResetProfile - SECTION: $226a-$26e2 ($0479 bytes) ["Grading Functions"] - $226a = GradeInit - $229e = GradeInit.grade9start - $22a3 = GradeInit.end - $22a5 = UpdateGrade - $22b3 = UpdateGrade.gradejumptable - $22c8 = DecayGradeProcess - $22d6 = DecayGradeProcess.gradejumptable - $22eb = DecayGradeDelay - $22f9 = DecayGradeDelay.gradejumptable - $230e = PrepareScore - $2321 = DrawGradeProgressDMGT - $232d = !0 - $233c = UpdateGradeDMGT - $2375 = UpdateGradeDMGT.checklineclears - $238e = UpdateGradeDMGT.clearrate - $239f = UpdateGradeDMGT.combomult - $23ac = UpdateGradeDMGT.combo13 - $23bd = UpdateGradeDMGT.combo8 - $23ce = UpdateGradeDMGT.combo1 - $23dd = UpdateGradeDMGT.prelevel - $23ec = UpdateGradeDMGT.single - $23fc = UpdateGradeDMGT.double - $240d = UpdateGradeDMGT.adddonce - $2411 = UpdateGradeDMGT.triple - $2422 = UpdateGradeDMGT.addtonce - $2426 = UpdateGradeDMGT.tetris - $242a = UpdateGradeDMGT.levelmult - $2442 = UpdateGradeDMGT.mult4 - $2448 = UpdateGradeDMGT.mult3 - $244d = UpdateGradeDMGT.mult2 - $2451 = UpdateGradeDMGT.mult1 - $2452 = UpdateGradeDMGT.processgrade - $247b = UpdateGradeDMGT.increasegrademaybe - $249f = UpdateGradeDMGT.gotgm - $24ad = DecayGradeDMGT - $24d0 = DecayGradeDMGT.nodecay - $24d7 = DecayGradeDMGT.decay - $24e5 = UpdateGradeTGM1 - $24f5 = UpdateGradeTGM1.trygradeup - $2510 = UpdateGradeTGM1.increasegrade - $2525 = UpdateGradeTGM1.skipjingle - $2531 = UpdateGradeTGM1.check300 - $254f = UpdateGradeTGM1.success300 - $2556 = UpdateGradeTGM1.fail300 - $255d = UpdateGradeTGM1.check500 - $257b = UpdateGradeTGM1.success500 - $2582 = UpdateGradeTGM1.fail500 - $2589 = UpdateGradeTGM1.check999 - $25c0 = UpdateGradeTGM1.success999 - $25d8 = UpdateGradeTGM1.fail999 - $25de = UpdateGradeDEAT - $25ea = UpdateGradeDEAT.notgm - $2606 = UpdateGradeDEAT.notm - $2629 = UpdateGradeDEAT.disqualify - $2647 = UpdateGradeSHIR - $2689 = UpdateGradeSHIR.s5torikan - $2699 = UpdateGradeSHIR.s10torikan - $26a8 = UpdateGradeSHIR.disqualify - $26b7 = UpdateGradeSHIR.l1000 - $26cd = UpdateGradeSHIR.l500 - SECTION: $26e3-$2ad6 ($03f4 bytes) ["Level Functions"] - $26e3 = LevelInit - $2753 = SpecialLevelInit - $2761 = SpecialLevelInit.jumps - $2776 = SpecialLevelInit.dmgt - $277b = SpecialLevelInit.tgm1 - $2780 = SpecialLevelInit.tgm3 - $2785 = SpecialLevelInit.deat - $278a = SpecialLevelInit.shir - $278f = SpecialLevelInit.chil - $2794 = SpecialLevelInit.myco - $2799 = SpecialLevelInit.loaddata - $27ce = LevelUp - $27f8 = LevelUp.doit - $2837 = LevelUp.checknlevel - $2868 = !0 - $2880 = !1 - $2889 = LevelUp.bellmaybe - $28a5 = LevelUp.leveljinglemaybe - $28b5 = AdjustSpeedCurve - $28bb = AdjustSpeedCurve.docheck - $28bb = AdjustSpeedCurve.checkthousands - $28ca = AdjustSpeedCurve.checkhundreds - $28d7 = AdjustSpeedCurve.checktens - $28e6 = AdjustSpeedCurve.checkones - $28f1 = AdjustSpeedCurveForced - $292c = AdjustSpeedCurveForced.continue - $2931 = BuildTrueCLevel - $2959 = BuildTrueCLevel.thousands - $296e = CheckSpecialLevelConditions - $299f = CheckSpecialLevelConditions.override - $29ba = CheckSpecialLevelConditions.nooverride - $29c0 = CheckSpecialLevelConditions.speciallock - $29e4 = CheckSpecialLevelConditions.bones - $29f9 = CheckSpecialLevelConditions.enterthebonezone - $29fe = CheckSpecialLevelConditions.invis - $2a13 = CheckSpecialLevelConditions.vanishoxyaction - $2a18 = CheckSpecialLevelConditions.killscreen - $2a29 = CheckSpecialLevelConditions.rip - $2a59 = CheckSpecialLevelConditions.staffroll - $2a67 = CheckSpecialLevelConditions.justkill - $2a7b = TriggerKillScreen - $2a9d = GetSection - $2aab = GetSectionBCD - $2ab4 = GetAdjustedSection - $2ac2 = GetAdjustedSectionBCD - $2acb = SkipSection - SECTION: $2ad7-$2d8c ($02b6 bytes) ["Grading Data"] - $2ad7 = sTGM1GradeScores - $2af9 = sTGM3InternalGradeSystem - $2b99 = sTGM3GradeBoosts - $2bb8 = sTGM3LevelMultiplier - $2bbc = sTGM3BaselineCOOL - $2bc5 = sTGM3REGRETConditions - $2bd9 = sDMGTGrading - $2c8d = sDMGTGaugeLUT - SECTION: $2d8d-$302c ($02a0 bytes) ["SFX Functions"] - $2d8d = SFXInit - $2daf = SFXPopQueue - $2dc4 = SFXPushQueue - $2dd5 = SFXProcessQueue - $2de6 = !0 - $2e01 = !1 - $2e03 = SFXTriggerNoise - $2e10 = !2 - $2e1d = !3 - $2e29 = SFXEnqueue - $2e3e = SFXEnqueue.findsfx - $2e53 = !4 - $2e63 = !5 - $2e73 = !6 - $2e83 = !7 - $2e93 = !8 - $2ea3 = !9 - $2eb3 = !10 - $2ec3 = !11 - $2ed3 = !12 - $2ee3 = !13 - $2ef3 = !14 - $2f03 = !15 - $2f13 = !16 - $2f23 = !17 - $2f33 = !18 - $2f42 = !19 - $2f51 = !20 - $2f60 = !21 - $2f6f = !22 - $2f7d = !23 - $2f8b = !24 - $2f98 = SFXKill - $2fcb = SFXPlayNoise - $2fd6 = SFXPlayNoise.noisereg - $2fe3 = !25 - $2fed = SFXPlayNoise.savenoiseplayhead - $2ff6 = SFXPlay - $3001 = !26 - $3004 = SFXPlay.play - $3010 = SFXPlay.getRegister - $301a = !27 - $3024 = SFXPlay.savePlayhead - SECTION: $302d-$325c ($0230 bytes) ["RNG Functions"] - $302d = HarvestEntropy - $3033 = HarvestEntropy.loop - $3054 = RNGInit - $308a = !0 - $30ba = RNGInit.complexinit - $30d1 = !1 - $30ec = ShiftHistory - $3109 = GetNextHellPiece - $310e = GetNextTGM1Piece - $3111 = !2 - $3129 = !3 - $312b = GetNextTGM2Piece - $312e = !4 - $3146 = !5 - $3148 = GetNextNesPiece - $3156 = GetNextTGM3Piece - $3159 = !6 - $317c = !7 - $317f = !8 - $318f = !9 - $3199 = !10 - $31a7 = !11 - $31b5 = !12 - $31c1 = !13 - $31cd = !14 - $31d9 = !15 - $31e5 = !16 - $31f1 = !17 - $31fd = !18 - $320c = GetNextPiece - $321a = GetNextPiece.nextpiecejumps - $3229 = Next35Piece - $3229 = !19 - $3233 = Next7Piece - $3233 = !20 - $323d = NextByte - SECTION: $325d-$3421 ($01c5 bytes) ["Hi Score Functions"] - $325d = CheckAndAddHiscore - $3267 = CheckAndAddHiscore.checkloop - $326c = CheckAndAddHiscore.checkgrade - $3275 = CheckAndAddHiscore.oldgraded - $3284 = CheckAndAddHiscore.oldungraded - $328b = CheckAndAddHiscore.checklevel - $32b0 = CheckAndAddHiscore.checkscore - $32f3 = CheckAndAddHiscore.notbetter - $3300 = CheckAndAddHiscore.better - $3302 = InsertHiScore - $3302 = InsertHiScore.copylower - $3313 = InsertHiScore.copyupper - $331f = !0 - $3333 = InsertHiScore.findrow - $333f = !1 - $3343 = InsertHiScore.insert - $339c = InsertHiScore.persist - $33ad = GetHiScoreEntry - $33c1 = !2 - $33c5 = GetHiScoreEntry.store - $33ce = InitTargetHSTable - $33d9 = InitTargetHSTable.jumps - $33ee = InitTargetHSTable.dmgt - $33f3 = InitTargetHSTable.tgm1 - $33f8 = InitTargetHSTable.tgm3 - $33fd = InitTargetHSTable.deat - $3402 = InitTargetHSTable.shir - $3407 = InitTargetHSTable.chil - $340c = InitTargetHSTable.myco - $340f = InitTargetHSTable.store - SECTION: $3422-$356b ($014a bytes) ["Progress Data"] - $3422 = sProgressData - SECTION: $356c-$36ab ($0140 bytes) ["Hi Score Data"] - $356c = sHiscoreDefaultData - SECTION: $36ac-$37d5 ($012a bytes) ["Input Functions"] - $36ac = InputInit - $36be = GetInput - $36be = GetInput.btns - $36cb = GetInput.readA - $36cf = GetInput.setA - $36da = GetInput.clearA - $36dd = GetInput.readB - $36e1 = GetInput.setB - $36ec = GetInput.clearB - $36ef = GetInput.readSelect - $36f3 = GetInput.setSelect - $36fe = GetInput.clearSelect - $3701 = GetInput.readStart - $3705 = GetInput.setStart - $3710 = GetInput.clearStart - $3713 = GetInput.dpad - $3720 = GetInput.readUp - $3724 = GetInput.setUp - $372f = GetInput.clearUp - $3732 = GetInput.readDown - $3736 = GetInput.setDown - $3741 = GetInput.clearDown - $3744 = GetInput.readLeft - $3748 = GetInput.setLeft - $3753 = GetInput.clearLeft - $3756 = GetInput.readRight - $375a = GetInput.setRight - $3765 = GetInput.clearRight - $3768 = GetInput.priorities - $3775 = GetInput.jumps - $3784 = GetInput.dlru - $3794 = GetInput.ulrd - $37a4 = GetInput.lrud - $37af = GetInput.udlr - $37ba = GetInput.zeroud - $37c0 = GetInput.zerolr - $37c6 = GetInput.zerolrd - $37ce = GetInput.zerolru - SECTION: $37d6-$38b5 ($00e0 bytes) ["Score Functions"] - $37d6 = ScoreInit - $37fe = IncreaseScore - $3836 = IncreaseScore.doConvert - $3838 = !0 - $384e = IncreaseScore.carry - $3850 = IncreaseScore.postConvert - $385d = !1 - $3864 = IncreaseScore.preAddDigit - $388c = IncreaseScore.addDigit - $38a2 = IncreaseScore.nextDigit - SECTION: $38b6-$3980 ($00cb bytes) ["Title Function Trampolines"] - $38b6 = SwitchToTitle - $38bf = TitleEventLoopHandler - $38c9 = TitleVBlankHandler - $38d3 = PersistLevel - $38e1 = DrawSpeedMain - $3931 = DrawSpeedSettings - SECTION: $3981-$3a45 ($00c5 bytes) ["Time Functions"] - $3981 = TimeInit - $39a1 = StartCountdown - $39af = ResetGameTime - $39ba = CheckTorikan - $39d0 = CheckTorikan.failure - $39d2 = CheckTorikan.success - $39d5 = HandleTimers - $39fb = HandleTimers.reduce - $3a08 = HandleTimers.clock - $3a22 = HandleTimers.go - SECTION: $3a46-$3af6 ($00b1 bytes) ["Progress Functions"] - $3a46 = SetProgress - $3a50 = SetProgress.loop - $3a54 = SetProgress.correct - $3a7b = SetProgress.wvr_u1 - $3a87 = SetProgress.wvr_u2 - $3a95 = SetProgress.wvr_u3 - $3aa1 = SetProgress.wvr_u4 - $3aaf = SetProgress.wvr_u5 - $3abb = SetProgress.wvr_u6 - $3ac9 = SetProgress.wvr_u7 - $3ad5 = SetProgress.wvr_u8 - $3ae3 = SetProgress.wvr_u9 - $3aef = SetProgress.wvr_u10 - SECTION: $3af7-$3b8e ($0098 bytes) ["Code Entry Point"] - $3af7 = Main - $3b20 = Main.notgbc - $3b26 = Main.wvr_u1 - $3b53 = EventLoop - $3b69 = EventLoop.eventloopjumps - $3b72 = EventLoopPostHandler - $3b74 = EventLoopPostHandler.wvb_u2 - $3b86 = EventLoopPostHandler.vblankjumps - SECTION: $3b8f-$3be0 ($0052 bytes) ["Tile Functions"] - $3b8f = LoadTitleTiles - $3bad = LoadGameplayTiles - $3bc3 = LoadGameplayTiles.gbc - $3bd2 = LoadGameplayTiles.dmg - SECTION: $3be1-$3c1c ($003c bytes) ["Time Data"] - $3be1 = sFramesToCS - SECTION: $3c1d-$3c4a ($002e bytes) ["Memory Functions"] - $3c1d = UnsafeMemCopy - $3c26 = SafeMemCopy.wvr_u1 - $3c26 = SafeMemCopy - $3c35 = UnsafeMemSet - $3c3d = SafeMemSet - $3c3d = SafeMemSet.wvr_u2 - SECTION: $3c4b-$3c70 ($0026 bytes) ["Gameplay Function Trampolines"] - $3c4b = SwitchToGameplay - $3c54 = SwitchToGameplayBig - $3c5d = GamePlayEventLoopHandler - $3c67 = GamePlayBigEventLoopHandler - SECTION: $3c71-$3c95 ($0025 bytes) ["Interrupt Initialization Functions"] - $3c71 = EnableScreenSquish - $3c8b = DisableScreenSquish - SECTION: $3c96-$3cb7 ($0022 bytes) ["OAM Functions"] - $3c96 = CopyOAMHandler - $3ca2 = ClearOAM - SECTION: $3cb8-$3cc6 ($000f bytes) ["Banking Functions"] - $3cb8 = BankingInit - SECTION: $3cc7-$3cd0 ($000a bytes) ["OAM DMA Code"] - $3cc7 = OAMDMA - $3cd1 = OAMDMAEnd - EMPTY: $3cd1-$3fff ($032f bytes) - TOTAL EMPTY: $033a bytes + $0557 = GBCGameplayInit + $0738 = GBCGameplayInit.agb + $0908 = GBCGameplayInit.postpalettes + $0933 = GBCTitleProcess + $094f = GBCTitleProcess.jumps + $095e = GBCTitleProcess.eventLoopMain + $0974 = !0 + $0980 = GBCTitleProcess.eventLoopProfile + $098a = !1 + $0996 = GBCTitleProcess.eventLoopSettings + $09a0 = !2 + $09ac = GBCGameplayProcess + $09e8 = GBCGameplayProcess.goverride + $09f3 = !3 + $09fc = !4 + $0a05 = !5 + $0a0d = GBCGameplayProcess.colorfield + $0b73 = !6 + $0b81 = GBCGameplayProcess.outer1 + $0b86 = GBCGameplayProcess.inner1 + $0baa = GBCGameplayProcess.outer2 + $0baf = GBCGameplayProcess.inner2 + $0bd4 = GBCGameplayProcess.empty + $0bd8 = GBCGameplayProcess.sub59 + $0bda = GBCGameplayProcess.sub52 + $0bdc = GBCGameplayProcess.sub45 + $0bde = GBCGameplayProcess.sub38 + $0be0 = GBCGameplayProcess.sub31 + $0be2 = GBCGameplayProcess.sub24 + $0be4 = GBCGameplayProcess.sub17 + $0be6 = GBCGameplayProcess.sub10 + $0be8 = GBCGameplayProcess.done + $0c0a = GBCGameplayProcess.darker + $0c11 = GBCGameplayProcess.wvr_u1 + $0c1e = GBCGameplayProcess.lighter + $0c25 = GBCGameplayProcess.wvr_u2 + $0c32 = GBCGameplayProcess.black + $0c39 = GBCGameplayProcess.wvr_u3 + $0c46 = GBCBigGameplayProcess + $0c82 = GBCBigGameplayProcess.goverride + $0c8d = !7 + $0c96 = !8 + $0c9f = !9 + $0ca7 = GBCBigGameplayProcess.colorfield + $0e0d = !10 + $0e1b = GBCBigGameplayProcess.outer1 + $0e20 = GBCBigGameplayProcess.inner1 + $0e44 = GBCBigGameplayProcess.outer2 + $0e49 = GBCBigGameplayProcess.inner2 + $0e6e = GBCBigGameplayProcess.empty + $0e72 = GBCBigGameplayProcess.sub59 + $0e74 = GBCBigGameplayProcess.sub52 + $0e76 = GBCBigGameplayProcess.sub45 + $0e78 = GBCBigGameplayProcess.sub38 + $0e7a = GBCBigGameplayProcess.sub31 + $0e7c = GBCBigGameplayProcess.sub24 + $0e7e = GBCBigGameplayProcess.sub17 + $0e80 = GBCBigGameplayProcess.sub10 + $0e82 = GBCBigGameplayProcess.done + $0ea4 = GBCBigGameplayProcess.darker + $0eab = GBCBigGameplayProcess.wvr_u4 + $0eb8 = GBCBigGameplayProcess.lighter + $0ebf = GBCBigGameplayProcess.wvr_u5 + $0ecc = GBCBigGameplayProcess.black + $0ed3 = GBCBigGameplayProcess.wvr_u6 + $0ee0 = ToVRAM + $0ee0 = GBCBlitField + SECTION: $0f12-$16eb ($07da bytes) ["Field Function Unbanked"] + $0f12 = BlitField + $10d5 = BlitField.waitendvbloop + $10da = !0 + $1128 = !1 + $1176 = !2 + $11c4 = !3 + $1212 = !4 + $1260 = !5 + $12ae = !6 + $12ff = BigBlitField + $14c2 = BigBlitField.waitendvbloop + $14c7 = !7 + $1515 = !8 + $1563 = !9 + $15b1 = !10 + $15ff = !11 + $164d = !12 + $169b = !13 + SECTION: $16ec-$1d07 ($061c bytes) ["Domain Specific Functions"] + $16ec = SetPal + $16f9 = SetPal.darker + $16ff = SetPal.lighter + $1705 = ApplyTells + $1705 = SetPal.setpal + $1743 = ApplyTells.myco + $1748 = ApplyTells.dropmode + $176c = ApplyNext + $1774 = ApplyNext.bone + $1793 = ApplyNext.nobone + $17b4 = ApplyNext.pos + $17c4 = ApplyNext.regular + $17ca = ApplyNext.postoffsets + $17cd = ApplyNext.getoffn + $17d8 = ApplyNext.skipoffn + $1874 = ApplyNext.done + $1877 = ApplyHold + $187f = ApplyHold.bone + $189e = ApplyHold.nobone + $18ba = ApplyHold.hide + $18cc = ApplyHold.show + $18dc = ApplyHold.x + $18ec = ApplyHold.regular + $18f2 = ApplyHold.postoffsets + $18f5 = ApplyHold.getoffh + $1900 = ApplyHold.skipoffh + $193a = ApplyTime + $198b = ApplyTime.loop0 + $19ba = ApplyTime.loop1 + $1a0f = ApplyNumbers8 + $1a71 = ApplyNumbers8.one + $1a7b = ApplyNumbers8.two + $1a85 = ApplyNumbers8.three + $1a8f = ApplyNumbers8.four + $1a99 = ApplyNumbers8.five + $1aa3 = ApplyNumbers8.six + $1aad = ApplyNumbers8.seven + $1ab7 = ApplyNumbers8.eight + $1ac0 = ApplyNumbers4 + $1aee = ApplyNumbers4.one + $1af8 = ApplyNumbers4.two + $1b02 = ApplyNumbers4.three + $1b0c = ApplyNumbers4.four + $1b15 = SetNumberSpritePositions + $1c2c = GradeRendering + $1c5f = GradeRendering.effect + $1c6f = GradeRendering.noeffect + $1c77 = GradeRendering.drawgrade + $1c7e = GradeRendering.regulargrade + $1c86 = GradeRendering.sgrade + $1c9c = GradeRendering.hisgrade + $1cb2 = GradeRendering.mgrade + $1cc8 = GradeRendering.lettergrade + $1ce5 = GradeRendering.mk + $1ceb = GradeRendering.mv + $1cf1 = GradeRendering.mo + $1cf7 = GradeRendering.mm + $1cfd = GradeRendering.gmgrade + SECTION: $1d08-$21c1 ($04ba bytes) ["SRAM Functions"] + $1d08 = RestoreSRAM + $1d37 = TrustedLoad + $1d8e = TrustedLoad.jumps + $1da6 = TrustedLoad.dmgt + $1dac = TrustedLoad.tgm1 + $1db2 = TrustedLoad.tgm3 + $1db8 = TrustedLoad.deat + $1dbe = TrustedLoad.shir + $1dc4 = TrustedLoad.chil + $1dca = TrustedLoad.myco + $1dd0 = TrustedLoad.search + $1de2 = TrustedLoad.notfound + $1de9 = TrustedLoad.fallback + $1e04 = InitializeSRAM + $1f5d = ResetScores + $1f6b = ResetScores.jumps + $1f80 = ResetScores.dmgt + $1f8c = ResetScores.tgm1 + $1f98 = ResetScores.tgm3 + $1fa4 = ResetScores.deat + $1fb0 = ResetScores.shir + $1fbc = ResetScores.chil + $1fc8 = ResetScores.myco + $1fd4 = NextProfile + $1fdd = NextProfile.update + $1fe0 = ChangeProfile + $1fe0 = ChangeProfile.backup + $200e = ChangeProfile.first + $201c = ChangeProfile.second + $202a = ChangeProfile.third + $2038 = ChangeProfile.fourth + $2046 = ChangeProfile.fifth + $2054 = ChangeProfile.sixth + $2062 = ChangeProfile.seventh + $2070 = ChangeProfile.eighth + $207e = ChangeProfile.ninth + $208c = ChangeProfile.tenth + $209a = ChangeProfile.restore + $20c9 = ChangeProfile.lfirst + $20d8 = ChangeProfile.lsecond + $20e7 = ChangeProfile.lthird + $20f6 = ChangeProfile.lfourth + $2105 = ChangeProfile.lfifth + $2114 = ChangeProfile.lsixth + $2123 = ChangeProfile.lseventh + $2132 = ChangeProfile.leighth + $2141 = ChangeProfile.lninth + $2150 = ChangeProfile.ltenth + $215f = ResetProfile + SECTION: $21c2-$263a ($0479 bytes) ["Grading Functions"] + $21c2 = GradeInit + $21f6 = GradeInit.grade9start + $21fb = GradeInit.end + $21fd = UpdateGrade + $220b = UpdateGrade.gradejumptable + $2220 = DecayGradeProcess + $222e = DecayGradeProcess.gradejumptable + $2243 = DecayGradeDelay + $2251 = DecayGradeDelay.gradejumptable + $2266 = PrepareScore + $2279 = DrawGradeProgressDMGT + $2285 = !0 + $2294 = UpdateGradeDMGT + $22cd = UpdateGradeDMGT.checklineclears + $22e6 = UpdateGradeDMGT.clearrate + $22f7 = UpdateGradeDMGT.combomult + $2304 = UpdateGradeDMGT.combo13 + $2315 = UpdateGradeDMGT.combo8 + $2326 = UpdateGradeDMGT.combo1 + $2335 = UpdateGradeDMGT.prelevel + $2344 = UpdateGradeDMGT.single + $2354 = UpdateGradeDMGT.double + $2365 = UpdateGradeDMGT.adddonce + $2369 = UpdateGradeDMGT.triple + $237a = UpdateGradeDMGT.addtonce + $237e = UpdateGradeDMGT.tetris + $2382 = UpdateGradeDMGT.levelmult + $239a = UpdateGradeDMGT.mult4 + $23a0 = UpdateGradeDMGT.mult3 + $23a5 = UpdateGradeDMGT.mult2 + $23a9 = UpdateGradeDMGT.mult1 + $23aa = UpdateGradeDMGT.processgrade + $23d3 = UpdateGradeDMGT.increasegrademaybe + $23f7 = UpdateGradeDMGT.gotgm + $2405 = DecayGradeDMGT + $2428 = DecayGradeDMGT.nodecay + $242f = DecayGradeDMGT.decay + $243d = UpdateGradeTGM1 + $244d = UpdateGradeTGM1.trygradeup + $2468 = UpdateGradeTGM1.increasegrade + $247d = UpdateGradeTGM1.skipjingle + $2489 = UpdateGradeTGM1.check300 + $24a7 = UpdateGradeTGM1.success300 + $24ae = UpdateGradeTGM1.fail300 + $24b5 = UpdateGradeTGM1.check500 + $24d3 = UpdateGradeTGM1.success500 + $24da = UpdateGradeTGM1.fail500 + $24e1 = UpdateGradeTGM1.check999 + $2518 = UpdateGradeTGM1.success999 + $2530 = UpdateGradeTGM1.fail999 + $2536 = UpdateGradeDEAT + $2542 = UpdateGradeDEAT.notgm + $255e = UpdateGradeDEAT.notm + $2581 = UpdateGradeDEAT.disqualify + $259f = UpdateGradeSHIR + $25e1 = UpdateGradeSHIR.s5torikan + $25f1 = UpdateGradeSHIR.s10torikan + $2600 = UpdateGradeSHIR.disqualify + $260f = UpdateGradeSHIR.l1000 + $2625 = UpdateGradeSHIR.l500 + SECTION: $263b-$2a2e ($03f4 bytes) ["Level Functions"] + $263b = LevelInit + $26ab = SpecialLevelInit + $26b9 = SpecialLevelInit.jumps + $26ce = SpecialLevelInit.dmgt + $26d3 = SpecialLevelInit.tgm1 + $26d8 = SpecialLevelInit.tgm3 + $26dd = SpecialLevelInit.deat + $26e2 = SpecialLevelInit.shir + $26e7 = SpecialLevelInit.chil + $26ec = SpecialLevelInit.myco + $26f1 = SpecialLevelInit.loaddata + $2726 = LevelUp + $2750 = LevelUp.doit + $278f = LevelUp.checknlevel + $27c0 = !0 + $27d8 = !1 + $27e1 = LevelUp.bellmaybe + $27fd = LevelUp.leveljinglemaybe + $280d = AdjustSpeedCurve + $2813 = AdjustSpeedCurve.docheck + $2813 = AdjustSpeedCurve.checkthousands + $2822 = AdjustSpeedCurve.checkhundreds + $282f = AdjustSpeedCurve.checktens + $283e = AdjustSpeedCurve.checkones + $2849 = AdjustSpeedCurveForced + $2884 = AdjustSpeedCurveForced.continue + $2889 = BuildTrueCLevel + $28b1 = BuildTrueCLevel.thousands + $28c6 = CheckSpecialLevelConditions + $28f7 = CheckSpecialLevelConditions.override + $2912 = CheckSpecialLevelConditions.nooverride + $2918 = CheckSpecialLevelConditions.speciallock + $293c = CheckSpecialLevelConditions.bones + $2951 = CheckSpecialLevelConditions.enterthebonezone + $2956 = CheckSpecialLevelConditions.invis + $296b = CheckSpecialLevelConditions.vanishoxyaction + $2970 = CheckSpecialLevelConditions.killscreen + $2981 = CheckSpecialLevelConditions.rip + $29b1 = CheckSpecialLevelConditions.staffroll + $29bf = CheckSpecialLevelConditions.justkill + $29d3 = TriggerKillScreen + $29f5 = GetSection + $2a03 = GetSectionBCD + $2a0c = GetAdjustedSection + $2a1a = GetAdjustedSectionBCD + $2a23 = SkipSection + SECTION: $2a2f-$2ce4 ($02b6 bytes) ["Grading Data"] + $2a2f = sTGM1GradeScores + $2a51 = sTGM3InternalGradeSystem + $2af1 = sTGM3GradeBoosts + $2b10 = sTGM3LevelMultiplier + $2b14 = sTGM3BaselineCOOL + $2b1d = sTGM3REGRETConditions + $2b31 = sDMGTGrading + $2be5 = sDMGTGaugeLUT + SECTION: $2ce5-$2f84 ($02a0 bytes) ["SFX Functions"] + $2ce5 = SFXInit + $2d07 = SFXPopQueue + $2d1c = SFXPushQueue + $2d2d = SFXProcessQueue + $2d3e = !0 + $2d59 = !1 + $2d5b = SFXTriggerNoise + $2d68 = !2 + $2d75 = !3 + $2d81 = SFXEnqueue + $2d96 = SFXEnqueue.findsfx + $2dab = !4 + $2dbb = !5 + $2dcb = !6 + $2ddb = !7 + $2deb = !8 + $2dfb = !9 + $2e0b = !10 + $2e1b = !11 + $2e2b = !12 + $2e3b = !13 + $2e4b = !14 + $2e5b = !15 + $2e6b = !16 + $2e7b = !17 + $2e8b = !18 + $2e9a = !19 + $2ea9 = !20 + $2eb8 = !21 + $2ec7 = !22 + $2ed5 = !23 + $2ee3 = !24 + $2ef0 = SFXKill + $2f23 = SFXPlayNoise + $2f2e = SFXPlayNoise.noisereg + $2f3b = !25 + $2f45 = SFXPlayNoise.savenoiseplayhead + $2f4e = SFXPlay + $2f59 = !26 + $2f5c = SFXPlay.play + $2f68 = SFXPlay.getRegister + $2f72 = !27 + $2f7c = SFXPlay.savePlayhead + SECTION: $2f85-$31b4 ($0230 bytes) ["RNG Functions"] + $2f85 = HarvestEntropy + $2f8b = HarvestEntropy.loop + $2fac = RNGInit + $2fe2 = !0 + $3012 = RNGInit.complexinit + $3029 = !1 + $3044 = ShiftHistory + $3061 = GetNextHellPiece + $3066 = GetNextTGM1Piece + $3069 = !2 + $3081 = !3 + $3083 = GetNextTGM2Piece + $3086 = !4 + $309e = !5 + $30a0 = GetNextNesPiece + $30ae = GetNextTGM3Piece + $30b1 = !6 + $30d4 = !7 + $30d7 = !8 + $30e7 = !9 + $30f1 = !10 + $30ff = !11 + $310d = !12 + $3119 = !13 + $3125 = !14 + $3131 = !15 + $313d = !16 + $3149 = !17 + $3155 = !18 + $3164 = GetNextPiece + $3172 = GetNextPiece.nextpiecejumps + $3181 = Next35Piece + $3181 = !19 + $318b = Next7Piece + $318b = !20 + $3195 = NextByte + SECTION: $31b5-$3379 ($01c5 bytes) ["Hi Score Functions"] + $31b5 = CheckAndAddHiscore + $31bf = CheckAndAddHiscore.checkloop + $31c4 = CheckAndAddHiscore.checkgrade + $31cd = CheckAndAddHiscore.oldgraded + $31dc = CheckAndAddHiscore.oldungraded + $31e3 = CheckAndAddHiscore.checklevel + $3208 = CheckAndAddHiscore.checkscore + $324b = CheckAndAddHiscore.notbetter + $3258 = CheckAndAddHiscore.better + $325a = InsertHiScore + $325a = InsertHiScore.copylower + $326b = InsertHiScore.copyupper + $3277 = !0 + $328b = InsertHiScore.findrow + $3297 = !1 + $329b = InsertHiScore.insert + $32f4 = InsertHiScore.persist + $3305 = GetHiScoreEntry + $3319 = !2 + $331d = GetHiScoreEntry.store + $3326 = InitTargetHSTable + $3331 = InitTargetHSTable.jumps + $3346 = InitTargetHSTable.dmgt + $334b = InitTargetHSTable.tgm1 + $3350 = InitTargetHSTable.tgm3 + $3355 = InitTargetHSTable.deat + $335a = InitTargetHSTable.shir + $335f = InitTargetHSTable.chil + $3364 = InitTargetHSTable.myco + $3367 = InitTargetHSTable.store + SECTION: $337a-$34c3 ($014a bytes) ["Progress Data"] + $337a = sProgressData + SECTION: $34c4-$3603 ($0140 bytes) ["Hi Score Data"] + $34c4 = sHiscoreDefaultData + SECTION: $3604-$372d ($012a bytes) ["Input Functions"] + $3604 = InputInit + $3616 = GetInput + $3616 = GetInput.btns + $3623 = GetInput.readA + $3627 = GetInput.setA + $3632 = GetInput.clearA + $3635 = GetInput.readB + $3639 = GetInput.setB + $3644 = GetInput.clearB + $3647 = GetInput.readSelect + $364b = GetInput.setSelect + $3656 = GetInput.clearSelect + $3659 = GetInput.readStart + $365d = GetInput.setStart + $3668 = GetInput.clearStart + $366b = GetInput.dpad + $3678 = GetInput.readUp + $367c = GetInput.setUp + $3687 = GetInput.clearUp + $368a = GetInput.readDown + $368e = GetInput.setDown + $3699 = GetInput.clearDown + $369c = GetInput.readLeft + $36a0 = GetInput.setLeft + $36ab = GetInput.clearLeft + $36ae = GetInput.readRight + $36b2 = GetInput.setRight + $36bd = GetInput.clearRight + $36c0 = GetInput.priorities + $36cd = GetInput.jumps + $36dc = GetInput.dlru + $36ec = GetInput.ulrd + $36fc = GetInput.lrud + $3707 = GetInput.udlr + $3712 = GetInput.zeroud + $3718 = GetInput.zerolr + $371e = GetInput.zerolrd + $3726 = GetInput.zerolru + SECTION: $372e-$380d ($00e0 bytes) ["Score Functions"] + $372e = ScoreInit + $3756 = IncreaseScore + $378e = IncreaseScore.doConvert + $3790 = !0 + $37a6 = IncreaseScore.carry + $37a8 = IncreaseScore.postConvert + $37b5 = !1 + $37bc = IncreaseScore.preAddDigit + $37e4 = IncreaseScore.addDigit + $37fa = IncreaseScore.nextDigit + SECTION: $380e-$38d8 ($00cb bytes) ["Title Function Trampolines"] + $380e = SwitchToTitle + $3817 = TitleEventLoopHandler + $3821 = TitleVBlankHandler + $382b = PersistLevel + $3839 = DrawSpeedMain + $3889 = DrawSpeedSettings + SECTION: $38d9-$399d ($00c5 bytes) ["Time Functions"] + $38d9 = TimeInit + $38f9 = StartCountdown + $3907 = ResetGameTime + $3912 = CheckTorikan + $3928 = CheckTorikan.failure + $392a = CheckTorikan.success + $392d = HandleTimers + $3953 = HandleTimers.reduce + $3960 = HandleTimers.clock + $397a = HandleTimers.go + SECTION: $399e-$3a4e ($00b1 bytes) ["Progress Functions"] + $399e = SetProgress + $39a8 = SetProgress.loop + $39ac = SetProgress.correct + $39d3 = SetProgress.wvr_u1 + $39df = SetProgress.wvr_u2 + $39ed = SetProgress.wvr_u3 + $39f9 = SetProgress.wvr_u4 + $3a07 = SetProgress.wvr_u5 + $3a13 = SetProgress.wvr_u6 + $3a21 = SetProgress.wvr_u7 + $3a2d = SetProgress.wvr_u8 + $3a3b = SetProgress.wvr_u9 + $3a47 = SetProgress.wvr_u10 + SECTION: $3a4f-$3ae6 ($0098 bytes) ["Code Entry Point"] + $3a4f = Main + $3a78 = Main.notgbc + $3a7e = Main.wvr_u1 + $3aab = EventLoop + $3ac1 = EventLoop.eventloopjumps + $3aca = EventLoopPostHandler + $3acc = EventLoopPostHandler.wvb_u2 + $3ade = EventLoopPostHandler.vblankjumps + SECTION: $3ae7-$3b38 ($0052 bytes) ["Tile Functions"] + $3ae7 = LoadTitleTiles + $3b05 = LoadGameplayTiles + $3b1b = LoadGameplayTiles.gbc + $3b2a = LoadGameplayTiles.dmg + SECTION: $3b39-$3b74 ($003c bytes) ["Time Data"] + $3b39 = sFramesToCS + SECTION: $3b75-$3ba2 ($002e bytes) ["Memory Functions"] + $3b75 = UnsafeMemCopy + $3b7e = SafeMemCopy.wvr_u1 + $3b7e = SafeMemCopy + $3b8d = UnsafeMemSet + $3b95 = SafeMemSet + $3b95 = SafeMemSet.wvr_u2 + SECTION: $3ba3-$3bc8 ($0026 bytes) ["Gameplay Function Trampolines"] + $3ba3 = SwitchToGameplay + $3bac = SwitchToGameplayBig + $3bb5 = GamePlayEventLoopHandler + $3bbf = GamePlayBigEventLoopHandler + SECTION: $3bc9-$3bed ($0025 bytes) ["Interrupt Initialization Functions"] + $3bc9 = EnableScreenSquish + $3be3 = DisableScreenSquish + SECTION: $3bee-$3c0f ($0022 bytes) ["OAM Functions"] + $3bee = CopyOAMHandler + $3bfa = ClearOAM + SECTION: $3c10-$3c1e ($000f bytes) ["Banking Functions"] + $3c10 = BankingInit + SECTION: $3c1f-$3c28 ($000a bytes) ["OAM DMA Code"] + $3c1f = OAMDMA + $3c29 = OAMDMAEnd + EMPTY: $3c29-$3fff ($03d7 bytes) + TOTAL EMPTY: $03e2 bytes ROMX bank #1: SECTION: $4000-$4007 ($0008 bytes) ["Bank ID BANK_OTHER"] @@ -1222,7 +1210,7 @@ ROMX bank #4: $58ab = RenderScores.wvr_u283 $58b8 = RenderScores.wvr_u284 $58c5 = RenderScores.wvr_u285 - SECTION: $58dc-$6a37 ($115c bytes) ["Title Screen Static Data"] + SECTION: $58dc-$6ad7 ($11fc bytes) ["Title Screen Static Data"] $58dc = sBUTTONSMode $58e4 = sRNGMode $58f8 = sROTMode @@ -1246,18 +1234,19 @@ ROMX bank #4: $5c58 = sTetryFILTER $5c98 = sTetryReset $5cd8 = sTetryEXITProfile - $5d18 = sTitleScreenMainMap - $5fb8 = sTitleScreenSettingsMap - $5fb8 = sTitleScreenMainMapEnd - $6258 = sTitleScreenCreditsMap - $6258 = sTitleScreenSettingsMapEnd - $64f8 = sTitleScreenProfileMap - $64f8 = sTitleScreenCreditsMapEnd - $6798 = sTitleScreenRecordsMap - $6798 = sTitleScreenProfileMapEnd - $6a38 = sTitleScreenRecordsMapEnd - EMPTY: $6a38-$7fff ($15c8 bytes) - TOTAL EMPTY: $15c8 bytes + $5d18 = sTitleAttrs + $5db8 = sTitleScreenMainMap + $6058 = sTitleScreenSettingsMap + $6058 = sTitleScreenMainMapEnd + $62f8 = sTitleScreenCreditsMap + $62f8 = sTitleScreenSettingsMapEnd + $6598 = sTitleScreenProfileMap + $6598 = sTitleScreenCreditsMapEnd + $6838 = sTitleScreenRecordsMap + $6838 = sTitleScreenProfileMapEnd + $6ad8 = sTitleScreenRecordsMapEnd + EMPTY: $6ad8-$7fff ($1528 bytes) + TOTAL EMPTY: $1528 bytes ROMX bank #5: SECTION: $4000-$4007 ($0008 bytes) ["Bank ID BANK_GAMEPLAY"] @@ -3204,14 +3193,13 @@ WRAM0 bank #0: $cf40 = wInStaffRoll $cf41 = wBigModeTransfered $cf42 = wGameOverIgnoreInput - SECTION: $cf43-$cf45 ($0003 bytes) ["GBC Variables"] + SECTION: $cf43-$cf44 ($0002 bytes) ["GBC Variables"] $cf43 = wOuterReps $cf44 = wInnerReps - $cf45 = wTitlePal - SECTION: $cf46-$cf46 ($0001 byte) ["SRAM Variables"] - $cf46 = wTarget - EMPTY: $cf47-$cfff ($00b9 bytes) - TOTAL EMPTY: $00b9 bytes + SECTION: $cf45-$cf45 ($0001 byte) ["SRAM Variables"] + $cf45 = wTarget + EMPTY: $cf46-$cfff ($00ba bytes) + TOTAL EMPTY: $00ba bytes HRAM bank #0: SECTION: $ff80-$ff9c ($001d bytes) ["High Level Variables"] @@ -3303,8 +3291,8 @@ HRAM bank #0: TOTAL EMPTY: $0000 bytes SUMMARY: - ROM0: 15558 bytes used / 826 free - ROMX: 68770 bytes used / 29534 free in 6 banks + ROM0: 15390 bytes used / 994 free + ROMX: 68930 bytes used / 29374 free in 6 banks SRAM: 2951 bytes used / 5241 free in 1 bank - WRAM0: 3911 bytes used / 185 free + WRAM0: 3910 bytes used / 186 free HRAM: 127 bytes used / 0 free diff --git a/bin/PandorasBlocks.pocket b/bin/PandorasBlocks.pocket index eb2a2b8..c3e95b5 100644 Binary files a/bin/PandorasBlocks.pocket and b/bin/PandorasBlocks.pocket differ diff --git a/bin/PandorasBlocks.sym b/bin/PandorasBlocks.sym index 50c36d3..12997a7 100644 --- a/bin/PandorasBlocks.sym +++ b/bin/PandorasBlocks.sym @@ -27,460 +27,448 @@ 00:0172 GBCTitleInit 00:0353 GBCTitleInit.agb 00:0523 GBCTitleInit.postpalettes -00:0563 GBCGameplayInit -00:0744 GBCGameplayInit.agb -00:0914 GBCGameplayInit.postpalettes -00:093f GBCTitleProcess -00:095b GBCTitleProcess.jumps -00:096a GBCTitleProcess.eventLoopMain -00:097b GBCTitleProcess.nores -00:097e GBCTitleProcess.noinc -00:09a2 GBCTitleProcess.eventLoopProfile -00:09b3 GBCTitleProcess.nores3 -00:09b6 GBCTitleProcess.noinc3 -00:09da GBCTitleProcess.eventLoopSettings -00:09eb GBCTitleProcess.nores1 -00:09ee GBCTitleProcess.noinc1 -00:0a12 GBCTitleProcess.eventLoopRecords -00:0a23 GBCTitleProcess.nores4 -00:0a26 GBCTitleProcess.noinc4 -00:0a33 GBCTitleProcess.eventLoopCredits -00:0a44 GBCTitleProcess.nores2 -00:0a47 GBCTitleProcess.noinc2 -00:0a54 GBCGameplayProcess -00:0a90 GBCGameplayProcess.goverride -00:0ab5 GBCGameplayProcess.colorfield -00:0c29 GBCGameplayProcess.outer1 -00:0c2e GBCGameplayProcess.inner1 -00:0c52 GBCGameplayProcess.outer2 -00:0c57 GBCGameplayProcess.inner2 -00:0c7c GBCGameplayProcess.empty -00:0c80 GBCGameplayProcess.sub59 -00:0c82 GBCGameplayProcess.sub52 -00:0c84 GBCGameplayProcess.sub45 -00:0c86 GBCGameplayProcess.sub38 -00:0c88 GBCGameplayProcess.sub31 -00:0c8a GBCGameplayProcess.sub24 -00:0c8c GBCGameplayProcess.sub17 -00:0c8e GBCGameplayProcess.sub10 -00:0c90 GBCGameplayProcess.done -00:0cb2 GBCGameplayProcess.darker -00:0cb9 GBCGameplayProcess.wvr_u1 -00:0cc6 GBCGameplayProcess.lighter -00:0ccd GBCGameplayProcess.wvr_u2 -00:0cda GBCGameplayProcess.black -00:0ce1 GBCGameplayProcess.wvr_u3 -00:0cee GBCBigGameplayProcess -00:0d2a GBCBigGameplayProcess.goverride -00:0d4f GBCBigGameplayProcess.colorfield -00:0ec3 GBCBigGameplayProcess.outer1 -00:0ec8 GBCBigGameplayProcess.inner1 -00:0eec GBCBigGameplayProcess.outer2 -00:0ef1 GBCBigGameplayProcess.inner2 -00:0f16 GBCBigGameplayProcess.empty -00:0f1a GBCBigGameplayProcess.sub59 -00:0f1c GBCBigGameplayProcess.sub52 -00:0f1e GBCBigGameplayProcess.sub45 -00:0f20 GBCBigGameplayProcess.sub38 -00:0f22 GBCBigGameplayProcess.sub31 -00:0f24 GBCBigGameplayProcess.sub24 -00:0f26 GBCBigGameplayProcess.sub17 -00:0f28 GBCBigGameplayProcess.sub10 -00:0f2a GBCBigGameplayProcess.done -00:0f4c GBCBigGameplayProcess.darker -00:0f53 GBCBigGameplayProcess.wvr_u4 -00:0f60 GBCBigGameplayProcess.lighter -00:0f67 GBCBigGameplayProcess.wvr_u5 -00:0f74 GBCBigGameplayProcess.black -00:0f7b GBCBigGameplayProcess.wvr_u6 -00:0f88 ToVRAM -00:0f88 GBCBlitField -00:0fba BlitField -00:117d BlitField.waitendvbloop -00:13a7 BigBlitField -00:156a BigBlitField.waitendvbloop -00:1794 SetPal -00:17a1 SetPal.darker -00:17a7 SetPal.lighter -00:17ad ApplyTells -00:17ad SetPal.setpal -00:17eb ApplyTells.myco -00:17f0 ApplyTells.dropmode -00:1814 ApplyNext -00:181c ApplyNext.bone -00:183b ApplyNext.nobone -00:185c ApplyNext.pos -00:186c ApplyNext.regular -00:1872 ApplyNext.postoffsets -00:1875 ApplyNext.getoffn -00:1880 ApplyNext.skipoffn -00:191c ApplyNext.done -00:191f ApplyHold -00:1927 ApplyHold.bone -00:1946 ApplyHold.nobone -00:1962 ApplyHold.hide -00:1974 ApplyHold.show -00:1984 ApplyHold.x -00:1994 ApplyHold.regular -00:199a ApplyHold.postoffsets -00:199d ApplyHold.getoffh -00:19a8 ApplyHold.skipoffh -00:19e2 ApplyTime -00:1a33 ApplyTime.loop0 -00:1a62 ApplyTime.loop1 -00:1ab7 ApplyNumbers8 -00:1b19 ApplyNumbers8.one -00:1b23 ApplyNumbers8.two -00:1b2d ApplyNumbers8.three -00:1b37 ApplyNumbers8.four -00:1b41 ApplyNumbers8.five -00:1b4b ApplyNumbers8.six -00:1b55 ApplyNumbers8.seven -00:1b5f ApplyNumbers8.eight -00:1b68 ApplyNumbers4 -00:1b96 ApplyNumbers4.one -00:1ba0 ApplyNumbers4.two -00:1baa ApplyNumbers4.three -00:1bb4 ApplyNumbers4.four -00:1bbd SetNumberSpritePositions -00:1cd4 GradeRendering -00:1d07 GradeRendering.effect -00:1d17 GradeRendering.noeffect -00:1d1f GradeRendering.drawgrade -00:1d26 GradeRendering.regulargrade -00:1d2e GradeRendering.sgrade -00:1d44 GradeRendering.hisgrade -00:1d5a GradeRendering.mgrade -00:1d70 GradeRendering.lettergrade -00:1d8d GradeRendering.mk -00:1d93 GradeRendering.mv -00:1d99 GradeRendering.mo -00:1d9f GradeRendering.mm -00:1da5 GradeRendering.gmgrade -00:1db0 RestoreSRAM -00:1ddf TrustedLoad -00:1e36 TrustedLoad.jumps -00:1e4e TrustedLoad.dmgt -00:1e54 TrustedLoad.tgm1 -00:1e5a TrustedLoad.tgm3 -00:1e60 TrustedLoad.deat -00:1e66 TrustedLoad.shir -00:1e6c TrustedLoad.chil -00:1e72 TrustedLoad.myco -00:1e78 TrustedLoad.search -00:1e8a TrustedLoad.notfound -00:1e91 TrustedLoad.fallback -00:1eac InitializeSRAM -00:2005 ResetScores -00:2013 ResetScores.jumps -00:2028 ResetScores.dmgt -00:2034 ResetScores.tgm1 -00:2040 ResetScores.tgm3 -00:204c ResetScores.deat -00:2058 ResetScores.shir -00:2064 ResetScores.chil -00:2070 ResetScores.myco -00:207c NextProfile -00:2085 NextProfile.update -00:2088 ChangeProfile -00:2088 ChangeProfile.backup -00:20b6 ChangeProfile.first -00:20c4 ChangeProfile.second -00:20d2 ChangeProfile.third -00:20e0 ChangeProfile.fourth -00:20ee ChangeProfile.fifth -00:20fc ChangeProfile.sixth -00:210a ChangeProfile.seventh -00:2118 ChangeProfile.eighth -00:2126 ChangeProfile.ninth -00:2134 ChangeProfile.tenth -00:2142 ChangeProfile.restore -00:2171 ChangeProfile.lfirst -00:2180 ChangeProfile.lsecond -00:218f ChangeProfile.lthird -00:219e ChangeProfile.lfourth -00:21ad ChangeProfile.lfifth -00:21bc ChangeProfile.lsixth -00:21cb ChangeProfile.lseventh -00:21da ChangeProfile.leighth -00:21e9 ChangeProfile.lninth -00:21f8 ChangeProfile.ltenth -00:2207 ResetProfile -00:226a GradeInit -00:229e GradeInit.grade9start -00:22a3 GradeInit.end -00:22a5 UpdateGrade -00:22b3 UpdateGrade.gradejumptable -00:22c8 DecayGradeProcess -00:22d6 DecayGradeProcess.gradejumptable -00:22eb DecayGradeDelay -00:22f9 DecayGradeDelay.gradejumptable -00:230e PrepareScore -00:2321 DrawGradeProgressDMGT -00:233c UpdateGradeDMGT -00:2375 UpdateGradeDMGT.checklineclears -00:238e UpdateGradeDMGT.clearrate -00:239f UpdateGradeDMGT.combomult -00:23ac UpdateGradeDMGT.combo13 -00:23bd UpdateGradeDMGT.combo8 -00:23ce UpdateGradeDMGT.combo1 -00:23dd UpdateGradeDMGT.prelevel -00:23ec UpdateGradeDMGT.single -00:23fc UpdateGradeDMGT.double -00:240d UpdateGradeDMGT.adddonce -00:2411 UpdateGradeDMGT.triple -00:2422 UpdateGradeDMGT.addtonce -00:2426 UpdateGradeDMGT.tetris -00:242a UpdateGradeDMGT.levelmult -00:2442 UpdateGradeDMGT.mult4 -00:2448 UpdateGradeDMGT.mult3 -00:244d UpdateGradeDMGT.mult2 -00:2451 UpdateGradeDMGT.mult1 -00:2452 UpdateGradeDMGT.processgrade -00:247b UpdateGradeDMGT.increasegrademaybe -00:249f UpdateGradeDMGT.gotgm -00:24ad DecayGradeDMGT -00:24d0 DecayGradeDMGT.nodecay -00:24d7 DecayGradeDMGT.decay -00:24e5 UpdateGradeTGM1 -00:24f5 UpdateGradeTGM1.trygradeup -00:2510 UpdateGradeTGM1.increasegrade -00:2525 UpdateGradeTGM1.skipjingle -00:2531 UpdateGradeTGM1.check300 -00:254f UpdateGradeTGM1.success300 -00:2556 UpdateGradeTGM1.fail300 -00:255d UpdateGradeTGM1.check500 -00:257b UpdateGradeTGM1.success500 -00:2582 UpdateGradeTGM1.fail500 -00:2589 UpdateGradeTGM1.check999 -00:25c0 UpdateGradeTGM1.success999 -00:25d8 UpdateGradeTGM1.fail999 -00:25de UpdateGradeDEAT -00:25ea UpdateGradeDEAT.notgm -00:2606 UpdateGradeDEAT.notm -00:2629 UpdateGradeDEAT.disqualify -00:2647 UpdateGradeSHIR -00:2689 UpdateGradeSHIR.s5torikan -00:2699 UpdateGradeSHIR.s10torikan -00:26a8 UpdateGradeSHIR.disqualify -00:26b7 UpdateGradeSHIR.l1000 -00:26cd UpdateGradeSHIR.l500 -00:26e3 LevelInit -00:2753 SpecialLevelInit -00:2761 SpecialLevelInit.jumps -00:2776 SpecialLevelInit.dmgt -00:277b SpecialLevelInit.tgm1 -00:2780 SpecialLevelInit.tgm3 -00:2785 SpecialLevelInit.deat -00:278a SpecialLevelInit.shir -00:278f SpecialLevelInit.chil -00:2794 SpecialLevelInit.myco -00:2799 SpecialLevelInit.loaddata -00:27ce LevelUp -00:27f8 LevelUp.doit -00:2837 LevelUp.checknlevel -00:2889 LevelUp.bellmaybe -00:28a5 LevelUp.leveljinglemaybe -00:28b5 AdjustSpeedCurve -00:28bb AdjustSpeedCurve.docheck -00:28bb AdjustSpeedCurve.checkthousands -00:28ca AdjustSpeedCurve.checkhundreds -00:28d7 AdjustSpeedCurve.checktens -00:28e6 AdjustSpeedCurve.checkones -00:28f1 AdjustSpeedCurveForced -00:292c AdjustSpeedCurveForced.continue -00:2931 BuildTrueCLevel -00:2959 BuildTrueCLevel.thousands -00:296e CheckSpecialLevelConditions -00:299f CheckSpecialLevelConditions.override -00:29ba CheckSpecialLevelConditions.nooverride -00:29c0 CheckSpecialLevelConditions.speciallock -00:29e4 CheckSpecialLevelConditions.bones -00:29f9 CheckSpecialLevelConditions.enterthebonezone -00:29fe CheckSpecialLevelConditions.invis -00:2a13 CheckSpecialLevelConditions.vanishoxyaction -00:2a18 CheckSpecialLevelConditions.killscreen -00:2a29 CheckSpecialLevelConditions.rip -00:2a59 CheckSpecialLevelConditions.staffroll -00:2a67 CheckSpecialLevelConditions.justkill -00:2a7b TriggerKillScreen -00:2a9d GetSection -00:2aab GetSectionBCD -00:2ab4 GetAdjustedSection -00:2ac2 GetAdjustedSectionBCD -00:2acb SkipSection -00:2ad7 sTGM1GradeScores -00:2af9 sTGM3InternalGradeSystem -00:2b99 sTGM3GradeBoosts -00:2bb8 sTGM3LevelMultiplier -00:2bbc sTGM3BaselineCOOL -00:2bc5 sTGM3REGRETConditions -00:2bd9 sDMGTGrading -00:2c8d sDMGTGaugeLUT -00:2d8d SFXInit -00:2daf SFXPopQueue -00:2dc4 SFXPushQueue -00:2dd5 SFXProcessQueue -00:2e03 SFXTriggerNoise -00:2e29 SFXEnqueue -00:2e3e SFXEnqueue.findsfx -00:2f98 SFXKill -00:2fcb SFXPlayNoise -00:2fd6 SFXPlayNoise.noisereg -00:2fed SFXPlayNoise.savenoiseplayhead -00:2ff6 SFXPlay -00:3004 SFXPlay.play -00:3010 SFXPlay.getRegister -00:3024 SFXPlay.savePlayhead -00:302d HarvestEntropy -00:3033 HarvestEntropy.loop -00:3054 RNGInit -00:30ba RNGInit.complexinit -00:30ec ShiftHistory -00:3109 GetNextHellPiece -00:310e GetNextTGM1Piece -00:312b GetNextTGM2Piece -00:3148 GetNextNesPiece -00:3156 GetNextTGM3Piece -00:320c GetNextPiece -00:321a GetNextPiece.nextpiecejumps -00:3229 Next35Piece -00:3233 Next7Piece -00:323d NextByte -00:325d CheckAndAddHiscore -00:3267 CheckAndAddHiscore.checkloop -00:326c CheckAndAddHiscore.checkgrade -00:3275 CheckAndAddHiscore.oldgraded -00:3284 CheckAndAddHiscore.oldungraded -00:328b CheckAndAddHiscore.checklevel -00:32b0 CheckAndAddHiscore.checkscore -00:32f3 CheckAndAddHiscore.notbetter -00:3300 CheckAndAddHiscore.better -00:3302 InsertHiScore -00:3302 InsertHiScore.copylower -00:3313 InsertHiScore.copyupper -00:3333 InsertHiScore.findrow -00:3343 InsertHiScore.insert -00:339c InsertHiScore.persist -00:33ad GetHiScoreEntry -00:33c5 GetHiScoreEntry.store -00:33ce InitTargetHSTable -00:33d9 InitTargetHSTable.jumps -00:33ee InitTargetHSTable.dmgt -00:33f3 InitTargetHSTable.tgm1 -00:33f8 InitTargetHSTable.tgm3 -00:33fd InitTargetHSTable.deat -00:3402 InitTargetHSTable.shir -00:3407 InitTargetHSTable.chil -00:340c InitTargetHSTable.myco -00:340f InitTargetHSTable.store -00:3422 sProgressData -00:356c sHiscoreDefaultData -00:36ac InputInit -00:36be GetInput -00:36be GetInput.btns -00:36cb GetInput.readA -00:36cf GetInput.setA -00:36da GetInput.clearA -00:36dd GetInput.readB -00:36e1 GetInput.setB -00:36ec GetInput.clearB -00:36ef GetInput.readSelect -00:36f3 GetInput.setSelect -00:36fe GetInput.clearSelect -00:3701 GetInput.readStart -00:3705 GetInput.setStart -00:3710 GetInput.clearStart -00:3713 GetInput.dpad -00:3720 GetInput.readUp -00:3724 GetInput.setUp -00:372f GetInput.clearUp -00:3732 GetInput.readDown -00:3736 GetInput.setDown -00:3741 GetInput.clearDown -00:3744 GetInput.readLeft -00:3748 GetInput.setLeft -00:3753 GetInput.clearLeft -00:3756 GetInput.readRight -00:375a GetInput.setRight -00:3765 GetInput.clearRight -00:3768 GetInput.priorities -00:3775 GetInput.jumps -00:3784 GetInput.dlru -00:3794 GetInput.ulrd -00:37a4 GetInput.lrud -00:37af GetInput.udlr -00:37ba GetInput.zeroud -00:37c0 GetInput.zerolr -00:37c6 GetInput.zerolrd -00:37ce GetInput.zerolru -00:37d6 ScoreInit -00:37fe IncreaseScore -00:3836 IncreaseScore.doConvert -00:384e IncreaseScore.carry -00:3850 IncreaseScore.postConvert -00:3864 IncreaseScore.preAddDigit -00:388c IncreaseScore.addDigit -00:38a2 IncreaseScore.nextDigit -00:38b6 SwitchToTitle -00:38bf TitleEventLoopHandler -00:38c9 TitleVBlankHandler -00:38d3 PersistLevel -00:38e1 DrawSpeedMain -00:3931 DrawSpeedSettings -00:3981 TimeInit -00:39a1 StartCountdown -00:39af ResetGameTime -00:39ba CheckTorikan -00:39d0 CheckTorikan.failure -00:39d2 CheckTorikan.success -00:39d5 HandleTimers -00:39fb HandleTimers.reduce -00:3a08 HandleTimers.clock -00:3a22 HandleTimers.go -00:3a46 SetProgress -00:3a50 SetProgress.loop -00:3a54 SetProgress.correct -00:3a7b SetProgress.wvr_u1 -00:3a87 SetProgress.wvr_u2 -00:3a95 SetProgress.wvr_u3 -00:3aa1 SetProgress.wvr_u4 -00:3aaf SetProgress.wvr_u5 -00:3abb SetProgress.wvr_u6 -00:3ac9 SetProgress.wvr_u7 -00:3ad5 SetProgress.wvr_u8 -00:3ae3 SetProgress.wvr_u9 -00:3aef SetProgress.wvr_u10 -00:3af7 Main -00:3b20 Main.notgbc -00:3b26 Main.wvr_u1 -00:3b53 EventLoop -00:3b69 EventLoop.eventloopjumps -00:3b72 EventLoopPostHandler -00:3b74 EventLoopPostHandler.wvb_u2 -00:3b86 EventLoopPostHandler.vblankjumps -00:3b8f LoadTitleTiles -00:3bad LoadGameplayTiles -00:3bc3 LoadGameplayTiles.gbc -00:3bd2 LoadGameplayTiles.dmg -00:3be1 sFramesToCS -00:3c1d UnsafeMemCopy -00:3c26 SafeMemCopy.wvr_u1 -00:3c26 SafeMemCopy -00:3c35 UnsafeMemSet -00:3c3d SafeMemSet -00:3c3d SafeMemSet.wvr_u2 -00:3c4b SwitchToGameplay -00:3c54 SwitchToGameplayBig -00:3c5d GamePlayEventLoopHandler -00:3c67 GamePlayBigEventLoopHandler -00:3c71 EnableScreenSquish -00:3c8b DisableScreenSquish -00:3c96 CopyOAMHandler -00:3ca2 ClearOAM -00:3cb8 BankingInit -00:3cc7 OAMDMA -00:3cd1 OAMDMAEnd +00:0557 GBCGameplayInit +00:0738 GBCGameplayInit.agb +00:0908 GBCGameplayInit.postpalettes +00:0933 GBCTitleProcess +00:094f GBCTitleProcess.jumps +00:095e GBCTitleProcess.eventLoopMain +00:0980 GBCTitleProcess.eventLoopProfile +00:0996 GBCTitleProcess.eventLoopSettings +00:09ac GBCGameplayProcess +00:09e8 GBCGameplayProcess.goverride +00:0a0d GBCGameplayProcess.colorfield +00:0b81 GBCGameplayProcess.outer1 +00:0b86 GBCGameplayProcess.inner1 +00:0baa GBCGameplayProcess.outer2 +00:0baf GBCGameplayProcess.inner2 +00:0bd4 GBCGameplayProcess.empty +00:0bd8 GBCGameplayProcess.sub59 +00:0bda GBCGameplayProcess.sub52 +00:0bdc GBCGameplayProcess.sub45 +00:0bde GBCGameplayProcess.sub38 +00:0be0 GBCGameplayProcess.sub31 +00:0be2 GBCGameplayProcess.sub24 +00:0be4 GBCGameplayProcess.sub17 +00:0be6 GBCGameplayProcess.sub10 +00:0be8 GBCGameplayProcess.done +00:0c0a GBCGameplayProcess.darker +00:0c11 GBCGameplayProcess.wvr_u1 +00:0c1e GBCGameplayProcess.lighter +00:0c25 GBCGameplayProcess.wvr_u2 +00:0c32 GBCGameplayProcess.black +00:0c39 GBCGameplayProcess.wvr_u3 +00:0c46 GBCBigGameplayProcess +00:0c82 GBCBigGameplayProcess.goverride +00:0ca7 GBCBigGameplayProcess.colorfield +00:0e1b GBCBigGameplayProcess.outer1 +00:0e20 GBCBigGameplayProcess.inner1 +00:0e44 GBCBigGameplayProcess.outer2 +00:0e49 GBCBigGameplayProcess.inner2 +00:0e6e GBCBigGameplayProcess.empty +00:0e72 GBCBigGameplayProcess.sub59 +00:0e74 GBCBigGameplayProcess.sub52 +00:0e76 GBCBigGameplayProcess.sub45 +00:0e78 GBCBigGameplayProcess.sub38 +00:0e7a GBCBigGameplayProcess.sub31 +00:0e7c GBCBigGameplayProcess.sub24 +00:0e7e GBCBigGameplayProcess.sub17 +00:0e80 GBCBigGameplayProcess.sub10 +00:0e82 GBCBigGameplayProcess.done +00:0ea4 GBCBigGameplayProcess.darker +00:0eab GBCBigGameplayProcess.wvr_u4 +00:0eb8 GBCBigGameplayProcess.lighter +00:0ebf GBCBigGameplayProcess.wvr_u5 +00:0ecc GBCBigGameplayProcess.black +00:0ed3 GBCBigGameplayProcess.wvr_u6 +00:0ee0 ToVRAM +00:0ee0 GBCBlitField +00:0f12 BlitField +00:10d5 BlitField.waitendvbloop +00:12ff BigBlitField +00:14c2 BigBlitField.waitendvbloop +00:16ec SetPal +00:16f9 SetPal.darker +00:16ff SetPal.lighter +00:1705 ApplyTells +00:1705 SetPal.setpal +00:1743 ApplyTells.myco +00:1748 ApplyTells.dropmode +00:176c ApplyNext +00:1774 ApplyNext.bone +00:1793 ApplyNext.nobone +00:17b4 ApplyNext.pos +00:17c4 ApplyNext.regular +00:17ca ApplyNext.postoffsets +00:17cd ApplyNext.getoffn +00:17d8 ApplyNext.skipoffn +00:1874 ApplyNext.done +00:1877 ApplyHold +00:187f ApplyHold.bone +00:189e ApplyHold.nobone +00:18ba ApplyHold.hide +00:18cc ApplyHold.show +00:18dc ApplyHold.x +00:18ec ApplyHold.regular +00:18f2 ApplyHold.postoffsets +00:18f5 ApplyHold.getoffh +00:1900 ApplyHold.skipoffh +00:193a ApplyTime +00:198b ApplyTime.loop0 +00:19ba ApplyTime.loop1 +00:1a0f ApplyNumbers8 +00:1a71 ApplyNumbers8.one +00:1a7b ApplyNumbers8.two +00:1a85 ApplyNumbers8.three +00:1a8f ApplyNumbers8.four +00:1a99 ApplyNumbers8.five +00:1aa3 ApplyNumbers8.six +00:1aad ApplyNumbers8.seven +00:1ab7 ApplyNumbers8.eight +00:1ac0 ApplyNumbers4 +00:1aee ApplyNumbers4.one +00:1af8 ApplyNumbers4.two +00:1b02 ApplyNumbers4.three +00:1b0c ApplyNumbers4.four +00:1b15 SetNumberSpritePositions +00:1c2c GradeRendering +00:1c5f GradeRendering.effect +00:1c6f GradeRendering.noeffect +00:1c77 GradeRendering.drawgrade +00:1c7e GradeRendering.regulargrade +00:1c86 GradeRendering.sgrade +00:1c9c GradeRendering.hisgrade +00:1cb2 GradeRendering.mgrade +00:1cc8 GradeRendering.lettergrade +00:1ce5 GradeRendering.mk +00:1ceb GradeRendering.mv +00:1cf1 GradeRendering.mo +00:1cf7 GradeRendering.mm +00:1cfd GradeRendering.gmgrade +00:1d08 RestoreSRAM +00:1d37 TrustedLoad +00:1d8e TrustedLoad.jumps +00:1da6 TrustedLoad.dmgt +00:1dac TrustedLoad.tgm1 +00:1db2 TrustedLoad.tgm3 +00:1db8 TrustedLoad.deat +00:1dbe TrustedLoad.shir +00:1dc4 TrustedLoad.chil +00:1dca TrustedLoad.myco +00:1dd0 TrustedLoad.search +00:1de2 TrustedLoad.notfound +00:1de9 TrustedLoad.fallback +00:1e04 InitializeSRAM +00:1f5d ResetScores +00:1f6b ResetScores.jumps +00:1f80 ResetScores.dmgt +00:1f8c ResetScores.tgm1 +00:1f98 ResetScores.tgm3 +00:1fa4 ResetScores.deat +00:1fb0 ResetScores.shir +00:1fbc ResetScores.chil +00:1fc8 ResetScores.myco +00:1fd4 NextProfile +00:1fdd NextProfile.update +00:1fe0 ChangeProfile +00:1fe0 ChangeProfile.backup +00:200e ChangeProfile.first +00:201c ChangeProfile.second +00:202a ChangeProfile.third +00:2038 ChangeProfile.fourth +00:2046 ChangeProfile.fifth +00:2054 ChangeProfile.sixth +00:2062 ChangeProfile.seventh +00:2070 ChangeProfile.eighth +00:207e ChangeProfile.ninth +00:208c ChangeProfile.tenth +00:209a ChangeProfile.restore +00:20c9 ChangeProfile.lfirst +00:20d8 ChangeProfile.lsecond +00:20e7 ChangeProfile.lthird +00:20f6 ChangeProfile.lfourth +00:2105 ChangeProfile.lfifth +00:2114 ChangeProfile.lsixth +00:2123 ChangeProfile.lseventh +00:2132 ChangeProfile.leighth +00:2141 ChangeProfile.lninth +00:2150 ChangeProfile.ltenth +00:215f ResetProfile +00:21c2 GradeInit +00:21f6 GradeInit.grade9start +00:21fb GradeInit.end +00:21fd UpdateGrade +00:220b UpdateGrade.gradejumptable +00:2220 DecayGradeProcess +00:222e DecayGradeProcess.gradejumptable +00:2243 DecayGradeDelay +00:2251 DecayGradeDelay.gradejumptable +00:2266 PrepareScore +00:2279 DrawGradeProgressDMGT +00:2294 UpdateGradeDMGT +00:22cd UpdateGradeDMGT.checklineclears +00:22e6 UpdateGradeDMGT.clearrate +00:22f7 UpdateGradeDMGT.combomult +00:2304 UpdateGradeDMGT.combo13 +00:2315 UpdateGradeDMGT.combo8 +00:2326 UpdateGradeDMGT.combo1 +00:2335 UpdateGradeDMGT.prelevel +00:2344 UpdateGradeDMGT.single +00:2354 UpdateGradeDMGT.double +00:2365 UpdateGradeDMGT.adddonce +00:2369 UpdateGradeDMGT.triple +00:237a UpdateGradeDMGT.addtonce +00:237e UpdateGradeDMGT.tetris +00:2382 UpdateGradeDMGT.levelmult +00:239a UpdateGradeDMGT.mult4 +00:23a0 UpdateGradeDMGT.mult3 +00:23a5 UpdateGradeDMGT.mult2 +00:23a9 UpdateGradeDMGT.mult1 +00:23aa UpdateGradeDMGT.processgrade +00:23d3 UpdateGradeDMGT.increasegrademaybe +00:23f7 UpdateGradeDMGT.gotgm +00:2405 DecayGradeDMGT +00:2428 DecayGradeDMGT.nodecay +00:242f DecayGradeDMGT.decay +00:243d UpdateGradeTGM1 +00:244d UpdateGradeTGM1.trygradeup +00:2468 UpdateGradeTGM1.increasegrade +00:247d UpdateGradeTGM1.skipjingle +00:2489 UpdateGradeTGM1.check300 +00:24a7 UpdateGradeTGM1.success300 +00:24ae UpdateGradeTGM1.fail300 +00:24b5 UpdateGradeTGM1.check500 +00:24d3 UpdateGradeTGM1.success500 +00:24da UpdateGradeTGM1.fail500 +00:24e1 UpdateGradeTGM1.check999 +00:2518 UpdateGradeTGM1.success999 +00:2530 UpdateGradeTGM1.fail999 +00:2536 UpdateGradeDEAT +00:2542 UpdateGradeDEAT.notgm +00:255e UpdateGradeDEAT.notm +00:2581 UpdateGradeDEAT.disqualify +00:259f UpdateGradeSHIR +00:25e1 UpdateGradeSHIR.s5torikan +00:25f1 UpdateGradeSHIR.s10torikan +00:2600 UpdateGradeSHIR.disqualify +00:260f UpdateGradeSHIR.l1000 +00:2625 UpdateGradeSHIR.l500 +00:263b LevelInit +00:26ab SpecialLevelInit +00:26b9 SpecialLevelInit.jumps +00:26ce SpecialLevelInit.dmgt +00:26d3 SpecialLevelInit.tgm1 +00:26d8 SpecialLevelInit.tgm3 +00:26dd SpecialLevelInit.deat +00:26e2 SpecialLevelInit.shir +00:26e7 SpecialLevelInit.chil +00:26ec SpecialLevelInit.myco +00:26f1 SpecialLevelInit.loaddata +00:2726 LevelUp +00:2750 LevelUp.doit +00:278f LevelUp.checknlevel +00:27e1 LevelUp.bellmaybe +00:27fd LevelUp.leveljinglemaybe +00:280d AdjustSpeedCurve +00:2813 AdjustSpeedCurve.docheck +00:2813 AdjustSpeedCurve.checkthousands +00:2822 AdjustSpeedCurve.checkhundreds +00:282f AdjustSpeedCurve.checktens +00:283e AdjustSpeedCurve.checkones +00:2849 AdjustSpeedCurveForced +00:2884 AdjustSpeedCurveForced.continue +00:2889 BuildTrueCLevel +00:28b1 BuildTrueCLevel.thousands +00:28c6 CheckSpecialLevelConditions +00:28f7 CheckSpecialLevelConditions.override +00:2912 CheckSpecialLevelConditions.nooverride +00:2918 CheckSpecialLevelConditions.speciallock +00:293c CheckSpecialLevelConditions.bones +00:2951 CheckSpecialLevelConditions.enterthebonezone +00:2956 CheckSpecialLevelConditions.invis +00:296b CheckSpecialLevelConditions.vanishoxyaction +00:2970 CheckSpecialLevelConditions.killscreen +00:2981 CheckSpecialLevelConditions.rip +00:29b1 CheckSpecialLevelConditions.staffroll +00:29bf CheckSpecialLevelConditions.justkill +00:29d3 TriggerKillScreen +00:29f5 GetSection +00:2a03 GetSectionBCD +00:2a0c GetAdjustedSection +00:2a1a GetAdjustedSectionBCD +00:2a23 SkipSection +00:2a2f sTGM1GradeScores +00:2a51 sTGM3InternalGradeSystem +00:2af1 sTGM3GradeBoosts +00:2b10 sTGM3LevelMultiplier +00:2b14 sTGM3BaselineCOOL +00:2b1d sTGM3REGRETConditions +00:2b31 sDMGTGrading +00:2be5 sDMGTGaugeLUT +00:2ce5 SFXInit +00:2d07 SFXPopQueue +00:2d1c SFXPushQueue +00:2d2d SFXProcessQueue +00:2d5b SFXTriggerNoise +00:2d81 SFXEnqueue +00:2d96 SFXEnqueue.findsfx +00:2ef0 SFXKill +00:2f23 SFXPlayNoise +00:2f2e SFXPlayNoise.noisereg +00:2f45 SFXPlayNoise.savenoiseplayhead +00:2f4e SFXPlay +00:2f5c SFXPlay.play +00:2f68 SFXPlay.getRegister +00:2f7c SFXPlay.savePlayhead +00:2f85 HarvestEntropy +00:2f8b HarvestEntropy.loop +00:2fac RNGInit +00:3012 RNGInit.complexinit +00:3044 ShiftHistory +00:3061 GetNextHellPiece +00:3066 GetNextTGM1Piece +00:3083 GetNextTGM2Piece +00:30a0 GetNextNesPiece +00:30ae GetNextTGM3Piece +00:3164 GetNextPiece +00:3172 GetNextPiece.nextpiecejumps +00:3181 Next35Piece +00:318b Next7Piece +00:3195 NextByte +00:31b5 CheckAndAddHiscore +00:31bf CheckAndAddHiscore.checkloop +00:31c4 CheckAndAddHiscore.checkgrade +00:31cd CheckAndAddHiscore.oldgraded +00:31dc CheckAndAddHiscore.oldungraded +00:31e3 CheckAndAddHiscore.checklevel +00:3208 CheckAndAddHiscore.checkscore +00:324b CheckAndAddHiscore.notbetter +00:3258 CheckAndAddHiscore.better +00:325a InsertHiScore +00:325a InsertHiScore.copylower +00:326b InsertHiScore.copyupper +00:328b InsertHiScore.findrow +00:329b InsertHiScore.insert +00:32f4 InsertHiScore.persist +00:3305 GetHiScoreEntry +00:331d GetHiScoreEntry.store +00:3326 InitTargetHSTable +00:3331 InitTargetHSTable.jumps +00:3346 InitTargetHSTable.dmgt +00:334b InitTargetHSTable.tgm1 +00:3350 InitTargetHSTable.tgm3 +00:3355 InitTargetHSTable.deat +00:335a InitTargetHSTable.shir +00:335f InitTargetHSTable.chil +00:3364 InitTargetHSTable.myco +00:3367 InitTargetHSTable.store +00:337a sProgressData +00:34c4 sHiscoreDefaultData +00:3604 InputInit +00:3616 GetInput +00:3616 GetInput.btns +00:3623 GetInput.readA +00:3627 GetInput.setA +00:3632 GetInput.clearA +00:3635 GetInput.readB +00:3639 GetInput.setB +00:3644 GetInput.clearB +00:3647 GetInput.readSelect +00:364b GetInput.setSelect +00:3656 GetInput.clearSelect +00:3659 GetInput.readStart +00:365d GetInput.setStart +00:3668 GetInput.clearStart +00:366b GetInput.dpad +00:3678 GetInput.readUp +00:367c GetInput.setUp +00:3687 GetInput.clearUp +00:368a GetInput.readDown +00:368e GetInput.setDown +00:3699 GetInput.clearDown +00:369c GetInput.readLeft +00:36a0 GetInput.setLeft +00:36ab GetInput.clearLeft +00:36ae GetInput.readRight +00:36b2 GetInput.setRight +00:36bd GetInput.clearRight +00:36c0 GetInput.priorities +00:36cd GetInput.jumps +00:36dc GetInput.dlru +00:36ec GetInput.ulrd +00:36fc GetInput.lrud +00:3707 GetInput.udlr +00:3712 GetInput.zeroud +00:3718 GetInput.zerolr +00:371e GetInput.zerolrd +00:3726 GetInput.zerolru +00:372e ScoreInit +00:3756 IncreaseScore +00:378e IncreaseScore.doConvert +00:37a6 IncreaseScore.carry +00:37a8 IncreaseScore.postConvert +00:37bc IncreaseScore.preAddDigit +00:37e4 IncreaseScore.addDigit +00:37fa IncreaseScore.nextDigit +00:380e SwitchToTitle +00:3817 TitleEventLoopHandler +00:3821 TitleVBlankHandler +00:382b PersistLevel +00:3839 DrawSpeedMain +00:3889 DrawSpeedSettings +00:38d9 TimeInit +00:38f9 StartCountdown +00:3907 ResetGameTime +00:3912 CheckTorikan +00:3928 CheckTorikan.failure +00:392a CheckTorikan.success +00:392d HandleTimers +00:3953 HandleTimers.reduce +00:3960 HandleTimers.clock +00:397a HandleTimers.go +00:399e SetProgress +00:39a8 SetProgress.loop +00:39ac SetProgress.correct +00:39d3 SetProgress.wvr_u1 +00:39df SetProgress.wvr_u2 +00:39ed SetProgress.wvr_u3 +00:39f9 SetProgress.wvr_u4 +00:3a07 SetProgress.wvr_u5 +00:3a13 SetProgress.wvr_u6 +00:3a21 SetProgress.wvr_u7 +00:3a2d SetProgress.wvr_u8 +00:3a3b SetProgress.wvr_u9 +00:3a47 SetProgress.wvr_u10 +00:3a4f Main +00:3a78 Main.notgbc +00:3a7e Main.wvr_u1 +00:3aab EventLoop +00:3ac1 EventLoop.eventloopjumps +00:3aca EventLoopPostHandler +00:3acc EventLoopPostHandler.wvb_u2 +00:3ade EventLoopPostHandler.vblankjumps +00:3ae7 LoadTitleTiles +00:3b05 LoadGameplayTiles +00:3b1b LoadGameplayTiles.gbc +00:3b2a LoadGameplayTiles.dmg +00:3b39 sFramesToCS +00:3b75 UnsafeMemCopy +00:3b7e SafeMemCopy.wvr_u1 +00:3b7e SafeMemCopy +00:3b8d UnsafeMemSet +00:3b95 SafeMemSet +00:3b95 SafeMemSet.wvr_u2 +00:3ba3 SwitchToGameplay +00:3bac SwitchToGameplayBig +00:3bb5 GamePlayEventLoopHandler +00:3bbf GamePlayBigEventLoopHandler +00:3bc9 EnableScreenSquish +00:3be3 DisableScreenSquish +00:3bee CopyOAMHandler +00:3bfa ClearOAM +00:3c10 BankingInit +00:3c1f OAMDMA +00:3c29 OAMDMAEnd 01:4008 sDMGTSpeedCurve 01:4203 sDMGTSpeedCurveEnd 01:4205 sDMGTSpeedCurveSpecialData @@ -1065,16 +1053,17 @@ 04:5c58 sTetryFILTER 04:5c98 sTetryReset 04:5cd8 sTetryEXITProfile -04:5d18 sTitleScreenMainMap -04:5fb8 sTitleScreenSettingsMap -04:5fb8 sTitleScreenMainMapEnd -04:6258 sTitleScreenCreditsMap -04:6258 sTitleScreenSettingsMapEnd -04:64f8 sTitleScreenProfileMap -04:64f8 sTitleScreenCreditsMapEnd -04:6798 sTitleScreenRecordsMap -04:6798 sTitleScreenProfileMapEnd -04:6a38 sTitleScreenRecordsMapEnd +04:5d18 sTitleAttrs +04:5db8 sTitleScreenMainMap +04:6058 sTitleScreenSettingsMap +04:6058 sTitleScreenMainMapEnd +04:62f8 sTitleScreenCreditsMap +04:62f8 sTitleScreenSettingsMapEnd +04:6598 sTitleScreenProfileMap +04:6598 sTitleScreenCreditsMapEnd +04:6838 sTitleScreenRecordsMap +04:6838 sTitleScreenProfileMapEnd +04:6ad8 sTitleScreenRecordsMapEnd 05:4008 FieldInit 05:403e FieldClear 05:4049 ToBackupField @@ -2862,8 +2851,7 @@ 00:cf42 wGameOverIgnoreInput 00:cf43 wOuterReps 00:cf44 wInnerReps -00:cf45 wTitlePal -00:cf46 wTarget +00:cf45 wTarget 00:ff80 hCurrentDAS 00:ff81 hCurrentARE 00:ff82 hCurrentLineARE diff --git a/src/gbc.asm b/src/gbc.asm index f8009ea..8811d8d 100644 --- a/src/gbc.asm +++ b/src/gbc.asm @@ -74,6 +74,33 @@ INCLUDE "globals.asm" DEF_RGB555_FROM24 GOLD_0, $36, $2C, $05 DEF_RGB555_FROM24 GOLD_1, $99, $73, $16 + ; Title Palettes. + DEF_RGB555_FROM24 TITLE_PAL0_0, 0, 0, 0 + DEF_RGB555_FROM24 TITLE_PAL0_1, 255, 255, 255 + DEF_RGB555_FROM24 TITLE_PAL0_2, 106, 190, 48 + DEF_RGB555_FROM24 TITLE_PAL0_3, 153, 229, 80 + + DEF_RGB555_FROM24 TITLE_PAL1_0, 0, 0, 0 + DEF_RGB555_FROM24 TITLE_PAL1_1, 34, 32, 52 + DEF_RGB555_FROM24 TITLE_PAL1_2, 63, 63, 116 + DEF_RGB555_FROM24 TITLE_PAL1_3, 99, 155, 255 + + DEF_RGB555_FROM24 TITLE_PAL2_0, 0, 0, 0 + DEF_RGB555_FROM24 TITLE_PAL2_1, 34, 32, 52 + DEF_RGB555_FROM24 TITLE_PAL2_2, 69, 40, 60 + DEF_RGB555_FROM24 TITLE_PAL2_3, 102, 57, 49 + + DEF_RGB555_FROM24 TITLE_PAL3_0, 0, 0, 0 + DEF_RGB555_FROM24 TITLE_PAL3_1, 89, 86, 82 + DEF_RGB555_FROM24 TITLE_PAL3_2, 132, 126, 135 + DEF_RGB555_FROM24 TITLE_PAL3_3, 155, 173, 183 + + DEF_RGB555_FROM24 TITLE_PAL4_0, 0, 0, 0 + DEF_RGB555_FROM24 TITLE_PAL4_1, 34, 32, 52 + DEF_RGB555_FROM24 TITLE_PAL4_2, 132, 126, 135 + DEF_RGB555_FROM24 TITLE_PAL4_3, 155, 173, 183 + + SECTION "GBC Shadow Tilemap", WRAM0, ALIGN[8] wShadowTilemap:: ds 32*32 @@ -86,7 +113,6 @@ wShadowTileAttrs:: ds 32*32 SECTION "GBC Variables", WRAM0 wOuterReps:: ds 1 wInnerReps:: ds 1 -wTitlePal:: ds 1 SECTION "GBC Functions", ROM0 @@ -124,24 +150,24 @@ GBCTitleInit:: ld a, [wInitialB] bit 0, a jp nz, .agb - WRITEPAL_A 0, BLACK_C, RED_0_C, RED_1_C, RED_2_C - WRITEPAL_A 1, BLACK_C, GREEN_0_C, GREEN_1_C, GREEN_2_C - WRITEPAL_A 2, BLACK_C, PURPLE_0_C, PURPLE_1_C, PURPLE_2_C - WRITEPAL_A 3, BLACK_C, BLUE_0_C, BLUE_1_C, BLUE_2_C - WRITEPAL_A 4, BLACK_C, ORANGE_0_C, ORANGE_1_C, ORANGE_2_C - WRITEPAL_A 5, BLACK_C, YELLOW_0_C, YELLOW_1_C, YELLOW_2_C - WRITEPAL_A 6, BLACK_C, CYAN_0_C, CYAN_1_C, CYAN_2_C - WRITEPAL_A 7, BLACK_C, GRAY_0_C, GRAY_1_C, WHITE_C + WRITEPAL_A 0, TITLE_PAL0_0_C, TITLE_PAL0_1_C, TITLE_PAL0_2_C, TITLE_PAL0_3_C + WRITEPAL_A 1, TITLE_PAL1_0_C, TITLE_PAL1_1_C, TITLE_PAL1_2_C, TITLE_PAL1_3_C + WRITEPAL_A 2, TITLE_PAL2_0_C, TITLE_PAL2_1_C, TITLE_PAL2_2_C, TITLE_PAL2_3_C + WRITEPAL_A 3, TITLE_PAL3_0_C, TITLE_PAL3_1_C, TITLE_PAL3_2_C, TITLE_PAL3_3_C + WRITEPAL_A 4, TITLE_PAL4_0_C, TITLE_PAL4_1_C, TITLE_PAL4_2_C, TITLE_PAL4_3_C + WRITEPAL_A 5, BLACK_C, GRAY_0_C, GRAY_1_C, WHITE_C + WRITEPAL_A 6, BLACK_C, BLUE_0_C, BLUE_1_C, BLUE_2_C + WRITEPAL_A 7, BLACK_C, GRAY_0_C, GRAY_1_C, WHITE_C jp .postpalettes .agb - WRITEPAL_A 0, BLACK_A, RED_0_A, RED_1_A, RED_2_A - WRITEPAL_A 1, BLACK_A, GREEN_0_A, GREEN_1_A, GREEN_2_A - WRITEPAL_A 2, BLACK_A, PURPLE_0_A, PURPLE_1_A, PURPLE_2_A - WRITEPAL_A 3, BLACK_A, BLUE_0_A, BLUE_1_A, BLUE_2_A - WRITEPAL_A 4, BLACK_A, ORANGE_0_A, ORANGE_1_A, ORANGE_2_A - WRITEPAL_A 5, BLACK_A, YELLOW_0_A, YELLOW_1_A, YELLOW_2_A - WRITEPAL_A 6, BLACK_A, CYAN_0_A, CYAN_1_A, CYAN_2_A - WRITEPAL_A 7, BLACK_A, GRAY_0_A, GRAY_1_A, WHITE_A + WRITEPAL_A 0, TITLE_PAL0_0_A, TITLE_PAL0_1_A, TITLE_PAL0_2_A, TITLE_PAL0_3_A + WRITEPAL_A 1, TITLE_PAL1_0_A, TITLE_PAL1_1_A, TITLE_PAL1_2_A, TITLE_PAL1_3_A + WRITEPAL_A 2, TITLE_PAL2_0_A, TITLE_PAL2_1_A, TITLE_PAL2_2_A, TITLE_PAL2_3_A + WRITEPAL_A 3, TITLE_PAL3_0_A, TITLE_PAL3_1_A, TITLE_PAL3_2_A, TITLE_PAL3_3_A + WRITEPAL_A 4, TITLE_PAL4_0_A, TITLE_PAL4_1_A, TITLE_PAL4_2_A, TITLE_PAL4_3_A + WRITEPAL_A 5, BLACK_A, GRAY_0_A, GRAY_1_A, WHITE_A + WRITEPAL_A 6, BLACK_A, BLUE_0_A, BLUE_1_A, BLUE_2_A + WRITEPAL_A 7, BLACK_A, GRAY_0_A, GRAY_1_A, WHITE_A .postpalettes ; Copy the tilemap to shadow. @@ -153,15 +179,12 @@ GBCTitleInit:: ; Set attrs to pal 7 and copy to shadow. ld a, 1 ldh [rVBK], a - ld d, $03 + ld de, sTitleAttrs ld hl, $9800 - ld bc, 32 - call UnsafeMemSet - ld d, $01 ld bc, (5*32) - call UnsafeMemSet + call UnsafeMemCopy ld d, $07 - ld bc, (14*32) + ld bc, (13*32) call UnsafeMemSet ld de, $9800 ld hl, wShadowTileAttrs @@ -171,10 +194,6 @@ GBCTitleInit:: ; Reset back to bank 0. xor a, a ldh [rVBK], a - - ; Save the current title palette. - ld a, $07 - ld [wTitlePal], a ret ; Sets the GBC registers for the gameplay state. @@ -255,30 +274,14 @@ GBCTitleProcess:: jp .eventLoopMain jp .eventLoopProfile jp .eventLoopSettings - jp .eventLoopRecords - jp .eventLoopCredits + no_jump + no_jump .eventLoopMain - ; Palette for the title? - ldh a, [hFrameCtr] - and $0F - cp a, $01 - jr nz, .noinc - ld a, [wTitlePal] - inc a - cp a, $07 - jr c, .nores - xor a, a -.nores - ld [wTitlePal], a -.noinc - - ; Set the palette for the title. - ld a, [wTitlePal] - ld d, a - ld hl, wShadowTileAttrs + (0*32) + ld de, sTitleAttrs + ld hl, wShadowTileAttrs ld bc, (5*32) - call UnsafeMemSet + call UnsafeMemCopy ; And the selected row. ld a, [wSelected] @@ -288,33 +291,11 @@ GBCTitleProcess:: : add hl, bc dec a jr nz, :- - ld a, 3 - ld d, a + ld d, 6 ld bc, 32 jp UnsafeMemSet .eventLoopProfile - ; Palette for the title? - ldh a, [hFrameCtr] - and $0F - cp a, $01 - jr nz, .noinc3 - ld a, [wTitlePal] - inc a - cp a, $07 - jr c, .nores3 - xor a, a -.nores3 - ld [wTitlePal], a -.noinc3 - - ; Set the palette for the title. - ld a, [wTitlePal] - ld d, a - ld hl, wShadowTileAttrs + (0*32) - ld bc, (1*32) - call UnsafeMemSet - ; And the selected row. ld a, [wSelected] inc a @@ -323,33 +304,11 @@ GBCTitleProcess:: : add hl, bc dec a jr nz, :- - ld a, 3 - ld d, a + ld d, 6 ld bc, 32 jp UnsafeMemSet .eventLoopSettings - ; Palette for the title? - ldh a, [hFrameCtr] - and $0F - cp a, $01 - jr nz, .noinc1 - ld a, [wTitlePal] - inc a - cp a, $07 - jr c, .nores1 - xor a, a -.nores1 - ld [wTitlePal], a -.noinc1 - - ; Set the palette for the title. - ld a, [wTitlePal] - ld d, a - ld hl, wShadowTileAttrs + (0*32) - ld bc, (1*32) - call UnsafeMemSet - ; And the selected row. ld a, [wSelected] inc a @@ -358,55 +317,10 @@ GBCTitleProcess:: : add hl, bc dec a jr nz, :- - ld a, 3 - ld d, a + ld d, 6 ld bc, 32 jp UnsafeMemSet -.eventLoopRecords - ; Palette for the title? - ldh a, [hFrameCtr] - and $0F - cp a, $01 - jr nz, .noinc4 - ld a, [wTitlePal] - inc a - cp a, $07 - jr c, .nores4 - xor a, a -.nores4 - ld [wTitlePal], a -.noinc4 - - ; Set the palette for the title. - ld a, [wTitlePal] - ld d, a - ld hl, wShadowTileAttrs + (0*32) - ld bc, (1*32) - jp UnsafeMemSet - -.eventLoopCredits - ; Palette for the title? - ldh a, [hFrameCtr] - and $0F - cp a, $01 - jr nz, .noinc2 - ld a, [wTitlePal] - inc a - cp a, $07 - jr c, .nores2 - xor a, a -.nores2 - ld [wTitlePal], a -.noinc2 - - ; Set the palette for the title. - ld a, [wTitlePal] - ld d, a - ld hl, wShadowTileAttrs + (0*32) - ld bc, (1*32) - jp UnsafeMemSet - ; Additional GBC effects for the gameplay process state. GBCGameplayProcess:: diff --git a/src/res/other_data.inc b/src/res/other_data.inc index c33d689..9e1c739 100644 --- a/src/res/other_data.inc +++ b/src/res/other_data.inc @@ -1263,7 +1263,7 @@ sTitleTiles:: DB $00,$00,$00,$00,$0F,$00,$1F,$00 DB $3F,$00,$7F,$00,$7F,$00,$7E,$00 DB $7E,$00,$7E,$00,$7E,$00,$7E,$00 - DB $00,$7E,$7F,$00,$00,$7F,$BF,$00 + DB $00,$7E,$7F,$00,$00,$7F,$3F,$00 DB $00,$00,$00,$00,$FF,$00,$FF,$00 DB $FF,$00,$FF,$00,$FF,$00,$00,$00 DB $00,$00,$00,$00,$00,$00,$00,$00 @@ -2180,5 +2180,4 @@ sGameplayTilesC:: DB $00,$00,$00,$00,$00,$00,$00,$00 sGameplayTilesCEnd:: - ENDC diff --git a/src/res/sources/tiles_title.gbr b/src/res/sources/tiles_title.gbr index 6d053e6..dddb1bb 100644 Binary files a/src/res/sources/tiles_title.gbr and b/src/res/sources/tiles_title.gbr differ diff --git a/src/res/title_data.inc b/src/res/title_data.inc index e57f15d..06c0d1e 100644 --- a/src/res/title_data.inc +++ b/src/res/title_data.inc @@ -160,9 +160,16 @@ sTetryEXITProfile:: db "MISS YOU! " db " " +sTitleAttrs:: + db 7, 7, 7, 7, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 2, 1, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + db 1, 1, 1, 1, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + db 1, 1, 1, 1, 3, 3, 3, 1, 3, 3, 3, 1, 3, 3, 3, 3, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + db 1, 1, 1, 1, 4, 4, 4, 1, 4, 4, 4, 1, 4, 4, 4, 4, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + db 1, 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + sTitleScreenMainMap:: - DB $50,$01,$01,$01,$01,$FC,$F0,$F2,$F8,$FA,$F1,$F3 - DB $F9,$FB,$F4,$F6,$01,$01,$59,$5B + DB $50,$01,$01,$01,$01,$FC,$F0,$F2,$F8,$FA + DB $F1,$F3,$F9,$FB,$F4,$F6,$01,$01,$59,$5B DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 DB $00,$00,$A0,$A2,$01,$AA,$B0,$B2,$B8,$BA DB $C0,$C2,$C8,$CA,$D0,$D2,$D8,$DA,$E0,$E2