Moonlight does not find controller mapping for a controller
-
I have recently discovered and set up Moonlight (following this guide: https://retropie.org.uk/forum/topic/19872/moonlight-request-for-comments-and-testing/) There is just one problem: I didn't get my second controller (GC30) to run. I could swear I had it running before, but since a few days have passed since then I cannot 100% confirm this. It works perfectly well in ES and all emulators, but for some reason Moonlight does not accept the map file for it. In the runcommand-log it says:
No mapping available for msi GC30 (03000000220d0000300c000010010000) on /dev/input/event1
But the mapping quoted above is of course available and has the right code in place. My global.conf looks like this:
# global config file for moonlight input = /dev/input/event0 mapping = /home/pi/msigc30v2.map input = /dev/input/event1 mapping = /home/pi/msigc30.map quitappafter = true
I checked evtest, which gives me
No device specified, trying to scan all of /dev/input/event* Not running as root, no devices may be available. Available devices: /dev/input/event0: msi GC30 V2 /dev/input/event1: msi GC30 Select the device event number [0-1]:
This confirms that the inputs should be matched correctly to the controllers.
This is what the map file looks like.... (I don't think the problem lies there, as it's not even found, but anyway):
03000000220d0000300c000010010000,msi GC30,a:b1,b:b2,x:b0,y:b3,start:b9,guide:b11,back:b8,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7,platform:Linux,
Of course I made sure that the msigc30.map is present in /home/pi/ and it has the same access rights set as msigc30v2.map. So I'm kind of confused how Moonlight can miss the .map file completely?
Looking for alternatives I discovered this thread: https://retropie.org.uk/forum/topic/11225/moonlight-no-mapping-available-for-dev-input-event2-030000005e040000a102000007010000. It's quite old, but I checked if I could find the gamecontrollerdb.txt anyway, to maybe add my GC30 string there. However, I could not locate the file anywhere. Is there any alternative I could try? @hhromic Any ideas what could cause this?
Update:
It's getting weirder the more I work on this.... I have two separate sd-cards for setting up and experimenting with Retropie: one for trying stuff out, one "clean" image for applying the stuff that works. Basically they're almost the same, the experimental might have a few traces of previous testing left. The creepy thing is this: I have copied exactly the same global.conf in the moonlight directory, and exactly the same .map files in the user/pi on both installations. But one of them recognizes the GC30, and chooses to ignore the mapping for the GC30v2, the other one does the opposite. I have copied the files over again, to make absolutely sure they both use the identical setup. But the behaviour remains consistent. They also both log the same "No mapping available" error, but each for the other controller.
On the positive side this seems to confirm to me that both controllers do indeed work with moonlight, that the mappings work as well and that the global.conf works in principal. At least it rules out any potential formatting issues like misconfigured EOL settings (would have been so nice if that was the solution). But why Moonlight will stubbornly ignore the mapping for one randomly selected particular controller still leaves me scratching my head. -
Solution: Posting this in case someone else runs into this problem.
Apparently the simple explanation is that Moonlight can only read one configuration file. So the solution was- copy the controller config strings of both controllers into one single .map file.
- in the global.conf set both controllers to use the same .map file (where all controller mappings are stored)
So my global.conf now looks like this:
# global config file for moonlight input = /dev/input/event0 mapping = /home/pi/msigc302.map input = /dev/input/event1 mapping = /home/pi/msigc302.map quitappafter = true
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.