Add grading for DMGT mode. Also tone down the slams.
This commit is contained in:
		
							parent
							
								
									a182bcc3e3
								
							
						
					
					
						commit
						0ec8427fb6
					
				
							
								
								
									
										
											BIN
										
									
								
								bin/DMGTRIS.GBC
								
								
								
								
							
							
						
						
									
										
											BIN
										
									
								
								bin/DMGTRIS.GBC
								
								
								
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										3761
									
								
								bin/DMGTRIS.map
								
								
								
								
							
							
						
						
									
										3761
									
								
								bin/DMGTRIS.map
								
								
								
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										3321
									
								
								bin/DMGTRIS.sym
								
								
								
								
							
							
						
						
									
										3321
									
								
								bin/DMGTRIS.sym
								
								
								
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| 
						 | 
					@ -57,8 +57,8 @@ hYPosAtStartOfFrame: ds 1
 | 
				
			||||||
hWantRotation: ds 1
 | 
					hWantRotation: ds 1
 | 
				
			||||||
hRemainingDelay:: ds 1
 | 
					hRemainingDelay:: ds 1
 | 
				
			||||||
hClearedLines: ds 4
 | 
					hClearedLines: ds 4
 | 
				
			||||||
hLineClearCt: ds 1
 | 
					hLineClearCt:: ds 1
 | 
				
			||||||
hComboCt: ds 1
 | 
					hComboCt:: ds 1
 | 
				
			||||||
hLockDelayForce: ds 1
 | 
					hLockDelayForce: ds 1
 | 
				
			||||||
hDownFrames: ds 1
 | 
					hDownFrames: ds 1
 | 
				
			||||||
hAwardDownBonus: ds 1
 | 
					hAwardDownBonus: ds 1
 | 
				
			||||||
| 
						 | 
					@ -191,6 +191,7 @@ SECTION "Field Function Banked Gameplay", ROMX, BANK[BANK_GAMEPLAY]
 | 
				
			||||||
FieldInit::
 | 
					FieldInit::
 | 
				
			||||||
    xor a, a
 | 
					    xor a, a
 | 
				
			||||||
    ldh [hBravo], a
 | 
					    ldh [hBravo], a
 | 
				
			||||||
 | 
					    ldh [hLineClearCt], a
 | 
				
			||||||
    ld [wMovementLastFrame], a
 | 
					    ld [wMovementLastFrame], a
 | 
				
			||||||
    ld a, 1
 | 
					    ld a, 1
 | 
				
			||||||
    ldh [hComboCt], a
 | 
					    ldh [hComboCt], a
 | 
				
			||||||
| 
						 | 
					@ -905,6 +906,9 @@ FindMaxG:
 | 
				
			||||||
FieldProcess::
 | 
					FieldProcess::
 | 
				
			||||||
    ; **************************************************************
 | 
					    ; **************************************************************
 | 
				
			||||||
    ; SETUP
 | 
					    ; SETUP
 | 
				
			||||||
 | 
					    ; Grade decay?
 | 
				
			||||||
 | 
					    call DecayGradeProcess
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ; Apply screen shake if needed.
 | 
					    ; Apply screen shake if needed.
 | 
				
			||||||
.leftslam
 | 
					.leftslam
 | 
				
			||||||
    ld a, [wLeftSlamTimer]
 | 
					    ld a, [wLeftSlamTimer]
 | 
				
			||||||
| 
						 | 
					@ -1924,6 +1928,9 @@ GetTileShade:
 | 
				
			||||||
    ; This is called every frame after a piece has been locked until the delay state ends.
 | 
					    ; This is called every frame after a piece has been locked until the delay state ends.
 | 
				
			||||||
    ; Lines are cleared, levels and score are awarded, and ARE time is waited out.
 | 
					    ; Lines are cleared, levels and score are awarded, and ARE time is waited out.
 | 
				
			||||||
FieldDelay::
 | 
					FieldDelay::
 | 
				
			||||||
 | 
					    ; Grade decay?
 | 
				
			||||||
 | 
					    call DecayGradeDelay
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ; In delay state, DAS increments double speed.
 | 
					    ; In delay state, DAS increments double speed.
 | 
				
			||||||
.incl
 | 
					.incl
 | 
				
			||||||
    ldh a, [hLeftState]
 | 
					    ldh a, [hLeftState]
 | 
				
			||||||
| 
						 | 
					@ -2386,6 +2393,7 @@ SECTION "Field Function Banked Gameplay Big", ROMX, BANK[BANK_GAMEPLAY_BIG]
 | 
				
			||||||
BigFieldInit::
 | 
					BigFieldInit::
 | 
				
			||||||
    xor a, a
 | 
					    xor a, a
 | 
				
			||||||
    ldh [hBravo], a
 | 
					    ldh [hBravo], a
 | 
				
			||||||
 | 
					    ldh [hLineClearCt], a
 | 
				
			||||||
    ld [wMovementLastFrame], a
 | 
					    ld [wMovementLastFrame], a
 | 
				
			||||||
    ld a, 1
 | 
					    ld a, 1
 | 
				
			||||||
    ldh [hComboCt], a
 | 
					    ldh [hComboCt], a
 | 
				
			||||||
| 
						 | 
					@ -3111,6 +3119,9 @@ BigFindMaxG:
 | 
				
			||||||
BigFieldProcess::
 | 
					BigFieldProcess::
 | 
				
			||||||
    ; **************************************************************
 | 
					    ; **************************************************************
 | 
				
			||||||
    ; SETUP
 | 
					    ; SETUP
 | 
				
			||||||
 | 
					    ; Grade decay?
 | 
				
			||||||
 | 
					    call DecayGradeProcess
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ; Apply screen shake if needed.
 | 
					    ; Apply screen shake if needed.
 | 
				
			||||||
.leftslam
 | 
					.leftslam
 | 
				
			||||||
    ld a, [wLeftSlamTimer]
 | 
					    ld a, [wLeftSlamTimer]
 | 
				
			||||||
| 
						 | 
					@ -4130,6 +4141,9 @@ BigGetTileShade:
 | 
				
			||||||
    ; This is called every frame after a piece has been locked until the delay state ends.
 | 
					    ; This is called every frame after a piece has been locked until the delay state ends.
 | 
				
			||||||
    ; Lines are cleared, levels and score are awarded, and ARE time is waited out.
 | 
					    ; Lines are cleared, levels and score are awarded, and ARE time is waited out.
 | 
				
			||||||
