shfty-embedded / negcon-ps3-pad

Firmware for a configurable Teensyduino-powered DirectInput NeGcon adapter.
5 stars 1 forks source link

Twist, I, and II axis not working. #2

Open SolubleShoe opened 5 years ago

SolubleShoe commented 5 years ago

All the other buttons and the analogue L-trigger are working according to the debug output, however the Twist, I, and II remain unresponsive. I have tried all of the available profiles and nothing changes.

Hardware wise there are some differences, I am using a Teensy 3.2 rather then a 3.1, and due to a slight mishap while soldering I have DAT, CMD, and ATT connected to pins 9, 8, and 7 respectively. I have changed NCPins.h accordingly.

I also ran into the same issues as #1 but putting all the .cpp and .h files in the same directory as the .ino file and changing all the file paths in the code to reflect this solved that issue and allowed me to flash the program onto my Teensy without any trouble

My NeGcon itself is in working order and testing with a regular adapter shows no issues with the buttons or the twist axis

image This is the debug output while twisting the controller and holding the buttons and triggers about halfway down, the L-axis is clearly working, but there is no change on the other axis.

SolubleShoe commented 5 years ago

Update: After rebooting my PC, the buttons and D-pad have stopped working in the Windows own game controller setup, before there was a indicator for the D-pad and multiple (albeit nonfunctional) analogue axis. Now all that is gone and not even the buttons seem to work. The "Calibrate" option is also greyed out. image

frmelle commented 4 years ago

Same here : I corrected the code to have it compile on Teensy 3.1 but I can't get it work. I Don't see the twits or analog buttons working :(

Does anyone can help as I would really be thrilled to get my old NegCon working for my retrogaming setup using retropie on x64 PC hardware !

Thank-you.

PS: if you ask, I can publish the corrected (compilation is OK) code.

frmelle commented 4 years ago

Found it ! It is working if you change a single line in NCConfigManager.h !

Was : void RegisterModeConfig(NCModeConfig Config, EConfigDirection Direction, bool WriteEEPROM = false);

Should be changed to : void RegisterModeConfig(NCModeConfig Config, EConfigDirection Direction, bool WriteEEPROM = true);

So that default mode settings can be stored to EEPROM and then recalled using START + DPad arrow of your choice.