What's new

Arthrimus's DB15 Controller Adapters. PSX, SATURN, SNES.

Arrived today! Dude, the shell looks awesome in person, very nice work. I'm also happy to report that it does indeed work with the Neo Geo Pad 2!
That's excellent news. I'll add it to the compatibility list.

As for the shell, thanks, I'm glad you like it. I'm really happy with how it turned out. It was the first design I've done in Fusion360 and I think it turned out better than anything I've done before when I was using Sketchup. It also doesn't hurt that I am printing with a Bambu P1S now. That thing is an absolute unit.
 
So I have been searching for a place that I can order the Sega Saturn connector by it's self instead of harvesting extension cables like I have been up to this point, and I found that there is finally an Aliexpress seller that is selling just the Saturn controller sockets by themselves. If anyone is building their own adapters this is a much better option than hacking up extension cables.

https://www.aliexpress.us/item/3256803862477703.html

I ordered some of these sockets a couple of weeks ago and they arrived yesterday, so I have the Saturn adapters back in stock today!

https://arthrimus.com/product/saturn-to-db15-controller-adapter/
 
Hey guys, I finally got around to updating the PSX to DB15 code to fix a timing issue that prevented HORI controllers from working with the DB15 adapter. If you have one of my adapters you can download this firmware hex file here and program it using a USBASP and AVRDUDESS. I'm hoping that a few people would be willing to update and test their collection of PS1 and PS2 controllers to help me make sure that this fix didn't break something else. If you would like to update please follow these directions below.

In order to program the adapter you will need to remove the 3D printed shell and bridge the jumper labeled J1. Then you will need to hook up the ISP pins from the DB15 connector following the pinout printed on the back of the PCB to the programming header of the USBASP.

In AVRDUDESS all you need to do is load the new hex file into the "Flash" field, hit "Detect" on the MCU field to load the correct MCU option for your board, and then make sure that all of the fuse settings match the image I have provided below. After all of that you can simply hit the program button and the new firmware will be installed.

PSX to DB15 AVRDUDESS.jpg


So far I have tested the new firmware on all of the official Sony PS1 and PS2 controller models, the HORI Real Arcade Pro PS1 arcade stick, the Brook Retro Board, and the MC Cthulhu. All of these are working properly with the update, but some of the others on the compatibility list cannot be confirmed since I don't have those particular controllers on hand. Namely the SNK NEOGEO pad, and the Namco arcade stick.
 
Sorry to double post, but stumbled across this post about the @beharius Hayabusa Supergun a while ago and I've been meaning to investigate the latency on my adapters since they use my code. Today I set up my oscilloscope to do some latency measurements and I found that there is indeed an issue with the code that only affects my Playstation adapter. Normally the latency should measure between 0-16ms, with 16ms being the absolute maximum. The possible 16ms penalty is unavoidable and inherent to all of my adapters because of the 60hz polling rate of the controllers.

After testing the Saturn and SNES adapters I found that they all fell within the 0-16ms range, but the Playstation adapter was returning latency numbers of 16-32ms which is very bad. Obviously something was wrong with the code. I started digging through it, and I found an issue with the order of operations in the Playstation code.

Each cycle the Playstation adapter needs to rapidly pulse the clock line of the Playstation controller, and read out the serial data to determine which buttons are pushed, then execute the rest of the code to handle button remapping, auto fire, and then output to the DB15 connector. Somewhere in this process there has to be a delay to take up the extra time until the next cycle so the controller stays locked to the 60hz polling rate. Well it turns out that I mistakenly put that delay between the step where the inputs are read, and the steps where the outputs are set. This added an additional 16ms penalty to every input, meaning that the worst case scenario could be a full 32ms of latency, which is what @RetroRGB measured in his review of the Hayabusa Supergun.

I have now moved the delay to an area of the code that executes after all of the inputs and outputs are handled in each cycle, which has finally brought the Playstation adapter's latency in line with my other adapters.

If you have one and want to update the firmware, I've posted the updated hex file here. You can update it using a usbasp programmer and following the pinout labeled on the bottom of the DB15 port on the adapter PCB. You also need to solder the jumper J1 while you are programming it. If you would rather send your adapter to me to be updated I have now listed a firmware update option on my website to cover the shipping cost.
 
Last edited:
Are the stl files for the cases available or are the proprietary. I have the Saturn one which can be modified but I have never gotten around to it.

Hey guys, I finally got around to updating the PSX to DB15 code to fix a timing issue that prevented HORI controllers from working with the DB15 adapter. If you have one of my adapters you can download this firmware hex file here and program it using a USBASP and AVRDUDESS. I'm hoping that a few people would be willing to update and test their collection of PS1 and PS2 controllers to help me make sure that this fix didn't break something else. If you would like to update please follow these directions below.

In order to program the adapter you will need to remove the 3D printed shell and bridge the jumper labeled J1. Then you will need to hook up the ISP pins from the DB15 connector following the pinout printed on the back of the PCB to the programming header of the USBASP.

In AVRDUDESS all you need to do is load the new hex file into the "Flash" field, hit "Detect" on the MCU field to load the correct MCU option for your board, and then make sure that all of the fuse settings match the image I have provided below. After all of that you can simply hit the program button and the new firmware will be installed.

PSX to DB15 AVRDUDESS.jpg


So far I have tested the new firmware on all of the official Sony PS1 and PS2 controller models, the HORI Real Arcade Pro PS1 arcade stick, the Brook Retro Board, and the MC Cthulhu. All of these are working properly with the update, but some of the others on the compatibility list cannot be confirmed since I don't have those particular controllers on hand. Namely the SNK NEOGEO pad, and the Namco arcade stick.

I built 8 of these for friends (2 each for 3 friends and 2 for me) and the code is solid. I think this may be the only place you mention fuse values. I just sort of stumbled across it today after working them out a few months ago when i built the PS adapters. They are not too hard to work out if you have done this a bit but they may be worth putting in the GitHub somewhere for people who haven't.
I am just wondering if I can use USBBlaster programmer instead of USBASP

Short answer is buy a usbasp for $3 from Aliexpress or fleaBay.

Long answer is I think the Atmega128 can be programmed in JTAG but it requires that you give up 4 I/O pins which may or may not be used by the code and there may or may not be a way to access them via the db15 connection. Then you cant be sure that a 128 is what was used in you adapter i built all mine with Atmega88 becausei had them on hand. Alternatively you probably could with a daisy chain configuration and a bit of inventive thought but that would require a $20 fpga that you don't need

Buy a usbasp for $3.
 
Last edited:
Are the stl files for the cases available or are the proprietary. I have the Saturn one which can be modified but I have never gotten around to it.
Ok I ended up getting around to it, because I was getting bugged by three friends I made some psx and snes adapters for. It was easier to start from scratch. For thr psx version I followed the design language of the psx controller plug and made a snap together case rather than a screw together. Not as pretty as Arthrimus two colour case but it does the job. Happy to make the stl files available if anyone is interested.
 

Attachments

  • 20240927_232446.jpg
    20240927_232446.jpg
    208.9 KB · Views: 54
  • 20240927_231736.jpg
    20240927_231736.jpg
    138.1 KB · Views: 54
Back
Top