Newish Retro Projects

Atari 8 bit corruption

Back in October 2022, there was a new instance of the Spelsylt game jam that I join a the year prior where I made Pumpkins!. As we had just had an election here in Sweden, the two themes you could chose between were Corruption and Val. Val is the Swedish word for election, but can also mean Whale and choice, which makes is a great word for a game jam theme.

Around the same time, I stumbled upon a fellow atari fan on twitch, where he wanted to write a clone of Snake in BASIC for the Atari 8bit computers. As he struggled to get the game performant, I got inspired to make my own version of Snake for the atari, but written in pure 6502 assembly language.

This time around the rules of the game jam were modified so that all entries had to be playable in a modern browser without plugins. As I didn’t want to spend a majority of the two week span to get an emulator up and running in a browser with my game, I decided to not join the jam. However, I did start writing a Snake clone with the same theme as the game jam. The game is called smol snek.

The unique thing about smol snek is that the snake can get corrupted unless the player follows certain rules unknown to her. If the snake is corrupted, there are some random effects that can happen, like corrupted food stuffs placed in the level that gets the player killed when eating, or shaking the screen randomly until the next food has been eaten.

I had quite a bit of fast progress the first month or two, but I lost all momentum in the new year. There is not a lot of work left, but you know what they say; the last 10% takes 90% of the time. I will eventually pick up smol snek again and complete it, but I recently got distracted by a new old project.

SEGA Mega drive sounds nice

When the game jam where I made Pumpkins! ended, I still had a list of things on the TODO list. One of those things was to add sound. I did some initial test right after the game jam, but couldn’t really get the FM chip to work. I did add some simple PSG audio when jumping, but that’s it. I also felt that there was no great tool to create the sounds, or make music for that matter. Sure, there is the Deflemask tracker, but the lack of a clear and simple way to get the music into your own product really turned me off. Besides, the VGM file format seems a bit of an overkill for playback on the real hardware.

As I’m trying to get better and programming in Rust, I decided to write a simple music tracker in Rust that uses a real Mega drive for audio playback. The connection between the computer running the tracker requires a MEGA Everdrive Pro/x7 from Krikzz that have a built-in serialport usable from the console.

As I notoriously want to make as much as possible myself, I decided to write my own immediate mode UI for the tracker. That sparked another project for loading BMF font files, which I needed to to get up and running before I could continue with the UI for the tracker. The first commit on the tracker was in May 2022, but not much happened the last six month. Until about a week ago. As it happens, my boss have bought a Mega drive and set it up in the office for everyone to play whenever they feel like. I brought Pumpkins! with me and played a bit which triggered a spark to continue with the tracker.

When I left it around 6 month ago, I only had UI for modifying the envelope of an instrument, and an initial test to send data between the tracker and the console. Today, I can send instrument definitions to the console and use the computer keyboard to play notes. This is basically what I need on the console side to implement a working version of the tracker. Of course I will need to write playback code for the console for files exported from the tracker, but that will come later.

I hope to get to a state where I can save sound effects and play them in Pumpkins! in a not so distant future.

More will come.