FM Towns and the Capcom Power Stick Fighter PC Adapter (CPSF-PCアダプター)



In 1994, Capcom released a relatively faithful arcade port of Super Street Fighter II for the FM Towns personal computer.  Years ago I downloaded a CD image, burned it to a CD-R and tried it out.  It was a huge disappointment.  Not only did the game run at a completely unplayable half speed on my FM-Towns 20F (with 8MB of RAM), my FM-Towns gamepad proved to be totally inadequate for a fast-paced fighting game - it seems to be physically impossible to throw a Hadouken fireball with it.

The "stock" FM Towns game pad - it's practically impossible to play Super Street Fighter II with this.

Earlier this year someone pointed out to me that the "half-speed" issue can be resolved simply by changing the option "Raster Mode" from "On" to "Off".  This does indeed allow the game to run at full speed and made me feel like a complete idiot for never coming across that little tip before. I'm also a bit baffled as to why this setting would be turned on by default. 

Even with the game running at full speed, the OEM gamepad is still not up to the task.  Capcom knew this and as such included an adapter called the "CPSF-PC Adapter/CPA 001" with copies of Super Street Fighter II.  

CPSF-PCアダプター/CPA 001

The CPSF-PC Adapter is named after  the "Capcom Power Stick Fighter" which was a good quality joystick sold by Capcom primarily for the purpose of playing Street Fighter on the Super Famicom/Super Nintendo.  The Joystick came with a proprietary plug and modular cables that allowed players to switch between using it on a Famicom or a Super Famicom/SNES.  The CPSF-PC Adapter was designed to plug directly into the Power Stick Fighter joystick.  Among other things, this gave players access to play Super Street Fighter II with all 8 buttons an 8 joystick directions.  The adapter also has a port for alternatively plugging in a 6-button Mega Drive/Genesis controller to give the same features.

Prior to becoming aware of this adapter, I experimented with a couple of home made options which I had hoped would at least allow me to use a better-designed controller. All of them allowed me to play SSF2 on the FM Towns better than with the OEM game pad, however none of them enabled the use of all 6 buttons required for the full experience.

First I tried using the instructions on this page to design my own adapter:

The adapter "worked" but I could only ever get it to recognize the D-Pad and 2 buttons from the Genesis controller.  Since the "Start" button did not work, I had to start the game using the OEM pad, then swap to the adapter to actually be able to play.  But hey, at least I could throw a fireball!

I also tried a JoyMega adapter which is designed to connect Mega Drive controllers to an MSX computer.  MSX and FM Towns share the same controller scheme and are supposedly directly compatible.  Unfortuantely the KMTech JoyMega functioned identically to my home made adapter based on the schematics from GameSX - only the D-Pad and two buttons worked.  The "start" button wasn't mapped to this one either. While the designer of the JoyMega says that this version of the design enables the use of all 8 buttons, that appears to work very differently on the MSX than it does on the FM Towns.
Open-Source "JoyMega" Mega Drive to MSX adapter made by KMTech.



Lastly, I tried out the the Popolon JoySNES adapter, which is sort of like a SNES version of the JoyMega.  I found it to be considerably more functional than the JoyMega (on FM Towns at least). The "Start" and "Select" buttons work properly, and while it does not map all 8 buttons on the SNES PAD to separate buttons recognizable by the FM Towns, it does use all 8 buttons.   


As an aside, in case you weren't aware, in order to switch between the various joystick options in the FM Towns version of Super Street Fighter II, you need to go to "Configuration"

It will default to "Pad".  With the cursor in the position shown below, push right or left on the D pad to cycle through the various controller input types.

CPSF is for the Power Stick Fighter Joystick - notice the button names all correspond with Super Famicom/SNES buttons


CPSF-MD is the CPSF-PC adapter with a Mega Drive/Genesis controller plugged in.



After trying the thrifty route to be able to enjoy Super Street Fighter II to the fullest on FM Towns, I decided to break down and buy an authentic "CPA 001" adapter.  They are somewhat rare and expensive.  (As of this writing the last one to sell on Ebay went for $200 before shipping!)  On Yahoo Auctions Japan they were still expensive but seemed a tad more reasonable than Ebay even factoring in the cost of shipping.  After a month or so of searching I finally found one being sold with a copy of Street Fighter II Dash on the X68000 for considerably less than what people were charging in the US for just the adapter so I jumped at the chance to get it.  Shipping from Japan is always crazy expensive, but even moreso now that the globe is in a state of perpetual panic.  However, you can save a few dollars on shipping with a proxy service like Buyee because they will allow you bundle several items up to ship at once - which is exactly what I did.  All told, I paid more than I wanted to but considerably less than the $200 that was my only option in the US.

Although the deal I got wasn't good enough to make me suspicious, I should have scrutinized the pictures a little better and done my homework.  At the time I won the auction for the adapter, I didn't actually own a Power Stick Fighter Joystick, so I didn't immediately recognize the significance of this photo put up by the seller on YAJ:

What the seller is showing here is that the adapter has been "customized" and is no longer directly compatible with the Capcom Power Stick Fighter joystick.  At some point someone (who will hereafter be referred to as "Custy McDoo") cut off the proprietary connector which is supposed to plug into the joystick and replaced it with a DIN-5 connector.

