Dreamcast mvc2 crashing at stage 2
-
@rejesterd said in Dreamcast mvc2 crashing at stage 2:
Maybe the reicast.elf wasn't built..
ls -al ~/reicast-emulator/reicast/linux/
If you don't see it there (or it's also 0 bytes in size), then try the build again (i.e. the steps up to, and including, 'make -j4'). When it finishes, scroll up in the terminal window and look for ERROR or WARN messages.
ok I will run it again. The elf file is indeed there and it is about 50mb.
-
@tackett1980 said in Dreamcast mvc2 crashing at stage 2:
ok I will run it again. The elf file is indeed there and it is about 50mb.
Yeah, 50MB is in the ballpark.. as long as it's not zero. Mine is about 60MB, for reference.
When the new build finishes, try these steps to copy it to the reicast bin folder instead:
cd ~/reicast-emulator/reicast/linux/ cp reicast.elf reicast_49046ae chmod +x reicast_49046ae sudo mv reicast_49046ae /opt/retropie/emulators/reicast/bin/ ls -al /opt/retropie/emulators/reicast/bin/
After you run that last 'ls -al' command, the output should look like this:
$ ls -al /opt/retropie/emulators/reicast/bin/ total 120972 drwxr-xr-x 2 root root 4096 Feb 26 09:43 . drwxr-xr-x 4 root root 4096 Feb 25 14:34 .. -rwxr-xr-x 1 root root 61917760 Feb 25 15:37 reicast -rwxr-xr-x 1 root root 61918028 Feb 25 16:59 reicast_49046ae -rwxr-xr-x 1 root root 1263 Feb 26 09:43 reicast_49046ae.sh -rwxr-xr-x 1 root root 10956 Feb 25 14:34 reicast-joyconfig -rwxr-xr-x 1 root root 1247 Feb 25 14:34 reicast.sh
The 'reicast' and 'reicast_49046ae' files should have the same permissions (-rwxr-xr-x), and be approximately the same size.
I'll check up on this tomorrow. Welcome to the wild west.
-
Thanks for all your help, I am also going to hit the sack for the night.
I have two questions:
1: would this be easier to accomplish some of this in winscp when possible rather than doing it all with terminal commands?
2: would it also be easier to just uninstall the reicast entirely and build this one as the soul emulator? If I cant get the game working I will likely just delete the entire thing anyway so it doesn't really matter. I have no other dreamcast games Im interested in.
Again, I cant thank you enough for your help. You deserve like a fruit basket or something. If this forum had a rep feature or something Id be repping you into oblivion at this point.
-
No prob. Thanks for reporting it, because I've leared a lot. This game has issues in all 3 dc emulators. I still need to write up a report for the flycast folks to review.
-
Oh yeah, if you have winscp, you can just copy the emulators.cfg and reicast_49046ae.sh to your windows machine, edit the files there in Notepad++ (or whatever text editor you use), and then scp them back to the pi. I'm listing the terminal commands for my own benefit, as I'll likely refer back to these steps at some point.
-
I doubt your existing reicast installation is causing the issue you're having now. It just seems like you have different permissions than me, which didn't allow you to copy the reicast.elf to a new name (or to a location that's owned by the root user). So maybe just try the new steps I mentioned in my previous post.
-
-
Ok I will give this all another shot when I get home.
-
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. -
@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.
-
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.
-
@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.
-
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.
-
@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.
-
Roger that. Do I need to reinstall the standard reicast or just start manually building again like we were?
-
@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.
-
Ok will do.
-
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.
-
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.
-
Wait.
Those paths doesn’t look right.
My reicast bios are in
Home/pi/RetroPie/bios/dcNot the hidden folder.
-
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/.
-
..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/
-
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.
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.