BigFieldDelay::
 | 
					BigFieldDelay::
 | 
				
			||||||
 | 
					    ; Grade decay?
 | 
				
			||||||
 | 
					    call DecayGradeDelay
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ; In delay state, DAS increments double speed.
 | 
					    ; In delay state, DAS increments double speed.
 | 
				
			||||||
.incl
 | 
					.incl
 | 
				
			||||||
    ldh a, [hLeftState]
 | 
					    ldh a, [hLeftState]
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										412
									
								
								src/grading.asm
								
								
								
								
							
							
						
						
									
										412
									
								
								src/grading.asm
								
								
								
								
							| 
						 | 
					@ -29,6 +29,15 @@ wInternalGrade:        ds 1
 | 
				
			||||||
wDisplayedGrade::      ds 1
 | 
					wDisplayedGrade::      ds 1
 | 
				
			||||||
wEffectTimer::         ds 1
 | 
					wEffectTimer::         ds 1
 | 
				
			||||||
wRankingDisqualified:: ds 1
 | 
					wRankingDisqualified:: ds 1
 | 
				
			||||||
 | 
					wDecayCounter:         ds 1
 | 
				
			||||||
 | 
					wGradeGauge:           ds 1
 | 
				
			||||||
 | 
					wSMult:                ds 1
 | 
				
			||||||
 | 
					wDMult:                ds 1
 | 
				
			||||||
 | 
					wTMult:                ds 1
 | 
				
			||||||
 | 
					wSRate:                ds 1
 | 
				
			||||||
 | 
					wDRate:                ds 1
 | 
				
			||||||
 | 
					wTRate:                ds 1
 | 
				
			||||||
 | 
					wQRate:                ds 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
SECTION "Grading Data", ROM0
 | 
					SECTION "Grading Data", ROM0
 | 
				
			||||||
| 
						 | 
					@ -160,6 +169,45 @@ sTGM3REGRETConditions:
 | 
				
			||||||
    db 0, 50
 | 
					    db 0, 50
 | 
				
			||||||
    db 0, 50
 | 
					    db 0, 50
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					sDMGTGrading:
 | 
				
			||||||
 | 
					    db 125, 10, 20, 40, 50 ; Grade 9   — frames/decay, single base, double base, triple base, tetris base
 | 
				
			||||||
 | 
					    db 80,  10, 20, 30, 40 ; Grade 8   — frames/decay, single base, double base, triple base, tetris base
 | 
				
			||||||
 | 
					    db 80,  10, 20, 30, 40 ; Grade 7   — frames/decay, single base, double base, triple base, tetris base
 | 
				
			||||||
 | 
					    db 50,  10, 20, 30, 40 ; Grade 6   — frames/decay, single base, double base, triple base, tetris base
 | 
				
			||||||
 | 
					    db 45,   5, 20, 30, 40 ; Grade 5   — frames/decay, single base, double base, triple base, tetris base
 | 
				
			||||||
 | 
					    db 45,   5, 20, 30, 40 ; Grade 4   — frames/decay, single base, double base, triple base, tetris base
 | 
				
			||||||
 | 
					    db 45,   5, 20, 30, 40 ; Grade 3   — frames/decay, single base, double base, triple base, tetris base
 | 
				
			||||||
 | 
					    db 40,   5, 20, 20, 30 ; Grade 2   — frames/decay, single base, double base, triple base, tetris base
 | 
				
			||||||
 | 
					    db 40,   5, 20, 20, 30 ; Grade 1   — frames/decay, single base, double base, triple base, tetris base
 | 
				
			||||||
 | 
					    db 40,   2, 20, 20, 30 ; Grade S1  — frames/decay, single base, double base, triple base, tetris base
 | 
				
			||||||
 | 
					    db 40,   2, 20, 20, 30 ; Grade S2  — frames/decay, single base, double base, triple base, tetris base
 | 
				
			||||||
 | 
					    db 40,   2, 20, 20, 30 ; Grade S3  — frames/decay, single base, double base, triple base, tetris base
 | 
				
			||||||
 | 
					    db 30,   2, 20, 20, 30 ; Grade S4  — frames/decay, single base, double base, triple base, tetris base
 | 
				
			||||||
 | 
					    db 30,   2, 15, 20, 30 ; Grade S5  — frames/decay, single base, double base, triple base, tetris base
 | 
				
			||||||
 | 
					    db 30,   2, 15, 20, 30 ; Grade S6  — frames/decay, single base, double base, triple base, tetris base
 | 
				
			||||||
 | 
					    db 20,   2, 15, 20, 30 ; Grade S7  — frames/decay, single base, double base, triple base, tetris base
 | 
				
			||||||
 | 
					    db 20,   2, 15, 20, 30 ; Grade S8  — frames/decay, single base, double base, triple base, tetris base
 | 
				
			||||||
 | 
					    db 20,   2, 15, 20, 30 ; Grade S9  — frames/decay, single base, double base, triple base, tetris base
 | 
				
			||||||
 | 
					    db 20,   2, 15, 20, 30 ; Grade S10 — frames/decay, single base, double base, triple base, tetris base
 | 
				
			||||||
 | 
					    db 20,   2, 15, 20, 30 ; Grade S11 — frames/decay, single base, double base, triple base, tetris base
 | 
				
			||||||
 | 
					    db 15,   2, 15, 20, 30 ; Grade S12 — frames/decay, single base, double base, triple base, tetris base
 | 
				
			||||||
 | 
					    db 15,   2, 15, 20, 30 ; Grade S13 — frames/decay, single base, double base, triple base, tetris base
 | 
				
			||||||
 | 
					    db 15,   2, 15, 15, 30 ; Grade m1  — frames/decay, single base, double base, triple base, tetris base
 | 
				
			||||||
 | 
					    db 15,   2, 15, 15, 30 ; Grade m2  — frames/decay, single base, double base, triple base, tetris base
 | 
				
			||||||
 | 
					    db 15,   2, 15, 15, 30 ; Grade m3  — frames/decay, single base, double base, triple base, tetris base
 | 
				
			||||||
 | 
					    db 15,   2, 15, 15, 30 ; Grade m4  — frames/decay, single base, double base, triple base, tetris base
 | 
				
			||||||
 | 
					    db 15,   2, 12, 15, 30 ; Grade m5  — frames/decay, single base, double base, triple base, tetris base
 | 
				
			||||||
 | 
					    db 15,   2, 12, 15, 30 ; Grade m6  — frames/decay, single base, double base, triple base, tetris base
 | 
				
			||||||
 | 
					    db 15,   2, 12, 15, 30 ; Grade m7  — frames/decay, single base, double base, triple base, tetris base
 | 
				
			||||||
 | 
					    db 15,   2, 12, 15, 30 ; Grade m8  — frames/decay, single base, double base, triple base, tetris base
 | 
				
			||||||
 | 
					    db 15,   2, 12, 15, 30 ; Grade m9  — frames/decay, single base, double base, triple base, tetris base
 | 
				
			||||||
 | 
					    db 10,   2, 12, 13, 30 ; Grade M   — frames/decay, single base, double base, triple base, tetris base
 | 
				
			||||||
 | 
					    db 10,   2, 12, 13, 30 ; Grade MK  — frames/decay, single base, double base, triple base, tetris base
 | 
				
			||||||
 | 
					    db 10,   2, 12, 13, 30 ; Grade MV  — frames/decay, single base, double base, triple base, tetris base
 | 
				
			||||||
 | 
					    db 10,   2, 12, 13, 30 ; Grade MO  — frames/decay, single base, double base, triple base, tetris base
 | 
				
			||||||
 | 
					    db 5,    2,  8, 10, 20 ; Grade MM  — frames/decay, single base, double base, triple base, tetris base
 | 
				
			||||||
 | 
					                           ; No entry for GM. We're done there.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
