From cc99866a1260752720010be85b1122ef487f3075 Mon Sep 17 00:00:00 2001 From: pkali Date: Sun, 21 May 2023 09:25:22 -0400 Subject: [PATCH] jsr/rts to jmp optimiz --- Atari/gr_basics.asm | 8 +- Atari/textproc.asm | 4 +- C64/gr_basics.asm | 4 +- README.md | 238 +++++++++++++++++++++++--------------------- ai.asm | 6 +- game.asm | 4 +- grafproc.asm | 12 +-- scorch.bin | Bin 32768 -> 32768 bytes scorch.xex | Bin 56552 -> 56538 bytes scorchC64.asm | 4 +- scorchC64.prg | Bin 39996 -> 39619 bytes weapons.asm | 24 ++--- 12 files changed, 157 insertions(+), 147 deletions(-) diff --git a/Atari/gr_basics.asm b/Atari/gr_basics.asm index 46858ca..467f8fe 100644 --- a/Atari/gr_basics.asm +++ b/Atari/gr_basics.asm @@ -585,8 +585,8 @@ EndPut4x4 ; ora #$02 ; 2=normal, 3 = wide screen width sta dmactls mva WallsType COLBAKS ; set color of background - jsr WaitOneFrame - rts + jmp WaitOneFrame + ; rts .endp ;-------------------------------------------------- @@ -660,8 +660,8 @@ NoPlot ldx TankNr sta ActiveDefenceWeapon,x ; deactivate Nuclear Winter jsr SetFullScreenSoilRange - jsr SoilDown2.NoClearTanks - rts + jmp SoilDown2.NoClearTanks + ; rts ; in order to optimize the fragment repeated in both internal loops ; we save 15 bytes :) diff --git a/Atari/textproc.asm b/Atari/textproc.asm index dbf0abe..b36270d 100644 --- a/Atari/textproc.asm +++ b/Atari/textproc.asm @@ -1709,8 +1709,8 @@ FastTank bne MainTanksFloatingLoop ; neverending loop mva #$00 ScrollFlag ; credits scroll off jsr MakeDarkScreen - jsr GameOverResultsClear - rts + jmp GameOverResultsClear + ; rts RandomizeTankPos randomize 10 (32-7) ; 10 not 8 - barrel !! :) sta Ytankstable,x diff --git a/C64/gr_basics.asm b/C64/gr_basics.asm index 78fb207..8a175cf 100644 --- a/C64/gr_basics.asm +++ b/C64/gr_basics.asm @@ -680,8 +680,8 @@ NoPlot ldx TankNr sta ActiveDefenceWeapon,x ; deactivate Nuclear Winter jsr SetFullScreenSoilRange - jsr SoilDown2.NoClearTanks - rts + jmp SoilDown2.NoClearTanks + ; rts ; in order to optimize the fragment repeated in both internal loops ; we save 15 bytes :) diff --git a/README.md b/README.md index 0a2f2cd..70eec45 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,10 @@ You can contact us via [AtariAge](https://atariage.com) or [AtariOnLine](https:/ This source code was originally compiled with [OMC65 crossassembler](https://github.com/pkali/omc65) and on 2012-06-21 translated to [mads](https://github.com/tebe6502/Mad-Assembler). -Compilation: `mads scorch.asm -o:scorch.xex` +Compilation: +`mads scorch.asm -o:scorch.xex -d:TARGET=800` for Atari800 version +`mads scorch.asm -o:scorch.bin -d:TARGET=5200` for Atari 5200 version +`mads scorchC64.asm -o:scorchC64.prg` for C64 version (WIP, not playable yet) Game source code is split into several parts: @@ -41,19 +44,26 @@ Game source code is split into several parts: - weapons.asm - general arsenal of tankies - definitions.asm - label definitions, moved to make it work better with Altirra debug (it doesn't). -We were trying to use macros, pseudo-ops and simple graphics primitives as much as possible. -This way it should be relatively easy to port this code to e.g. C64 +We were trying to use macros, pseudo-ops, and simple graphics primitives as much as possible. This way, it should be relatively easy to port this code to, for example, the C64. -After those N years of working on this piece of code we are sure it would be much wiser to write it in C, Action! or MadPascal but on the other hand it is so much fun to type 150 chars where all you want to have y=a*x+b :) +After working on this piece of code for N years, we are sure it would be much wiser to write it in C, Action!, or MadPascal. On the other hand, it is so much fun to type 150 characters when all you want to have is y = a * x + b. :) -Originally most variables were in Polish, comments were sparse, but we wanted to release this piece of code to public. -Because of being always short of time/energy (to finish the game) we decided it must go in 'English' to let other people work on it. -It never happened, but we got some encouraging comments and we are still trying to do something from time to time. +Originally, most variables were in Polish, and comments were sparse. However, we wanted to release this piece of code to the public. Because we were always short of time and energy (to finish the game), we decided to translate it into English so that other people could work on it. This never happened, but we received some encouraging comments, and we are still trying to do something from time to time. With the advent of [fujinet](https://fujinet.online/) we are thinking about making the game interplanetary, err, with multiplayer over the net. We'll see. ## Changelog: +###### Version 1.30 +2023-05-21 + +Okay, okay, we promised that the single-machine game was done, and it was. However, some bug reports came in, and development of the C64 version unearthed some mostly peaceful and dormant pests. As a result, it appears that a new release is happening. + +The most important changes: +- most machine-dependent code moved to appropriate folders (`Atari/` and `C64`) +- Game Over results table improved by sorting all 3 values - points, hits and money earned +- + ###### Version 1.28 2023-04-22 @@ -145,11 +155,11 @@ Other (dubious) improvements: We couldn't resist! This is the Senior Executive Director's Cut. By virtue of byte misering we squeezed in a few new features: -* new selectable tank shapes - change the controller enough times to get a different tank model -* lonely bad pixel after Liquid Dirt fixed -* mountain colors (or shades) possible, switch with [Tab] in the main menu -* active controller number display in the game, store, and inventory screens -* a very special terminator mode for Moron +- new selectable tank shapes - change the controller enough times to get a different tank model +- lonely bad pixel after Liquid Dirt fixed +- mountain colors (or shades) possible, switch with [Tab] in the main menu +- active controller number display in the game, store, and inventory screens +- a very special terminator mode for Moron ###### Version 1.20 @@ -158,72 +168,72 @@ By virtue of byte misering we squeezed in a few new features: It's the final cut. Director's Cut. We squeezed the code and saved some bytes to add the joystick/controller selection. No more fights for the stick, up to 4 players can have fun with their own manipulators. And the fifth one can still use the keyboard :). Our most prolific testers Arek and Alex called for a number of fixes. Thank you, guys! -* Players can select their controllers. -* Better Auto Defense symbol in the status line. -* Battery performance in AI and Auto Defense fixed. -* More accurate and faster Laser. -* Boost For Gifts includes a secret, quite powerful weapon. -* Points counting fix-up (edge cases eliminated). -* Long lists in inventory and shop were pointing to a weapon outside the screen. Fixed. -* Lazy Boys now remember the last weapon used. -* Especially for XEGS - SELECT key changes the joystick similarly to TAB. -* Rare P/M glitches fixed. -* ExplosionRange variable glitched (rarely) due to byte/word mix-up. Fixed. -* Bouncy Castle was bouncing the laser from inside. Fixed. -* Shielded tanks were autodestructing when shooting with angle 0. Fixed. -* Physics of bouncing off the walls was incorrect for some weapons. Fixed. +- Players can select their controllers. +- Better Auto Defense symbol in the status line. +- Battery performance in AI and Auto Defense fixed. +- More accurate and faster Laser. +- Boost For Gifts includes a secret, quite powerful weapon. +- Points counting fix-up (edge cases eliminated). +- Long lists in inventory and shop were pointing to a weapon outside the screen. Fixed. +- Lazy Boys now remember the last weapon used. +- Especially for XEGS - SELECT key changes the joystick similarly to TAB. +- Rare P/M glitches fixed. +- ExplosionRange variable glitched (rarely) due to byte/word mix-up. Fixed. +- Bouncy Castle was bouncing the laser from inside. Fixed. +- Shielded tanks were autodestructing when shooting with angle 0. Fixed. +- Physics of bouncing off the walls was incorrect for some weapons. Fixed. ###### Version 1.19 2022-11-04 This is the final round of weapon additions! Also. our beloved testers and players found a number of issues and we were extremely happy to address them. -* New defensive weapon "Lazy Boy" - aims at the closest enemy. -* New defensive weapon "Lazy Darwin" - aims at the weakest link, an enemy I mean. -* New defensive weapon "Auto Defense" - activate it to be automatically protected by shields and stuff (where available) -* New defensive weapon "Spy Hard" - quickly view energies, weapons and shields of your opponents. -* New SFXes, improvements in SFX, and music by @mikerro -* Shooting with angle 0 caused the sudden death of the operator. Fixed. -* Angles were asymmetrical, now you can go from 0 to 90 and to 0 again (181 degrees of freedom). Fixed with an improved arithmetic rounding of our sub-pixel accuracy. -* Drawing a barrel when a tank was on the edge of X==256 pixels caused a lonely pixel to appear randomly. Fixed. -* Liquid Dirt was overflowing from the right edge of the screen to the left. Fixed. -* Liquid Dirt volume increased significantly, it is now a formidable attack! -* A single pixel was erroneously plotted when measuring distance (was visible in e.g., Death's Head). Fixed. -* Not all traces were correctly erased after Funky Bomb, fixed again (for the 3rt time I guess). -* Soil sedimentation speed after Funky Bomb improved. -* Pressing [ESC] when in inventory/store was quitting the game, now it quits the menu only. -* A bug in MADS optimization was causing parts of SEPPUKU message to stay on screen. -* BIGGEST OF ALL: the lonely pixel after Nuclear Winter was eliminated. https://github.com/pkali/scorch_src/issues/103 We have spent a disproportionately large amount of time trying to slap this bug. It is still there, but is not manifesting itself ;) +- New defensive weapon "Lazy Boy" - aims at the closest enemy. +- New defensive weapon "Lazy Darwin" - aims at the weakest link, an enemy I mean. +- New defensive weapon "Auto Defense" - activate it to be automatically protected by shields and stuff (where available) +- New defensive weapon "Spy Hard" - quickly view energies, weapons and shields of your opponents. +- New SFXes, improvements in SFX, and music by @mikerro +- Shooting with angle 0 caused the sudden death of the operator. Fixed. +- Angles were asymmetrical, now you can go from 0 to 90 and to 0 again (181 degrees of freedom). Fixed with an improved arithmetic rounding of our sub-pixel accuracy. +- Drawing a barrel when a tank was on the edge of X==256 pixels caused a lonely pixel to appear randomly. Fixed. +- Liquid Dirt was overflowing from the right edge of the screen to the left. Fixed. +- Liquid Dirt volume increased significantly, it is now a formidable attack! +- A single pixel was erroneously plotted when measuring distance (was visible in e.g., Death's Head). Fixed. +- Not all traces were correctly erased after Funky Bomb, fixed again (for the 3rt time I guess). +- Soil sedimentation speed after Funky Bomb improved. +- Pressing [ESC] when in inventory/store was quitting the game, now it quits the menu only. +- A bug in MADS optimization was causing parts of SEPPUKU message to stay on screen. +- BIGGEST OF ALL: the lonely pixel after Nuclear Winter was eliminated. https://github.com/pkali/scorch_src/issues/103 We have spent a disproportionately large amount of time trying to slap this bug. It is still there, but is not manifesting itself ;) ###### Version 1.18 2022-11-07 Possibly the final single-player version of the game, unless our dear players find another breaking issue! -* 5200 keypad works as it should. You can now press these finicky foils to your heart's desire. -* "Unknown" type Robotanks were attacking with Nuclear Winter every time. Fixed! -* One of the variables was declared as a byte but used as a word that might cause some rare instabilities. -* Page zero variables are cleared prior to the game start to eliminate rare issues in some software/hardware configurations. -* The new version of music in NTSC eliminates issues with tempo (not that anyone but the artist noticed that, but still it is an improvement!) -* You can now wrap around inventory and shop to faster access these options far down below. -* Visual improvement of the main menu and fixed some color issues with the title headers. -* Hovercraft was always flying to the top of the screen, it was not intended, it is now hovering just above the mountains! -* The main menu does not blink now when changing options. This was a very minor thing but it bothered me to some extent. Fixing it required a complete rewrite of this portion of the menu. +- 5200 keypad works as it should. You can now press these finicky foils to your heart's desire. +- "Unknown" type Robotanks were attacking with Nuclear Winter every time. Fixed! +- One of the variables was declared as a byte but used as a word that might cause some rare instabilities. +- Page zero variables are cleared prior to the game start to eliminate rare issues in some software/hardware configurations. +- The new version of music in NTSC eliminates issues with tempo (not that anyone but the artist noticed that, but still it is an improvement!) +- You can now wrap around inventory and shop to faster access these options far down below. +- Visual improvement of the main menu and fixed some color issues with the title headers. +- Hovercraft was always flying to the top of the screen, it was not intended, it is now hovering just above the mountains! +- The main menu does not blink now when changing options. This was a very minor thing but it bothered me to some extent. Fixing it required a complete rewrite of this portion of the menu. ###### Version 1.17 2022-10-31 Mostly 5200 console port and NTSC improvements. -* Updated songs from Miker do not require skipping frames on NTSC machines. Crucial for the next point. -* Bouncy Castle bouncing of Funky Bomb fixed https://github.com/pkali/scorch_src/issues/129 -* 5200 version had various graphical and sound glitches. Although mostly harmless, it hurt our sense of aesthetics. First of all the flickering credits roll is all good now. -* Rare hang-ups on NTSC machines fixed -* Screen lowered down by 7 scan lines to help top status line on NTSC CRTs. -* 5200 ATTRACT mode not going away fixed -* Autorepeat added to menus what should help 5200 users with their non-centering abomination of a controller. -* DLI interrupts optimized, few cycles saved. -* 5200 keypad sort-of-works. Please refer to manual for key bindings. +- Updated songs from Miker do not require skipping frames on NTSC machines. Crucial for the next point. +- Bouncy Castle bouncing of Funky Bomb fixed https://github.com/pkali/scorch_src/issues/129 +- 5200 version had various graphical and sound glitches. Although mostly harmless, it hurt our sense of aesthetics. First of all the flickering credits roll is all good now. +- Rare hang-ups on NTSC machines fixed +- Screen lowered down by 7 scan lines to help top status line on NTSC CRTs. +- 5200 ATTRACT mode not going away fixed +- Autorepeat added to menus what should help 5200 users with their non-centering abomination of a controller. +- DLI interrupts optimized, few cycles saved. +- 5200 keypad sort-of-works. Please refer to manual for key bindings. ###### Version 1.16 @@ -236,7 +246,7 @@ Cramming the game into a 32KiB cart and 16KiB RAM was a big task - it required a The release is not perfect - we have a number of glitches and improvements to the 5200 controller procedures to work on, but the game is playable. Changes: -* numerous, but not very visible +- numerous, but not very visible ###### Version 1.14 @@ -246,12 +256,12 @@ Minor bugfixes and optimizations. Just a small update to allow for more testing and having fun before the bigger release. Changes: -* Numerous optimizations that require a solid test. Please have fun and report issues! -* Small DrawTanks fix. -* Bouncy Castle bounces like it should. -* Tracer and Smoke Tracer are not causing defense weapons to trigger anymore. -* In rare cases direct hit was not accounted for correctly. -* Manuals updated. https://github.com/pkali/scorch_src/releases/tag/v1.16 +- Numerous optimizations that require a solid test. Please have fun and report issues! +- Small DrawTanks fix. +- Bouncy Castle bounces like it should. +- Tracer and Smoke Tracer are not causing defense weapons to trigger anymore. +- In rare cases direct hit was not accounted for correctly. +- Manuals updated. https://github.com/pkali/scorch_src/releases/tag/v1.16 ###### Version 1.13 @@ -262,13 +272,13 @@ Getting ready for porting the game! Several heavy optimizations and code cleanups in preparation for an unexpected port. Changes: -* Overhaul of AI - Cyborgs, Spoilers, and Choosers aim much better. -* Cyborgs prefer to kill humans. -* Fine tuning of AI purchases makes the difficulty level aligned with the robot level. -* Fixed a very difficult and elusive bug that was causing tanks to freeze when falling close to the right edge of the screen fixed. -* Updated music by @Miker -* It is now possible to enter tank names with a joystick - all essential game functions are available without touching the keyboard! -* Manuals updated with AI strategy information and more. +- Overhaul of AI - Cyborgs, Spoilers, and Choosers aim much better. +- Cyborgs prefer to kill humans. +- Fine tuning of AI purchases makes the difficulty level aligned with the robot level. +- Fixed a very difficult and elusive bug that was causing tanks to freeze when falling close to the right edge of the screen fixed. +- Updated music by @Miker +- It is now possible to enter tank names with a joystick - all essential game functions are available without touching the keyboard! +- Manuals updated with AI strategy information and more. ###### Version 1.12 @@ -277,12 +287,12 @@ Changes: What is going on? Are we getting crazy or what? Changes: -* Background color indicates the type of walls. This is very useful when the rand option is selected. -* XEGS users requested that console keys are used when no keyboard is attached! We delivered! [SELECT] to select an offensive weapon, [OPTION] to jump into inventory, defensive section, [START] + [OPTION] - immediate Game Over (no confirmation for you keyboardless folks) -* A very silly bug detected by our young testers fixed - the game crashed when you built a very high mountain using Dirt Balls :) -* Boxy infinite bounce bug fixed. -* Funky bombs bounce off the walls! -* The first letter entered for a tank name was inserted in the wrong spot. How did it work at all? Magic. +- Background color indicates the type of walls. This is very useful when the rand option is selected. +- XEGS users requested that console keys are used when no keyboard is attached! We delivered! [SELECT] to select an offensive weapon, [OPTION] to jump into inventory, defensive section, [START] + [OPTION] - immediate Game Over (no confirmation for you keyboardless folks) +- A very silly bug detected by our young testers fixed - the game crashed when you built a very high mountain using Dirt Balls :) +- Boxy infinite bounce bug fixed. +- Funky bombs bounce off the walls! +- The first letter entered for a tank name was inserted in the wrong spot. How did it work at all? Magic. [ESC] now correctly exits the purchase screen. @@ -294,8 +304,8 @@ A release lollapalooza. The silliness indicator crashed. What are we doing? Changes: -* A very silly buffer overflow bug fixed - it allowed for infinite (well... to the point) lengths of tank names, or rather for overwriting code with arbitrary values. -* Gamefield walls added https://github.com/pkali/scorch_src/issues/50. Choosing a different wall effect from the main options menu allows for a sophisticated tactics change. +- A very silly buffer overflow bug fixed - it allowed for infinite (well... to the point) lengths of tank names, or rather for overwriting code with arbitrary values. +- Gamefield walls added https://github.com/pkali/scorch_src/issues/50. Choosing a different wall effect from the main options menu allows for a sophisticated tactics change. ###### Version 1.10 2022-08-21 @@ -307,22 +317,22 @@ This release brings a swath of gameplay updates and a generous dose of a new sil Version number bump reflects number of unreleased versions and amount of changes. Changes: -* Defensive weapons can be activated before the round to make for the unbeatable aiming precision of the robotanks. -* Fixed bug with Long Schlong activation taking one Schlong too many. -* Smoke Tracer not disappearing smoke fixed. -* Bug allowing for infinite shooting outside the screen fixed. -* Tank colors and P/M sequence as devised by Adam, the gfx artist. Tanks differ more and look better. https://github.com/pkali/scorch_src/issues/119 -* New item in the shop - loot box "Buy me!" with a surprise inside. https://github.com/pkali/scorch_src/issues/97 -* Tank names can have s p a c e s now! https://github.com/pkali/scorch_src/issues/120 -* Tanks are mobile now thanks to the new defensive option - Hovercraft https://github.com/pkali/scorch_src/issues/52 -* Main atari library switched to a more standard version based on Mapping the Atari -* Huge memory optimizations to allow for the new features. -* Narrow screen in shop / inventory (many bytes saved). -* Explosion range corrections for a rare event of non-lethal Nuke explosions. -* Pressing [A] jumps into defensive weapons activation directly. -* Elusive randomize force error causing rare hangups for Tosser fixed. -* Activation of defensive weapons moved to front. -* Additional SFX for new weapons. +- Defensive weapons can be activated before the round to make for the unbeatable aiming precision of the robotanks. +- Fixed bug with Long Schlong activation taking one Schlong too many. +- Smoke Tracer not disappearing smoke fixed. +- Bug allowing for infinite shooting outside the screen fixed. +- Tank colors and P/M sequence as devised by Adam, the gfx artist. Tanks differ more and look better. https://github.com/pkali/scorch_src/issues/119 +- New item in the shop - loot box "Buy me!" with a surprise inside. https://github.com/pkali/scorch_src/issues/97 +- Tank names can have s p a c e s now! https://github.com/pkali/scorch_src/issues/120 +- Tanks are mobile now thanks to the new defensive option - Hovercraft https://github.com/pkali/scorch_src/issues/52 +- Main atari library switched to a more standard version based on Mapping the Atari +- Huge memory optimizations to allow for the new features. +- Narrow screen in shop / inventory (many bytes saved). +- Explosion range corrections for a rare event of non-lethal Nuke explosions. +- Pressing [A] jumps into defensive weapons activation directly. +- Elusive randomize force error causing rare hangups for Tosser fixed. +- Activation of defensive weapons moved to front. +- Additional SFX for new weapons. ###### Version 1.00 2022-08-13 @@ -336,18 +346,18 @@ All 48KB+ 8-bit Atari computers are supported. Thank you @Pecusx and @Miker for your hard work over the last few weeks - I was almost entirely absent because of the real-world attack. Most important changes: -* New Game Over screen with a summary of wins, direct hits and earned cash. https://github.com/pkali/scorch_src/issues/9 -* Tank barrels are drawn procedurally to make aiming easier.. -* Various SFX and music updates with new tunes for all parts of the game. https://github.com/pkali/scorch_src/issues/112 -* AI can use White Flag. -* 3 different tank shapes https://github.com/pkali/scorch_src/issues/64. -* All AI levels are programmed. Cyborg is tough! https://github.com/pkali/scorch_src/issues/40 -* New weapon - Long Schlong! -* New splash screen. -* Game mechanics improved. -* [O] key skips to the Game Over screen. -* The game works on Atari 800. -* Huge amount of optimizations to squeeze the game into 48K. +- New Game Over screen with a summary of wins, direct hits and earned cash. https://github.com/pkali/scorch_src/issues/9 +- Tank barrels are drawn procedurally to make aiming easier.. +- Various SFX and music updates with new tunes for all parts of the game. https://github.com/pkali/scorch_src/issues/112 +- AI can use White Flag. +- 3 different tank shapes https://github.com/pkali/scorch_src/issues/64. +- All AI levels are programmed. Cyborg is tough! https://github.com/pkali/scorch_src/issues/40 +- New weapon - Long Schlong! +- New splash screen. +- Game mechanics improved. +- [O] key skips to the Game Over screen. +- The game works on Atari 800. +- Huge amount of optimizations to squeeze the game into 48K. And now the new adventure begins! @@ -423,10 +433,10 @@ The new inventory system has been added. Call it by pressing the "I" key or shor Another significant playability change is #54 - it is not finished yet, but keeping the joystick up or down makes force increase/decrease faster. Also - short press of fire calls Inventory, long press fires the shell. The timings are experimental, please let me know if this needs a modification/improvement. Tickets closed: -* https://github.com/pkali/scorch_src/issues/92 - less unnecessary cleaning of the offensive texts -* https://github.com/pkali/scorch_src/issues/89 - improved collisions with tank -* https://github.com/pkali/scorch_src/issues/71 - ditto -* https://github.com/pkali/scorch_src/issues/11, https://github.com/pkali/scorch_src/issues/26, https://github.com/pkali/scorch_src/issues/8, https://github.com/pkali/scorch_src/issues/20 - new inventory system +- https://github.com/pkali/scorch_src/issues/92 - less unnecessary cleaning of the offensive texts +- https://github.com/pkali/scorch_src/issues/89 - improved collisions with tank +- https://github.com/pkali/scorch_src/issues/71 - ditto +- https://github.com/pkali/scorch_src/issues/11, https://github.com/pkali/scorch_src/issues/26, https://github.com/pkali/scorch_src/issues/8, https://github.com/pkali/scorch_src/issues/20 - new inventory system ###### Build 143 2022-06-05 diff --git a/ai.asm b/ai.asm index 564a9f2..44b70df 100644 --- a/ai.asm +++ b/ai.asm @@ -22,7 +22,7 @@ pha lda AIRoutines,y pha -; it's no necessary - PrepareAIShoot is next proc :) +; it's no necessary - PrepareAIShoot is next proc :) ; jsr PrepareAIShoot ; rts .endp @@ -203,8 +203,8 @@ forceNow endo ; choose the best weapon - jsr ChooseBestOffensive - rts + jmp ChooseBestOffensive + ; rts ;---------------------------------------------- AngleTable ; 16 bytes ;ba w $348b L$3350 diff --git a/game.asm b/game.asm index c08763d..cb061ee 100644 --- a/game.asm +++ b/game.asm @@ -1043,8 +1043,8 @@ rotateLeft ; older is bigger dec angleTable,x jmp MoveBarrel BarrelPositionIsFine - jsr DrawTankNr - rts + jmp DrawTankNr + ; rts .endp diff --git a/grafproc.asm b/grafproc.asm index cbe8eb4..ae1b631 100644 --- a/grafproc.asm +++ b/grafproc.asm @@ -1430,8 +1430,8 @@ ColumnIsReady sta color ; Pozor! :) we know - now A=1 NothingToFall mva #sfx_silencer sfx_effect - jsr DrawTanks - rts + jmp DrawTanks + ; rts .endp ;-------------------------------------------------- @@ -1750,8 +1750,8 @@ end_found iny sty fx ldy tankNr - jsr Display4x4AboveTank - rts + jmp Display4x4AboveTank + ; rts .endp ;------------------------------- @@ -1926,8 +1926,8 @@ X lda XtanksTableL,x sta yc ; current tank barrel length lda angleTable,x sta Angle - jsr DrawBarrelTech - rts + jmp DrawBarrelTech + ; rts .endp .proc DrawBarrelTech diff --git a/scorch.bin b/scorch.bin index 32731b5d2e1a3fb99bbbce3eb94e37c0b4e9f1da..2a9069b9614f76419f76aae43aa19540fa9d3a51 100644 GIT binary patch delta 7298 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 delta 7360 zcmZ`d30M?I*3&b?H4b#Es9ZvEi3kFVM(~OkDr$QW5lAG`94a`g?0{&*=qOqQ(b0iY z4rO#in$YM7glrU(S#dYA4!Oo`G%<&(22s|;O#Z~Ux{2=V9z?UrFMiWiuikrA_3GW* zw#m0`leb=1tzec3Tty+G15HCa3@d8)Pbp*W_sDHOqtawSW_rGMw7QIWXiBY>$u8I) zntVIzQfgNN=)NGsX~>j;wrv%3*d*BTW8pD23NmyrS)j4EpwtI+3OmWPK_lk9rB}*@ zWqK#MFkSEQ36|+S?xYEFJ@pCffuffPa-cyCD^T1E00_Apa~sK5IYw8}Kb9cx7tr69 zpa2e)k|Tq>g3L*6y_nc-5GsAt_=FK62QkvrJ8l$SBx^Y zqO(Ov_a}6h+)?|uGs{r>R&=l!UD=F6$q@Isx~xs?fyIsHZc7|(ceT{eb_LQ_b~APq zs%`wEMNMN(Gc4H@?6O60%g>Si6@kJ{jT%cVcO>0sHrjTp$ACook*(3THlKsPo#JPUExj*+FHODVhzk4+{r&Z zCMd_IqiEty?{aS4Bv3GHqJMEaUMvLaeLK-Ua+2u`%r5|R0VHEY^R%e>kEksfZr`W@ zh=BCTD4*;b?4yJ=j+_|$>B!S5`T})_B}HGT=Fpu#ih>mqa2wx-KSf^<(-2=}b*`|U zR16)u;?yhlKPK~mx?nvZWD(8F2S#G zNzBmasT7hw^f}n*S1U_D)Op6J__p{yV8zY_rub9gA#hB2dIT1>|K_(K*I(}oSZD!} zdj zz-mCVkW-Q|&9j@i4rNYBh2vJpqYc?;TTZgWzU^;DSJK9w0aa2+jjyI*~Lz2WmJi<(ntOrOo5W5JzAzw3cVI;UF(M6C>gs8pbIvS}<$rVa)j^K$` z*30%DVfLCB6qp6bLFRhKHVlyW&?ecHe8#T6(1~n6nPheaa$ULeEV5>znJXP)b%C>A zW)~!jLSR471mQ^^NiK4`r`6Ry$tnZb-E0t{__4hU+!^<-vrM4>2@_Mc^DO(fOqjWy zIMP4i&z|pXmE&G^5;+_gsnP4 z@LF`K3Lh6)QBPP&%q`!NyFtUL5yUAtikeKu2T!2_i8gq;vM$?fBCiJfkdK0WBQ9lg zAz#O6BkP$M*M_ql`3$Sff$u)1QPUJ}@unYaPcwScmZ9{6Br+^ytWG?OMLdgFTlJ>4 zw2EqLjzKA8S5!;V>g7a6?h>O$4Y*r)F^L;Q4QrrnsNjc-7!AY6c!iw(k^C(r!t0mi#;LSr;4p2~@qJW9 zHM^kQIn9l z&`lkC)Ac(7EuD_hYk{b8^?+^v2jm}5_K%9wX;w9A9-X0qAY5TQL)+)FnpM3$d=D7C z61MJvX%|cxrQj+}_#Ur31%_pV3*Qsp=hhF5?*kwMAg??J2)K6Au(?%XbAkxiNdqI` zcaZn7sriFeZ^KW>yqeXJ`C*f(k)$*%!mD!iiDOLtsE&Ps;W{faI9s_^x!d%w3W+r= z)w3|Yc3ZZ6^y%Wh z`Ub{Cbu=&)MPsSLYAW}?ICf(m<>R!ZIh zyyae26AZ(OT9;eB4VfL)AdI^8a40ip*y}!(;xEy$0Zq`z&l)~Xm_GF zgA2-Vfl1-49aT`qJP@xrk{BYU#C@ary(O&W3-VqB0=i9Gd*1^D4rv!Y4yrFXVpL5O zkr7liiH=+{xH{Ji5$?EfYhcX~IUL0GdgN4_LJoQ56Q0ok7RR9JVlc?WAbPSPLP1{n#6ipsRqp>k$;#IvZVm*s`;IT zY4A#Ep4R29@(UMsg3wUwCKUTBFTjNmsrtht=bBWUV>wJN|3RxW7qIyS$XtN@3;PGz z;z01nxu9S1eXckQXiXGQQ)N4w(7T)95riSQjQ0ztz!OloOgso|vO#O2(CcC{{LHMY z%yyZJ=Q;2KV6|PDf(zD)($BKVyRy5oy4NP5Q86d24YC1MOp>B zalI%{39bfnwgyXXvXUOy2F)g?o*OwB$|M=)a3;>e+0yYy`h+0jGQoXB?*>=_C_25_ zJ_vH9tcooaTK0JoF(J?I^k&;g;NOIHZ#K!=v^c9x3#Y8m!prU^trJEKm$G}l4i2(n z18x$ALE0Y*sr{V^bEyYpTwENrhiKyBDTXw}MGc6`$c7t;-Eg!kh6o8=EZ+BxF(;wUV%tMuV~x zO$t_}r`Ed4pl&vEq<+#C_s6LfIW|>Wj($2b)rCY(E_M?kTw4yzS|$fkkIBcA!<~0; zmH^b01S+L{&Xidcb-BHKYA7{1T8b=!J0zX`>Ad+UjTul4(c+9yPn@rRrQtjpuIuh* z9spRJ3CnO78czD257gCFq0fpqi$M)R@I`lA(59XDxI)XJ<50qa+g3GOChHO{lXQvP ze%%oruWQl$S@*rpt`oK;ZeO&0lWvnPy(GINujIiF#m@YaO(nXL{UwJ=>Pv)@){?dz zr*>F&4BPqLj$+++J2}v5Bf8!KQBaWeXzU8ec)Cg1G@3e1YNq+Q)ap> zc0&d00cms#il`Etu#tV6+@2Pyil{B}$37CT#A=80FE>0g!g_4KUM|y{D z7nPagIlPh2#INvKkWFSo{dAhd%m}5TNXm?DR4n;)MhLZr{5&ILgrOAhTWt5m4Z%kZ zhSNk@cH}m9GdDi` zkOs6E1^a;PnuS)zzAC7Js|xDa7Et*Bi8mw{Mlj80FwTtpexH?*|HM=FHuKHrTWmej zC4{Mt)4cZ@oXaTE+gzoQ0}k?PV*f!r5<=t&uMxu>Pm-8WM(rjS6NbS>ZzU|D!btq= z`S81Ac2Gp)0T8*9DF;nl%)u3(9--N>r{M<(F-^Bin^6X_&7KHUsyX8!%1)aze8Mzv zLeRv3%%f40i#6SF!*8(Th~mLyPj2Hl{5{e0a43Q7p5x;vfQ30@T*duu5$G)WVosvZ z*<$_;G5Fz3{!K9`;%rG{PGgQtncG0?lN-*PMTcy6+1Uji_`A6ox)=>?55^Eu#VF9d z@+bWX-mfWKX%DOkmxC|MFE`V7tdC(7xXXH9`tT#e&stq-W4RK&ekE|q!tu4{8Gb z%8se&?5#4$ixup9<#4QnBEmsPxFK7%dbdVBS_kps5n<yJtDu>U!#n`MsQ)) z0H~8>#y!yfdbEcI0Qi{g^ZgfIsJF1Oj@4GA;5mJD06g-Rl1 zNvQH%G5axjXNecpNG>gj9eJ+!q`!#r@jmzuhliX*_`4&>f>1(|g2$S4fbqX8B9%ZH zy_tHYxP?Z?x!<^gf#xQ>dVA9Td0Pvl8;bcR#2;e56ZxCgV^_JLVV%XlVNmk5jZjls*-%1w7>>I zpI929!UNEVw~&;jK|v5T#h?zJ-)NaiTRkC#EEo59;{1@B99%jwEM-4iNBVt=OOxnN z-XhSY+ze14vll|bUbGnM$E!>IQq}t*Z!!u)!1iq8#ntEgSGABOf!lI|j0q0RT!jJ> zM&L`YHqq=%2UR^#iC!2yCNwr*I>7EGa3JZpNy)yHnygKpPE8{xlf#(VTDEw9H**+H z?*THNMs6lQw`v+V@WMwY#X#c7g<1atk_U2R)nLH$*YD*a)agX-4q)+w_) zN$nM`3DTrzdM=!*sjRHSyE?JMi(F3$h=L`p*c&R~p0CcR{;vA1nt#@et=(K3RxSDv zrQw0qqxD|+qo#h6sMH|Jk0hnWQCG;W)Kry^5vA6kvKn-o{3|tznoGRX{6-@mBe$lY zxTL)DVEqsuD8eVroDUic+G%xa9VDtZlHw~#Pn+W*b%i*QOJ@!H6KPHJ^?nuv;udNh zDv5kZPg-LfYLezITT7~}b4eX-Beiy;Yisk+)gIm|7t|B|b zULile6s}xxP@;$&9CgTxzmx~qy-%^j25Sz9$8*BRpl)pFy2K79Rm%gH7l8NTRL$Mp zmMe!6EuS4qs9yLh3jed zc?|^}(3;eCB#|NM;n@R^+|icirPW%q4RUDzX+hh>M-GHX4sE@M(XZK-~=jXgy`PS!Gd%k_}h;mksUc4+lvp|2q*xvQQC%w*tgAOFR{ao`_0v1**WzMfoPk7sqTgpQ!Mlg NOj6a;{zJYy^ItXsYO??U diff --git a/scorch.xex b/scorch.xex index ce36aeb61d853e4d140d577d1e76dad310bc1b21..2f1a51a5ecdd1205bf378072857c85cc6e14210d 100644 GIT binary patch delta 7250 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

