Quake In 276 KB Of RAM

Porting the original DOOM to various pieces of esoteric hardware is a rite of passage in some software circles. But in the modern world, we can get better performance than the 386 processor required to run the 1993 shooter for the cost of a dinner at a nice restaurant — with plenty of other embedded systems blowing these original minimum system requirements out of the water.

For a much tougher challenge, a group from Silicon Labs decided to port DOOM‘s successor, Quake, to the Arduino Nano Matter Board platform instead even though this platform has some pretty significant limitations for a game as advanced as Quake.

To begin work on the memory problem, the group began with a port of Quake originally designed for Windows, allowing them to use a modern Windows machine to whittle down the memory usage before moving over to hardware. They do have a flash memory module available as well, but there’s a speed penalty with this type of memory. To improve speed they did what any true gamer would do with their system: overclock the processor. This got them to around 10 frames per second, which is playable, but not particularly enjoyable. The further optimizations to improve the FPS required a much deeper dive which included generating lookup tables instead of relying on computation, optimizing some of the original C programming, coding some functions in assembly, and only refreshing certain sections of the screen when needed.

On a technical level, Quake was a dramatic improvement over DOOM, allowing for things like real-time 3D rendering, polygonal models instead of sprites, and much more intricate level design. As a result, ports of this game tend to rely on much more powerful processors than DOOM ports and this team shows real mastery of their hardware to pull off a build with a system with these limitations. Other Quake ports we’ve seen like this one running on an iPod Classic require a similar level of knowledge of the code and the ability to use assembly language to make optimizations.

Thanks to [Nicola] for the tip!

Creating Video Games With AI: A Mario Example

Artificial intelligence (AI) seems to be doing everything these days. Making images, making videos, and replacing most of us real human writers if you believe the hype. Maybe it’s all over! And yet, we persist, to write about yet another job taken over by AI: creating video games.

The research paper is entitled “Video Game Generation: A Practical Study using Mario.” The basic idea is whether a generative AI model can create an interactive video game by first training it on an existing game.

MarioVGG, as it is called, is a “text-to-video model.” It hasn’t built the Mario game that you’re familiar with, though. It takes player commands as text inputs—such as “run, or “jump”—and then outputs video frames showing the result in the ‘game.’ The model was trained on a dataset of frame-by-frame Super Mario Brothers game play, combined with data on user inputs at the time. The model shows an ability to generate believable video output for given player inputs, including basic game physics, item interactions, and collisions. It’s able to do this in a chained way, so that it can reasonably simulate a player making multiple actions and moving through a level of the game.

It’s not like playing a real Mario game yet, by any means. Regardless, the AI model has shown an ability to replicate the world of the game in a way that behaves relatively consistently with its established rules. If you’re in the field of video game development, though, you probably don’t have a lot to worry about just yet—you probably moved past making basic Mario clones years ago, so you’ve got quite an edge for now!

Bringing The Horror Of Seaman Into The Real World

A little under 25 years ago, a particularly bizarre game was released for Sega’s Dreamcast. In actually, calling it a “game” might be something of a stretch. It was more of a pet simulator, where you need to feed and care for a virtual animal as it grows. Except rather than something like a dog or a rabbit, your pet is a talking fish with a human face that doesn’t seem to like you very much. Oh, and Leonard Nimoy is there too for some reason.

Most people in the world don’t even know this game ever existed, and frankly, their lives are all the better for it. But for those who lovingly cared for (or intentionally killed) one of these rude creatures back in the early 2000s, it’s an experience that sticks with you. Which we assume is why [Robert Prest] decided to build this incredibly faithful physical recreation of Seaman

Continue reading “Bringing The Horror Of Seaman Into The Real World”

Exploring TapTo NFC Integration On The MiSTer

[Ken] from the YouTube channel What’s Ken Making is back with another MiSTer video detailing the TapTo project and its integration into MiSTer. MiSTer, as some may recall, is a set of FPGA images and a supporting ecosystem for the Terasic DE10-Nano FPGA board, which hosts the very capable Altera Cyclone V FPGA.

The TeensyROM C64 cart supports TapTo