SECTION "Grading Functions", ROM0
 | 
					SECTION "Grading Functions", ROM0
 | 
				
			||||||
    ; Wipe the grading variables.
 | 
					    ; Wipe the grading variables.
 | 
				
			||||||
GradeInit::
 | 
					GradeInit::
 | 
				
			||||||
| 
						 | 
					@ -170,29 +218,26 @@ GradeInit::
 | 
				
			||||||
    ld [wDisplayedGrade], a
 | 
					    ld [wDisplayedGrade], a
 | 
				
			||||||
    ld [wRankingDisqualified], a
 | 
					    ld [wRankingDisqualified], a
 | 
				
			||||||
    ld [wEffectTimer], a
 | 
					    ld [wEffectTimer], a
 | 
				
			||||||
 | 
					    ld [wDecayCounter], a
 | 
				
			||||||
 | 
					    ld [wGradeGauge], a
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ; Not all modes start at 9.
 | 
					    ; Most modes begin ungraded.
 | 
				
			||||||
    ; Death starts ungraded.
 | 
					 | 
				
			||||||
    ld a, [wSpeedCurveState]
 | 
					 | 
				
			||||||
    cp a, SCURVE_DEAT
 | 
					 | 
				
			||||||
    jr nz, .notdeat
 | 
					 | 
				
			||||||
    ld a, GRADE_NONE
 | 
					    ld a, GRADE_NONE
 | 
				
			||||||
    ld [wDisplayedGrade], a
 | 
					    ld [wDisplayedGrade], a
 | 
				
			||||||
    jr UpdateGrade
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
.notdeat
 | 
					    ; TGM1 and DMGT are the exceptions.
 | 
				
			||||||
    ; Shirase starts ungraded.
 | 
					 | 
				
			||||||
    ld a, [wSpeedCurveState]
 | 
					    ld a, [wSpeedCurveState]
 | 
				
			||||||
    cp a, SCURVE_SHIR
 | 
					    cp a, SCURVE_TGM1
 | 
				
			||||||
    jr nz, .notshir
 | 
					    jr z, .grade9start
 | 
				
			||||||
    ld a, GRADE_NONE
 | 
					    cp a, SCURVE_DMGT
 | 
				
			||||||
    ld [wDisplayedGrade], a
 | 
					    jr z, .grade9start
 | 
				
			||||||
    jr UpdateGrade
 | 
					    jr .end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.notshir
 | 
					.grade9start
 | 
				
			||||||
    ; All the rest start at 9.
 | 
					 | 
				
			||||||
    ld a, GRADE_9
 | 
					    ld a, GRADE_9
 | 
				
			||||||
    ld [wDisplayedGrade], a
 | 
					    ld [wDisplayedGrade], a
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.end
 | 
				
			||||||
    jr UpdateGrade
 | 
					    jr UpdateGrade
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -209,12 +254,58 @@ UpdateGrade::
 | 
				
			||||||
    jp hl
 | 
					    jp hl
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.gradejumptable
 | 
					.gradejumptable
 | 
				
			||||||
    jp UpdateGradeTGM1 ;DMGT
 | 
					    jp UpdateGradeDMGT ;DMGT
 | 
				
			||||||
    jp UpdateGradeTGM1 ;TGM1
 | 
					    jp UpdateGradeTGM1 ;TGM1
 | 
				
			||||||
    jp UpdateGradeTGM1 ;TGM3
 | 
					    no_jump            ;TGM3
 | 
				
			||||||
    jp UpdateGradeDEAT ;DEAT
 | 
					    jp UpdateGradeDEAT ;DEAT
 | 
				
			||||||
    jp UpdateGradeSHIR ;SHIR
 | 
					    jp UpdateGradeSHIR ;SHIR
 | 
				
			||||||
    jp UpdateGradeTGM1 ;CHIL
 | 
					    no_jump            ;CHIL
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ; Jumps to the grade decay function for the current mode.
 | 
				
			||||||
 | 
					    ; Called once per frame where a piece is in motion.
 | 
				
			||||||
 | 
					DecayGradeProcess::
 | 
				
			||||||
 | 
					    ld hl, .gradejumptable
 | 
				
			||||||
 | 
					    ld a, [wSpeedCurveState]
 | 
				
			||||||
 | 
					    ld b, a
 | 
				
			||||||
 | 
					    add a, b
 | 
				
			||||||
 | 
					    add a, b
 | 
				
			||||||
 | 
					    ld b, 0
 | 
				
			||||||
 | 
					    ld c,  a
 | 
				
			||||||
 | 
					    add hl, bc
 | 
				
			||||||
 | 
					    jp hl
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.gradejumptable
 | 
				
			||||||
 | 
					    jp DecayGradeDMGT ;DMGT
 | 
				
			||||||
 | 
					    no_jump           ;TGM1
 | 
				
			||||||
 | 
					    no_jump           ;TGM3
 | 
				
			||||||
 | 
					    no_jump           ;DEAT
 | 
				
			||||||
 | 
					    no_jump           ;SHIR
 | 
				
			||||||
 | 
					    no_jump           ;CHIL
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ; Jumps to the grade decay function for the current mode.
 | 
				
			||||||
 | 
					    ; Called once per frame during ARE and line clear delay.
 | 
				
			||||||
 | 
					DecayGradeDelay::
 | 
				
			||||||
 | 
					    ld hl, .gradejumptable
 | 
				
			||||||
 | 
					    ld a, [wSpeedCurveState]
 | 
				
			||||||
 | 
					    ld b, a
 | 
				
			||||||
 | 
					    add a, b
 | 
				
			||||||
 | 
					    add a, b
 | 
				
			||||||
 | 
					    ld b, 0
 | 
				
			||||||
 | 
					    ld c,  a
 | 
				
			||||||
 | 
					    add hl, bc
 | 
				
			||||||
 | 
					    jp hl
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.gradejumptable
 | 
				
			||||||
 | 
					    no_jump  ;DMGT
 | 
				
			||||||
 | 
					    no_jump  ;TGM1
 | 
				
			||||||
 | 
					    no_jump  ;TGM3
 | 
				
			||||||
 | 
					    no_jump  ;DEAT
 | 
				
			||||||
 | 
					    no_jump  ;SHIR
 | 
				
			||||||
 | 
					    no_jump  ;CHIL
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ; Get the four most significant figures of the score in BC as BCD.
 | 
					    ; Get the four most significant figures of the score in BC as BCD.
 | 
				
			||||||
