Add virtual leveling.
This commit is contained in:
		
							parent
							
								
									865a8b52ce
								
							
						
					
					
						commit
						29eea6a428
					
				| 
						 | 
					@ -152,6 +152,7 @@ Thanks for playtesting and debugging go to:
 | 
				
			||||||
- AntonErgo
 | 
					- AntonErgo
 | 
				
			||||||
- Lindtobias
 | 
					- Lindtobias
 | 
				
			||||||
- \_Zaphod77\_
 | 
					- \_Zaphod77\_
 | 
				
			||||||
 | 
					- bbbbbr
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## License
 | 
					## License
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								bin/DMGTRIS.GBC
								
								
								
								
							
							
						
						
									
										
											BIN
										
									
								
								bin/DMGTRIS.GBC
								
								
								
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										893
									
								
								bin/DMGTRIS.map
								
								
								
								
							
							
						
						
									
										893
									
								
								bin/DMGTRIS.map
								
								
								
								
							| 
						 | 
					@ -301,291 +301,299 @@ ROM0 bank #0:
 | 
				
			||||||
	         $2663 = UpdateGradeSHIR.disqualify
 | 
						         $2663 = UpdateGradeSHIR.disqualify
 | 
				
			||||||
	         $2672 = UpdateGradeSHIR.l1000
 | 
						         $2672 = UpdateGradeSHIR.l1000
 | 
				
			||||||
	         $2688 = UpdateGradeSHIR.l500
 | 
						         $2688 = UpdateGradeSHIR.l500
 | 
				
			||||||
	SECTION: $269e-$2a16 ($0379 bytes) ["Level Functions"]
 | 
						SECTION: $269e-$2a80 ($03e3 bytes) ["Level Functions"]
 | 
				
			||||||
	         $269e = LevelInit
 | 
						         $269e = LevelInit
 | 
				
			||||||
	         $2703 = SpecialLevelInit
 | 
						         $270e = SpecialLevelInit
 | 
				
			||||||
	         $2711 = SpecialLevelInit.jumps
 | 
						         $271c = SpecialLevelInit.jumps
 | 
				
			||||||
	         $2726 = SpecialLevelInit.dmgt
 | 
						         $2731 = SpecialLevelInit.dmgt
 | 
				
			||||||
	         $272b = SpecialLevelInit.tgm1
 | 
						         $2736 = SpecialLevelInit.tgm1
 | 
				
			||||||
	         $2730 = SpecialLevelInit.tgm3
 | 
						         $273b = SpecialLevelInit.tgm3
 | 
				
			||||||
	         $2735 = SpecialLevelInit.deat
 | 
						         $2740 = SpecialLevelInit.deat
 | 
				
			||||||
	         $273a = SpecialLevelInit.shir
 | 
						         $2745 = SpecialLevelInit.shir
 | 
				
			||||||
	         $273f = SpecialLevelInit.chil
 | 
						         $274a = SpecialLevelInit.chil
 | 
				
			||||||
	         $2744 = SpecialLevelInit.myco
 | 
						         $274f = SpecialLevelInit.myco
 | 
				
			||||||
	         $2749 = SpecialLevelInit.loaddata
 | 
						         $2754 = SpecialLevelInit.loaddata
 | 
				
			||||||
	         $277e = LevelUp
 | 
						         $2789 = LevelUp
 | 
				
			||||||
	         $27a8 = LevelUp.doit
 | 
						         $27b3 = LevelUp.doit
 | 
				
			||||||
	         $27ea = LevelUp.checknlevel
 | 
						         $27f2 = LevelUp.checknlevel
 | 
				
			||||||
	         $281b = !0
 | 
						         $2823 = !0
 | 
				
			||||||
	         $2833 = !1
 | 
						         $283b = !1
 | 
				
			||||||
	         $283c = LevelUp.bellmaybe
 | 
						         $2844 = LevelUp.bellmaybe
 | 
				
			||||||
	         $2858 = LevelUp.leveljinglemaybe
 | 
						         $2860 = LevelUp.leveljinglemaybe
 | 
				
			||||||
	         $2868 = LevelUp.checkspeedup
 | 
						         $2870 = AdjustSpeedCurve
 | 
				
			||||||
	         $287c = !2
 | 
						         $2876 = AdjustSpeedCurve.docheck
 | 
				
			||||||
	         $2889 = !3
 | 
						         $2876 = AdjustSpeedCurve.checkthousands
 | 
				
			||||||
	         $289a = !4
 | 
						         $2885 = AdjustSpeedCurve.checkhundreds
 | 
				
			||||||
	         $28a7 = DoSpeedUp
 | 
						         $2892 = AdjustSpeedCurve.checktens
 | 
				
			||||||
	         $28e8 = CheckSpecialLevelConditions
 | 
						         $28a1 = AdjustSpeedCurve.checkones
 | 
				
			||||||
	         $2919 = CheckSpecialLevelConditions.override
 | 
						         $28ac = AdjustSpeedCurveForced
 | 
				
			||||||
	         $2934 = CheckSpecialLevelConditions.nooverride
 | 
						         $28e9 = AdjustSpeedCurveForced.continue
 | 
				
			||||||
	         $293a = CheckSpecialLevelConditions.speciallock
 | 
						         $28ee = BuildTrueCLevel
 | 
				
			||||||
	         $295e = CheckSpecialLevelConditions.bones
 | 
						         $2917 = BuildTrueCLevel.thousands
 | 
				
			||||||
	         $2973 = CheckSpecialLevelConditions.enterthebonezone
 | 
						         $292c = CheckSpecialLevelConditions
 | 
				
			||||||
	         $2978 = CheckSpecialLevelConditions.invis
 | 
						         $295d = CheckSpecialLevelConditions.override
 | 
				
			||||||
	         $298d = CheckSpecialLevelConditions.vanishoxyaction
 | 
						         $2978 = CheckSpecialLevelConditions.nooverride
 | 
				
			||||||
	         $2992 = CheckSpecialLevelConditions.killscreen
 | 
						         $297e = CheckSpecialLevelConditions.speciallock
 | 
				
			||||||
	         $29a3 = CheckSpecialLevelConditions.rip
 | 
						         $29a2 = CheckSpecialLevelConditions.bones
 | 
				
			||||||
	         $29d3 = CheckSpecialLevelConditions.staffroll
 | 
						         $29b7 = CheckSpecialLevelConditions.enterthebonezone
 | 
				
			||||||
	         $29e1 = CheckSpecialLevelConditions.justkill
 | 
						         $29bc = CheckSpecialLevelConditions.invis
 | 
				
			||||||
	         $29f5 = TriggerKillScreen
 | 
						         $29d1 = CheckSpecialLevelConditions.vanishoxyaction
 | 
				
			||||||
	SECTION: $2a17-$2ccc ($02b6 bytes) ["Grading Data"]
 | 
						         $29d6 = CheckSpecialLevelConditions.killscreen
 | 
				
			||||||
	         $2a17 = sTGM1GradeScores
 | 
						         $29e7 = CheckSpecialLevelConditions.rip
 | 
				
			||||||
	         $2a39 = sTGM3InternalGradeSystem
 | 
						         $2a17 = CheckSpecialLevelConditions.staffroll
 | 
				
			||||||
	         $2ad9 = sTGM3GradeBoosts
 | 
						         $2a25 = CheckSpecialLevelConditions.justkill
 | 
				
			||||||
	         $2af8 = sTGM3LevelMultiplier
 | 
						         $2a39 = TriggerKillScreen
 | 
				
			||||||
	         $2afc = sTGM3BaselineCOOL
 | 
						         $2a5b = GetSection
 | 
				
			||||||
	         $2b05 = sTGM3REGRETConditions
 | 
						         $2a6c = GetSectionBCD
 | 
				
			||||||
	         $2b19 = sDMGTGrading
 | 
						         $2a75 = SkipSection
 | 
				
			||||||
	         $2bcd = sDMGTGaugeLUT
 | 
						SECTION: $2a81-$2d36 ($02b6 bytes) ["Grading Data"]
 | 
				
			||||||
	SECTION: $2ccd-$2f6c ($02a0 bytes) ["SFX Functions"]
 | 
						         $2a81 = sTGM1GradeScores
 | 
				
			||||||
	         $2ccd = SFXInit
 | 
						         $2aa3 = sTGM3InternalGradeSystem
 | 
				
			||||||
	         $2cef = SFXPopQueue
 | 
						         $2b43 = sTGM3GradeBoosts
 | 
				
			||||||
	         $2d04 = SFXPushQueue
 | 
						         $2b62 = sTGM3LevelMultiplier
 | 
				
			||||||
	         $2d15 = SFXProcessQueue
 | 
						         $2b66 = sTGM3BaselineCOOL
 | 
				
			||||||
	         $2d26 = !0
 | 
						         $2b6f = sTGM3REGRETConditions
 | 
				
			||||||
	         $2d41 = !1
 | 
						         $2b83 = sDMGTGrading
 | 
				
			||||||
	         $2d43 = SFXTriggerNoise
 | 
						         $2c37 = sDMGTGaugeLUT
 | 
				
			||||||
	         $2d50 = !2
 | 
						SECTION: $2d37-$2fd6 ($02a0 bytes) ["SFX Functions"]
 | 
				
			||||||
	         $2d5d = !3
 | 
						         $2d37 = SFXInit
 | 
				
			||||||
	         $2d69 = SFXEnqueue
 | 
						         $2d59 = SFXPopQueue
 | 
				
			||||||
	         $2d7e = SFXEnqueue.findsfx
 | 
						         $2d6e = SFXPushQueue
 | 
				
			||||||
	         $2d93 = !4
 | 
						         $2d7f = SFXProcessQueue
 | 
				
			||||||
	         $2da3 = !5
 | 
						         $2d90 = !0
 | 
				
			||||||
	         $2db3 = !6
 | 
						         $2dab = !1
 | 
				
			||||||
	         $2dc3 = !7
 | 
						         $2dad = SFXTriggerNoise
 | 
				
			||||||
	         $2dd3 = !8
 | 
						         $2dba = !2
 | 
				
			||||||
	         $2de3 = !9
 | 
						         $2dc7 = !3
 | 
				
			||||||
	         $2df3 = !10
 | 
						         $2dd3 = SFXEnqueue
 | 
				
			||||||
	         $2e03 = !11
 | 
						         $2de8 = SFXEnqueue.findsfx
 | 
				
			||||||
	         $2e13 = !12
 | 
						         $2dfd = !4
 | 
				
			||||||
	         $2e23 = !13
 | 
						         $2e0d = !5
 | 
				
			||||||
	         $2e33 = !14
 | 
						         $2e1d = !6
 | 
				
			||||||
	         $2e43 = !15
 | 
						         $2e2d = !7
 | 
				
			||||||
	         $2e53 = !16
 | 
						         $2e3d = !8
 | 
				
			||||||
	         $2e63 = !17
 | 
						         $2e4d = !9
 | 
				
			||||||
	         $2e73 = !18
 | 
						         $2e5d = !10
 | 
				
			||||||
	         $2e82 = !19
 | 
						         $2e6d = !11
 | 
				
			||||||
	         $2e91 = !20
 | 
						         $2e7d = !12
 | 
				
			||||||
	         $2ea0 = !21
 | 
						         $2e8d = !13
 | 
				
			||||||
	         $2eaf = !22
 | 
						         $2e9d = !14
 | 
				
			||||||
	         $2ebd = !23
 | 
						         $2ead = !15
 | 
				
			||||||
	         $2ecb = !24
 | 
						         $2ebd = !16
 | 
				
			||||||
	         $2ed8 = SFXKill
 | 
						         $2ecd = !17
 | 
				
			||||||
	         $2f0b = SFXPlayNoise
 | 
						         $2edd = !18
 | 
				
			||||||
	         $2f16 = SFXPlayNoise.noisereg
 | 
						         $2eec = !19
 | 
				
			||||||
	         $2f23 = !25
 | 
						         $2efb = !20
 | 
				
			||||||
	         $2f2d = SFXPlayNoise.savenoiseplayhead
 | 
						         $2f0a = !21
 | 
				
			||||||
	         $2f36 = SFXPlay
 | 
						         $2f19 = !22
 | 
				
			||||||
	         $2f41 = !26
 | 
						         $2f27 = !23
 | 
				
			||||||
	         $2f44 = SFXPlay.play
 | 
						         $2f35 = !24
 | 
				
			||||||
	         $2f50 = SFXPlay.getRegister
 | 
						         $2f42 = SFXKill
 | 
				
			||||||
	         $2f5a = !27
 | 
						         $2f75 = SFXPlayNoise
 | 
				
			||||||
	         $2f64 = SFXPlay.savePlayhead
 | 
						         $2f80 = SFXPlayNoise.noisereg
 | 
				
			||||||
	SECTION: $2f6d-$319d ($0231 bytes) ["RNG Functions"]
 | 
						         $2f8d = !25
 | 
				
			||||||
	         $2f6d = HarvestEntropy
 | 
						         $2f97 = SFXPlayNoise.savenoiseplayhead
 | 
				
			||||||
	         $2f73 = HarvestEntropy.loop
 | 
						         $2fa0 = SFXPlay
 | 
				
			||||||
	         $2f94 = RNGInit
 | 
						         $2fab = !26
 | 
				
			||||||
	         $2fca = !0
 | 
						         $2fae = SFXPlay.play
 | 
				
			||||||
	         $2ffa = RNGInit.complexinit
 | 
						         $2fba = SFXPlay.getRegister
 | 
				
			||||||
	         $3011 = !1
 | 
						         $2fc4 = !27
 | 
				
			||||||
	         $302c = ShiftHistory
 | 
						         $2fce = SFXPlay.savePlayhead
 | 
				
			||||||
	         $3049 = GetNextHellPiece
 | 
						SECTION: $2fd7-$3207 ($0231 bytes) ["RNG Functions"]
 | 
				
			||||||
	         $304e = GetNextTGM1Piece
 | 
						         $2fd7 = HarvestEntropy
 | 
				
			||||||
	         $3051 = !2
 | 
						         $2fdd = HarvestEntropy.loop
 | 
				
			||||||
	         $3069 = !3
 | 
						         $2ffe = RNGInit
 | 
				
			||||||
	         $306b = GetNextTGM2Piece
 | 
						         $3034 = !0
 | 
				
			||||||
	         $306e = !4
 | 
						         $3064 = RNGInit.complexinit
 | 
				
			||||||
	         $3086 = !5
 | 
						         $307b = !1
 | 
				
			||||||
	         $3088 = GetNextNesPiece
 | 
						         $3096 = ShiftHistory
 | 
				
			||||||
	         $3096 = GetNextTGM3Piece
 | 
						         $30b3 = GetNextHellPiece
 | 
				
			||||||
	         $3099 = !6
 | 
						         $30b8 = GetNextTGM1Piece
 | 
				
			||||||
	         $30bc = !7
 | 
						         $30bb = !2
 | 
				
			||||||
	         $30bf = !8
 | 
						         $30d3 = !3
 | 
				
			||||||
	         $30cf = !9
 | 
						         $30d5 = GetNextTGM2Piece
 | 
				
			||||||
	         $30d9 = !10
 | 
						         $30d8 = !4
 | 
				
			||||||
	         $30e7 = !11
 | 
						         $30f0 = !5
 | 
				
			||||||
	         $30f6 = !12
 | 
						         $30f2 = GetNextNesPiece
 | 
				
			||||||
	         $3102 = !13
 | 
						         $3100 = GetNextTGM3Piece
 | 
				
			||||||
	         $310e = !14
 | 
						         $3103 = !6
 | 
				
			||||||
	         $311a = !15
 | 
						         $3126 = !7
 | 
				
			||||||
	         $3126 = !16
 | 
						         $3129 = !8
 | 
				
			||||||
	         $3132 = !17
 | 
						         $3139 = !9
 | 
				
			||||||
	         $313e = !18
 | 
						         $3143 = !10
 | 
				
			||||||
	         $314d = GetNextPiece
 | 
						         $3151 = !11
 | 
				
			||||||
	         $315b = GetNextPiece.nextpiecejumps
 | 
						         $3160 = !12
 | 
				
			||||||
	         $316a = Next35Piece
 | 
						         $316c = !13
 | 
				
			||||||
	         $316a = !19
 | 
						         $3178 = !14
 | 
				
			||||||
	         $3174 = Next7Piece
 | 
						         $3184 = !15
 | 
				
			||||||
	         $3174 = !20
 | 
						         $3190 = !16
 | 
				
			||||||
	         $317e = NextByte
 | 
						         $319c = !17
 | 
				
			||||||
	SECTION: $319e-$3365 ($01c8 bytes) ["Hi Score Functions"]
 | 
						         $31a8 = !18
 | 
				
			||||||
	         $319e = CheckAndAddHiscore
 | 
						         $31b7 = GetNextPiece
 | 
				
			||||||
	         $31a8 = CheckAndAddHiscore.checkloop
 | 
						         $31c5 = GetNextPiece.nextpiecejumps
 | 
				
			||||||
	         $31ad = CheckAndAddHiscore.checkgrade
 | 
						         $31d4 = Next35Piece
 | 
				
			||||||
	         $31b6 = CheckAndAddHiscore.oldgraded
 | 
						         $31d4 = !19
 | 
				
			||||||
	         $31c5 = CheckAndAddHiscore.oldungraded
 | 
						         $31de = Next7Piece
 | 
				
			||||||
	         $31cc = CheckAndAddHiscore.checklevel
 | 
						         $31de = !20
 | 
				
			||||||
	         $31f1 = CheckAndAddHiscore.checkscore
 | 
						         $31e8 = NextByte
 | 
				
			||||||
	         $3234 = CheckAndAddHiscore.notbetter
 | 
						SECTION: $3208-$33cf ($01c8 bytes) ["Hi Score Functions"]
 | 
				
			||||||
	         $3241 = CheckAndAddHiscore.better
 | 
						         $3208 = CheckAndAddHiscore
 | 
				
			||||||
	         $3243 = InsertHiScore
 | 
						         $3212 = CheckAndAddHiscore.checkloop
 | 
				
			||||||
	         $3243 = InsertHiScore.copylower
 | 
						         $3217 = CheckAndAddHiscore.checkgrade
 | 
				
			||||||
	         $3254 = InsertHiScore.copyupper
 | 
						         $3220 = CheckAndAddHiscore.oldgraded
 | 
				
			||||||
	         $3261 = !0
 | 
						         $322f = CheckAndAddHiscore.oldungraded
 | 
				
			||||||
	         $3275 = InsertHiScore.findrow
 | 
						         $3236 = CheckAndAddHiscore.checklevel
 | 
				
			||||||
	         $3282 = !1
 | 
						         $325b = CheckAndAddHiscore.checkscore
 | 
				
			||||||
	         $3286 = InsertHiScore.insert
 | 
						         $329e = CheckAndAddHiscore.notbetter
 | 
				
			||||||
	         $32df = InsertHiScore.persist
 | 
						         $32ab = CheckAndAddHiscore.better
 | 
				
			||||||
	         $32f0 = GetHiScoreEntry
 | 
						         $32ad = InsertHiScore
 | 
				
			||||||
	         $3305 = !2
 | 
						         $32ad = InsertHiScore.copylower
 | 
				
			||||||
	         $3309 = GetHiScoreEntry.store
 | 
						         $32be = InsertHiScore.copyupper
 | 
				
			||||||
	         $3312 = InitTargetHSTable
 | 
						         $32cb = !0
 | 
				
			||||||
	         $331d = InitTargetHSTable.jumps
 | 
						         $32df = InsertHiScore.findrow
 | 
				
			||||||
	         $3332 = InitTargetHSTable.dmgt
 | 
						         $32ec = !1
 | 
				
			||||||
	         $3337 = InitTargetHSTable.tgm1
 | 
						         $32f0 = InsertHiScore.insert
 | 
				
			||||||
	         $333c = InitTargetHSTable.tgm3
 | 
						         $3349 = InsertHiScore.persist
 | 
				
			||||||
	         $3341 = InitTargetHSTable.deat
 | 
						         $335a = GetHiScoreEntry
 | 
				
			||||||
	         $3346 = InitTargetHSTable.shir
 | 
						         $336f = !2
 | 
				
			||||||
	         $334b = InitTargetHSTable.chil
 | 
						         $3373 = GetHiScoreEntry.store
 | 
				
			||||||
	         $3350 = InitTargetHSTable.myco
 | 
						         $337c = InitTargetHSTable
 | 
				
			||||||
	         $3353 = InitTargetHSTable.store
 | 
						         $3387 = InitTargetHSTable.jumps
 | 
				
			||||||
	SECTION: $3366-$34af ($014a bytes) ["Progress Data"]
 | 
						         $339c = InitTargetHSTable.dmgt
 | 
				
			||||||
	         $3366 = sProgressData
 | 
						         $33a1 = InitTargetHSTable.tgm1
 | 
				
			||||||
	SECTION: $34b0-$35ef ($0140 bytes) ["Hi Score Data"]
 | 
						         $33a6 = InitTargetHSTable.tgm3
 | 
				
			||||||
	         $34b0 = sHiscoreDefaultData
 | 
						         $33ab = InitTargetHSTable.deat
 | 
				
			||||||
	SECTION: $35f0-$3723 ($0134 bytes) ["Input Functions"]
 | 
						         $33b0 = InitTargetHSTable.shir
 | 
				
			||||||
	         $35f0 = InputInit
 | 
						         $33b5 = InitTargetHSTable.chil
 | 
				
			||||||
	         $3602 = GetInput
 | 
						         $33ba = InitTargetHSTable.myco
 | 
				
			||||||
	         $3602 = GetInput.btns
 | 
						         $33bd = InitTargetHSTable.store
 | 
				
			||||||
	         $360f = GetInput.readA
 | 
						SECTION: $33d0-$3519 ($014a bytes) ["Progress Data"]
 | 
				
			||||||
	         $3613 = GetInput.setA
 | 
						         $33d0 = sProgressData
 | 
				
			||||||
	         $361e = GetInput.clearA
 | 
						SECTION: $351a-$3659 ($0140 bytes) ["Hi Score Data"]
 | 
				
			||||||
	         $3621 = GetInput.readB
 | 
						         $351a = sHiscoreDefaultData
 | 
				
			||||||
	         $3625 = GetInput.setB
 | 
						SECTION: $365a-$378d ($0134 bytes) ["Input Functions"]
 | 
				
			||||||
	         $3630 = GetInput.clearB
 | 
						         $365a = InputInit
 | 
				
			||||||
	         $3633 = GetInput.readSelect
 | 
						         $366c = GetInput
 | 
				
			||||||
	         $3637 = GetInput.setSelect
 | 
						         $366c = GetInput.btns
 | 
				
			||||||
	         $3642 = GetInput.clearSelect
 | 
						         $3679 = GetInput.readA
 | 
				
			||||||
	         $3645 = GetInput.readStart
 | 
						         $367d = GetInput.setA
 | 
				
			||||||
	         $3649 = GetInput.setStart
 | 
						         $3688 = GetInput.clearA
 | 
				
			||||||
	         $3654 = GetInput.clearStart
 | 
						         $368b = GetInput.readB
 | 
				
			||||||
	         $3657 = GetInput.dpad
 | 
						         $368f = GetInput.setB
 | 
				
			||||||
	         $3664 = GetInput.readUp
 | 
						         $369a = GetInput.clearB
 | 
				
			||||||
	         $3668 = GetInput.setUp
 | 
						         $369d = GetInput.readSelect
 | 
				
			||||||
	         $3673 = GetInput.clearUp
 | 
						         $36a1 = GetInput.setSelect
 | 
				
			||||||
	         $3676 = GetInput.readDown
 | 
						         $36ac = GetInput.clearSelect
 | 
				
			||||||
	         $367a = GetInput.setDown
 | 
						         $36af = GetInput.readStart
 | 
				
			||||||
	         $3685 = GetInput.clearDown
 | 
						         $36b3 = GetInput.setStart
 | 
				
			||||||
	         $3688 = GetInput.readLeft
 | 
						         $36be = GetInput.clearStart
 | 
				
			||||||
	         $368c = GetInput.setLeft
 | 
						         $36c1 = GetInput.dpad
 | 
				
			||||||
	         $3697 = GetInput.clearLeft
 | 
						         $36ce = GetInput.readUp
 | 
				
			||||||
	         $369a = GetInput.readRight
 | 
						         $36d2 = GetInput.setUp
 | 
				
			||||||
	         $369e = GetInput.setRight
 | 
						         $36dd = GetInput.clearUp
 | 
				
			||||||
	         $36a9 = GetInput.clearRight
 | 
						         $36e0 = GetInput.readDown
 | 
				
			||||||
	         $36ac = GetInput.priorities
 | 
						         $36e4 = GetInput.setDown
 | 
				
			||||||
	         $36b9 = GetInput.jumps
 | 
						         $36ef = GetInput.clearDown
 | 
				
			||||||
	         $36c8 = GetInput.dlru
 | 
						         $36f2 = GetInput.readLeft
 | 
				
			||||||
	         $36db = GetInput.ulrd
 | 
						         $36f6 = GetInput.setLeft
 | 
				
			||||||
	         $36ee = GetInput.lrud
 | 
						         $3701 = GetInput.clearLeft
 | 
				
			||||||
	         $36fb = GetInput.udlr
 | 
						         $3704 = GetInput.readRight
 | 
				
			||||||
	         $3708 = GetInput.zeroud
 | 
						         $3708 = GetInput.setRight
 | 
				
			||||||
	         $370e = GetInput.zerolr
 | 
						         $3713 = GetInput.clearRight
 | 
				
			||||||
	         $3714 = GetInput.zerolrd
 | 
						         $3716 = GetInput.priorities
 | 
				
			||||||
	         $371c = GetInput.zerolru
 | 
						         $3723 = GetInput.jumps
 | 
				
			||||||
	SECTION: $3724-$3803 ($00e0 bytes) ["Score Functions"]
 | 
						         $3732 = GetInput.dlru
 | 
				
			||||||
	         $3724 = ScoreInit
 | 
						         $3745 = GetInput.ulrd
 | 
				
			||||||
	         $374c = IncreaseScore
 | 
						         $3758 = GetInput.lrud
 | 
				
			||||||
	         $3784 = IncreaseScore.doConvert
 | 
						         $3765 = GetInput.udlr
 | 
				
			||||||
	         $3786 = !0
 | 
						         $3772 = GetInput.zeroud
 | 
				
			||||||
	         $379c = IncreaseScore.carry
 | 
						         $3778 = GetInput.zerolr
 | 
				
			||||||
	         $379e = IncreaseScore.postConvert
 | 
						         $377e = GetInput.zerolrd
 | 
				
			||||||
	         $37ab = !1
 | 
						         $3786 = GetInput.zerolru
 | 
				
			||||||
	         $37b2 = IncreaseScore.preAddDigit
 | 
						SECTION: $378e-$386d ($00e0 bytes) ["Score Functions"]
 | 
				
			||||||
	         $37da = IncreaseScore.addDigit
 | 
						         $378e = ScoreInit
 | 
				
			||||||
	         $37f0 = IncreaseScore.nextDigit
 | 
						         $37b6 = IncreaseScore
 | 
				
			||||||
	SECTION: $3804-$38ce ($00cb bytes) ["Title Function Trampolines"]
 | 
						         $37ee = IncreaseScore.doConvert
 | 
				
			||||||
	         $3804 = SwitchToTitle
 | 
						         $37f0 = !0
 | 
				
			||||||
	         $380d = TitleEventLoopHandler
 | 
						         $3806 = IncreaseScore.carry
 | 
				
			||||||
	         $3817 = TitleVBlankHandler
 | 
						         $3808 = IncreaseScore.postConvert
 | 
				
			||||||
	         $3821 = PersistLevel
 | 
						         $3815 = !1
 | 
				
			||||||
	         $382f = DrawSpeedMain
 | 
						         $381c = IncreaseScore.preAddDigit
 | 
				
			||||||
	         $387f = DrawSpeedSettings
 | 
						         $3844 = IncreaseScore.addDigit
 | 
				
			||||||
	SECTION: $38cf-$3994 ($00c6 bytes) ["Time Functions"]
 | 
						         $385a = IncreaseScore.nextDigit
 | 
				
			||||||
	         $38cf = TimeInit
 | 
						SECTION: $386e-$3938 ($00cb bytes) ["Title Function Trampolines"]
 | 
				
			||||||
	         $38ef = StartCountdown
 | 
						         $386e = SwitchToTitle
 | 
				
			||||||
	         $38fd = ResetGameTime
 | 
						         $3877 = TitleEventLoopHandler
 | 
				
			||||||
	         $3908 = CheckTorikan
 | 
						         $3881 = TitleVBlankHandler
 | 
				
			||||||
	         $391f = CheckTorikan.failure
 | 
						         $388b = PersistLevel
 | 
				
			||||||
	         $3921 = CheckTorikan.success
 | 
						         $3899 = DrawSpeedMain
 | 
				
			||||||
	         $3924 = HandleTimers
 | 
						         $38e9 = DrawSpeedSettings
 | 
				
			||||||
	         $394a = HandleTimers.reduce
 | 
						SECTION: $3939-$39fe ($00c6 bytes) ["Time Functions"]
 | 
				
			||||||
	         $3957 = HandleTimers.clock
 | 
						         $3939 = TimeInit
 | 
				
			||||||
	         $3971 = HandleTimers.go
 | 
						         $3959 = StartCountdown
 | 
				
			||||||
	SECTION: $3995-$3a46 ($00b2 bytes) ["Progress Functions"]
 | 
						         $3967 = ResetGameTime
 | 
				
			||||||
	         $3995 = SetProgress
 | 
						         $3972 = CheckTorikan
 | 
				
			||||||
	         $39a0 = SetProgress.loop
 | 
						         $3989 = CheckTorikan.failure
 | 
				
			||||||
	         $39a4 = SetProgress.correct
 | 
						         $398b = CheckTorikan.success
 | 
				
			||||||
	         $39cb = SetProgress.wvr_u1
 | 
						         $398e = HandleTimers
 | 
				
			||||||
	         $39d7 = SetProgress.wvr_u2
 | 
						         $39b4 = HandleTimers.reduce
 | 
				
			||||||
	         $39e5 = SetProgress.wvr_u3
 | 
						         $39c1 = HandleTimers.clock
 | 
				
			||||||
	         $39f1 = SetProgress.wvr_u4
 | 
						         $39db = HandleTimers.go
 | 
				
			||||||
	         $39ff = SetProgress.wvr_u5
 | 
						SECTION: $39ff-$3ab0 ($00b2 bytes) ["Progress Functions"]
 | 
				
			||||||
	         $3a0b = SetProgress.wvr_u6
 | 
						         $39ff = SetProgress
 | 
				
			||||||
	         $3a19 = SetProgress.wvr_u7
 | 
						         $3a0a = SetProgress.loop
 | 
				
			||||||
	         $3a25 = SetProgress.wvr_u8
 | 
						         $3a0e = SetProgress.correct
 | 
				
			||||||
	         $3a33 = SetProgress.wvr_u9
 | 
						         $3a35 = SetProgress.wvr_u1
 | 
				
			||||||
	         $3a3f = SetProgress.wvr_u10
 | 
						         $3a41 = SetProgress.wvr_u2
 | 
				
			||||||
	SECTION: $3a47-$3ad8 ($0092 bytes) ["Code Entry Point"]
 | 
						         $3a4f = SetProgress.wvr_u3
 | 
				
			||||||
	         $3a47 = Main
 | 
						         $3a5b = SetProgress.wvr_u4
 | 
				
			||||||
	         $3a70 = Main.notgbc
 | 
						         $3a69 = SetProgress.wvr_u5
 | 
				
			||||||
	         $3a76 = Main.wvr_u1
 | 
						         $3a75 = SetProgress.wvr_u6
 | 
				
			||||||
	         $3a9d = EventLoop
 | 
						         $3a83 = SetProgress.wvr_u7
 | 
				
			||||||
	         $3ab3 = EventLoop.eventloopjumps
 | 
						         $3a8f = SetProgress.wvr_u8
 | 
				
			||||||
	         $3abc = EventLoopPostHandler
 | 
						         $3a9d = SetProgress.wvr_u9
 | 
				
			||||||
	         $3abe = EventLoopPostHandler.wvb_u2
 | 
						         $3aa9 = SetProgress.wvr_u10
 | 
				
			||||||
	         $3ad0 = EventLoopPostHandler.vblankjumps
 | 
						SECTION: $3ab1-$3b48 ($0098 bytes) ["Code Entry Point"]
 | 
				
			||||||
	SECTION: $3ad9-$3b2a ($0052 bytes) ["Tile Functions"]
 | 
						         $3ab1 = Main
 | 
				
			||||||
	         $3ad9 = LoadTitleTiles
 | 
						         $3ada = Main.notgbc
 | 
				
			||||||
	         $3af7 = LoadGameplayTiles
 | 
						         $3ae0 = Main.wvr_u1
 | 
				
			||||||
	         $3b0d = LoadGameplayTiles.gbc
 | 
						         $3b0d = EventLoop
 | 
				
			||||||
	         $3b1c = LoadGameplayTiles.dmg
 | 
						         $3b23 = EventLoop.eventloopjumps
 | 
				
			||||||
	SECTION: $3b2b-$3b66 ($003c bytes) ["Time Data"]
 | 
						         $3b2c = EventLoopPostHandler
 | 
				
			||||||
	         $3b2b = sFramesToCS
 | 
						         $3b2e = EventLoopPostHandler.wvb_u2
 | 
				
			||||||
	SECTION: $3b67-$3b94 ($002e bytes) ["Memory Functions"]
 | 
						         $3b40 = EventLoopPostHandler.vblankjumps
 | 
				
			||||||
	         $3b67 = UnsafeMemCopy
 | 
						SECTION: $3b49-$3b9a ($0052 bytes) ["Tile Functions"]
 | 
				
			||||||
	         $3b70 = SafeMemCopy.wvr_u1
 | 
						         $3b49 = LoadTitleTiles
 | 
				
			||||||
	         $3b70 = SafeMemCopy
 | 
						         $3b67 = LoadGameplayTiles
 | 
				
			||||||
	         $3b7f = UnsafeMemSet
 | 
						         $3b7d = LoadGameplayTiles.gbc
 | 
				
			||||||
	         $3b87 = SafeMemSet
 | 
						         $3b8c = LoadGameplayTiles.dmg
 | 
				
			||||||
	         $3b87 = SafeMemSet.wvr_u2
 | 
						SECTION: $3b9b-$3bd6 ($003c bytes) ["Time Data"]
 | 
				
			||||||
	SECTION: $3b95-$3bba ($0026 bytes) ["Gameplay Function Trampolines"]
 | 
						         $3b9b = sFramesToCS
 | 
				
			||||||
	         $3b95 = SwitchToGameplay
 | 
						SECTION: $3bd7-$3c04 ($002e bytes) ["Memory Functions"]
 | 
				
			||||||
	         $3b9e = SwitchToGameplayBig
 | 
						         $3bd7 = UnsafeMemCopy
 | 
				
			||||||
	         $3ba7 = GamePlayEventLoopHandler
 | 
						         $3be0 = SafeMemCopy.wvr_u1
 | 
				
			||||||
	         $3bb1 = GamePlayBigEventLoopHandler
 | 
						         $3be0 = SafeMemCopy
 | 
				
			||||||
	SECTION: $3bbb-$3bdf ($0025 bytes) ["Interrupt Initialization Functions"]
 | 
						         $3bef = UnsafeMemSet
 | 
				
			||||||
	         $3bbb = EnableScreenSquish
 | 
						         $3bf7 = SafeMemSet
 | 
				
			||||||
	         $3bd5 = DisableScreenSquish
 | 
						         $3bf7 = SafeMemSet.wvr_u2
 | 
				
			||||||
	SECTION: $3be0-$3c01 ($0022 bytes) ["OAM Functions"]
 | 
						SECTION: $3c05-$3c2a ($0026 bytes) ["Gameplay Function Trampolines"]
 | 
				
			||||||
	         $3be0 = CopyOAMHandler
 | 
						         $3c05 = SwitchToGameplay
 | 
				
			||||||
	         $3bec = ClearOAM
 | 
						         $3c0e = SwitchToGameplayBig
 | 
				
			||||||
	SECTION: $3c02-$3c10 ($000f bytes) ["Banking Functions"]
 | 
						         $3c17 = GamePlayEventLoopHandler
 | 
				
			||||||
	         $3c02 = BankingInit
 | 
						         $3c21 = GamePlayBigEventLoopHandler
 | 
				
			||||||
	SECTION: $3c11-$3c1a ($000a bytes) ["OAM DMA Code"]
 | 
						SECTION: $3c2b-$3c4f ($0025 bytes) ["Interrupt Initialization Functions"]
 | 
				
			||||||
	         $3c11 = OAMDMA
 | 
						         $3c2b = EnableScreenSquish
 | 
				
			||||||
	         $3c1b = OAMDMAEnd
 | 
						         $3c45 = DisableScreenSquish
 | 
				
			||||||
	EMPTY: $3c1b-$3fff ($03e5 bytes)
 | 
						SECTION: $3c50-$3c71 ($0022 bytes) ["OAM Functions"]
 | 
				
			||||||
	TOTAL EMPTY: $03f0 bytes
 | 
						         $3c50 = CopyOAMHandler
 | 
				
			||||||
 | 
						         $3c5c = ClearOAM
 | 
				
			||||||
 | 
						SECTION: $3c72-$3c80 ($000f bytes) ["Banking Functions"]
 | 
				
			||||||
 | 
						         $3c72 = BankingInit
 | 
				
			||||||
 | 
						SECTION: $3c81-$3c8a ($000a bytes) ["OAM DMA Code"]
 | 
				
			||||||
 | 
						         $3c81 = OAMDMA
 | 
				
			||||||
 | 
						         $3c8b = OAMDMAEnd
 | 
				
			||||||
 | 
						EMPTY: $3c8b-$3fff ($0375 bytes)
 | 
				
			||||||
 | 
						TOTAL EMPTY: $0380 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"]
 | 
				
			||||||
| 
						 | 
					@ -3118,7 +3126,7 @@ WRAM0 bank #0:
 | 
				
			||||||
	         $ceeb = wTGM3Droughts
 | 
						         $ceeb = wTGM3Droughts
 | 
				
			||||||
	         $cef2 = wTGM3GeneratedIdx
 | 
						         $cef2 = wTGM3GeneratedIdx
 | 
				
			||||||
	         $cef3 = wTGM3WorstDroughtIdx
 | 
						         $cef3 = wTGM3WorstDroughtIdx
 | 
				
			||||||
	SECTION: $cef4-$cf06 ($0013 bytes) ["Level Variables"]
 | 
						SECTION: $cef4-$cf07 ($0014 bytes) ["Level Variables"]
 | 
				
			||||||
	         $cef4 = wBoneActivationLevel
 | 
						         $cef4 = wBoneActivationLevel
 | 
				
			||||||
	         $cef6 = wInvisActivationLevel
 | 
						         $cef6 = wInvisActivationLevel
 | 
				
			||||||
	         $cef8 = wKillScreenActivationLevel
 | 
						         $cef8 = wKillScreenActivationLevel
 | 
				
			||||||
| 
						 | 
					@ -3132,166 +3140,167 @@ WRAM0 bank #0:
 | 
				
			||||||
	         $cf04 = wLockLevel
 | 
						         $cf04 = wLockLevel
 | 
				
			||||||
	         $cf05 = wShouldGoStaffRoll
 | 
						         $cf05 = wShouldGoStaffRoll
 | 
				
			||||||
	         $cf06 = wNoMoreLocks
 | 
						         $cf06 = wNoMoreLocks
 | 
				
			||||||
	SECTION: $cf07-$cf18 ($0012 bytes) ["Grade Variables"]
 | 
						         $cf07 = wSkippedSectionsBCD
 | 
				
			||||||
	         $cf07 = wDecayRate
 | 
						SECTION: $cf08-$cf19 ($0012 bytes) ["Grade Variables"]
 | 
				
			||||||
	         $cf08 = wGradePoints
 | 
						         $cf08 = wDecayRate
 | 
				
			||||||
	         $cf09 = wInternalGrade
 | 
						         $cf09 = wGradePoints
 | 
				
			||||||
	         $cf0a = wDisplayedGrade
 | 
						         $cf0a = wInternalGrade
 | 
				
			||||||
	         $cf0b = wEffectTimer
 | 
						         $cf0b = wDisplayedGrade
 | 
				
			||||||
	         $cf0c = wRankingDisqualified
 | 
						         $cf0c = wEffectTimer
 | 
				
			||||||
	         $cf0d = wDecayCounter
 | 
						         $cf0d = wRankingDisqualified
 | 
				
			||||||
	         $cf0e = wGradeGauge
 | 
						         $cf0e = wDecayCounter
 | 
				
			||||||
	         $cf0f = wSMult
 | 
						         $cf0f = wGradeGauge
 | 
				
			||||||
	         $cf10 = wDMult
 | 
						         $cf10 = wSMult
 | 
				
			||||||
	         $cf11 = wTMult
 | 
						         $cf11 = wDMult
 | 
				
			||||||
	         $cf12 = wSRate
 | 
						         $cf12 = wTMult
 | 
				
			||||||
	         $cf13 = wDRate
 | 
						         $cf13 = wSRate
 | 
				
			||||||
	         $cf14 = wTRate
 | 
						         $cf14 = wDRate
 | 
				
			||||||
	         $cf15 = wQRate
 | 
						         $cf15 = wTRate
 | 
				
			||||||
	         $cf16 = wTGM1level300RequirementMet
 | 
						         $cf16 = wQRate
 | 
				
			||||||
	         $cf17 = wTGM1level500RequirementMet
 | 
						         $cf17 = wTGM1level300RequirementMet
 | 
				
			||||||
	         $cf18 = wTGM1level999RequirementMet
 | 
						         $cf18 = wTGM1level500RequirementMet
 | 
				
			||||||
	SECTION: $cf19-$cf22 ($000a bytes) ["Progress Variables"]
 | 
						         $cf19 = wTGM1level999RequirementMet
 | 
				
			||||||
	         $cf19 = wProgress0B1
 | 
						SECTION: $cf1a-$cf23 ($000a bytes) ["Progress Variables"]
 | 
				
			||||||
	         $cf1a = wProgress0B2
 | 
						         $cf1a = wProgress0B1
 | 
				
			||||||
	         $cf1b = wProgress1B1
 | 
						         $cf1b = wProgress0B2
 | 
				
			||||||
	         $cf1c = wProgress1B2
 | 
						         $cf1c = wProgress1B1
 | 
				
			||||||
	         $cf1d = wProgress2B1
 | 
						         $cf1d = wProgress1B2
 | 
				
			||||||
	         $cf1e = wProgress2B2
 | 
						         $cf1e = wProgress2B1
 | 
				
			||||||
	         $cf1f = wProgress3B1
 | 
						         $cf1f = wProgress2B2
 | 
				
			||||||
	         $cf20 = wProgress3B2
 | 
						         $cf20 = wProgress3B1
 | 
				
			||||||
	         $cf21 = wProgress4B1
 | 
						         $cf21 = wProgress3B2
 | 
				
			||||||
	         $cf22 = wProgress4B2
 | 
						         $cf22 = wProgress4B1
 | 
				
			||||||
	SECTION: $cf23-$cf2b ($0009 bytes) ["Globals"]
 | 
						         $cf23 = wProgress4B2
 | 
				
			||||||
	         $cf23 = wSwapABState
 | 
						SECTION: $cf24-$cf2c ($0009 bytes) ["Globals"]
 | 
				
			||||||
	         $cf24 = wRNGModeState
 | 
						         $cf24 = wSwapABState
 | 
				
			||||||
	         $cf25 = wRotModeState
 | 
						         $cf25 = wRNGModeState
 | 
				
			||||||
	         $cf26 = wDropModeState
 | 
						         $cf26 = wRotModeState
 | 
				
			||||||
	         $cf27 = wSpeedCurveState
 | 
						         $cf27 = wDropModeState
 | 
				
			||||||
	         $cf28 = wAlways20GState
 | 
						         $cf28 = wSpeedCurveState
 | 
				
			||||||
	         $cf29 = wInitialA
 | 
						         $cf29 = wAlways20GState
 | 
				
			||||||
	         $cf2a = wInitialB
 | 
						         $cf2a = wInitialA
 | 
				
			||||||
	         $cf2b = wInitialC
 | 
						         $cf2b = wInitialB
 | 
				
			||||||
	SECTION: $cf2c-$cf32 ($0007 bytes) ["Title Variables"]
 | 
						         $cf2c = wInitialC
 | 
				
			||||||
	         $cf2c = wSelected
 | 
						SECTION: $cf2d-$cf33 ($0007 bytes) ["Title Variables"]
 | 
				
			||||||
	         $cf2d = wTitleMode
 | 
						         $cf2d = wSelected
 | 
				
			||||||
	         $cf2e = wProfileName
 | 
						         $cf2e = wTitleMode
 | 
				
			||||||
	         $cf31 = wDisplayingScoreMode
 | 
						         $cf2f = wProfileName
 | 
				
			||||||
	         $cf32 = wScoreFlipTimer
 | 
						         $cf32 = wDisplayingScoreMode
 | 
				
			||||||
	SECTION: $cf33-$cf38 ($0006 bytes) ["Time Variables"]
 | 
						         $cf33 = wScoreFlipTimer
 | 
				
			||||||
	         $cf33 = wMinutes
 | 
						SECTION: $cf34-$cf39 ($0006 bytes) ["Time Variables"]
 | 
				
			||||||
	         $cf34 = wSeconds
 | 
						         $cf34 = wMinutes
 | 
				
			||||||
	         $cf35 = wFrames
 | 
						         $cf35 = wSeconds
 | 
				
			||||||
	         $cf36 = wCountDown
 | 
						         $cf36 = wFrames
 | 
				
			||||||
	         $cf38 = wCountDownZero
 | 
						         $cf37 = wCountDown
 | 
				
			||||||
	SECTION: $cf39-$cf3c ($0004 bytes) ["Banking Variables"]
 | 
						         $cf39 = wCountDownZero
 | 
				
			||||||
	         $cf39 = wBankBackup
 | 
						SECTION: $cf3a-$cf3d ($0004 bytes) ["Banking Variables"]
 | 
				
			||||||
	SECTION: $cf3d-$cf40 ($0004 bytes) ["Gameplay Variables"]
 | 
						         $cf3a = wBankBackup
 | 
				
			||||||
	         $cf3d = wRollLine
 | 
						SECTION: $cf3e-$cf41 ($0004 bytes) ["Gameplay Variables"]
 | 
				
			||||||
	         $cf3e = wInStaffRoll
 | 
						         $cf3e = wRollLine
 | 
				
			||||||
	         $cf3f = wBigModeTransfered
 | 
						         $cf3f = wInStaffRoll
 | 
				
			||||||
	         $cf40 = wGameOverIgnoreInput
 | 
						         $cf40 = wBigModeTransfered
 | 
				
			||||||
	SECTION: $cf41-$cf43 ($0003 bytes) ["GBC Variables"]
 | 
						         $cf41 = wGameOverIgnoreInput
 | 
				
			||||||
	         $cf41 = wOuterReps
 | 
						SECTION: $cf42-$cf44 ($0003 bytes) ["GBC Variables"]
 | 
				
			||||||
	         $cf42 = wInnerReps
 | 
						         $cf42 = wOuterReps
 | 
				
			||||||
	         $cf43 = wTitlePal
 | 
						         $cf43 = wInnerReps
 | 
				
			||||||
	SECTION: $cf44-$cf44 ($0001 byte) ["SRAM Variables"]
 | 
						         $cf44 = wTitlePal
 | 
				
			||||||
	         $cf44 = wTarget
 | 
						SECTION: $cf45-$cf45 ($0001 byte) ["SRAM Variables"]
 | 
				
			||||||
	EMPTY: $cf45-$cfff ($00bb bytes)
 | 
						         $cf45 = wTarget
 | 
				
			||||||
	TOTAL EMPTY: $00bb bytes
 | 
						EMPTY: $cf46-$cfff ($00ba bytes)
 | 
				
			||||||
 | 
						TOTAL EMPTY: $00ba bytes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
