Building Video Pong With Discrete Components

Pong is a classic from the very dawn of the video game era. Recreating it remains a popular exercise for those new to coding. However, its simple logic makes this game particularly suited to an all-hardware build; something which [Glen] tackles with aplomb.

Not content to take the easy way out, [Glen] went for a particularly hardcore method of construction. The game uses absolutely zero integrated circuits in its construction. Instead, it relies upon the services of 431 bipolar transistors, 6 JFETs and 826 diodes. Everything is laced together on protoboard, connected with a neatly organised nest of colored wires. Schematics are available for the curious.

It’s a full featured build, too. Video output is in color, scores are displayed at the top of the screen, and there’s even stereo panning for the sound effects. It just goes to show what some humble components can do when put to work in the right way. We’ve seen some of [Glen]’s work before too, for example in this op-amp bouncing ball device. Video after the break.

Continue reading “Building Video Pong With Discrete Components”

Upping The Story-Telling Game With Dialog And The Å-Machine

During the decades since Infocom released their interactive story game Zork to world-wide acclaim for microcomputers, the genre of interactive fiction (IF) is still immensely popular, with a surprising number of modern IF works targeting Infocom’s original Z-Machine runtime for 8-bit micocomputers. We’ve seen a number of improved runtimes and languages for the platform over the years, with [Linus Åkesson]’s Dialog language a newcomer.

Covering the technical details about the language in this thread at IntFiction, the interesting aspect about this language is that while it has a compiler that compiles it to Z-code for the Z-Machine, [Linus] has also implemented a new runtime, called the ‘Å-Machine‘, since ‘Å’ follows ‘Z’ in the alphabet (if you’re Swedish, that is). This runtime should allow for larger stories and other features that make better use of more resources, while still allowing smaller stories to work on old hardware. Unfortunately the only Å-Machine implementation at this point is written in JavaScript, which is not known to work particularly well on Commodore 64 or even Amiga 500 systems.

As for Dialog itself, its documentation provides a detailed overview of the language’s capabilities, which claims to be inspired by both Inform 7 and Prolog. Its goals are to be easy to follow, with a minimal number of language concepts, and high performance. As the documentation notes, many Z-Machine based stories exist today that are unplayable on vintage hardware due to lack of optimization.

We covered Zork and the Z-Machine a while ago in some detail. We think it’s great to see that there’s still so much interest in the platform. Maybe someone will write an Å-Machine implementation for a Commodore or MSX system one of these days to see how it compares to Infocom’s Z-Machine. Here’s to another few decades of the Zork-legacy.

Scratch Built Media Player Channels 1980s Design

No, you aren’t looking at a 30 year old Teac graphic equalizer that somebody modified. The MWA-002 Network Music Player created by [GuzziGuy] is built entirely from new components, and easily ranks up there with some of the most gorgeous pieces of homebrew audio gear we’ve ever seen. Combining modular hardware with modern manufacturing techniques, this 1980s inspired build is a testament to how far we’ve come in terms of what’s possible for the dedicated hacker and maker.

The enclosure, though it looks all the world like a repurposed piece of vintage hardware, was built with the help of a CNC router. It’s constructed from pieces of solid oak, plywood, and veneered MDF that have all been meticulously routed out and cut. Even the front panel text was engraved with the CNC and then filled in with black paint to make the letters pop.

Internally, the MWA-002 is powered by a Raspberry Pi 3 running Mopidy to play both local tracks and streaming audio. Not satisfied with the Pi’s built-in capabilities, [GuzziGuy] is using a Behringer UCA202 to produce CD-quality audio, which is then fed into a TPA3116 amplifier. In turn, the output from the amplifier is terminated in a set of female jacks on the player. Just like the stereo equipment of yore, this player is designed to be connected to a larger audio system and doesn’t have any internal speakers.

The primary display is a 256×64 Futaba GP1212A02A FVD which has that era-appropriate glow while still delivering modern features. [GuzziGuy] says it was more difficult to interface with this I2C display than the LCDs he used in the past due to the lack of available libraries, but we think the final product is proof it was worth the effort. He bought both the VFD spectrum analyzer and LED VU meter as turn-key modules, but the center equalizer controls are completely custom; with dual MCP3008 ADCs to read the state of the sliders and the Linux Audio Developer’s Simple Plugin API (LADSPA) to tweak the Pi’s audio output accordingly.

We’re no strangers to beautiful pieces of audio gear here at Hackaday, but generally speaking, most projects involve modernizing or augmenting an existing device. While those projects are to be admired, the engineering that goes into creating something of this caliber from modular components and raw building materials is really an accomplishment on a whole different level.

A 4G Rover And The Benefits Of A Shakedown Mission

Many moons ago, in the shadowy darkness of the 1990s, a young Lewin visited his elder cousin. An adept AMOS programmer, he had managed to get his Amiga 500 to control an RC car, with little more than a large pile of relays and guile. Everything worked well, but there was just one problem — once the car left the room, there was no way to see what was going on.

Why don’t you put a camera on it? Then you can drive it anywhere!

Lewin

This would go on to inspire the TKIRV project approximately 20 years later. The goal of the project is to build a rover outfitted with a camera, which is controllable over cellular data networks from anywhere on Earth. For its upcoming major expedition, the vehicle is to receive solar panels to enable it to remain operable in distant lands for extended periods without having to return to base to recharge.

