Run Your Own Server For Fun (and Zero Profit)

It seems there’s a service for everything, but sometimes you simply learn more by doing it yourself. If you haven’t enjoyed the somewhat anachronistic pleasures of running your own server and hosting your own darn website, well, today you’re in luck!

Yes, we’re going to take an old computer of some sort and turn it into a web server for hosting all of your projects at home. You could just as easily use a Raspberry Pi –even a Zero W would work — or really anything that’ll run Linux, but be aware that not all computing platforms are created equally as we’ll discuss shortly.

Yes, we’re going to roll our own in this article series. There are a lot of moving parts, so we’re going to have to cover a lot of material. Don’t worry- it’s not incredibly complicated. And you don’t have to do things the way we say. There’s flexibility at every turn, and you’re encouraged to forge your own path. That’s part of the fun!

Note: For the sake of space we’re going to skip over some of the most basic details such as installing Linux and focus on those that have the greatest impact on the project. This article gives a high level overview of what it takes to host your project website at home. It intentionally glosses over the deeper details and makes some necessary assumptions.

Continue reading “Run Your Own Server For Fun (and Zero Profit)”

DOOM Comes To The RP2040

To the point of being a joke, it seems like DOOM is adapted to run on everything these days. So it was only natural that we would see it ported to the RP2040 by [Graham Sanderson], the tiny chip powering the Raspberry Pi Pico.

You might be thinking, what’s different about this port? There have been 55 articles about DOOM here on Hackaday, showing it running on everything from web checkboxes to desk phones. The RP2040 has 256 K of RAM, two decently clocked processor cores, and 2 MB of flash, so it’s not the most constrained platform ever to have DOOM run it. But [Graham] also set some very lofty goals: all nine levels needed to be playable, faithful graphics and music, multiplayer, and it would output to VGA directly. It should play just like the original. DOOM has a demo that is stored as a sequence of input events. They form excellent regression tests as if the character gets stuck or doesn’t make it to the end; then you’re not accurate according to the original code.

There are two big problems right out the gate. First, a single level is larger than the 2 MB storage that the RP2040 has. And to drive the 320×200 display, you either need to spend a lot of your CPU budget racing the beam or allocate a vast amount of RAM to framebuffers, making level decompression much harder.

A default compression scheme wouldn’t cut it because it needed a high compression ratio and random access since decompressing into RAM wasn’t an option. However, carefully optimizing and compressing the different data structures yielded great results. Save game files are given a similar treatment to ensure they fit into the remaining flash after all the levels (34k).

The result is fantastic, and it supports DOOM, Ultimate DOOM, and DOOM II. The write-up goes into far more detail than we could here; enjoy the read. If you decide to make a day trip to the depths of Hell on your own Pi Pico, be sure to let us know in the comments.

Continue reading DOOM Comes To The RP2040″

A Sinclair ZX81 Clone Still Has The Power To Fascinate

The golden age of 8-bit computing brought us pixelated graphics in bright colours, accompanied of course by chiptune music. This aesthetic is strong enough to define a collective image of a generation’s youth, even if the 1980s reality had much more of the tired 1970s leftovers about it.  The truth was that not all popular 8-bit machines had colour, sound, or good graphics, and among these limited-capability machines was Sir Clive Sinclair’s ZX81. With a Z80, 1k of RAM, a membrane keyboard, and not much else, it helped set the stage for the hugely popular ZX Spectrum which followed it. The fun’s not over though, as [Augusto Baffa] demonstrates with his modern recreation of a machine that can switch between the ’81 and its less-popular ZX80 predecessor.

Rather than a Eurocard-sized mainboard and membrane keypad, this clone copies the ZX80 with a full-sized mainboard the front of which carries the keyboard contacts. It also eschews the ULA found in the ’81 for discrete TTL. It’s based upon the venerable Grant Searle design for a homebuilt Sinclair computer, and all of the files for this version can be found in a GitHub repository.

There is a lot to be said for the ZX81 as a model for retrocomputer experimentation, because of its extreme simplicity. It may have been no great shakes in the computing department compared to many of its competitors, but it remains possibly one of the easiest of the bunch whose operation to completely understand. Also we like it for that paltry 1k of memory, teaching kids about memory constraints is a good thing in our book.

We’ve featured the diminutive ZX more than once, including a couple of years ago in our April Fools coverage.