Big challenge rolls.
This commit is contained in:
parent
100d40c4e6
commit
f4429139d4
BIN
bin/DMGTRIS.GBC
BIN
bin/DMGTRIS.GBC
Binary file not shown.
3272
bin/DMGTRIS.map
3272
bin/DMGTRIS.map
File diff suppressed because it is too large
Load Diff
Binary file not shown.
2920
bin/DMGTRIS.sym
2920
bin/DMGTRIS.sym
File diff suppressed because it is too large
Load Diff
|
@ -237,6 +237,26 @@ FromBackupField::
|
||||||
ld bc, 10*24
|
ld bc, 10*24
|
||||||
jp UnsafeMemCopy
|
jp UnsafeMemCopy
|
||||||
|
|
||||||
|
GoBig::
|
||||||
|
ld hl, wWideBlittedField
|
||||||
|
ld bc, 10*22
|
||||||
|
ld d, TILE_BLANK
|
||||||
|
call UnsafeMemSet
|
||||||
|
ld hl, wField
|
||||||
|
ld bc, 10*24
|
||||||
|
ld d, 0
|
||||||
|
call UnsafeMemSet
|
||||||
|
DEF row = 0
|
||||||
|
REPT 14
|
||||||
|
ld hl, wField + (row*10)
|
||||||
|
ld bc, 5
|
||||||
|
ld d, TILE_FIELD_EMPTY
|
||||||
|
call UnsafeMemSet
|
||||||
|
DEF row += 1
|
||||||
|
ENDR
|
||||||
|
ld a, STATE_GAMEPLAY_BIG
|
||||||
|
ldh [hGameState], a
|
||||||
|
ret
|
||||||
|
|
||||||
; Copies the field to the shadow field.
|
; Copies the field to the shadow field.
|
||||||
; This shadow field is used to calculate whether or not the piece can fit.
|
; This shadow field is used to calculate whether or not the piece can fit.
|
||||||
|
|
|
@ -46,6 +46,7 @@ wKillScreenActivationLevel: ds 2
|
||||||
wKillScreenActivationLevelBCD: ds 2
|
wKillScreenActivationLevelBCD: ds 2
|
||||||
wLastLockLevel: ds 2
|
wLastLockLevel: ds 2
|
||||||
wStaffRollDuration:: ds 2
|
wStaffRollDuration:: ds 2
|
||||||
|
wBigStaffRoll:: ds 1
|
||||||
wBonesActive:: ds 1
|
wBonesActive:: ds 1
|
||||||
wInvisActive:: ds 1
|
wInvisActive:: ds 1
|
||||||
wKillScreenActive:: ds 1
|
wKillScreenActive:: ds 1
|
||||||
|
@ -202,8 +203,10 @@ SpecialLevelInit:
|
||||||
ld [wLastLockLevel+1], a
|
ld [wLastLockLevel+1], a
|
||||||
ld a, [hl+]
|
ld a, [hl+]
|
||||||
ld [wStaffRollDuration], a
|
ld [wStaffRollDuration], a
|
||||||
ld a, [hl]
|
ld a, [hl+]
|
||||||
ld [wStaffRollDuration+1], a
|
ld [wStaffRollDuration+1], a
|
||||||
|
ld a, [hl]
|
||||||
|
ld [wBigStaffRoll], a
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -198,6 +198,7 @@ sDMGTSpeedCurveSpecialData::
|
||||||
dw $9999 ; Same but in BCD.
|
dw $9999 ; Same but in BCD.
|
||||||
dw 9998 ; If the last level lock isn't at x99, where is it?
|
dw 9998 ; If the last level lock isn't at x99, where is it?
|
||||||
dw 3600 ; How long does the staff roll last after the kill screen, in frames.
|
dw 3600 ; How long does the staff roll last after the kill screen, in frames.
|
||||||
|
db $FF ; Big mode in staff roll?
|
||||||
|
|
||||||
|
|
||||||
sTGM1SpeedCurve::
|
sTGM1SpeedCurve::
|
||||||
|
@ -337,6 +338,10 @@ sTGM1SpeedCurve::
|
||||||
db 20, $00
|
db 20, $00
|
||||||
db 30, 30, 16, 30, 41
|
db 30, 30, 16, 30, 41
|
||||||
|
|
||||||
|
dw $0995, 995, $0999
|
||||||
|
db 20, $00
|
||||||
|
db 30, 30, 16, 30, 41
|
||||||
|
|
||||||
sTGM1SpeedCurveEnd::
|
sTGM1SpeedCurveEnd::
|
||||||
dw $FFFF
|
dw $FFFF
|
||||||
|
|
||||||
|
@ -347,6 +352,7 @@ sTGM1SpeedCurveSpecialData::
|
||||||
dw $0999 ; Same but in BCD.
|
dw $0999 ; Same but in BCD.
|
||||||
dw 998 ; If the last level lock isn't at x99, where is it?
|
dw 998 ; If the last level lock isn't at x99, where is it?
|
||||||
dw 3600 ; How long does the staff roll last after the kill screen, in frames.
|
dw 3600 ; How long does the staff roll last after the kill screen, in frames.
|
||||||
|
db $FF ; Big mode in staff roll?
|
||||||
|
|
||||||
|
|
||||||
sCHILSpeedCurve::
|
sCHILSpeedCurve::
|
||||||
|
@ -448,6 +454,7 @@ sCHILSpeedCurveSpecialData::
|
||||||
dw $9999 ; Same but in BCD.
|
dw $9999 ; Same but in BCD.
|
||||||
dw 9998 ; If the last level lock isn't at x99, where is it?
|
dw 9998 ; If the last level lock isn't at x99, where is it?
|
||||||
dw $FFFF ; How long does the staff roll last after the kill screen, in frames.
|
dw $FFFF ; How long does the staff roll last after the kill screen, in frames.
|
||||||
|
db $00 ; Big mode in staff roll?
|
||||||
|
|
||||||
|
|
||||||
sTGM3SpeedCurve::
|
sTGM3SpeedCurve::
|
||||||
|
@ -607,8 +614,9 @@ sTGM3SpeedCurveSpecialData::
|
||||||
dw 1299 ; When do blocks turn invisible?
|
dw 1299 ; When do blocks turn invisible?
|
||||||
dw 1299 ; When is the hard kill screen?
|
dw 1299 ; When is the hard kill screen?
|
||||||
dw $1299 ; Same but in BCD.
|
dw $1299 ; Same but in BCD.
|
||||||
dw 1298 ; If the last level lock isn't at x99, where is it?
|
dw 1298 ; If the last level lock isn't at x99, where is it?
|
||||||
dw 3600 ; How long does the staff roll last after the kill screen, in frames.
|
dw 3600 ; How long does the staff roll last after the kill screen, in frames.
|
||||||
|
db $00 ; Big mode in staff roll?
|
||||||
|
|
||||||
sDEATSpeedCurve::
|
sDEATSpeedCurve::
|
||||||
dw $0000, 0, $0100
|
dw $0000, 0, $0100
|
||||||
|
@ -661,6 +669,7 @@ sDEATSpeedCurveSpecialData::
|
||||||
dw $0999 ; Same but in BCD.
|
dw $0999 ; Same but in BCD.
|
||||||
dw 998 ; If the last level lock isn't at x99, where is it?
|
dw 998 ; If the last level lock isn't at x99, where is it?
|
||||||
dw 3600 ; How long does the staff roll last after the kill screen, in frames.
|
dw 3600 ; How long does the staff roll last after the kill screen, in frames.
|
||||||
|
db $00 ; Big mode in staff roll?
|
||||||
|
|
||||||
|
|
||||||
sSHIRSpeedCurve::
|
sSHIRSpeedCurve::
|
||||||
|
@ -697,11 +706,12 @@ sSHIRSpeedCurveEnd::
|
||||||
|
|
||||||
sSHIRSpeedCurveSpecialData::
|
sSHIRSpeedCurveSpecialData::
|
||||||
dw 900 ; When do we get bones?
|
dw 900 ; When do we get bones?
|
||||||
dw 1300 ; When do blocks turn invisible?
|
dw $FFFF ; When do blocks turn invisible?
|
||||||
dw 1300 ; When is the hard kill screen?
|
dw 1300 ; When is the hard kill screen?
|
||||||
dw $1300 ; Same but in BCD.
|
dw $1300 ; Same but in BCD.
|
||||||
dw $FFFF ; If the last level lock isn't at x99, where is it?
|
dw $FFFF ; If the last level lock isn't at x99, where is it?
|
||||||
dw 3600 ; How long does the staff roll last after the kill screen, in frames.
|
dw 3600 ; How long does the staff roll last after the kill screen, in frames.
|
||||||
|
db $FF ; Big mode in staff roll?
|
||||||
|
|
||||||
|
|
||||||
sMYCOSpeedCurve::
|
sMYCOSpeedCurve::
|
||||||
|
@ -815,6 +825,7 @@ sMYCOSpeedCurveSpecialData::
|
||||||
dw $0300 ; Same but in BCD.
|
dw $0300 ; Same but in BCD.
|
||||||
dw $FFFF ; If the last level lock isn't at x99, where is it?
|
dw $FFFF ; If the last level lock isn't at x99, where is it?
|
||||||
dw $FFFF ; How long does the staff roll last after the kill screen, in frames.
|
dw $FFFF ; How long does the staff roll last after the kill screen, in frames.
|
||||||
|
db $00 ; Big mode in staff roll?
|
||||||
|
|
||||||
|
|
||||||
sSharedTiles::
|
sSharedTiles::
|
||||||
|
|
|
@ -40,6 +40,7 @@ hRequestedJingle: ds 1
|
||||||
SECTION "Gameplay Variables", WRAM0
|
SECTION "Gameplay Variables", WRAM0
|
||||||
wRollLine: ds 1
|
wRollLine: ds 1
|
||||||
wInStaffRoll:: ds 1
|
wInStaffRoll:: ds 1
|
||||||
|
wBigModeTransfered: ds 1
|
||||||
|
|
||||||
|
|
||||||
SECTION "Gameplay Function Trampolines", ROM0
|
SECTION "Gameplay Function Trampolines", ROM0
|
||||||
|
@ -444,6 +445,10 @@ GamePlayEventLoopHandlerB::
|
||||||
|
|
||||||
|
|
||||||
.preGameOverMode
|
.preGameOverMode
|
||||||
|
xor a, a
|
||||||
|
ldh [hAState], a
|
||||||
|
ldh [hBState], a
|
||||||
|
|
||||||
; Is it just a regular game over?
|
; Is it just a regular game over?
|
||||||
ld a, [wKillScreenActive]
|
ld a, [wKillScreenActive]
|
||||||
cp a, $FF
|
cp a, $FF
|
||||||
|
@ -668,6 +673,7 @@ GamePlayEventLoopHandlerB::
|
||||||
ld hl, wField+(20*10)
|
ld hl, wField+(20*10)
|
||||||
ld bc, 40
|
ld bc, 40
|
||||||
call UnsafeMemCopy
|
call UnsafeMemCopy
|
||||||
|
jr .drawStaticInfo
|
||||||
|
|
||||||
|
|
||||||
; Prepare for staff roll.
|
; Prepare for staff roll.
|
||||||
|
@ -702,11 +708,16 @@ GamePlayEventLoopHandlerB::
|
||||||
|
|
||||||
.predone
|
.predone
|
||||||
call FieldClear
|
call FieldClear
|
||||||
call ToShadowField
|
|
||||||
ld a, MODE_PREFETCHED_PIECE
|
ld a, MODE_PREFETCHED_PIECE
|
||||||
ldh [hMode], a
|
ldh [hMode], a
|
||||||
ld a, $FF
|
ld a, $FF
|
||||||
ld [wInStaffRoll], a
|
ld [wInStaffRoll], a
|
||||||
|
ld a, [wBigStaffRoll]
|
||||||
|
cp a, $FF
|
||||||
|
jr nz, .staysmall
|
||||||
|
call GoBig
|
||||||
|
.staysmall
|
||||||
|
call ToShadowField
|
||||||
ldh a, [hNextPiece]
|
ldh a, [hNextPiece]
|
||||||
ldh [hCurrentPiece], a
|
ldh [hCurrentPiece], a
|
||||||
call GetNextPiece
|
call GetNextPiece
|
||||||
|
@ -715,7 +726,7 @@ GamePlayEventLoopHandlerB::
|
||||||
ld a, [hl+]
|
ld a, [hl+]
|
||||||
ld c, a
|
ld c, a
|
||||||
ld b, [hl]
|
ld b, [hl]
|
||||||
call StartCountdown
|
jp StartCountdown
|
||||||
|
|
||||||
|
|
||||||
; Always draw the score, level, next piece, and held piece.
|
; Always draw the score, level, next piece, and held piece.
|
||||||
|
@ -1189,6 +1200,10 @@ GamePlayBigEventLoopHandlerB:
|
||||||
|
|
||||||
|
|
||||||
.preGameOverMode
|
.preGameOverMode
|
||||||
|
xor a, a
|
||||||
|
ldh [hAState], a
|
||||||
|
ldh [hBState], a
|
||||||
|
|
||||||
; Is it just a regular game over?
|
; Is it just a regular game over?
|
||||||
ld a, [wKillScreenActive]
|
ld a, [wKillScreenActive]
|
||||||
cp a, $FF
|
cp a, $FF
|
||||||
|
@ -1414,6 +1429,7 @@ GamePlayBigEventLoopHandlerB:
|
||||||
ld hl, wWideBlittedField+(20*10)
|
ld hl, wWideBlittedField+(20*10)
|
||||||
ld bc, 20
|
ld bc, 20
|
||||||
call UnsafeMemCopy
|
call UnsafeMemCopy
|
||||||
|
jp .drawStaticInfo
|
||||||
|
|
||||||
|
|
||||||
; Prepare for staff roll.
|
; Prepare for staff roll.
|
||||||
|
|
Loading…
Reference in New Issue