Box86 and Wine on RPi4
-
And Commandos 1 running.
-
-
I came across some Konami retro-remakes without a licence.
Also the source code is available for these games.
Sadly I could not compile the code on the pi4. (Perhaps too old or only for x86)
But now we have your script ! ;-)
So these windows binary's work on the pi.So if you are looking for "pinball" replacements.
Perhaps these will do :
https://roadfighter.jorito.net/Edit : like @mth75 said in the next post, a windows exe for Wine/Box86 can be downloaded there.
-
@folly said in Box86 and Wine on RPi4:
came across some Konami retro-remakes without a licence.
The Windows exe can be downloaded on the download page. It has to be an exe for Wine/Box86 :-)
-
@folly said in Box86 and Wine on RPi4:
Cool !
Well, I always wanted to play this game on my Pi's, I looked at Qemu and Exagear but trusted it would be a matter of time ...
-
@mth75 said in Box86 and Wine on RPi4:
@folly said in Box86 and Wine on RPi4:
Cool !
Well, I always wanted to play this game on my Pi's, I looked at Qemu and Exagear but trusted it would be a matter of time ...
Indeed, for a lot of software this Wine/Box86 is a really good solution.
I have had qemu running on the pi with OS9 for ppc and windows 2000 for x86.
Qemu runs also quite fast. But you have to install the whole OS.
And running it all in the commandline with harddrive images is quite a challenge.
But software compatibility is better ofcourse. -
And Age of Empires II ... I hope to see lots of installs in the near future. Box86/Wine is indeed very feasible on the RetroPie platform.
-
And for inspiration ... The Settlers 3. All very playable on a Pi4, although overclocked to 2000Mhz and very good playable on a Pi400 (clocked to the max, 2375 CPU and 775GPU),
-
Wow @mth75 and @Folly, you guys have been busy! Awesome stuff! It's so cool to see how you've gotten so many things running in such a short time.
@mth75, I love your Commodore Pi/4. That is beautiful! Nice work! I'm a long time C64 user and have a C64 Reloaded MkII with a Pal VIC and Ultimate 1541-II+ hooked up to a FrameMeister for doing C64 stuff on. Lots of fun! For my Pi projects, I used old cases from a couple of broken Coleco handheld arcade games to create my own. But they run on a Pi3, so not really relevant to this conversation.
I've been spending a lot (too much) of time trying to get the music playing in Space Cadet 3D Pinball. Even though it works fine in Windows natively, it doesn't in WINE. This is because of the way Space Cadet initializes the MIDI file for the music. It initializes it as a TYPE vs. an ELEMENT. Windows seems to have some ways of dealing with this, but WINE does not. A couple of years ago someone filed a bug in WINE (https://bugs.winehq.org/show_bug.cgi?id=46513) along with a patch to "fix" it, but the patch was never applied to the code. This might be because the problem only appeared for Space Cadet. Keep in mind that Space Cadet 3D Pinball is actually from Windows 95 and API calls could have been different then (along with software development practices). Although it's commonly thought that the code is notoriously impossible to deal with, it's not really a fair statement. Any code that is a given age will deal with the same issues of nobody knowing what anything does.
Long story short, I fixed the music issue in Space Cadet and will be releasing the fix in my next push of the install script.
I didn't feel that it would be a good idea to push for the patch to be included in WINE, or even build my own version of WINE that would fix this issue. I've actually compiled WINE on my RPI4 using QEMU and it took a LONG time. Instead, I chose to fix Space Cadet itself by editing the binary so that it would open the MIDI file as ELEMENT instead of TYPE and use the proper Element Name pointer. There's a lot more technical detail in decompilation, how I found the pointer, and then how I made the change that would probably be better posted in an article than a forum post. Now my task is to figure out the best way to propogate this fix. I'd rather not be responsible for putting another copy of the software out into the wild, as it is copyrighted. I might be able to do a binary patch from the RetroPie install script. In the mean time, it doesn't sound like you're missing the music. Here's a link to a YouTube video with the music if you're curious:
Regarding audio issues: I haven't personally experienced crackling myself, but I'm not surprised. They are most likely caused by a buffer underrun, whereby the audio system is looking for more audio to output, but the buffer hasn't been filled by the software. This can happen a lot when the CPU is at high usage. This can be caused by lots of things, including Box86, Wine, and the software you're running. It can sometimes be alleviated by using a larger audio buffer, though that increases the latency, which may be offputting when playing games. It can also be alleviated by making sure there is no logging of any kind being done by Box86 and Wine. Unfortunately, I might have kept some logging variables in my setup scripts. Make sure you see
WINEDEBUG=-all
and maybe even addBOX86_LOG=0
in the command lines. I'm not sure there is a 100% fix for audio issues though. I've seen others run earlier versions of Wine for other reasons. Side note - there is a bug in Wine 5.22 that will crash if you add logging. That drove me crazy for quite a bit.Regarding making it easier to add software. I admit, I don't have a perfect answer. A script that creates ports could work. Alternatively, if Wine were registered as an emulator instead of a Port, then some other kind of scripts could be added in its "ROMS" directory, though you'd still need to create them. Finally, I thought perhaps one could link directly to the Start Menu items in the Wine Prefix directory. Then any software that gets installed using the standard Windows mechanisms would be automatically accessible from within EmulationStation. But this might not cover different Wine Prefix directories. This requires some investigation though and feedback from the RetroPie maintainers.
@mth75, I'm not sure why the scripts weren't detecting that things were installed (besides the problem that occured with the Box86 installation). It could be something to do with the versions of RetroPie, but you said you've maintained and updated it. Well, hopefully Mesa gets updated soon and that is one less dependency to worry about! Commandos 1, Age of Empires II, and Settlers 3 are looking good! Definitely an inspiration. Wow!
@Folly, thanks for the suggestion for Road Fighter. That might do the trick, though it crashes for me when going into Player Keys. Do you see the same issue? On the positive side, no installation program is necessary - you can just unzip the contents into Program Files.
Thanks again for all the feedback and challenges you've gone through.
- George
-
@george said in Box86 and Wine on RPi4:
Wow @mth75 and @Folly, you guys have been busy! Awesome stuff! It's so cool to see how you've gotten so many things running in such a short time.
Cool, isn't it. I see the amazing possibilities here !
This is quite impressive, what we all, including you, have done !I chose to fix Space Cadet itself by editing the binary so that it would open the MIDI file as ELEMENT instead of TYPE and use the proper Element Name pointer. There's a lot more technical detail in decompilation, how I found the pointer, and then how I made the change that would probably be better posted in an article than a forum post. Now my task is to figure out the best way to propogate this fix. I'd rather not be responsible for putting another copy of the software out into the wild, as it is copyrighted.
Do you know about IPS patches ?
You can create one without having to worry about copyrights.
You then just share the differences you made.I already have some in this repository :
https://github.com/FollyMaddy/RetroPie-ShareYou can patch or create from files up to about 7Mb.
I am using this :
https://github.com/kylon/Lipx
Just run this to see the help :
./lipx.pyRegarding making it easier to add software. I admit, I don't have a perfect answer. A script that creates ports could work. Alternatively, if Wine were registered as an emulator instead of a Port, then some other kind of scripts could be added in its "ROMS" directory, though you'd still need to create them. Finally, I thought perhaps one could link directly to the Start Menu items in the Wine Prefix directory. Then any software that gets installed using the standard Windows mechanisms would be automatically accessible from within EmulationStation. But this might not cover different Wine Prefix directories. This requires some investigation though and feedback from the RetroPie maintainers.
Perhaps we get a good idea along the way.
Indeed, your idea to link to the start menu, could be a nice solution.Have a look here, perhaps you get some inspiration from this too :
https://github.com/FollyMaddy/RetroPie-Share/tree/main/00-scripts-00
Like you said, creating scripts is one of the possibilities here.Or exporting *.exe as a string to a standard bash starter, could also be an idea.
@Folly, thanks for the suggestion for Road Fighter. That might do the trick, though it crashes for me when going into Player Keys. Do you see the same issue?
No crash here, I tested this menu for you.
Did you see the top of the webpage ?
There are more games you can choose from.
Perhaps one of them wil do.See here for updated nightlies (seems only source):
https://braingames.jorito.net/nightlies/Thanks again for all the feedback and challenges you've gone through.
- George
-
@georgeRe: Box86 and Wine on RPi4
Where to begin :-). @George Indeed, I didn't missed the music, I couldn't even remember the music, at least not in the Win95 version. I'm interested in the patch though! Why not publish the patch on GitHub?
Regarding install scripts, I don't think any script in order to install Windows applications is feasible (at all). I suspect everyone who want to use the Box86/Wine combo just has to create his own bottles on a another machine and has to do some manual labour.
Regarding the C= Plus/Pi4, here some techporn: https://retropie.org.uk/forum/topic/25090/commodore-plus-4-rpi4-build-ready?_=1610376894522
-
@folly said in Box86 and Wine on RPi4:
Perhaps we get a good idea along the way.
Indeed, your idea to link to the start menu, could be a nice solution.Wouldn't this imply 1 bottle for all games? I don't think that would work. I believe most games would need their own bottles (which also creates a 1GB overhead if i'm not mistaking).
-
@mth75 said in Box86 and Wine on RPi4:
@folly said in Box86 and Wine on RPi4:
Perhaps we get a good idea along the way.
Indeed, your idea to link to the start menu, could be a nice solution.Wouldn't this imply 1 bottle for all games? I don't think that would work. I believe most games would need their own bottles (which also creates a 1GB overhead if i'm not mistaking).
I don't think so.
But then again I don't have that much knowledge about wine.
So if you know, then, indeed, it seems not the right path to take. -
@Folly , thanks for the info on patches, seems to be close to what I'm looking for, if not exactly. Cross-platform is definitely a plus.
@mth75 The C= Plus/Pi4 is beautiful on the inside as well as the outside. Gorgeous job!
EmulationStation can handle sub-directories, so it is feasible to have multiple wine prefixes in a single ROM directory. Of course, a Windows Start menu also has its own sub-directories, so that would then require people to hunt through multiple directories in order to find the game they are looking for. Even though some people have thousands of ROMs to sift through, it's a little easier when they are in a single, alphabetized list!
- George
-
@george said in Box86 and Wine on RPi4:
EmulationStation can handle sub-directories, so it is feasible to have multiple wine prefixes in a single ROM directory. Of course, a Windows Start menu also has its own sub-directories, so that would then require people to hunt through multiple directories in order to find the game they are looking for. Even though some people have thousands of ROMs to sift through, it's a little easier when they are in a single, alphabetized list!
I made Wine prefixes and placed them in a Box86 Romfolder (so I adjusted the locations in your example script). I think this indeed is more in the "spirit" of retropie.
@Folly see screenshot
I
-
@mth75 said in Box86 and Wine on RPi4:
@george said in Box86 and Wine on RPi4:
EmulationStation can handle sub-directories, so it is feasible to have multiple wine prefixes in a single ROM directory. Of course, a Windows Start menu also has its own sub-directories, so that would then require people to hunt through multiple directories in order to find the game they are looking for. Even though some people have thousands of ROMs to sift through, it's a little easier when they are in a single, alphabetized list!
I made Wine prefixes and placed them in a Box86 Romfolder (so I adjusted the locations in your example script). I think this indeed is more in the "spirit" of retropie.
Nice !
Can you give an example of a prefix ?
Does this prefix run the game directly or does it run a bash file from somewhere else ?
What is your rom folder now ?
/home/pi/RetroPie/roms/Box86
or
/home/pi/RetroPie/roms/ports/Box86 -
@folly said in Box86 and Wine on RPi4:
What is your rom folder now ?
/home/pi/RetroPie/roms/Box86Indeed, /home/pi/RetroPie/roms/Box86/<Game folder> is my rom folder.
The <Game folder> is my wineprefix for example:
<Game folder>
-- dosdevices
-- drive_c
--- system.reg
--- user.regetc.
-
@folly said in Box86 and Wine on RPi4:
Does this prefix run the game directly or does it run a bash file from somewhere else ?
I use the scripts from George, with only the game locations adjusted to the /home/pi/RetroPie/roms/box86/ folder.
I'm planning to look into making it somewhat easier in the near future.
-
Hey all
I have Shovel Knight/unepic /Worldofgoo/Postal1/crimsonland runing on the box86 too.And can i have more Info plz ,
How to run
Commands or AOE2 ?
plz
Got lost here abit :) -
@shavecat said in Box86 and Wine on RPi4:
ey all
I have Shovel Knight/unepic /Worldofgoo/Postal1/crimsonland runing on the box86 too.
And can i have more Info plz ,
How to run
Commands or AOE2 ?
plz
Got lost here abit :)The way I did it. I'm running a separate Raspian OS (LXDE desktop) and installed both Box86 and Wine in order to make the wine_prefixes.
I compiled Box86: https://github.com/ptitSeb/box86/blob/master/COMPILE.md
or you could install Box86 with Pi Apps.
Then I installed Wine:
Download Wine
cd ~/Downloads
wget https://dl.winehq.org/wine-builds/debian/dists/buster/main/binary-i386/wine-devel-i386_5.22~buster_i386.deb
wget https://dl.winehq.org/wine-builds/debian/dists/buster/main/binary-i386/wine-devel_5.22~buster_i386.deb
dpkg-deb -xv wine-devel-i386_5.22~buster_i386.deb wine-installer
dpkg-deb -xv wine-devel_5.22~buster_i386.deb wine-installerInstall Wine
sudo mv wine-installer/opt/wine-devel ~/wine
sudo ln -sf ~/wine/bin/wine /usr/local/bin/wine
sudo ln -sf ~/wine/bin/winecfg /usr/local/bin/winecfg
sudo ln -sf ~/wine/bin/wineserver /usr/local/bin/wineserverBoot wine
wine wineboot
Download Winetricks
cd ~/Downloads
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricksInstall winetricks
sudo chmod +x winetricks
sudo cp winetricks /usr/local/binwinetricks needs this installed
sudo apt-get install cabextract -y
#Run Winetricks
BOX86_NOBANNER=1 winetricks dotnet20sp2Furthermore I installed Q4Wine with the Add/Remove package manager from Raspbian OS (to easily create wine_prefixes (Bottles)).
oryou could use winetricks with the following command:
BOX86_NOBANNER=1 winetricks --gui.
Then, I copied the wine prefixes to my RetroPie machine (see the rest of this topic for how to use the wine_prefixes).
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.