From 79411d2992bf4edccd9d78a4bb421932d3e7a2c0 Mon Sep 17 00:00:00 2001 From: Randy Thiemann Date: Fri, 10 Nov 2023 10:41:29 +0100 Subject: [PATCH] Add credits screen. --- bin/DMGTRIS.GBC | Bin 131072 -> 131072 bytes bin/DMGTRIS.map | 1212 ++++++++++---------- bin/DMGTRIS.pocket | Bin 131072 -> 131072 bytes bin/DMGTRIS.sym | 928 +++++++-------- src/gbc.asm | 21 +- src/res/sources/map_title_main_credits.gbm | Bin 4388 -> 4388 bytes src/res/title_data.inc | 71 ++ src/state_title.asm | 23 +- 8 files changed, 1189 insertions(+), 1066 deletions(-) diff --git a/bin/DMGTRIS.GBC b/bin/DMGTRIS.GBC index abdedb52331830564cc2ea61563f3205cdec299a..b7e539d7ecdee33852695e44667535f894203f9c 100644 GIT binary patch delta 5147 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 Z8!CJHU(0@J;*H6Ef~vD)GrH^Ee*+e@qVfO$ diff --git a/bin/DMGTRIS.map b/bin/DMGTRIS.map index 1a9f8fe..404c137 100644 --- a/bin/DMGTRIS.map +++ b/bin/DMGTRIS.map @@ -32,7 +32,7 @@ ROM0 bank #0: $00f4 = DoDMGEffect.wvbe_u13 EMPTY: $00fd-$00ff ($0003 bytes) SECTION: $0100-$014f ($0050 bytes) ["Cartridge Header"] - SECTION: $0150-$0f4e ($0dff bytes) ["GBC Functions"] + SECTION: $0150-$0f6f ($0e20 bytes) ["GBC Functions"] $0150 = ToATTR $0173 = GBCTitleInit $0354 = GBCTitleInit.agb @@ -53,457 +53,459 @@ ROM0 bank #0: $09d1 = !1 $09de = GBCTitleProcess.eventLoopRecords $09df = GBCTitleProcess.eventLoopCredits - $09e0 = GBCGameplayProcess - $0a1e = GBCGameplayProcess.goverride - $0a2a = !2 - $0a33 = !3 - $0a3c = !4 - $0a45 = GBCGameplayProcess.colorfield - $0bab = !5 - $0bb9 = GBCGameplayProcess.outer1 - $0bbe = GBCGameplayProcess.inner1 - $0be2 = GBCGameplayProcess.outer2 - $0be7 = GBCGameplayProcess.inner2 - $0c0c = GBCGameplayProcess.empty - $0c10 = GBCGameplayProcess.sub59 - $0c12 = GBCGameplayProcess.sub52 - $0c14 = GBCGameplayProcess.sub45 - $0c16 = GBCGameplayProcess.sub38 - $0c18 = GBCGameplayProcess.sub31 - $0c1a = GBCGameplayProcess.sub24 - $0c1c = GBCGameplayProcess.sub17 - $0c1e = GBCGameplayProcess.sub10 - $0c20 = GBCGameplayProcess.done - $0c42 = GBCGameplayProcess.darker - $0c49 = GBCGameplayProcess.wvr_u1 - $0c56 = GBCGameplayProcess.lighter - $0c5d = GBCGameplayProcess.wvr_u2 - $0c6a = GBCGameplayProcess.black - $0c71 = GBCGameplayProcess.wvr_u3 - $0c7e = GBCBigGameplayProcess - $0cbc = GBCBigGameplayProcess.goverride - $0cc8 = !6 - $0cd1 = !7 - $0cda = !8 - $0ce3 = GBCBigGameplayProcess.colorfield - $0e49 = !9 - $0e57 = GBCBigGameplayProcess.outer1 - $0e5c = GBCBigGameplayProcess.inner1 - $0e80 = GBCBigGameplayProcess.outer2 - $0e85 = GBCBigGameplayProcess.inner2 - $0eaa = GBCBigGameplayProcess.empty - $0eae = GBCBigGameplayProcess.sub59 - $0eb0 = GBCBigGameplayProcess.sub52 - $0eb2 = GBCBigGameplayProcess.sub45 - $0eb4 = GBCBigGameplayProcess.sub38 - $0eb6 = GBCBigGameplayProcess.sub31 - $0eb8 = GBCBigGameplayProcess.sub24 - $0eba = GBCBigGameplayProcess.sub17 - $0ebc = GBCBigGameplayProcess.sub10 - $0ebe = GBCBigGameplayProcess.done - $0ee0 = GBCBigGameplayProcess.darker - $0ee7 = GBCBigGameplayProcess.wvr_u4 - $0ef4 = GBCBigGameplayProcess.lighter - $0efb = GBCBigGameplayProcess.wvr_u5 - $0f08 = GBCBigGameplayProcess.black - $0f0f = GBCBigGameplayProcess.wvr_u6 - $0f1c = ToVRAM - $0f1c = GBCBlitField - SECTION: $0f4f-$1738 ($07ea bytes) ["Field Function Unbanked"] - $0f4f = BlitField - $1112 = BlitField.waitendvbloop - $1118 = !0 - $1167 = !1 - $11b6 = !2 - $1205 = !3 - $1254 = !4 - $12a3 = !5 - $12f2 = !6 - $1344 = BigBlitField - $1507 = BigBlitField.waitendvbloop - $150d = !7 - $155c = !8 - $15ab = !9 - $15fa = !10 - $1649 = !11 - $1698 = !12 - $16e7 = !13 - SECTION: $1739-$1ce5 ($05ad bytes) ["Domain Specific Functions"] - $1739 = ApplyTells - $1777 = ApplyTells.myco - $177c = ApplyTells.dropmode - $17a1 = ApplyNext - $17a9 = ApplyNext.bone - $17c8 = ApplyNext.nobone - $17e9 = ApplyNext.pos - $17f9 = ApplyNext.regular - $17ff = ApplyNext.postoffsets - $1803 = ApplyNext.getoffn - $180e = ApplyNext.skipoffn - $18ac = ApplyNext.done - $18af = ApplyHold - $18b7 = ApplyHold.bone - $18d6 = ApplyHold.nobone - $18f3 = ApplyHold.hide - $1905 = ApplyHold.show - $1915 = ApplyHold.x - $1925 = ApplyHold.regular - $192b = ApplyHold.postoffsets - $192f = ApplyHold.getoffh - $193a = ApplyHold.skipoffh - $1974 = ApplyTime - $19c5 = ApplyTime.loop0 - $19f4 = ApplyTime.loop1 - $1a49 = ApplyNumbers8 - $1a96 = ApplyNumbers8.one - $1a9c = ApplyNumbers8.two - $1aa2 = ApplyNumbers8.three - $1aa8 = ApplyNumbers8.four - $1aae = ApplyNumbers8.five - $1ab4 = ApplyNumbers8.six - $1aba = ApplyNumbers8.seven - $1ac0 = ApplyNumbers8.eight - $1ac5 = ApplyNumbers4 - $1aea = ApplyNumbers4.one - $1af0 = ApplyNumbers4.two - $1af6 = ApplyNumbers4.three - $1afc = ApplyNumbers4.four - $1b01 = SetNumberSpritePositions - $1c08 = GradeRendering - $1c3d = GradeRendering.effect - $1c4d = GradeRendering.noeffect - $1c55 = GradeRendering.drawgrade - $1c5c = GradeRendering.regulargrade - $1c64 = GradeRendering.sgrade - $1c7a = GradeRendering.hisgrade - $1c90 = GradeRendering.mgrade - $1ca6 = GradeRendering.lettergrade - $1cc3 = GradeRendering.mk - $1cc9 = GradeRendering.mv - $1ccf = GradeRendering.mo - $1cd5 = GradeRendering.mm - $1cdb = GradeRendering.gmgrade - SECTION: $1ce6-$20c5 ($03e0 bytes) ["Grading Functions"] - $1ce6 = GradeInit - $1d11 = GradeInit.grade9start - $1d16 = GradeInit.end - $1d18 = UpdateGrade - $1d26 = UpdateGrade.gradejumptable - $1d3b = DecayGradeProcess - $1d49 = DecayGradeProcess.gradejumptable - $1d5e = DecayGradeDelay - $1d6c = DecayGradeDelay.gradejumptable - $1d81 = PrepareScore - $1d94 = DrawGradeProgressDMGT - $1da0 = !0 - $1daf = UpdateGradeDMGT - $1de8 = UpdateGradeDMGT.checklineclears - $1e02 = UpdateGradeDMGT.clearrate - $1e13 = UpdateGradeDMGT.combomult - $1e20 = UpdateGradeDMGT.combo10 - $1e31 = UpdateGradeDMGT.combo5 - $1e42 = UpdateGradeDMGT.combo1 - $1e51 = UpdateGradeDMGT.prelevel - $1e60 = UpdateGradeDMGT.single - $1e70 = UpdateGradeDMGT.double - $1e81 = UpdateGradeDMGT.adddonce - $1e85 = UpdateGradeDMGT.triple - $1e96 = UpdateGradeDMGT.addtonce - $1e9a = UpdateGradeDMGT.tetris - $1e9e = UpdateGradeDMGT.levelmult - $1eb6 = UpdateGradeDMGT.mult5 - $1ebd = UpdateGradeDMGT.mult4 - $1ec3 = UpdateGradeDMGT.mult3 - $1ec8 = UpdateGradeDMGT.mult2 - $1ecc = UpdateGradeDMGT.mult1 - $1ecd = UpdateGradeDMGT.processgrade - $1ef6 = UpdateGradeDMGT.increasegrademaybe - $1f1a = UpdateGradeDMGT.gotgm - $1f28 = DecayGradeDMGT - $1f4c = DecayGradeDMGT.nodecay - $1f53 = DecayGradeDMGT.decay - $1f61 = UpdateGradeTGM1 - $1f6b = UpdateGradeTGM1.trygradeup - $1f85 = UpdateGradeTGM1.increasegrade - $1f9a = UpdateGradeTGM1.skipjingle - $1fa7 = UpdateGradeTGM1.maybegm - $1fc0 = UpdateGradeDEAT - $1fcc = UpdateGradeDEAT.notgm - $1fe8 = UpdateGradeDEAT.notm - $200b = UpdateGradeDEAT.disqualify - $2029 = UpdateGradeSHIR - $206c = UpdateGradeSHIR.s5torikan - $207c = UpdateGradeSHIR.s10torikan - $208b = UpdateGradeSHIR.disqualify - $209a = UpdateGradeSHIR.l1000 - $20b0 = UpdateGradeSHIR.l500 - SECTION: $20c6-$243a ($0375 bytes) ["Level Functions"] - $20c6 = LevelInit - $212b = SpecialLevelInit - $2139 = SpecialLevelInit.jumps - $214e = SpecialLevelInit.dmgt - $2153 = SpecialLevelInit.tgm1 - $2158 = SpecialLevelInit.tgm3 - $215d = SpecialLevelInit.deat - $2162 = SpecialLevelInit.shir - $2167 = SpecialLevelInit.chil - $216c = SpecialLevelInit.myco - $2171 = SpecialLevelInit.loaddata - $21a6 = LevelUp - $21d0 = LevelUp.doit - $221a = LevelUp.checknlevel - $2248 = !0 - $2260 = !1 - $2269 = LevelUp.bellmaybe - $2282 = LevelUp.leveljinglemaybe - $228f = LevelUp.checkspeedup - $22a3 = !2 - $22b0 = !3 - $22c1 = !4 - $22ce = DoSpeedUp - $230f = CheckSpecialLevelConditions - $2340 = CheckSpecialLevelConditions.override - $235b = CheckSpecialLevelConditions.nooverride - $2361 = CheckSpecialLevelConditions.speciallock - $2382 = CheckSpecialLevelConditions.bones - $2397 = CheckSpecialLevelConditions.enterthebonezone - $239c = CheckSpecialLevelConditions.invis - $23b1 = CheckSpecialLevelConditions.vanishoxyaction - $23b6 = CheckSpecialLevelConditions.killscreen - $23c7 = CheckSpecialLevelConditions.rip - $23f7 = CheckSpecialLevelConditions.staffroll - $2405 = CheckSpecialLevelConditions.justkill - $2419 = TriggerKillScreen - SECTION: $243b-$26f0 ($02b6 bytes) ["Grading Data"] - $243b = sTGM1GradeScores - $245d = sTGM3InternalGradeSystem - $24fd = sTGM3GradeBoosts - $251c = sTGM3LevelMultiplier - $2520 = sTGM3BaselineCOOL - $2529 = sTGM3REGRETConditions - $253d = sDMGTGrading - $25f1 = sDMGTGaugeLUT - SECTION: $26f1-$298a ($029a bytes) ["SFX Functions"] - $26f1 = SFXInit - $2713 = SFXPopQueue - $2728 = SFXPushQueue - $2739 = SFXProcessQueue - $274a = !0 - $2765 = !1 - $2767 = SFXTriggerNoise - $2774 = !2 - $2781 = !3 - $278d = SFXEnqueue - $27a2 = SFXEnqueue.findsfx - $27b7 = !4 - $27c7 = !5 - $27d7 = !6 - $27e7 = !7 - $27f7 = !8 - $2807 = !9 - $2817 = !10 - $2827 = !11 - $2837 = !12 - $2847 = !13 - $2857 = !14 - $2867 = !15 - $2877 = !16 - $2887 = !17 - $2897 = !18 - $28a6 = !19 - $28b5 = !20 - $28c4 = !21 - $28d3 = !22 - $28e1 = !23 - $28ef = !24 - $28fc = SFXKill - $2929 = SFXPlayNoise - $2934 = SFXPlayNoise.noisereg - $2941 = !25 - $294b = SFXPlayNoise.savenoiseplayhead - $2954 = SFXPlay - $295f = !26 - $2962 = SFXPlay.play - $296e = SFXPlay.getRegister - $2978 = !27 - $2982 = SFXPlay.savePlayhead - SECTION: $298b-$2bbb ($0231 bytes) ["RNG Functions"] - $298b = HarvestEntropy - $2991 = HarvestEntropy.loop - $29b2 = RNGInit - $29e8 = !0 - $2a18 = RNGInit.complexinit - $2a2f = !1 - $2a4a = ShiftHistory - $2a67 = GetNextHellPiece - $2a6c = GetNextTGM1Piece - $2a6f = !2 - $2a87 = !3 - $2a89 = GetNextTGM2Piece - $2a8c = !4 - $2aa4 = !5 - $2aa6 = GetNextNesPiece - $2ab4 = GetNextTGM3Piece - $2ab7 = !6 - $2ada = !7 - $2add = !8 - $2aed = !9 - $2af7 = !10 - $2b05 = !11 - $2b14 = !12 - $2b20 = !13 - $2b2c = !14 - $2b38 = !15 - $2b44 = !16 - $2b50 = !17 - $2b5c = !18 - $2b6b = GetNextPiece - $2b79 = GetNextPiece.nextpiecejumps - $2b88 = Next35Piece - $2b88 = !19 - $2b92 = Next7Piece - $2b92 = !20 - $2b9c = NextByte - SECTION: $2bbc-$2dd0 ($0215 bytes) ["SRAM Functions"] - $2bbc = RestoreSRAM - $2c3e = RestoreSRAM.jumps - $2c56 = RestoreSRAM.dmgt - $2c5c = RestoreSRAM.tgm1 - $2c62 = RestoreSRAM.tgm3 - $2c68 = RestoreSRAM.deat - $2c6e = RestoreSRAM.shir - $2c74 = RestoreSRAM.chil - $2c7a = RestoreSRAM.myco - $2c80 = RestoreSRAM.search - $2c92 = RestoreSRAM.notfound - $2c99 = RestoreSRAM.fallback - $2cb4 = InitializeSRAM - $2d5d = ChangeProfile - $2d5d = ChangeProfile.backup - $2d70 = ChangeProfile.first - $2d7e = ChangeProfile.second - $2d8c = ChangeProfile.third - $2d9a = ChangeProfile.restore - $2dad = ChangeProfile.lfirst - $2db9 = ChangeProfile.lsecond - $2dc5 = ChangeProfile.lthird - SECTION: $2dd1-$2f1a ($014a bytes) ["Progress Data"] - $2dd1 = sProgressData - SECTION: $2f1b-$2ffa ($00e0 bytes) ["Score Functions"] - $2f1b = ScoreInit - $2f43 = IncreaseScore - $2f7b = IncreaseScore.doConvert - $2f7d = !0 - $2f93 = IncreaseScore.carry - $2f95 = IncreaseScore.postConvert - $2fa2 = !1 - $2fa9 = IncreaseScore.preAddDigit - $2fd1 = IncreaseScore.addDigit - $2fe7 = IncreaseScore.nextDigit - SECTION: $2ffb-$30c7 ($00cd bytes) ["Input Functions"] - $2ffb = InputInit - $300d = GetInput - $300d = GetInput.btns - $301a = GetInput.readA - $301e = GetInput.setA - $3029 = GetInput.clearA - $302c = GetInput.readB - $3030 = GetInput.setB - $303b = GetInput.clearB - $303e = GetInput.readSelect - $3042 = GetInput.setSelect - $304d = GetInput.clearSelect - $3050 = GetInput.readStart - $3054 = GetInput.setStart - $305f = GetInput.clearStart - $3062 = GetInput.dpad - $306f = GetInput.readUp - $3073 = GetInput.setUp - $307e = GetInput.clearUp - $3081 = GetInput.readDown - $3085 = GetInput.setDown - $3090 = GetInput.clearDown - $3093 = GetInput.readLeft - $3097 = GetInput.setLeft - $30a2 = GetInput.clearLeft - $30a5 = GetInput.readRight - $30a9 = GetInput.setRight - $30b4 = GetInput.clearRight - $30b7 = GetInput.priorities - $30c2 = GetInput.zero - SECTION: $30c8-$3192 ($00cb bytes) ["Title Function Trampolines"] - $30c8 = SwitchToTitle - $30d1 = TitleEventLoopHandler - $30db = TitleVBlankHandler - $30e5 = PersistLevel - $30f3 = DrawSpeedMain - $3143 = DrawSpeedSettings - SECTION: $3193-$3258 ($00c6 bytes) ["Time Functions"] - $3193 = TimeInit - $31b3 = StartCountdown - $31c1 = ResetGameTime - $31cc = CheckTorikan - $31e3 = CheckTorikan.failure - $31e5 = CheckTorikan.success - $31e8 = HandleTimers - $320e = HandleTimers.reduce - $321b = HandleTimers.clock - $3235 = HandleTimers.go - SECTION: $3259-$330a ($00b2 bytes) ["Progress Functions"] - $3259 = SetProgress - $3264 = SetProgress.loop - $3268 = SetProgress.correct - $328f = SetProgress.wvr_u1 - $329b = SetProgress.wvr_u2 - $32a9 = SetProgress.wvr_u3 - $32b5 = SetProgress.wvr_u4 - $32c3 = SetProgress.wvr_u5 - $32cf = SetProgress.wvr_u6 - $32dd = SetProgress.wvr_u7 - $32e9 = SetProgress.wvr_u8 - $32f7 = SetProgress.wvr_u9 - $3303 = SetProgress.wvr_u10 - SECTION: $330b-$339c ($0092 bytes) ["Code Entry Point"] - $330b = Main - $3334 = Main.notgbc - $333a = Main.wvr_u1 - $3361 = EventLoop - $3377 = EventLoop.eventloopjumps - $3380 = EventLoopPostHandler - $3382 = EventLoopPostHandler.wvb_u2 - $3394 = EventLoopPostHandler.vblankjumps - SECTION: $339d-$33ee ($0052 bytes) ["Tile Functions"] - $339d = LoadTitleTiles - $33bb = LoadGameplayTiles - $33d1 = LoadGameplayTiles.gbc - $33e0 = LoadGameplayTiles.dmg - SECTION: $33ef-$342a ($003c bytes) ["Time Data"] - $33ef = sFramesToCS - SECTION: $342b-$3458 ($002e bytes) ["Memory Functions"] - $342b = UnsafeMemCopy - $3434 = SafeMemCopy.wvr_u1 - $3434 = SafeMemCopy - $3443 = UnsafeMemSet - $344b = SafeMemSet - $344b = SafeMemSet.wvr_u2 - SECTION: $3459-$347e ($0026 bytes) ["Gameplay Function Trampolines"] - $3459 = SwitchToGameplay - $3462 = SwitchToGameplayBig - $346b = GamePlayEventLoopHandler - $3475 = GamePlayBigEventLoopHandler - SECTION: $347f-$34a3 ($0025 bytes) ["Interrupt Initialization Functions"] - $347f = EnableScreenSquish - $3499 = DisableScreenSquish - SECTION: $34a4-$34c5 ($0022 bytes) ["OAM Functions"] - $34a4 = CopyOAMHandler - $34b0 = ClearOAM - SECTION: $34c6-$34d4 ($000f bytes) ["Banking Functions"] - $34c6 = BankingInit - SECTION: $34d5-$34de ($000a bytes) ["OAM DMA Code"] - $34d5 = OAMDMA - $34df = OAMDMAEnd - EMPTY: $34df-$3fff ($0b21 bytes) - TOTAL EMPTY: $0b2c bytes + $09f1 = GBCTitleProcess.nores2 + $09f4 = GBCTitleProcess.noinc2 + $0a01 = GBCGameplayProcess + $0a3f = GBCGameplayProcess.goverride + $0a4b = !2 + $0a54 = !3 + $0a5d = !4 + $0a66 = GBCGameplayProcess.colorfield + $0bcc = !5 + $0bda = GBCGameplayProcess.outer1 + $0bdf = GBCGameplayProcess.inner1 + $0c03 = GBCGameplayProcess.outer2 + $0c08 = GBCGameplayProcess.inner2 + $0c2d = GBCGameplayProcess.empty + $0c31 = GBCGameplayProcess.sub59 + $0c33 = GBCGameplayProcess.sub52 + $0c35 = GBCGameplayProcess.sub45 + $0c37 = GBCGameplayProcess.sub38 + $0c39 = GBCGameplayProcess.sub31 + $0c3b = GBCGameplayProcess.sub24 + $0c3d = GBCGameplayProcess.sub17 + $0c3f = GBCGameplayProcess.sub10 + $0c41 = GBCGameplayProcess.done + $0c63 = GBCGameplayProcess.darker + $0c6a = GBCGameplayProcess.wvr_u1 + $0c77 = GBCGameplayProcess.lighter + $0c7e = GBCGameplayProcess.wvr_u2 + $0c8b = GBCGameplayProcess.black + $0c92 = GBCGameplayProcess.wvr_u3 + $0c9f = GBCBigGameplayProcess + $0cdd = GBCBigGameplayProcess.goverride + $0ce9 = !6 + $0cf2 = !7 + $0cfb = !8 + $0d04 = GBCBigGameplayProcess.colorfield + $0e6a = !9 + $0e78 = GBCBigGameplayProcess.outer1 + $0e7d = GBCBigGameplayProcess.inner1 + $0ea1 = GBCBigGameplayProcess.outer2 + $0ea6 = GBCBigGameplayProcess.inner2 + $0ecb = GBCBigGameplayProcess.empty + $0ecf = GBCBigGameplayProcess.sub59 + $0ed1 = GBCBigGameplayProcess.sub52 + $0ed3 = GBCBigGameplayProcess.sub45 + $0ed5 = GBCBigGameplayProcess.sub38 + $0ed7 = GBCBigGameplayProcess.sub31 + $0ed9 = GBCBigGameplayProcess.sub24 + $0edb = GBCBigGameplayProcess.sub17 + $0edd = GBCBigGameplayProcess.sub10 + $0edf = GBCBigGameplayProcess.done + $0f01 = GBCBigGameplayProcess.darker + $0f08 = GBCBigGameplayProcess.wvr_u4 + $0f15 = GBCBigGameplayProcess.lighter + $0f1c = GBCBigGameplayProcess.wvr_u5 + $0f29 = GBCBigGameplayProcess.black + $0f30 = GBCBigGameplayProcess.wvr_u6 + $0f3d = ToVRAM + $0f3d = GBCBlitField + SECTION: $0f70-$1759 ($07ea bytes) ["Field Function Unbanked"] + $0f70 = BlitField + $1133 = BlitField.waitendvbloop + $1139 = !0 + $1188 = !1 + $11d7 = !2 + $1226 = !3 + $1275 = !4 + $12c4 = !5 + $1313 = !6 + $1365 = BigBlitField + $1528 = BigBlitField.waitendvbloop + $152e = !7 + $157d = !8 + $15cc = !9 + $161b = !10 + $166a = !11 + $16b9 = !12 + $1708 = !13 + SECTION: $175a-$1d06 ($05ad bytes) ["Domain Specific Functions"] + $175a = ApplyTells + $1798 = ApplyTells.myco + $179d = ApplyTells.dropmode + $17c2 = ApplyNext + $17ca = ApplyNext.bone + $17e9 = ApplyNext.nobone + $180a = ApplyNext.pos + $181a = ApplyNext.regular + $1820 = ApplyNext.postoffsets + $1824 = ApplyNext.getoffn + $182f = ApplyNext.skipoffn + $18cd = ApplyNext.done + $18d0 = ApplyHold + $18d8 = ApplyHold.bone + $18f7 = ApplyHold.nobone + $1914 = ApplyHold.hide + $1926 = ApplyHold.show + $1936 = ApplyHold.x + $1946 = ApplyHold.regular + $194c = ApplyHold.postoffsets + $1950 = ApplyHold.getoffh + $195b = ApplyHold.skipoffh + $1995 = ApplyTime + $19e6 = ApplyTime.loop0 + $1a15 = ApplyTime.loop1 + $1a6a = ApplyNumbers8 + $1ab7 = ApplyNumbers8.one + $1abd = ApplyNumbers8.two + $1ac3 = ApplyNumbers8.three + $1ac9 = ApplyNumbers8.four + $1acf = ApplyNumbers8.five + $1ad5 = ApplyNumbers8.six + $1adb = ApplyNumbers8.seven + $1ae1 = ApplyNumbers8.eight + $1ae6 = ApplyNumbers4 + $1b0b = ApplyNumbers4.one + $1b11 = ApplyNumbers4.two + $1b17 = ApplyNumbers4.three + $1b1d = ApplyNumbers4.four + $1b22 = SetNumberSpritePositions + $1c29 = GradeRendering + $1c5e = GradeRendering.effect + $1c6e = GradeRendering.noeffect + $1c76 = GradeRendering.drawgrade + $1c7d = GradeRendering.regulargrade + $1c85 = GradeRendering.sgrade + $1c9b = GradeRendering.hisgrade + $1cb1 = GradeRendering.mgrade + $1cc7 = GradeRendering.lettergrade + $1ce4 = GradeRendering.mk + $1cea = GradeRendering.mv + $1cf0 = GradeRendering.mo + $1cf6 = GradeRendering.mm + $1cfc = GradeRendering.gmgrade + SECTION: $1d07-$20e6 ($03e0 bytes) ["Grading Functions"] + $1d07 = GradeInit + $1d32 = GradeInit.grade9start + $1d37 = GradeInit.end + $1d39 = UpdateGrade + $1d47 = UpdateGrade.gradejumptable + $1d5c = DecayGradeProcess + $1d6a = DecayGradeProcess.gradejumptable + $1d7f = DecayGradeDelay + $1d8d = DecayGradeDelay.gradejumptable + $1da2 = PrepareScore + $1db5 = DrawGradeProgressDMGT + $1dc1 = !0 + $1dd0 = UpdateGradeDMGT + $1e09 = UpdateGradeDMGT.checklineclears + $1e23 = UpdateGradeDMGT.clearrate + $1e34 = UpdateGradeDMGT.combomult + $1e41 = UpdateGradeDMGT.combo10 + $1e52 = UpdateGradeDMGT.combo5 + $1e63 = UpdateGradeDMGT.combo1 + $1e72 = UpdateGradeDMGT.prelevel + $1e81 = UpdateGradeDMGT.single + $1e91 = UpdateGradeDMGT.double + $1ea2 = UpdateGradeDMGT.adddonce + $1ea6 = UpdateGradeDMGT.triple + $1eb7 = UpdateGradeDMGT.addtonce + $1ebb = UpdateGradeDMGT.tetris + $1ebf = UpdateGradeDMGT.levelmult + $1ed7 = UpdateGradeDMGT.mult5 + $1ede = UpdateGradeDMGT.mult4 + $1ee4 = UpdateGradeDMGT.mult3 + $1ee9 = UpdateGradeDMGT.mult2 + $1eed = UpdateGradeDMGT.mult1 + $1eee = UpdateGradeDMGT.processgrade + $1f17 = UpdateGradeDMGT.increasegrademaybe + $1f3b = UpdateGradeDMGT.gotgm + $1f49 = DecayGradeDMGT + $1f6d = DecayGradeDMGT.nodecay + $1f74 = DecayGradeDMGT.decay + $1f82 = UpdateGradeTGM1 + $1f8c = UpdateGradeTGM1.trygradeup + $1fa6 = UpdateGradeTGM1.increasegrade + $1fbb = UpdateGradeTGM1.skipjingle + $1fc8 = UpdateGradeTGM1.maybegm + $1fe1 = UpdateGradeDEAT + $1fed = UpdateGradeDEAT.notgm + $2009 = UpdateGradeDEAT.notm + $202c = UpdateGradeDEAT.disqualify + $204a = UpdateGradeSHIR + $208d = UpdateGradeSHIR.s5torikan + $209d = UpdateGradeSHIR.s10torikan + $20ac = UpdateGradeSHIR.disqualify + $20bb = UpdateGradeSHIR.l1000 + $20d1 = UpdateGradeSHIR.l500 + SECTION: $20e7-$245b ($0375 bytes) ["Level Functions"] + $20e7 = LevelInit + $214c = SpecialLevelInit + $215a = SpecialLevelInit.jumps + $216f = SpecialLevelInit.dmgt + $2174 = SpecialLevelInit.tgm1 + $2179 = SpecialLevelInit.tgm3 + $217e = SpecialLevelInit.deat + $2183 = SpecialLevelInit.shir + $2188 = SpecialLevelInit.chil + $218d = SpecialLevelInit.myco + $2192 = SpecialLevelInit.loaddata + $21c7 = LevelUp + $21f1 = LevelUp.doit + $223b = LevelUp.checknlevel + $2269 = !0 + $2281 = !1 + $228a = LevelUp.bellmaybe + $22a3 = LevelUp.leveljinglemaybe + $22b0 = LevelUp.checkspeedup + $22c4 = !2 + $22d1 = !3 + $22e2 = !4 + $22ef = DoSpeedUp + $2330 = CheckSpecialLevelConditions + $2361 = CheckSpecialLevelConditions.override + $237c = CheckSpecialLevelConditions.nooverride + $2382 = CheckSpecialLevelConditions.speciallock + $23a3 = CheckSpecialLevelConditions.bones + $23b8 = CheckSpecialLevelConditions.enterthebonezone + $23bd = CheckSpecialLevelConditions.invis + $23d2 = CheckSpecialLevelConditions.vanishoxyaction + $23d7 = CheckSpecialLevelConditions.killscreen + $23e8 = CheckSpecialLevelConditions.rip + $2418 = CheckSpecialLevelConditions.staffroll + $2426 = CheckSpecialLevelConditions.justkill + $243a = TriggerKillScreen + SECTION: $245c-$2711 ($02b6 bytes) ["Grading Data"] + $245c = sTGM1GradeScores + $247e = sTGM3InternalGradeSystem + $251e = sTGM3GradeBoosts + $253d = sTGM3LevelMultiplier + $2541 = sTGM3BaselineCOOL + $254a = sTGM3REGRETConditions + $255e = sDMGTGrading + $2612 = sDMGTGaugeLUT + SECTION: $2712-$29ab ($029a bytes) ["SFX Functions"] + $2712 = SFXInit + $2734 = SFXPopQueue + $2749 = SFXPushQueue + $275a = SFXProcessQueue + $276b = !0 + $2786 = !1 + $2788 = SFXTriggerNoise + $2795 = !2 + $27a2 = !3 + $27ae = SFXEnqueue + $27c3 = SFXEnqueue.findsfx + $27d8 = !4 + $27e8 = !5 + $27f8 = !6 + $2808 = !7 + $2818 = !8 + $2828 = !9 + $2838 = !10 + $2848 = !11 + $2858 = !12 + $2868 = !13 + $2878 = !14 + $2888 = !15 + $2898 = !16 + $28a8 = !17 + $28b8 = !18 + $28c7 = !19 + $28d6 = !20 + $28e5 = !21 + $28f4 = !22 + $2902 = !23 + $2910 = !24 + $291d = SFXKill + $294a = SFXPlayNoise + $2955 = SFXPlayNoise.noisereg + $2962 = !25 + $296c = SFXPlayNoise.savenoiseplayhead + $2975 = SFXPlay + $2980 = !26 + $2983 = SFXPlay.play + $298f = SFXPlay.getRegister + $2999 = !27 + $29a3 = SFXPlay.savePlayhead + SECTION: $29ac-$2bdc ($0231 bytes) ["RNG Functions"] + $29ac = HarvestEntropy + $29b2 = HarvestEntropy.loop + $29d3 = RNGInit + $2a09 = !0 + $2a39 = RNGInit.complexinit + $2a50 = !1 + $2a6b = ShiftHistory + $2a88 = GetNextHellPiece + $2a8d = GetNextTGM1Piece + $2a90 = !2 + $2aa8 = !3 + $2aaa = GetNextTGM2Piece + $2aad = !4 + $2ac5 = !5 + $2ac7 = GetNextNesPiece + $2ad5 = GetNextTGM3Piece + $2ad8 = !6 + $2afb = !7 + $2afe = !8 + $2b0e = !9 + $2b18 = !10 + $2b26 = !11 + $2b35 = !12 + $2b41 = !13 + $2b4d = !14 + $2b59 = !15 + $2b65 = !16 + $2b71 = !17 + $2b7d = !18 + $2b8c = GetNextPiece + $2b9a = GetNextPiece.nextpiecejumps + $2ba9 = Next35Piece + $2ba9 = !19 + $2bb3 = Next7Piece + $2bb3 = !20 + $2bbd = NextByte + SECTION: $2bdd-$2df1 ($0215 bytes) ["SRAM Functions"] + $2bdd = RestoreSRAM + $2c5f = RestoreSRAM.jumps + $2c77 = RestoreSRAM.dmgt + $2c7d = RestoreSRAM.tgm1 + $2c83 = RestoreSRAM.tgm3 + $2c89 = RestoreSRAM.deat + $2c8f = RestoreSRAM.shir + $2c95 = RestoreSRAM.chil + $2c9b = RestoreSRAM.myco + $2ca1 = RestoreSRAM.search + $2cb3 = RestoreSRAM.notfound + $2cba = RestoreSRAM.fallback + $2cd5 = InitializeSRAM + $2d7e = ChangeProfile + $2d7e = ChangeProfile.backup + $2d91 = ChangeProfile.first + $2d9f = ChangeProfile.second + $2dad = ChangeProfile.third + $2dbb = ChangeProfile.restore + $2dce = ChangeProfile.lfirst + $2dda = ChangeProfile.lsecond + $2de6 = ChangeProfile.lthird + SECTION: $2df2-$2f3b ($014a bytes) ["Progress Data"] + $2df2 = sProgressData + SECTION: $2f3c-$301b ($00e0 bytes) ["Score Functions"] + $2f3c = ScoreInit + $2f64 = IncreaseScore + $2f9c = IncreaseScore.doConvert + $2f9e = !0 + $2fb4 = IncreaseScore.carry + $2fb6 = IncreaseScore.postConvert + $2fc3 = !1 + $2fca = IncreaseScore.preAddDigit + $2ff2 = IncreaseScore.addDigit + $3008 = IncreaseScore.nextDigit + SECTION: $301c-$30e8 ($00cd bytes) ["Input Functions"] + $301c = InputInit + $302e = GetInput + $302e = GetInput.btns + $303b = GetInput.readA + $303f = GetInput.setA + $304a = GetInput.clearA + $304d = GetInput.readB + $3051 = GetInput.setB + $305c = GetInput.clearB + $305f = GetInput.readSelect + $3063 = GetInput.setSelect + $306e = GetInput.clearSelect + $3071 = GetInput.readStart + $3075 = GetInput.setStart + $3080 = GetInput.clearStart + $3083 = GetInput.dpad + $3090 = GetInput.readUp + $3094 = GetInput.setUp + $309f = GetInput.clearUp + $30a2 = GetInput.readDown + $30a6 = GetInput.setDown + $30b1 = GetInput.clearDown + $30b4 = GetInput.readLeft + $30b8 = GetInput.setLeft + $30c3 = GetInput.clearLeft + $30c6 = GetInput.readRight + $30ca = GetInput.setRight + $30d5 = GetInput.clearRight + $30d8 = GetInput.priorities + $30e3 = GetInput.zero + SECTION: $30e9-$31b3 ($00cb bytes) ["Title Function Trampolines"] + $30e9 = SwitchToTitle + $30f2 = TitleEventLoopHandler + $30fc = TitleVBlankHandler + $3106 = PersistLevel + $3114 = DrawSpeedMain + $3164 = DrawSpeedSettings + SECTION: $31b4-$3279 ($00c6 bytes) ["Time Functions"] + $31b4 = TimeInit + $31d4 = StartCountdown + $31e2 = ResetGameTime + $31ed = CheckTorikan + $3204 = CheckTorikan.failure + $3206 = CheckTorikan.success + $3209 = HandleTimers + $322f = HandleTimers.reduce + $323c = HandleTimers.clock + $3256 = HandleTimers.go + SECTION: $327a-$332b ($00b2 bytes) ["Progress Functions"] + $327a = SetProgress + $3285 = SetProgress.loop + $3289 = SetProgress.correct + $32b0 = SetProgress.wvr_u1 + $32bc = SetProgress.wvr_u2 + $32ca = SetProgress.wvr_u3 + $32d6 = SetProgress.wvr_u4 + $32e4 = SetProgress.wvr_u5 + $32f0 = SetProgress.wvr_u6 + $32fe = SetProgress.wvr_u7 + $330a = SetProgress.wvr_u8 + $3318 = SetProgress.wvr_u9 + $3324 = SetProgress.wvr_u10 + SECTION: $332c-$33bd ($0092 bytes) ["Code Entry Point"] + $332c = Main + $3355 = Main.notgbc + $335b = Main.wvr_u1 + $3382 = EventLoop + $3398 = EventLoop.eventloopjumps + $33a1 = EventLoopPostHandler + $33a3 = EventLoopPostHandler.wvb_u2 + $33b5 = EventLoopPostHandler.vblankjumps + SECTION: $33be-$340f ($0052 bytes) ["Tile Functions"] + $33be = LoadTitleTiles + $33dc = LoadGameplayTiles + $33f2 = LoadGameplayTiles.gbc + $3401 = LoadGameplayTiles.dmg + SECTION: $3410-$344b ($003c bytes) ["Time Data"] + $3410 = sFramesToCS + SECTION: $344c-$3479 ($002e bytes) ["Memory Functions"] + $344c = UnsafeMemCopy + $3455 = SafeMemCopy.wvr_u1 + $3455 = SafeMemCopy + $3464 = UnsafeMemSet + $346c = SafeMemSet + $346c = SafeMemSet.wvr_u2 + SECTION: $347a-$349f ($0026 bytes) ["Gameplay Function Trampolines"] + $347a = SwitchToGameplay + $3483 = SwitchToGameplayBig + $348c = GamePlayEventLoopHandler + $3496 = GamePlayBigEventLoopHandler + SECTION: $34a0-$34c4 ($0025 bytes) ["Interrupt Initialization Functions"] + $34a0 = EnableScreenSquish + $34ba = DisableScreenSquish + SECTION: $34c5-$34e6 ($0022 bytes) ["OAM Functions"] + $34c5 = CopyOAMHandler + $34d1 = ClearOAM + SECTION: $34e7-$34f5 ($000f bytes) ["Banking Functions"] + $34e7 = BankingInit + SECTION: $34f6-$34ff ($000a bytes) ["OAM DMA Code"] + $34f6 = OAMDMA + $3500 = OAMDMAEnd + EMPTY: $3500-$3fff ($0b00 bytes) + TOTAL EMPTY: $0b0b bytes ROMX bank #1: SECTION: $4000-$4007 ($0008 bytes) ["Bank ID BANK_OTHER"] @@ -604,7 +606,7 @@ ROMX bank #3: ROMX bank #4: SECTION: $4000-$4007 ($0008 bytes) ["Bank ID BANK_TITLE"] - SECTION: $4008-$47ef ($07e8 bytes) ["Title Screen Static Data"] + SECTION: $4008-$4a8f ($0a88 bytes) ["Title Screen Static Data"] $4008 = sEasterM0 $400d = sEasterM1 $4012 = sEasterC0 @@ -631,155 +633,159 @@ ROMX bank #4: $42b0 = sTitleScreenMainMap $4550 = sTitleScreenSettingsMap $4550 = sTitleScreenMainMapEnd + $47f0 = sTitleScreenCreditsMap $47f0 = sTitleScreenSettingsMapEnd - SECTION: $47f0-$4f67 ($0778 bytes) ["Title Functions Banked"] - $47f0 = SwitchToTitleB - $47f6 = SwitchToTitleB.wvr_u1 - $47ff = !0 - $4822 = SwitchToTitleB.wvb_u2 - $4829 = SwitchToTitleB.wvbe_u3 - $482f = SwitchTitleMode - $4840 = SwitchTitleMode.wvr_u4 - $4849 = !1 - $4854 = SwitchTitleMode.jumps - $4863 = SwitchTitleMode.switchMain - $4890 = SwitchTitleMode.notsgb - $48b1 = SwitchTitleMode.notmgb - $48d9 = SwitchTitleMode.agb - $48f3 = SwitchTitleMode.done - $48fb = SwitchTitleMode.switchProfile - $4903 = SwitchTitleMode.switchSettings - $4917 = SwitchTitleMode.switchRecords - $491f = SwitchTitleMode.switchCredits - $4927 = TitleEventLoopHandlerB - $4935 = TitleEventLoopHandlerB.jumps - $4944 = TitleEventLoopHandlerB.eventLoopMain - $4967 = TitleEventLoopHandlerB.d0 - $497b = TitleEventLoopHandlerB.eventLoopProfile - $497c = TitleEventLoopHandlerB.eventLoopSettings - $49a6 = TitleEventLoopHandlerB.d1 - $49bb = TitleEventLoopHandlerB.l1 - $49d0 = TitleEventLoopHandlerB.r1 - $49e4 = TitleEventLoopHandlerB.eventLoopRecords - $49e5 = TitleEventLoopHandlerB.eventLoopCredits - $49e6 = TitleVBlankHandlerB - $49f4 = TitleVBlankHandlerB.jumps - $4a03 = TitleVBlankHandlerB.vblankMain - $4a0d = TitleVBlankHandlerB.notselected_u5 - $4a12 = TitleVBlankHandlerB.selected_u5 - $4a15 = TitleVBlankHandlerB.done_u5 - $4a1f = TitleVBlankHandlerB.notselected_u6 - $4a24 = TitleVBlankHandlerB.selected_u6 - $4a27 = TitleVBlankHandlerB.done_u6 - $4a31 = TitleVBlankHandlerB.notselected_u7 - $4a36 = TitleVBlankHandlerB.selected_u7 - $4a39 = TitleVBlankHandlerB.done_u7 - $4a43 = TitleVBlankHandlerB.notselected_u8 - $4a48 = TitleVBlankHandlerB.selected_u8 - $4a4b = TitleVBlankHandlerB.done_u8 - $4a55 = TitleVBlankHandlerB.notselected_u9 - $4a5a = TitleVBlankHandlerB.selected_u9 - $4a5d = TitleVBlankHandlerB.done_u9 - $4a67 = TitleVBlankHandlerB.notselected_u10 - $4a6c = TitleVBlankHandlerB.selected_u10 - $4a6f = TitleVBlankHandlerB.done_u10 - $4af9 = TitleVBlankHandlerB.disabled - $4b05 = TitleVBlankHandlerB.profile - $4b14 = TitleVBlankHandlerB.vblankProfile - $4b15 = TitleVBlankHandlerB.vblankSettings - $4b1f = TitleVBlankHandlerB.notselected_u11 - $4b24 = TitleVBlankHandlerB.selected_u11 - $4b27 = TitleVBlankHandlerB.done_u11 - $4b31 = TitleVBlankHandlerB.notselected_u12 - $4b36 = TitleVBlankHandlerB.selected_u12 - $4b39 = TitleVBlankHandlerB.done_u12 - $4b43 = TitleVBlankHandlerB.notselected_u13 - $4b48 = TitleVBlankHandlerB.selected_u13 - $4b4b = TitleVBlankHandlerB.done_u13 - $4b55 = TitleVBlankHandlerB.notselected_u14 - $4b5a = TitleVBlankHandlerB.selected_u14 - $4b5d = TitleVBlankHandlerB.done_u14 - $4b67 = TitleVBlankHandlerB.notselected_u15 - $4b6c = TitleVBlankHandlerB.selected_u15 - $4b6f = TitleVBlankHandlerB.done_u15 - $4b79 = TitleVBlankHandlerB.notselected_u16 - $4b7e = TitleVBlankHandlerB.selected_u16 - $4b81 = TitleVBlankHandlerB.done_u16 - $4b8b = TitleVBlankHandlerB.notselected_u17 - $4b90 = TitleVBlankHandlerB.selected_u17 - $4b93 = TitleVBlankHandlerB.done_u17 - $4b9d = TitleVBlankHandlerB.notselected_u18 - $4ba2 = TitleVBlankHandlerB.selected_u18 - $4ba5 = TitleVBlankHandlerB.done_u18 - $4c2f = TitleVBlankHandlerB.disabled1 - $4c3b = TitleVBlankHandlerB.buttons - $4c60 = !2 - $4c68 = TitleVBlankHandlerB.donetetry - $4c8e = TitleVBlankHandlerB.vblankRecords - $4c8f = TitleVBlankHandlerB.vblankCredits - $4c90 = MainHandleA - $4c9e = MainHandleA.jumps - $4cb0 = MainHandleA.tosettings - $4cb5 = MainHandleUp - $4cc1 = !3 - $4cc7 = MainHandleDown - $4cd3 = !4 - $4cd8 = SettingsHandleA - $4ce5 = SettingsHandleB - $4cea = SettingsHandleDown - $4cf6 = !5 - $4cfb = SettingsHandleUp - $4d07 = !6 - $4d0d = SettingsHandleLeft - $4d1e = SettingsHandleLeft.jumps - $4d36 = SettingsHandleLeft.buttons - $4d45 = !7 - $4d4e = SettingsHandleLeft.rng - $4d5d = !8 - $4d66 = SettingsHandleLeft.rot - $4d75 = !9 - $4d7e = SettingsHandleLeft.drop - $4d8d = !10 - $4d96 = SettingsHandleLeft.curve - $4da8 = !11 - $4db4 = SettingsHandleLeft.hig - $4dc3 = !12 - $4dcc = SettingsHandleRight - $4ddd = SettingsHandleRight.jumps - $4df5 = SettingsHandleRight.buttons - $4e04 = !13 - $4e0c = SettingsHandleRight.rng - $4e1b = !14 - $4e23 = SettingsHandleRight.rot - $4e32 = !15 - $4e3a = SettingsHandleRight.drop - $4e49 = !16 - $4e51 = SettingsHandleRight.curve - $4e63 = !17 - $4e6e = SettingsHandleRight.hig - $4e7d = !18 - $4e85 = DecrementLevel - $4e9b = IncrementLevel - $4eb1 = InitSpeedCurve - $4ec0 = GetEnd - $4ecb = !19 - $4ed3 = !20 - $4edb = !21 - $4ee3 = !22 - $4eeb = !23 - $4ef3 = !24 - $4ef7 = GetStart - $4f02 = !25 - $4f0a = !26 - $4f12 = !27 - $4f1a = !28 - $4f22 = !29 - $4f2a = !30 - $4f2e = CheckLevelRange - $4f47 = CheckLevelRange.notatend - $4f67 = CheckLevelRange.notatstart - EMPTY: $4f68-$7fff ($3098 bytes) - TOTAL EMPTY: $3098 bytes + $4a90 = sTitleScreenCreditsMapEnd + SECTION: $4a90-$5232 ($07a3 bytes) ["Title Functions Banked"] + $4a90 = SwitchToTitleB + $4a96 = SwitchToTitleB.wvr_u1 + $4a9f = !0 + $4ac2 = SwitchToTitleB.wvb_u2 + $4ac9 = SwitchToTitleB.wvbe_u3 + $4acf = SwitchTitleMode + $4ae0 = SwitchTitleMode.wvr_u4 + $4ae9 = !1 + $4af4 = SwitchTitleMode.jumps + $4b03 = SwitchTitleMode.switchMain + $4b30 = SwitchTitleMode.notsgb + $4b51 = SwitchTitleMode.notmgb + $4b79 = SwitchTitleMode.agb + $4b93 = SwitchTitleMode.done + $4b9b = SwitchTitleMode.switchProfile + $4ba3 = SwitchTitleMode.switchSettings + $4bb7 = SwitchTitleMode.switchRecords + $4bbf = SwitchTitleMode.switchCredits + $4bd3 = TitleEventLoopHandlerB + $4be1 = TitleEventLoopHandlerB.jumps + $4bf0 = TitleEventLoopHandlerB.eventLoopMain + $4c13 = TitleEventLoopHandlerB.d0 + $4c27 = TitleEventLoopHandlerB.eventLoopProfile + $4c28 = TitleEventLoopHandlerB.eventLoopSettings + $4c52 = TitleEventLoopHandlerB.d1 + $4c67 = TitleEventLoopHandlerB.l1 + $4c7c = TitleEventLoopHandlerB.r1 + $4c90 = TitleEventLoopHandlerB.eventLoopRecords + $4c91 = TitleEventLoopHandlerB.eventLoopCredits + $4ca7 = TitleEventLoopHandlerB.quitcredits + $4cac = TitleVBlankHandlerB + $4cba = TitleVBlankHandlerB.jumps + $4cc9 = TitleVBlankHandlerB.vblankMain + $4cd3 = TitleVBlankHandlerB.notselected_u5 + $4cd8 = TitleVBlankHandlerB.selected_u5 + $4cdb = TitleVBlankHandlerB.done_u5 + $4ce5 = TitleVBlankHandlerB.notselected_u6 + $4cea = TitleVBlankHandlerB.selected_u6 + $4ced = TitleVBlankHandlerB.done_u6 + $4cf7 = TitleVBlankHandlerB.notselected_u7 + $4cfc = TitleVBlankHandlerB.selected_u7 + $4cff = TitleVBlankHandlerB.done_u7 + $4d09 = TitleVBlankHandlerB.notselected_u8 + $4d0e = TitleVBlankHandlerB.selected_u8 + $4d11 = TitleVBlankHandlerB.done_u8 + $4d1b = TitleVBlankHandlerB.notselected_u9 + $4d20 = TitleVBlankHandlerB.selected_u9 + $4d23 = TitleVBlankHandlerB.done_u9 + $4d2d = TitleVBlankHandlerB.notselected_u10 + $4d32 = TitleVBlankHandlerB.selected_u10 + $4d35 = TitleVBlankHandlerB.done_u10 + $4dbf = TitleVBlankHandlerB.disabled + $4dcb = TitleVBlankHandlerB.profile + $4dda = TitleVBlankHandlerB.vblankProfile + $4ddb = TitleVBlankHandlerB.vblankSettings + $4de5 = TitleVBlankHandlerB.notselected_u11 + $4dea = TitleVBlankHandlerB.selected_u11 + $4ded = TitleVBlankHandlerB.done_u11 + $4df7 = TitleVBlankHandlerB.notselected_u12 + $4dfc = TitleVBlankHandlerB.selected_u12 + $4dff = TitleVBlankHandlerB.done_u12 + $4e09 = TitleVBlankHandlerB.notselected_u13 + $4e0e = TitleVBlankHandlerB.selected_u13 + $4e11 = TitleVBlankHandlerB.done_u13 + $4e1b = TitleVBlankHandlerB.notselected_u14 + $4e20 = TitleVBlankHandlerB.selected_u14 + $4e23 = TitleVBlankHandlerB.done_u14 + $4e2d = TitleVBlankHandlerB.notselected_u15 + $4e32 = TitleVBlankHandlerB.selected_u15 + $4e35 = TitleVBlankHandlerB.done_u15 + $4e3f = TitleVBlankHandlerB.notselected_u16 + $4e44 = TitleVBlankHandlerB.selected_u16 + $4e47 = TitleVBlankHandlerB.done_u16 + $4e51 = TitleVBlankHandlerB.notselected_u17 + $4e56 = TitleVBlankHandlerB.selected_u17 + $4e59 = TitleVBlankHandlerB.done_u17 + $4e63 = TitleVBlankHandlerB.notselected_u18 + $4e68 = TitleVBlankHandlerB.selected_u18 + $4e6b = TitleVBlankHandlerB.done_u18 + $4ef5 = TitleVBlankHandlerB.disabled1 + $4f01 = TitleVBlankHandlerB.buttons + $4f26 = !2 + $4f2e = TitleVBlankHandlerB.donetetry + $4f54 = TitleVBlankHandlerB.vblankRecords + $4f55 = TitleVBlankHandlerB.vblankCredits + $4f56 = MainHandleA + $4f64 = MainHandleA.jumps + $4f76 = MainHandleA.tosettings + $4f7b = MainHandleA.tocredits + $4f80 = MainHandleUp + $4f8c = !3 + $4f92 = MainHandleDown + $4f9e = !4 + $4fa3 = SettingsHandleA + $4fb0 = SettingsHandleB + $4fb5 = SettingsHandleDown + $4fc1 = !5 + $4fc6 = SettingsHandleUp + $4fd2 = !6 + $4fd8 = SettingsHandleLeft + $4fe9 = SettingsHandleLeft.jumps + $5001 = SettingsHandleLeft.buttons + $5010 = !7 + $5019 = SettingsHandleLeft.rng + $5028 = !8 + $5031 = SettingsHandleLeft.rot + $5040 = !9 + $5049 = SettingsHandleLeft.drop + $5058 = !10 + $5061 = SettingsHandleLeft.curve + $5073 = !11 + $507f = SettingsHandleLeft.hig + $508e = !12 + $5097 = SettingsHandleRight + $50a8 = SettingsHandleRight.jumps + $50c0 = SettingsHandleRight.buttons + $50cf = !13 + $50d7 = SettingsHandleRight.rng + $50e6 = !14 + $50ee = SettingsHandleRight.rot + $50fd = !15 + $5105 = SettingsHandleRight.drop + $5114 = !16 + $511c = SettingsHandleRight.curve + $512e = !17 + $5139 = SettingsHandleRight.hig + $5148 = !18 + $5150 = DecrementLevel + $5166 = IncrementLevel + $517c = InitSpeedCurve + $518b = GetEnd + $5196 = !19 + $519e = !20 + $51a6 = !21 + $51ae = !22 + $51b6 = !23 + $51be = !24 + $51c2 = GetStart + $51cd = !25 + $51d5 = !26 + $51dd = !27 + $51e5 = !28 + $51ed = !29 + $51f5 = !30 + $51f9 = CheckLevelRange + $5212 = CheckLevelRange.notatend + $5232 = CheckLevelRange.notatstart + EMPTY: $5233-$7fff ($2dcd bytes) + TOTAL EMPTY: $2dcd bytes ROMX bank #5: SECTION: $4000-$4007 ($0008 bytes) ["Bank ID BANK_GAMEPLAY"] @@ -2721,8 +2727,8 @@ HRAM bank #0: TOTAL EMPTY: $0003 bytes SUMMARY: - ROM0: 13524 bytes used / 2860 free - ROMX: 62040 bytes used / 36264 free in 6 banks + ROM0: 13557 bytes used / 2827 free + ROMX: 62755 bytes used / 35549 free in 6 banks SRAM: 263 bytes used / 7929 free in 1 bank WRAM0: 3545 bytes used / 551 free HRAM: 124 bytes used / 3 free diff --git a/bin/DMGTRIS.pocket b/bin/DMGTRIS.pocket index 3fe6327d9c727272d7cab8e0a782cefcc143bc72..6c1f7a43db72a36b61c7ea9ef27521809950e39c 100644 GIT binary patch delta 5147 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 C&hwf8 delta 4742 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 diff --git a/bin/DMGTRIS.sym b/bin/DMGTRIS.sym index 4da334f..e56efb5 100644 --- a/bin/DMGTRIS.sym +++ b/bin/DMGTRIS.sym @@ -41,353 +41,355 @@ 00:09ba GBCTitleProcess.noinc1 00:09de GBCTitleProcess.eventLoopRecords 00:09df GBCTitleProcess.eventLoopCredits -00:09e0 GBCGameplayProcess -00:0a1e GBCGameplayProcess.goverride -00:0a45 GBCGameplayProcess.colorfield -00:0bb9 GBCGameplayProcess.outer1 -00:0bbe GBCGameplayProcess.inner1 -00:0be2 GBCGameplayProcess.outer2 -00:0be7 GBCGameplayProcess.inner2 -00:0c0c GBCGameplayProcess.empty -00:0c10 GBCGameplayProcess.sub59 -00:0c12 GBCGameplayProcess.sub52 -00:0c14 GBCGameplayProcess.sub45 -00:0c16 GBCGameplayProcess.sub38 -00:0c18 GBCGameplayProcess.sub31 -00:0c1a GBCGameplayProcess.sub24 -00:0c1c GBCGameplayProcess.sub17 -00:0c1e GBCGameplayProcess.sub10 -00:0c20 GBCGameplayProcess.done -00:0c42 GBCGameplayProcess.darker -00:0c49 GBCGameplayProcess.wvr_u1 -00:0c56 GBCGameplayProcess.lighter -00:0c5d GBCGameplayProcess.wvr_u2 -00:0c6a GBCGameplayProcess.black -00:0c71 GBCGameplayProcess.wvr_u3 -00:0c7e GBCBigGameplayProcess -00:0cbc GBCBigGameplayProcess.goverride -00:0ce3 GBCBigGameplayProcess.colorfield -00:0e57 GBCBigGameplayProcess.outer1 -00:0e5c GBCBigGameplayProcess.inner1 -00:0e80 GBCBigGameplayProcess.outer2 -00:0e85 GBCBigGameplayProcess.inner2 -00:0eaa GBCBigGameplayProcess.empty -00:0eae GBCBigGameplayProcess.sub59 -00:0eb0 GBCBigGameplayProcess.sub52 -00:0eb2 GBCBigGameplayProcess.sub45 -00:0eb4 GBCBigGameplayProcess.sub38 -00:0eb6 GBCBigGameplayProcess.sub31 -00:0eb8 GBCBigGameplayProcess.sub24 -00:0eba GBCBigGameplayProcess.sub17 -00:0ebc GBCBigGameplayProcess.sub10 -00:0ebe GBCBigGameplayProcess.done -00:0ee0 GBCBigGameplayProcess.darker -00:0ee7 GBCBigGameplayProcess.wvr_u4 -00:0ef4 GBCBigGameplayProcess.lighter -00:0efb GBCBigGameplayProcess.wvr_u5 -00:0f08 GBCBigGameplayProcess.black -00:0f0f GBCBigGameplayProcess.wvr_u6 -00:0f1c ToVRAM -00:0f1c GBCBlitField -00:0f4f BlitField -00:1112 BlitField.waitendvbloop -00:1344 BigBlitField -00:1507 BigBlitField.waitendvbloop -00:1739 ApplyTells -00:1777 ApplyTells.myco -00:177c ApplyTells.dropmode -00:17a1 ApplyNext -00:17a9 ApplyNext.bone -00:17c8 ApplyNext.nobone -00:17e9 ApplyNext.pos -00:17f9 ApplyNext.regular -00:17ff ApplyNext.postoffsets -00:1803 ApplyNext.getoffn -00:180e ApplyNext.skipoffn -00:18ac ApplyNext.done -00:18af ApplyHold -00:18b7 ApplyHold.bone -00:18d6 ApplyHold.nobone -00:18f3 ApplyHold.hide -00:1905 ApplyHold.show -00:1915 ApplyHold.x -00:1925 ApplyHold.regular -00:192b ApplyHold.postoffsets -00:192f ApplyHold.getoffh -00:193a ApplyHold.skipoffh -00:1974 ApplyTime -00:19c5 ApplyTime.loop0 -00:19f4 ApplyTime.loop1 -00:1a49 ApplyNumbers8 -00:1a96 ApplyNumbers8.one -00:1a9c ApplyNumbers8.two -00:1aa2 ApplyNumbers8.three -00:1aa8 ApplyNumbers8.four -00:1aae ApplyNumbers8.five -00:1ab4 ApplyNumbers8.six -00:1aba ApplyNumbers8.seven -00:1ac0 ApplyNumbers8.eight -00:1ac5 ApplyNumbers4 -00:1aea ApplyNumbers4.one -00:1af0 ApplyNumbers4.two -00:1af6 ApplyNumbers4.three -00:1afc ApplyNumbers4.four -00:1b01 SetNumberSpritePositions -00:1c08 GradeRendering -00:1c3d GradeRendering.effect -00:1c4d GradeRendering.noeffect -00:1c55 GradeRendering.drawgrade -00:1c5c GradeRendering.regulargrade -00:1c64 GradeRendering.sgrade -00:1c7a GradeRendering.hisgrade -00:1c90 GradeRendering.mgrade -00:1ca6 GradeRendering.lettergrade -00:1cc3 GradeRendering.mk -00:1cc9 GradeRendering.mv -00:1ccf GradeRendering.mo -00:1cd5 GradeRendering.mm -00:1cdb GradeRendering.gmgrade -00:1ce6 GradeInit -00:1d11 GradeInit.grade9start -00:1d16 GradeInit.end -00:1d18 UpdateGrade -00:1d26 UpdateGrade.gradejumptable -00:1d3b DecayGradeProcess -00:1d49 DecayGradeProcess.gradejumptable -00:1d5e DecayGradeDelay -00:1d6c DecayGradeDelay.gradejumptable -00:1d81 PrepareScore -00:1d94 DrawGradeProgressDMGT -00:1daf UpdateGradeDMGT -00:1de8 UpdateGradeDMGT.checklineclears -00:1e02 UpdateGradeDMGT.clearrate -00:1e13 UpdateGradeDMGT.combomult -00:1e20 UpdateGradeDMGT.combo10 -00:1e31 UpdateGradeDMGT.combo5 -00:1e42 UpdateGradeDMGT.combo1 -00:1e51 UpdateGradeDMGT.prelevel -00:1e60 UpdateGradeDMGT.single -00:1e70 UpdateGradeDMGT.double -00:1e81 UpdateGradeDMGT.adddonce -00:1e85 UpdateGradeDMGT.triple -00:1e96 UpdateGradeDMGT.addtonce -00:1e9a UpdateGradeDMGT.tetris -00:1e9e UpdateGradeDMGT.levelmult -00:1eb6 UpdateGradeDMGT.mult5 -00:1ebd UpdateGradeDMGT.mult4 -00:1ec3 UpdateGradeDMGT.mult3 -00:1ec8 UpdateGradeDMGT.mult2 -00:1ecc UpdateGradeDMGT.mult1 -00:1ecd UpdateGradeDMGT.processgrade -00:1ef6 UpdateGradeDMGT.increasegrademaybe -00:1f1a UpdateGradeDMGT.gotgm -00:1f28 DecayGradeDMGT -00:1f4c DecayGradeDMGT.nodecay -00:1f53 DecayGradeDMGT.decay -00:1f61 UpdateGradeTGM1 -00:1f6b UpdateGradeTGM1.trygradeup -00:1f85 UpdateGradeTGM1.increasegrade -00:1f9a UpdateGradeTGM1.skipjingle -00:1fa7 UpdateGradeTGM1.maybegm -00:1fc0 UpdateGradeDEAT -00:1fcc UpdateGradeDEAT.notgm -00:1fe8 UpdateGradeDEAT.notm -00:200b UpdateGradeDEAT.disqualify -00:2029 UpdateGradeSHIR -00:206c UpdateGradeSHIR.s5torikan -00:207c UpdateGradeSHIR.s10torikan -00:208b UpdateGradeSHIR.disqualify -00:209a UpdateGradeSHIR.l1000 -00:20b0 UpdateGradeSHIR.l500 -00:20c6 LevelInit -00:212b SpecialLevelInit -00:2139 SpecialLevelInit.jumps -00:214e SpecialLevelInit.dmgt -00:2153 SpecialLevelInit.tgm1 -00:2158 SpecialLevelInit.tgm3 -00:215d SpecialLevelInit.deat -00:2162 SpecialLevelInit.shir -00:2167 SpecialLevelInit.chil -00:216c SpecialLevelInit.myco -00:2171 SpecialLevelInit.loaddata -00:21a6 LevelUp -00:21d0 LevelUp.doit -00:221a LevelUp.checknlevel -00:2269 LevelUp.bellmaybe -00:2282 LevelUp.leveljinglemaybe -00:228f LevelUp.checkspeedup -00:22ce DoSpeedUp -00:230f CheckSpecialLevelConditions -00:2340 CheckSpecialLevelConditions.override -00:235b CheckSpecialLevelConditions.nooverride -00:2361 CheckSpecialLevelConditions.speciallock -00:2382 CheckSpecialLevelConditions.bones -00:2397 CheckSpecialLevelConditions.enterthebonezone -00:239c CheckSpecialLevelConditions.invis -00:23b1 CheckSpecialLevelConditions.vanishoxyaction -00:23b6 CheckSpecialLevelConditions.killscreen -00:23c7 CheckSpecialLevelConditions.rip -00:23f7 CheckSpecialLevelConditions.staffroll -00:2405 CheckSpecialLevelConditions.justkill -00:2419 TriggerKillScreen -00:243b sTGM1GradeScores -00:245d sTGM3InternalGradeSystem -00:24fd sTGM3GradeBoosts -00:251c sTGM3LevelMultiplier -00:2520 sTGM3BaselineCOOL -00:2529 sTGM3REGRETConditions -00:253d sDMGTGrading -00:25f1 sDMGTGaugeLUT -00:26f1 SFXInit -00:2713 SFXPopQueue -00:2728 SFXPushQueue -00:2739 SFXProcessQueue -00:2767 SFXTriggerNoise -00:278d SFXEnqueue -00:27a2 SFXEnqueue.findsfx -00:28fc SFXKill -00:2929 SFXPlayNoise -00:2934 SFXPlayNoise.noisereg -00:294b SFXPlayNoise.savenoiseplayhead -00:2954 SFXPlay -00:2962 SFXPlay.play -00:296e SFXPlay.getRegister -00:2982 SFXPlay.savePlayhead -00:298b HarvestEntropy -00:2991 HarvestEntropy.loop -00:29b2 RNGInit -00:2a18 RNGInit.complexinit -00:2a4a ShiftHistory -00:2a67 GetNextHellPiece -00:2a6c GetNextTGM1Piece -00:2a89 GetNextTGM2Piece -00:2aa6 GetNextNesPiece -00:2ab4 GetNextTGM3Piece -00:2b6b GetNextPiece -00:2b79 GetNextPiece.nextpiecejumps -00:2b88 Next35Piece -00:2b92 Next7Piece -00:2b9c NextByte -00:2bbc RestoreSRAM -00:2c3e RestoreSRAM.jumps -00:2c56 RestoreSRAM.dmgt -00:2c5c RestoreSRAM.tgm1 -00:2c62 RestoreSRAM.tgm3 -00:2c68 RestoreSRAM.deat -00:2c6e RestoreSRAM.shir -00:2c74 RestoreSRAM.chil -00:2c7a RestoreSRAM.myco -00:2c80 RestoreSRAM.search -00:2c92 RestoreSRAM.notfound -00:2c99 RestoreSRAM.fallback -00:2cb4 InitializeSRAM -00:2d5d ChangeProfile -00:2d5d ChangeProfile.backup -00:2d70 ChangeProfile.first -00:2d7e ChangeProfile.second -00:2d8c ChangeProfile.third -00:2d9a ChangeProfile.restore -00:2dad ChangeProfile.lfirst -00:2db9 ChangeProfile.lsecond -00:2dc5 ChangeProfile.lthird -00:2dd1 sProgressData -00:2f1b ScoreInit -00:2f43 IncreaseScore -00:2f7b IncreaseScore.doConvert -00:2f93 IncreaseScore.carry -00:2f95 IncreaseScore.postConvert -00:2fa9 IncreaseScore.preAddDigit -00:2fd1 IncreaseScore.addDigit -00:2fe7 IncreaseScore.nextDigit -00:2ffb InputInit -00:300d GetInput -00:300d GetInput.btns -00:301a GetInput.readA -00:301e GetInput.setA -00:3029 GetInput.clearA -00:302c GetInput.readB -00:3030 GetInput.setB -00:303b GetInput.clearB -00:303e GetInput.readSelect -00:3042 GetInput.setSelect -00:304d GetInput.clearSelect -00:3050 GetInput.readStart -00:3054 GetInput.setStart -00:305f GetInput.clearStart -00:3062 GetInput.dpad -00:306f GetInput.readUp -00:3073 GetInput.setUp -00:307e GetInput.clearUp -00:3081 GetInput.readDown -00:3085 GetInput.setDown -00:3090 GetInput.clearDown -00:3093 GetInput.readLeft -00:3097 GetInput.setLeft -00:30a2 GetInput.clearLeft -00:30a5 GetInput.readRight -00:30a9 GetInput.setRight -00:30b4 GetInput.clearRight -00:30b7 GetInput.priorities -00:30c2 GetInput.zero -00:30c8 SwitchToTitle -00:30d1 TitleEventLoopHandler -00:30db TitleVBlankHandler -00:30e5 PersistLevel -00:30f3 DrawSpeedMain -00:3143 DrawSpeedSettings -00:3193 TimeInit -00:31b3 StartCountdown -00:31c1 ResetGameTime -00:31cc CheckTorikan -00:31e3 CheckTorikan.failure -00:31e5 CheckTorikan.success -00:31e8 HandleTimers -00:320e HandleTimers.reduce -00:321b HandleTimers.clock -00:3235 HandleTimers.go -00:3259 SetProgress -00:3264 SetProgress.loop -00:3268 SetProgress.correct -00:328f SetProgress.wvr_u1 -00:329b SetProgress.wvr_u2 -00:32a9 SetProgress.wvr_u3 -00:32b5 SetProgress.wvr_u4 -00:32c3 SetProgress.wvr_u5 -00:32cf SetProgress.wvr_u6 -00:32dd SetProgress.wvr_u7 -00:32e9 SetProgress.wvr_u8 -00:32f7 SetProgress.wvr_u9 -00:3303 SetProgress.wvr_u10 -00:330b Main -00:3334 Main.notgbc -00:333a Main.wvr_u1 -00:3361 EventLoop -00:3377 EventLoop.eventloopjumps -00:3380 EventLoopPostHandler -00:3382 EventLoopPostHandler.wvb_u2 -00:3394 EventLoopPostHandler.vblankjumps -00:339d LoadTitleTiles -00:33bb LoadGameplayTiles -00:33d1 LoadGameplayTiles.gbc -00:33e0 LoadGameplayTiles.dmg -00:33ef sFramesToCS -00:342b UnsafeMemCopy -00:3434 SafeMemCopy.wvr_u1 -00:3434 SafeMemCopy -00:3443 UnsafeMemSet -00:344b SafeMemSet -00:344b SafeMemSet.wvr_u2 -00:3459 SwitchToGameplay -00:3462 SwitchToGameplayBig -00:346b GamePlayEventLoopHandler -00:3475 GamePlayBigEventLoopHandler -00:347f EnableScreenSquish -00:3499 DisableScreenSquish -00:34a4 CopyOAMHandler -00:34b0 ClearOAM -00:34c6 BankingInit -00:34d5 OAMDMA -00:34df OAMDMAEnd +00:09f1 GBCTitleProcess.nores2 +00:09f4 GBCTitleProcess.noinc2 +00:0a01 GBCGameplayProcess +00:0a3f GBCGameplayProcess.goverride +00:0a66 GBCGameplayProcess.colorfield +00:0bda GBCGameplayProcess.outer1 +00:0bdf GBCGameplayProcess.inner1 +00:0c03 GBCGameplayProcess.outer2 +00:0c08 GBCGameplayProcess.inner2 +00:0c2d GBCGameplayProcess.empty +00:0c31 GBCGameplayProcess.sub59 +00:0c33 GBCGameplayProcess.sub52 +00:0c35 GBCGameplayProcess.sub45 +00:0c37 GBCGameplayProcess.sub38 +00:0c39 GBCGameplayProcess.sub31 +00:0c3b GBCGameplayProcess.sub24 +00:0c3d GBCGameplayProcess.sub17 +00:0c3f GBCGameplayProcess.sub10 +00:0c41 GBCGameplayProcess.done +00:0c63 GBCGameplayProcess.darker +00:0c6a GBCGameplayProcess.wvr_u1 +00:0c77 GBCGameplayProcess.lighter +00:0c7e GBCGameplayProcess.wvr_u2 +00:0c8b GBCGameplayProcess.black +00:0c92 GBCGameplayProcess.wvr_u3 +00:0c9f GBCBigGameplayProcess +00:0cdd GBCBigGameplayProcess.goverride +00:0d04 GBCBigGameplayProcess.colorfield +00:0e78 GBCBigGameplayProcess.outer1 +00:0e7d GBCBigGameplayProcess.inner1 +00:0ea1 GBCBigGameplayProcess.outer2 +00:0ea6 GBCBigGameplayProcess.inner2 +00:0ecb GBCBigGameplayProcess.empty +00:0ecf GBCBigGameplayProcess.sub59 +00:0ed1 GBCBigGameplayProcess.sub52 +00:0ed3 GBCBigGameplayProcess.sub45 +00:0ed5 GBCBigGameplayProcess.sub38 +00:0ed7 GBCBigGameplayProcess.sub31 +00:0ed9 GBCBigGameplayProcess.sub24 +00:0edb GBCBigGameplayProcess.sub17 +00:0edd GBCBigGameplayProcess.sub10 +00:0edf GBCBigGameplayProcess.done +00:0f01 GBCBigGameplayProcess.darker +00:0f08 GBCBigGameplayProcess.wvr_u4 +00:0f15 GBCBigGameplayProcess.lighter +00:0f1c GBCBigGameplayProcess.wvr_u5 +00:0f29 GBCBigGameplayProcess.black +00:0f30 GBCBigGameplayProcess.wvr_u6 +00:0f3d ToVRAM +00:0f3d GBCBlitField +00:0f70 BlitField +00:1133 BlitField.waitendvbloop +00:1365 BigBlitField +00:1528 BigBlitField.waitendvbloop +00:175a ApplyTells +00:1798 ApplyTells.myco +00:179d ApplyTells.dropmode +00:17c2 ApplyNext +00:17ca ApplyNext.bone +00:17e9 ApplyNext.nobone +00:180a ApplyNext.pos +00:181a ApplyNext.regular +00:1820 ApplyNext.postoffsets +00:1824 ApplyNext.getoffn +00:182f ApplyNext.skipoffn +00:18cd ApplyNext.done +00:18d0 ApplyHold +00:18d8 ApplyHold.bone +00:18f7 ApplyHold.nobone +00:1914 ApplyHold.hide +00:1926 ApplyHold.show +00:1936 ApplyHold.x +00:1946 ApplyHold.regular +00:194c ApplyHold.postoffsets +00:1950 ApplyHold.getoffh +00:195b ApplyHold.skipoffh +00:1995 ApplyTime +00:19e6 ApplyTime.loop0 +00:1a15 ApplyTime.loop1 +00:1a6a ApplyNumbers8 +00:1ab7 ApplyNumbers8.one +00:1abd ApplyNumbers8.two +00:1ac3 ApplyNumbers8.three +00:1ac9 ApplyNumbers8.four +00:1acf ApplyNumbers8.five +00:1ad5 ApplyNumbers8.six +00:1adb ApplyNumbers8.seven +00:1ae1 ApplyNumbers8.eight +00:1ae6 ApplyNumbers4 +00:1b0b ApplyNumbers4.one +00:1b11 ApplyNumbers4.two +00:1b17 ApplyNumbers4.three +00:1b1d ApplyNumbers4.four +00:1b22 SetNumberSpritePositions +00:1c29 GradeRendering +00:1c5e GradeRendering.effect +00:1c6e GradeRendering.noeffect +00:1c76 GradeRendering.drawgrade +00:1c7d GradeRendering.regulargrade +00:1c85 GradeRendering.sgrade +00:1c9b GradeRendering.hisgrade +00:1cb1 GradeRendering.mgrade +00:1cc7 GradeRendering.lettergrade +00:1ce4 GradeRendering.mk +00:1cea GradeRendering.mv +00:1cf0 GradeRendering.mo +00:1cf6 GradeRendering.mm +00:1cfc GradeRendering.gmgrade +00:1d07 GradeInit +00:1d32 GradeInit.grade9start +00:1d37 GradeInit.end +00:1d39 UpdateGrade +00:1d47 UpdateGrade.gradejumptable +00:1d5c DecayGradeProcess +00:1d6a DecayGradeProcess.gradejumptable +00:1d7f DecayGradeDelay +00:1d8d DecayGradeDelay.gradejumptable +00:1da2 PrepareScore +00:1db5 DrawGradeProgressDMGT +00:1dd0 UpdateGradeDMGT +00:1e09 UpdateGradeDMGT.checklineclears +00:1e23 UpdateGradeDMGT.clearrate +00:1e34 UpdateGradeDMGT.combomult +00:1e41 UpdateGradeDMGT.combo10 +00:1e52 UpdateGradeDMGT.combo5 +00:1e63 UpdateGradeDMGT.combo1 +00:1e72 UpdateGradeDMGT.prelevel +00:1e81 UpdateGradeDMGT.single +00:1e91 UpdateGradeDMGT.double +00:1ea2 UpdateGradeDMGT.adddonce +00:1ea6 UpdateGradeDMGT.triple +00:1eb7 UpdateGradeDMGT.addtonce +00:1ebb UpdateGradeDMGT.tetris +00:1ebf UpdateGradeDMGT.levelmult +00:1ed7 UpdateGradeDMGT.mult5 +00:1ede UpdateGradeDMGT.mult4 +00:1ee4 UpdateGradeDMGT.mult3 +00:1ee9 UpdateGradeDMGT.mult2 +00:1eed UpdateGradeDMGT.mult1 +00:1eee UpdateGradeDMGT.processgrade +00:1f17 UpdateGradeDMGT.increasegrademaybe +00:1f3b UpdateGradeDMGT.gotgm +00:1f49 DecayGradeDMGT +00:1f6d DecayGradeDMGT.nodecay +00:1f74 DecayGradeDMGT.decay +00:1f82 UpdateGradeTGM1 +00:1f8c UpdateGradeTGM1.trygradeup +00:1fa6 UpdateGradeTGM1.increasegrade +00:1fbb UpdateGradeTGM1.skipjingle +00:1fc8 UpdateGradeTGM1.maybegm +00:1fe1 UpdateGradeDEAT +00:1fed UpdateGradeDEAT.notgm +00:2009 UpdateGradeDEAT.notm +00:202c UpdateGradeDEAT.disqualify +00:204a UpdateGradeSHIR +00:208d UpdateGradeSHIR.s5torikan +00:209d UpdateGradeSHIR.s10torikan +00:20ac UpdateGradeSHIR.disqualify +00:20bb UpdateGradeSHIR.l1000 +00:20d1 UpdateGradeSHIR.l500 +00:20e7 LevelInit +00:214c SpecialLevelInit +00:215a SpecialLevelInit.jumps +00:216f SpecialLevelInit.dmgt +00:2174 SpecialLevelInit.tgm1 +00:2179 SpecialLevelInit.tgm3 +00:217e SpecialLevelInit.deat +00:2183 SpecialLevelInit.shir +00:2188 SpecialLevelInit.chil +00:218d SpecialLevelInit.myco +00:2192 SpecialLevelInit.loaddata +00:21c7 LevelUp +00:21f1 LevelUp.doit +00:223b LevelUp.checknlevel +00:228a LevelUp.bellmaybe +00:22a3 LevelUp.leveljinglemaybe +00:22b0 LevelUp.checkspeedup +00:22ef DoSpeedUp +00:2330 CheckSpecialLevelConditions +00:2361 CheckSpecialLevelConditions.override +00:237c CheckSpecialLevelConditions.nooverride +00:2382 CheckSpecialLevelConditions.speciallock +00:23a3 CheckSpecialLevelConditions.bones +00:23b8 CheckSpecialLevelConditions.enterthebonezone +00:23bd CheckSpecialLevelConditions.invis +00:23d2 CheckSpecialLevelConditions.vanishoxyaction +00:23d7 CheckSpecialLevelConditions.killscreen +00:23e8 CheckSpecialLevelConditions.rip +00:2418 CheckSpecialLevelConditions.staffroll +00:2426 CheckSpecialLevelConditions.justkill +00:243a TriggerKillScreen +00:245c sTGM1GradeScores +00:247e sTGM3InternalGradeSystem +00:251e sTGM3GradeBoosts +00:253d sTGM3LevelMultiplier +00:2541 sTGM3BaselineCOOL +00:254a sTGM3REGRETConditions +00:255e sDMGTGrading +00:2612 sDMGTGaugeLUT +00:2712 SFXInit +00:2734 SFXPopQueue +00:2749 SFXPushQueue +00:275a SFXProcessQueue +00:2788 SFXTriggerNoise +00:27ae SFXEnqueue +00:27c3 SFXEnqueue.findsfx +00:291d SFXKill +00:294a SFXPlayNoise +00:2955 SFXPlayNoise.noisereg +00:296c SFXPlayNoise.savenoiseplayhead +00:2975 SFXPlay +00:2983 SFXPlay.play +00:298f SFXPlay.getRegister +00:29a3 SFXPlay.savePlayhead +00:29ac HarvestEntropy +00:29b2 HarvestEntropy.loop +00:29d3 RNGInit +00:2a39 RNGInit.complexinit +00:2a6b ShiftHistory +00:2a88 GetNextHellPiece +00:2a8d GetNextTGM1Piece +00:2aaa GetNextTGM2Piece +00:2ac7 GetNextNesPiece +00:2ad5 GetNextTGM3Piece +00:2b8c GetNextPiece +00:2b9a GetNextPiece.nextpiecejumps +00:2ba9 Next35Piece +00:2bb3 Next7Piece +00:2bbd NextByte +00:2bdd RestoreSRAM +00:2c5f RestoreSRAM.jumps +00:2c77 RestoreSRAM.dmgt +00:2c7d RestoreSRAM.tgm1 +00:2c83 RestoreSRAM.tgm3 +00:2c89 RestoreSRAM.deat +00:2c8f RestoreSRAM.shir +00:2c95 RestoreSRAM.chil +00:2c9b RestoreSRAM.myco +00:2ca1 RestoreSRAM.search +00:2cb3 RestoreSRAM.notfound +00:2cba RestoreSRAM.fallback +00:2cd5 InitializeSRAM +00:2d7e ChangeProfile +00:2d7e ChangeProfile.backup +00:2d91 ChangeProfile.first +00:2d9f ChangeProfile.second +00:2dad ChangeProfile.third +00:2dbb ChangeProfile.restore +00:2dce ChangeProfile.lfirst +00:2dda ChangeProfile.lsecond +00:2de6 ChangeProfile.lthird +00:2df2 sProgressData +00:2f3c ScoreInit +00:2f64 IncreaseScore +00:2f9c IncreaseScore.doConvert +00:2fb4 IncreaseScore.carry +00:2fb6 IncreaseScore.postConvert +00:2fca IncreaseScore.preAddDigit +00:2ff2 IncreaseScore.addDigit +00:3008 IncreaseScore.nextDigit +00:301c InputInit +00:302e GetInput +00:302e GetInput.btns +00:303b GetInput.readA +00:303f GetInput.setA +00:304a GetInput.clearA +00:304d GetInput.readB +00:3051 GetInput.setB +00:305c GetInput.clearB +00:305f GetInput.readSelect +00:3063 GetInput.setSelect +00:306e GetInput.clearSelect +00:3071 GetInput.readStart +00:3075 GetInput.setStart +00:3080 GetInput.clearStart +00:3083 GetInput.dpad +00:3090 GetInput.readUp +00:3094 GetInput.setUp +00:309f GetInput.clearUp +00:30a2 GetInput.readDown +00:30a6 GetInput.setDown +00:30b1 GetInput.clearDown +00:30b4 GetInput.readLeft +00:30b8 GetInput.setLeft +00:30c3 GetInput.clearLeft +00:30c6 GetInput.readRight +00:30ca GetInput.setRight +00:30d5 GetInput.clearRight +00:30d8 GetInput.priorities +00:30e3 GetInput.zero +00:30e9 SwitchToTitle +00:30f2 TitleEventLoopHandler +00:30fc TitleVBlankHandler +00:3106 PersistLevel +00:3114 DrawSpeedMain +00:3164 DrawSpeedSettings +00:31b4 TimeInit +00:31d4 StartCountdown +00:31e2 ResetGameTime +00:31ed CheckTorikan +00:3204 CheckTorikan.failure +00:3206 CheckTorikan.success +00:3209 HandleTimers +00:322f HandleTimers.reduce +00:323c HandleTimers.clock +00:3256 HandleTimers.go +00:327a SetProgress +00:3285 SetProgress.loop +00:3289 SetProgress.correct +00:32b0 SetProgress.wvr_u1 +00:32bc SetProgress.wvr_u2 +00:32ca SetProgress.wvr_u3 +00:32d6 SetProgress.wvr_u4 +00:32e4 SetProgress.wvr_u5 +00:32f0 SetProgress.wvr_u6 +00:32fe SetProgress.wvr_u7 +00:330a SetProgress.wvr_u8 +00:3318 SetProgress.wvr_u9 +00:3324 SetProgress.wvr_u10 +00:332c Main +00:3355 Main.notgbc +00:335b Main.wvr_u1 +00:3382 EventLoop +00:3398 EventLoop.eventloopjumps +00:33a1 EventLoopPostHandler +00:33a3 EventLoopPostHandler.wvb_u2 +00:33b5 EventLoopPostHandler.vblankjumps +00:33be LoadTitleTiles +00:33dc LoadGameplayTiles +00:33f2 LoadGameplayTiles.gbc +00:3401 LoadGameplayTiles.dmg +00:3410 sFramesToCS +00:344c UnsafeMemCopy +00:3455 SafeMemCopy.wvr_u1 +00:3455 SafeMemCopy +00:3464 UnsafeMemSet +00:346c SafeMemSet +00:346c SafeMemSet.wvr_u2 +00:347a SwitchToGameplay +00:3483 SwitchToGameplayBig +00:348c GamePlayEventLoopHandler +00:3496 GamePlayBigEventLoopHandler +00:34a0 EnableScreenSquish +00:34ba DisableScreenSquish +00:34c5 CopyOAMHandler +00:34d1 ClearOAM +00:34e7 BankingInit +00:34f6 OAMDMA +00:3500 OAMDMAEnd 01:4008 sDMGTSpeedCurve 01:4203 sDMGTSpeedCurveEnd 01:4205 sDMGTSpeedCurveSpecialData @@ -493,121 +495,125 @@ 04:42b0 sTitleScreenMainMap 04:4550 sTitleScreenSettingsMap 04:4550 sTitleScreenMainMapEnd +04:47f0 sTitleScreenCreditsMap 04:47f0 sTitleScreenSettingsMapEnd -04:47f0 SwitchToTitleB -04:47f6 SwitchToTitleB.wvr_u1 -04:4822 SwitchToTitleB.wvb_u2 -04:4829 SwitchToTitleB.wvbe_u3 -04:482f SwitchTitleMode -04:4840 SwitchTitleMode.wvr_u4 -04:4854 SwitchTitleMode.jumps -04:4863 SwitchTitleMode.switchMain -04:4890 SwitchTitleMode.notsgb -04:48b1 SwitchTitleMode.notmgb -04:48d9 SwitchTitleMode.agb -04:48f3 SwitchTitleMode.done -04:48fb SwitchTitleMode.switchProfile -04:4903 SwitchTitleMode.switchSettings -04:4917 SwitchTitleMode.switchRecords -04:491f SwitchTitleMode.switchCredits -04:4927 TitleEventLoopHandlerB -04:4935 TitleEventLoopHandlerB.jumps -04:4944 TitleEventLoopHandlerB.eventLoopMain -04:4967 TitleEventLoopHandlerB.d0 -04:497b TitleEventLoopHandlerB.eventLoopProfile -04:497c TitleEventLoopHandlerB.eventLoopSettings -04:49a6 TitleEventLoopHandlerB.d1 -04:49bb TitleEventLoopHandlerB.l1 -04:49d0 TitleEventLoopHandlerB.r1 -04:49e4 TitleEventLoopHandlerB.eventLoopRecords -04:49e5 TitleEventLoopHandlerB.eventLoopCredits -04:49e6 TitleVBlankHandlerB -04:49f4 TitleVBlankHandlerB.jumps -04:4a03 TitleVBlankHandlerB.vblankMain -04:4a0d TitleVBlankHandlerB.notselected_u5 -04:4a12 TitleVBlankHandlerB.selected_u5 -04:4a15 TitleVBlankHandlerB.done_u5 -04:4a1f TitleVBlankHandlerB.notselected_u6 -04:4a24 TitleVBlankHandlerB.selected_u6 -04:4a27 TitleVBlankHandlerB.done_u6 -04:4a31 TitleVBlankHandlerB.notselected_u7 -04:4a36 TitleVBlankHandlerB.selected_u7 -04:4a39 TitleVBlankHandlerB.done_u7 -04:4a43 TitleVBlankHandlerB.notselected_u8 -04:4a48 TitleVBlankHandlerB.selected_u8 -04:4a4b TitleVBlankHandlerB.done_u8 -04:4a55 TitleVBlankHandlerB.notselected_u9 -04:4a5a TitleVBlankHandlerB.selected_u9 -04:4a5d TitleVBlankHandlerB.done_u9 -04:4a67 TitleVBlankHandlerB.notselected_u10 -04:4a6c TitleVBlankHandlerB.selected_u10 -04:4a6f TitleVBlankHandlerB.done_u10 -04:4af9 TitleVBlankHandlerB.disabled -04:4b05 TitleVBlankHandlerB.profile -04:4b14 TitleVBlankHandlerB.vblankProfile -04:4b15 TitleVBlankHandlerB.vblankSettings -04:4b1f TitleVBlankHandlerB.notselected_u11 -04:4b24 TitleVBlankHandlerB.selected_u11 -04:4b27 TitleVBlankHandlerB.done_u11 -04:4b31 TitleVBlankHandlerB.notselected_u12 -04:4b36 TitleVBlankHandlerB.selected_u12 -04:4b39 TitleVBlankHandlerB.done_u12 -04:4b43 TitleVBlankHandlerB.notselected_u13 -04:4b48 TitleVBlankHandlerB.selected_u13 -04:4b4b TitleVBlankHandlerB.done_u13 -04:4b55 TitleVBlankHandlerB.notselected_u14 -04:4b5a TitleVBlankHandlerB.selected_u14 -04:4b5d TitleVBlankHandlerB.done_u14 -04:4b67 TitleVBlankHandlerB.notselected_u15 -04:4b6c TitleVBlankHandlerB.selected_u15 -04:4b6f TitleVBlankHandlerB.done_u15 -04:4b79 TitleVBlankHandlerB.notselected_u16 -04:4b7e TitleVBlankHandlerB.selected_u16 -04:4b81 TitleVBlankHandlerB.done_u16 -04:4b8b TitleVBlankHandlerB.notselected_u17 -04:4b90 TitleVBlankHandlerB.selected_u17 -04:4b93 TitleVBlankHandlerB.done_u17 -04:4b9d TitleVBlankHandlerB.notselected_u18 -04:4ba2 TitleVBlankHandlerB.selected_u18 -04:4ba5 TitleVBlankHandlerB.done_u18 -04:4c2f TitleVBlankHandlerB.disabled1 -04:4c3b TitleVBlankHandlerB.buttons -04:4c68 TitleVBlankHandlerB.donetetry -04:4c8e TitleVBlankHandlerB.vblankRecords -04:4c8f TitleVBlankHandlerB.vblankCredits -04:4c90 MainHandleA -04:4c9e MainHandleA.jumps -04:4cb0 MainHandleA.tosettings -04:4cb5 MainHandleUp -04:4cc7 MainHandleDown -04:4cd8 SettingsHandleA -04:4ce5 SettingsHandleB -04:4cea SettingsHandleDown -04:4cfb SettingsHandleUp -04:4d0d SettingsHandleLeft -04:4d1e SettingsHandleLeft.jumps -04:4d36 SettingsHandleLeft.buttons -04:4d4e SettingsHandleLeft.rng -04:4d66 SettingsHandleLeft.rot -04:4d7e SettingsHandleLeft.drop -04:4d96 SettingsHandleLeft.curve -04:4db4 SettingsHandleLeft.hig -04:4dcc SettingsHandleRight -04:4ddd SettingsHandleRight.jumps -04:4df5 SettingsHandleRight.buttons -04:4e0c SettingsHandleRight.rng -04:4e23 SettingsHandleRight.rot -04:4e3a SettingsHandleRight.drop -04:4e51 SettingsHandleRight.curve -04:4e6e SettingsHandleRight.hig -04:4e85 DecrementLevel -04:4e9b IncrementLevel -04:4eb1 InitSpeedCurve -04:4ec0 GetEnd -04:4ef7 GetStart -04:4f2e CheckLevelRange -04:4f47 CheckLevelRange.notatend -04:4f67 CheckLevelRange.notatstart +04:4a90 sTitleScreenCreditsMapEnd +04:4a90 SwitchToTitleB +04:4a96 SwitchToTitleB.wvr_u1 +04:4ac2 SwitchToTitleB.wvb_u2 +04:4ac9 SwitchToTitleB.wvbe_u3 +04:4acf SwitchTitleMode +04:4ae0 SwitchTitleMode.wvr_u4 +04:4af4 SwitchTitleMode.jumps +04:4b03 SwitchTitleMode.switchMain +04:4b30 SwitchTitleMode.notsgb +04:4b51 SwitchTitleMode.notmgb +04:4b79 SwitchTitleMode.agb +04:4b93 SwitchTitleMode.done +04:4b9b SwitchTitleMode.switchProfile +04:4ba3 SwitchTitleMode.switchSettings +04:4bb7 SwitchTitleMode.switchRecords +04:4bbf SwitchTitleMode.switchCredits +04:4bd3 TitleEventLoopHandlerB +04:4be1 TitleEventLoopHandlerB.jumps +04:4bf0 TitleEventLoopHandlerB.eventLoopMain +04:4c13 TitleEventLoopHandlerB.d0 +04:4c27 TitleEventLoopHandlerB.eventLoopProfile +04:4c28 TitleEventLoopHandlerB.eventLoopSettings +04:4c52 TitleEventLoopHandlerB.d1 +04:4c67 TitleEventLoopHandlerB.l1 +04:4c7c TitleEventLoopHandlerB.r1 +04:4c90 TitleEventLoopHandlerB.eventLoopRecords +04:4c91 TitleEventLoopHandlerB.eventLoopCredits +04:4ca7 TitleEventLoopHandlerB.quitcredits +04:4cac TitleVBlankHandlerB +04:4cba TitleVBlankHandlerB.jumps +04:4cc9 TitleVBlankHandlerB.vblankMain +04:4cd3 TitleVBlankHandlerB.notselected_u5 +04:4cd8 TitleVBlankHandlerB.selected_u5 +04:4cdb TitleVBlankHandlerB.done_u5 +04:4ce5 TitleVBlankHandlerB.notselected_u6 +04:4cea TitleVBlankHandlerB.selected_u6 +04:4ced TitleVBlankHandlerB.done_u6 +04:4cf7 TitleVBlankHandlerB.notselected_u7 +04:4cfc TitleVBlankHandlerB.selected_u7 +04:4cff TitleVBlankHandlerB.done_u7 +04:4d09 TitleVBlankHandlerB.notselected_u8 +04:4d0e TitleVBlankHandlerB.selected_u8 +04:4d11 TitleVBlankHandlerB.done_u8 +04:4d1b TitleVBlankHandlerB.notselected_u9 +04:4d20 TitleVBlankHandlerB.selected_u9 +04:4d23 TitleVBlankHandlerB.done_u9 +04:4d2d TitleVBlankHandlerB.notselected_u10 +04:4d32 TitleVBlankHandlerB.selected_u10 +04:4d35 TitleVBlankHandlerB.done_u10 +04:4dbf TitleVBlankHandlerB.disabled +04:4dcb TitleVBlankHandlerB.profile +04:4dda TitleVBlankHandlerB.vblankProfile +04:4ddb TitleVBlankHandlerB.vblankSettings +04:4de5 TitleVBlankHandlerB.notselected_u11 +04:4dea TitleVBlankHandlerB.selected_u11 +04:4ded TitleVBlankHandlerB.done_u11 +04:4df7 TitleVBlankHandlerB.notselected_u12 +04:4dfc TitleVBlankHandlerB.selected_u12 +04:4dff TitleVBlankHandlerB.done_u12 +04:4e09 TitleVBlankHandlerB.notselected_u13 +04:4e0e TitleVBlankHandlerB.selected_u13 +04:4e11 TitleVBlankHandlerB.done_u13 +04:4e1b TitleVBlankHandlerB.notselected_u14 +04:4e20 TitleVBlankHandlerB.selected_u14 +04:4e23 TitleVBlankHandlerB.done_u14 +04:4e2d TitleVBlankHandlerB.notselected_u15 +04:4e32 TitleVBlankHandlerB.selected_u15 +04:4e35 TitleVBlankHandlerB.done_u15 +04:4e3f TitleVBlankHandlerB.notselected_u16 +04:4e44 TitleVBlankHandlerB.selected_u16 +04:4e47 TitleVBlankHandlerB.done_u16 +04:4e51 TitleVBlankHandlerB.notselected_u17 +04:4e56 TitleVBlankHandlerB.selected_u17 +04:4e59 TitleVBlankHandlerB.done_u17 +04:4e63 TitleVBlankHandlerB.notselected_u18 +04:4e68 TitleVBlankHandlerB.selected_u18 +04:4e6b TitleVBlankHandlerB.done_u18 +04:4ef5 TitleVBlankHandlerB.disabled1 +04:4f01 TitleVBlankHandlerB.buttons +04:4f2e TitleVBlankHandlerB.donetetry +04:4f54 TitleVBlankHandlerB.vblankRecords +04:4f55 TitleVBlankHandlerB.vblankCredits +04:4f56 MainHandleA +04:4f64 MainHandleA.jumps +04:4f76 MainHandleA.tosettings +04:4f7b MainHandleA.tocredits +04:4f80 MainHandleUp +04:4f92 MainHandleDown +04:4fa3 SettingsHandleA +04:4fb0 SettingsHandleB +04:4fb5 SettingsHandleDown +04:4fc6 SettingsHandleUp +04:4fd8 SettingsHandleLeft +04:4fe9 SettingsHandleLeft.jumps +04:5001 SettingsHandleLeft.buttons +04:5019 SettingsHandleLeft.rng +04:5031 SettingsHandleLeft.rot +04:5049 SettingsHandleLeft.drop +04:5061 SettingsHandleLeft.curve +04:507f SettingsHandleLeft.hig +04:5097 SettingsHandleRight +04:50a8 SettingsHandleRight.jumps +04:50c0 SettingsHandleRight.buttons +04:50d7 SettingsHandleRight.rng +04:50ee SettingsHandleRight.rot +04:5105 SettingsHandleRight.drop +04:511c SettingsHandleRight.curve +04:5139 SettingsHandleRight.hig +04:5150 DecrementLevel +04:5166 IncrementLevel +04:517c InitSpeedCurve +04:518b GetEnd +04:51c2 GetStart +04:51f9 CheckLevelRange +04:5212 CheckLevelRange.notatend +04:5232 CheckLevelRange.notatstart 05:4008 FieldInit 05:403e FieldClear 05:4049 ToBackupField diff --git a/src/gbc.asm b/src/gbc.asm index c8420bd..4ae7e7d 100644 --- a/src/gbc.asm +++ b/src/gbc.asm @@ -335,7 +335,26 @@ GBCTitleProcess:: ret .eventLoopCredits - ret + ; 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 + ld a, $00 +.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. diff --git a/src/res/sources/map_title_main_credits.gbm b/src/res/sources/map_title_main_credits.gbm index bb896a29fce8ec8389d1d728977b427ccc4502e6..315099777d0658954c09cf5184d1bbdf3d3e121a 100644 GIT binary patch delta 567 zcmZ3Yv_xscRYq5C2loF!;Nr5#p#DDp%X{1m40o)HYAZ-Jr)(hWaw8`cA0}`q?o-D;AC+ncz!StM+n}LgggF%*ohhaZ6D+5RgNGb0` zL+Qx{Oez|@K=qIIJuZVuumJh!n!dPQel>XylbJ9d1JED_0R{$s1_luZ26+Ysxyg>q z;*({VTeyI7QeX)IppX$zNJT@70pvt!2B6&xl3+QY3ZMZ%E>IjO0^}+Jxj+pfAPssD z4RBk476CN_NuVBxAW)|u*j^PNIhl`n60ZaUg96YQVE6C=4bmsa<`#CK0YHP5fd-h8 zV}Obz#Oc5gfjAoIZgDUh6hO*ABU{*o$hE?Q0?1&MoW! DVyaS0 literal 4388 zcmeHLJ8Tm{5Pkk64h|#%9KK38Banc?CS8;uiWJ0(u!2me_{mNV?8t{ra>hV`!v7Bi z6shR=bX2s|DL_J$2q6RoqM<~@ie%p2dQq_B^C^}iggn~w?#|A>nRz?5Zaq9S+7~%A z5*<6}f)YQ6!*N4TWG-mYcvc(ArP34nlv-YqzAw~Y@)OAz`hb=+&FnxpoX_V&qUcA`<;U0NE?7}>OL>L<;Vnbt$66I1BwK#}sU z`_bXKH=W-%xUjk0gkO?*zY6S%k>{zM-GJN1+ZH8bNq}( z5!(EG`#fJLOyU=xg`GL~H(xvaXhRR57ifXlD=>o41jLeZj5smknCxfx2$^Mn_Vw3u zO1GN2FPtkpFX!dH;!i)H$L!#fg@Q=IO$&KW9*(V?00AS$Wvv(J0=8K#0Bi=<0aTWm zl|TfBomB2}uCc>aYsam?)&QD{d5aZuWx%`sPGPq~u)kK%#BZvyC|(_(3HE_LD) zlbkmQpV2Y}y4YIXMLqG8Z6dR5*yxK{bXX@sr$I$jJ@_oujlg!RW_PG+WZAQ>S)B3| z>cMCHB%fXwusj92V=gjyj_INveAXwy$;k#FqXL#;+kDzrrd+kzUUTVRz$YzxEN0}_ zcCAGY>7sHmY0Sm2l>9m3mLR~NCMR+NSax%QUz6lAgBjooa0|HO1l@6|{PA)bxC-0` z?luPh8gK)+2RvvD{&nCca36T+48LjBWT44FlYu4!%V9v?3B2%#7o3tvT?@Pwx>nv{ z%I$n;E$R4Ph5+BmMm!t{GXWs3S;eA278+}_#BYO7PR09lRgt!SL+2&VMIrlOd^!I^uGb#ZL327 diff --git a/src/res/title_data.inc b/src/res/title_data.inc index b1be37a..76b1ff4 100644 --- a/src/res/title_data.inc +++ b/src/res/title_data.inc @@ -265,5 +265,76 @@ sTitleScreenSettingsMap:: DB $00,$00 sTitleScreenSettingsMapEnd:: +sTitleScreenCreditsMap:: + DB $01,$01,$01,$01,$01,$01,$0E,$1D,$10,$0F + DB $14,$1F,$1E,$01,$01,$01,$01,$01,$01,$01 + DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + DB $00,$00,$01,$01,$01,$01,$01,$01,$01,$01 + DB $01,$01,$01,$01,$01,$01,$01,$01,$01,$01 + DB $01,$01,$00,$00,$00,$00,$00,$00,$00,$00 + DB $00,$00,$00,$00,$0E,$1A,$0F,$10,$01,$01 + DB $01,$01,$01,$01,$01,$01,$01,$01,$01,$01 + DB $01,$01,$01,$01,$00,$00,$00,$00,$00,$00 + DB $00,$00,$00,$00,$00,$00,$2A,$01,$1B,$0C + DB $19,$0F,$1A,$1D,$0C,$01,$19,$1A,$21,$0C + DB $01,$01,$01,$01,$01,$01,$00,$00,$00,$00 + DB $00,$00,$00,$00,$00,$00,$00,$00,$2A,$01 + DB $0E,$1D,$10,$10,$1B,$10,$1D,$0E,$1D,$0C + DB $11,$1F,$24,$1F,$01,$01,$01,$01,$00,$00 + DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + DB $01,$01,$01,$01,$01,$01,$01,$01,$01,$01 + DB $01,$01,$01,$01,$01,$01,$01,$01,$01,$01 + DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + DB $00,$00,$18,$20,$1E,$14,$0E,$01,$01,$01 + DB $01,$01,$01,$01,$01,$01,$01,$01,$01,$01 + DB $01,$01,$00,$00,$00,$00,$00,$00,$00,$00 + DB $00,$00,$00,$00,$2A,$01,$1B,$0C,$19,$0F + DB $1A,$1D,$0C,$01,$19,$1A,$21,$0C,$01,$01 + DB $01,$01,$01,$01,$00,$00,$00,$00,$00,$00 + DB $00,$00,$00,$00,$00,$00,$01,$01,$01,$01 + DB $01,$01,$01,$01,$01,$01,$01,$01,$01,$01 + DB $01,$01,$01,$01,$01,$01,$00,$00,$00,$00 + DB $00,$00,$00,$00,$00,$00,$00,$00,$1E,$11 + DB $23,$01,$01,$01,$01,$01,$01,$01,$01,$01 + DB $01,$01,$01,$01,$01,$01,$01,$01,$00,$00 + DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + DB $2A,$01,$1B,$0C,$19,$0F,$1A,$1D,$0C,$01 + DB $19,$1A,$21,$0C,$01,$01,$01,$01,$01,$01 + DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + DB $00,$00,$2A,$01,$1F,$10,$1B,$1B,$17,$10 + DB $1E,$01,$01,$01,$01,$01,$01,$01,$01,$01 + DB $01,$01,$00,$00,$00,$00,$00,$00,$00,$00 + DB $00,$00,$00,$00,$01,$01,$01,$01,$01,$01 + DB $01,$01,$01,$01,$01,$01,$01,$01,$01,$01 + DB $01,$01,$01,$01,$00,$00,$00,$00,$00,$00 + DB $00,$00,$00,$00,$00,$00,$12,$11,$23,$01 + DB $01,$01,$01,$01,$01,$01,$01,$01,$01,$01 + DB $01,$01,$01,$01,$01,$01,$00,$00,$00,$00 + DB $00,$00,$00,$00,$00,$00,$00,$00,$2A,$01 + DB $1B,$0C,$19,$0F,$1A,$1D,$0C,$01,$19,$1A + DB $21,$0C,$01,$01,$80,$82,$88,$8A,$00,$00 + DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + DB $01,$01,$01,$01,$01,$01,$01,$01,$01,$01 + DB $01,$01,$01,$01,$01,$01,$81,$83,$89,$8B + DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + DB $00,$00,$01,$01,$01,$01,$01,$01,$01,$01 + DB $01,$01,$01,$01,$01,$01,$01,$01,$84,$86 + DB $8C,$8E,$00,$00,$00,$00,$00,$00,$00,$00 + DB $00,$00,$00,$00,$0D,$2A,$0D,$0C,$0E,$16 + DB $01,$01,$01,$01,$01,$01,$01,$01,$01,$01 + DB $85,$87,$8D,$8F,$00,$00,$00,$00,$00,$00 + DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + DB $00,$00 +sTitleScreenCreditsMapEnd:: + ENDC diff --git a/src/state_title.asm b/src/state_title.asm index fda08ca..5cd3673 100644 --- a/src/state_title.asm +++ b/src/state_title.asm @@ -346,6 +346,10 @@ SwitchTitleMode: ret .switchCredits + ld de, sTitleScreenCreditsMap + ld hl, $9800 + ld bc, sTitleScreenCreditsMapEnd - sTitleScreenCreditsMap + call UnsafeMemCopy call GBCTitleInit ld a, LCDCF_ON | LCDCF_BGON | LCDCF_BLK01 ldh [rLCDC], a @@ -469,8 +473,21 @@ TitleEventLoopHandlerB: ret .eventLoopCredits + ldh a, [hAState] + cp a, 1 + jp z, .quitcredits + ldh a, [hBState] + cp a, 1 + jp z, .quitcredits + ldh a, [hStartState] + cp a, 1 + jp z, .quitcredits ret +.quitcredits + ld a, TITLE_MAIN + jp SwitchTitleMode + ; VBLank handlers for title screen. TitleVBlankHandlerB: @@ -772,12 +789,16 @@ MainHandleA: no_jump jp .tosettings no_jump - no_jump + jp .tocredits .tosettings ld a, TITLE_SETTINGS jp SwitchTitleMode +.tocredits + ld a, TITLE_CREDITS + jp SwitchTitleMode + MainHandleUp: ld a, [wSelected]