From eda0b6353cd336718eb3eaf74ac1d59ac4781d72 Mon Sep 17 00:00:00 2001 From: Randy Thiemann Date: Wed, 8 Nov 2023 22:35:08 +0100 Subject: [PATCH] Add special mode endings. --- bin/DMGTRIS.GBC | Bin 131072 -> 131072 bytes bin/DMGTRIS.map | 3381 +++++++++++++------------- bin/DMGTRIS.pocket | Bin 131072 -> 131072 bytes bin/DMGTRIS.sym | 2934 +++++++++++----------- src/field.asm | 68 +- src/grading.asm | 14 +- src/include/globals.asm | 5 + src/level.asm | 191 ++ src/res/other_data.inc | 56 +- src/res/sources/tiles_gameplay_c.gbr | Bin 39009 -> 39009 bytes src/res/sources/tiles_gameplay_m.gbr | Bin 39009 -> 39009 bytes src/res/sources/tiles_shared.gbr | Bin 39009 -> 39009 bytes src/res/sources/tiles_title.gbr | Bin 39009 -> 39009 bytes src/rng.asm | 2 - src/sprites.asm | 22 +- 15 files changed, 3472 insertions(+), 3201 deletions(-) diff --git a/bin/DMGTRIS.GBC b/bin/DMGTRIS.GBC index 2d353af3712269549b0e4082fa146393ca0fffe5..f395910695a84a6172ca7965b2dff96f0481d8a7 100644 GIT binary patch delta 6035 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 DE... + ; Skip if B < D. + ld a, b + cp a, d + jr c, .invis + + ; We can confidently enter the bone zone if B > D. + jr nz, .enterthebonezone + + ; If B == D, we need to check C and E... + + ; Skip if C < E. Otherwise enter the bone zone. + ld a, c + cp a, e + jr c, .invis + +.enterthebonezone + ld a, $FF + ld [wBonesActive], a + + ; Invis? +.invis + ld hl, wInvisActivationLevel + ld a, [hl+] + cp a, $FF ; $FF means never. + jp z, .killscreen + + ; Load the level, binary in de. + ld e, a + ld d, [hl] + + ; Check if BC >= DE... + ; Skip if B < D. + ld a, b + cp a, d + jr c, .killscreen + + ; We can confidently vanish if B > D. + jr nz, .vanishoxyaction + + ; If B == D, we need to check C and E... + + ; Skip if C < E. Otherwise vanish. + ld a, c + cp a, e + jr c, .killscreen + +.vanishoxyaction + ld a, $FF + ld [wInvisActive], a + + ; Kill screen? +.killscreen + ld hl, wKillScreenActivationLevel + ld a, [hl+] + cp a, $FF + ret z + + ; Load the level, binary in de. + ld e, a + ld d, [hl] + + ; Check if BC >= DE... + ; Ret if B < D. + ld a, b + cp a, d + ret c + + ; We can confidently rip if B > D. + jr nz, .rip + + ; If B == D, we need to check C and E... + + ; Skip if C < E. Otherwise rip. + ld a, c + cp a, e + ret c + +.rip + 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 + ret + + ENDC diff --git a/src/res/other_data.inc b/src/res/other_data.inc index c77dfb3..19e52bc 100644 --- a/src/res/other_data.inc +++ b/src/res/other_data.inc @@ -192,9 +192,9 @@ sDMGTSpeedCurveEnd:: dw $FFFF ; End. sDMGTSpeedCurveSpecialData:: - dw $FFFF ; When do we get bones? - dw $2000 ; When do blocks turn invisible? - dw $9999 ; When is the hard kill screen? + dw 2000 ; When do we get bones? + dw $FFFF ; When do blocks turn invisible? + dw 9999 ; When is the hard kill screen? sTGM1SpeedCurve:: @@ -322,9 +322,9 @@ sTGM1SpeedCurveEnd:: dw $FFFF sTGM1SpeedCurveSpecialData:: - dw $FFFF ; When do we get bones? + dw 1000 ; When do we get bones? dw $FFFF ; When do blocks turn invisible? - dw $0999 ; When is the hard kill screen? + dw 1199 ; When is the hard kill screen? sCHILSpeedCurve:: @@ -422,7 +422,7 @@ sCHILSpeedCurveEnd:: sCHILSpeedCurveSpecialData:: dw $FFFF ; When do we get bones? dw $FFFF ; When do blocks turn invisible? - dw $9999 ; When is the hard kill screen? + dw 9999 ; When is the hard kill screen? sTGM3SpeedCurve:: @@ -579,8 +579,8 @@ sTGM3SpeedCurveEnd:: sTGM3SpeedCurveSpecialData:: dw $FFFF ; When do we get bones? - dw $1300 ; When do blocks turn invisible? - dw $1500 ; When is the hard kill screen? + dw 1300 ; When do blocks turn invisible? + dw 1499 ; When is the hard kill screen? sDEATSpeedCurve:: dw $0000, 0, $0100 @@ -612,8 +612,8 @@ sDEATSpeedCurveEnd:: sDEATSpeedCurveSpecialData:: dw $FFFF ; When do we get bones? - dw $0999 ; When do blocks turn invisible? - dw $1200 ; When is the hard kill screen? + dw 1000 ; When do blocks turn invisible? + dw 1199 ; When is the hard kill screen? sSHIRSpeedCurve:: @@ -649,9 +649,9 @@ sSHIRSpeedCurveEnd:: dw $FFFF sSHIRSpeedCurveSpecialData:: - dw $0900 ; When do we get bones? - dw $1300 ; When do blocks turn invisible? - dw $1500 ; When is the hard kill screen? + dw 900 ; When do we get bones? + dw 1300 ; When do blocks turn invisible? + dw 1499 ; When is the hard kill screen? sMYCOSpeedCurve:: @@ -753,7 +753,7 @@ sMYCOSpeedCurveEnd:: sMYCOSpeedCurveSpecialData:: dw $FFFF ; When do we get bones? dw $FFFF ; When do blocks turn invisible? - dw $0300 ; When is the hard kill screen? + dw 300 ; When is the hard kill screen? sSharedTiles:: @@ -845,14 +845,14 @@ sSharedTiles:: DB $00,$00,$00,$00,$00,$00,$00,$00 DB $00,$00,$18,$18,$18,$18,$08,$08 DB $10,$10,$00,$00,$00,$00,$00,$00 - DB $00,$00,$00,$00,$00,$00,$00,$00 - DB $00,$00,$00,$00,$00,$00,$00,$00 - DB $00,$00,$00,$00,$00,$00,$00,$00 - DB $00,$00,$00,$00,$00,$00,$00,$00 - DB $00,$00,$00,$00,$00,$00,$00,$00 - DB $00,$00,$00,$00,$00,$00,$00,$00 - DB $00,$00,$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 $00,$00,$C3,$C3,$FF,$FF,$00,$00 + DB $18,$18,$7E,$7E,$DB,$DB,$DB,$DB + DB $DB,$DB,$7E,$7E,$18,$18,$00,$00 + DB $7E,$7E,$C3,$C3,$C3,$C3,$C3,$C3 + DB $66,$66,$A5,$A5,$E7,$E7,$00,$00 + DB $DB,$DB,$DB,$DB,$DB,$DB,$DB,$DB + DB $7E,$7E,$18,$18,$18,$18,$00,$00 sSharedTilesEnd:: sTitleTiles:: @@ -956,10 +956,10 @@ sTitleTiles:: DB $82,$82,$82,$82,$EC,$EC,$00,$00 DB $44,$44,$CC,$CC,$44,$44,$44,$44 DB $44,$44,$44,$44,$EE,$EE,$00,$00 - DB $4E,$4E,$A2,$A2,$A2,$A2,$A4,$A4 - DB $A4,$A4,$A4,$A4,$44,$44,$00,$00 - DB $7F,$7F,$22,$22,$14,$14,$08,$08 - DB $14,$14,$22,$22,$7F,$7F,$00,$00 + DB $44,$44,$AA,$AA,$AA,$AA,$A4,$A4 + DB $AA,$AA,$AA,$AA,$44,$44,$00,$00 + DB $7F,$7F,$22,$22,$22,$22,$14,$14 + DB $14,$14,$08,$08,$7F,$7F,$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 @@ -1689,7 +1689,7 @@ sGameplayTilesM:: 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,$00,$00,$00,$00,$10,$00 DB $00,$00,$00,$00,$00,$00,$00,$00 sGameplayTilesMEnd:: @@ -2108,7 +2108,7 @@ sGameplayTilesC:: 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,$00,$00,$00,$00,$10,$00 DB $00,$00,$00,$00,$00,$00,$00,$00 sGameplayTilesCEnd:: diff --git a/src/res/sources/tiles_gameplay_c.gbr b/src/res/sources/tiles_gameplay_c.gbr index ad957b954a5bd6ba242a70787dc73bd472864736..d3edb5d60583e69c6a4de5e22a9e63cc8e1e2818 100644 GIT binary patch delta 25 hcmaF3f$8A}rVVN>llN#yPAuS=d^VeXb5IMv2mqQI3Y-7{ delta 22 ecmaF3f$8A}rVVN>lLOk+C!fz|-5k`yF9HC2T?vl> diff --git a/src/res/sources/tiles_gameplay_m.gbr b/src/res/sources/tiles_gameplay_m.gbr index 55001dbbea6214f8afbb3990afdf5ad42ee1aed7..8fbeb8b40a6d1f38a850afdde03a0a77cc0502b1 100644 GIT binary patch delta 26 icmaF3f$8A}rVVN>llN#yZobgW!?W3Y0w2f30uBJCN($Tn delta 32 mcmaF3f$8A}rVVN>n;lxXc_s@mN^SO@z{kPC$#i862m=7njSG(e diff --git a/src/res/sources/tiles_shared.gbr b/src/res/sources/tiles_shared.gbr index 9ed262626f4a0deab2c13ba642b3a0fe76eff1c5..b209737e098526088412455c68f1df67e84686f8 100644 GIT binary patch delta 193 zcmaF3f$8A}rVZZFlfCmfRhb!pfEi4JSRghk4BKgfCv*}5uf}kMp+uD93%zNgiJFqPyXm2K8ewEb3*KKwaI6r U*(Zkv^KVXUsTJCspxn#|0G$^Tk^lez delta 113 zcmaF3f$8A}rVZy~w3(Ti89