HRAM bank #0:
 | 
					HRAM bank #0:
 | 
				
			||||||
	SECTION: $ff80-$ff9a ($001b bytes) ["High Field Variables"]
 | 
						SECTION: $ff80-$ff9c ($001d bytes) ["High Level Variables"]
 | 
				
			||||||
	         $ff80 = hPieceDataBase
 | 
						         $ff80 = hCurrentDAS
 | 
				
			||||||
	         $ff82 = hPieceDataBaseFast
 | 
						         $ff81 = hCurrentARE
 | 
				
			||||||
	         $ff84 = hPieceDataOffset
 | 
						         $ff82 = hCurrentLineARE
 | 
				
			||||||
	         $ff85 = hCurrentLockDelayRemaining
 | 
						         $ff83 = hCurrentLockDelay
 | 
				
			||||||
	         $ff86 = hGrounded
 | 
						         $ff84 = hCurrentLineClearDelay
 | 
				
			||||||
	         $ff87 = hWantedTile
 | 
						         $ff85 = hCurrentIntegerGravity
 | 
				
			||||||
	         $ff88 = hWantedG
 | 
						         $ff86 = hCurrentFractionalGravity
 | 
				
			||||||
	         $ff89 = hActualG
 | 
						         $ff87 = hNextSpeedUp
 | 
				
			||||||
	         $ff8a = hGravityCtr
 | 
						         $ff89 = hSpeedCurvePtr
 | 
				
			||||||
	         $ff8b = hWantX
 | 
						         $ff8b = hStartSpeed
 | 
				
			||||||
	         $ff8c = hYPosAtStartOfFrame
 | 
						         $ff8d = hRequiresLineClear
 | 
				
			||||||
	         $ff8d = hWantRotation
 | 
						         $ff8e = hLevel
 | 
				
			||||||
	         $ff8e = hRemainingDelay
 | 
						         $ff90 = hCLevel
 | 
				
			||||||
	         $ff8f = hClearedLines
 | 
						         $ff94 = hNLevel
 | 
				
			||||||
	         $ff93 = hLineClearCt
 | 
						         $ff98 = hTrueCLevel
 | 
				
			||||||
	         $ff94 = hComboCt
 | 
						         $ff9c = hPrevHundreds
 | 
				
			||||||
	         $ff95 = hLockDelayForce
 | 
						SECTION: $ff9d-$ffb7 ($001b bytes) ["High Field Variables"]
 | 
				
			||||||
	         $ff96 = hDownFrames
 | 
						         $ff9d = hPieceDataBase
 | 
				
			||||||
	         $ff97 = hAwardDownBonus
 | 
						         $ff9f = hPieceDataBaseFast
 | 
				
			||||||
	         $ff98 = hStalePiece
 | 
						         $ffa1 = hPieceDataOffset
 | 
				
			||||||
	         $ff99 = hBravo
 | 
						         $ffa2 = hCurrentLockDelayRemaining
 | 
				
			||||||
	         $ff9a = hShouldLockIfGrounded
 | 
						         $ffa3 = hGrounded
 | 
				
			||||||
	SECTION: $ff9b-$ffb5 ($001b bytes) ["High Level Variables"]
 | 
						         $ffa4 = hWantedTile
 | 
				
			||||||
	         $ff9b = hCurrentDAS
 | 
						         $ffa5 = hWantedG
 | 
				
			||||||
	         $ff9c = hCurrentARE
 | 
						         $ffa6 = hActualG
 | 
				
			||||||
	         $ff9d = hCurrentLineARE
 | 
						         $ffa7 = hGravityCtr
 | 
				
			||||||
	         $ff9e = hCurrentLockDelay
 | 
						         $ffa8 = hWantX
 | 
				
			||||||
	         $ff9f = hCurrentLineClearDelay
 | 
						         $ffa9 = hYPosAtStartOfFrame
 | 
				
			||||||
	         $ffa0 = hCurrentIntegerGravity
 | 
						         $ffaa = hWantRotation
 | 
				
			||||||
	         $ffa1 = hCurrentFractionalGravity
 | 
						         $ffab = hRemainingDelay
 | 
				
			||||||
	         $ffa2 = hNextSpeedUp
 | 
						         $ffac = hClearedLines
 | 
				
			||||||
	         $ffa4 = hSpeedCurvePtr
 | 
						         $ffb0 = hLineClearCt
 | 
				
			||||||
	         $ffa6 = hStartSpeed
 | 
						         $ffb1 = hComboCt
 | 
				
			||||||
	         $ffa8 = hRequiresLineClear
 | 
						         $ffb2 = hLockDelayForce
 | 
				
			||||||
	         $ffa9 = hLevel
 | 
						         $ffb3 = hDownFrames
 | 
				
			||||||
	         $ffab = hCLevel
 | 
						         $ffb4 = hAwardDownBonus
 | 
				
			||||||
	         $ffaf = hNLevel
 | 
						         $ffb5 = hStalePiece
 | 
				
			||||||
	         $ffb5 = hPrevHundreds
 | 
						         $ffb6 = hBravo
 | 
				
			||||||
	SECTION: $ffb6-$ffc7 ($0012 bytes) ["Score Variables"]
 | 
						         $ffb7 = hShouldLockIfGrounded
 | 
				
			||||||
	         $ffb6 = hScore
 | 
						SECTION: $ffb8-$ffc9 ($0012 bytes) ["Score Variables"]
 | 
				
			||||||
	         $ffbe = hScoreIncrement
 | 
						         $ffb8 = hScore
 | 
				
			||||||
	         $ffc0 = hScoreIncrementBCD
 | 
						         $ffc0 = hScoreIncrement
 | 
				
			||||||
	SECTION: $ffc8-$ffd2 ($000b bytes) ["High RNG Variables"]
 | 
						         $ffc2 = hScoreIncrementBCD
 | 
				
			||||||
	         $ffc8 = hRNGSeed
 | 
						SECTION: $ffca-$ffd4 ($000b bytes) ["High RNG Variables"]
 | 
				
			||||||
	         $ffcc = hPieceHistory
 | 
						         $ffca = hRNGSeed
 | 
				
			||||||
	         $ffd0 = hNextPiece
 | 
						         $ffce = hPieceHistory
 | 
				
			||||||
	         $ffd1 = hUpcomingPiece1
 | 
						         $ffd2 = hNextPiece
 | 
				
			||||||
	         $ffd2 = hUpcomingPiece2
 | 
						         $ffd3 = hUpcomingPiece1
 | 
				
			||||||
	SECTION: $ffd3-$ffdc ($000a bytes) ["High Gameplay Variables"]
 | 
						         $ffd4 = hUpcomingPiece2
 | 
				
			||||||
	         $ffd3 = hCurrentPiece
 | 
						SECTION: $ffd5-$ffde ($000a bytes) ["High Gameplay Variables"]
 | 
				
			||||||
	         $ffd4 = hCurrentPieceX
 | 
						         $ffd5 = hCurrentPiece
 | 
				
			||||||
	         $ffd5 = hCurrentPieceY
 | 
						         $ffd6 = hCurrentPieceX
 | 
				
			||||||
	         $ffd6 = hCurrentPieceRotationState
 | 
						         $ffd7 = hCurrentPieceY
 | 
				
			||||||
	         $ffd7 = hHeldPiece
 | 
						         $ffd8 = hCurrentPieceRotationState
 | 
				
			||||||
	         $ffd8 = hHoldSpent
 | 
						         $ffd9 = hHeldPiece
 | 
				
			||||||
	         $ffd9 = hMode
 | 
						         $ffda = hHoldSpent
 | 
				
			||||||
	         $ffda = hModeCounter
 | 
						         $ffdb = hMode
 | 
				
			||||||
	         $ffdb = hPrePause
 | 
						         $ffdc = hModeCounter
 | 
				
			||||||
	         $ffdc = hRequestedJingle
 | 
						         $ffdd = hPrePause
 | 
				
			||||||
	SECTION: $ffdd-$ffe6 ($000a bytes) ["OAM DMA"]
 | 
						         $ffde = hRequestedJingle
 | 
				
			||||||
	         $ffdd = hOAMDMA
 | 
						SECTION: $ffdf-$ffe8 ($000a bytes) ["OAM DMA"]
 | 
				
			||||||
	         $ffe3 = !0
 | 
						         $ffdf = hOAMDMA
 | 
				
			||||||
	SECTION: $ffe7-$ffef ($0009 bytes) ["High Input Variables"]
 | 
						         $ffe5 = !0
 | 
				
			||||||
	         $ffe7 = hUpState
 | 
						SECTION: $ffe9-$fff1 ($0009 bytes) ["High Input Variables"]
 | 
				
			||||||
	         $ffe8 = hDownState
 | 
						         $ffe9 = hUpState
 | 
				
			||||||
	         $ffe9 = hLeftState
 | 
						         $ffea = hDownState
 | 
				
			||||||
	         $ffea = hRightState
 | 
						         $ffeb = hLeftState
 | 
				
			||||||
	         $ffeb = hAState
 | 
						         $ffec = hRightState
 | 
				
			||||||
	         $ffec = hBState
 | 
						         $ffed = hAState
 | 
				
			||||||
	         $ffed = hStartState
 | 
						         $ffee = hBState
 | 
				
			||||||
	         $ffee = hSelectState
 | 
						         $ffef = hStartState
 | 
				
			||||||
	         $ffef = hFilterMode
 | 
						         $fff0 = hSelectState
 | 
				
			||||||
	SECTION: $fff0-$fff8 ($0009 bytes) ["High SFX Variables"]
 | 
						         $fff1 = hFilterMode
 | 
				
			||||||
	         $fff0 = hPlayhead
 | 
						SECTION: $fff2-$fffa ($0009 bytes) ["High SFX Variables"]
 | 
				
			||||||
	         $fff2 = hCurrentlyPlaying
 | 
						         $fff2 = hPlayhead
 | 
				
			||||||
	         $fff3 = hPlayQueue
 | 
						         $fff4 = hCurrentlyPlaying
 | 
				
			||||||
	         $fff7 = hNoisePlayhead
 | 
						         $fff5 = hPlayQueue
 | 
				
			||||||
	SECTION: $fff9-$fffa ($0002 bytes) ["High Time Variables"]
 | 
						         $fff9 = hNoisePlayhead
 | 
				
			||||||
	         $fff9 = hFrameCtr
 | 
						SECTION: $fffb-$fffc ($0002 bytes) ["High Time Variables"]
 | 
				
			||||||
	         $fffa = hEvenFrame
 | 
						         $fffb = hFrameCtr
 | 
				
			||||||
	SECTION: $fffb-$fffb ($0001 byte) ["High Globals"]
 | 
						         $fffc = hEvenFrame
 | 
				
			||||||
	         $fffb = hGameState
 | 
						SECTION: $fffd-$fffd ($0001 byte) ["High Globals"]
 | 
				
			||||||
	SECTION: $fffc-$fffc ($0001 byte) ["High Interrupt Variables"]
 | 
						         $fffd = hGameState
 | 
				
			||||||
	         $fffc = hLCDCCtr
 | 
						SECTION: $fffe-$fffe ($0001 byte) ["High Interrupt Variables"]
 | 
				
			||||||
	EMPTY: $fffd-$fffe ($0002 bytes)
 | 
						         $fffe = hLCDCCtr
 | 
				
			||||||
	TOTAL EMPTY: $0002 bytes
 | 
						TOTAL EMPTY: $0000 bytes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
