A schematic explaining the workings of the Commodore 64's joystick port

Bluetooth Interface Adds Rumble Feedback To Commodore 64 Games

Nothing says “1980s gaming” like a black joystick with a single red fire button. But if you prefer better ergonomics, you can connect modern gamepads to your retrocomputers thanks to a variety of modern-to-classic interface adapters. These typically support just the directional pad and one or two action buttons, leaving out modern features like motion control and haptic feedback.

That’s a bit of a shame, because we think it would be pretty cool to feel that shock in our hands whenever Pitfall Harry drowns in quicksand or Frogger gets hit by traffic. We’re therefore happy to report that [Ricardo Quesada] has decided to add rumble functionality to the Bluetooth-to-Joystick-port interface that he’s been working on. He demonstrates the feature on his Commodore 64 in the video embedded after the break.

Naturally, any software needs to be adapted to support haptic feedback, but a trickier problem turned out to be the hardware: joystick ports are input-only devices and therefore cannot send “enable rumble” signals to any connected gamepads. [Ricardo] found a clever way around this, using the analog inputs on the joystick port that were typically used for paddle-type controllers.

The analog-to-digital converter inside the computer works by applying a pulse signal to the analog port and measuring the time it takes to discharge a capacitor. The modern gamepad interface simply detects whether these pulses are present; they can be enabled or disabled through software by toggling the analog readout on the joystick port. This way, the joystick port can be used to send a single bit of information to any device connected to it.

[Ricardo] developed patches for Rambo: First Blood part II and Leman to enable rumble functionality. He describes the process in detail in his blog post, which should enable anyone who knows their way around 6502 machine code to add rumble support to their favorite games.

The adapter works with a variety of retro systems that use the Atari-style joystick interface, but if you’re an Apple II user, you might want to look at this Raspberry Pi-based project that interfaces with its nonstandard joystick interface. If you’re into wireless gaming in general, be sure to also check out our history of wireless game controllers.

Continue reading “Bluetooth Interface Adds Rumble Feedback To Commodore 64 Games”

GP2040: A Configurable Game Pad Firmware

[feralAI] and fellow GitHub contributors present for your viewing pleasure GP2040: an open source game pad firmware for RP2040-based hardware. The dual-core RP2040 is a good platform to use for gaming inputs, as there is plenty of CPU grunt to get sub-1 ms USB polling time, regardless of any other tasks the controller may be performing. Currently the firmware supports PC, Android, RPi, Nintendo Switch, PS3, PS4 (legacy mode), and the sweet MiSTer FPGA-based retro-gaming platform.

The firmware supports the older DirectInput API and the newer shiny (but rather restrictive) XInput API (no, it’s not the old X11 input extension with the same name) — as well as the usual controller features like SOCD cleaning, D-pad mapping, and RGB support for additional distractions. There is even support for those tiny OLED displays (SSD1306 and friends), although we can’t think of a use case for that at the moment. Configuration is particularly interesting, however, as it is based upon an embedded web application. This is where the pin mappings to your actual hardware are defined, as well as all that RGB bling, if you so desire.

Continue reading “GP2040: A Configurable Game Pad Firmware”

Mouse-Controller Hybrid Aims To Dominate In First-Person Shooters

The first person shooter genre found its feet in the PC world, relying on the holy combination of the keyboard and mouse for input. Over time, consoles have refined their own version of the experience, and the gamepad has become familiar territory for many FPS fans. [Tech Yesterday] was a die hard controller player, but after trying out  a mouse, didn’t want to go back. Instead, he built a truly impressive hybrid device.

The build begins with a standard Xbox 360 wired controller, somewhat of a defacto standard for PC gamepads. The left analog stick and triggers remain untouched, however the face buttons are all relocated using mechanical keyboard switches. The D-pad has been relocated to the left hand side with tactile switches, and the right analog stick removed entirely. In its place, a cut-down optical mouse is used on a flat 4″x4″ mousepad attached to the controller, strapped to the player’s thumb.

The resulting controller combines the benefit of analog stick movement and the precision aiming of a mouse. We’re amazed at how comfortable the controller looks to use, particularly in the improved second revision. While currently only used on PC, we can imagine such controllers shaking up the console FPS scene in a serious way.

We see some great controller hacks around these parts; the force-feedback mouse is a particularly amusing example. Video after the break.

Continue reading “Mouse-Controller Hybrid Aims To Dominate In First-Person Shooters”

DTMF To Your Computer, With A Gamepad

Though many of us will never have experimented with it, most readers should be familiar with DTMF as the tones used by the telephone system for dialling. If your youth was not misspent mashing 4-4-2-6-4-6-2, 4-4-2-6-4-1 into a keypad, then you haven’t lived!

As you might expect there are a variety of chipsets to handle DTMF, and one of them has been used by [ackerman] in a slightly unusual way. Many desktop computers do not have a convenient array of GPIOs upon which to hang a piece of hardware, but a constant among them is to support some form of gaming controller. Hence he’s taken a commodity joypad and interfaced a MT8870 DTMF decoder to its switch lines with a simple transistor buffer, and is able to pull the resulting information out in the host operating system. So far there are versions for Windows, DOS, Amstrad CPC, Arduino, and even PSX ( the original PlayStation console ).

One might ask why on earth you might want a DTMF input for your desktop PC, but to do so is to miss the point. We are surrounded by computing devices from our mobile phones upwards that do not have any form of interface that can easily be used by our electronic projects, and this serves as an example of how with a bit of ingenuity that can be overcome. It’s a subject we’ve touched upon before, when we asked why people aren’t hacking their cellphones.

10-Way Game Console Lets Everyone Play

[Bitluni]’s motto seems to be, “When you’re busy, get busier.” At least that would explain adding even more work to his plate in the run-up to the Hanover Maker Faire and coming up with a ten-player game console from scratch.

As for this being extra work, recall that [bitluni] had already committed to building a giant ping pong ball LED wall for the gathering. That consisted of prototyping a quarter-scale panel, building custom tooling to get him past the literal pain point of punching 1200 holes, and wiring, programming and testing the whole display. Building a game console that supports ten players at once seems almost tame by comparison. The console is built around an ESP32 module, either WROOM or WROVER thanks to a clever multifunctional pad layout on the slick-looking white PCBs. [bitluni] went with a composite video output using the fast R-2R ladder network DAC that he used for his ESP32 VGA project. The console supports ten Nintendo gamepads for a simple but engaging game something like the Tron light cycles. Unsurprisingly, players found it more fun to just crash into each other on purpose.

Sure, it could have been biting off more than he could chew, but [bitluni] delivered and we appreciate the results. There’s something to be said for adding a little pressure to the creative process.

Continue reading “10-Way Game Console Lets Everyone Play”

NES Classic Edition – Controller Mod

The Nintendo Classic Mini took the world by storm this year — finally, an NES in a cute, tiny package that isn’t 3D printed and running off a Raspberry Pi! It’s resoundingly popular and the nostalgic set are loving it. But what do you do when you’re two hours deep into a hardcore Metroid session and you realize you need to reboot and reload. Get off the couch? Never!

[gyromatical] had already bought an Emio Edge gamepad for his NES Mini. A little poking around inside revealed some unused pads on the PCB. Further investigation revealed that one pad can be used to wire up a reset button, and two others can be used to create a home switch. Combine this with the turbo features already present on the Emio Edge, and you’ve got a pretty solid upgrade over the stock NES Mini pad. Oftentimes, there’s extra functionality lurking inside products that manufacturers have left inactive for the sake of saving a few dollars on switches & connectors. It’s always worth taking a look inside.

Now, back in 2006, the coolest hack was running Linux on everything — and somebody’s already trying to get Linux on the NES Mini.

Continue reading “NES Classic Edition – Controller Mod”

Veronica Gets A Pair Of Gamepads And A Bugged Chip


[Quinn Dunki]’s awesome 6502-based computer is coming right along, and she decided it’s time to add one of the most important features found in the 80s microcomputers she’s inspired by – gamepads.

There were two ways of implementing gamepads back in the 80s. The Apple II analog joysticks used a potentiometer for each joystick axis along with a 556 timer chip to convert the resistance of a pot into a digital value. Analog controls are awesome, but a lot of hardware is required. The other option is the Atari/Commodore joystick that uses buttons for each direction. Surprisingly, these joysticks are inordinately expensive on the vintage market but a similar hardware setup – NES gamepads – are common, dirt cheap, and extremely well documented.

[Quinn] wrote a few bits of 6502 assembly to read these Nintendo controllers with Veronica’s 6522 VIA with the help of an ATMega168, and then everything went to crap.

In testing her setup, she found that sometimes the data line from the controller would be out of sync with the clock line. For four months, [Quinn] struggled with this problem and came up with one of two possible problems: either her circuit was bad, or the 6522 chip in Veronica was bad. You can guess which option is correct, but you’ll probably be wrong.

The problem turned out to be the 6522. It turns out this chip has a bug when it’s used with an external clock. In 40 years of production this hasn’t been fixed, but luckily 6502 wizard [Garth Wilson] has a solution for this problem: just add a flip-flop and everything’s kosher. If only this bug were mentioned in the current datasheets…

Now Veronica has two NES controller inputs and the requisite circuitry to make everything work. Video evidence below.

Continue reading “Veronica Gets A Pair Of Gamepads And A Bugged Chip”