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!
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.
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.
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.
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!
[C Bel] teaches Excel and he has a problem. Most of us — especially us Hackaday types — immediately write a VBA (Visual Basic for Applications) macro to do tough things in Excel. Not only is this difficult for non-technical users, but it also isn’t as efficient, according to [C Bel]. To demonstrate that VBA macros are not always needed, he wrote a 3D game engine using nothing but Excel formulae. He did have to resort to VBA to get user input and in a very few cases to improve the performance of large algorithms. You can see his result in the video below or download it and try it yourself.
The game is somewhat Doom-like. Somewhat. As you might expect it isn’t blindingly fast, and the enemy is a big red blob, but as the old Russian proverb goes, “The marvel is not that the bear dances well, but that the bear dances at all.” (And thanks to [Sean Boyce] for recalling that quote.)
[Jānis]’s entry for the Flashing Light Prize was doomed from the start. Or should we say Doomed? It was a complicated mess of Rube-Goldbergery that essentially guaranteed that he’d have no time for making a proper video and submitting and entry. But it also ran Doom. Or at least ran on Doom.
(Note: [Jānis] sent us this hack in the e-mail — there’s no link for this blog post. You’re reading it here and now.)
It starts with a DC motor salvaged from a DVD player that spins a wheel that flips a switch back and forth, which in turn flips the polarity of the power on the motor. It’s like a most-useless machine, but with no human involved. This contraption periodically presses a button on a gutted mouse.
Pressing the mouse button on one computer fires a rocket in a multiplayer Doom game, and triggers a light on a wall when it does. A second Doom player, on another computer, sits facing the wall. Solar cells dangled in front of Player 2’s monitor emit high and low voltages as the LCD blinks on and off. That output goes into the ADC of an Arduino clone that drives a transistor that drives a relay that turns on and off a lightbulb.
We had a lot of fun watching all of the entries for the Flashing Light Prize, and we were also stoked by the presence of so many Hackaday regulars in the Honourable Mention list. (Sad to see [Sprite]’s ping-flasher didn’t make the cut!)
If you, like [Jānis] are still sitting on a design, don’t fret. It looks like the prize will make a return next year. Woot!
Loading animations have a long and storied history. What originally began as an hourglass quickly turned into a hand counting to five and progress bars. There were clocks, the Great Beach Ball of Death, and now loading animations are everywhere. However, the loading animation has still not been perfected — until now, that is. This is a fidget spinner loading animation. It’s beautiful.
Want to build and sell some hardware? Over on Tindie, we’re taking a look at some of the most successful designers of custom crafted hardware. This time it’s [Albertas Mickėnas] of Catnip Electronics who has sold five thousand soil moisture sensors.
You can just go out and buy a CNC machine, but that doesn’t quite underscore the difficulty in getting a CNC machine running. Our ‘ol pal [Jeremy] recently picked up a Romaxx CNC machine and put together a video of its commissioning. There’s a lot of work here, from building a shelf/stand for a rather beefy machine to cutting into the bed for t-tracks, and figuring out how dust collection is going to happen.
Before there was KiCad and Eagle and a ton of web-based PCB design tools, there was Autotrax. Want to know what PCB design and GUIs look like in DOS? I did a walkthrough for designing a small PCB in the DOS version of Autotrax late last year. There are thousands of designs locked up in discontinued EDA suites, and [Erich] has a way to revive them. He’s developed an Autotrax/Easytrax layout import/export plugin for pcb-nd. Now legacy Protel designs can be imported into software released in this century. This is really cool, and you can check out some screenshots here.
It is amazing how the game Doom has been ported to so many things. Enter one more port, where the hardware in question is a Honeywell Prestige thermostat.
In his video, [cz7asm] shows us the game running quite nicely on the 480 x 272 LCD with an NES controller plugged into the USB port originally intended for software updates. The thermostat runs on a STM32F429 which is an ARM9 processor that has the juice to pull it off. The Doom engine being used is based on Chocolate Doom, an open source port of the game, and the binaries can be downloaded for Windows and Mac. The source code is also available as a download for your tinkering pleasure. This project by [cz7asm] is extended from a code on GitHub by [floppes] that was meant for the STM32F429IDISCOVERY evaluation board.
The author shares his code for the STM32F4 on Dropbox as a zip and in order to compile it, the Atmel BSP for GNU GCC is used. The video below demonstrates the hack in action and, though there is no sound yet, the satisfaction that comes from such modifications is its own reward.