💾 Archived View for republic.circumlunar.space › users › korruptor › blog › 2022-07-20-VirtualConsol… captured on 2024-03-21 at 16:22:12. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2023-01-29)
-=-=-=-=-=-=-
My recent retro coding on the Amiga got me thinking [far too much] about another idea I’ve been cogitating on for a while: what shape would a"virtual console" for my own stuff take?
I’ve got a lot of ideas for simple-ish, 2D games, that I’d like to make without the overhead of a “big” engine. I could use Unreal, but that’s the definition of a sledgehammer cracking a nut. I could use Godot, but again, that feels too heavy for my needs. Unity is out because, well, I think it's shit.
There are a lot of existing virtual consoles, but most aim for an “8bit plus” vibe; think Pico 8 / Tic 80, that kinda thing… And they’re great! But not quite what I’m after. I want something a bit more Amiga-like. Well, a fancy 16bit console, really. Something with some sane, but hard, limitations, that’s easy to maintain, and (more importantly) portable. I especially want to be able to recompile it onto whatever hardware exists, 20 years from now.
Here’s my high-level, mental tick list:
Any set of restrictions is arbitrary, but I’ve arrived at these for a few reasons.
So, nothing too complicated, but it’d be nice to leverage an existing library for the windowing and event handling. I want to use straight C, so I had a look at SFML and SDL2.
SFML is modern, clean, well supported and has great platform coverage, but, it’s focused more on OpenGL & HW Accelerated contexts. I want a strictly indexed colour (fixed colour palette) workflow, so SDL2 – surprisingly – suits my needs better. It’s easy to have an indexed colour, SDL_Surface based setup, that can be pushed over to accelerated SDL_Textures at runtime.
And the other plus: SDL is already 20 years old. I suspect it’ll still be around in another 20. Especially given how many other game engines use it, under the hood.
So, er, since I’m sliding into a couple of weeks of summer holiday, I started building it out. The EH500 is just at the stage where I need to parse and build the tilemaps. I’ll report back soon.