Add torikan notice.

This commit is contained in:
Randy Thiemann 2023-11-08 23:36:10 +01:00
parent eda0b6353c
commit 048329b9ad
14 changed files with 2480 additions and 2344 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

@ -28,7 +28,7 @@ wGradePoints: ds 1
wInternalGrade: ds 1 wInternalGrade: ds 1
wDisplayedGrade:: ds 1 wDisplayedGrade:: ds 1
wEffectTimer:: ds 1 wEffectTimer:: ds 1
wRankingDisqualified:: ds 1 wRankingDisqualified: ds 1
wDecayCounter: ds 1 wDecayCounter: ds 1
wGradeGauge: ds 1 wGradeGauge: ds 1
wSMult: ds 1 wSMult: ds 1
@ -359,7 +359,32 @@ DrawGradeProgressDMGT::
ret ret
UpdateGradeDMGT:: UpdateGradeDMGT::
; Check if the torikan hasn't been calculated.
ld a, [wRankingDisqualified]
cp a, $FF
jr z, .checklineclears
; Have we hit the torikan level?
ldh a, [hCLevel+CLEVEL_HUNDREDS]
cp a, 5
jr nz, .checklineclears
; Mark it as checked and do the check.
ld a, $FF
ld [wRankingDisqualified], a
; There's a 8:00 torikan at 500.
ld b, 8
ld c, 0
call CheckTorikan
; If we failed it: DIE.
cp a, $FF
jp nz, TriggerKillScreen
; Did we have line clears? ; Did we have line clears?
.checklineclears
ldh a, [hLineClearCt] ldh a, [hLineClearCt]
cp a, 0 cp a, 0
jp z, DrawGradeProgressDMGT jp z, DrawGradeProgressDMGT
@ -812,6 +837,7 @@ UpdateGradeDEAT:
; Disqualify from ranking. ; Disqualify from ranking.
ld a, $FF ld a, $FF
ld [wRankingDisqualified], a ld [wRankingDisqualified], a
call TriggerKillScreen
ret ret
@ -901,6 +927,7 @@ UpdateGradeSHIR:
.disqualify .disqualify
ld a, $FF ld a, $FF
ld [wRankingDisqualified], a ld [wRankingDisqualified], a
call TriggerKillScreen
ret ret
ENDC ENDC

View File

@ -74,6 +74,7 @@ CHARMAP "c", 209
CHARMAP "d", 210 CHARMAP "d", 210
CHARMAP "m", 211 CHARMAP "m", 211
CHARMAP ":", 212 CHARMAP ":", 212
CHARMAP ".", 254
CHARMAP "k", 47 CHARMAP "k", 47
CHARMAP "v", 45 CHARMAP "v", 45
CHARMAP "o", 44 CHARMAP "o", 44

View File

@ -45,6 +45,7 @@ wInvisActivationLevel: ds 2
wKillScreenActivationLevel: ds 2 wKillScreenActivationLevel: ds 2
wBonesActive:: ds 1 wBonesActive:: ds 1
wInvisActive:: ds 1 wInvisActive:: ds 1
wKillScreenActive:: ds 1
SECTION "Level Functions", ROM0 SECTION "Level Functions", ROM0
@ -58,6 +59,7 @@ LevelInit::
ldh [hRequiresLineClear], a ldh [hRequiresLineClear], a
ld [wBonesActive], a ld [wBonesActive], a
ld [wInvisActive], a ld [wInvisActive], a
ld [wKillScreenActive], a
ldh a, [hStartSpeed] ldh a, [hStartSpeed]
ld l, a ld l, a
@ -551,6 +553,30 @@ CheckSpecialLevelConditions:
xor a, a xor a, a
ldh [hCurrentFractionalGravity], a ldh [hCurrentFractionalGravity], a
ld a, $FF
ld [wKillScreenActive], a
ret
TriggerKillScreen::
ld a, 1
ldh [hCurrentARE], a
ldh [hCurrentLineARE], a
ldh [hCurrentDAS], a
ldh [hCurrentLockDelay], a
ldh [hCurrentLineClearDelay], a
ld a, 20
ldh [hCurrentIntegerGravity], a
xor a, a
ldh [hCurrentFractionalGravity], a
ld [wKillScreenActivationLevel], a
ld [wKillScreenActivationLevel+1], a
ld a, $FF
ld [wKillScreenActive], a
ret ret

View File

@ -49,6 +49,24 @@ sBigPause::
db " P A U S E" db " P A U S E"
db " " db " "
sBigKill::
db "EXCELLENT!"
db " "
db " "
db " BUT... "
db " "
db " "
db " LET'S GO "
db " "
db " BETTER "
db " "
db "NEXT TIME!"
db " "
db " "
db " RETRY[A] "
db " "
db " QUIT [B] "
sBigPieceXOffsets:: ; How to draw each piece. X-offsets of the sprites. sBigPieceXOffsets:: ; How to draw each piece. X-offsets of the sprites.
db 0, 8, 16, 24 ; I db 0, 8, 16, 24 ; I
db 0, 8, 8, 16 ; Z db 0, 8, 8, 16 ; Z

View File

@ -49,6 +49,24 @@ sPause::
db " P A U S E" db " P A U S E"
db " " db " "
sKill::
db "EXCELLENT!"
db " "
db " "
db " BUT... "
db " "
db " "
db " LET'S GO "
db " "
db " BETTER "
db " "
db "NEXT TIME!"
db " "
db " "
db " RETRY[A] "
db " "
db " QUIT [B] "
sPieceXOffsets:: ; How to draw each piece. X-offsets of the sprites. sPieceXOffsets:: ; How to draw each piece. X-offsets of the sprites.
db 0, 8, 16, 24 ; I db 0, 8, 16, 24 ; I
db 0, 8, 8, 16 ; Z db 0, 8, 8, 16 ; Z

View File

@ -843,8 +843,8 @@ sSharedTiles::
DB $03,$03,$03,$03,$0F,$0F,$00,$00 DB $03,$03,$03,$03,$0F,$0F,$00,$00
DB $00,$00,$00,$00,$00,$00,$3C,$3C DB $00,$00,$00,$00,$00,$00,$3C,$3C
DB $00,$00,$00,$00,$00,$00,$00,$00 DB $00,$00,$00,$00,$00,$00,$00,$00
DB $00,$00,$18,$18,$18,$18,$08,$08 DB $18,$18,$18,$18,$08,$08,$10,$10
DB $10,$10,$00,$00,$00,$00,$00,$00 DB $00,$00,$00,$00,$00,$00,$00,$00
DB $FF,$FF,$C3,$C3,$00,$00,$3C,$3C DB $FF,$FF,$C3,$C3,$00,$00,$3C,$3C
DB $00,$00,$C3,$C3,$FF,$FF,$00,$00 DB $00,$00,$C3,$C3,$FF,$FF,$00,$00
DB $18,$18,$7E,$7E,$DB,$DB,$DB,$DB DB $18,$18,$7E,$7E,$DB,$DB,$DB,$DB
@ -1688,7 +1688,7 @@ sGameplayTilesM::
DB $18,$18,$2C,$34,$62,$5E,$76,$6E DB $18,$18,$2C,$34,$62,$5E,$76,$6E
DB $24,$3C,$24,$3C,$18,$18,$00,$00 DB $24,$3C,$24,$3C,$18,$18,$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,$30,$30,$30,$30,$00,$00
DB $00,$00,$00,$00,$00,$00,$10,$00 DB $00,$00,$00,$00,$00,$00,$10,$00
DB $00,$00,$00,$00,$00,$00,$00,$00 DB $00,$00,$00,$00,$00,$00,$00,$00
sGameplayTilesMEnd:: sGameplayTilesMEnd::
@ -2107,7 +2107,7 @@ sGameplayTilesC::
DB $18,$18,$2C,$34,$62,$5E,$76,$6E DB $18,$18,$2C,$34,$62,$5E,$76,$6E
DB $24,$3C,$24,$3C,$18,$18,$00,$00 DB $24,$3C,$24,$3C,$18,$18,$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,$30,$30,$30,$30,$00,$00
DB $00,$00,$00,$00,$00,$00,$10,$00 DB $00,$00,$00,$00,$00,$00,$10,$00
DB $00,$00,$00,$00,$00,$00,$00,$00 DB $00,$00,$00,$00,$00,$00,$00,$00
sGameplayTilesCEnd:: sGameplayTilesCEnd::

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -404,6 +404,22 @@ GamePlayEventLoopHandlerB::
.preGameOverMode .preGameOverMode
ld a, [wKillScreenActive]
cp a, $FF
jr nz, .regular
call FieldInit
ld de, sKill
ld hl, wField+(5*10)
ld bc, 160
call UnsafeMemCopy
ld a, MODE_GAME_OVER
ldh [hMode], a
jp .gameOverMode
.regular
; Spawn the failed piece. ; Spawn the failed piece.
call ForceSpawnPiece call ForceSpawnPiece
@ -1021,6 +1037,22 @@ GamePlayBigEventLoopHandlerB:
.preGameOverMode .preGameOverMode
ld a, [wKillScreenActive]
cp a, $FF
jr nz, .regular
call BigFieldInit
ld de, sBigKill
ld hl, wWideBlittedField+(3*10)
ld bc, 160
call UnsafeMemCopy
ld a, MODE_GAME_OVER
ldh [hMode], a
jp .gameOverMode
.regular
; Spawn the failed piece. ; Spawn the failed piece.
call BigForceSpawnPiece call BigForceSpawnPiece
call BigWidenField call BigWidenField