Add progress bar.

This commit is contained in:
Randy Thiemann 2023-11-06 11:02:12 +01:00
parent 80a1907224
commit 190c403e80
15 changed files with 1232 additions and 743 deletions

Binary file not shown.

View File

@ -119,7 +119,7 @@ ROM0 bank #0:
$1499 = !11 $1499 = !11
$14e8 = !12 $14e8 = !12
$1537 = !13 $1537 = !13
SECTION: $1589-$1af6 ($056e bytes) ["Domain Specific Functions"] SECTION: $1589-$1b36 ($05ae bytes) ["Domain Specific Functions"]
$1589 = ApplyTells $1589 = ApplyTells
$15e6 = ApplyNext $15e6 = ApplyNext
$15f4 = ApplyNext.bone $15f4 = ApplyNext.bone
@ -144,272 +144,301 @@ ROM0 bank #0:
$1816 = ApplyTime.loop0 $1816 = ApplyTime.loop0
$1845 = ApplyTime.loop1 $1845 = ApplyTime.loop1
$189a = ApplyNumbers8 $189a = ApplyNumbers8
$18ce = ApplyNumbers6 $18e7 = ApplyNumbers8.one
$18f6 = ApplyNumbers4 $18ed = ApplyNumbers8.two
$1912 = SetNumberSpritePositions $18f3 = ApplyNumbers8.three
$1a19 = GradeRendering $18f9 = ApplyNumbers8.four
$1a4e = GradeRendering.effect $18ff = ApplyNumbers8.five
$1a5e = GradeRendering.noeffect $1905 = ApplyNumbers8.six
$1a66 = GradeRendering.drawgrade $190b = ApplyNumbers8.seven
$1a6d = GradeRendering.regulargrade $1911 = ApplyNumbers8.eight
$1a75 = GradeRendering.sgrade $1916 = ApplyNumbers4
$1a8b = GradeRendering.hisgrade $193b = ApplyNumbers4.one
$1aa1 = GradeRendering.mgrade $1941 = ApplyNumbers4.two
$1ab7 = GradeRendering.lettergrade $1947 = ApplyNumbers4.three
$1ad4 = GradeRendering.mk $194d = ApplyNumbers4.four
$1ada = GradeRendering.mv $1952 = SetNumberSpritePositions
$1ae0 = GradeRendering.mo $1a59 = GradeRendering
$1ae6 = GradeRendering.mm $1a8e = GradeRendering.effect
$1aec = GradeRendering.gmgrade $1a9e = GradeRendering.noeffect
SECTION: $1af7-$1e06 ($0310 bytes) ["Grading Functions"] $1aa6 = GradeRendering.drawgrade
$1af7 = GradeInit $1aad = GradeRendering.regulargrade
$1b22 = GradeInit.grade9start $1ab5 = GradeRendering.sgrade
$1b27 = GradeInit.end $1acb = GradeRendering.hisgrade
$1b29 = UpdateGrade $1ae1 = GradeRendering.mgrade
$1b37 = UpdateGrade.gradejumptable $1af7 = GradeRendering.lettergrade
$1b49 = DecayGradeProcess $1b14 = GradeRendering.mk
$1b57 = DecayGradeProcess.gradejumptable $1b1a = GradeRendering.mv
$1b69 = DecayGradeDelay $1b20 = GradeRendering.mo
$1b77 = DecayGradeDelay.gradejumptable $1b26 = GradeRendering.mm
$1b89 = PrepareScore $1b2c = GradeRendering.gmgrade
$1b9c = UpdateGradeDMGT SECTION: $1b37-$1e63 ($032d bytes) ["Grading Functions"]
$1bb2 = UpdateGradeDMGT.clearrate $1b37 = GradeInit
$1bc3 = UpdateGradeDMGT.combomult $1b62 = GradeInit.grade9start
$1bd0 = UpdateGradeDMGT.combo10 $1b67 = GradeInit.end
$1be1 = UpdateGradeDMGT.combo5 $1b69 = UpdateGrade
$1bf2 = UpdateGradeDMGT.combo1 $1b77 = UpdateGrade.gradejumptable
$1c01 = UpdateGradeDMGT.prelevel $1b89 = DecayGradeProcess
$1c10 = UpdateGradeDMGT.single $1b97 = DecayGradeProcess.gradejumptable
$1c20 = UpdateGradeDMGT.double $1ba9 = DecayGradeDelay
$1c31 = UpdateGradeDMGT.adddonce $1bb7 = DecayGradeDelay.gradejumptable
$1c35 = UpdateGradeDMGT.triple $1bc9 = PrepareScore
$1c46 = UpdateGradeDMGT.addtonce $1bdc = DrawGradeProgressDMGT
$1c4a = UpdateGradeDMGT.tetris $1beb = UpdateGradeDMGT
$1c4e = UpdateGradeDMGT.levelmult $1c05 = UpdateGradeDMGT.clearrate
$1c66 = UpdateGradeDMGT.mult5 $1c16 = UpdateGradeDMGT.combomult
$1c6d = UpdateGradeDMGT.mult4 $1c23 = UpdateGradeDMGT.combo10
$1c73 = UpdateGradeDMGT.mult3 $1c34 = UpdateGradeDMGT.combo5
$1c78 = UpdateGradeDMGT.mult2 $1c45 = UpdateGradeDMGT.combo1
$1c7c = UpdateGradeDMGT.mult1 $1c54 = UpdateGradeDMGT.prelevel
$1c7d = UpdateGradeDMGT.processgrade $1c63 = UpdateGradeDMGT.single
$1ca1 = UpdateGradeDMGT.increasegrademaybe $1c73 = UpdateGradeDMGT.double
$1cc2 = UpdateGradeDMGT.gotgm $1c84 = UpdateGradeDMGT.adddonce
$1ccd = DecayGradeDMGT $1c88 = UpdateGradeDMGT.triple
$1ced = DecayGradeDMGT.nodecay $1c99 = UpdateGradeDMGT.addtonce
$1cf2 = DecayGradeDMGT.decay $1c9d = UpdateGradeDMGT.tetris
$1cfe = UpdateGradeTGM1 $1ca1 = UpdateGradeDMGT.levelmult
$1d08 = UpdateGradeTGM1.trygradeup $1cb9 = UpdateGradeDMGT.mult5
$1d22 = UpdateGradeTGM1.increasegrade $1cc0 = UpdateGradeDMGT.mult4
$1d34 = UpdateGradeTGM1.skipjingle $1cc6 = UpdateGradeDMGT.mult3
$1d41 = UpdateGradeTGM1.maybegm $1ccb = UpdateGradeDMGT.mult2
$1d57 = UpdateGradeDEAT $1ccf = UpdateGradeDMGT.mult1
$1d63 = UpdateGradeDEAT.notgm $1cd0 = UpdateGradeDMGT.processgrade
$1d7c = UpdateGradeDEAT.notm $1cf6 = UpdateGradeDMGT.increasegrademaybe
$1d9c = UpdateGradeDEAT.disqualify $1d17 = UpdateGradeDMGT.gotgm
$1da2 = UpdateGradeSHIR $1d22 = DecayGradeDMGT
$1de2 = UpdateGradeSHIR.s5torikan $1d46 = DecayGradeDMGT.nodecay
$1df2 = UpdateGradeSHIR.s10torikan $1d4d = DecayGradeDMGT.decay
$1e01 = UpdateGradeSHIR.disqualify $1d5b = UpdateGradeTGM1
SECTION: $1e07-$209d ($0297 bytes) ["SFX Functions"] $1d65 = UpdateGradeTGM1.trygradeup
$1e07 = SFXInit $1d7f = UpdateGradeTGM1.increasegrade
$1e29 = SFXPopQueue $1d91 = UpdateGradeTGM1.skipjingle
$1e3e = SFXPushQueue $1d9e = UpdateGradeTGM1.maybegm
$1e4f = SFXProcessQueue $1db4 = UpdateGradeDEAT
$1e5c = !0 $1dc0 = UpdateGradeDEAT.notgm
$1e7d = SFXTriggerNoise $1dd9 = UpdateGradeDEAT.notm
$1e8a = !1 $1df9 = UpdateGradeDEAT.disqualify
$1e97 = !2 $1dff = UpdateGradeSHIR
$1ea3 = SFXEnqueue $1e3f = UpdateGradeSHIR.s5torikan
$1eb8 = SFXEnqueue.findsfx $1e4f = UpdateGradeSHIR.s10torikan
$1ecd = !3 $1e5e = UpdateGradeSHIR.disqualify
$1edd = !4 SECTION: $1e64-$2119 ($02b6 bytes) ["Grading Data"]
$1eed = !5 $1e64 = sTGM1GradeScores
$1efd = !6 $1e86 = sTGM3InternalGradeSystem
$1f0d = !7 $1f26 = sTGM3GradeBoosts
$1f1d = !8 $1f45 = sTGM3LevelMultiplier
$1f2d = !9 $1f49 = sTGM3BaselineCOOL
$1f3d = !10 $1f52 = sTGM3REGRETConditions
$1f4d = !11 $1f66 = sDMGTGrading
$1f5d = !12 $201a = sDMGTGaugeLUT
$1f6d = !13 SECTION: $211a-$23b0 ($0297 bytes) ["SFX Functions"]
$1f7d = !14 $211a = SFXInit
$1f8d = !15 $213c = SFXPopQueue
$1f9d = !16 $2151 = SFXPushQueue
$1fad = !17 $2162 = SFXProcessQueue
$1fbc = !18 $216f = !0
$1fcb = !19 $2190 = SFXTriggerNoise
$1fda = !20 $219d = !1
$1fe8 = !21 $21aa = !2
$1ff6 = !22 $21b6 = SFXEnqueue
$2004 = !23 $21cb = SFXEnqueue.findsfx
$2011 = SFXKill $21e0 = !3
$203c = SFXPlayNoise $21f0 = !4
$2047 = SFXPlayNoise.noisereg $2200 = !5
$2054 = !24 $2210 = !6
$205e = SFXPlayNoise.savenoiseplayhead $2220 = !7
$2067 = SFXPlay $2230 = !8
$2072 = !25 $2240 = !9
$2075 = SFXPlay.play $2250 = !10
$2081 = SFXPlay.getRegister $2260 = !11
$208b = !26 $2270 = !12
$2095 = SFXPlay.savePlayhead $2280 = !13
SECTION: $209e-$228b ($01ee bytes) ["RNG Functions"] $2290 = !14
$209e = RNGInit $22a0 = !15
$20ce = !0 $22b0 = !16
$20e9 = RNGInit.complexinit $22c0 = !17
$2100 = !1 $22cf = !18
$211a = ShiftHistory $22de = !19
$2137 = GetNextHellPiece $22ed = !20
$213c = GetNextTGM1Piece $22fb = !21
$213f = !2 $2309 = !22
$2157 = !3 $2317 = !23
$2159 = GetNextTGM2Piece $2324 = SFXKill
$215c = !4 $234f = SFXPlayNoise
$2174 = !5 $235a = SFXPlayNoise.noisereg
$2176 = GetNextNesPiece $2367 = !24
$2184 = GetNextTGM3Piece $2371 = SFXPlayNoise.savenoiseplayhead
$2187 = !6 $237a = SFXPlay
$21aa = !7 $2385 = !25
$21ad = !8 $2388 = SFXPlay.play
$21bd = !9 $2394 = SFXPlay.getRegister
$21c7 = !10 $239e = !26
$21d5 = !11 $23a8 = SFXPlay.savePlayhead
$21e4 = !12 SECTION: $23b1-$259e ($01ee bytes) ["RNG Functions"]
$21f0 = !13 $23b1 = RNGInit
$21fc = !14 $23e1 = !0
$2208 = !15 $23fc = RNGInit.complexinit
$2214 = !16 $2413 = !1
$2220 = !17 $242d = ShiftHistory
$222c = !18 $244a = GetNextHellPiece
$223b = GetNextPiece $244f = GetNextTGM1Piece
$2249 = GetNextPiece.nextpiecejumps $2452 = !2
$2258 = Next35Piece $246a = !3
$2258 = !19 $246c = GetNextTGM2Piece
$2262 = Next7Piece $246f = !4
$2262 = !20 $2487 = !5
$226c = NextByte $2489 = GetNextNesPiece
SECTION: $228c-$2441 ($01b6 bytes) ["Grading Data"] $2497 = GetNextTGM3Piece
$228c = sTGM1GradeScores $249a = !6
$22ae = sTGM3InternalGradeSystem $24bd = !7
$234e = sTGM3GradeBoosts $24c0 = !8
$236d = sTGM3LevelMultiplier $24d0 = !9
$2371 = sTGM3BaselineCOOL $24da = !10
$237a = sTGM3REGRETConditions $24e8 = !11
$238e = sDMGTGrading $24f7 = !12
SECTION: $2442-$25e4 ($01a3 bytes) ["Level Functions"] $2503 = !13
$2442 = LevelInit $250f = !14
$2492 = LevelUp $251b = !15
$24b6 = LevelUp.doit $2527 = !16
$24fa = LevelUp.checknlevel $2533 = !17
$2528 = !0 $253f = !18
$2540 = !1 $254e = GetNextPiece
$2549 = LevelUp.bellmaybe $255c = GetNextPiece.nextpiecejumps
$255b = LevelUp.leveljinglemaybe $256b = Next35Piece
$2568 = LevelUp.checkspeedup $256b = !19
$2579 = !2 $2575 = Next7Piece
$2586 = !3 $2575 = !20
$2597 = !4 $257f = NextByte
$25a4 = DoSpeedUp SECTION: $259f-$2741 ($01a3 bytes) ["Level Functions"]
SECTION: $25e5-$26c4 ($00e0 bytes) ["Score Functions"] $259f = LevelInit
$25e5 = ScoreInit $25ef = LevelUp
$260d = IncreaseScore $2613 = LevelUp.doit
$2645 = IncreaseScore.doConvert $2657 = LevelUp.checknlevel
$2647 = !0 $2685 = !0
$265d = IncreaseScore.carry $269d = !1
$265f = IncreaseScore.postConvert $26a6 = LevelUp.bellmaybe
$266c = !1 $26b8 = LevelUp.leveljinglemaybe
$2673 = IncreaseScore.preAddDigit $26c5 = LevelUp.checkspeedup
$269b = IncreaseScore.addDigit $26d6 = !2
$26b1 = IncreaseScore.nextDigit $26e3 = !3
SECTION: $26c5-$2791 ($00cd bytes) ["Input Functions"] $26f4 = !4
$26c5 = InputInit $2701 = DoSpeedUp
$26d7 = GetInput SECTION: $2742-$288b ($014a bytes) ["Progress Data"]
$26d7 = GetInput.btns $2742 = sProgressData
$26e4 = GetInput.readA SECTION: $288c-$296b ($00e0 bytes) ["Score Functions"]
$26e8 = GetInput.setA $288c = ScoreInit
$26f3 = GetInput.clearA $28b4 = IncreaseScore
$26f6 = GetInput.readB $28ec = IncreaseScore.doConvert
$26fa = GetInput.setB $28ee = !0
$2705 = GetInput.clearB $2904 = IncreaseScore.carry
$2708 = GetInput.readSelect $2906 = IncreaseScore.postConvert
$270c = GetInput.setSelect $2913 = !1
$2717 = GetInput.clearSelect $291a = IncreaseScore.preAddDigit
$271a = GetInput.readStart $2942 = IncreaseScore.addDigit
$271e = GetInput.setStart $2958 = IncreaseScore.nextDigit
$2729 = GetInput.clearStart SECTION: $296c-$2a38 ($00cd bytes) ["Input Functions"]
$272c = GetInput.dpad $296c = InputInit
$2739 = GetInput.readUp $297e = GetInput
$273d = GetInput.setUp $297e = GetInput.btns
$2748 = GetInput.clearUp $298b = GetInput.readA
$274b = GetInput.readDown $298f = GetInput.setA
$274f = GetInput.setDown $299a = GetInput.clearA
$275a = GetInput.clearDown $299d = GetInput.readB
$275d = GetInput.readLeft $29a1 = GetInput.setB
$2761 = GetInput.setLeft $29ac = GetInput.clearB
$276c = GetInput.clearLeft $29af = GetInput.readSelect
$276f = GetInput.readRight $29b3 = GetInput.setSelect
$2773 = GetInput.setRight $29be = GetInput.clearSelect
$277e = GetInput.clearRight $29c1 = GetInput.readStart
$2781 = GetInput.priorities $29c5 = GetInput.setStart
$278c = GetInput.zero $29d0 = GetInput.clearStart
SECTION: $2792-$2848 ($00b7 bytes) ["SRAM Functions"] $29d3 = GetInput.dpad
$2792 = RestoreSRAM $29e0 = GetInput.readUp
$27eb = InitializeSRAM $29e4 = GetInput.setUp
SECTION: $2849-$28ec ($00a4 bytes) ["Code Entry Point"] $29ef = GetInput.clearUp
$2849 = Main $29f2 = GetInput.readDown
$285e = Main.wvr_u1 $29f6 = GetInput.setDown
$2867 = !0 $2a01 = GetInput.clearDown
$2877 = Main.notgbc $2a04 = GetInput.readLeft
$28a6 = Main.wvb_u2 $2a08 = GetInput.setLeft
$28ab = !1 $2a13 = GetInput.clearLeft
$28b1 = EventLoop $2a16 = GetInput.readRight
$28c7 = EventLoop.eventloopjumps $2a1a = GetInput.setRight
$28d0 = EventLoopPostHandler $2a25 = GetInput.clearRight
$28d2 = EventLoopPostHandler.wvb_u3 $2a28 = GetInput.priorities
$28e4 = EventLoopPostHandler.vblankjumps $2a33 = GetInput.zero
SECTION: $28ed-$2974 ($0088 bytes) ["Time Functions"] SECTION: $2a39-$2aef ($00b7 bytes) ["SRAM Functions"]
$28ed = TimeInit $2a39 = RestoreSRAM
$2902 = ResetGameTime $2a92 = InitializeSRAM
$290d = CheckTorikan SECTION: $2af0-$2ba1 ($00b2 bytes) ["Progress Functions"]
$2924 = CheckTorikan.failure $2af0 = SetProgress
$2926 = CheckTorikan.success $2afb = SetProgress.loop
$2929 = HandleTimers $2aff = SetProgress.correct
$2951 = HandleTimers.go $2b26 = SetProgress.wvr_u1
SECTION: $2975-$29e2 ($006e bytes) ["Title Function Trampolines"] $2b32 = SetProgress.wvr_u2
$2975 = SwitchToTitle $2b40 = SetProgress.wvr_u3
$297f = TitleEventLoopHandler $2b4c = SetProgress.wvr_u4
$2989 = TitleVBlankHandler $2b5a = SetProgress.wvr_u5
$2993 = DrawOption6 $2b66 = SetProgress.wvr_u6
SECTION: $29e3-$2a34 ($0052 bytes) ["Tile Functions"] $2b74 = SetProgress.wvr_u7
$29e3 = LoadTitleTiles $2b80 = SetProgress.wvr_u8
$2a01 = LoadGameplayTiles $2b8e = SetProgress.wvr_u9
$2a17 = LoadGameplayTiles.gbc $2b9a = SetProgress.wvr_u10
$2a26 = LoadGameplayTiles.dmg SECTION: $2ba2-$2c45 ($00a4 bytes) ["Code Entry Point"]
SECTION: $2a35-$2a70 ($003c bytes) ["Time Data"] $2ba2 = Main
$2a35 = sFramesToCS $2bb7 = Main.wvr_u1
SECTION: $2a71-$2a9e ($002e bytes) ["Memory Functions"] $2bc0 = !0
$2a71 = UnsafeMemCopy $2bd0 = Main.notgbc
$2a7a = SafeMemCopy.wvr_u1 $2bff = Main.wvb_u2
$2a7a = SafeMemCopy $2c04 = !1
$2a89 = UnsafeMemSet $2c0a = EventLoop
$2a91 = SafeMemSet $2c20 = EventLoop.eventloopjumps
$2a91 = SafeMemSet.wvr_u2 $2c29 = EventLoopPostHandler
SECTION: $2a9f-$2ac6 ($0028 bytes) ["Gameplay Function Trampolines"] $2c2b = EventLoopPostHandler.wvb_u3
$2a9f = SwitchToGameplay $2c3d = EventLoopPostHandler.vblankjumps
$2aa9 = SwitchToGameplayBig SECTION: $2c46-$2ccd ($0088 bytes) ["Time Functions"]
$2ab3 = GamePlayEventLoopHandler $2c46 = TimeInit
$2abd = GamePlayBigEventLoopHandler $2c5b = ResetGameTime
SECTION: $2ac7-$2ae8 ($0022 bytes) ["OAM Functions"] $2c66 = CheckTorikan
$2ac7 = CopyOAMHandler $2c7d = CheckTorikan.failure
$2ad3 = ClearOAM $2c7f = CheckTorikan.success
SECTION: $2ae9-$2b01 ($0019 bytes) ["Interrupt Initialization Functions"] $2c82 = HandleTimers
$2ae9 = IntrInit $2caa = HandleTimers.go
$2aed = InitializeLCDCInterrupt SECTION: $2cce-$2d3b ($006e bytes) ["Title Function Trampolines"]
SECTION: $2b02-$2b0b ($000a bytes) ["OAM DMA Code"] $2cce = SwitchToTitle
$2b02 = OAMDMA $2cd8 = TitleEventLoopHandler
$2b0c = OAMDMAEnd $2ce2 = TitleVBlankHandler
EMPTY: $2b0c-$3fff ($14f4 bytes) $2cec = DrawOption6
TOTAL EMPTY: $14ff bytes SECTION: $2d3c-$2d8d ($0052 bytes) ["Tile Functions"]
$2d3c = LoadTitleTiles
$2d5a = LoadGameplayTiles
$2d70 = LoadGameplayTiles.gbc
$2d7f = LoadGameplayTiles.dmg
SECTION: $2d8e-$2dc9 ($003c bytes) ["Time Data"]
$2d8e = sFramesToCS
SECTION: $2dca-$2df7 ($002e bytes) ["Memory Functions"]
$2dca = UnsafeMemCopy
$2dd3 = SafeMemCopy.wvr_u1
$2dd3 = SafeMemCopy
$2de2 = UnsafeMemSet
$2dea = SafeMemSet
$2dea = SafeMemSet.wvr_u2
SECTION: $2df8-$2e1f ($0028 bytes) ["Gameplay Function Trampolines"]
$2df8 = SwitchToGameplay
$2e02 = SwitchToGameplayBig
$2e0c = GamePlayEventLoopHandler
$2e16 = GamePlayBigEventLoopHandler
SECTION: $2e20-$2e41 ($0022 bytes) ["OAM Functions"]
$2e20 = CopyOAMHandler
$2e2c = ClearOAM
SECTION: $2e42-$2e5a ($0019 bytes) ["Interrupt Initialization Functions"]
$2e42 = IntrInit
$2e46 = InitializeLCDCInterrupt
SECTION: $2e5b-$2e64 ($000a bytes) ["OAM DMA Code"]
$2e5b = OAMDMA
$2e65 = OAMDMAEnd
EMPTY: $2e65-$3fff ($119b bytes)
TOTAL EMPTY: $11a6 bytes
ROMX bank #1: ROMX bank #1:
SECTION: $4000-$4007 ($0008 bytes) ["Bank ID BANK_OTHER"] SECTION: $4000-$4007 ($0008 bytes) ["Bank ID BANK_OTHER"]
@ -922,7 +951,7 @@ ROMX bank #5:
$5310 = ClearLines.r_u48 $5310 = ClearLines.r_u48
$5310 = ClearLines.fixgarbo $5310 = ClearLines.fixgarbo
$5313 = ClearLines.fixgarboloop $5313 = ClearLines.fixgarboloop
SECTION: $531d-$6146 ($0e2a bytes) ["Gameplay Function Banked"] SECTION: $531d-$610f ($0df3 bytes) ["Gameplay Function Banked"]
$531d = SwitchToGameplayB $531d = SwitchToGameplayB
$5323 = SwitchToGameplayB.wvr_u1 $5323 = SwitchToGameplayB.wvr_u1
$532c = SwitchToGameplayB.loadtilemap $532c = SwitchToGameplayB.loadtilemap
@ -1380,35 +1409,35 @@ ROMX bank #5:
$5fed = GamePlayEventLoopHandlerB.noretry $5fed = GamePlayEventLoopHandlerB.noretry
$5ffa = GamePlayEventLoopHandlerB.pauseMode $5ffa = GamePlayEventLoopHandlerB.pauseMode
$6012 = GamePlayEventLoopHandlerB.noqr $6012 = GamePlayEventLoopHandlerB.noqr
$6022 = GamePlayEventLoopHandlerB.nounpause $6027 = GamePlayEventLoopHandlerB.nounpause
$60a6 = GamePlayEventLoopHandlerB.drawStaticInfo $606f = GamePlayEventLoopHandlerB.drawStaticInfo
$60d7 = DoHold $60a0 = DoHold
$60db = DoHold.checkIRSA $60a4 = DoHold.checkIRSA
$60e2 = DoHold.ldb3 $60ab = DoHold.ldb3
$60ee = DoHold.lda3 $60b7 = DoHold.lda3
$60f8 = DoHold.cp3 $60c1 = DoHold.cp3
$6106 = DoHold.checkIRSB $60cf = DoHold.checkIRSB
$610d = DoHold.lda4 $60d6 = DoHold.lda4
$6119 = DoHold.ldb4 $60e2 = DoHold.ldb4
$6123 = DoHold.cp4 $60ec = DoHold.cp4
$6131 = DoHold.noRotation $60fa = DoHold.noRotation
$613c = DoHold.doHoldOperation $6105 = DoHold.doHoldOperation
SECTION: $6147-$655c ($0416 bytes) ["Gameplay Static Data"] SECTION: $6110-$6539 ($042a bytes) ["Gameplay Static Data"]
$6147 = sLeftDasSlam $6110 = sLeftDasSlam
$614d = sRightDasSlam $6116 = sRightDasSlam
$6153 = sLeady $611c = sLeady
$615d = sGo $6126 = sGo
$6167 = sPause $6130 = sPause
$617b = sPieceXOffsets $6158 = sPieceXOffsets
$6197 = sPieceYOffsets $6174 = sPieceYOffsets
$61b3 = sPieceFastRotationStates $6190 = sPieceFastRotationStates
$6223 = sPieceRotationStates $6200 = sPieceRotationStates
$6293 = sTGM3Bag $6270 = sTGM3Bag
$62b6 = sTGM3Droughts $6293 = sTGM3Droughts
$62bd = sGameplayTileMap $629a = sGameplayTileMap
$655d = sGameplayTileMapEnd $653a = sGameplayTileMapEnd
EMPTY: $655d-$7fff ($1aa3 bytes) EMPTY: $653a-$7fff ($1ac6 bytes)
TOTAL EMPTY: $1aa3 bytes TOTAL EMPTY: $1ac6 bytes
ROMX bank #6: ROMX bank #6:
SECTION: $4000-$4007 ($0008 bytes) ["Bank ID BANK_GAMEPLAY_BIG"] SECTION: $4000-$4007 ($0008 bytes) ["Bank ID BANK_GAMEPLAY_BIG"]
@ -1707,7 +1736,7 @@ ROMX bank #6:
$5262 = BigClearLines.fixgarbo $5262 = BigClearLines.fixgarbo
$5265 = BigClearLines.fixgarboloop $5265 = BigClearLines.fixgarboloop
$5283 = BigWidenField $5283 = BigWidenField
SECTION: $55d3-$6471 ($0e9f bytes) ["Gameplay Function Big Banked"] SECTION: $55d3-$6446 ($0e74 bytes) ["Gameplay Function Big Banked"]
$55d3 = SwitchToGameplayBigB $55d3 = SwitchToGameplayBigB
$55d9 = SwitchToGameplayBigB.wvr_u214 $55d9 = SwitchToGameplayBigB.wvr_u214
$55e2 = SwitchToGameplayBigB.loadtilemap $55e2 = SwitchToGameplayBigB.loadtilemap
@ -2185,33 +2214,33 @@ ROMX bank #6:
$6325 = GamePlayBigEventLoopHandlerB.noretry $6325 = GamePlayBigEventLoopHandlerB.noretry
$6332 = GamePlayBigEventLoopHandlerB.pauseMode $6332 = GamePlayBigEventLoopHandlerB.pauseMode
$634a = GamePlayBigEventLoopHandlerB.noqr $634a = GamePlayBigEventLoopHandlerB.noqr
$6359 = GamePlayBigEventLoopHandlerB.nounpause $635e = GamePlayBigEventLoopHandlerB.nounpause
$63d1 = GamePlayBigEventLoopHandlerB.drawStaticInfo $63a6 = GamePlayBigEventLoopHandlerB.drawStaticInfo
$6402 = BigDoHold $63d7 = BigDoHold
$6406 = BigDoHold.checkIRSA $63db = BigDoHold.checkIRSA
$640d = BigDoHold.ldb3 $63e2 = BigDoHold.ldb3
$6419 = BigDoHold.lda3 $63ee = BigDoHold.lda3
$6423 = BigDoHold.cp3 $63f8 = BigDoHold.cp3
$6431 = BigDoHold.checkIRSB $6406 = BigDoHold.checkIRSB
$6438 = BigDoHold.lda4 $640d = BigDoHold.lda4
$6444 = BigDoHold.ldb4 $6419 = BigDoHold.ldb4
$644e = BigDoHold.cp4 $6423 = BigDoHold.cp4
$645c = BigDoHold.noRotation $6431 = BigDoHold.noRotation
$6467 = BigDoHold.doHoldOperation $643c = BigDoHold.doHoldOperation
SECTION: $6472-$685d ($03ec bytes) ["Gameplay Big Static Data"] SECTION: $6447-$6846 ($0400 bytes) ["Gameplay Big Static Data"]
$6472 = sBigLeftDasSlam $6447 = sBigLeftDasSlam
$6478 = sBigRightDasSlam $644d = sBigRightDasSlam
$647e = sBigLeady $6453 = sBigLeady
$6488 = sBigGo $645d = sBigGo
$6492 = sBigPause $6467 = sBigPause
$64a6 = sBigPieceXOffsets $648f = sBigPieceXOffsets
$64c2 = sBigPieceYOffsets $64ab = sBigPieceYOffsets
$64de = sBigPieceFastRotationStates $64c7 = sBigPieceFastRotationStates
$654e = sBigPieceRotationStates $6537 = sBigPieceRotationStates
$65be = sBigGameplayTileMap $65a7 = sBigGameplayTileMap
$685e = sBigGameplayTileMapEnd $6847 = sBigGameplayTileMapEnd
EMPTY: $685e-$7fff ($17a2 bytes) EMPTY: $6847-$7fff ($17b9 bytes)
TOTAL EMPTY: $17a2 bytes TOTAL EMPTY: $17b9 bytes
SRAM bank #0: SRAM bank #0:
SECTION: $a000-$a00d ($000e bytes) ["Persistent Globals"] SECTION: $a000-$a00d ($000e bytes) ["Persistent Globals"]
@ -2309,30 +2338,41 @@ WRAM0 bank #0:
$cd9a = wDRate $cd9a = wDRate
$cd9b = wTRate $cd9b = wTRate
$cd9c = wQRate $cd9c = wQRate
SECTION: $cd9d-$cda5 ($0009 bytes) ["Globals"] SECTION: $cd9d-$cda6 ($000a bytes) ["Progress Variables"]
$cd9d = wSwapABState $cd9d = wProgress0B1
$cd9e = wRNGModeState $cd9e = wProgress0B2
$cd9f = wRotModeState $cd9f = wProgress1B1
$cda0 = wDropModeState $cda0 = wProgress1B2
$cda1 = wSpeedCurveState $cda1 = wProgress2B1
$cda2 = wAlways20GState $cda2 = wProgress2B2
$cda3 = wInitialA $cda3 = wProgress3B1
$cda4 = wInitialB $cda4 = wProgress3B2
$cda5 = wInitialC $cda5 = wProgress4B1
SECTION: $cda6-$cda9 ($0004 bytes) ["Banking Variables"] $cda6 = wProgress4B2
$cda6 = wBankBackup SECTION: $cda7-$cdaf ($0009 bytes) ["Globals"]
SECTION: $cdaa-$cdac ($0003 bytes) ["GBC Variables"] $cda7 = wSwapABState
$cdaa = wOuterReps $cda8 = wRNGModeState
$cdab = wInnerReps $cda9 = wRotModeState
$cdac = wTitlePal $cdaa = wDropModeState
SECTION: $cdad-$cdaf ($0003 bytes) ["Time Variables"] $cdab = wSpeedCurveState
$cdad = wMinutes $cdac = wAlways20GState
$cdae = wSeconds $cdad = wInitialA
$cdaf = wFrames $cdae = wInitialB
SECTION: $cdb0-$cdb0 ($0001 byte) ["Title Variables"] $cdaf = wInitialC
$cdb0 = wSelected SECTION: $cdb0-$cdb3 ($0004 bytes) ["Banking Variables"]
EMPTY: $cdb1-$cfff ($024f bytes) $cdb0 = wBankBackup
TOTAL EMPTY: $024f bytes SECTION: $cdb4-$cdb6 ($0003 bytes) ["GBC Variables"]
$cdb4 = wOuterReps
$cdb5 = wInnerReps
$cdb6 = wTitlePal
SECTION: $cdb7-$cdb9 ($0003 bytes) ["Time Variables"]
$cdb7 = wMinutes
$cdb8 = wSeconds
$cdb9 = wFrames
SECTION: $cdba-$cdba ($0001 byte) ["Title Variables"]
$cdba = wSelected
EMPTY: $cdbb-$cfff ($0245 bytes)
TOTAL EMPTY: $0245 bytes
HRAM bank #0: HRAM bank #0:
SECTION: $ff80-$ff9a ($001b bytes) ["High Field Variables"] SECTION: $ff80-$ff9a ($001b bytes) ["High Field Variables"]
@ -2423,8 +2463,8 @@ HRAM bank #0:
TOTAL EMPTY: $0003 bytes TOTAL EMPTY: $0003 bytes
SUMMARY: SUMMARY:
ROM0: 11009 bytes used / 5375 free ROM0: 11866 bytes used / 4518 free
ROMX: 56581 bytes used / 41723 free in 6 banks ROMX: 56523 bytes used / 41781 free in 6 banks
SRAM: 14 bytes used / 8178 free in 1 bank SRAM: 14 bytes used / 8178 free in 1 bank
WRAM0: 3505 bytes used / 591 free WRAM0: 3515 bytes used / 581 free
HRAM: 124 bytes used / 3 free HRAM: 124 bytes used / 3 free

