RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login
    Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

    Moonlight does not find controller mapping for a controller

    Scheduled Pinned Locked Moved Help and Support
    moonlightcontrollermapnot found
    2 Posts 1 Posters 1.1k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      Sergorov
      last edited by Sergorov

      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.

      Didn't we grow out of consoles by 1992?

      1 Reply Last reply Reply Quote 0
      • S
        Sergorov
        last edited by Sergorov

        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
        

        Didn't we grow out of consoles by 1992?

        1 Reply Last reply Reply Quote 0
        • First post
          Last post

        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.