Log 1: batari Basic

A project log for SYNDRUM: An Atari 2600 Drum Machine

Yeah, so I wrote a little program and built a hardware interface that turned my Atari VCS into a MIDI-capable drum machine

john-sutleyJohn Sutley 09/25/2018 at 16:040 Comments
SYNDRUM running on Stella /w VisualbB in the background

After nearly a year of work (in reality, a few hours of work), here it is! My garbage code that runs on Atari's Video Computer System! OK, all joking aside, this is a much better alternative to writing in 6502 assembly. It just works, and that's all I need it to do.

The batari Basic code & .bin file can be found here.

At the bottom of the screen are 5 blocks. Each block corresponds to a different drum sound and a different button on the controller [UP, LEFT, RIGHT, DOWN, and FIRE].

The blocks act as VU meters. When each sound is triggered, it activates the corresponding meter and changes the color of the screen.

The 5th block doesn't do anything. There was a substantial bit of lag in the emulator with all the graphics and conditional branching in the program, so I chose not to add a 5th voice. I even made a version without any graphics to get rid of this alleged lag, which turns out was a fault in the emulator. Despite the program running lag-free on actual hardware, I chose not to add a 5th voice after the fact because I'm way too lazy for that kind of nonsense and have other projects to work on. Jeez!

Where were we? Ah right, the graphics! This is what the VU meters look like:

No, they don't reset to white afterwards
VU meters made from batari Basic playfield blocks

The meters are made of 'playfield blocks' and not actual sprites. The VU meters all change to the same color depending on the sound that's triggered. They don't keep their individual colors because I'm just not that good. You also may have noticed the 'JCS17' up in the top right. I'm keeping it 17 because '18' is too wide and won't fit in the two playfield sprites that make up 'JCS17'.

So there it is! A mostly functional, bodged-together program written over to course of a year!

Why did I mark this as finished?