SUMMARY:
 | 
					SUMMARY:
 | 
				
			||||||
	ROM0: 15376 bytes used / 1008 free
 | 
						ROM0: 15488 bytes used / 896 free
 | 
				
			||||||
	ROMX: 68697 bytes used / 29607 free in 6 banks
 | 
						ROMX: 68697 bytes used / 29607 free in 6 banks
 | 
				
			||||||
	SRAM: 2951 bytes used / 5241 free in 1 bank
 | 
						SRAM: 2951 bytes used / 5241 free in 1 bank
 | 
				
			||||||
	WRAM0: 3909 bytes used / 187 free
 | 
						WRAM0: 3910 bytes used / 186 free
 | 
				
			||||||
	HRAM: 125 bytes used / 2 free
 | 
						HRAM: 127 bytes used / 0 free
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										675
									
								
								bin/DMGTRIS.sym
								
								
								
								
							
							
						
						
									
										675
									
								
								bin/DMGTRIS.sym
								
								
								
								
							| 
						 | 
					@ -262,208 +262,219 @@
 | 
				
			||||||
00:2672 UpdateGradeSHIR.l1000
 | 
					00:2672 UpdateGradeSHIR.l1000
 | 
				
			||||||
00:2688 UpdateGradeSHIR.l500
 | 
					00:2688 UpdateGradeSHIR.l500
 | 
				
			||||||
00:269e LevelInit
 | 
					00:269e LevelInit
 | 
				
			||||||
00:2703 SpecialLevelInit
 | 
					00:270e SpecialLevelInit
 | 
				
			||||||