Binary file not shown.

View File

@ -109,195 +109,222 @@
00:1816 ApplyTime.loop0 00:1816 ApplyTime.loop0
00:1845 ApplyTime.loop1 00:1845 ApplyTime.loop1
00:189a ApplyNumbers8 00:189a ApplyNumbers8
00:18ce ApplyNumbers6 00:18e7 ApplyNumbers8.one
00:18f6 ApplyNumbers4 00:18ed ApplyNumbers8.two
00:1912 SetNumberSpritePositions 00:18f3 ApplyNumbers8.three
00:1a19 GradeRendering 00:18f9 ApplyNumbers8.four
00:1a4e GradeRendering.effect 00:18ff ApplyNumbers8.five
00:1a5e GradeRendering.noeffect 00:1905 ApplyNumbers8.six
00:1a66 GradeRendering.drawgrade 00:190b ApplyNumbers8.seven
00:1a6d GradeRendering.regulargrade 00:1911 ApplyNumbers8.eight
00:1a75 GradeRendering.sgrade 00:1916 ApplyNumbers4
00:1a8b GradeRendering.hisgrade 00:193b ApplyNumbers4.one
00:1aa1 GradeRendering.mgrade 00:1941 ApplyNumbers4.two
00:1ab7 GradeRendering.lettergrade 00:1947 ApplyNumbers4.three
00:1ad4 GradeRendering.mk 00:194d ApplyNumbers4.four
00:1ada GradeRendering.mv 00:1952 SetNumberSpritePositions
00:1ae0 GradeRendering.mo 00:1a59 GradeRendering
00:1ae6 GradeRendering.mm 00:1a8e GradeRendering.effect
00:1aec GradeRendering.gmgrade 00:1a9e GradeRendering.noeffect
00:1af7 GradeInit 00:1aa6 GradeRendering.drawgrade
00:1b22 GradeInit.grade9start 00:1aad GradeRendering.regulargrade
00:1b27 GradeInit.end 00:1ab5 GradeRendering.sgrade
00:1b29 UpdateGrade 00:1acb GradeRendering.hisgrade
00:1b37 UpdateGrade.gradejumptable 00:1ae1 GradeRendering.mgrade
00:1b49 DecayGradeProcess 00:1af7 GradeRendering.lettergrade
00:1b57 DecayGradeProcess.gradejumptable 00:1b14 GradeRendering.mk
00:1b69 DecayGradeDelay 00:1b1a GradeRendering.mv
00:1b77 DecayGradeDelay.gradejumptable 00:1b20 GradeRendering.mo
00:1b89 PrepareScore 00:1b26 GradeRendering.mm
00:1b9c UpdateGradeDMGT 00:1b2c GradeRendering.gmgrade
00:1bb2 UpdateGradeDMGT.clearrate 00:1b37 GradeInit
00:1bc3 UpdateGradeDMGT.combomult 00:1b62 GradeInit.grade9start
00:1bd0 UpdateGradeDMGT.combo10 00:1b67 GradeInit.end
00:1be1 UpdateGradeDMGT.combo5 00:1b69 UpdateGrade
00:1bf2 UpdateGradeDMGT.combo1 00:1b77 UpdateGrade.gradejumptable
00:1c01 UpdateGradeDMGT.prelevel 00:1b89 DecayGradeProcess
00:1c10 UpdateGradeDMGT.single 00:1b97 DecayGradeProcess.gradejumptable
00:1c20 UpdateGradeDMGT.double 00:1ba9 DecayGradeDelay
00:1c31 UpdateGradeDMGT.adddonce 00:1bb7 DecayGradeDelay.gradejumptable
00:1c35 UpdateGradeDMGT.triple 00:1bc9 PrepareScore
00:1c46 UpdateGradeDMGT.addtonce 00:1bdc DrawGradeProgressDMGT
00:1c4a UpdateGradeDMGT.tetris 00:1beb UpdateGradeDMGT
00:1c4e UpdateGradeDMGT.levelmult 00:1c05 UpdateGradeDMGT.clearrate
00:1c66 UpdateGradeDMGT.mult5 00:1c16 UpdateGradeDMGT.combomult
00:1c6d UpdateGradeDMGT.mult4 00:1c23 UpdateGradeDMGT.combo10
00:1c73 UpdateGradeDMGT.mult3 00:1c34 UpdateGradeDMGT.combo5
00:1c78 UpdateGradeDMGT.mult2 00:1c45 UpdateGradeDMGT.combo1
00:1c7c UpdateGradeDMGT.mult1 00:1c54 UpdateGradeDMGT.prelevel
00:1c7d UpdateGradeDMGT.processgrade 00:1c63 UpdateGradeDMGT.single
00:1ca1 UpdateGradeDMGT.increasegrademaybe 00:1c73 UpdateGradeDMGT.double
00:1cc2 UpdateGradeDMGT.gotgm 00:1c84 UpdateGradeDMGT.adddonce
00:1ccd DecayGradeDMGT 00:1c88 UpdateGradeDMGT.triple
00:1ced DecayGradeDMGT.nodecay 00:1c99 UpdateGradeDMGT.addtonce
00:1cf2 DecayGradeDMGT.decay 00:1c9d UpdateGradeDMGT.tetris
00:1cfe UpdateGradeTGM1 00:1ca1 UpdateGradeDMGT.levelmult
00:1d08 UpdateGradeTGM1.trygradeup 00:1cb9 UpdateGradeDMGT.mult5
00:1d22 UpdateGradeTGM1.increasegrade 00:1cc0 UpdateGradeDMGT.mult4
00:1d34 UpdateGradeTGM1.skipjingle 00:1cc6 UpdateGradeDMGT.mult3
00:1d41 UpdateGradeTGM1.maybegm 00:1ccb UpdateGradeDMGT.mult2
00:1d57 UpdateGradeDEAT 00:1ccf UpdateGradeDMGT.mult1
00:1d63 UpdateGradeDEAT.notgm 00:1cd0 UpdateGradeDMGT.processgrade
00:1d7c UpdateGradeDEAT.notm 00:1cf6 UpdateGradeDMGT.increasegrademaybe
00:1d9c UpdateGradeDEAT.disqualify 00:1d17 UpdateGradeDMGT.gotgm
00:1da2 UpdateGradeSHIR 00:1d22 DecayGradeDMGT
00:1de2 UpdateGradeSHIR.s5torikan 00:1d46 DecayGradeDMGT.nodecay
00:1df2 UpdateGradeSHIR.s10torikan 00:1d4d DecayGradeDMGT.decay
00:1e01 UpdateGradeSHIR.disqualify 00:1d5b UpdateGradeTGM1
00:1e07 SFXInit 00:1d65 UpdateGradeTGM1.trygradeup
00:1e29 SFXPopQueue 00:1d7f UpdateGradeTGM1.increasegrade
00:1e3e SFXPushQueue 00:1d91 UpdateGradeTGM1.skipjingle
00:1e4f SFXProcessQueue 00:1d9e UpdateGradeTGM1.maybegm
00:1e7d SFXTriggerNoise 00:1db4 UpdateGradeDEAT
00:1ea3 SFXEnqueue 00:1dc0 UpdateGradeDEAT.notgm
00:1eb8 SFXEnqueue.findsfx 00:1dd9 UpdateGradeDEAT.notm
00:2011 SFXKill 00:1df9 UpdateGradeDEAT.disqualify
00:203c SFXPlayNoise 00:1dff UpdateGradeSHIR
00:2047 SFXPlayNoise.noisereg 00:1e3f UpdateGradeSHIR.s5torikan
00:205e SFXPlayNoise.savenoiseplayhead 00:1e4f UpdateGradeSHIR.s10torikan
00:2067 SFXPlay 00:1e5e UpdateGradeSHIR.disqualify
00:2075 SFXPlay.play 00:1e64 sTGM1GradeScores
00:2081 SFXPlay.getRegister 00:1e86 sTGM3InternalGradeSystem
00:2095 SFXPlay.savePlayhead 00:1f26 sTGM3GradeBoosts
00:209e RNGInit 00:1f45 sTGM3LevelMultiplier
00:20e9 RNGInit.complexinit 00:1f49 sTGM3BaselineCOOL
00:211a ShiftHistory 00:1f52 sTGM3REGRETConditions
00:2137 GetNextHellPiece 00:1f66 sDMGTGrading
00:213c GetNextTGM1Piece 00:201a sDMGTGaugeLUT
00:2159 GetNextTGM2Piece 00:211a SFXInit
00:2176 GetNextNesPiece 00:213c SFXPopQueue
00:2184 GetNextTGM3Piece 00:2151 SFXPushQueue
00:223b GetNextPiece 00:2162 SFXProcessQueue
00:2249 GetNextPiece.nextpiecejumps 00:2190 SFXTriggerNoise
00:2258 Next35Piece 00:21b6 SFXEnqueue
00:2262 Next7Piece 00:21cb SFXEnqueue.findsfx
00:226c NextByte 00:2324 SFXKill
00:228c sTGM1GradeScores 00:234f SFXPlayNoise
00:22ae sTGM3InternalGradeSystem 00:235a SFXPlayNoise.noisereg
00:234e sTGM3GradeBoosts 00:2371 SFXPlayNoise.savenoiseplayhead
00:236d sTGM3LevelMultiplier 00:237a SFXPlay
00:2371 sTGM3BaselineCOOL 00:2388 SFXPlay.play
00:237a sTGM3REGRETConditions 00:2394 SFXPlay.getRegister
00:238e sDMGTGrading 00:23a8 SFXPlay.savePlayhead
00:2442 LevelInit 00:23b1 RNGInit
00:2492 LevelUp 00:23fc RNGInit.complexinit
00:24b6 LevelUp.doit 00:242d ShiftHistory
00:24fa LevelUp.checknlevel 00:244a GetNextHellPiece
00:2549 LevelUp.bellmaybe 00:244f GetNextTGM1Piece
00:255b LevelUp.leveljinglemaybe 00:246c GetNextTGM2Piece
00:2568 LevelUp.checkspeedup 00:2489 GetNextNesPiece
00:25a4 DoSpeedUp 00:2497 GetNextTGM3Piece
00:25e5 ScoreInit 00:254e GetNextPiece
00:260d IncreaseScore 00:255c GetNextPiece.nextpiecejumps
00:2645 IncreaseScore.doConvert 00:256b Next35Piece
00:265d IncreaseScore.carry 00:2575 Next7Piece
00:265f IncreaseScore.postConvert 00:257f NextByte
00:2673 IncreaseScore.preAddDigit 00:259f LevelInit
00:269b IncreaseScore.addDigit 00:25ef LevelUp
00:26b1 IncreaseScore.nextDigit 00:2613 LevelUp.doit
00:26c5 InputInit 00:2657 LevelUp.checknlevel
00:26d7 GetInput 00:26a6 LevelUp.bellmaybe
00:26d7 GetInput.btns 00:26b8 LevelUp.leveljinglemaybe
00:26e4 GetInput.readA 00:26c5 LevelUp.checkspeedup
00:26e8 GetInput.setA 00:2701 DoSpeedUp
00:26f3 GetInput.clearA 00:2742 sProgressData
00:26f6 GetInput.readB 00:288c ScoreInit
00:26fa GetInput.setB 00:28b4 IncreaseScore
00:2705 GetInput.clearB 00:28ec IncreaseScore.doConvert
00:2708 GetInput.readSelect 00:2904 IncreaseScore.carry
00:270c GetInput.setSelect 00:2906 IncreaseScore.postConvert
00:2717 GetInput.clearSelect 00:291a IncreaseScore.preAddDigit
00:271a GetInput.readStart 00:2942 IncreaseScore.addDigit
00:271e GetInput.setStart 00:2958 IncreaseScore.nextDigit
00:2729 GetInput.clearStart 00:296c InputInit
00:272c GetInput.dpad 00:297e GetInput
00:2739 GetInput.readUp 00:297e GetInput.btns
00:273d GetInput.setUp 00:298b GetInput.readA
00:2748 GetInput.clearUp 00:298f GetInput.setA
00:274b GetInput.readDown 00:299a GetInput.clearA
00:274f GetInput.setDown 00:299d GetInput.readB
00:275a GetInput.clearDown 00:29a1 GetInput.setB
00:275d GetInput.readLeft 00:29ac GetInput.clearB
00:2761 GetInput.setLeft 00:29af GetInput.readSelect
00:276c GetInput.clearLeft 00:29b3 GetInput.setSelect
00:276f GetInput.readRight 00:29be GetInput.clearSelect
00:2773 GetInput.setRight 00:29c1 GetInput.readStart
00:277e GetInput.clearRight 00:29c5 GetInput.setStart
00:2781 GetInput.priorities 00:29d0 GetInput.clearStart
00:278c GetInput.zero 00:29d3 GetInput.dpad
00:2792 RestoreSRAM 00:29e0 GetInput.readUp
00:27eb InitializeSRAM 00:29e4 GetInput.setUp
00:2849 Main 00:29ef GetInput.clearUp
00:285e Main.wvr_u1 00:29f2 GetInput.readDown
00:2877 Main.notgbc 00:29f6 GetInput.setDown
00:28a6 Main.wvb_u2 00:2a01 GetInput.clearDown
00:28b1 EventLoop 00:2a04 GetInput.readLeft
00:28c7 EventLoop.eventloopjumps 00:2a08 GetInput.setLeft
00:28d0 EventLoopPostHandler 00:2a13 GetInput.clearLeft
00:28d2 EventLoopPostHandler.wvb_u3 00:2a16 GetInput.readRight
00:28e4 EventLoopPostHandler.vblankjumps 00:2a1a GetInput.setRight
00:28ed TimeInit 00:2a25 GetInput.clearRight
00:2902 ResetGameTime 00:2a28 GetInput.priorities
00:290d CheckTorikan 00:2a33 GetInput.zero
00:2924 CheckTorikan.failure 00:2a39 RestoreSRAM
00:2926 CheckTorikan.success 00:2a92 InitializeSRAM
00:2929 HandleTimers 00:2af0 SetProgress
00:2951 HandleTimers.go 00:2afb SetProgress.loop
00:2975 SwitchToTitle 00:2aff SetProgress.correct
00:297f TitleEventLoopHandler 00:2b26 SetProgress.wvr_u1
00:2989 TitleVBlankHandler 00:2b32 SetProgress.wvr_u2
00:2993 DrawOption6 00:2b40 SetProgress.wvr_u3
00:29e3 LoadTitleTiles 00:2b4c SetProgress.wvr_u4
00:2a01 LoadGameplayTiles 00:2b5a SetProgress.wvr_u5
00:2a17 LoadGameplayTiles.gbc 00:2b66 SetProgress.wvr_u6
00:2a26 LoadGameplayTiles.dmg 00:2b74 SetProgress.wvr_u7
00:2a35 sFramesToCS 00:2b80 SetProgress.wvr_u8
00:2a71 UnsafeMemCopy 00:2b8e SetProgress.wvr_u9
00:2a7a SafeMemCopy.wvr_u1 00:2b9a SetProgress.wvr_u10
00:2a7a SafeMemCopy 00:2ba2 Main
00:2a89 UnsafeMemSet 00:2bb7 Main.wvr_u1
00:2a91 SafeMemSet 00:2bd0 Main.notgbc
00:2a91 SafeMemSet.wvr_u2 00:2bff Main.wvb_u2
00:2a9f SwitchToGameplay 00:2c0a EventLoop
00:2aa9 SwitchToGameplayBig 00:2c20 EventLoop.eventloopjumps
00:2ab3 GamePlayEventLoopHandler 00:2c29 EventLoopPostHandler
00:2abd GamePlayBigEventLoopHandler 00:2c2b EventLoopPostHandler.wvb_u3
00:2ac7 CopyOAMHandler 00:2c3d EventLoopPostHandler.vblankjumps
00:2ad3 ClearOAM 00:2c46 TimeInit
00:2ae9 IntrInit 00:2c5b ResetGameTime
00:2aed InitializeLCDCInterrupt 00:2c66 CheckTorikan
00:2b02 OAMDMA 00:2c7d CheckTorikan.failure
00:2b0c OAMDMAEnd 00:2c7f CheckTorikan.success
00:2c82 HandleTimers
00:2caa HandleTimers.go
00:2cce SwitchToTitle
00:2cd8 TitleEventLoopHandler
00:2ce2 TitleVBlankHandler
00:2cec DrawOption6
00:2d3c LoadTitleTiles
00:2d5a LoadGameplayTiles
00:2d70 LoadGameplayTiles.gbc
00:2d7f LoadGameplayTiles.dmg
00:2d8e sFramesToCS
00:2dca UnsafeMemCopy
00:2dd3 SafeMemCopy.wvr_u1
00:2dd3 SafeMemCopy
00:2de2 UnsafeMemSet
00:2dea SafeMemSet
00:2dea SafeMemSet.wvr_u2
00:2df8 SwitchToGameplay
00:2e02 SwitchToGameplayBig
00:2e0c GamePlayEventLoopHandler
00:2e16 GamePlayBigEventLoopHandler
00:2e20 CopyOAMHandler
00:2e2c ClearOAM
00:2e42 IntrInit
00:2e46 InitializeLCDCInterrupt
00:2e5b OAMDMA
00:2e65 OAMDMAEnd
01:4008 sDMGTSpeedCurve 01:4008 sDMGTSpeedCurve
01:4210 sDMGTSpeedCurveEnd 01:4210 sDMGTSpeedCurveEnd
01:4212 sTGM1SpeedCurve 01:4212 sTGM1SpeedCurve
@ -1140,32 +1167,32 @@
05:5fed GamePlayEventLoopHandlerB.noretry 05:5fed GamePlayEventLoopHandlerB.noretry
05:5ffa GamePlayEventLoopHandlerB.pauseMode 05:5ffa GamePlayEventLoopHandlerB.pauseMode
05:6012 GamePlayEventLoopHandlerB.noqr 05:6012 GamePlayEventLoopHandlerB.noqr
05:6022 GamePlayEventLoopHandlerB.nounpause 05:6027 GamePlayEventLoopHandlerB.nounpause
05:60a6 GamePlayEventLoopHandlerB.drawStaticInfo 05:606f GamePlayEventLoopHandlerB.drawStaticInfo
05:60d7 DoHold 05:60a0 DoHold
05:60db DoHold.checkIRSA 05:60a4 DoHold.checkIRSA
05:60e2 DoHold.ldb3 05:60ab DoHold.ldb3
05:60ee DoHold.lda3 05:60b7 DoHold.lda3
05:60f8 DoHold.cp3 05:60c1 DoHold.cp3
05:6106 DoHold.checkIRSB 05:60cf DoHold.checkIRSB
05:610d DoHold.lda4 05:60d6 DoHold.lda4
05:6119 DoHold.ldb4 05:60e2 DoHold.ldb4
05:6123 DoHold.cp4 05:60ec DoHold.cp4
05:6131 DoHold.noRotation 05:60fa DoHold.noRotation
05:613c DoHold.doHoldOperation 05:6105 DoHold.doHoldOperation
05:6147 sLeftDasSlam 05:6110 sLeftDasSlam
05:614d sRightDasSlam 05:6116 sRightDasSlam
05:6153 sLeady 05:611c sLeady
05:615d sGo 05:6126 sGo
05:6167 sPause 05:6130 sPause
05:617b sPieceXOffsets 05:6158 sPieceXOffsets
05:6197 sPieceYOffsets 05:6174 sPieceYOffsets
05:61b3 sPieceFastRotationStates 05:6190 sPieceFastRotationStates
05:6223 sPieceRotationStates 05:6200 sPieceRotationStates
05:6293 sTGM3Bag 05:6270 sTGM3Bag
05:62b6 sTGM3Droughts 05:6293 sTGM3Droughts
05:62bd sGameplayTileMap 05:629a sGameplayTileMap
05:655d sGameplayTileMapEnd 05:653a sGameplayTileMapEnd
06:4008 BigFieldInit 06:4008 BigFieldInit
06:4049 BigFieldClear 06:4049 BigFieldClear
06:40ef BigToBackupField 06:40ef BigToBackupField
@ -1886,30 +1913,30 @@
06:6325 GamePlayBigEventLoopHandlerB.noretry 06:6325 GamePlayBigEventLoopHandlerB.noretry
06:6332 GamePlayBigEventLoopHandlerB.pauseMode 06:6332 GamePlayBigEventLoopHandlerB.pauseMode
06:634a GamePlayBigEventLoopHandlerB.noqr 06:634a GamePlayBigEventLoopHandlerB.noqr
06:6359 GamePlayBigEventLoopHandlerB.nounpause 06:635e GamePlayBigEventLoopHandlerB.nounpause
06:63d1 GamePlayBigEventLoopHandlerB.drawStaticInfo 06:63a6 GamePlayBigEventLoopHandlerB.drawStaticInfo
06:6402 BigDoHold 06:63d7 BigDoHold
06:6406 BigDoHold.checkIRSA 06:63db BigDoHold.checkIRSA
06:640d BigDoHold.ldb3 06:63e2 BigDoHold.ldb3
06:6419 BigDoHold.lda3 06:63ee BigDoHold.lda3
06:6423 BigDoHold.cp3 06:63f8 BigDoHold.cp3
06:6431 BigDoHold.checkIRSB 06:6406 BigDoHold.checkIRSB
06:6438 BigDoHold.lda4 06:640d BigDoHold.lda4
06:6444 BigDoHold.ldb4 06:6419 BigDoHold.ldb4
06:644e BigDoHold.cp4 06:6423 BigDoHold.cp4
06:645c BigDoHold.noRotation 06:6431 BigDoHold.noRotation
06:6467 BigDoHold.doHoldOperation 06:643c BigDoHold.doHoldOperation
06:6472 sBigLeftDasSlam 06:6447 sBigLeftDasSlam
06:6478 sBigRightDasSlam 06:644d sBigRightDasSlam
06:647e sBigLeady 06:6453 sBigLeady
06:6488 sBigGo 06:645d sBigGo
06:6492 sBigPause 06:6467 sBigPause
06:64a6 sBigPieceXOffsets 06:648f sBigPieceXOffsets
06:64c2 sBigPieceYOffsets 06:64ab sBigPieceYOffsets
06:64de sBigPieceFastRotationStates 06:64c7 sBigPieceFastRotationStates
06:654e sBigPieceRotationStates 06:6537 sBigPieceRotationStates
06:65be sBigGameplayTileMap 06:65a7 sBigGameplayTileMap
06:685e sBigGameplayTileMapEnd 06:6847 sBigGameplayTileMapEnd
00:a000 rCheck 00:a000 rCheck
00:a006 rSwapABState 00:a006 rSwapABState
00:a007 rRNGModeState 00:a007 rRNGModeState
@ -1993,23 +2020,33 @@
00:cd9a wDRate 00:cd9a wDRate
00:cd9b wTRate 00:cd9b wTRate
00:cd9c wQRate 00:cd9c wQRate
00:cd9d wSwapABState 00:cd9d wProgress0B1
00:cd9e wRNGModeState 00:cd9e wProgress0B2
00:cd9f wRotModeState 00:cd9f wProgress1B1
00:cda0 wDropModeState 00:cda0 wProgress1B2
00:cda1 wSpeedCurveState 00:cda1 wProgress2B1
00:cda2 wAlways20GState 00:cda2 wProgress2B2
00:cda3 wInitialA 00:cda3 wProgress3B1
00:cda4 wInitialB 00:cda4 wProgress3B2
00:cda5 wInitialC 00:cda5 wProgress4B1
00:cda6 wBankBackup 00:cda6 wProgress4B2
00:cdaa wOuterReps 00:cda7 wSwapABState
00:cdab wInnerReps 00:cda8 wRNGModeState
00:cdac wTitlePal 00:cda9 wRotModeState
00:cdad wMinutes 00:cdaa wDropModeState
00:cdae wSeconds 00:cdab wSpeedCurveState
00:cdaf wFrames 00:cdac wAlways20GState
00:cdb0 wSelected 00:cdad wInitialA
00:cdae wInitialB
00:cdaf wInitialC
00:cdb0 wBankBackup
00:cdb4 wOuterReps
00:cdb5 wInnerReps
00:cdb6 wTitlePal
00:cdb7 wMinutes
00:cdb8 wSeconds
00:cdb9 wFrames
00:cdba wSelected
00:ff80 hPieceDataBase 00:ff80 hPieceDataBase
00:ff82 hPieceDataBaseFast 00:ff82 hPieceDataBaseFast
00:ff84 hPieceDataOffset 00:ff84 hPieceDataOffset

View File

@ -208,6 +208,24 @@ sDMGTGrading:
db 5, 2, 8, 10, 20 ; Grade MM — frames/decay, single base, double base, triple base, tetris base db 5, 2, 8, 10, 20 ; Grade MM — frames/decay, single base, double base, triple base, tetris base
; No entry for GM. We're done there. ; No entry for GM. We're done there.
sDMGTGaugeLUT:
db 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3
db 3, 4, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 6, 7
db 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 10,10,10
db 10,10,11,11,11,11,11,12,12,12,12,13,13,13,13,13
db 14,14,14,14,14,15,15,15,15,16,16,16,16,16,17,17
db 17,17,17,18,18,18,18,19,19,19,19,19,20,20,20,20
db 20,21,21,21,21,21,22,22,22,22,23,23,23,23,23,24
db 24,24,24,24,25,25,25,25,26,26,26,26,26,27,27,27
db 27,27,28,28,28,28,29,29,29,29,29,30,30,30,30,31
db 31,31,31,31,32,32,32,32,32,32,32,32,32,32,32,32
db 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32
db 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32
db 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32
db 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32
db 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32
db 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32
SECTION "Grading Functions", ROM0 SECTION "Grading Functions", ROM0
; Wipe the grading variables. ; Wipe the grading variables.
GradeInit:: GradeInit::
@ -324,16 +342,26 @@ PrepareScore:
ld b, a ld b, a
ret ret
DrawGradeProgressDMGT::
ld hl, sDMGTGaugeLUT
ld a, [wGradeGauge]
ld b, 0
ld c, a
add hl, bc
ld a, [hl]
call SetProgress
ret
UpdateGradeDMGT:: UpdateGradeDMGT::
; Did we have line clears? ; Did we have line clears?
ldh a, [hLineClearCt] ldh a, [hLineClearCt]
cp a, 0 cp a, 0
ret z jp z, DrawGradeProgressDMGT
; Bail if we're already GM. ; Bail if we're already GM.
ld a, [wDisplayedGrade] ld a, [wDisplayedGrade]
cp a, GRADE_GM cp a, GRADE_GM
ret z jp z, DrawGradeProgressDMGT
; Get grade in BC. ; Get grade in BC.
ld b, 0 ld b, 0
@ -525,7 +553,7 @@ UpdateGradeDMGT::
call SFXEnqueue call SFXEnqueue
ld a, $0F ld a, $0F
ld [wEffectTimer], a ld [wEffectTimer], a
ret jp DrawGradeProgressDMGT
.increasegrademaybe .increasegrademaybe
; Do we have 150 in the gauge? ; Do we have 150 in the gauge?
@ -565,12 +593,12 @@ DecayGradeDMGT::
; Bail if the gauge is empty. ; Bail if the gauge is empty.
ld a, [wGradeGauge] ld a, [wGradeGauge]
cp a, 0 cp a, 0
ret z jp z, DrawGradeProgressDMGT
; Bail if we're already GM. ; Bail if we're already GM.
ld a, [wDisplayedGrade] ld a, [wDisplayedGrade]
cp a, GRADE_GM cp a, GRADE_GM
ret z jp z, DrawGradeProgressDMGT
; Get grade in BC. ; Get grade in BC.
ld b, 0 ld b, 0
@ -598,7 +626,7 @@ DecayGradeDMGT::
.nodecay .nodecay
ld a, b ld a, b
ld [wDecayCounter], a ld [wDecayCounter], a
ret jp DrawGradeProgressDMGT
; Yes, decay. ; Yes, decay.
.decay .decay
@ -607,7 +635,7 @@ DecayGradeDMGT::
ld [wGradeGauge], a ld [wGradeGauge], a
xor a, a xor a, a
ld [wDecayCounter], a ld [wDecayCounter], a
ret jp DrawGradeProgressDMGT
UpdateGradeTGM1: UpdateGradeTGM1:

