Porting DOOM To A Forgotten Apple OS

Apple hasn’t always had refined user experiences in their operating systems. In the distant past of the ’90s they were still kind of clunky computers that were far from the polished, high-end consumer machines of the modern era. That wasn’t all that Apple offered back then, though. They had a long-forgotten alternative operating system that was called A/UX designed for government applications, and [Keriad] is here to show us this relic operating system and port DOOM to it.

A/UX was designed in the pre-PowerPC days when Macintosh computers ran on Motorola 68000 chips. Luckily, [Keriad] has a Mac Quadra 800 with just such a chip that is still fully-functional. DOOM was developed with the NeXTSTEP operating system which can run on old Macs thanks to another tool called MacX which allows X11 applications to run on Mac. A version of gcc for A/UX was found as well and with the source code in hand they were eventually able to compile a binary. There were several hiccups along the way (including the lack of sound) but eventually DOOM was running on this forgotten operating system.

The main problem with the build in the end, besides the lack of sound, is that the game only runs at 2 – 3 frames per second. [Keriad] speculates that this is due to all of the compatibility layers needed to compile and run the game at all, but it’s still impressive. As far as we know, [Keriad] is the first person to port DOOM to this OS, although if you’re looking for something more straightforward we would recommend this purpose-built Linux distribution whose sole task is to get you slaying demons as quickly as possible.

A Linux Distribution For DOOM

If you’ve gone further into the Linux world than the standard desktop distributions like Ubuntu or Fedora, you have undoubtedly come across some more purpose-built distributions. Some examples are Kali for security testing, DragonOS for software-defined radio, or Hannah Montana Linux for certain music fans. Anyone can roll their own Linux distribution with the right tools, including [Shadly], who recently created one which only loads enough software to launch the 1993 classic DOOM.

The distribution is as simple as possible and loads no bloat other than what’s needed to launch the game. It loads the Linux kernel and the standard utilities via BusyBox, then runs fbDOOM, which is a port of the game specifically designed to run on the Linux framebuffer with minimal dependencies. After most of that, the only thing left is to use GRUB to boot the distribution, and in just a moment, Doomguy can start slaying demons. The entire distribution is placed into a bootable ISO file that can be placed on any bootable drive.

As far as DOOM hacks go, we’re used to seeing the game running on hardware it was never intended for like the NES  or on an office phone. This one, on the other hand, gives us a little more insight into just how little is needed for a full-fledged Linux distribution, as long as what you need to do is relatively straightforward.

Continue reading “A Linux Distribution For DOOM

A Breath Of Fresh Air For Some Arcade Classics

It’s said that good things come in small packages, which is hard to deny when we look at all the nifty projects out there that were built into an Altoids tin. Now, if that’s already true for the regular sized box, we can be doubly excited for anything crammed into their Smalls variety ones, which is what [Kayden Kehe] decided to use as housing for his mintyPico, a tiny gaming console running homebrew versions of Snake, Breakout, Pong, and a few more.

As the “Pico” might have already given away, the project is built around a Raspberry Pi Pico board, and being intended as portable device, [Kayden] went with a version that also houses LiPo battery charging circuitry. A set of 3d-printed parts pack the board along with a matching battery and a button panel neatly into the tin itself, while a size-appropriate SSH1106 OLED goes into the lid. All design files along with the MicroPython code of the games can be found on the project’s GitHub page.

You may have felt this strange sense of familiarity when you read the project’s name, and indeed, the mintyPi gaming console was a major inspiration for [Kayden] here, as was the Pico Snake project. Considering this was his junior year high school project, this is certainly an impressive and nice mash-up of those two projects.

Continue reading “A Breath Of Fresh Air For Some Arcade Classics”

A pair of purple PCB-based game controllers on a solderless breadboard

Odd Inputs And Peculiar Peripherals: The GameBug Turns Your Breadboard Into A Game Console

What’s more fun than playing video games? Designing your own video game hardware, of course! If you’ve followed these pages long enough you’ll have seen dozens of great examples of homebrew hardware, and perhaps been inspired to try such a project yourself. This often starts with assembling the basic bits onto a solderless breadboard, which is fine for programming but not so great for testing: squeezing pushbuttons into your breadboard works for basic debugging, but is not very user-friendly or reliable. A better solution can be found in [Dimitar]’s GameBug: a set of breadboard-compatible joypad-like controllers.

The GameBug’s design excels in its simplicity: a miniature analog joystick, four buttons arranged in a diamond pattern, a shoulder button and two sliding switches are sitting on a neat purple PCB. On the bottom are two rows of pin headers to ensure a snug fit on your solderless breadboard. There’s even a little vibrating motor for haptic feedback.

Interfacing with the GameBug is simplified by the integrated readout electronics. A Schmitt trigger-based debounce circuit ensures clean signals from all the pushbuttons, while a motor driver chip provides stable current to the haptic feedback system. An RGB LED can be used as yet another user feedback device, or simply for decorative lighting.

All design files are available on [Dimitar]’s GitHub page, along with an Arduino sketch to help you try out the GameBug’s functionality. Having a proper gamepad might come in handy with breadboard-based game systems like Tiny Duck Hunt or this impressive mess of wires that makes up a Colecovision.

A pair of purple PCB-based game controllers

LED Heart Keeps Tabs On Your RuneScape Character

The MMORPG RuneScape holds a special place in the hearts of those who played it in the early 2000s. Sure it might seem exceptionally quaint by modern standards, but at the time it was groundbreaking stuff. Plus you could play it for free, which certainly helped get people onboard. While there’s a more modern build available, many who played the game from the early days prefer to stick with what they know, and continue to run a version of the game that has now become known as Old School RuneScape.

[Austin Blake] is one of those early adopters, and the work he put into this LED health indicator should tell you all you need to know about how dedicated he is to the classic game. The 3D printed heart holds an incredible 312 NeoPixel LEDs, which are controlled by a 5 volt compatible Arduino Nano Every located on the back side.  Both the color and “fill level” of the heart will change in real-time to correspond to the health of the player character.

Building the light itself was pretty straightforward, but getting the health value from the game was another story. As [Austin] explains in the video, his first attempt involved using Python and some image recognition routines to literally read the indicator off of the screen. The idea worked, and is frankly a fascinating hack worth keeping in mind on its own, but unfortunately it was too slow to provide the real-time feedback he was looking for.

Eventually he turned his attention to RuneLite, which is an open source client for Old School RuneScape. Thanks to its open source nature he could have hacked a routine to read the current health value and send it off to the Arduino, but thanks to a mature plug-in system, he didn’t have to.

The game’s API let him create a simple and reliable way of getting the data out of the game, similar to what we see in the flight simulator community for driving physical gauges and displays. RuneLite features a repository of community-developed plugins, and [Austin] says that he’d be happy to submit his for inclusion if others are interested in building similar indicators — a perfect match for this motion-sensing RuneScape axe.

Continue reading “LED Heart Keeps Tabs On Your RuneScape Character”

English Words In French Gaming? Non Merci!

Are you a gamer? If you’re French, it seems that you shouldn’t be using so much English in pursuit of your goals.

It’s a feature of an active language, that it will readily assimilate words from others. Pizza, karaoke, vuvuzela, parka, gateau, schadenfreude, they have all played their part in bringing a little je ne sais quoi into our everyday speech. This happens as a natural process as whatever the word is describing becomes popular, and sometimes these new words cause a backlash from those who see themselves as the language’s defenders.

Often this is a fringe activity such as the British politician who made a fool of himself in a radio interview by insisting on the now-archaic Wade-Giles “Peking” rather than the vastly more common Pinyin “Beijing”, but for some tongues it’s no laughing matter. Nowhere is this more the case than in the Francophone world, in which the Academie Francaise and the French and Quebecquois governments see themselves as very much the official guardians of French. And now it seems that the French ministry of culture have turned their eyes upon gamers.

It’s nothing new for words associated with technology to fall under this scrutiny, a quarter century ago in the CD-ROM business it was de rigeur for localized discs to talk about le logicel, l’ordinateur, and telecharger instead of program, computer, and download. The talk of the industry was that Sony refused to do this for PlayStation consoles sold in Quebec during the 1990s, and thus all their sales in the province had to be under-the-counter. But there’s a sense from reading the reports that this intervention is a little clumsy; while it’s easy to say logicel we’re not so sure that jeu video de competition  or video game competition for e-sports and joueur-animateur en direct or live player-animator for streamer aren’t just too much of a mouthful for easy adoption. For the first one, we can’t help remembering that sport is also an everyday French word, so couldn’t they have come up with something less clumsy such as reseau-sports or network-sports?

Here at Hackaday more than one of us are unrepentant Francophiles, so the evolution of French words in our field is of interest to us. Habitez-vous en France ou Quebec? Donnez-nous votres idees dans les commentaires! (mais en Anglais s’il vous plait pour les Americains, excusez-nous)

Header image: Christopher Macsurak, CC BY-SA 4.0.

Practical Wireless “Tele-Tennis” Build After Only 34 Years

Home-etched PCBs ready for drilling

Back in November 1974 the publication “Practical Wireless” produced a five-part article series showing the reader how to construct a version of the popular “pong” game that could be played on the television screen available in the typical British home. [Grant Searle] had wanted to build this project for years, but it took him until 2008 to find the opportunity to do so. The magazine article printed PCB layouts to 1:1 scale, with a bill of materials and assembly instructions. After each month, the reader would have an assembled the project a little more, with the final month dedicated to point-to-point wiring and final setup. Subsequent months contained some enhancements such as a scoring system and sound effects, but these are not yet part of the main build. In order to understand the build, you will need to download the PDF copy of the magazines prints. (And if you’re an electronics nerd like this scribe, you’ve already done that right?)

A tidy assembly job with an authentic retro style

The electronics are based upon pure discrete 7400-series logic, 741 opamp-based ramp generators and, you guessed it, 555 timers. The way the various boards have discrete functions is particularly interesting. For example, in part 3, the PCB described (board A) not only is the master field/line sync generator, but also generates the video signals for the ball, with its position and size determined in an analogue fashion. Signals coming into the board from Board C (top/bottom base) cause a discrete flip-flop to toggle, changing the ball’s direction as it ‘bounces’ off the edge of the screen. Each board generates its own video signal, which are then all combined in the final video mixer (board E) that simply wire-OR’s them all with the composite sync to generate the composite video needed. This would have been tapped off and fed to a UHF video modulator, but [Grant] chose not to install that for the build. The whole thing was wrapped up inside an MDF case, coated in that dubious fake-wood plastic wrap, for that very 70’s aesthetic some of us remember fondly.

Pong is such a popular classic game, that we’ve covered many, many variants over the years. Here’s one that’s purely mechanical, another that uses the original PCB with a visually appealing twist, and finally, a completely virtual simulation of the original arcade circuit, courtesy of Falstad. We’re sure there will be many more to come.

Thanks [JohnU] for the tip!