00:2711 SpecialLevelInit.jumps
 | 
					00:271c SpecialLevelInit.jumps
 | 
				
			||||||
00:2726 SpecialLevelInit.dmgt
 | 
					00:2731 SpecialLevelInit.dmgt
 | 
				
			||||||
00:272b SpecialLevelInit.tgm1
 | 
					00:2736 SpecialLevelInit.tgm1
 | 
				
			||||||
00:2730 SpecialLevelInit.tgm3
 | 
					00:273b SpecialLevelInit.tgm3
 | 
				
			||||||
00:2735 SpecialLevelInit.deat
 | 
					00:2740 SpecialLevelInit.deat
 | 
				
			||||||
00:273a SpecialLevelInit.shir
 | 
					00:2745 SpecialLevelInit.shir
 | 
				
			||||||
00:273f SpecialLevelInit.chil
 | 
					00:274a SpecialLevelInit.chil
 | 
				
			||||||
00:2744 SpecialLevelInit.myco
 | 
					00:274f SpecialLevelInit.myco
 | 
				
			||||||
00:2749 SpecialLevelInit.loaddata
 | 
					00:2754 SpecialLevelInit.loaddata
 | 
				
			||||||
00:277e LevelUp
 | 
					00:2789 LevelUp
 | 
				
			||||||
00:27a8 LevelUp.doit
 | 
					00:27b3 LevelUp.doit
 | 
				
			||||||
00:27ea LevelUp.checknlevel
 | 
					00:27f2 LevelUp.checknlevel
 | 
				
			||||||
00:283c LevelUp.bellmaybe
 | 
					00:2844 LevelUp.bellmaybe
 | 
				
			||||||
00:2858 LevelUp.leveljinglemaybe
 | 
					00:2860 LevelUp.leveljinglemaybe
 | 
				
			||||||
00:2868 LevelUp.checkspeedup
 | 
					00:2870 AdjustSpeedCurve
 | 
				
			||||||
00:28a7 DoSpeedUp
 | 
					00:2876 AdjustSpeedCurve.docheck
 | 
				
			||||||
00:28e8 CheckSpecialLevelConditions
 | 
					00:2876 AdjustSpeedCurve.checkthousands
 | 
				
			||||||
00:2919 CheckSpecialLevelConditions.override
 | 
					00:2885 AdjustSpeedCurve.checkhundreds
 | 
				
			||||||
00:2934 CheckSpecialLevelConditions.nooverride
 | 
					00:2892 AdjustSpeedCurve.checktens
 | 
				
			||||||
00:293a CheckSpecialLevelConditions.speciallock
 | 
					00:28a1 AdjustSpeedCurve.checkones
 | 
				
			||||||
00:295e CheckSpecialLevelConditions.bones
 | 
					00:28ac AdjustSpeedCurveForced
 | 
				
			||||||
00:2973 CheckSpecialLevelConditions.enterthebonezone
 | 
					00:28e9 AdjustSpeedCurveForced.continue
 | 
				
			||||||
00:2978 CheckSpecialLevelConditions.invis
 | 
					00:28ee BuildTrueCLevel
 | 
				
			||||||
00:298d CheckSpecialLevelConditions.vanishoxyaction
 | 
					00:2917 BuildTrueCLevel.thousands
 | 
				
			||||||
00:2992 CheckSpecialLevelConditions.killscreen
 | 
					00:292c CheckSpecialLevelConditions
 | 
				
			||||||
00:29a3 CheckSpecialLevelConditions.rip
 | 
					00:295d CheckSpecialLevelConditions.override
 | 
				
			||||||
00:29d3 CheckSpecialLevelConditions.staffroll
 | 
					00:2978 CheckSpecialLevelConditions.nooverride
 | 
				
			||||||
00:29e1 CheckSpecialLevelConditions.justkill
 | 
					00:297e CheckSpecialLevelConditions.speciallock
 | 
				
			||||||
00:29f5 TriggerKillScreen
 | 
					00:29a2 CheckSpecialLevelConditions.bones
 | 
				
			||||||
00:2a17 sTGM1GradeScores
 | 
					00:29b7 CheckSpecialLevelConditions.enterthebonezone
 | 
				
			||||||
00:2a39 sTGM3InternalGradeSystem
 | 
					00:29bc CheckSpecialLevelConditions.invis
 | 
				
			||||||
00:2ad9 sTGM3GradeBoosts
 | 
					00:29d1 CheckSpecialLevelConditions.vanishoxyaction
 | 
				
			||||||
00:2af8 sTGM3LevelMultiplier
 | 
					00:29d6 CheckSpecialLevelConditions.killscreen
 | 
				
			||||||
00:2afc sTGM3BaselineCOOL
 | 
					00:29e7 CheckSpecialLevelConditions.rip
 | 
				
			||||||
00:2b05 sTGM3REGRETConditions
 | 
					00:2a17 CheckSpecialLevelConditions.staffroll
 | 
				
			||||||
00:2b19 sDMGTGrading
 | 
					00:2a25 CheckSpecialLevelConditions.justkill
 | 
				
			||||||
00:2bcd sDMGTGaugeLUT
 | 
					00:2a39 TriggerKillScreen
 | 
				
			||||||
00:2ccd SFXInit
 | 
					00:2a5b GetSection
 | 
				
			||||||
00:2cef SFXPopQueue
 | 
					00:2a6c GetSectionBCD
 | 
				
			||||||
00:2d04 SFXPushQueue
 | 
					00:2a75 SkipSection
 | 
				
			||||||
00:2d15 SFXProcessQueue
 | 
					00:2a81 sTGM1GradeScores
 | 
				
			||||||
00:2d43 SFXTriggerNoise
 | 
					00:2aa3 sTGM3InternalGradeSystem
 | 
				
			||||||
00:2d69 SFXEnqueue
 | 
					00:2b43 sTGM3GradeBoosts
 | 
				
			||||||
00:2d7e SFXEnqueue.findsfx
 | 
					00:2b62 sTGM3LevelMultiplier
 | 
				
			||||||
00:2ed8 SFXKill
 | 
					00:2b66 sTGM3BaselineCOOL
 | 
				
			||||||
00:2f0b SFXPlayNoise
 | 
					00:2b6f sTGM3REGRETConditions
 | 
				
			||||||
00:2f16 SFXPlayNoise.noisereg
 | 
					00:2b83 sDMGTGrading
 | 
				
			||||||
00:2f2d SFXPlayNoise.savenoiseplayhead
 | 
					00:2c37 sDMGTGaugeLUT
 | 
				
			||||||
00:2f36 SFXPlay
 | 
					00:2d37 SFXInit
 | 
				
			||||||
00:2f44 SFXPlay.play
 | 
					00:2d59 SFXPopQueue
 | 
				
			||||||
00:2f50 SFXPlay.getRegister
 | 
					00:2d6e SFXPushQueue
 | 
				
			||||||
00:2f64 SFXPlay.savePlayhead
 | 
					00:2d7f SFXProcessQueue
 | 
				
			||||||
00:2f6d HarvestEntropy
 | 
					00:2dad SFXTriggerNoise
 | 
				
			||||||
00:2f73 HarvestEntropy.loop
 | 
					00:2dd3 SFXEnqueue
 | 
				
			||||||
00:2f94 RNGInit
 | 
					00:2de8 SFXEnqueue.findsfx
 | 
				
			||||||
00:2ffa RNGInit.complexinit
 | 
					00:2f42 SFXKill
 | 
				
			||||||
00:302c ShiftHistory
 | 
					00:2f75 SFXPlayNoise
 | 
				
			||||||
00:3049 GetNextHellPiece
 | 
					00:2f80 SFXPlayNoise.noisereg
 | 
				
			||||||
00:304e GetNextTGM1Piece
 | 
					00:2f97 SFXPlayNoise.savenoiseplayhead
 | 
				
			||||||
00:306b GetNextTGM2Piece
 | 
					00:2fa0 SFXPlay
 | 
				
			||||||
00:3088 GetNextNesPiece
 | 
					00:2fae SFXPlay.play
 | 
				
			||||||
00:3096 GetNextTGM3Piece
 | 
					00:2fba SFXPlay.getRegister
 | 
				
			||||||
00:314d GetNextPiece
 | 
					00:2fce SFXPlay.savePlayhead
 | 
				
			||||||
00:315b GetNextPiece.nextpiecejumps
 | 
					00:2fd7 HarvestEntropy
 | 
				
			||||||
00:316a Next35Piece
 | 
					00:2fdd HarvestEntropy.loop
 | 
				
			||||||
00:3174 Next7Piece
 | 
					00:2ffe RNGInit
 | 
				
			||||||
00:317e NextByte
 | 
					00:3064 RNGInit.complexinit
 | 
				
			||||||
00:319e CheckAndAddHiscore
 | 
					00:3096 ShiftHistory
 | 
				
			||||||
00:31a8 CheckAndAddHiscore.checkloop
 | 
					00:30b3 GetNextHellPiece
 | 
				
			||||||
00:31ad CheckAndAddHiscore.checkgrade
 | 
					00:30b8 GetNextTGM1Piece
 | 
				
			||||||
00:31b6 CheckAndAddHiscore.oldgraded
 | 
					00:30d5 GetNextTGM2Piece
 | 
				
			||||||
00:31c5 CheckAndAddHiscore.oldungraded
 | 
					00:30f2 GetNextNesPiece
 | 
				
			||||||
00:31cc CheckAndAddHiscore.checklevel
 | 
					00:3100 GetNextTGM3Piece
 | 
				
			||||||
00:31f1 CheckAndAddHiscore.checkscore
 | 
					00:31b7 GetNextPiece
 | 
				
			||||||
00:3234 CheckAndAddHiscore.notbetter
 | 
					00:31c5 GetNextPiece.nextpiecejumps
 | 
				
			||||||
00:3241 CheckAndAddHiscore.better
 | 
					00:31d4 Next35Piece
 | 
				
			||||||
00:3243 InsertHiScore
 | 
					00:31de Next7Piece
 | 
				
			||||||
00:3243 InsertHiScore.copylower
 | 
					00:31e8 NextByte
 | 
				
			||||||
00:3254 InsertHiScore.copyupper
 | 
					00:3208 CheckAndAddHiscore
 | 
				
			||||||
00:3275 InsertHiScore.findrow
 | 
					00:3212 CheckAndAddHiscore.checkloop
 | 
				
			||||||
00:3286 InsertHiScore.insert
 | 
					00:3217 CheckAndAddHiscore.checkgrade
 | 
				
			||||||
00:32df InsertHiScore.persist
 | 
					00:3220 CheckAndAddHiscore.oldgraded
 | 
				
			||||||
00:32f0 GetHiScoreEntry
 | 
					00:322f CheckAndAddHiscore.oldungraded
 | 
				
			||||||
00:3309 GetHiScoreEntry.store
 | 
					00:3236 CheckAndAddHiscore.checklevel
 | 
				
			||||||
00:3312 InitTargetHSTable
 | 
					00:325b CheckAndAddHiscore.checkscore
 | 
				
			||||||
00:331d InitTargetHSTable.jumps
 | 
					00:329e CheckAndAddHiscore.notbetter
 | 
				
			||||||
00:3332 InitTargetHSTable.dmgt
 | 
					00:32ab CheckAndAddHiscore.better
 | 
				
			||||||
00:3337 InitTargetHSTable.tgm1
 | 
					00:32ad InsertHiScore
 | 
				
			||||||
00:333c InitTargetHSTable.tgm3
 | 
					00:32ad InsertHiScore.copylower
 | 
				
			||||||
00:3341 InitTargetHSTable.deat
 | 
					00:32be InsertHiScore.copyupper
 | 
				
			||||||
00:3346 InitTargetHSTable.shir
 | 
					00:32df InsertHiScore.findrow
 | 
				
			||||||
00:334b InitTargetHSTable.chil
 | 
					00:32f0 InsertHiScore.insert
 | 
				
			||||||
00:3350 InitTargetHSTable.myco
 | 
					00:3349 InsertHiScore.persist
 | 
				
			||||||
00:3353 InitTargetHSTable.store
 | 
					00:335a GetHiScoreEntry
 | 
				
			||||||
00:3366 sProgressData
 | 
					00:3373 GetHiScoreEntry.store
 | 
				
			||||||
00:34b0 sHiscoreDefaultData
 | 
					00:337c InitTargetHSTable
 | 
				
			||||||
00:35f0 InputInit
 | 
					00:3387 InitTargetHSTable.jumps
 | 
				
			||||||
00:3602 GetInput
 | 
					00:339c InitTargetHSTable.dmgt
 | 
				
			||||||
00:3602 GetInput.btns
 | 
					00:33a1 InitTargetHSTable.tgm1
 | 
				
			||||||
00:360f GetInput.readA
 | 
					00:33a6 InitTargetHSTable.tgm3
 | 
				
			||||||
00:3613 GetInput.setA
 | 
					00:33ab InitTargetHSTable.deat
 | 
				
			||||||
00:361e GetInput.clearA
 | 
					00:33b0 InitTargetHSTable.shir
 | 
				
			||||||
00:3621 GetInput.readB
 | 
					00:33b5 InitTargetHSTable.chil
 | 
				
			||||||
00:3625 GetInput.setB
 | 
					00:33ba InitTargetHSTable.myco
 | 
				
			||||||
00:3630 GetInput.clearB
 | 
					00:33bd InitTargetHSTable.store
 | 
				
			||||||
00:3633 GetInput.readSelect
 | 
					00:33d0 sProgressData
 | 
				
			||||||
00:3637 GetInput.setSelect
 | 
					00:351a sHiscoreDefaultData
 | 
				
			||||||
00:3642 GetInput.clearSelect
 | 
					00:365a InputInit
 | 
				
			||||||
00:3645 GetInput.readStart
 | 
					00:366c GetInput
 | 
				
			||||||
00:3649 GetInput.setStart
 | 
					00:366c GetInput.btns
 | 
				
			||||||
00:3654 GetInput.clearStart
 | 
					00:3679 GetInput.readA
 | 
				
			||||||
00:3657 GetInput.dpad
 | 
					00:367d GetInput.setA
 | 
				
			||||||
00:3664 GetInput.readUp
 | 
					00:3688 GetInput.clearA
 | 
				
			||||||
00:3668 GetInput.setUp
 | 
					00:368b GetInput.readB
 | 
				
			||||||
00:3673 GetInput.clearUp
 | 
					00:368f GetInput.setB
 | 
				
			||||||
00:3676 GetInput.readDown
 | 
					00:369a GetInput.clearB
 | 
				
			||||||
00:367a GetInput.setDown
 | 
					00:369d GetInput.readSelect
 | 
				
			||||||
00:3685 GetInput.clearDown
 | 
					00:36a1 GetInput.setSelect
 | 
				
			||||||
00:3688 GetInput.readLeft
 | 
					00:36ac GetInput.clearSelect
 | 
				
			||||||
00:368c GetInput.setLeft
 | 
					00:36af GetInput.readStart
 | 
				
			||||||
00:3697 GetInput.clearLeft
 | 
					00:36b3 GetInput.setStart
 | 
				
			||||||
00:369a GetInput.readRight
 | 
					00:36be GetInput.clearStart
 | 
				
			||||||
00:369e GetInput.setRight
 | 
					00:36c1 GetInput.dpad
 | 
				
			||||||
00:36a9 GetInput.clearRight
 | 
					00:36ce GetInput.readUp
 | 
				
			||||||