358
src/progress.asm Normal file
View File

@ -0,0 +1,358 @@
; DMGTRIS
; Copyright (C) 2023 - Randy Thiemann <randy.thiemann@gmail.com>
; This program is free software: you can redistribute it and/or modify
; it under the terms of the GNU General Public License as published by
; the Free Software Foundation, either version 3 of the License, or
; (at your option) any later version.
; This program is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details.
; You should have received a copy of the GNU General Public License
; along with this program. If not, see <https://www.gnu.org/licenses/>.
IF !DEF(PROGRESS_ASM)
DEF PROGRESS_ASM EQU 1
INCLUDE "globals.asm"
DEF TILE_BAR_0 EQU 248
DEF TILE_BAR_1 EQU 249
DEF TILE_BAR_2 EQU 250
DEF TILE_BAR_3 EQU 251
DEF TILE_BAR_4 EQU 252
SECTION "Progress Data", ROM0
sProgressData:
db %00010000, %00110000 ; 0
db %00000000, %00000000
db %00000000, %00000000
db %00000000, %00000000
db %00000000, %00001000
db %00011000, %00111000 ; 1
db %00000000, %00000000
db %00000000, %00000000
db %00000000, %00000000
db %00000000, %00001000
db %00011100, %00111100 ; 2
db %00000000, %00000000
db %00000000, %00000000
db %00000000, %00000000
db %00000000, %00001000
db %00011110, %00111110 ; 3
db %00000000, %00000000
db %00000000, %00000000
db %00000000, %00000000
db %00000000, %00001000
db %00011111, %00111111 ; 4
db %00000000, %00000000
db %00000000, %00000000
db %00000000, %00000000
db %00000000, %00001000
db %00011111, %00111111 ; 5
db %10000000, %10000000
db %00000000, %00000000
db %00000000, %00000000
db %00000000, %00001000
db %00011111, %00111111 ; 6
db %11000000, %11000000
db %00000000, %00000000
db %00000000, %00000000
db %00000000, %00001000
db %00011111, %00111111 ; 7
db %11100000, %11100000
db %00000000, %00000000
db %00000000, %00000000
db %00000000, %00001000
db %00011111, %00111111 ; 8
db %11110000, %11110000
db %00000000, %00000000
db %00000000, %00000000
db %00000000, %00001000
db %00011111, %00111111 ; 9
db %11111000, %11111000
db %00000000, %00000000
db %00000000, %00000000
db %00000000, %00001000
db %00011111, %00111111 ; 10
db %11111100, %11111100
db %00000000, %00000000
db %00000000, %00000000
db %00000000, %00001000
db %00011111, %00111111 ; 11
db %11111110, %11111110
db %00000000, %00000000
db %00000000, %00000000
db %00000000, %00001000
db %00011111, %00111111 ; 12
db %11111111, %11111111
db %00000000, %00000000
db %00000000, %00000000
db %00000000, %00001000
db %00011111, %00111111 ; 13
db %11111111, %11111111
db %10000000, %10000000
db %00000000, %00000000
db %00000000, %00001000
db %00011111, %00111111 ; 14
db %11111111, %11111111
db %11000000, %11000000
db %00000000, %00000000
db %00000000, %00001000
db %00011111, %00111111 ; 15
db %11111111, %11111111
db %11100000, %11100000
db %00000000, %00000000
db %00000000, %00001000
db %00011111, %00111111 ; 16
db %11111111, %11111111
db %11110000, %11110000
db %00000000, %00000000
db %00000000, %00001000
db %00011111, %00111111 ; 17
db %11111111, %11111111
db %11111000, %11111000
db %00000000, %00000000
db %00000000, %00001000
db %00011111, %00111111 ; 18
db %11111111, %11111111
db %11111100, %11111100
db %00000000, %00000000
db %00000000, %00001000
db %00011111, %00111111 ; 19
db %11111111, %11111111
db %11111110, %11111110
db %00000000, %00000000
db %00000000, %00001000
db %00011111, %00111111 ; 20
db %11111111, %11111111
db %11111111, %11111111
db %00000000, %00000000
db %00000000, %00001000
db %00011111, %00111111 ; 21
db %11111111, %11111111
db %11111111, %11111111
db %10000000, %10000000
db %00000000, %00001000
db %00011111, %00111111 ; 22
db %11111111, %11111111
db %11111111, %11111111
db %11000000, %11000000
db %00000000, %00001000
db %00011111, %00111111 ; 23
db %11111111, %11111111
db %11111111, %11111111
db %11100000, %11100000
db %00000000, %00001000
db %00011111, %00111111 ; 24
db %11111111, %11111111
db %11111111, %11111111
db %11110000, %11110000
db %00000000, %00001000
db %00011111, %00111111 ; 25
db %11111111, %11111111
db %11111111, %11111111
db %11111000, %11111000
db %00000000, %00001000
db %00011111, %00111111 ; 26
db %11111111, %11111111
db %11111111, %11111111
db %11111100, %11111100
db %00000000, %00001000
db %00011111, %00111111 ; 27
db %11111111, %11111111
db %11111111, %11111111
db %11111110, %11111110
db %00000000, %00001000
db %00011111, %00111111 ; 28
db %11111111, %11111111
db %11111111, %11111111
db %11111111, %11111111
db %00000000, %00001000
db %00011111, %00111111 ; 29
db %11111111, %11111111
db %11111111, %11111111
db %11111111, %11111111
db %10000000, %10001000
db %00011111, %00111111 ; 30
db %11111111, %11111111
db %11111111, %11111111
db %11111111, %11111111
db %11000000, %11001000
db %00011111, %00111111 ; 31
db %11111111, %11111111
db %11111111, %11111111
db %11111111, %11111111
db %11100000, %11101000
db %00011111, %00111111 ; 32
db %11111111, %11111111
db %11111111, %11111111
db %11111111, %11111111
db %11110000, %11111000
SECTION "Progress Variables", WRAM0
wProgress0B1:: ds 1
wProgress0B2:: ds 1
wProgress1B1:: ds 1
wProgress1B2:: ds 1
wProgress2B1:: ds 1
wProgress2B2:: ds 1
wProgress3B1:: ds 1
wProgress3B2:: ds 1
wProgress4B1:: ds 1
wProgress4B2:: ds 1
SECTION "Progress Functions", ROM0
; Changes the tiles between the level counters to show some progress.
; Progress in A, 0-32.
SetProgress::
ld hl, sProgressData
cp a, 0
jr z, .correct
ld b, a
ld de, 10
.loop
add hl, de
dec b
jr nz, .loop
.correct
ld de, wProgress0B1
ld a, [hl+]
ld [de], a
inc de
ld a, [hl+]
ld [de], a
inc de
ld a, [hl+]
ld [de], a
inc de
ld a, [hl+]
ld [de], a
inc de
ld a, [hl+]
ld [de], a
inc de
ld a, [hl+]
ld [de], a
inc de
ld a, [hl+]
ld [de], a
inc de
ld a, [hl+]
ld [de], a
inc de
ld a, [hl+]
ld [de], a
inc de
ld a, [hl+]
ld [de], a
ld hl, _VRAM + (TILE_BAR_0*16) + (3*2)
ld a, [wProgress0B1]
ld b, a
wait_vram
ld [hl], b
inc hl
ld a, [wProgress0B2]
ld b, a
wait_vram
ld [hl], b
ld hl, _VRAM + (TILE_BAR_1*16) + (3*2)
ld a, [wProgress1B1]
ld b, a
wait_vram
ld [hl], b
inc hl
ld a, [wProgress1B2]
ld b, a
wait_vram
ld [hl], b
ld hl, _VRAM + (TILE_BAR_2*16) + (3*2)
ld a, [wProgress2B1]
ld b, a
wait_vram
ld [hl], b
inc hl
ld a, [wProgress2B2]
ld b, a
wait_vram
ld [hl], b
ld hl, _VRAM + (TILE_BAR_3*16) + (3*2)
ld a, [wProgress3B1]
ld b, a
wait_vram
ld [hl], b
inc hl
ld a, [wProgress3B2]
ld b, a
wait_vram
ld [hl], b
ld hl, _VRAM + (TILE_BAR_4*16) + (3*2)
ld a, [wProgress4B1]
ld b, a
wait_vram
ld [hl], b
inc hl
ld a, [wProgress4B2]
ld b, a
wait_vram
ld [hl], b
ret
ENDC

