o0Zz / sys-con

Nintendo Switch sysmodule that allows support for third-party controllers (XBox, PSX, PC, ...)
GNU General Public License v3.0
74 stars 6 forks source link

Hori battlepad [0f0d-00dc] home button #5

Closed texita closed 5 months ago

texita commented 5 months ago

This is the pad: https://stores.horiusa.com/battle-pad-zelda-for-nintendo-switch/ Pad sheet: https://drive.google.com/file/d/1MtEB_cYm9Ju0I_w4vi6G1QiJRsrWL8BP/view?pli=1

The pad is already present in the original config.ini downloaded [0f0d-00dc] ;HORIPAD FPS for Nintendo Switch profile=xbox360

i solved the inverted buttons problem (swap A with B, swap X with Y) changing the xbox360 configuration

[xbox360] driver=xbox360 B=2 A=1 Y=4 X=3 L=5 R=6 ZL=0 ZR=0 minus=7 plus=8

But i can't have the home button working, in the original sys-con it was working, the pad was loaded with the x360 drivers aswell.

it would be nice to have the screenshot button working aswell, but i think it will never work if the pad is loaded with x360 drivers.

maybe like Jayacheal said here https://github.com/o0Zz/sys-con/issues/2#issue-2334445562 a feature to load the orginal drivers? So even the rapid fire and all the functions will work :)

o0Zz commented 5 months ago

Yes absolutly I think it will be better to ignore this controller like mentioned in #2. This is a feature I'm working on. Regarding home button it's a general issue I missed to implement it. I did a patch, so it will be available in v1.0.3

o0Zz commented 5 months ago

Beside that i'm interrested to know how many buttons are detected on windows ? Do you have 11 buttons or more ?

texita commented 5 months ago

IMG_20240606_133803.jpg

10 buttons, where ZL and ZR are the Z axis and the home button has no number, but is working. Screenshot button not working i can't even map in emulators control settings. On the nintendo switch with switch drivers it's working.

Yes absolutly I think it will be better to ignore this controller like mentioned in https://github.com/o0Zz/sys-con/issues/2. This is a feature I'm working on.

it will be good to have both, something like profile=orginal or profile=xbox360 is it even possible to map the buttons only for a controller without using the profile? I mean, if wanna map buttons only for the [0f0d-00dc] seen as xbox360 and not for a real xbox360 gamepad that is using the same drivers?

I explain why i'm asking this, it's a bit silly but still...: As you can see in the pad sheet, this controller has got ZL and ZR physically inverted with L and Z, they did by design. If you wanna swap the buttons, you have to plug in the controller holding down ZL and ZR, buttons will be inverted BUT the led will stay turned on in a very bright red ligh, where we play smash bros we got some of these pads, and is pretty annoying 😅 so i fixed that with the old sys-con by swapping ZL and ZR with L and R on the config file without changing the controls settings in the game that if you know, change for every player and controller that you add 😂

o0Zz commented 5 months ago

Thank you for the information. Yes I think both will be possible at the end.

For your question yes its possible, indeed you are right the documentation is not clear on this point, I just updated it -> https://github.com/o0Zz/sys-con?tab=readme-ov-file#config

Let me know if it's more clear.

o0Zz commented 5 months ago

The original issue "Home" button has been fixed in the latest release -> https://github.com/o0Zz/sys-con/releases/tag/1.1.0 If you have another issue please open a new ticket. Thank you

texita commented 3 months ago

After a lot of testing this controller in discovery_mode=0 and discovery_mode=1 i think that it's should be better to change the default configuration of this pad to respect the hardware buttons to have a better continuity with all the switch, with atmosphere and originals , at the end it's better to relay on the controller original feature to swap L with ZL and R with ZR. brave_ICsGBXhdbu

So i changed the config like this:

[0f0d-00c1] ;Hori battlepad (switch mode) b=2 a=3 x=4 y=1 l=7 5 r=8 6 zl=5 7 zr=6 8 minus=9 plus=10 capture=14 home=13 lstick_click=11 rstick_click=12

but i've got a problem when this pad get recognized as xbox360, i can't map L or R they are always seen as ZL and ZR.

this is the configuration i've tried first [0f0d-00dc] ;HORIPAD FPS for Nintendo Switch profile=xbox360 B=2 A=1 Y=4 X=3 L=0 R=0 ZL=5 ZR=6

also tryed L=Rx R=Ry

but nothing changed, what i'm doing wrong for you?

o0Zz commented 2 months ago

Regarding first comment, ok we can switch Zl / L Zr/R. I don't really mind.

Regarding 2nd issue, could you provide the logs in trace mode (log_level=0) and could you press L / R and release it then press Zl / ZR then release (Do not forget the polling frequency is 500ms thus stay pressed for ~1s). I will check in logs if the data provided by the controller are the same for ZL/ZR and L/R.

o0Zz commented 2 months ago

Ok I think I understood the problem, could you try this:

ZL=5,None
ZR=6,None
L=Rx
R=Ry

I think you are using the sys-con version I sent you yesterday (1.3.0+6), this configuration come with a big change and I think you are in a corner case. Let me know if it's better

texita commented 2 months ago

it's working with your configuration! (and yes, i'm using 1.3.0+6) Yes, it was not a real problem, but had to use the pad toggle to many times between consoles, i think by default is the right thing to match the hardware layout (like we did for the playstation pads) anyway, in the end these are the configs for this pad:

[0f0d-00c1] ;Hori battlepad (switch mode) b=2 a=3 x=4 y=1 l=5 r=6 zl=7 zr=8 minus=9 plus=10 capture=14 home=13 lstick_click=11 rstick_click=12

[0f0d-00dc] ;HORIPAD FPS for Nintendo Switch profile=xbox360 B=2 A=1 Y=4 X=3 ZL=5,None ZR=6,None L=Rx R=Ry

o0Zz commented 2 months ago

Ok great, I updated these controllers. Regarding the "None", in fact this is a bug introduced in the last versions. Could you try this version:

sys-con-1.3.0+10-ATMOSPHERE-1.7.x.zip

This is the same version you have with a bug fix and the config.ini updated with your latest changes (But without the need of the ",None") Let me know if you get the same result.

texita commented 2 months ago

Tested 1.3.0+10, i confirm it's working without "None"