Discrete Pong Project Goes Big, Adds a Player

Some projects just take on a life of their own. What started as a pleasant diversion or a simple challenge becomes an obsession, and the next thing you know you’ve built a two-player color Pong game with audio completely from discrete components.

If this one seems familiar, it’s because we were dazzled by its first incarnation last year. As impressive as version 1.0 was, all the more so since it was built using the Manhattan method and seemingly over the course of a weekend, it did have its limitations. [GK] has been refining his design ever since and keeping accurate track of the process, to the tune of 22 pages on the EEVblog forum. We haven’t pored through it all yet, but the state of the project now is certainly worth a look. The original X-Y output to an oscilloscope was swapped out to composite video for a monitor, in both mono and color. This version also allows two people to play head-to-head instead of just battling the machine. It looks like [GK] had to add a couple of blocks worth of real estate to his Manhattan board to accommodate the changes, and he tidied the wiring significantly while he was at it.

It’s a project that keeps on giving, so feast your eyes and learn. We suspect [GK] doesn’t have any plans to finish this soon, but if he does, we can’t wait to see what’s next.

Thanks to [David Gustafik] for reminding us to check back on this one.

A Game That Does More With Less

[David Johnson-Davies] created a minimal Secret Maze Game using a single ATTiny85 and a few common components. This simple game uses four buttons, four LEDs, and a small speaker. The player moves in the four cardinal directions using buttons, and the LEDs show walls and corridors. If an LED is lit, it means the path in that direction is blocked by a wall, and attempting to move in that direction will make a beep. When the player reaches the exit, a short victory tune chirps from the speaker.

Sample maze. A 16×16 matrix is allocated for maze designs.

Since the ATTiny85 has only five I/O lines, [David] had to get a bit clever to read four buttons, display output on four LEDs, and drive a little speaker. The solution was to dedicate one pin to the speaker and the other four to charlieplexing, which is a method of driving more LEDs than you have pins. It takes advantage of the fact that most microcontroller pins can easily switch state between output high, output low, or low-impedance high-impedance input.

As for the buttons, [David] charlieplexed them as well. Instead of putting an LED in a charlieplexed “cell”, the cell contains a diode and an SPST switch in series with the diode. To read the state of the switch, one I/O line is first driven low and the other I/O line is made an input with a pullup. A closed switch reads low on the input, and an open switch reads high. With charlieplexing, four pins is sufficient for up to twelve LEDs (or buttons) in any combination, which is more than enough for the Secret Maze.

Charlieplexing is also what’s behind this 110 LED micro-marquee display, or this elegant 7-segment display concept that takes advantage of modern PCB manufacturing options.

HandHolo: A Homebrew ARG

Taking a dive into VR or augmented reality — once, dreamed-of science fiction — is not only possible for the average consumer, but crafting those experiences is as well! Hackaday.io user [kvtoet]’s HandHolo is a homebrew method to cut your teeth on peeking into a virtual world.

This project requires a smartphone running Android Oreo as its backbone, a Bluetooth mouse, a piece of cardboard and a small mirror or highly reflective surface. The phone is slotted into the cardboard housing — prototype with what you have! — above the mouse, and the mirror angled opposite the screen reflects the image back to the user as they explore the virtual scene.

Within Unity, [kvtoet]’s used a few scripts that access phone functions — namely the gyroscope, which is synchronised to the mouse’s movements. That movement is translated into exploration of the virtual space built in Unity and projected onto the portal-like mirror. Check it out!

Continue reading “HandHolo: A Homebrew ARG”

More Than Just An Atari Look-Alike

The Raspberry Pi has been a boon for hackers with a penchant for retro gaming. Redditor [KaptinBadkruk] Wanted to get on board the game train and so built himself an Atari 2600-inspired Raspberry Pi 3 console!

A key goal was the option to play Nintendo 64 titles, so [KaptinBadkruk] had to overclock the Pi and then implement a cooling system. A heatsink, some copper pads, and a fan from an old 3D printer — all secured by a 3D printed mount — worked perfectly after giving the heatsink a quick trim. An old speaker and a mono amp from Adafruit — and a few snags later — had the sound set up, with the official RPi touchscreen as a display.

After settling on an Atari 2600-inspired look, [KaptinBadkruk] laboured through a few more obstacles in finishing it off — namely, power. He originally intended for this  project to be portable, but power issues meant that idea had to be sidelined until the next version. However — that is arguably offset by [KaptinBadkruk]’s favourite part: a slick 3D Printed item box from Mario Kart front and center completes the visual styling in an appropriately old-meets-new way.

That item block isn’t the first time a lightshow has accompanied an Atari console, but don’t let that stop you from sticking one in your pocket.

[Via /r/DIY]

DIY Dungeon Crawler Game Plays on Single LED Strip

A delightful version of a clever one-dimensional game has been made by [Critters] which he calls TWANG! because the joystick is made from a spring doorstop with an accelerometer in the tip. The game itself is played out on an RGB LED strip. As a result, the game world, the player, goal, and enemies are all represented on a single line of LEDs.

How can a dungeon crawler game be represented in 1D, and how is this unusual game played? The goal is for the player (a green dot) to reach the goal (a blue dot) to advance to the next level. Making this more difficult are enemies (red dots) which move in different ways. The joystick is moved left or right to advance the player’s blue dot left or right, and the player can attack with a “twang” motion of the joystick, which eliminates nearby enemies. By playing with brightness and color, a surprising amount of gameplay can be jammed into a one-dimensional display!

Code for TWANG! is on github and models for 3D printing the physical pieces are on Thingiverse. The video (embedded below) focuses mainly on the development process, but does have the gameplay elements explained as well and demonstrates some slick animations and sharp feedback.

Continue reading “DIY Dungeon Crawler Game Plays on Single LED Strip”

Much Assembly Required: Game Your Way to Assembly Guru Status

It can be hard these days to find an excuse to create something for learning purposes. Want a microcontroller board? Why make one when you can buy an Arduino or a Blue Pill for nearly nothing? Want to control a 3D printer? Why write the code when you can just download something that works well like Marlin or Repetier? If you want to learn assembly language, then, it can be hard to figure out something you want to do that isn’t so silly that it demotivates you. If that sounds like you, then you should check out Much Assembly Required.

This is a multi-player game that runs in your Web browser. But before you click close, consider this: the game has you control an autonomous robot using an x86-like assembly language. Your robots have to find resources and build structures so it is sort of a mash up of Minecraft and one of the many modern Hammurabi-inspired games like Civilization.

The robots have a variety of peripherals including: drills, lasers, LiDar, legs, a hologram projector, solar-charged batteries, clocks, and more mundane things such as clocks, floppy drives, and a random number generator. The virtual world simulates day and night, so plan your power management accordingly.

You might wonder if you should even bother learning assembly. While it is true it isn’t as necessary as it once was,  understanding what the computer is doing in a very basic way can help form your thinking in surprising ways. There are also those times when you need to optimize something in assembly and that’s the difference between working and not working.

If you want to do something more practical, we’ve looked at options before. Of course, you can always slip your C compiler some assembly, too.

DRM Workarounds Save Arcade Cabinet

DRM has become a four-letter word of late, with even media companies themselves abandoning the practice because of how ineffective it was. DRM wasn’t invented in the early 2000s for music, though. It’s been a practice on virtually everything where software is involved, including arcade cabinets. This is a problem for people who restore arcade machines, and [mon] has taken a swing at unraveling the DRM for a specific type of Konami cabinet.

The game in question, Reflec Beat, is a rhythm-based game released in 2010, and the security is pretty modern. Since the game comes with a HDD, a replacement drive can be ordered with a security dongle which acts to decrypt some of the contents on the HDD, including the game file and some other information. It’s not over yet, though. [mon] still needs to fuss with Windows DLL files and a few levels of decryption and filename obfuscation before getting the cabinet functional again.

The writeup on this cabinet is very detailed, and if you’re used to restoring older games, it’s a bit of a different animal to deal with than the embedded hardware security that older cabinets typically have. If you’ve ever wanted to own one of these more modern games, or you’re interested in security, be sure to check out the documentation on the project page. If your tastes are more Capcom and less Konami, check out an article on their security system in general, or in de-suiciding boards with failing backup batteries.