8bitworkshop
8bitworkshop.com
8bitworkshop.com
For people like me, it’s clearly childhood nostalgia. But to be honest, 8-bit programming was so painful that people couldn’t wait to get rid of those limitations back then. (I tend to think the 16-bit era was the sweet spot in terms of capabilities vs. complexity.)
Its also quite nice as it acts as a levelling of the playing field. The limitations of modern tech are far outside the reach of most solo-devs, but put 100 devs on it, and you could reach it (and therefore create something more technically impressive). With those limitations on, a solo dev can far more conceivably create something technically impressive.
Unless it has real world consequences (eg you can export to a gameboy ROM or something), I don't really care if its based on an actual retro system or a fantasy one, they achieve those same results.
I just learned the hex decades (1, 16, 256, 4k, 64k, 1M, 16M, 256M, 4G…) and now if I need to generate a 1M empty file I know that `head /dev/zero -c $((0x100000)) > 1M.bin` would do without having to multiply 1024 three times. This kind of little things. :)
Nevertheless, it can still be useful if you write Linux device drivers or some other low-level tasks. Microcontroller programming, too, but without having to buy them in the first place (MCU shortage…).
A bit like bootstrapping a village out of primitive resources in Minecraft.
https://eniacinaction.com/the-articles/3-los-alamos-bets-on-...
1. It's a kind of code golf - or rather, it's about seeing how much one can squeeze out of a highly limited and fixed platform. Writing this, I think of things like Mahoney's Cubase64 ( https://www.youtube.com/watch?v=PTGkf21UpJ8 ), which uses a combination of skilled coding and creative (mis)use of hardware functionality to perform real-time effects on sampled audio data on the Commodore 64. As the demonstration itself states: "You need 32-bit, 2000MHz, 1GB at least; what if... 8-bit, 1MHz, 64KB is enough?".
2. Creating a game which can stand its own to the platform's contemporaries on an 8-bit ecosystem can be reasonably achieved by a bedroom coder in their spare time. To do so for modern consoles or machines, one typically needs a higher budget and multiple people.
For this point alone, though, there are arguably easier ways to accomplish this. PICO-8, the herald of the "fantasy computer" phenomenon, created a system inspired by 8-bit limitations in graphics and sound, but offering a modified Lua interpreter in place of coding assembly by hand, in an attempt to balance the stack more towards creativity and away from complexity. (And, of course, nobody is stopping anyone from simply making a retro-styled game with modern tools. Many indie games do exacly that. There's two separate "notable" Game Boy jams on Itch.io - one enforces games actually targetting the real platform, the other cares more about matching the look/feel.)
3. The ability to reason about every component of the system down to bare metal is a welcome retreat from writing complex, object-oriented code running on top of stacks on top of libraries on top of runtimes...
In the end, it's a novelty which tickles a particular part of my brain, I suppose. So long as I enjoy it...
Tinkering with an 8-bit (or a virtual 8-bit) system feels much more tangible. Visceral.
And yes, nostalgia.
https://gkanold.wixsite.com/homeputerium/rules2021
The last two years' winners were both astonishing in completeness and functionality - in 10 lines, a LUNAR LANDER clone .. and then, a year later in another 10 lines of code, a DUNGEON CRAWLER.
When you go backwards and see how things were, you also see what we've lost.
I just ran across this on HN yesterday: "Exploring FPGA Graphics" https://news.ycombinator.com/item?id=32807903 I'm curious to see how they compare.
You can paste some of the game disassemblies floating around into the IDE and they'll work. Then you can hack on them in near-realtime.
Isn't the Z80 a notoriously bad target for C? With its collection of very non-orthogonal registers.
I know in the retro ZX Spectrun scene the use of C is as simplistic glue to piece together hand optimised assembler.
You can modify and extend it to your hearts content and there's a usable software stack and helpful community grown up around it.