Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Please add support for PS1 NegCon #3

Open
rmsa5 opened this issue Mar 20, 2023 · 30 comments
Open

Please add support for PS1 NegCon #3

rmsa5 opened this issue Mar 20, 2023 · 30 comments

Comments

@rmsa5
Copy link

rmsa5 commented Mar 20, 2023

Hi there,
I know my request is really specific. I love p1 and there are a couple of games (notably wipeout) that support this unique NegCon Namco controller. I have a couple PSX2USB adapters:

It would be absolutely marvelous vixen support this controller.

I am no dev so I can't help with the actual dev, but am pretty tech savvy and will very happily collaborate to capture USB & debug in anyway if it can help make this feature a reality!

Many thanks in advance for even considering my request :)

@rmsa5 rmsa5 changed the title Please add support for NegCon via Raphnet PSX2USB controller Please add support for PS1 NegCon Mar 20, 2023
@isage
Copy link
Owner

isage commented Mar 20, 2023

If you know how to capture HID data (usbhid-dump might help)
What i need:

  1. Usb VID/PID
  2. Device HID descriptor
  3. HID reports for all buttons:
    don't press anything, capture HID stream, write down report.
    press and hold left, capture HID stream, write down report and button you were holding
    repeat for all buttons

@rmsa5
Copy link
Author

rmsa5 commented Mar 26, 2023

Here is a compilation of the outputs. Let me know if I can provide further info !
https://docs.google.com/spreadsheets/d/1--BC_0oofCTlyytQcqCfWWGlvi-8zLdPO_FAxIEUBGk/edit?usp=sharing

gamepad-tester website also works. If you want we can have a live chat and I can share my screen if it’s clearer :)

@isage
Copy link
Owner

isage commented Mar 26, 2023

looks good. but given how cursed that controller is, how would you map it to vita layout?
A/B/1/2 to cross/circle/square/triangle?
twist to left analog X?
L/R to L/R?

@rmsa5
Copy link
Author

rmsa5 commented Mar 26, 2023

looks good. but given how cursed that controller is, how would you map it to vita layout?
A/B/1/2 to cross/circle/square/triangle?
twist to left analog X?
L/R to L/R?

Didn’t know this controller was that cursed Ô_Ô

If you don’t mind my asking a few questions:

  • The PS1 had games that actually supported the NegCon controller as a specific type of controller, and if I am not mistaken (since I’ve never been able to try my NegCon on real PS1 hardware) would be able to map these unusual I/II/R analog buttons to for instance Accelerator. I wonder if the Adrenaline/PSP’s PS1 emulator has hidden support for this funky controller and if it would be possible to channel real NegCon inputs to a “NegCon mode enabled” PS1 game emulated in Adrenaline.

  • I haven’t tried vixen yet since I don’t have the Y cable required (need to find where to buy one). I remember reVita plugin providing the ability to arbitrarily map buttons and axis from an external gamepad to a simulated vita input. Wouldn’t it be possible to work in a similar way, i.e. expose to the user the 4 axes + 8 buttons of this NegCon pad, and let the user map to vita inputs the most relevant way depending on the game? Actually out of genuine curiosity, why did you start from scratch building Vixen to do both hardware driving + funneling it to vita input simulation, rather than follow up on the modular approach of MERLev’s reVita to do the mapping, and extra plugins such as ds34vita and x1Vita to do the HW driver part?

  • As a default map, I’d say (NegCon -> Vita):
    dpad -> dpad
    start -> start
    L -> L
    R -> R
    I -> Cross
    II -> Square
    A -> circle
    B -> triangle
    twist axis -> left joystick x-axis
    Start + A -> Select (<- here for instance, reVita would already be able to achieve this)

@isage
Copy link
Owner

isage commented Mar 26, 2023

you can use revita along with vixen.
As for "from scratch part", ds34vita and x1vita and others target bluetooth controllers. They also do the same - parse bt packets into vita controls

As for negcon support in adrenaline - i don't think it cares (or ps1 cares), as far as i understand you just select that controller type in game. Which actually gives me an idea - I'll check how ds buttons are mapped if you select negcon and map negcon accordingly
nvm, did some tests, and it looks like games have some way to auto-detect negcon

Also, given how I, II and L buttons are analog, we can't really map them to traditional buttons, as we'll lose analog inputs

@isage
Copy link
Owner

isage commented Mar 27, 2023

@rmsa5
Copy link
Author

rmsa5 commented Mar 27, 2023

Also, given how I, II and L buttons are analog, we can't really map them to traditional buttons, as we'll lose analog inputs

How are DS4 joypad L2/R2 analog triggers dealt with currently? Are they just dropped? or are they mapped/mappable to virtual vita inputs (either mimmicking real buttons, or virtual front touch / back touch buttons like in Adrenaline) ?

@rmsa5
Copy link
Author

rmsa5 commented Mar 27, 2023

@isage by the way, is the Y-cable you mention on your other repo something that can be bought somewhere (amazon...) or does it have to be custom built? I don't have the skills or equipment to build my own (and frankly don't understand most of the technical details required)

@rmsa5
Copy link
Author

rmsa5 commented Mar 27, 2023

@isage if ever you have time to spare, I'd really like a chat to better understand how external joypad support (either bluetooth or wired) is achieved, vs the mapping to vita inputs? I can't help but wonder why these 2 tasks are not decorrelated from one each other, with numerous HW drivers progressively adding wider HW support and presents to some kind of "universal mapper" the set of mappable analog axis and digital buttons (that may vary from input device to another), and that "universal mapper" that would be able to map any axis/button to any vita input(s) like what reVita remapping does.

@isage
Copy link
Owner

isage commented Mar 27, 2023

@isage by the way, is the Y-cable you mention on your other repo something that can be bought somewhere (amazon...) or does it have to be custom built? I don't have the skills or equipment to build my own (and frankly don't understand most of the technical details required)

I think i saw something on amazon, but can't find rn.

@isage
Copy link
Owner

isage commented Mar 27, 2023

@isage if ever you have time to spare, I'd really like a chat to better understand how external joypad support (either bluetooth or wired) is achieved, vs the mapping to vita inputs? I can't help but wonder why these 2 tasks are not decorrelated from one each other, with numerous HW drivers progressively adding wider HW support and presents to some kind of "universal mapper" the set of mappable analog axis and digital buttons (that may vary from input device to another), and that "universal mapper" that would be able to map any axis/button to any vita input(s) like what reVita remapping does.

because that would require some external mapper, some well-established api and would complicate things.. and we already have reVita
all input plugins work by either calling vita input emulation api (this works only for first gamepad) or by hooking vita input functions, so when app tries to read input - input plugin overwrites input values. reVita works same way - takes original input report and overwrites it according to mappings.

@isage
Copy link
Owner

isage commented Mar 27, 2023

btw, any chance you have original psx dualshock?
It's better to support it (well, rather raphnet psx to usb completely), and negcon would/should be supported automatically

@rmsa5
Copy link
Author

rmsa5 commented Mar 27, 2023

btw, any chance you have original psx dualshock? It's better to support it (well, rather raphnet psx to usb completely), and negcon would/should be supported automatically

All my original PS1 gear is out of reach currently :( what would you be needing in the event I get hold of one?

@isage
Copy link
Owner

isage commented Mar 27, 2023

Same stuff you did for negcon (just reports part)

@rmsa5
Copy link
Author

rmsa5 commented Mar 27, 2023

I'll update you if/when I get hold of one. I'm pretty sure I only have the original non-digital gray one left :( I also had the SCPH-1150 pre-dualshock pad, but long gone too I think.

@isage
Copy link
Owner

isage commented Mar 27, 2023

Meanwhile i've asked raphnet if he can provide dualshock to HID mapping PSXtoUSB uses

@isage
Copy link
Owner

isage commented Mar 28, 2023

Got packet description from Raphael so i'll go with implementing it.
It turns out, though, NegCon is slightly different: dualshock has "digital" left trigger, while negcon uses analog. So, negcon L maps to L2.
I can work with that, though.

@isage
Copy link
Owner

isage commented Jul 29, 2023

can you check with latest release?

@techsrus
Copy link

techsrus commented Sep 6, 2023

How can the adapter pair without a PS button?

@isage
Copy link
Owner

isage commented Sep 6, 2023

How can the adapter pair without a PS button?

Pair with what?

@techsrus
Copy link

techsrus commented Sep 6, 2023

I was hoping to help here since I believe I have all the necessary components. I tried connecting my controllers with the raphnet adapter using vixen.skprx v1.4.1 on my PSTV but it doesn't seem to pair.

@isage
Copy link
Owner

isage commented Sep 6, 2023

There's nothing to pair, it's wired

@techsrus
Copy link

techsrus commented Sep 6, 2023

Ah. I have a PS2 to PS3 adapter wired adapter that I use that I still need to press the PS button on the adapter to start moving around. Wrong assumption, sorry.

@techsrus
Copy link

techsrus commented Sep 6, 2023

As for the controllers I tried connecting, I tried the original playstation controller, the dualshock 1 and 2, and the negcon (npc-101).

@techsrus
Copy link

techsrus commented Sep 6, 2023

vixen.txt
DualShock 1 via raphnet PS1/PS2 controller to USB adapter. I was wondering why at first I was getting no output, it's because I had to comment out the vixen plugin. For "PS Button" during the test I pressed the "Analog" button on the controller.

@isage
Copy link
Owner

isage commented Sep 9, 2023

Report seems the same as Raphnet PSX to USB (even same VID/PID).
It doesn't work at all with latest release of vixen?

@techsrus
Copy link

techsrus commented Sep 9, 2023

I've tried it with both regular and _ds3 versions and with both there is no output and it does not take up a controller slot. If I turn on my real DS3 afterwards it still takes up controller slot 1.

@techsrus
Copy link

Is there anything additional I could do to help in testing to get this to work?

@techsrus
Copy link

lsusb.txt
dumped the vita-lsusb for the negcon connected to the raphnet psx to usb adapter

@techsrus
Copy link

techsrus commented Nov 7, 2024

When I connect the adapter, the cursor hooks to the left, and when I look through the input tester from reVita (Developer>Show buttons) I notice that the left and right analog sticks get set to 0,0 instead of staying at 128,128.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants