Release.
This commit is contained in:
parent
f46488e19d
commit
a4f41eee1f
BIN
DMGTRIS.GBC
BIN
DMGTRIS.GBC
Binary file not shown.
|
@ -35,7 +35,7 @@ Select the rotation rules:
|
|||
Select whether up performs a sonic drop, a hard drop, or nothing at all.
|
||||
|
||||
### Speed Curve
|
||||
Check back later! For now you're stuck with the default.
|
||||
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.
|
||||
|
||||
### Always 20G
|
||||
Whether you want instant-drop gravity to be active at any level.
|
||||
|
@ -51,7 +51,7 @@ After each piece is dropped, a check is made:
|
|||
Combo is reset to 1 and no points are awarded.
|
||||
|
||||
### Lines were cleared
|
||||
Lines = Lines cleared. In TGM3 modes, 3 lines are worth 4, and 4 lines are worth 6.
|
||||
Lines = Lines cleared.
|
||||
|
||||
Level = The level before the lines were cleared.
|
||||
|
||||
|
@ -102,11 +102,6 @@ The game can be built using gnu make and the RGBDS toolchain.
|
|||
- 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.
|
||||
|
||||
|
||||
## Future Goals
|
||||
- Implement better sound engine.
|
||||
- Add more speed curves.
|
||||
|
||||
|
||||
## License
|
||||
Copyright (C) 2023 - Randy Thiemann <randy.thiemann@gmail.com>
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue