A Doom-esque Port To The ATmega328

Doom holds a special place as one of the biggest games of the 1990s, as well as being one of the foundational blocks of the FPS genre. Long before 3D accelerators hit the market, iD Software’s hit was being played on computers worldwide, and later spread to all manner of other platforms. [David Ruiz] decided to build a cutdown version for everyone’s favourite, the ATmega328.

Due to the limited resources available, it’s not a direct port of Doom. [David] instead took some sprites and map data from the original game, and built a raycasting engine similar to that of Wolfenstein 3D. Despite the limited memory and CPU cycles, the basic game can run at between 8-11 FPS. There are fancy dithering tricks to help improve the sense of depth, a simplified enemy AI, and even a custom text library for generating the UI.

It’s a great example of what can be done with a seemingly underpowered part. We’ve seen similar work before, with Star Fox replicated on the Arduboy. A hacker’s ingenuity truly knows no bounds.

 

Doom On The NES

“But can it run Doom?” is perhaps the final test of hacking a platform. From calculators to thermostats, we’ve seen Doom shoehorned into a lot of different pieces of hardware. Many times we’re left scratching our heads at the mashup, and this is no exception.

[TheRasteri] wasn’t satisfied with the existing ports of Doom, so he decided to bring the classic game to a classic console, the NES. In the video embedded after the break, he helpfully points out the system requirements for running Doom, and compares them with the specifications of the NES. Spoilers: not nearly enough.

How did he manage the feat? Taking inspiration from Nintendo’s own SuperFX chip, he embedded a co-processor in the cartridge, and fed the video stream from the cartridge back into the NES. It might not be fair to call it a co-processor, since it’s a Raspberry Pi with thousands of times the processing power of the 6502 that powers the NES. The idea might seem familiar, and in fact it was partially inspired by [Tom7]’s similar hack last year.

Using a Cypress USB controller to feed the graphics bus, [TheRasteri] is able to run Doom on the Raspberry Pi, take the visuals from the game, and convert them into blocks of graphics the NES expects to load from the cartridge. The best trick is that he apparently managed to squeeze everything into a normal NES cartridge. He plans to release a build video on his channel, so keep an eye out.

Meanwhile, don’t forget to take a look at those calculators and thermostats we mentioned.

Continue reading “Doom On The NES”

DooM Retrospective: 25 Years Of Metal

Metal is many things. A material hard and coarse in nature that by forging it in fire becomes sharp enough to cut through anything in its path. The music that bares its namesake is equally cutting and exudes an unyielding attitude that seeks to separate the posers from the true acolytes. Metal is the sentiment of not blindly following the rules, a path less taken to the darker side of the street. In videogame form, there is nothing more metal than Doom.

The creators of Doom, id Software, were always hellbent on changing the perception of PC gaming in the 1990s. Games of the time were rigid and slow in comparison to their console counterparts. The graphical fidelity was technically superior on PC, but no other developer could nail movement in a game like id. The team had made a name for themselves with their Commander Keen series (which came about after a failed Super Mario Bros. 3 PC demo) along with the genre defining Wolfenstein 3D, but nothing topped Doom. In an era that was already soaking with “tude”, Doom established an identity all its own. The moody lighting, the grotesque monster designs, the signature push forward combat, and all the MIDI guitars a Soundblaster could handle; Doom looked and felt a cut above everything else in 1993.

In December of that year, Senators Joe Lieberman and Herb Kohl held a hearing to publicly condemn the inclusion of violence in videogames sold in America. The bulk of the arguments sought to portray the videogame industry and its developers as deviants seeking to corrupt the nation’s youth. Id Software responded as if to raise the largest middle finger imaginable, by releasing Doom to the world the very next day. A quarter of a century later people are still talking about it.

Continue reading “DooM Retrospective: 25 Years Of Metal”

Doomba Transports Your Living Room To Hell

Despite being over 25 years old, the original DOOM is still a favorite among gamers and hackers alike. For years now, running the 1993 demonic shooter has been a critical milestone when hacking or reverse engineering a piece of gear, and at this point we’ve seen it run on everything from voting machines to cameras.

But this time around, DOOM isn’t actually running on the device being hacked. Instead, the Roomba 980 that [Rich Whitehouse] has doing his bidding is being used to generate new DOOM levels based on the maps it makes of rooms while going about its business. To be fair they’re pretty simplistic maps, and most of us don’t live in a home quite palatial enough to even fill out shareware trial of id Software’s classic, but it’s still a neat trick.

For those who might not be up to date with the latest and greatest in the world of robotic helpers, newer model Roomba vacuums are equipped with a camera and the ability to generate 3D maps of its environment using a technique called Vision Simultaneous Localization and Mapping (VSLAM). Ostensibly this capability is used to create accurate maps of hazards in the cleaning area, but of course it did set off some privacy alarm bells when introduced due to the possibility that scans of users homes could end up being used for nefarious purposes. Roomba manufacturer iRobot swears they aren’t doing anything suspect with the data their robots collect while traveling through the user’s home, but that hasn’t stopped [Rich] from using the technology as a portal to Hell.

Using “DOOMBA”, the user is able to download the mapping data off of their Roomba 980 (it might work on other models, but hasn’t been tested yet) over the local network and import it into Noesis, a 3D model viewing program developed by [Rich]. The imported map is essentially just a 2D diagram of the home’s floor plan, which on its own wouldn’t make for a terribly interesting DOOM level, so the software will take the liberty of seeding it with weapons, baddies, and all the other varied delights of the netherworld. The user can fiddle around with these settings to try and fine-tune their homespun hellscape, or just let “DOOMBA” randomize it all so they can get on with the ripping and tearing.

