I ran GamepadTool in order to generate a mapping for a gamepad I would like to use with Pico-8. Or rather, it already works with Pico-8, but I want to override that mapping. So I used the tool, generated the mapping and placed it in sdl_controllers.txt as instructed in the manual. log.txt says it added the mapping happily. However, no matter how I change the button mappings in this file, Pico-8 responds to this controller as though there is no new mapping.
I've tried the same on my windows 7 pc as well as my raspberry pi, with the same effect. (though I only checked log.txt on the windows box).
I actually just noticed in pico-8's log, that it auto-detected my controller:
Reading controller mappings: C:/Users/derek/AppData/Roaming/pico-8/sdl_controllers.txt added controller mapping: 0300000000f000000300000000000000,RetroUSB.com RetroPad,platform:Windows,a:b2,b:b3,x:b0,y:b1,dpup:-a1,dpdown:+a1,dpleft:-a0,dpright:+a0, searching for joysticks found 1 joysticks Controller 0: RetroUSB.com RetroPad Number of Axes: 2 Number of Buttons: 8 Number of Balls: 0 Mapping: 00f00300000000000000504944564944,RetroUSB.com RetroPad,a:b1,b:b5,x:b0,y:b4,back:b2,start:b3,leftshoulder:b6,rightshoulder:b7,leftx:a0,lefty:a1,platform:Windows,
The mapping at the bottom there is pico-8 detecting and auto-configuring my controller. The mapping originally generated by GamepadTool apparently was incorrect (shown at the top of my log, loaded from sdl_controllers.txt). So I pasted in the mapping shown at the bottom there into sdl_controllers.txt, then I fiddled with the button mappings in a text editor---this works! Going to try the same sdl_controllers.txt on my pi now and see how I fare.
I am on my raspberry pi now and...I had to do the same process of inspecting log.txt for the auto mapping, pasting that into sdl_controllers.txt, and then fiddling with the mapping from there. On the pi, the controller guid was different. Not what I would have expected. I assumed sdl2 mappings were some kind of standardized thing.
Anyway I now have an nes controller set up with B being O and A being X like it should be!
The manual currently says:
To generate a custom mapping string for your controller, use either the controllermap program that comes with SDL2, or try http://www.generalarcade.com/gamepadtool/
However, only the mappings shown in pico-8's log.txt file worked for me at all, pasted into sdl_controllers.txt (and then modified as desired). I would recommend adding this approach as a recommendation in the manual.
[Please log in to post a comment]