RT&4Oew*p5xgFB;; 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 diff --git a/weapons.asm b/weapons.asm index d1cfcfe..38d2c7b 100644 --- a/weapons.asm +++ b/weapons.asm @@ -934,7 +934,7 @@ ExplodeNow ; finally a little explosion mva #sfx_baby_missile sfx_effect jmp xmissile - rts + ; rts .endp ; -------------------------------------------------- .proc checkRollDirection @@ -2392,8 +2392,8 @@ NoWall ; ------------------------------------------------- jsr PrepareAIShoot.WepTableToTemp jsr UseBattery - jsr TosserDefensives - rts + jmp TosserDefensives + ; rts .endp ; ------------------------------------------------- .proc SpyHard @@ -2431,15 +2431,15 @@ SelectNextTank beq RepeatSpy SpyHardEnd mvx TargetTankNr TankNr ; restore - jsr DisplaySpyInfo - rts + jmp DisplaySpyInfo + ; rts .endp .proc DisplaySpyInfo lda TankStatusColoursTable,x sta COLOR2 ; set color of status line - jsr PutTankNameOnScreen -; jsr DisplayStatus ; There is no need anymore, it is always after PutTankNameOnScreen - rts + jmp PutTankNameOnScreen + ; jsr DisplayStatus ; There is no need anymore, it is always after PutTankNameOnScreen + ; rts .endp ; ------------------------------------------------- .proc LazyBoys @@ -2474,8 +2474,8 @@ EndLazy sta ForceTableL,x lda Force+1 sta ForceTableH,x - jsr MoveBarrelToNewPosition - rts + jmp MoveBarrelToNewPosition + ; rts .endp ; ------------------------------------------------- .proc TankFlying @@ -2839,8 +2839,8 @@ CalculateSoildown adc #0 sta xdraw+1 mva #$04 ExplosionRadius - jsr CalculateExplosionRange - rts + jmp CalculateExplosionRange + ; rts SetFuelFullText mwa #hoverFull LineAddress4x4