The concept behind TapTo is to use NFC cards, stickers, and other such objects to launch games and particular key sequences. This allows an NFC card to be programmed with the required FPGA core and game image. The TapTo service runs on the MiSTer, waiting for NFC events and launching the appropriate actions when it reads a card. [Ken] demonstrates many such usage scenarios, from launching games quickly and easily with a physical ‘game card’ to adding arcade credits and even activating cheat codes.

As [Ken] points out, this opens some exciting possibilities concerning physical interactivity and would be a real bonus for people less able-bodied to access these gaming systems. It was fun to see how the Nintendo Amiibo figures and some neat integration projects like the dummy floppy disk drive could be used.

TapTo is a software project primarily for the MiSTer system, but ports are underway for Windows, the MiSTex, and there’s a working Commodore 64 game loader using the TeensyROM, which supports TapTo. For more information, check out the TapTo project GitHub page.

We’ve covered the MiSTer a few times before, but boy, do we have a lot of NFC hacks. Here’s an NFC ring and a DIY NFC tag, just for starters.

Continue reading “Exploring TapTo NFC Integration On The MiSTer”

2024 Tiny Games Contest: Neat PCB Business Card Was Inspired By The Arduboy

The humble business card is usually a small slip of cardboard with some basic contact details on it — but as hackers know, it can be so much more. [Marian] has provided us a great example in the form of his own digital business card, which doubles as a handheld game!

Wanting to make his business card more interesting for better engagement, [Marian] was inspired by the Arduboy to give it some interactivity. He chose the STM32G030F6 microcontroller as a cheap and reliable option to run his business card. He then created a 10×9 LED matrix display using Charlieplexing to minimize the amount of I/O pins required. For controls, he went with the usual directional cross plus two action buttons. He implemented a variety of games on the card—including a Flappy Bird clone and a game similar to the classic Simon toy.

Files are on GitHub for the curious. We’ve featured some other great business cards this year, too. Indeed, we ran a whole challenge! If you’re cooking up your own exemplary little PCB to hand out at conferences, don’t hesitate to let us know!

A Simon game built into an ATtiny84 in a DIP-14 package.

2024 Tiny Games Contest: Spectacular Sub-Surface Simon

When you work with tiny things on the regular, they start to seem normal-sized to your hands and eyes. Then, if you work with even smaller packages, stuff like 0603 might as well be through-hole components.

Soldering fine wires to the leadframe of an ATtiny84 in a DIP-14 package.[alnwlsn] is no stranger to the small, having worked almost exclusively with surface mount components for a few years now. Even so, they’ve built up an admirable stock of DIP chips, including the ATtiny84 DIP-14 that their incredible Simon game is built into.

How in the world did [alnwlsn] accomplish this? As you’ll see in the video after the break, the answer lies in milling, but with the motors disconnected and manually turning the knobs.

Soldering didn’t require anything special, just the usual suspects like a fine-tipped iron, an X-acto knife, some tweezers, and a few other things like a hot air gun for soldering fine wires to the leadframe. Oh, and of course, really steady hands, and lots of patience.

The 2024 Tiny Games Contest officially closed on Tuesday, September 10th. We’ll have the results out as soon as possible. Best of luck to all who entered!

Continue reading “2024 Tiny Games Contest: Spectacular Sub-Surface Simon”

A tiny colorful slot machine that uses LEDs instead of fruits or numbers.

2024 Tiny Games Contest: Micro One-Armed Bandit Hits The Cuteness Jackpot

They don’t call slot machines one-armed bandits for nothing. And although it’s getting harder and harder to find slot machines with actual pull-able handles instead of just big buttons, you can easily simulate the handle at home with the right kind of limit switch, as [Andrew Smith] did with this micro slot machine.

This baby slot machine is built around the Adafruit 5×5 NeoPixel grid, which is an add-on for the QT Py. As you’ll see in the brief demo video after the break, the switch actuates on release, which starts the lights a-spinning. [Andrew] says the constraints of the SAMD21-powered QT Py made this a particularly fun challenge.

Whereas most physical slot machines have different reel sequences, this build uses just one. [Andrew] declared hex values to ID each color, and then created the reel manually with different color frequencies. When the lever is released, the columns are animated and slowly to come to rest at a random offset. You can check out the code on GitHub.

Continue reading “2024 Tiny Games Contest: Micro One-Armed Bandit Hits The Cuteness Jackpot”