Xenon 2 Megablast 50fps

Source code CHANGELOG Report BUG v1.0.0

SidecarTridge Multi-device Xenon 2 Megablast icon

What if, in an alternative universe, Atari had put arcade-level graphics chips in our beloved Atari ST? In 1989 The Bitmap Brothers released Xenon 2 Megablast, a shocking shoot’em up that ran at 16.7 frames a second. In that parallel universe it runs at an insane 50. Almost 40 years later, a SidecarTridge Multi-device in the cartridge slot of an Atari ST, STE, Mega ST or Mega STE takes you there.

This is the whole game, not a demo of it:

  • all five levels, with their mid-level and end-of-level bosses
  • Crispin’s Swop Shop, with every weapon it sells
  • David Whittaker’s music and effects
  • two players taking turns
  • the high scores, now kept on the cartridge

Every rule is the original’s, rewritten in C and checked frame by frame against the original running in an emulator.

At 50 frames a second the world scrolls three times as fast, and you choose how the rest plays. The original’s pace keeps the ship, the shots and the enemies at the original’s speed, drawn smoothly in between. ×3 runs everything three times as fast: a different game altogether. And with the frame rate at 17 and the cheats off it is the 1989 original, untouched.

The Raspberry Pi Pico (RP2040) in the cartridge runs the whole game and draws every frame. The Atari shows them, plays the sound and reads the joystick. On an STE or a Mega STE the title tune and the shop’s sample play through the DMA sound chip; elsewhere, and for the music and effects, the YM2149 does the work.

Level 1 at 50 frames a second on an STE
Level 1 at 50 frames a second on an STE.

Bring your own disks. None of the game is included in the app or its source code: the cartridge converts your own copy. Only the Image Works release on two disks works; the Kixx re-release is a different disk and is refused. A preserved copy of the two disks, as Pasti .stx images, is available from Atarimania.

Table of contents
  1. 🛡️ What you need
  2. 🚀 Installation
  3. 💾 The disks on the card
  4. 🕹️ Starting a game
  5. ⌨️ Keys
  6. ⚙️ The options
  7. 🚀 The game
  8. 🔧 How it is made
  9. 🙏 Acknowledgements
  10. 🛠️ Setting Up the Development Environment
  11. 📄 License
  12. 🤝 Contributing

🛡️ What you need

  • Your own copy of the original game: the two disks of the Image Works release, as Pasti .stx images (see above).
  • A SidecarTridge Multi-device with Xenon 2 Megablast installed from the app store, and its microSD card. The disk images and what the cartridge converts from them take about 5 MB.
  • An Atari ST, STE, Mega ST or Mega STE with a colour monitor.
  • A joystick in port 1.

🚀 Installation

  1. Launch the Booster App on your SidecarTridge Multi-device.
  2. Open the Booster web interface.
  3. In the Apps tab, select “Xenon 2 Megablast 50fps” from the list of available apps.
  4. Click “Download” to install the app to your SidecarTridge’s microSD card.
  5. Once installed, select the app and click “Launch” to activate it.

Then copy the disks to the card (next section) and switch the Atari on.

💾 The disks on the card

Copy the two .stx disk images into the card’s XENON2 folder, put the card back in the Multi-device and switch the Atari on.

The first start converts the disks and the five levels, once, with its progress on the screen. Later starts go straight to the title.

The first start converting the levels

If the disks are not in the folder, or are another release, the screen says so and shows a QR code to these instructions:

The original disks are missing

🕹️ Starting a game

Fire or Space on the title starts the game’s attract, and O opens the options. Fire on the attract goes to SELECT: one or two players, the music on or off. Fire again to play.

The title and its keysThe attract
The title, and its keysThe attract: fire for SELECT
SELECT
SELECT: one or two players, the music

⌨️ Keys

KeyWhereWhat
Joystick, firein playFly and shoot (hold fire to keep shooting)
Spacein playDive under the scenery, while dives last
Pin playPause: fire or a key goes on
Escin playBack to the attract
Otitle, attractThe options
Esctitle, attractBack to GEM
Xtitle, attract, optionsBack to the Multi-device’s menu (Booster)

⚙️ The options

Press O on the title or the attract. Each function key steps one option, and fire goes back. Choices are kept on the cartridge. The app starts at 50 frames a second with the sprites at the original’s speed, and gives you a hand: a hit takes 1 from the shield, there are 5 lives and the shots are ×3. F9 puts these defaults back.

The options screen

KeyOptionValuesStarts at
F1Frame rate17 (the original’s) or 50: how fast the world scrolls50
F2Sprites, at 50The original’s speed, drawn smoothly in between, or ×3original
F3DamageThe shield a hit takes: the original’s, 1, or none1
F4Lives3, 5 or 95
F5ShotsThe ship’s weapons at the original’s speed or ×3×3
F6Start level1 to 51
F7MusicOn or off, as SELECT sets iton
F8STE soundThe DMA sound chip or the YM, from the next resetDMA
F9All defaultsEvery option back to the column on the right 

For the 1989 original, untouched: set the frame rate to 17 (F1) and put the damage, lives and shots back to the original’s (F3, F4, F5).

🚀 The game

Level 1: wall guns and the first wavesLevel 1: the worms out of their holes
Level 1: the wall guns and the first wavesThe worms, out of their holes
Crispin's Swop Shop: sellingCrispin's Swop Shop: buying
Crispin's Swop Shop: what will you sell?And what will you buy?
Level 1's end bossAn enemy blown up
Level 1's end bossShots ×3 at work

🔧 How it is made

The app is built on md-framebuffer-template v1.1.0, whose framework does the Atari’s side. The frame the RP2040 draws, one byte per pixel, is converted to the Atari’s planes and copied to the screen every frame. The keyboard, the joystick and the sound go through the cartridge.

The game itself was taken apart from its disks and rewritten in C, routine by routine, on the RP2040. Every routine was checked against the original in the Hatari emulator, and the sound driver write for write. No 68000 code of the game runs anywhere: the cartridge reads only the game’s data, its levels, pictures, songs and tables, from your disks.

🙏 Acknowledgements

This app stands on the shoulders of others, with thanks:

  • The Bitmap Brothers, who designed the game; The Assembly Line, who wrote the Atari ST version; Mark Coleman, its graphics; David Whittaker, its music and effects; and Image Works, who published it in 1989.
  • Hatari, the emulator every routine was checked against.
  • Atarimania, for preserving the disks.
  • QR Code generator by Project Nayuki (MIT licence): the QR code to these instructions when the disks are missing.
  • md-framebuffer-template and md-microfirmware-template by SidecarTridge: the framework this app is built on.

Xenon 2 Megablast belongs to its rights holders and is not part of this project: the app plays the player’s own copy of the disks.

🛠️ Setting Up the Development Environment

This app is built on the md-framebuffer-template, a variant of the SidecarTridge Multi-device Microfirmware App Template. Build instructions are in the repository’s README. For the Multi-device’s programming documentation, see the Programming Guide.

📄 License

This project is licensed under the GNU General Public License v3.0. See the LICENSE file for full terms.

🤝 Contributing

Made with ❤️ by SidecarTridge

Previous: Apps Catalog Main