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

    Dreamcast mvc2 crashing at stage 2

    Scheduled Pinned Locked Moved Help and Support
    reicastmvc2crashingstage 2
    128 Posts 6 Posters 13.4k 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.
    • T
      tackett1980 @rejesterd
      last edited by

      @rejesterd

      Ok I will give this all another shot when I get home.

      1 Reply Last reply Reply Quote 0
      • T
        tackett1980 @rejesterd
        last edited by tackett1980

        @rejesterd

        Ok, I think I’m just to stupid to do this correctly.

        My permissions look the same, all the files are there and nothing is zero bytes anymore except now when I boot up to select emulators there are like 3 “reicast for mvc2” emulators to choose from and all 3 of them load no information according to the run command log.

        I think I may just give up and uninstall the Dreamcast emulator all together.

        Edit:
        Hell with it, the original reicast won’t load either just crashes back to emulation station.

        1 Reply Last reply Reply Quote 0
        • R
          rejesterd
          last edited by rejesterd

          @tackett1980 - hm.. the 3 mvc2 emulator options is wrong, for sure. Based on what you posted before, I think your files need to look like this:

          /opt/retropie/emulators/reicast/bin/reicast_49046ae.sh:

          #!/usr/bin/env bash
          
          # This file is part of The RetroPie Project
          #
          # The RetroPie Project is the legal property of its developers, whose names are
          # too numerous to list here. Please refer to the COPYRIGHT.md file distributed with this source.
          #
          # See the LICENSE.md file at the top-level directory of this distribution and
          # at https://raw.githubusercontent.com/RetroPie/RetroPie-Setup/master/LICENSE.md
          #
          
          AUDIO="$1"
          ROM="$2"
          XRES="$3"
          YRES="$4"
          rootdir="/opt/retropie"
          configdir="$rootdir/configs"
          biosdir="$HOME/RetroPie/BIOS/dc"
          
          source "$rootdir/lib/inifuncs.sh"
          
          function mapInput() {
              local js_device
              local js_device_num
              local ev_device
              local ev_devices
              local ev_device_num
              local device_counter
              local conf="$configdir/dreamcast/emu.cfg"
              local params=""
          
              # get a list of all present js device numbers and device names
              # and device count
              for js_device in /dev/input/js*; do
                  js_device_num=${js_device/\/dev\/input\/js/}
                  for ev_device in /dev/input/event*; do
                      ev_device_num=${ev_device/\/dev\/input\/event/}
                      if [[ -d "/sys/class/input/event${ev_device_num}/device/js${js_device_num}" ]]; then
                          file[$ev_device_num]=$(grep --exclude=*.bak -rl -m 1 "$configdir/dreamcast/mappings/" -e "= $(</sys/class/input/event${ev_device_num}/device/name)" | tail -n 1)
                          if [[ -f "${file[$ev_device_num]}" ]]; then
                              #file[$ev_device_num]="${file[$ev_device_num]##*/}"
                              ev_devices[$ev_device_num]=$(</sys/class/input/event${ev_device_num}/device/name)
                              device_counter=$(($device_counter+1))
                          fi
                      fi
                  done
              done
          
              # emu.cfg: store up to four event devices and mapping files
              if [[ "$device_counter" -gt "0" ]]; then
                  # reicast supports max 4 event devices
                  if [[ "$device_counter" -gt "4" ]]; then
                      device_counter="4"
                  fi
                  local counter=0
                  for ev_device_num in "${!ev_devices[@]}"; do
                      if [[ "$counter" -lt "$device_counter" ]]; then
                          counter=$(($counter+1))
                          params+="-config input:evdev_device_id_$counter=$ev_device_num "
                          params+="-config input:evdev_mapping_$counter=${file[$ev_device_num]} "
                      fi
                  done
                  while [[ "$counter" -lt "4" ]]; do
                      counter=$(($counter+1))
                      params+="-config input:evdev_device_id_$counter=-1 "
                      params+="-config input:evdev_mapping_$counter=-1 "
                  done
              else
                  # fallback to keyboard setup
                  params+="-config input:evdev_device_id_1=0 "
                  device_counter=1
              fi
              params+="-config input:joystick_device_id=-1 "
              params+="-config players:nb=$device_counter "
              echo "$params"
          }
          
          if [[ ! -f "$biosdir/dc_boot.bin" ]]; then
              dialog --no-cancel --pause "You need to copy the Dreamcast BIOS files (dc_boot.bin and dc_flash.bin) to the folder $biosdir to boot the Dreamcast emulator." 22 76 15
              exit 1
          fi
          
          params=(-config config:homedir=$HOME -config x11:fullscreen=1)
          [[ -n "$XRES" ]] && params+=(-config x11:width=$XRES -config x11:height=$YRES)
          getAutoConf reicast_input && params+=($(mapInput))
          [[ -n "$AUDIO" ]] && params+=(-config audio:backend=$AUDIO -config audio:disable=0)
          [[ -n "$ROM" ]] && params+=(-config config:image="$ROM")
          if [[ "$AUDIO" == "oss" ]]; then
              aoss "$rootdir/emulators/reicast/bin/reicast_49046ae" "${params[@]}"
          else
              "$rootdir/emulators/reicast/bin/reicast_49046ae" "${params[@]}"
          fi
          

          /opt/retropie/configs/dreamcast/emulators.cfg:

          reicast-for-mvc2 = "/opt/retropie/emulators/reicast/bin/reicast_49046ae.sh oss %ROM%"
          reicast-audio-omx = "/opt/retropie/emulators/reicast/bin/reicast.sh omx %ROM%"
          reicast-audio-oss = "/opt/retropie/emulators/reicast/bin/reicast.sh oss %ROM%"
          default = "reicast-audio-omx"
          

          I would at least try those before quitting, because the resulting runcommand.log indicates that the reicast command isn't even being executed. Probably not you.. more likely a typo by me from earlier.

          1 Reply Last reply Reply Quote 0
          • R
            rejesterd
            last edited by

            Also, if it still doesn't work after matching your .sh and .cfg files to the ones I just posted, maybe just try running the command right from the terminal on the pi:

            /opt/retropie/emulators/reicast/bin/reicast_49046ae.sh oss "/home/pi/RetroPie/roms/dreamcast/Marvel vs. Capcom 2 (USA).gdi"
            

            ..and see what you get.

            1 Reply Last reply Reply Quote 0
            • R
              rejesterd
              last edited by rejesterd

              @tackett1980 - Gah.. another typo in my previous post.. please look at my latest output for reicast_49046ae.sh. That should be correct. The last 5 lines is really all you need to look at.

              T 1 Reply Last reply Reply Quote 0
              • T
                tackett1980 @rejesterd
                last edited by

                @rejesterd

                Ok I’ll Go back and give it a shot. I actually deleted everything already but that’s Ok might make it better to just start from scratch again.

                R 1 Reply Last reply Reply Quote 0
                • R
                  rejesterd @tackett1980
                  last edited by

                  @tackett1980 Hope it'll be worth the effort this time, as the hard part is typically getting the .elf to build (and you were able to do that). Just seems like a config issue now.

                  T 1 Reply Last reply Reply Quote 0
                  • T
                    tackett1980 @rejesterd
                    last edited by

                    @rejesterd

                    Roger that. Do I need to reinstall the standard reicast or just start manually building again like we were?

                    R 1 Reply Last reply Reply Quote 0
                    • R
                      rejesterd @tackett1980
                      last edited by

                      @tackett1980 Yeah, reinstall reicast from the retropie setup script first. There are other files/links that still need to be there for the custom-built binary to work.

                      T 2 Replies Last reply Reply Quote 0
                      • T
                        tackett1980 @rejesterd
                        last edited by

                        @rejesterd

                        Ok will do.

                        1 Reply Last reply Reply Quote 0
                        • T
                          tackett1980 @rejesterd
                          last edited by tackett1980

                          @rejesterd

                          @rejesterd

                          Hello,
                          Sorry this took so long to get back to but here goes.

                          -I reinstalled the retropie reicast
                          -I followed what we did to begin with at the beginning of this thread to build the reicast.elf.
                          This was all successful.

                          I continued our steps and in the end I still ended up with three “reicast for mvc2” emulators.

                          I chose one and booted and this time it booted, however. It still crashed at stage 2.

                          I then looked to edit both the files in the way you showed me.

                          The 49046ae.sh file is no longer 0kb. It is 4. The text appears identical to what you posted.

                          However the emulators.cfg is where the three reicast for mvc2 settings were. This cfg had the reicast for mvc pointing toward the standard reicast binary , which explains the original results. I then made this like the one you showed which is now pointing toward the 49046 binary and then tried to boot the rom.

                          This one will not boot, crashes back to emulation station. Hold on I will copy the run command log.

                          Parameters: 
                          Executing: /opt/retropie/emulators/reicast/bin/reicast_49046ae.sh oss "/home/pi/RetroPie/roms/dreamcast/Marvel vs. Capcom 2 (USA).gdi"
                          libEGL warning: DRI3: xcb_connect failed
                          libEGL warning: DRI2: xcb_connect failed
                          libEGL warning: DRI2: xcb_connect failed
                          Config dir is: /home/pi/.reicast/
                          Data dir is:   /home/pi/.reicast/
                          Personality: 00C00000
                          Updated personality: 00800000
                          ARM VFP-Run Fast (NFP) enabled !
                          Linux paging: 4096 00001000 00000FFF
                          Virtual cfg config:homedir=/home/pi
                          Virtual cfg x11:fullscreen=1
                          Virtual cfg input:evdev_device_id_1=2
                          Virtual cfg input:evdev_mapping_1=/opt/retropie/configs/dreamcast/mappings/controller_DragonRiseInc.GenericUSBJoystick.cfg
                          Virtual cfg input:evdev_device_id_2=3
                          Virtual cfg input:evdev_mapping_2=/opt/retropie/configs/dreamcast/mappings/controller_DragonRiseInc.GenericUSBJoystick.cfg
                          Virtual cfg input:evdev_device_id_3=-1
                          Virtual cfg input:evdev_mapping_3=-1
                          Virtual cfg input:evdev_device_id_4=-1
                          Virtual cfg input:evdev_mapping_4=-1
                          Virtual cfg input:joystick_device_id=-1
                          Virtual cfg players:nb=2
                          Virtual cfg audio:backend=oss
                          Virtual cfg audio:disable=0
                          Virtual cfg config:image=/home/pi/RetroPie/roms/dreamcast/Marvel vs. Capcom 2 (USA).gdi
                          
                          Error: Unable to open X display
                          evdev: Opened device 'DragonRise Inc.   Generic   USB  Joystick  ' using custom mapping 'DragonRise Inc.   Generic   USB  Joystick   mapping'
                          evdev: Opened device 'DragonRise Inc.   Generic   USB  Joystick  ' using custom mapping 'DragonRise Inc.   Generic   USB  Joystick   mapping'
                          Screen DPI is 96, size 0 x 0. Scaling by 1.00
                          CreateContext
                          EGL: wind: (nil), disp: (nil)
                          EGL: Got display
                          EGL Error: eglInitialize failed
                          Failed to create rendering context
                          
                          evdev: Device 'DragonRise Inc.   Generic   USB  Joystick  ' on port 0 disconnected
                          evdev: Device 'DragonRise Inc.   Generic   USB  Joystick  ' on port 1 disconnected
                          
                          

                          I also tried to run from the command line with no success.

                          1 Reply Last reply Reply Quote 0
                          • R
                            rejesterd
                            last edited by

                            This might be due to a missing patch that's required for Pi3 (but not the Pi4). But this..

                            EGL Error: eglInitialize failed

                            ..could mean you have a different version of the bios files than I do. To confirm, just get the md5sum value..

                            pi@raspberrypi:~ $ md5sum ~/.reicast/data/*.bin
                            e10c53c2f8b90bab96ead2d368858623  /home/pi/.reicast/data/dc_boot.bin
                            764b39e3d3fa15f0156b9595ec68416d  /home/pi/.reicast/data/dc_flash.bin
                            eff5d8cead94b9e62b9b12817fa585af  /home/pi/.reicast/data/dc_nvmem.bin
                            

                            If your values for these files are the same, then I would say this is not going to work on the Pi3. I'm not sure you need to worry about dc_nvmem.bin (as I think that's installed by flycast). But the other 2, should be the same as mine.

                            I can tell you for sure, it works on the Pi4. I would like to take a closer look at the retropie way of installing patches, because that's the only missing piece I can think of at this point.

                            T 1 Reply Last reply Reply Quote 0
                            • T
                              tackett1980 @rejesterd
                              last edited by tackett1980

                              @rejesterd

                              Wait.

                              Those paths doesn’t look right.

                              My reicast bios are in
                              Home/pi/RetroPie/bios/dc

                              Not the hidden folder.

                              1 Reply Last reply Reply Quote 0
                              • R
                                rejesterd
                                last edited by

                                Oh that's interesting. Note that .reicast is just a symbolic link (not a real directory). The real directory is /opt/retropie/configs/dreamcast/data/. As far as I know, that's where reicast looks for the *.bin files. I think it's flycast that looks to ~/RetroPie/BIOS/dc/. I would try copying the *.bin files from ~/RetroPie/BIOS/dc/ to /opt/retropie/configs/dreamcast/data/.

                                T 1 Reply Last reply Reply Quote 0
                                • R
                                  rejesterd
                                  last edited by

                                  ..and it does look like there's a slight difference in the nvmem bin file between reicast and flycast:

                                  pi@raspberrypi:~ $ md5sum ~/.reicast/data/*.bin
                                  e10c53c2f8b90bab96ead2d368858623  /home/pi/.reicast/data/dc_boot.bin
                                  764b39e3d3fa15f0156b9595ec68416d  /home/pi/.reicast/data/dc_flash.bin
                                  eff5d8cead94b9e62b9b12817fa585af  /home/pi/.reicast/data/dc_nvmem.bin
                                  pi@raspberrypi:~ $ md5sum ~/RetroPie/BIOS/dc/*.bin
                                  e10c53c2f8b90bab96ead2d368858623  /home/pi/RetroPie/BIOS/dc/dc_boot.bin
                                  764b39e3d3fa15f0156b9595ec68416d  /home/pi/RetroPie/BIOS/dc/dc_flash.bin
                                  ec6f52b681b2220d0c363abec77af8f2  /home/pi/RetroPie/BIOS/dc/dc_nvmem.bin
                                  

                                  But I would still try copying all 3 dc_*.bin files to ~/.reicast/data/

                                  1 Reply Last reply Reply Quote 0
                                  • T
                                    tackett1980 @rejesterd
                                    last edited by

                                    @rejesterd

                                    Copy or move them entirely? As far as I know the official reicast build looks for them in the /bios/dc folder. I originally had a hard time getting reicast to even load with them in any other directory.

                                    I wonder if the pi4 build wants them in a different directory or if the dev reicast does.

                                    R 1 Reply Last reply Reply Quote 0
                                    • R
                                      rejesterd @tackett1980
                                      last edited by

                                      @tackett1980 Yeah, I think you're right. In looking back at the reicast.sh, it does seem that it's looking to ~/RetroPie/BIOS/dc/. Maybe I have the bin files under ~/.reicast/data/ because I followed the wiki page when I was originally setting everything up.

                                      The other interesting thing is that you get a LOT more output in your runcommand.log than I do. I only get about 3 lines. Not sure why that is. So I guess just compare your md5sum values in ~/RetroPie/BIOS/dc/ to mine. Those should be the same, regardless of us being on different Pi models.

                                      Copying the files won't hurt anything, so you can try that too. Copy them, don't move them. If it still doesn't work, the last resort (as I know all too well from my job) would be a join.me session.

                                      T 1 Reply Last reply Reply Quote 0
                                      • T
                                        tackett1980 @rejesterd
                                        last edited by tackett1980

                                        @rejesterd

                                        Ok so there are short cuts in my data folder to both the bios files that points toward the bios/dc dir.

                                        The nvmem is also there, but it’s an actual file and not a shortcut.

                                        Does anyone have this working properly on pi3? Surely I’m not the only one having this issue.

                                        1 Reply Last reply Reply Quote 0
                                        • R
                                          rejesterd
                                          last edited by

                                          You're right again.. it's the same on my pi4.. there are only symlinks in ~/.reicast/data/ and a copy of nvmem.

                                          T 1 Reply Last reply Reply Quote 0
                                          • T
                                            tackett1980 @rejesterd
                                            last edited by

                                            @rejesterd

                                            So it seems like for some reason or another the new binary isn’t working.

                                            Is that about the jest of it? Everything is pointing to run it it right?

                                            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.