Final release for now.

This commit is contained in:
Randy Thiemann 2023-10-24 16:27:52 +02:00
parent 83f93ee1ed
commit c8a04631af
6 changed files with 96 additions and 113 deletions

View File

@ -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. - 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 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. - A rock solid 60FPS with a traditional 20x10 grid.
- Game boy color mode.
## Options ## Options
@ -35,7 +36,9 @@ Select the rotation rules:
Select whether up performs a sonic drop, a hard drop, or nothing at all. Select whether up performs a sonic drop, a hard drop, or nothing at all.
### Speed Curve ### 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 ### Always 20G
Whether you want instant-drop gravity to be active at any level. 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. 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 ## License
Copyright (C) 2023 - Randy Thiemann <randy.thiemann@gmail.com> Copyright (C) 2023 - Randy Thiemann <randy.thiemann@gmail.com>

View File

@ -90,10 +90,10 @@ sOption3::
sOption4:: sOption4::
db "DMGT" db "DMGT"
db "TGM1" db "TGM1"
db "TGM2"
db "TGM3" db "TGM3"
db "DEAT" db "DEAT"
db "SHIR" db "SHIR"
db "CHIL"
sOption5:: sOption5::
db " NO" db " NO"
db " YES" db " YES"
@ -216,112 +216,96 @@ sTGM1SpeedCurveEnd::
dw $FFFF dw $FFFF
sTGM2SpeedCurve:: sCHILSpeedCurve::
dw $0000, 0, $0100 dw $0000, 0, $0100
db 1, 64 db 1, 48
db 27, 16, 30, 40 db 10, 16, 25, 17
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 dw $0100, 100, $0200
db 1, 3 db 1, 43
db 27, 16, 30, 40 db 10, 16, 25, 17
dw $0160, 160, $0200
db 1, 2
db 27, 16, 30, 40
dw $0200, 200, $0300 dw $0200, 200, $0300
db 1, 64 db 1, 38
db 27, 16, 30, 40 db 10, 16, 25, 17
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 dw $0300, 300, $0400
db 2, 1 db 1, 33
db 27, 16, 30, 40 db 10, 16, 25, 17
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 dw $0400, 400, $0500
db 5, 1 db 1, 28
db 27, 16, 30, 40 db 10, 16, 25, 17
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 dw $0500, 500, $0600
db 20, 1 db 1, 23
db 27, 10, 30, 25 db 10, 16, 25, 17
dw $0601, 601, $0700 dw $0600, 600, $0700
db 20, 1 db 1, 18
db 27, 10, 30, 7 db 10, 16, 25, 17
dw $0701, 701, $0800 dw $0700, 700, $0800
db 20, 1 db 1, 13
db 18, 10, 30, 7 db 10, 16, 25, 17
dw $0801, 801, $0900 dw $0800, 800, $0900
db 20, 1 db 1, 8
db 14, 10, 30, 1 db 10, 16, 25, 17
dw $0901, 901, $1000 dw $0900, 900, $1000
db 20, 1 db 1, 6
db 14, 6, 18, 1 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 dw $FFFF

View File

@ -173,10 +173,10 @@ DEF DROP_MODE_COUNT EQU 3
DEF SCURVE_DMGT EQU 0 DEF SCURVE_DMGT EQU 0
DEF SCURVE_TGM1 EQU 1 DEF SCURVE_TGM1 EQU 1
DEF SCURVE_TGM2 EQU 2 DEF SCURVE_TGM3 EQU 2
DEF SCURVE_TGM3 EQU 3 DEF SCURVE_DEAT EQU 3
DEF SCURVE_DEAT EQU 4 DEF SCURVE_SHIR EQU 4
DEF SCURVE_SHIR EQU 5 DEF SCURVE_CHIL EQU 5
DEF SCURVE_COUNT EQU 6 DEF SCURVE_COUNT EQU 6
DEF TILE_HIG_MODE_BASE EQU 232 DEF TILE_HIG_MODE_BASE EQU 232

Binary file not shown.

View File

@ -530,8 +530,8 @@ Tiles::
DB $4A,$4A,$4A,$4A,$E4,$E4,$00,$00 DB $4A,$4A,$4A,$4A,$E4,$E4,$00,$00
DB $CA,$CA,$2A,$2A,$2A,$2A,$4E,$4E DB $CA,$CA,$2A,$2A,$2A,$2A,$4E,$4E
DB $82,$82,$82,$82,$E2,$E2,$00,$00 DB $82,$82,$82,$82,$E2,$E2,$00,$00
DB $0A,$0A,$0A,$0A,$0A,$0A,$04,$04 DB $FE,$FE,$06,$06,$0C,$0C,$38,$38
DB $0A,$0A,$0A,$0A,$0A,$0A,$00,$00 DB $60,$60,$C0,$C0,$FE,$FE,$00,$00
TilesEnd:: TilesEnd::

View File

@ -441,10 +441,6 @@ GetEnd:
jr nz, :+ jr nz, :+
ld bc, sTGM1SpeedCurveEnd ld bc, sTGM1SpeedCurveEnd
ret ret
: cp a, SCURVE_TGM2
jr nz, :+
ld bc, sTGM2SpeedCurveEnd
ret
: cp a, SCURVE_TGM3 : cp a, SCURVE_TGM3
jr nz, :+ jr nz, :+
ld bc, sTGM3SpeedCurveEnd ld bc, sTGM3SpeedCurveEnd
@ -453,7 +449,11 @@ GetEnd:
jr nz, :+ jr nz, :+
ld bc, sDEATSpeedCurveEnd ld bc, sDEATSpeedCurveEnd
ret ret
: ld bc, sSHIRSpeedCurveEnd : cp a, SCURVE_SHIR
jr nz, :+
ld bc, sSHIRSpeedCurveEnd
ret
: ld bc, sCHILSpeedCurveEnd
ret ret
GetStart: GetStart:
@ -466,19 +466,19 @@ GetStart:
jr nz, :+ jr nz, :+
ld hl, sTGM1SpeedCurve ld hl, sTGM1SpeedCurve
ret ret
: cp a, SCURVE_TGM2
jr nz, :+
ld hl, sTGM2SpeedCurve
ret
: cp a, SCURVE_TGM3 : cp a, SCURVE_TGM3
jr nz, :+ jr nz, :+
ld hl, sTGM2SpeedCurve ld hl, sTGM3SpeedCurve
ret ret
: cp a, SCURVE_DEAT : cp a, SCURVE_DEAT
jr nz, :+ jr nz, :+
ld hl, sDEATSpeedCurve ld hl, sDEATSpeedCurve
ret ret
: ld hl, sSHIRSpeedCurve : cp a, SCURVE_SHIR
jr nz, :+
ld hl, sSHIRSpeedCurve
ret
: ld hl, sCHILSpeedCurve
ret ret
CheckLevelRange: CheckLevelRange: