Skip to content
  • About Me
  • Books
  • Photography
  • Papers
  • Security
  • Forensics
  • Essays
  • Christianity

Calendar

November 2025
M T W T F S S
 12
3456789
10111213141516
17181920212223
24252627282930
« Oct    

Archives

  • November 2025
  • October 2025
  • August 2025
  • July 2025
  • March 2025
  • December 2024
  • March 2024
  • July 2023
  • May 2023
  • February 2023
  • December 2022
  • November 2022
  • July 2022
  • May 2022
  • March 2022
  • January 2022
  • December 2021
  • November 2021
  • September 2021
  • July 2021
  • December 2020
  • November 2020
  • March 2020
  • September 2019
  • August 2019
  • August 2018
  • March 2018
  • March 2017
  • February 2017
  • January 2017
  • November 2016
  • October 2016
  • July 2016
  • April 2016
  • March 2016
  • February 2016
  • June 2015
  • March 2015
  • February 2015
  • December 2014
  • November 2014
  • October 2014
  • September 2014
  • August 2014
  • July 2014
  • June 2014
  • May 2014
  • April 2014
  • March 2014
  • January 2014
  • October 2013
  • September 2013
  • June 2013
  • May 2013
  • April 2013
  • December 2012
  • May 2012
  • September 2011
  • June 2011
  • August 2010
  • July 2010
  • May 2010
  • April 2010
  • February 2010
  • July 2009
  • May 2008
  • March 2008
  • January 2008
  • June 2007
  • August 2006
  • February 2006

Categories

  • Apple
  • Christianity
  • Essays
  • Forensics
  • Gaming
  • General
  • Machine Learning
  • Music
  • Opinion
  • Photography
  • Politics
  • Security











Jonathan ZdziarskiNeat and Scruffy
  • About Me
  • Books
  • Photography
  • Papers
  • Security
  • Forensics
  • Essays
  • Christianity
Gaming

Arcade Hardware Hacking: Part II

On August 30, 2025 by Jonathan Zdziarski

RoadBlasters (Steering Yoke Conversion)

Arcade Hardware Hacking: Part I

Arcade Hardware Hacking: Part III

Temple of Doom was a great introduction to the Atari System 1 logic board, and as it turned out was very easy to adapt to the JAMMA standard. With the exception of inverting the directional buttons (and the ridiculous number of repairs I had to make to the board), everything was super straight forward and amounted to simply mapping pins on the logic board to JAMMA pins with the help of the schematics. But Temple of Doom isn’t the only great game released on this platform. System 1 is a modular platform; Atari was able to save a lot of money by shipping out new cartridge PCB kits to arcade owners. These kits typically came with a new marquee and control panel so if you already owned an Atari System 1 cabinet, you could swap out games pretty easily without having to freight an excessively heavy cabinet. Once games lost popularity, they were just dead space in the arcade. This cost square footage, and also a great deal of electricity to run all day. Atari’s approach to game refreshes (which predated JAMMA by a few years) made it easy for arcade owners to save money and space. The System 1 supported a handful of games including Temple of Doom, Marble Madness, Road Runner, and the focus of this post: RoadBlasters.

RoadBlasters was one of my favorite racing games (next to Outrun, which will forever be crowned the best), and was also a System 1 platform game. Unlike Temple of Doom, there’s no joystick. The controls are very nuanced, as they are with many arcade racers, and included a steering yoke and foot pedals. You can imagine this was handled very differently electronically than a racer you’d play on, say, NES (like Rad Racer, which I grew up on). It’s not a very popular game for home arcades because you typically need to own the original steering yoke (or a compatible aftermarket one, if such a thing exists) in order to play it, which means a dedicated machine or something hacky. I’ve always found at-home steering wheels and pedals a bit dumb anyway, and prefer playing a racer with a gamepad or joystick. I’m certainly not going to buy some old arcade yoke (or a complete cabinet!)  just to play a game. They’re charging some stupid prices for these too, because they can.

RoadBlasters Optical Coupler Schematic

Not surprisingly, RoadBlasters uses optical sensors to detect the motion of the steering wheel. Since it was the technology of the time, many games (such as Tron) used a similar setup. The steering wheel included a disc with notches. As you turned the steering wheel, the optical sensors would detect either the notch or the disc. As you turn, signals get sent to the logic board which clock your movement in a given direction. Here, the direction is determined by whether a pin named VERT DIR1 is low or high. No idea why they didn’t use the HORIZ DIR1 pin for steering. ¯\_(ツ)_/¯

There’s a catch to how RoadBlasters was designed that made this adaptation a little more complex than Tron. As I explained in Part I, Tron uses a 10-bit counter logic chip to maintain a value from 0-127, and increments or decrements that value depending on whether the spinner sends a HIGH or LOW signal to the UP pin on the chip. Like Tron, RoadBlasters uses one pin for clocking and another pin for direction. Unlike Tron, instead of using an LS491 (or any other counter IC), RoadBlasters maintains this counter in the software, expecting a clock signal via the CLK1 pin, but an interleaved signal for the DIR 1 pin to set the direction. It seems that the game reads the DIR1 pin at both the rising and falling edges of the clock. Only signaling the DIR1 pin at the same time as CLK1 doesn’t work. Playing around with shorting some pins, I figured out the sequence of expected signals:

  1. CLK1 HIGH
  2. DIR1 HIGH or LOW (depending on direction)
  3. CLK1 LOW
  4. DIR1 HIGH or LOW (inverted)

The logic board itself counts up or down 8 bits, so your possible values are 0-255, with 127 being a centered steering wheel. MAME tried to make this game playable by setting the wheel to a hard extreme of either 0 or 255 depending on which way you turn… and if you’ve noticed, the MAME version of this game is virtually unplayable. We need something a little more graceful, to slowly count up or down depending on how long you hold the directional pad down.

