Box86 and Wine on RPi4
-
@mth75 said in Box86 and Wine on RPi4:
Yes, still the same behaviour but less frequently. I suspect Box86.
It could be Box86, but there are so many things going on and are in early development, like the Mesa Broadcom driver.
Early on in my testing, I saw a problem with one of the games I was testing. Through a ton of debugging, I believe I narrowed down the issue to an ARB vertex program test that Wine passing on to Mesa. I filed a bug with Mesa:
https://gitlab.freedesktop.org/mesa/mesa/-/issues/4018
I may have been able to workaround the issue using the following Mesa override in the command line:
MESA_EXTENSION_OVERRIDE="-GL_ARB_vertex_program"
Perhaps give that a shot and let me know if you see any improvement in reliability. You may of course see a change in performance, either good or bad. Let us know.
- George
-
@george Hi George, I didn't notice any difference.
-
Another thing possibly worth trying is adding the GL logging flag to the command line:
LIBGL_DEBUG=verbose
See: https://docs.mesa3d.org/envvars.html
Along with removing the WINEDEBUG and adding BOX86_LOG, that should provide a good amount of logging to help determine where things are crashing. Ala:
LIBGL_DEBUG=verbose BOX86_LOG=1 LD_LIBRARY_PATH="/opt/retropie/supplementary/mesa/lib/" setarch linux32 -L ...
I've seen several conversations on Box86's Discord where it is suggested to disable DynaRec. Perhaps give that a shot as well.
- George
-
I've started to test out FluidSynth as a replacement for Timidity. I've come to the conclusion that while running Timidity as a daemon is good for convenience, that convenience is nullified if all sound stops working after a day.
I've run several tests with Timidity. Whenever Timidity is used to play MIDI sound, after a day or so of inactivity, all sound will stop functioning properly. Restarting the Timidity daemon rectifies the situation without requiring a reboot. But that is a hassle.
Timidity also seems to be fairly old and not actively developed, whereby FluidSynth is actively developed (though the version with Raspberry Pi OS may be a bit out of date).
The downside with FluidSynth is that it does not look like it will run in daemon mode out of the box. The options are as follows:
- Create additional scripts that will run FluidSynth as a daemon. This would require much more testing to make sure it doesn't cause the same problems as Timidity.
- Add extra lines to ports scripts that will launch FluidSynth when starting a game. Though I suppose this could actually have been done with Timidity as well.
FluidSynth does have some options that should improve performance on Raspberry Pi, like changing bitrate and polyphony. I did some research on Timidity has some options as well, including the option to turn off Reverb. Reverb might actually be what is causing the hangup on the sound. Perhaps Timidity just continues sending reverbed audio and convolving the signal ad infinitum, that might cause some issues.
I will say that Timidity sounds louder, so it may take time to get used to FluidSynth.
Anyway, lots of work to be done.
- George
-
Has anyone set this up with twisteros? Essentially my understanding is it has all the box86 wine etc in place so I’ve just created a simple script in the ports folder “wine game.exe” but I’m getting errors that seem the relate to x server and looking at @George scripts he’s got some dependencies and references in the ports script to handle that. I believe twister uses xfce, so my question is what additional dependencies do I need and what do I need to add to my ports script to resolve the x server issues? Really great work here thanks for creating this thread!
-
Would anyone perhaps be willing to post (brief) steps on how to get this working? I've tried compiling / installing scripts from git before and have a roughly 15% success rate, probably due to my own ineptitude. Any pointers would be gratefully received! Thanks in advance.
-
@tedmaul said in Box86 and Wine on RPi4:
Would anyone perhaps be willing to post (brief) steps on how to get this working? I've tried compiling / installing scripts from git before and have a roughly 15% success rate, probably due to my own ineptitude. Any pointers would be gratefully received! Thanks in advance.
Scroll back in this topic ... it's all explained.
-
@tedmaul said in Box86 and Wine on RPi4:
Would anyone perhaps be willing to post (brief) steps on how to get this working? I've tried compiling / installing scripts from git before and have a roughly 15% success rate, probably due to my own ineptitude. Any pointers would be gratefully received! Thanks in advance.
You should be able to use the wget commands in this post :
https://retropie.org.uk/forum/topic/28528/box86-and-wine-on-rpi4/109
And then install in the RetroPie-setup the same order.If they don't work it's because of the RetroPie version.
This is what we did to get around the checks and install it anyway :
https://retropie.org.uk/forum/topic/28528/box86-and-wine-on-rpi4/129
@George Is still busy with fixing this, I think.If above is working, then you can also install these games ( I just fixed these for RetroPie version 4.7.7) :
wget -nv -O /home/pi/RetroPie-Setup/scriptmodules/ports/box86winegooniesremake.sh https://raw.githubusercontent.com/FollyMaddy/RetroPie-Share/main/00-scriptmodules-00/ports/box86winegooniesremake.sh wget -nv -O /home/pi/RetroPie-Setup/scriptmodules/ports/box86winemogremake.sh https://raw.githubusercontent.com/FollyMaddy/RetroPie-Share/main/00-scriptmodules-00/ports/box86winemogremake.sh wget -nv -O /home/pi/RetroPie-Setup/scriptmodules/ports/box86wineroadfighterremake.sh https://raw.githubusercontent.com/FollyMaddy/RetroPie-Share/main/00-scriptmodules-00/ports/box86wineroadfighterremake.sh
-
So i tried unistall and install box86andwine
And run again Heroes Of Might And Magic 3
but still crushes in diffrenet areas ...
someones had luck with that ? -
@shavecat said in Box86 and Wine on RPi4:
So i tried unistall and install box86andwine
And run again Heroes Of Might And Magic 3
but still crushes in diffrenet areas ...
someones had luck with that ?To find out what is wrong you have to check your logs in :
/home/pi/RetroPie-Setup/logs
Unzip your latest logs and read the logs with a texteditor. -
@folly
It just geting forzen ...
but i will check it thanks :) -
-
@shavecat said in Box86 and Wine on RPi4:
@folly
It just geting forzen ...
but i will check it thanks :)Do you have a good internet connection and is your pi cool enough ?
-
@folly
Yes
The Temp' are fine...
and its just this game getting frozen , but i can still putty the pi . -
@shavecat said in Box86 and Wine on RPi4:
@folly
Yes
The Temp' are fine...
and its just this game getting frozen , but i can still putty the pi .So your box86wine install seems ok, but your game doesn't work.
It could be due to the updated versions of box86 and wine.
I think you will have to wait untill it is all updated to newer versions and try again. -
@folly
Yes like commandos 1/2 runs pretty good ;)
Thanks <3 -
@shavecat said in Box86 and Wine on RPi4:
Yes like commandos 1/2 runs pretty good ;)
Thanks <3and with wine 6.1/6.2-devel and Mesa 20.3.4 they would run even better:-). A lot of games will not work (or without problems) ... but i'm fairly sure this is a matter of time. Determining which ones work is the nice thing!
-
Wine maintains an application compatibility database at https://appdb.winehq.org/, might be worth looking there first to see if a game/application has been reported as working. I think Box86 has a similar list.
-
Hi all,
I've updated my pull request to include the changes required for RetroPie 4.7.7.
I have not switched Timidity to FluidSynth yet. I'm still experimenting with that. Some notes:
- Timidity seems to sound a bit better than FluidSynth on the games I've tried.
- DOSbox and a couple of other things seem to use Timidity vs. FluidSynth, but they don't use Timidity in daemon mode.
- I tried some optimization flags with Timidity. I didn't see much of a change in performance, thought I'd really have to check to see if any buffer underruns were occurring.
- Even with the optimization flags for Timidity, the daemon still messed up the audio after about 24 hours. To test this, just play a game like Space Cadet 3D Pinball, with music enabled. Then exit the game and leave your Raspberry Pi on. A day or so later, come back and try Space Cadet again. Sometimes no sound will come out, other times choppy sound effects will play, but the MIDI music will not play at all.
- So running Timidity in Daemon mode is going to go out for sure. But that will mean that launch scripts will have to start / stop a MIDI synth themselves. This requires a bit more investigation.
In other news, I created a new repo that can be used with RetroPie's new external repo capabilities. That way, you can get the latest scripts without worry of messing with your RetroPie directory. It's located at: https://github.com/GeorgeMcMullen/rp-box86wine and in order to use it, just to the following:
git clone https://github.com/GeorgeMcMullen/rp-box86wine.git /home/pi/RetroPie-Setup/ext/rp-box86wine/
Additional instructions are in the repo. I'll be keeping this repo in sync with the pull request. The main branch just uses the most recent stable releases, as the three different packages are all under very active development. The versions are currently as follows:
- Mesa: 20.3.4
- Box86: 0.2.0
- Wine: 6.0
I may create a separate branch that uses the absolute latest from each. Not sure yet though.
Hope this helps some folks.
- George
-
I've been thinking about putting together a script that would facilitate the creation of ports. It would work by scanning for Wine Prefixes (Bottles) in a directory (like /home/pi/RetroPie/roms/Wine/) and then configuring ports using a single master Wine ports script with parameters for the Wine Prefix. It might make management of Wine based games a little easier, and it could also make managing MIDI a little easier (DOSbox starts/stops the Timidity when launching/exiting).
Would be interested in some feedback on the following challenges.
- If I'm not mistaken, even with a Wine Prefix set, there doesn't seem to be a way to automatically launch a specific program unless you specify it on the command line.
- Wine doesn't seem to respect anything in the "Startup" folder in the start menu. Even if you launch Wine Desktop, the items in Programs / Startup will not get launched.
- There doesn't seem to be a way in the RetroPie-Setup helpers to remove a port. It might be helpful if you are experimenting with different Wine Prefixes and continually add/remove folders.
An alternative would be to use "conf" files, which is something that DOSbox seems to do. That way, any time you wanted to add a new app, you just create a simple conf file in /home/pi/RetroPie/roms/wine/ that would set some variables like the Wine Prefix, launch folder, Windows executable file, and even whether or not to launch MIDI.
The benefit of the alternative is that you wouldn't necessarily need multiple Wine prefixes for each game, but you'd have the flexibility to use them if you want. Also, you'd be able to add/remove conf files like you manage your roms. Of course, you'd still have your Wine prefixes to deal with though.
I guess another benefit to the alternative would be that Wine (and all Wine based apps) could show up as an emulator vs. a port. The downside might be that people would have to create their own conf files.
Would love to hear people's thoughts.
Thanks!
- George
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.