View File

@ -45,7 +45,9 @@ sBigGo:: db " GO "
sBigPause:: sBigPause::
db "P A U S E " db "P A U S E "
db " "
db " P A U S E" db " P A U S E"
db " "
sBigPieceXOffsets:: ; How to draw each piece. X-offsets of the sprites. sBigPieceXOffsets:: ; How to draw each piece. X-offsets of the sprites.
db 0, 8, 16, 24 ; I db 0, 8, 16, 24 ; I
@ -312,7 +314,7 @@ sBigGameplayTileMap::
DB $01,$01,$6D,$01,$01,$01,$01,$01,$6F,$01 DB $01,$01,$6D,$01,$01,$01,$01,$01,$6F,$01
DB $01,$6F,$00,$00,$00,$00,$00,$00,$00,$00 DB $01,$6F,$00,$00,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$01,$01,$01,$01,$01,$01 DB $00,$00,$00,$00,$01,$01,$01,$01,$01,$01
DB $01,$01,$01,$01,$6D,$F2,$72,$72,$72,$F3 DB $01,$01,$01,$01,$6D,$F8,$F9,$FA,$FB,$FC
DB $6F,$01,$01,$6F,$00,$00,$00,$00,$00,$00 DB $6F,$01,$01,$6F,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$00,$00,$01,$01,$01,$01 DB $00,$00,$00,$00,$00,$00,$01,$01,$01,$01
DB $01,$01,$01,$01,$01,$01,$6D,$01,$01,$01 DB $01,$01,$01,$01,$01,$01,$6D,$01,$01,$01