| 
						 | 
					@ -233,6 +324,291 @@ PrepareScore:
 | 
				
			||||||
    ld b, a
 | 
					    ld b, a
 | 
				
			||||||
    ret
 | 
					    ret
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					UpdateGradeDMGT::
 | 
				
			||||||
 | 
					    ; Did we have line clears?
 | 
				
			||||||
 | 
					    ldh a, [hLineClearCt]
 | 
				
			||||||
 | 
					    cp a, 0
 | 
				
			||||||
 | 
					    ret z
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ; Bail if we're already GM.
 | 
				
			||||||
 | 
					    ld a, [wDisplayedGrade]
 | 
				
			||||||
 | 
					    cp a, GRADE_GM
 | 
				
			||||||
 | 
					    ret z
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ; Get grade in BC.
 | 
				
			||||||
 | 
					    ld b, 0
 | 
				
			||||||
 | 
					    ld c, a
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ; Point HL to decay rate.
 | 
				
			||||||
 | 
					    ld hl, sDMGTGrading
 | 
				
			||||||
 | 
					    add hl, bc
 | 
				
			||||||
 | 
					    add hl, bc
 | 
				
			||||||
 | 
					    add hl, bc
 | 
				
			||||||
 | 
					    add hl, bc
 | 
				
			||||||
 | 
					    add hl, bc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ; What is our single/double/triple/quad rate?
 | 
				
			||||||
 | 
					.clearrate
 | 
				
			||||||
 | 
					    inc hl
 | 
				
			||||||
 | 
					    ld a, [hl+]
 | 
				
			||||||
 | 
					    ld [wSRate], a
 | 
				
			||||||
 | 
					    ld a, [hl+]
 | 
				
			||||||
 | 
					    ld [wDRate], a
 | 
				
			||||||
 | 
					    ld a, [hl+]
 | 
				
			||||||
 | 
					    ld [wTRate], a
 | 
				
			||||||
 | 
					    ld a, [hl]
 | 
				
			||||||
 | 
					    ld [wQRate], a
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ; What is our single/double/triple multiplier?
 | 
				
			||||||
 | 
					.combomult
 | 
				
			||||||
 | 
					    ld a, [hComboCt]
 | 
				
			||||||
 | 
					    cp a, 10
 | 
				
			||||||
 | 
					    jr nc, .combo10
 | 
				
			||||||
 | 
					    cp a, 5
 | 
				
			||||||
 | 
					    jr nc, .combo5
 | 
				
			||||||
 | 
					    jr .combo1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.combo10
 | 
				
			||||||
 | 
					    ld a, 2
 | 
				
			||||||
 | 
					    ld [wSMult], a
 | 
				
			||||||
 | 
					    ld a, 3
 | 
				
			||||||
 | 
					    ld [wDMult], a
 | 
				
			||||||
 | 
					    ld a, 3
 | 
				
			||||||
 | 
					    ld [wTMult], a
 | 
				
			||||||
 | 
					    jr .prelevel
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.combo5
 | 
				
			||||||
 | 
					    ld a, 1
 | 
				
			||||||
 | 
					    ld [wSMult], a
 | 
				
			||||||
 | 
					    ld a, 2
 | 
				
			||||||
 | 
					    ld [wDMult], a
 | 
				
			||||||
 | 
					    ld a, 2
 | 
				
			||||||
 | 
					    ld [wTMult], a
 | 
				
			||||||
 | 
					    jr .prelevel
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.combo1
 | 
				
			||||||
 | 
					    ld a, 1
 | 
				
			||||||
 | 
					    ld [wSMult], a
 | 
				
			||||||
 | 
					    ld a, 1
 | 
				
			||||||
 | 
					    ld [wDMult], a
 | 
				
			||||||
 | 
					    ld a, 1
 | 
				
			||||||
 | 
					    ld [wTMult], a
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ; Branch on line clear count.
 | 
				
			||||||
 | 
					.prelevel
 | 
				
			||||||
 | 
					    ldh a, [hLineClearCt]
 | 
				
			||||||
 | 
					    ld d, a
 | 
				
			||||||
 | 
					    cp a, 4
 | 
				
			||||||
 | 
					    jr z, .tetris
 | 
				
			||||||
 | 
					    cp a, 3
 | 
				
			||||||
 | 
					    jr z, .triple
 | 
				
			||||||
 | 
					    cp a, 2
 | 
				
			||||||
 | 
					    jr z, .double
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ; Singles are worth the single rate x1 or x2.
 | 
				
			||||||
 | 
					.single
 | 
				
			||||||
 | 
					    ld a, [wSRate]
 | 
				
			||||||
 | 
					    ld d, a
 | 
				
			||||||
 | 
					    ld a, [wSMult]
 | 
				
			||||||
 | 
					    cp a, 1
 | 
				
			||||||
 | 
					    jr z, .levelmult
 | 
				
			||||||
 | 
					    ld a, d
 | 
				
			||||||
 | 
					    add a, d
 | 
				
			||||||
 | 
					    ld d, a
 | 
				
			||||||
 | 
					    jr .levelmult
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ; Doubles are worth the double rate x1, x2 or x3.
 | 
				
			||||||
 | 
					.double
 | 
				
			||||||
 | 
					    ld a, [wDRate]
 | 
				
			||||||
 | 
					    ld d, a
 | 
				
			||||||
 | 
					    ld a, [wDMult]
 | 
				
			||||||
 | 
					    cp a, 1
 | 
				
			||||||
 | 
					    jr z, .levelmult
 | 
				
			||||||
 | 
					    cp a, 2
 | 
				
			||||||
 | 
					    ld a, d
 | 
				
			||||||
 | 
					    jr z, .adddonce
 | 
				
			||||||
 | 
					    add a, d
 | 
				
			||||||
 | 
					.adddonce
 | 
				
			||||||
 | 
					    add a, d
 | 
				
			||||||
 | 
					    ld d, a
 | 
				
			||||||
 | 
					    jr .levelmult
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ; Triples are worth the triple rate x1, x2 or x3.
 | 
				
			||||||
 | 
					.triple
 | 
				
			||||||
 | 
					    ld a, [wTRate]
 | 
				
			||||||
 | 
					    ld d, a
 | 
				
			||||||
 | 
					    ld a, [wTMult]
 | 
				
			||||||
 | 
					    cp a, 1
 | 
				
			||||||
 | 
					    jr z, .levelmult
 | 
				
			||||||
 | 
					    cp a, 2
 | 
				
			||||||
 | 
					    ld a, d
 | 
				
			||||||
 | 
					    jr z, .addtonce
 | 
				
			||||||
 | 
					    add a, d
 | 
				
			||||||
 | 
					.addtonce
 | 
				
			||||||
 | 
					    add a, d
 | 
				
			||||||
 | 
					    ld d, a
 | 
				
			||||||
 | 
					    jr .levelmult
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ; Tetris are worth just tetris.
 | 
				
			||||||
 | 
					.tetris
 | 
				
			||||||
 | 
					    ld a, [wQRate]
 | 
				
			||||||
 | 
					    ld d, a
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ; What is our level multiplier?
 | 
				
			||||||
 | 
					    ; Running counter is in in D now.
 | 
				
			||||||
 | 
					.levelmult
 | 
				
			||||||
 | 
					    ld a, [hCLevel] ; thousands
 | 
				
			||||||
 | 
					    cp a, 1
 | 
				
			||||||
 | 
					    jr nc, .mult5
 | 
				
			||||||
 | 
					    ld a, [hCLevel+1] ; hundreds
 | 
				
			||||||
 | 
					    cp a, 7
 | 
				
			||||||
 | 
					    jr nc, .mult4
 | 
				
			||||||
 | 
					    cp a, 5
 | 
				
			||||||
 | 
					    jr nc, .mult3
 | 
				
			||||||
 | 
					    cp a, 2
 | 
				
			||||||
 | 
					    jr nc, .mult2
 | 
				
			||||||
 | 
					    jr .mult1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.mult5
 | 
				
			||||||
 | 
					    ld a, d
 | 
				
			||||||
 | 
					    add a, d
 | 
				
			||||||
 | 
					    add a, d
 | 
				
			||||||
 | 
					    add a, d
 | 
				
			||||||
 | 
					    add a, d
 | 
				
			||||||
 | 
					    jr .processgrade
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.mult4
 | 
				
			||||||
 | 
					    ld a, d
 | 
				
			||||||
 | 
					    add a, d
 | 
				
			||||||
 | 
					    add a, d
 | 
				
			||||||
 | 
					    add a, d
 | 
				
			||||||
 | 
					    jr .processgrade
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.mult3
 | 
				
			||||||
 | 
					    ld a, d
 | 
				
			||||||
 | 
					    add a, d
 | 
				
			||||||
 | 
					    add a, d
 | 
				
			||||||
 | 
					    jr .processgrade
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.mult2
 | 
				
			||||||
 | 
					    ld a, d
 | 
				
			||||||
 | 
					    add a, d
 | 
				
			||||||
 | 
					    jr .processgrade
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.mult1
 | 
				
			||||||
 | 
					    ld a, d
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ; Increase the gauge.
 | 
				
			||||||
 | 
					    ; The value to add to the gauge is in A
 | 
				
			||||||
 | 
					.processgrade
 | 
				
			||||||
 | 
					    ld d, a
 | 
				
			||||||
 | 
					    ld a, [wGradeGauge]
 | 
				
			||||||
 | 
					    add a, d
 | 
				
			||||||
 | 
					    ld [wGradeGauge], a
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ; Did we overflow? Failsafe.
 | 
				
			||||||
 | 
					    jr nc, .increasegrademaybe
 | 
				
			||||||
 | 
					    xor a, a
 | 
				
			||||||
 | 
					    ld [wGradeGauge], a
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ; Increment the grade.
 | 
				
			||||||
 | 
					    ld a, [wDisplayedGrade]
 | 
				
			||||||
 | 
					    inc a
 | 
				
			||||||
 | 
					    ld [wDisplayedGrade], a
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ; GM?
 | 
				
			||||||
 | 
					    cp a, GRADE_GM
 | 
				
			||||||
 | 
					    jr z, .gotgm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ; No, play the normal jingle.
 | 
				
			||||||
 | 
					    ld a, SFX_RANKUP
 | 
				
			||||||
 | 
					    call SFXEnqueue
 | 
				
			||||||
 | 
					    ld a, $0F
 | 
				
			||||||
 | 
					    ld [wEffectTimer], a
 | 
				
			||||||
 | 
					    ret
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.increasegrademaybe
 | 
				
			||||||
 | 
					    ; Do we have 150 in the gauge?
 | 
				
			||||||
 | 
					    ld a, [wGradeGauge]
 | 
				
			||||||
 | 
					    cp a, 150
 | 
				
			||||||
 | 
					    ret c
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ; Yes, take 150 away.
 | 
				
			||||||
 | 
					    sub a, 150
 | 
				
			||||||
 | 
					    ld [wGradeGauge], a
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ; Increment the grade.
 | 
				
			||||||
 | 
					    ld a, [wDisplayedGrade]
 | 
				
			||||||
 | 
					    inc a
 | 
				
			||||||
 | 
					    ld [wDisplayedGrade], a
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ; GM?
 | 
				
			||||||
 | 
					    cp a, GRADE_GM
 | 
				
			||||||
 | 
					    jr z, .gotgm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ; No, play the normal jingle.
 | 
				
			||||||
 | 
					    ld a, SFX_RANKUP
 | 
				
			||||||
 | 
					    call SFXEnqueue
 | 
				
			||||||
 | 
					    ld a, $0F
 | 
				
			||||||
 | 
					    ld [wEffectTimer], a
 | 
				
			||||||
 | 
					    ret
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.gotgm
 | 
				
			||||||
 | 
					    ld a, SFX_RANKGM
 | 
				
			||||||
 | 
					    call SFXEnqueue
 | 
				
			||||||
 | 
					    ld a, $0F
 | 
				
			||||||
 | 
					    ld [wEffectTimer], a
 | 
				
			||||||
 | 
					    ret
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DecayGradeDMGT::
 | 
				
			||||||
 | 
					    ; Bail if the gauge is empty.
 | 
				
			||||||
 | 
					    ld a, [wGradeGauge]
 | 
				
			||||||
 | 
					    cp a, 0
 | 
				
			||||||
 | 
					    ret z
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ; Bail if we're already GM.
 | 
				
			||||||
 | 
					    ld a, [wDisplayedGrade]
 | 
				
			||||||
 | 
					    cp a, GRADE_GM
 | 
				
			||||||
 | 
					    ret z
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ; Get grade in BC.
 | 
				
			||||||
 | 
					    ld b, 0
 | 
				
			||||||
 | 
					    ld c, a
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ; Point HL to decay rate.
 | 
				
			||||||
 | 
					    ld hl, sDMGTGrading
 | 
				
			||||||
 | 
					    add hl, bc
 | 
				
			||||||
 | 
					    add hl, bc
 | 
				
			||||||
 | 
					    add hl, bc
 | 
				
			||||||
 | 
					    add hl, bc
 | 
				
			||||||
 | 
					    add hl, bc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ; Increment the decay.
 | 
				
			||||||
 | 
					    ld a, [wDecayCounter]
 | 
				
			||||||
 | 
					    inc a
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ; Did we hit the rate?
 | 
				
			||||||
 | 
					    ld b, a
 | 
				
			||||||
 | 
					    ld a, [hl]
 | 
				
			||||||
 | 
					    cp a, b
 | 
				
			||||||
 | 
					    jr z, .decay
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ; Nope, don't decay, but do save.
 | 
				
			||||||
 | 
					.nodecay
 | 
				
			||||||
 | 
					    ld a, b
 | 
				
			||||||
 | 
					    ld [wDecayCounter], a
 | 
				
			||||||
 | 
					    ret
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ; Yes, decay.
 | 
				
			||||||
 | 
					.decay
 | 
				
			||||||
 | 
					    ld a, [wGradeGauge]
 | 
				
			||||||
 | 
					    dec a
 | 
				
			||||||
 | 
					    ld [wGradeGauge], a
 | 
				
			||||||
 | 
					    xor a, a
 | 
				
			||||||
 | 
					    ld [wDecayCounter], a
 | 
				
			||||||
 | 
					    ret
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
UpdateGradeTGM1:
 | 
					UpdateGradeTGM1:
 | 
				
			||||||
    ; Bail if we're already GM.
 | 
					    ; Bail if we're already GM.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -131,6 +131,12 @@ MACRO set_all_palettes
 | 
				
			||||||
    set_obj1_palette
 | 
					    set_obj1_palette
 | 
				
			||||||
