From a4f41eee1febce423c3249ab089125481c8f0a6a Mon Sep 17 00:00:00 2001 From: Randy Thiemann Date: Tue, 24 Oct 2023 14:38:19 +0200 Subject: [PATCH] Release. --- DMGTRIS.GBC | Bin 32768 -> 32768 bytes README.md | 11 +- src/constants.asm | 254 ++++++++++++++++++++++++++++++++++++---- src/field.asm | 21 ---- src/include/globals.asm | 8 +- src/state_gameplay.asm | 42 ++++++- src/state_title.asm | 44 +++---- 7 files changed, 305 insertions(+), 75 deletions(-) diff --git a/DMGTRIS.GBC b/DMGTRIS.GBC index be5ae898c089f0b13c523f4aa812ab902410fdfb..71f0a5673df0a72b33295b947d99b14e60c4df0d 100644 GIT binary patch delta 8889 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 Trbfj7UfXIV1C7Ej@qhonTIpD| delta 5477 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 diff --git a/src/constants.asm b/src/constants.asm index fbecfed..2f74ee5 100644 --- a/src/constants.asm +++ b/src/constants.asm @@ -71,24 +71,6 @@ sGo:: db " GO " sPause:: db "P A U S E " db " P A U S E" - db "P A U S E " - db " P A U S E" - db "P A U S E " - db " P A U S E" - db "P A U S E " - db " P A U S E" - db "P A U S E " - db " P A U S E" - db "P A U S E " - db " P A U S E" - db "P A U S E " - db " P A U S E" - db "P A U S E " - db " P A U S E" - db "P A U S E " - db " P A U S E" - db "P A U S E " - db " P A U S E" sOption0:: db "NORM" db " INV" @@ -108,6 +90,8 @@ sOption3:: sOption4:: db "DMGT" db "TGM1" + db "TGM2" + db "TGM3" db "DEAT" db "SHIR" sOption5:: @@ -231,6 +215,236 @@ sTGM1SpeedCurve:: sTGM1SpeedCurveEnd:: dw $FFFF + +sTGM2SpeedCurve:: + dw $0000, 0, $0100 + db 1, 64 + db 27, 16, 30, 40 + + dw $0030, 30, $0100 + db 1, 42 + db 27, 16, 30, 40 + + dw $0035, 35, $0100 + db 1, 32 + db 27, 16, 30, 40 + + dw $0040, 40, $0100 + db 1, 25 + db 27, 16, 30, 40 + + dw $0060, 60, $0100 + db 1, 16 + db 27, 16, 30, 40 + + dw $0070, 70, $0100 + db 1, 8 + db 27, 16, 30, 40 + + dw $0080, 80, $0100 + db 1, 5 + db 27, 16, 30, 40 + + dw $0100, 100, $0200 + db 1, 3 + db 27, 16, 30, 40 + + dw $0160, 160, $0200 + db 1, 2 + db 27, 16, 30, 40 + + dw $0200, 200, $0300 + db 1, 64 + db 27, 16, 30, 40 + + dw $0220, 220, $0300 + db 1, 8 + db 27, 16, 30, 40 + + dw $0230, 230, $0300 + db 1, 4 + db 27, 16, 30, 40 + + dw $0233, 233, $0300 + db 1, 3 + db 27, 16, 30, 40 + + dw $0236, 236, $0300 + db 1, 2 + db 27, 16, 30, 40 + + dw $0251, 251, $0300 + db 1, 1 + db 27, 16, 30, 40 + + dw $0300, 300, $0400 + db 2, 1 + db 27, 16, 30, 40 + + dw $0330, 330, $0400 + db 3, 1 + db 27, 16, 30, 40 + + dw $0360, 360, $0400 + db 4, 1 + db 27, 16, 30, 40 + + dw $0400, 400, $0500 + db 5, 1 + db 27, 16, 30, 40 + + dw $0420, 420, $0500 + db 4, 1 + db 27, 16, 30, 40 + + dw $0450, 450, $0500 + db 3, 1 + db 27, 16, 30, 40 + + dw $0500, 500, $0600 + db 20, 1 + db 27, 10, 30, 25 + + dw $0601, 601, $0700 + db 20, 1 + db 27, 10, 30, 7 + + dw $0701, 701, $0800 + db 20, 1 + db 18, 10, 30, 7 + + dw $0801, 801, $0900 + db 20, 1 + db 14, 10, 30, 1 + + dw $0901, 901, $1000 + db 20, 1 + db 14, 6, 18, 1 + +sTGM2SpeedCurveEnd:: + dw $FFFF + + +sTGM3SpeedCurve:: + dw $0000, 0, $0100 + db 1, 64 + db 27, 16, 30, 40 + + dw $0030, 30, $0100 + db 1, 42 + db 27, 16, 30, 40 + + dw $0035, 35, $0100 + db 1, 32 + db 27, 16, 30, 40 + + dw $0040, 40, $0100 + db 1, 25 + db 27, 16, 30, 40 + + dw $0060, 60, $0100 + db 1, 16 + db 27, 16, 30, 40 + + dw $0070, 70, $0100 + db 1, 8 + db 27, 16, 30, 40 + + dw $0080, 80, $0100 + db 1, 5 + db 27, 16, 30, 40 + + dw $0100, 100, $0200 + db 1, 3 + db 27, 16, 30, 40 + + dw $0160, 160, $0200 + db 1, 2 + db 27, 16, 30, 40 + + dw $0200, 200, $0300 + db 1, 64 + db 27, 16, 30, 40 + + dw $0220, 220, $0300 + db 1, 8 + db 27, 16, 30, 40 + + dw $0230, 230, $0300 + db 1, 4 + db 27, 16, 30, 40 + + dw $0233, 233, $0300 + db 1, 3 + db 27, 16, 30, 40 + + dw $0236, 236, $0300 + db 1, 2 + db 27, 16, 30, 40 + + dw $0251, 251, $0300 + db 1, 1 + db 27, 16, 30, 40 + + dw $0300, 300, $0400 + db 2, 1 + db 27, 16, 30, 40 + + dw $0330, 330, $0400 + db 3, 1 + db 27, 16, 30, 40 + + dw $0360, 360, $0400 + db 4, 1 + db 27, 16, 30, 40 + + dw $0400, 400, $0500 + db 5, 1 + db 27, 16, 30, 40 + + dw $0420, 420, $0500 + db 4, 1 + db 27, 16, 30, 40 + + dw $0450, 450, $0500 + db 3, 1 + db 27, 16, 30, 40 + + dw $0500, 500, $0600 + db 20, 1 + db 27, 10, 30, 25 + + dw $0600, 600, $0700 + db 20, 1 + db 27, 10, 30, 7 + + dw $0700, 700, $0800 + db 20, 1 + db 18, 10, 30, 7 + + dw $0800, 800, $0900 + db 20, 1 + db 14, 10, 30, 1 + + dw $0900, 900, $1000 + db 20, 1 + db 14, 8, 18, 1 + + dw $1000, 1000, $1100 + db 20, 1 + db 8, 8, 18, 6 + + dw $1100, 1000, $1200 + db 20, 1 + db 7, 8, 14, 6 + + dw $1200, 1000, $1300 + db 20, 1 + db 6, 8, 14, 6 + +sTGM3SpeedCurveEnd:: + dw $FFFF + sDEATSpeedCurve:: dw $0000, 0, $0100 db 20, 1 @@ -238,11 +452,11 @@ sDEATSpeedCurve:: dw $0100, 0, $0200 db 20, 1 - db 14, 12, 25, 6 + db 14, 12, 25, 1 dw $0200, 0, $0300 db 20, 1 - db 14, 11, 20, 6 + db 14, 11, 20, 1 dw $0300, 0, $0400 db 20, 1 diff --git a/src/field.asm b/src/field.asm index f164762..30e1345 100644 --- a/src/field.asm +++ b/src/field.asm @@ -1821,27 +1821,6 @@ FieldDelay:: jr nz, :- ldh [hBravo], a - ; Check if we are in a TGM3 mode and thus need to handle line counts of 3 and 4 differently. - ldh a, [hLineClearCt] - ld e, a - ld a, [wRotModeState] - cp a, ROT_MODE_ARSTI - jr z, .modifylines - jr .applylines -.modifylines - ldh a, [hLineClearCt] - cp a, 1 - jr z, .applylines - cp a, 2 - jr z, .applylines - cp a, 3 - jr z, .addone - inc a -.addone - inc a - ld e, a - ldh [hLineClearCt], a - ; Increment the level counter by the amount of lines. .applylines call LevelUp diff --git a/src/include/globals.asm b/src/include/globals.asm index 335f80d..ea5fb23 100644 --- a/src/include/globals.asm +++ b/src/include/globals.asm @@ -173,9 +173,11 @@ DEF DROP_MODE_COUNT EQU 3 DEF SCURVE_DMGT EQU 0 DEF SCURVE_TGM1 EQU 1 -DEF SCURVE_DEAT EQU 2 -DEF SCURVE_SHIR EQU 3 -DEF SCURVE_COUNT EQU 4 +DEF SCURVE_TGM2 EQU 2 +DEF SCURVE_TGM3 EQU 3 +DEF SCURVE_DEAT EQU 4 +DEF SCURVE_SHIR EQU 5 +DEF SCURVE_COUNT EQU 6 DEF TILE_HIG_MODE_BASE EQU 232 DEF HIG_MODE_OFF EQU 0 diff --git a/src/state_gameplay.asm b/src/state_gameplay.asm index f8c3c86..9b182ba 100644 --- a/src/state_gameplay.asm +++ b/src/state_gameplay.asm @@ -492,12 +492,12 @@ gameOverMode: ldh [hMode], a ld a, LEADY_TIME ldh [hModeCounter], a - jr drawStaticInfo + jp drawStaticInfo ; Quit : ldh a, [hBState] cp a, 1 - jr nz, drawStaticInfo + jp nz, drawStaticInfo call SwitchToTitle jp EventLoopPostHandler @@ -514,7 +514,43 @@ pauseMode: ; Draw PAUSE all over the field. : ld de, sPause ld hl, wField+(4*10) - ld bc, 200 + ld bc, 20 + call UnsafeMemCopy + ld de, sPause + ld hl, wField+(6*10) + ld bc, 20 + call UnsafeMemCopy + ld de, sPause + ld hl, wField+(8*10) + ld bc, 20 + call UnsafeMemCopy + ld de, sPause + ld hl, wField+(10*10) + ld bc, 20 + call UnsafeMemCopy + ld de, sPause + ld hl, wField+(12*10) + ld bc, 20 + call UnsafeMemCopy + ld de, sPause + ld hl, wField+(14*10) + ld bc, 20 + call UnsafeMemCopy + ld de, sPause + ld hl, wField+(16*10) + ld bc, 20 + call UnsafeMemCopy + ld de, sPause + ld hl, wField+(18*10) + ld bc, 20 + call UnsafeMemCopy + ld de, sPause + ld hl, wField+(20*10) + ld bc, 20 + call UnsafeMemCopy + ld de, sPause + ld hl, wField+(22*10) + ld bc, 20 call UnsafeMemCopy jr drawStaticInfo diff --git a/src/state_title.asm b/src/state_title.asm index c54d75a..4580de4 100644 --- a/src/state_title.asm +++ b/src/state_title.asm @@ -416,23 +416,11 @@ IncrementLevel: ldh [hStartSpeed], a ld a, h ldh [hStartSpeed+1], a - jr CheckLevelRange + jp CheckLevelRange InitSpeedCurve: ld a, [wSpeedCurveState] - cp a, 0 - jr nz, :+ - ld hl, sSpeedCurve - jr .set -: cp a, 1 - jr nz, :+ - ld hl, sTGM1SpeedCurve - jr .set -: cp a, 2 - jr nz, :+ - ld hl, sDEATSpeedCurve - jr .set -: ld hl, sSHIRSpeedCurve + call GetStart .set ld a, l @@ -445,15 +433,23 @@ InitSpeedCurve: GetEnd: ld a, [wSpeedCurveState] - cp a, 0 + cp a, SCURVE_DMGT jr nz, :+ ld bc, sSpeedCurveEnd ret -: cp a, 1 +: cp a, SCURVE_TGM1 jr nz, :+ ld bc, sTGM1SpeedCurveEnd ret -: cp a, 2 +: cp a, SCURVE_TGM2 + jr nz, :+ + ld bc, sTGM2SpeedCurveEnd + ret +: cp a, SCURVE_TGM3 + jr nz, :+ + ld bc, sTGM3SpeedCurveEnd + ret +: cp a, SCURVE_DEAT jr nz, :+ ld bc, sDEATSpeedCurveEnd ret @@ -462,15 +458,23 @@ GetEnd: GetStart: ld a, [wSpeedCurveState] - cp a, 0 + cp a, SCURVE_DMGT jr nz, :+ ld hl, sSpeedCurve ret -: cp a, 1 +: cp a, SCURVE_TGM1 jr nz, :+ ld hl, sTGM1SpeedCurve ret -: cp a, 2 +: cp a, SCURVE_TGM2 + jr nz, :+ + ld hl, sTGM2SpeedCurve + ret +: cp a, SCURVE_TGM3 + jr nz, :+ + ld hl, sTGM2SpeedCurve + ret +: cp a, SCURVE_DEAT jr nz, :+ ld hl, sDEATSpeedCurve ret