a torn-up printer with a very long image of different frames

Playing DOOM On A Receipt Printer

Gaming is a wonderful thing. Unfortunately for many of us, work takes up our valuable time, which should be allocated to our gaming. What if there was a better way? Well, printers can print an image quickly, and receipt printers can print a lot of images. This sounds like an effective display for DOOM in a pinch. [Bringus Studios] managed to find such a printer and got the classic shooter running.

Getting the printer’s attached computer, which was only designed for printing the cost of your chicken sandwich, to run Half-Life was far from easy. [Bringus] struggled through the process of swapping operating systems from Windows 7 to Linux just to return to Windows 7 after a painful process of maintaining compatibility between 32 and 64 bit software. Driver issues followed through the entire process just to get anything running at all.

But we can’t play DOOM while at work on a normal screen. The printer MUST display our glorious 480p gameplay. To achieve such a workflow, [Bringus] implemented a script to print out a frame of the display, allowing for “visible gameplay”. Along with some heat issues from the nature of thermal receipts, eventually the printer displayed the glory of DOOM.

Playing games on a thermal printer might be one of the weirdest things you’ve seen today, but what if we could reverse the script a bit and create a printer from something else? Here at Hackaday, we have exactly the thing for you: a printer made from a vintage typewriter!

Continue reading “Playing DOOM On A Receipt Printer”

KiDoom Brings Classic Shooter To KiCad

As the saying goes: if it has a processor and a display, it can run DOOM. The corollary here is that if some software displays things, someone will figure out a way to make it render the iconic shooter. Case in point KiDoom by [Mike Ayles], which happily renders DOOM in KiCad at a sedate 10 to 25 frames per second as you blast away at your PCB routing demons.

Obviously, the game isn’t running directly in KiCad, but it does use the doomgeneric DOOM engine in a separate process, with KiCad’s PCB editor handling the rendering. As noted by [Mike], he could have used a Python version of DOOM to target KiCad’s Python API, but that’s left as an exercise for the reader.

Rather than having the engine render directly to a display, [Mike] wrote code to extract the position of sprites and wall segments, which is then sent to KiCad via its Python interface, updating the view and refreshing the ‘PCB’. Controls are as usual, though you’ll be looking at QFP-64 package footprints for enemies, SOIC-8 for decorations and SOT-23-3 packages for health, ammo and keys.

If you’re itching to give it a try, the GitHub project can be found right here. Maybe it’ll bring some relief after a particularly frustrating PCB routing session.

Playing DOOM In Discord With A Special Image URL

Can you play DOOM in Discord? At first glance, that may seem rather nonsensical, as Discord is a proprietary chat service and neither a hardware device nor something else that may seem like an obvious target for being (ab)used for demon-shooting points. That is, until you look at Discord’s content embedding feature. This is where [PortalRunner]’s Doomcord hack comes into play, allowing you to play the entire game in a Discord client by submitting text messages after embedding a very special image URL.

Rather than this embedding being done in the client as done with e.g., IRC clients, the Discord backend handles the content fetching, caching, and handing off to clients. This system can easily be used with an animated GIF of gameplay, but having it be seen as a GIF file required adding .gif to the end of the URL to trick Discord’s backend into not simply turning it into a static PNG. After this, Discord’s throttling of message speed turned out to kill the concept of real-time gameplay, along with the server load.

Plan C thus morphed into using Chocolate Doom headless, rendering gameplay into cached video files by using the demo gameplay feature in DOOM. The Doomcord server template project provides a server if you want to give it a whirl yourself. Since this uses recorded gameplay, the switch was made from GIF to the WEBP format to save space, along with a cache expiry system. Just level 1 with all possible input sequences takes up 12 TB of disk space.

Continue reading “Playing DOOM In Discord With A Special Image URL”

When Low SRAM Keeps The DOOM Off Your Vape

The PIXO Aspire is a roughly $35 USD vape that can almost play DOOM, with [Aaron Christophel] finding that the only thing that realistically stops it from doing so is that the Cortex-M4-based Puya PY32F403XC MCU only has 64 kB of SRAM. CPU-wise it would be more than capable, with a roomy 16 MB of external SPI Flash and a 323×173 pixel LC touch screen display covering the other needs. It even has a vibration motor to give you some force feedback. Interestingly, this vape has a Bluetooth Low-Energy chip built-in, but this does not seem to be used by the original Aspire firmware.

What [Aaron] did to still get some DOOM vapors on the device was to implement a screenshare firmware, allowing a PC to use the device as a secondary display via its USB interface. This way you can use the regular PC mouse and keyboard inputs to play DOOM, while squinting at the small screen.

Although not as completely overpowered as a recent Anker charging station that [Aaron] played DOOM on, we fully expect vapes in a few years to be perfectly usable for some casual gaming, with this potentially even becoming an original manufacturer’s function, if it isn’t already.

Continue reading “When Low SRAM Keeps The DOOM Off Your Vape”

Playing DOOM On The Anker Prime Charging Station

At this point the question is no longer whether a new device runs DOOM, but rather how well. In the case of Anker’s Prime Charging Station it turns out that it’s actually not too terrible at controlling the game, as [Aaron Christophel] demonstrates. Unlike the similar Anker power bank product with BLE and a big display that we previously covered, this device has quite the capable hardware inside.

Playing a quick game of Doom while waiting for charging to finish. (Credit: Aaron Christophel, YouTube)
Playing a quick game of DOOM while waiting for charging to finish. (Credit: Aaron Christophel, YouTube)

According to [Aaron], inside this charging station you’ll not only find an ESP32-C3 for Bluetooth Low Energy (BLE) duty, but also a 150 MHz Synwit SWM341RET7 (Chinese datasheet) ARM-based MCU along with 16 MB of external flash and 8 MB of external RAM. Both of these are directly mapped into the MCU’s memory space. The front display has a 200×480 pixel resolution.

This Synwit MCU is a bit of a curiosity, as it uses ARM China’s Star-MC1 architecture for which most of the information is in Chinese, though it’s clear that it implements the ARMv8-M profile. It can also be programmed the typical way, which is what [Aaron] did to get DOOM on it, with the clicky encoder on the side of the charging station being the sole control input.

As can be seen in the video it makes for a somewhat awkward playing experience, but far more usable than one might expect, even if running full-screen proved to be a bit too much for the hardware.

Continue reading “Playing DOOM On The Anker Prime Charging Station”

A CaptionCall Phone Succumbs To Doom, Again

Pour one out for yet another device conquered. This one’s a desk phone for conferences and whatnot, a colour display, a numpad, and a bog standard handset with a speaker and mic. Naturally, also running Linux. You know what to expect – [Parker Reed] has brought Doom to it, and you’d be surprised how playable it looks!

This is the second time a CaptionCall device has graced our pages running Doom — CaptionCall patched out the previous route, but with some firmware dumping and hashcat, root has been acquired once again. [Parker] has upgraded this impromptu gaming setup, too – now, all the buttons are mapped into Doom-compatible keyboard events coming from a single input device, thanks to a C program and an Xorg config snippet. Feel free to yoink for your own Doom adventures or just general CaptionCall hacking!

If you’re interested in the hacking journey, get into the exploitee.rs Discord server and follow the hack timeline from password recovery, start to finish, to Doom, to the state of affairs shown in the video. Now, as the CPU speeds have risen, should the hackerdom switch away from Doom as the go-to? Our community remains divided.

Continue reading “A CaptionCall Phone Succumbs To Doom, Again”

Protect Your Site With A DOOM Captcha

We all know that “Can it run DOOM?” is the first question of a hardware hacker. The 1993 first person shooter from id Software defined an entire genre of games, and has since been made open source, appearing on almost everything. Everything, that is, except a Captcha, those annoying “Are you a human” tests where we’re all expected to do a search giant’s image classification for them. So here’s [Guillermo Rauch] with a DOOM captcha, in which you must gun down three bad guys to proceed.

As a way to prove you’re a human we can’t imagine a more fitting test than indiscriminate slaughter, and it’s interesting to read a little about what goes on behind the scenes. It’s a WebAssembly application as you might have guessed, and while it’s difficult to shake that idea from the early ’90s that you needed a powerful computer to run the game, in reality it shows just how powerful WebAssembly is, as well as how far we’ve come in three decades.

We’d prefer a few different entry points instead of always playing the same level, and we were always more handy with the mouse than the keyboard back in the day, but it’s certainly a bit of fun. It’s worth noting that simply playing the game isn’t enough to verify your humanity — if you’re killed in the game before vanquishing the required three foes, you’ll have to start over. As the game is running at “Nightmare” difficulty, proving your worth might be a tad harder than you’d expect…

Need more DOOM? How about seeing it on hardware nobody would have believed in 1993?