View File

@ -45,7 +45,9 @@ sGo:: db " GO "
sPause:: sPause::
db "P A U S E " db "P A U S E "
db " "
db " P A U S E" db " P A U S E"
db " "
sPieceXOffsets:: ; How to draw each piece. X-offsets of the sprites. sPieceXOffsets:: ; How to draw each piece. X-offsets of the sprites.
db 0, 8, 16, 24 ; I db 0, 8, 16, 24 ; I
@ -324,7 +326,7 @@ sGameplayTileMap::
DB $01,$01,$6D,$01,$01,$01,$01,$01,$6F,$01 DB $01,$01,$6D,$01,$01,$01,$01,$01,$6F,$01
DB $01,$6F,$00,$00,$00,$00,$00,$00,$00,$00 DB $01,$6F,$00,$00,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$01,$01,$01,$01,$01,$01 DB $00,$00,$00,$00,$01,$01,$01,$01,$01,$01
DB $01,$01,$01,$01,$6D,$F2,$72,$72,$72,$F3 DB $01,$01,$01,$01,$6D,$F8,$F9,$FA,$FB,$FC
DB $6F,$01,$01,$6F,$00,$00,$00,$00,$00,$00 DB $6F,$01,$01,$6F,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$00,$00,$01,$01,$01,$01 DB $00,$00,$00,$00,$00,$00,$01,$01,$01,$01
DB $01,$01,$01,$01,$01,$01,$6D,$01,$01,$01 DB $01,$01,$01,$01,$01,$01,$6D,$01,$01,$01

View File

@ -1532,10 +1532,10 @@ sGameplayTilesM::
DB $1C,$14,$9C,$94,$1C,$14,$00,$00 DB $1C,$14,$9C,$94,$1C,$14,$00,$00
DB $DC,$D4,$1C,$14,$1C,$14,$1C,$14 DB $DC,$D4,$1C,$14,$1C,$14,$1C,$14
DB $1C,$14,$1C,$14,$1C,$14,$00,$00 DB $1C,$14,$1C,$14,$1C,$14,$00,$00
DB $00,$00,$00,$00,$00,$1F,$1F,$3F DB $00,$00,$00,$00,$00,$00,$00,$00
DB $00,$1F,$00,$00,$00,$00,$00,$00 DB $00,$00,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$00,$F0,$F0,$F8 DB $00,$00,$00,$00,$00,$00,$00,$00
DB $00,$F0,$00,$00,$00,$00,$00,$00 DB $00,$00,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$F7,$F7,$FF,$08 DB $00,$00,$00,$00,$F7,$F7,$FF,$08
DB $FF,$E3,$1C,$14,$1C,$14,$00,$00 DB $FF,$E3,$1C,$14,$1C,$14,$00,$00
DB $1C,$14,$1C,$14,$FF,$E3,$FF,$08 DB $1C,$14,$1C,$14,$FF,$E3,$FF,$08
@ -1544,16 +1544,16 @@ sGameplayTilesM::
DB $F8,$08,$FC,$E4,$1C,$14,$00,$00 DB $F8,$08,$FC,$E4,$1C,$14,$00,$00
DB $00,$00,$00,$00,$00,$00,$FF,$FF DB $00,$00,$00,$00,$00,$00,$FF,$FF
DB $FF,$00,$FF,$FF,$00,$00,$00,$00 DB $FF,$00,$FF,$FF,$00,$00,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00 DB $00,$00,$00,$00,$00,$1F,$00,$20
DB $00,$00,$00,$00,$00,$00,$00,$00 DB $00,$1F,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00 DB $00,$00,$00,$00,$00,$FF,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00 DB $00,$FF,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00 DB $00,$00,$00,$00,$00,$FF,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00 DB $00,$FF,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00 DB $00,$00,$00,$00,$00,$FF,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00 DB $00,$FF,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00 DB $00,$00,$00,$00,$00,$F0,$00,$08
DB $00,$00,$00,$00,$00,$00,$00,$00 DB $00,$F0,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00 DB $00,$00,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00 DB $00,$00,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00 DB $00,$00,$00,$00,$00,$00,$00,$00
@ -1951,10 +1951,10 @@ sGameplayTilesC::
DB $1C,$14,$9C,$94,$1C,$14,$00,$00 DB $1C,$14,$9C,$94,$1C,$14,$00,$00
DB $DC,$D4,$1C,$14,$1C,$14,$1C,$14 DB $DC,$D4,$1C,$14,$1C,$14,$1C,$14
DB $1C,$14,$1C,$14,$1C,$14,$00,$00 DB $1C,$14,$1C,$14,$1C,$14,$00,$00
DB $00,$00,$00,$00,$00,$1F,$1F,$3F DB $00,$00,$00,$00,$00,$00,$00,$00
DB $00,$1F,$00,$00,$00,$00,$00,$00 DB $00,$00,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$00,$F0,$F0,$F8 DB $00,$00,$00,$00,$00,$00,$00,$00
DB $00,$F0,$00,$00,$00,$00,$00,$00 DB $00,$00,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$F7,$F7,$FF,$08 DB $00,$00,$00,$00,$F7,$F7,$FF,$08
DB $FF,$E3,$1C,$14,$1C,$14,$00,$00 DB $FF,$E3,$1C,$14,$1C,$14,$00,$00
DB $1C,$14,$1C,$14,$FF,$E3,$FF,$08 DB $1C,$14,$1C,$14,$FF,$E3,$FF,$08
@ -1963,16 +1963,16 @@ sGameplayTilesC::
DB $F8,$08,$FC,$E4,$1C,$14,$00,$00 DB $F8,$08,$FC,$E4,$1C,$14,$00,$00
DB $00,$00,$00,$00,$00,$00,$FF,$FF DB $00,$00,$00,$00,$00,$00,$FF,$FF
DB $FF,$00,$FF,$FF,$00,$00,$00,$00 DB $FF,$00,$FF,$FF,$00,$00,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00 DB $00,$00,$00,$00,$00,$1F,$00,$20
DB $00,$00,$00,$00,$00,$00,$00,$00 DB $00,$1F,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00 DB $00,$00,$00,$00,$00,$FF,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00 DB $00,$FF,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00 DB $00,$00,$00,$00,$00,$FF,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00 DB $00,$FF,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00 DB $00,$00,$00,$00,$00,$FF,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00 DB $00,$FF,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00 DB $00,$00,$00,$00,$00,$F0,$00,$08
DB $00,$00,$00,$00,$00,$00,$00,$00 DB $00,$F0,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00 DB $00,$00,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00 DB $00,$00,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00 DB $00,$00,$00,$00,$00,$00,$00,$00

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -606,91 +606,113 @@ ApplyNumbers8::
ld bc, 4 ld bc, 4
ld a, [de] ld a, [de]
add a, TILE_0 cp a, 0
jr nz, .one
ld a, TILE_BLANK
ld [hl], a ld [hl], a
add hl, bc add hl, bc
inc de inc de
ld a, [de]
cp a, 0
jr nz, .two
ld a, TILE_BLANK
ld [hl], a
add hl, bc
inc de
ld a, [de]
cp a, 0
jr nz, .three
ld a, TILE_BLANK
ld [hl], a
add hl, bc
inc de
ld a, [de]
cp a, 0
jr nz, .four
ld a, TILE_BLANK
ld [hl], a
add hl, bc
inc de
ld a, [de]
cp a, 0
jr nz, .five
ld a, TILE_BLANK
ld [hl], a
add hl, bc
inc de
ld a, [de]
cp a, 0
jr nz, .six
ld a, TILE_BLANK
ld [hl], a
add hl, bc
inc de
ld a, [de]
cp a, 0
jr nz, .seven
ld a, TILE_BLANK
ld [hl], a
add hl, bc
inc de
jr .eight
.one
ld a, [de] ld a, [de]
add a, TILE_0 add a, TILE_0
ld [hl], a ld [hl], a
add hl, bc add hl, bc
inc de inc de
.two
ld a, [de] ld a, [de]
add a, TILE_0 add a, TILE_0
ld [hl], a ld [hl], a
add hl, bc add hl, bc
inc de inc de
.three
ld a, [de] ld a, [de]
add a, TILE_0 add a, TILE_0
ld [hl], a ld [hl], a
add hl, bc add hl, bc
inc de inc de
.four
ld a, [de] ld a, [de]
add a, TILE_0 add a, TILE_0
ld [hl], a ld [hl], a
add hl, bc add hl, bc
inc de inc de
.five
ld a, [de] ld a, [de]
add a, TILE_0 add a, TILE_0
ld [hl], a ld [hl], a
add hl, bc add hl, bc
inc de inc de
.six
ld a, [de] ld a, [de]
add a, TILE_0 add a, TILE_0
ld [hl], a ld [hl], a
add hl, bc add hl, bc
inc de inc de
ld a, [de] .seven
add a, TILE_0
ld [hl], a
ret
; Generic function to draw a BCD number (6 digits) as 6 sprites.
; Address of first sprite in hl.
; Address of first digit in de.
ApplyNumbers6::
inc hl
inc hl
ld bc, 4
ld a, [de]
add a, TILE_0
ld [hl], a
add hl, bc
inc de
ld a, [de]
add a, TILE_0
ld [hl], a
add hl, bc
inc de
ld a, [de]
add a, TILE_0
ld [hl], a
add hl, bc
inc de
ld a, [de]
add a, TILE_0
ld [hl], a
add hl, bc
inc de
ld a, [de] ld a, [de]
add a, TILE_0 add a, TILE_0
ld [hl], a ld [hl], a
add hl, bc add hl, bc
inc de inc de
.eight
ld a, [de] ld a, [de]
add a, TILE_0 add a, TILE_0
ld [hl], a ld [hl], a
@ -706,23 +728,53 @@ ApplyNumbers4::
ld bc, 4 ld bc, 4
ld a, [de] ld a, [de]
add a, TILE_0 cp a, 0
jr nz, .one
ld a, TILE_BLANK
ld [hl], a ld [hl], a
add hl, bc add hl, bc
inc de inc de
ld a, [de]
cp a, 0
jr nz, .two
ld a, TILE_BLANK
ld [hl], a
add hl, bc
inc de
ld a, [de]
cp a, 0
jr nz, .three
ld a, TILE_BLANK
ld [hl], a
add hl, bc
inc de
jr .four
.one
ld a, [de] ld a, [de]
add a, TILE_0 add a, TILE_0
ld [hl], a ld [hl], a
add hl, bc add hl, bc
inc de inc de
.two
ld a, [de] ld a, [de]
add a, TILE_0 add a, TILE_0
ld [hl], a ld [hl], a
add hl, bc add hl, bc
inc de inc de
.three
ld a, [de]
add a, TILE_0
ld [hl], a
add hl, bc
inc de
.four
ld a, [de] ld a, [de]
add a, TILE_0 add a, TILE_0
ld [hl], a ld [hl], a

