Is Yabasanshiro emulator coming on retropie?
-
Anyone have success building this on Raspberry PI OS 64bit beta? I've apparently gotten all the dependencies covered but build is failing with:
Linking CXX executable yabasanshiro /usr/bin/ld: firebase-cpp-sdk/external/src/curl-build/lib/libcurl.a(asyn-thread.c.o): in function `gethostbyname_thread': /home/pi/yabause/build/src/qt/firebase-cpp-sdk/external/src/curl/lib/asyn-thread.c:315: undefined reference to `Curl_ipv4_resolve_r' /usr/bin/ld: firebase-cpp-sdk/external/src/curl-build/lib/libcurl.a(asyn-thread.c.o): in function `Curl_resolver_getaddrinfo': /home/pi/yabause/build/src/qt/firebase-cpp-sdk/external/src/curl/lib/asyn-thread.c:594: undefined reference to `Curl_ipv4_resolve_r' collect2: error: ld returned 1 exit status make[3]: *** [src/qt/CMakeFiles/yabause-qt.dir/build.make:1674: src/qt/yabasanshiro] Error 1 make[2]: *** [CMakeFiles/Makefile2:380: src/qt/CMakeFiles/yabause-qt.dir/all] Error 2 make[1]: *** [CMakeFiles/Makefile2:392: src/qt/CMakeFiles/yabause-qt.dir/rule] Error 2 make: *** [Makefile:264: yabause-qt] Error 2
Any thoughts on what could be the cause?
-
about the cause no , about a quick and dirty hack i would edit asyn-thread.c and remove the reference to Curl_ipv4_resolve_r at line 315 & 594, the emu doesn't need to go online anyway
-
@grant2258 Just confirming this addition worked. Got the retro_arena GUI and even started Sega Rally. Did not have the patched shaders so graphics were not correct and crashed just before the race began, but this is progress.
Note I'm working on this using Rasberry Pi OS 64bit beta.
Only other change I've made was to rp64.cmake:
set(CMAKE_SYSTEM_PROCESSOR arm)
to
set(CMAKE_SYSTEM_PROCESSOR aarch64) -
@myzar Yes, I did that and got further but in the end I've switched over to the retro_arena GUI and now I can at least start Sega Rally.
I already use QT for app development on Android and iOS. I really don't want to use it when I'm trying to have some fun.
-
@acidtech said in Is Yabasanshiro emulator coming on retropie?:
@grant2258 Just confirming this addition worked.
Are you referring to the SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_ES); if so thats good news!
-
@grant2258 Yes, SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_ES);
-
@acidtech said in Is Yabasanshiro emulator coming on retropie?:
nt2258 Yes, SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_ES);
nice one I dont have a pi 4 to test with glad it opens up the retro arena port! the diff buzz posted for the shader patch is here. https://github.com/devmiyax/yabause/issues/737 This is the only viable option for this emulator without qt since retroarch support is withdrawn.
-
@grant2258 With the shader patch Sega Rally is running without errors. A few slow downs on the first track but full speed otherwise it appears(didnt have FPS showing). Not overclocked in nay way. So a good starting point I think.
-
I confirm that the retro-arena build indeed works adding that ,no qt deps crap and no xserver needed and plus it gets the input from retropie and you can quit without a keyboard , i use the rpi4 in a cab
Very good finding @acidtech and thx @grant2258 for the gles workaround
-
Thanks for the update!
@myzar would it be too much trouble to ask you for the binary and new runcommand string? :)
-
@pjft no trouble
https://mega.nz/file/qxkQmS4S#t0gGCquEGOQM9NqJWFCPkFqFJZO4UNROzjRKeorE7gQ
for the command line
yabasanshiro-sdl = "/opt/retropie/emulators/yabasanshiro/yabasanshiro-sdl %ROM%"
for the options you can use look here
https://github.com/devmiyax/yabause/tree/master/yabause/src/retro_arena
-
@myzar Thank you very much! I'll try it out during the weekend. Any noticeable performance changes?
Actually, a question: I'm getting a few errors, even after installing the dependencies.
File not found: Cannot initialize ISO-File Virtual Drive Cannot initialize Game Preference: opening /home/pi/.yabasanshiro/.config Preference: fail to getInt Aspect rate message: [json.exception.type_error.305] cannot use operator[] with number exception id: 305
so I must be missing something around here. The games don't boot, and the emulator just gets stuck in a black screen.
I suspect it might be a file path thing somewhere - any clues, or did it just work straight off the bat for you?
Thanks.
-
@pjft my bad i have missed -i
the right string is
yabasanshiro-sdl = "/opt/retropie/emulators/yabasanshiro/yabasanshiro-sdl -i %ROM%"
performace seems the same but this is a lot easier to build and does not need xserver and qt
-
This is nice. Thank you for providing, @myzar
It looks like game-specific configurations are generated in /root/.yabasanshiro. Very nice, and unexpected.
Tips for Pi4B:
Tap "ESC" on keyboard to bring up Yaba Sanshiro Menu (instead of Ctrl-S from xserver build)
From Menu, set resolution to "Original" (defaults to Native, which is higher-res and too slow for Pi4B)
Controls are easy to change with this menu.Not sure if saturn_bios.bin can be used. Tried the old command-line argument for this, but seems to always use RLE bios. Would help with compatibility for some games.
-
@roslof there's a -b flag, worst case we can have two entries in runcommand, one for HLE and one for BIOS.
-
@pjft right with you. Trying to setup two emulators for -sdl.
-
When running the RetroArena build, has anybody else noticed:
[message: json.exception.type_error.305] cannot use operator[] with number exception id: 305
When I launch via command-line, I can move beyond the error and play. But when I launch via runcommand, I exit. I've been spending the last few hours investigating the syntax of keymapv2.json and the configuration file I'm using to test Sega Rally Championship.
Currently look like:
https://pastebin.com/uknjfsnj (/root/.yabasanshiro/keymapv2.json)
https://pastebin.com/qrf8R2hU (/root/.yabasanshiro/Sega Rally Championship.chd.config)When runcommand crashes, the error is different (weird)...
Added known joystick Sony Interactive Entertainment Wireless Controller (instance ID: 0, device index: 0) Added known joystick Sony Interactive Entertainment Wireless Controller (instance ID: 1, device index: 1) terminate called after throwing an instance of 'nlohmann::detail::invalid_iterator' what(): [json.exception.invalid_iterator.212] cannot compare iterators of different containers
-
@roslof what happens if you delete both ? this port uses ~/.emulationstation/es_temporaryinput.cfg if keymapv2.json is not present
-
@myzar when I delete those files, then launch yabasanshiro-sh from /opt/retropie/emulators/yabasanshiro, it rebuilds the files, but not in a good way:
keymapv2.json (all non-axis lines look like this):
"id": -1
"type": "",
"value": "-999"Sega Rally Championship.chd.config everything references "null":
"Aspect rate": null,
"Resolution": null,
"Rotate screen": null,
"Rotate screen resolution": null,
"Use compute shader": null -
I think I figured this out.
I believe running from the command-line generates files at /root/.yabasanshiro/
...and running from runcommand generates files at ~/.yabasanshiroWas wrestling with two separate sets of configs...
keymapv2.json in ~/.yabasanshiro was properly generated from es_temporaryinput.cfg
keymapv2.json in root/.yabasanshiro is junkFor game configuration files, both directories generate "null" for each setting. I suppose this is fine. Can use command-line arguments to set parameters.
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.