Showing posts with label kludge. Show all posts
Showing posts with label kludge. Show all posts

Monday, 11 April 2016

iCade to Atari 9-pin

iCade arcade style stick on the C64, not unpossible!

Like many retro-heads, I was wowed for a while by the Apple iPad. It seemed that most interesting retro game stuff happened on that platform. But in the end I realized that the device has a major flaw: the touchscreen.  So I went and bought the iCade bluetooth arcade stick. This turned out not to be that great an addition, so it mostly gathered dust in some corner. (Well, mostly I was disappointed with the increasingly degenerating iPad)

When I needed an extra joystick for the C64, I opened the iCade to see what could be done to convert it into a good old-fashioned 9-pin Atari/Kempston joystick. I am aware that this must have been done dozens of times by different people, but I just refused to google it.

I used a breadboard to connect all the ground wires, but this is a bit extravagant.

Funnily, I did not need to solder anything. All the buttons and stick directions are very neatly connected to the tiny circuit board with such headers that easily connect to "jumper/dupont" style wires common in breadboarding. Also, all the ground wires from each button and direction switches are clearly marked black. I guess this all might be part of the intended design and greatly increases the value of the iCade in my eyes.

Example of the iCade header (left) almost connected to a jumper/dupont wire (right). 

Admittedly, what made life easier was that I already owned a couple of very useful pieces. The 9-pin doohickey shown below is a cannibalized COM-port header/connector from a tiny Linux computer I bought from a fleamarket (now destroyed). It's very robust as the connector solder points have been drowned in epoxy. Similarly the 9-pin extender cable is something I have had around for who knows how long. The gender changer was needed in between.

The COM-port thingamajig taken from a linux box, plus a gender changer. The jumper cables don't fit too neatly into the COM-header, though.

It took the longest time to figure out the correct pins, because I was tired. I won't include the diagram now as I'm prone to get it wrong. The Atari 9-pin schematics are lying around the net, but it's not always clear whether it's the jack or the port side. Once the ground has been figured out the directions can be checked one at a time. Wrongly connected pins can mess the C64, especially the CIA chip so take care.

Frankly, the iCade is not ideal for home 8-bit games, as the joystick travels a bit too much compared to, say, TAC-2. The fire buttons are delightful though. For Decathlon-type games, one might even consider connecting the buttons to directions. The neat thing about iCade is that there are numerous buttons, so perhaps in the future I could be motivated to do something a bit more ambitious, like one of the buttons as space bar or other keys.

The backside. Batteries not required!

Wednesday, 19 February 2014

C64 Autoboot kludge, Arduino and AVI

Just a little fooling around with Arduino: an autobooting Commodore 64.

Not visible: The SD2IEC drive to the left.
I've taken 5V for the Arduino from the C64 user port. As the C64/Arduino powers up, the Arduino will wait for a few seconds and send out three digital output signals in succession. These are used to "press" the keys F7, F1 and RETURN in order. With Action Replay VI connected, these keypresses enter the fastload mode and load the first file on the disk.

This basically follows Marq's Joyduino, and uses the same logic chip (CD4066) to control the key presses. The 4066 has been nice for learning about logic in electronics so I may return to the topic later.



Well, it's a bit trivial. The applications for a system that ties down a C64, an Arduino and an AVI must be fairly narrow...! For cross-development, it might be funny to have the C64 run your code automagically. But way I feel it's not like pressing a couple of keys is that problematic.

All the three keys connect to the same matrix row, hence only 4 cables to the keyboard connector. (Also note the SwinSID Nano to the left!)
The setup currently only works when the computer is properly powered up. The Action replay reset does not reset the Arduino. That behaviour might not be desirable, though.

Getting rid of the keyboard is maybe the more interesting thing here. I'm using SD2IEC as a drive here, which is currently the affordable solution for mounting disk images from an SD card on a C64. The bootup can basically load an SD2IEC filebrowser which also works with joysticks. Currently I've repurposed (=messed) my filebrowser so I could not show that as an example. (Also note the keypresses could be faster, but the SD2IEC needs to wait a while to get its act together)

Can I use the Arduino to type in all kinds of interesting things, like LOAD "*",8,1[RETURN] ? Well, no, not at the moment. The approach for fully hijacking the keyboard matrix is quite different, and I'm still pretty clueless about that. This solution is only good for a few keypresses. Also, the presses need to be clearly separated, otherwise unwanted connections may happen.

One more thing to consider:  The poor old C64 Power Supply. I'm not too sure about burdening it with both the cartridge and the Arduino.