29: GryzoBox Part 1: The Prototype

From "Gryzor", Hoedown episode 26:
"If there was only some sort of adapter that you could use to enable multiple fire buttons by connecting a multi-button joystick to both ports. Wouldn't it be nice?"

Well, here we are.

Feeling inspired by the unacceptable state of Gryzor's control scheme in my previous review, I set out to design an adapter to correct some of the control issues introduced into the game due to the C64's limited capacity for multi-port joysticks (regrettable) and the developer's insistence to include all elements of the arcade version's controls (admirable, if nearly-futile given the hardware they had to work with). After all, not every gamer will have feet that they can use to press the space bar while they play, or a friend with a second controller who'll want to handle absolutely no tasks other than jumping when asked.



There were several templates online describing how an adapter of this sort would function, but nothing quite matching my exact needs, meaning I'd have to do a little re-tooling along the way. My original source of reference for this project is Volume 1 Issue 5 of Commodore World magazine, which outlines a simple Genesis controller-to-Commodore-computer circuit that accounts for some of the electrical differences between the two platforms. However, the magazine's circuit fails to implement multiple button support, and we know Gryzor uses the fire button of controller port 1 to jump (while all other functions are handled by joystick port 2). With this in mind, we can use the pinouts specified in the article to determine that we map pin 9 of the Genesis gamepad (tied to the C button and left disconnected in the Commodore World circuit) to pin 6 of joystick port 1 (the usual fire-button pin) on the Commodore. For completeness' sake, I also connected the ground pin from the Genesis controller to Commodore port 1's ground pin in order to account for any potential issues caused by leaving the port 1 ground line floating.



Here is my finished hardware prototype: notice the two terminal block connectors, the breadboard in between handling pin mappings, as well as the inclusion of 6 diodes to protect the computer from damage.

Ol' uncle Hank admits to being a bit of a noob when it comes to this hardware engineering business, and this meant dealing with couple of sketchy moments in the prototyping and testing process. The amount of space between the two DB-9 ports on the C128D is minimal, and connecting two PCBs with terminal blocks side-by-side was an extremely tight fit. I also quickly learned that I should be very careful in both ensuring the 5V and ground pins are connected in the correct configuration, and being certain not to connect or disconnect the adapters without first ensuring the computer is turned *off*. We're spoiled from years of modern technologies like USB that allow hot-plugging, and I believe I came dangerously close to toasting my computer while jiggling one of the ports (the screen made an odd "de-gauss" sound and went black, and I needed to power-cycle the computer to thankfully get it up and running again).

So I guess you'd want to watch this thing in action too, huh?

Oh, and if you haven't picked up on the significance of the whole "Part 1" designator, I think there's still some work to be done. The next article in this series will cover an added feature that'll surely be appreciated by frustrated and less-skilled Gryzor fans, and, if time (and success) permit, we'll eventually get into the process of creating a PCB layout for the adapter and fabricating a few finished units.

And just because I'm sure some will be curious - yes, Gryzor is still pretty bad, functional control scheme or not. But why not do the best we can to optimize it?


This site is copyright 2023 Hank Wesley Chorkin. If you don't like it, you can get out!

Back