View File

@ -556,58 +556,41 @@ GamePlayEventLoopHandlerB::
call FromBackupField call FromBackupField
ldh a, [hPrePause] ldh a, [hPrePause]
ldh [hMode], a ldh [hMode], a
xor a, a
ldh [hLeftState], a
ldh [hRightState], a
jp .drawStaticInfo jp .drawStaticInfo
; Draw PAUSE all over the field. ; Draw PAUSE all over the field.
.nounpause .nounpause
ld de, sPause
ld hl, wField+(0*10)
ld bc, 40
call UnsafeMemCopy
ld de, sPause ld de, sPause
ld hl, wField+(4*10) ld hl, wField+(4*10)
ld bc, 20 ld bc, 40
call UnsafeMemCopy
ld de, sPause
ld hl, wField+(2*10)
ld bc, 20
call UnsafeMemCopy
ld de, sPause
ld hl, wField+(6*10)
ld bc, 20
call UnsafeMemCopy call UnsafeMemCopy
ld de, sPause ld de, sPause
ld hl, wField+(8*10) ld hl, wField+(8*10)
ld bc, 20 ld bc, 40
call UnsafeMemCopy
ld de, sPause
ld hl, wField+(10*10)
ld bc, 20
call UnsafeMemCopy call UnsafeMemCopy
ld de, sPause ld de, sPause
ld hl, wField+(12*10) ld hl, wField+(12*10)
ld bc, 20 ld bc, 40
call UnsafeMemCopy
ld de, sPause
ld hl, wField+(14*10)
ld bc, 20
call UnsafeMemCopy call UnsafeMemCopy
ld de, sPause ld de, sPause
ld hl, wField+(16*10) ld hl, wField+(16*10)
ld bc, 20 ld bc, 40
call UnsafeMemCopy
ld de, sPause
ld hl, wField+(18*10)
ld bc, 20
call UnsafeMemCopy call UnsafeMemCopy
ld de, sPause ld de, sPause
ld hl, wField+(20*10) ld hl, wField+(20*10)
ld bc, 20 ld bc, 40
call UnsafeMemCopy
ld de, sPause
ld hl, wField+(22*10)
ld bc, 20
call UnsafeMemCopy call UnsafeMemCopy
; Always draw the score, level, next piece, and held piece. ; Always draw the score, level, next piece, and held piece.
.drawStaticInfo: .drawStaticInfo
ldh a, [hNextPiece] ldh a, [hNextPiece]
call ApplyNext call ApplyNext
@ -1192,49 +1175,36 @@ GamePlayBigEventLoopHandlerB:
call BigFromBackupField call BigFromBackupField
ldh a, [hPrePause] ldh a, [hPrePause]
ldh [hMode], a ldh [hMode], a
xor a, a
ldh [hLeftState], a
ldh [hRightState], a
jr .drawStaticInfo jr .drawStaticInfo
; Draw PAUSE all over the field. ; Draw PAUSE all over the field.
.nounpause .nounpause
ld de, sBigPause ld de, sBigPause
ld hl, wWideBlittedField ld hl, wWideBlittedField+(0*10)
ld bc, 20 ld bc, 40
call UnsafeMemCopy call UnsafeMemCopy
ld de, sBigPause ld de, sBigPause
ld hl, wWideBlittedField+20 ld hl, wWideBlittedField+(4*10)
ld bc, 20 ld bc, 40
call UnsafeMemCopy call UnsafeMemCopy
ld de, sBigPause ld de, sBigPause
ld hl, wWideBlittedField+40 ld hl, wWideBlittedField+(8*10)
ld bc, 20 ld bc, 40
call UnsafeMemCopy call UnsafeMemCopy
ld de, sBigPause ld de, sBigPause
ld hl, wWideBlittedField+60 ld hl, wWideBlittedField+(12*10)
ld bc, 20 ld bc, 40
call UnsafeMemCopy call UnsafeMemCopy
ld de, sBigPause ld de, sBigPause
ld hl, wWideBlittedField+80 ld hl, wWideBlittedField+(16*10)
ld bc, 20 ld bc, 40
call UnsafeMemCopy call UnsafeMemCopy
ld de, sBigPause ld de, sBigPause
ld hl, wWideBlittedField+100 ld hl, wWideBlittedField+(20*10)
ld bc, 20 ld bc, 40
call UnsafeMemCopy
ld de, sBigPause
ld hl, wWideBlittedField+120
ld bc, 20
call UnsafeMemCopy
ld de, sBigPause
ld hl, wWideBlittedField+140
ld bc, 20
call UnsafeMemCopy
ld de, sBigPause
ld hl, wWideBlittedField+160
ld bc, 20
call UnsafeMemCopy
ld de, sBigPause
ld hl, wWideBlittedField+180
ld bc, 20
call UnsafeMemCopy call UnsafeMemCopy