January 2026
Untitled project
Started the year by producing a devlog for my ongoing untitled project. I’ve decided to reduce the focus on flying since making this devlog, I think precision flying is too inaccessible for the other planned gameplay aspects. I still want to do something specifically for my custom HOSAS (Hands On Stick and Stick) dual joystick setup .. but I’d like to release something that other people can actually play first ^_^.
Monster Summoner
Despite my promise to avoid gamejams, I made a ‘small game’ for CGA Jam. There’s a ‘high resolution’ graphics mode ‘0x06’ supported by the CGA hardware, 640x200 pixels. It’s only 1 bit, so you’re limited to a fixed black background and one foreground colour. The resolution makes drawing a challenge - the pixels are 2.4 times taller than they are wide. Just trying to get aseprite to display anything in this pixel ratio is a challenge, and all kinds of strange errors occurred with visual garbage and glitches being left when I adjusted zoom levels, or even pixels appearing in the wrong place when drawing. So I mostly stuck to the reasonably functional ‘double height pixel’ mode, which isn’t quite as stretched but comes close. Cloanto Personal Paint on the Amiga actually supports a 640:240 pixel mode that comes close, but the mouse I have for the Amiga isn’t great, so I mostly stuck to Aseprite.

I failed to get a working gcc cross compiler for ia16 (16 bit 8086 family CPUs), so I went with OpenWatcomV2. This worked out pretty well once I managed to find some reasonably up to date documentation. It was my first time writing 16bit C in a while, and I repeatedly made the mistake of assuming 32bit sizes for integers and getting confused when numbers over 32767 (maximum value for a signed 16bit integer) would act strangely. Drawing to the screen in mode 0x06 is fairly simple, every pixel has one corresponding bit, but the memory area is divided into two sections, one for even scanlines and another for oddscanlines. So it was interesting enough without being a challenge to wrangle like some of the more complicated planar graphics modes out there.

Fairly pleased with how the game turned out. If I’m honest it was entirely a vehicle to draw some 1bit pixelart, the game is just a rationalisation. You can play the game here in your browser, but I recommend downloading it and playing in dosbox.
Amiga
When I was a child, I wrote a lottery number generator in Amiga Basic for our Amiga 500. My parents won some money with the numbers it output. I’ve a significant amount of time and a not insignificant amount of money fixing up my Amiga 1200, so I figured it was time to cash in on karma and wrote a lottery number generator in 68000 assembly, so my new Amiga can tell me the winning numbers and make me rich enough to be able to maintain the machine in the future. Also I really wanted a ‘small’ project to get familiar with developing on the Amiga. Nowadays most people write code on their modern PCs and then ‘cross compile’ to the Amiga, testing their code on a software emulator. This lets them use all the futuristic conveniences of the 2020s. But I wanted to do as much as possible on the Amiga itself. There’s plenty of options for developing on the Amiga, but after a little research I went with the highly recommended Asm Pro.
Opening a window and writing text to it is weirdly easy. You just ‘open a file’ with a filename like ‘RAW:0/0/280/200/Lottery”, and a window is created at the top left of the screen, 280 pixels wide and 200 tall, titled ‘Lottery’. Then any characters you write to the file appear in the window. Easy, though somewhere I’m occasionally outputting the wrong number of linebreaks. My Amiga has a realtime clock on an expansion board, so I read the current date from that and use it to seed my Random Number Generator. Then I read out six numbers, check there are no duplicates, and print them to the screen. The actual RNG code could really be run anywhere - it’s completely deterministic and would give the same result if you went through all of the steps manually with pen and paper - but where’s the fun in that? So far this lottery generator has generated a line with three correct numbers and won me $9.15, nearly enough to cover the cost of the tickets I’ve bought so far, haha.

Obviously it could be made to look a lot nicer, but it served as a ‘first project’, much better than the typical ‘hello world’. Sometime in the future I’d like to write a game or three for the Amiga, but that’ll have to wait awhile.
Reading
Over January I read a whole bunch of the ‘Dungeon Crawler Carl’ series. I’m conflicted about these books. Some snobby part of me wants to look down on their ‘game inspired’ elements. Carl and his sentient talking cat Donut are forced to fight for their lives in a dungeon world filled with ridiculous pop culture references, memes and puns. They have a video-game like interface for their inventory, levelling up, boosting stats and so on. So it reads somewhere between a ‘gameplay walkthrough’ and a typical adventure novel. There’s an underlying current of subverting the system and rebellion, hinting at the possibility of overthrowing the powers that are forcing them to participate in the story - I think this is the main motivation keeping me reading.
Music
Album of the month is Takuya Nakamura’s ‘Pleasure Seekers’. He does a lot of jungle/garage adjacent stuff with a good amount of jazz mixed in. I love it, especially his live sets where he pulls out a trumpet and improvises over his live mix.