#99514
free5ty1e
Participant

Frameskip: No, I have poked around the code for frameskip and it appears to be somewhat implemented but disabled completely. Not sure if what is in place actually works, but it definitely should be brought out to an emu.cfg setting. I’ll look into doing this.

Powerstone: Haven’t tried it. Let me know if you do!

———————————

Reicast new beta branch: free5ty1e/rpi2/vmus-in-home-dir

Moar progress on Reicast. Better stability, VMUs and emu.cfg and BIOS files now reside in /home/pi/.reicast
NOTE: YOU WILL NEED TO PLACE YOUR BIOS FILES OR LINKS TO THEM IN A NEW LOCATION: /home/pi/.reicast/data/

I’ve been able to have a Dreamcast game going on for several additional hours before some memory leak decides to confuse the Pi into crashing; instead of just 1 or 2 hours, I now am able to get a good 4-6 hours in before a crash!

Additionally, since the VMUs are no longer in memory while the Dreamcast is running, any saved games are written immediately and correctly to the SD card (instead of potentially being lost if the Pi crashes before the exit script can update your VMU files from the tmpfs). No need to have VMU files in the /opt/retropie/emulators/reicast/ folder, smaller memory footprint and all that.

For completeness, here’s my mapping section for my genuine PS3 controller connected via my CSR 4.0 bluetooth adapter, added to emu.cfg:

UPDATED


[PLAYSTATION(R)3 Controller]
button.0=Btn_Z
button.1=Btn_C
button.2=Btn_D
button.3=Btn_Start
button.4=DPad_Up
button.5=DPad_Right
button.6=DPad_Down
button.7=DPad_Left
button.8=Axis_LT
button.9=Axis_RT
button.10=DPad2_Left
button.11=DPad2_Right
button.12=Btn_Y
button.13=Btn_B
button.14=Btn_A
button.15=Btn_X
button.16=Quit
axis.0=Axis_X
axis.1=Axis_Y

You can add as many of these sections to the emu.cfg as you’d like, and if you have a matching controller name connected during Reicast startup, your custom button maps will be applied (overlaid, actually) to the default map.

Post your configs! :D

Here’s the updated script I’m using to build and install Reicast from my github repo (still piggybacking on the RetroPie script awesomeness)

UPDATED


#!/bin/bash
echo "Temporarily modifying RetroPie module..."
sed -i '/gitPullOrClone/c\gitPullOrClone "$md_build" https://github.com/free5ty1e/reicast-emulator.git free5ty1e/rpi2/vmus-in-home-dir' ~/RetroPie-Setup/scriptmodules/emulators/reicast.sh

echo "Requesting a build through official RetroPie calls..."
sudo ~/RetroPie-Setup/retropie_packages.sh reicast

echo "Restoring original RetroPie-Setup state..."
pushd ~/RetroPie-Setup
git reset --hard
popd

Here is the launch script — let’s call it /home/pi/dreamcast.sh — that I am using to run Reicast smoothly with no visual stuttering / pausing (uses tmpfs to run in memory and not allocate virtual memory on the SD card. Audio is still not that smooth. I am also thinking the tmpfs size can be dropped down further, was 512MB is now 450MB, I’ve only ever seen ~60MB used… let me know if someone plays with this number with good results):

UPDATED


#!/bin/bash
pushd /opt/retropie/emulators/reicast
echo Reading the entire Reicast emulator into memory to execute from there...
sudo mkdir tmpfs
sudo mount -o size=450M -t tmpfs none tmpfs/
sudo cp -v * tmpfs/
cd tmpfs
sudo aoss ./reicast.elf -config config:homedir=/home/pi -config config:image="$1"
cd ..
echo Ensuring any freshly-created VMUs are owned by pi and not root...
sudo chown -R pi:pi .reicast
echo Freeing up memory...
sudo umount /opt/retropie/emulators/reicast/tmpfs
sudo rm -rf tmpfs
popd

…and here is the entry for your es_systems.cfg to launch via this script in EmulationStation, for completeness:

UNCHANGED


    <system>
        <fullname>Sega Dreamcast - Reicast</fullname>
        <name>dreamcast</name>
        <path>~/RetroPie/roms/dreamcast</path>
        <extension>.cdi .CDI</extension>
        <command>/opt/retropie/supplementary/runcommand/runcommand.sh 0 "/home/pi/dreamcast.sh %ROM%" "dreamcast"</command>
        <platform>dreamcast</platform>
        <theme>dreamcast</theme>
    </system>

Enjoy!