The project continues to inch towards this goal, but as the rover nears completion, the temptation to take it out for a spin grew ever greater. What initially began as an exciting jaunt actually netted plenty of useful knowledge for the rover’s further development.

Continue reading “A 4G Rover And The Benefits Of A Shakedown Mission”

Dissecting The TL-WR841N For Fun And Profit

The TP-Link TL-WR841N isn’t a particularly impressive piece of hardware, but since it works decently well and sells for under $20 USD, it’s one of the most popular consumer routers on Amazon. Now, thanks to [TrendyTofu] of the Zero Day Initiative, we now have a concise step-by-step guide on how to hack your way into the newer versions of the hardware and take full control over this bargain WiFi device. This work was initially done to help test out reported vulnerabilities in the router’s firmware, but we’re sure the readers of Hackaday can come up with all sorts of potential uses for this information.

TP-Link helpfully labeled the UART pins

The story starts, as so many before it have, with a serial port. Finding the UART pads on the PCB and wiring up a level shifter was no problem, but [TrendyTofu] found it was only working one-way. Some troubleshooting and an oscilloscope later, the culprit was found to be a 1kΩ pull down resistor connected to the RX line that was keeping the voltage from peaking high enough to be recognized.

Once two-way communication was established, proper poking around inside the router’s Linux operating system could begin. It wasn’t a huge surprise to find the kernel was ancient (version 2.6.36, from 2010) and that the system utilities had been stripped to the absolute bare minimum to save space. Replacing the firmware entirely would of course be ideal, but unfortunately OpenWRT has dropped support for the newer hardware revisions of the TL-WR841N.

To teach this barebones build of Linux some new tricks, [TrendyTofu] used the mount command to find a partition on the system that actually had write-access, and used that to stash a pre-compiled build of BusyBox for MIPS. With a more complete set of tools, the real fun could begin: using GDB to debug TP-Link’s binaries and look for chinks in the armor. But feel free to insert your own brand of mayhem here.

You might think that in the era of the Raspberry Pi, abusing cheap routers to turn them into general purpose Linux boxes would be somewhat out of style. Frankly, you’d be right. But while the days of strapping Linksys WRT54Gs to remote controlled cars might be long be gone, there are still some routers out there interesting enough to make it worth dusting off this time-honored hardware hacker tradition.

RuneScape GBA Controller Is A Nostalgic Mash-Up

For gamers, the early 2000s certainly stand out as a memorable era. The dawn of the 21st century ushered in the sixth generation of home video game consoles, with Sony, Nintendo, and Microsoft all releasing their systems within a few years of each other. Nintendo also released their Game Boy Advance at around the same time, representing a minor revolution for mobile gaming. On the PC front, a free-to-play MMORPG called RuneScape was redefining people’s expectations of browser-based software.

Now, thanks to modern technology and the expert guidance of [TiKevin83], these varied bits of video game history can be used in conjunction for maximum rose-tinting effect. Using homebrew software on the GameCube and a healthy collection of wires and adapters, the GBA can be used as a controller for your adventures through the realm of Gielinor. After nearly two decades, the dreams of gamers everywhere have come true.

Well, that might be a stretch. In fact, we’d wager that nobody in human history has ever looked at the GBA and thought it would be a particularly good controller for an MMORPG. Watching the video after the break, it’s not hard to see why. Using the handheld system’s digital pad to control the mouse in RuneScape looks to be precisely as clunky as you’d imagine. But of course, that’s hardly the point.

So how is it accomplished? A homebrew tool for the GameCube’s “Game Boy Player” accessory allows the GBA, when connected to the console via the appropriate adapter cable, to mimic a standard controller. Once the GBA is running in this mode, it can then be connected to the computer using a Wii U to USB adapter. Finally, the program JoyToKey is used to map the GBA’s buttons to mouse and keyboard input for “Old School” RuneScape.

If you’d like to do something similar but aren’t quite committed enough to collect up all the Nintendo-branded ephemera this method requires, you may be interested in this DIY adapter that allows the venerable GBA to be used as a standard Bluetooth controller.

Continue reading “RuneScape GBA Controller Is A Nostalgic Mash-Up”

Process Characterization On The Cheap With A Custom Test Rig

Testing is a key part of any product development cycle. Done right, it turns up unknown bugs and problems, and allows for them to be fixed prior to shipment. However, it can be a costly and time-consuming process. The [Bay Libre] team needed to do some work on power management, but the hardware required was just a little on the expensive side. What else does a hacker do, but build their own?

Enter the Thermo-Regulated Power Measurement Platform. It’s a device designed to control the die temperature of a chip during process characterization. This is where a chip, in this case the iMX8MQ, is run at a variety of temperatures, voltages, and frequencies to determine its performance under various conditions. This data guides the parameters used to run the chip in actual use, to best manage its power consumption and thermal performance.

The rig consists of a Peltier element with controller, a heatsink, and a fan. This is lashed up to a series of Python scripts that both control the chip temperature and run through the various testing regimes. Thanks to this automation, what would normally be a day’s work for an engineer can now be completed in just two hours.

Through a few smart component choices, the team accomplished the job at around one-tenth of the cost of commercial grade hardware. Granted, the average hacker probably won’t find themselves doing process characterization for cutting-edge silicon on a regular basis. Still, this project shows the value in building custom hardware to ease the testing process.

Testing is key to success in production. Custom jigs can make for light work when large orders come in, and we’ve run a primer on various testing techniques, too.