From a44135794859831a47ecaead9c1fabbfd7572b2e Mon Sep 17 00:00:00 2001 From: Pecusx Date: Fri, 2 Sep 2022 13:54:57 +0200 Subject: [PATCH] More optimizations (158b saved) - please test! --- grafproc.asm | 16 ++++++++--- scorch.asm | 13 ++------- scorch.xex | Bin 50426 -> 50268 bytes weapons.asm | 73 +++++++-------------------------------------------- 4 files changed, 24 insertions(+), 78 deletions(-) diff --git a/grafproc.asm b/grafproc.asm index 6935036..924f6b5 100644 --- a/grafproc.asm +++ b/grafproc.asm @@ -584,6 +584,11 @@ UnequalTanks .endp ;------------------------------------------------- +.proc ClearTanks + jsr PMoutofScreen + mva #1 Erase ; erase tanks flag +.endp +;-- .proc drawtanks ;------------------------------------------------- lda TankNr @@ -601,6 +606,7 @@ DrawNextTank pla sta TankNr + mva #1 Erase ; no erase tanks flag rts .endp ;--------- @@ -645,7 +651,8 @@ DrawTankNrX jsr SetupXYdraw jsr TypeChar - + lda Erase + jne noTankNoPM ; now P/M graphics on the screen (only for 5 tanks) ; horizontal position ldx TankNr @@ -729,7 +736,7 @@ ZeroesToGo6 bne ClearPM6 NoPlayerMissile - +noTankNoPM ldy #$01 lda Erase beq @+ @@ -1334,8 +1341,8 @@ drawmountainspixelloop ; how it works. I have just translated Polish comment ; but I do not understand a word of it :) ; If you know how it works, please write here :)))) - - jsr PMoutofscreen + jsr ClearTanks +NoClearTanks ; First we look for highest pixels and fill with their coordinates ; both tables @@ -1433,6 +1440,7 @@ ColumnIsReady ; now correct heights are in the mountaintable sta color ; Pozor! :) we know - now A=1 mva #sfx_silencer sfx_effect + jsr DrawTanks rts .endp diff --git a/scorch.asm b/scorch.asm index 7f32d8a..c8301a5 100644 --- a/scorch.asm +++ b/scorch.asm @@ -271,11 +271,8 @@ SettingBarrel jsr SortSequence ; Hide all (easier than hide last ;) ) tanks - mva #1 Erase - jsr drawtanks - mva #0 Erase + jsr cleartanks sta COLBAKS ; set background color to black - jsr PMoutofScreen ;let P/M disappear ; here gains and losses should be displayed (dollars) ; finally we have changed our minds and money of players @@ -410,6 +407,7 @@ NoGameOverYet jsr SetPMWidth lda #0 + sta Erase sta COLOR2 ; status line "off" sta COLOR1 @@ -647,14 +645,7 @@ continueMainRoundLoopAfterSeppuku AfterExplode - ;temporary tanks removal (would fall down with soil) - mva #1 Erase - jsr drawtanks - mva #0 Erase -; lda FallDown2 -; beq NoFallDown2 jsr SoilDown2 ; allways - NoFallDown2 ;here tanks are falling down mva tankNr tempor2 diff --git a/scorch.xex b/scorch.xex index 905f5344f57339eba704247086cc7c0e1ea65a4e..e3638a6f5d34981f714a0cc5c28eee3ce4b9b205 100644 GIT binary patch delta 15650 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 M>fRdn&gq2z4{?PrX#fBK delta 15776 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 diff --git a/weapons.asm b/weapons.asm index d0658c0..38b8137 100644 --- a/weapons.asm +++ b/weapons.asm @@ -64,7 +64,6 @@ tracer mva #sfx_baby_missile sfx_effect ; inc FallDown2 mva #11 ExplosionRadius - jsr CalculateExplosionRange jmp xmissile .endp ; ------------------------ @@ -72,7 +71,6 @@ tracer mva #sfx_baby_missile sfx_effect ; inc FallDown2 mva #17 ExplosionRadius - jsr CalculateExplosionRange jmp xmissile .endp ; ------------------------ @@ -80,7 +78,6 @@ tracer mva #sfx_nuke sfx_effect ; inc FallDown2 mva #25 ExplosionRadius - jsr CalculateExplosionRange jmp xmissile .endp ; ------------------------ @@ -88,7 +85,6 @@ tracer mva #sfx_nuke sfx_effect ; inc FallDown2 mva #30 ExplosionRadius - jsr CalculateExplosionRange jmp xmissile .endp ; ------------------------ @@ -96,20 +92,11 @@ tracer mva #sfx_baby_missile sfx_effect ; inc FallDown2 mva #17 ExplosionRadius - jsr CalculateExplosionRange jsr xmissile ; soil must fall down now! there is no other way... ; hide tanks or they fall down with soil - lda TankNr - pha - mva #1 Erase - jsr drawtanks - mva #0 Erase jsr SoilDown2 - jsr drawtanks - pla - sta TankNr ; it looks like force is divided by 4 here BUT" ; in Flight routine force is multiplied by 2 and left @@ -128,19 +115,11 @@ tracer mva #15 ExplosionRadius jsr CalculateExplosionRange0 mva #sfx_baby_missile sfx_effect - jsr xmissile + jsr xmissile.NoRangeCalc ; soil must fall down now! there is no other way... ; hide tanks or they fall down with soil - lda TankNr - pha - mva #1 Erase - jsr drawtanks - mva #0 Erase jsr SoilDown2 - jsr drawtanks - pla - sta TankNr ; it looks like force is divided by 4 here BUT" ; in Flight routine force is multiplied by 2 and left @@ -158,7 +137,7 @@ tracer mva #13 ExplosionRadius jsr CalculateExplosionRange0 mva #sfx_baby_missile sfx_effect - jmp xmissile + jmp xmissile.NoRangeCalc EndOfLeapping rts .endp @@ -176,22 +155,12 @@ EndOfLeapping ;central Explosion mva #21 ExplosionRadius jsr CalculateExplosionRange0 - jsr xmissile - - lda TankNr - pha - mva #1 Erase - jsr drawtanks - mva #0 Erase + jsr xmissile.NoRangeCalc jsr SoilDown2 ; - mva #1 Erase - jsr drawtanks - mva #0 Erase + jsr cleartanks ; maybe not? sta FunkyWallFlag - pla - sta TankNr mva #1 color mva #5 FunkyBombCounter FunkyBombLoop @@ -212,7 +181,6 @@ FunkyBombLoop mva #sfx_funky_hit sfx_effect jsr Flight - jsr CalculateExplosionRange lda HitFlag beq NoExplosionInFunkyBomb mva #sfx_baby_missile sfx_effect @@ -232,20 +200,16 @@ NoWallsInFunky .proc deathshead ; inc FallDown2 mva #30 ExplosionRadius - jsr CalculateExplosionRange - mva #sfx_nuke sfx_effect SaveDrawXY jsr xmissile UnSaveDrawXY sbw xdraw #34 - jsr CalculateExplosionRange mva #sfx_nuke sfx_effect SaveDrawXY jsr xmissile UnSaveDrawXY adw xdraw #68 - jsr CalculateExplosionRange mva #sfx_nuke sfx_effect SaveDrawXY jsr xmissile @@ -720,6 +684,8 @@ LaserMisses ; ----------------- .proc xmissile ; ; ----------------- + jsr CalculateExplosionRange +NoRangeCalc lda #1 sta radius sta color @@ -931,7 +897,6 @@ ExplodeNow mwa ycircle ydraw ;(bad) ; finally a little explosion - jsr CalculateExplosionRange mva #sfx_baby_missile sfx_effect jmp xmissile rts @@ -1212,9 +1177,7 @@ QuitToGameover bne @+ callActivation ; Hide all tanks - after inventory they may have other shapes - mva #1 Erase - jsr DrawTanks - mva #0 Erase + jsr ClearTanks jsr DefensivesActivate jmp afterInventory @@ -1223,9 +1186,7 @@ callActivation bne @+ callInventory ; Hide all tanks - after inventory they may have other shapes - mva #1 Erase - jsr DrawTanks - mva #0 Erase + jsr ClearTanks ; mva #$ff isInventory jsr Purchase @@ -1234,6 +1195,7 @@ afterInventory lda #song_ingame jsr RmtSongSelect mva #0 escFlag + sta Erase ; why? jsr DisplayStatus jsr SetMainScreen jsr WaitOneFrame @@ -2331,14 +2293,8 @@ MIRValreadyAll jsr DisplayOffensiveTextNr ; temporary removing tanks from the screen (otherwise they will fall down with soil) - mva TankNr tempor2 - mva #1 Erase - jsr drawtanks - mva tempor2 TankNr - mva #0 Erase jsr SoilDown2 mva #$ff HitFlag ; but why ?? - ;jsr drawtanks rts .endp ; ------------------------------------------------- @@ -2460,8 +2416,7 @@ NextLine2 ldx TankNr sta ActiveDefenceWeapon,x ; deactivate Nuclear Winter jsr SetFullScreenSoilRange - jsr SoilDown2 - jsr drawtanks ; for restore PM + jsr SoilDown2.NoClearTanks rts ; in order to optimize the fragment repeated in both internal loops @@ -2572,11 +2527,7 @@ ReachSky adc #0 sta RangeRight+1 ; hide tanks and ... - mva #1 Erase - jsr DrawTanks jsr SoilDown2 - mva #0 Erase - jsr DrawTanks ldx TankNr ; check keyboard/joy and move tank left/right - code copied from BeforeFire @@ -2868,11 +2819,7 @@ OnGround adc #0 sta RangeRight+1 ; hide tanks and ... - mva #1 Erase - jsr DrawTanks jsr SoilDown2 - mva #0 Erase - jsr DrawTanks ldx TankNr rts .endp