ENDM
 | 
					ENDM
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MACRO no_jump
 | 
				
			||||||
 | 
					    nop
 | 
				
			||||||
 | 
					    nop
 | 
				
			||||||
 | 
					    ret
 | 
				
			||||||
 | 
					ENDM
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
; Writes two bytes to a register pair.
 | 
					; Writes two bytes to a register pair.
 | 
				
			||||||
MACRO lb
 | 
					MACRO lb
 | 
				
			||||||
| 
						 | 
					@ -309,7 +315,7 @@ DEF STATE_GAMEPLAY_BIG  EQU 6
 | 
				
			||||||
DEF STACK_SIZE          EQU 64
 | 
					DEF STACK_SIZE          EQU 64
 | 
				
			||||||
DEF EASTER_0            EQU $9865
 | 
					DEF EASTER_0            EQU $9865
 | 
				
			||||||
DEF EASTER_1            EQU $9885
 | 
					DEF EASTER_1            EQU $9885
 | 
				
			||||||
DEF SLAM_ANIMATION_LEN  EQU 8
 | 
					DEF SLAM_ANIMATION_LEN  EQU 6
 | 
				
			||||||
 | 
					
 | 
				
			||||||
; Magic location for bank id.
 | 
					; Magic location for bank id.
 | 
				
			||||||
