configuring controllers in Reicast

Welcome Page Forums RetroPie Project Everything else related to the RetroPie Project configuring controllers in Reicast

This topic contains 110 replies, has 15 voices, and was last updated by  labelwhore 1 year, 10 months ago.

Viewing 35 posts - 71 through 105 (of 111 total)
  • Author
    Posts
  • #99929

    karloss
    Participant

    Yeah, for me, the only game I am really interested in having running “perfect” would be shenmue…

    Love all your work freestyle

    #99935

    free5ty1e
    Participant

    Shenmue Disk1 runs, it’s “playable” but not perfect, very reasonable. I think with a few more tweaks and it’ll play very smoothly. Free5tyle, i just want to say, i love you and the progress you’ve made on this.
    For some reason game saving takes an unusually long time, but that could just be shenmue, i’ve not played it on my actual dreamcast recently, but i don’t remember game saves taking that long. (My pi2 is inside an original gameboy, so a portable dreamcast is amazing!)

    I do have a couple requests. Because mine is a portable gameboy, and saving takes a while, i wonder if Save States are possible. I use savestates for everything that i can. 1 button to save, 1 button to load.

    Also is there a way i can reverse the axis on reicast? other emulators i can select which axis direction is what. Because my joystick(PS-Vita thumbstick) is technically upside down, left is right, and up is down. In other emulators like mupen64plus i can configure these, same with all the libretro emulators. I’d also need to change the sensitivity, my joystick only needs a very tiny deadzone, and has a rather limited maximum range, of the 32k range that mupen64 uses. i can only use about 15-16k ranges, so normally full forward would cause a character to walk or even tip-toe(mario), but by changing the sensitivity from 32k to 14.5k(ish), and the deadzone to (256, much lower than default) i can use my joystick normally.

    Hi Djinny!

    Game saves to VMU are the only operation currently that directly writes to the SD card during gameplay, so it’s bound to be a bit sluggish during saves (and they will take a little longer than you’re used to on the real Dreamcast, but not by much; my Rush 2049 saves only take a second or two; then again, it only takes a couple of blocks).

    Awesome to hear that Shenmue is at least partially playable! I have to find my copy and make disc images so i can get back into that game 😀

    I would love to learn how to implement save states!! Definitely on my list but no idea how to start just yet. (free5ty1e = n00b @ emulation coding)

    However, I *DO* have an idea on how to start implementing some emu.cfg settings for the following, and plan to start soon:

    * Sound playback frequency (audio.playback.frequency=44100)
    * Sound playback channels (audio.playback.stereo=1)
    * Frameskip (video.frameskip=0)
    * Controller axis deadzone (for each defined controller in emu.cfg, such as axis.deadzone=128)
    * Controller axis max value (for each defined controller, such as axis.maxvalue=16384, assumed to be the same number positive and negative)
    * Controller axis reversal (for each defined controller axis, such as axis.0.reversal=1)

    Thanks for the suggestions!! 😀

    #99944

    Djinny
    Participant

    free5tyle, thank you again. Dreamcast emulation was one of the biggest reasons for me to get the rpi2, And this is definitely on the right track.
    If you play the shenmue, i think you’ll be surprised at how well it does play, though saving can take up to 20 seconds it would seem. I really appreciate you replying to me, very few do, Those emu.cfg commands would be perfect.
    Though i think the joysticks by default jstest go from -32,768 to 32,768 so i wonder if lower would be bad for people with really wide joysticks.
    My PS-Vita joystick is tiny, it fits in between the DPad and the AB on an original gameboy. 😀 http://i.imgur.com/It0ALB1.jpg and uses hall effect, instead of pots, so it’s a little weird.

    ^_^ Shenmue on a gameboy, I’m so giddy!
    Edit: I’ll put a video up of it later!

    For some reason people don't reply to my threads or posts. I seem to be a thread killer. I type correctly and my points, ideas, and requests are valid. So not sure why the famed Raspberry Pi community is all about linking to another persons post.

    #100314

    super64
    Participant

    Evening guys,

    First of all, new to RetroPie myself and diving in at the deep end with Reicast. Have been trying to follow the thread, so apologies if already covered… been trying to get my wireless 360 controller working and modified the emu.cfg with how labelwhore did but this hasn’t worked out for me. Any ideas? Thanks.

    #100432

    labelwhore
    Participant

    I’m initializing xbodrv with the –dpad-as-button, and –trigger-as-button flags. If you’re not doing that, my settings in emu.cfg won’t work for you. I’m not using the init.d script, I could never get it to work correctly, and it also makes it more difficult to play with the controller modes that are available through xboxdrv. I find it handy to be able to switch the button config on the fly for different emulators such as Vice.

    What I did to come up with those settings is take a look at the controller section in retroarch.cfg, and use that as a guide to help create the same settings in emu.cfg. Setup wasn’t exactly the same as in retroarch.cfg. I mentioned somewhere above that the dpad had some directions swapped, so lookout for that.

    http://www.th3rdwave.com/tracks/
    ^^ my other hobby

    #100551

    epe9686518
    Participant

    Just wanted to say, I am a huge dreamcast fan, and this and N64 are two of my all time favorite systems, it’s sooooooooooooooooooooo great to see the work that you have done on this system free5ty1e to make this finally playable and work so well. Please keep up the amazing work, this is really turning the Pi into something special! Now if only the N64 emulation would start making more progress, but I am quite happy to have 30 games, many of the top titles running great and looking forward to the future! Thanks for all the hours and work you have put into this, means a lot to a lot of people, hope you know that!

    #100556

    free5ty1e
    Participant

    Thanks everyone 😀 Haven’t had much time lately but I’m hoping to get back at it this weekend!

    #100557

    free5ty1e
    Participant

    Also, holy awesome, I want a GameBoy RetroPie like that!! 😮

    Solid project!!!

    #100584

    epe9686518
    Participant

    Quick question, I am using the offical MS drivers for my wireless Xbox 360 controller and got all buttons working but can’t seem to get the dpad working correctly. In jstest, my dpad isn’t set to buttons but it’s set to Axis… up is Axis 5-, Down is Axis 5, Left is Axis 4 – and Right is 4. Any idea how to map these in the controller mapping file?

    I did

    axis.4=DPad_Right
    axis.-4=DPad_Left
    axis.+5=DPad_Down
    axis.-5=DPad_Up

    And in game the only thing that works is Dpad_Right which is actually mapped to my left dpad input on the controller. Any help would be great!

    #100740

    epe9686518
    Participant

    After much testing with the emulator over the past few days, I have yet to figure out the dpad issues with the wireless xbox 360 controller. I know I can add the line d pad as button in xbxdrv but doing so would require me to remap all of the other emulators controls which isn’t going to happen. it appears that reicast isn’t set up to read the dpad as an axis, but whats crazy is, as noted above I have the dpad mapped to the axis that it is listing in jstest, and the Dpad_Right is working in-game, so that being considered, I might just need to play around with some of the other axis numbers and might stumble across the other directional mappings. Here’s hoping….

    Bugreport

    As far as bugs, I believe I have also found a bug in regards to the Wireless Xbox 360 controller. This only happens in Reicast and not in any other emu nor emulation station. After restarting the system, and loading a game with the emulator, the emu appears to load the wrong controller config sometimes. What I mean by that is, I have 2 wireless xbox 360 controllers registered with retropie. And at first I thought Reicast wasn’t picking up any controllers, despite my 360 controller working fine in ES and other emus after reboot. But I noticed when I loaded a 2 player game, that it was indeed picking up the controller, but it was picking up as player 2, not player 1, despite the xbox light showing it as the first player controller. After exiting the emu and switching usb ports (sometimes having to try a few different ports) the emulator will then pick up the xbox 360 controller correctly as player one and work fine from that point on, until another reboot of the pi. Not sure what’s going on with Reicast, but this bug only happens with this emulator and no others. Something definitely needs to be looked at here.

    I have also tested quite a few games thus far, and wanted to give updates on performance on these on the latest version of Reicast. Overall, most games I have tested work near perfect or near full speed with only minor graphic gltiches… Sound on the other hand in most games is really choppy. But considering the games them selfs are running almost perfectly, this really appears to me that the pi has plenty of power to run DC games at full speed and just needs some audio fixes to get these titles nearly perfect! Here is the list of games I have tested so far, hope this helps some, and I will be updating these in the future as I test more titles.

    Games Tested

    Sonic Adventure

    After playing the first few levels, both the sound and graphics are nearly perfect with only a few very minor graphic glitches here and there. The game runs at pretty much full speed and it’s one of the few games that I have tested so far where the audio is also nearly perfect!

    Soul Calibur

    Game is now running at pretty much full speed on the latest version of Reicast. There is some slight slow down when doing some of the “charging” effects but other than that the game runs at close to full speed if not full speed most of the time. There are a few minor graphic glitches here and there, but nothing major at this point and the game is now fully playable. Audio on the other hand is very choppy and quite bad.

    Legacy of Kain – Soul Reaver

    Another game where so far it runs at pretty much full speed with only minor graphic glitches and is fully playable. Slight slow down during some of the “soul sucking” particle effects but nothing major. Audio is choppy but not as bad as other titles like Soul Calibur.

    Draconus – Cult of the Wyrm Disc 1

    Boots and loads into game, but heavy slow down making it basicly unplayable. Sky box is also pink, but this is a known bug in the PC dreamcast emulators as well.

    Power Stone 2

    Boots fine and sound is perfect in the menus and stage intros… Once game loads sound gets super choppy and is very bad. Also game is currently not running at full speed and gets a fair amount of slow down, at least with 4 players on the screen (me and 3 AI). Game would be considered playable, but not much fun in it’s current state.

    Street Fighter 3 3rd Strike

    Game boots fine but has some graphic glitches in the menus but still mostly navigable. Character sprites and some parts of the back ground have major graphical glitches, though mostly on the players, and currently making the game unplayable due to this. The game does however appear to run at full speed.

    Dead or Alive 2

    Boots to DC logo and then locks up the pi.

    Metropolis Street Racer

    Fully playable, runs at full speed, very minor graphical glitches on some of the tracks, pretty much looks perfect! Audio is also perfect! Plays great!

    Hope this helps some, just need to figure out the dpad issues with the 360 controller and solve the I/O bug and hopefully audio fixes will come soon enough. So far I am blown away by how playable these games are, most work at near full speed and just need audio fixes and they will be perfect! I will update the games tested list as I make more progress with the system.

    #100744

    labelwhore
    Participant

    xbodrv has an option to be able to switch controller modes. By default, the function uses the xbox button, but you can assign it to another one.

    If you set that up, you can have a controller mode specifically for Reicast. I’d have to dig into the xboxdrv documentation again though to explain further.

    http://www.th3rdwave.com/tracks/
    ^^ my other hobby

    #100745

    epe9686518
    Participant

    Crazy Taxi

    Playable, runs pretty well, some slow down, not full speed. Almost no visual glitches. Audio is choppy.

    MDK 2

    Fully playable, runs at full speed with no gfx issues, audio very good, not much chop at all.

    Power Stone 1

    Fully playable, runs at full speed, some audio chop but not much, almost no visual issues.

    Mortal Kombat Gold

    Fully playable, runs at full speed, slight audio issues, slight slow down here and there but runs full speed most of the time!

    Sega GT

    No visual glitches, Runs close to full speed, with a little slow down but no bad, fully playable. Audio is choppy.

    Test Drive V-Rally

    Menus have visual issues but not too hard to navigate. Some tracks have next to no visual glitches, other tracks have major flickering and are next to impossible to play. Game runs at full speed and is fully playable on the working tracks, tracks with visual glitches render game pretty much unplayable. Soooooooooooo close! Audio is also pretty choppy but not as bad as some.

    Sega Rally 2

    Loads DC logo boot then crashes back to emulationstation. Assuming this is due to this being one of the few WinCE games?

    #100746

    epe9686518
    Participant

    If you could help further and point me to what I need to set in Xbodrv that would be great!! This would completely fix my issue with Reicast for the dpad. Still not sure what the issue is with it wrongly assigning controllers apon reboots though.

    #100776

    labelwhore
    Participant

    Of course. Take a look at this page, particularly the Config Slot Options section. Since I assume you are using the init.d script to initialize xboxdrv, the steps to use this option will be different than mine. But I’ll show you how I’m using it regardless.

    http://pingus.seul.org/~grumbel/xboxdrv/xboxdrv.html

    I’m not at home, so I don’t have everything in front of me. However, in rc.local, I’m initializing xboxdrv kind of like this (I think the second ‘–id 0 –led 2’ can probably be removed):

    
    xboxdrv --trigger-as-button --id 0 --led 2 --dpad-as-button --deadzone 4000 --silent --next-config --trigger-as-button --id 0 --led 2 --deadzone 4000 --silent &

    Notice the --next-config seperating the different modes. One has --dpad-as-button the second mode does not. So what that does is when I start up my pi, by default my dpads act as buttons, then if I hit the xbox button, the dpad acts as a hat switch or axis, hit it again, and it goes back to acting as buttons.

    Idk if other controllers have a similar option, but if they don’t, this one option makes the xbox 360 controller, the best controller for the Pi IMO.

    http://www.th3rdwave.com/tracks/
    ^^ my other hobby

    #100780

    dougie1970
    Participant

    going to give this ago now .

    #100788

    epe9686518
    Participant

    Of course. Take a look at this page, particularly the Config Slot Options section. Since I assume you are using the init.d script to initialize xboxdrv, the steps to use this option will be different than mine. But I’ll show you how I’m using it regardless.

    http://pingus.seul.org/~grumbel/xboxdrv/xboxdrv.html

    I’m not at home, so I don’t have everything in front of me. However, in rc.local, I’m initializing xboxdrv kind of like this (I think the second ‘–id 0 –led 2′ can probably be removed):

    
    xboxdrv --trigger-as-button --id 0 --led 2 --dpad-as-button --deadzone 4000 --silent --next-config --trigger-as-button --id 0 --led 2 --deadzone 4000 --silent &

    Notice the --next-config seperating the different modes. One has --dpad-as-button the second mode does not. So what that does is when I start up my pi, by default my dpads act as buttons, then if I hit the xbox button, the dpad acts as a hat switch or axis, hit it again, and it goes back to acting as buttons.

    Idk if other controllers have a similar option, but if they don’t, this one option makes the xbox 360 controller, the best controller for the Pi IMO.

    Thank you so much for your help! Here’s the issue I am running into. Now I did what you did, but in reverse. Where it defaults to normal dpad mapped to axis, then when I hit the xbox button it switches it to dpad-as-button. Now its working correctly, but the problem I am running into now is that even when the dpad is not a button, aka like how I had it before and the dpad is mapped back to the axis, it still reserves the first 4 buttons for the dpad, even though its not being used for that in that mode. Basically xbox btns 0, 1, 2, 3 are reserved for the dpad even though I have it mapped to the axis, which then pushes the rest of the buttons back to different numbers throwing off my mapping in the emulators….

    #100791

    labelwhore
    Participant

    Huh. I hadn’t noticed that because most of my emulators are set up to use dpad-as-button. I think I only have FBA/NeoGeo using dpad as an axis which I mapped from within the emulators.

    The good news is, that’s not hard to fix for the retroarch emulators, you just have to shift the button assignments in retroarch.cfg. You’ll probably have to remap controls in MAME as well.

    http://www.th3rdwave.com/tracks/
    ^^ my other hobby

    #100792

    epe9686518
    Participant

    Huh. I hadn’t noticed that because most of my emulators are set up to use dpad-as-button. I think I only have FBA/NeoGeo using dpad as an axis which I mapped from within the emulators.

    The good news is, that’s not hard to fix for the retroarch emulators, you just have to shift the button assignments in retroarch.cfg. You’ll probably have to remap controls in MAME as well.

    Basically before I did this button0=A, button1=B, button2=X, button3=Y…. Now button0=dpadup, button1=dpaddown….. Etc…

    Now that it’s set up like this, even when it’s in “default” mode which is dpad mapped to the axis like it was, it still reserves the first 4 buttons for the dpad, even though in that mode it’s not using them as buttons, it still reserves those buttons for them…

    So either way, if I do this, it still requires me to remap all of the buttons in the emulators, something I was trying to avoid. Looks like I don’t have a choice, I might as well just do away with having two different mappings and just add the dpad-as-button to the normal mapping and bit the bullet and remap everything/

    #100793

    labelwhore
    Participant

    It certainly seems like it should work with dpad-as-axis (the default setting) as well. The only reason I set my controller up with dpad-as-button in the first place, is because I made an arcade controller out of an xbox 360 controller which uses the dpad for the stick that I wanted to use with MAME/FBA. Anyway, it sounds like you’re on the right track to fix it.

    http://www.th3rdwave.com/tracks/
    ^^ my other hobby

    #100796

    epe9686518
    Participant

    Yea I am just going to go ahead and start remapping and set it up correctly and use the dpad-as-button as this should be the way to go. Then back to testing Reicast.

    #100805

    free5ty1e
    Participant

    Thanks everyone! This is good info; not sure how quickly I’d be able to help with the axis + and – mapping to buttons logic but that is certainly something I think is possible with the code I’ve gone through thus far.

    Anything that currently works with axis mapping to buttons is purely coincidental, that situation is not handled specifically in the logic 🙂

    #100814

    epe9686518
    Participant

    I had a feeling that was the case, as I could find no other rhyme or reason as to why only one of the dpad directions was mapping before. In anycase, I did a full rework of XboDrv and fixed all of my controller issues. Now dpad-as-button is enabled by default but I can switch on the fly back to dpad as axis by hitting the Xbox Btn. Thank you so much Lablewhore for all the help. That fixed my issues with Reicast, but it did break the dpad in pifba and sega master systems emu. Apparently they both require the dpad as axis to work. In anycase, being able to switch between the two modes now allows the dpad to work in all emulators perfectly! Having Reicast dpad working with Axis mapping too one day would be great, and a lot easier to configure, but at least it will work 100% regardless with the 360 controller. As lablewhore noted before, it is quite a powerful feature to be able to switch on the fly between dpad as button and axis. I also am not having any issues with Reicast picking up the 360 controllers everytime now on start. I am going to go ahead and assume that issue was not actually a Reicast issue but an issue on my end with Xbodrv that I ended up fixing today. Now that all of this is fixed tomorrow I will get back onto testing more games and giving updates.

    We are so close to this emulator running most games perfectly! Just got to smooth out audio, and a few more speed tweaks and its there guys! This is turely amazing what we are getting out of the pi2 hardware and such an exciting time to be a old school gamer!

    #100816

    Djinny
    Participant

    Jet Grind Radio seems to play alright. I can’t really play it with how my joystick is atm, but it does “play”, and the frame rates seem workable so far.
    >.> the itty bitty buttons on the back of my gameboy that act as L/R triggers are hard on the fingers for games like shenmue and jetgrind radio, that require you to hold them down for extended periods. But that’s an issue on my end i will eventually remedy.

    For some reason people don't reply to my threads or posts. I seem to be a thread killer. I type correctly and my points, ideas, and requests are valid. So not sure why the famed Raspberry Pi community is all about linking to another persons post.

    #101964

    d8thstar
    Participant

    I can’t for the life of me figure out how to get the dead working with my wired 360 pad. Can someone post their configure file?

    Thanks in advance!

    Also, feature request if I may. Add an option to have a controller button combo to exit the emu. For instance, press “start” and “select” together to exit.

    Thanks a ton for all your work on this.

    #101977

    labelwhore
    Participant

    You need to initialize xboxdrv using the –dpad-as-button flag and use the mappings I provided. This will screw up the mappings of your other emulators, so you’ll have to remap those, but it’s the only way to get reicast to work with an xbox 360 controller.

    look here for how –dpad-as-button works http://pingus.seul.org/~grumbel/xboxdrv/xboxdrv.html

    and here’s the mapping I’m using. http://blog.petrockblock.com/forums/topic/configuring-controllers-in-reicast/#post-99160

    check my posts in this thread for more details.

    http://www.th3rdwave.com/tracks/
    ^^ my other hobby

    #102069

    d8thstar
    Participant

    i’ve been away from my pi way to long, i have no idea where to change the dpad as button flag.

    #102111

    labelwhore
    Participant

    https://github.com/RetroPie/RetroPie-Setup/wiki/Setting-up-the-XBox360-controller

    In my case, I’m doing it in rc.local, but if you’re using the init.d script, you’ll have to modify that.

    http://www.th3rdwave.com/tracks/
    ^^ my other hobby

    #102136

    dgtliqd
    Participant

    Hi All,

    Just trying to run the emulator, but I get an error that “_SYS_ can’t be found”. This is what my Dreamcast entry looks like in the es_systems.cfg file. I probably missed a simple step, but I can’t for the life of me, get this thing to run. Thanks in advance!

    <system>
    <fullname>Dreamcast</fullname>
    <name>dreamcast</name>
    <path>~/RetroPie/roms/dreamcast</path>
    <extension>.cdi .CDI</extension>
    <command>/opt/retropie/supplementary/runcommand/runcommand.sh 0 _SYS_ dreamcast %ROM%</command>
    <platform>dreamcast</platform>
    <theme>dreamcast</theme>
    </system>

    #102183

    dgtliqd
    Participant

    So I fixed my issue by adding the path for the reicast script AND explicitly adding the .sh extension so that the entry in my es_systems.cfg file looks like so:

    /opt/retropie/emulators/reicast/reicast.sh

    Now, however, I’m getting a new message/error when I try to run the emulator:

    Reading the entire Reicast emulator into memory to execute from there…
    LICENSE' ->tmpfs/LICENSE’
    nosym-reicast.elf' ->tmpfs/nosym-reicast.elf’
    README.md' ->tmpfs/README.md’
    reicast.elf' ->tmpfs/reicast.elf’
    reicast.sh' ->tmpfs/reicast.sh’
    cp: omitting directory ‘tmpfs’
    Personality: 00C00000
    Updated personality: 00800000
    Error getting current terminal settings
    Fatal error: failed to setup curses!

    in main -> ../../linux-dist/main.cpp : 995
    /opt/retropie/emulators/reicast/reicast.sh: line 10: 2966 Trace/breakpoint trap aoss ./
    reicast.elf -config config:homedir=”/home/pi” -config config:image=”$1″
    Freeing up memory…

    Not sure if it’s helpful, but I installed the emulator from the experimental section of the setup script and copied over the 2 required BIOS files.

    Thanks!

    #102421

    Djinny
    Participant

    Any progress on adding joystick/axis sensitivity, flipping, deadzones? I’ve been putting off making youtube videos with it until it works right with my gameboy’s thumb stick.
    Let me know! and thank you again Free5tyle

    For some reason people don't reply to my threads or posts. I seem to be a thread killer. I type correctly and my points, ideas, and requests are valid. So not sure why the famed Raspberry Pi community is all about linking to another persons post.

    #103560

    pfunk237
    Participant

    Sorry, i got a little confused.

    I want to use exit=16 so i can exit dreamcast ps3 controller.

    What script do i add this too?

    you reference a emu.cfg.

    do i need to add your script>??

    sorry i sort of jumped into your post and didn’t read everything.

    #103570

    epe9686518
    Participant

    You need to edit emu.cfg, thats how you map the buttons for any controller for Reicast. There is no “script” to edit… Just a simple config file…

    It’s in /home/pi/.reicast/emu.cfg

    I suggest you read up a bit about the emulator first as you seem to be missing some of the basics…

    https://github.com/RetroPie/RetroPie-Setup/wiki/Dreamcast

    #104063

    dougie1970
    Participant

    any updates ?

    #104064

    epe9686518
    Participant

    Was wondering the same, lot of progress was made very quickly but things seemed to have stalled for a bit. Keeping my fingers crossed on this one, would love to see this emulator running great on the PI!

    #104066

    Djinny
    Participant

    free5tyle hasn’t even logged-in in a little while. so i’m kinda worried something may have happened to him, maybe life got in the way, or worse.. 🙁

    For some reason people don't reply to my threads or posts. I seem to be a thread killer. I type correctly and my points, ideas, and requests are valid. So not sure why the famed Raspberry Pi community is all about linking to another persons post.

Viewing 35 posts - 71 through 105 (of 111 total)

Forums are currently read only - please visit the new RetroPie forums at https://retropie.org.uk/forums/