It may be my controllers, but I have two of the same RetroLink (NES style) controllers plugged in. Pressing right on the first controller triggers down for the second player, pressing down on the first controller triggers left for the second player, and pressing left on the first controller triggers key 2 (Q) for the second player.
I set up the sdl controller text file using http://www.generalarcade.com/gamepadtool/ and the output gave me the following text: bd1200000000000015d0000000000000,RetroLink NES,a:b1,b:b0,back:b8,start:b9,leftx:a0,lefty:a1,platform:Mac OS X,
I tested these results using the API demo cartridge.
Okay, the tool gets you part of the way. You'll want to save that initial value, after that try this: RetroLink NES Classic,a:b2,b:b1,back:b8,start:b9,leftx:a3,lefty:a4,platform:Windows,
I came upon this via trial and error. Seems to be working for me now. I'm doing horribly at picoracer as god intended.
Okay, new issue.
I got this controller because my other controller couldn't go diagonally up and to the left. All other diagonals work. Because of this, games like Dusk Child were all but impossible. The second board of Marballs was likewise impossible. Do I have to update something on my Windows 7 machine? How can two controllers from different companies and different decades not be able to go up and to the left?
Thanks in advance for any insights.
Dang it. I bought two USB Snes controllers and I too have the left+up diagonal not working issue you mentoined, jbump. D:
I think this might be a bug in Pico8 or SDL2 as Windows's game controller visualizer displays that direction just fine.
I'll keep looking.
EDIT: Oh dear god... I created a test program with SDL2 and it seems that the controller somehow has 5 axes... Axis #4 is used for up and down, and axes 0...3 are left and right, and have always equal values. This is one strange controller but I don't think that should affect how the diagonals function.
EDIT2: Indeed I was trivially able to read axis input from axes 0 and 4 like I configured with GamepadTool. Could the issue be with the neutral position being at -256? (When a direction is pressed the values are -32786 or 32787, so that "dead zone" doesn't seem that large.)
EDIT3: When reading SDL's input via SDL_GameController events (instead of JoyStick events) the axes seem to work exactly like they should. This would lead me to believe that there might be a bug in Pico8 where having negative values for both "leftx" and "lefty" (0 and 1) axes somehow cancels them out.
This is the horrible program I created to make sense of the situation.
Thanks for excellent reports. I've just discovered the cause of the up-left bug and it will be fixed in 0.1.4. It was a noob overflow mistake. I was doing:
if ((jxjx) + (jyjy) > DEADZONE*DEADZONE)
..which overflows when and only both jx and jy are -32768.
Ugh. I got a new laptop with Windows 10 and DLed the latest version. Now my RetroLink NES style USB controller isn't working properly. AAAHHH!! Anyone having luck with this controller now? Any chance I can get an SDL string?
Thanks in advance.
[Please log in to post a comment]