DEF rBANKID             EQU $4007
 | 
					DEF rBANKID             EQU $4007
 | 
				
			||||||
| 
						 | 
					@ -352,6 +358,6 @@ DEF GRADE_MV            EQU 33
 | 
				
			||||||
DEF GRADE_MO            EQU 34
 | 
					DEF GRADE_MO            EQU 34
 | 
				
			||||||
DEF GRADE_MM            EQU 35
 | 
					DEF GRADE_MM            EQU 35
 | 
				
			||||||
DEF GRADE_GM            EQU 36
 | 
					DEF GRADE_GM            EQU 36
 | 
				
			||||||
DEF GRADE_NONE          EQU 37
 | 
					DEF GRADE_NONE          EQU 255
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ENDC
 | 
					ENDC
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -26,9 +26,7 @@ SECTION "Gameplay Big Static Data", ROMX, BANK[BANK_GAMEPLAY_BIG]
 | 
				
			||||||
sBigLeftDasSlam::
 | 
					sBigLeftDasSlam::
 | 
				
			||||||
    db -1
 | 
					    db -1
 | 
				
			||||||
    db 0
 | 
					    db 0
 | 
				
			||||||
    db 1
 | 
					    db -1
 | 
				
			||||||
    db 0
 | 
					 | 
				
			||||||
    db 1
 | 
					 | 
				
			||||||
    db 0
 | 
					    db 0
 | 
				
			||||||
    db -1
 | 
					    db -1
 | 
				
			||||||
    db -2
 | 
					    db -2
 | 
				
			||||||