My other car is your car

In Part I, I mentioned the utility of an NE555 timer chip to generate a clock pulse. This was later incorporated into the final prototype for Tron, so that the adapter could automatically move Tron’s arm (rather than depend on a rapid fire circuit). My at-home game rotates comfortably at around 80-100hz. The same technique can be used here with a few changes. We need to generate two signals instead of one – and they have to be interleaved. We could probably time this right with two NE555 timers, but that’s a little excessive. What we need here is often referred to as an RC Delay Circuit.

As the link explains, an RC (resistor-capacitor) delay does exactly what it says… relays a pulse with a slight delay. Here, we want to pulse the clock pin, but then immediately after tap the DIR1 pin to convey the correct direction. Implementing an RC delay allows us to send two signals – one right after the other.

After a little bit of trial and error, I configured the NE555 timer to just the right pulse rate using 1K for R1, 33K for R2, and 0.47 uF for C1.

NE555 Timer

Driving Miss Daisy

The NE555 reset (pin 4) needs to be tied to a +5V source when you want to turn. If you recall from Part I, you can invert signals with the use of a 74LS04 or a 74LS86. The LS86 (quad XOR gate) makes more sense here, because when you’re done you’re going to want the timer to activate when EITHER the Left or Right directional buttons are pressed. So you can run your Left and Right JAMMA pins into an LS86 as the input, and the output will be LOW when no button is pressed, or HIGH when either one is pressed. Pin 3 then goes to both the CLK and DIR1 pins. DIR1 receives the clock signal just after the clock pin does, so that it’ll be active when the pin is read.

So by now, I’m able to turn reliably in one direction… not very useful for a racing game.

In order to turn in the other direction, the signal to DIR1 needs to be inverted when the other directional button is pressed. Looking back to the LS86, think about how you’d build a XOR gate to handle this. One way to do it is to send the CLK output into one input, and one of the two directional pins into the other. Take the output of that gate and make that your DIR1 signal.

You never learn to swear until you learn to drive

Now we’re cookin’.  With the RC circuit in place just in front of it, (a little trial and error landed me at 5K and a 103 cap) I placed an XOR gate between the CLK pulse and the DIR pin. Now we can increment or decrement the counter in either direction!

I quickly went from breadboard to prototyping board and built a small, cookie-sized circuit in the configuration above.

 

The rest of the pins simply map to JAMMA pins on a universal adapter. Any universal adapter will do. This happens to be one I fabricated.

 

If everything seems under control, you’re just not going fast enough

It drives pretty good! There is no return to center but it feels natural this way, the way a steering wheel would. You could build a return to center with an 8-bit timer in sync with your steering, but I really like how this feels as it is – nice and smooth, and gamepad-friendly.

NOTE: It’s not easy playing with a phone in one hand, and a gamepad in another!

The pedals are quite easy: I mapped the accelerator/brake pedal to a single pin. When the voltage is high (default), the accelerator is down. Therefore, the button is essentially a “brake” button. Based on the schematic, this is exactly how RoadBlasters handles the brake too… by just grounding out the accelerator pin.

If you don’t like how I drive, get off the sidewalk

I’ve now finalized an adapter design, utilizing an MC34063AP to supply and onboard boost inverter for -12V. In addition to the steering circuit,

Update

First run of fabricated boards have arrived and work excellent. The negative boost inverter supplies the -12V necessary to power the amplifier and certain ICs, and using the same op amp design from TRON provides solid sound. The steering circuit took a tiny bit of fine tuning to get just right, and I landed on a 224 capacitor for the 555 timing cap as offering the most playable experience. Very happy with this board!

I have since made a few small changes: certain super guns require a 470R resistor between CLK and the System 1, as they provide too much current. You can also turn the voltage down to compensate, and everything still works, but this is an important fix nonetheless. On an Axunworks setup, I seem to get a small bit of high frequency hum. I suspect this can be fixed by replacing C10 with a film capacitor as ceramic capacitors are known for generating this type of high frequency noise on switching inverters like this one.

Archives

  • November 2025
  • October 2025
  • August 2025
  • July 2025
  • March 2025
  • December 2024
  • March 2024
  • July 2023
  • May 2023
  • February 2023
  • December 2022
  • November 2022
  • July 2022
  • May 2022
  • March 2022
  • January 2022
  • December 2021
  • November 2021
  • September 2021
  • July 2021
  • December 2020
  • November 2020
  • March 2020
  • September 2019
  • August 2019
  • August 2018
  • March 2018
  • March 2017
  • February 2017
  • January 2017
  • November 2016
  • October 2016
  • July 2016
  • April 2016
  • March 2016
  • February 2016
  • June 2015
  • March 2015
  • February 2015
  • December 2014
  • November 2014
  • October 2014
  • September 2014
  • August 2014
  • July 2014
  • June 2014
  • May 2014
  • April 2014
  • March 2014
  • January 2014
  • October 2013
  • September 2013
  • June 2013
  • May 2013
  • April 2013
  • December 2012
  • May 2012
  • September 2011
  • June 2011
  • August 2010
  • July 2010
  • May 2010
  • April 2010
  • February 2010
  • July 2009
  • May 2008
  • March 2008
  • January 2008
  • June 2007
  • August 2006
  • February 2006

Calendar

November 2025
M T W T F S S
 12
3456789
10111213141516
17181920212223
24252627282930
« Oct    

Categories

  • Apple
  • Christianity
  • Essays
  • Forensics
  • Gaming
  • General
  • Machine Learning
  • Music
  • Opinion
  • Photography
  • Politics
  • Security

All Content Copyright (c) 2000-2025 by Jonathan Zdziarski, All Rights Reserved. Opinions are my own.