GameTank

An original 8-bit game console

Available for pre-order

View Purchasing Options
Jan 28, 2026

Project update 3 of 7

Development Tools and More

by Clyde S

Hi gang, it’s me again! I just wrapped up showing the GameTank at the first-ever Vintage Computer Festival Montreal, which was actually in Saint-Jean-sur-Richelieu but close enough eh? I’ve now signed up to show at VCF SoCal which is in a little less than three weeks away, so that’s another chance to see the console in person if you haven’t yet and will be in that area.

Hardware News

Not much has changed in the hardware world, PCBWay had some delays producing the very latest GameTank boards that I plan to send for EMI testing. These are mostly the same as boards I have in hand, but I want to make sure the tested boards are as close as possible to the production model so no surprises come up.

Software News

An improved audio engine has now been pushed to main in the C SDK, which I mentioned in the previous update was developed for Ganymede. This new sound is now available for anybody to play with and make some nice music.

Recently Inufuto, the prolific Japanese retro developer who ports to over a hundred systems, has released a new title AWASS in which you climb up and down ladders and can move platforms around like a sliding puzzle. This game quickly made it to the GameTank and is now included on the gametank.zone/games collection.

Developer Tools Overview

In this update I’d like to share what’s available in terms of development tooling and how it makes it easier to develop GameTank games:

C SDK

The GameTank C SDK is based around CC65. It provides not only libraries to simplify talking to the hardware and performing common game engine tasks, but it also has scripts that import graphics and music into your build. These scripts generate header files with macros for referring to imported assets, so your autocomplete can help you use the right references. The import process also assigns ROM bank numbers to each asset so that you don’t have to take care of bank switching manually when loading graphics and music from different banks of the cartridge. The SDK even provides a draw queueing system to easily use the parallel processing capabilities of the CPU and blitter. Drawing your character on screen is as straightforward as queue_draw_sprite_frame(my_cool_oc, x, y, frame, flip); which is intentionally about on par with the ease of use in Web JS Canvas programming.

Visit the SDK repo to see how to get started, and you can easily jump in by modifying main.c. You can take a look at the SDKv2-example branch to see how to use SDK features like drawing graphics and playing music. The main branch of the SDK is intentionally kept simple so you can use it as a template for a new project and get started quickly with little baggage.

Aseprite Integration

The sprite art tool Aseprite provides the ability to tag ranges of animation frames with names, and can export "packed" sprite sheets alongside a JSON file that gives the positions and sizes of each frame. The conversion scripts in the SDK can turn that data into a frame array for use with queue_draw_sprite and the generated header files give the start and end frame numbers of your named animation ranges as macros.

Emulator (C++ version)

The GameTank Emulator has been around since partway through making the first GameTank game. Originally it was created to quickly validate small changes at a time when updating the 8 kilobyte EEPROM cartridge took several minutes. Since then it has evolved, adding more debug features like a memory viewer and profiler, more performant, and more accurate so that bugs are consistent between real hardware and emulation. The emulator can be compiled for Windows, Mac, Linux, and web assembly. I also have a build mode in the works that will wrap a ROM file to act as a standalone PC game, providing a more game-like menu interface for emulator settings compatible with joystick inputs.

Rust SDK

The Rust SDK, maintained by Burdock, uses the llvm-mos project and provides a toolchain to compile Rust code for the GameTank. It’s still catching up on features with the C SDK, but is steadily growing. It can be easily installed with the cargo package manager. It also provides the gtld program for flashing cartridges, which has already surpassed my own C++ gtfo program on convenience features. Such features include a firmware updater for the cart flasher itself, as well as automatic bank splitting and detection of blank sectors to skip.

Emulator (Rust version)

This alternative GameTank emulator is written in Rust, this version is also still catching up on features and accuracy compared to the more mature C++ version, but it has managed a feat I haven’t in my own tools which is building for RetroArch.

Please tell your friends!

Besides backing the project directly, the best thing you can do to help make sure this comes to fruition is to mention it to anyone else you know who might get excited over playing with this hardware! There’s also of course the added benefit that if your friends get GameTanks as well, you can exchange your games on cartridge to each other.


Sign up to receive future updates for GameTank.

GameTank is part of Soldered Electronics Inkubator

Subscribe to the Crowd Supply newsletter, highlighting the latest creators and projects