Making an Atari ST Game Menu


My first computer was a C64. But my second one was an Atari ST, and it is the one I have the fondest memories of. It was there I really started making things, games at first, and later demos. As I like CRT shaders, I’ve modified the steem emulator to use my own CRT emulation shader.

Image

Just as I did for my dosbox crt mod, I’ve bundled a bunch of game demos with steem-crt, made a menu to launch them from, and made sure that everything is ready and working straight from the download. A great way to give emulation a go even if you know nothing about it.


It was definitely more difficult to track down game demos for Atari ST than it was for DOS. I find some archives of magazine cover disks though, enough to make a bundle at least.


The source code for my modified version, with CRT shader integrated, can be found here: https://github.com/mattiasgustavsson/steem-crt

I have two versions of my CRT shader. One which is more like an old TV, with big curvature and lots of blur, and the other being more like a PC monitor, sharper and less curvature. For the DOS emulator I use the PC one, but for this Atari ST emulator I use the TV one.


The menu deserves a special mention. I didn’t already have a menu system like I did for the dos bundle, so I decided to write one especially for this. Again, it needed to run in the emulator, so that meant using ST tools - STOS to be precise :)

STOS was this awesome game dev environment for Atari ST, essentially a BASIC with built in sound/graphics functions, and game dev tools. I hadn’t used it for a looong time (decades) but it quickly felt familiar again once I got started.

I had this idea of showing a screenshot of each game in the menu, and have to scroll the whole screen up/down. This posed a challenge, as redrawing the whole screen is too slow, and only being able to show 16 colors at one time (I wanted 16 for each screenshot showing).

Scrolling the screen can be done using “hardware scroll”, or simply changing the adress that the display hardware reads from, so that was fairly easy. But that left the issue of having essentially three full 16 color palettes, for each of the upper/middle/lower part of the screen.

The solution was to make a small bit of assembler code that can be called from STOS, to change palette color at specified scanlines on the screen. As the screen scrolls, the palettes and the split points are changed on the fly.

If you like to try some old Atari ST games, give it a go - I hope you’ll enjoy it :)

Get STEEM-CRT

Leave a comment

Log in with itch.io to leave a comment.