00:36ac GetInput.priorities
 | 
					00:36d2 GetInput.setUp
 | 
				
			||||||
00:36b9 GetInput.jumps
 | 
					00:36dd GetInput.clearUp
 | 
				
			||||||
00:36c8 GetInput.dlru
 | 
					00:36e0 GetInput.readDown
 | 
				
			||||||
00:36db GetInput.ulrd
 | 
					00:36e4 GetInput.setDown
 | 
				
			||||||
00:36ee GetInput.lrud
 | 
					00:36ef GetInput.clearDown
 | 
				
			||||||
00:36fb GetInput.udlr
 | 
					00:36f2 GetInput.readLeft
 | 
				
			||||||
00:3708 GetInput.zeroud
 | 
					00:36f6 GetInput.setLeft
 | 
				
			||||||
00:370e GetInput.zerolr
 | 
					00:3701 GetInput.clearLeft
 | 
				
			||||||
00:3714 GetInput.zerolrd
 | 
					00:3704 GetInput.readRight
 | 
				
			||||||
00:371c GetInput.zerolru
 | 
					00:3708 GetInput.setRight
 | 
				
			||||||
00:3724 ScoreInit
 | 
					00:3713 GetInput.clearRight
 | 
				
			||||||
00:374c IncreaseScore
 | 
					00:3716 GetInput.priorities
 | 
				
			||||||
00:3784 IncreaseScore.doConvert
 | 
					00:3723 GetInput.jumps
 | 
				
			||||||
00:379c IncreaseScore.carry
 | 
					00:3732 GetInput.dlru
 | 
				
			||||||
00:379e IncreaseScore.postConvert
 | 
					00:3745 GetInput.ulrd
 | 
				
			||||||
00:37b2 IncreaseScore.preAddDigit
 | 
					00:3758 GetInput.lrud
 | 
				
			||||||
00:37da IncreaseScore.addDigit
 | 
					00:3765 GetInput.udlr
 | 
				
			||||||
00:37f0 IncreaseScore.nextDigit
 | 
					00:3772 GetInput.zeroud
 | 
				
			||||||
00:3804 SwitchToTitle
 | 
					00:3778 GetInput.zerolr
 | 
				
			||||||
00:380d TitleEventLoopHandler
 | 
					00:377e GetInput.zerolrd
 | 
				
			||||||
00:3817 TitleVBlankHandler
 | 
					00:3786 GetInput.zerolru
 | 
				
			||||||
00:3821 PersistLevel
 | 
					00:378e ScoreInit
 | 
				
			||||||
00:382f DrawSpeedMain
 | 
					00:37b6 IncreaseScore
 | 
				
			||||||
00:387f DrawSpeedSettings
 | 
					00:37ee IncreaseScore.doConvert
 | 
				
			||||||
00:38cf TimeInit
 | 
					00:3806 IncreaseScore.carry
 | 
				
			||||||
00:38ef StartCountdown
 | 
					00:3808 IncreaseScore.postConvert
 | 
				
			||||||
00:38fd ResetGameTime
 | 
					00:381c IncreaseScore.preAddDigit
 | 
				
			||||||
00:3908 CheckTorikan
 | 
					00:3844 IncreaseScore.addDigit
 | 
				
			||||||
00:391f CheckTorikan.failure
 | 
					00:385a IncreaseScore.nextDigit
 | 
				
			||||||
00:3921 CheckTorikan.success
 | 
					00:386e SwitchToTitle
 | 
				
			||||||
00:3924 HandleTimers
 | 
					00:3877 TitleEventLoopHandler
 | 
				
			||||||
00:394a HandleTimers.reduce
 | 
					00:3881 TitleVBlankHandler
 | 
				
			||||||
00:3957 HandleTimers.clock
 | 
					00:388b PersistLevel
 | 
				
			||||||
00:3971 HandleTimers.go
 | 
					00:3899 DrawSpeedMain
 | 
				
			||||||
00:3995 SetProgress
 | 
					00:38e9 DrawSpeedSettings
 | 
				
			||||||
00:39a0 SetProgress.loop
 | 
					00:3939 TimeInit
 | 
				
			||||||
00:39a4 SetProgress.correct
 | 
					00:3959 StartCountdown
 | 
				
			||||||
00:39cb SetProgress.wvr_u1
 | 
					00:3967 ResetGameTime
 | 
				
			||||||
00:39d7 SetProgress.wvr_u2
 | 
					00:3972 CheckTorikan
 | 
				
			||||||
00:39e5 SetProgress.wvr_u3
 | 
					00:3989 CheckTorikan.failure
 | 
				
			||||||
00:39f1 SetProgress.wvr_u4
 | 
					00:398b CheckTorikan.success
 | 
				
			||||||
00:39ff SetProgress.wvr_u5
 | 
					00:398e HandleTimers
 | 
				
			||||||
00:3a0b SetProgress.wvr_u6
 | 
					00:39b4 HandleTimers.reduce
 | 
				
			||||||
00:3a19 SetProgress.wvr_u7
 | 
					00:39c1 HandleTimers.clock
 | 
				
			||||||
00:3a25 SetProgress.wvr_u8
 | 
					00:39db HandleTimers.go
 | 
				
			||||||
00:3a33 SetProgress.wvr_u9
 | 
					00:39ff SetProgress
 | 
				
			||||||
00:3a3f SetProgress.wvr_u10
 | 
					00:3a0a SetProgress.loop
 | 
				
			||||||
00:3a47 Main
 | 
					00:3a0e SetProgress.correct
 | 
				
			||||||
00:3a70 Main.notgbc
 | 
					00:3a35 SetProgress.wvr_u1
 | 
				
			||||||
00:3a76 Main.wvr_u1
 | 
					00:3a41 SetProgress.wvr_u2
 | 
				
			||||||
00:3a9d EventLoop
 | 
					00:3a4f SetProgress.wvr_u3
 | 
				
			||||||
00:3ab3 EventLoop.eventloopjumps
 | 
					00:3a5b SetProgress.wvr_u4
 | 
				
			||||||
00:3abc EventLoopPostHandler
 | 
					00:3a69 SetProgress.wvr_u5
 | 
				
			||||||
00:3abe EventLoopPostHandler.wvb_u2
 | 
					00:3a75 SetProgress.wvr_u6
 | 
				
			||||||
00:3ad0 EventLoopPostHandler.vblankjumps
 | 
					00:3a83 SetProgress.wvr_u7
 | 
				
			||||||
00:3ad9 LoadTitleTiles
 | 
					00:3a8f SetProgress.wvr_u8
 | 
				
			||||||
00:3af7 LoadGameplayTiles
 | 
					00:3a9d SetProgress.wvr_u9
 | 
				
			||||||
00:3b0d LoadGameplayTiles.gbc
 | 
					00:3aa9 SetProgress.wvr_u10
 | 
				
			||||||
00:3b1c LoadGameplayTiles.dmg
 | 
					00:3ab1 Main
 | 
				
			||||||
00:3b2b sFramesToCS
 | 
					00:3ada Main.notgbc
 | 
				
			||||||
00:3b67 UnsafeMemCopy
 | 
					00:3ae0 Main.wvr_u1
 | 
				
			||||||
00:3b70 SafeMemCopy.wvr_u1
 | 
					00:3b0d EventLoop
 | 
				
			||||||
00:3b70 SafeMemCopy
 | 
					00:3b23 EventLoop.eventloopjumps
 | 
				
			||||||
00:3b7f UnsafeMemSet
 | 
					00:3b2c EventLoopPostHandler
 | 
				
			||||||
00:3b87 SafeMemSet
 | 
					00:3b2e EventLoopPostHandler.wvb_u2
 | 
				
			||||||
00:3b87 SafeMemSet.wvr_u2
 | 
					00:3b40 EventLoopPostHandler.vblankjumps
 | 
				
			||||||
00:3b95 SwitchToGameplay
 | 
					00:3b49 LoadTitleTiles
 | 
				
			||||||
00:3b9e SwitchToGameplayBig
 | 
					00:3b67 LoadGameplayTiles
 | 
				
			||||||
00:3ba7 GamePlayEventLoopHandler
 | 
					00:3b7d LoadGameplayTiles.gbc
 | 
				
			||||||
00:3bb1 GamePlayBigEventLoopHandler
 | 
					00:3b8c LoadGameplayTiles.dmg
 | 
				
			||||||
00:3bbb EnableScreenSquish
 | 
					00:3b9b sFramesToCS
 | 
				
			||||||
00:3bd5 DisableScreenSquish
 | 
					00:3bd7 UnsafeMemCopy
 | 
				
			||||||
00:3be0 CopyOAMHandler
 | 
					00:3be0 SafeMemCopy.wvr_u1
 | 
				
			||||||
00:3bec ClearOAM
 | 
					00:3be0 SafeMemCopy
 | 
				
			||||||
00:3c02 BankingInit
 | 
					00:3bef UnsafeMemSet
 | 
				
			||||||
00:3c11 OAMDMA
 | 
					00:3bf7 SafeMemSet
 | 
				
			||||||
00:3c1b OAMDMAEnd
 | 
					00:3bf7 SafeMemSet.wvr_u2
 | 
				
			||||||
 | 
					00:3c05 SwitchToGameplay
 | 
				
			||||||
 | 
					00:3c0e SwitchToGameplayBig
 | 
				
			||||||
 | 
					00:3c17 GamePlayEventLoopHandler
 | 
				
			||||||
 | 
					00:3c21 GamePlayBigEventLoopHandler
 | 
				
			||||||
 | 
					00:3c2b EnableScreenSquish
 | 
				
			||||||
 | 
					00:3c45 DisableScreenSquish
 | 
				
			||||||
 | 
					00:3c50 CopyOAMHandler
 | 
				
			||||||
 | 
					00:3c5c ClearOAM
 | 
				
			||||||
 | 
					00:3c72 BankingInit
 | 
				
			||||||
 | 
					00:3c81 OAMDMA
 | 
				
			||||||
 | 
					00:3c8b OAMDMAEnd
 | 
				
			||||||
01:4008 sDMGTSpeedCurve
 | 
					01:4008 sDMGTSpeedCurve
 | 
				
			||||||
01:4203 sDMGTSpeedCurveEnd
 | 
					01:4203 sDMGTSpeedCurveEnd
 | 
				
			||||||
01:4205 sDMGTSpeedCurveSpecialData
 | 
					01:4205 sDMGTSpeedCurveSpecialData
 | 
				
			||||||
| 
						 | 
					@ -2793,132 +2804,134 @@
 | 
				
			||||||
00:cf04 wLockLevel
 | 
					00:cf04 wLockLevel
 | 
				
			||||||
00:cf05 wShouldGoStaffRoll
 | 
					00:cf05 wShouldGoStaffRoll
 | 
				
			||||||
00:cf06 wNoMoreLocks
 | 
					00:cf06 wNoMoreLocks
 | 
				
			||||||
00:cf07 wDecayRate
 | 
					00:cf07 wSkippedSectionsBCD
 | 
				
			||||||
00:cf08 wGradePoints
 | 
					00:cf08 wDecayRate
 | 
				
			||||||
00:cf09 wInternalGrade
 | 
					00:cf09 wGradePoints
 | 
				
			||||||
00:cf0a wDisplayedGrade
 | 
					00:cf0a wInternalGrade
 | 
				
			||||||
00:cf0b wEffectTimer
 | 
					00:cf0b wDisplayedGrade
 | 
				
			||||||
00:cf0c wRankingDisqualified
 | 
					00:cf0c wEffectTimer
 | 
				
			||||||
00:cf0d wDecayCounter
 | 
					00:cf0d wRankingDisqualified
 | 
				
			||||||
00:cf0e wGradeGauge
 | 
					00:cf0e wDecayCounter
 | 
				
			||||||
00:cf0f wSMult
 | 
					00:cf0f wGradeGauge
 | 
				
			||||||
00:cf10 wDMult
 | 
					00:cf10 wSMult
 | 
				
			||||||
00:cf11 wTMult
 | 
					00:cf11 wDMult
 | 
				
			||||||
00:cf12 wSRate
 | 
					00:cf12 wTMult
 | 
				
			||||||
00:cf13 wDRate
 | 
					00:cf13 wSRate
 | 
				
			||||||
00:cf14 wTRate
 | 
					00:cf14 wDRate
 | 
				
			||||||
00:cf15 wQRate
 | 
					00:cf15 wTRate
 | 
				
			||||||
00:cf16 wTGM1level300RequirementMet
 | 
					00:cf16 wQRate
 | 
				
			||||||
00:cf17 wTGM1level500RequirementMet
 | 
					00:cf17 wTGM1level300RequirementMet
 | 
				
			||||||
00:cf18 wTGM1level999RequirementMet
 | 
					00:cf18 wTGM1level500RequirementMet
 | 
				
			||||||
00:cf19 wProgress0B1
 | 
					00:cf19 wTGM1level999RequirementMet
 | 
				
			||||||
00:cf1a wProgress0B2
 | 
					00:cf1a wProgress0B1
 | 
				
			||||||
00:cf1b wProgress1B1
 | 
					00:cf1b wProgress0B2
 | 
				
			||||||
00:cf1c wProgress1B2
 | 
					00:cf1c wProgress1B1
 | 
				
			||||||
00:cf1d wProgress2B1
 | 
					00:cf1d wProgress1B2
 | 
				
			||||||
00:cf1e wProgress2B2
 | 
					00:cf1e wProgress2B1
 | 
				
			||||||
00:cf1f wProgress3B1
 | 
					00:cf1f wProgress2B2
 | 
				
			||||||
00:cf20 wProgress3B2
 | 
					00:cf20 wProgress3B1
 | 
				
			||||||
00:cf21 wProgress4B1
 | 
					00:cf21 wProgress3B2
 | 
				
			||||||
00:cf22 wProgress4B2
 | 
					00:cf22 wProgress4B1
 | 
				
			||||||
00:cf23 wSwapABState
 | 
					00:cf23 wProgress4B2
 | 
				
			||||||
00:cf24 wRNGModeState
 | 
					00:cf24 wSwapABState
 | 
				
			||||||
00:cf25 wRotModeState
 | 
					00:cf25 wRNGModeState
 | 
				
			||||||
00:cf26 wDropModeState
 | 
					00:cf26 wRotModeState
 | 
				
			||||||
00:cf27 wSpeedCurveState
 | 
					00:cf27 wDropModeState
 | 
				
			||||||
00:cf28 wAlways20GState
 | 
					00:cf28 wSpeedCurveState
 | 
				
			||||||
00:cf29 wInitialA
 | 
					00:cf29 wAlways20GState
 | 
				
			||||||
00:cf2a wInitialB
 | 
					00:cf2a wInitialA
 | 
				
			||||||
00:cf2b wInitialC
 | 
					00:cf2b wInitialB
 | 
				
			||||||
00:cf2c wSelected
 | 
					00:cf2c wInitialC
 | 
				
			||||||
00:cf2d wTitleMode
 | 
					00:cf2d wSelected
 | 
				
			||||||
00:cf2e wProfileName
 | 
					00:cf2e wTitleMode
 | 
				
			||||||
00:cf31 wDisplayingScoreMode
 | 
					00:cf2f wProfileName
 | 
				
			||||||
00:cf32 wScoreFlipTimer
 | 
					00:cf32 wDisplayingScoreMode
 | 
				
			||||||
