• This topic has 56 replies, 22 voices, and was last updated 8 years ago by Anonymous.
Viewing 22 posts - 36 through 57 (of 57 total)
  • Author
    Posts
  • #120827
    dgtliqd
    Participant

    Ok, so I finally found the solution by doing a little more web searching. This “should” help anyone experiencing issues setting up their controller(s). Disclaimer: so far I’ve only been able to set up 1 player with my X-Arcade tankstick, but it’s start. All credit goes to user, hoechst, on this thread (2nd post down):

    Can’t manage to configure Dreamcast controls
    byu/Stifu inRetroPie

    His post will explain how to assign the correct key values to your controller and what ID is assigned to it. I will recommend that anyone who’s been altering the emu.cfg and controller mapping file, should delete all the reicast emulator files from RetroPie and reinstall from Source Binary. to start with a fresh install.

    #120856
    thak
    Participant

    Hi!

    Thanks to your link on reddit i managed to set-up my nes30 pro (8bitdo) so for anyone who tried to configure this one here’s my config in “/opt/retropie/configs/dreamcast/mappings/controller_8BitdoNES30Pro.cfg”

    [emulator]
    mapping_name = 8Bitdo NES30 Pro
    btn_escape = 314

    [dreamcast]
    btn_a = 304
    btn_b = 305
    btn_c =
    btn_d =
    btn_x = 307
    btn_y = 308
    btn_z =
    btn_start = 315
    btn_dpad1_left =
    btn_dpad1_right =
    btn_dpad1_up =
    btn_dpad1_down =
    btn_dpad2_left =
    btn_dpad2_right =
    btn_dpad2_up =
    btn_dpad2_down =
    axis_x = 0
    axis_y = 1
    axis_trigger_left = 24
    axis_trigger_right =

    [compat]
    btn_trigger_left = 310
    btn_trigger_right = 311
    axis_dpad1_x = 16
    axis_dpad1_y = 17
    axis_dpad2_x =
    axis_dpad2_y =
    axis_x_inverted = no
    axis_y_inverted = no
    axis_trigger_left_inverted =
    axis_trigger_right_inverted =
    axis_dpad1_y_inverted = no
    axis_dpad1_x_inverted = no

    it may be adjusted to have Z and C button mapped on L2/R2 but for now it worked great on Daytona USA/Soul Calibur/Marvel VS Capcom 2

    I’m going back play some more :D

    Thks!

    #120904
    srfrboybob
    Participant

    Thak- thank you this helped so much. I am going to post on floobs YouTube about setting up dream cast. Several people are asking about this there.

    #120969
    Anonymous
    Inactive

    Thanks. These mappings worked perfectly for my 8Bitdo SFC30. Reciast sorted!

    I tested Virtua Tennis 2. It plays better than on the Pi 2, but there is still lag. but the game is playable. I think playing around with the overclock settings will help

    #120993
    dgtliqd
    Participant

    You’re welcome, Thak! I’m just glad it helped you and others out.

    #121168
    dgtliqd
    Participant

    Alright folks, I have a new issue I’m hoping someone can help me resolve. I’ve been searching, but haven’t found a solution, yet. I got my X-Arcade tankstick configured and it works, but ONLY with 1 player. I’ve tried multiple things, but haven’t had any success. Below are the details of my configuration. Thanks in advance!

    evtest | grep BTN output
    ————————-
    Available devices:
    /dev/input/event0: Xgaming X-Arcade
    /dev/input/event1: Xgaming X-Arcade
    /dev/input/event2: Logitech USB Receiver
    /dev/input/event3: Logitech USB Receiver
    /dev/input/event4: Xarcade-to-Gamepad Device 1
    /dev/input/event5: Xarcade-to-Gamepad Device 2
    /dev/input/event6: SNES-to-Keyboard Device

    emu.cfg file
    ————-
    [audio]
    backend = oss
    disable = 0

    [config]
    Debug.SerialConsoleEnabled = 0
    Dreamcast.Broadcast = 4
    Dreamcast.Cable = 3
    Dreamcast.RTC = 1543276800
    Dreamcast.Region = 3
    Dynarec.Enabled = 1
    Dynarec.idleskip = 1
    Dynarec.unstable-opt = 0
    aica.LimitFPS = 1
    aica.NoBatch = 0
    aica.NoSound = 0
    bios.UseReios = 0
    pvr.MaxThreads = 3
    pvr.Subdivide = 0
    pvr.SynchronousRendering = 0
    pvr.rend = 0
    rend.UseMipmaps = 1
    rend.WideScreen = 0
    ta.skip = 0

    [input]
    evdev_device_id_1 = 4
    evdev_device_id_2 = 5
    evdev_device_id_3 = -1
    evdev_device_id_4 = -1
    evdev_mapping_1 = /opt/retropie/configs/dreamcast/mappings/controller_Xarcade-to-GamepadDevice1.cfg
    evdev_mapping_1 = /opt/retropie/configs/dreamcast/mappings/controller_Xarcade-to-GamepadDevice2.cfg
    joystick_device_id = -1

    [reios]
    ElfFile =

    [validate]
    OpenGlChecks = 0

    controller_Xarcade-to-GamepadDevice1.cfg file
    ———————————————-
    [emulator]
    mapping_name = Xarcade-to-Gamepad Device 1
    btn_escape = 314

    [dreamcast]
    btn_a = 307
    btn_b = 308
    btn_c = 310
    btn_d =
    btn_x = 304
    btn_y = 305
    btn_z = 311
    btn_start = 315
    btn_dpad1_left =
    btn_dpad1_right =
    btn_dpad1_up =
    btn_dpad1_down =
    btn_dpad2_left =
    btn_dpad2_right =
    btn_dpad2_up =
    btn_dpad2_down =
    axis_x = 0
    axis_y = 1
    axis_trigger_left =
    axis_trigger_right =

    [compat]
    btn_trigger_left = 306
    btn_trigger_right = 309
    axis_dpad1_x =
    axis_dpad1_y =
    axis_dpad2_x =
    axis_dpad2_y =
    axis_x_inverted = no
    axis_y_inverted = no
    axis_trigger_left_inverted =
    axis_trigger_right_inverted =

    controller_Xarcade-to-GamepadDevice2.cfg file
    ———————————————-
    [emulator]
    mapping_name = Xarcade-to-Gamepad Device 2
    btn_escape = 314

    [dreamcast]
    btn_a = 307
    btn_b = 308
    btn_c = 310
    btn_d =
    btn_x = 304
    btn_y = 305
    btn_z = 311
    btn_start = 315
    btn_dpad1_left =
    btn_dpad1_right =
    btn_dpad1_up =
    btn_dpad1_down =
    btn_dpad2_left =
    btn_dpad2_right =
    btn_dpad2_up =
    btn_dpad2_down =
    axis_x = 0
    axis_y = 1
    axis_trigger_left =
    axis_trigger_right =

    [compat]
    btn_trigger_left = 306
    btn_trigger_right = 309
    axis_dpad1_x =
    axis_dpad1_y =
    axis_dpad2_x =
    axis_dpad2_y =
    axis_x_inverted = no
    axis_y_inverted = no
    axis_trigger_left_inverted =
    axis_trigger_right_inverted =

    #121501
    vretro
    Participant

    Is it possible to play 2 player games with Reicast?

    I am using two identical iBuffalo controllers and only player 1 is visible in game/s.

    #121522
    Anonymous
    Inactive

    I have the same problems as dgtlqid and vretro…
    I got my Xbox 360 wireless controller working, but I can’t get my second X360 wireless controller working with reicast. All other emus in retropie do it well.

    I tried several things like configuring emu.cfg to use another mapping profile for the second controller, but it does not work.

    Here is my controller config for the x360 wireless (was some work to configure it right!):

    [emulator]
    mapping_name = Xbox 360 Wireless Receiver
    btn_escape = 0x13a

    [dreamcast]
    btn_a = 304
    btn_b = 305
    btn_c = 310
    btn_d = 311
    btn_x = 307
    btn_y = 308
    btn_z = 318
    btn_start = 315
    btn_dpad1_left = 704
    btn_dpad1_right = 705
    btn_dpad1_up = 706
    btn_dpad1_down = 707
    axis_x = 0
    axis_y = 1
    axis_trigger_left = 2
    axis_trigger_right = 5

    [compat]
    axis_trigger_left_inverted = yes
    axis_trigger_right_inverted = no
    axis_x_inverted = no
    axis_x_inverted = no

    And here is my emu.cfg:

    [audio]
    backend = oss
    disable = 0

    [config]
    Debug.SerialConsoleEnabled = 0
    Dreamcast.Broadcast = 4
    Dreamcast.Cable = 3
    Dreamcast.RTC = 1543276800
    Dreamcast.Region = 3
    Dynarec.Enabled = 1
    Dynarec.idleskip = 1
    Dynarec.unstable-opt = 0
    aica.LimitFPS = 1
    aica.NoBatch = 0
    aica.NoSound = 0
    bios.UseReios = 0
    pvr.MaxThreads = 3
    pvr.Subdivide = 0
    pvr.SynchronousRendering = 0
    pvr.rend = 0
    rend.UseMipmaps = 1
    rend.WideScreen = 0
    ta.skip = 0

    [input]
    evdev_device_id_1 = 2
    evdev_device_id_2 = 3
    evdev_device_id_3 = 4
    evdev_device_id_4 = 5
    evdev_mapping_1 = /opt/retropie/configs/dreamcast/mappings/controller_Xbox360WirelessReceiver.cfg
    evdev_mapping_2 = /opt/retropie/configs/dreamcast/mappings/controller_Xbox360WirelessReceiver.cfg
    evdev_mapping_3 = /opt/retropie/configs/dreamcast/mappings/controller_Xbox360WirelessReceiver.cfg
    evdev_mapping_4 = /opt/retropie/configs/dreamcast/mappings/controller_Xbox360WirelessReceiver.cfg
    joystick_device_id = -1

    [reios]
    ElfFile =

    [validate]
    OpenGlChecks = 0

    BTW: SSF2X for matching service is runnig nearly perfect on my Pi3 with that emulator!
    CPU OC 1300 MHz, GPU/Core and SDRAM 520 MHz.
    It would be so nice if I could play SSF2X in my living room with 2 Players on the Pi3 with the wireless X360 controllers instead of playing SF2 Collection on SEGA Saturn in my gaming room.

    #121523
    dgtliqd
    Participant

    Well, I’m glad to know I’m not the only one in this boat. Two players used to work flawlessly on the older version of reicast. Hopefully, someone has an answer. In the meantime, I’ll keep doing more searching on my end.

    #121534
    vretro
    Participant

    Is it possible that the secret to our issues originate with the device id’s being used within emu.cfg

    Below is how my emu.cfg looks:

    [input]
    evdev_device_id_1 = 0
    evdev_device_id_2 = 1
    evdev_device_id_3 = -1
    evdev_device_id_4 = -1
    evdev_mapping_1 = /opt/retropie/configs/dreamcast/mappings/controller_USB,2-axis8-buttongamepad.cfg
    evdev_mapping_2 = /opt/retropie/configs/dreamcast/mappings/controller_USB,2-axis8-buttongamepad.cfg
    joystick_device_id = -1

    When I did a fresh install, my controllers were not added to the mappings folder when I first launched Reicast and the default evade_device id’s were different. It seems that -1 is used to indicate “missing” controllers. I had two attached.

    I haven’t had success swapping these numbers around, yet.

    Should there be a second (third or fourth) joystick_device_id for each controller too?

    Does Reicast controllers get configured via EmulationStation like some other systems?

    #121552
    dgtliqd
    Participant

    Hi vretro,

    You’re correct to assume that the device ID needs to match your controller in order to be recognized by reicast. It “usually” does a good job of identifying, but if it doesn’t, and you’re not sure what your device ID is, you need to go to the console (command line) and type: evtest | grep BTN

    you’ll get something like this returned:

    Available devices:
    /dev/input/event0: Xgaming X-Arcade
    /dev/input/event1: Xgaming X-Arcade
    /dev/input/event2: Logitech USB Receiver
    /dev/input/event3: Logitech USB Receiver
    /dev/input/event4: Xarcade-to-Gamepad Device 1
    /dev/input/event5: Xarcade-to-Gamepad Device 2
    /dev/input/event6: SNES-to-Keyboard Device

    The ‘event#’ corresponds to the device ID mapped to each of your controllers. You can then type the number of the controller you want the button mapping for and press enter, and you’ll be shown the values that correspond to each button on your controller. Hopefully this helps you get your controller set up.

    #121581
    vretro
    Participant

    Thanks dgtliqd, it seems that EmulationStation under RetroPie does actually create the controller mapping for Reicast, but in my case and for others in this thread it seems to map only one working controller.

    I will use your pointers to try and see if I cant get the id’s I need to make two controllers work.

    #121680
    Anonymous
    Inactive

    If I remap the Controller via EmulationStation, then it is also remapped for Reicast, but then only the analogue stick of one controller is working and I’m stuck at date settings and so I have to remap the Reicast controls manually again.

    The device ID’s in emu.cfg match my controllers.
    First one is the USB Keyboard, second one is the first X360 wireless controller and the following three are the theoretically three another X360 controllers. So the device ID’s of my two X360 wireless controllers are 2 and 3 and if I use the script, provided here:
    https://github.com/reicast/reicast-emulator/blob/3ed2985d510733062e295f8d343cc717f158b4c7/shell/linux/tools/reicast-joyconfig.py

    then both controllers are working with ID 2 and 3, but it shows no effect in Reicast and still only one Controller is working.

    As I wrote in my last post, I tried to give ID 3 another mapping file (with the same values as for controller 1), but this also does not work, so I’m confused and wonder, if anybody has got two working USB Controllers with the latest Reicast release.
    If so – please tell me and explain how :-)

    IMHO it could be a USB / USB device ID problem of the Reicast emulator itself.

    #121707
    vretro
    Participant

    alfalfa, setting up player one is quite seamless on Retro Pie now with the EmulationStation controller integration.

    I don’t know if it was ever possible to use more than one controller with earlier versions of Reicast before EmulationStation integration.

    Its hard to tell if this is a RetroPie bug or Reicast.

    #121770
    vretro
    Participant

    I posted this issue over on Github: https://github.com/RetroPie/RetroPie-Setup/issues/1407

    #121832
    Anonymous
    Inactive

    Thank you, Vretro.

    So now we have the answer and know that’s an issue of the emulator.
    I hope they’ll implement second conrtoller support soon with some perfomance improvements and keep up the good work.

    #121888
    hyell
    Participant

    Hello,

    If you want, you can use a “dirty” solution.

    Download source here : https://github.com/RetroPie/reicast-emulator
    and change this file :
    reicast-emulator-master\core\hw\maple\maple_cfg.cpp
    At the end of file you got a function : mcfg_CreateDevices
    just add one line to create a second controller
    mcfg_Create(MDT_SegaController,1,5);

    Recompile all and replace your executable reicast file.(Save it first)
    (/opt/retropie/emulators/reicast/bin/reicast by /usr/local/bin/reicast)

    I just test it, and it’s ok.
    (Raspberry PI 3 with xbox 360 controller and wiimote. Test with Soulcalibur)

    #122182
    vretro
    Participant

    Thanks for posting your solution hyell.

    I have made a note over on the GitHub issue relating to Reicast controllers:
    https://github.com/RetroPie/RetroPie-Setup/issues/1407#issuecomment-204588745

    Is this a fix you would be able to add to RetroPie or Reicast, if it is regularly updated?

    #122202
    hyell
    Participant

    Hello,

    Yes, I think we can fix it on Reicast.
    I’ll try this week.
    Can I ask you some question in private? (I never commit on github, and I don’t want make mistakes)

    #122341
    vretro
    Participant

    Awesome!

    Really looking forward to being able to connect multiple controllers in Reicast.

    I don’t have advanced knowledge of Github, but if you clone the repository, make your suggested changes then submit a pull request with a comment explaining what you fixed, that should be all there is to it!

    There is a style guide on Github for the project:
    https://github.com/RetroPie/RetroPie-Setup/wiki/Shell-Style-Guide

    #122354
    stakstar
    Participant

    In addition to hyell’s fix I found that the:

    /opt/retropie/configs/all/autoconf.cfg has reicast set to an input of 1. I changed it to 4.

    # this file can be used to enable/disable retropie autoconfiguration features
    mupen64plus_audio = 1
    mupen64plus_hotkeys = 1
    mupen64plus_compatibility_check = 1
    reicast_input = 4 
    es_swap_a_b = 0

    after changing the input number in the above file I put in my input device info:

    /opt/retropie/configs/dremcast/emu.cfg

    [audio]
    backend = oss
    disable = 0
    
    [config]
    Debug.SerialConsoleEnabled = 0
    Dreamcast.Broadcast = 4
    Dreamcast.Cable = 3
    Dreamcast.RTC = 1543276800
    Dreamcast.Region = 3
    Dynarec.Enabled = 1
    Dynarec.idleskip = 1
    Dynarec.unstable-opt = 0
    aica.LimitFPS = 1
    aica.NoBatch = 0
    aica.NoSound = 0
    bios.UseReios = 0
    joystick_device_id_2 = -1
    pvr.MaxThreads = 3
    pvr.Subdivide = 0
    pvr.SynchronousRendering = 0
    pvr.rend = 0
    rend.UseMipmaps = 1
    rend.WideScreen = 0
    ta.skip = 0
    
    [input]
    evdev_device_id_1 = 6
    evdev_device_id_2 = 7
    evdev_device_id_3 = -1
    evdev_device_id_4 = -1
    evdev_mapping_1 = /opt/retropie/configs/dreamcast/mappings/controller_XboxGamepad(userspacedriver).cfg
    evdev_mapping_2 = /opt/retropie/configs/dreamcast/mappings/controller_XboxGamepad(userspacedriver).cfg
    joystick_device_id = -1
    
    [reios]
    ElfFile = 
    
    [validate]
    OpenGlChecks = 0

    Before changing the input number whenever I would reset my device_id’s and device_mappings this information it would go back to the default values whenever I started the dreamcast emulator.

    I’m using 2 wireless Xbox 360 controllers and both are working on Power Stone in the dreamcast emulator.
    I hope this helps anyone trying to get this going.

    #122377
    Anonymous
    Inactive

    Thank you stakstar, but it still does not work for me.

    I changed the number to 4 in autoconf.cfg and I also made a reset of the input mapping when doing “configure input” in Emulationstation again.
    Then I was stuck at the time/date settings again and then I did exchange the mapping file with my backup of “controller_Xbox360WirelessReceiver.cfg”.
    I wonder why your mapping file is named “controller_XboxGamepad(userspacedriver).cfg”
    I don’t have this file in the folder. But I think, it wouldn’t make a difference how the file is called?

    My emu.cfg looks the same as yours, but only the mapping file is called different but this is the mapping file that I’ve edited so that all controls are the same as real DC controller.

    Where do I find that userspacedriver? Do I have to install it manually?
    My wireless controllers work great in all other emulators… only Reicast has problems with more than one controller.

Viewing 22 posts - 36 through 57 (of 57 total)
  • The forum ‘Controller Configuration in RetroPie’ is closed to new topics and replies.