diff --git a/README.md b/README.md index 6235851..5cbd270 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,7 @@ The game is heavily inspired by the TGM series of games and has the following fe - Scoring is a hybrid between TGM1 and TGM2. - A speed curve reminiscent of TGM, starting slightly faster and skipping the awkward speed reset. The game continues infinitely... But so does the speed increase. - A rock solid 60FPS with a traditional 20x10 grid. +- Game boy color mode. ## Options @@ -35,7 +36,9 @@ Select the rotation rules: Select whether up performs a sonic drop, a hard drop, or nothing at all. ### Speed Curve -Select between several speed curves including the DMGTRIS default speed curve, TGM1, 2, and 3, as well as DEATH and SHIRASE mode. Note that all modes use the same scoring and they are all infinite. +Select between several speed curves including the DMGTRIS default speed curve, TGM1, TGM3, as well as DEATH and SHIRASE mode. In addition there's a "CHILL" curve for when you just want to enjoy some tetris. It doesn't speed up very fast at all. + +Note that all modes use the same scoring and they are all infinite. ### Always 20G Whether you want instant-drop gravity to be active at any level. @@ -98,10 +101,6 @@ Please do not try running it on older emulators such as VBA, since this game use The game can be built using gnu make and the RGBDS toolchain. -## Issues -- In very rare cases the frame time in TGM3 and TGW3 modes can be exceeded due to the way the RNG for those modes works. When this happens, the screen will appear slightly glitched for 1 frame but no frame drops will occur. This issues is fundamentally impossible to completely avoid though more optimization may cause it to occur less frequently. - - ## License Copyright (C) 2023 - Randy Thiemann diff --git a/src/constants.asm b/src/constants.asm index 2f74ee5..44116b0 100644 --- a/src/constants.asm +++ b/src/constants.asm @@ -90,10 +90,10 @@ sOption3:: sOption4:: db "DMGT" db "TGM1" - db "TGM2" db "TGM3" db "DEAT" db "SHIR" + db "CHIL" sOption5:: db " NO" db " YES" @@ -216,112 +216,96 @@ sTGM1SpeedCurveEnd:: dw $FFFF -sTGM2SpeedCurve:: +sCHILSpeedCurve:: 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 + db 1, 48 + db 10, 16, 25, 17 dw $0100, 100, $0200 - db 1, 3 - db 27, 16, 30, 40 - - dw $0160, 160, $0200 - db 1, 2 - db 27, 16, 30, 40 + db 1, 43 + db 10, 16, 25, 17 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 + db 1, 38 + db 10, 16, 25, 17 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 + db 1, 33 + db 10, 16, 25, 17 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 + db 1, 28 + db 10, 16, 25, 17 dw $0500, 500, $0600 - db 20, 1 - db 27, 10, 30, 25 + db 1, 23 + db 10, 16, 25, 17 - dw $0601, 601, $0700 - db 20, 1 - db 27, 10, 30, 7 + dw $0600, 600, $0700 + db 1, 18 + db 10, 16, 25, 17 - dw $0701, 701, $0800 - db 20, 1 - db 18, 10, 30, 7 + dw $0700, 700, $0800 + db 1, 13 + db 10, 16, 25, 17 - dw $0801, 801, $0900 - db 20, 1 - db 14, 10, 30, 1 + dw $0800, 800, $0900 + db 1, 8 + db 10, 16, 25, 17 - dw $0901, 901, $1000 - db 20, 1 - db 14, 6, 18, 1 + dw $0900, 900, $1000 + db 1, 6 + db 10, 16, 25, 17 -sTGM2SpeedCurveEnd:: + dw $1000, 1000, $1100 + db 1, 5 + db 10, 16, 25, 17 + + dw $1300, 1300, $1400 + db 1, 4 + db 10, 16, 25, 17 + + dw $1600, 1600, $1700 + db 1, 3 + db 10, 16, 25, 17 + + dw $1900, 1900, $2000 + db 1, 2 + db 10, 16, 25, 17 + + dw $2900, 2900, $3000 + db 1, 1 + db 10, 16, 25, 17 + + dw $3333, 3333, $3400 + db 2, 1 + db 10, 12, 25, 17 + + dw $4444, 4444, $4500 + db 3, 1 + db 10, 12, 25, 17 + + dw $5555, 5555, $5600 + db 4, 1 + db 10, 12, 25, 17 + + dw $6666, 6666, $6700 + db 5, 1 + db 10, 12, 25, 17 + + dw $7777, 7777, $7800 + db 20, 1 + db 10, 8, 25, 17 + + dw $8888, 8888, $8900 + db 20, 1 + db 10, 6, 18, 17 + + dw $9999, 9999, $9999 + db 20, 1 + db 5, 6, 14, 10 + +sCHILSpeedCurveEnd:: dw $FFFF diff --git a/src/include/globals.asm b/src/include/globals.asm index ea5fb23..b04767f 100644 --- a/src/include/globals.asm +++ b/src/include/globals.asm @@ -173,10 +173,10 @@ DEF DROP_MODE_COUNT EQU 3 DEF SCURVE_DMGT EQU 0 DEF SCURVE_TGM1 EQU 1 -DEF SCURVE_TGM2 EQU 2 -DEF SCURVE_TGM3 EQU 3 -DEF SCURVE_DEAT EQU 4 -DEF SCURVE_SHIR EQU 5 +DEF SCURVE_TGM3 EQU 2 +DEF SCURVE_DEAT EQU 3 +DEF SCURVE_SHIR EQU 4 +DEF SCURVE_CHIL EQU 5 DEF SCURVE_COUNT EQU 6 DEF TILE_HIG_MODE_BASE EQU 232 diff --git a/src/res/sources/tiles.gbr b/src/res/sources/tiles.gbr index 8ef0b2d..885ea18 100644 Binary files a/src/res/sources/tiles.gbr and b/src/res/sources/tiles.gbr differ diff --git a/src/res/tiles.inc b/src/res/tiles.inc index a5ea579..f1ec1ea 100644 --- a/src/res/tiles.inc +++ b/src/res/tiles.inc @@ -530,8 +530,8 @@ Tiles:: DB $4A,$4A,$4A,$4A,$E4,$E4,$00,$00 DB $CA,$CA,$2A,$2A,$2A,$2A,$4E,$4E DB $82,$82,$82,$82,$E2,$E2,$00,$00 - DB $0A,$0A,$0A,$0A,$0A,$0A,$04,$04 - DB $0A,$0A,$0A,$0A,$0A,$0A,$00,$00 + DB $FE,$FE,$06,$06,$0C,$0C,$38,$38 + DB $60,$60,$C0,$C0,$FE,$FE,$00,$00 TilesEnd:: diff --git a/src/state_title.asm b/src/state_title.asm index 4580de4..b07e9eb 100644 --- a/src/state_title.asm +++ b/src/state_title.asm @@ -441,10 +441,6 @@ GetEnd: jr nz, :+ ld bc, sTGM1SpeedCurveEnd ret -: cp a, SCURVE_TGM2 - jr nz, :+ - ld bc, sTGM2SpeedCurveEnd - ret : cp a, SCURVE_TGM3 jr nz, :+ ld bc, sTGM3SpeedCurveEnd @@ -453,7 +449,11 @@ GetEnd: jr nz, :+ ld bc, sDEATSpeedCurveEnd ret -: ld bc, sSHIRSpeedCurveEnd +: cp a, SCURVE_SHIR + jr nz, :+ + ld bc, sSHIRSpeedCurveEnd + ret +: ld bc, sCHILSpeedCurveEnd ret GetStart: @@ -466,19 +466,19 @@ GetStart: jr nz, :+ ld hl, sTGM1SpeedCurve ret -: cp a, SCURVE_TGM2 - jr nz, :+ - ld hl, sTGM2SpeedCurve - ret : cp a, SCURVE_TGM3 jr nz, :+ - ld hl, sTGM2SpeedCurve + ld hl, sTGM3SpeedCurve ret : cp a, SCURVE_DEAT jr nz, :+ ld hl, sDEATSpeedCurve ret -: ld hl, sSHIRSpeedCurve +: cp a, SCURVE_SHIR + jr nz, :+ + ld hl, sSHIRSpeedCurve + ret +: ld hl, sCHILSpeedCurve ret CheckLevelRange: