MKDD Tint Issue RPI5
-
@sugarfree Don't forget about g++-11 too (sorry, I added it in an edit just a moment ago).
-
@gvx64 Yes, this is what was missing.
Update: Building completed successfully.
-
@sugarfree said in MKDD Tint Issue RPI5:
@gvx64 Yes, this is what was missing.
Compiled fine for my Pi 5 without error.
Running the binary yielded this error dialog:
Dolphin-emu Error Failed to load image from file "/usr/local/share/dolphin-emu/sys/Resources/dolphin_logo@2x.png".
So I did two (2) things:
- Created a symlink in /user/local/share with
sudo ln -s ~/dolphin-rpi/Data dolphin-emu
- Renamed the
Sys
folder in ~/dolphin-rpi/Data tosys
(note lowercase "s")
That seems to have worked for now.
5.0 doesn't support .rvm GC files, so I'm looking for the alternative formats (elf, dol, gcm, iso, tgc, wbfs, ciso, gcz, wad or dff) and will report back.
- Created a symlink in /user/local/share with
-
@roslof said in MKDD Tint Issue RPI5:
5.0 doesn't support .rvm GC files, so I'm looking for the alternative formats (elf, dol, gcm, iso, tgc, wbfs, ciso, gcz, wad or dff) and will report back.
@gvx64 Okay, found a Mario Kart Double Dash iso that worked. Had to switch to Vulkan in the Dolphin GUI and it ran. Poorly. Below framerate in all cases, but rendered fine in 1P / 2P modes.
But the 4-player camera mode rendered dark and unplayable.
But no blue tint, so there's that. :)
-
I have built the binaries, but I can't figure out how to launch them. I'm sure I'm missing something. GameCube ROMs don't appear in EmulationStation. Do I need to install Dolphin emulator from the experimental packages?
i have manually create the
configs/gc/emulators.cfg file :olphin-5.0-4544-nogui = "XINIT-WM: /home/pi/dolphin-emu-5.0-4544/dolphin-emu/Build/Binaries/dolphin-emu-nogui -e %ROM% -u /home/pi/DolphinConfig5.0/"
-
@roslof It is disappointing to hear that it is running below 100% with Vulkan on a Pi5. What kind of FPS are you getting? Have you tried lowering the CPU override value below 100% to get a higher FPS? Also, this old version of dolphin still has the disable External Framebuffer option available which is useful in some games for getting higher performance (and it resolves a major bug in Baten Kaitos without having to turn off dual core support that cannot be done in current builds of dolphin). Maybe a dumb question but did you make sure that Vulkan is using V3D and not that llvmpipe software renderer mode? I am able to get fairly playable experiences in Metroid Prime and Mario Golf on my overclocked Pi4 with this build using Vulkan (albeit with CPU override factors down around 0.6) and so I was expecting better results than this on the Pi5.
@sugarfree I recommend first compiling a current build of standalone dolphin using your RetroPie Setup menu to launch the install script. This will create the emulators.cfg file and associated directories for you. Then you just need to add the additional line that I included above for this old version of dolphin. This build of dolphin is very old, you will for sure want to have a current build as a default emulator on your Pi for playing games that do not have rendering issues due to this alpha pass problem.
@roslof Thanks, that's a good solution. Typical procedure is to run "sudo make install" as a final step after building but this copies configuration/settings files to a bunch of inconvenient locations (root directory, /usr/local/share directory, etc). Doing that might resolve this error, but after building hundreds of legacy versions of dolphin on my Pi I generally don't do this step. Alternatively, you can use the no-gui binary and then non-significant error messages like these will only get printed in the terminal but will not impact gameplay. I prefer the no-gui build as I find it runs slightly faster (~5%) which matters a lot on the Pi4.
-
@gvx64 said in MKDD Tint Issue RPI5:
@roslof It is disappointing to hear that it is running below 100% with Vulkan on a Pi5. What kind of FPS are you getting? Have you tried lowering the CPU override value below 100% to get a higher FPS? Also, this old version of dolphin still has the disable External Framebuffer option available which is useful in some games for getting higher performance (and it resolves a major bug in Baten Kaitos without having to turn off dual core support that cannot be done in current builds of dolphin). Maybe a dumb question but did you make sure that Vulkan is using V3D and not that llvmpipe software renderer mode? I am able to get fairly playable experiences in Metroid Prime and Mario Golf on my overclocked Pi4 with this build using Vulkan (albeit with CPU override factors down around 0.6) and so I was expecting better results than this on the Pi5.
Thanks for the questions and support!
TLDR; Mario Double Dash! yielded much better results after starting from scratch (clean/reinstall). Single Player is at or around 60FPS with dips. Multiplayer is sluggish (2P) and unplayable (4P).
So I went ahead and cleaned everything up and started from scratch. Seems that my configs were out of sorts on the first run.. I created another emulator entry for initial testing so I could use hotkey functions and go back and forth between game and GUI:
dolphin-5.0 = "XINIT-WMC: /home/pi/dolphin-rpi/Build/Binaries/dolphin-emu -e %ROM% -u /home/pi/DolphinConfig5.0/"
I found it nice using 'WMC' along with setting an exit hotkey chord and running with the "fullscreen" display option checked. I could then view the game perfectly (no frame) and still exit to the GUI
On this run, using Mario Double Dash!: running a Pi 5 stock speeds (no overclocking anything)* running Vulkan w/V3D 7.1.7, default rendering options for now.
- FPS typically at 60 with dips no lower than 54FPS
- 2 Player Split Screen is under framerate a bit most of the time (better with no-gui as you called out)
- 4 Player Split Screen is unplayable (speed and bad render)
Will play around with settings and maybe overclocking to see how far 2P mode can be pushed, but 4P is a loss.
-
Great news! I hope to be able to run Resident Evil 4 correctly and to summarize gvx64 work into a scriptmodule.
-
@sugarfree nice, have you got your script or uploading a PR up to RetroPie Setup or Extras?
-
@retropieuser555 "I haven't tried it yet, but if I find a way to do it, I will post it in the retropie-extra repo of course.
-
@sugarfree Yes, thank you for doing that. You should be able to modify the existing dolphin.sh experimental script module fairly easily to create a new build script for this old version by adapting the build steps that I provided above (note that I edited the build instruction post yesterday to correct some of the errors and omissions in my original instructions). One thing to make sure of is that Bookworm users know to only use the Vulkan backend with this build (That said, GLES should work fine for Pi4 users with Bullseye and Buster 64-Bit).
@roslof Thank you for the feedback and the detailed information on the performance of MKDD. It's too bad about the 4p mode but I am happy to hear that at least 1p is playable with 2p possibly being playable with setting optimization.
Has anybody tested Resident Evil 4 yet? I am curious to know if this game is playable on the Pi5 using this build.
-
@gvx64 said in MKDD Tint Issue RPI5:
Has anybody tested Resident Evil 4 yet? I am curious to know if this game is playable on the Pi5 using this build.
I'll start looking into it now.
-
@roslof said in MKDD Tint Issue RPI5:
@gvx64 said in MKDD Tint Issue RPI5:
Has anybody tested Resident Evil 4 yet? I am curious to know if this game is playable on the Pi5 using this build.
I'll start looking into it now.
Journey so far with Resident Evil 4, again stock Pi 5 and no alterations to the dolphin 5.0 settings:
GETTING STARTED
- Again, can't use .RVZs, so this was tested with an .ISO build.
- Running dolphin-emu (not the no-gui version, so things will only get better)
- Started a New Game
INTRO
- Everything smooth up until when the game switches from pre-rendered videos to in-game cinematics. Frequent pauses and pops every time the camera changes position, and in some scenes with fog/lighting effects (car headlights with road dust as an example)
- Communication tool between Leon and Hunnigan renders well throughout the game
GAMEPLAY
- By design, FPS is locked to 30FPS.
*General gameplay typically within 28-30FPS, with periodic dips below. Overall seems very playable, especially in closed-in areas - Cut-scene moments and forced camera swaps during battle sequences often slow down or freeze for a moment
Overall, very playable if you don't mind occasional pops and hiccups, especially with cut-scenes. Game seems to render fine with a few flickery things that appear here and there, but nothing too distracting, Not being able to use compressed .RVZs is unfortunate -- especially for this game which is a monster uncompressed as two (2) disc ISOs. I believe CSOs are supported, so might try to create some of those.
-
@roslof Thanks again for your help here with testing. It's much appreciated.
It looks like .RVZ support got added in dolphin-emu-5.0-12188:
https://dolphin-emu.org/download/dev/99822518994d62def4e336f6746d6a2e2d108fb2/
I will spend a little time and see how doable it might be to backpatch the changes of 5.0-12188 into 5.0-4544. I can't promise anything as 7,000 commits is a lot revisions where major structural changes to the code may have occurred in that time that could make a back-patch very difficult. If this were the video backend or JIT cores I would say there is no way I could roll-forward the code that far. But we might get lucky if the IO core is a more sparsely maintained section of the code and that there aren't too many changes. I will give it a try and I will let you know if I make any progress implementing rvz support into this old version of dolphin.
-
@sugarfree said in MKDD Tint Issue RPI5:
I haven't tried it yet, but if I find a way to do it, I will post it in the retropie-extra repo of course.
Sorry guys, I couldn't get a script working for this emulator.
-
@roslof I just wanted to let you know that I have pushed a new master that has .rvz support as per the changes in 5.0-12188 (build instructions same as above). This build should now be able to open and play .rvz files. I converted a few of my iso's to rvz's (Baten Kaitos Eternal Wings and Mario Golf) and there doesn't appear to be any noticeable loss in performance between the iso and rvz formats of these games. That being said, please let me know if you have different experiences running rvz files.
@sugarfree Can you please give this install script a try. You should just have to make a file called "dolphin-rpi.sh" in /home/pi/RetroPie-Setup/scriptmodules/emulators and then paste the contents below into it. This isn't the prettiest implementation but make install was giving me all kinds of headaches and so I ended up just using the script to manually copy files into the proper location.
#!/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 # rp_module_id="dolphin-rpi" rp_module_desc="Gamecube/Wii Dolphin Modified from 5.0-4544 for Pi Users" rp_module_help="ROM Extensions: .elf .dol .gcm .iso .rvz .wbfs .ciso .gcz .wad .dff\n\nCopy your Gamecube roms to $romdir/gc and Wii roms to $romdir/wii" rp_module_licence="GPL2 https://github.com/gvx64/dolphin-rpi/blob/master/license.txt" rp_module_repo="git https://github.com/gvx64/dolphin-rpi.git master" rp_module_section="exp" rp_module_flags="aarch64 vulkan" function depends_dolphin-rpi() { local depends=(cmake gcc-11 g++-11 pkg-config libasound2-dev libopenal-dev libevdev-dev libgtk2.0-dev) isPlatform "kms" && depends+=(xorg matchbox-window-manager) getDepends "${depends[@]}" } function sources_dolphin-rpi() { gitPullOrClone } function build_dolphin-rpi() { mkdir build cd build # use the bundled 'speexdsp' libs, distro versions before 1.2.1 trigger a 'cmake' error cmake .. -DCMAKE_C_COMPILER=gcc-11 -DCMAKE_CXX_COMPILER=g++-11 -DBUNDLE_SPEEX=ON -DENABLE_AUTOUPDATE=OFF -DENABLE_ANALYTICS=OFF -DUSE_DISCORD_PRESENCE=O> make clean make md_ret_require="$md_build/build/Binaries/dolphin-emu" } function install_dolphin-rpi() { #copy binaries to /opt/retropie/emulators/dolphin-rpi cd build/Binaries/ mkdir /opt/retropie/emulators/dolphin-rpi/ mkdir /opt/retropie/emulators/dolphin-rpi/bin/ mv dolphin-emu /opt/retropie/emulators/dolphin-rpi/bin/ mv dolphin-emu-nogui /opt/retropie/emulators/dolphin-rpi/bin/ #use /home/pi/DolphinConfig5.0/ as the configuration/settings/save file directory cd .. mkdir /home/pi/DolphinConfig5.0/ mkdir /home/pi/DolphinConfig5.0/Config/ mv ../Data/Sys/GameSettings/ /home/pi/DolphinConfig5.0/ mv ../Data/Sys/GC/ /home/pi/DolphinConfig5.0/ mv ../Data/Sys/Wii/ /home/pi/DolphinConfig5.0/ mv ../Data/Sys/Maps/ /home/pi/DolphinConfig5.0/ mv ../Data/Sys/Resources/ /home/pi/DolphinConfig5.0/ mv ../Data/Sys/Shaders/ /home/pi/DolphinConfig5.0/ mv ../Data/Sys/Themes/ /home/pi/DolphinConfig5.0/ mv ../Data/Sys/codehandler.bin /home/pi/DolphinConfig5.0/ mv ../Data/Sys/totaldb.dsy /home/pi/DolphinConfig5.0/ mv ../Data/Sys/wiitdb-de.txt /home/pi/DolphinConfig5.0/ mv ../Data/Sys/wiitdb-en.txt /home/pi/DolphinConfig5.0/ mv ../Data/Sys/wiitdb-es.txt /home/pi/DolphinConfig5.0/ mv ../Data/Sys/wiitdb-fr.txt /home/pi/DolphinConfig5.0/ mv ../Data/Sys/wiitdb-it.txt /home/pi/DolphinConfig5.0/ mv ../Data/Sys/wiitdb-ja.txt /home/pi/DolphinConfig5.0/ mv ../Data/Sys/wiitdb-ko.txt /home/pi/DolphinConfig5.0/ mv ../Data/Sys/wiitdb-nl.txt /home/pi/DolphinConfig5.0/ mv ../Data/Sys/wiitdb-pt.txt /home/pi/DolphinConfig5.0/ mv ../Data/Sys/wiitdb-ru.txt /home/pi/DolphinConfig5.0/ mv ../Data/Sys/wiitdb-zh_CN.txt /home/pi/DolphinConfig5.0/ mv ../Data/Sys/wiitdb-zh_TW.txt /home/pi/DolphinConfig5.0/ } function remove_dolphin-rpi() { rm -r /home/pi/DolphinConfig5.0/GameSettings/ rm -r /home/pi/DolphinConfig5.0/Maps/ rm -r /home/pi/DolphinConfig5.0/Resources/ rm -r /home/pi/DolphinConfig5.0/Shaders/ rm -r /home/pi/DolphinConfig5.0/Themes/ rm -r /home/pi/DolphinConfig5.0/Config/ rm /home/pi/DolphinConfig5.0/codehandler.bin rm /home/pi/DolphinConfig5.0/totaldb.dsy rm /home/pi/DolphinConfig5.0/wiitdb-de.txt rm /home/pi/DolphinConfig5.0/wiitdb-en.txt rm /home/pi/DolphinConfig5.0/wiitdb-es.txt rm /home/pi/DolphinConfig5.0/wiitdb-fr.txt rm /home/pi/DolphinConfig5.0/wiitdb-it.txt rm /home/pi/DolphinConfig5.0/wiitdb-ja.txt rm /home/pi/DolphinConfig5.0/wiitdb-ko.txt rm /home/pi/DolphinConfig5.0/wiitdb-nl.txt rm /home/pi/DolphinConfig5.0/wiitdb-pt.txt rm /home/pi/DolphinConfig5.0/wiitdb-ru.txt rm /home/pi/DolphinConfig5.0/wiitdb-zh_CN.txt rm /home/pi/DolphinConfig5.0/wiitdb-zh_TW.txt # Do not delete GC or Wii save file directories upon emulator uninstall # rm -r /home/pi/DolphinConfig5.0/GC/ # rm -r /home/pi/DolphinConfig5.0/Wii/ # rm -r /home/pi/DolphinConfig5.0/ } function configure_dolphin-rpi() { mkRomDir "gc" mkRomDir "wii" local launch_prefix isPlatform "kms" && launch_prefix="XINIT-WM:" addEmulator 0 "$md_id" "gc" "$launch_prefix$md_inst/bin/dolphin-emu-nogui -e %ROM% -u /home/pi/DolphinConfig5.0/" addEmulator 1 "$md_id-gui" "gc" "$launch_prefix$md_inst/bin/dolphin-emu -b -e %ROM% -u /home/pi/DolphinConfig5.0/" addEmulator 0 "$md_id" "wii" "$launch_prefix$md_inst/bin/dolphin-emu-nogui -e %ROM% -u /home/pi/DolphinConfig5.0/" addEmulator 1 "$md_id-gui" "wii" "$launch_prefix$md_inst/bin/dolphin-emu -b -e %ROM% -u /home/pi/DolphinConfig5.0/" addSystem "gc" addSystem "wii" [[ "$md_mode" == "remove" ]] && return # preset options used for Raspberry Pi 4 (Bookworm) - modify for your build as desired cat >"$home/DolphinConfig5.0/Config/Dolphin.ini" <<_EOF_ [Core] OverclockEnable = False EnableCheats = False GFXBackend = Vulkan CPUCore = 4 Fastmem = True CPUThread = True SyncOnSkipIdle = True FPRF = False AccurateNaNs = False AudioLatency = 20 AutoDiscChange = True [Display] FullscreenDisplayRes = Auto Fullscreen = True RenderToMain = True KeepWindowOnTop = True [Interface] ConfirmStop = False [General] ISOPath0 = "$home/RetroPie/roms/gc" ISOPath1 = "$home/RetroPie/roms/wii" ISOPaths = 2 WiiSDCardPath = /home/pi/DolphinConfig5.0/Wii/sd.raw _EOF_ chown -R $user:$user "$home/DolphinConfig5.0/Config" }
-
@gvx64 said in MKDD Tint Issue RPI5:
@roslof I just wanted to let you know that I have pushed a new master that has .rvz support as per the changes in 5.0-12188 (build instructions same as above).
This sounds terrific! Thank you for this. I'll check it out as soon as I find a few cycles. Cheers!
-
@gvx64
Many thanks for everything you are doing! I tried the script, and the installation was completed without errors.
I haven't figured out how to launch the games so I can test it further. It looks like the script doesn't create the shortcuts that Dolphin creates (runcommand), games aren't visible to ES. Also, after the installation, I saw an error when I was running RetroPie-Setup:/home/pi/RetroPie-Setup/scriptmodules/emulators/dolphin-rpi.sh: Line 56 : syntax error near unexpected near unexpected token'
/home/pi/RetroPie-Setup/scriptmodules/emulators/dolphin-rpi.sh: Line 56 : '}'
-
@sugarfree Yeah, sorry I have been working on it on-and-off today after I posted it and discovered that there were issues. I am getting very close to having it working I will let you know once it is ready to go and I will update the previous post with the final script.
-
@sugarfree Can you please give the above script another try?
It's a conceptually tough decision about what to do when somebody uninstalls this emulator. Dolphin has a shared configuration and save file directory. I agree that uninstalling should remove all config files but I am very uncomfortable about deleting save files. As a result, I am leaving the GC and Wii subfolders in the DolphinConfig5.0 directory when somebody uninstalls. You can change this by removing the comments from the lines in the remove_dolphin-rpi() function if you would prefer.
I hopes that this script works better. Please let me know if you see any other errors or areas for improvement.
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.