I'm currently working on a game engine, using the original UNO, driving composite out, with 2 audio channels. It has scrolling tilemap support (256x256 pixels), up to 9 16x16 sprites on-screen per frame (6 per scanline) - any number of sprite animation frames up to memory limit, pixel-based collision detection between sprites. It has enough spare cycles to easily update the entire tilemap per frame if needed (so parallax type scrolling effects are possible). Only single colour output, but I prefer a higher resolution. There is no framebuffer - only the tilemap and sprite data, as the UNO has nowhere near enough RAM, and besides, "racing the beam" is cooler ![]()
To demo it, I'm converting the old ZX Spectrum 48K game "Manic Miner". I've written code to pull the data from the original memory map of the game, and process it to reduce the size of the data considerably. It's currently pretty far along, can show the levels, with sprites loaded, ready to go etc. Hoping to finish it over the next couple of weeks as I get time. Yes, the original annoying music is also in there, in all of its glory
Video of it running on an old amber composite monitor is here, for anyone interested! (flickering is not visible in real-life - it's just caused by the framerate of the monitor vs my phone): Instagram video
My main motivation for this was because I usually use more powerful microcontrollers from various manufacturers, mostly on my own custom PCBs and wanted to go back to a performance constrained device to see what could be squeezed out of it with the minimum components. This project only needs 4 resistors, plus some buttons and a composite monitor (either old PC type monitor or cheap reversing camera etc)!