marcriera / ddgo-controller-docs

Collection of technical information regarding controllers for the Densha de GO! series.
https://marcriera.github.io/ddgo-controller-docs
17 stars 3 forks source link

Re-checking compatibility of 2-handle PS1 controller on PS2 titles #11

Open putnam opened 1 year ago

putnam commented 1 year ago

Hi, can you confirm the 2-handle PS1 controller should actually work in DDG 3 and Shinkansen for the PS2? I don't see any menu entries to enable it; is it meant to be in a specific port while you use a controller on another? I tried both DualShock+DDG and DDG+DualShock and neither seemed to work. The controller works fine on the PS1 titles. What am I missing?

There's a very old thread here with some compatibility discussion: https://www.tapatalk.com/groups/densha_de_go_forums/compatility-list-of-all-the-controllers-t400.html

They say only the Type 2 works on those PS2 titles, and the Type 1 only works on PS1 titles.

Maybe there's a setting or something I am missing?

marcriera commented 1 year ago

Hello! Both DDG 3 and Shinkansen support the PS1 controllers natively. No cheats/second controller are needed (that's why they appear as "Native" instead of "Unofficial" like the later games).

You should plug the PS1 controller to port 1 and nothing to port 2 (just in case) and it should work directly. In DDG 3 there's actually a setting to change the controller type in the options, but it's just for changing between one handle, two handle and mamecon. Try moving the handles on the main menu, does the game react at all?

putnam commented 1 year ago

Thanks for your reply! So, poking around I get menu interaction on Shinkansen, but I can't proceed by selecting anything. If I manually start the game with a controller and then attach the PS1 DDG controller, then it works OK. Is the typical selection button Start? A/B/C? Could it be one of my buttons?

marcriera commented 1 year ago

I've just tested Shinkansen with my mamecon. Power handle for selecting menu options, C to accept, B to cancel. There's a setting in the game's options, just like DDG 3, to define the specific controller model so the menus have the correct icons.

putnam commented 1 year ago

Thanks. Something may be wonky on my end. Looking at the technical docs, I see the state of the brake/power is effectively a bitmask. I opened the game in an emulator to try to reproduce there. I know I need to have up+down held for the game to behave like a controller is connected. Is there some other state that the game needs for A/B/C to behave? Start worked OK in the emulator, but the cross/square/circle cease to function whenever up+down are held. It doesn't matter if I have up+down held in software, on a keyboard, on a gamepad, whatever. Maybe it is a limitation of PCSX2. I can definitely browse the menu using the "bitmask" power settings with triangle/left/right though.

marcriera commented 1 year ago

The Up+Down combo is the only check the games run. Internally, the PS1 DDG controllers are a PS1 digital controller, where Start and Select are mapped normally; A, B and C are mapped to Square, Cross and Circle, respectively; the power handle uses a bitmask on Left, Right and Triangle; and the brake handle uses a bitmask on L1, L2, R1 and R2. It's physically (not electrically) impossible to press Up+Down on a regular digital controller, that's why it's used. Nothing else is checked.

Now that you mention an emulator, there are a couple of places where the issue could be:

  1. If the controller works fine on real PS1 or PS2 hardware, the controller is probably fine. If it works fine on a PS1 but not on a PS2 or viceversa, it's probably an issue on that console.
  2. If the controller works fine on real PS1 or PS2 hardware but doesn't work on a PC/device with an emulator, it's an issue with either the emulator or the USB adapter. Check that the buttons are mapped correctly in the settings. I'm at least aware that Mednafen for the PS1 doesn't allow simultaneous Up+Down presses, and that many PS1/PS2 to USB adapters don't allow it either and disable one of the buttons. I haven't tested the controllers with PCSX2 yet.

I hope this helps you find the issue!

putnam commented 1 year ago

Thanks so much for all the info and your docs. I definitely left out a good bit of context I should have mentioned. I am helping a friend setup a train-themed stream and they picked up one of the PS1 two-handle controllers. The problem is he wants to use emulators, and he has a basic USB adapter. As you already guessed, he has one that maps the d-pad to axes and it's not configurable.

So, to help him, I built my own USB adapter using an STM32, and although I don't have a controller here, I faked it by having the STM32 hold down Up+Down and otherwise passed through a real controller to the emulator. I was manually inputting the "chords" to trigger various power/brake states. It worked in Duckstation with the PS1 titles just fine, and it also worked fine in PCSX2 with DDG3. The problem is in DDG Shinkansen on PS2 -- while scrolling in the menus works with the controller, the C button (circle) just doesn't want to work.

In the meantime I sent him a Raphnet USB adapter to avoid having to clean up my ugly bench project. Those adapters can be configured to map the d-pad to discrete buttons, so no arduino/stm32 setup is required. He confirmed that the results are the same as what I experienced here with my homebuilt adapter. I feel like this could be very useful in your docs for the old controllers -- the Raphnet adapter is designed for this, and is available to buy online for a not-horrible price.

I appreciate you confirming the mamecon works on the PS2 with Shinkansen. I feel like this narrows it down specifically to PCSX2, so I'll have to bark up that tree next. It's out of scope here I suppose, but I'll update with my findings if they are useful for you. I get the sense there may be internal limitations with certain button combinations in PCSX2.

putnam commented 1 year ago

By the way, a friend of mine in Tokyo picked up DDG3 and Shinkansen for me specifically to scan the manuals (I wondered if there was anything special I had to do for the old controller to work right). If you'd like the manual scans let me know, though I'm sure you have physical copies of probably every train game in existence!

marcriera commented 1 year ago

Good! I'll run some tests with DDG Shinkansen in PCSX2 to try to find anything odd there. The fact that DDG3 works but Shinkansen has issues is suspicious, it may be a game-specific problem.

By the way, a friend of mine in Tokyo picked up DDG3 and Shinkansen for me specifically to scan the manuals (I wondered if there was anything special I had to do for the old controller to work right). If you'd like the manual scans let me know, though I'm sure you have physical copies of probably every train game in existence!

Thanks, I have both games with the manuals. Not even close to every single train game, but a good part... ;)

marcriera commented 1 year ago

Okay, so I have good news and bad news:

For the time being, I'm afraid you'll have to use a regular controller to navigate the menus and change to the controller once in game.