Add progress bar.
This commit is contained in:
parent
80a1907224
commit
190c403e80
BIN
bin/DMGTRIS.GBC
BIN
bin/DMGTRIS.GBC
Binary file not shown.
744
bin/DMGTRIS.map
744
bin/DMGTRIS.map
|
@ -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.
549
bin/DMGTRIS.sym
549
bin/DMGTRIS.sym
|
@ -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
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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.
Binary file not shown.
132
src/sprites.asm
132
src/sprites.asm
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue