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

    Reicast (Dreamcast) Emulator Not Playing !

    Scheduled Pinned Locked Moved Help and Support
    56 Posts 17 Posters 72.3k 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.
    • simonsterS
      simonster
      last edited by

      Reicast can be very picky about stuff.

      Can you load the SystemManager from the Dreamcast menu? If this doesn't work, then your Dreamcast BIOS is probably not working.

      The files need to be named correctly dc_boot.bin and dc_flash.bin, mine was incorrectly named when I first tried as I had been using Chankast on the PC previously where the files were named dc_bios.bin and dc_flash.bin.

      Also make sure you put the BIOS files in the "/home/pi/RetroPie/BIOS" folder.

      1 Reply Last reply Reply Quote 0
      • D
        dmanthing
        last edited by dmanthing

        I also have valid bios files in valid directory and valid roms... All reicast dows is takes me back to rom list. PS tried some games from compatibile list and always the same result. The funny thing is that reicast worked before last RetroPie update.

        Edit: SystemManager runs fine

        And in my /tmp/runncommand.log i have something like 'reicast.sh line 76 ..... (didnt memorize all)

        EDIT2: it is this line "aoss "$rootdir/emulators/reicast/bin/reicast" $params -config config:image="$ROM" >> /dev/null"

        EDIT3: Complete reading of runncommand.log

        /opt/retropie/emulators/reicast/bin/reicast.sh: line 76: 2358 Trace/breakpoint trap aoss "$rootdir/emulators/reicast/bin/reicast" $params -config config:image="$ROM" >> /dev/null

        1 Reply Last reply Reply Quote 0
        • H
          Hyell
          last edited by Hyell

          Hello, it's strange, if I compare with my reicast.sh, I don't have the same commande :
          This is mine :
          aoss "$rootdir/emulators/reicast/bin/reicast" -config config:homedir="$HOME" -config config:image="$ROM" >> /dev/null

          What is your PI and retropie version?

          [EDIT] this is the last version of reicast.sh :
          https://github.com/RetroPie/RetroPie-Setup/blob/master/scriptmodules/emulators/reicast/reicast.sh you can try with this one

          P 1 Reply Last reply Reply Quote 0
          • P
            pablo
            last edited by

            Just my two cents...

            Today I updated to 3.8.1 and Reicast died. None of the roms will load any more and System Manager will not launch either.

            I have recopied over my bios files that were working and tried alternatives.

            My runcommand.log states the following:

            terminate called after throwing an instance of 'std::logic_error'
              what():  basic_string::_S_construct null not valid
            /opt/retropie/emulators/reicast/bin/reicast.sh: line 76:  4550 Aborted                 aoss "$rootdir/emulators/reicast/bin/reicast" $params -config config:image="$ROM" >> /dev/null
            

            I have also tried completely removing reicast and reinstalling with no success. Any help would be appreciated.

            H S 2 Replies Last reply Reply Quote 0
            • P
              pablo @Hyell
              last edited by pablo

              Hi @Hyell

              Seeing as I am using the latest reicast.sh (I have double checked and confirmed that what is on my system is the same as the one you linked to), could you perhaps help me understand what it is this error is exactly telling me? Especially since the same error is thrown up for roms that previously worked and the System Manager.

              UPDATE: So it would seem that this issue is only affecting certain roms. For example, Soul Calibur, Mortal Kombat Gold and Crazy Taxi 2 no longer work but Marvel Vs Capcom 2 and Dead or Alive seem unaffected. Is there some sort of deeper log I can check out??

              1 Reply Last reply Reply Quote 0
              • H
                Hyell @pablo
                last edited by

                @pablo Can you add some logs to see what you have for ,$rootdir, $params and $ROM?
                just add :
                echo "$params" > test.log before aoss command.
                Maybe it's just a null variable.

                P 1 Reply Last reply Reply Quote 0
                • P
                  pablo @Hyell
                  last edited by pablo

                  @Hyell

                  So this is what params, rootdir and ROM gives me when trying to run System Manager:

                  #params
                  -config config:homedir=/home/pi -config x11:fullscreen=1 -config input:evdev_device_id_1=0 -config input:joystick_device_id=-1 -config players:nb=  -config audio:backend=oss -config audio:disable=0
                  #rootdir
                  /opt/retropie
                  #ROM
                  /home/pi/RetroPie/roms/dreamcast/systemManager.cdi
                  
                  

                  Also, I spoke too soon about it only affecting certain roms. After a restart everything is down again.

                  H 1 Reply Last reply Reply Quote 0
                  • H
                    Hyell @pablo
                    last edited by Hyell

                    @pablo you go players:nb= but you don't have any informations for this.

                    try to add :
                    [players]
                    nb=1 (or more)

                    in your emu.cfg file

                    [EDIT] In reicast.sh you got a function "mapInput() try to change this line (at the end of function) :
                    params+="-config players:nb=$device_counter "
                    to
                    params+="-config players:nb=2 "

                    P R 2 Replies Last reply Reply Quote 1
                    • D
                      dmanthing
                      last edited by dmanthing

                      Update on my case - manually installed reicast, still same error

                      edit - latest version of retropie on rpi3

                      1 Reply Last reply Reply Quote 0
                      • H
                        Hydro
                        last edited by Hydro

                        Can anyone redirect me to where I can get the fully working bios from ?

                        Try many still no luck !

                        1 Reply Last reply Reply Quote 0
                        • D
                          dmanthing
                          last edited by

                          None of the above fixes the problem...

                          1 Reply Last reply Reply Quote 0
                          • P
                            pablo @Hyell
                            last edited by

                            Thanks @Hyell, I realised what was causing this now. When I was doing the testing I only had my keyboard plugged in and my bluetooth controllers were off. It would seem that the player count ignores my keyboard and thus was making Dreamcast bomb.

                            H 1 Reply Last reply Reply Quote 0
                            • H
                              Hyell @pablo
                              last edited by

                              @pablo :
                              Ok, have fun with this emulator :)

                              1 Reply Last reply Reply Quote 0
                              • D
                                dmanthing
                                last edited by

                                Finally fixed my problem... For some strange reason whenever I would copy a rom file onto my SD it will miss 1MB in size. So if rom file was 720Mb, it would copy 719Mb onto sd card makin the rom file unusable. I used terminal command 'cp' to copy the file and finally it works like a charm!

                                F 1 Reply Last reply Reply Quote 0
                                • H
                                  Hydro
                                  last edited by

                                  still having problem getting reicast to workin on the pi 3 !

                                  can't even enter the system manager ?

                                  1 Reply Last reply Reply Quote 0
                                  • K
                                    krlitosmtnez
                                    last edited by krlitosmtnez

                                    I'm desperate.

                                    I have an Attract mode installation in a Pi3, and Reicast don't let me pass the date&hour screen. I changed the "reicast.sh" file for avoid the autoconfig (as I read in another post), and now reicast don't work (return automatically to the menu). So I decide to make an new installation with RetroPie clean install (without Attract mode) in another microSD. But now the Dreamcast emulator don't run even in the new installation.

                                    Clean install case

                                    • Clean install
                                    • Set controllers (IPAC 2)
                                    • I just copy the BIOS files.
                                    • Run Systemmanager.
                                    • Don't run. The emulator goes back to menu screen.

                                    Attract mode case

                                    • I save the original reicast.sh original file from the clean copy
                                    • I overwrite the file
                                    • I run Dreamcast emulator and it doesn't work.

                                    I use Sftp for copy the files to the Pi. I supose had good BIOS files because I saw the date & time screen before.

                                    What can I do?
                                    Thanks!

                                    1 Reply Last reply Reply Quote 0
                                    • H
                                      Hyell
                                      last edited by

                                      Hello,

                                      It can be the same issue of pablo.

                                      1. In attract mode case. When you say "it doesn't work", what do you mean?
                                        You can pass the date/hour screen?

                                      2. when you can't pass date/hour screen, can you move the cursor? I can be a controller issue. Maybe it's not config to work with reicast. Can you check on the config directory of reicast if you go the good configuration file for your controller? (/opt/retropie/configs/dreamcast/mapping)

                                      3. Your controller is on : /dev/input/ and have a name starting with "js"?

                                      K 1 Reply Last reply Reply Quote 0
                                      • K
                                        krlitosmtnez @Hyell
                                        last edited by krlitosmtnez

                                        Hi @Hyell

                                        1- Doesn't work = emulator don't run. Since I changed the reicast.sh file, the emulator don't start. I selected a game or Systemmanager, and then return to main screen. This is now my priority. I can't go to the date/hour screen!

                                        2 - I can't move the cursor.

                                        I made some config files with and without spaces:

                                        alt text

                                        (I put "/" for keep the text together in the quote)

                                        [emulator]
                                        mapping_name = Ultimarc IPAC 2 Ultimarc IPAC 2
                                        emu_btn_escape = 45
                                        /
                                        [dreamcast]
                                        btn_a = 56
                                        btn_b = 42
                                        btn_x = 29
                                        btn_y = 57
                                        btn_start = 44
                                        btn_dpad1_left = 105
                                        btn_dpad1_right = 106
                                        btn_dpad1_up = 103
                                        btn_dpad1_down = 108
                                        /
                                        [compat]
                                        btn_trigger_left = 2
                                        btn_trigger_right = 6

                                        This is the emu.cfg (I put "/" for keep the text together in the quote)

                                        [audio]
                                        backend = oss
                                        disable = 0
                                        /
                                        [config]
                                        Debug.SerialConsoleEnabled = 0
                                        Dreamcast.Broadcast = 4
                                        Dreamcast.Cable = 3
                                        Dreamcast.RTC = 2097339897
                                        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 = 3
                                        evdev_device_id_2 = -1
                                        evdev_device_id_3 = -1
                                        evdev_device_id_4 = -1
                                        evdev_mapping_1 = /opt/retropie/dreamcast/mappings/controller_Ultimarc_IPAC_2_Ultimarc_IPAC_2.cfg
                                        joystick_device_id = -1
                                        /
                                        [reios]
                                        ElfFile =
                                        /
                                        [validate]
                                        OpenGlChecks = 0

                                        3 - This is how looks like my /dev/input/ It's ok?

                                        alt text

                                        Now I see the input list... maybe I have to rename the config file to "Ultimarc_IPAC_2_Ultimarc_IPAC_2_9" ???

                                        Anyway, I can't run the emulator!!

                                        Thanks for your help :-)

                                        1 Reply Last reply Reply Quote 0
                                        • H
                                          Hyell
                                          last edited by Hyell

                                          @krlitosmtnez
                                          Ok.
                                          Can you copy here your reicast.sh file please? We will see why reicast don't start.

                                          And we will check your controller after.

                                          K 1 Reply Last reply Reply Quote 0
                                          • K
                                            krlitosmtnez @Hyell
                                            last edited by krlitosmtnez

                                            @Hyell

                                            I downloaded the file that you put above. I put at /opt/retropie/emulators/reicast/bin/

                                            https://github.com/RetroPie/RetroPie-Setup/blob/master/scriptmodules/emulators/reicast/reicast.sh you can try with this one

                                            Anyway, this is the content:

                                            #!/usr/bin/env bash
                                            AUDIO="$1"
                                            ROM="$2"
                                            rootdir="/opt/retropie"
                                            configdir="$rootdir/configs"
                                            
                                            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 "$configdir/dreamcast/mappings/" -e "= $(</sys/class/input/event${ev_device_num}/device/name)")
                                                        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 "
                                            fi
                                            params+="-config input:joystick_device_id=-1 "
                                            params+="-config players:nb=$device_counter "
                                            echo "$params"
                                            }
                                            
                                            if [[ -f "$HOME/RetroPie/BIOS/dc_boot.bin" ]]; then
                                            params="-config config:homedir=$HOME -config x11:fullscreen=1 "
                                            getAutoConf reicast_input || params+=$(mapInput)
                                            if [[ "$AUDIO" == "OSS" ]]; then
                                                params+=" -config audio:backend=oss -config audio:disable=0 "
                                                aoss "$rootdir/emulators/reicast/bin/reicast" $params -config config:image="$ROM" >> /dev/null
                                            else
                                                params+=" -config audio:backend=alsa -config audio:disable=0"
                                                "$rootdir/emulators/reicast/bin/reicast" $params -config config:image="$ROM" >> /dev/null
                                            fi
                                            else
                                            dialog --msgbox "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
                                            fi
                                            

                                            Thanks again.

                                            H 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.