What should have been at the other end of the plug on the adapter I purchased is this:


So when they were sold new, CPS Fighter joysticks came with two cables, a Super Famicom to joystick cable and a Famicom to joystick cable.  My plan was to buy a CPS Fighter joystick that came with both cables and just cannibalize the Famicom cable for the connector.  To my knowledge there weren't any games on the Famicom specifically designed to be used by the CPS Fighter - it was just a generic joystick in that context.  Turns out it's a good idea I didn't go that way - but I'll explain why later.

The technology conservationist in me decided that rather than cannibalize the Famicom cable, since the Famicom joystick port was compatible with a common DB-15 port, I would instead just make an adapter out of a common, easy-to-find DB-15 socket and DIN-5 plug.  That way I could just connect the dopey DIN-5 that Custy McDoo put on the end of the cable to the Famicom-to-Joystick cable.

Simple enough, then all I needed was the proper mapping of pins to wires...  Yeah, not so simple.  There's precious little information available on this adapter, so short of getting someone with an intact adapter to map it out for me (which I tried, but didn’t have the patience for), I had to put on my investigating hat and try to figure it out.


The "Input" side of the CPA 001 PCB is at "J1", circled here in red.  It consists of 5 signals.


The input end of the adapter (the part that goes to the CPSF joystick) is attached by 5 wires.  The question is; to which pins on the joystick connector do they need to be attached?

I'll spare you the suspense and just show you the answer:




Figuring this out was kind of fun.  First I used the Famicom and Super Famicom cables from the CPSF joystick to trace known signals to pins on the joystick plug.  This helped me to understand that the five wires coming out of the adapter were "Ground", "+5v", "Clock", "Data" and "Latch".

Finding ground and +5v was fairly simple to do with a multi-meter.  First order of business is finding ground because you have to measure everything else against that.  For safety, I left the FM Towns powered off, plugged the adapter in to the joystick port and tested continuity between one of the ground rings on the audio ports on the front of the PC and the pins of J1.  I found ground at J1(5).  With the FM Towns powered on, I was able to verify a steady 5v at J1(1).  

The other three signals required a scope to figure out.  (Yes, my scope can take prettier pictures and save them to USB, but it was quicker to grab my phone than it was to try to find a USB stick).  

First I needed to know what I was looking for.  A couple of users on the RetroRGB Discord (Nemesis1024 and L-Train) pointed me in the right direction by describing what I should look for and later confirmed my findings.  I also found this video immensely helpful in getting a better idea of what was going on: https://youtu.be/dahbvSYV0KA



J1(3) - Clock


J1(2) - Data
(with no joystick connected, this basically does nothing)




J1(4) - Latch

So with the signals all sussed out, I went to work making my DIN-5 to DB15 adapter so I could just plug in the CPSF Famicom cable rather than cannibalizing its connector.

However when I plugged everything in, only the A and B button on the CPSF joystick would work in-game.  It was then that I went back and re-checked both the Famicom and Super Famicom cables and discovered that on the Super Famicom cable, pins 3 and 11 were bridged to one another.  They weren't connected to any of the Super Famicom plug pins, just each other.  My guess is that this acts as a switch that pulls some logic high or low inside the joystick to change modes from Famicom to Super Famicom.  From my research I learned that while the Famicom and Super Famicom use basically the same signals, the polling is done at a different speed to accommodate the extra buttons on the Super Famicom.

It seems without that bridge my controller behaved as though it was plugged into a Famicom.  Well, Super Famicom controller sockets aren't exactly standard parts, but thankfully I had a couple of cheap SNES controller extension cables lying around.  I snipped off the socket end on one of them, wired it to another DIN-5 connector, double-checked all the signal lines were in the correct place and tried it.

It worked perfectly!  The joystick sent all 8 button signals to the FM-Towns, the game recognized them just like it should and for the first time I was able to play Super Street Fighter II on my FM Towns with the CPSF joystick.  Not only that, but because of how I had to do it, I can also now use any standard SNES or Super Famicom controller and utilize all of the buttons - that includes the goofy Capcom Pad Soldier controller!

Since I had such a hard time finding this info when I went searching for it, I thought I'd post it here in case it saves someone time and trouble in the future.

The following chart shows the physical pin numbering of the various connectors involved






The following table shows the various pin mappings for the CPSF Joystick
CPSF Joystick PlugFamicom PlugSuper Famicom PlugPurposeCPSF-PC Adapter J1Notes
19Clock(2)4Only used with Famicom Cable
2134Data(1)
3CPSF Joystick pin 3 must be bridged pin 11 on the same plug both for Super Famicom and CPSF-PC Adapter
47Data(2)Only used with Famicom Cable
5
6
7
8
9151+5v5
10
11See note about pin 3
1217Ground1
13142Clock(1)3
14123Latch2







Comments

Popular posts from this blog

What I've Learned Fixing Optical Drives

FM Towns PC ODE - Grey Tower Wizard Installation Notes And Review

ColecoVision RGB Mod [Updated]