Refinement.

This commit is contained in:
Randy Thiemann 2023-11-09 00:27:44 +01:00
parent 41f78c511f
commit f61c4ff064
9 changed files with 3169 additions and 3104 deletions

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -2008,6 +2008,11 @@ FieldDelay::
add a, 4 add a, 4
ldh [hBravo], a ldh [hBravo], a
; Kill screen?
ld a, [wKillScreenActive]
cp a, $FF
jr z, .skip
; Are there line clears? ; Are there line clears?
call ToShadowField call ToShadowField
call FindClearedLines call FindClearedLines
@ -4263,6 +4268,11 @@ BigFieldDelay::
add a, 4 add a, 4
ldh [hBravo], a ldh [hBravo], a
; Kill screen?
ld a, [wKillScreenActive]
cp a, $FF
jr z, .skip
; Are there line clears? ; Are there line clears?
call BigToShadowField call BigToShadowField
call BigFindClearedLines call BigFindClearedLines

View File

@ -385,10 +385,14 @@ UpdateGradeDMGT::
ld [wLockLevel], a ld [wLockLevel], a
ld a, 5 ld a, 5
ldh [hCLevel+1], a ldh [hCLevel+1], a
ldh [hNLevel+1], a
xor a, a xor a, a
ldh [hCLevel], a ldh [hCLevel], a
ldh [hNLevel], a
ldh [hCLevel+2], a ldh [hCLevel+2], a
ldh [hNLevel+2], a
ldh [hCLevel+3], a ldh [hCLevel+3], a
ldh [hNLevel+3], a
jp TriggerKillScreen jp TriggerKillScreen
@ -849,10 +853,14 @@ UpdateGradeDEAT:
ld [wRankingDisqualified], a ld [wRankingDisqualified], a
ld a, 5 ld a, 5
ldh [hCLevel+1], a ldh [hCLevel+1], a
ldh [hNLevel+1], a
xor a, a xor a, a
ldh [hCLevel], a ldh [hCLevel], a
ldh [hNLevel], a
ldh [hCLevel+2], a ldh [hCLevel+2], a
ldh [hNLevel+2], a
ldh [hCLevel+3], a ldh [hCLevel+3], a
ldh [hNLevel+3], a
jp TriggerKillScreen jp TriggerKillScreen
@ -951,19 +959,27 @@ UpdateGradeSHIR:
.l1000 .l1000
ld a, 1 ld a, 1
ldh [hCLevel], a ldh [hCLevel], a
ldh [hNLevel], a
xor a, a xor a, a
ldh [hCLevel+1], a ldh [hCLevel+1], a
ldh [hNLevel+1], a
ldh [hCLevel+2], a ldh [hCLevel+2], a
ldh [hNLevel+2], a
ldh [hCLevel+3], a ldh [hCLevel+3], a
ldh [hNLevel+3], a
jp TriggerKillScreen jp TriggerKillScreen
.l500 .l500
ld a, 5 ld a, 5
ldh [hCLevel+1], a ldh [hCLevel+1], a
ldh [hNLevel+1], a
xor a, a xor a, a
ldh [hCLevel], a ldh [hCLevel], a
ldh [hNLevel], a
ldh [hCLevel+2], a ldh [hCLevel+2], a
ldh [hNLevel+2], a
ldh [hCLevel+3], a ldh [hCLevel+3], a
ldh [hNLevel+3], a
jp TriggerKillScreen jp TriggerKillScreen
ENDC ENDC

View File

@ -43,6 +43,7 @@ SECTION "Level Variables", WRAM0
wBoneActivationLevel: ds 2 wBoneActivationLevel: ds 2
wInvisActivationLevel: ds 2 wInvisActivationLevel: ds 2
wKillScreenActivationLevel: ds 2 wKillScreenActivationLevel: ds 2
wKillScreenActivationLevelBCD: ds 2
wBonesActive:: ds 1 wBonesActive:: ds 1
wInvisActive:: ds 1 wInvisActive:: ds 1
wKillScreenActive:: ds 1 wKillScreenActive:: ds 1
@ -183,8 +184,12 @@ SpecialLevelInit:
ld [wInvisActivationLevel+1], a ld [wInvisActivationLevel+1], a
ld a, [hl+] ld a, [hl+]
ld [wKillScreenActivationLevel], a ld [wKillScreenActivationLevel], a
ld a, [hl] ld a, [hl+]
ld [wKillScreenActivationLevel+1], a ld [wKillScreenActivationLevel+1], a
ld a, [hl+]
ld [wKillScreenActivationLevelBCD], a
ld a, [hl]
ld [wKillScreenActivationLevelBCD+1], a
ret ret
@ -563,6 +568,28 @@ CheckSpecialLevelConditions:
ld a, $FF ld a, $FF
ld [wKillScreenActive], a ld [wKillScreenActive], a
ld hl, wKillScreenActivationLevelBCD
ld a, [hl]
and a, $0F
ldh [hCLevel+3], a
ldh [hNLevel+3], a
ld a, [hl+]
swap a
and a, $0F
ldh [hCLevel+2], a
ldh [hNLevel+2], a
ld a, [hl]
and a, $0F
ldh [hCLevel+1], a
ldh [hNLevel+1], a
ld a, [hl]
swap a
and a, $0F
ldh [hCLevel], a
ldh [hNLevel], a
ld a, $FF
ld [wLockLevel], a
ret ret

View File

@ -195,6 +195,7 @@ sDMGTSpeedCurveSpecialData::
dw 2000 ; When do we get bones? dw 2000 ; When do we get bones?
dw $FFFF ; When do blocks turn invisible? dw $FFFF ; When do blocks turn invisible?
dw 9999 ; When is the hard kill screen? dw 9999 ; When is the hard kill screen?
dw $9999 ; Same but in BCD.
sTGM1SpeedCurve:: sTGM1SpeedCurve::
@ -341,6 +342,7 @@ sTGM1SpeedCurveSpecialData::
dw 1000 ; When do we get bones? dw 1000 ; When do we get bones?
dw $FFFF ; When do blocks turn invisible? dw $FFFF ; When do blocks turn invisible?
dw 1199 ; When is the hard kill screen? dw 1199 ; When is the hard kill screen?
dw $1199 ; Same but in BCD.
sCHILSpeedCurve:: sCHILSpeedCurve::
@ -439,6 +441,7 @@ sCHILSpeedCurveSpecialData::
dw $FFFF ; When do we get bones? dw $FFFF ; When do we get bones?
dw $FFFF ; When do blocks turn invisible? dw $FFFF ; When do blocks turn invisible?
dw 9999 ; When is the hard kill screen? dw 9999 ; When is the hard kill screen?
dw $9999 ; Same but in BCD.
sTGM3SpeedCurve:: sTGM3SpeedCurve::
@ -597,6 +600,7 @@ sTGM3SpeedCurveSpecialData::
dw $FFFF ; When do we get bones? dw $FFFF ; When do we get bones?
dw 1300 ; When do blocks turn invisible? dw 1300 ; When do blocks turn invisible?
dw 1499 ; When is the hard kill screen? dw 1499 ; When is the hard kill screen?
dw $1499 ; Same but in BCD.
sDEATSpeedCurve:: sDEATSpeedCurve::
dw $0000, 0, $0100 dw $0000, 0, $0100
@ -646,6 +650,7 @@ sDEATSpeedCurveSpecialData::
dw $FFFF ; When do we get bones? dw $FFFF ; When do we get bones?
dw 1000 ; When do blocks turn invisible? dw 1000 ; When do blocks turn invisible?
dw 1199 ; When is the hard kill screen? dw 1199 ; When is the hard kill screen?
dw $1199 ; Same but in BCD.
sSHIRSpeedCurve:: sSHIRSpeedCurve::
@ -684,6 +689,7 @@ sSHIRSpeedCurveSpecialData::
dw 900 ; When do we get bones? dw 900 ; When do we get bones?
dw 1300 ; When do blocks turn invisible? dw 1300 ; When do blocks turn invisible?
dw 1499 ; When is the hard kill screen? dw 1499 ; When is the hard kill screen?
dw $1499 ; Same but in BCD.
sMYCOSpeedCurve:: sMYCOSpeedCurve::
@ -794,6 +800,7 @@ sMYCOSpeedCurveSpecialData::
dw $FFFF ; When do we get bones? dw $FFFF ; When do we get bones?
dw $FFFF ; When do blocks turn invisible? dw $FFFF ; When do blocks turn invisible?
dw 300 ; When is the hard kill screen? dw 300 ; When is the hard kill screen?
dw $0300 ; Same but in BCD.
sSharedTiles:: sSharedTiles::

View File

@ -119,6 +119,9 @@ HandleTimers::
ret z ret z
cp a, MODE_PRE_GAME_OVER cp a, MODE_PRE_GAME_OVER
ret z ret z
ld a, [wKillScreenActive]
cp a, $FF
ret z
ld a, [wMinutes] ld a, [wMinutes]
cp a, 99 cp a, 99