| 
						 | 
					@ -36,9 +34,7 @@ sBigLeftDasSlam::
 | 
				
			||||||
sBigRightDasSlam::
 | 
					sBigRightDasSlam::
 | 
				
			||||||
    db -3
 | 
					    db -3
 | 
				
			||||||
    db -4
 | 
					    db -4
 | 
				
			||||||
    db -5
 | 
					    db -3
 | 
				
			||||||
    db -4
 | 
					 | 
				
			||||||
    db -5
 | 
					 | 
				
			||||||
    db -4
 | 
					    db -4
 | 
				
			||||||
    db -3
 | 
					    db -3
 | 
				
			||||||
    db -2
 | 
					    db -2
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -26,9 +26,7 @@ SECTION "Gameplay Static Data", ROMX, BANK[BANK_GAMEPLAY]
 | 
				
			||||||
sLeftDasSlam::
 | 
					sLeftDasSlam::
 | 
				
			||||||
    db -1
 | 
					    db -1
 | 
				
			||||||
    db 0
 | 
					    db 0
 | 
				
			||||||
    db 1
 | 
					    db -1
 | 
				
			||||||
    db 0
 | 
					 | 
				
			||||||
    db 1
 | 
					 | 
				
			||||||
    db 0
 | 
					    db 0
 | 
				
			||||||
    db -1
 | 
					    db -1
 | 
				
			||||||
    db -2
 | 
					    db -2
 | 
				
			||||||
| 
						 | 
					@ -36,9 +34,7 @@ sLeftDasSlam::
 | 
				
			||||||
sRightDasSlam::
 | 
					sRightDasSlam::
 | 
				
			||||||
    db -3
 | 
					    db -3
 | 
				
			||||||
    db -4
 | 
					    db -4
 | 
				
			||||||
    db -5
 | 
					    db -3
 | 
				
			||||||
    db -4
 | 
					 | 
				
			||||||
    db -5
 | 
					 | 
				
			||||||
    db -4
 | 
					    db -4
 | 
				
			||||||
    db -3
 | 
					    db -3
 | 
				
			||||||
    db -2
 | 
					    db -2
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -826,9 +826,9 @@ sTitleTiles::
 | 
				
			||||||
    DB $44,$44,$CC,$CC,$44,$44,$44,$44
 | 
					    DB $44,$44,$CC,$CC,$44,$44,$44,$44
 | 
				
			||||||
    DB $44,$44,$44,$44,$EE,$EE,$00,$00
 | 
					    DB $44,$44,$44,$44,$EE,$EE,$00,$00
 | 
				
			||||||
    DB $4C,$4C,$A2,$A2,$A2,$A2,$A4,$A4
 | 
					    DB $4C,$4C,$A2,$A2,$A2,$A2,$A4,$A4
 | 
				
			||||||
    DB $A8,$A8,$A8,$A8,$4E,$4E,$00,$00
 | 
					    DB $A2,$A2,$A2,$A2,$4C,$4C,$00,$00
 | 
				
			||||||
    DB $00,$00,$08,$08,$1C,$1C,$30,$30
 | 
					    DB $E0,$E0,$4C,$4C,$18,$18,$82,$82
 | 
				
			||||||
    DB $3C,$3C,$1C,$1C,$14,$14,$00,$00
 | 
					    DB $8A,$8A,$8B,$8B,$98,$98,$00,$00
 | 
				
			||||||
    DB $00,$00,$00,$00,$00,$00,$00,$00
 | 
					    DB $00,$00,$00,$00,$00,$00,$00,$00
 | 
				
			||||||
    DB $00,$00,$00,$00,$00,$00,$00,$00
 | 
					    DB $00,$00,$00,$00,$00,$00,$00,$00
 | 
				
			||||||
    DB $00,$00,$00,$00,$00,$00,$00,$00
 | 
					    DB $00,$00,$00,$00,$00,$00,$00,$00
 | 
				
			||||||
| 
						 | 
					@ -1470,8 +1470,8 @@ sGameplayTilesM::
 | 
				
			||||||
    DB $48,$48,$48,$48,$EE,$EE,$00,$00
 | 
					    DB $48,$48,$48,$48,$EE,$EE,$00,$00
 | 
				
			||||||
    DB $4C,$4C,$C2,$C2,$42,$42,$44,$44
 | 
					    DB $4C,$4C,$C2,$C2,$42,$42,$44,$44
 | 
				
			||||||
    DB $42,$42,$42,$42,$EC,$EC,$00,$00
 | 
					    DB $42,$42,$42,$42,$EC,$EC,$00,$00
 | 
				
			||||||
    DB $F0,$F0,$A8,$A8,$A8,$A8,$A8,$A8
 | 
					    DB $FE,$FE,$DB,$DB,$DB,$DB,$DB,$DB
 | 
				
			||||||
    DB $A8,$A8,$A8,$A8,$A8,$A8,$00,$00
 | 
					    DB $DB,$DB,$DB,$DB,$DB,$DB,$00,$00
 | 
				
			||||||
    DB $CC,$CC,$CC,$CC,$33,$33,$33,$33
 | 
					    DB $CC,$CC,$CC,$CC,$33,$33,$33,$33
 | 
				
			||||||
    DB $CC,$CC,$CC,$CC,$33,$33,$33,$33
 | 
					    DB $CC,$CC,$CC,$CC,$33,$33,$33,$33
 | 
				
			||||||
    DB $00,$00,$00,$00,$00,$00,$00,$00
 | 
					    DB $00,$00,$00,$00,$00,$00,$00,$00
 | 
				
			||||||
