Skip to content

A horizontal Shoot'em Up Game written for the Atari 8bit computer.

License

Notifications You must be signed in to change notification settings

the-atari-team/tat.oxygene.be

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Oxygene Be

atari007

Oxygene Part #2 or better Oxygene Be

A horizontal Shoot’em Up Game which should show, what is possible on good old Atari 8bit. It needs at least 64kb RAM and will no longer run on Atari 400/800.

The only things I’ve taken from the original game is the graphics of the spacecraft, the enemies and the font of the big ships.

The rest of the game is completely rewritten.

For a first try

Find a ready to run version in release folder.

To build from source

Stay in game folder and execute make from a shell. On Windows use git-bash. For more information read the game readme

Game play

  1. At first, insert disk and boot without basic.

  2. The loader occurs after some sector reads. It takes a while to read 64kb.

  3. The main menu occurs, here you can choose the level and mission. There are some more options. Simply use the cursor keys to walk through these options.

  4. Leave the main menu by trigger or space key. Now you see mission overview. It shows you, what to have to do in the game.

  5. The game starts with space key or trigger. Play! With your small spacecraft, fly horizontal over a big ship and destroy small jets on runways all over the big ship. Also destroy the enemies in front. The enemies shoot simple single shoots, but they get more angry the more you kill them or destroy jets. The color of the enemies changed. Are all need jets and enemies destroyed, land your spacecraft on an empty runway near the end of the big ships. To do so, fly straightforward over the small arrows from the left side. To make missions not so simple, there exists high buildings on the big ship, see there shadow. A touch cost lot of energy, most the time the own spacecraft. So be careful. Tip: fly slowly.

  6. At the end you get a status report what you have done. If all is green, mission is successful. Use the stick up or trigger to get to next mission. If all missions done it goes to the next level at mission #1.

technical

  • All spacecraft animations are new, there are more and better animations.

  • Also, the shoots are animated. Looks nicer.

  • There are different enemies. Up to 4 in a vertical manner.

  • The Atari display lists are optimized, take less memory. The Oxygene Be logo is downsized to 32bytes per line.

  • The Atari display list interrupts are all new.

  • There are more colors at the same time on the screen.

  • The spacecraft has an energy shield, simple hits of enemies will not kill you but decrease your energy.

  • Joy of use is better than in the old game.

  • There are no random enemies which shoot at random time.

  • The enemies came all the time of the front, change of direction, and the enemies came from the other side.

  • Enemy has 3 different shoot types in different speed.

  • Always the enemy near you will fire.

  • There exist a hate-factor, the more jets and enemies you kill the more decrease the factor. You see it at the color of the enemies.

  • Now there are missions to complete.

  • Different count of jets has to destroy on the surface of the big ship.

  • Different count of enemies has to kill.

  • The time runs out. But due to a bug, this is not relevant.

  • There exist different difficult level. From god-mode up to suicide level.

  • There exist an extra option menu, so you can play with different options. Simple use the cursor keys.

  • A highscore exist.

Updates after Abbuc Software Contest 2020

  • Due to some sync problems within NTSC (60hz) some optimizations were made:

  • Displaylist interrupt cleanup, fewer interrupts were used for the Oxygene Be logo.

  • speedup in function clear enemy shots

  • Compiler completely rewritten in Java with a lot of peephole optimizations.

This should help to avoid flickering most the time.

Atari technicals

  • The game use nearly the whole 64kb RAM.

  • The boot disc use LiteDOS by Mr.Atari, which gives us 4 kb more free memory.

  • The player missile gfx lies under the OS, also the fonts and the big ship.

  • The switch between RAM and OS comes from TurboBasic. Source-code follows if there exist interest.

  • The fonts, images and ship graphics are single files, this simplifies the exchange.

  • The TAT Sign based on player missile gfx also, saves some memory.

  • The spacecraft takes 3 player with its shadow and 2 missiles.

  • Spacecraft shoot takes one missile.

  • Enemies take on player due to the time limitations on the simple 8-bit computer there are no more display interrupt tricks to show the enemies.

  • Enemy shoot take one missile which is differently animated and differently dangerous.

  • The big ship takes 17 * 512 bytes and will all the time reload from disk.

  • To cut down there size, a simple run-length encoder was used from old german happy computer journal.

  • There exist a simple editor to create such big ships.

  • The energy level line is a simple GTIA-Trick on a graphics 0 line with a simple font and dithering.

  • So it looks like you have 11 colors in one line. The small ship on the right is a player.

  • Sound is complete new created, nearby a simple sound generator from P.Finzel out of his book "Hexenküche".

  • Unfortunately there is no theme song yet.

technical at development time

Big things of the game are written in an ALGOL like high language. Due to the fact that Action! was very expensive in the old days of Atari in the late 80ies I created a simple compiler for my self. I studied some books about compiler build. This compiler has to be make work again, I fixed some bugs, simplify a lot of things.

It supports:

  • functions/procedures with more than 3 parameters

  • works also recursive until 6502 stack overflows

  • Supports relative complex math expressions, also with inline function calls.

  • Multiply and divisions in a 2-complement are replaced by a binary shift.

  • Knows if-then-else

  • for- while- repeat-until loops

  • Ok there exist an overhead to real assembler, but it makes programming so much easier.

  • The compiler works perfect with other routines written in assembler together.

  • A nice goody, the source build by the compiler runs most the time also within Atari-(Turbo)-Basic environment, because it uses only the Atari floating-point zero-page registers 212-255.

  • The compiler is a single pass compiler. It loads the source from disk/harddisk and translate it to assembler. The generated assembler code is near compatible to MAC/65 but full compatible to atasm cross assembler.

It is funny to develop for the Atari 8bit again. The only really terrible one, the constant lack of memory at 64kb.

December 2020, Lars