From f70331612807e11b346757672fb7ba7746624ba2 Mon Sep 17 00:00:00 2001 From: Pecusx Date: Tue, 31 Jan 2023 20:22:47 +0100 Subject: [PATCH] Optimizations - full colortable for PAL mode --- constants.asm | 6 +++++- scorch.asm | 18 ++++++++++-------- scorch.bin | Bin 32768 -> 32768 bytes scorch.xex | Bin 49340 -> 49343 bytes weapons.asm | 2 +- 5 files changed, 16 insertions(+), 10 deletions(-) diff --git a/constants.asm b/constants.asm index 1c51797..7f2d9d2 100644 --- a/constants.asm +++ b/constants.asm @@ -67,10 +67,14 @@ GradientAddrL .by dliColorsFore, >dliColorsFore, >dliColorsFore2 -dliColorsFore2 +dliColorsFore2 ; colors for NTSC .by $0a ; one mountains color .by $7e,$7a,$7c,$6a,$6c,$58,$5a,$48,$4a,$38 .by $3a,$16,$18,$e6,$e8,$d4,$d6,$b4,$b6,$b6 +dliColorsFore2PAL ; colors for PAL + .by $0a ; one mountains color + .by $7e,$7a,$7c,$6a,$6c,$58,$5a,$48,$4a,$38 + .by $3a,$16,$18,$e6,$e8,$c4,$c6,$a4,$a6,$a6 ;----------- pmtableL ; addressess of the P/M memory for 6 tanks diff --git a/scorch.asm b/scorch.asm index 72a1f95..47a5a9f 100644 --- a/scorch.asm +++ b/scorch.asm @@ -349,12 +349,15 @@ no5200splash mva #$10 MODUL-6+$a69 ; $12 > $10 mva #$04 MODUL-6+$bf8 ; $05 > $04 mva #$08 MODUL-6+$e3d ; $0a > $08 - ; and mountains colors - mva #$c4 dliColorsFore2+16 - mva #$c6 dliColorsFore2+17 - mva #$a4 dliColorsFore2+18 - mva #$a6 dliColorsFore2+19 - sta dliColorsFore2+20 + + ; and mountains colors table address + mva #dliColorsFore2PAL GradientAddrH+2 +; mva #$c4 dliColorsFore2+16 +; mva #$c6 dliColorsFore2+17 +; mva #$a4 dliColorsFore2+18 +; mva #$a6 dliColorsFore2+19 +; sta dliColorsFore2+20 NoRMT_PALchange .ELSE mva #$7f SkStatSimulator @@ -410,7 +413,6 @@ MainGameLoop jsr SetStandardBarrels jsr CallPurchaseForEveryTank - mva #0 SpyHardFlag jsr MakeDarkScreen bit escFlag bmi START @@ -1667,7 +1669,7 @@ peopleAreHere MakeDarkScreen jsr PMoutofScreen mva #0 dmactls ; dark screen - sta dmactl + ; sta dmactl ; probably not necessary (3 bytes!!! :) ) ; and wait one frame :) .proc WaitOneFrame lda CONSOL diff --git a/scorch.bin b/scorch.bin index 5d22aed7af1d95a5443fc683d708f83a41e3361b..b4696ae78b3839958cd004eec7dd5be1e1e45f37 100644 GIT binary patch delta 7979 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 delta 7929 zcmaJm2|yG_w$n4iJxsTVI-o#tcp#{#Q7|In8G?-*0xGC!4iy{^21SetgJ>%l$AE=^ z#*qOqXj{!e0e)vH(URlR=q zl$6LzO609yx=svPByyD-5$$gp+^$=8s4B9IdE70x{)}!Vi852vp#W7G^P_3;A(`xw z^+(h2_II&|TY@{YNThi$QEBk&5bN*;w_*BE3`)7U$lxFsqYdg$d6_}|^%7BTpgsjc zC?i3XBW4lemm&EI00i9(dw`;{?V~$rP$CLXLXQ$q`U+9T_al6SZpEYbSri`!*yj=y z>?s!APlRL3>9QJiCZSuHQYBIxUZk2GdYlzy#vIz1Nq2=QSQoZMMcW+F z)*QBO!8al!4&jaLhYLhUvN;-mpqevuPNH#%XBX3jf{Kwx9(tnyP0mBE*xTLPJ!BCI zEX`8dTmbNL-$OB!B4c*RbTx)iud2KT+SrzQg zg<>Cn3ps8VDZZ&uYc5LR)hKr@`gn~wU1b}A0%{tyFhM601s{v6Re|!h3pZ^P$0`?^ z&(UzhI`{y5HOku~fniLD>4DM#+7e*%v>=WSmK_ahX>nQh*7w8}uhiP=@KanF)4@ zE*AX_!#hwA{(`wY)h8b)iy%=WdYp%X*1||c-ATv}7jE2M;%QS?I6htC$(~8PBRv5T z-x;)ts>6#s0;xH;(8CAD2R)`Uj*B=pB?-Pd&~!4$KE<~^0+m3l`>b-XCq*qd>*cwU zqRO#;i016cArBn&9(jPN6X){zBExSK5x+@%!WW4C{AL7Z)WbW7ukwy!6z_!K)N=UT z6N<$y-W@hErri2P=N<@032I+f_iw-BxCSGht^GmsMMSIEbpQ#pK# zC^IN&A>FWl9YQtBQ3_ZOLva>otH(D=xXEv>Y$@L;AT{yDlIH4i#tF1>^+mZ?bhsbzeX_W zo(sZ-D<;OOG0Apaz(4zWC>=O9Q2-ClaDlu^4Xj$!7~<5zeGt*ytmjL+ zb>{a{f&W{06Y|$DNwqq*52kOIrM3bn!=w@E%50Ob$W&%)gzVg*e1WhsSH^FKJ^b6~ z`l?190ecOA%K&U%lFFY%2UeNDJ6C42Oolkmuvsm}7z)+m2ZksznyGHowSSw;*R(%M z=4%^tZ8hWs8K%e~qO3CeQU|g=5p?KLHUBmtPdy_qF*N@()dY0mX89(Cqi$4w8S_LV z=yH8=g8z7`5bOOTspa^*e>C+u{>48cWKbp-bU#cNTF-XYwX(*NU7-}SDr+QJ2E0ZHxl4o^wcwuE zI{bcsSGZ3?P7@oJWf^Z(i6OjEJZ7w=$vo8RBu4Yg$#5JDJM6;=Fzn-3uwhso7@|?8 z8N+Gw0N=Knh+e9)hOIlB80bt*va2I7hp5wR_u;y1yH1y%?$HX`i!Ii_abUxe0r1`C zD*Q%JNN~<7n4hDY+N;tGJN?Za_R$`Hbamx`0sjP2--Q1sC|rLcyHWe}91RgcV6$sUqy)FxCbaRNq2wH) zO_QtS+ge2C${Lkz6#uqZ2yQ|JZua^raXo(qhG)eR{&Tp?U!*Nz+im_*Iv~!3)sz=j zXMcvmAO;&$bU#^X$7+d*oNp5+{%!}^@B%J=Z*&xO06!i*MgNu#DKuTk1yb`F(WzKT{1xwRs;cc_XpT z9xTvx{B*1rXsjkAa%i>|sQ=a*1>rRzh`Ns72nm7byCF$quCD@Z0!8}r83|&b>uK

jxVQ&|Q*v>)O~HPKzZuU?*|?!+gGMOL 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 YYh2tp&t+DWVHR{>taWAgxlRlHe=MhS_W%F@ delta 7819 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 U^UY