[DOSBox] official thread
-
@nemo93 Thanks for letting me know.
I did try on 0.77 Quake and it was running poorly compared to on ports. -
-
@nemo93 said in [DOSbox] official thread:
@simrose that's because 0.78 is not ready yet for general release. Sorry I should have been more cautious in my previous post. I was just willing to share the breakthrough and forgot to mention it's still in "beta" so to say. Therefore if you want to try that new version you'll have to fetch and compile the latest master by yourself (and then update your
dosbox-staging.conf
accordingly). If you're reluctant to do so or unsure then my recommendation would be for you to stick to 0.77. No ETA for when 0.78 will be ready but I'll update that thread for sure when it's there.I did the .77 to .78 update through Retropie it now shows .78 as well as the config file updated to the new options. Is that correct?
-
@jamrom2 how have you done the update please? You shouldn't be able to get 0.78 via Retropie setup script at the time being provided it's not stable (and not released). Please share some more details about your procedure.
If asked I could share a quick guide on how to get the latest master fetched and compiled (quite simple).
-
@nemo93 yes, please do. A write-up will help because now I have no idea what I truelu have loaded. According to what you just said, mine should not say .78 but it does!
All I did was update my setup script, went to DOSBox-Staging where it said there was an update available and I ran it. Nothing else.di now it shows .78 when I run the command prompt .sh script, where it used to show .77.
-
@jamrom2 here you go.
First backup your
dosbox-staging.conf
to prevent any troubles.- To be sure rename your
dosbox-staging.conf
todosbox-staging.bak
(located in configs/pc) - Log in to your Pi and edit the file:
$ sudo vi RetroPie-Setup/scriptmodules/emulators/dosbox-staging.sh
- Check for the line:
rp_module_repo="git https://github.com/dosbox-staging/dosbox-staging.git :_get_branch_dosbox-staging"
- Comment it out (the
#
character) and add the following line which should end up like this:
#rp_module_repo="git https://github.com/dosbox-staging/dosbox-staging.git :_get_branch_dosbox-staging" rp_module_repo="git https://github.com/dosbox-staging/dosbox-staging.git master"
- Run Retropie Setup:
$ sudo ./RetroPie-Setup/retropie_setup.sh
- Update the script then go to Experimental > Dosbox Staging
Install from Source
should say that there's a new version available. Hit Enter.- After completion of the process, a brand new
dosbox-staging.conf
has been generated. You should see new parameters likevsync
andvsync_skip
under the[sdl]
section. - If that's the case, you're good to go and only have to set your preferred values. For instance,
vsync = true
andcycles = auto
!
Hope this helps.
- To be sure rename your
-
@nemo93 said in [DOSbox] official thread:
sudo vi RetroPie-Setup/scriptmodules/emulators/dosbox-staging.sh
all done. For whatever reason, I didn't have to alter any files. Mine was fine the way it was... but I updated anyway, just in case.
I am running this on a Pi3b+ with really no tweaking to the .conf other than the vsync that you mentioned. I am NOT running any shaders becuase the Pi3 can't from what I understand. So having said that...
Well... WOW! Doom runs at lightening speed. It's very smooth and fast. Almost make me want to puke when I think back at how much money I spent on my PC just to get it to run that fast back in 1994...and now I am using a $35 RPi3b+... wtf...
I also ran the following with excellent results...
Armored Fist - all high settings- very fast with very little stutter as compared to previous DosBox versions.
Flight Simulator 4 and 5.1 . 5.1 is very taxing as it's texture based, but looks and flys very smooth. There is some sound issues when using the mouse, but I gather this is from pushing the CPU to the max.
Flying Corps - low resolution - again, very smooth. But nothing over low res. That's to be expected. It's a higher end graphics game from the late 90's.
Aces Over Europe - superb. Very little stuttering during combat. A good improvement over previous version.I'm very satisfied with all the results from what I tested. As you can see, I ran Flight and Combat style games as I think those really push the demands of the machine more.
Nice job and looking forward to more improvement.. and me getting a Pi4! LOL.
-
@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!
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.