Reicast - Mapping controllers??? (2020 version). Stuck.
-
Just trying to be kind to the OP here, as I know I wrote a ton here (and it was not well-organized, and some of it is definitely incorrect).
@Plex7 said in Reicast - Mapping controllers??? (2020 version). Stuck.:
I just want to add that with or without evdev_device_id......it magically works. How???
Because reicast is ignoring those evdev* settings that you added, and instead looks at the device.# entries (which are all added automatically). As of recent versions (within the last week, at least), it appears that emu.cfg is meant to be completely auto-generated (and not manually edited). I have 2 controllers working, and I have not edited this file at all. When I first install reicast, I only have one controller configured. So my initial emu.cfg looks like this..
[input] MouseSensitivity = 100 VirtualGamepadVibration = 20 device1 = 0 device1.1 = 1 device1.2 = 1 device2 = 8 device2.1 = 8 device2.2 = 8 device3 = 8 device3.1 = 8 device3.2 = 8 device4 = 8 device4.1 = 8 device4.2 = 8 maple_/dev/input/event0 = 0 maple_/dev/input/event1 = 1 maple_sdl_keyboard = 0 maple_sdl_mouse = 0
After I select +START REICAST in the Emulation Station menu, go the the Settings screen and add a second controller (as I showed in my first post on this thread with that screenshot of my tv), the emu.cfg gets updated as follows:
[input] MouseSensitivity = 100 VirtualGamepadVibration = 20 device1 = 0 device1.1 = 1 device1.2 = 1 device2 = 0 device2.1 = 1 device2.2 = 1 device3 = 8 device3.1 = 8 device3.2 = 8 device4 = 8 device4.1 = 8 device4.2 = 8 maple_/dev/input/event0 = 0 maple_/dev/input/event1 = 1 maple_05000000c82d00000161000000010000 = 1 maple_sdl_keyboard = 0 maple_sdl_mouse = 0
You can see that the values for device2.* have changed, and they now mirror the values for device1.* (since these controllers are identical models). Again, it seems that emu.cfg is meant to be auto-generated, but it seems there's no issue if I go in and manually make the above changes in emu.cfg.
I would move your current copy of emu.cfg to a temp location that's completely outside the path for reicast (for example, you can move it to /tmp/), then load a game, and let reicast rebuild emu.cfg from scratch. Assuming the first controller it finds can let you navigate to the Settings menu, just add the second controller from there on the screen. Another option is to take the values in emu.cfg for device1.* and manually modify the values for device2.* in emu.cfg so that they match the values for device1.
Another thing to keep in mind is that reicast will only look for and add up to 4 devices. It seems like you have 3 controllers, 2 keyboards and a mouse. So that might be part of your issue as well. I would try moving emu.cfg to a temp location, and disconnect the keyboard and mouse, then launch a game with reicast. That might help with the emu.cfg auto-generation accuracy.
Feel free to message me if you're still having trouble after reading this.
Edit: ..and one more important thing: After I add the second controller under +START REICAST > Settings > Controls, I also (for unknown reasons at this time) have to change the port on one controller from B to A, then re-launch +START REICAST, and change it back to B. For some reason, just adding the second controller isn't enough. If you only go that far, you will probably find that both controllers are now recognized by reicast, but they control the same character on whatever game you're playing. So you have to take the extra step of changing the port and then changing it back it its original values. After doing this, I find a new entry in my emu.cfg [input] section:
maple_05000000c82d00000161000000010000 = 1
That ID number (05000000c82d00000161000000010000) comes from the ES config file:
$ grep -r 05000000c82d00000161000000010000 /opt/retropie/ /opt/retropie/configs/all/emulationstation/es_input.cfg.bak: <inputConfig type="joystick" deviceName="8Bitdo SN30 Pro" deviceGUID="05000000c82d00000161000000010000"> /opt/retropie/configs/all/emulationstation/es_input.cfg: <inputConfig type="joystick" deviceName="8Bitdo SN30 Pro" deviceGUID="05000000c82d00000161000000010000"> /opt/retropie/configs/all/emulationstation/es_temporaryinput.cfg: <inputConfig type="joystick" deviceName="8Bitdo SN30 Pro" deviceGUID="05000000c82d00000161000000010000"> /opt/retropie/configs/dreamcast/emu.cfg:maple_05000000c82d00000161000000010000 = 1
So if you can configure your controllers in ES first in es_input.cfg, you can also try manually adding the above "maple_<deviceGUIDFromESConfig> = 1" line. That should work, and you won't have to go the Settings screen at all.
WHEW! Reicast is tough, but it works great for sure.
-
@Plex7 Trying to save you some reading here, in case you do eventually come back to this. Going back to the settings shown in your very first post, here's how you map your Microntek USB Joystick controllers (i.e. evdev devices #2 and #3, as shown in your reicast-joyconfig output):
Step 1: Uninstall and re-install reicast.
Step 2: If you haven't done so, map the Microntek controllers in Emulation Station.
Step 3: Run reicast-joyconfig for one of the controllers, and save the output to ~/.reicast/mappings/evdev_Microntek USB Joystick.cfg. Make sure the file is named EXACTLY 'evdev_Microntek USB Joystick.cfg' with the spaces.
Step 4: Search for 'Microntek' in /opt/retropie/configs/all/emulationstation/es_input.cfg
$ grep -i 'Microntek' /opt/retropie/configs/all/emulationstation/es_input.cfg
This will spit out an <inputConfig> element that contains a property called 'deviceGUID'. This deviceGUID corresponds to your deviceName. It will be a long string with letters and numbers like..
deviceGUID="05000000c82d00000161000000010000"
Step 5: Modify the [input] section in ~/.reicast/emu.cfg as follows:
[input] MouseSensitivity = 100 VirtualGamepadVibration = 20 device1 = 0 device1.1 = 1 device1.2 = 1 device2 = 0 device2.1 = 1 device2.2 = 1 device3 = 8 device3.1 = 8 device3.2 = 8 device4 = 8 device4.1 = 8 device4.2 = 8 maple_/dev/input/event2 = 0 maple_/dev/input/event3 = 1 maple_/dev/input/event4 = -1 maple_<YourDeviceGUID> = -1
..where <YourDeviceGUID> is the string you obtained in the previous step above.
Step 6: Also in ~/.reicast/emu.cfg, remove the [players] section you added previously. It's not needed.
Step 7: Reboot and give it a try.
Edit: If you see any other maple_* devices show up in emu.cfg after rebooting, set their values to -1 (which means reicast should ignore them).
And for anyone else who is curious about the [input] device settings..
device1 = 0 # controller 1 is of type 'Sega Controller' (0) device1.1 = 1 # controller 1's primary vmu is of type 'Sega VMU' (1), and is stored in ~/.reicast/vm_save_A1.bin device1.2 = 1 # controller 1's secondary vmu is of type 'Sega VMU' (1), and is stored in ~/.reicast/vm_save_A2.bin device2 = 0 # controller 2 is of type 'Sega Controller' (0) device2.1 = 1 # controller 2's primary vmu is of type 'Sega VMU' (1), and is stored in ~/.reicast/vm_save_B1.bin device2.2 = 1 # controller 2's secondary vmu is of type 'Sega VMU' (1), and is stored in ~/.reicast/vm_save_B2.bin device3 = 8 # controller 3 is not configured .... device4 = 8 # controller 4 is not configured .... maple_/dev/input/event2 = 0 # /dev/input/event2 (Microntek USB Joystick) is controller 1 maple_/dev/input/event3 = 1 # /dev/input/event3 (Microntek USB Joystick) is controller 2 maple_/dev/input/event4 = -1 # ingore the Logitech Gamepad F710 maple_<YourDeviceGUID> = -1 # ignore the configuration for Microntek USB Joystick that is set in /opt/retropie/configs/all/emulationstation/es_input.cfg
-
I uninstalled it, I could never get it to map my controls.
-
@tackett1980 I built a bartop and installed the following two controllers there:
https://www.amazon.de/EG-STARTS-Verzögerung-Drucktasten-Raspberry/dp/B077J2WGKT/ref=sr_1_9?__mk_de_DE=ÅMÅŽÕÑ&keywords=arcade+controllers&qid=1582141216&sr=8-9The controllers work without problems in the emulation station, but no button or joypad worked in reicast. Then I did the following to get the controllers working with reicast:
-
Update reicast from source
-
After the update I replaced the following line in /opt/retropie/configs/all/autoconf.cfg..
reicast_input = "1"
to
reicast_input = "0" -
Then I ran
sudo /opt/retropie/emulators/reicast/bin/reicast-joyconfig
which generated the controller config file "controller_DragonRiseInc.GenericUSBJoystick.cfg" in the directory /opt/retropie/configs/dreamcast/mappings
-
Then I copied the content into the controller_generic.cfg file:
-
And finally, I modified the /opt/retropie/configs/dreamcast/emu.cfg file for controller 2:
That’s it. Now I can finally play Dreamcast games
-
-
@rejesterd based on your observations, we've added some changes to the way the controller are configured for Reicast.
Configuring the controllers using the Reicast configuration dialog should be more reliable, the auto-configuration done by EmulationStation when you configure your input is not always correct, but at least the.cfg
file name should be correct now.Thank you again for the time you've taken to debug this.
-
Hi all,
Is there a way/tutorial to configure a wiimote with a dolphinbar as mouse for lightgun games ?
I have a configuration but it's not really accurate.Thanks
-
Seems the recent Retropi 4.5.14 fixed mapping but only on controller 1. Anyone else seeing the same thing?
-
@mitu said in Reicast - Mapping controllers??? (2020 version). Stuck.:
@rejesterd based on your observations, we've added some changes to the way the controller are configured for Reicast.
Configuring the controllers using the Reicast configuration dialog should be more reliable, the auto-configuration done by EmulationStation when you configure your input is not always correct, but at least the.cfg
file name should be correct now.Thank you again for the time you've taken to debug this.
Seems 4.5.14 fixed mapping but only for controller 1. I tried to do versus last night and only controller 1 was being recognized. Bug 1/2 fixed?
-
@Nunyahpi Can you show us your ~/.reicast/emu.cfg? Thanks.
-
@rejesterd said in Reicast - Mapping controllers??? (2020 version). Stuck.:
@Nunyahpi Can you show us your ~/.reicast/emu.cfg? Thanks.
I'm not at home with my Pi presently but I can grab it later on and post it.
-
[config]
Debug.SerialConsoleEnabled = no
Dreamcast.Broadcast = 4
Dreamcast.Cable = 3
Dreamcast.ContentPath =
Dreamcast.FullMMU = no
Dreamcast.Language = 6
Dreamcast.RTC = 1543277752
Dreamcast.Region = 3
Dreamcast.Rtt = 0
Dynarec.Enabled = yes
Dynarec.SmcCheckLevel = 0
Dynarec.idleskip = yes
Dynarec.safe-mode = yes
Dynarec.unstable-opt = no
Social.HideCallToAction = no
aica.LimitFPS = yes
aica.NoBatch = no
aica.NoSound = no
aica.OldSyncronousDma = no
bios.UseReios = 0
pvr.MaxThreads = 3
pvr.Subdivide = 0
pvr.SynchronousRendering = no
pvr.rend = 0
rend.Clipping = yes
rend.CustomTextures = no
rend.DumpTextures = no
rend.FloatVMUs = no
rend.Fog = yes
rend.MaxFilteredTextureSize = 256
rend.ModifierVolumes = yes
rend.RenderToTextureBuffer = no
rend.RenderToTextureUpscale = 1
rend.ResolutionPercentage = 100
rend.Rotate90 = no
rend.ScreenScaling = 100
rend.ScreenStretching = 100
rend.ShowFPS = no
rend.TextureUpscale = 1
rend.UseMipmaps = 1
rend.WideScreen = no
ta.skip = 0[dispmanx]
height = 480
maintain_aspect = yes
width = 640[input]
MouseSensitivity = 100
VirtualGamepadVibration = 20
device1 = 0
device1.1 = 1
device1.2 = 1
device2 = 8
device2.1 = 8
device2.2 = 8
device3 = 8
device3.1 = 8
device3.2 = 8
device4 = 8
device4.1 = 8
device4.2 = 8
evdev_device_id_2 = -1
evdev_device_id_3 = -1
evdev_device_id_4 = -1
maple_/dev/input/event0 = 0
maple_/dev/input/event1 = 1
maple_/dev/input/event7 = 0[omx]
audio_hdmi = yes
audio_latency = 100[validate]
OpenGlChecks = 0 -
@Nunyahpi Under [input], change..
device2 = 8 device2.1 = 8 device2.2 = 8
..to:
device2 = 0 device2.1 = 1 device2.2 = 1
Then try launching a game.
-
@rejesterd said in Reicast - Mapping controllers??? (2020 version). Stuck.:
@Nunyahpi Under [input], change..
device2 = 8 device2.1 = 8 device2.2 = 8
..to:
device2 = 0 device2.1 = 1 device2.2 = 1
Then try launching a game.
Thanks for the tip and I will give it a shot when I get home. Are the 8s being there vestiges of a pre-4.5.14 bug? How does it get changed to 8 in the first place? Is deleting the .cfg and letting it get re-created also an option?
-
@Nunyahpi The 8's are expected to be there as far as I know (not a bug). In this case, a value of '8' means "not configured". By default, I think reicast will only enable one controller, even though it has discovered more than one. You can see this here..
maple_/dev/input/event0 = 0 maple_/dev/input/event1 = 1
Those maple_* entries are automatically added. I'm guessing you manually added the evdev_* devices, but they're not needed.
I think manually deleting emu.cfg and letting it get re-created is best. Then you're starting with a clean auto-generated file.Edited: Actually, what I should say is removing reicast with retropie-setup, then re-installing it from source is best (as opposed to just updating). That way, your emu.cfg should be clean. But since you already have one controller working, manually editing emu.cfg should be enough.
-
@rejesterd said in Reicast - Mapping controllers??? (2020 version). Stuck.:
@Nunyahpi The 8's are expected to be there as far as I know (not a bug). In this case, a value of '8' means "not configured". By default, I think reicast will only enable one controller, even though it has discovered more than one. You can see this here..
maple_/dev/input/event0 = 0 maple_/dev/input/event1 = 1
Those maple_* entries are automatically added. I'm guessing you manually added the evdev_* devices, but they're not needed.
I think manually deleting emu.cfg and letting it get re-created is best. Then you're starting with a clean auto-generated file.Edited: Actually, what I should say is removing reicast with retropie-setup, then re-installing it from source is best (as opposed to just updating). That way, your emu.cfg should be clean. But since you already have one controller working, manually editing emu.cfg should be enough.
Sounds good. Thanks!
-
You my friend are a rockstar thank you so much!
My only problem now is finding games that actually run good
-
@rejesterd Thankyou! your updated emu.cfg worked for the 2nd player! Was going a little nuts trying to figure it out, glad I found this thread.. cheers!
-
@rejesterd said in Reicast - Mapping controllers??? (2020 version). Stuck.:
@Plex7 Trying to save you some reading here, in case you do eventually come back to this. Going back to the settings shown in your very first post, here's how you map your Microntek USB Joystick controllers (i.e. evdev devices #2 and #3, as shown in your reicast-joyconfig output):
Step 1: Uninstall and re-install reicast.
Step 2: If you haven't done so, map the Microntek controllers in Emulation Station.
Step 3: Run reicast-joyconfig for one of the controllers, and save the output to ~/.reicast/mappings/evdev_Microntek USB Joystick.cfg. Make sure the file is named EXACTLY 'evdev_Microntek USB Joystick.cfg' with the spaces.
Step 4: Search for 'Microntek' in /opt/retropie/configs/all/emulationstation/es_input.cfg
$ grep -i 'Microntek' /opt/retropie/configs/all/emulationstation/es_input.cfg
This will spit out an <inputConfig> element that contains a property called 'deviceGUID'. This deviceGUID corresponds to your deviceName. It will be a long string with letters and numbers like..
deviceGUID="05000000c82d00000161000000010000"
Step 5: Modify the [input] section in ~/.reicast/emu.cfg as follows:
[input] MouseSensitivity = 100 VirtualGamepadVibration = 20 device1 = 0 device1.1 = 1 device1.2 = 1 device2 = 0 device2.1 = 1 device2.2 = 1 device3 = 8 device3.1 = 8 device3.2 = 8 device4 = 8 device4.1 = 8 device4.2 = 8 maple_/dev/input/event2 = 0 maple_/dev/input/event3 = 1 maple_/dev/input/event4 = -1 maple_<YourDeviceGUID> = -1
..where <YourDeviceGUID> is the string you obtained in the previous step above.
Step 6: Also in ~/.reicast/emu.cfg, remove the [players] section you added previously. It's not needed.
Step 7: Reboot and give it a try.
Edit: If you see any other maple_* devices show up in emu.cfg after rebooting, set their values to -1 (which means reicast should ignore them).
And for anyone else who is curious about the [input] device settings..
device1 = 0 # controller 1 is of type 'Sega Controller' (0) device1.1 = 1 # controller 1's primary vmu is of type 'Sega VMU' (1), and is stored in ~/.reicast/vm_save_A1.bin device1.2 = 1 # controller 1's secondary vmu is of type 'Sega VMU' (1), and is stored in ~/.reicast/vm_save_A2.bin device2 = 0 # controller 2 is of type 'Sega Controller' (0) device2.1 = 1 # controller 2's primary vmu is of type 'Sega VMU' (1), and is stored in ~/.reicast/vm_save_B1.bin device2.2 = 1 # controller 2's secondary vmu is of type 'Sega VMU' (1), and is stored in ~/.reicast/vm_save_B2.bin device3 = 8 # controller 3 is not configured .... device4 = 8 # controller 4 is not configured .... maple_/dev/input/event2 = 0 # /dev/input/event2 (Microntek USB Joystick) is controller 1 maple_/dev/input/event3 = 1 # /dev/input/event3 (Microntek USB Joystick) is controller 2 maple_/dev/input/event4 = -1 # ingore the Logitech Gamepad F710 maple_<YourDeviceGUID> = -1 # ignore the configuration for Microntek USB Joystick that is set in /opt/retropie/configs/all/emulationstation/es_input.cfg
Ok I'm hoping you can help me, 2 player controls was working great when I had only 2 controllers using Dragonrise encoders (easy get). Here is the device guid
<inputConfig type="joystick" deviceName="DragonRise Inc. Generic USB Joystick " deviceGUID="03000000790000000600000010010000">
And here is the working emu.cfg for 2 controllers
[input] MouseSensitivity = 100 VirtualGamepadVibration = 20 device1 = 0 device1.1 = 1 device1.2 = 1 device2 = 0 device2.1 = 1 device2.2 = 1 device3 = 8 device3.1 = 8 device3.2 = 8 device4 = 8 device4.1 = 8 device4.2 = 8 maple_/dev/input/event2 = 0 maple_/dev/input/event3 = 1 maple_03000000790000000600000010010000= 1 maple_sdl_keyboard = 0 maple_sdl_mouse = 0
I then used the same setup and hooked up 4 controllers to a 4 Player cabinet. All the same Dragonrise encoders. I have the 4 controllers going into a 4port hub plugged into USB port 1 on the Pi3, then a trackball to port 2, then a mouse/keyboard combo into port 3. Player 1 works as Player 2... resulting in only 1 controller working. Reicast changed the Emu.cfg to the following
[input] MouseSensitivity = 100 VirtualGamepadVibration = 20 device1 = 0 device1.1 = 1 device1.2 = 1 device2 = 0 device2.1 = 1 device2.2 = 1 device3 = 8 device3.1 = 8 device3.2 = 8 device4 = 8 device4.1 = 8 device4.2 = 8 maple_/dev/input/event2 = 0 maple_/dev/input/event3 = 1 maple_/dev/input/event4 = 1 maple_/dev/input/event5 = 2 maple_/dev/input/event6 = 3 maple_03000000790000000600000010010000 = 1 maple_sdl_keyboard = 0 maple_sdl_mouse = 0
I am hoping if I change some of these device/event values it should solve the problem? Do you know what I can try to change?
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.