Tiny Pinball Machine Also Runs X86 Code

As arcades become more and more rare, plenty of pinball enthusiasts are moving these intricate machines to their home collections in basements, garages, and guest rooms. But if you’re not fortunate enough to live in a home that can support a space-intensive hobby like pinball machines, there are some solutions to that problem. This one, for example, fits on the palm of your hand and also happens to run some impressive software for its size.

The machine isn’t a mechanical pinball machine like its larger cousins, though. Its essentially a 3D printed case made to look like a pinball machine with two screens attached. It does have a working plunger for launching the ball and two buttons on the sides for the approximation of authenticity, but it’s actually running Pinball Fantasies — a pinball simulator designed to run on x86 hardware from the 90s. This sports an ESP32 on the inside, which has just enough computing capability to run an x86 emulator that can load these games in DOS.

The game includes haptic feedback and zips along at 60 frames per second, which really brings the pinball experience to its maximum level given the game’s minuscule size. It’s impressive for fitting a lot into a small space, both from physical and software points-of-view. For more full-sized digital pinball builds, take a look at this one which comes exceptionally close to replicating the real thing.

Continue reading “Tiny Pinball Machine Also Runs X86 Code”

Building A Serial Bus To Save An Old Hard Drive

Universal Serial Bus has been the de facto standard for sending information to and from computer peripherals for almost two decades, but despite the word “universal” in the name this wasn’t always the case. Plenty of competing standards, including USB, existed in the computing world in the decades before it came to dominance, and if you’re trying to recover data from a computer without USB you might have to get creative with how it’s done.

[Ben] recently came across a 80486 with this problem, so he had to get creative to recover the contents of the drive. He calls it the “lunchbox” computer due to its form factor, and while it doesn’t have USB it does have a tried-and-trusted serial port to communicate with other computers. [Ben] wrote up a piece of software for both the receiving computer and the sending computer in order to copy the drive sectors one by one across a serial link to a standalone computer running Windows XP, and was able to recover the contents of the drive that way instead.

All of the code [Ben] wrote is available on his GitHub page for anyone looking to boot up a 30-year-old computer again. While it might sound uncommon, computers of this vintage are still around running things like CNC machines or old mainframes.

Custom Macintosh With A Real 486

Older Apple computers can often be something of a collector’s item, with the oldest fetching an enormously high price in auctions. The ones from the late ’80s and early ’90s don’t sell for quite as much yet, but it’s possible that museums and collectors of the future will one day be clamoring for those as well. For that reason, it’s generally frowned upon to hack or modify original hardware. Luckily, this replica of an Apple Macintosh didn’t harm any original hardware yet still manages to run software on bare metal.

The computer is built around a single-board computer, but this SBC isn’t like the modern ARM machines that have become so ubiquitous. It’s a 133MHz AMD 486 which means that it can run FreeDOS and all of the classic DOS PC games of that era without emulation. In order to run Apple’s legacy operating system, however, it does require the use of the vMac emulator, but the 486 is quite capable of handling the extra layer of abstraction. The computer also sports a real SoundBlaster ISA sound card, uses a microSD card for its hard drive, and uses an 800×600 LCD screen.

As a replica, this computer is remarkably faithful to the original and even though it doesn’t ship with a Motorola 68000 it’s still fun to find retro PC gamers that are able to run their games on original hardware rather than emulation. It reminds us of another retro 486 that is capable of running old games on new hardware without an emulator as well.

Retro Gaming With Retro Joysticks

One of the biggest reasons for playing older video games on original hardware is that emulators and modern controllers can’t replicate the exact feel of how those games would have been originally experienced. This is true of old PC games as well, so if you want to use your original Sidewinder steering wheel or antique Logitech joystick, you’ll need something like [Necroware]’s GamePort adapter to get them to communicate with modern hardware.

In a time before USB was the standard, the way to connect controllers to PCs was through the GamePort, typically found on the sound card. This has long since disappeared from modern controllers, so the USB interface [Necroware] built relies on an Arduino to do the translating. Specifically, the adapter is designed as a generic adapter for several different analog joysticks, and a series of DIP switches on the adapter select the appropriate mode. Check it out in the video after the break. The adapter is also capable of automatically calibrating the joysticks, which is necessary as the passive components in the controllers often don’t behave the same way now as they did when they were new.

Plenty of us have joysticks and steering wheels from this era stored away somewhere, so if you want to experience Flight Simulator 5.0 like it would have been experienced in 1993, all it takes is an Arduino. And, if you want to run these programs on bare metal rather than in an emulator, it is actually possible to build a new Intel 486 gaming PC, which operates almost exactly like a PC from the 90s would have.

Continue reading “Retro Gaming With Retro Joysticks”

Installing Linux Like It’s 1989

A common example of the sheer amount of computing power available to almost anyone today is comparing a smartphone to the Apollo guidance computer. This classic computer was the first to use integrated circuits so it’s fairly obvious that most modern technology would be orders of magnitude more powerful, but we don’t need to go back to the 1960s to see this disparity. Simply going back to 1989 and getting a Compaq laptop from that era running again, while using a Raspberry Pi Zero to help it along, illustrates this point well enough.

[befinitiv] was able to get a Raspberry Pi installed inside of the original computer case, and didn’t simply connect the original keyboard and display and then call it a completed build. The original 286 processor is connected to the Pi with a serial link, so both devices can communicate with each other. Booting up the computer into DOS and running a small piece of software allows the computer into a Linux terminal emulator hosted on the Raspberry Pi. The terminal can be exited and the computer will return back to its original DOS setup. This also helps to bypass the floppy disk drive for transferring files to the 286 as well, since files can be retrieved wirelessly on the Pi and then sent to the 286.

This is quite an interesting mashup of new and old technology, and with the Pi being around two orders of magnitude more powerful than the 286 and wedged into vacant space inside the original case, [befinitiv] points out that this amalgamation of computers is “borderline useful”. It’s certainly an upgrade for the Compaq, and for others attempting to get ancient hardware on the internet, don’t forget that you can always use hardware like this to access Hackaday’s retro site.

Continue reading “Installing Linux Like It’s 1989”

C#, The Language For All Platforms – Now Including Windows 3.11 And DOS

The Microsoft .NET framework has been with us in one form or another since the millennium, and though it has remained largely the preserve of the Microsoft universe, it has found its way since then through a variety of implementations to other platforms including MacOS and GNU/Linux. In Microsoft terms though its history goes back only as far as Windows 98, earlier MS operating systems remain off-limits.

Just a glimmer of .NET in DOS and Windows 3.11 comes courtesy of [Michal Strehovský], who has successfully compiled .net C# code for both Windows 3.11 and DOS. An in-depth explanation comes courtesy of [Scott Hanselman], and it involves some tricks spanning the decades since the early 1990s. The .NET Core compiler’s object files can be fed into the linker that shipped with an ancient version of Microsoft’s C++ compiler, which when used with Microsoft’s Win32s compatibility layer that brought some of Windos NT’s APIs to the 16-bit OS, allows C# from 2020 to run as though it were 1992 again. Meanwhile the DOS version uses .NET Core’s ability to produce self-contained executables along with some very significant tricks to pare down the size of the finished program from many megabytes to an eventual DOS-suitable 27k. Remember the apocryphal Bill Gates quote, that “640k should be enough for anyone“, that refers to the maximum memory available to DOS without extra memory-extending tricks.

Neither piece of software is especially useful, and we can’t see a rush of C# coders to these new platforms. But we applaud him for his ingenuity, and getting old hardware to do new tricks is right up our alley. It’s certainly dredged up a few memories from back in the day for us. Meanwhile we’ve featured .NET in a few projects over the years, most recently on an FPGA.

The Legacy Of The Floppy Still Looms Over Windows

We no longer use floppy disks on the vast majority of computers, but a recent Old New Thing blog post from Microsoft sheds light on one of their possible unexpected legacies. It seems Windows disk cache items expire after two seconds, and as the post explains this has its origin in the development of MS-DOS 2.0.

Disks, especially floppy disks, are slow compared to computer memory. A disk cache is a piece of memory into which the operating system puts frequently loaded items to speed up access and avoid its having to repeatedly access the disk. They have an expiry time to ensure that the cache doesn’t become clogged with data that hasn’t been needed for a while.

IBM PC floppy drives didn’t implement any form of notification for a disk eject, so it became quite possible for a disk to be ejected while the operating system still believed cached data from it to be valid. Thus a pair of Microsoft engineers tried their hardest to swap floppy discs as fast as they could, and it was discovered to be an impossible task in under two seconds. This became the cache expiry time for a Microsoft OS, and thus we’re told the floppy’s legacy lives on as more than just the ‘save’ icon.

As this is being written the Internet is abuzz with a viral Tweet about railroad gauges having an origin in the width of a Roman horse, that rail historians are debunking with a reference to the coal tramways of [George Stephenson’s] Northern England. It’s thus sometimes dangerous to take simple soundbite origin stories at face value, but since in this case our source is Microsoft themselves we think we can take it as being close to the horse’s mouth. Even if it isn’t a Roman horse.

IBM floppy drive image: Michael Holley [Public domain].