mirror of
https://github.com/pkali/scorch_src.git
synced 2026-05-21 06:39:46 +02:00
Compare commits
153 Commits
release_129
..
145
| Author | SHA1 | Date | |
|---|---|---|---|
| 4fe360d63c | |||
| c9ceb58117 | |||
| e10514debd | |||
| 2907fe7a91 | |||
| a0d5d22e74 | |||
| 1ea62798c8 | |||
| 42facad64e | |||
| 2c98d73877 | |||
| 4ae4403448 | |||
| 242bc4586c | |||
| eda0e65189 | |||
| 8613854f80 | |||
| 1c277b0e6f | |||
| 623c9c9583 | |||
| ce55bf0d97 | |||
| 537f88e4c6 | |||
| 9aaa4fec69 | |||
| 67b5dfb110 | |||
| 4200e60d47 | |||
| 7324203925 | |||
| 634c2f83e9 | |||
| 18f88705e5 | |||
| fe6bd17a66 | |||
| 1d8f26d562 | |||
| 2bb8a743e1 | |||
| 708a7b4aa9 | |||
| 8153670711 | |||
| ab140ed5ca | |||
| cc3e2d1845 | |||
| 98e866abdd | |||
| ffa748fb68 | |||
| de047779ce | |||
| 3c685b2811 | |||
| c86dcd7c59 | |||
| f924868459 | |||
| 2992bd40b3 | |||
| b19d218670 | |||
| 8ab450ff48 | |||
| 5e2ab7f206 | |||
| cd69bf22db | |||
| ff8c4d9329 | |||
| 83e128a1b5 | |||
| cc8688263a | |||
| b5bf6ecc30 | |||
| e2c85c98c2 | |||
| c47a22a833 | |||
| cd4275226a | |||
| cb270be865 | |||
| 7df1d5eff9 | |||
| c3f6e2399d | |||
| 598860b7d0 | |||
| c1aa177767 | |||
| eb7f6369de | |||
| 41900d7671 | |||
| 6a6689b9b7 | |||
| 836c67afcf | |||
| 1b983b8d92 | |||
| 53e9f89012 | |||
| cf40bf905d | |||
| 91b613f166 | |||
| eace9eb5cf | |||
| 4c6b56a1e2 | |||
| 7b86fc98cd | |||
| 186cacf5ba | |||
| 031416b8e6 | |||
| 1394524a26 | |||
| ea6c621d79 | |||
| afd81c08c3 | |||
| a9703609b6 | |||
| d8bfda28a0 | |||
| 743114fd0d | |||
| 079abc062f | |||
| 853a597daf | |||
| 1eadc7f63e | |||
| 081cf282c8 | |||
| 4c3203854c | |||
| bf11a9967f | |||
| 0d7403d1c0 | |||
| 777f5c341a | |||
| 8f0bd8ca81 | |||
| c12049d0d7 | |||
| 6013986e51 | |||
| 0fbe3de569 | |||
| 9569b3365a | |||
| 6d9b2907c5 | |||
| 94e6caebed | |||
| 532ee7dc88 | |||
| 17e653b37d | |||
| bef3c0f080 | |||
| 7ff3858433 | |||
| eae8cb08d8 | |||
| f13d7ac801 | |||
| 0ddbe41005 | |||
| 7cd31450c7 | |||
| a556e50e53 | |||
| 9f1720e970 | |||
| 2df28af79c | |||
| defbde5b87 | |||
| 0820124f9f | |||
| aa74cf133b | |||
| 2c640c370a | |||
| 636e121bf7 | |||
| 3c1b0a02aa | |||
| be5652074a | |||
| a425500d4e | |||
| a721b82944 | |||
| 762b56567b | |||
| b11d22d1bb | |||
| c68ba09103 | |||
| e399754e0c | |||
| 381495fb5a | |||
| 17b57d1ed2 | |||
| 2fb04cabff | |||
| 457af6d6b9 | |||
| bdf0f10cc0 | |||
| 347e59d5a2 | |||
| 61ff5e47e1 | |||
| 2d8c71e9ff | |||
| fd1a61c1f9 | |||
| 571b3c137e | |||
| bd8ecad2dd | |||
| 7e24e44f1b | |||
| eb8360dcd0 | |||
| 3d8ec72da0 | |||
| 2f099897c7 | |||
| 26f82b59c1 | |||
| 9a3cf1251f | |||
| ec5838ebaf | |||
| 491dc2861c | |||
| 5e476eb742 | |||
| 661d4776c7 | |||
| 3701accfc9 | |||
| fb54230ea7 | |||
| fb86876d9f | |||
| 80bc302689 | |||
| d9645b9c37 | |||
| 620bcf5aa8 | |||
| d0a9fb0fbe | |||
| 68bf4a9541 | |||
| 7dd3ecd2bf | |||
| 08f7680563 | |||
| d9322221a3 | |||
| d766088b66 | |||
| de5bfab2a8 | |||
| 91b39e736b | |||
| 572bee982a | |||
| b37dc73f52 | |||
| 11ddf69de9 | |||
| 0ba4594712 | |||
| 8556dfe0d7 | |||
| 860d0917ad | |||
| 2de2c24373 | |||
| a6382c5dc0 |
@@ -0,0 +1,2 @@
|
||||
|
||||
*.bak
|
||||
@@ -8,14 +8,15 @@ by Tomasz 'Pecus' Pecko and Pawel 'pirx' Kalinowski
|
||||
Warsaw, Miami 2000, 2001, 2002, 2003, 2009, 2012, 2013, 2022
|
||||
|
||||
Contributors:
|
||||
Kaz - splash screen, ideas
|
||||
Adam - font, ideas
|
||||
Emkay - splash screen music
|
||||
Miker - game sfx, ideas
|
||||
Bocianu - important ideas, FujiNet implementation
|
||||
- Kaz - splash screen, ideas
|
||||
- Miker (@mikerro) - game sfx, ideas, QA
|
||||
- Adam (@6502adam) - font, ideas, QA
|
||||
- Bocianu (@bocianu) - important ideas, FujiNet implementation, QA
|
||||
- Emkay - splash screen music
|
||||
|
||||
QA: Probabilitydragon, KrzysRog, Beeblebrox, EnderDude, lopezpb, Dracon, brad-colbert
|
||||
|
||||
You can contact us at pecus@poczta.fm or pirx@5oft.pl
|
||||
home page of this project is https://github.com/pkali/scorch_src
|
||||
|
||||
This source code was originally compiled under [OMC65 crossassembler](https://github.com/pkali/omc65) and on 2012-06-21 translated to [mads](https://github.com/tebe6502/Mad-Assembler).
|
||||
|
||||
@@ -31,12 +32,12 @@ Game source code is split into 5+4 parts:
|
||||
- display.asm - display lists and text screen definitions
|
||||
- ai.asm - artificial stupidity of computer opponents
|
||||
- weapons.asm - general arsenal of tankies
|
||||
- definitions.asm - label definitions, moved to make it work better with Altirra debug.
|
||||
- definitions.asm - label definitions, moved to make it work better with Altirra debug (it doesn't).
|
||||
|
||||
We were trying to use as much macros and pseudo-ops as possible.
|
||||
They are defined in atari.hea and macro.hea files together with many atari constants. 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 e.g. 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=ax+b :)
|
||||
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 :)
|
||||
|
||||
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.
|
||||
@@ -46,10 +47,81 @@ With the advent of fujinet (https://fujinet.online/) we are thinking about makin
|
||||
|
||||
## Changes:
|
||||
|
||||
###### Build 138
|
||||
###### Build 145
|
||||
2022-06-26
|
||||
Possibly last round of weapon additions!
|
||||
@Pecusx added
|
||||
- working White Flag -- it is a way to give up while not making opponents richer!
|
||||
- Battery - a must for every tank with low energy.
|
||||
- Strong Parachute - like a normal parachute, but stronger (it has energy and can work more than once)
|
||||
- Nuclear Winter - a quick and efficient solution to global worming, err, warning, WARMING!
|
||||
@mikerro added new SFX and in-game-tunes.
|
||||
- Pressing [S] turns on/off SFX (when aiming). Pressing [M] turns on/off in-game tunes.
|
||||
Tickets closed:
|
||||
- https://github.com/pkali/scorch_src/issues/54 - holding joystick up or down longer speeds up force change. It makes playing with joystick much nicer.
|
||||
- https://github.com/pkali/scorch_src/issues/76 - a beginning of visual tweaks by Adam
|
||||
- infinite defensive weapons purchase bug fixed, to chagrin of some...
|
||||
|
||||
###### Build 144
|
||||
2022-06-19
|
||||
Father's day release comes with the most anticipated new feature: defensive weapons. Thanks to @Pecus we have 5 completely new weapons and a more reasonably working parachute. The stub of the instruction manual describing these weapons is available here: https://github.com/pkali/scorch_src/wiki/Instruction-manual.
|
||||
|
||||
The new inventory system has been added. Call it by pressing the "I" key or short-pressing fire. Select the weapon to use by moving the joystick or cursor keys right. Switch between offensive and defensive weapons by moving the joystick left. Fire/escape to quit inventory.
|
||||
|
||||
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
|
||||
|
||||
###### Build 143
|
||||
2022-06-05
|
||||
Rewrite build. We redone several important parts of the game to allow for bug fixes and requested features. Generally it was a great success, but some new bugs appeared. This build is nice for the eye, but beware, no mercy for testers again :)
|
||||
Only visible changes listed, because you are possibly not as excited as we are for the new Flight routine and ground collisions by @Pecusx.
|
||||
- https://github.com/pkali/scorch_src/issues/84, https://github.com/pkali/scorch_src/issues/63 - tanks now say good bye properly!
|
||||
- https://github.com/pkali/scorch_src/issues/74 - Press [ESC] to quit the game at any point, with a confirmation when the round has already started. Please note the keyboard is not checked all the time, so press it for a while, especially when AI tanks are ru(i/n)ning the show.
|
||||
- https://github.com/pkali/scorch_src/issues/56 - there should be no occurrences of frivolous weapon purchases. Please report all tanks getting their munitions from uncertified sources!
|
||||
- https://github.com/pkali/scorch_src/issues/47 - It seems that the bad sequence of turns has been ameliorated. Fix is trivial, finding the culprit - far from it. Please pay special attention to fairness of shooting in case the fix is still longing for the fjords.
|
||||
- ATTRACT mode works how it should - screensaver saves screen only when HUMAN should input something.
|
||||
|
||||
###### Build 142
|
||||
2022-05-30
|
||||
Late build. The bugs we tried to squelch turned out to be more difficult than usual. Some progress has been made though even if it is not yet visible.
|
||||
- 4x4 font rewritten by @Pecusx as a prep for Y standarization. It makes the messages to appear faster. This is a good change.
|
||||
- https://github.com/pkali/scorch_src/issues/5 and #80 fixed (again) - no funkybomb traces staying on the screen
|
||||
- https://github.com/pkali/scorch_src/issues/70 too strong Shooters fixed
|
||||
- https://github.com/pkali/scorch_src/issues/63 - tank say goodbye when (mostly) visible
|
||||
- several other small changes and improvements that will pay off in the following releases.
|
||||
|
||||
###### Build 141
|
||||
2022-05-22
|
||||
Debug build. Thanks to all testers for finding numerous bugs. We tried to fix some of them and we have introduced some new for your enjoyment.
|
||||
- https://github.com/pkali/scorch_src/issues/73 Fast forward. Press [START] to speed up the game where it can be sped up. Not in many places, mind you.
|
||||
- https://github.com/pkali/scorch_src/issues/72 Screen glitches improved
|
||||
- https://github.com/pkali/scorch_src/issues/70 AI shoot with more force than their energy allows. We might still have to revise this one
|
||||
- https://github.com/pkali/scorch_src/issues/69 Explosions wrapping around the screen
|
||||
- https://github.com/pkali/scorch_src/issues/67 Screen glitches after intro
|
||||
- https://github.com/pkali/scorch_src/issues/65 Saved ~90 bytes by removing cosinus table
|
||||
- https://github.com/pkali/scorch_src/issues/62 Empty list of defensive weapons gets corrupted. Plunged it with a new defensive weapon - "White Flag". Honor of the tank crew prohibits them from buying it (yet)
|
||||
- https://github.com/pkali/scorch_src/issues/61 [SHIFT] was repeating the last key
|
||||
- https://github.com/pkali/scorch_src/issues/57 Fire too sensitive on a real machine. Switched to shadow registers. First recorded use of Atari OS :O
|
||||
- https://github.com/pkali/scorch_src/issues/55 Glitches in the status bar. This one was surprisingly tough.
|
||||
|
||||
###### Build 140
|
||||
2022-05-15
|
||||
Huge internal changes by @Pecusx. The whole game screen has been inverted - ground is now background color, "sky" and empty areas are in fact pixels. This allowed for introducing better tank colorization, fully devised and lead by Adam. The process started and results are already promising - the colors of tanks and the status bar are closer. We might get even better ones in the next builds.
|
||||
- few new sfx added (end of round, weapon change, soil eating weapons)
|
||||
- added colors to tank name and level selection screen
|
||||
- Bug https://github.com/pkali/scorch_src/issues/57 possibly alleviated by using TRIG0S instead of TRIG0. Please test - it did not show for me.
|
||||
Other unlisted minor bugs and typos fixed.
|
||||
"Nightly" version moved to `develop` branch. `master` will be updated with stablish and playablish builds only.
|
||||
|
||||
###### Build 139
|
||||
2022-05-09
|
||||
The post midnight release with great, heavy new features:
|
||||
- https://github.com/pkali/scorch_src/issues/48, https://github.com/pkali/scorch_src/issues/10 - thanks to Miker we have a bunch of fresh sound effects. Not everything is perfectly implemented, but the game definitely got nicer! Thank you again Miker!
|
||||
- https://github.com/pkali/scorch_src/issues/48, https://github.com/pkali/scorch_src/issues/10 - thanks to @mikerro we have a bunch of fresh sound effects. Not everything is perfectly implemented, but the game definitely got nicer! Thank you again Miker!
|
||||
- https://github.com/pkali/scorch_src/issues/42 New weapon - Liquid Dirt by Pecus. Try it from directly from the weapon store!
|
||||
- (fix) https://github.com/pkali/scorch_src/issues/53 - non-existing weapons are not displayed. This makes the defense menu empty when you are poor, but it is still better than the old way with "$0" prices
|
||||
- (fix) https://github.com/pkali/scorch_src/issues/49 - seppuku should always kill now
|
||||
@@ -91,7 +163,7 @@ Other small fixes:
|
||||
2022-04-10
|
||||
- https://github.com/pkali/scorch_src/issues/34 - plot pointer visible only when missile is out of the screen
|
||||
- https://github.com/pkali/scorch_src/issues/33 - Poor AIs do not purchase non-working weapons
|
||||
- https://github.com/pkali/scorch_src/issues/32 - Basic is turned off right on the beginning of loading. Dracon reported problems with running the game in Altirra, this was the best idea I had about it. Maybe next will be removing from zero page LZSS routine by @dmsc
|
||||
- https://github.com/pkali/scorch_src/issues/32 - Basic is turned off right on the beginning of loading. Dracon reported problems with running the game in Altirra, this was the best idea I had about it. Maybe next will be removing LZSS routine by @dmsc from zero page
|
||||
- https://github.com/pkali/scorch_src/issues/31 - STA WSYNC removed from missile flight delay
|
||||
- https://github.com/pkali/scorch_src/issues/30 - player level remembered between rounds, thx @KrzysRog
|
||||
- https://github.com/pkali/scorch_src/issues/5 - funkybomb smoke stays on the edges of the screen
|
||||
@@ -102,7 +174,7 @@ Other small fixes:
|
||||
- enhancement: https://github.com/pkali/scorch_src/issues/15 Add player colors to purchase screen. Still room to improvement!
|
||||
- enhancement: https://github.com/pkali/scorch_src/issues/22 Redesign information panel (top 2 lines of the game screen). Now game might make some sense for a newcomer :)
|
||||
- change: https://github.com/pkali/scorch_src/issues/28 remove white lines around out-of-the-screen point tracker. Now it is visible and looks better!
|
||||
- enhancement: https://github.com/pkali/scorch_src/issues/25 Missiles are too fast. Thanks @bocianu and @miker for the hint. Speed of the shell is configurable now, 5 speeds available.
|
||||
- enhancement: https://github.com/pkali/scorch_src/issues/25 Missiles are too fast. Thanks @bocianu and @mikerro for the hint. Speed of the shell is configurable now, 5 speeds available.
|
||||
- enhancement: https://github.com/pkali/scorch_src/issues/27 Remember game settings between games.
|
||||
- enhancement: https://github.com/pkali/scorch_src/issues/24 Remember player names between games. Thanks @bocianu
|
||||
|
||||
|
||||
@@ -1,90 +0,0 @@
|
||||
MOVED TO: https://github.com/pkali/scorch_src/issues
|
||||
|
||||
TODO and BUGS file
|
||||
|
||||
---------------------------------------------------------
|
||||
Known bugs (+ means bug is fixed)
|
||||
004. when parachute is on and the tank dies (e.g. hit by a powerful
|
||||
weapon) the dead (invisible) tank falls on parachute
|
||||
(and uses one parachute more than necessary)
|
||||
005. tank stands still on a one pixel spike - it should fall
|
||||
(possibly all that is necessary is adjust of WhereToSlideTable)
|
||||
017: Observed MIRV loops - it shoots and shoots MIRV all over the screen. Very rare.
|
||||
020: sometimes leftmost or rightmost remains of the funkybomb smoke do not get cleared
|
||||
I think it happens when one of the bombs goes out of the screen
|
||||
023: NEW BUG. After the last change (bug 007) now the last shell of any weapon gets removed and
|
||||
the game switches to Baby missile.
|
||||
|
||||
Fixed:
|
||||
+001. when bullet goes straight down very fast it misses the tank
|
||||
it happens only when tank is standing on the bottom of
|
||||
the screen (no ground below)
|
||||
+002. points after the round are not calculated correctly
|
||||
+003. if death's head explodes low, the lowest explosion wraps
|
||||
and appears on the top of the screen
|
||||
+006. After some attacks (like MIRV and leapfrog the OffensiveText
|
||||
stays on the screen (and becomes a static decoration)
|
||||
It possibly happens when a tank kills itself with mirv or leapfrog.
|
||||
+008. After a round the last tank sprite stays on the screen.
|
||||
This hurts only when the last tank is under the table with results!
|
||||
+010. Even MORONS shoot their feet too often - increase min. randomised energy.
|
||||
+011. High flying bullets sometimes cause brief screen garbage - like a DL damaged
|
||||
for a fraction of a frame.
|
||||
Update - these are NOT high flying bullets - it just happens during bullet flight
|
||||
+012. (newly introduced) Death explosions are offset right and possibly up.
|
||||
+013. sometimes demo mode does not work (it stops on results display)
|
||||
+014: FunkyBomb shoots with too high angle
|
||||
+015: Only first shoot of FunkyBomb is correct (with smoke and fast),
|
||||
the next are like missiles
|
||||
+016: Additional explosions after Frogger do not have falling soil (?)
|
||||
-018: MINOR: ydraw, yhit, ybyte variable is sometimes treated as WORD, sometimes as BYTE.
|
||||
Making it consistent would save both time and space (not much)
|
||||
REJECTED: too much work - different routines depend on checking high byte.
|
||||
+019: AI menu does not recognize keyboard up (prints "-" in tank name)
|
||||
+021: check MWA, ADW, SBW macros - bad modifications of bytes found!!!
|
||||
+009. When result in points is >99 then only 2 first digits are displayed
|
||||
-022: shooting funkybomb decreases number of bombs too much! (2 instead of 1?)
|
||||
+007. Decreasing of number of bullets after a shoot does not work correctly
|
||||
(e.g. 2 bullets are deducted instead of 1) FUNKYBOMB!!!
|
||||
it looks like it is fixed, although what I did was moving decreasing before jsr shoot
|
||||
+000, Game crashes from time to time, code and/or screen gets corrupted
|
||||
|
||||
|
||||
---------------------------------------------------------
|
||||
To do
|
||||
*004. The game has no end!!! Add ending!!!
|
||||
A good idea for an ending - a TIP pic - Red Army taking Berlin :)
|
||||
Another - vector tanks like in BattleZone
|
||||
Another - stickman tankmen
|
||||
006. Add sound effects (maybe sampled? or mp0 (sound based on fft))
|
||||
007. There is no defensive weapon handling (only parachute works,
|
||||
but also provisionally
|
||||
009. Make AI in the existing framework (ongoing)
|
||||
010. It is impossible to look up a number of parachutes left.
|
||||
018. Speed up soil down after soil eating weapons - correctly calculate
|
||||
ranges as now range is very broad even when very little soil is eaten.
|
||||
019. Purchase impossible with joystick only. Add buy on e.g. joystick right.
|
||||
020. Not a bug per se, but ydraw variable is word, possibly it can be switched to byte
|
||||
021. Add player colors to purchase screen
|
||||
022. Make colors more contrasting
|
||||
024. no visual indication of using defensive weapons
|
||||
|
||||
Done:
|
||||
|
||||
+001. Start each round with a)worst tank or b)random tank
|
||||
(Worst tank starts first)
|
||||
+002. Start each round with random angles (not always 45 degrees left)
|
||||
+003. Add colour of the given tank to the screen
|
||||
E.g. when a given tank is shooting it's colour could be behind
|
||||
tank name on the text screen
|
||||
+005. Add number of rounds to the options menu
|
||||
+008. No computer operated opponents - make a framework for AI!!!
|
||||
+011. Colouring the top status lines in a colour of the active tank.
|
||||
+014. Demo mode - when all tanks are CPUs let them play non-stop!
|
||||
(replace waiting for a key-press after a round with a small delay)
|
||||
+015. Switch to mads for easier development (mads speeds it up, no doubt)
|
||||
+016. Speed up death's head (e.g.: draw each second circle)
|
||||
-017. Wide screen mode (with scroll?)
|
||||
+012. Decreased number of bullets should be displayed just after the shoot.
|
||||
+013. Check LineTable - possibly it is unnecessarily long. Checked. It is OK
|
||||
+023. Make not implemented weapons raise NotImplementedError :] Done by making it impossible to purchase free weapons (price == $0)
|
||||
@@ -33,7 +33,7 @@ loop
|
||||
ArtificialIntelligence .proc ;
|
||||
; A - skill of the TankNr
|
||||
; returns shoot energy and angle in
|
||||
; EnergyTable/L/H and AngleTable
|
||||
; ForceTable/L/H and AngleTable
|
||||
;----------------------------------------------
|
||||
asl
|
||||
tax
|
||||
@@ -77,24 +77,22 @@ Shooter .proc
|
||||
lda PreviousAngle,x
|
||||
clc
|
||||
adc #5
|
||||
bmi leftQuadrant
|
||||
bmi @+
|
||||
cmp #90
|
||||
bcc continue
|
||||
bcc @+
|
||||
lda #(-90)
|
||||
bne continue
|
||||
leftQuadrant
|
||||
|
||||
|
||||
|
||||
continue
|
||||
@
|
||||
sta NewAngle
|
||||
|
||||
|
||||
sec
|
||||
lda PreviousEnergyL,x
|
||||
sta EnergyTableL,x
|
||||
lda PreviousEnergyH,x
|
||||
sta EnergyTableH,x
|
||||
|
||||
sbc #5
|
||||
sta ForceTableL,x
|
||||
lda PreviousEnergyH,x
|
||||
sbc #0
|
||||
sta ForceTableH,x
|
||||
jmp endo
|
||||
|
||||
firstShoot
|
||||
; compare the x position with the middle of the screen
|
||||
lda xTanksTableL,x
|
||||
@@ -108,7 +106,6 @@ firstShoot
|
||||
and #$1F
|
||||
clc
|
||||
adc #5
|
||||
;lda #45
|
||||
|
||||
sta NewAngle
|
||||
jmp forceNow
|
||||
@@ -123,15 +120,17 @@ tankIsOnTheRight
|
||||
forceNow
|
||||
mwa #100 RandBoundaryLow
|
||||
mwa #800 RandBoundaryHigh
|
||||
ldx TankNr ;this is possibly not necessary
|
||||
jsr RandomizeForce
|
||||
|
||||
endo
|
||||
ldx TankNr ;this is possibly not necessary
|
||||
jsr RandomizeForce.LimitForce
|
||||
lda NewAngle
|
||||
sta PreviousAngle,x
|
||||
lda EnergyTableL,x
|
||||
lda ForceTableL,x
|
||||
sta PreviousEnergyL,x
|
||||
lda EnergyTableH,x
|
||||
lda ForceTableH,x
|
||||
sta PreviousEnergyH,x
|
||||
|
||||
; choose the best weapon
|
||||
@@ -214,6 +213,7 @@ skipThisPlayer
|
||||
forceNow
|
||||
mwa #300 RandBoundaryLow
|
||||
mwa #700 RandBoundaryHigh
|
||||
ldx TankNr
|
||||
jsr RandomizeForce
|
||||
|
||||
endo
|
||||
|
||||
+30
-5
@@ -45,11 +45,16 @@ regX .ds 1
|
||||
regY .ds 1
|
||||
; --- MAIN PROGRAM
|
||||
org $2000
|
||||
ant dta $F0
|
||||
ant dta $80
|
||||
dta $42,a(scr),$02,$02,$02,$02,$02,$02,$02,$02,$02,$82,$02,$02,$02,$02,$82
|
||||
dta $02,$02,$02,$82,$82,$82,$02,$82,$02,$02,$02,$82,$70
|
||||
dta $02,$02,$02,$82,$82,$82,$02,$82,$02,$02,$02,$82
|
||||
dta $42,a(verline)
|
||||
dta $41,a(ant)
|
||||
|
||||
verline
|
||||
:37 dta d" "
|
||||
build
|
||||
|
||||
scr ins "HIMARS14.scr"
|
||||
|
||||
.ds 2*40
|
||||
@@ -68,7 +73,7 @@ pmg .ds $0300
|
||||
eif
|
||||
|
||||
song_data
|
||||
ins 'mmm_16.lzs'
|
||||
ins 'mmm_16.lzs'
|
||||
song_end
|
||||
|
||||
POKEY = $D200
|
||||
@@ -202,6 +207,19 @@ main
|
||||
|
||||
lda:cmp:req $14 ;wait 1 frame
|
||||
|
||||
; copy system font to $a000
|
||||
ldx #0
|
||||
@ lda $e000,x
|
||||
sta $a000,x
|
||||
;lda $e100,x ; i need digits only :]
|
||||
;sta $a100,x
|
||||
;lda $e200,x
|
||||
;sta $a200,x
|
||||
;lda $e300,x
|
||||
;sta $a300,x
|
||||
inx
|
||||
bne @-
|
||||
|
||||
sei ;stop IRQ interrupts
|
||||
mva #$00 nmien ;stop NMI interrupts
|
||||
sta dmactl
|
||||
@@ -249,6 +267,11 @@ stop
|
||||
@ sta POKEY,x
|
||||
dex
|
||||
bpl @-
|
||||
|
||||
;no glitching please (issue #67)
|
||||
lda #0
|
||||
sta $D400 ;dmactl
|
||||
sta $022F ;dmactls
|
||||
rts ;return to ... DOS
|
||||
|
||||
; --- DLI PROGRAM
|
||||
@@ -339,8 +362,10 @@ dli7
|
||||
dli11
|
||||
sta regA
|
||||
|
||||
lda #$01
|
||||
lda #>$a000 ; system font
|
||||
sta wsync ;line=232
|
||||
sta chbase
|
||||
lda #$01
|
||||
sta gtictl
|
||||
|
||||
lda regA
|
||||
@@ -431,7 +456,7 @@ quit
|
||||
ini main
|
||||
; ---
|
||||
|
||||
opt l-
|
||||
;opt l-
|
||||
|
||||
.MACRO SPRITES
|
||||
missiles
|
||||
|
||||
Executable → Regular
Executable → Regular
Executable → Regular
|
Before Width: | Height: | Size: 190 B After Width: | Height: | Size: 190 B |
@@ -0,0 +1,20 @@
|
||||
|
||||
icl '../lib/atari.hea'
|
||||
|
||||
org $2000
|
||||
joytest
|
||||
mva #0 dmactls
|
||||
|
||||
@
|
||||
lda trig0
|
||||
beq pressed
|
||||
mva #0 colbak
|
||||
beq @-
|
||||
pressed
|
||||
lda #$0f
|
||||
;ora jstick0
|
||||
sta colbak
|
||||
jmp @-
|
||||
|
||||
run joytest
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Executable → Regular
Executable → Regular
BIN
Binary file not shown.
Executable → Regular
Executable → Regular
Binary file not shown.
+101
-168
@@ -5,18 +5,24 @@
|
||||
;===================================================================================
|
||||
;==========================CONSTANT TABLES, do not erase!===========================
|
||||
;===================================================================================
|
||||
TankColoursTable .BYTE $52,$32,$72,$92,$B2,$02
|
||||
TankColoursTable .BYTE $88,$cc,$38,$1c,$6a,$02
|
||||
TankStatusColoursTable .BYTE $80,$c0,$30,$10,$60,$00
|
||||
dliColorsBack
|
||||
:10 .by $02,$00
|
||||
dliColorsFore
|
||||
.by $0a
|
||||
TextBackgroundColor = $02 ; REAL constans - use: LDA #TextBackgroundColor
|
||||
TextForegroundColor = $0c
|
||||
CashOptionL ;(one zero less than on the screen)
|
||||
.by 0,<200,<500,<800,<1000
|
||||
.by 0,<200,<800,<1200,<2000
|
||||
CashOptionH
|
||||
.by 0,>200,>500,>800,>1000
|
||||
.by 0,>200,>800,>1200,>2000
|
||||
GravityTable .by 10,20,25,30,40
|
||||
MaxWindTable .by 5,20,40,60,80
|
||||
MaxWindTable .by 5,20,40,70,99
|
||||
RoundsTable .by 10,20,30,40,50
|
||||
flyDelayTable .by 255,150,75,35,1
|
||||
seppukuTable .by 255, 45,25,15,9
|
||||
;------------------------------------------------
|
||||
|
||||
LevelNameBeginL ; begins of level names
|
||||
.by <NamesOfLevels,<(NamesOfLevels+10),<(NamesOfLevels+20)
|
||||
.by <(NamesOfLevels+32),<(NamesOfLevels+42),<(NamesOfLevels+52)
|
||||
@@ -30,31 +36,25 @@ TanksWeaponsTableL
|
||||
.by <TanksWeapon1,<TanksWeapon2,<TanksWeapon3,<TanksWeapon4,<TanksWeapon5,<TanksWeapon6
|
||||
TanksWeaponsTableH
|
||||
.by >TanksWeapon1,>TanksWeapon2,>TanksWeapon3,>TanksWeapon4,>TanksWeapon5,>TanksWeapon6
|
||||
;-----4x4 texts-----
|
||||
|
||||
;-----4x4 texts-----
|
||||
LineTop
|
||||
dta d"(%%%%%%%%%%%%)"
|
||||
.byte $ff
|
||||
dta d"(%%%%%%%%%%%%)", $ff
|
||||
;# - vertical, () * +, % - horizontal
|
||||
LineBottom
|
||||
dta d"*%%%%%%%%%%%%+"
|
||||
.byte $ff
|
||||
dta d"*%%%%%%%%%%%%+", $ff
|
||||
LineEmpty
|
||||
dta d"# #"
|
||||
.byte $ff
|
||||
dta d"# #", $ff
|
||||
LineHeader2
|
||||
dta d"# RESULTS #"
|
||||
.byte $ff
|
||||
dta d"# RESULTS #", $ff
|
||||
LineGameOver
|
||||
dta d"# GAME OVER #"
|
||||
.byte $ff
|
||||
dta d"# GAME OVER #", $ff
|
||||
seppukuText
|
||||
dta d"# SEPPUKU! #"
|
||||
.byte $ff
|
||||
dta d"# SEPPUKU! #", $ff
|
||||
areYouSureText
|
||||
dta d"# SURE? Y/N #", $ff
|
||||
lineClear
|
||||
dta d" "
|
||||
.byte $ff
|
||||
|
||||
dta d" ", $ff
|
||||
|
||||
;-----------
|
||||
pmtableL ; addressess of the P/M memory for 5 tanks (6th is without P/M background)
|
||||
@@ -189,99 +189,6 @@ sintable
|
||||
.by 255
|
||||
.by 255 ;anti self destruction byte
|
||||
|
||||
costable
|
||||
.by 255 ;anti self destruction byte
|
||||
.by 255
|
||||
.by 255
|
||||
.by 255
|
||||
.by 255
|
||||
.by 255
|
||||
.by 254
|
||||
.by 254
|
||||
.by 253
|
||||
.by 252
|
||||
.by 252
|
||||
.by 251
|
||||
.by 250
|
||||
.by 249
|
||||
.by 248
|
||||
.by 247
|
||||
.by 246
|
||||
.by 244
|
||||
.by 243
|
||||
.by 242
|
||||
.by 240
|
||||
.by 238
|
||||
.by 237
|
||||
.by 235
|
||||
.by 233
|
||||
.by 232
|
||||
.by 230
|
||||
.by 228
|
||||
.by 226
|
||||
.by 223
|
||||
.by 221
|
||||
.by 219
|
||||
.by 217
|
||||
.by 214
|
||||
.by 212
|
||||
.by 209
|
||||
.by 207
|
||||
.by 204
|
||||
.by 201
|
||||
.by 198
|
||||
.by 196
|
||||
.by 193
|
||||
.by 190
|
||||
.by 187
|
||||
.by 184
|
||||
.by 181
|
||||
.by 177
|
||||
.by 174
|
||||
.by 171
|
||||
.by 167
|
||||
.by 164
|
||||
.by 161
|
||||
.by 157
|
||||
.by 154
|
||||
.by 150
|
||||
.by 146
|
||||
.by 143
|
||||
.by 139
|
||||
.by 135
|
||||
.by 131
|
||||
.by 128
|
||||
.by 124
|
||||
.by 120
|
||||
.by 116
|
||||
.by 112
|
||||
.by 108
|
||||
.by 104
|
||||
.by 100
|
||||
.by 95
|
||||
.by 91
|
||||
.by 87
|
||||
.by 83
|
||||
.by 79
|
||||
.by 74
|
||||
.by 70
|
||||
.by 66
|
||||
.by 61
|
||||
.by 57
|
||||
.by 53
|
||||
.by 48
|
||||
.by 44
|
||||
.by 40
|
||||
.by 35
|
||||
.by 31
|
||||
.by 26
|
||||
.by 22
|
||||
.by 17
|
||||
.by 13
|
||||
.by 8
|
||||
.by 4
|
||||
.by 0
|
||||
|
||||
linetableL
|
||||
:screenheight+1 .by <(display+screenBytes*#)
|
||||
linetableH
|
||||
@@ -569,6 +476,7 @@ WhereToSlideTable
|
||||
.BY %000 ; 11111111
|
||||
|
||||
EndOfTheBarrelX
|
||||
; right angles from 0 (vertically up) to 90 (horizontally to the right)
|
||||
.by 4,4,4,4,4,4,4,4,4,4,4
|
||||
.by 5,5,5,5,5,5,5,5,5,5
|
||||
.by 6,6,6,6,6,6,6,6,6
|
||||
@@ -578,15 +486,16 @@ EndOfTheBarrelX
|
||||
.by 7,7,7,7,7,7,7,7,7,7,7,7,7
|
||||
.by 7,7,7,7,7,7,7,7,7,7,7,7,7,7
|
||||
|
||||
.by 0,0,0,0,0,0,0,0,0,0
|
||||
.by 0,0,0,0,0,0,0,0,0,0
|
||||
.by 0,0,0,0,0,0,0,0,0,0
|
||||
.by 0,0,0,0,0,0,0,0,0,0
|
||||
.by 0,0,0,0,0,0,0,0,0,0
|
||||
.by 0,0,0,0,0,0,0,0,0,0
|
||||
.by 0,0,0,0,0,0,0,0,0,0
|
||||
.by 0,0,0,0
|
||||
.by 0,0,0,0,0,0,0,0,0,0 ; not used
|
||||
.by 0,0,0,0,0,0,0,0,0,0 ; not used
|
||||
.by 0,0,0,0,0,0,0,0,0,0 ; not used
|
||||
.by 0,0,0,0,0,0,0,0,0,0 ; not used
|
||||
.by 0,0,0,0,0,0,0,0,0,0 ; not used
|
||||
.by 0,0,0,0,0,0,0,0,0,0 ; not used
|
||||
.by 0,0,0,0,0,0,0,0,0,0 ; not used
|
||||
.by 0,0,0,0 ; not used
|
||||
|
||||
; left angles from 90 (horizontally to the left) to 1 (vertically up)
|
||||
.by 0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
.by 0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
.by 0,0,0,0,0,0,0,0,0,0
|
||||
@@ -597,6 +506,7 @@ EndOfTheBarrelX
|
||||
.by 3,3,3,3,3,3,3,3,3,3,3
|
||||
|
||||
EndOfTheBarrelY
|
||||
; right angles from 0 (vertically up) to 90 (horizontally to the right)
|
||||
.by 7,7,7,7,7,7,7,7,7,7,7
|
||||
.by 7,7,7,7,7,7,7,7,7,7
|
||||
.by 7,7,7,7,7,7,7,7,7
|
||||
@@ -604,18 +514,21 @@ EndOfTheBarrelY
|
||||
.by 6,6,6,6,6,6,6,6,6
|
||||
.by 5,5,5,5,5,5,5,5,5,5
|
||||
.by 4,4,4,4,4,4,4,4,4,4,4,4,4
|
||||
.by 3,3,3,3,3,3,3,3,3,3,3,3,3,3
|
||||
.by 4,4,4,4,4,4,4,4,4,4,4,4,4,4 ; one pixel Up for fix problems with colision check
|
||||
; .by 3,3,3,3,3,3,3,3,3,3,3,3,3,3
|
||||
|
||||
.by 0,0,0,0,0,0,0,0,0,0
|
||||
.by 0,0,0,0,0,0,0,0,0,0
|
||||
.by 0,0,0,0,0,0,0,0,0,0
|
||||
.by 0,0,0,0,0,0,0,0,0,0
|
||||
.by 0,0,0,0,0,0,0,0,0,0
|
||||
.by 0,0,0,0,0,0,0,0,0,0
|
||||
.by 0,0,0,0,0,0,0,0,0,0
|
||||
.by 0,0,0,0
|
||||
.by 0,0,0,0,0,0,0,0,0,0 ; not used
|
||||
.by 0,0,0,0,0,0,0,0,0,0 ; not used
|
||||
.by 0,0,0,0,0,0,0,0,0,0 ; not used
|
||||
.by 0,0,0,0,0,0,0,0,0,0 ; not used
|
||||
.by 0,0,0,0,0,0,0,0,0,0 ; not used
|
||||
.by 0,0,0,0,0,0,0,0,0,0 ; not used
|
||||
.by 0,0,0,0,0,0,0,0,0,0 ; not used
|
||||
.by 0,0,0,0 ; not used
|
||||
|
||||
.by 3,3,3,3,3,3,3,3,3,3,3,3,3,3
|
||||
; left angles from 90 (horizontally to the left) to 1 (vertically up)
|
||||
; .by 3,3,3,3,3,3,3,3,3,3,3,3,3,3
|
||||
.by 4,4,4,4,4,4,4,4,4,4,4,4,4,4 ; one pixel Up for fix problems with colision check
|
||||
.by 4,4,4,4,4,4,4,4,4,4,4,4,4
|
||||
.by 5,5,5,5,5,5,5,5,5,5
|
||||
.by 6,6,6,6,6,6,6,6,6
|
||||
@@ -623,8 +536,8 @@ EndOfTheBarrelY
|
||||
.by 7,7,7,7,7,7,7,7,7
|
||||
.by 7,7,7,7,7,7,7,7,7,7
|
||||
.by 7,7,7,7,7,7,7,7,7,7,7
|
||||
|
||||
;-------------------------------------------------
|
||||
|
||||
TanksNamesDefault
|
||||
dta d"1st.Tank"
|
||||
dta d"2nd.Tank"
|
||||
@@ -633,7 +546,6 @@ TanksNamesDefault
|
||||
dta d"5th.Tank"
|
||||
dta d"6th.Tank"
|
||||
|
||||
|
||||
WeaponPriceH ; weapons prices (tables with prices of weapons)
|
||||
.by >price_Baby_Missile___
|
||||
.by >price_Missile________
|
||||
@@ -683,13 +595,14 @@ WeaponPriceH ; weapons prices (tables with prices of weapons)
|
||||
.by >price______________45
|
||||
.by >price______________46
|
||||
.by >price______________47
|
||||
.by >price_Heat_Guidance__
|
||||
.by >price_White_Flag_____
|
||||
.by >price_Battery________
|
||||
.by >price_Bal_Guidance___
|
||||
.by >price_Horz_Guidance__
|
||||
.by >price_Vert_Guidance__
|
||||
.by >price_Lazy_Boy_______
|
||||
.by >price_Parachute______
|
||||
.by >price_Battery________
|
||||
.by >price_StrongParachute
|
||||
.by >price_Mag_Deflector__
|
||||
.by >price_Shield_________
|
||||
.by >price_Force_Shield___
|
||||
@@ -697,8 +610,7 @@ WeaponPriceH ; weapons prices (tables with prices of weapons)
|
||||
.by >price_Super_Mag______
|
||||
.by >price_Auto_Defense___
|
||||
.by >price_Fuel_Tank______
|
||||
.by >price_Contact_Trigger
|
||||
.by >price______________63
|
||||
.by >price_Nuclear_Winter_
|
||||
|
||||
WeaponPriceL
|
||||
.by <price_Baby_Missile___
|
||||
@@ -749,13 +661,14 @@ WeaponPriceL
|
||||
.by <price______________45
|
||||
.by <price______________46
|
||||
.by <price______________47
|
||||
.by <price_Heat_Guidance__
|
||||
.by <price_White_Flag_____
|
||||
.by <price_Battery________
|
||||
.by <price_Bal_Guidance___
|
||||
.by <price_Horz_Guidance__
|
||||
.by <price_Vert_Guidance__
|
||||
.by <price_Lazy_Boy_______
|
||||
.by <price_Parachute______
|
||||
.by <price_Battery________
|
||||
.by <price_StrongParachute
|
||||
.by <price_Mag_Deflector__
|
||||
.by <price_Shield_________
|
||||
.by <price_Force_Shield___
|
||||
@@ -763,8 +676,7 @@ WeaponPriceL
|
||||
.by <price_Super_Mag______
|
||||
.by <price_Auto_Defense___
|
||||
.by <price_Fuel_Tank______
|
||||
.by <price_Contact_Trigger
|
||||
.by <price______________63
|
||||
.by <price_Nuclear_Winter_
|
||||
|
||||
;-------------------------------------------------
|
||||
; how many units (bulletd) of a given weapon we get for a given price
|
||||
@@ -821,13 +733,14 @@ WeaponUnits
|
||||
.by 0 ;_____________45
|
||||
.by 0 ;_____________46
|
||||
.by 0 ;_____________47
|
||||
.by 6 ;Heat_Guidance__
|
||||
.by 1 ;White_Flag___48
|
||||
.by 3 ;Battery________
|
||||
.by 2 ;Bal_Guidance___
|
||||
.by 5 ;Horz_Guidance__
|
||||
.by 5 ;Vert_Guidance__
|
||||
.by 2 ;Lazy_Boy_______
|
||||
.by 8 ;Parachute______
|
||||
.by 10 ;Battery________
|
||||
.by 2 ;StrongParachute
|
||||
.by 2 ;Mag_Deflector__
|
||||
.by 3 ;Shield_________
|
||||
.by 3 ;Force_Shield___
|
||||
@@ -835,8 +748,7 @@ WeaponUnits
|
||||
.by 2 ;Super_Mag______
|
||||
.by 1 ;Auto_Defense___
|
||||
.by 10 ;Fuel_Tank______
|
||||
.by 25 ;Contact_Trigger
|
||||
.by 0 ;_____________63
|
||||
.by 1 ;Nuclear_Winter_
|
||||
|
||||
PurchaseMeTable ;weapons good to be purchased by the robot
|
||||
;the comment is an index in the tables
|
||||
@@ -899,8 +811,8 @@ WeaponSymbols
|
||||
.by $58,$59,$5a,$5b,$60,$7b,$7c,$7d
|
||||
.by $20,$00,$00,$00,$00,$00,$00,$00
|
||||
.by $00,$00,$00,$00,$00,$00,$00,$00
|
||||
.by $02,$03,$06,$1d,$0a,$1b,$1c,$1e
|
||||
.by $3b,$3c,$3d,$3e,$3f,$5e,$5f,$00
|
||||
.by $5f,$1c,$03,$06,$1d,$0a,$1b,$1b ; defensives
|
||||
.by $1e,$3b,$3c,$3d,$3e,$3f,$5e,$7d
|
||||
|
||||
; Names of weapons (16 chars long)
|
||||
NamesOfWeapons ;the comment is an index in the tables
|
||||
@@ -951,26 +863,44 @@ NamesOfWeapons ;the comment is an index in the tables
|
||||
dta d"----------------" ; 44
|
||||
dta d"----------------" ; 45
|
||||
dta d"----------------" ; 46
|
||||
dta d"----------------" ; 47
|
||||
dta d" " ; 47 ; special (no weapon) name to simplify display
|
||||
|
||||
dta d"Heat Guidance " ; 48 ($30)
|
||||
dta d"Bal Guidance " ; 49
|
||||
dta d"Horz Guidance " ; 50
|
||||
dta d"Vert Guidance " ; 51
|
||||
dta d"Lazy Boy " ; 52
|
||||
dta d"Parachute " ; 53
|
||||
dta d"Battery " ; 54
|
||||
dta d"Mag Deflector " ; 55
|
||||
dta d"Shield " ; 56
|
||||
dta d"Force Shield " ; 57
|
||||
dta d"Heavy Shield " ; 58
|
||||
dta d"Super Mag " ; 59
|
||||
dta d"Auto Defense " ; 60
|
||||
dta d"Fuel Tank " ; 61
|
||||
dta d"Contact Trigger " ; 62
|
||||
dta d"----------------" ; 63
|
||||
dta d"White Flag " ; 48 ($30)
|
||||
dta d"Battery " ; 49
|
||||
dta d"Bal Guidance " ; 50
|
||||
dta d"Horz Guidance " ; 51
|
||||
dta d"Vert Guidance " ; 52
|
||||
dta d"Lazy Boy " ; 53
|
||||
dta d"Parachute " ; 54 - no energy
|
||||
dta d"Strong Parachute" ; 55 - with energy (earlier Battery)
|
||||
dta d"Mag Deflector " ; 56 - with shield and energy
|
||||
dta d"Shield " ; 57 - shield for one shot - no energy
|
||||
dta d"Force Shield " ; 58 - shield with energy and parachute
|
||||
dta d"Heavy Shield " ; 59 - shield with energy
|
||||
dta d"Super Mag " ; 60
|
||||
dta d"Auto Defense " ; 61 - with shield and energy
|
||||
dta d"Fuel Tank " ; 62
|
||||
dta d"Nuclear Winter " ; 63
|
||||
DefensiveEnergy = * - 48
|
||||
.by 00 ; White Flag
|
||||
.by 00 ; Heat Guidance
|
||||
.by 00 ; Bal Guidance
|
||||
.by 00 ; Horz Guidance
|
||||
.by 00 ; Vert Guidance
|
||||
.by 00 ; Lazy Boy
|
||||
.by 00 ; Parachute
|
||||
.by 99 ; Strong Parachute
|
||||
.by 99 ; Mag Deflector
|
||||
.by 00 ; Shield
|
||||
.by 99 ; Force Shield
|
||||
.by 99 ; Heavy Shield
|
||||
.by 00 ; Super Mag
|
||||
.by 99 ; Auto Defense
|
||||
.by 00 ; Fuel Tank
|
||||
.by 00 ; Nuclear Winter
|
||||
weaponsOfDeath
|
||||
dta 0,1,2,3,7,8,9,15,16,17,18,19,20,21,22,23,24,25,26,27
|
||||
dta 1,2,3,7,17,18,19,20,21,22,23,24,25,26,27
|
||||
weaponsOfDeathEnd
|
||||
joyToKeyTable
|
||||
; .by 00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, 13, 14, 15
|
||||
.by $ff,$ff,$ff,$ff,$ff,$ff,$ff,$07,$ff,$ff,$ff,$06,$ff,$0f,$0e,$ff
|
||||
@@ -989,7 +919,10 @@ scrcodes
|
||||
dta d"qrstuvwx"
|
||||
dta d"yz123456"
|
||||
dta d"7890." ; "-"
|
||||
dliColors
|
||||
:10 .by $02,$00
|
||||
;-----------------------------------
|
||||
gameOverSpritesTop
|
||||
; end of the Gover sprites by number of players
|
||||
; 1 2 3 4 5 6
|
||||
.by 130,130,136,142,148,154
|
||||
|
||||
.endif
|
||||
|
||||
+118
-44
@@ -59,50 +59,124 @@ price______________44 = 0
|
||||
price______________45 = 0
|
||||
price______________46 = 0
|
||||
price______________47 = 0
|
||||
price_Heat_Guidance__ = $ffff ;_48_($30)
|
||||
price_Bal_Guidance___ = $ffff ;_49
|
||||
price_Horz_Guidance__ = $ffff ;_50
|
||||
price_Vert_Guidance__ = $ffff ;_51
|
||||
price_Lazy_Boy_______ = $ffff ;_52
|
||||
price_Parachute______ = 1100 ;_53
|
||||
price_Battery________ = $ffff ;_54
|
||||
price_Mag_Deflector__ = $ffff ;_55
|
||||
price_Shield_________ = $ffff ;_56
|
||||
price_Force_Shield___ = $ffff ;_57
|
||||
price_Heavy_Shield___ = $ffff ;_58
|
||||
price_Super_Mag______ = $ffff ;_59
|
||||
price_Auto_Defense___ = $ffff ;_60
|
||||
price_Fuel_Tank______ = $ffff ;_61
|
||||
price_Contact_Trigger = $ffff ;_62
|
||||
price______________63 = $ffff
|
||||
price_White_Flag_____ = $0 ;_48_($30)
|
||||
price_Battery________ = 300 ;_49
|
||||
price_Bal_Guidance___ = $ffff ;_50
|
||||
price_Horz_Guidance__ = $ffff ;_51
|
||||
price_Vert_Guidance__ = $ffff ;_52
|
||||
price_Lazy_Boy_______ = $ffff ;_53
|
||||
price_Parachute______ = 234 ;_54
|
||||
price_StrongParachute = 1000 ;_55
|
||||
price_Mag_Deflector__ = 245 ;_56
|
||||
price_Shield_________ = 112 ;_57
|
||||
price_Force_Shield___ = 268 ;_58
|
||||
price_Heavy_Shield___ = 375 ;_59
|
||||
price_Super_Mag______ = $ffff ;_60
|
||||
price_Auto_Defense___ = 512 ;_61
|
||||
price_Fuel_Tank______ = $ffff ;_62
|
||||
price_Nuclear_Winter_ = 1000 ;_63
|
||||
;Weapon indexes (numbers)
|
||||
ind_Baby_Missile___ = 0
|
||||
ind_Missile________ = 1
|
||||
ind_Baby_Nuke______ = 2
|
||||
ind_Nuke___________ = 3
|
||||
ind_LeapFrog_______ = 4
|
||||
ind_Funky_Bomb_____ = 5
|
||||
ind_MIRV___________ = 6
|
||||
ind_Death_s_Head___ = 7
|
||||
ind_Napalm_________ = 8
|
||||
ind_Hot_Napalm_____ = 9
|
||||
ind_Tracer_________ = 10
|
||||
ind_Smoke_Tracer___ = 11
|
||||
ind_Baby_Roller____ = 12
|
||||
ind_Roller_________ = 13
|
||||
ind_Heavy_Roller___ = 14
|
||||
ind_Riot_Charge____ = 15
|
||||
ind_Riot_Blast_____ = 16
|
||||
ind_Riot_Bomb______ = 17
|
||||
ind_Heavy_Riot_Bomb = 18
|
||||
ind_Baby_Digger____ = 19
|
||||
ind_Digger_________ = 20
|
||||
ind_Heavy_Digger___ = 21
|
||||
ind_Baby_Sandhog___ = 22
|
||||
ind_Sandhog________ = 23
|
||||
ind_Heavy_Sandhog__ = 24
|
||||
ind_Dirt_Clod______ = 25
|
||||
ind_Dirt_Ball______ = 26
|
||||
ind_Ton_of_Dirt____ = 27
|
||||
ind_Liquid_Dirt____ = 28
|
||||
ind_Dirt_Charge____ = 29
|
||||
ind_Earth_Disrupter = 30
|
||||
ind_Plasma_Blast___ = 31
|
||||
ind_Laser__________ = 32
|
||||
ind______________33 = 0
|
||||
ind______________34 = 0
|
||||
ind______________35 = 0
|
||||
ind______________36 = 0
|
||||
ind______________37 = 0
|
||||
ind______________38 = 0
|
||||
ind______________39 = 0
|
||||
ind______________40 = 0
|
||||
ind______________41 = 0
|
||||
ind______________42 = 0
|
||||
ind______________43 = 0
|
||||
ind______________44 = 0
|
||||
ind______________45 = 0
|
||||
ind______________46 = 0
|
||||
ind______________47 = 0
|
||||
ind_White_Flag_____ = 48
|
||||
ind_Battery________ = 49
|
||||
ind_Bal_Guidance___ = 50
|
||||
ind_Horz_Guidance__ = 51
|
||||
ind_Vert_Guidance__ = 52
|
||||
ind_Lazy_Boy_______ = 53
|
||||
ind_Parachute______ = 54
|
||||
ind_StrongParachute = 55
|
||||
ind_Mag_Deflector__ = 56
|
||||
ind_Shield_________ = 57
|
||||
ind_Force_Shield___ = 58
|
||||
ind_Heavy_Shield___ = 59
|
||||
ind_Super_Mag______ = 60
|
||||
ind_Auto_Defense___ = 61
|
||||
ind_Fuel_Tank______ = 62
|
||||
ind_Nuclear_Winter_ = 63
|
||||
;--------------------------------
|
||||
; names of RMT instruments (sfx)
|
||||
;--------------------------------
|
||||
sfx_set_power_1 = $00
|
||||
sfx_set_power_2 = $01
|
||||
sfx_lightning = $02
|
||||
sfx_dunno = $03
|
||||
sfx_nuke = $04
|
||||
sfx_baby_missile= $05
|
||||
sfx_death_begin = $06
|
||||
sfx_plasma_1_2 = $07
|
||||
sfx_plasma_2_2 = $08
|
||||
sfx_napalm = $09
|
||||
sfx_dirt_charge = $0a
|
||||
sfx_missile_hit = $0b
|
||||
sfx_funky_hit = $0c
|
||||
sfx_shield_on = $0d
|
||||
sfx_shield_off = $0e
|
||||
sfx_parachute = $0f
|
||||
sfx_smoke_cloud = $10
|
||||
sfx_riot_blast = $11
|
||||
sfx_sandhog = $12
|
||||
sfx_dirt_chrg_s = $13
|
||||
sfx_digger = $14
|
||||
sfx_silencer = $15
|
||||
sfx_next_player = $16
|
||||
sfx_purchase = $17
|
||||
sfx_keyclick = $18
|
||||
sfx_shoot = $19
|
||||
sfx_seppuku = $1a
|
||||
sfx_liquid_dirt = $1b
|
||||
sfx_set_power_1 = $00 ;A
|
||||
sfx_set_power_2 = $01 ;b
|
||||
sfx_lightning = $02 ;c
|
||||
sfx_dunno = $03 ;d
|
||||
sfx_nuke = $04 ;e
|
||||
sfx_baby_missile= $05 ;f
|
||||
sfx_death_begin = $06 ;g
|
||||
sfx_plasma_1_2 = $07 ;h
|
||||
sfx_plasma_2_2 = $08 ;i
|
||||
sfx_napalm = $09 ;j
|
||||
sfx_dirt_charge = $0a ;k
|
||||
sfx_missile_hit = $0b ;l
|
||||
sfx_funky_hit = $0c ;m
|
||||
sfx_shield_on = $0d ;n
|
||||
sfx_shield_off = $0e ;o
|
||||
sfx_parachute = $0f ;p
|
||||
sfx_smoke_cloud = $10 ;q
|
||||
sfx_riot_blast = $11 ;r
|
||||
sfx_sandhog = $12 ;s
|
||||
sfx_dirt_chrg_s = $13 ;t
|
||||
sfx_digger = $14 ;u
|
||||
sfx_silencer = $15 ;v
|
||||
sfx_next_player = $16 ;w
|
||||
sfx_purchase = $17 ;x
|
||||
sfx_keyclick = $18 ;y
|
||||
sfx_shoot = $19 ;z
|
||||
sfx_seppuku = $1a ;1
|
||||
sfx_liquid_dirt = $1b ;2
|
||||
sfx_battery = $1c ;3
|
||||
sfx_white_flag = $1d ;4
|
||||
;--------------------------------
|
||||
; RMT songs (lines)
|
||||
;--------------------------------
|
||||
song_silencio = $00
|
||||
song_end_round = $02
|
||||
song_ingame = $06
|
||||
song_game_over = $0b
|
||||
|
||||
Executable → Regular
+18
-10
@@ -40,8 +40,8 @@ NameDL
|
||||
.byte $42
|
||||
.word NameScreen
|
||||
.byte $30
|
||||
.byte $02,$30,$2
|
||||
.byte $10,2,2,2,$30,2,2
|
||||
.byte $02,$30+$80,$02
|
||||
.byte $10,$02,$02,$02,$30,$02,$02
|
||||
.byte $41
|
||||
.word NameDL
|
||||
; -------------------------------------------------
|
||||
@@ -104,7 +104,7 @@ OptionsScreen
|
||||
OptionsHere
|
||||
; 0123456789012345678901234567890123456789
|
||||
dta d"Players : 2 3 4 5 6 "
|
||||
dta d"Cash : none 2K 5K 8K 10K "
|
||||
dta d"Cash : none 2K 8K 12K 20K "
|
||||
dta d"Gravity : 0.2G 0.5G 1G 2G 4G "
|
||||
dta d"Wind : 1B 3B 5B 7B 9B "
|
||||
dta d"Rounds : 10 20 30 40 50 "
|
||||
@@ -136,13 +136,15 @@ WeaponsDescription
|
||||
dta d" - Defensive/Offensive weapon "
|
||||
dta d" "
|
||||
dta d"Space"*
|
||||
dta d" - Purchase "
|
||||
dta d" - "
|
||||
purchaseActivate
|
||||
dta d"Purchase "
|
||||
dta d"Return"*
|
||||
dta d" - Finish "
|
||||
EmptyLine
|
||||
dta d" "
|
||||
LastLine
|
||||
:40 dta $ff
|
||||
:40 dta $00
|
||||
; -------------------------------------------------
|
||||
.ALIGN $1000 ; WARNING!!!! 4KiB barrier crossing here, might need reassignment!!!
|
||||
NameScreen
|
||||
@@ -154,7 +156,7 @@ NameAdr
|
||||
dta d" "
|
||||
NamesOfLevels
|
||||
dta d" HUMAN Moron Shooter "
|
||||
dta d" Poolshark Toosser Chooser "
|
||||
dta d" Poolshark Tosser Chooser "
|
||||
dta d" Spoiler Cyborg Unknown "
|
||||
dta d" "
|
||||
dta d"Tab"*
|
||||
@@ -166,11 +168,17 @@ NamesOfLevels
|
||||
textbuffer
|
||||
; 0123456789012345678901234567890123456789
|
||||
dta d"Player: "
|
||||
dta d"Energy: 99 Angle: <99> Force: 9999 "
|
||||
dta d" Round: 99 Wind: <99> "
|
||||
dta d"Energy: Angle: Force: "
|
||||
dta d"Round: Wind: "
|
||||
textbuffer2
|
||||
dta d"Player: ******** Cash: 99990 "
|
||||
dta d"Player: Cash: 0 " ; ZERO TO MAKE YOU RICHER ON THE SCREEN
|
||||
dta d"----------------------------------------"
|
||||
|
||||
;---------------------------------------------------
|
||||
activateText
|
||||
dta d"Activate"
|
||||
activateTextEnd
|
||||
purchaseText
|
||||
dta d"Purchase"
|
||||
purchaseTextEnd
|
||||
|
||||
.endif
|
||||
|
||||
Executable → Regular
+413
-275
File diff suppressed because it is too large
Load Diff
@@ -147,6 +147,7 @@ NMIST = $D40F ; rejestr statusu przerwa� NMI
|
||||
;-------------------------------------
|
||||
;additional system variables
|
||||
;-------------------------------------
|
||||
ATRACT = $004D
|
||||
COLPM0S = $02C0 ;- - shadow register COLPM0
|
||||
COLPM1S = $02C1 ;- - shadow register COLPM1
|
||||
COLPM2S = $02C2 ;- - shadow register COLPM2
|
||||
|
||||
@@ -76,6 +76,9 @@
|
||||
.MACRO WAIT
|
||||
; WAIT
|
||||
; waits one frame (1/50 s(PAL) or 1/60s(NTSC))
|
||||
lda CONSOL
|
||||
cmp #6 ; START KEY
|
||||
beq ?nowait
|
||||
LDA VCOUNT
|
||||
ldy vcount
|
||||
?WA cpy VCOUNT
|
||||
@@ -83,6 +86,7 @@
|
||||
?wframe
|
||||
cmp vcount
|
||||
bne ?wframe
|
||||
?nowait
|
||||
.ENDM
|
||||
;-------------------------------------
|
||||
.macro negw
|
||||
|
||||
+396
-265
File diff suppressed because it is too large
Load Diff
BIN
Binary file not shown.
Executable → Regular
+594
-294
File diff suppressed because it is too large
Load Diff
Executable → Regular
+82
-69
@@ -8,31 +8,33 @@
|
||||
; compilation to e.g. cartridge
|
||||
; zero page variables are declared in program.s65 module
|
||||
;=====================================================
|
||||
;--------------------------------------------------
|
||||
;Variables
|
||||
;--------------
|
||||
TanksNames ; DO NOT ZERO - ticket #24
|
||||
:6 dta d" "
|
||||
;----------------------------
|
||||
;----------------------------------------------------
|
||||
;Options DO NOT ZERO - ticket #27
|
||||
OptionsTable .by 0,0,2,2,0,1,4
|
||||
OptionsTable .by 0,0,2,2,0,1,3
|
||||
RoundsInTheGame .by 10 ;how many rounds in the current game
|
||||
seppukuVal .by 75
|
||||
;--------------------------------------------------
|
||||
;----------------------------------------------------
|
||||
skilltable ; computer controlled players' skills (1-8), 0 - human (no cleaning, ticket #30)
|
||||
.DS [MaxPlayers]
|
||||
;-----------------------------------
|
||||
;----------------------------------------------------
|
||||
noMusic .by 0 ; 0 - play music, $ff - do not play music
|
||||
noSfx .by 0 ; 0 - play SFX, $ff - do not play SFX
|
||||
; 4x4 text buffer
|
||||
ResultLineBuffer
|
||||
dta d" "
|
||||
.byte $ff
|
||||
dta d" ", $ff
|
||||
LineHeader1
|
||||
dta d"# ROUND: "
|
||||
RoundNrDisplay
|
||||
dta d" #"
|
||||
.byte $ff
|
||||
dta d" #", $ff
|
||||
|
||||
;=====================================================
|
||||
variablesStart ; zeroing starts here
|
||||
;=====================================================
|
||||
isInventory .ds 1 ; 0 - purchase, $ff - inventory
|
||||
;--------------
|
||||
drawFunction .ds 1 ; 0 - plot, %10000000 - LineLength (N), %01000000 - DrawCheck (V)
|
||||
;--------------
|
||||
sfx_effect .ds 1
|
||||
;--------------
|
||||
@@ -43,31 +45,33 @@ flyDelay .ds 1
|
||||
;--------------
|
||||
NumberOfPlayers .DS 1 ;current number of players (counted from 1)
|
||||
TankSequence .DS [MaxPlayers] ;sequence of shooting during the Round
|
||||
GameIsOver .DS 1 ; 1 - it was the last round in the game
|
||||
;-----------------------------------
|
||||
GameIsOver .DS 1 ; 1 means it was the last round in the game
|
||||
;----------------------------------------------------
|
||||
moneyH ;we place zero at the end of prices and money
|
||||
;and have range from 0 to 99990 (not too much)
|
||||
;money players have (maybe one more byte is needed?)
|
||||
.DS [MaxPlayers]
|
||||
moneyL
|
||||
moneyL
|
||||
.DS [MaxPlayers]
|
||||
;-----------------------------------
|
||||
;----------------------------------------------------
|
||||
gainH ;how much money player gets after the round
|
||||
;it is gathered during the round basing on energy
|
||||
;opponents loose after player's shoots
|
||||
.DS [MaxPlayers]
|
||||
gainL
|
||||
.DS [MaxPlayers]
|
||||
;-----------------------------------
|
||||
;----------------------------------------------------
|
||||
looseH ;how much player looses after the round
|
||||
;calculated from REAL energy loss
|
||||
;(not only to zero energy)
|
||||
.DS [MaxPlayers]
|
||||
looseL
|
||||
.DS [MaxPlayers]
|
||||
;-----------------------------------
|
||||
;----------------------------------------------------
|
||||
Energy
|
||||
.DS [MaxPlayers]
|
||||
ShieldEnergy
|
||||
.DS [MaxPlayers]
|
||||
EnergyDecrease .DS 1
|
||||
eXistenZ
|
||||
.DS [MaxPlayers]
|
||||
@@ -78,66 +82,67 @@ ResultsTable ;the results in the gameeeeee
|
||||
.DS [MaxPlayers]
|
||||
TempResults
|
||||
.DS [MaxPlayers]
|
||||
CurrentResult
|
||||
.DS 1
|
||||
;-----------------------------------
|
||||
EnergyTableL ;shooting Force of the tank during the round
|
||||
;----------------------------------------------------
|
||||
ForceTableL ;shooting Force of the tank during the round
|
||||
.DS [MaxPlayers]
|
||||
EnergyTableH
|
||||
ForceTableH
|
||||
.DS [MaxPlayers] ;maxplayers=6
|
||||
MaxEnergyTableL ;Energy of the tank during the round
|
||||
MaxForceTableL ;Energy of the tank during the round
|
||||
;(limes superior force of the Shoot)
|
||||
.DS [MaxPlayers] ;1000 is the default
|
||||
MaxEnergyTableH
|
||||
MaxForceTableH
|
||||
.DS [MaxPlayers]
|
||||
;-----------------------------------
|
||||
;----------------------------------------------------
|
||||
|
||||
AngleTable ;Angle of the barrel of each tank during the round
|
||||
.DS [MaxPlayers]
|
||||
NewAngle .DS 1
|
||||
;-----------------------------------
|
||||
;----------------------------------------------------
|
||||
|
||||
ActiveWeapon ;number of the selected weapon
|
||||
.DS [MaxPlayers]
|
||||
ActiveDefenceWeapon ;number of the activated defence weapon - 0
|
||||
.DS [MaxPlayers]
|
||||
WeaponDepleted .DS 1 ; if 0 deactivate the weapon and switch to Baby Missile
|
||||
;-----------------------------------
|
||||
;----------------------------------------------------
|
||||
|
||||
;format of the 3-byte static point number used in the game
|
||||
; 20203.5 => 128 : <20203 : >20203
|
||||
;-----------------------------------
|
||||
;----------------------------------------------------
|
||||
|
||||
L1 .DS 1 ; variable used in multiplications (by 10:)
|
||||
gravity .DS 1 ;only the decimal part (1/10 = 25)
|
||||
;-----------------------------------
|
||||
;----------------------------------------------------
|
||||
|
||||
Wind .ds 2 ;walue displayed on the screen
|
||||
;multiplied by 16 (decimal part only)
|
||||
;-----------------------------------
|
||||
Wind .ds 4 ;format: 0000.hhll
|
||||
;walue displayed on the screen is
|
||||
;decimal portion divided by 16 (>>4)
|
||||
;----------------------------------------------------
|
||||
MaxWind .ds 1 ;
|
||||
WindOrientation .DS 1 ;(0-right,1-left)
|
||||
;-----------------------------------
|
||||
;----------------------------------------------------
|
||||
Counter .DS 1 ;temporary Counter for outside loops
|
||||
HitFlag .DS 1 ;1 when missile hit anything
|
||||
;-----------------------------------
|
||||
HitFlag .DS 1 ;$ff when missile hit ground, $00 when no hit, $01-$06 tank index+1 when hit tank
|
||||
;----------------------------------------------------
|
||||
xtankstableL ;X positions of tanks (lower left point)
|
||||
.DS [MaxPlayers]
|
||||
xtankstableH
|
||||
.DS [MaxPlayers]
|
||||
ytankstable ;Y positions of tanks (lower left point)
|
||||
.DS [MaxPlayers]
|
||||
LowResDistances ; coarse stank positions divided by 4 (to be in just one byte)
|
||||
LowResDistances ; coarse tank positions divided by 4 (to be in just one byte)
|
||||
.DS [MaxPlayers]
|
||||
;-----------------------------------
|
||||
;----------------------------------------------------
|
||||
Erase .DS 1 ; if 1 only mask of the character is printed
|
||||
; on the graphics screen. if 0 character is printed normally
|
||||
; on the graphics screen. if 0 character is printed normally
|
||||
|
||||
;-----------------------------------
|
||||
;----------------------------------------------------
|
||||
RangeLeft .DS 2 ;range of the soil to be fallen down
|
||||
RangeRight .DS 2 ;it is being set by all Explosions
|
||||
;-----------------------------------
|
||||
;----------------------------------------------------
|
||||
WeaponRangeLeft .DS 2 ;Range of the Explosion of the given weapon
|
||||
WeaponRangeRight .DS 2
|
||||
;--------------------------------------------------
|
||||
;----------------------------------------------------
|
||||
;xroller
|
||||
HowMuchToFall .ds 1
|
||||
HeightRol .DS 1
|
||||
@@ -152,13 +157,12 @@ digtabyL .DS [8]
|
||||
digtabyH .DS [8]
|
||||
; liquiddirt
|
||||
TempXfill .ds 2
|
||||
FillCounter .ds 1
|
||||
FillCounter .ds 2
|
||||
;sandhog
|
||||
sandhogflag .DS 1 ; (0 digger, 8 sandhog)
|
||||
;ofdirt
|
||||
magic .DS 2 ; was tempor2, but it was not compiling!!! (bug in OMC65)
|
||||
;draw
|
||||
DrawJumpAddr .DS 2
|
||||
HowToDraw .DS 1
|
||||
; bits here mean
|
||||
; 0 - negative X (go up)
|
||||
@@ -171,14 +175,14 @@ LineLength .DS 2
|
||||
;circle
|
||||
radius .DS 1
|
||||
xcircle .DS 2
|
||||
ycircle .DS 1
|
||||
ycircle .DS 2
|
||||
tempcir .DS 2
|
||||
;TankFalls
|
||||
IfFallDown .DS 1
|
||||
PreviousFall .DS 1
|
||||
EndOfTheFallFlag .DS 1 ; in case of the infinite fall
|
||||
Parachute .DS 1 ; are you insured with parachute?
|
||||
; -------------------------------------------------
|
||||
;----------------------------------------------------
|
||||
;Flight
|
||||
;variables for 5 missiles (used for mirv)
|
||||
xtraj00 .DS [5] ; 3 bytes of xtraj times 5. Lowest byte
|
||||
@@ -191,7 +195,9 @@ vx03 .DS [5]
|
||||
MirvDown .DS [5] ; is given missile down?
|
||||
MirvMissileCounter .DS 1 ; missile Counter (mainly for X)
|
||||
SmokeTracerFlag .DS 1 ; if Smoketracer
|
||||
; -------------------------------------------------
|
||||
XposFlag .DS 1 ; bullet positon X (0 - on screen , %1000000 - off-screen)
|
||||
YposFlag .DS 1 ; bullet positon Y (0 - on screen , %1000000 - over the screen , %0100000 - under the screen)
|
||||
;----------------------------------------------------
|
||||
;CheckCollisionWithTank
|
||||
vx .ds 4 ; 0,0,0,0 ;two decimal bytes, two whole bytes (DC.BA)
|
||||
vy .ds 4 ;0,0,0,0
|
||||
@@ -203,12 +209,11 @@ Angle .DS 1
|
||||
Force .ds 3 ; 0,0,0
|
||||
Multiplier .ds 3 ; 0,0,0
|
||||
Multiplee .ds 2 ; 0,0
|
||||
Result .ds 3 ; 0,0,0
|
||||
goleft .DS 1 ;if 1 then flights left
|
||||
;--------------------------------------------------
|
||||
;----------------------------------------------------
|
||||
;SoilDown2
|
||||
IsEndOfTheFallFlag .DS 1
|
||||
; -------------------------------------------------
|
||||
;----------------------------------------------------
|
||||
;unPlot
|
||||
WhichUnPlot .DS 1
|
||||
; max 5 concurrent unPlots
|
||||
@@ -222,7 +227,7 @@ xtrajfb .DS 2
|
||||
ytrajfb .DS 2
|
||||
;
|
||||
tracerflag .DS 1
|
||||
; -------------------------------------------------
|
||||
;----------------------------------------------------
|
||||
;TypeChar
|
||||
mask1 .DS [8]
|
||||
mask2 .DS [8]
|
||||
@@ -240,24 +245,22 @@ UpNdown .DS 1
|
||||
temptankX .DS 2
|
||||
temptankNr .DS 1
|
||||
|
||||
; -------------------------------------------------
|
||||
;----------------------------------------------------
|
||||
;Variables from textproc.s65
|
||||
; tables with numbers of weapons on the right lists
|
||||
; to be honest - I do not know at the moment what the above
|
||||
; comment was supposed to mean...
|
||||
; tables with indexes of weapons on the right lists
|
||||
; OK (2022) so, L1 is list of offensive weapons, L2 - defensive
|
||||
NubersOfWeaponsL1
|
||||
.ds 8*5 ; :(8*5) .by $ff
|
||||
NubersOfWeaponsL2
|
||||
.ds 8*2 ; :(8*2) .by $ff
|
||||
; -------------------------------------------------
|
||||
IndexesOfWeaponsL1
|
||||
.ds 8*5 ; max 40 offensive weapons. this is wrong, should be 48, still only 32 defined.
|
||||
IndexesOfWeaponsL2
|
||||
.ds 8*2 ; max 16 defensive weapons.
|
||||
;----------------------------------------------------
|
||||
|
||||
; variables storing amount of weapons on the first and second
|
||||
; list and pointer position
|
||||
|
||||
HowManyOnTheList1
|
||||
HowManyOnTheListOff
|
||||
.DS 1
|
||||
HowManyOnTheList2
|
||||
HowManyOnTheListDef
|
||||
.DS 1
|
||||
PositionOnTheList ; pointer position on the list being displayed
|
||||
.DS 1
|
||||
@@ -273,14 +276,14 @@ WhichList ; list currently on the screen
|
||||
OffsetDL1 ; offset of the list screen (how many lines)....
|
||||
.DS 1
|
||||
|
||||
; -------------------------------------------------
|
||||
;----------------------------------------------------
|
||||
|
||||
;mark the level
|
||||
PositionInName ; cursor position in name of the player when name input
|
||||
.DS 1
|
||||
DifficultyLevel ; Difficulty Level (human/cpu)
|
||||
.DS 1
|
||||
;-------------------------------------------------
|
||||
;----------------------------------------------------
|
||||
;displaydecimal
|
||||
decimal .DS 2
|
||||
decimalresult .DS 4
|
||||
@@ -295,7 +298,7 @@ FallDown2 .DS 1
|
||||
LeapFrogAngle .DS 1
|
||||
;laser
|
||||
LaserCoordinate .DS 8 ; 2,2,2,2
|
||||
; -------------------------------------------------
|
||||
;----------------------------------------------------
|
||||
; Here go tables with weapons possesed by a given tank
|
||||
; Index in the table means weapon type
|
||||
; number entered means ammo for given weapon possessed (max 99)
|
||||
@@ -322,7 +325,7 @@ mountaintable2 ;table of mountains (size=screenwidth)
|
||||
.DS [screenwidth]
|
||||
.DS 1 ; additional byte for fallout (sometimes 1 pixel)
|
||||
MountaintableEnd ;good for table clearing
|
||||
;----------------------------------------------
|
||||
;----------------------------------------------------
|
||||
TextPositionX .DS 2
|
||||
TextPositionY .DS 1
|
||||
TextAddress .DS 2
|
||||
@@ -331,7 +334,16 @@ TextNumberOff .DS 1
|
||||
;--------------
|
||||
TankTempY
|
||||
.DS 1
|
||||
;----------------------------------------------------
|
||||
;-------------- single round variables --------------
|
||||
;----------------------------------------------------
|
||||
singleRoundVars
|
||||
;--------------
|
||||
escFlag .ds 1
|
||||
;--------------
|
||||
CurrentResult
|
||||
.DS 1
|
||||
;--------------
|
||||
previousAngle
|
||||
.DS [MaxPlayers]
|
||||
previousEnergyL
|
||||
@@ -349,9 +361,9 @@ RandBoundaryHigh
|
||||
AngleTablePointer
|
||||
.DS 1
|
||||
singleRoundVarsEnd
|
||||
;----------------------------------------------
|
||||
;----------------------------------------------------
|
||||
; 4x4 texts
|
||||
;----------------------------------------------
|
||||
;----------------------------------------------------
|
||||
LineAddress4x4
|
||||
.DS 2
|
||||
LineCharNr
|
||||
@@ -369,8 +381,9 @@ ResultY
|
||||
ResultOfTankNr
|
||||
.DS 1
|
||||
|
||||
;----------------------------
|
||||
;----------------------------------------------------
|
||||
;PutChar4x4
|
||||
;----------------------------------------------------
|
||||
LoopCounter4x4 .DS 1
|
||||
y4x4 .DS 1
|
||||
StoreA4x4 .DS 1
|
||||
@@ -382,6 +395,6 @@ plot4x4color .DS 1 ;1-white, 0-background
|
||||
|
||||
|
||||
variablesEnd
|
||||
;----------------------------
|
||||
;----------------------------------------------------
|
||||
|
||||
.endif
|
||||
|
||||
Executable → Regular
+666
-410
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user