00:cf33 wMinutes
 | 
					00:cf33 wScoreFlipTimer
 | 
				
			||||||
00:cf34 wSeconds
 | 
					00:cf34 wMinutes
 | 
				
			||||||
00:cf35 wFrames
 | 
					00:cf35 wSeconds
 | 
				
			||||||
00:cf36 wCountDown
 | 
					00:cf36 wFrames
 | 
				
			||||||
00:cf38 wCountDownZero
 | 
					00:cf37 wCountDown
 | 
				
			||||||
00:cf39 wBankBackup
 | 
					00:cf39 wCountDownZero
 | 
				
			||||||
00:cf3d wRollLine
 | 
					00:cf3a wBankBackup
 | 
				
			||||||
00:cf3e wInStaffRoll
 | 
					00:cf3e wRollLine
 | 
				
			||||||
00:cf3f wBigModeTransfered
 | 
					00:cf3f wInStaffRoll
 | 
				
			||||||
00:cf40 wGameOverIgnoreInput
 | 
					00:cf40 wBigModeTransfered
 | 
				
			||||||
00:cf41 wOuterReps
 | 
					00:cf41 wGameOverIgnoreInput
 | 
				
			||||||
00:cf42 wInnerReps
 | 
					00:cf42 wOuterReps
 | 
				
			||||||
00:cf43 wTitlePal
 | 
					00:cf43 wInnerReps
 | 
				
			||||||
00:cf44 wTarget
 | 
					00:cf44 wTitlePal
 | 
				
			||||||
00:ff80 hPieceDataBase
 | 
					00:cf45 wTarget
 | 
				
			||||||
00:ff82 hPieceDataBaseFast
 | 
					00:ff80 hCurrentDAS
 | 
				
			||||||
00:ff84 hPieceDataOffset
 | 
					00:ff81 hCurrentARE
 | 
				
			||||||
00:ff85 hCurrentLockDelayRemaining
 | 
					00:ff82 hCurrentLineARE
 | 
				
			||||||
00:ff86 hGrounded
 | 
					00:ff83 hCurrentLockDelay
 | 
				
			||||||
00:ff87 hWantedTile
 | 
					00:ff84 hCurrentLineClearDelay
 | 
				
			||||||
00:ff88 hWantedG
 | 
					00:ff85 hCurrentIntegerGravity
 | 
				
			||||||
00:ff89 hActualG
 | 
					00:ff86 hCurrentFractionalGravity
 | 
				
			||||||
00:ff8a hGravityCtr
 | 
					00:ff87 hNextSpeedUp
 | 
				
			||||||
00:ff8b hWantX
 | 
					00:ff89 hSpeedCurvePtr
 | 
				
			||||||
00:ff8c hYPosAtStartOfFrame
 | 
					00:ff8b hStartSpeed
 | 
				
			||||||
00:ff8d hWantRotation
 | 
					00:ff8d hRequiresLineClear
 | 
				
			||||||
00:ff8e hRemainingDelay
 | 
					00:ff8e hLevel
 | 
				
			||||||
00:ff8f hClearedLines
 | 
					00:ff90 hCLevel
 | 
				
			||||||
00:ff93 hLineClearCt
 | 
					00:ff94 hNLevel
 | 
				
			||||||
00:ff94 hComboCt
 | 
					00:ff98 hTrueCLevel
 | 
				
			||||||
00:ff95 hLockDelayForce
 | 
					00:ff9c hPrevHundreds
 | 
				
			||||||
00:ff96 hDownFrames
 | 
					00:ff9d hPieceDataBase
 | 
				
			||||||
00:ff97 hAwardDownBonus
 | 
					00:ff9f hPieceDataBaseFast
 | 
				
			||||||
00:ff98 hStalePiece
 | 
					00:ffa1 hPieceDataOffset
 | 
				
			||||||
00:ff99 hBravo
 | 
					00:ffa2 hCurrentLockDelayRemaining
 | 
				
			||||||
00:ff9a hShouldLockIfGrounded
 | 
					00:ffa3 hGrounded
 | 
				
			||||||
00:ff9b hCurrentDAS
 | 
					00:ffa4 hWantedTile
 | 
				
			||||||
00:ff9c hCurrentARE
 | 
					00:ffa5 hWantedG
 | 
				
			||||||
00:ff9d hCurrentLineARE
 | 
					00:ffa6 hActualG
 | 
				
			||||||
00:ff9e hCurrentLockDelay
 | 
					00:ffa7 hGravityCtr
 | 
				
			||||||
00:ff9f hCurrentLineClearDelay
 | 
					00:ffa8 hWantX
 | 
				
			||||||
00:ffa0 hCurrentIntegerGravity
 | 
					00:ffa9 hYPosAtStartOfFrame
 | 
				
			||||||
00:ffa1 hCurrentFractionalGravity
 | 
					00:ffaa hWantRotation
 | 
				
			||||||
00:ffa2 hNextSpeedUp
 | 
					00:ffab hRemainingDelay
 | 
				
			||||||
00:ffa4 hSpeedCurvePtr
 | 
					00:ffac hClearedLines
 | 
				
			||||||
00:ffa6 hStartSpeed
 | 
					00:ffb0 hLineClearCt
 | 
				
			||||||
00:ffa8 hRequiresLineClear
 | 
					00:ffb1 hComboCt
 | 
				
			||||||
00:ffa9 hLevel
 | 
					00:ffb2 hLockDelayForce
 | 
				
			||||||
00:ffab hCLevel
 | 
					00:ffb3 hDownFrames
 | 
				
			||||||
00:ffaf hNLevel
 | 
					00:ffb4 hAwardDownBonus
 | 
				
			||||||
00:ffb5 hPrevHundreds
 | 
					00:ffb5 hStalePiece
 | 
				
			||||||
00:ffb6 hScore
 | 
					00:ffb6 hBravo
 | 
				
			||||||
00:ffbe hScoreIncrement
 | 
					00:ffb7 hShouldLockIfGrounded
 | 
				
			||||||
00:ffc0 hScoreIncrementBCD
 | 
					00:ffb8 hScore
 | 
				
			||||||
00:ffc8 hRNGSeed
 | 
					00:ffc0 hScoreIncrement
 | 
				
			||||||
00:ffcc hPieceHistory
 | 
					00:ffc2 hScoreIncrementBCD
 | 
				
			||||||
00:ffd0 hNextPiece
 | 
					00:ffca hRNGSeed
 | 
				
			||||||
00:ffd1 hUpcomingPiece1
 | 
					00:ffce hPieceHistory
 | 
				
			||||||
00:ffd2 hUpcomingPiece2
 | 
					00:ffd2 hNextPiece
 | 
				
			||||||
00:ffd3 hCurrentPiece
 | 
					00:ffd3 hUpcomingPiece1
 | 
				
			||||||
00:ffd4 hCurrentPieceX
 | 
					00:ffd4 hUpcomingPiece2
 | 
				
			||||||
00:ffd5 hCurrentPieceY
 | 
					00:ffd5 hCurrentPiece
 | 
				
			||||||
00:ffd6 hCurrentPieceRotationState
 | 
					00:ffd6 hCurrentPieceX
 | 
				
			||||||
00:ffd7 hHeldPiece
 | 
					00:ffd7 hCurrentPieceY
 | 
				
			||||||
00:ffd8 hHoldSpent
 | 
					00:ffd8 hCurrentPieceRotationState
 | 
				
			||||||
00:ffd9 hMode
 | 
					00:ffd9 hHeldPiece
 | 
				
			||||||
00:ffda hModeCounter
 | 
					00:ffda hHoldSpent
 | 
				
			||||||
00:ffdb hPrePause
 | 
					00:ffdb hMode
 | 
				
			||||||
00:ffdc hRequestedJingle
 | 
					00:ffdc hModeCounter
 | 
				
			||||||
00:ffdd hOAMDMA
 | 
					00:ffdd hPrePause
 | 
				
			||||||
00:ffe7 hUpState
 | 
					00:ffde hRequestedJingle
 | 
				
			||||||
00:ffe8 hDownState
 | 
					00:ffdf hOAMDMA
 | 
				
			||||||
00:ffe9 hLeftState
 | 
					00:ffe9 hUpState
 | 
				
			||||||
00:ffea hRightState
 | 
					00:ffea hDownState
 | 
				
			||||||
00:ffeb hAState
 | 
					00:ffeb hLeftState
 | 
				
			||||||
00:ffec hBState
 | 
					00:ffec hRightState
 | 
				
			||||||
00:ffed hStartState
 | 
					00:ffed hAState
 | 
				
			||||||
00:ffee hSelectState
 | 
					00:ffee hBState
 | 
				
			||||||
00:ffef hFilterMode
 | 
					00:ffef hStartState
 | 
				
			||||||
00:fff0 hPlayhead
 | 
					00:fff0 hSelectState
 | 
				
			||||||
00:fff2 hCurrentlyPlaying
 | 
					00:fff1 hFilterMode
 | 
				
			||||||
00:fff3 hPlayQueue
 | 
					00:fff2 hPlayhead
 | 
				
			||||||
00:fff7 hNoisePlayhead
 | 
					00:fff4 hCurrentlyPlaying
 | 
				
			||||||
00:fff9 hFrameCtr
 | 
					00:fff5 hPlayQueue
 | 
				
			||||||
00:fffa hEvenFrame
 | 
					00:fff9 hNoisePlayhead
 | 
				
			||||||
00:fffb hGameState
 | 
					00:fffb hFrameCtr
 | 
				
			||||||
00:fffc hLCDCCtr
 | 
					00:fffc hEvenFrame
 | 
				
			||||||
 | 
					00:fffd hGameState
 | 
				
			||||||
 | 
					00:fffe hLCDCCtr
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										201
									
								
								src/level.asm
								
								
								
								
							
							
						
						
									
										201
									
								
								src/level.asm
								
								
								
								
							| 
						 | 
					@ -36,7 +36,8 @@ hStartSpeed:: ds 2
 | 
				
			||||||
hRequiresLineClear:: ds 1
 | 
					hRequiresLineClear:: ds 1
 | 
				
			||||||
hLevel:: ds 2
 | 
					hLevel:: ds 2
 | 
				
			||||||
hCLevel:: ds 4
 | 
					hCLevel:: ds 4
 | 
				
			||||||
hNLevel:: ds 6 ; The extra 2 bytes will be clobbered by the sprite drawing functions.
 | 
					hNLevel:: ds 4
 | 
				
			||||||
 | 
					hTrueCLevel:: ds 4
 | 
				
			||||||
hPrevHundreds:: ds 1
 | 
					hPrevHundreds:: ds 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
SECTION "Level Variables", WRAM0
 | 
					SECTION "Level Variables", WRAM0
 | 
				
			||||||
| 
						 | 
					@ -53,6 +54,7 @@ wKillScreenActive:: ds 1
 | 
				
			||||||
wLockLevel:: ds 1
 | 
					wLockLevel:: ds 1
 | 
				
			||||||
wShouldGoStaffRoll:: ds 1
 | 
					wShouldGoStaffRoll:: ds 1
 | 
				
			||||||
wNoMoreLocks:: ds 1
 | 
					wNoMoreLocks:: ds 1
 | 
				
			||||||
 | 
					wSkippedSectionsBCD:: ds 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
SECTION "Level Functions", ROM0
 | 
					SECTION "Level Functions", ROM0
 | 
				
			||||||
| 
						 | 
					@ -70,6 +72,7 @@ LevelInit::
 | 
				
			||||||
    ld [wLockLevel], a
 | 
					    ld [wLockLevel], a
 | 
				
			||||||
    ld [wShouldGoStaffRoll], a
 | 
					    ld [wShouldGoStaffRoll], a
 | 
				
			||||||
    ld [wNoMoreLocks], a
 | 
					    ld [wNoMoreLocks], a
 | 
				
			||||||
 | 
					    ld [wSkippedSectionsBCD], a
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ldh a, [hStartSpeed]
 | 
					    ldh a, [hStartSpeed]
 | 
				
			||||||
    ld l, a
 | 
					    ld l, a
 | 
				
			||||||
| 
						 | 
					@ -81,18 +84,22 @@ LevelInit::
 | 
				
			||||||
    ld b, a
 | 
					    ld b, a
 | 
				
			||||||
    and a, $0F
 | 
					    and a, $0F
 | 
				
			||||||
    ldh [hCLevel+3], a
 | 
					    ldh [hCLevel+3], a
 | 
				
			||||||
 | 
					    ldh [hTrueCLevel+3], a
 | 
				
			||||||
    ld a, b
 | 
					    ld a, b
 | 
				
			||||||
    swap a
 | 
					    swap a
 | 
				
			||||||
    and a, $0F
 | 
					    and a, $0F
 | 
				
			||||||
    ldh [hCLevel+2], a
 | 
					    ldh [hCLevel+2], a
 | 
				
			||||||
 | 
					    ldh [hTrueCLevel+2], a
 | 
				
			||||||
    ld a, [hl+]
 | 
					    ld a, [hl+]
 | 
				
			||||||
    ld b, a
 | 
					    ld b, a
 | 
				
			||||||
    and a, $0F
 | 
					    and a, $0F
 | 
				
			||||||
    ldh [hCLevel+1], a
 | 
					    ldh [hCLevel+1], a
 | 
				
			||||||
 | 
					    ldh [hTrueCLevel+1], a
 | 
				
			||||||
    ld a, b
 | 
					    ld a, b
 | 
				
			||||||
    swap a
 | 
					    swap a
 | 
				
			||||||
    and a, $0F
 | 
					    and a, $0F
 | 
				
			||||||
    ldh [hCLevel], a
 | 
					    ldh [hCLevel], a
 | 
				
			||||||
 | 
					    ldh [hTrueCLevel], a
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ld a, l
 | 
					    ld a, l
 | 
				
			||||||
    ldh [hSpeedCurvePtr], a
 | 
					    ldh [hSpeedCurvePtr], a
 | 
				
			||||||
| 
						 | 
					@ -126,10 +133,11 @@ LevelInit::
 | 
				
			||||||
    ; Get special data.
 | 
					    ; Get special data.
 | 
				
			||||||
    call SpecialLevelInit
 | 
					    call SpecialLevelInit
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ; Restore the bank before returning.
 | 
					    ; Restore the bank to keep the stack balanced.
 | 
				
			||||||
    rst RSTRestoreBank
 | 
					    rst RSTRestoreBank
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    jp DoSpeedUp
 | 
					    ; Get the speed curve
 | 
				
			||||||
 | 
					    jp AdjustSpeedCurveForced
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
SpecialLevelInit:
 | 
					SpecialLevelInit:
 | 
				
			||||||
| 
						 | 
					@ -300,8 +308,7 @@ LevelUp::
 | 
				
			||||||
    ldh [hLevel], a
 | 
					    ldh [hLevel], a
 | 
				
			||||||
    ld a, h
 | 
					    ld a, h
 | 
				
			||||||
    ldh [hLevel+1], a
 | 
					    ldh [hLevel+1], a
 | 
				
			||||||
    call DoSpeedUp
 | 
					    jp AdjustSpeedCurve
 | 
				
			||||||
    jp CheckSpecialLevelConditions
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
.checknlevel
 | 
					.checknlevel
 | 
				
			||||||
    ; Make wNLevel make sense.
 | 
					    ; Make wNLevel make sense.
 | 
				
			||||||
