"Oh no, not another joystick adapter" - I can already hear the prophecies of doom from the background. But this time it's not about another USB joystick adapter for the PC, but about a joystick adapter for all home computers with a D-SUB9 interface, like Atari and Commodore. And for the Commodore there is even a game which supports this adapter. Because with this adapter you can operate the gamepads of the Sony Playstation 2 on the home computers mentioned.

Introduction

A few years ago I discovered on the homepage of Synthetic Dreams the schematics and the firmware for a very interesting joystick adapter. With this adapter you can play a game called Shredz64, which is based on the Guitar Hero known from the Playstation 2. I personally didn't even find that interesting, but rather the fact that you could connect the well-known PSX2 gamepads to the C64 for any other game.

In addition, this interface can score with a few additional features:

  • Two fire buttons are supported, which is needed for Shredz64 among others
  • The analog stick can be used, if of course only digital
  • Since the PSX Controller has 4 fire buttons, the two fire buttons mentioned above are again equipped with continuous fire.
  • You can program macros. So you can save sequences in the adapter and recall them at the push of a button (with the shoulder buttons).

And an important personal feature for me was that you can play with the PSX2 controllers, which fit very well in my hand. 

The PSX64 can or could also be ordered as a finished device from Synthetic Dreams. However as quite large circuit board. And since the delivery is from abroad, with additional fees. What could be more obvious than to simply rebuild this adapter. Especially as the website has not been maintained for almost 5 years and probably the adapter is no longer sold.

Especially since I have shrunk the adapter so much that it could be installed directly into a PSX2 controller without any problems.

The construction is quite simple and could also be quickly assembled on a strip grid board or a breadboard.

 

The construction

I kept the board as compact as possible, but as generous as possible for easy soldering. The components are quite large, for SMD conditions. So that even a little experienced hobbyist should assemble this board quite easily.

PSX64 Platine unbestückt klein

 

The following components are required for the assembly in addition to the circuit board:

  • 2x MCP41100 - SOIC-8 (U1, U2)
  • ATMega8-16AU - TQFP-32 (U3)
  • 16MHz Quartz - 5032 (Y1)
  • 4,7µF Tantal Capacitor - Kemet A (C1)
  • 2x 22pF Capacitor - 0805 (C2, C3)
  • 100nF Capacitor - 0805 (C4)
  • 2x 10k Resistor - 0805 (R1, R2)
  • 2x 1N4004 Diode - SMA (D1, D2)

Actually quite manageable and above all quite cheap. Except for the two digital potentiometers MCP41100, you can get the parts in any well-stocked electronics store. The two MCP41100s are available from Mouser, Digikey and also from eBay.

Additionally you need cables for the joystick connections and the corresponding plugs and sockets. For the connection of the PSX2 gamepad I took a PSX extension. These are available for 2-3 Euro on eBay and are much cheaper than the jack alone. Just cut off the plug and solder it to the PCB.

For the side to the computer, I used a 10pin ribbon cable, from which I cut a cable. Then I soldered a standard D-SUB9 socket to it. You could also use a crimp version.

Since the PSX2 controller is very current hungry, you can't get the 5V at the control sockets of the C64. I simply soldered a wire with a USB plug. USB power supplies are now always available in the house and you can also use them on an external "power pack", i.e. the batteries for charging mobile phones, etc.. 

The circuit is 1:1 except for the voltage regulator. I had omitted the voltage regulator, because I only wanted to use the circuit with 5V anyway.  The construction is quite simple, and should start with the soldering of the ATMega8. Then the two MCP41100 and the quartz. Followed by the two diodes and the remaining capacitors and resistors, the board is quickly assembled.

PSX64 Platine fertig bestück kleint

 

Flash firmware

The 6pin connector, shown at the bottom right of the picture, is the ISP interface to install the firmware. There a 2-row pin header with 6 pins can be soldered in. The assignment corresponds to the 6-pin ISP interface.

Since the firmware is only flashed once, and updates probably can't be expected any more, I didn't solder in the pin header, but just plugged it in and held it tight when flashing. Certainly not the official procedure, but I didn't like the idea of a pin header. Especially since I wanted to shrink-wrap the board and then only disturbed the pin header.

I have installed the firmware again with the well-known tool "avrdude". On the website of the manufacturer there are two versions, one for the ATMega8 and the other for the ATMega168. But since no features are used by the ATMega 168, this hardware upgrade is not worth it,

I use an AVR ISP MKII for flashing, but any other compatible programming adapter can also be used. For my programming adapter the call looks like this:

Translated with www.DeepL.com/Translator

 


avrdude -c avrispmkII -p m8 -U flash:w:atmega8.hex

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e9307 (probably m8)
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "atmega8.hex"
avrdude: input file atmega8.hex auto detected as Intel Hex
avrdude: writing flash (4904 bytes):

Writing | ################################################## | 100% 1.77s

avrdude: 4904 bytes of flash written
avrdude: verifying flash memory against atmega8.hex:
avrdude: load data flash data from input file atmega8.hex:
avrdude: input file atmega8.hex auto detected as Intel Hex
avrdude: input file atmega8.hex contains 4904 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 1.36s

avrdude: verifying ...
avrdude: 4904 bytes of flash verified

avrdude: safemode: Fuses OK (E:FF, H:D9, L:E1)

avrdude done.  Thank you.


 

Now set the fuses so that the external 16MHz crystal can also be used:

 


avrdude -c avrispmkII -p m8 -U lfuse:w:0xce:m -U hfuse:w:0xc9:m

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e9307 (probably m8)
avrdude: reading input file "0xce"
avrdude: writing lfuse (1 bytes):

Writing | ################################################## | 100% 0.01s

avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xce:
avrdude: load data lfuse data from input file 0xce:
avrdude: input file 0xce contains 1 bytes
avrdude: reading on-chip lfuse data:

Reading | ################################################## | 100% 0.00s

avrdude: verifying ...
avrdude: 1 bytes of lfuse verified
avrdude: reading input file "0xc9"
avrdude: writing hfuse (1 bytes):

Writing | ################################################## | 100% 0.01s

avrdude: 1 bytes of hfuse written
avrdude: verifying hfuse memory against 0xc9:
avrdude: load data hfuse data from input file 0xc9:
avrdude: input file 0xc9 contains 1 bytes
avrdude: reading on-chip hfuse data:

Reading | ################################################## | 100% 0.00s

avrdude: verifying ...
avrdude: 1 bytes of hfuse verified

avrdude: safemode: Fuses OK (E:FF, H:C9, L:CE)

avrdude done.  Thank you.


 

Now the programming is finished and the PSX64 adapter is ready. 

PSX64 Adapter Stromversorgung klein

 

I packed the whole thing in shrink tubing. If you want to do this in a similar way, you should always remember to put on the shrink sleeve before installing the plugs. Otherwise the hose can not be pulled over, because it would be too small for the plugs.

 

Finished

The finished adapter looks like this on me:

PSX64 Adapter Schrumpfschlauch fertig klein

 

And the whole thing still complete with the two connections:

PSX64 Adapter fertig klein 

As already mentioned at the beginning, the board is small enough to be built directly into the PSX2 gamepad. Since I still use my gamepads for the PSX2, I chose the external version. But I would be happy to see some pictures of it, if someone is considering an installation.

Also questions or comments are always welcome.

I still have one PCB left. If someone would like to have one, he can request one under the following link: PCBs

 

Translated with www.DeepL.com/Translator

 

Translated with www.DeepL.com/Translator

Log in to comment

Discuss this article

INFO: You are posting the message as a 'Guest'

Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive
 
Cookies make it easier for us to provide you with our services. With the usage of our services you permit us to use cookies.
More information Ok Decline