ZX Spectrum Gets A 3D FPS Engine

The Sony PlayStation and Nintendo 64 are well-known for bringing 3D gaming into the mainstream in a way that preceding consoles just couldn’t. The ZX Spectrum, on the other hand, is known for text adventures and barebones graphics. However, it now has a rudimentary version of a Quake-like engine, as demonstrated by [Modern ZX-Retro Gaming].

As you might expect, the basic ZX Spectrum that sat in front of your dodgy old TV in the 1980s isn’t really up to the task of running a full 3D game. The engine runs at a fairly jerky frame rate on a 3.5 MHz ZX Spectrum, with purely monochrome graphics. However, the game can run more smoothly on 7, 14, and 28MHz ZX Spectrum compatibles. As with many such projects, most of the video you’ll see is of the game running in emulators. Impressively, the game features sound effects, three weapons, and a standard WASD control layout as per modern FPS games.

If you’re wondering about the confusing visuals, there’s a simple explanation. Yes, the UI and weapons are straight out of Doom. However, the game is running on a true 3D engine, with 3D enemies, not sprites. It’s inspired by the full 3D engine pioneered by Quake, hence the designation.

Files are available for those wishing to try it out at home. We do see a fair bit of the ZX Spectrum around these parts. Video after the break.

Continue reading “ZX Spectrum Gets A 3D FPS Engine”

Putting The Magic Smoke Back Into A Dodgy Spectrum Analyzer

The trouble with fixing electronics is that most devices are just black boxes — literally. Tear it down, look inside, but it usually doesn’t matter — all you see are black epoxy blobs, taunting you with the fact that one or more of them are dead with no external indication of the culprit.

Sometimes, though, you get lucky, as [FeedbackLoop] did with this Rigol spectrum analyzer fix. The instrument powered up and sort of worked, but the noise floor was unacceptably high. Even before opening it up, there was clearly a problem; in general, spectrum analyzers shouldn’t rattle. Upon teardown, it was clear that someone had been inside before and got reassembly wrong, with a loose fastener and some obviously shorted components to show for it. But while the scorched remains of components made a great place to start diagnosis, it doesn’t mean the fix was going to be easy.

Figuring out the values of the nuked components required a little detective work. The blast zone seemed to once hold a couple of resistors, a capacitor, a set of PIN diodes, and a couple of tiny inductors. Also nearby were a pair of chips, sadly with the markings lasered off. With some online snooping and a little bit of common sense, [FeedbackLoop] was able to come up with plausible values for most of these — even the chips, which turned out to be HMC221 RF switches.

Cleaning up the board was a bit of a chore — the shorted components left quite a crater in the board, which was filled with CA glue, and a bunch of missing pads. This called for some SMD soldering heroics, which sadly didn’t fix the noise problem. Replacing the two RF switches and the PIN diodes seemed to fix the problem, albeit at the cost of some loss. Sometimes, good enough is good enough.

This isn’t the first time [FeedbackLoop] has gotten lucky with choice test equipment in need of repairs — this memory module transplant on a scopemeter comes to mind.

Continue reading “Putting The Magic Smoke Back Into A Dodgy Spectrum Analyzer”

3D Printing A Sock Knitting Machine

3D printing socks isn’t really a thing yet. You’d end up with scratchy plastic garments that irritate your feet no end. You can easily 3D print all kinds of nifty little mechanisms, though, so why not 3D print yourself a machien to knit some socks instead? That’s precisely what [Joshua De Lisle] did.

The sock knitting machine is a simple device, albeit one that takes up most of the build area on a common 3D printer. It’s properly known as a circular sock machine, and is capable of producing the comfortable tubular socks that we’re all familiar with. All it takes is a bit of yarn and a simple handcranking of the mechanism, and it’s capable of extruding a sock before your very eyes.

He steps through his various iterative design improvements, and shows us how to build the device using knitting machine hooks to handle the yarn directly. The device is also instrumented with a digital counter to keep track of how far along your given sock is.

Your friends at the pub might go running for the doors when you start explaining that you’re thinking about making your own socks. Don’t let them deter you; we’ve seen others tread this path before. Video after the break.

Continue reading “3D Printing A Sock Knitting Machine”

A silver and black bike sits in front of a dark grey bridge. It is on a hard surface next to green grass. The bike has a large basket area in front of the steering tube that then connects to the front wheel which is at the other end of the basket from the handlebars. It is best described as a long john bike, but is a more modern take on it than the wooden box Dutch bike.

Building A Cargo Bike Dream

Cargo bikes can haul an impressive amount of stuff and serve as a car replacement for many folks around the world. While there are more models every year from bike manufacturers, the siren song of a custom build has led [Phil Vandelay] to build his own dream cargo bike.

The latest in a number of experiments in hand-built cargo bike frames, this electrified front-loader is an impressive machine. With a dual suspension and frame-integrated cargo area, this bike can haul in style and comfort. It uses a cable steering system to circumvent the boat-like handling of steering arm long john bikes and includes a number of nice touches like (mostly) internal cable routing.

The video below the break mostly covers welding the frame with [Vandelay]’s drool-worthy frame jig, so be sure to watch Part 2 of the video for how he outfits the bike including the internal cable routing and turning some parts for the cable steering system on the lathe. If you get an urge to build your own cargo bike after following along, he offers plans of this and some of his other cargo bike designs. [Vandelay] says this particular bike is not for the beginner, unlike his previous version built with square tubing.

Looking for more DIY cargo bikes? Checkout this Frankenbike, another front loader, or this Russian trike.

Continue reading “Building A Cargo Bike Dream”

A Virus For The BBC Micro

If you work at all with British software or hardware engineers, you’ll find that there’s an entire generation perhaps now somewhere between their mid-40s and mid-50s, who stand slightly apart from their peers in their background and experience. These were the lucky teenagers who benefited from the British government’s 1980s push to educate youngsters in computing, and who unlike those before or who followed, arrived at university engineering courses fresh from school fully conversant with every facet of a computer from the hardware upwards.

[Alan Pope] is from that generation, and he relates a tale from his youth that wasn’t so out of place back in those days, of how he wrote what we’d now call a simple virus for the BBC Micro. Better still, he’s re-created it.

The post is as much a delightful trip back through that era of microcomputing, including an entertaining aside as he shared an airline journey with BBC Micro designer Chris Turner, and it serves as a reminder of how the BBC Micro’s disk operating system worked. There was a !boot file, which was what would be run from the disk at startup, and his bit of code would subvert that and hide itself in the machine’s so-called sideways RAM. The payload was pretty simple, every 32 soft reboots it would print a “Hello world” message, but it seems that was enough back in 1989 to get him into trouble. The 2023 equivalent works, but we’re guessing no teacher will come for him this time.

If you can’t find a real BBC Micro but still want one on hardware, we’ve brought you an FPGA version in the past.

Book8088 Slows Down To Join The Demoscene

As obsolete as the original IBM Model 5150 PC may appear, it’s pretty much the proverbial giant’s shoulders upon which we all stand today. That makes the machine worth celebrating, so much so that we now have machines like the Book8088, a diminutive clamshell-style machine made from period-correct PC chips; sort of a “netbook that never was.”

But the Book8088 only approximates the original specs of the IBM PC, making some clever hardware hacks necessary to run some of the more specialized software that has since been developed to really stretch the limits of the architecture. [GloriousCow]’s first steps were to replace the Book8088’s CPU, an NEC V20, with an actual 8088, and the display controller with a CGA-accurate Motorola MC6845. Neither of these quite did the trick, though, at least not on the demanding 8088MPH demo, which makes assumptions about CPU speed based on the quirky DRAM refresh scheme used in the original IBM PC.

Knowing this, [GloriousCow] embarked on a bodge-fest aimed at convincing the demo that the slightly overclocked Book8088 was really just a 4.77-MHz machine with a CGA adapter. This involved cutting a trace on the DMA controller and reconnecting it to the machine’s PIO timer chip, with the help of a 74LS74 flip-flop, a chip that made an appearance in the 5150 but was omitted from the Book8088. Thankfully, the netbook has plenty of room for these mods, and with the addition of a little bit of assembly code, the netbook was able to convince 8088MPH that it was running on the correct hardware.

We thoroughly enjoyed this trip down the DMA/DRAM rabbit hole. The work isn’t finished yet, though — the throttled netbook still won’t run the Area 5150 demo yet. Given [GloriousCow]’s recent Rust-based cycle-accurate PC emulation, we feel pretty good that this will come to pass soon enough.

Logic Analyzers: Capabilities And Limitations

Last time, we’ve used a logic analyzer to investigate the ID_SD and ID_SC pins on a Raspberry Pi, which turned out to be regular I2C, and then we hacked hotplug into the Raspberry Pi camera code with an external MCU. Such an exercise makes logic analyzers look easy, and that’s because they are! If you have a logic analyzer, you’ll find that a whole bunch of hacks become available to you.

In this article, let’s figure out places where you can use a logic analyzer, and places where you can’t. We’ll start with the first limitation of logic analyzers – capture speed. For instance, here’s a cool thing you can buy on Aliexpress – a wristband from TTGO that looks like a usual fitness tracker, but has an ESP32 in it, together with an IMU, an RTC, and an IPS screen! The seller also has an FFC-connectable devboard for programming this wristband over UART, plus vibromotor and heartrate sensor expansion modules.

You can run C, MicroPython, Rust, JavaScript, or whatever else – just remember to bring your own power saving, because the battery is super small. I intended to run MicroPython on it, however, and have stumbled upon a problem – the ST7735-controller display just wouldn’t work with the st7735.py library I found; my image would be misaligned and inverted.

The specifications didn’t provide much other than “ST7735, 80×160”. Recap – the original code uses an Arduino (C++) ST7735 library and works well, and we have a MicroPython ST7735 library that doesn’t. In addition to that, I was having trouble getting a generic Arduino ST7735 library to work, too. Usually, such a problem is caused by the initialization commands being slightly different, and the reason for that is simple – ST7735 is just the name of the controller IC used on the LCD panel.

Each display in existence has specifics that go beyond the controller – the pixels of the panel could be wired up to the controller in a bunch of different ways, with varying offsets and connection types, and the panel might need different LCD charge pump requirements – say, depending on the panel’s properties, you might need to write 0x10 into a certain register of the ST7735, or you will need 0x40. Get one or more of these registers wrong, and you’ll end up with a misaligned image on your display at best, or no output at worst. Continue reading “Logic Analyzers: Capabilities And Limitations”