| 
						 | 
					@ -322,10 +329,10 @@ LevelUp::
 | 
				
			||||||
    ld hl, hCLevel+2
 | 
					    ld hl, hCLevel+2
 | 
				
			||||||
    ld a, [hl+]
 | 
					    ld a, [hl+]
 | 
				
			||||||
    cp a, 9
 | 
					    cp a, 9
 | 
				
			||||||
    jr nz, .checkspeedup
 | 
					    jr nz, AdjustSpeedCurve
 | 
				
			||||||
    ld a, [hl]
 | 
					    ld a, [hl]
 | 
				
			||||||
    cp a, 8
 | 
					    cp a, 8
 | 
				
			||||||
    jr nz, .checkspeedup
 | 
					    jr nz, AdjustSpeedCurve
 | 
				
			||||||
    ld a, $FF
 | 
					    ld a, $FF
 | 
				
			||||||
    ldh [hRequiresLineClear], a
 | 
					    ldh [hRequiresLineClear], a
 | 
				
			||||||
    call SFXKill
 | 
					    call SFXKill
 | 
				
			||||||
| 
						 | 
					@ -365,7 +372,7 @@ LevelUp::
 | 
				
			||||||
    jr nz, .leveljinglemaybe
 | 
					    jr nz, .leveljinglemaybe
 | 
				
			||||||
    ld a, [wNoMoreLocks]
 | 
					    ld a, [wNoMoreLocks]
 | 
				
			||||||
    cp a, $FF
 | 
					    cp a, $FF
 | 
				
			||||||
    jr z, .checkspeedup
 | 
					    jr z, AdjustSpeedCurve
 | 
				
			||||||
    ld a, $FF
 | 
					    ld a, $FF
 | 
				
			||||||
    ldh [hRequiresLineClear], a
 | 
					    ldh [hRequiresLineClear], a
 | 
				
			||||||
    call SFXKill
 | 
					    call SFXKill
 | 
				
			||||||
| 
						 | 
					@ -377,52 +384,71 @@ LevelUp::
 | 
				
			||||||
    ld b, a
 | 
					    ld b, a
 | 
				
			||||||
    ldh a, [hCLevel+1]
 | 
					    ldh a, [hCLevel+1]
 | 
				
			||||||
    cp a, b
 | 
					    cp a, b
 | 
				
			||||||
    jr z, .checkspeedup
 | 
					    jr z, AdjustSpeedCurve
 | 
				
			||||||
    call SFXKill
 | 
					    call SFXKill
 | 
				
			||||||
    ld a, SFX_LEVELUP
 | 
					    ld a, SFX_LEVELUP
 | 
				
			||||||
    call SFXEnqueue
 | 
					    call SFXEnqueue
 | 
				
			||||||
 | 
					    ; This falls through to AdjustSpeedCurve, this is intended.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.checkspeedup
 | 
					
 | 
				
			||||||
 | 
					AdjustSpeedCurve:
 | 
				
			||||||
 | 
					    call BuildTrueCLevel
 | 
				
			||||||
    call CheckSpecialLevelConditions
 | 
					    call CheckSpecialLevelConditions
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.docheck
 | 
				
			||||||
 | 
					.checkthousands
 | 
				
			||||||
 | 
					    ; Get the thousands level of the next speed up.
 | 
				
			||||||
    ldh a, [hNextSpeedUp]
 | 
					    ldh a, [hNextSpeedUp]
 | 
				
			||||||
    and a, $F0
 | 
					 | 
				
			||||||
    jr z, :+
 | 
					 | 
				
			||||||
    swap a
 | 
					    swap a
 | 
				
			||||||
    and a, $0F
 | 
					    and a, $0F
 | 
				
			||||||
    ld hl, hCLevel
 | 
					 | 
				
			||||||
    cp a, [hl]
 | 
					 | 
				
			||||||
    jr z, :+
 | 
					 | 
				
			||||||
    ret nc
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
:   ldh a, [hNextSpeedUp]
 | 
					    ; Compare to ours.
 | 
				
			||||||
 | 
					    ld hl, hTrueCLevel+CLEVEL_THOUSANDS
 | 
				
			||||||
 | 
					    cp a, [hl]
 | 
				
			||||||
 | 
					    jr z, .checkhundreds ; Equal? We need to check deeper.
 | 
				
			||||||
 | 
					    jr c, AdjustSpeedCurveForced    ; Ours higher? We need to increase.
 | 
				
			||||||
 | 
					    ret                  ; Ours lower? We're done.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.checkhundreds
 | 
				
			||||||
 | 
					    ; Get the hundreds level of the next speed up.
 | 
				
			||||||
 | 
					    ldh a, [hNextSpeedUp]
 | 
				
			||||||
    and a, $0F
 | 
					    and a, $0F
 | 
				
			||||||
    jr z, :+
 | 
					 | 
				
			||||||
    ld hl, hCLevel+1
 | 
					 | 
				
			||||||
    cp a, [hl]
 | 
					 | 
				
			||||||
    jr z, :+
 | 
					 | 
				
			||||||
    ret nc
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
:   ldh a, [hNextSpeedUp+1]
 | 
					    ; Compare to ours.
 | 
				
			||||||
    and a, $F0
 | 
					    ld hl, hCLevel+CLEVEL_HUNDREDS
 | 
				
			||||||
    jr z, :+
 | 
					    cp a, [hl]
 | 
				
			||||||
 | 
					    jr z, .checktens     ; Equal? We need to check deeper.
 | 
				
			||||||
 | 
					    jr c, AdjustSpeedCurveForced    ; Ours higher? We need to increase.
 | 
				
			||||||
 | 
					    ret                  ; Ours lower? We're done.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.checktens
 | 
				
			||||||
 | 
					    ; Get the tens level of the next speed up.
 | 
				
			||||||
 | 
					    ldh a, [hNextSpeedUp+1]
 | 
				
			||||||
    swap a
 | 
					    swap a
 | 
				
			||||||
    and a, $0F
 | 
					    and a, $0F
 | 
				
			||||||
    ld hl, hCLevel+2
 | 
					 | 
				
			||||||
    cp a, [hl]
 | 
					 | 
				
			||||||
    jr z, :+
 | 
					 | 
				
			||||||
    ret nc
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
:   ldh a, [hNextSpeedUp+1]
 | 
					    ; Compare to ours.
 | 
				
			||||||
 | 
					    ld hl, hCLevel+CLEVEL_TENS
 | 
				
			||||||
 | 
					    cp a, [hl]
 | 
				
			||||||
 | 
					    jr z, .checkones     ; Equal? We need to check deeper.
 | 
				
			||||||
 | 
					    jr c, AdjustSpeedCurveForced    ; Ours higher? We need to increase.
 | 
				
			||||||
 | 
					    ret                  ; Ours lower? We're done.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.checkones
 | 
				
			||||||
 | 
					    ; Get the ones level of the next speed up.
 | 
				
			||||||
 | 
					    ldh a, [hNextSpeedUp+1]
 | 
				
			||||||
    and a, $0F
 | 
					    and a, $0F
 | 
				
			||||||
    jr z, DoSpeedUp
 | 
					
 | 
				
			||||||
    ld hl, hCLevel+3
 | 
					    ; Compare to ours.
 | 
				
			||||||
 | 
					    ld hl, hCLevel+CLEVEL_ONES
 | 
				
			||||||
    cp a, [hl]
 | 
					    cp a, [hl]
 | 
				
			||||||
    jr z, DoSpeedUp
 | 
					    jr c, AdjustSpeedCurveForced    ; Ours higher? We need to increase.
 | 
				
			||||||
    ret nc  ; This can fall through to the next function here. This is intentional.
 | 
					    ret nz               ; Ours lower? We're done.
 | 
				
			||||||
 | 
					                         ; Equal? We need to increase.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ; Iterates over the speed curve and loads the new constants.
 | 
					AdjustSpeedCurveForced:
 | 
				
			||||||
DoSpeedUp:
 | 
					    ; Update all data to the next speed curve data.
 | 
				
			||||||
    ; Bank to speed curve data.
 | 
					    ; Bank to speed curve data.
 | 
				
			||||||
    ld b, BANK_OTHER
 | 
					    ld b, BANK_OTHER
 | 
				
			||||||
    rst RSTSwitchBank
 | 
					    rst RSTSwitchBank
 | 
				
			||||||
| 
						 | 
					@ -468,12 +494,72 @@ DoSpeedUp:
 | 
				
			||||||
    ; Do we want to force 20G?
 | 
					    ; Do we want to force 20G?
 | 
				
			||||||
    ld a, [wAlways20GState]
 | 
					    ld a, [wAlways20GState]
 | 
				
			||||||
    cp a, 0
 | 
					    cp a, 0
 | 
				
			||||||
    jp z, RSTRestoreBank
 | 
					    jr z, .continue
 | 
				
			||||||
    ld a, 20
 | 
					    ld a, 20
 | 
				
			||||||
    ldh [hCurrentIntegerGravity], a
 | 
					    ldh [hCurrentIntegerGravity], a
 | 
				
			||||||
    ld a, $00
 | 
					    ld a, $00
 | 
				
			||||||
    ldh [hCurrentFractionalGravity], a
 | 
					    ldh [hCurrentFractionalGravity], a
 | 
				
			||||||
    jp RSTRestoreBank
 | 
					
 | 
				
			||||||
 | 
					.continue
 | 
				
			||||||
 | 
					    call RSTRestoreBank
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ; Jump back, we may need to increase more than once.
 | 
				
			||||||
 | 
					    jr AdjustSpeedCurve.docheck
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ; Builds an internal level that is the displayed level skipped an amount of sections ahead.
 | 
				
			||||||
 | 
					BuildTrueCLevel:
 | 
				
			||||||
 | 
					    ; Except in TGM3 mode, this will always just be the same as the real level, so check for the most common case and bail.
 | 
				
			||||||
 | 
					    ld a, [wSkippedSectionsBCD]
 | 
				
			||||||
 | 
					    cp a, 0
 | 
				
			||||||
 | 
					    ret z
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ; Otherwise, to the thing.
 | 
				
			||||||
 | 
					    ld de, hCLevel
 | 
				
			||||||
 | 
					    ld hl, hTrueCLevel
 | 
				
			||||||
 | 
					    ld bc, 4
 | 
				
			||||||
 | 
					    call UnsafeMemCopy
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ; Amount of steps to increment hundreds.
 | 
				
			||||||
 | 
					    ld a, [wSkippedSectionsBCD]
 | 
				
			||||||
 | 
					    and a, $0F
 | 
				
			||||||
 | 
					    ld b, a
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ; Increase hundreds
 | 
				
			||||||
 | 
					    ldh a, [hTrueCLevel+CLEVEL_HUNDREDS]
 | 
				
			||||||
 | 
					    add a, b
 | 
				
			||||||
 | 
					    ldh [hTrueCLevel+CLEVEL_HUNDREDS], a
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ; Is hundreds overflowing?
 | 
				
			||||||
 | 
					    cp a, $0A
 | 
				
			||||||
 | 
					    jr c, .thousands
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ; Yes, it was, so decrease by 10, and increment thousands.
 | 
				
			||||||
 | 
					    sub a, 10
 | 
				
			||||||
 | 
					    ldh [hTrueCLevel+CLEVEL_HUNDREDS], a
 | 
				
			||||||
 | 
					    ld hl, hTrueCLevel+CLEVEL_THOUSANDS
 | 
				
			||||||
 | 
					    inc [hl]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.thousands
 | 
				
			||||||
 | 
					    ; Amount of steps to increment thousands.
 | 
				
			||||||
 | 
					    ld a, [wSkippedSectionsBCD]
 | 
				
			||||||
 | 
					    swap a
 | 
				
			||||||
 | 
					    and a, $0F
 | 
				
			||||||
 | 
					    ld b, a
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ; Increase thousands
 | 
				
			||||||
 | 
					    ldh a, [hTrueCLevel+CLEVEL_THOUSANDS]
 | 
				
			||||||
 | 
					    add a, b
 | 
				
			||||||
 | 
					    ldh [hTrueCLevel+CLEVEL_THOUSANDS], a
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ; This may cause a nonsense number. Fix it if that happens.
 | 
				
			||||||
 | 
					    cp a, $0A
 | 
				
			||||||
 | 
					    ret c
 | 
				
			||||||
 | 
					    ld a, $09
 | 
				
			||||||
 | 
					    ldh [hTrueCLevel+CLEVEL_THOUSANDS], a
 | 
				
			||||||
 | 
					    ret
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
CheckSpecialLevelConditions:
 | 
					CheckSpecialLevelConditions:
 | 
				
			||||||
| 
						 | 
					@ -729,4 +815,43 @@ TriggerKillScreen::
 | 
				
			||||||
    ret
 | 
					    ret
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ; Gets a 0-indexed section number, returned in A as binary.
 | 
				
			||||||
 | 
					    ; Levels 0000-0099 would return 0, levels 0100-0199 would return 1, ... levels 9900-9999 would return 99.
 | 
				
			||||||
 | 
					GetSection::
 | 
				
			||||||
 | 
					    ; Load thousands.
 | 
				
			||||||
 | 
					    ldh a, [hCLevel+CLEVEL_THOUSANDS]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ; Multiply by 10, which is equal to multiply by 8 + multiply by 2
 | 
				
			||||||
 | 
					    ld b, a
 | 
				
			||||||
 | 
					    sla b
 | 
				
			||||||
 | 
					    sla a
 | 
				
			||||||
 | 
					    sla a
 | 
				
			||||||
 | 
					    sla a
 | 
				
			||||||
 | 
					    add a, b
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ; Add hundreds.
 | 
				
			||||||
 | 
					    ld hl, hCLevel+CLEVEL_HUNDREDS
 | 
				
			||||||
 | 
					    add a, [hl]
 | 
				
			||||||
 | 
					    ret
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ; Gets the current section, but as BCD in A.
 | 
				
			||||||
 | 
					GetSectionBCD::
 | 
				
			||||||
 | 
					    ldh a, [hCLevel+CLEVEL_THOUSANDS]
 | 
				
			||||||
 | 
					    swap a
 | 
				
			||||||
 | 
					    ld hl, hCLevel+CLEVEL_HUNDREDS
 | 
				
			||||||
 | 
					    or a, [hl]
 | 
				
			||||||
 | 
					    ret
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ; Will skip the virtual level forward by 100 levels.
 | 
				
			||||||
 | 
					    ; This will NOT affect the displayed level, nor will it affect scoring.
 | 
				
			||||||
 | 
					    ; It will only make it so the internal speed pointer will be ahead by N*100 levels.
 | 
				
			||||||
 | 
					SkipSection::
 | 
				
			||||||
 | 
					    ld a, [wSkippedSectionsBCD]
 | 
				
			||||||
 | 
					    add a, $01
 | 
				
			||||||
 | 
					    daa ; Yes, this is the rare case where this instruction is useful!
 | 
				
			||||||
 | 
					    ld [wSkippedSectionsBCD], a
 | 
				
			||||||
 | 
					    jp AdjustSpeedCurve
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ENDC
 | 
					ENDC
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -99,6 +99,8 @@ Main::
 | 
				
			||||||
    call BankingInit
 | 
					    call BankingInit
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    xor a, a
 | 
					    xor a, a
 | 
				
			||||||
 | 
					    ld [wKillScreenActive], a
 | 
				
			||||||
 | 
					    ld [wSkippedSectionsBCD], a
 | 
				
			||||||
    ldh [hMode], a
 | 
					    ldh [hMode], a
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ; Switch to title state.
 | 
					    ; Switch to title state.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue