Sunday, 29 March 2015

Amiga CD32 - Arcade Style Controller

Hello! And first let me thank you in advance for attempting to read the following article, It's been a while since I updated this blog, and for a long time I've been collecting parts for a brand spanking new controller for retro gaming....

Can you guess what it is yet? Here's a clu...
First to arrive, over a year ago - this wonderful CD32 arcade controller board from KM Tech - essentially a 1:1 replica of the internal electronics of a CD32 joypad, which you can use to interface your own choice of buttons and joystick to your own Amiga.

This has the exact same parts in the exact same configuration as an official Commodore CD32 pad, and on a lovely shiny and well made PCB, you have to provide your own wood, though.

Next to arrive, a full set of buttons and a joystick, received as a gift last Christmas, sadly I didn't take a pic of these before installing, so you'll just have to imagine a set of arcade buttons well packed in a cardboard box and lovingly wrapped.  They were from and arrived in perfect condition, but don't rush off and order a set just yet! 

These parts, in order to work in synergy and accomplish the feat of being good at controlling things which happen in games, require an enclosure, something to hold them all stably and ergonomically together, this is the hard part.  I decided to make something which might approximate a section cut from a real arcade stand-up cabinet, and went for a wedge type form to slant the deck toward the player, I felt this would make up somewhat for the cumbersome form, and I was right... Anyway,  partly for economic reasons (I'm pretty broke right now) and probably wussy lefty green environmental concerns, I also wanted to use only recycled / scrap material for the casing and after some frantic cutting, sawing and sanding last week, I ended up with a pile of toxic plastic dust (which mostly blew shamelessly into the environment I sought to protect), and this beast:

Yes, it is absolutely gigantic! Not one for "studio apartments"
It's huge, its heavy, but its a lot of fun to play a game with, minus the smokey atmosphere and strange men in overcoats who have a free neo-geo for you if you step into the back of their creepy looking van, its the closest thing to the arcades I remember from my youth.  The fully assembled controller really makes a difference for all sorts of games, but for shooters it makes a real difference and who cares about the environment when you're having fun eh?

The 'found' material, gives it a rugged 'ghetto' styling we can all appreciate.  The perspex fascia was from a friends LCD monitor - I tried fixing it and only broke it more (sorry Paul!) the thick piece at the front of the unit an old chair leg, and the rest are just random bits I found laying around in a rarely used cupboard / may have been the rarely used cupboard... Shhhhh. 

Hopefully it will look better sanded and painted! If I'm feeling flush I might get a design printed on vinyl to lay over the perspex, first though I need to settle on what features I want on-board. Joystick aficionados may have noticed the added switch above the joystick. This 3 position switch allows me to turn off the "Up" micro-switch on the joystick, and at the same time remap the blue button to "Up" on the interface board.  The point being that most Amiga platform games are limited to pressing "Up" for jump, if red is commonly the fire button (Zool 2, Ruff & Tumble for example) then blue will be jump, right next to it.  This makes controlling games for me much easier, as I'm more used to console type control schemes, where up usually just makes your character uselessly look upward, and jumping is nearly always a button press.

Wiring the buttons to the board is a breeze compared to making the case, but each wire needs to be soldered - forget about using a standard pin header for solder-less connection, according to the manufacturer, this drives the resistance too high, which can cause problems.  The instructions also state that each switch should be wired to with it's own common or ground connection - I found this was not the case, you can see the bank of unpopulated via's below. This really saves a lot of soldering and also halves the mess of wiring required, I cross connected the  grounds on the micro-switches instead of daisy-chaining to reduce the length of any circuit formed - I can't see how the resistance is any higher this way for individual presses, but perhaps it does when certain combinations are pressed.  I haven't noticed any problems so far however.
You really can't go wrong, but ensure the output to the Amiga (just out of shot lower left) is wired correctly with a continuity meter - ) ever paranoid of error and seeing how you could potentially blow one of the Amiga's chips up if wired incorrectly, I triple checked mine.
Another thing to note about the board, it cannot use common headers, and the convenient wiring options available, otherwise all the wiring could simply be plugged in using standard arcade parts. Apparently the completely non-standard arrangement is deliberately to prevent people from doing this.

Even with the gigantic enclosure, I had some problems finding a place to install the board, you can see its very close to the lowest button and the excessively thick piece of wood (an old pine chair leg) I'm using for the front of the enclosure - I didn't really think about this at the start, so if you're building your own, make sure to allow for this. I wanted to keep the depth of my controller to a minimum, so there was no room below the buttons to install, and again I wanted to keep my wiring runs as short as possible if electrical  resistance was going to be an issue. You can see from the pics that there's a lot of empty space on the board, it could be reduced significantly, on the flip-side of that, "arcade" usually implies oversize, heavy duty, so it somehow seems appropriate... Eh, I'd still like to see a smaller version in future though, just from the POV of efficiency, and being able to potentially cram more things inside as small a casing as possible.

So ronery...
I tried to emulate a CD32 Joypad layout and colour-scheme; the black buttons are the shoulder buttons and 1up is the pause, so hopefully I wont become confused when instructed to press a certain colour in any of the oooh, 10 games? which might require it.

Just like a city from TRON, maybe.

Coming back to the heart of the controller, the board and why it is necessary: Even though it says CD32, it should work on any Amiga, but if you're using a non-AGA machine its sadly complete overkill, as I suspect no CD32 games work on any computers other than the AGA chipset equipped A1200's and A4000's, and CD32's themselves of course. 

For older machines like the A500 we can simply wire the buttons and stick directly to a suitable cable, and plug it straight into the Amiga.  Older games generally only use 1 button (occasionally 2) no additional chips or other components are required as we only need to support 2 buttons.

So, why do we need extra chips for more buttons? Why do we need more buttons on our controllers at all!?  If we go back into the mists of time, the early & mid 80's, games really only required at most 8 directions and 2 buttons to control the action. So why make a design more complex and expensive than required?  2 buttons were just fine most of the time, heck, one button was just fine and dandy - this was after all the era before Street Fighter 2.

During the golden age of the arcade fighting game, and the 4th generation of games consoles - generally the first 5 years of the 1990's - it became a trend with manufacturers to increase the amount of buttons available on their controllers. Partly to support multi-button fighting games, ans partly to outdo their competitors. The Megadrive from 1989 had 3, the SNES, released a couple of years later, had to have a few more, culminating in the controller nirvana of 1994's Sony Playstation pad with a whopping 8 buttons (I realise some are screaming "Colecovision!" and "Jaguar!" but I've done the math here, and I'm choosing to ignore them, as I'm also ignoring pause, select and other buttons not normally used in play;)).  Add a couple of analogue sticks for err, analogging, and you have the same control pad you've been gently caressing for the past 20 years.

The synth-pop listening, hairspray sniffing gamer of the 80's might fall right off their folding bedroom chair if confronted with this modern style of controller, Practically convulsing at the hilarious mass of buttonage liberally scattered over its alien looking injection molded casing... But this all seems normal now.   Indeed, to those from the past, the sight of an Xbox 360 controller and its similar, yet even more outlandish assymetric layout might cause uncontrollable frothing, or the expulsion of gooey chunks of Wham! bar mixed with Iron Brew, all over the nearest black and white portable TV; potentially obscuring that nights episode of Airwolf, Tomorrow's World or the Krypton Factor....

"UP" To Jump....

In the 'controller war', Amiga's were quickly left behind, 1992's A600 and A1200 featured NO official improvements in this area beyond their older models, a new generation of commodore machines left to rot with control schemes leaving a player to press "up" to jump in a platformer or perform a convoluted joystick maneuver to release a smart bomb... Sometimes the keyboard would have to be used to supplement the lack of buttons - imagine having to stop firing to lash out and hit the spacebar to save your spacecraft from imminent oblivion, the horror, the horror...

Perhaps Commodore thought computers should be treated differently, after all Amiga's come with a keyboard that has millions of buttons, too many to count, (count em?) and those are great for gaming on, right? Perhaps they simply couldn't be bothered - and why should they, since most existing and planned games were designed with single button schemes in mind, and even console conversions could be made to run with alternative, if awkward single button schemes.  Bafflingly, the Amiga actually supported TWO (count 'em!) separate joystick buttons from the off, but very little software, and very few joysticks supported this - many Amiga sticks had multiple buttons, but they were all wired to the exact same pin and no software developer wanting to be successful wants people to also have to buy new hardware to run a single game.

Commodore finally addressed this when they released a dedicated games console, the CD32 in 1993, to compete with the fourth and the coming fifth generation consoles like the Sega Megadrive and Sony playstation. Now with no keyboard to fall back on, and to provide the optimal level of control for all the exciting titles of that era which might (but probably didn't) end up on the new machines, way, way, waaaaay more buttons were required to be within easy reach of our fetid gaming fingers, and the CD32 joypad was also born, funky looking gizmo that it is - people either seem to love or hate them, such is typical with most 90's electronics.

So, C= cleverly worked out that no self-respecting gamer would purchase a console in 1993 or beyond, if it didn't possess a serious amount of buttons for properly expressing some appropriately 90's 'tude in that era's 'tude filled games. There is a problem though, the CD32 Like all Amigas, used a 9 pin D-sub type connector, and if buttons and joystick directions are all basically switches, and for every extra switch, you require an extra wire; how do we get 4 directions, 8 action buttons and a pause button, along with a common or ground connection on one single 9 wire cable?

Infact, if we use a logic chip or two to encode and convert the switch presses into digital signals, really only 3 wires are absolutely required. One for ground, one for digital data, and one to supply a chip with a suitable voltage so the chip can perform this electronic sorcery, to encode any combination of button presses into digital signals.  Games can then be written to 'listen' for the combination of pulses that indicate that a particular button has been pressed, rather than simply to tell if a switch is on or off.  The beauty of this is that the Amiga hardware design required no modification, so this can also work on older machines as its all driven by software.

Which is great, as I don't own a CD32 (boo!) but my Amiga 1200 is very similar internally to, and capable of running the same games as Commodore's ill-fated games console!

So, now we know why I did this, other than the cool factor and street cred it provides, I find its a lot more enjoyable simply to play games with it, and it preserves the old sega pads I was otherwise using. The remapping of up is a real bonus and easy to accomplish compared to a joypad mod, and really worth the effort.  It is so choice. If you have the means, I highly recommend picking one up! (or making one out of old furniture and other junk;))