Slightly improve game over and also add modes, removing the RNG setting instead.
This commit is contained in:
parent
3116bccde4
commit
f1f33b27d3
BIN
DMGTRIS.GB
BIN
DMGTRIS.GB
Binary file not shown.
|
@ -11,6 +11,13 @@ The Randomizer uses a TGM2-style 4-history randomizer preloaded with SSZZ, and w
|
||||||
|
|
||||||
The game itself runs at a constant 60fps as well as at the traditional 20 row visible grid.
|
The game itself runs at a constant 60fps as well as at the traditional 20 row visible grid.
|
||||||
|
|
||||||
|
There are five available game modes:
|
||||||
|
- TGM1: 4 history, 4 rerolls, no sonic drop, never start with O, S or Z.
|
||||||
|
- TGM2: 4 history, 6 rerolls, sonic drop, never start with O, S or Z.
|
||||||
|
- TGM3: 6 history, 6 rerolls, sonic drop, never start with O, S or Z. (Note, not the actual 35-bag as used in TGM3, and floor kicks are not implemented (yet) either.)
|
||||||
|
- HELL: No history, no rerolls, no sonic drop, never start with O, S or Z.
|
||||||
|
- EASY: 6 history, 256 rerolls, sonic drop, never start with O, S or Z.
|
||||||
|
|
||||||
|
|
||||||
## Playing
|
## Playing
|
||||||
You can build the game yourself, or use the binary [here](https://git.villadelfia.org/villadelfia/dmgtris/raw/branch/master/DMGTRIS.GB) or [here](https://github.com/Villadelfia/DMGTRIS/raw/master/DMGTRIS.GB).
|
You can build the game yourself, or use the binary [here](https://git.villadelfia.org/villadelfia/dmgtris/raw/branch/master/DMGTRIS.GB) or [here](https://github.com/Villadelfia/DMGTRIS/raw/master/DMGTRIS.GB).
|
||||||
|
@ -25,7 +32,7 @@ Please do not try running it on older emulators such as VBA, since this game use
|
||||||
- A/B/Start — Start the game
|
- A/B/Start — Start the game
|
||||||
- Left/Right — Switch A/B rotation direction
|
- Left/Right — Switch A/B rotation direction
|
||||||
- Up/Down — Select starting level
|
- Up/Down — Select starting level
|
||||||
- Select — Select amount of times a piece will be rerolled if it was given to you in the previous 4 pieces. TGM2 uses 6 for this value, TGM1 uses 4 for this value. You can set this to 0 (pure RNG except you'll never start with O, S, or Z), to 15 (F. Basically never get duplicates.)
|
- Select — Select game mode
|
||||||
|
|
||||||
### Gameplay
|
### Gameplay
|
||||||
- A — Rotate 1
|
- A — Rotate 1
|
||||||
|
|
|
@ -475,6 +475,25 @@ CanPieceFit:
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
ForceSpawnPiece::
|
||||||
|
call SetPieceData
|
||||||
|
call SetPieceDataOffset
|
||||||
|
ldh a, [hCurrentPieceY]
|
||||||
|
ld b, a
|
||||||
|
ldh a, [hCurrentPieceX]
|
||||||
|
call XYToFieldPtr
|
||||||
|
ld d, h
|
||||||
|
ld e, l
|
||||||
|
call GetPieceData
|
||||||
|
ld a, GAME_OVER_OTHER
|
||||||
|
ld b, a
|
||||||
|
push hl
|
||||||
|
push de
|
||||||
|
pop hl
|
||||||
|
pop de
|
||||||
|
jp DrawPiece
|
||||||
|
|
||||||
|
|
||||||
TrySpawnPiece::
|
TrySpawnPiece::
|
||||||
; Always reset these for a new piece.
|
; Always reset these for a new piece.
|
||||||
ldh a, [hCurrentLockDelay]
|
ldh a, [hCurrentLockDelay]
|
||||||
|
@ -678,7 +697,12 @@ FieldProcess::
|
||||||
; How deep can we go?
|
; How deep can we go?
|
||||||
: call FindMaxG
|
: call FindMaxG
|
||||||
|
|
||||||
; If we press up, we want to do a sonic drop.
|
; If we press up, we want to do a sonic drop, but not in TGM1 or HELL mode.
|
||||||
|
ldh a, [hSimulationMode]
|
||||||
|
cp a, MODE_TGM1
|
||||||
|
jr z, :+
|
||||||
|
cp a, MODE_HELL
|
||||||
|
jr z, :+
|
||||||
ldh a, [hUpState]
|
ldh a, [hUpState]
|
||||||
cp a, 1
|
cp a, 1
|
||||||
jr nz, :+
|
jr nz, :+
|
||||||
|
|
|
@ -111,15 +111,16 @@ DEF PALETTE_LIGHTER_3 EQU %00000000
|
||||||
DEF TITLE_A EQU $99CD
|
DEF TITLE_A EQU $99CD
|
||||||
DEF TITLE_B EQU $99CF
|
DEF TITLE_B EQU $99CF
|
||||||
DEF TITLE_LEVEL EQU $996C
|
DEF TITLE_LEVEL EQU $996C
|
||||||
DEF TITLE_ROLLS EQU $9A2F
|
DEF TITLE_MODE EQU $9A2E
|
||||||
DEF FIELD_RNGTELL EQU $9812
|
DEF FIELD_MODE EQU $9811
|
||||||
DEF FIELD_TOP_LEFT EQU $9800+1
|
DEF FIELD_TOP_LEFT EQU $9800+1
|
||||||
DEF EASTER_0 EQU $9885
|
DEF EASTER_0 EQU $9885
|
||||||
DEF EASTER_1 EQU $98A5
|
DEF EASTER_1 EQU $98A5
|
||||||
DEF TILE_FIELD_EMPTY EQU 4
|
DEF TILE_FIELD_EMPTY EQU 4
|
||||||
DEF TILE_PIECE_0 EQU 10
|
DEF TILE_PIECE_0 EQU 10
|
||||||
DEF TILE_0 EQU 66
|
DEF TILE_0 EQU 66
|
||||||
DEF TILE_0_FAINT EQU 196
|
DEF TILE_MODE_FAINT_0 EQU 196
|
||||||
|
DEF TILE_MODE_0 EQU 234
|
||||||
DEF TILE_CLEARING EQU 124
|
DEF TILE_CLEARING EQU 124
|
||||||
DEF TILE_GHOST EQU 125
|
DEF TILE_GHOST EQU 125
|
||||||
DEF TILE_A EQU 76
|
DEF TILE_A EQU 76
|
||||||
|
@ -158,6 +159,11 @@ DEF GAME_OVER_R12 EQU 153
|
||||||
DEF GAME_OVER_R14 EQU 173
|
DEF GAME_OVER_R14 EQU 173
|
||||||
DEF GAME_OVER_OTHER EQU 131
|
DEF GAME_OVER_OTHER EQU 131
|
||||||
DEF LEADY_GO_TIME EQU 90
|
DEF LEADY_GO_TIME EQU 90
|
||||||
|
DEF MODE_TGM1 EQU 0
|
||||||
|
DEF MODE_TGM2 EQU 1
|
||||||
|
DEF MODE_TGM3 EQU 2
|
||||||
|
DEF MODE_HELL EQU 3
|
||||||
|
DEF MODE_EASY EQU 4
|
||||||
|
|
||||||
|
|
||||||
ENDC
|
ENDC
|
||||||
|
|
|
@ -29,6 +29,7 @@ SECTION "High Globals", HRAM
|
||||||
hGameState:: ds 1
|
hGameState:: ds 1
|
||||||
hSwapAB:: ds 1
|
hSwapAB:: ds 1
|
||||||
hInitialA:: ds 1
|
hInitialA:: ds 1
|
||||||
|
hSimulationMode:: ds 1
|
||||||
|
|
||||||
|
|
||||||
SECTION "Stack", WRAM0
|
SECTION "Stack", WRAM0
|
||||||
|
@ -64,13 +65,13 @@ Main::
|
||||||
; Zero out the ram where needed.
|
; Zero out the ram where needed.
|
||||||
xor a, a
|
xor a, a
|
||||||
ldh [hSwapAB], a
|
ldh [hSwapAB], a
|
||||||
|
ld a, MODE_TGM2
|
||||||
|
ldh [hSimulationMode], a
|
||||||
ld hl, sSpeedCurve
|
ld hl, sSpeedCurve
|
||||||
ld a, l
|
ld a, l
|
||||||
ldh [hStartSpeed], a
|
ldh [hStartSpeed], a
|
||||||
ld a, h
|
ld a, h
|
||||||
ldh [hStartSpeed+1], a
|
ldh [hStartSpeed+1], a
|
||||||
ld a, 6
|
|
||||||
ldh [hRNGRerolls], a
|
|
||||||
call TimeInit
|
call TimeInit
|
||||||
call IntrInit
|
call IntrInit
|
||||||
call InputInit
|
call InputInit
|
||||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -282,30 +282,30 @@ Tiles::
|
||||||
DB $C0,$C0,$C0,$C0,$F0,$F0,$00,$00
|
DB $C0,$C0,$C0,$C0,$F0,$F0,$00,$00
|
||||||
DB $0F,$0F,$03,$03,$03,$03,$03,$03
|
DB $0F,$0F,$03,$03,$03,$03,$03,$03
|
||||||
DB $03,$03,$03,$03,$0F,$0F,$00,$00
|
DB $03,$03,$03,$03,$0F,$0F,$00,$00
|
||||||
DB $FF,$00,$FF,$00,$FF,$00,$FF,$00
|
DB $00,$FF,$00,$FF,$00,$FF,$00,$FF
|
||||||
DB $FF,$00,$FF,$00,$FF,$00,$00,$00
|
DB $00,$FF,$00,$FF,$00,$FF,$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,$7C,$FF,$C6,$FF,$C0,$FF,$CE
|
DB $7C,$FF,$C6,$FF,$C0,$FF,$CE,$FF
|
||||||
DB $FF,$C6,$FF,$C6,$FF,$7C,$00,$00
|
DB $C6,$FF,$C6,$FF,$7C,$FF,$00,$00
|
||||||
DB $FF,$38,$FF,$6C,$FF,$C6,$FF,$FE
|
DB $38,$FF,$6C,$FF,$C6,$FF,$FE,$FF
|
||||||
DB $FF,$C6,$FF,$C6,$FF,$C6,$00,$00
|
DB $C6,$FF,$C6,$FF,$C6,$FF,$00,$00
|
||||||
DB $FF,$C6,$FF,$EE,$FF,$FE,$FF,$D6
|
DB $C6,$FF,$EE,$FF,$FE,$FF,$D6,$FF
|
||||||
DB $FF,$C6,$FF,$C6,$FF,$C6,$00,$00
|
DB $C6,$FF,$C6,$FF,$C6,$FF,$00,$00
|
||||||
DB $FF,$FE,$FF,$C0,$FF,$C0,$FF,$F8
|
DB $FE,$FF,$C0,$FF,$C0,$FF,$F8,$FF
|
||||||
DB $FF,$C0,$FF,$C0,$FF,$FE,$00,$00
|
DB $C0,$FF,$C0,$FF,$FE,$FF,$00,$00
|
||||||
DB $FF,$00,$FF,$00,$FF,$00,$FF,$00
|
DB $00,$FF,$00,$FF,$00,$FF,$00,$FF
|
||||||
DB $FF,$00,$FF,$00,$FF,$00,$00,$00
|
DB $00,$FF,$00,$FF,$00,$FF,$00,$00
|
||||||
DB $FF,$7C,$FF,$C6,$FF,$C6,$FF,$C6
|
DB $7C,$FF,$C6,$FF,$C6,$FF,$C6,$FF
|
||||||
DB $FF,$C6,$FF,$C6,$FF,$7C,$00,$00
|
DB $C6,$FF,$C6,$FF,$7C,$FF,$00,$00
|
||||||
DB $FF,$C6,$FF,$C6,$FF,$6C,$FF,$6C
|
DB $C6,$FF,$C6,$FF,$6C,$FF,$6C,$FF
|
||||||
DB $FF,$6C,$FF,$38,$FF,$38,$00,$00
|
DB $6C,$FF,$38,$FF,$38,$FF,$00,$00
|
||||||
DB $FF,$FE,$FF,$C0,$FF,$C0,$FF,$F8
|
DB $FE,$FF,$C0,$FF,$C0,$FF,$F8,$FF
|
||||||
DB $FF,$C0,$FF,$C0,$FF,$FE,$00,$00
|
DB $C0,$FF,$C0,$FF,$FE,$FF,$00,$00
|
||||||
DB $FF,$FC,$FF,$C6,$FF,$C6,$FF,$FC
|
DB $FC,$FF,$C6,$FF,$C6,$FF,$FC,$FF
|
||||||
DB $FF,$F8,$FF,$DC,$FF,$CE,$00,$00
|
DB $F8,$FF,$DC,$FF,$CE,$FF,$00,$00
|
||||||
DB $FF,$18,$FF,$3C,$FF,$3C,$FF,$18
|
DB $18,$FF,$3C,$FF,$3C,$FF,$18,$FF
|
||||||
DB $FF,$18,$FF,$00,$FF,$18,$00,$00
|
DB $18,$FF,$00,$FF,$18,$FF,$00,$00
|
||||||
DB $7C,$7C,$C6,$C6,$C0,$C0,$CE,$CE
|
DB $7C,$7C,$C6,$C6,$C0,$C0,$CE,$CE
|
||||||
DB $C6,$C6,$C6,$C6,$7C,$7C,$00,$00
|
DB $C6,$C6,$C6,$C6,$7C,$7C,$00,$00
|
||||||
DB $38,$38,$6C,$6C,$C6,$C6,$FE,$FE
|
DB $38,$38,$6C,$6C,$C6,$C6,$FE,$FE
|
||||||
|
@ -326,26 +326,26 @@ Tiles::
|
||||||
DB $F8,$F8,$DC,$DC,$CE,$CE,$00,$00
|
DB $F8,$F8,$DC,$DC,$CE,$CE,$00,$00
|
||||||
DB $18,$18,$3C,$3C,$3C,$3C,$18,$18
|
DB $18,$18,$3C,$3C,$3C,$3C,$18,$18
|
||||||
DB $18,$18,$00,$00,$18,$18,$00,$00
|
DB $18,$18,$00,$00,$18,$18,$00,$00
|
||||||
DB $FF,$00,$FF,$00,$FF,$00,$FF,$00
|
DB $00,$FF,$00,$FF,$00,$FF,$00,$FF
|
||||||
DB $FF,$00,$FF,$00,$FF,$00,$00,$00
|
DB $00,$FF,$00,$FF,$00,$FF,$00,$00
|
||||||
DB $FF,$FC,$FF,$C6,$FF,$C6,$FF,$FC
|
DB $FC,$FF,$C6,$FF,$C6,$FF,$FC,$FF
|
||||||
DB $FF,$F8,$FF,$DC,$FF,$CE,$00,$00
|
DB $F8,$FF,$DC,$FF,$CE,$FF,$00,$00
|
||||||
DB $FF,$FE,$FF,$C0,$FF,$C0,$FF,$F8
|
DB $FE,$FF,$C0,$FF,$C0,$FF,$F8,$FF
|
||||||
DB $FF,$C0,$FF,$C0,$FF,$FE,$00,$00
|
DB $C0,$FF,$C0,$FF,$FE,$FF,$00,$00
|
||||||
DB $FF,$FC,$FF,$30,$FF,$30,$FF,$30
|
DB $FC,$FF,$30,$FF,$30,$FF,$30,$FF
|
||||||
DB $FF,$30,$FF,$30,$FF,$30,$00,$00
|
DB $30,$FF,$30,$FF,$30,$FF,$00,$00
|
||||||
DB $FF,$FC,$FF,$C6,$FF,$C6,$FF,$FC
|
DB $FC,$FF,$C6,$FF,$C6,$FF,$FC,$FF
|
||||||
DB $FF,$F8,$FF,$DC,$FF,$CE,$00,$00
|
DB $F8,$FF,$DC,$FF,$CE,$FF,$00,$00
|
||||||
DB $FF,$C6,$FF,$EE,$FF,$7C,$FF,$38
|
DB $C6,$FF,$EE,$FF,$7C,$FF,$38,$FF
|
||||||
DB $FF,$70,$FF,$E0,$FF,$C0,$00,$00
|
DB $70,$FF,$E0,$FF,$C0,$FF,$00,$00
|
||||||
DB $FF,$F0,$FF,$C0,$FF,$C0,$FF,$C0
|
DB $F0,$FF,$C0,$FF,$C0,$FF,$C0,$FF
|
||||||
DB $FF,$C0,$FF,$C0,$FF,$F0,$00,$00
|
DB $C0,$FF,$C0,$FF,$F0,$FF,$00,$00
|
||||||
DB $FF,$38,$FF,$6C,$FF,$C6,$FF,$FE
|
DB $38,$FF,$6C,$FF,$C6,$FF,$FE,$FF
|
||||||
DB $FF,$C6,$FF,$C6,$FF,$C6,$00,$00
|
DB $C6,$FF,$C6,$FF,$C6,$FF,$00,$00
|
||||||
DB $FF,$0F,$FF,$03,$FF,$03,$FF,$03
|
DB $0F,$FF,$03,$FF,$03,$FF,$03,$FF
|
||||||
DB $FF,$03,$FF,$03,$FF,$0F,$00,$00
|
DB $03,$FF,$03,$FF,$0F,$FF,$00,$00
|
||||||
DB $FF,$00,$FF,$00,$FF,$00,$FF,$00
|
DB $00,$FF,$00,$FF,$00,$FF,$00,$FF
|
||||||
DB $FF,$00,$FF,$00,$FF,$00,$00,$00
|
DB $00,$FF,$00,$FF,$00,$FF,$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 $FC,$FC,$C6,$C6,$C6,$C6,$FC,$FC
|
DB $FC,$FC,$C6,$C6,$C6,$C6,$FC,$FC
|
||||||
|
@ -366,26 +366,26 @@ Tiles::
|
||||||
DB $03,$03,$03,$03,$0F,$0F,$00,$00
|
DB $03,$03,$03,$03,$0F,$0F,$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,$00,$FF,$00,$FF,$00,$FF,$00
|
DB $00,$FF,$00,$FF,$00,$FF,$00,$FF
|
||||||
DB $FF,$00,$FF,$00,$FF,$00,$00,$00
|
DB $00,$FF,$00,$FF,$00,$FF,$00,$00
|
||||||
DB $FF,$7C,$FF,$C6,$FF,$C6,$FF,$C6
|
DB $7C,$FF,$C6,$FF,$C6,$FF,$C6,$FF
|
||||||
DB $FF,$D6,$FF,$DE,$FF,$7C,$00,$00
|
DB $D6,$FF,$DE,$FF,$7C,$FF,$00,$00
|
||||||
DB $FF,$C6,$FF,$C6,$FF,$C6,$FF,$C6
|
DB $C6,$FF,$C6,$FF,$C6,$FF,$C6,$FF
|
||||||
DB $FF,$C6,$FF,$C6,$FF,$7C,$00,$00
|
DB $C6,$FF,$C6,$FF,$7C,$FF,$00,$00
|
||||||
DB $FF,$18,$FF,$18,$FF,$18,$FF,$18
|
DB $18,$FF,$18,$FF,$18,$FF,$18,$FF
|
||||||
DB $FF,$18,$FF,$18,$FF,$18,$00,$00
|
DB $18,$FF,$18,$FF,$18,$FF,$00,$00
|
||||||
DB $FF,$FC,$FF,$30,$FF,$30,$FF,$30
|
DB $FC,$FF,$30,$FF,$30,$FF,$30,$FF
|
||||||
DB $FF,$30,$FF,$30,$FF,$30,$00,$00
|
DB $30,$FF,$30,$FF,$30,$FF,$00,$00
|
||||||
DB $FF,$00,$FF,$00,$FF,$00,$FF,$00
|
DB $00,$FF,$00,$FF,$00,$FF,$00,$FF
|
||||||
DB $FF,$00,$FF,$00,$FF,$00,$00,$00
|
DB $00,$FF,$00,$FF,$00,$FF,$00,$00
|
||||||
DB $FF,$F0,$FF,$C0,$FF,$C0,$FF,$C0
|
DB $F0,$FF,$C0,$FF,$C0,$FF,$C0,$FF
|
||||||
DB $FF,$C0,$FF,$C0,$FF,$F0,$00,$00
|
DB $C0,$FF,$C0,$FF,$F0,$FF,$00,$00
|
||||||
DB $FF,$FC,$FF,$C6,$FF,$C6,$FF,$FC
|
DB $FC,$FF,$C6,$FF,$C6,$FF,$FC,$FF
|
||||||
DB $FF,$C6,$FF,$C6,$FF,$FC,$00,$00
|
DB $C6,$FF,$C6,$FF,$FC,$FF,$00,$00
|
||||||
DB $FF,$0F,$FF,$03,$FF,$03,$FF,$03
|
DB $0F,$FF,$03,$FF,$03,$FF,$03,$FF
|
||||||
DB $FF,$03,$FF,$03,$FF,$0F,$00,$00
|
DB $03,$FF,$03,$FF,$0F,$FF,$00,$00
|
||||||
DB $FF,$00,$FF,$00,$FF,$00,$FF,$00
|
DB $00,$FF,$00,$FF,$00,$FF,$00,$FF
|
||||||
DB $FF,$00,$FF,$00,$FF,$00,$00,$00
|
DB $00,$FF,$00,$FF,$00,$FF,$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 $7C,$7C,$C6,$C6,$C6,$C6,$C6,$C6
|
DB $7C,$7C,$C6,$C6,$C6,$C6,$C6,$C6
|
||||||
|
@ -412,38 +412,38 @@ Tiles::
|
||||||
DB $A2,$A2,$A2,$A2,$BB,$BB,$00,$00
|
DB $A2,$A2,$A2,$A2,$BB,$BB,$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,$80,$80,$00,$00
|
DB $00,$00,$00,$00,$80,$80,$00,$00
|
||||||
DB $07,$00,$05,$00,$05,$00,$05,$00
|
DB $00,$00,$EE,$00,$48,$00,$4A,$00
|
||||||
DB $07,$00,$00,$00,$00,$00,$00,$00
|
DB $4A,$00,$4E,$00,$00,$00,$00,$00
|
||||||
DB $02,$00,$06,$00,$02,$00,$02,$00
|
DB $00,$00,$A4,$00,$EC,$00,$A4,$00
|
||||||
DB $07,$00,$00,$00,$00,$00,$00,$00
|
DB $A4,$00,$AE,$00,$00,$00,$00,$00
|
||||||
DB $07,$00,$01,$00,$02,$00,$04,$00
|
DB $00,$00,$EE,$00,$48,$00,$4A,$00
|
||||||
DB $07,$00,$00,$00,$00,$00,$00,$00
|
DB $4A,$00,$4E,$00,$00,$00,$00,$00
|
||||||
DB $07,$00,$01,$00,$03,$00,$01,$00
|
DB $00,$00,$AC,$00,$E2,$00,$A4,$00
|
||||||
DB $07,$00,$00,$00,$00,$00,$00,$00
|
DB $A8,$00,$AE,$00,$00,$00,$00,$00
|
||||||
DB $05,$00,$05,$00,$07,$00,$01,$00
|
DB $00,$00,$EE,$00,$48,$00,$4A,$00
|
||||||
DB $01,$00,$00,$00,$00,$00,$00,$00
|
DB $4A,$00,$4E,$00,$00,$00,$00,$00
|
||||||
DB $07,$00,$04,$00,$07,$00,$01,$00
|
DB $00,$00,$AC,$00,$E2,$00,$A4,$00
|
||||||
DB $07,$00,$00,$00,$00,$00,$00,$00
|
DB $A2,$00,$AC,$00,$00,$00,$00,$00
|
||||||
DB $07,$00,$04,$00,$07,$00,$05,$00
|
DB $00,$00,$AE,$00,$A8,$00,$EE,$00
|
||||||
DB $07,$00,$00,$00,$00,$00,$00,$00
|
DB $A8,$00,$AE,$00,$00,$00,$00,$00
|
||||||
DB $07,$00,$01,$00,$02,$00,$02,$00
|
DB $00,$00,$88,$00,$88,$00,$88,$00
|
||||||
DB $02,$00,$00,$00,$00,$00,$00,$00
|
DB $88,$00,$EE,$00,$00,$00,$00,$00
|
||||||
DB $07,$00,$05,$00,$07,$00,$05,$00
|
DB $00,$00,$E4,$00,$8A,$00,$CE,$00
|
||||||
DB $07,$00,$00,$00,$00,$00,$00,$00
|
DB $8A,$00,$EA,$00,$00,$00,$00,$00
|
||||||
DB $07,$00,$05,$00,$07,$00,$01,$00
|
DB $00,$00,$6A,$00,$8A,$00,$44,$00
|
||||||
DB $07,$00,$00,$00,$00,$00,$00,$00
|
DB $24,$00,$C4,$00,$00,$00,$00,$00
|
||||||
DB $07,$00,$05,$00,$07,$00,$05,$00
|
DB $00,$00,$AA,$00,$AA,$00,$44,$00
|
||||||
DB $05,$00,$00,$00,$00,$00,$00,$00
|
DB $AA,$00,$AA,$00,$00,$00,$00,$00
|
||||||
DB $07,$00,$05,$00,$06,$00,$05,$00
|
DB $00,$00,$AA,$00,$AA,$00,$44,$00
|
||||||
DB $07,$00,$00,$00,$00,$00,$00,$00
|
DB $AA,$00,$AA,$00,$00,$00,$00,$00
|
||||||
DB $07,$00,$04,$00,$04,$00,$04,$00
|
DB $00,$00,$AA,$00,$AA,$00,$44,$00
|
||||||
DB $07,$00,$00,$00,$00,$00,$00,$00
|
DB $AA,$00,$AA,$00,$00,$00,$00,$00
|
||||||
DB $06,$00,$05,$00,$05,$00,$05,$00
|
DB $00,$00,$AA,$00,$AA,$00,$44,$00
|
||||||
DB $06,$00,$00,$00,$00,$00,$00,$00
|
DB $AA,$00,$AA,$00,$00,$00,$00,$00
|
||||||
DB $07,$00,$04,$00,$06,$00,$04,$00
|
DB $00,$00,$AA,$00,$AA,$00,$44,$00
|
||||||
DB $07,$00,$00,$00,$00,$00,$00,$00
|
DB $AA,$00,$AA,$00,$00,$00,$00,$00
|
||||||
DB $07,$00,$04,$00,$06,$00,$04,$00
|
DB $00,$00,$AA,$00,$AA,$00,$44,$00
|
||||||
DB $04,$00,$00,$00,$00,$00,$00,$00
|
DB $AA,$00,$AA,$00,$00,$00,$00,$00
|
||||||
DB $7C,$7C,$42,$42,$41,$41,$5D,$48
|
DB $7C,$7C,$42,$42,$41,$41,$5D,$48
|
||||||
DB $6E,$4C,$5B,$4A,$79,$49,$00,$00
|
DB $6E,$4C,$5B,$4A,$79,$49,$00,$00
|
||||||
DB $68,$58,$58,$68,$68,$58,$48,$78
|
DB $68,$58,$58,$68,$68,$58,$48,$78
|
||||||
|
@ -472,6 +472,66 @@ Tiles::
|
||||||
DB $2D,$25,$3D,$3D,$01,$01,$00,$00
|
DB $2D,$25,$3D,$3D,$01,$01,$00,$00
|
||||||
DB $01,$01,$3D,$3D,$2D,$35,$C5,$FD
|
DB $01,$01,$3D,$3D,$2D,$35,$C5,$FD
|
||||||
DB $08,$F8,$10,$F0,$E0,$E0,$00,$00
|
DB $08,$F8,$10,$F0,$E0,$E0,$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 $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 $00,$00,$EE,$EE,$48,$48,$4A,$4A
|
||||||
|
DB $4A,$4A,$4E,$4E,$00,$00,$00,$00
|
||||||
|
DB $00,$00,$A4,$A4,$EC,$EC,$A4,$A4
|
||||||
|
DB $A4,$A4,$AE,$AE,$00,$00,$00,$00
|
||||||
|
DB $00,$00,$EE,$EE,$48,$48,$4A,$4A
|
||||||
|
DB $4A,$4A,$4E,$4E,$00,$00,$00,$00
|
||||||
|
DB $00,$00,$AC,$AC,$E2,$E2,$A4,$A4
|
||||||
|
DB $A8,$A8,$AE,$AE,$00,$00,$00,$00
|
||||||
|
DB $00,$00,$EE,$EE,$48,$48,$4A,$4A
|
||||||
|
DB $4A,$4A,$4E,$4E,$00,$00,$00,$00
|
||||||
|
DB $00,$00,$AC,$AC,$E2,$E2,$A4,$A4
|
||||||
|
DB $A2,$A2,$AC,$AC,$00,$00,$00,$00
|
||||||
|
DB $00,$00,$AE,$AE,$A8,$A8,$EE,$EE
|
||||||
|
DB $A8,$A8,$AE,$AE,$00,$00,$00,$00
|
||||||
|
DB $00,$00,$88,$88,$88,$88,$88,$88
|
||||||
|
DB $88,$88,$EE,$EE,$00,$00,$00,$00
|
||||||
|
DB $00,$00,$E4,$E4,$8A,$8A,$CE,$CE
|
||||||
|
DB $8A,$8A,$EA,$EA,$00,$00,$00,$00
|
||||||
|
DB $00,$00,$6A,$6A,$8A,$8A,$44,$44
|
||||||
|
DB $24,$24,$C4,$C4,$00,$00,$00,$00
|
||||||
|
DB $00,$00,$AA,$AA,$AA,$AA,$44,$44
|
||||||
|
DB $AA,$AA,$AA,$AA,$00,$00,$00,$00
|
||||||
|
DB $00,$00,$AA,$AA,$AA,$AA,$44,$44
|
||||||
|
DB $AA,$AA,$AA,$AA,$00,$00,$00,$00
|
||||||
|
DB $00,$00,$AA,$AA,$AA,$AA,$44,$44
|
||||||
|
DB $AA,$AA,$AA,$AA,$00,$00,$00,$00
|
||||||
|
DB $00,$00,$AA,$AA,$AA,$AA,$44,$44
|
||||||
|
DB $AA,$AA,$AA,$AA,$00,$00,$00,$00
|
||||||
|
DB $00,$00,$AA,$AA,$AA,$AA,$44,$44
|
||||||
|
DB $AA,$AA,$AA,$AA,$00,$00,$00,$00
|
||||||
|
DB $00,$00,$AA,$AA,$AA,$AA,$44,$44
|
||||||
|
DB $AA,$AA,$AA,$AA,$00,$00,$00,$00
|
||||||
|
DB $00,$00,$00,$00,$00,$00,$00,$00
|
||||||
|
DB $00,$00,$00,$00,$00,$00,$00,$00
|
||||||
|
DB $FF,$00,$FF,$00,$FF,$00,$FF,$00
|
||||||
|
DB $FF,$00,$FF,$00,$FF,$00,$FF,$00
|
||||||
|
DB $00,$FF,$00,$FF,$00,$FF,$00,$FF
|
||||||
|
DB $00,$FF,$00,$FF,$00,$FF,$00,$FF
|
||||||
|
DB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
|
||||||
|
DB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
|
||||||
|
DB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
|
||||||
|
DB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
|
||||||
|
DB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
|
||||||
|
DB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
|
||||||
TilesEnd::
|
TilesEnd::
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -75,8 +75,8 @@ TitleScreenTilemap::
|
||||||
DB $01,$01,$01,$01,$01,$01,$01,$01,$01,$01
|
DB $01,$01,$01,$01,$01,$01,$01,$01,$01,$01
|
||||||
DB $01,$01,$01,$01,$01,$01,$01,$01,$01,$01
|
DB $01,$01,$01,$01,$01,$01,$01,$01,$01,$01
|
||||||
DB $01,$01,$01,$01,$01,$01,$01,$01,$01,$01
|
DB $01,$01,$01,$01,$01,$01,$01,$01,$01,$01
|
||||||
DB $01,$01,$01,$01,$01,$C1,$C2,$C3,$5D,$59
|
DB $01,$01,$01,$01,$01,$C1,$C2,$C3,$58,$5A
|
||||||
DB $52,$01,$5D,$5A,$57,$57,$5E,$01,$81,$48
|
DB $4F,$50,$01,$01,$01,$01,$01,$81,$C4,$C5
|
||||||
DB $82,$01,$01,$01,$01,$01,$01,$01,$01,$01
|
DB $82,$01,$01,$01,$01,$01,$01,$01,$01,$01
|
||||||
DB $01,$01,$01,$01,$01,$01,$01,$01,$01,$01
|
DB $01,$01,$01,$01,$01,$01,$01,$01,$01,$01
|
||||||
DB $01,$01,$01,$01,$01,$01,$01,$01,$01,$01
|
DB $01,$01,$01,$01,$01,$01,$01,$01,$01,$01
|
||||||
|
|
61
src/rng.asm
61
src/rng.asm
|
@ -24,9 +24,8 @@ INCLUDE "globals.asm"
|
||||||
|
|
||||||
SECTION "High RNG Variables", HRAM
|
SECTION "High RNG Variables", HRAM
|
||||||
hRNGSeed: ds 4
|
hRNGSeed: ds 4
|
||||||
hPieceHistory: ds 4
|
hPieceHistory: ds 6
|
||||||
hNextPiece:: ds 1
|
hNextPiece:: ds 1
|
||||||
hRNGRerolls:: ds 1
|
|
||||||
|
|
||||||
|
|
||||||
section "RNG Functions", ROM0
|
section "RNG Functions", ROM0
|
||||||
|
@ -52,6 +51,8 @@ RNGInit::
|
||||||
ld a, PIECE_Z
|
ld a, PIECE_Z
|
||||||
ldh [hPieceHistory], a
|
ldh [hPieceHistory], a
|
||||||
ldh [hPieceHistory+1], a
|
ldh [hPieceHistory+1], a
|
||||||
|
ldh [hPieceHistory+4], a
|
||||||
|
ldh [hPieceHistory+5], a
|
||||||
ld a, PIECE_S
|
ld a, PIECE_S
|
||||||
ldh [hPieceHistory+2], a
|
ldh [hPieceHistory+2], a
|
||||||
ldh [hPieceHistory+3], a
|
ldh [hPieceHistory+3], a
|
||||||
|
@ -72,33 +73,73 @@ RNGInit::
|
||||||
|
|
||||||
|
|
||||||
GetNextPiece::
|
GetNextPiece::
|
||||||
ldh a, [hRNGRerolls]
|
: ldh a, [hSimulationMode] ; Hell?
|
||||||
cp a, 0
|
cp a, MODE_HELL
|
||||||
jr nz, :+
|
jr nz, :+
|
||||||
call NextPiece
|
call NextPiece
|
||||||
jr .donerolling
|
jr .donerolling
|
||||||
: inc a
|
|
||||||
|
: ldh a, [hSimulationMode] ; TGM1?
|
||||||
|
cp a, MODE_TGM1
|
||||||
|
jr nz, :+
|
||||||
|
ld a, 5
|
||||||
ld e, a
|
ld e, a
|
||||||
: dec e
|
jr .rollloop
|
||||||
|
|
||||||
|
: ldh a, [hSimulationMode] ; EASY?
|
||||||
|
cp a, MODE_EASY
|
||||||
|
jr nz, :+
|
||||||
|
ld a, 0
|
||||||
|
ld e, a
|
||||||
|
jr .rollloop
|
||||||
|
|
||||||
|
: ld a, 7 ; TGM2/3.
|
||||||
|
ld e, a
|
||||||
|
|
||||||
|
.rollloop
|
||||||
|
dec e
|
||||||
jr z, .donerolling
|
jr z, .donerolling
|
||||||
|
|
||||||
call NextPiece
|
call NextPiece
|
||||||
ld hl, hPieceHistory
|
ld hl, hPieceHistory
|
||||||
cp a, [hl]
|
cp a, [hl]
|
||||||
jr z, :-
|
jr z, .rollloop
|
||||||
inc hl
|
inc hl
|
||||||
cp a, [hl]
|
cp a, [hl]
|
||||||
jr z, :-
|
jr z, .rollloop
|
||||||
inc hl
|
inc hl
|
||||||
cp a, [hl]
|
cp a, [hl]
|
||||||
jr z, :-
|
jr z, .rollloop
|
||||||
inc hl
|
inc hl
|
||||||
cp a, [hl]
|
cp a, [hl]
|
||||||
jr z, :-
|
jr z, .rollloop
|
||||||
|
|
||||||
|
; Are we in TGM3 or EASY mode?
|
||||||
|
ld b, a
|
||||||
|
ldh a, [hSimulationMode]
|
||||||
|
cp a, MODE_TGM3
|
||||||
|
jr z, .6hist
|
||||||
|
cp a, MODE_EASY
|
||||||
|
jr z, .6hist
|
||||||
|
jr .donerolling ; If not, we're done rolling.
|
||||||
|
|
||||||
|
; If we are, extend the history by 2.
|
||||||
|
.6hist
|
||||||
|
ld a, b
|
||||||
|
inc hl
|
||||||
|
cp a, [hl]
|
||||||
|
jr z, .rollloop
|
||||||
|
inc hl
|
||||||
|
cp a, [hl]
|
||||||
|
jr z, .rollloop
|
||||||
|
|
||||||
.donerolling
|
.donerolling
|
||||||
ldh [hNextPiece], a
|
ldh [hNextPiece], a
|
||||||
ld b, a
|
ld b, a
|
||||||
|
ldh a, [hPieceHistory+4]
|
||||||
|
ldh [hPieceHistory+5], a
|
||||||
|
ldh a, [hPieceHistory+3]
|
||||||
|
ldh [hPieceHistory+4], a
|
||||||
ldh a, [hPieceHistory+2]
|
ldh a, [hPieceHistory+2]
|
||||||
ldh [hPieceHistory+3], a
|
ldh [hPieceHistory+3], a
|
||||||
ldh a, [hPieceHistory+1]
|
ldh a, [hPieceHistory+1]
|
||||||
|
|
|
@ -63,10 +63,13 @@ SwitchToGameplay::
|
||||||
ld bc, GameplayTilemapEnd - GameplayTilemap
|
ld bc, GameplayTilemapEnd - GameplayTilemap
|
||||||
call UnsafeMemCopy
|
call UnsafeMemCopy
|
||||||
|
|
||||||
; Place a tell on the screen for RNG rerolls.
|
; Place a tell on the screen for mode.
|
||||||
ld hl, FIELD_RNGTELL
|
ld hl, FIELD_MODE
|
||||||
ldh a, [hRNGRerolls]
|
ldh a, [hSimulationMode]
|
||||||
add a, TILE_0_FAINT
|
sla a
|
||||||
|
add a, TILE_MODE_FAINT_0
|
||||||
|
ld [hl+], a
|
||||||
|
inc a
|
||||||
ld [hl], a
|
ld [hl], a
|
||||||
|
|
||||||
; Clear OAM.
|
; Clear OAM.
|
||||||
|
@ -352,6 +355,9 @@ delayMode:
|
||||||
: jp drawStaticInfo
|
: jp drawStaticInfo
|
||||||
|
|
||||||
preGameOverMode:
|
preGameOverMode:
|
||||||
|
; Spawn the failed piece.
|
||||||
|
call ForceSpawnPiece
|
||||||
|
|
||||||
; Draw the field in grey.
|
; Draw the field in grey.
|
||||||
; Yes. This really unrolls the loop that many times.
|
; Yes. This really unrolls the loop that many times.
|
||||||
ld hl, wField+(4*10)
|
ld hl, wField+(4*10)
|
||||||
|
|
|
@ -89,14 +89,17 @@ SwitchToTitle::
|
||||||
|
|
||||||
|
|
||||||
TitleEventLoopHandler::
|
TitleEventLoopHandler::
|
||||||
; Increment RNG leniency?
|
; Increment mode?
|
||||||
ldh a, [hSelectState]
|
ldh a, [hSelectState]
|
||||||
cp a, 1
|
cp a, 1
|
||||||
jr nz, :+
|
jr nz, :+
|
||||||
ldh a, [hRNGRerolls]
|
ldh a, [hSimulationMode]
|
||||||
inc a
|
inc a
|
||||||
and a, $0F
|
cp a, 5
|
||||||
ldh [hRNGRerolls], a
|
jr nz, .write
|
||||||
|
xor a, a
|
||||||
|
.write
|
||||||
|
ldh [hSimulationMode], a
|
||||||
jp EventLoopPostHandler
|
jp EventLoopPostHandler
|
||||||
|
|
||||||
; Start game?
|
; Start game?
|
||||||
|
@ -255,10 +258,13 @@ TitleVBlankHandler::
|
||||||
ld hl, TITLE_LEVEL+1
|
ld hl, TITLE_LEVEL+1
|
||||||
ld [hl], a
|
ld [hl], a
|
||||||
|
|
||||||
; Draw RNG
|
; Draw Mode
|
||||||
ldh a, [hRNGRerolls]
|
ld hl, TITLE_MODE
|
||||||
add a, TILE_0
|
ldh a, [hSimulationMode]
|
||||||
ld hl, TITLE_ROLLS
|
sla a
|
||||||
|
add a, TILE_MODE_0
|
||||||
|
ld [hl+], a
|
||||||
|
inc a
|
||||||
ld [hl], a
|
ld [hl], a
|
||||||
|
|
||||||
; Draw A/B
|
; Draw A/B
|
||||||
|
|
Loading…
Reference in New Issue