If you’ve got Roomba in hand but aren’t a DOOM fan, have no fear. We’ve seen plenty of hacks and mods for everyone’s favorite house-cleaning hockey puck which happen to be of the non-demonic variety. If you just can’t get enough DOOM, stick around for tomorrow’s 25th anniversary celebration article. You will want to copy the banner art and use it as your new desktop background.

Playing Doom On Keysight Oscilloscope Via Windows CE

We all know the drill when buying a digital oscilloscope: buy the most hackable model. Some choose to void the warranty right away and access features for which the manufacturer has kindly provided all the hardware and software but has disabled through licensing. Few of us choose to tap into the underlying embedded OS, though, which seems a shame.

When [Jason Gin]’s scope started giving him hints about its true nature, he decided to find a way in. The result? An oscilloscope with a Windows desktop that plays Doom. The instrument is a Keysight DSOX1102G which [Jason] won during the company’s “Scope Month” giveaway. Relatively rare system crashes showed the familiar UI trappings of Windows CE.

Try as he might, [Jason] couldn’t get the scope to crash on cue — at least not until he tried leaving an external floppy drive plugged into the USB port on startup. But in order to use the desktop thus revealed, a keyboard and mouse were needed too. So he whipped up a custom USB switch cable, to rapidly toggle in the keyboard and mouse after the crash. This gave him the keys to the kingdom, but he still had a long way to go. We won’t spoil the story, but suffice it to say that it took [Jason] a year and a half, and he learned a lot along the way.

It was nice to hear that our review of the 1000X series scopes helped [Jason] accomplish this exploit. This hack’s great for bragging rights, as one way to prove you’ve owned a system is telling people it runs Doom!

Doom Battle Royale Mod With 64 Players Hurts Plenty

Sixty-four players are dropped into a map, but there can be only one that emerges victorious…heard that before, right? Thanks to PC Game modder [Bambamalicious] there is yet another entrant into the rapidly growing videogame genre. The difference this time, however, is that their 64 player DooM Royale (with cheese) mod is ready to show all those other also-ran games how the granddaddy of FPS games does it.

Doom Battle Royale WIth Cheese Mod Screenshot

According to the announcement post the mod is “…a 64 player Battle Royale using Doom 2 as the IWAD, and the Zandronum engine as it’s base. The speed of gameplay will be unchanged from normal Doom, and when you die, that’s not the end for you!”. There is a respawn system, but each player is given a limited number of lives. To ensure no server feels like a ghost town [Bambamalicious] included bots that will spawn in matches with low participation. Each game inevitably results in a “last man standing” face off that has the victor coming away with the coveted “Royale with cheese”. Other than the aforementioned changes, this is still the seminal classic Doom (1993).

Do note that in order to play the mod, the Zandronum engine is a required in order to take part in the fun. The engine is the backbone that allows for leaderboards as well as hopping between custom servers. Zandronum additionally supports many other multiplayer match types for instance: Team Deathmatch, Capture the Flag, Possession, and Skulltag. Up to 64 players are supported in those match types as well.

From the looks of the DooM Royale (with cheese) map, there should be frequent enemy player encounters and no respite for those seeking to just “hide in a bathtub”. The multiple levels should supply plenty of opportunity to take advantage by attacking from above. Test footage of the mod in action can be seen in the video below.

For more on the DOS game that just won’t die, check out Doom running on an ATM.

Continue reading “Doom Battle Royale Mod With 64 Players Hurts Plenty”

Neural Networks Using Doom Level Creator Like It’s 1993

Readers of a certain vintage will remember the glee of building your own levels for DOOM. There was something magical about carefully crafting a level and then dialing up your friends for a death match session on the new map. Now computers scientists are getting in on that fun in a new way. Researchers from Politecnico di Milano are using artificial intelligence to create new levels for the classic DOOM shooter (PDF whitepaper).

While procedural level generation has been around for decades, recent advances in machine learning to generate game content (usually levels) are different because they don’t use a human-defined algorithm. Instead, they generate new content by using existing, human-generated levels as a model. In effect they learn from what great game designers have already done and apply those lesson to new level generation. The screenshot shown above is an example of an AI generated level and the gameplay can be seen in the video below.

The idea of an AI generating levels is simple in concept but difficult in execution. The researchers used Generative Adversarial Networks (GANs) to analyze existing DOOM maps and then generate new maps similar to the originals. GANs are a type of neural network which learns from training data and then generates similar data. They considered two types of GANs when generating new levels: one that just used the appearance of the training maps, and another that used both the appearance and metrics such as the number of rooms, perimeter length, etc. If you’d like a better understanding of GANs, [Steven Dufresne] covered it in his guide to the evolving world of neural networks.

While both networks used in this project produce good levels, the one that included other metrics resulted in higher quality levels. However, while the AI-generated levels appeared similar at a high level to human-generated levels, many of the little details that humans tend to include were omitted. This is partially due to a lack of good metrics to describe levels and AI-generated data.

Example DOOM maps generated by AI. Each row is one map, and each image is one aspect of the map (floor, height, things, and walls, from left to right)

We can only guess that these researcher’s next step is to use similar techniques to create an entire game (levels, characters, and music) via AI. After all, how hard can it be?? Joking aside, we would love to see you take this concept and run with it. We’re dying to play through some gnarly levels whipped up by the AI from Hackaday readers!

Continue reading “Neural Networks Using Doom Level Creator Like It’s 1993”