Firmware update – Lots of good new stuff

D-pad settings
Button mapping for HID mode selection

Dear all,

A firmware update is knocking on the door. Besides a few technicalities, there are two main features in the new version: support for two N64 controllers (yay! Played my first round of Super Mario 64 last night, with proper analogue controls), and an option to set the HID Mode upon startup without having to edit the config.

Please find the firmware and updating instructions on this page. As always, I’d be glad if you could give it a test run, and report if something doesn’t quite work the way it’s supposed to. Here’s the full list of changes:

v0.17h alpha (2012-05-08)
- KB Mode ([HIDMode] 3) now supports 4 players
- Streamlined config file (no more key mappings, file
extensions for plug-in prototypes)
- Added config options for SMS and GG rom extensions
- A dedicated USB PID per HIDMode setting, for
smoother enumeration, and driver handling by OS
- Fixed overdump mode (HWB button)
- HID joystick (HIDMode 1, 2) now reports 16 buttons
- N64 controller support: Connect data line via 220ohm
resistor to Sega slot pins A7 (controller #1) and
A5 (#2).
- Startup HIDMode setting: Hold down D-pad to choose
values 0 (up), 1 (up+left), 2 (left), 3 (down+left),
4 (down). Also press Start to make the setting

Setting the [HIDMode] using game controller

The [HIDMode] setting in the RETRODE.CFG file determines the way the Retrode identifies itself, and in particular the game controllers, to the operating system. By default, the Retrode 2 registers in [HIDMode] 1, i.e., four USB joysticks (in this order, left SNES, right SNES, left SEGA, right SEGA port). However, some emulators under some operating systems (Mac OS X) don’t fully support USB game controllers and work more reliably with keyboards. So the Retrode can also pretend to be two keyboards (why two? A boot protocol keyboard supports 6 simultaneous key presses, which is not enough for multiplayer gaming). The keyboard mode is [HIDMode] 3. Please find a full list of modes on this page.

So far, this setting could only be made in the Retrode’s configuration file. From firmware version 0.17h on, there is a second option: by holding down the D-pad of a game controller upon startup (reset) of the Retrode, the user can select one out of five HID modes. If the Start button is pressed in addition, the setting will also be stored to the device configuration. Please see the image above for reference.

N64 controller support

Retrode asking, controller responding

In anticipation of the upcoming N64 plug-in adapter, I’ve implemented support for N64 controllers. So far, only standard controllers are supported but memory paks etc. should be relatively easy to retrofit at a later point. The controllers need to be connected before the Retrode starts up (or, simply hit the Reset button to trigger re-detection).

Even without the plug-in, this is a super-easy retrofit for anyone with the most basic soldering skills. I used an old (faulty) plug-in prototype board and glued some connectors on top (yes: it’s a mess, but ah well). Another option would be to retrofit the connectors on the Retrode itself. Either way, first of all you want to make sure that the Retrode’s voltage selector switch is set to 3.3V:


The wiring is as simple as this: Just connect the controller ports’ power pins as shown in the schematic below. For instance, for 3V3, you could use SEGA cartridge pin A31, and for ground, pin A1. The data lines (middle pins) are connected through 220 ohm resistors to SEGA cart pins A5 and A7. Please note that the drawing shows the connector on the console as seen from the user. If you’re not sure about left vs. right, supply voltage and ground, here’s what it should look like.


11 comments to Firmware update – Lots of good new stuff

  • I tried the N64 controller support out and it works great, all buttons and the analogue stick mapped and working.

    Nice one Matthias!

  • When using a one-button Atari joystick the startup HID mode setting is ALWAYS stored (even though there is no START button on such a joystick). This behaviour is fine by me, but it might work better if the single button on such a controller could be used to optionally store the setting as can be done using a controller with a START button?

    I mention this in the feature suggestions thread:,38.msg660.html#msg660

  • Muzer

    So no more key mappings in config file – are these now hardcoded? Just wondering. It would make more sense for them to be hardcoded, because that config file line was getting a little long taking up valuable space.

    • Yep; there is one, fixed key mapping now. My primary concern was not as much about valuable config file space but rather about running out of keys on the keyboard :) After adding players 3 and 4, coming up with collision-free sequences of hex numbers just seemed like an unnecessarily hard task.

  • Trevor Gulliver

    So, will these be included in the n64 plugin? possably?

  • MasterOfPuppets

    One minor glitch, the default for GG games is glitched as “5¿5″.

    • Thanks for reporting. I see the problem. Firmware update doesn’t set a default value…… You may want to delete the GG and SMS lines in the config file.

  • These updates all look great! will deffinately have a go with the N64 controllers and let you know how it goes.