mirror of
https://github.com/pkali/scorch_src.git
synced 2026-05-21 06:39:46 +02:00
Compare commits
274 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d474ba7af8 | |||
| 802b67673b | |||
| 5070b11be3 | |||
| 0d210b8d88 | |||
| 171f37c73f | |||
| cee53fd257 | |||
| 224588eaa9 | |||
| 4cd864e47e | |||
| 710570ae8a | |||
| 2820f66467 | |||
| c84aecc886 | |||
| 25ed106e02 | |||
| bc65dafdac | |||
| fd15ed9bb6 | |||
| 028c34bf31 | |||
| 3b0388fdaf | |||
| 9d14950ef9 | |||
| a205c37dc0 | |||
| 950d6922b4 | |||
| 22785ecdd5 | |||
| 268d99ffaf | |||
| bb826b680d | |||
| f45d2c8446 | |||
| 1f576a0c49 | |||
| 054c5df5d7 | |||
| 1b4a73c362 | |||
| f807fe8876 | |||
| f14b64a7f6 | |||
| e45cc3e609 | |||
| 192b1b01dc | |||
| 664dc1568d | |||
| 234fbc5a4a | |||
| 2f57c1f774 | |||
| 2d274b05d0 | |||
| 5b90bc571e | |||
| c1b16cd1d1 | |||
| cf08093cee | |||
| e6d37e8410 | |||
| 56ed83fbac | |||
| 2cda0bfb12 | |||
| e5ce864254 | |||
| 312bca4866 | |||
| 2bec64c38e | |||
| d448eb2e1e | |||
| 05409fa301 | |||
| e60776fd57 | |||
| eed446545e | |||
| 54cc76464e | |||
| 3ac678e68b | |||
| 823be97490 | |||
| 8775e0b42e | |||
| cd41f59175 | |||
| 91d5172fe2 | |||
| 3a836fa072 | |||
| 84da6fb7a0 | |||
| 9eb0f8adff | |||
| 2f1f016ce0 | |||
| 8e0aa974e7 | |||
| 6a0c3a91e9 | |||
| 025afbce91 | |||
| edbfddf090 | |||
| d7501b5c7c | |||
| 1945dd5e88 | |||
| c725fd3827 | |||
| c8ffba4603 | |||
| 16f24793f6 | |||
| f9fc25ec0f | |||
| 4d090f1766 | |||
| 9df4a49abe | |||
| 0a68184f7c | |||
| 807da90fda | |||
| 3855b0e2cf | |||
| a01af2a608 | |||
| 47dcfa1af4 | |||
| 02ff63d524 | |||
| 9b42e79b61 | |||
| 2c3b4d148e | |||
| 513f13c5fc | |||
| 27bc443581 | |||
| 992130f267 | |||
| 1de19dfd26 | |||
| 960675d4ac | |||
| dc9e2de8df | |||
| a7e1bd519e | |||
| 616452a01e | |||
| f20ce14dc3 | |||
| d9012f4485 | |||
| 5c38b7b12a | |||
| 6cb817d463 | |||
| 19200be905 | |||
| 34f0bb9d49 | |||
| f05af218f4 | |||
| 00b9575bcb | |||
| 738faec7e2 | |||
| 6b0d8aa287 | |||
| bc0148eb0f | |||
| 25dfe09a9d | |||
| 9e695f8fcd | |||
| 12150a47c1 | |||
| b12ad5efed | |||
| 1b2988069f | |||
| 99d08367c4 | |||
| 9acada4e9f | |||
| 85fac6e6cf | |||
| 9806613f2f | |||
| af797029f9 | |||
| 9ece051472 | |||
| 6868eb8626 | |||
| e94a356e6d | |||
| 93b16bd55a | |||
| 752b84ae2e | |||
| d751379361 | |||
| 01d941b013 | |||
| b63b7a3fb1 | |||
| c28d243719 | |||
| 51975ccfbf | |||
| 541a7566cb | |||
| 48bfd3824d | |||
| e307f1a14a | |||
| 2fecc8d630 | |||
| 1998c98784 | |||
| 4dc9b4ebb0 | |||
| 8e60cfa723 | |||
| 9ee021b1f5 | |||
| d738e6a6e8 | |||
| d0838fa163 | |||
| a353e3bdb9 | |||
| 5933b00153 | |||
| a5add9d9c4 | |||
| f2c7b9c5a5 | |||
| e87d875467 | |||
| 876ea45eaf | |||
| b164a79fd4 | |||
| 0984aee64f | |||
| 51c257c8e8 | |||
| af4eb201b2 | |||
| 85d0fb4778 | |||
| 0a7c76f74a | |||
| 6d5f83195f | |||
| acd3a6abe6 | |||
| bb70b2495a | |||
| 39433a8cf4 | |||
| 1765489474 | |||
| 97c01d2c61 | |||
| 3fb83583c3 | |||
| 2a5595f3c9 | |||
| a860c4dfa1 | |||
| 7bd7105374 | |||
| 00099f4c27 | |||
| 4caed19cd1 | |||
| e9a59b1475 | |||
| 011364cbeb | |||
| 279a47b29f | |||
| 6ece26237c | |||
| 3d159f8439 | |||
| 6ac4bbe0cd | |||
| 4583641207 | |||
| 4a32abdc83 | |||
| d5c1e1e397 | |||
| 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 |
@@ -0,0 +1,4 @@
|
|||||||
|
|
||||||
|
*.bak
|
||||||
|
scorch.lab
|
||||||
|
scorch.lst
|
||||||
@@ -13,10 +13,11 @@ Contributors:
|
|||||||
- Adam (@6502adam) - font, ideas, QA
|
- Adam (@6502adam) - font, ideas, QA
|
||||||
- Bocianu (@bocianu) - important ideas, FujiNet implementation, QA
|
- Bocianu (@bocianu) - important ideas, FujiNet implementation, QA
|
||||||
- Emkay - splash screen music
|
- Emkay - splash screen music
|
||||||
|
- Fox (@pfusik) - plot and point optimization
|
||||||
|
|
||||||
QA: Probabilitydragon, KrzysRog, Beeblebrox, EnderDude, lopezpb, Dracon, brad-colbert
|
QA: Probabilitydragon, KrzysRog, Beeblebrox, EnderDude, lopezpb, Dracon, brad-colbert, archon800, Shaggy the Atarian
|
||||||
|
|
||||||
You can contact us at pecus@poczta.fm or pirx@5oft.pl
|
You can contact us via [AtariAge](https://atariage.com) or [AtariOnLine](https://atarionline.pl) forums.
|
||||||
|
|
||||||
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).
|
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).
|
||||||
|
|
||||||
@@ -47,19 +48,142 @@ With the advent of fujinet (https://fujinet.online/) we are thinking about makin
|
|||||||
|
|
||||||
## Changes:
|
## Changes:
|
||||||
|
|
||||||
|
###### Version 1.00
|
||||||
|
2022-08-13
|
||||||
|
|
||||||
|
Silly Version 1.00
|
||||||
|
This is an official Silly Venture Summer Edition Atari 50 release. The game reached version 1.00.
|
||||||
|
|
||||||
|
The game manual is available at https://github.com/pkali/scorch_src/wiki
|
||||||
|
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.
|
||||||
|
|
||||||
|
And now the new adventure begins!
|
||||||
|
|
||||||
|
|
||||||
|
###### Build 148
|
||||||
|
2022-07-17
|
||||||
|
WHAT DOES THE FOX SAY?
|
||||||
|
|
||||||
|
Fox (x0f, @pfusik) says plots and points can be optimized by 18 clock cycles each and thanks to his 6502 wizardry the game is noticeably nicer. Thank you!
|
||||||
|
Other changes:
|
||||||
|
- https://github.com/pkali/scorch_src/issues/99, https://github.com/pkali/scorch_src/issues/98 - tank number 6 has got a color now! No one is monochrome now!
|
||||||
|
- https://github.com/pkali/scorch_src/issues/110 much improved laser - previously it was almost useless, now it looks and works much better
|
||||||
|
- fixed an interesting roller bug
|
||||||
|
- Auto Defense angle fix
|
||||||
|
- multiple improvements in AI routines, preparation for the final opponents.
|
||||||
|
|
||||||
|
###### Build 147
|
||||||
|
2022-07-10
|
||||||
|
LOST build. We were watching [LOST party](https://www.lostparty.pl/2022/) streams so maybe a little less done, but still some nice improvements.
|
||||||
|
- new weapons by @Pecusx - Napalm and Hot Napalm. Fire penetrates all shields, so beware!
|
||||||
|
- status bar showing outdated info on the beginning of the round fix
|
||||||
|
- various small optimizations incl. memory usage, soildown, weapon ranges
|
||||||
|
- improved shapes of Heavy and Force Shields
|
||||||
|
|
||||||
|
Issues closed:
|
||||||
|
- revert to the old but slightly improved version of showing angles (#105)
|
||||||
|
- zero page loading eliminated (#106)
|
||||||
|
- active player name appear over his tank when aiming (#107)
|
||||||
|
- configurable mountain heights (The Netherlands, Belgium, Czechia, Switzerland, Nepal) (#86)
|
||||||
|
- angle speeds up when joystick / keyboard are pressed (#75)
|
||||||
|
|
||||||
|
###### Build 146
|
||||||
|
2022-07-03
|
||||||
|
Super heavy rewrite build.
|
||||||
|
Not much changed visually since the last build, but really large parts of the code were rewritten, optimized and improved. A fresh swath of buggies certainly introduced, too.
|
||||||
|
- completely new tank falling routine by @Pecusx - over 300 bytes saved, complexity reduced, more just energy deduction when falling.
|
||||||
|
- silly angle system rewritten to a proper, primary school angling. BTW - I had to dig into 8th grade trig to make it work. About 200 bytes saved, complexity reduced. Next build will have improved angle speed UI. I will also allow for an easier improvement of tank visuals.
|
||||||
|
- Weapon price and quantity balance - this is our honest attempt to make game more fun. We'll accept any critique and improvement proposals.
|
||||||
|
- New AI opponent - Tosser! Not much better than Poolshark, but still beats sharks most of the time.
|
||||||
|
- AI opponents can purchase defensive weapons which make playing against AI somewhat more challenging.
|
||||||
|
- Improved Laser. It is still not ideal, but better. Still hard to aim :]
|
||||||
|
- Few small parachute-related bugs fixed
|
||||||
|
- Death's Head bug fix
|
||||||
|
|
||||||
|
Issues closed:
|
||||||
|
- https://github.com/pkali/scorch_src/issues/87 Angles are reasonable now. PROFIT!!!
|
||||||
|
|
||||||
|
|
||||||
|
###### 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 a joystick up or down speeds up force change. It makes playing with a joystick much nicer.
|
||||||
|
- https://github.com/pkali/scorch_src/issues/76 - a beginning of visual tweaks by @6502adam
|
||||||
|
- infinite defensive weapons purchase bug fixed, to the 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
|
###### Build 141
|
||||||
2022-05-22
|
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.
|
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.
|
||||||
- #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/73 Fast forward. Press [START] to speed up the game where it can be sped up. Not in many places, mind you.
|
||||||
- #72 Screen glitches improved
|
- https://github.com/pkali/scorch_src/issues/72 Screen glitches improved
|
||||||
- #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/70 AI shoot with more force than their energy allows. We might still have to revise this one
|
||||||
- #69 Explosions wrapping around the screen
|
- https://github.com/pkali/scorch_src/issues/69 Explosions wrapping around the screen
|
||||||
- #67 Screen glitches after intro
|
- https://github.com/pkali/scorch_src/issues/67 Screen glitches after intro
|
||||||
- #65 Saved ~90 bytes by removing cosinus table
|
- https://github.com/pkali/scorch_src/issues/65 Saved ~90 bytes by removing cosinus table
|
||||||
- #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/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)
|
||||||
- #61 [SHIFT] was repeating the last key
|
- https://github.com/pkali/scorch_src/issues/61 [SHIFT] was repeating the last key
|
||||||
- #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/57 Fire too sensitive on a real machine. Switched to shadow registers. First recorded use of Atari OS :O
|
||||||
- #55 Glitches in the status bar. This one was surprisingly tough.
|
- https://github.com/pkali/scorch_src/issues/55 Glitches in the status bar. This one was surprisingly tough.
|
||||||
|
|
||||||
###### Build 140
|
###### Build 140
|
||||||
2022-05-15
|
2022-05-15
|
||||||
|
|||||||
@@ -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)
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,498 +0,0 @@
|
|||||||
; @com.wudsn.ide.asm.mainsourcefile=../scorch.asm
|
|
||||||
/***************************************/
|
|
||||||
/* Use MADS http://mads.atari8.info/ */
|
|
||||||
/* Mode: DLI (char mode) */
|
|
||||||
/***************************************/
|
|
||||||
|
|
||||||
;icl "HIMARS14.h"
|
|
||||||
;ICL '../lib/atari.hea'
|
|
||||||
|
|
||||||
|
|
||||||
WIDTH = 40
|
|
||||||
HEIGHT = 30
|
|
||||||
|
|
||||||
; --- BASIC switch OFF
|
|
||||||
org $2000\ mva #$ff portb\ rts\ ini $2000
|
|
||||||
|
|
||||||
; --- dmsc LZSS player routine on zero page
|
|
||||||
org $80
|
|
||||||
|
|
||||||
chn_copy .ds 9
|
|
||||||
chn_pos .ds 9
|
|
||||||
bptr .ds 2
|
|
||||||
cur_pos .ds 1
|
|
||||||
chn_bits .ds 1
|
|
||||||
|
|
||||||
bit_data .byte 1
|
|
||||||
|
|
||||||
.proc get_byte
|
|
||||||
lda song_data+1
|
|
||||||
inc song_ptr
|
|
||||||
bne skip
|
|
||||||
inc song_ptr+1
|
|
||||||
skip
|
|
||||||
rts
|
|
||||||
.endp
|
|
||||||
song_ptr = get_byte + 1
|
|
||||||
|
|
||||||
|
|
||||||
fcnt .ds 2
|
|
||||||
fadr .ds 2
|
|
||||||
fhlp .ds 2
|
|
||||||
cloc .ds 1
|
|
||||||
regA .ds 1
|
|
||||||
regX .ds 1
|
|
||||||
regY .ds 1
|
|
||||||
; --- MAIN PROGRAM
|
|
||||||
org $2000
|
|
||||||
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
|
|
||||||
dta $42,a(verline)
|
|
||||||
dta $41,a(ant)
|
|
||||||
|
|
||||||
verline
|
|
||||||
:37 dta d" "
|
|
||||||
build
|
|
||||||
|
|
||||||
scr ins "HIMARS14.scr"
|
|
||||||
|
|
||||||
.ds 2*40
|
|
||||||
|
|
||||||
.ALIGN $0400
|
|
||||||
fnt ins "HIMARS14.fnt"
|
|
||||||
|
|
||||||
ift USESPRITES
|
|
||||||
.ALIGN $0800
|
|
||||||
pmg .ds $0300
|
|
||||||
ift FADECHR = 0
|
|
||||||
SPRITES
|
|
||||||
els
|
|
||||||
.ds $500
|
|
||||||
eif
|
|
||||||
eif
|
|
||||||
|
|
||||||
song_data
|
|
||||||
ins 'mmm_16.lzs'
|
|
||||||
song_end
|
|
||||||
|
|
||||||
POKEY = $D200
|
|
||||||
|
|
||||||
buffers
|
|
||||||
.ds 256 * 9
|
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
||||||
; Song Initialization - this runs in the first tick:
|
|
||||||
;
|
|
||||||
.proc init_song
|
|
||||||
|
|
||||||
; Example: here initializes song pointer:
|
|
||||||
|
|
||||||
;mwa #song_data song_ptr
|
|
||||||
|
|
||||||
; Init all channels:
|
|
||||||
ldx #8
|
|
||||||
ldy #0
|
|
||||||
clear
|
|
||||||
; Read just init value and store into buffer and POKEY
|
|
||||||
jsr get_byte
|
|
||||||
sta POKEY, x
|
|
||||||
sty chn_copy, x
|
|
||||||
cbuf
|
|
||||||
sta buffers + 255
|
|
||||||
inc cbuf + 2
|
|
||||||
dex
|
|
||||||
bpl clear
|
|
||||||
|
|
||||||
; Initialize buffer pointer:
|
|
||||||
sty bptr
|
|
||||||
sty cur_pos
|
|
||||||
rts
|
|
||||||
.endp
|
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
||||||
; Wait for next frame
|
|
||||||
;
|
|
||||||
.proc wait_frame
|
|
||||||
|
|
||||||
lda 20
|
|
||||||
delay
|
|
||||||
cmp 20
|
|
||||||
beq delay
|
|
||||||
.endp
|
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
||||||
; Play one frame of the song
|
|
||||||
;
|
|
||||||
.proc play_frame
|
|
||||||
lda #>buffers
|
|
||||||
sta bptr+1
|
|
||||||
|
|
||||||
lda song_data
|
|
||||||
sta chn_bits
|
|
||||||
ldx #8
|
|
||||||
|
|
||||||
; Loop through all "channels", one for each POKEY register
|
|
||||||
chn_loop:
|
|
||||||
lsr chn_bits
|
|
||||||
bcs skip_chn ; C=1 : skip this channel
|
|
||||||
|
|
||||||
lda chn_copy, x ; Get status of this stream
|
|
||||||
bne do_copy_byte ; If > 0 we are copying bytes
|
|
||||||
|
|
||||||
; We are decoding a new match/literal
|
|
||||||
lsr bit_data ; Get next bit
|
|
||||||
bne got_bit
|
|
||||||
jsr get_byte ; Not enough bits, refill!
|
|
||||||
ror ; Extract a new bit and add a 1 at the high bit (from C set above)
|
|
||||||
sta bit_data ;
|
|
||||||
got_bit:
|
|
||||||
jsr get_byte ; Always read a byte, it could mean "match size/offset" or "literal byte"
|
|
||||||
bcs store ; Bit = 1 is "literal", bit = 0 is "match"
|
|
||||||
|
|
||||||
sta chn_pos, x ; Store in "copy pos"
|
|
||||||
|
|
||||||
jsr get_byte
|
|
||||||
sta chn_copy, x ; Store in "copy length"
|
|
||||||
|
|
||||||
; And start copying first byte
|
|
||||||
do_copy_byte:
|
|
||||||
dec chn_copy, x ; Decrease match length, increase match position
|
|
||||||
inc chn_pos, x
|
|
||||||
ldy chn_pos, x
|
|
||||||
|
|
||||||
; Now, read old data, jump to data store
|
|
||||||
lda (bptr), y
|
|
||||||
|
|
||||||
store:
|
|
||||||
ldy cur_pos
|
|
||||||
sta POKEY, x ; Store to output and buffer
|
|
||||||
sta (bptr), y
|
|
||||||
|
|
||||||
skip_chn:
|
|
||||||
; Increment channel buffer pointer
|
|
||||||
inc bptr+1
|
|
||||||
|
|
||||||
dex
|
|
||||||
bpl chn_loop ; Next channel
|
|
||||||
|
|
||||||
inc cur_pos
|
|
||||||
.endp
|
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
||||||
; Check for ending of song and jump to the next frame
|
|
||||||
;
|
|
||||||
.proc check_end_song
|
|
||||||
lda song_ptr + 1
|
|
||||||
cmp #>song_end
|
|
||||||
;bne wait_frame
|
|
||||||
lda song_ptr
|
|
||||||
cmp #<song_end
|
|
||||||
;bne wait_frame
|
|
||||||
.endp
|
|
||||||
|
|
||||||
end_loop
|
|
||||||
rts
|
|
||||||
|
|
||||||
|
|
||||||
main
|
|
||||||
jsr init_song
|
|
||||||
|
|
||||||
; --- init PMG
|
|
||||||
|
|
||||||
ift USESPRITES
|
|
||||||
mva >pmg pmbase ;missiles and players data address
|
|
||||||
mva #$03 pmcntl ;enable players and missiles
|
|
||||||
eif
|
|
||||||
|
|
||||||
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
|
|
||||||
mva #$fe portb ;switch off ROM to get 16k more ram
|
|
||||||
|
|
||||||
mwa #NMI $fffa ;new NMI handler
|
|
||||||
|
|
||||||
mva #$c0 nmien ;switch on NMI+DLI again
|
|
||||||
|
|
||||||
ift CHANGES ;if label CHANGES defined
|
|
||||||
|
|
||||||
_lp lda trig0 ; FIRE #0
|
|
||||||
beq stop
|
|
||||||
|
|
||||||
lda trig1 ; FIRE #1
|
|
||||||
beq stop
|
|
||||||
|
|
||||||
lda consol ; START
|
|
||||||
and #1
|
|
||||||
beq stop
|
|
||||||
|
|
||||||
lda skctl
|
|
||||||
and #$04
|
|
||||||
bne _lp ;wait to press any key; here you can put any own routine
|
|
||||||
|
|
||||||
els
|
|
||||||
|
|
||||||
null jmp DLI.dli1 ;CPU is busy here, so no more routines allowed
|
|
||||||
|
|
||||||
eif
|
|
||||||
|
|
||||||
|
|
||||||
stop
|
|
||||||
mva #$00 pmcntl ;PMG disabled
|
|
||||||
tax
|
|
||||||
sta:rne hposp0,x+
|
|
||||||
|
|
||||||
mva #$ff portb ;ROM switch on
|
|
||||||
mva #$40 nmien ;only NMI interrupts, DLI disabled
|
|
||||||
cli ;IRQ enabled
|
|
||||||
|
|
||||||
|
|
||||||
lda #0
|
|
||||||
ldx #8
|
|
||||||
@ sta POKEY,x
|
|
||||||
dex
|
|
||||||
bpl @-
|
|
||||||
|
|
||||||
;no glitching please (issue #67)
|
|
||||||
lda #0
|
|
||||||
sta $D400 ;dmactl
|
|
||||||
sta $022F ;dmactls
|
|
||||||
rts ;return to ... DOS
|
|
||||||
|
|
||||||
; --- DLI PROGRAM
|
|
||||||
|
|
||||||
.local DLI
|
|
||||||
|
|
||||||
?old_dli = *
|
|
||||||
|
|
||||||
ift !CHANGES
|
|
||||||
|
|
||||||
dli1 lda trig0 ; FIRE #0
|
|
||||||
beq stop
|
|
||||||
|
|
||||||
lda trig1 ; FIRE #1
|
|
||||||
beq stop
|
|
||||||
|
|
||||||
lda consol ; START
|
|
||||||
and #1
|
|
||||||
beq stop
|
|
||||||
|
|
||||||
lda skctl
|
|
||||||
and #$04
|
|
||||||
beq stop
|
|
||||||
|
|
||||||
lda vcount
|
|
||||||
cmp #$02
|
|
||||||
bne dli1
|
|
||||||
|
|
||||||
:3 sta wsync
|
|
||||||
|
|
||||||
DLINEW dli10
|
|
||||||
|
|
||||||
eif
|
|
||||||
|
|
||||||
dli_start
|
|
||||||
|
|
||||||
dli10
|
|
||||||
sta regA
|
|
||||||
|
|
||||||
c4 lda #$04
|
|
||||||
sta wsync ;line=8
|
|
||||||
sta color0
|
|
||||||
sta gtictl
|
|
||||||
DLINEW DLI.dli2 1 0 0
|
|
||||||
|
|
||||||
dli2
|
|
||||||
sta regA
|
|
||||||
lda >fnt+$400*$01
|
|
||||||
sta wsync ;line=96
|
|
||||||
sta chbase
|
|
||||||
DLINEW dli3 1 0 0
|
|
||||||
|
|
||||||
dli3
|
|
||||||
sta regA
|
|
||||||
lda >fnt+$400*$02
|
|
||||||
sta wsync ;line=136
|
|
||||||
sta chbase
|
|
||||||
DLINEW dli4 1 0 0
|
|
||||||
|
|
||||||
dli4
|
|
||||||
sta regA
|
|
||||||
lda >fnt+$400*$01
|
|
||||||
sta wsync ;line=168
|
|
||||||
sta chbase
|
|
||||||
DLINEW dli5 1 0 0
|
|
||||||
|
|
||||||
dli5
|
|
||||||
sta regA
|
|
||||||
lda >fnt+$400*$02
|
|
||||||
sta wsync ;line=176
|
|
||||||
sta chbase
|
|
||||||
DLINEW dli6 1 0 0
|
|
||||||
|
|
||||||
dli6
|
|
||||||
sta regA
|
|
||||||
lda >fnt+$400*$03
|
|
||||||
sta wsync ;line=184
|
|
||||||
sta chbase
|
|
||||||
DLINEW dli7 1 0 0
|
|
||||||
|
|
||||||
dli7
|
|
||||||
sta regA
|
|
||||||
lda >fnt+$400*$00
|
|
||||||
sta wsync ;line=200
|
|
||||||
sta chbase
|
|
||||||
DLINEW dli11 1 0 0
|
|
||||||
|
|
||||||
dli11
|
|
||||||
sta regA
|
|
||||||
|
|
||||||
lda #>$a000 ; system font
|
|
||||||
sta wsync ;line=232
|
|
||||||
sta chbase
|
|
||||||
lda #$01
|
|
||||||
sta gtictl
|
|
||||||
|
|
||||||
lda regA
|
|
||||||
rti
|
|
||||||
|
|
||||||
.endl
|
|
||||||
|
|
||||||
; ---
|
|
||||||
|
|
||||||
CHANGES = 1
|
|
||||||
FADECHR = 0
|
|
||||||
|
|
||||||
SCHR = 127
|
|
||||||
|
|
||||||
; ---
|
|
||||||
|
|
||||||
.proc NMI
|
|
||||||
|
|
||||||
bit nmist
|
|
||||||
bpl VBL
|
|
||||||
|
|
||||||
jmp DLI.dli_start
|
|
||||||
dliv equ *-2
|
|
||||||
|
|
||||||
VBL
|
|
||||||
sta regA
|
|
||||||
stx regX
|
|
||||||
sty regY
|
|
||||||
|
|
||||||
sta nmist ;reset NMI flag
|
|
||||||
|
|
||||||
mwa #ant dlptr ;ANTIC address program
|
|
||||||
|
|
||||||
mva #@dmactl(standard|dma|lineX1) dmactl ;set new screen width
|
|
||||||
|
|
||||||
inc cloc ;little timer
|
|
||||||
|
|
||||||
; Initial values
|
|
||||||
|
|
||||||
lda >fnt+$400*$00
|
|
||||||
sta chbase
|
|
||||||
c0 lda #$00
|
|
||||||
sta colbak
|
|
||||||
lda #$02
|
|
||||||
sta chrctl
|
|
||||||
lda #$01
|
|
||||||
sta gtictl
|
|
||||||
c1 lda #$0C
|
|
||||||
sta color1
|
|
||||||
c2 lda #$02
|
|
||||||
sta color2
|
|
||||||
c3 lda #$0E
|
|
||||||
sta color3
|
|
||||||
x0 lda #$00
|
|
||||||
sta hposp0
|
|
||||||
sta hposp1
|
|
||||||
sta hposp2
|
|
||||||
sta hposp3
|
|
||||||
sta hposm0
|
|
||||||
sta hposm1
|
|
||||||
sta hposm2
|
|
||||||
sta hposm3
|
|
||||||
sta sizep0
|
|
||||||
sta sizep1
|
|
||||||
sta sizep2
|
|
||||||
sta sizep3
|
|
||||||
sta sizem
|
|
||||||
sta colpm0
|
|
||||||
sta colpm1
|
|
||||||
sta colpm2
|
|
||||||
sta colpm3
|
|
||||||
sta color0
|
|
||||||
|
|
||||||
mwa #DLI.dli_start dliv ;set the first address of DLI interrupt
|
|
||||||
|
|
||||||
;this area is for yours routines
|
|
||||||
jsr play_frame
|
|
||||||
|
|
||||||
quit
|
|
||||||
lda regA
|
|
||||||
ldx regX
|
|
||||||
ldy regY
|
|
||||||
rti
|
|
||||||
|
|
||||||
.endp
|
|
||||||
|
|
||||||
; ---
|
|
||||||
ini main
|
|
||||||
; ---
|
|
||||||
|
|
||||||
opt l-
|
|
||||||
|
|
||||||
.MACRO SPRITES
|
|
||||||
missiles
|
|
||||||
.ds $100
|
|
||||||
player0
|
|
||||||
.ds $100
|
|
||||||
player1
|
|
||||||
.ds $100
|
|
||||||
player2
|
|
||||||
.ds $100
|
|
||||||
player3
|
|
||||||
.ds $100
|
|
||||||
.ENDM
|
|
||||||
|
|
||||||
USESPRITES = 0
|
|
||||||
|
|
||||||
.MACRO DLINEW
|
|
||||||
mva <:1 NMI.dliv
|
|
||||||
ift [>?old_dli]<>[>:1]
|
|
||||||
mva >:1 NMI.dliv+1
|
|
||||||
eif
|
|
||||||
|
|
||||||
ift :2
|
|
||||||
lda regA
|
|
||||||
eif
|
|
||||||
|
|
||||||
ift :3
|
|
||||||
ldx regX
|
|
||||||
eif
|
|
||||||
|
|
||||||
ift :4
|
|
||||||
ldy regY
|
|
||||||
eif
|
|
||||||
|
|
||||||
rti
|
|
||||||
|
|
||||||
.def ?old_dli = *
|
|
||||||
.ENDM
|
|
||||||
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
Before Width: | Height: | Size: 4.5 KiB |
Binary file not shown.
@@ -0,0 +1,877 @@
|
|||||||
|
/***************************************/
|
||||||
|
/* Use MADS http://mads.atari8.info/ */
|
||||||
|
/* Mode: DLI (char mode) */
|
||||||
|
/***************************************/
|
||||||
|
|
||||||
|
;icl "Scorch50.h"
|
||||||
|
|
||||||
|
; --- dmsc LZSS player routine on zero page
|
||||||
|
org $80
|
||||||
|
|
||||||
|
chn_copy .ds 9
|
||||||
|
chn_pos .ds 9
|
||||||
|
bptr .ds 2
|
||||||
|
cur_pos .ds 1
|
||||||
|
chn_bits .ds 1
|
||||||
|
|
||||||
|
bit_data .ds 1
|
||||||
|
|
||||||
|
fcnt .ds 2
|
||||||
|
fadr .ds 2
|
||||||
|
fhlp .ds 2
|
||||||
|
cloc .ds 1
|
||||||
|
regA .ds 1
|
||||||
|
regX .ds 1
|
||||||
|
regY .ds 1
|
||||||
|
|
||||||
|
WIDTH = 40
|
||||||
|
HEIGHT = 30
|
||||||
|
|
||||||
|
; --- BASIC switch OFF
|
||||||
|
org $2000\ mva #$ff portb\ rts\ ini $2000
|
||||||
|
|
||||||
|
; --- MAIN PROGRAM
|
||||||
|
org $2000
|
||||||
|
ant dta $C2,a(scr)
|
||||||
|
dta $02,$82,$02,$02,$82,$02,$82,$02,$82,$02,$02,$02,$82,$02,$82,$82
|
||||||
|
dta $02,$02,$82,$02,$02,$82,$02,$02,$82,$82,$02,$82,$22
|
||||||
|
;dta $42,a(verline)
|
||||||
|
dta $41,a(ant)
|
||||||
|
|
||||||
|
;verline
|
||||||
|
; :37 dta d" "
|
||||||
|
; dta build
|
||||||
|
|
||||||
|
scr ins "Scorch50.scr"
|
||||||
|
|
||||||
|
.ds 0*40
|
||||||
|
|
||||||
|
.ALIGN $0400
|
||||||
|
fnt ins "Scorch50.fnt"
|
||||||
|
|
||||||
|
ift USESPRITES
|
||||||
|
.ALIGN $0800
|
||||||
|
pmg .ds $0300
|
||||||
|
ift FADECHR = 0
|
||||||
|
SPRITES
|
||||||
|
els
|
||||||
|
.ds $500
|
||||||
|
eif
|
||||||
|
eif
|
||||||
|
|
||||||
|
|
||||||
|
song_data
|
||||||
|
ins 'mmm_16.lzs'
|
||||||
|
song_end
|
||||||
|
|
||||||
|
POKEY = $D200
|
||||||
|
|
||||||
|
buffers
|
||||||
|
.ds 256 * 9
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
; Song Initialization - this runs in the first tick:
|
||||||
|
;
|
||||||
|
.proc init_song
|
||||||
|
|
||||||
|
mva #1 bit_data
|
||||||
|
|
||||||
|
; Example: here initializes song pointer:
|
||||||
|
|
||||||
|
;mwa #song_data song_ptr
|
||||||
|
|
||||||
|
; Init all channels:
|
||||||
|
ldx #8
|
||||||
|
ldy #0
|
||||||
|
clear
|
||||||
|
; Read just init value and store into buffer and POKEY
|
||||||
|
jsr get_byte
|
||||||
|
sta POKEY, x
|
||||||
|
sty chn_copy, x
|
||||||
|
cbuf
|
||||||
|
sta buffers + 255
|
||||||
|
inc cbuf + 2
|
||||||
|
dex
|
||||||
|
bpl clear
|
||||||
|
|
||||||
|
; Initialize buffer pointer:
|
||||||
|
sty bptr
|
||||||
|
sty cur_pos
|
||||||
|
rts
|
||||||
|
.endp
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
; Wait for next frame
|
||||||
|
;
|
||||||
|
.proc wait_frame
|
||||||
|
|
||||||
|
lda 20
|
||||||
|
delay
|
||||||
|
cmp 20
|
||||||
|
beq delay
|
||||||
|
.endp
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
; Play one frame of the song
|
||||||
|
;
|
||||||
|
.proc play_frame
|
||||||
|
lda #>buffers
|
||||||
|
sta bptr+1
|
||||||
|
|
||||||
|
lda song_data
|
||||||
|
sta chn_bits
|
||||||
|
ldx #8
|
||||||
|
|
||||||
|
; Loop through all "channels", one for each POKEY register
|
||||||
|
chn_loop:
|
||||||
|
lsr chn_bits
|
||||||
|
bcs skip_chn ; C=1 : skip this channel
|
||||||
|
|
||||||
|
lda chn_copy, x ; Get status of this stream
|
||||||
|
bne do_copy_byte ; If > 0 we are copying bytes
|
||||||
|
|
||||||
|
; We are decoding a new match/literal
|
||||||
|
lsr bit_data ; Get next bit
|
||||||
|
bne got_bit
|
||||||
|
jsr get_byte ; Not enough bits, refill!
|
||||||
|
ror ; Extract a new bit and add a 1 at the high bit (from C set above)
|
||||||
|
sta bit_data ;
|
||||||
|
got_bit:
|
||||||
|
jsr get_byte ; Always read a byte, it could mean "match size/offset" or "literal byte"
|
||||||
|
bcs store ; Bit = 1 is "literal", bit = 0 is "match"
|
||||||
|
|
||||||
|
sta chn_pos, x ; Store in "copy pos"
|
||||||
|
|
||||||
|
jsr get_byte
|
||||||
|
sta chn_copy, x ; Store in "copy length"
|
||||||
|
|
||||||
|
; And start copying first byte
|
||||||
|
do_copy_byte:
|
||||||
|
dec chn_copy, x ; Decrease match length, increase match position
|
||||||
|
inc chn_pos, x
|
||||||
|
ldy chn_pos, x
|
||||||
|
|
||||||
|
; Now, read old data, jump to data store
|
||||||
|
lda (bptr), y
|
||||||
|
|
||||||
|
store:
|
||||||
|
ldy cur_pos
|
||||||
|
sta POKEY, x ; Store to output and buffer
|
||||||
|
sta (bptr), y
|
||||||
|
|
||||||
|
skip_chn:
|
||||||
|
; Increment channel buffer pointer
|
||||||
|
inc bptr+1
|
||||||
|
|
||||||
|
dex
|
||||||
|
bpl chn_loop ; Next channel
|
||||||
|
|
||||||
|
inc cur_pos
|
||||||
|
.endp
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
; Check for ending of song and jump to the next frame
|
||||||
|
;
|
||||||
|
|
||||||
|
; not checking really so the tune gets funky :)))
|
||||||
|
;lda song_ptr + 1
|
||||||
|
;cmp #>song_end
|
||||||
|
;bne wait_frame
|
||||||
|
;lda song_ptr
|
||||||
|
;cmp #<song_end
|
||||||
|
;bne wait_frame
|
||||||
|
|
||||||
|
end_loop
|
||||||
|
rts
|
||||||
|
|
||||||
|
song_ptr = get_byte + 1
|
||||||
|
.proc get_byte
|
||||||
|
lda song_data+1
|
||||||
|
inc song_ptr
|
||||||
|
bne skip
|
||||||
|
inc song_ptr+1
|
||||||
|
skip
|
||||||
|
rts
|
||||||
|
.endp
|
||||||
|
|
||||||
|
|
||||||
|
main
|
||||||
|
|
||||||
|
jsr init_song
|
||||||
|
|
||||||
|
; ; 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 @-
|
||||||
|
|
||||||
|
; --- init PMG
|
||||||
|
|
||||||
|
ift USESPRITES
|
||||||
|
mva >pmg pmbase ;missiles and players data address
|
||||||
|
mva #$03 pmcntl ;enable players and missiles
|
||||||
|
eif
|
||||||
|
|
||||||
|
lda:cmp:req $14 ;wait 1 frame
|
||||||
|
|
||||||
|
sei ;stop IRQ interrupts
|
||||||
|
mva #$00 nmien ;stop NMI interrupts
|
||||||
|
sta dmactl
|
||||||
|
;mva #$fe portb ;switch off ROM to get 16k more ram
|
||||||
|
|
||||||
|
;mwa #NMI $fffa ;new NMI handler
|
||||||
|
|
||||||
|
sta colbaks
|
||||||
|
lda #$0E
|
||||||
|
sta colpf1s
|
||||||
|
lda #$84
|
||||||
|
sta colpf2s
|
||||||
|
lda #$0E
|
||||||
|
sta colpf3s
|
||||||
|
lda #$02
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
VMAIN NMI.vbl,6 ;jsr SetVBL
|
||||||
|
VDLI DLI.dli_start
|
||||||
|
|
||||||
|
|
||||||
|
mva #1 vscrol
|
||||||
|
|
||||||
|
mva #$c0 nmien ;switch on NMI+DLI again
|
||||||
|
|
||||||
|
_lp lda trig0 ; FIRE #0
|
||||||
|
beq stop
|
||||||
|
|
||||||
|
lda trig1 ; FIRE #1
|
||||||
|
beq stop
|
||||||
|
|
||||||
|
lda consol ; START
|
||||||
|
and #1
|
||||||
|
beq stop
|
||||||
|
|
||||||
|
lda skctl
|
||||||
|
and #$04
|
||||||
|
bne _lp ;wait to press any key; here you can put any own routine
|
||||||
|
|
||||||
|
|
||||||
|
stop
|
||||||
|
|
||||||
|
cli
|
||||||
|
vmain sysvbv,6
|
||||||
|
|
||||||
|
mva #$00 pmcntl ;PMG disabled
|
||||||
|
tax
|
||||||
|
sta:rne hposp0,x+
|
||||||
|
|
||||||
|
;mva #$ff portb ;ROM switch on
|
||||||
|
mva #$40 nmien ;only NMI interrupts, DLI disabled
|
||||||
|
;cli ;IRQ enabled
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
ldx #8
|
||||||
|
@ sta POKEY,x
|
||||||
|
dex
|
||||||
|
bpl @-
|
||||||
|
|
||||||
|
|
||||||
|
;no glitching please (issue #67)
|
||||||
|
lda #0
|
||||||
|
sta $D400 ;dmactl
|
||||||
|
sta $022F ;dmactls
|
||||||
|
rts ;return to ... DOS
|
||||||
|
|
||||||
|
; --- DLI PROGRAM
|
||||||
|
|
||||||
|
.local DLI
|
||||||
|
|
||||||
|
?old_dli = *
|
||||||
|
|
||||||
|
dli_start
|
||||||
|
|
||||||
|
dli13
|
||||||
|
sta regA
|
||||||
|
|
||||||
|
sta wsync ;line=8
|
||||||
|
sta wsync ;line=9
|
||||||
|
sta wsync ;line=10
|
||||||
|
sta wsync ;line=11
|
||||||
|
sta wsync ;line=12
|
||||||
|
sta wsync ;line=13
|
||||||
|
c9 lda #$14
|
||||||
|
sta wsync ;line=14
|
||||||
|
sta colpm3
|
||||||
|
DLINEW DLI.dli2 1 0 0
|
||||||
|
|
||||||
|
dli2
|
||||||
|
sta regA
|
||||||
|
lda >fnt+$400*$01
|
||||||
|
sta wsync ;line=24
|
||||||
|
sta chbase
|
||||||
|
DLINEW dli3 1 0 0
|
||||||
|
|
||||||
|
dli3
|
||||||
|
sta regA
|
||||||
|
lda >fnt+$400*$02
|
||||||
|
sta wsync ;line=48
|
||||||
|
sta chbase
|
||||||
|
sta wsync ;line=49
|
||||||
|
sta wsync ;line=50
|
||||||
|
sta wsync ;line=51
|
||||||
|
s3 lda #$07
|
||||||
|
sta wsync ;line=52
|
||||||
|
sta sizem
|
||||||
|
DLINEW dli14 1 0 0
|
||||||
|
|
||||||
|
dli14
|
||||||
|
sta regA
|
||||||
|
stx regX
|
||||||
|
sty regY
|
||||||
|
|
||||||
|
x8 lda #$A3
|
||||||
|
sta wsync ;line=64
|
||||||
|
sta hposp3
|
||||||
|
x9 lda #$AB
|
||||||
|
sta wsync ;line=65
|
||||||
|
sta hposm3
|
||||||
|
sta wsync ;line=66
|
||||||
|
sta wsync ;line=67
|
||||||
|
sta wsync ;line=68
|
||||||
|
sta wsync ;line=69
|
||||||
|
sta wsync ;line=70
|
||||||
|
s4 lda #$13
|
||||||
|
x10 ldx #$A6
|
||||||
|
sta wsync ;line=71
|
||||||
|
sta sizem
|
||||||
|
stx hposm2
|
||||||
|
s5 lda #$01
|
||||||
|
x11 ldx #$72
|
||||||
|
x12 ldy #$62
|
||||||
|
sta wsync ;line=72
|
||||||
|
sta sizep2
|
||||||
|
sta sizep3
|
||||||
|
stx hposp2
|
||||||
|
sty hposp3
|
||||||
|
x13 lda #$A9
|
||||||
|
sta wsync ;line=73
|
||||||
|
sta hposp1
|
||||||
|
DLINEW dli4 1 1 1
|
||||||
|
|
||||||
|
dli4
|
||||||
|
sta regA
|
||||||
|
lda >fnt+$400*$03
|
||||||
|
sta wsync ;line=80
|
||||||
|
sta chbase
|
||||||
|
DLINEW dli5 1 0 0
|
||||||
|
|
||||||
|
dli5
|
||||||
|
sta regA
|
||||||
|
stx regX
|
||||||
|
lda >fnt+$400*$04
|
||||||
|
sta wsync ;line=112
|
||||||
|
sta chbase
|
||||||
|
sta wsync ;line=113
|
||||||
|
sta wsync ;line=114
|
||||||
|
sta wsync ;line=115
|
||||||
|
sta wsync ;line=116
|
||||||
|
sta wsync ;line=117
|
||||||
|
sta wsync ;line=118
|
||||||
|
s6 lda #$07
|
||||||
|
x14 ldx #$A3
|
||||||
|
sta wsync ;line=119
|
||||||
|
sta sizem
|
||||||
|
stx hposm1
|
||||||
|
s7 lda #$01
|
||||||
|
x15 ldx #$93
|
||||||
|
sta wsync ;line=120
|
||||||
|
sta sizep1
|
||||||
|
stx hposp1
|
||||||
|
DLINEW dli15 1 1 0
|
||||||
|
|
||||||
|
dli15
|
||||||
|
sta regA
|
||||||
|
stx regX
|
||||||
|
|
||||||
|
sta wsync ;line=128
|
||||||
|
sta wsync ;line=129
|
||||||
|
sta wsync ;line=130
|
||||||
|
sta wsync ;line=131
|
||||||
|
x16 lda #$4A
|
||||||
|
sta wsync ;line=132
|
||||||
|
sta hposp1
|
||||||
|
c10 lda #$D4
|
||||||
|
sta wsync ;line=133
|
||||||
|
sta color2
|
||||||
|
s8 lda #$C3
|
||||||
|
x17 ldx #$5A
|
||||||
|
sta wsync ;line=134
|
||||||
|
sta sizem
|
||||||
|
stx hposm3
|
||||||
|
DLINEW dli6 1 1 0
|
||||||
|
|
||||||
|
dli6
|
||||||
|
sta regA
|
||||||
|
stx regX
|
||||||
|
sty regY
|
||||||
|
lda >fnt+$400*$05
|
||||||
|
sta wsync ;line=136
|
||||||
|
sta chbase
|
||||||
|
sta wsync ;line=137
|
||||||
|
sta wsync ;line=138
|
||||||
|
sta wsync ;line=139
|
||||||
|
sta wsync ;line=140
|
||||||
|
sta wsync ;line=141
|
||||||
|
sta wsync ;line=142
|
||||||
|
s9 lda #$C7
|
||||||
|
x18 ldx #$A9
|
||||||
|
sta wsync ;line=143
|
||||||
|
sta sizem
|
||||||
|
stx hposm1
|
||||||
|
s10 lda #$D7
|
||||||
|
x19 ldx #$9E
|
||||||
|
c11 ldy #$02
|
||||||
|
sta wsync ;line=144
|
||||||
|
sta sizem
|
||||||
|
stx hposm2
|
||||||
|
sty colpm2
|
||||||
|
sta wsync ;line=145
|
||||||
|
c12 lda #$04
|
||||||
|
sta wsync ;line=146
|
||||||
|
sta colpm1
|
||||||
|
sta wsync ;line=147
|
||||||
|
sta wsync ;line=148
|
||||||
|
sta wsync ;line=149
|
||||||
|
s11 lda #$00
|
||||||
|
x20 ldx #$74
|
||||||
|
c13 ldy #$02
|
||||||
|
sta wsync ;line=150
|
||||||
|
sta sizep3
|
||||||
|
stx hposp3
|
||||||
|
sty colpm3
|
||||||
|
sta wsync ;line=151
|
||||||
|
sta wsync ;line=152
|
||||||
|
sta wsync ;line=153
|
||||||
|
sta wsync ;line=154
|
||||||
|
sta wsync ;line=155
|
||||||
|
sta wsync ;line=156
|
||||||
|
sta wsync ;line=157
|
||||||
|
c14 lda #$04
|
||||||
|
sta wsync ;line=158
|
||||||
|
sta color0
|
||||||
|
DLINEW dli7 1 1 1
|
||||||
|
|
||||||
|
dli7
|
||||||
|
sta regA
|
||||||
|
lda >fnt+$400*$06
|
||||||
|
sta wsync ;line=160
|
||||||
|
sta chbase
|
||||||
|
DLINEW dli8 1 0 0
|
||||||
|
|
||||||
|
dli8
|
||||||
|
sta regA
|
||||||
|
stx regX
|
||||||
|
sty regY
|
||||||
|
lda >fnt+$400*$07
|
||||||
|
sta wsync ;line=184
|
||||||
|
sta chbase
|
||||||
|
sta wsync ;line=185
|
||||||
|
s12 lda #$00
|
||||||
|
x21 ldx #$8E
|
||||||
|
c15 ldy #$08
|
||||||
|
sta wsync ;line=186
|
||||||
|
sta sizep2
|
||||||
|
stx hposp2
|
||||||
|
sty colpm2
|
||||||
|
x22 lda #$4C
|
||||||
|
c16 ldx #$0E
|
||||||
|
sta wsync ;line=187
|
||||||
|
sta hposp3
|
||||||
|
stx colpm3
|
||||||
|
c17 lda #$0A
|
||||||
|
c18 ldx #$34
|
||||||
|
sta wsync ;line=188
|
||||||
|
sta color1
|
||||||
|
stx colpm3
|
||||||
|
s13 lda #$43
|
||||||
|
x23 ldx #$49
|
||||||
|
sta wsync ;line=189
|
||||||
|
sta sizem
|
||||||
|
stx hposm3
|
||||||
|
c19 lda #$08
|
||||||
|
c20 ldx #$34
|
||||||
|
sta wsync ;line=190
|
||||||
|
sta color1
|
||||||
|
stx colpm2
|
||||||
|
sta wsync ;line=191
|
||||||
|
c21 lda #$0A
|
||||||
|
sta wsync ;line=192
|
||||||
|
sta color1
|
||||||
|
c22 lda #$08
|
||||||
|
sta wsync ;line=193
|
||||||
|
sta color1
|
||||||
|
c23 lda #$0A
|
||||||
|
sta wsync ;line=194
|
||||||
|
sta color1
|
||||||
|
c24 lda #$34
|
||||||
|
sta wsync ;line=195
|
||||||
|
sta color2
|
||||||
|
c25 lda #$0C
|
||||||
|
sta wsync ;line=196
|
||||||
|
sta color1
|
||||||
|
c26 lda #$0A
|
||||||
|
sta wsync ;line=197
|
||||||
|
sta color1
|
||||||
|
c27 lda #$0C
|
||||||
|
sta wsync ;line=198
|
||||||
|
sta color1
|
||||||
|
sta wsync ;line=199
|
||||||
|
sta wsync ;line=200
|
||||||
|
c28 lda #$0E
|
||||||
|
sta wsync ;line=201
|
||||||
|
sta color1
|
||||||
|
c29 lda #$0C
|
||||||
|
sta wsync ;line=202
|
||||||
|
sta color1
|
||||||
|
c30 lda #$0E
|
||||||
|
sta wsync ;line=203
|
||||||
|
sta color1
|
||||||
|
c31 lda #$0C
|
||||||
|
sta wsync ;line=204
|
||||||
|
sta color1
|
||||||
|
c32 lda #$0E
|
||||||
|
sta wsync ;line=205
|
||||||
|
sta color1
|
||||||
|
DLINEW dli16 1 1 1
|
||||||
|
|
||||||
|
dli16
|
||||||
|
sta regA
|
||||||
|
|
||||||
|
sta wsync ;line=208
|
||||||
|
sta wsync ;line=209
|
||||||
|
c33 lda #$0C
|
||||||
|
sta wsync ;line=210
|
||||||
|
sta color1
|
||||||
|
c34 lda #$0E
|
||||||
|
sta wsync ;line=211
|
||||||
|
sta color1
|
||||||
|
c35 lda #$0C
|
||||||
|
sta wsync ;line=212
|
||||||
|
sta color1
|
||||||
|
DLINEW dli9 1 0 0
|
||||||
|
|
||||||
|
dli9
|
||||||
|
sta regA
|
||||||
|
stx regX
|
||||||
|
sty regY
|
||||||
|
lda >fnt+$400*$08
|
||||||
|
c36 ldx #$0A
|
||||||
|
sta wsync ;line=216
|
||||||
|
sta chbase
|
||||||
|
stx color1
|
||||||
|
c37 lda #$0C
|
||||||
|
sta wsync ;line=217
|
||||||
|
sta color1
|
||||||
|
c38 lda #$0A
|
||||||
|
x24 ldx #$9D
|
||||||
|
c39 ldy #$34
|
||||||
|
sta wsync ;line=218
|
||||||
|
sta color1
|
||||||
|
stx hposm1
|
||||||
|
sty colpm1
|
||||||
|
s14 lda #$03
|
||||||
|
x25 ldx #$7D
|
||||||
|
sta wsync ;line=219
|
||||||
|
sta sizep3
|
||||||
|
stx hposp3
|
||||||
|
c40 lda #$08
|
||||||
|
s15 ldx #$13
|
||||||
|
x26 ldy #$45
|
||||||
|
sta wsync ;line=220
|
||||||
|
sta color1
|
||||||
|
stx sizem
|
||||||
|
sty hposm2
|
||||||
|
s16 lda #$03
|
||||||
|
x27 ldx #$59
|
||||||
|
sta wsync ;line=221
|
||||||
|
sta sizep2
|
||||||
|
stx hposp2
|
||||||
|
s17 lda #$53
|
||||||
|
x28 ldx #$49
|
||||||
|
x29 ldy #$79
|
||||||
|
sta wsync ;line=222
|
||||||
|
sta sizem
|
||||||
|
stx hposp1
|
||||||
|
sty hposm3
|
||||||
|
c41 lda #$06
|
||||||
|
c42 ldx #$00
|
||||||
|
sta wsync ;line=223
|
||||||
|
sta color1
|
||||||
|
stx color2
|
||||||
|
lda >fnt+$400*$01
|
||||||
|
s18 ldx #$50
|
||||||
|
x30 ldy #$44
|
||||||
|
sta wsync ;line=224
|
||||||
|
sta chbase
|
||||||
|
stx sizem
|
||||||
|
sty hposm0
|
||||||
|
sta wsync ;line=225
|
||||||
|
c43 lda #$08
|
||||||
|
sta wsync ;line=226
|
||||||
|
sta color1
|
||||||
|
c44 lda #$0C
|
||||||
|
sta wsync ;line=227
|
||||||
|
sta color1
|
||||||
|
sta wsync ;line=228
|
||||||
|
sta wsync ;line=229
|
||||||
|
c45 lda #$0E
|
||||||
|
sta wsync ;line=230
|
||||||
|
sta color1
|
||||||
|
DLINEW dli10 1 1 1
|
||||||
|
|
||||||
|
dli10
|
||||||
|
sta regA
|
||||||
|
lda >fnt+$400*$00
|
||||||
|
sta wsync ;line=232
|
||||||
|
sta chbase
|
||||||
|
;DLINEW dli11 1 0 0
|
||||||
|
|
||||||
|
lda regA
|
||||||
|
rti
|
||||||
|
|
||||||
|
;dli11
|
||||||
|
; sta regA
|
||||||
|
;
|
||||||
|
; lda #>$a000 ; system font
|
||||||
|
; sta wsync ;line=232
|
||||||
|
; sta chbase
|
||||||
|
; lda #$01
|
||||||
|
; sta gtictl
|
||||||
|
;
|
||||||
|
; lda regA
|
||||||
|
; rti
|
||||||
|
|
||||||
|
|
||||||
|
.endl
|
||||||
|
|
||||||
|
; ---
|
||||||
|
|
||||||
|
CHANGES = 1
|
||||||
|
FADECHR = 0
|
||||||
|
|
||||||
|
SCHR = 127
|
||||||
|
|
||||||
|
dliv = $0200
|
||||||
|
|
||||||
|
; ---
|
||||||
|
|
||||||
|
.proc NMI
|
||||||
|
|
||||||
|
bit nmist
|
||||||
|
bpl VBL
|
||||||
|
|
||||||
|
jmp DLI.dli_start
|
||||||
|
|
||||||
|
|
||||||
|
VBL
|
||||||
|
sta regA
|
||||||
|
stx regX
|
||||||
|
sty regY
|
||||||
|
|
||||||
|
;sta nmist ;reset NMI flag
|
||||||
|
|
||||||
|
mwa #ant dlptr ;ANTIC address program
|
||||||
|
|
||||||
|
mva #@dmactl(standard|dma|lineX1|players|missiles) dmactl ;set new screen width
|
||||||
|
|
||||||
|
inc cloc ;little timer
|
||||||
|
|
||||||
|
; Initial values
|
||||||
|
|
||||||
|
lda >fnt+$400*$00
|
||||||
|
sta chbase
|
||||||
|
c0 lda #$00
|
||||||
|
sta colbak
|
||||||
|
c1 lda #$0E
|
||||||
|
sta color1
|
||||||
|
c2 lda #$84
|
||||||
|
sta color2
|
||||||
|
c3 lda #$0E
|
||||||
|
sta color3
|
||||||
|
lda #$02
|
||||||
|
sta chrctl
|
||||||
|
lda #$01
|
||||||
|
sta gtictl
|
||||||
|
sta sizep0
|
||||||
|
s0 lda #$03
|
||||||
|
sta sizem
|
||||||
|
x0 lda #$D0
|
||||||
|
sta hposp0
|
||||||
|
x1 lda #$28
|
||||||
|
sta hposm0
|
||||||
|
c4 lda #$00
|
||||||
|
sta colpm0
|
||||||
|
x2 lda #$A2
|
||||||
|
sta hposm3
|
||||||
|
c5 lda #$0E
|
||||||
|
sta colpm3
|
||||||
|
s1 lda #$00
|
||||||
|
sta sizep2
|
||||||
|
sta sizep3
|
||||||
|
x3 lda #$92
|
||||||
|
sta hposp2
|
||||||
|
x4 lda #$8A
|
||||||
|
sta hposp3
|
||||||
|
c6 lda #$14
|
||||||
|
sta colpm2
|
||||||
|
s2 lda #$00
|
||||||
|
sta sizep1
|
||||||
|
x5 lda #$9A
|
||||||
|
sta hposp1
|
||||||
|
c7 lda #$14
|
||||||
|
sta colpm1
|
||||||
|
x6 lda #$A4
|
||||||
|
sta hposm2
|
||||||
|
x7 lda #$A6
|
||||||
|
sta hposm1
|
||||||
|
c8 lda #$00
|
||||||
|
sta color0
|
||||||
|
|
||||||
|
mwa #DLI.dli_start dliv ;set the first address of DLI interrupt
|
||||||
|
|
||||||
|
;this area is for yours routines
|
||||||
|
jsr play_frame
|
||||||
|
|
||||||
|
quit
|
||||||
|
lda regA
|
||||||
|
ldx regX
|
||||||
|
ldy regY
|
||||||
|
jmp sysvbv
|
||||||
|
|
||||||
|
.endp
|
||||||
|
|
||||||
|
; ---
|
||||||
|
ini main
|
||||||
|
; ---
|
||||||
|
|
||||||
|
opt l-
|
||||||
|
|
||||||
|
.MACRO SPRITES
|
||||||
|
missiles
|
||||||
|
.he 00 00 00 00 00 00 00 00 03 03 C3 03 03 03 03 03
|
||||||
|
.he 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03
|
||||||
|
.he 03 03 03 03 03 03 03 03 03 83 83 83 C3 C3 C3 C3
|
||||||
|
.he C3 C3 C3 C3 C3 E3 E3 E3 E3 E3 E3 F3 F3 F3 F3 FB
|
||||||
|
.he FB FB FB FB FF FF FF FF F3 33 83 83 83 83 C3 D3
|
||||||
|
.he D3 D3 13 03 03 03 03 03 03 03 03 03 03 03 03 03
|
||||||
|
.he 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03
|
||||||
|
.he 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 0F
|
||||||
|
.he 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 03 03 03 03 C3 C3
|
||||||
|
.he C3 C3 C3 C3 C3 C3 C3 C3 C3 D3 FF FF 3F 3F 3F 3F
|
||||||
|
.he 3F 3F 33 13 03 03 03 03 03 03 03 03 03 03 03 03
|
||||||
|
.he 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03
|
||||||
|
.he 03 03 03 03 03 03 03 43 43 C3 C3 C3 C3 03 03 03
|
||||||
|
.he 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03
|
||||||
|
.he 03 03 0F 0F 3F 3F FF FC FE FE FF DB 03 03 03 03
|
||||||
|
.he 03 03 03 03 03 03 03 03 00 00 00 00 00 00 00 00
|
||||||
|
player0
|
||||||
|
.he 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF
|
||||||
|
.he FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
.he FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
.he FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
.he FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
.he FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
.he FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
.he FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
.he FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
.he FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
.he FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
.he FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
.he FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
.he FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
.he FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
.he FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00
|
||||||
|
player1
|
||||||
|
.he 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
.he 00 00 00 00 00 00 00 00 F0 FC FE FE FF FF FF FF
|
||||||
|
.he FF 0F 0F 0F 0F 0F 0F 0F 0F 0F 07 07 07 07 07 07
|
||||||
|
.he 03 03 03 FF FF FF FF FF CF CF FF FF FF FF FF 9F
|
||||||
|
.he 9F FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00
|
||||||
|
.he 00 F0 F0 F0 F0 78 F8 78 78 78 78 38 78 38 3C 3C
|
||||||
|
.he 3C 3C 1C 3C 1C 1C 1C 1C 1E 1E 1E 1E 0E 1E 0E 0E
|
||||||
|
.he 0E 0F 07 0F 07 0F 07 07 07 07 07 07 06 06 06 06
|
||||||
|
.he FF FF FF FF FF FF FF FF FF FF FF 00 00 3E 3F 7F
|
||||||
|
.he 7F 7F 7F 7F 7F 7F 7F 3F 3F 3F 00 00 00 00 00 00
|
||||||
|
.he 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
.he 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
.he 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
.he 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
.he 00 00 00 00 00 00 FF FF FF FF FF FF 00 00 00 00
|
||||||
|
.he 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
player2
|
||||||
|
.he 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
.he 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF
|
||||||
|
.he FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
.he 00 00 00 FF FF FF FF FF 99 99 FF FF FF FF FF 33
|
||||||
|
.he 33 FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00
|
||||||
|
.he 00 00 80 F0 F8 F8 F8 FC FC FC FC FC FC FC FC FC
|
||||||
|
.he FC FE FE FE FE FE FE FF FF FF FF FF FF FF FE FC
|
||||||
|
.he F8 F8 F8 F8 F0 F0 F0 F0 F0 F0 F0 F0 E0 E0 E0 E0
|
||||||
|
.he E0 E0 E0 FC FE FE FF FF 8F 87 87 87 07 07 07 07
|
||||||
|
.he 07 07 07 07 07 07 07 03 00 00 00 00 00 00 00 00
|
||||||
|
.he 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
.he 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
.he 00 00 00 00 00 00 F8 FC FC FE FE FF FF 00 00 00
|
||||||
|
.he 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
.he 00 00 00 00 00 00 FF FF FF FF FF FF 00 00 00 00
|
||||||
|
.he 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
player3
|
||||||
|
.he 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
.he 00 00 00 00 00 00 00 00 01 07 0F 1F 1F 3F 3F 7F
|
||||||
|
.he 7F 78 78 F0 F0 F0 F0 F8 F8 F8 78 7C 7C 7C 3C 3E
|
||||||
|
.he 3E 3E 1E 1F 1F 1F 0F 0F 0F 0F 0F 1F 1F 1F 1F 1F
|
||||||
|
.he 1F 3F 3F 3F 3F 3F 3F 3F FF 7F 7F 3F 3F 1F 1F 0F
|
||||||
|
.he 1F 1F 1F 3F 3F 3F 3F 3F 3F 3B 30 30 30 30 30 30
|
||||||
|
.he 30 30 30 30 38 3E 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F
|
||||||
|
.he 7F 7F 7F 7F 7F 7F 7F FF FF FF FF FF FF FF FF FF
|
||||||
|
.he FF FF FF FF FF FF FF FF 7F 7F 7F 7F 7F 7F FF FF
|
||||||
|
.he FF FF FF FF FE FE FE FE FE FE FE FE FC 1C FF 7E
|
||||||
|
.he 7E FE FE FE FE FF FF FF 7F 7E 7E 3C 00 00 00 00
|
||||||
|
.he 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
.he 00 00 00 00 00 7C FE FE FF FF FF 00 00 00 00 00
|
||||||
|
.he 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
.he 00 00 00 FF FF FF FF FF FF FF FF FF 00 00 00 00
|
||||||
|
.he 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
.ENDM
|
||||||
|
|
||||||
|
USESPRITES = 1
|
||||||
|
|
||||||
|
.MACRO DLINEW
|
||||||
|
mva <:1 dliv
|
||||||
|
ift [>?old_dli]<>[>:1]
|
||||||
|
mva >:1 dliv+1
|
||||||
|
eif
|
||||||
|
|
||||||
|
ift :2
|
||||||
|
lda regA
|
||||||
|
eif
|
||||||
|
|
||||||
|
ift :3
|
||||||
|
ldx regX
|
||||||
|
eif
|
||||||
|
|
||||||
|
ift :4
|
||||||
|
ldy regY
|
||||||
|
eif
|
||||||
|
|
||||||
|
rti
|
||||||
|
|
||||||
|
.def ?old_dli = *
|
||||||
|
.ENDM
|
||||||
|
|
||||||
Binary file not shown.
Binary file not shown.
@@ -1,54 +0,0 @@
|
|||||||
IN TIMES OF TROUBLE, GO WITH WHAT YOU KNOW.
|
|
||||||
DIE!
|
|
||||||
EAT MY SHORTS!
|
|
||||||
YOU'RE TOAST!
|
|
||||||
BANZAI!
|
|
||||||
FROM HELL'S HEART I STAB AT THEE...
|
|
||||||
I DIDN'T DO IT. NOBODY SAW ME DO IT.
|
|
||||||
TAKE A HIKE!
|
|
||||||
YOU'RE DEAD MEAT.
|
|
||||||
MAKE MY DAY.
|
|
||||||
CHARGE!
|
|
||||||
ATTACK!
|
|
||||||
YOU'RE OUTTA HERE.
|
|
||||||
WATTSA MATTA YOU?
|
|
||||||
FREEZE, OR I'LL SHOOT!
|
|
||||||
HA HA HA.
|
|
||||||
WE COME IN PEACE - SHOOT TO KILL!
|
|
||||||
IN YOUR FACE!
|
|
||||||
DIE COMMIE PIG!
|
|
||||||
I LOVE THE SMELL OF NAPALM IN THE MORNING.
|
|
||||||
VICTORY!
|
|
||||||
SHOW SOME RESPECT.
|
|
||||||
JUST WHO DO YOU THINK YOU ARE?
|
|
||||||
LOOK OUT BELOW!
|
|
||||||
KNOCK, KNOCK.
|
|
||||||
LOOK OVER THERE.
|
|
||||||
GUESS WHAT'S COMING FOR DINNER?
|
|
||||||
MERRY CHRISTMAS.
|
|
||||||
OPEN WIDE!
|
|
||||||
HERE GOES NOTHING...
|
|
||||||
DON'T WORRY, IT ISN'T A LIVE ROUND.
|
|
||||||
BLOOD, PAIN, VIOLENCE!
|
|
||||||
TAKE THIS, SISSY!
|
|
||||||
I SHALL FLATTEN YOU!
|
|
||||||
I SHALL SMASH YOUR UGLY TANK!
|
|
||||||
I WONDER WHAT THIS BUTTON DOES?
|
|
||||||
DON'T TAKE THIS PERSONALLY.
|
|
||||||
WOULD THIS MAKE YOU MAD?
|
|
||||||
I TOLD YOU TO LEAVE MY SISTER ALONE!
|
|
||||||
I COULD SPARE YOU, BUT WHY?
|
|
||||||
MY BOMB IS BIGGER THAN YOURS.
|
|
||||||
DON'T FORGET ABOUT ME!
|
|
||||||
HASTA LA VISTA, BABY!
|
|
||||||
THIS IS YOUR BRAIN ON SCORCH.
|
|
||||||
TAKE THIS!
|
|
||||||
THIS SCREEN AIN'T BIG ENOUGH FOR THE BOTH OF US.
|
|
||||||
DIE, ALIEN SWINE!
|
|
||||||
SAY 'ARRGGHHHHH....'
|
|
||||||
I SHALL OIL MY TURRET WITH YOUR BLOOD.
|
|
||||||
DIE, TANK-SCUM!
|
|
||||||
I'M GONNA BREAK YOUR FACE!
|
|
||||||
MAMA SAID KNOCK YOU OUT!
|
|
||||||
I HOPE YOU ENJOY PAIN!
|
|
||||||
PARTING IS SUCH SWEET SORROW... NOT!
|
|
||||||
@@ -1,60 +0,0 @@
|
|||||||
UGH!
|
|
||||||
AARGH!
|
|
||||||
AAAGGHHH!
|
|
||||||
I'M MELTING!
|
|
||||||
OOF..
|
|
||||||
OH!
|
|
||||||
EEEK!
|
|
||||||
AACCH!
|
|
||||||
I HATE IT WHEN THAT HAPPENS.
|
|
||||||
ONE DIRECT HIT CAN RUIN YOUR WHOLE DAY.
|
|
||||||
OH NO!
|
|
||||||
NOT ME!
|
|
||||||
OUCH.
|
|
||||||
OH NO, NOT AGAIN.
|
|
||||||
ANOTHER ONE BITES THE DUST.
|
|
||||||
GOODBYE.
|
|
||||||
HELP ME!
|
|
||||||
FAREWELL, CRUEL WORLD.
|
|
||||||
REMEMBER THE ALAMO!
|
|
||||||
OH MAN!
|
|
||||||
DOOUGH!
|
|
||||||
ANOTHER DAY, ANOTHER BOMB.
|
|
||||||
THIS IS THE END, MY ONLY FRIEND.
|
|
||||||
IT'S ALL OVER.
|
|
||||||
THE FAT LADY SANG.
|
|
||||||
WHY DOES EVERYTHING HAPPEN TO ME?
|
|
||||||
I'M GOING DOWN.
|
|
||||||
I'VE GOT A BAD FEELING ABOUT THIS.
|
|
||||||
CRAPOLA.
|
|
||||||
POW!
|
|
||||||
BIF!
|
|
||||||
BAM!
|
|
||||||
ZONK!
|
|
||||||
I SHOULD'VE LISTENED TO MY MOTHER...
|
|
||||||
NO... A BUD LIGHT!
|
|
||||||
WHAT WAS THAT NOISE?
|
|
||||||
MAMA SAID THERE'D BE DAYS LIKE THIS.
|
|
||||||
ITS JUST ONE OF THOSE DAYS...
|
|
||||||
I SEE A BRIGHT LIGHT...
|
|
||||||
MOMMY? IS THAT YOU?
|
|
||||||
I LET YOU HIT ME!
|
|
||||||
SUCKER SHOT!
|
|
||||||
I DIDN'T WANT TO LIVE ANYWAY.
|
|
||||||
-<SOB>-
|
|
||||||
WAS THAT AS CLOSE AS I THINK IT WAS?
|
|
||||||
JOIN THE ARMY, SEE THE WORLD THEY SAID.
|
|
||||||
IT WASN'T JUST A JOB IT WAS AN ADVENTURE!
|
|
||||||
I DIDN'T LIKE VIOLENCE ANYWAY!
|
|
||||||
I THOUGHT YOU LIKED ME?
|
|
||||||
SUCH SENSELESS VIOLENCE! I DON'T UNDERSTAND IT.
|
|
||||||
I THINK THIS GUY'S A LITTLE CRAZY.
|
|
||||||
SOMEHOW I DON'T FEEL LIKE KILLING ANYMORE.
|
|
||||||
HEY! KILLIN' AIN'T COOL.
|
|
||||||
GEE... THANKS.
|
|
||||||
I'VE FALLEN AND I CAN'T GET UP!
|
|
||||||
911?
|
|
||||||
OH NO! HERE I BLOW AGAIN!
|
|
||||||
I'LL BE BACK...
|
|
||||||
HEY - I'VE GOT LAWYERS.
|
|
||||||
TIME TO CALL 1-900-SUE-TANK.
|
|
||||||
Executable → Regular
|
Before Width: | Height: | Size: 190 B After Width: | Height: | Size: 190 B |
@@ -0,0 +1,41 @@
|
|||||||
|
STEREOMODE equ 0
|
||||||
|
;* --------BEGIN--------
|
||||||
|
;* C:\Atari\rmt\rmt128\schorch_str.rmt
|
||||||
|
FEAT_SFX equ 1
|
||||||
|
FEAT_GLOBALVOLUMEFADE equ 0 ;RMTGLOBALVOLUMEFADE variable
|
||||||
|
FEAT_NOSTARTINGSONGLINE equ 0
|
||||||
|
FEAT_INSTRSPEED equ 1
|
||||||
|
FEAT_CONSTANTSPEED equ 0 ;(19 times)
|
||||||
|
FEAT_COMMAND1 equ 1 ;(18 times)
|
||||||
|
FEAT_COMMAND2 equ 0 ;(0 times)
|
||||||
|
FEAT_COMMAND3 equ 0 ;(0 times)
|
||||||
|
FEAT_COMMAND4 equ 0 ;(0 times)
|
||||||
|
FEAT_COMMAND5 equ 0 ;(0 times)
|
||||||
|
FEAT_COMMAND6 equ 0 ;(0 times)
|
||||||
|
FEAT_COMMAND7SETNOTE equ 0 ;(0 times)
|
||||||
|
FEAT_COMMAND7VOLUMEONLY equ 0 ;(0 times)
|
||||||
|
FEAT_PORTAMENTO equ 0 ;(0 times)
|
||||||
|
FEAT_FILTER equ 1 ;(44 times)
|
||||||
|
FEAT_FILTERG0L equ 1 ;(13 times)
|
||||||
|
FEAT_FILTERG1L equ 1 ;(22 times)
|
||||||
|
FEAT_FILTERG0R equ 0 ;(0 times)
|
||||||
|
FEAT_FILTERG1R equ 0 ;(0 times)
|
||||||
|
FEAT_BASS16 equ 0 ;(0 times)
|
||||||
|
FEAT_BASS16G1L equ 0 ;(0 times)
|
||||||
|
FEAT_BASS16G3L equ 0 ;(0 times)
|
||||||
|
FEAT_BASS16G1R equ 0 ;(0 times)
|
||||||
|
FEAT_BASS16G3R equ 0 ;(0 times)
|
||||||
|
FEAT_VOLUMEONLYG0L equ 0 ;(0 times)
|
||||||
|
FEAT_VOLUMEONLYG2L equ 0 ;(0 times)
|
||||||
|
FEAT_VOLUMEONLYG3L equ 0 ;(0 times)
|
||||||
|
FEAT_VOLUMEONLYG0R equ 0 ;(0 times)
|
||||||
|
FEAT_VOLUMEONLYG2R equ 0 ;(0 times)
|
||||||
|
FEAT_VOLUMEONLYG3R equ 0 ;(0 times)
|
||||||
|
FEAT_TABLETYPE equ 0 ;(0 times)
|
||||||
|
FEAT_TABLEMODE equ 0 ;(0 times)
|
||||||
|
FEAT_TABLEGO equ 1 ;(1 times)
|
||||||
|
FEAT_AUDCTLMANUALSET equ 1 ;(6 times)
|
||||||
|
FEAT_VOLUMEMIN equ 0 ;(0 times)
|
||||||
|
FEAT_EFFECTVIBRATO equ 1 ;(3 times)
|
||||||
|
FEAT_EFFECTFSHIFT equ 1 ;(11 times)
|
||||||
|
;* --------END--------
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
STEREOMODE equ 0
|
||||||
|
;* --------BEGIN--------
|
||||||
|
;* C:\Atari\rmt\rmt128\schorch_str2.rmt
|
||||||
|
FEAT_SFX equ 1
|
||||||
|
FEAT_GLOBALVOLUMEFADE equ 0 ;RMTGLOBALVOLUMEFADE variable
|
||||||
|
FEAT_NOSTARTINGSONGLINE equ 0
|
||||||
|
FEAT_INSTRSPEED equ 1
|
||||||
|
FEAT_CONSTANTSPEED equ 0 ;(19 times)
|
||||||
|
FEAT_COMMAND1 equ 1 ;(18 times)
|
||||||
|
FEAT_COMMAND2 equ 0 ;(0 times)
|
||||||
|
FEAT_COMMAND3 equ 0 ;(0 times)
|
||||||
|
FEAT_COMMAND4 equ 0 ;(0 times)
|
||||||
|
FEAT_COMMAND5 equ 0 ;(0 times)
|
||||||
|
FEAT_COMMAND6 equ 0 ;(0 times)
|
||||||
|
FEAT_COMMAND7SETNOTE equ 0 ;(0 times)
|
||||||
|
FEAT_COMMAND7VOLUMEONLY equ 0 ;(0 times)
|
||||||
|
FEAT_PORTAMENTO equ 0 ;(0 times)
|
||||||
|
FEAT_FILTER equ 1 ;(44 times)
|
||||||
|
FEAT_FILTERG0L equ 1 ;(13 times)
|
||||||
|
FEAT_FILTERG1L equ 1 ;(22 times)
|
||||||
|
FEAT_FILTERG0R equ 0 ;(0 times)
|
||||||
|
FEAT_FILTERG1R equ 0 ;(0 times)
|
||||||
|
FEAT_BASS16 equ 0 ;(0 times)
|
||||||
|
FEAT_BASS16G1L equ 0 ;(0 times)
|
||||||
|
FEAT_BASS16G3L equ 0 ;(0 times)
|
||||||
|
FEAT_BASS16G1R equ 0 ;(0 times)
|
||||||
|
FEAT_BASS16G3R equ 0 ;(0 times)
|
||||||
|
FEAT_VOLUMEONLYG0L equ 0 ;(0 times)
|
||||||
|
FEAT_VOLUMEONLYG2L equ 0 ;(0 times)
|
||||||
|
FEAT_VOLUMEONLYG3L equ 0 ;(0 times)
|
||||||
|
FEAT_VOLUMEONLYG0R equ 0 ;(0 times)
|
||||||
|
FEAT_VOLUMEONLYG2R equ 0 ;(0 times)
|
||||||
|
FEAT_VOLUMEONLYG3R equ 0 ;(0 times)
|
||||||
|
FEAT_TABLETYPE equ 0 ;(0 times)
|
||||||
|
FEAT_TABLEMODE equ 0 ;(0 times)
|
||||||
|
FEAT_TABLEGO equ 1 ;(2 times)
|
||||||
|
FEAT_AUDCTLMANUALSET equ 1 ;(6 times)
|
||||||
|
FEAT_VOLUMEMIN equ 0 ;(0 times)
|
||||||
|
FEAT_EFFECTVIBRATO equ 1 ;(3 times)
|
||||||
|
FEAT_EFFECTFSHIFT equ 1 ;(11 times)
|
||||||
|
;* --------END--------
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
;* --------BEGIN--------
|
|
||||||
;* Z:\home\pkalinowski\Seafile\atari\projects\scorch_src\artwork\sfx\scorch_trial07_stripped.rmt
|
|
||||||
FEAT_SFX equ 1
|
|
||||||
FEAT_GLOBALVOLUMEFADE equ 0 ;RMTGLOBALVOLUMEFADE variable
|
|
||||||
FEAT_NOSTARTINGSONGLINE equ 0
|
|
||||||
FEAT_INSTRSPEED equ 1
|
|
||||||
FEAT_CONSTANTSPEED equ 16 ;(0 times)
|
|
||||||
FEAT_COMMAND1 equ 1 ;(4 times)
|
|
||||||
FEAT_COMMAND2 equ 0 ;(0 times)
|
|
||||||
FEAT_COMMAND3 equ 0 ;(0 times)
|
|
||||||
FEAT_COMMAND4 equ 0 ;(0 times)
|
|
||||||
FEAT_COMMAND5 equ 0 ;(0 times)
|
|
||||||
FEAT_COMMAND6 equ 0 ;(0 times)
|
|
||||||
FEAT_COMMAND7SETNOTE equ 0 ;(0 times)
|
|
||||||
FEAT_COMMAND7VOLUMEONLY equ 0 ;(0 times)
|
|
||||||
FEAT_PORTAMENTO equ 0 ;(0 times)
|
|
||||||
FEAT_FILTER equ 1 ;(22 times)
|
|
||||||
FEAT_FILTERG0L equ 0 ;(0 times)
|
|
||||||
FEAT_FILTERG1L equ 0 ;(0 times)
|
|
||||||
FEAT_FILTERG0R equ 0 ;(0 times)
|
|
||||||
FEAT_FILTERG1R equ 0 ;(0 times)
|
|
||||||
FEAT_BASS16 equ 0 ;(0 times)
|
|
||||||
FEAT_BASS16G1L equ 0 ;(0 times)
|
|
||||||
FEAT_BASS16G3L equ 0 ;(0 times)
|
|
||||||
FEAT_BASS16G1R equ 0 ;(0 times)
|
|
||||||
FEAT_BASS16G3R equ 0 ;(0 times)
|
|
||||||
FEAT_VOLUMEONLYG0L equ 0 ;(0 times)
|
|
||||||
FEAT_VOLUMEONLYG2L equ 0 ;(0 times)
|
|
||||||
FEAT_VOLUMEONLYG3L equ 0 ;(0 times)
|
|
||||||
FEAT_VOLUMEONLYG0R equ 0 ;(0 times)
|
|
||||||
FEAT_VOLUMEONLYG2R equ 0 ;(0 times)
|
|
||||||
FEAT_VOLUMEONLYG3R equ 0 ;(0 times)
|
|
||||||
FEAT_TABLETYPE equ 0 ;(0 times)
|
|
||||||
FEAT_TABLEMODE equ 0 ;(0 times)
|
|
||||||
FEAT_TABLEGO equ 1 ;(1 times)
|
|
||||||
FEAT_AUDCTLMANUALSET equ 1 ;(4 times)
|
|
||||||
FEAT_VOLUMEMIN equ 0 ;(0 times)
|
|
||||||
FEAT_EFFECTVIBRATO equ 0 ;(0 times)
|
|
||||||
FEAT_EFFECTFSHIFT equ 1 ;(7 times)
|
|
||||||
;* --------END--------
|
|
||||||
@@ -1,4 +1,3 @@
|
|||||||
.echo *
|
|
||||||
;*
|
;*
|
||||||
;* Raster Music Tracker, RMT Atari routine version 1.20090108
|
;* Raster Music Tracker, RMT Atari routine version 1.20090108
|
||||||
;* (c) Radek Sterba, Raster/C.P.U., 2002 - 2009
|
;* (c) Radek Sterba, Raster/C.P.U., 2002 - 2009
|
||||||
@@ -17,18 +16,40 @@
|
|||||||
;*
|
;*
|
||||||
;* 3. Because of RMTplayer provides a lot of effects, it spent a lot of CPU time.
|
;* 3. Because of RMTplayer provides a lot of effects, it spent a lot of CPU time.
|
||||||
;*
|
;*
|
||||||
STEREOMODE equ 0 ;0 => compile RMTplayer for 4 tracks mono
|
;* STEREOMODE equ 0..3 ;0 => compile RMTplayer for 4 tracks mono
|
||||||
;* ;1 => compile RMTplayer for 8 tracks stereo
|
;* ;1 => compile RMTplayer for 8 tracks stereo
|
||||||
;* ;2 => compile RMTplayer for 4 tracks stereo L1 R2 R3 L4
|
;* ;2 => compile RMTplayer for 4 tracks stereo L1 R2 R3 L4
|
||||||
;* ;3 => compile RMTplayer for 4 tracks stereo L1 L2 R3 R4
|
;* ;3 => compile RMTplayer for 4 tracks stereo L1 L2 R3 R4
|
||||||
;*
|
;*
|
||||||
; IFT STEREOMODE==1
|
IFT STEREOMODE==1
|
||||||
;TRACKS equ 8
|
TRACKS equ 8
|
||||||
; ELS
|
ELS
|
||||||
TRACKS equ 4
|
TRACKS equ 4
|
||||||
; EIF
|
EIF
|
||||||
;*
|
;*
|
||||||
PLAYER = *
|
;*PLAYER equ $3400
|
||||||
|
;*
|
||||||
|
;* RMT FEATures definitions file
|
||||||
|
;* For optimizations of RMT player routine to concrete RMT modul only!
|
||||||
|
icl "feat.txt"
|
||||||
|
;*
|
||||||
|
;* RMT ZeroPage addresses
|
||||||
|
org RMT_Zero_Page_V
|
||||||
|
p_tis
|
||||||
|
p_instrstable org *+2
|
||||||
|
p_trackslbstable org *+2
|
||||||
|
p_trackshbstable org *+2
|
||||||
|
p_song org *+2
|
||||||
|
ns org *+2
|
||||||
|
nr org *+2
|
||||||
|
nt org *+2
|
||||||
|
reg1 org *+1
|
||||||
|
reg2 org *+1
|
||||||
|
reg3 org *+1
|
||||||
|
tmp org *+1
|
||||||
|
IFT FEAT_COMMAND2
|
||||||
|
frqaddcmd2 org *+1
|
||||||
|
EIF
|
||||||
IFT TRACKS>4
|
IFT TRACKS>4
|
||||||
org PLAYER-$400+$40
|
org PLAYER-$400+$40
|
||||||
ELS
|
ELS
|
||||||
@@ -745,8 +766,9 @@ ei4
|
|||||||
IFT 1==[FEAT_COMMAND1+FEAT_COMMAND2+FEAT_COMMAND3+FEAT_COMMAND4+FEAT_COMMAND5+FEAT_COMMAND6+[FEAT_COMMAND7SETNOTE||FEAT_COMMAND7VOLUMEONLY]]
|
IFT 1==[FEAT_COMMAND1+FEAT_COMMAND2+FEAT_COMMAND3+FEAT_COMMAND4+FEAT_COMMAND5+FEAT_COMMAND6+[FEAT_COMMAND7SETNOTE||FEAT_COMMAND7VOLUMEONLY]]
|
||||||
beq cmd0
|
beq cmd0
|
||||||
ELS
|
ELS
|
||||||
lsr @
|
; lsr @
|
||||||
lsr @
|
; lsr @
|
||||||
|
lda #0 ; my fix :)
|
||||||
sta jmx+1
|
sta jmx+1
|
||||||
jmx bcc *
|
jmx bcc *
|
||||||
jmp cmd0
|
jmp cmd0
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Executable → Regular
+121
-118
@@ -1,125 +1,128 @@
|
|||||||
.proc talk
|
.proc talk
|
||||||
L0 dta c"IN TIMES OF TROUBLE, GO WITH WHAT YOU KNOW."
|
L0 dta d"IN TIMES OF TROUBLE, GO WITH WHAT YOU KNOW."
|
||||||
L1 dta c"DIE!"
|
L1 dta d"DIE!"
|
||||||
L2 dta c"EAT MY SHORTS!"
|
L2 dta d"EAT MY SHORTS!"
|
||||||
L3 dta c"YOU'RE TOAST!"
|
L3 dta d"YOU'RE TOAST!"
|
||||||
L4 dta c"BANZAI!"
|
L4 dta d"BANZAI!"
|
||||||
L5 dta c"FROM HELL'S HEART I STAB AT THEE..."
|
L5 dta d"FROM HELL'S HEART I STAB AT THEE..."
|
||||||
L6 dta c"I DIDN'T DO IT. NOBODY SAW ME DO IT."
|
L6 dta d"I DIDN'T DO IT. NOBODY SAW ME DO IT."
|
||||||
L7 dta c"TAKE A HIKE!"
|
L7 dta d"TAKE A HIKE!"
|
||||||
L8 dta c"YOU'RE DEAD MEAT."
|
L8 dta d"YOU'RE DEAD MEAT."
|
||||||
L9 dta c"MAKE MY DAY."
|
L9 dta d"MAKE MY DAY."
|
||||||
L10 dta c"CHARGE!"
|
L10 dta d"CHARGE!"
|
||||||
L11 dta c"ATTACK!"
|
L11 dta d"ATTACK!"
|
||||||
L12 dta c"YOU'RE OUTTA HERE."
|
L12 dta d"YOU'RE OUTTA HERE."
|
||||||
L13 dta c"WATTSA MATTA YOU?"
|
L13 dta d"WATTSA MATTA YOU?"
|
||||||
L14 dta c"FREEZE, OR I'LL SHOOT!"
|
L14 dta d"FREEZE, OR I'LL SHOOT!"
|
||||||
L15 dta c"HA HA HA."
|
L15 dta d"HA HA HA."
|
||||||
L16 dta c"WE COME IN PEACE - SHOOT TO KILL!"
|
L16 dta d"WE COME IN PEACE - SHOOT TO KILL!"
|
||||||
L17 dta c"IN YOUR FACE!"
|
L17 dta d"IN YOUR FACE!"
|
||||||
L18 dta c"DIE COMMIE PIG!"
|
L18 dta d"DIE COMMIE PIG!"
|
||||||
L19 dta c"I LOVE THE SMELL OF NAPALM IN THE MORNING."
|
L19 dta d"I LOVE THE SMELL OF NAPALM IN THE MORNING."
|
||||||
L20 dta c"VICTORY!"
|
L20 dta d"VICTORY!"
|
||||||
L21 dta c"SHOW SOME RESPECT."
|
L21 dta d"SHOW SOME RESPECT."
|
||||||
L22 dta c"JUST WHO DO YOU THINK YOU ARE?"
|
L22 dta d"JUST WHO DO YOU THINK YOU ARE?"
|
||||||
L23 dta c"LOOK OUT BELOW!"
|
L23 dta d"LOOK OUT BELOW!"
|
||||||
L24 dta c"KNOCK, KNOCK."
|
L24 dta d"KNOCK, KNOCK."
|
||||||
L25 dta c"LOOK OVER THERE."
|
L25 dta d"LOOK OVER THERE."
|
||||||
L26 dta c"GUESS WHAT'S COMING FOR DINNER?"
|
L26 dta d"GUESS WHAT'S COMING FOR DINNER?"
|
||||||
L27 dta c"MERRY CHRISTMAS."
|
L27 dta d"MERRY CHRISTMAS."
|
||||||
L28 dta c"OPEN WIDE!"
|
L28 dta d"OPEN WIDE!"
|
||||||
L29 dta c"HERE GOES NOTHING..."
|
L29 dta d"HERE GOES NOTHING..."
|
||||||
L30 dta c"DON'T WORRY, IT ISN'T A LIVE ROUND."
|
L30 dta d"DON'T WORRY, IT ISN'T A LIVE ROUND."
|
||||||
L31 dta c"BLOOD, PAIN, VIOLENCE!"
|
L31 dta d"BLOOD, PAIN, VIOLENCE!"
|
||||||
L32 dta c"TAKE THIS, SISSY!"
|
L32 dta d"TAKE THIS, SISSY!"
|
||||||
L33 dta c"I SHALL FLATTEN YOU!"
|
L33 dta d"I SHALL FLATTEN YOU!"
|
||||||
L34 dta c"I SHALL SMASH YOUR UGLY TANK!"
|
L34 dta d"I SHALL SMASH YOUR UGLY TANK!"
|
||||||
L35 dta c"I WONDER WHAT THIS BUTTON DOES?"
|
L35 dta d"I WONDER WHAT THIS BUTTON DOES?"
|
||||||
L36 dta c"DON'T TAKE THIS PERSONALLY."
|
L36 dta d"DON'T TAKE THIS PERSONALLY."
|
||||||
L37 dta c"WOULD THIS MAKE YOU MAD?"
|
L37 dta d"WOULD THIS MAKE YOU MAD?"
|
||||||
L38 dta c"I TOLD YOU TO LEAVE MY SISTER ALONE!"
|
L38 dta d"I TOLD YOU TO LEAVE MY SISTER ALONE!"
|
||||||
L39 dta c"I COULD SPARE YOU, BUT WHY?"
|
L39 dta d"I COULD SPARE YOU, BUT WHY?"
|
||||||
L40 dta c"MY BOMB IS BIGGER THAN YOURS."
|
L40 dta d"MY BOMB IS BIGGER THAN YOURS."
|
||||||
L41 dta c"DON'T FORGET ABOUT ME!"
|
L41 dta d"DON'T FORGET ABOUT ME!"
|
||||||
L42 dta c"HASTA LA VISTA, BABY!"
|
L42 dta d"HASTA LA VISTA, BABY!"
|
||||||
L43 dta c"THIS IS YOUR BRAIN ON SCORCH."
|
L43 dta d"THIS IS YOUR BRAIN ON SCORCH."
|
||||||
L44 dta c"TAKE THIS!"
|
L44 dta d"TAKE THIS!"
|
||||||
L45 dta c"THIS SCREEN AIN'T BIG ENOUGH FOR THE BOTH OF US."
|
L45 dta d"THIS SCREEN AIN'T BIG ENOUGH FOR THE BOTH OF US."
|
||||||
L46 dta c"DIE, ALIEN SWINE!"
|
L46 dta d"DIE, ALIEN SWINE!"
|
||||||
L47 dta c"SAY ARRGGHHHHH...."
|
L47 dta d"SAY ARRGGHHHHH...."
|
||||||
L48 dta c"I SHALL OIL MY TURRET WITH YOUR BLOOD."
|
L48 dta d"I SHALL OIL MY TURRET WITH YOUR BLOOD."
|
||||||
L49 dta c"DIE, TANK-SCUM!"
|
L49 dta d"DIE, TANK-SCUM!"
|
||||||
L50 dta c"I'M GONNA BREAK YOUR FACE!"
|
L50 dta d"I'M GONNA BREAK YOUR FACE!"
|
||||||
L51 dta c"MAMA SAID KNOCK YOU OUT!"
|
L51 dta d"MAMA SAID KNOCK YOU OUT!"
|
||||||
L52 dta c"I HOPE YOU ENJOY PAIN!"
|
L52 dta d"I HOPE YOU ENJOY PAIN!"
|
||||||
;--------------------------------
|
;--------------------------------
|
||||||
L53 dta c"PARTING IS SUCH SWEET SORROW... NOT!"
|
L53 dta d"PARTING IS SUCH SWEET SORROW... NOT!"
|
||||||
L54 dta c"UGH!"
|
L54 dta d"UGH!"
|
||||||
L55 dta c"AARGH!"
|
L55 dta d"AARGH!"
|
||||||
L56 dta c"AAAGGHHH!"
|
L56 dta d"AAAGGHHH!"
|
||||||
L57 dta c"I'M MELTING!"
|
L57 dta d"I'M MELTING!"
|
||||||
L58 dta c"OOF.."
|
L58 dta d"OOF.."
|
||||||
L59 dta c"OH!"
|
L59 dta d"OH!"
|
||||||
L60 dta c"EEEK!"
|
L60 dta d"EEEK!"
|
||||||
L61 dta c"AACCH!"
|
L61 dta d"AACCH!"
|
||||||
L62 dta c"I HATE IT WHEN THAT HAPPENS."
|
L62 dta d"I HATE IT WHEN THAT HAPPENS."
|
||||||
L63 dta c"ONE DIRECT HIT CAN RUIN YOUR WHOLE DAY."
|
L63 dta d"ONE DIRECT HIT CAN RUIN YOUR WHOLE DAY."
|
||||||
L64 dta c"OH NO!"
|
L64 dta d"OH NO!"
|
||||||
L65 dta c"NOT ME!"
|
L65 dta d"NOT ME!"
|
||||||
L66 dta c"OUCH."
|
L66 dta d"OUCH."
|
||||||
L67 dta c"OH NO, NOT AGAIN."
|
L67 dta d"OH NO, NOT AGAIN."
|
||||||
L68 dta c"ANOTHER ONE BITES THE DUST."
|
L68 dta d"ANOTHER ONE BITES THE DUST."
|
||||||
L69 dta c"GOODBYE."
|
L69 dta d"GOODBYE."
|
||||||
L70 dta c"HELP ME!"
|
L70 dta d"HELP ME!"
|
||||||
L71 dta c"FAREWELL, CRUEL WORLD."
|
L71 dta d"FAREWELL, CRUEL WORLD."
|
||||||
L72 dta c"REMEMBER THE ALAMO!"
|
L72 dta d"REMEMBER THE ALAMO!"
|
||||||
L73 dta c"OH MAN!"
|
L73 dta d"OH MAN!"
|
||||||
L74 dta c"DOOUGH!"
|
L74 dta d"DOOUGH!"
|
||||||
L75 dta c"ANOTHER DAY, ANOTHER BOMB."
|
L75 dta d"ANOTHER DAY, ANOTHER BOMB."
|
||||||
L76 dta c"THIS IS THE END, MY ONLY FRIEND."
|
L76 dta d"THIS IS THE END, MY ONLY FRIEND."
|
||||||
L77 dta c"IT'S ALL OVER."
|
L77 dta d"IT'S ALL OVER."
|
||||||
L78 dta c"THE FAT LADY SANG."
|
L78 dta d"THE FAT LADY SANG."
|
||||||
L79 dta c"WHY DOES EVERYTHING HAPPEN TO ME?"
|
L79 dta d"WHY DOES EVERYTHING HAPPEN TO ME?"
|
||||||
L80 dta c"I'M GOING DOWN."
|
L80 dta d"I'M GOING DOWN."
|
||||||
L81 dta c"I'VE GOT A BAD FEELING ABOUT THIS."
|
L81 dta d"I'VE GOT A BAD FEELING ABOUT THIS."
|
||||||
L82 dta c"CRAPOLA."
|
L82 dta d"CRAPOLA."
|
||||||
L83 dta c"POW!"
|
L83 dta d"POW!"
|
||||||
L84 dta c"BIF!"
|
L84 dta d"BIF!"
|
||||||
L85 dta c"BAM!"
|
L85 dta d"BAM!"
|
||||||
L86 dta c"ZONK!"
|
L86 dta d"ZONK!"
|
||||||
L87 dta c"I SHOULD'VE LISTENED TO MY MOTHER..."
|
L87 dta d"I SHOULD'VE LISTENED TO MY MOTHER..."
|
||||||
L88 dta c"NO... A BUD LIGHT!"
|
L88 dta d"NO... A BUD LIGHT!"
|
||||||
L89 dta c"WHAT WAS THAT NOISE?"
|
L89 dta d"WHAT WAS THAT NOISE?"
|
||||||
L90 dta c"MAMA SAID THERE'D BE DAYS LIKE THIS."
|
L90 dta d"MAMA SAID THERE'D BE DAYS LIKE THIS."
|
||||||
L91 dta c"ITS JUST ONE OF THOSE DAYS..."
|
L91 dta d"ITS JUST ONE OF THOSE DAYS..."
|
||||||
L92 dta c"I SEE A BRIGHT LIGHT..."
|
L92 dta d"I SEE A BRIGHT LIGHT..."
|
||||||
L93 dta c"MOMMY? IS THAT YOU?"
|
L93 dta d"MOMMY? IS THAT YOU?"
|
||||||
L94 dta c"I LET YOU HIT ME!"
|
L94 dta d"I LET YOU HIT ME!"
|
||||||
L95 dta c"SUCKER SHOT!"
|
L95 dta d"SUCKER SHOT!"
|
||||||
L96 dta c"I DIDN'T WANT TO LIVE ANYWAY."
|
L96 dta d"I DIDN'T WANT TO LIVE ANYWAY."
|
||||||
L97 dta c"-<SOB>-"
|
L97 dta d"-<SOB>-"
|
||||||
L98 dta c"WAS THAT AS CLOSE AS I THINK IT WAS?"
|
L98 dta d"WAS THAT AS CLOSE AS I THINK IT WAS?"
|
||||||
L99 dta c"JOIN THE ARMY, SEE THE WORLD THEY SAID."
|
L99 dta d"JOIN THE ARMY, SEE THE WORLD THEY SAID."
|
||||||
L100 dta c"IT WASN'T JUST A JOB IT WAS AN ADVENTURE!"
|
L100 dta d"IT WASN'T JUST A JOB IT WAS AN ADVENTURE!"
|
||||||
L101 dta c"I DIDN'T LIKE VIOLENCE ANYWAY!"
|
L101 dta d"I DIDN'T LIKE VIOLENCE ANYWAY!"
|
||||||
L102 dta c"I THOUGHT YOU LIKED ME?"
|
L102 dta d"I THOUGHT YOU LIKED ME?"
|
||||||
L103 dta c"SUCH SENSELESS VIOLENCE! I DON'T UNDERSTAND IT."
|
L103 dta d"SUCH SENSELESS VIOLENCE! I DON'T UNDERSTAND IT."
|
||||||
L104 dta c"I THINK THIS GUY'S A LITTLE CRAZY."
|
L104 dta d"I THINK THIS GUY'S A LITTLE CRAZY."
|
||||||
L105 dta c"SOMEHOW I DON'T FEEL LIKE KILLING ANYMORE."
|
L105 dta d"SOMEHOW I DON'T FEEL LIKE KILLING ANYMORE."
|
||||||
L106 dta c"HEY! KILLIN' AIN'T COOL."
|
L106 dta d"HEY! KILLIN' AIN'T COOL."
|
||||||
L107 dta c"GEE... THANKS."
|
L107 dta d"GEE... THANKS."
|
||||||
L108 dta c"I'VE FALLEN AND I CAN'T GET UP!"
|
L108 dta d"I'VE FALLEN AND I CAN'T GET UP!"
|
||||||
L109 dta c"911?"
|
L109 dta d"911?"
|
||||||
L110 dta c"OH NO! HERE I BLOW AGAIN!"
|
L110 dta d"OH NO! HERE I BLOW AGAIN!"
|
||||||
L111 dta c"I'LL BE BACK..."
|
L111 dta d"I'LL BE BACK..."
|
||||||
L112 dta c"HEY - I'VE GOT LAWYERS."
|
L112 dta d"HEY - I'VE GOT LAWYERS."
|
||||||
L113 dta c"TIME TO CALL 1-900-SUE-TANK."
|
L113 dta d"TIME TO CALL 1-900-SUE-TANK."
|
||||||
|
LEND
|
||||||
OffensiveTextTableL
|
OffensiveTextTableL
|
||||||
dta <L0,<L1,<L2,<L3,<L4,<L5,<L6,<L7,<L8,<L9,<L10,<L11,<L12,<L13,<L14,<L15,<L16,<L17,<L18,<L19,<L20,<L21,<L22,<L23,<L24,<L25,<L26,<L27,<L28,<L29,<L30,<L31,<L32,<L33,<L34,<L35,<L36,<L37,<L38,<L39,<L40,<L41,<L42,<L43,<L44,<L45,<L46,<L47,<L48,<L49,<L50,<L51,<L52,<L53,<L54,<L55,<L56,<L57,<L58,<L59,<L60,<L61,<L62,<L63,<L64,<L65,<L66,<L67,<L68,<L69,<L70,<L71,<L72,<L73,<L74,<L75,<L76,<L77,<L78,<L79,<L80,<L81,<L82,<L83,<L84,<L85,<L86,<L87,<L88,<L89,<L90,<L91,<L92,<L93,<L94,<L95,<L96,<L97,<L98,<L99,<L100,<L101,<L102,<L103,<L104,<L105,<L106,<L107,<L108,<L109,<L110,<L111,<L112,<L113
|
dta <L0,<L1,<L2,<L3,<L4,<L5,<L6,<L7,<L8,<L9,<L10,<L11,<L12,<L13,<L14,<L15,<L16,<L17,<L18,<L19,<L20,<L21,<L22,<L23,<L24,<L25,<L26,<L27,<L28,<L29,<L30,<L31,<L32,<L33,<L34,<L35,<L36,<L37,<L38,<L39,<L40,<L41,<L42,<L43,<L44,<L45,<L46,<L47,<L48,<L49,<L50,<L51,<L52
|
||||||
|
dta <L53,<L54,<L55,<L56,<L57,<L58,<L59,<L60,<L61,<L62,<L63,<L64,<L65,<L66,<L67,<L68,<L69,<L70,<L71,<L72,<L73,<L74,<L75,<L76,<L77,<L78,<L79,<L80,<L81,<L82,<L83,<L84,<L85,<L86,<L87,<L88,<L89,<L90,<L91,<L92,<L93,<L94,<L95,<L96,<L97,<L98,<L99,<L100,<L101,<L102,<L103,<L104,<L105,<L106,<L107,<L108,<L109,<L110,<L111,<L112,<L113
|
||||||
|
dta <LEND
|
||||||
OffensiveTextTableH
|
OffensiveTextTableH
|
||||||
dta >L0,>L1,>L2,>L3,>L4,>L5,>L6,>L7,>L8,>L9,>L10,>L11,>L12,>L13,>L14,>L15,>L16,>L17,>L18,>L19,>L20,>L21,>L22,>L23,>L24,>L25,>L26,>L27,>L28,>L29,>L30,>L31,>L32,>L33,>L34,>L35,>L36,>L37,>L38,>L39,>L40,>L41,>L42,>L43,>L44,>L45,>L46,>L47,>L48,>L49,>L50,>L51,>L52,>L53,>L54,>L55,>L56,>L57,>L58,>L59,>L60,>L61,>L62,>L63,>L64,>L65,>L66,>L67,>L68,>L69,>L70,>L71,>L72,>L73,>L74,>L75,>L76,>L77,>L78,>L79,>L80,>L81,>L82,>L83,>L84,>L85,>L86,>L87,>L88,>L89,>L90,>L91,>L92,>L93,>L94,>L95,>L96,>L97,>L98,>L99,>L100,>L101,>L102,>L103,>L104,>L105,>L106,>L107,>L108,>L109,>L110,>L111,>L112,>L113
|
dta >L0,>L1,>L2,>L3,>L4,>L5,>L6,>L7,>L8,>L9,>L10,>L11,>L12,>L13,>L14,>L15,>L16,>L17,>L18,>L19,>L20,>L21,>L22,>L23,>L24,>L25,>L26,>L27,>L28,>L29,>L30,>L31,>L32,>L33,>L34,>L35,>L36,>L37,>L38,>L39,>L40,>L41,>L42,>L43,>L44,>L45,>L46,>L47,>L48,>L49,>L50,>L51,>L52
|
||||||
OffensiveTextLengths
|
dta >L53,>L54,>L55,>L56,>L57,>L58,>L59,>L60,>L61,>L62,>L63,>L64,>L65,>L66,>L67,>L68,>L69,>L70,>L71,>L72,>L73,>L74,>L75,>L76,>L77,>L78,>L79,>L80,>L81,>L82,>L83,>L84,>L85,>L86,>L87,>L88,>L89,>L90,>L91,>L92,>L93,>L94,>L95,>L96,>L97,>L98,>L99,>L100,>L101,>L102,>L103,>L104,>L105,>L106,>L107,>L108,>L109,>L110,>L111,>L112,>L113
|
||||||
dta 43,4,14,13,7,35,37,12,17,12,7,7,18,17,22,9,33,13,15,42,8,18,30,15,13,16,31,16,10,20,35,22,17,20,29,31,27,24,36,27,29,22,21,29,10,48,17,20,38,15,26,24,22,36,4,6,9,12,5,3,5,6,28,39,6,7,5,17,27,8,8,22,19,7,7,26,32,14,18,33,15,34,8,4,4,4,5,36,18,20,36,29,23,19,17,12,29,7,36,39,41,30,23,48,34,42,25,14,31,4,26,15,23,28
|
dta >LEND
|
||||||
NumberOfOffensiveTexts=54
|
NumberOfOffensiveTexts=54
|
||||||
NumberOfDeffensiveTexts=60
|
NumberOfDeffensiveTexts=60
|
||||||
.endp
|
.endp
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -1,48 +0,0 @@
|
|||||||
import sys
|
|
||||||
from string import strip
|
|
||||||
|
|
||||||
lineCount = 0
|
|
||||||
lengths = []
|
|
||||||
alltexts = []
|
|
||||||
|
|
||||||
for line in open("TALK1.txt"):
|
|
||||||
lineCount+=1
|
|
||||||
line = strip(line)
|
|
||||||
lengths.append(len(line))
|
|
||||||
alltexts.append(line)
|
|
||||||
off = lineCount
|
|
||||||
|
|
||||||
for line in open("TALK2.txt"):
|
|
||||||
lineCount+=1
|
|
||||||
line = strip(line)
|
|
||||||
lengths.append(len(line))
|
|
||||||
alltexts.append(line)
|
|
||||||
|
|
||||||
tmpNo = 0
|
|
||||||
for line in alltexts:
|
|
||||||
print ("L"+str(tmpNo)+' dta "'+line+'"')
|
|
||||||
tmpNo+= 1
|
|
||||||
l=""
|
|
||||||
for i in range(0,lineCount):
|
|
||||||
l+="<L"+str(i)+","
|
|
||||||
l=l[:-1]
|
|
||||||
print ("OffensiveTextTableL")
|
|
||||||
print (" dta "+l)
|
|
||||||
l=""
|
|
||||||
for i in range(0,lineCount):
|
|
||||||
l+=">L"+str(i)+","
|
|
||||||
l=l[:-1]
|
|
||||||
print ("OffensiveTextTableH")
|
|
||||||
print (" dta "+l)
|
|
||||||
|
|
||||||
l=""
|
|
||||||
for i in range(0,lineCount):
|
|
||||||
l+=str(lengths[i])+","
|
|
||||||
l=l[:-1]
|
|
||||||
print ("OffensiveTextLengths")
|
|
||||||
print (" dta "+l)
|
|
||||||
|
|
||||||
|
|
||||||
deff = lineCount-off
|
|
||||||
print ("NumberOfOffensiveTexts="+str(off))
|
|
||||||
print ("NumberOfDeffensiveTexts="+str(deff))
|
|
||||||
Binary file not shown.
Binary file not shown.
+211
-471
@@ -2,28 +2,46 @@
|
|||||||
|
|
||||||
.IF *>0 ;this is a trick that prevents compiling this file alone
|
.IF *>0 ;this is a trick that prevents compiling this file alone
|
||||||
|
|
||||||
|
; initial values for some variables
|
||||||
|
initialvaluesStart
|
||||||
|
I_OptionsTable .by 0,1,2,2,0,1,3,2
|
||||||
|
I_RoundsInTheGame .by 10 ;how many rounds in the current game
|
||||||
|
I_seppukuVal .by 75
|
||||||
|
I_mountainDeltaH .by 3
|
||||||
|
I_mountainDeltaL .by $ff
|
||||||
|
;----------------------------------------------------
|
||||||
|
; 4x4 text buffer
|
||||||
|
I_ResultLineBuffer
|
||||||
|
dta d" ", $ff
|
||||||
|
I_LineHeader1
|
||||||
|
dta d"# ROUND: "
|
||||||
|
I_RoundNrDisplay
|
||||||
|
dta d" #", $ff
|
||||||
|
initialvaluesCount = *-initialvaluesstart ; MAX 128 bytes !
|
||||||
;===================================================================================
|
;===================================================================================
|
||||||
;==========================CONSTANT TABLES, do not erase!===========================
|
;==========================CONSTANT TABLES, do not erase!===========================
|
||||||
;===================================================================================
|
;===================================================================================
|
||||||
TankColoursTable .BYTE $88,$cc,$38,$1c,$6a,$02
|
TankColoursTable .BYTE $58,$2a,$96,$ca,$7a,$de
|
||||||
TankStatusColoursTable .BYTE $80,$c0,$30,$10,$60,$00
|
TankStatusColoursTable .BYTE $54,$24,$94,$c4,$74,$d4
|
||||||
|
TankShapesTable .BYTE char_tank1___________,char_tank2___________,char_tank3___________
|
||||||
|
.BYTE char_tank1___________,char_tank2___________,char_tank3___________
|
||||||
dliColorsBack
|
dliColorsBack
|
||||||
:10 .by $02,$00
|
:10 .by $02,$00
|
||||||
dliColorsFore
|
dliColorsFore
|
||||||
.by $0a
|
.by $0a
|
||||||
TextBackgroundColor = $02 ; REAL constans - use: LDA #TextBackgroundColor
|
|
||||||
TextForegroundColor = $0c
|
|
||||||
CashOptionL ;(one zero less than on the screen)
|
CashOptionL ;(one zero less than on the screen)
|
||||||
.by 0,<200,<500,<800,<1000
|
.by 0,<200,<800,<1200,<2000
|
||||||
CashOptionH
|
CashOptionH
|
||||||
.by 0,>200,>500,>800,>1000
|
.by 0,>200,>800,>1200,>2000
|
||||||
GravityTable .by 10,20,25,30,40
|
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
|
RoundsTable .by 10,20,30,40,50
|
||||||
|
AIForceTable .wo 375,470,630,720,820 ; starting shoot forces for different gravity
|
||||||
flyDelayTable .by 255,150,75,35,1
|
flyDelayTable .by 255,150,75,35,1
|
||||||
seppukuTable .by 255, 45,25,15,9
|
seppukuTable .by 255, 45,25,15,9
|
||||||
|
mountainsDeltaTableH .by 0,1,3,5,7
|
||||||
|
mountainsDeltaTableL .by $1f, $7f, $ff, $7f, $ff
|
||||||
;------------------------------------------------
|
;------------------------------------------------
|
||||||
|
|
||||||
LevelNameBeginL ; begins of level names
|
LevelNameBeginL ; begins of level names
|
||||||
.by <NamesOfLevels,<(NamesOfLevels+10),<(NamesOfLevels+20)
|
.by <NamesOfLevels,<(NamesOfLevels+10),<(NamesOfLevels+20)
|
||||||
.by <(NamesOfLevels+32),<(NamesOfLevels+42),<(NamesOfLevels+52)
|
.by <(NamesOfLevels+32),<(NamesOfLevels+42),<(NamesOfLevels+52)
|
||||||
@@ -37,72 +55,46 @@ TanksWeaponsTableL
|
|||||||
.by <TanksWeapon1,<TanksWeapon2,<TanksWeapon3,<TanksWeapon4,<TanksWeapon5,<TanksWeapon6
|
.by <TanksWeapon1,<TanksWeapon2,<TanksWeapon3,<TanksWeapon4,<TanksWeapon5,<TanksWeapon6
|
||||||
TanksWeaponsTableH
|
TanksWeaponsTableH
|
||||||
.by >TanksWeapon1,>TanksWeapon2,>TanksWeapon3,>TanksWeapon4,>TanksWeapon5,>TanksWeapon6
|
.by >TanksWeapon1,>TanksWeapon2,>TanksWeapon3,>TanksWeapon4,>TanksWeapon5,>TanksWeapon6
|
||||||
|
;--------------
|
||||||
|
XtankOffsetGO_L
|
||||||
|
.by 6,56,106,156,206,0
|
||||||
|
XtankOffsetGO_H
|
||||||
|
.by 0,0,0,0,0,1
|
||||||
;-----4x4 texts-----
|
;-----4x4 texts-----
|
||||||
|
|
||||||
LineTop
|
LineTop
|
||||||
dta d"(%%%%%%%%%%%%)"
|
dta d"(%%%%%%%%%%%%)", $ff
|
||||||
.byte $ff
|
|
||||||
;# - vertical, () * +, % - horizontal
|
;# - vertical, () * +, % - horizontal
|
||||||
LineBottom
|
LineBottom
|
||||||
dta d"*%%%%%%%%%%%%+"
|
dta d"*%%%%%%%%%%%%+", $ff
|
||||||
.byte $ff
|
|
||||||
LineEmpty
|
LineEmpty
|
||||||
dta d"# #"
|
dta d"# #", $ff
|
||||||
.byte $ff
|
|
||||||
LineHeader2
|
LineHeader2
|
||||||
dta d"# RESULTS #"
|
dta d"# RESULTS #", $ff
|
||||||
.byte $ff
|
|
||||||
LineGameOver
|
LineGameOver
|
||||||
dta d"# GAME OVER #"
|
dta d"# GAME OVER #", $ff
|
||||||
.byte $ff
|
|
||||||
seppukuText
|
seppukuText
|
||||||
dta d"# SEPPUKU! #"
|
dta d"# SEPPUKU! #", $ff
|
||||||
.byte $ff
|
areYouSureText
|
||||||
|
dta d"# SURE? Y/N #", $ff
|
||||||
lineClear
|
lineClear
|
||||||
dta d" "
|
dta d" ", $ff
|
||||||
.byte $ff
|
|
||||||
|
|
||||||
|
|
||||||
;-----------
|
;-----------
|
||||||
pmtableL ; addressess of the P/M memory for 5 tanks (6th is without P/M background)
|
pmtableL ; addressess of the P/M memory for 6 tanks
|
||||||
.by <(pmgraph+$400)
|
.by <(pmgraph+$400)
|
||||||
.by <(pmgraph+$500)
|
.by <(pmgraph+$500)
|
||||||
.by <(pmgraph+$600)
|
.by <(pmgraph+$600)
|
||||||
.by <(pmgraph+$700)
|
.by <(pmgraph+$700)
|
||||||
.by <(pmgraph+$300) ; this is a missile background
|
.by <(pmgraph+$300) ; this is a missile background
|
||||||
|
.by <(pmgraph+$300) ; this is a missile background
|
||||||
pmtableH
|
pmtableH
|
||||||
.by >(pmgraph+$400)
|
.by >(pmgraph+$400)
|
||||||
.by >(pmgraph+$500)
|
.by >(pmgraph+$500)
|
||||||
.by >(pmgraph+$600)
|
.by >(pmgraph+$600)
|
||||||
.by >(pmgraph+$700)
|
.by >(pmgraph+$700)
|
||||||
.by >(pmgraph+$300)
|
.by >(pmgraph+$300)
|
||||||
|
.by >(pmgraph+$300)
|
||||||
;-----------
|
;-----------
|
||||||
; this table changes Angle to the appropriate tank character
|
|
||||||
BarrelTableL
|
|
||||||
.by $02,$02,$02,$02,$02,$02,$02,$02
|
|
||||||
.by $04,$04,$04,$04,$04,$04,$04,$04
|
|
||||||
.by $06,$06,$06,$06,$06,$06,$06,$06,$06
|
|
||||||
.by $08,$08,$08,$08,$08,$08,$08,$08
|
|
||||||
.by $0a,$0a,$0a,$0a,$0a,$0a,$0a,$0a
|
|
||||||
.by $0c,$0c,$0c,$0c,$0c,$0c,$0c,$0c,$0c
|
|
||||||
.by $0e,$0e,$0e,$0e,$0e,$0e,$0e,$0e
|
|
||||||
.by $10,$10,$10,$10,$10,$10,$10,$10
|
|
||||||
.by $12,$12,$12,$12,$12,$12,$12,$12,$12
|
|
||||||
.by $14,$14,$14,$14,$14,$14,$14,$14
|
|
||||||
.by $16,$16,$16,$16,$16,$16,$16,$16
|
|
||||||
BarrelTableR
|
|
||||||
.by $2c,$2c,$2c,$2c,$2c,$2c,$2c,$2c
|
|
||||||
.by $2a,$2a,$2a,$2a,$2a,$2a,$2a,$2a
|
|
||||||
.by $28,$28,$28,$28,$28,$28,$28,$28,$28
|
|
||||||
.by $26,$26,$26,$26,$26,$26,$26,$26
|
|
||||||
.by $24,$24,$24,$24,$24,$24,$24,$24
|
|
||||||
.by $22,$22,$22,$22,$22,$22,$22,$22,$22
|
|
||||||
.by $20,$20,$20,$20,$20,$20,$20,$20
|
|
||||||
.by $1e,$1e,$1e,$1e,$1e,$1e,$1e,$1e
|
|
||||||
.by $1c,$1c,$1c,$1c,$1c,$1c,$1c,$1c,$1c
|
|
||||||
.by $1a,$1a,$1a,$1a,$1a,$1a,$1a,$1a
|
|
||||||
.by $18,$18,$18,$18,$18,$18,$18,$18
|
|
||||||
|
|
||||||
sintable
|
sintable
|
||||||
.by 0
|
.by 0
|
||||||
.by 4
|
.by 4
|
||||||
@@ -217,328 +209,18 @@ disktance ;tanks distance
|
|||||||
|
|
||||||
; this table is for deciding where a tank should slide
|
; this table is for deciding where a tank should slide
|
||||||
; accordingly to what is below the tank
|
; accordingly to what is below the tank
|
||||||
; there are 3 bits used here
|
; values in table mean that tank is moving to the left
|
||||||
; bit 0 - go down
|
SlideLeftTable
|
||||||
; bit 1 - go left
|
.BY %00000001
|
||||||
; bit 2 - go right
|
.BY %00000010
|
||||||
; position in the table equals to bit pattern of soil below tank
|
.BY %00000011
|
||||||
|
.BY %00000100
|
||||||
|
.BY %00000101
|
||||||
|
.BY %00000110
|
||||||
|
.BY %00000111
|
||||||
|
.BY %00001100
|
||||||
|
|
||||||
WhereToSlideTable
|
|
||||||
; we have 3 bits, when set: 2 - go left, 1 - go right, 0 - go down
|
|
||||||
.BY %001 ; 00000000
|
|
||||||
.BY %101 ; 00000001
|
|
||||||
.BY %100 ; 00000010
|
|
||||||
.BY %100 ; 00000011
|
|
||||||
.BY %100 ; 00000100
|
|
||||||
.BY %100 ; 00000101
|
|
||||||
.BY %100 ; 00000110
|
|
||||||
.BY %100 ; 00000111
|
|
||||||
.BY %000 ; 00001000
|
|
||||||
.BY %000 ; 00001001
|
|
||||||
.BY %000 ; 00001010
|
|
||||||
.BY %000 ; 00001011
|
|
||||||
.BY %100 ; 00001100
|
|
||||||
.BY %000 ; 00001101
|
|
||||||
.BY %000 ; 00001110
|
|
||||||
.BY %000 ; 00001111
|
|
||||||
.BY %000 ; 00010000
|
|
||||||
.BY %000 ; 00010001
|
|
||||||
.BY %000 ; 00010010
|
|
||||||
.BY %000 ; 00010011
|
|
||||||
.BY %000 ; 00010100
|
|
||||||
.BY %000 ; 00010101
|
|
||||||
.BY %000 ; 00010110
|
|
||||||
.BY %000 ; 00010111
|
|
||||||
.BY %000 ; 00011000
|
|
||||||
.BY %000 ; 00011001
|
|
||||||
.BY %000 ; 00011010
|
|
||||||
.BY %000 ; 00011011
|
|
||||||
.BY %000 ; 00011100
|
|
||||||
.BY %000 ; 00011101
|
|
||||||
.BY %000 ; 00011110
|
|
||||||
.BY %000 ; 00011111
|
|
||||||
.BY %010 ; 00100000
|
|
||||||
.BY %000 ; 00100001
|
|
||||||
.BY %000 ; 00100010
|
|
||||||
.BY %000 ; 00100011
|
|
||||||
.BY %000 ; 00100100
|
|
||||||
.BY %000 ; 00100101
|
|
||||||
.BY %000 ; 00100110
|
|
||||||
.BY %000 ; 00100111
|
|
||||||
.BY %000 ; 00101000
|
|
||||||
.BY %000 ; 00101001
|
|
||||||
.BY %000 ; 00101010
|
|
||||||
.BY %000 ; 00101011
|
|
||||||
.BY %000 ; 00101100
|
|
||||||
.BY %000 ; 00101101
|
|
||||||
.BY %000 ; 00101110
|
|
||||||
.BY %000 ; 00101111
|
|
||||||
.BY %010 ; 00110000
|
|
||||||
.BY %000 ; 00110001
|
|
||||||
.BY %000 ; 00110010
|
|
||||||
.BY %000 ; 00110011
|
|
||||||
.BY %000 ; 00110100
|
|
||||||
.BY %000 ; 00110101
|
|
||||||
.BY %000 ; 00110110
|
|
||||||
.BY %000 ; 00110111
|
|
||||||
.BY %000 ; 00111000
|
|
||||||
.BY %000 ; 00111001
|
|
||||||
.BY %000 ; 00111010
|
|
||||||
.BY %000 ; 00111011
|
|
||||||
.BY %000 ; 00111100
|
|
||||||
.BY %000 ; 00111101
|
|
||||||
.BY %000 ; 00111110
|
|
||||||
.BY %000 ; 00111111
|
|
||||||
.BY %010 ; 01000000
|
|
||||||
.BY %000 ; 01000001
|
|
||||||
.BY %000 ; 01000010
|
|
||||||
.BY %000 ; 01000011
|
|
||||||
.BY %000 ; 01000100
|
|
||||||
.BY %000 ; 01000101
|
|
||||||
.BY %000 ; 01000110
|
|
||||||
.BY %000 ; 01000111
|
|
||||||
.BY %000 ; 01001000
|
|
||||||
.BY %000 ; 01001001
|
|
||||||
.BY %000 ; 01001010
|
|
||||||
.BY %000 ; 01001011
|
|
||||||
.BY %000 ; 01001100
|
|
||||||
.BY %000 ; 01001101
|
|
||||||
.BY %000 ; 01001110
|
|
||||||
.BY %000 ; 01001111
|
|
||||||
.BY %000 ; 01010000
|
|
||||||
.BY %000 ; 01010001
|
|
||||||
.BY %000 ; 01010010
|
|
||||||
.BY %000 ; 01010011
|
|
||||||
.BY %000 ; 01010100
|
|
||||||
.BY %000 ; 01010101
|
|
||||||
.BY %000 ; 01010110
|
|
||||||
.BY %000 ; 01010111
|
|
||||||
.BY %000 ; 01011000
|
|
||||||
.BY %000 ; 01011001
|
|
||||||
.BY %000 ; 01011010
|
|
||||||
.BY %000 ; 01011011
|
|
||||||
.BY %000 ; 01011100
|
|
||||||
.BY %000 ; 01011101
|
|
||||||
.BY %000 ; 01011110
|
|
||||||
.BY %000 ; 01011111
|
|
||||||
.BY %010 ; 01100000
|
|
||||||
.BY %000 ; 01100001
|
|
||||||
.BY %000 ; 01100010
|
|
||||||
.BY %000 ; 01100011
|
|
||||||
.BY %000 ; 01100100
|
|
||||||
.BY %000 ; 01100101
|
|
||||||
.BY %000 ; 01100110
|
|
||||||
.BY %000 ; 01100111
|
|
||||||
.BY %000 ; 01101000
|
|
||||||
.BY %000 ; 01101001
|
|
||||||
.BY %000 ; 01101010
|
|
||||||
.BY %000 ; 01101011
|
|
||||||
.BY %000 ; 01101100
|
|
||||||
.BY %000 ; 01101101
|
|
||||||
.BY %000 ; 01101110
|
|
||||||
.BY %000 ; 01101111
|
|
||||||
.BY %000 ; 01110000
|
|
||||||
.BY %000 ; 01110001
|
|
||||||
.BY %000 ; 01110010
|
|
||||||
.BY %000 ; 01110011
|
|
||||||
.BY %000 ; 01110100
|
|
||||||
.BY %000 ; 01110101
|
|
||||||
.BY %000 ; 01110110
|
|
||||||
.BY %000 ; 01110111
|
|
||||||
.BY %000 ; 01111000
|
|
||||||
.BY %000 ; 01111001
|
|
||||||
.BY %000 ; 01111010
|
|
||||||
.BY %000 ; 01111011
|
|
||||||
.BY %000 ; 01111100
|
|
||||||
.BY %000 ; 01111101
|
|
||||||
.BY %000 ; 01111110
|
|
||||||
.BY %000 ; 01111111
|
|
||||||
.BY %011 ; 10000000
|
|
||||||
.BY %000 ; 10000001
|
|
||||||
.BY %000 ; 10000010
|
|
||||||
.BY %000 ; 10000011
|
|
||||||
.BY %000 ; 10000100
|
|
||||||
.BY %000 ; 10000101
|
|
||||||
.BY %000 ; 10000110
|
|
||||||
.BY %000 ; 10000111
|
|
||||||
.BY %000 ; 10001000
|
|
||||||
.BY %000 ; 10001001
|
|
||||||
.BY %000 ; 10001010
|
|
||||||
.BY %000 ; 10001011
|
|
||||||
.BY %000 ; 10001100
|
|
||||||
.BY %000 ; 10001101
|
|
||||||
.BY %000 ; 10001110
|
|
||||||
.BY %000 ; 10001111
|
|
||||||
.BY %000 ; 10010000
|
|
||||||
.BY %000 ; 10010001
|
|
||||||
.BY %000 ; 10010010
|
|
||||||
.BY %000 ; 10010011
|
|
||||||
.BY %000 ; 10010100
|
|
||||||
.BY %000 ; 10010101
|
|
||||||
.BY %000 ; 10010110
|
|
||||||
.BY %000 ; 10010111
|
|
||||||
.BY %000 ; 10011000
|
|
||||||
.BY %000 ; 10011001
|
|
||||||
.BY %000 ; 10011010
|
|
||||||
.BY %000 ; 10011011
|
|
||||||
.BY %000 ; 10011100
|
|
||||||
.BY %000 ; 10011101
|
|
||||||
.BY %000 ; 10011110
|
|
||||||
.BY %000 ; 10011111
|
|
||||||
.BY %010 ; 10100000
|
|
||||||
.BY %000 ; 10100001
|
|
||||||
.BY %000 ; 10100010
|
|
||||||
.BY %000 ; 10100011
|
|
||||||
.BY %000 ; 10100100
|
|
||||||
.BY %000 ; 10100101
|
|
||||||
.BY %000 ; 10100110
|
|
||||||
.BY %000 ; 10100111
|
|
||||||
.BY %000 ; 10101000
|
|
||||||
.BY %000 ; 10101001
|
|
||||||
.BY %000 ; 10101010
|
|
||||||
.BY %000 ; 10101011
|
|
||||||
.BY %000 ; 10101100
|
|
||||||
.BY %000 ; 10101101
|
|
||||||
.BY %000 ; 10101110
|
|
||||||
.BY %000 ; 10101111
|
|
||||||
.BY %000 ; 10110000
|
|
||||||
.BY %000 ; 10110001
|
|
||||||
.BY %000 ; 10110010
|
|
||||||
.BY %000 ; 10110011
|
|
||||||
.BY %000 ; 10110100
|
|
||||||
.BY %000 ; 10110101
|
|
||||||
.BY %000 ; 10110110
|
|
||||||
.BY %000 ; 10110111
|
|
||||||
.BY %000 ; 10111000
|
|
||||||
.BY %000 ; 10111001
|
|
||||||
.BY %000 ; 10111010
|
|
||||||
.BY %000 ; 10111011
|
|
||||||
.BY %000 ; 10111100
|
|
||||||
.BY %000 ; 10111101
|
|
||||||
.BY %000 ; 10111110
|
|
||||||
.BY %000 ; 10111111
|
|
||||||
.BY %010 ; 11000000
|
|
||||||
.BY %000 ; 11000001
|
|
||||||
.BY %000 ; 11000010
|
|
||||||
.BY %000 ; 11000011
|
|
||||||
.BY %000 ; 11000100
|
|
||||||
.BY %000 ; 11000101
|
|
||||||
.BY %000 ; 11000110
|
|
||||||
.BY %000 ; 11000111
|
|
||||||
.BY %000 ; 11001000
|
|
||||||
.BY %000 ; 11001001
|
|
||||||
.BY %000 ; 11001010
|
|
||||||
.BY %000 ; 11001011
|
|
||||||
.BY %000 ; 11001100
|
|
||||||
.BY %000 ; 11001101
|
|
||||||
.BY %000 ; 11001110
|
|
||||||
.BY %000 ; 11001111
|
|
||||||
.BY %000 ; 11010000
|
|
||||||
.BY %000 ; 11010001
|
|
||||||
.BY %000 ; 11010010
|
|
||||||
.BY %000 ; 11010011
|
|
||||||
.BY %000 ; 11010100
|
|
||||||
.BY %000 ; 11010101
|
|
||||||
.BY %000 ; 11010110
|
|
||||||
.BY %000 ; 11010111
|
|
||||||
.BY %000 ; 11011000
|
|
||||||
.BY %000 ; 11011001
|
|
||||||
.BY %000 ; 11011010
|
|
||||||
.BY %000 ; 11011011
|
|
||||||
.BY %000 ; 11011100
|
|
||||||
.BY %000 ; 11011101
|
|
||||||
.BY %000 ; 11011110
|
|
||||||
.BY %000 ; 11011111
|
|
||||||
.BY %010 ; 11100000
|
|
||||||
.BY %000 ; 11100001
|
|
||||||
.BY %000 ; 11100010
|
|
||||||
.BY %000 ; 11100011
|
|
||||||
.BY %000 ; 11100100
|
|
||||||
.BY %000 ; 11100101
|
|
||||||
.BY %000 ; 11100110
|
|
||||||
.BY %000 ; 11100111
|
|
||||||
.BY %000 ; 11101000
|
|
||||||
.BY %000 ; 11101001
|
|
||||||
.BY %000 ; 11101010
|
|
||||||
.BY %000 ; 11101011
|
|
||||||
.BY %000 ; 11101100
|
|
||||||
.BY %000 ; 11101101
|
|
||||||
.BY %000 ; 11101110
|
|
||||||
.BY %000 ; 11101111
|
|
||||||
.BY %000 ; 11110000
|
|
||||||
.BY %000 ; 11110001
|
|
||||||
.BY %000 ; 11110010
|
|
||||||
.BY %000 ; 11110011
|
|
||||||
.BY %000 ; 11110100
|
|
||||||
.BY %000 ; 11110101
|
|
||||||
.BY %000 ; 11110110
|
|
||||||
.BY %000 ; 11110111
|
|
||||||
.BY %000 ; 11111000
|
|
||||||
.BY %000 ; 11111001
|
|
||||||
.BY %000 ; 11111010
|
|
||||||
.BY %000 ; 11111011
|
|
||||||
.BY %000 ; 11111100
|
|
||||||
.BY %000 ; 11111101
|
|
||||||
.BY %000 ; 11111110
|
|
||||||
.BY %000 ; 11111111
|
|
||||||
|
|
||||||
EndOfTheBarrelX
|
|
||||||
.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
|
|
||||||
.by 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
|
|
||||||
.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,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,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
|
|
||||||
.by 0,0,0,0,0,0,0,0,0
|
|
||||||
.by 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
|
||||||
.by 1,1,1,1,1,1,1,1,1
|
|
||||||
.by 2,2,2,2,2,2,2,2,2,2
|
|
||||||
.by 3,3,3,3,3,3,3,3,3,3,3
|
|
||||||
|
|
||||||
EndOfTheBarrelY
|
|
||||||
.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
|
|
||||||
.by 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
|
|
||||||
.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 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 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
|
|
||||||
.by 5,5,5,5,5,5,5,5,5,5
|
|
||||||
.by 6,6,6,6,6,6,6,6,6
|
|
||||||
.by 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
|
|
||||||
.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
|
TanksNamesDefault
|
||||||
dta d"1st.Tank"
|
dta d"1st.Tank"
|
||||||
dta d"2nd.Tank"
|
dta d"2nd.Tank"
|
||||||
@@ -547,7 +229,6 @@ TanksNamesDefault
|
|||||||
dta d"5th.Tank"
|
dta d"5th.Tank"
|
||||||
dta d"6th.Tank"
|
dta d"6th.Tank"
|
||||||
|
|
||||||
|
|
||||||
WeaponPriceH ; weapons prices (tables with prices of weapons)
|
WeaponPriceH ; weapons prices (tables with prices of weapons)
|
||||||
.by >price_Baby_Missile___
|
.by >price_Baby_Missile___
|
||||||
.by >price_Missile________
|
.by >price_Missile________
|
||||||
@@ -597,22 +278,22 @@ WeaponPriceH ; weapons prices (tables with prices of weapons)
|
|||||||
.by >price______________45
|
.by >price______________45
|
||||||
.by >price______________46
|
.by >price______________46
|
||||||
.by >price______________47
|
.by >price______________47
|
||||||
.by >price_Heat_Guidance__
|
.by >price_White_Flag_____
|
||||||
|
.by >price_Battery________
|
||||||
.by >price_Bal_Guidance___
|
.by >price_Bal_Guidance___
|
||||||
.by >price_Horz_Guidance__
|
.by >price_Horz_Guidance__
|
||||||
.by >price_Vert_Guidance__
|
.by >price_Vert_Guidance__
|
||||||
.by >price_Lazy_Boy_______
|
.by >price_Lazy_Boy_______
|
||||||
.by >price_Parachute______
|
.by >price_Parachute______
|
||||||
.by >price_Battery________
|
.by >price_StrongParachute
|
||||||
.by >price_Mag_Deflector__
|
.by >price_Mag_Deflector__
|
||||||
.by >price_Shield_________
|
.by >price_Shield_________
|
||||||
.by >price_Force_Shield___
|
|
||||||
.by >price_Heavy_Shield___
|
.by >price_Heavy_Shield___
|
||||||
|
.by >price_Force_Shield___
|
||||||
.by >price_Super_Mag______
|
.by >price_Super_Mag______
|
||||||
.by >price_Auto_Defense___
|
.by >price_Bouncy_Castle__
|
||||||
.by >price_Fuel_Tank______
|
.by >price_Long_Barrel____
|
||||||
.by >price_Contact_Trigger
|
.by >price_Nuclear_Winter_
|
||||||
.by >price_White_Flag_____
|
|
||||||
|
|
||||||
WeaponPriceL
|
WeaponPriceL
|
||||||
.by <price_Baby_Missile___
|
.by <price_Baby_Missile___
|
||||||
@@ -663,22 +344,22 @@ WeaponPriceL
|
|||||||
.by <price______________45
|
.by <price______________45
|
||||||
.by <price______________46
|
.by <price______________46
|
||||||
.by <price______________47
|
.by <price______________47
|
||||||
.by <price_Heat_Guidance__
|
.by <price_White_Flag_____
|
||||||
|
.by <price_Battery________
|
||||||
.by <price_Bal_Guidance___
|
.by <price_Bal_Guidance___
|
||||||
.by <price_Horz_Guidance__
|
.by <price_Horz_Guidance__
|
||||||
.by <price_Vert_Guidance__
|
.by <price_Vert_Guidance__
|
||||||
.by <price_Lazy_Boy_______
|
.by <price_Lazy_Boy_______
|
||||||
.by <price_Parachute______
|
.by <price_Parachute______
|
||||||
.by <price_Battery________
|
.by <price_StrongParachute
|
||||||
.by <price_Mag_Deflector__
|
.by <price_Mag_Deflector__
|
||||||
.by <price_Shield_________
|
.by <price_Shield_________
|
||||||
.by <price_Force_Shield___
|
|
||||||
.by <price_Heavy_Shield___
|
.by <price_Heavy_Shield___
|
||||||
|
.by <price_Force_Shield___
|
||||||
.by <price_Super_Mag______
|
.by <price_Super_Mag______
|
||||||
.by <price_Auto_Defense___
|
.by <price_Bouncy_Castle__
|
||||||
.by <price_Fuel_Tank______
|
.by <price_Long_Barrel____
|
||||||
.by <price_Contact_Trigger
|
.by <price_Nuclear_Winter_
|
||||||
.by <price_White_Flag_____
|
|
||||||
|
|
||||||
;-------------------------------------------------
|
;-------------------------------------------------
|
||||||
; how many units (bulletd) of a given weapon we get for a given price
|
; how many units (bulletd) of a given weapon we get for a given price
|
||||||
@@ -689,18 +370,18 @@ WeaponPriceL
|
|||||||
WeaponUnits
|
WeaponUnits
|
||||||
.by 10 ;Baby_Missile___
|
.by 10 ;Baby_Missile___
|
||||||
.by 5 ;Missile________
|
.by 5 ;Missile________
|
||||||
.by 3 ;Baby_Nuke______
|
.by 2 ;Baby_Nuke______
|
||||||
.by 1 ;Nuke___________
|
.by 1 ;Nuke___________
|
||||||
.by 2 ;LeapFrog_______
|
.by 2 ;LeapFrog_______
|
||||||
.by 2 ;Funky_Bomb_____
|
.by 3 ;Funky_Bomb_____
|
||||||
.by 3 ;MIRV___________
|
.by 2 ;MIRV___________
|
||||||
.by 1 ;Death_s_Head___
|
.by 1 ;Death_s_Head___
|
||||||
.by 10 ;Napalm_________
|
.by 4 ;Napalm_________
|
||||||
.by 2 ;Hot_Napalm_____
|
.by 2 ;Hot_Napalm_____
|
||||||
.by 20 ;Tracer_________
|
.by 20 ;Tracer_________
|
||||||
.by 10 ;Smoke_Tracer___
|
.by 10 ;Smoke_Tracer___
|
||||||
.by 10 ;Baby_Roller____
|
.by 5 ;Baby_Roller____
|
||||||
.by 5 ;Roller_________
|
.by 3 ;Roller_________
|
||||||
.by 2 ;Heavy_Roller___
|
.by 2 ;Heavy_Roller___
|
||||||
.by 5 ;Riot_Charge____
|
.by 5 ;Riot_Charge____
|
||||||
.by 2 ;Riot_Blast_____
|
.by 2 ;Riot_Blast_____
|
||||||
@@ -712,9 +393,9 @@ WeaponUnits
|
|||||||
.by 10 ;Baby_Sandhog___
|
.by 10 ;Baby_Sandhog___
|
||||||
.by 5 ;Sandhog________
|
.by 5 ;Sandhog________
|
||||||
.by 2 ;Heavy_Sandhog__
|
.by 2 ;Heavy_Sandhog__
|
||||||
.by 10 ;Dirt_Clod______
|
.by 5 ;Dirt_Clod______
|
||||||
.by 5 ;Dirt_Ball______
|
.by 3 ;Dirt_Ball______
|
||||||
.by 2 ;Ton_of_Dirt____
|
.by 1 ;Ton_of_Dirt____
|
||||||
.by 4 ;Liquid_Dirt____
|
.by 4 ;Liquid_Dirt____
|
||||||
.by 2 ;Dirt_Charge____
|
.by 2 ;Dirt_Charge____
|
||||||
.by 10 ;Earth_Disrupter
|
.by 10 ;Earth_Disrupter
|
||||||
@@ -735,74 +416,70 @@ WeaponUnits
|
|||||||
.by 0 ;_____________45
|
.by 0 ;_____________45
|
||||||
.by 0 ;_____________46
|
.by 0 ;_____________46
|
||||||
.by 0 ;_____________47
|
.by 0 ;_____________47
|
||||||
.by 6 ;Heat_Guidance__
|
.by 1 ;White_Flag___48
|
||||||
|
.by 3 ;Battery________
|
||||||
.by 2 ;Bal_Guidance___
|
.by 2 ;Bal_Guidance___
|
||||||
.by 5 ;Horz_Guidance__
|
.by 5 ;Horz_Guidance__
|
||||||
.by 5 ;Vert_Guidance__
|
.by 5 ;Vert_Guidance__
|
||||||
.by 2 ;Lazy_Boy_______
|
.by 2 ;Lazy_Boy_______
|
||||||
.by 8 ;Parachute______
|
.by 3 ;Parachute______
|
||||||
.by 10 ;Battery________
|
.by 2 ;StrongParachute
|
||||||
.by 2 ;Mag_Deflector__
|
.by 2 ;Mag_Deflector__
|
||||||
.by 3 ;Shield_________
|
.by 3 ;Shield_________
|
||||||
.by 3 ;Force_Shield___
|
|
||||||
.by 2 ;Heavy_Shield___
|
.by 2 ;Heavy_Shield___
|
||||||
|
.by 3 ;Force_Shield___
|
||||||
.by 2 ;Super_Mag______
|
.by 2 ;Super_Mag______
|
||||||
.by 1 ;Auto_Defense___
|
.by 1 ;Auto_Defense___
|
||||||
.by 10 ;Fuel_Tank______
|
.by 2 ;Long_Barrel____
|
||||||
.by 25 ;Contact_Trigger
|
.by 1 ;Nuclear_Winter_
|
||||||
.by 1 ;_____________63
|
|
||||||
|
|
||||||
PurchaseMeTable ;weapons good to be purchased by the robot
|
PurchaseMeTable ;weapons good to be purchased by the robot
|
||||||
;the comment is an index in the tables
|
;the comment is an index in the tables
|
||||||
dta 1 ;"Baby Missile " ; 0
|
; "Baby Missile ","Missile ","Baby Nuke ","Nuke "
|
||||||
dta 1 ;"Missile " ; 1
|
; "LeapFrog ","Funky Bomb ","MIRV ","Death's Head "
|
||||||
dta 1 ;"Baby Nuke " ; 2
|
.by %01111111
|
||||||
dta 1 ;"Nuke " ; 3
|
; "Napalm ","Hot Napalm ","Tracer ","Smoke Tracer "
|
||||||
dta 1 ;"LeapFrog " ; 4
|
; "Baby Roller ","Roller ","Heavy Roller ","Riot Charge "
|
||||||
dta 1 ;"Funky Bomb " ; 5
|
.by %11001110
|
||||||
dta 1 ;"MIRV " ; 6
|
; "Riot Blast ","Riot Bomb ","Heavy Riot Bomb ","Baby Digger "
|
||||||
dta 1 ;"Death's Head " ; 7
|
; "Digger ","Heavy Digger ","Baby Sandhog ","Sandhog "
|
||||||
dta 0 ;"Napalm " ; 8
|
.by %00000000
|
||||||
dta 0 ;"Hot Napalm " ; 9
|
; "Heavy Sandhog ","Dirt Clod ","Dirt Ball ","Ton of Dirt "
|
||||||
dta 0 ;"Tracer " ; 10
|
; "Liquid Dirt ","Dirt Charge ","Earth Disrupter ","Plasma Blast "
|
||||||
dta 0 ;"Smoke Tracer " ; 11
|
.by %00000000
|
||||||
dta 1 ;"Baby Roller " ; 12
|
; "Laser "
|
||||||
dta 1 ;"Roller " ; 13
|
.by %00000000
|
||||||
dta 1 ;"Heavy Roller " ; 14
|
.by 0 ; offset to defensives
|
||||||
dta 0 ;"Riot Charge " ; 15
|
; "White Flag ","Battery ","Bal Guidance ","Horz Guidance "
|
||||||
dta 0 ;"Riot Blast " ; 16
|
; "Vert Guidance ","Lazy Boy ","Parachute ","Strong Parachute"
|
||||||
dta 0 ;"Riot Bomb " ; 17
|
.by %01000011
|
||||||
dta 0 ;"Heavy Riot Bomb " ; 18
|
; "Mag Deflector ","Shield ","Heavy Shield ","Force Shield "
|
||||||
dta 0 ;"Baby Digger " ; 19
|
; "Super Mag ","Bouncy Castle ","Long Barrel ","Nuclear Winter "
|
||||||
dta 0 ;"Digger " ; 20
|
.by %11110100
|
||||||
dta 0 ;"Heavy Digger " ; 21
|
|
||||||
dta 0 ;"Baby Sandhog " ; 22
|
|
||||||
dta 0 ;"Sandhog " ; 23
|
|
||||||
dta 0 ;"Heavy Sandhog " ; 24
|
|
||||||
dta 0 ;"Dirt Clod " ; 25
|
|
||||||
dta 0 ;"Dirt Ball " ; 26
|
|
||||||
dta 0 ;"Ton of Dirt " ; 27
|
|
||||||
dta 0 ;"Liquid Dirt " ; 28
|
|
||||||
dta 0 ;"Dirt Charge " ; 29
|
|
||||||
dta 0 ;"Earth Disrupter " ; 30
|
|
||||||
dta 0 ;"Plasma Blast " ; 31
|
|
||||||
dta 1 ;"Laser " ; 32
|
|
||||||
dta 0 ;"----------------" ; 33
|
|
||||||
dta 0 ;"----------------" ; 34
|
|
||||||
dta 0 ;"----------------" ; 35
|
|
||||||
dta 0 ;"----------------" ; 36
|
|
||||||
dta 0 ;"----------------" ; 37
|
|
||||||
dta 0 ;"----------------" ; 38
|
|
||||||
dta 0 ;"----------------" ; 39
|
|
||||||
dta 0 ;"----------------" ; 40
|
|
||||||
dta 0 ;"----------------" ; 41
|
|
||||||
dta 0 ;"----------------" ; 42
|
|
||||||
dta 0 ;"----------------" ; 43
|
|
||||||
dta 0 ;"----------------" ; 44
|
|
||||||
dta 0 ;"----------------" ; 45
|
|
||||||
dta 0 ;"----------------" ; 46
|
|
||||||
dta 0 ;"----------------" ; 47
|
|
||||||
|
|
||||||
|
PurchaseMeTable2 ;weapons good to be purchased by the robot (Cyborg)
|
||||||
|
;the comment is an index in the tables
|
||||||
|
; "Baby Missile ","Missile ","Baby Nuke ","Nuke "
|
||||||
|
; "LeapFrog ","Funky Bomb ","MIRV ","Death's Head "
|
||||||
|
.by %00110001
|
||||||
|
; "Napalm ","Hot Napalm ","Tracer ","Smoke Tracer "
|
||||||
|
; "Baby Roller ","Roller ","Heavy Roller ","Riot Charge "
|
||||||
|
.by %01000000
|
||||||
|
; "Riot Blast ","Riot Bomb ","Heavy Riot Bomb ","Baby Digger "
|
||||||
|
; "Digger ","Heavy Digger ","Baby Sandhog ","Sandhog "
|
||||||
|
.by %00000000
|
||||||
|
; "Heavy Sandhog ","Dirt Clod ","Dirt Ball ","Ton of Dirt "
|
||||||
|
; "Liquid Dirt ","Dirt Charge ","Earth Disrupter ","Plasma Blast "
|
||||||
|
.by %00000000
|
||||||
|
; "Laser "
|
||||||
|
.by %00000000
|
||||||
|
.by 0 ; offset to defensives
|
||||||
|
; "White Flag ","Battery ","Bal Guidance ","Horz Guidance "
|
||||||
|
; "Vert Guidance ","Lazy Boy ","Parachute ","Strong Parachute"
|
||||||
|
.by %01000001
|
||||||
|
; "Mag Deflector ","Shield ","Heavy Shield ","Force Shield "
|
||||||
|
; "Super Mag ","Bouncy Castle ","Long Barrel ","Nuclear Winter "
|
||||||
|
.by %10110100
|
||||||
|
|
||||||
;-------------------------------------------------
|
;-------------------------------------------------
|
||||||
; Screen codes of icons (chars) representing a given weapon
|
; Screen codes of icons (chars) representing a given weapon
|
||||||
@@ -813,8 +490,8 @@ WeaponSymbols
|
|||||||
.by $58,$59,$5a,$5b,$60,$7b,$7c,$7d
|
.by $58,$59,$5a,$5b,$60,$7b,$7c,$7d
|
||||||
.by $20,$00,$00,$00,$00,$00,$00,$00
|
.by $20,$00,$00,$00,$00,$00,$00,$00
|
||||||
.by $00,$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 $5f,$1c,$03,$06,$1d,$0a,$1b,$1b ; defensives
|
||||||
.by $3b,$3c,$3d,$3e,$3f,$5e,$5f,$00
|
.by $1e,$3b,$3d,$3c,$3e,$3f,$1d,$7d
|
||||||
|
|
||||||
; Names of weapons (16 chars long)
|
; Names of weapons (16 chars long)
|
||||||
NamesOfWeapons ;the comment is an index in the tables
|
NamesOfWeapons ;the comment is an index in the tables
|
||||||
@@ -865,26 +542,44 @@ NamesOfWeapons ;the comment is an index in the tables
|
|||||||
dta d"----------------" ; 44
|
dta d"----------------" ; 44
|
||||||
dta d"----------------" ; 45
|
dta d"----------------" ; 45
|
||||||
dta d"----------------" ; 46
|
dta d"----------------" ; 46
|
||||||
dta d"----------------" ; 47
|
dta d" " ; 47 ; special (no weapon) name to simplify display
|
||||||
|
|
||||||
dta d"Heat Guidance " ; 48 ($30)
|
dta d"White Flag " ; 48 ($30)
|
||||||
dta d"Bal Guidance " ; 49
|
dta d"Battery " ; 49
|
||||||
dta d"Horz Guidance " ; 50
|
dta d"Bal Guidance " ; 50
|
||||||
dta d"Vert Guidance " ; 51
|
dta d"Horz Guidance " ; 51
|
||||||
dta d"Lazy Boy " ; 52
|
dta d"Vert Guidance " ; 52
|
||||||
dta d"Parachute " ; 53
|
dta d"Lazy Boy " ; 53
|
||||||
dta d"Battery " ; 54
|
dta d"Parachute " ; 54 - no energy
|
||||||
dta d"Mag Deflector " ; 55
|
dta d"Strong Parachute" ; 55 - with energy (earlier Battery)
|
||||||
dta d"Shield " ; 56
|
dta d"Mag Deflector " ; 56 - with shield and energy
|
||||||
dta d"Force Shield " ; 57
|
dta d"Shield " ; 57 - shield for one shot - no energy
|
||||||
dta d"Heavy Shield " ; 58
|
dta d"Heavy Shield " ; 58 - shield with energy
|
||||||
dta d"Super Mag " ; 59
|
dta d"Force Shield " ; 59 - shield with energy and parachute
|
||||||
dta d"Auto Defense " ; 60
|
dta d"Super Mag " ; 60
|
||||||
dta d"Fuel Tank " ; 61
|
dta d"Bouncy Castle " ; 61 - with shield and energy
|
||||||
dta d"Contact Trigger " ; 62
|
dta d"Long Schlong " ; 62
|
||||||
dta d"White Flag " ; 63
|
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 ; Heavy Shield
|
||||||
|
.by 99 ; Force Shield
|
||||||
|
.by 00 ; Super Mag
|
||||||
|
.by 99 ; Bouncy Castle
|
||||||
|
.by 00 ; Long Barrel
|
||||||
|
.by 00 ; Nuclear Winter
|
||||||
weaponsOfDeath
|
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
|
joyToKeyTable
|
||||||
; .by 00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, 13, 14, 15
|
; .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
|
.by $ff,$ff,$ff,$ff,$ff,$ff,$ff,$07,$ff,$ff,$ff,$06,$ff,$0f,$0e,$ff
|
||||||
@@ -903,5 +598,50 @@ scrcodes
|
|||||||
dta d"qrstuvwx"
|
dta d"qrstuvwx"
|
||||||
dta d"yz123456"
|
dta d"yz123456"
|
||||||
dta d"7890." ; "-"
|
dta d"7890." ; "-"
|
||||||
|
;-----------------------------------
|
||||||
|
gameOverSpritesTop
|
||||||
|
; end of the Gover sprites by number of players
|
||||||
|
; 1 2 3 4 5 6
|
||||||
|
.by 130,130,136,142,148,154
|
||||||
|
;-------decimal constans
|
||||||
|
zero
|
||||||
|
digits dta d"0123456789"
|
||||||
|
nineplus dta d"9"+1
|
||||||
|
space dta d" "
|
||||||
|
;------credits
|
||||||
|
CreditsStart
|
||||||
|
dta d" "*
|
||||||
|
dta d"You were playin",d"g"*
|
||||||
|
dta d"Scorc",d"h"*
|
||||||
|
dta d"Warsaw, Miam",d"i"*
|
||||||
|
dta d"2000-202",d"2"*
|
||||||
|
dta d" "*
|
||||||
|
dta d"B",d"y"*
|
||||||
|
dta d" "*
|
||||||
|
dta d"Programmin",d"g"*
|
||||||
|
dta d"Tomasz 'Pecus' Peck",d"o"*
|
||||||
|
dta d"Pawel 'pirx' Kalinowsk",d"i"*
|
||||||
|
dta d" "*
|
||||||
|
dta d"SFX, Music and Suppor",d"t"*
|
||||||
|
dta d"Michal 'Miker' Szpilowsk",d"i"*
|
||||||
|
dta d" "*
|
||||||
|
dta d"Additional Musi",d"c"*
|
||||||
|
dta d"Mario 'Emkay' Kri",d"x"*
|
||||||
|
dta d" "*
|
||||||
|
dta d"Code Optimizatio",d"n"*
|
||||||
|
dta d"Piotr '0xF' Fusi",d"k"*
|
||||||
|
dta d" "*
|
||||||
|
dta d"Ar",d"t"*
|
||||||
|
dta d"Adam Wachowsk",d"i"*
|
||||||
|
dta d"Krzysztof 'Kaz' Ziembi",d"k"*
|
||||||
|
dta d" "*
|
||||||
|
dta d"Ideas and Q",d"A"*
|
||||||
|
dta d"Bocianu, Probabilitydragon, EnderDude",d","*
|
||||||
|
dta d"Beeblebrox, KrzysRog, lopezpb, Dracon",d","*
|
||||||
|
dta d"brad-colbert, archon800, nowy80",d","*
|
||||||
|
dta d"Shaggy the Atarian, RetroBorsuk, ZP",d"H"*
|
||||||
|
dta d" "*
|
||||||
|
dta d"Stay tuned for the FujiNet version",d"!"*
|
||||||
|
dta d" "*
|
||||||
|
CreditsEnd
|
||||||
.endif
|
.endif
|
||||||
|
|||||||
+138
-37
@@ -1,14 +1,38 @@
|
|||||||
; @com.wudsn.ide.asm.mainsourcefile=scorch.asm
|
; @com.wudsn.ide.asm.mainsourcefile=scorch.asm
|
||||||
|
|
||||||
|
;----------------------------------------------
|
||||||
|
; Player/missile memory
|
||||||
|
|
||||||
|
PMGraph = $0800
|
||||||
|
display = $1010 ;screen takes $2K due to clearing routine
|
||||||
|
|
||||||
screenheight = 200
|
screenheight = 200
|
||||||
screenBytes = 40
|
screenBytes = 40
|
||||||
screenwidth = screenBytes*8 ; Max screenwidth = 512!!!
|
screenwidth = screenBytes*8 ; Max screenwidth = 512!!!
|
||||||
margin = 48 ;mountain drawing Y variable margin
|
margin = 40 ;mountain drawing Y variable margin
|
||||||
display = $1010 ;screen takes $2K due to clearing routine
|
|
||||||
MaxPlayers = 6
|
MaxPlayers = 6
|
||||||
maxOptions = 7 ;number of all options
|
maxOptions = 8 ;number of all options
|
||||||
PMOffset = $23 ; P/M to graphics offset
|
PMOffsetX = $2C ; P/M to graphics offset
|
||||||
|
PMOffsetY = $23 ; P/M to graphics offset
|
||||||
|
napalmRadius = 10
|
||||||
|
StandardBarrel = 6 ; standard tank barrel length
|
||||||
|
LongBarrel = 20 ; long barrel length
|
||||||
|
|
||||||
|
TextBackgroundColor = $02 ; REAL constans - use: LDA #TextBackgroundColor
|
||||||
|
TextForegroundColor = $0A
|
||||||
|
|
||||||
|
;character codes for symbols (tank, parachute, etc. )
|
||||||
|
char_parachute_______ = $02
|
||||||
|
char_flag____________ = $1e
|
||||||
|
char_flame___________ = $14
|
||||||
|
char_clear_flame_____ = $1c
|
||||||
|
char_digger__________ = $04
|
||||||
|
char_sandhog_________ = $0c
|
||||||
|
char_sandhog_offset = char_sandhog_________ - char_digger__________
|
||||||
|
|
||||||
|
char_tank1___________ = $20
|
||||||
|
char_tank2___________ = $24
|
||||||
|
char_tank3___________ = $28
|
||||||
|
|
||||||
;Weapon prices (*10 on screen)
|
;Weapon prices (*10 on screen)
|
||||||
price_Baby_Missile___ = 0 ;_0
|
price_Baby_Missile___ = 0 ;_0
|
||||||
@@ -19,31 +43,31 @@ price_LeapFrog_______ = 192 ;_4
|
|||||||
price_Funky_Bomb_____ = 293 ;_5
|
price_Funky_Bomb_____ = 293 ;_5
|
||||||
price_MIRV___________ = 456 ;_6
|
price_MIRV___________ = 456 ;_6
|
||||||
price_Death_s_Head___ = 337 ;_7
|
price_Death_s_Head___ = 337 ;_7
|
||||||
price_Napalm_________ = $ffff ;496 ;_8
|
price_Napalm_________ = 125 ;_8
|
||||||
price_Hot_Napalm_____ = $ffff ;511 ;_9
|
price_Hot_Napalm_____ = 162 ;_9
|
||||||
price_Tracer_________ = 102 ;_10
|
price_Tracer_________ = 102 ;_10
|
||||||
price_Smoke_Tracer___ = 291 ;_11
|
price_Smoke_Tracer___ = 291 ;_11
|
||||||
price_Baby_Roller____ = 689 ;_12
|
price_Baby_Roller____ = 211 ;_12
|
||||||
price_Roller_________ = 600 ;_13
|
price_Roller_________ = 244 ;_13
|
||||||
price_Heavy_Roller___ = 592 ;_14
|
price_Heavy_Roller___ = 326 ;_14
|
||||||
price_Riot_Charge____ = 330 ;_15
|
price_Riot_Charge____ = 230 ;_15
|
||||||
price_Riot_Blast_____ = 341 ;_16
|
price_Riot_Blast_____ = 241 ;_16
|
||||||
price_Riot_Bomb______ = 369 ;_17
|
price_Riot_Bomb______ = 259 ;_17
|
||||||
price_Heavy_Riot_Bomb = 322 ;_18
|
price_Heavy_Riot_Bomb = 272 ;_18
|
||||||
price_Baby_Digger____ = 336 ;_19
|
price_Baby_Digger____ = 136 ;_19
|
||||||
price_Digger_________ = 276 ;_20
|
price_Digger_________ = 176 ;_20
|
||||||
price_Heavy_Digger___ = 253 ;_21
|
price_Heavy_Digger___ = 207 ;_21
|
||||||
price_Baby_Sandhog___ = 218 ;_22
|
price_Baby_Sandhog___ = 158 ;_22
|
||||||
price_Sandhog________ = 191 ;_23
|
price_Sandhog________ = 191 ;_23
|
||||||
price_Heavy_Sandhog__ = 305 ;_24
|
price_Heavy_Sandhog__ = 223 ;_24
|
||||||
price_Dirt_Clod______ = 104 ;_25
|
price_Dirt_Clod______ = 104 ;_25
|
||||||
price_Dirt_Ball______ = 130 ;_26
|
price_Dirt_Ball______ = 130 ;_26
|
||||||
price_Ton_of_Dirt____ = 171 ;_27
|
price_Ton_of_Dirt____ = 171 ;_27
|
||||||
price_Liquid_Dirt____ = 530 ;_28
|
price_Liquid_Dirt____ = 330 ;_28
|
||||||
price_Dirt_Charge____ = 581 ;_29
|
price_Dirt_Charge____ = 343 ;_29
|
||||||
price_Earth_Disrupter = $ffff ;430 ;_30
|
price_Earth_Disrupter = $ffff ;430 ;_30
|
||||||
price_Plasma_Blast___ = $ffff ;274 ;_31
|
price_Plasma_Blast___ = $ffff ;274 ;_31
|
||||||
price_Laser__________ = 577 ;_32
|
price_Laser__________ = 277 ;_32
|
||||||
price______________33 = 0
|
price______________33 = 0
|
||||||
price______________34 = 0
|
price______________34 = 0
|
||||||
price______________35 = 0
|
price______________35 = 0
|
||||||
@@ -59,22 +83,87 @@ price______________44 = 0
|
|||||||
price______________45 = 0
|
price______________45 = 0
|
||||||
price______________46 = 0
|
price______________46 = 0
|
||||||
price______________47 = 0
|
price______________47 = 0
|
||||||
price_Heat_Guidance__ = $ffff ;_48_($30)
|
price_White_Flag_____ = $0 ;_48_($30)
|
||||||
price_Bal_Guidance___ = $ffff ;_49
|
price_Battery________ = 300 ;_49
|
||||||
price_Horz_Guidance__ = $ffff ;_50
|
price_Bal_Guidance___ = $ffff ;_50
|
||||||
price_Vert_Guidance__ = $ffff ;_51
|
price_Horz_Guidance__ = $ffff ;_51
|
||||||
price_Lazy_Boy_______ = $ffff ;_52
|
price_Vert_Guidance__ = $ffff ;_52
|
||||||
price_Parachute______ = 1100 ;_53
|
price_Lazy_Boy_______ = $ffff ;_53
|
||||||
price_Battery________ = $ffff ;_54
|
price_Parachute______ = 234 ;_54
|
||||||
price_Mag_Deflector__ = $ffff ;_55
|
price_StrongParachute = 1000 ;_55
|
||||||
price_Shield_________ = $ffff ;_56
|
price_Mag_Deflector__ = 745 ;_56
|
||||||
price_Force_Shield___ = $ffff ;_57
|
price_Shield_________ = 224 ;_57
|
||||||
price_Heavy_Shield___ = $ffff ;_58
|
price_Heavy_Shield___ = 628 ;_58
|
||||||
price_Super_Mag______ = $ffff ;_59
|
price_Force_Shield___ = 1100 ;_59
|
||||||
price_Auto_Defense___ = $ffff ;_60
|
price_Super_Mag______ = $ffff ;_60
|
||||||
price_Fuel_Tank______ = $ffff ;_61
|
price_Bouncy_Castle__ = 512 ;_61
|
||||||
price_Contact_Trigger = $ffff ;_62
|
price_Long_Barrel____ = 2100 ;_62
|
||||||
price_White_Flag_____ = $0 ;_63
|
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_Heavy_Shield___ = 58
|
||||||
|
ind_Force_Shield___ = 59
|
||||||
|
ind_Super_Mag______ = 60
|
||||||
|
ind_Bouncy_Castle__ = 61
|
||||||
|
ind_Long_Barrel____ = 62
|
||||||
|
ind_Nuclear_Winter_ = 63
|
||||||
;--------------------------------
|
;--------------------------------
|
||||||
; names of RMT instruments (sfx)
|
; names of RMT instruments (sfx)
|
||||||
;--------------------------------
|
;--------------------------------
|
||||||
@@ -106,3 +195,15 @@ sfx_keyclick = $18 ;y
|
|||||||
sfx_shoot = $19 ;z
|
sfx_shoot = $19 ;z
|
||||||
sfx_seppuku = $1a ;1
|
sfx_seppuku = $1a ;1
|
||||||
sfx_liquid_dirt = $1b ;2
|
sfx_liquid_dirt = $1b ;2
|
||||||
|
sfx_battery = $1c ;3
|
||||||
|
sfx_white_flag = $1d ;4
|
||||||
|
sfx_long_barrel = $1e
|
||||||
|
;--------------------------------
|
||||||
|
; RMT songs (lines)
|
||||||
|
;--------------------------------
|
||||||
|
song_silencio = $00
|
||||||
|
song_main_menu = $02
|
||||||
|
song_ingame = $06
|
||||||
|
song_round_over = $0b
|
||||||
|
song_ending_looped = $0e
|
||||||
|
song_supermarket = $1b
|
||||||
|
|||||||
Executable → Regular
+61
-10
@@ -31,6 +31,11 @@ OptionsDL
|
|||||||
.word OptionsScreen
|
.word OptionsScreen
|
||||||
.byte $30,$02,$02,$70
|
.byte $30,$02,$02,$70
|
||||||
:maxOptions .by $02,$10
|
:maxOptions .by $02,$10
|
||||||
|
:(9-maxOptions) .by $70,$10
|
||||||
|
.byte $80
|
||||||
|
.byte $4f
|
||||||
|
.word (display+140*40)
|
||||||
|
:21 .by $0f ;76
|
||||||
.byte $41
|
.byte $41
|
||||||
.word OptionsDL
|
.word OptionsDL
|
||||||
;------------------------
|
;------------------------
|
||||||
@@ -89,27 +94,28 @@ dl ; MAIN game display list
|
|||||||
.by $0f+$80 ; DLI (black to end);1
|
.by $0f+$80 ; DLI (black to end);1
|
||||||
:38 .byte $0f ;35 ..... = 200
|
:38 .byte $0f ;35 ..... = 200
|
||||||
.by $4f
|
.by $4f
|
||||||
.wo LastLine ; additional line of ground
|
.wo EmptyLine ; additional line of ground
|
||||||
.byte $41
|
.byte $41
|
||||||
.word dl
|
.word dl
|
||||||
;-----------------------------------------------
|
;-----------------------------------------------
|
||||||
;Screen displays go first to avoid crossing 4kb barrier
|
;Screen displays go first to avoid crossing 4kb barrier
|
||||||
;-----------------------------------------------
|
;-----------------------------------------------
|
||||||
OptionsScreen
|
OptionsScreen
|
||||||
dta d"Welcome to Scorch ver. "
|
dta d"Welcome to Scorch v. "
|
||||||
build ; 3 bytes from scorch.asm (fancy method) :)
|
build ; 4 bytes from scorch.asm (fancy method) :)
|
||||||
dta d" (un)2000-2022"
|
dta d" (un)2000-2022"
|
||||||
dta d" Please select option with cursor keys "
|
dta d" Please select option with cursor keys "
|
||||||
dta d" and press (Return) to proceed "
|
dta d" and press (Return) to proceed "
|
||||||
OptionsHere
|
OptionsHere
|
||||||
; 0123456789012345678901234567890123456789
|
; 0123456789012345678901234567890123456789
|
||||||
dta d"Players : 2 3 4 5 6 "
|
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"Gravity : 0.2G 0.5G 1G 2G 4G "
|
||||||
dta d"Wind : 1B 3B 5B 7B 9B "
|
dta d"Wind : 1B 3B 5B 7B 9B "
|
||||||
dta d"Rounds : 10 20 30 40 50 "
|
dta d"Rounds : 10 20 30 40 50 "
|
||||||
dta d"Missiles : slug slow norm fast hare "
|
dta d"Missiles : slug slow norm fast hare "
|
||||||
dta d"Seppuku : nevr rare norm oftn alws "
|
dta d"Seppuku : nevr rare norm oftn alws "
|
||||||
|
dta d"Mountains: NL BE CZ CH NP "
|
||||||
OptionsScreenEnd
|
OptionsScreenEnd
|
||||||
;-----------------------------------------------
|
;-----------------------------------------------
|
||||||
MoreUp
|
MoreUp
|
||||||
@@ -127,6 +133,7 @@ MoreDown
|
|||||||
ListOfWeapons
|
ListOfWeapons
|
||||||
:36 dta d" "
|
:36 dta d" "
|
||||||
ListOfWeapons1End
|
ListOfWeapons1End
|
||||||
|
;GameOverResults ; reuse after game (remember to clear on start new)
|
||||||
ListOfDefensiveWeapons
|
ListOfDefensiveWeapons
|
||||||
:16 dta d" "
|
:16 dta d" "
|
||||||
ListOfDefensiveWeaponsEnd ;constant useful when clearing
|
ListOfDefensiveWeaponsEnd ;constant useful when clearing
|
||||||
@@ -136,15 +143,50 @@ WeaponsDescription
|
|||||||
dta d" - Defensive/Offensive weapon "
|
dta d" - Defensive/Offensive weapon "
|
||||||
dta d" "
|
dta d" "
|
||||||
dta d"Space"*
|
dta d"Space"*
|
||||||
dta d" - Purchase "
|
dta d" - "
|
||||||
|
purchaseActivate
|
||||||
|
dta d"Purchase "
|
||||||
dta d"Return"*
|
dta d"Return"*
|
||||||
dta d" - Finish "
|
dta d" - Finish "
|
||||||
EmptyLine
|
EmptyLine
|
||||||
dta d" "
|
dta d" "
|
||||||
LastLine
|
|
||||||
:40 dta $00
|
|
||||||
; -------------------------------------------------
|
; -------------------------------------------------
|
||||||
.ALIGN $1000 ; WARNING!!!! 4KiB barrier crossing here, might need reassignment!!!
|
.ALIGN $1000 ; WARNING!!!! 4KiB barrier crossing here, might need reassignment!!!
|
||||||
|
;-----------------------------------------------
|
||||||
|
GameOverResults = display+$0ff0 ; reuse after game
|
||||||
|
Credits = GameOverResults +(6*40)
|
||||||
|
CreditsLastLine = Credits + (41*40)
|
||||||
|
GameOverDL
|
||||||
|
.byte $70,$40
|
||||||
|
.byte $47 ; 16 gr8 lines
|
||||||
|
.word GameOverTitle
|
||||||
|
.byte $4f ; 1 line
|
||||||
|
.word display+(40*72)
|
||||||
|
:28 .byte $0f ; 28 lines
|
||||||
|
.byte $0f+$80
|
||||||
|
.byte $4f ; 1 line
|
||||||
|
.word display+(40*32)
|
||||||
|
:30 .byte $0f ; 30 lines
|
||||||
|
.byte $0f+$80 ; 1 line
|
||||||
|
.byte $4f ; 1 line
|
||||||
|
.word display+(40*72)
|
||||||
|
:7 .byte $0f ; 7 lines
|
||||||
|
.byte $00+$80 ; 1 line
|
||||||
|
.byte $42 ; 7 tekst lines
|
||||||
|
.word GameOverTitle2
|
||||||
|
.byte $00+$80
|
||||||
|
.byte $42
|
||||||
|
.word GameOverResults
|
||||||
|
:5 .byte $00+$80,$02
|
||||||
|
.byte $70+$80
|
||||||
|
.byte $42+$20 ; VSCRL
|
||||||
|
DLCreditsAddr
|
||||||
|
.word Credits
|
||||||
|
:6 .byte $02+$20
|
||||||
|
.byte $02
|
||||||
|
.byte $41
|
||||||
|
.word GameOverDL
|
||||||
|
|
||||||
NameScreen
|
NameScreen
|
||||||
dta d" Enter names of players "
|
dta d" Enter names of players "
|
||||||
dta d" Tank 01 Name:"
|
dta d" Tank 01 Name:"
|
||||||
@@ -169,8 +211,17 @@ textbuffer
|
|||||||
dta d"Energy: Angle: Force: "
|
dta d"Energy: Angle: Force: "
|
||||||
dta d"Round: Wind: "
|
dta d"Round: Wind: "
|
||||||
textbuffer2
|
textbuffer2
|
||||||
dta d"Player: Cash: "
|
dta d"Player: Cash: 0 " ; ZERO TO MAKE YOU RICHER ON THE SCREEN
|
||||||
dta d"----------------------------------------"
|
dta d"----------------------------------------"
|
||||||
|
;---------------------------------------------------
|
||||||
|
activateText
|
||||||
|
dta d"Activate"
|
||||||
|
activateTextEnd
|
||||||
|
purchaseText
|
||||||
|
dta d"Purchase"
|
||||||
|
purchaseTextEnd
|
||||||
|
GameOverTitle
|
||||||
|
dta d" game over "*
|
||||||
|
GameOverTitle2
|
||||||
|
dta d" Player Points Hits Earned Money "
|
||||||
.endif
|
.endif
|
||||||
Executable → Regular
+927
-333
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,157 @@
|
|||||||
|
Podstawowa instrukcja:
|
||||||
|
|
||||||
|
Grać można przy użyciu klawiatury (wszystkie funkcjonalności) lub joysticka (wszystkie funkcjonalności niezbędne w rozgrywce).
|
||||||
|
|
||||||
|
1 Wybór opcji gry.
|
||||||
|
Na pierwszym ekranie możemy skonfigurować opcje rozgrywwki:
|
||||||
|
- ilość graczy (2 - 6) obejmuje tak ludzi jak graczy sterowanych przez komputer
|
||||||
|
- początkową ilość gotówki każdego z graczy (8k to wybrana przez nas wartość optymalna, jecz przy krótkich rozgrywkach warto wybrać większą wartość)
|
||||||
|
- grawitacja
|
||||||
|
- maksymalna siła wiatru (wiatr jest losowany na początku każdej z rund, tu możemy wybrać jak silny może być)
|
||||||
|
- ilość rozgrywanych rund
|
||||||
|
- szybkość lotu pocisków (nie ma wpływu na tor lotu - zmienia jedynie widoczną prędkość rysowania - nie zmienia nic w samej rozgrywce)
|
||||||
|
- częstotliwość samobójstw :) - jeśli przez ileś tur gra nie odnotowała trafień (czołgi ciągle strzelają niecelnie) jeden z takich pudłujących czołgów popełnia samobójstwo - tu określamy jak długo mogą “strzelać w próżnię” :) - jeśli grają tylko ludzie optymalne ustawienie to “norm”, w przypadku graczy sterowanych przez komputer… wedle uznania.
|
||||||
|
- wysokość (i pofałdowanie) gór od prawie płaskich (NL), do strzelistych i wysokich (NP)
|
||||||
|
Wybór opcji klawiszami kursora lub joystickiem.
|
||||||
|
klawisz [RETURN] lub przycisk Joysticka przechodzi do następnego ekranu.
|
||||||
|
|
||||||
|
2. Wprowadzanie nazwy graczy i wybór poziomu graczy sterowanych przez komputer
|
||||||
|
Drugi ekran powtarza się dla każdego z graczy można na nim klawiszami kursora lub joysticjiem wybrać czy danym czołgiem będzie kierował człowiek (opcja HUMAN) czy też kompute (pozostałe opcje). Jednocześnie z klawiatury można wprowadzić nazwę wybranego gracza.
|
||||||
|
Po naciśnięciu klawisza [RETURN] lub przycisku Joysticka ekran przechodzi na następnego gracza aż zostaną wybrane poziomy trudności dla każdego z nich.
|
||||||
|
Jeśli nazwa nie zostanie wpisana (bo np operujemy wyłącznie joystickiem), to zostanie uzupełniona nazwą domyślną.
|
||||||
|
|
||||||
|
3. Ekran zakupów (przed każdą rundą)
|
||||||
|
Na tym ekranie można dokonywać zakupów broni ofensywnych i defensywnych. Widoczne są tylko te bronie na które gracza stać wraz z informacją o cenie i ilości jednostek danej broni, którą za ten cenę otrzymamy. Informacje na ekranie nie wymagają chyba więcej opisu. Po listach poruszamy się klawiszami kursora (góra i dół) lub joystickiem, klawisz [TAB] lub strzałka w lewo czy też ruch joystickiem w lewo zmieniają ekran na bronie defensywne lub ofensywne, klawisz [SPACJA] lub strzałka w prawo a także joystick w prawo realizują zakup wskazanej broni.
|
||||||
|
Klawisz [RETURN] lub przycisk joysticka przechodzi do ekranu zakupów następnego gracza.
|
||||||
|
(oczywiście dla graczy komputerowych ten ekran się nie pojawia)
|
||||||
|
|
||||||
|
4. Główny ekran gry
|
||||||
|
W linii statusowej widoczna jest informacja o tym który z graczy aktualnie może oddać strzał oraz zestaw innych informacji:
|
||||||
|
- nazwa czołgu gracza
|
||||||
|
- wybrana aktualnie broń ofensywna
|
||||||
|
- pozostała ilość punktów energii gracza i jeśli ma on aktywną broń defensywną posiadającą swój zasób energii - w nawiasie ten zasób
|
||||||
|
- ustawiony przez gracza kąt nachylenia lufy i kierunek jej nachylenia
|
||||||
|
- ustawiona przez gracza siła strzału (maksymalna siła strzału jest ograniczana przez energię gracza - nie może przekroczyć energii * 10 . Oznacza to, że mając małą ilość energii możemy oddać słabsze strzały
|
||||||
|
- numer aktualnej rundy rozgrywki
|
||||||
|
- prędkość i kierunek wiatru
|
||||||
|
- w nawiasie nazwę aktywnej broni defensywnej - jeśli jest jakaś aktywowana przez gracz
|
||||||
|
Tutaj klawiszologia jest prosta, klawisze kursora lub joustick: lewo/prawo - zmiana kąta nachylenia lufy, góra/dół - zmiana ustawienia siły strzału.
|
||||||
|
[SPACJA] lub przycisk joysticka naciśnięte krótko - oddanie strzału
|
||||||
|
[TAB] - wybór broni ofensywnej (ta opcja nie jest dostępna bezpośrednio joystickiem - trzeba wybrać Inventory)
|
||||||
|
klawisz [I] lub dłuższe przytrzymanie przycisku joysticka - przejście do Inventory
|
||||||
|
Inventory to ekran (a w zasadzie dwa) bliźniaczo podobny do ekranu zakupów. Zasady poruszania się są identyczne z tym, że tu nie kupujemy broni, ale wybieramy jedną z ofensywnych, którą będziemy strzelać lub aktywujemy broń defensywną.
|
||||||
|
Klawisz [M] - wyłączenie/włączenie muzyki w tle
|
||||||
|
Klawisz [S] - wyłączenie/włączenie dźwięków efektów.
|
||||||
|
Klawisz [O] - wymuszenie zakończenia gry (Game Over). W podsumowaniu wyników nie jest brana pod uwagę przerwana właśnie runda rozgrywki, a wyłącznie rundy zakończone wcześniej. Odpowiada to wciśnięciu klawisza [ESC] z tą różnicą, że wyświetlane jest podsumowanie oraz creditsy.
|
||||||
|
|
||||||
|
W czasie całej gry w dowolnym momencie (chyba że akurat gra komputer, wtedy czasem trzeba chwilę poczekać) można nacisnąć klawisz [ESC], który umożliwia przerwanie gry i powrót na początek (oczywiście jest zabezpieczenie przed przypadkowym naciśnięciem).
|
||||||
|
|
||||||
|
|
||||||
|
A tutaj zręby opisu działania poszczególnych broni, zasad punktacji itp:
|
||||||
|
|
||||||
|
—-----------------------
|
||||||
|
|
||||||
|
Najpierw co wiemy o energii czołgów
|
||||||
|
- Czołgi mają energię (a Ogry warstwy - jak cebula) - na starcie 99 jednostek
|
||||||
|
- Energii czołgom ubywa na 3 sposoby:
|
||||||
|
1. 1 jednostka po oddaniu każdego strzału
|
||||||
|
2. w czasie spadania (jeden piksel w dół 2 jednostki)
|
||||||
|
3. w chwili trafienia w czołg lub obok niego jakiegoś pocisku - i tu ilość odejmowanej energii zależy od odległości od centrum eksplozji i typu/siły rażenia pocisku.
|
||||||
|
|
||||||
|
Jak działa odejmowanie energii (i zarabianie kasy!)
|
||||||
|
Po każdej rundzie wyliczana jest ilość zdobytych/straconych pieniędzy robione jest to na podstawie dwóch zmiennych gromadzonych przez każdy z czołgów w trakcie rundy. Te zmienne to:
|
||||||
|
gain - energia "przechwycona" od trafionych czołgów (także jeśli trafimy w samego siebie :) i tu haczyk, jeśli pozostało nam bardzo mało energii opłacalne może być trafienie w siebie mocną bronią!
|
||||||
|
loose - energia stracona w wyniku eksplozji/upadku (i tu ważne liczona jest całkowita utrata energii nawet jeśli czołg ma w chwili trafienia mniej).
|
||||||
|
Dodatkowo czołg który wygrał rundę ma parametr gain (przechwyconej od trafionych czołgów energii) zwiększany o pozostałą mu na koniec rundy energię (bo nie zginął i powinien ją mieć - choć bywa też inaczej :) )
|
||||||
|
|
||||||
|
Konkretnie:
|
||||||
|
Po każdej rundzie:
|
||||||
|
money = money + (2 * (gain+energy))
|
||||||
|
money = money - loose
|
||||||
|
if money <0 then money=0
|
||||||
|
|
||||||
|
(na starcie każdej rundy gain i loose mają wartość 0)
|
||||||
|
|
||||||
|
W czasie rundy, jeśli w wyniku strzału oddanego przez czołg inny czołg zostanie trafiony, czołg oddający strzał "dostaje energię" zabraną czołgowi trafionemu.
|
||||||
|
czołg oddający strzał:
|
||||||
|
gain = gain + EnergyDecrease
|
||||||
|
czołg trafiony:
|
||||||
|
loose = loose + EnergyDecrease
|
||||||
|
|
||||||
|
gdzie EnergyDecrease to utrata energii w wyniku trafienia.
|
||||||
|
|
||||||
|
Oczywiście jednocześnie trafiony czołg traci ilość energii zapisaną w EnergyDecrease, z tym że tutaj strata nie może przekroczyć posiadanej energii.
|
||||||
|
|
||||||
|
Uwaga! Ekranowa reprezentacja pieniędzy ma na końcu dopisane dodatkowe 0 więc faktyczne mamy 10 razy więcej kasy niż wynika z powyższych obliczeń :)
|
||||||
|
|
||||||
|
Jak działa trafienie.
|
||||||
|
Każda broń, która skutkuje eksplozją, ma swój promień rażenia (ExplosionRadius).
|
||||||
|
Po eksplozji każdy czołg w jej zasięgu traci energię.
|
||||||
|
Działa to tak, że obliczana jest odległość trafianego czołgu od centrum eksplozji, zmniejszony o tę odległość ExplosionRadius jest mnożony przez 8 i w wyniku otrzymujemy EnergyDecrease.
|
||||||
|
Czyli w przypadku trafienia centralnie w czołg:
|
||||||
|
EnergyDecrease = ExplosionRadius * 8
|
||||||
|
a z każdym pikselem dalej od centrum ubywa o 8 jednostek mniej.
|
||||||
|
Nie wiem czy to zrozumiałe - ja rozumiem :)
|
||||||
|
Przykładowo, jeśli czołg zostanie trafiony centralnie przy pomocy Baby Missile - odejmowane jest mu 88 jednostek energii (11 * 8), co także oznacza, że przy trafieniu tym pociskiem w odległości 12 pikseli od czołgu - nie traci on energii wcale.
|
||||||
|
|
||||||
|
A oto wartości promienia rażenia (ExplosionRadius) dla poszczególnych broni:
|
||||||
|
|
||||||
|
Baby Missile - 11
|
||||||
|
Missile - 17
|
||||||
|
Baby Nuke - 25
|
||||||
|
Nuke - 31
|
||||||
|
LeapFrog - 17 15 13
|
||||||
|
Funky Bomb - 21 11 (* 5)
|
||||||
|
MIRV - 17 (* 5)
|
||||||
|
Death's Head - 31 (* 5)
|
||||||
|
Napalm - x 40 (ta broń jest inna i nie jest wyznaczana odległość od centrum, po prostu każdy czołg znajdujący się w zasięgu płomieni traci 40 jednostek energii - zmienna ExplosionRadius nie jest używana)
|
||||||
|
Hot Napalm - x 80 (zasada taka jak w Napalm)
|
||||||
|
Baby Roller - 11
|
||||||
|
Roller - 21
|
||||||
|
Heavy Roller - 31
|
||||||
|
Riot Charge - 31
|
||||||
|
Riot Blast - 0 (tak na prawdę - 61 ale przy tych broniach nie jest brana pod uwagę przy liczeniu ubytku energii tylko szerokości gruntu do opadnięcia)
|
||||||
|
Riot Bomb - 17
|
||||||
|
Heavy Riot Bomb - 29
|
||||||
|
Baby Digger - 0 (60 - jak w Riot Blast)
|
||||||
|
Digger - 0 (60 - jak wyżej)
|
||||||
|
Heavy Digger - 0 (60 - jak wyżej)
|
||||||
|
Baby Sandhog - 0 (60 - jak wyżej)
|
||||||
|
Sandhog - 0 (60 - jak wyżej)
|
||||||
|
Heavy Sandhog - 0 (60 - jak wyżej)
|
||||||
|
Dirt Clod - 12
|
||||||
|
Dirt Ball - 22
|
||||||
|
Ton of Dirt - 31
|
||||||
|
Liquid Dirt - 0 (może warto to zmienić?)
|
||||||
|
Dirt Charge - 0 (61 - jak wyżej)
|
||||||
|
Laser - x 100 (ale tu także jest inaczej - równo 100 tylko w przypadku bezpośredniego trafienia, zmienna ExplosionRadius nie jest używana, więc nie ma mnożenia przez 8 - po prostu odejmujemy 100 jednostek energii - czyli czołg zawsze ginie).
|
||||||
|
|
||||||
|
|
||||||
|
Duże punkty otrzymane przez gracza to ilość czołgów, które zginęły wcześniej niż on. Jeśli któryś z innych czołgów skapitulował wcześniej (Biała Flaga) nie jest doliczany do tych które zginęły i nie daje punktów.
|
||||||
|
Tylko te punkty decydują o kolejności w podsumowaniu
|
||||||
|
|
||||||
|
|
||||||
|
A teraz bronie defensywne:
|
||||||
|
White Flag - powoduje poddanie gracza (może czasem przydać się w sytuacji beznadziejnej). Zaletą jest to, że poddając się nie dajemy dużego punktu przeciwnikom i nie powodujemy, że któryś zyska na tym, że nas zgładzi, ograniczamy też stratę swojej energii czyli także kasy. I tu także ważna uwaga - to jedyna broń defensywna, którą można deaktywować. Wystarczy ponownie wejść do inventory i jeszcze raz wybrać jej aktywację.
|
||||||
|
Battery - w momencie aktywacji doładowuje energię czołgu do pełna (99 jednostek) i jednocześnie jest to jedyna broń defensywna, która nie deaktywuje innych broni defensywnych w przypadku jej użycia.
|
||||||
|
Parachute - nie chroni przed ubytkiem energii z powodu sąsiedniej eksplozji, powoduje że nie ubywa energii w czasie JEDNEGO spadania. Po takim upadku deaktywuje się i trzeba aktywować nowy spadochron.
|
||||||
|
Shield - najprostsza osłona działa dokładnie przeciwnie niż Parachute, nie chroni przed ubytkiem energii w czasie spadania, chroni za to przed ubytkiem energii spowodowanym JEDNĄ sąsiednią eksplozją. Chroni jednorazowo, bez znaczenia jak silna jest eksplozja (czy jest to tylko "draśnięcie", czy też bezpośrednie trafienie atomówką) i od razu po niej deaktywuje się.
|
||||||
|
Heavy Shield - osłona z własną energią (na starcie 99 jednostek), działa tak samo jak Shield (nie chroni przed upadkiem) z tym wyjątkiem, że ma własny zasób energii. Przy eksplozji w pierwszej kolejności zmniejszana jest energia tej osłony i jeśli dojdzie ona do 0 to osłona deaktywuje się i dalej zmniejszana jest energia czołgu. W związku z takim działaniem, czołg z tym typem osłony można "zabić" podkopując go, bo spadanie zmniejsza energię czołgu a nie osłony.
|
||||||
|
Force Shield - najmocniejsza osłona - działa tak jak Heavy Shield tyle że połączona z Parachute. Co ważne w jej przypadku upadek nie zabiera energii osłonie ani czołgowi. Zabierają ją tylko trafienia.
|
||||||
|
Bouncy Castle - broń agresywna :) . Działa następująco. W przypadku bezpośredniego trafienia w czołg (i osłonę) powoduje "odbicie" pocisku w przeciwnym kierunku z tą samą siłą z jaką był wystrzelony. W przypadku braku wiatru i różnicy poziomów broń trafia wtedy w czołg, który ją wystrzelił. Po takim odbiciu deaktywuje się. W związku z tym, że broń ta reaguje w ten sposób tylko na precyzyjne trafienia, jest także osłoną odpowiadającą działaniu Heavy Shield i ma na starcie 99 jednostek (prawdopodobnie trzeba będzie przemyśleć tę wartość i dać tu mniejszą).
|
||||||
|
Mag Deflector - druga broń agresywna :) . W przypadku bezpośredniego trafienia w czołg (i osłonę) powoduje przesunięcie punktu trafienia losowo w lewo lub prawą stronę chronionego czołgu, ale niezbyt daleko, więc można dostać "odłamkiem" przy silniejszej broni. Tak jak w przypadku Bouncy Castle jest także osłoną odpowiadającą działaniu Heavy Shield i ma na starcie 99 jednostek (prawdopodobnie i tutaj trzeba będzie przemyśleć tę wartość i dać mniejszą).
|
||||||
|
Nuclear Winter - nic nie dodaje, nic nie zabiera :) - w zasadzie to broń nie tyle defensywna co obosieczna. Zasypuje teren opadem "radioaktywnym", który jest zwyczajną glebą. Jeśli nie mamy pod ręką żadnej broni odkopującej teren i do tego osłony (najlepiej jednorazowej), to po takim "opadzie" będzie trzeba strzelić do siebie - bo będąc pod ziemią inaczej się nie da. Ewentualnie pozostaje zawsze White Flag.
|
||||||
|
Long Schlong - broń specjalna :) - kosztuje dużo, nie bardzo w czymkolwiek pomaga (poza ewentualnym odkopaniem się ale tylko przy niewielkim przysypaniu ale fanie się nazywa i wygląda :) - Można ją aktywować niezależnie od innych broni defensywnych i pozostaje aktywna do końca rundy (nie da się jej deaktywować).
|
||||||
|
|
||||||
|
W związku z odmiennym działaniem broni MIRV, Auto Defense i Mag Deflector wykorzystują tylko funkcję osłony przy trafieniu tą bronią.
|
||||||
|
|
||||||
|
Dodatkowo, żadna z osłon nie chroni przed Napalmem. Auto Defense czy Mag Deflector przy bezpośrednim trafieniu odbije je lub przeniesie obok, ale wystarczy trafić bardzo blisko czołgu i nie zadziała jego osłona.
|
||||||
|
|
||||||
|
Bronie White Flag i Nuclear Winter po aktywacji wymagają uruchomienia, jest to realizowanie przez "oddanie strzału" po aktywacji tej broni. Oczywiście strzał bronią ofensywną nie jest wtedy oddawany, a jedynie uruchamiana jest wybrana broń defensywna.
|
||||||
|
|
||||||
|
Można mieć aktywną tylko jedną broń defensywną w danej chwili (za wyjątkiem Long Schlong oczywiście :) ). Zawsze przed oddaniem strzału możemy zmienić decyzję i aktywować inną broni defensywną czy też dezaktywować White Flag.
|
||||||
|
Oczywiście aktywacja broni w momencie kiedy mamy już aktywowaną jakąś inną powoduje utratę tej poprzedniej (nie ma zwrotów :) ).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+4
-3
@@ -10,9 +10,9 @@
|
|||||||
dma = %100000
|
dma = %100000
|
||||||
.ende
|
.ende
|
||||||
|
|
||||||
scr48 = @dmactl(wide|dma|players|missiles|lineX1) ;screen 48b
|
scr48 = @dmactl(wide|dma|players|missiles|lineX1)
|
||||||
scr40 = @dmactl(standard|dma|players|missiles|lineX1) ;screen 40b
|
scr40 = @dmactl(standard|dma|players|missiles|lineX1)
|
||||||
scr32 = @dmactl(narrow|dma|players|missiles|lineX1) ;screen 32b
|
scr32 = @dmactl(narrow|dma|players|missiles|lineX1)
|
||||||
|
|
||||||
.enum @pmcntl
|
.enum @pmcntl
|
||||||
missiles= %1
|
missiles= %1
|
||||||
@@ -147,6 +147,7 @@ NMIST = $D40F ; rejestr statusu przerwa� NMI
|
|||||||
;-------------------------------------
|
;-------------------------------------
|
||||||
;additional system variables
|
;additional system variables
|
||||||
;-------------------------------------
|
;-------------------------------------
|
||||||
|
ATRACT = $004D
|
||||||
COLPM0S = $02C0 ;- - shadow register COLPM0
|
COLPM0S = $02C0 ;- - shadow register COLPM0
|
||||||
COLPM1S = $02C1 ;- - shadow register COLPM1
|
COLPM1S = $02C1 ;- - shadow register COLPM1
|
||||||
COLPM2S = $02C2 ;- - shadow register COLPM2
|
COLPM2S = $02C2 ;- - shadow register COLPM2
|
||||||
|
|||||||
+12
-9
@@ -76,16 +76,16 @@
|
|||||||
.MACRO WAIT
|
.MACRO WAIT
|
||||||
; WAIT
|
; WAIT
|
||||||
; waits one frame (1/50 s(PAL) or 1/60s(NTSC))
|
; waits one frame (1/50 s(PAL) or 1/60s(NTSC))
|
||||||
lda CONSOL
|
?zero LDA VCOUNT
|
||||||
cmp #6 ; START KEY
|
beq ?zero
|
||||||
|
bpl ?WA
|
||||||
|
sbc #10 ; last lines correction
|
||||||
|
?WA cmp VCOUNT
|
||||||
|
beq ?WA
|
||||||
|
bcc ?WA
|
||||||
|
?WFRAME cmp VCOUNT
|
||||||
beq ?nowait
|
beq ?nowait
|
||||||
LDA VCOUNT
|
bcs ?WFRAME
|
||||||
ldy vcount
|
|
||||||
?WA cpy VCOUNT
|
|
||||||
BEQ ?WA
|
|
||||||
?wframe
|
|
||||||
cmp vcount
|
|
||||||
bne ?wframe
|
|
||||||
?nowait
|
?nowait
|
||||||
.ENDM
|
.ENDM
|
||||||
;-------------------------------------
|
;-------------------------------------
|
||||||
@@ -104,6 +104,9 @@
|
|||||||
.macro randomize
|
.macro randomize
|
||||||
;usage: randomize floor ceiling
|
;usage: randomize floor ceiling
|
||||||
;returns (in A) a random .byte between "floor" and "ceiling"
|
;returns (in A) a random .byte between "floor" and "ceiling"
|
||||||
|
.if :2 < :1
|
||||||
|
.error "floor higher than ceiling"
|
||||||
|
.endif
|
||||||
?rand
|
?rand
|
||||||
lda random
|
lda random
|
||||||
cmp #:1 ;floor
|
cmp #:1 ;floor
|
||||||
|
|||||||
+687
-320
File diff suppressed because it is too large
Load Diff
BIN
Binary file not shown.
Executable → Regular
+997
-389
File diff suppressed because it is too large
Load Diff
Executable → Regular
+118
-84
@@ -8,34 +8,43 @@
|
|||||||
; compilation to e.g. cartridge
|
; compilation to e.g. cartridge
|
||||||
; zero page variables are declared in program.s65 module
|
; zero page variables are declared in program.s65 module
|
||||||
;=====================================================
|
;=====================================================
|
||||||
;--------------------------------------------------
|
OneTimeZeroVariables
|
||||||
;Variables
|
OneTimeZeroVariablesCount = variablesToInitialize-OneTimeZeroVariables ; MAX 128 bytes !
|
||||||
;--------------
|
noMusic .by 0 ; 0 - play music, $ff - do not play music
|
||||||
TanksNames ; DO NOT ZERO - ticket #24
|
noSfx .by 0 ; 0 - play SFX, $ff - do not play SFX
|
||||||
|
;----------------------------------------------------
|
||||||
|
; Color table for Game Over Screen (created in a gameover routine)
|
||||||
|
.by $00 ; labels line color
|
||||||
|
GameOverColoursTable .BYTE $80,$40,$c4,$20,$c0,$e4
|
||||||
|
;----------------------------------------------------
|
||||||
|
TanksNames ; DO NOT ZERO ON RESTART GAME - ticket #24
|
||||||
:6 dta d" "
|
:6 dta d" "
|
||||||
;----------------------------
|
;----------------------------------------------------
|
||||||
;Options DO NOT ZERO - ticket #27
|
|
||||||
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)
|
skilltable ; computer controlled players' skills (1-8), 0 - human (no cleaning, ticket #30)
|
||||||
.DS [MaxPlayers]
|
.DS [MaxPlayers]
|
||||||
;-----------------------------------
|
;----------------------------------------------------
|
||||||
|
variablesToInitialize
|
||||||
|
;Options DO NOT ZERO ON RESTART GAME - ticket #27
|
||||||
|
OptionsTable .by 0,1,2,2,0,1,3,2
|
||||||
|
RoundsInTheGame .by 10 ;how many rounds in the current game
|
||||||
|
seppukuVal .by 75
|
||||||
|
mountainDeltaH .by 3
|
||||||
|
mountainDeltaL .by $ff
|
||||||
|
;----------------------------------------------------
|
||||||
; 4x4 text buffer
|
; 4x4 text buffer
|
||||||
ResultLineBuffer
|
ResultLineBuffer
|
||||||
dta d" "
|
dta d" ", $ff
|
||||||
.byte $ff
|
|
||||||
LineHeader1
|
LineHeader1
|
||||||
dta d"# ROUND: "
|
dta d"# ROUND: "
|
||||||
RoundNrDisplay
|
RoundNrDisplay
|
||||||
dta d" #"
|
dta d" #", $ff
|
||||||
.byte $ff
|
|
||||||
|
|
||||||
|
;=====================================================
|
||||||
variablesStart ; zeroing starts here
|
variablesStart ; zeroing starts here
|
||||||
escFlag .ds 1
|
;=====================================================
|
||||||
|
isInventory .ds 1 ; 0 - purchase, $ff - inventory
|
||||||
;--------------
|
;--------------
|
||||||
sfx_effect .ds 1
|
drawFunction .ds 1 ; 0 - plot, %10000000 - LineLength (N), %01000000 - DrawCheck (V)
|
||||||
;--------------
|
;--------------
|
||||||
noDeathCounter .ds 1
|
noDeathCounter .ds 1
|
||||||
;--------------
|
;--------------
|
||||||
@@ -45,30 +54,32 @@ flyDelay .ds 1
|
|||||||
NumberOfPlayers .DS 1 ;current number of players (counted from 1)
|
NumberOfPlayers .DS 1 ;current number of players (counted from 1)
|
||||||
TankSequence .DS [MaxPlayers] ;sequence of shooting during the Round
|
TankSequence .DS [MaxPlayers] ;sequence of shooting during the Round
|
||||||
GameIsOver .DS 1 ; 1 means 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
|
moneyH ;we place zero at the end of prices and money
|
||||||
;and have range from 0 to 99990 (not too much)
|
;and have range from 0 to 99990 (not too much)
|
||||||
;money players have (maybe one more byte is needed?)
|
;money players have (maybe one more byte is needed?)
|
||||||
.DS [MaxPlayers]
|
.DS [MaxPlayers]
|
||||||
moneyL
|
moneyL
|
||||||
.DS [MaxPlayers]
|
.DS [MaxPlayers]
|
||||||
;-----------------------------------
|
;----------------------------------------------------
|
||||||
gainH ;how much money player gets after the round
|
gainH ;how much money player gets after the round
|
||||||
;it is gathered during the round basing on energy
|
;it is gathered during the round basing on energy
|
||||||
;opponents loose after player's shoots
|
;opponents lose after player's shoots
|
||||||
.DS [MaxPlayers]
|
.DS [MaxPlayers]
|
||||||
gainL
|
gainL
|
||||||
.DS [MaxPlayers]
|
.DS [MaxPlayers]
|
||||||
;-----------------------------------
|
;----------------------------------------------------
|
||||||
looseH ;how much player looses after the round
|
loseH ;how much player looses after the round
|
||||||
;calculated from REAL energy loss
|
;calculated from REAL energy loss
|
||||||
;(not only to zero energy)
|
;(not only to zero energy)
|
||||||
.DS [MaxPlayers]
|
.DS [MaxPlayers]
|
||||||
looseL
|
loseL
|
||||||
.DS [MaxPlayers]
|
.DS [MaxPlayers]
|
||||||
;-----------------------------------
|
;----------------------------------------------------
|
||||||
Energy
|
Energy
|
||||||
.DS [MaxPlayers]
|
.DS [MaxPlayers]
|
||||||
|
ShieldEnergy
|
||||||
|
.DS [MaxPlayers]
|
||||||
EnergyDecrease .DS 1
|
EnergyDecrease .DS 1
|
||||||
eXistenZ
|
eXistenZ
|
||||||
.DS [MaxPlayers]
|
.DS [MaxPlayers]
|
||||||
@@ -79,66 +90,74 @@ ResultsTable ;the results in the gameeeeee
|
|||||||
.DS [MaxPlayers]
|
.DS [MaxPlayers]
|
||||||
TempResults
|
TempResults
|
||||||
.DS [MaxPlayers]
|
.DS [MaxPlayers]
|
||||||
CurrentResult
|
DirectHitsH
|
||||||
.DS 1
|
|
||||||
;-----------------------------------
|
|
||||||
EnergyTableL ;shooting Force of the tank during the round
|
|
||||||
.DS [MaxPlayers]
|
.DS [MaxPlayers]
|
||||||
EnergyTableH
|
DirectHitsL
|
||||||
|
.DS [MaxPlayers]
|
||||||
|
EarnedMoneyH
|
||||||
|
.DS [MaxPlayers]
|
||||||
|
EarnedMoneyL
|
||||||
|
.DS [MaxPlayers]
|
||||||
|
;----------------------------------------------------
|
||||||
|
ForceTableL ;shooting Force of the tank during the round
|
||||||
|
.DS [MaxPlayers]
|
||||||
|
ForceTableH
|
||||||
.DS [MaxPlayers] ;maxplayers=6
|
.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)
|
;(limes superior force of the Shoot)
|
||||||
.DS [MaxPlayers] ;1000 is the default
|
.DS [MaxPlayers] ;1000 is the default
|
||||||
MaxEnergyTableH
|
MaxForceTableH
|
||||||
.DS [MaxPlayers]
|
.DS [MaxPlayers]
|
||||||
;-----------------------------------
|
;----------------------------------------------------
|
||||||
|
BarrelLength ;length of the tank barrel - dont forget to set it to 6 at round start!
|
||||||
AngleTable ;Angle of the barrel of each tank during the round
|
|
||||||
.DS [MaxPlayers]
|
.DS [MaxPlayers]
|
||||||
NewAngle .DS 1
|
|
||||||
;-----------------------------------
|
|
||||||
|
|
||||||
ActiveWeapon ;number of the selected weapon
|
ActiveWeapon ;number of the selected weapon
|
||||||
.DS [MaxPlayers]
|
.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
|
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
|
;format of the 3-byte static point number used in the game
|
||||||
; 20203.5 => 128 : <20203 : >20203
|
; 20203.5 => 128 : <20203 : >20203
|
||||||
;-----------------------------------
|
;----------------------------------------------------
|
||||||
|
|
||||||
L1 .DS 1 ; variable used in multiplications (by 10:)
|
L1 .DS 1 ; variable used in multiplications (by 10:)
|
||||||
gravity .DS 1 ;only the decimal part (1/10 = 25)
|
gravity .DS 1 ;only the decimal part (1/10 = 25)
|
||||||
;-----------------------------------
|
;----------------------------------------------------
|
||||||
|
|
||||||
Wind .ds 2 ;walue displayed on the screen
|
Wind .ds 4 ;format: 0000.hhll
|
||||||
;multiplied by 16 (decimal part only)
|
;walue displayed on the screen is
|
||||||
;-----------------------------------
|
;decimal portion divided by 16 (>>4)
|
||||||
|
;----------------------------------------------------
|
||||||
MaxWind .ds 1 ;
|
MaxWind .ds 1 ;
|
||||||
WindOrientation .DS 1 ;(0-right,1-left)
|
WindOrientation .DS 1 ;(0-right,1-left)
|
||||||
;-----------------------------------
|
;----------------------------------------------------
|
||||||
Counter .DS 1 ;temporary Counter for outside loops
|
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)
|
xtankstableL ;X positions of tanks (lower left point)
|
||||||
.DS [MaxPlayers]
|
.DS [MaxPlayers]
|
||||||
xtankstableH
|
xtankstableH
|
||||||
.DS [MaxPlayers]
|
.DS [MaxPlayers]
|
||||||
ytankstable ;Y positions of tanks (lower left point)
|
ytankstable ;Y positions of tanks (lower left point)
|
||||||
.DS [MaxPlayers]
|
.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]
|
.DS [MaxPlayers]
|
||||||
;-----------------------------------
|
;----------------------------------------------------
|
||||||
|
TargetTankNr ; Target tank index (for AI routines)
|
||||||
|
.DS 1
|
||||||
|
;----------------------------------------------------
|
||||||
Erase .DS 1 ; if 1 only mask of the character is printed
|
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
|
RangeLeft .DS 2 ;range of the soil to be fallen down
|
||||||
RangeRight .DS 2 ;it is being set by all Explosions
|
RangeRight .DS 2 ;it is being set by all Explosions
|
||||||
;-----------------------------------
|
;----------------------------------------------------
|
||||||
WeaponRangeLeft .DS 2 ;Range of the Explosion of the given weapon
|
WeaponRangeLeft .DS 2 ;Range of the Explosion of the given weapon
|
||||||
WeaponRangeRight .DS 2
|
WeaponRangeRight .DS 2
|
||||||
;--------------------------------------------------
|
;----------------------------------------------------
|
||||||
;xroller
|
;xroller
|
||||||
HowMuchToFall .ds 1
|
HowMuchToFall .ds 1
|
||||||
HeightRol .DS 1
|
HeightRol .DS 1
|
||||||
@@ -159,7 +178,6 @@ sandhogflag .DS 1 ; (0 digger, 8 sandhog)
|
|||||||
;ofdirt
|
;ofdirt
|
||||||
magic .DS 2 ; was tempor2, but it was not compiling!!! (bug in OMC65)
|
magic .DS 2 ; was tempor2, but it was not compiling!!! (bug in OMC65)
|
||||||
;draw
|
;draw
|
||||||
DrawJumpAddr .DS 2
|
|
||||||
HowToDraw .DS 1
|
HowToDraw .DS 1
|
||||||
; bits here mean
|
; bits here mean
|
||||||
; 0 - negative X (go up)
|
; 0 - negative X (go up)
|
||||||
@@ -172,14 +190,14 @@ LineLength .DS 2
|
|||||||
;circle
|
;circle
|
||||||
radius .DS 1
|
radius .DS 1
|
||||||
xcircle .DS 2
|
xcircle .DS 2
|
||||||
ycircle .DS 1
|
ycircle .DS 2
|
||||||
tempcir .DS 2
|
tempcir .DS 2
|
||||||
;TankFalls
|
;TankFalls
|
||||||
IfFallDown .DS 1
|
FallingSoundBit .DS 1
|
||||||
PreviousFall .DS 1
|
PreviousFall .DS 1
|
||||||
EndOfTheFallFlag .DS 1 ; in case of the infinite fall
|
EndOfTheFallFlag .DS 1 ; in case of the infinite fall
|
||||||
Parachute .DS 1 ; are you insured with parachute?
|
Parachute .DS 1 ; are you insured with parachute?
|
||||||
; -------------------------------------------------
|
;----------------------------------------------------
|
||||||
;Flight
|
;Flight
|
||||||
;variables for 5 missiles (used for mirv)
|
;variables for 5 missiles (used for mirv)
|
||||||
xtraj00 .DS [5] ; 3 bytes of xtraj times 5. Lowest byte
|
xtraj00 .DS [5] ; 3 bytes of xtraj times 5. Lowest byte
|
||||||
@@ -192,7 +210,10 @@ vx03 .DS [5]
|
|||||||
MirvDown .DS [5] ; is given missile down?
|
MirvDown .DS [5] ; is given missile down?
|
||||||
MirvMissileCounter .DS 1 ; missile Counter (mainly for X)
|
MirvMissileCounter .DS 1 ; missile Counter (mainly for X)
|
||||||
SmokeTracerFlag .DS 1 ; if Smoketracer
|
SmokeTracerFlag .DS 1 ; if Smoketracer
|
||||||
; -------------------------------------------------
|
LaserFlag .DS 1 ; $ff if Laser
|
||||||
|
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
|
;CheckCollisionWithTank
|
||||||
vx .ds 4 ; 0,0,0,0 ;two decimal bytes, two whole bytes (DC.BA)
|
vx .ds 4 ; 0,0,0,0 ;two decimal bytes, two whole bytes (DC.BA)
|
||||||
vy .ds 4 ;0,0,0,0
|
vy .ds 4 ;0,0,0,0
|
||||||
@@ -204,12 +225,8 @@ Angle .DS 1
|
|||||||
Force .ds 3 ; 0,0,0
|
Force .ds 3 ; 0,0,0
|
||||||
Multiplier .ds 3 ; 0,0,0
|
Multiplier .ds 3 ; 0,0,0
|
||||||
Multiplee .ds 2 ; 0,0
|
Multiplee .ds 2 ; 0,0
|
||||||
Result .ds 3 ; 0,0,0
|
|
||||||
goleft .DS 1 ;if 1 then flights left
|
goleft .DS 1 ;if 1 then flights left
|
||||||
;--------------------------------------------------
|
;----------------------------------------------------
|
||||||
;SoilDown2
|
|
||||||
IsEndOfTheFallFlag .DS 1
|
|
||||||
; -------------------------------------------------
|
|
||||||
;unPlot
|
;unPlot
|
||||||
WhichUnPlot .DS 1
|
WhichUnPlot .DS 1
|
||||||
; max 5 concurrent unPlots
|
; max 5 concurrent unPlots
|
||||||
@@ -223,7 +240,7 @@ xtrajfb .DS 2
|
|||||||
ytrajfb .DS 2
|
ytrajfb .DS 2
|
||||||
;
|
;
|
||||||
tracerflag .DS 1
|
tracerflag .DS 1
|
||||||
; -------------------------------------------------
|
;----------------------------------------------------
|
||||||
;TypeChar
|
;TypeChar
|
||||||
mask1 .DS [8]
|
mask1 .DS [8]
|
||||||
mask2 .DS [8]
|
mask2 .DS [8]
|
||||||
@@ -241,24 +258,22 @@ UpNdown .DS 1
|
|||||||
temptankX .DS 2
|
temptankX .DS 2
|
||||||
temptankNr .DS 1
|
temptankNr .DS 1
|
||||||
|
|
||||||
; -------------------------------------------------
|
;----------------------------------------------------
|
||||||
;Variables from textproc.s65
|
;Variables from textproc.s65
|
||||||
; tables with numbers of weapons on the right lists
|
; tables with indexes of weapons on the right lists
|
||||||
; to be honest - I do not know at the moment what the above
|
|
||||||
; comment was supposed to mean...
|
|
||||||
; OK (2022) so, L1 is list of offensive weapons, L2 - defensive
|
; OK (2022) so, L1 is list of offensive weapons, L2 - defensive
|
||||||
NubersOfWeaponsL1
|
IndexesOfWeaponsL1
|
||||||
.ds 8*5 ; :(8*5) .by $ff
|
.ds 8*5 ; max 40 offensive weapons. this is wrong, should be 48, still only 32 defined.
|
||||||
NubersOfWeaponsL2
|
IndexesOfWeaponsL2
|
||||||
.ds 8*2 ; :(8*2) .by $ff
|
.ds 8*2 ; max 16 defensive weapons.
|
||||||
; -------------------------------------------------
|
;----------------------------------------------------
|
||||||
|
|
||||||
; variables storing amount of weapons on the first and second
|
; variables storing amount of weapons on the first and second
|
||||||
; list and pointer position
|
; list and pointer position
|
||||||
|
|
||||||
HowManyOnTheList1
|
HowManyOnTheListOff
|
||||||
.DS 1
|
.DS 1
|
||||||
HowManyOnTheList2
|
HowManyOnTheListDef
|
||||||
.DS 1
|
.DS 1
|
||||||
PositionOnTheList ; pointer position on the list being displayed
|
PositionOnTheList ; pointer position on the list being displayed
|
||||||
.DS 1
|
.DS 1
|
||||||
@@ -274,17 +289,17 @@ WhichList ; list currently on the screen
|
|||||||
OffsetDL1 ; offset of the list screen (how many lines)....
|
OffsetDL1 ; offset of the list screen (how many lines)....
|
||||||
.DS 1
|
.DS 1
|
||||||
|
|
||||||
; -------------------------------------------------
|
;----------------------------------------------------
|
||||||
|
|
||||||
;mark the level
|
;mark the level
|
||||||
PositionInName ; cursor position in name of the player when name input
|
PositionInName ; cursor position in name of the player when name input
|
||||||
.DS 1
|
.DS 1
|
||||||
DifficultyLevel ; Difficulty Level (human/cpu)
|
DifficultyLevel ; Difficulty Level (human/cpu)
|
||||||
.DS 1
|
.DS 1
|
||||||
;-------------------------------------------------
|
;----------------------------------------------------
|
||||||
;displaydecimal
|
;displaydecimal
|
||||||
decimal .DS 2
|
decimal .DS 2
|
||||||
decimalresult .DS 4
|
decimalresult .DS 5
|
||||||
|
|
||||||
;xmissile
|
;xmissile
|
||||||
ExplosionRadius .DS 2 ;because when adding in xdraw it is double byte
|
ExplosionRadius .DS 2 ;because when adding in xdraw it is double byte
|
||||||
@@ -296,7 +311,7 @@ FallDown2 .DS 1
|
|||||||
LeapFrogAngle .DS 1
|
LeapFrogAngle .DS 1
|
||||||
;laser
|
;laser
|
||||||
LaserCoordinate .DS 8 ; 2,2,2,2
|
LaserCoordinate .DS 8 ; 2,2,2,2
|
||||||
; -------------------------------------------------
|
;----------------------------------------------------
|
||||||
; Here go tables with weapons possesed by a given tank
|
; Here go tables with weapons possesed by a given tank
|
||||||
; Index in the table means weapon type
|
; Index in the table means weapon type
|
||||||
; number entered means ammo for given weapon possessed (max 99)
|
; number entered means ammo for given weapon possessed (max 99)
|
||||||
@@ -323,7 +338,7 @@ mountaintable2 ;table of mountains (size=screenwidth)
|
|||||||
.DS [screenwidth]
|
.DS [screenwidth]
|
||||||
.DS 1 ; additional byte for fallout (sometimes 1 pixel)
|
.DS 1 ; additional byte for fallout (sometimes 1 pixel)
|
||||||
MountaintableEnd ;good for table clearing
|
MountaintableEnd ;good for table clearing
|
||||||
;----------------------------------------------
|
;----------------------------------------------------
|
||||||
TextPositionX .DS 2
|
TextPositionX .DS 2
|
||||||
TextPositionY .DS 1
|
TextPositionY .DS 1
|
||||||
TextAddress .DS 2
|
TextAddress .DS 2
|
||||||
@@ -332,7 +347,27 @@ TextNumberOff .DS 1
|
|||||||
;--------------
|
;--------------
|
||||||
TankTempY
|
TankTempY
|
||||||
.DS 1
|
.DS 1
|
||||||
|
;----------------------------------------------------
|
||||||
;-------------- single round variables --------------
|
;-------------- single round variables --------------
|
||||||
|
;----------------------------------------------------
|
||||||
|
singleRoundVars
|
||||||
|
;--------------
|
||||||
|
escFlag .ds 1 ; 0 - Esc or O not pressed, $80 - Esc pressed, $40 - O pressed
|
||||||
|
;--------------
|
||||||
|
CurrentResult
|
||||||
|
.DS 1
|
||||||
|
;--------------
|
||||||
|
AngleTable ;Angle of the barrel of each tank during the round
|
||||||
|
.DS [MaxPlayers]
|
||||||
|
NewAngle ; used in AI
|
||||||
|
.DS 1
|
||||||
|
;previousBarrelAngle
|
||||||
|
; .DS [MaxPlayers]
|
||||||
|
EndOfTheBarrelX
|
||||||
|
.ds 2
|
||||||
|
EndOfTheBarrelY
|
||||||
|
.ds 1
|
||||||
|
;----------------------------------------------------
|
||||||
previousAngle
|
previousAngle
|
||||||
.DS [MaxPlayers]
|
.DS [MaxPlayers]
|
||||||
previousEnergyL
|
previousEnergyL
|
||||||
@@ -341,8 +376,6 @@ previousLeftRange
|
|||||||
.DS [MaxPlayers]
|
.DS [MaxPlayers]
|
||||||
previousEnergyH
|
previousEnergyH
|
||||||
.DS [MaxPlayers]
|
.DS [MaxPlayers]
|
||||||
previousRightAngle
|
|
||||||
.DS [MaxPlayers]
|
|
||||||
RandBoundaryLow
|
RandBoundaryLow
|
||||||
.ds 2
|
.ds 2
|
||||||
RandBoundaryHigh
|
RandBoundaryHigh
|
||||||
@@ -350,9 +383,9 @@ RandBoundaryHigh
|
|||||||
AngleTablePointer
|
AngleTablePointer
|
||||||
.DS 1
|
.DS 1
|
||||||
singleRoundVarsEnd
|
singleRoundVarsEnd
|
||||||
;----------------------------------------------
|
;----------------------------------------------------
|
||||||
; 4x4 texts
|
; 4x4 texts
|
||||||
;----------------------------------------------
|
;----------------------------------------------------
|
||||||
LineAddress4x4
|
LineAddress4x4
|
||||||
.DS 2
|
.DS 2
|
||||||
LineCharNr
|
LineCharNr
|
||||||
@@ -370,8 +403,9 @@ ResultY
|
|||||||
ResultOfTankNr
|
ResultOfTankNr
|
||||||
.DS 1
|
.DS 1
|
||||||
|
|
||||||
;----------------------------
|
;----------------------------------------------------
|
||||||
;PutChar4x4
|
;PutChar4x4
|
||||||
|
;----------------------------------------------------
|
||||||
LoopCounter4x4 .DS 1
|
LoopCounter4x4 .DS 1
|
||||||
y4x4 .DS 1
|
y4x4 .DS 1
|
||||||
StoreA4x4 .DS 1
|
StoreA4x4 .DS 1
|
||||||
@@ -383,6 +417,6 @@ plot4x4color .DS 1 ;1-white, 0-background
|
|||||||
|
|
||||||
|
|
||||||
variablesEnd
|
variablesEnd
|
||||||
;----------------------------
|
;----------------------------------------------------
|
||||||
|
|
||||||
.endif
|
.endif
|
||||||
|
|||||||
Executable → Regular
+947
-713
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user