RJ45 to DB15 Controller Converter for MC Cthulhu/PS360+/Brook Retro Board
Hello, I wanted to post this project here since it seem right up this forum's alley.
I have been working on a cable for connecting my MC Cthulhu equipped arcade sticks to my DB15 equipped arcade setup. My original thought was to put together a Sega Saturn controller converter, since that can be built using discrete logic and doesn't require any programming, and then connect it to my MC Cthulhu with a Saturn to RJ45 cable. What I didn't like about this method was that it required 7 ICs to demultiplex 2 controllers, which is kind of ridiculous. Also Saturn controller ports of decent quality are not in production so even though the discrete method works, it still pretty much sucks.
Recently I returned to this project with some fresh ideas. I switched from discrete logic to an ATMEGA328p and wrote up some Sega Saturn Demultiplexer code for it. This worked great and was much more reasonable to build, but I still didn't have a good source for Saturn controller ports. A couple of days ago I decided to nix the controller port all together and just wire an RJ45 cable directly to my adapter PCB. Since I wasn't using Saturn ports anymore I decided to switch to a different controller protocol that makes use of the select button so I could use the coin pin on the DB15 connector. I wrote code for the SNES protocol, but ran into some bugs that I still haven't sorted out. I also wrote code for the Playstation controller protocol using an existing arduino library that works beautifully. I think that is the protocol I'm going to stick with for the RJ45 adapter.
Here is the prototype PCB, It's small enough to fit inside of the DB15 backshell for a very clean look.
I have a newer PCB, which incorporates the additional wiring that you see on my prototype, that I have posted on OSHPark
Edit
Currently I have 3 different flavors of firmware you can run on the board.
Future plans.
Well, that's my project so far, thanks for reading, any feedback would be appreciated.
Hello, I wanted to post this project here since it seem right up this forum's alley.
I have been working on a cable for connecting my MC Cthulhu equipped arcade sticks to my DB15 equipped arcade setup. My original thought was to put together a Sega Saturn controller converter, since that can be built using discrete logic and doesn't require any programming, and then connect it to my MC Cthulhu with a Saturn to RJ45 cable. What I didn't like about this method was that it required 7 ICs to demultiplex 2 controllers, which is kind of ridiculous. Also Saturn controller ports of decent quality are not in production so even though the discrete method works, it still pretty much sucks.
Recently I returned to this project with some fresh ideas. I switched from discrete logic to an ATMEGA328p and wrote up some Sega Saturn Demultiplexer code for it. This worked great and was much more reasonable to build, but I still didn't have a good source for Saturn controller ports. A couple of days ago I decided to nix the controller port all together and just wire an RJ45 cable directly to my adapter PCB. Since I wasn't using Saturn ports anymore I decided to switch to a different controller protocol that makes use of the select button so I could use the coin pin on the DB15 connector. I wrote code for the SNES protocol, but ran into some bugs that I still haven't sorted out. I also wrote code for the Playstation controller protocol using an existing arduino library that works beautifully. I think that is the protocol I'm going to stick with for the RJ45 adapter.
Here is the prototype PCB, It's small enough to fit inside of the DB15 backshell for a very clean look.
I have a newer PCB, which incorporates the additional wiring that you see on my prototype, that I have posted on OSHPark
Edit
Currently I have 3 different flavors of firmware you can run on the board.
- Sega Saturn mode: Works great with the Retro Board, doesn't support the select button natively, but does support select via button combination (START + K1 + K2 + K3)
- SNES mode: Fully working in MC Cthulhu. Works with Brook retro boards also, but "Brook fix" mode has to be enabled or else the adapter will occasionally drop held inputs. Brook fix adds 1/2 of a frame of lag.
- Playstation mode: Works on Mc Cthulhu only. Has no bugs to speak of but only works on the MC Cthulhu, not the Retro Board or PS360+. This may change in the future.
- The DB15 end of this board follows the same pinout as Undamned uses for the USB to DB15 adapter.
- The cable end has each pad labelled following the MC Cthulhu naming convention. The pad layout on the board also matches the Sega Saturn connector layout since that's what the board was originally designed for.
Future plans.
I'd like to add switchable button maps for NEO-GEO or normal 6 button operation. Preferably these would be toggled by holding certain button combinations.Done!A more ambitious feature I'd like to add is fully customizable on the fly button remapping, but that is probably going to take some time to figure out.Done!
Well, that's my project so far, thanks for reading, any feedback would be appreciated.
Last edited: