From 93e6d7946fc104e87ec993d097708bc58aa8c04b Mon Sep 17 00:00:00 2001 From: Randy Thiemann Date: Tue, 24 Oct 2023 10:59:02 +0200 Subject: [PATCH] Prevent double lock. --- DMGTRIS.GBC | Bin 32768 -> 32768 bytes src/field.asm | 18 +++++++++++++++--- src/gbc.asm | 35 ++++++++++++++++++++++++++++++++--- src/res/sources/tiles.gbr | Bin 39009 -> 39009 bytes src/res/tiles.inc | 4 ++-- 5 files changed, 49 insertions(+), 8 deletions(-) diff --git a/DMGTRIS.GBC b/DMGTRIS.GBC index 2d5fd5c4b33fa50faffaf31b3242c2107f6e2d4b..be5ae898c089f0b13c523f4aa812ab902410fdfb 100644 GIT binary patch delta 3166 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 delta 3085 zcmZvee{2)y8OQIn&%Yffh6GG(;11h~shXytY|Tn?F(r|ik}7dTAW(v_lMrBZ=~Qi{ ztkfwJ71bC7PTP`!Sfqt5`+>Y+riD&}s@5jQ@%sn;W27#GqZ(af7`!9UZUJ5PyvI55 z6cXKg&+~pi@AKaC-21-gzCKM~pQitaZcX(|Yo9;yqYWr_;z|{&7PY8RGq5t=f`*rx zxu89nC$W`9dW-nr7#>XzJb^Pa`)c3aZF7yt@`(3>{Q=m&Q z;p)!B8PT}v6|SCq5+FxMeT&F#nc=MDv~(B)VF7~n_{4WtxmKz}94wW|VdyR=M`XnD zWCmKNm{?VhY@*R!5xwk|i&D4TvMput$ktSqM>eOncw}ShO^>Wk{lp`)sdFA#lN$Am zK^%5MHfFK_W$NFU`doBge((Ry*Rwt7l7WENg~8n~k<+v&h#i zM(>GVt6SrB?G*kY1*DBazw}M~)lOWq8~1nN1CE$<#s5hHD^2244p?RCIsshJNfUxr`XnY@w@Ml58u>SDdL6zX*89uh6x!$a z*1&w%;mEL%GjImz$P_#PjGDwHD_}7h1d}vLOm2Vh8I{Gm71Fd|wYCAe-cBbW70M_LJ{ygAi3fQ@IGvV}j0Jw%$ zzJ35%l|aE(zDugJEZ9qC_R@kFYGEj?lU})tH#aX{-p~_!(n;`?U`>8x=mN+)2licKFt2S7*#Lg}nYogimA zv;dLeUUIevJ(x8el!o7y&L;ZWl?rf9x-yW@Tr-zYY|etzoHR9-%DH@E*=Wv$)SNUm zWq2;1SbkiTB$(G_yf5xOHi_q1CjhgRdM!EM1ea zz>I!q+%Rrv=ADYrJ1-bi!L10fd0|KT$%sltxHm6^RN(~?Z*7N-R<^BG$3|Q2r$iDe z7W+fn6(>$Y9jM~1HvYLZaw{9-bQ>Q`BLlVZNCe99UnuB9=~Mb*w44EthzG*U(TF$@ zE-x5~NK<2iF0|ZN0{!W*YtKl8zcqWw_rQJ0N8q{x*B6d+5Quhj!(ebf7Ys0f!)GGd z_H=VB08^XZQASMxeG9Iea9ziH!|)($-Fg4yD#e3o)0;3`FtUHu!LZDveh`*XYA6i9 zl*YsGW8g1gd_MAdo$P-8t1*0Dyd8NxdN%^cL^)P&+>_ff<(7n#YAised&z^IKl*h0 zv9@z;Kb)Ud_@qq3*Wm$vt!oTcomDslzFzea_=mw~RbLDKx4<{3J`4U5@Qtb;)j`Lf z^E&k4%ix<-zyN*~_!iYSf`2Q|H-S$lu&TNl{F`~c1^m~+FHm(W_}`!RE93&`cnlpj z6|jN-9q{d{U-%(B{Isx`y5f6XFQQ`cQr8;@iEFyI>CrC13O|odc0UUT_~q`kHu##w z1LQZOKAlhi0_Z^ccl8z(Rq{+9Vv6X}p~t3pdDmb?ZcE@11|Mf|a}WMFf<*?tJ5XHQ z*@G`IaDYA<{pdtp;@k1VJujeV`gbG8V+`%-S!iuvLbDMrN2xGdW2%1q*N6Kn18-F} YYp;!npY86}!aIxy_r#WnJNIn-A5DdLcK`qY diff --git a/src/field.asm b/src/field.asm index 402cdda..d6f942e 100644 --- a/src/field.asm +++ b/src/field.asm @@ -1348,6 +1348,13 @@ FieldProcess:: ldh a, [hDownState] cp a, 0 jr z, .dontforcelock + ldh a, [hCurrentGravityPerTick] + cp a, 20 + jr nz, .forcelock + ldh a, [hDownState] + cp a, 1 + jr nz, .dontforcelock + ; Set the lock delay to 0 and save it. .forcelock @@ -1396,16 +1403,20 @@ FieldProcess:: ; If the piece is locked, skip the ghost piece. ldh a, [hCurrentLockDelayRemaining] cp a, 0 - jr z, :+ + jr z, .postghost ; If the gravity is <= 1G, draw a ghost piece. ldh a, [hWantedG] cp a, 1 - jr nz, :+ + jr nz, .postghost + ld a, [wInitialA] + cp a, $11 + jr z, .ghost ldh a, [hEvenFrame] cp a, 1 jr nz, :+ +.ghost ldh a, [hYPosAtStartOfFrame] ld b, a ldh a, [hActualG] @@ -1425,7 +1436,8 @@ FieldProcess:: call DrawPiece ; If the lock delay is at the highest value, draw the piece normally. -: ldh a, [hCurrentPiece] +.postghost + ldh a, [hCurrentPiece] ld b, TILE_PIECE_0 add a, b ldh [hWantedTile], a diff --git a/src/gbc.asm b/src/gbc.asm index e1e0024..6b9cf0c 100644 --- a/src/gbc.asm +++ b/src/gbc.asm @@ -64,7 +64,7 @@ ToATTR:: ldh [rHDMA3], a ld a, LOW($9800) ldh [rHDMA4], a - ld a, 39 + ld a, 40 ldh [rHDMA5], a ld a, 0 ldh [rVBK], a @@ -83,7 +83,7 @@ ToVRAM:: ldh [rHDMA3], a ld a, LOW($9800) ldh [rHDMA4], a - ld a, 39 + ld a, 40 ldh [rHDMA5], a @@ -734,9 +734,38 @@ GBCGameplayProcess:: cp a, $11 ret nz + ; 20G? + ldh a, [hCurrentGravityPerTick] + cp a, 20 + jr nz, :+ + + ld a, $00 + ld d, a + ld hl, wShadowTileAttrs + ld bc, 32-12 + + ld a, 21 + ld [wOuterReps], a +.outer0 + ld a, 12 + ld [wInnerReps], a +.inner0 + ld [hl], d + inc hl + ld a, [wInnerReps] + dec a + ld [wInnerReps], a + jr nz, .inner0 + + add hl, bc + ld a, [wOuterReps] + dec a + ld [wOuterReps], a + jr nz, .outer0 + ; What to copy - ld de, wField + 40 +: ld de, wField + 40 ; Where to put it ld hl, wShadowTilemap + 1 ; How much to increment hl after each row diff --git a/src/res/sources/tiles.gbr b/src/res/sources/tiles.gbr index 9076ca5d147954561aacc27aeeb6c8824f7513eb..aa1df371dbeb562549d7ec955f755fd2021852c6 100644 GIT binary patch delta 35 tcmV+;0NnrKuma(*0@0RXc?kQoRD_5c6>000q_4wV1^ delta 33 rcmV++0N(%Muma(*0