[DOSBox] official thread
-
@jamrom2 thanks for testing and reporting back. Much appreciated. This confirms the quite big performance boost on low-spec devices. There are still many things to iron out to ensure it works in any situation. Also to stabilize the whole thing. Yet Staging is now one of the fastest Dosbox fork available on Raspberry Pi! Thanks to Staging team and the many contributors.
Keep in mind that
cycles = auto
will work most of the time but not all the time :-) I'd say it's fine for 80-90% of games but the remainder should still require fine-tuning. Where a fixed amount of cycles still has to be set like Wolfenstein3D (cycles = 30000
) and its derivatives (eg. Spear of Destiny, Blake Stone, etc).Should you hear sound crackling this is usually evidence that your CPU is maxed out (or close to be). Feel free to decrease the cycles count while in-game with
Ctrl
+F11
(Ctrl
+F12
to increase). The current value is being logged under/dev/shm/runcommand.log
. Next try with a fixed cycles count. -
First of all, thank you for bringing this topic up and keeping us up to date. I had a Pi3B+ setup running Dosbox-SVN and with good performance for what I wanted it (ProPinball Timeshock). Now with Pi4 performance is a mess, and you gave me this option I want to try to get the performance such game deserves.
I've tried to install dosbox-staging from source. It appears to go OK but then RetroPie-Setup believes it failed:
Another window is shown after:
Here is the end of such log:
Export the following to configure dosbox-staging without pkg-config ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ export FLUIDSYNTH_CFLAGS="-I/home/pi/RetroPie-Setup/tmp/build/dosbox-staging/contrib/static-fluidsynth/include -pthread -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include" export FLUIDSYNTH_LIBS="/home/pi/RetroPie-Setup/tmp/build/dosbox-staging/contrib/static-fluidsynth/lib/libfluidsynth.a -lgthread-2.0 -pthread -lglib-2.0 -lm" Export the following to configure dosbox-staging with pkg-config ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ export PKG_CONFIG_PATH="/home/pi/RetroPie-Setup/tmp/build/dosbox-staging/contrib/static-fluidsynth/fluidsynth/build" The Meson build system Version: 0.52.1 Source dir: /home/pi/RetroPie-Setup/tmp/build/dosbox-staging Build dir: /home/pi/RetroPie-Setup/tmp/build/dosbox-staging/build Build type: native build meson.build:1:0: ERROR: Meson version is 0.52.1 but project requires >= 0.54.2 A full log can be found at /home/pi/RetroPie-Setup/tmp/build/dosbox-staging/build/meson-logs/meson-log.txt ninja: Entering directory `build' ninja: error: loading 'build.ninja': No such file or directory Could not successfully build dosbox-staging - modern DOS/x86 emulator focusing on ease of use (/home/pi/RetroPie-Setup/tmp/build/dosbox-staging/build/dosbox not found). /home/pi
How can I update meson to such version? Thanks!
-
@dimas thanks for showing interest in Staging and for reporting back. That's a good report with relevant information. Appreciated! Your issue is due to out-of-date OS packages. To remediate I strongly suggest to update your Pi.
You can achieve that in 2 ways:
Retropie menu
>Configuration / tools (C)
>raspbiantools (215)
>Upgrade all packages (1)
or- from the terminal type the following:
sudo apt update && sudo apt full-upgrade -y
According to your
meson
version (0.52.1
) there will be quite a bunch of packages to update, might take a while. Let me ask if you're running your Pi from a Retropie image (Raspbian)?If all goes well you should end up with this version once the update process is complete:
$ sudo dpkg -l meson Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-==============-================-============-=============================== ii meson 0.56.1-1~bpo10+1 all high-productivity build system $ meson -v 0.55.0
It's recommended to regularly update your OS packages for security but also to maintain compatibility with some emulators as you're now aware :-) DOSBox Staging focuses on modern coding standard and will always aim at using the most recent (and supported) tools at its disposal.
I have to warn you also that Staging is evolving quite rapidly and compiling from source might break few things for you. To be safe I recommend to stick to the
binary
version provided by Retropie Setup (0.77.1 as of typing). Thebinary
is always stable plus some fixes are backported on regular basis from the main branch thus you have the best of the 2 worlds.Let me know how it goes for you. Hope this helps.
-
@nemo93 thanks for all the details, appreciated.
I am running vanilla retropie image v4.7.1. I had never dealt with compiling from source before. Well, maybe not in half a year or so. I moved to a Pi4 recently only to find the performance of DosBox-SVN is worse than in my Pi3B+. As I am using the "same" Retropie version and the Pi4 being more powerful on paper, I was assuming everything would work out just fine, but a long time has passed since I worked on the Pi3B+ ...
I will update the packages, but now I am slightly concerned about compiling from source. When you say it breaks things... you mean DosBox-only right? Games that worked no longer working as I need to maybe change conf files and such, right?
Is the performance of v0.77.1 much worse than v0.78 as advertised earlier in this thread?
Thanks again.
-
@dimas said in [DOSbox] official thread:
When you say it breaks things... you mean DosBox-only right? Games that worked no longer working as I need to maybe change conf files and such, right?
=> correct. DOSBox Staging only. Features are being added all the time with an impact to Staging's configuration file (
dosbox-staging.conf
). New sections, new parameters, new lines etc are regularly added to ensure you get the most out of the emulator. Whenever you upgrade DOSBox Staging you must update this conf file as well. Fortunately it's easy to update the file (config -wc
at DOS prompt). Or just rename your currentdosbox-staging.conf
file todosbox-staging.bak
then update from source. A freshdosbox-staging.conf
will be automatically generated then edit it with your prefered values (or leave defaults).Is the performance of v0.77.1 much worse than v0.78 as advertised earlier in this thread?
=> I'd say the current performance of the 0.78 branch is much better compared to previous releases (on pi4). It's also very stable. There are still fixes and tweaks to be merged in to add more functionalities and polish but it's already a fine version for pi4.
Let me know how it goes and if you need further assistance.
-
I am back with the report @nemo93
I managed to install DOSbox-staging from source, v0.78 is shown while compiling. However, I do not see vsync and vsync_skip under the [sdl] section in dosbox-staging.conf (in /opt/retropie/configs/pc). Does this mean I did something wrong? How can I know for sure v0.78 is the one I am using?
I ask this because the performance with ProPinball timeshock is far from good. Indeed, I feel it looks a little worse than the one I was having with DOSbox-SVN with the same Pi4 setup.
This might be just this game, and other 3D games see the improvement, but I wonder why I cannot get the same level of performance I had for this game with my Pi3 setup...
-
@dimas do you use a separate config file setup for this game? It might need tweaking to the CPU cycles. Not all games run well on auto or max. Some actually need number settings. Have you tried changing that
-
glad to see you're back @Dimas (as well as @jamrom2 ;-)). First the good news: a rather big patch has been merged in recently to improve the S3 emulation (videocard emulated by DOSBox), more stability, less glitches and higher resolutions (Quake, Build engine games, etc) are now available from the get-go. Second good news is that the Pro Pinball games are working like a charm here (the 3 of them) even in high resolution. Let's find out what's going on for your setup...
First in order to check for the current DOSBox Staging version you have to parse the log. Run a DOS application then close it and thanks to Retropie logging, have a look at:
$ cat /dev/shm/runcommand.log Parameters: Executing: bash /home/pi/RetroPie/roms/pc/+Start\ DOSBox-Staging.sh "/home/pi/RetroPie/roms/pc/propints.conf" date time | 2021-09-16 12:32:16.864 | arguments: /opt/retropie/emulators/dosbox-staging/bin/dosbox -userconf -conf /home/pi/RetroPie/roms/pc/propints.conf 2021-09-16 12:32:16.865 | Current dir: /opt/retropie/supplementary/runcommand 2021-09-16 12:32:16.865 | stderr verbosity: 0 2021-09-16 12:32:16.865 | ----------------------------------- 2021-09-16 12:32:16.866 | dosbox-staging version 0.78.0 2021-09-16 12:32:16.866 | ---
If you get the
dosbox-staging version 0.78.0
line then it smells good. Without more details about your current setup I can't tell you exactly why you don't see the new parameters in the config file. If you followed my little guide from above you must have a cleandosbox-staging.conf
after compilation is completed. Anyhow you have two ways to align your setup with the current version.- as per my other post above, run DOSBox Staging to get to the DOS prompt
C:\>
. Once you get there type in:C:\>config -wc
. This will automatically upgrade yourdosbox-staging.conf
with all the new parameters. - provided you're running the 0.78.0 version, copy over my
dosbox-staging.conf
file from that page. At least the important sections which are:[sdl]
,[dosbox]
,[render]
and[cpu]
.
Once your
dosbox-staging.conf
file is up-to-date create apropints.conf
file where you put the following (tune it according to where you installed the game):[dosbox] memsize = 31 [autoexec] imgmount d <path_to_your_CDimage>.cue -t cdrom mount c /home/pi/RetroPie/roms/pc/games C: CD PROPINTS SHOCK.EXE EXIT
I don't know what frontend you're currently using with Retropie but it shouldn't matter. Anytime you'd like to run this game, point Retropie/frontend to that
propints.conf
file. There's no magic setting for this game to properly run! So if you've done things right it will play fullspeed on your Pi4.I recommend to read the DOSBox Staging wiki for further info as well as tricks to get some games to run smoothly (you might get issues with the other Pro Pinball unless you install a small patch for instance).
- as per my other post above, run DOSBox Staging to get to the DOS prompt
-
@nemo93 thanks for this. I'm good. I've been running .78 since you uploaded it.
Another way... maybe easier for those that don't WinSCP well...
Go to your Dos games list in Emulationstation and run the DOSBox-staging.sh file. As soon as it loads to the dos prompt, look at the top of the big blue box. It gives you the version number.
"Welcome to DOSBox Staging 0.78.0"
then type "exit" to return to ES game list.
On a Pi3b+ I get the absolute best performance with this...
[cpu]
core=dynamic
cputype=auto
cycles=autoAlso, I see you bumped your memory up to over 30? I thought 16 was the max?
*** I just tried to update from source from the RetropeSetup-script (using 4.7.11).. I got the unable to build DosBox error.
Should I be using the Update from Binary? Do I even need to update if I have .78 dated 14 August?
-
Hello there, I hope you can help me.
I'm having a lot of stuttering in very specific scenarios over a multitude of games on my Pi 400. It seems mostly related with screens fading to black but there are other (2D) scenarios where the performance is either bad or there's a lot of stuttering.I've tried both the "standard" DosBox in RetroPie and Dosbox-Staging but the problem is the same. I've also tried out Dosbian and it seems to be no issue there.
To give you a better idea of what I'm talking about I've uploaded this example video:
-
@jamrom2 I'm curious about your
vsync
settings as well (from the[sdl]
section) if you don't mind sharing? When set tofalse
and7000
I got too much tearing and performance are lower than expected. On Pi4 I have to set both settings to:vsync = true vsync_skip = 9000
I bumped the memory setting for Pro Pinball only :-) If you check my response above this is only a setting set for that particular game. In my default config file the high memory remains at 16 by default. The way I recommend to follow with DOSBox is to keep the default config file generic enough for majority of games plus having a
.conf
per game with just enough info to launch it. From there it's easy to add a parameter in that per-game.conf
file to override any default without touching the default config file (dosbox-staging.conf
).Some games do require bigger memory value to support higher resolutions (true also for Quake for instance). For a vast majority of games 16MB is more than enough hence being default. The max value for DOSBox is 64MB I guess to comply with the XMS standard. Should you require more then the excellent DOSBox-X fork supports up to 512MB.
I'd appreciate any further details about your error but it's compiling fine here. I suspect you have outdated OS packages as @dimas. If you can follow the same process as detailed above that should work. I'm assuming you're compiling the
master
branch. If so then a rather big patch for the S3 videocard emulation has been merged in and brings some improvement in that regard. Also a patch for CGA composite is in too for better accuracy. Yet it's fine to stick to your current version if it works nicely! For now the stable release for 0.78 is not ready that's why the binary provided by Retropie is still 0.77.1.@Good_Punk hi! thanks for reporting back. To be able to assist you we'll need more details about your setup/environment please. What version of Staging are we talking about? Do you run an official Retropie image? How did you get DOSBox Staging (compiled/binary from Retropie Setup)? What settings for your games are you using? etc. Anything will help.
After a quick look to your (nice) video I can tell you that all games shown are running flawless on my Pi4 setup. As we discussed with @jamrom2 before whenever you get stuttering is usually due to your Pi CPU being maxed out (too many cycles or could be the game is simply too "complex" to run on a Pi like Azarael's Tears for instance). Have a look and use as a base my default config file with the latest DOSBox Staging and you should have excellent results.
Having slow transitions but smooth gameplay is generally due to wrong settings being used. For Blues Brothers you have to set a fixed cycles count in your config file like so:
[cpu] cycles = 2000
-
Ok, I checked my meson version... 52.1. So I will have to upgrade as you mention. I want to do a backup first.
Also...here are my vsych settings.
vsync = true
vsync_skip = 7000So far, Staging is giving me fantastic performance for most of what I throw at it. I use both Pure and Staging. Many of the games I run on Staging are more of the late 90's type, or flight simulation type.
I did compile from source and it built fine, plus it shows me as .78 everywhere I look. So I'm going to hold-off on updating further until I know it's ready. Then maybe I'll dump the source load and install from binary.
-
@nemo93 Excelent suggestions! It worked like a charm. Thank you very much!
- Updated to get latest improvements
- Regenerated conf file as indicated
- Used settings from the link and…
voila! Running perfectly at max settings!
Tried this with the other two pro-pinball and was also successful. Big Race USA performs slightly worse than Timeshock at max settings but I can reduce resolution and some other things. No problem.
I owe you a dinner! (Where are you from BTW? - Spain here).
I tried Quake but it runs choppy at anything > 360x240. Any suggestion or setting I can try with?
Thanks again!
-
@nemo93
Thanks! :)
I've tried reducing the cycles but it didn't help. I've set Framskip to 1 and now most of the games seem to run smoothly. Is that to be expected? -
@nemo93 OK. I'm all updated now. I have meson 55.1 running...along with all other core packages updated.
So...I'm a little nervous about messing with my Dos setup as I finally have it set to how I want it. If I remove the source based version I have loaded (.78) and load in the binary version (77.1) will I loose any of my saved configs?
For testing speed I have been using A-10 Tank Killer. What's odd is that it runs great until you are in the mission briefing/debriefing and the CO is talking to you via text boxes. The music slows down to a crawl. Other than that, pretty much everything is running great. Indy Car II is fantastic and runs at full-speed.
-
I owe you a dinner!
=> save your euros please :-) To be honest all credits have to go to the Staging's dev team who does wonder every day to clean the codebase, add features and boost perf even on low-spec devices.
I tried Quake but it runs choppy at anything > 360x240. Any suggestion or setting I can try with?
=> This is expected. Back in the days it was also the typical resolution most people could play the game with the available hardware. I'd say even 320x200 was more typical when the game came out! Higher resolutions became possible with the emergence of "3D accelerator" cards like 3DFX. Of course on a modern-day computer running Quake in 1600x1200 is possible but on Pi(4) we simply don't have enough CPU-power. You could try also the various Port of the game as there's one for the Pi available in Retropie (TyrQuake).
@jamrom2
If you're nervous then don't upgrade anything :-) Really if it works don't fix it. If you ask Retropie Setup to install binary instead of "source" and if you have adosbox-staging.conf
file already then only the following parameters will be overwritten. Everything else will stay the same. No other file will be modified."fullscreen" > "true" "fullresolution" > "desktop" "output" > "texturenb" "core" > "dynamic" "cycles" > "25000"
Unfortunately A-10 Tank Killer is not part of my testbed hence I can't replicate. Yet it seems to be a typical issue which should be worked around by setting a fixed amount of cycles. Have you tried with
cycles = 15000
for instance?@Good_Punk I'm truly sorry but without further details about your setup I can't help you. Are we even talking DOSBox Staging here? If so then for sure no need to touch the Frameskip setting. Stick to a game you got an issue with and share the conf and your current setup about it. Thanks.
-
@nemo93 ok. I'll back up that file and give it a try. Before that I'll burn another image as well. I like help you and the team so it's work the "risk" even though there isn't much. Pl
-
@nemo93 No good here. Seems there is something wrong with the binary and source builds.
The Binary completes the build process, but there is nothing in the /opt/retropie/emulators/dosbox-staging/dosbox folder. This looks like a permissions issue. All others emus build fine. It shows in the Retropie package list as Installed, but it's not.
The Source build now gives me the same error as posted above that it can't finish the build. I did not have this issue before. I've since updates my OS as well as my core packages. Everything is up to date with the most recent releases.
Here is my runcommand.log with the error when I try to run Aces Over Europe...or any other game.
pc
dosbox-staging
/home/pi/RetroPie/roms/pc/aoe.conf
Not an lr-atari800 system.Parameters:
Executing: bash /home/pi/RetroPie/roms/pc/+Start\ DOSBox-Staging.sh "/home/pi/RetroPie/roms/pc/aoe.conf"
/home/pi/RetroPie/roms/pc/+Start DOSBox-Staging.sh: line 19: /opt/retropie/emulators/dosbox-staging/dosbox: No such file or directoryAttempted to pull it down from the dosbox-staging site... but it does our version of Linux (I thought it was Ubuntu?) does not recognize the commands.
-
@jamrom2 sorry to hear you're having issue. I'm a bit surprised to see your post given it was alright few days ago. Nevertheless let's try to sort it out.
- I'm seeing some awkward output there >
Not an lr-atari800 system.
Wait. What? This doesn't look like a complete log. Make sure to properly copy/paste the output given by:$ cat /dev/shm/runcommand.log
-
there is nothing in the /opt/retropie/emulators/dosbox-staging/dosbox folder
/home/pi/RetroPie/roms/pc/+Start DOSBox-Staging.sh: line 19: /opt/retropie/emulators/dosbox-staging/dosbox: No such file or directory
The binary will install into
/opt/retropie/emulators/dosbox-staging/bin/dosbox
. Not sure why there's no/bin/
for you. Have you ever edited the+Start DOSBox-Staging.sh
script?=> definitely something is wrong with your setup. There's no "build" process so to speak when you opt for the pre-compiled binary version from Retropie Setup. Simply put it's a file being decompressed somewhere (
/opt/retropie/emulators/dosbox-staging/bin/
) on your device. So this one should work no problem on any standard Retropie image. I will require from you an exact step-by-step description please on how you got there to better understand your issue.Please do not use binaries provided on DOSBox Staging website. These are not meant for Raspberry Pi. The supported way to get Staging on your device is via Retropie Setup.
Let's take a few steps back and just aim for something simple: to get the binary version of the current stable (0.77.1). I assume you have an up-to-date system (OS packages and Retropie Setup both updated).
- Remove any Staging version you have from
Retropie Setup
>Manage Packages
>Manage all installed Packages
>Dosbox Staging
>Remove
. - From the same menu hit the "Install from pre-compiled binary"
- Typically complete in few seconds without issue. This should generate the required config files as well as a
pc
directory under Retropieconfig
(/opt/retropie/configs/
) androms
(/home/pi/RetroPie/roms/
). Thedosbox
binary will be copied over/opt/retropie/emulators/dosbox-staging/bin/
. - If there's any issue preventing Retropie from creating those files/folders you should get an error message.
- If there's no error then you should be ready to go.
Let me know how it goes and focus only on installing the pre-compiled binary for the time being. This has been quite heavily tested and it works out-of-the-box.
- I'm seeing some awkward output there >
-
Here's how it went... no good.
The Atari800 note... just ignore it. It has something to do with my setup for atari800/5200. No idea why that's there.
The binary runs... and installs..but fails and I have no idea why because it rips by so fast I can't read it. There is definitely a message about missing something but I don't know what.
I haven't installed anything else. I'm just looking and reading as I go. I know nothing else will work.
What I don't understand is why it doesn't. I had no issue installing SDL2 and Staging before. Now I can't install binary or source for Staging at all.
I can see the folder structure as it should be, everything seems to be there. It never installs the Dosbox-Staging.sh file. I'm guessing because most likely it's not finishing the install process.
Nevemind... the dosbox-staging file is there, I had to reload ES to display the new file in my list. But still the same end result. The same error. It says:
Executing: bash /home/pi/RetroPie/roms/pc/+Start\ DOSBox-Staging.sh "/home/pi/RetroPie/roms/pc/aoe.conf"
/home/pi/RetroPie/roms/pc/+Start DOSBox-Staging.sh: line 19: /opt/retropie/emulators/dosbox-staging/dosbox: No such file or directory
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.