| 
						 | 
					@ -1889,8 +1889,8 @@ sGameplayTilesC::
 | 
				
			||||||
    DB $48,$48,$48,$48,$EE,$EE,$00,$00
 | 
					    DB $48,$48,$48,$48,$EE,$EE,$00,$00
 | 
				
			||||||
    DB $4C,$4C,$C2,$C2,$42,$42,$44,$44
 | 
					    DB $4C,$4C,$C2,$C2,$42,$42,$44,$44
 | 
				
			||||||
    DB $42,$42,$42,$42,$EC,$EC,$00,$00
 | 
					    DB $42,$42,$42,$42,$EC,$EC,$00,$00
 | 
				
			||||||
    DB $F0,$F0,$A8,$A8,$A8,$A8,$A8,$A8
 | 
					    DB $FE,$FE,$DB,$DB,$DB,$DB,$DB,$DB
 | 
				
			||||||
    DB $A8,$A8,$A8,$A8,$A8,$A8,$00,$00
 | 
					    DB $DB,$DB,$DB,$DB,$DB,$DB,$00,$00
 | 
				
			||||||
    DB $CC,$CC,$CC,$CC,$33,$33,$33,$33
 | 
					    DB $CC,$CC,$CC,$CC,$33,$33,$33,$33
 | 
				
			||||||
    DB $CC,$CC,$CC,$CC,$33,$33,$33,$33
 | 
					    DB $CC,$CC,$CC,$CC,$33,$33,$33,$33
 | 
				
			||||||
    DB $00,$00,$00,$00,$00,$00,$00,$00
 | 
					    DB $00,$00,$00,$00,$00,$00,$00,$00
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| 
						 | 
					@ -642,7 +642,7 @@ GradeRendering::
 | 
				
			||||||
    ld a, GRADE_BASE_X
 | 
					    ld a, GRADE_BASE_X
 | 
				
			||||||
    sub a, b
 | 
					    sub a, b
 | 
				
			||||||
    ld [wGrade0+1], a
 | 
					    ld [wGrade0+1], a
 | 
				
			||||||
    add a, $8
 | 
					    add a, 9
 | 
				
			||||||
    ld [wGrade1+1], a
 | 
					    ld [wGrade1+1], a
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ; Set the grades to blank
 | 
					    ; Set the grades to blank
 | 
				
			||||||
| 
						 | 
					@ -732,7 +732,7 @@ GradeRendering::
 | 
				
			||||||
    cp a, GRADE_M
 | 
					    cp a, GRADE_M
 | 
				
			||||||
    jr nc, .lettergrade
 | 
					    jr nc, .lettergrade
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ; Draw as M grade.
 | 
					    ; Draw as m grade.
 | 
				
			||||||
    ld a, "m"
 | 
					    ld a, "m"
 | 
				
			||||||
    ld [wGrade0+2], a
 | 
					    ld [wGrade0+2], a
 | 
				
			||||||
    ld a, [wDisplayedGrade]
 | 
					    ld a, [wDisplayedGrade]
 | 
				
			||||||
| 
						 | 
					@ -749,7 +749,7 @@ GradeRendering::
 | 
				
			||||||
    jr z, .gmgrade
 | 
					    jr z, .gmgrade
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ; Draw as MX grade.
 | 
					    ; Draw as MX grade.
 | 
				
			||||||
    ld a, "m"
 | 
					    ld a, "M"
 | 
				
			||||||
    ld [wGrade0+2], a
 | 
					    ld [wGrade0+2], a
 | 
				
			||||||
    ld a, [wDisplayedGrade]
 | 
					    ld a, [wDisplayedGrade]
 | 
				
			||||||
    cp a, GRADE_M
 | 
					    cp a, GRADE_M
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -520,7 +520,7 @@ GamePlayEventLoopHandlerB::
 | 
				
			||||||
.gameOverMode
 | 
					.gameOverMode
 | 
				
			||||||
    ; Retry?
 | 
					    ; Retry?
 | 
				
			||||||
    ldh a, [hAState]
 | 
					    ldh a, [hAState]
 | 
				
			||||||
    cp a, 1
 | 
					    cp a, 10 ; 10 frame hold
 | 
				
			||||||
    jr nz, .noretry
 | 
					    jr nz, .noretry
 | 
				
			||||||
    call RNGInit
 | 
					    call RNGInit
 | 
				
			||||||
    call ScoreInit
 | 
					    call ScoreInit
 | 
				
			||||||
| 
						 | 
					@ -538,7 +538,7 @@ GamePlayEventLoopHandlerB::
 | 
				
			||||||
    ; Quit
 | 
					    ; Quit
 | 
				
			||||||
.noretry
 | 
					.noretry
 | 
				
			||||||
    ldh a, [hBState]
 | 
					    ldh a, [hBState]
 | 
				
			||||||
    cp a, 1
 | 
					    cp a, 10 ; 10 frame hold
 | 
				
			||||||
    jp nz, .drawStaticInfo
 | 
					    jp nz, .drawStaticInfo
 | 
				
			||||||
    call SwitchToTitle
 | 
					    call SwitchToTitle
 | 
				
			||||||
    jp EventLoopPostHandler
 | 
					    jp EventLoopPostHandler
 | 
				
			||||||
| 
						 | 
					@ -1153,7 +1153,7 @@ GamePlayBigEventLoopHandlerB:
 | 
				
			||||||
.gameOverMode
 | 
					.gameOverMode
 | 
				
			||||||
    ; Retry?
 | 
					    ; Retry?
 | 
				
			||||||
    ldh a, [hAState]
 | 
					    ldh a, [hAState]
 | 
				
			||||||
    cp a, 1
 | 
					    cp a, 10 ; 10 frame hold
 | 
				
			||||||
    jr nz, .noretry
 | 
					    jr nz, .noretry
 | 
				
			||||||
    call RNGInit
 | 
					    call RNGInit
 | 
				
			||||||
    call ScoreInit
 | 
					    call ScoreInit
 | 
				
			||||||
| 
						 | 
					@ -1171,7 +1171,7 @@ GamePlayBigEventLoopHandlerB:
 | 
				
			||||||
    ; Quit
 | 
					    ; Quit
 | 
				
			||||||
.noretry
 | 
					.noretry
 | 
				
			||||||
    ldh a, [hBState]
 | 
					    ldh a, [hBState]
 | 
				
			||||||
    cp a, 1
 | 
					    cp a, 10 ; 10 frame hold
 | 
				
			||||||
    jp nz, .drawStaticInfo
 | 
					    jp nz, .drawStaticInfo
 | 
				
			||||||
    call SwitchToTitle
 | 
					    call SwitchToTitle
 | 
				
			||||||
    jp EventLoopPostHandler
 | 
					    jp EventLoopPostHandler
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue