[DOSBox] official thread
-
All, over the past few weeks Dosbox Staging team has been busy adding more and more performance improvements to the code. To the point that I'm able to play any games I could think of, fullspeed. On a stock pi4/Retropie it's now possible to enjoy your DOS games in all their glory without running through complex setup or tweaks.
To give you an idea of such achievement, Quake is now running fullspeed (I need to get some accurate data but we're talking 30fps there and higher resolutions), same goes with Wing Commander 4, Destruction Derby's, Screamer's, Dark Forces, Crusader no Remorse/Regret, Duke3D, Blood or Doom/2. I consider removing the "ports" versions of those games from my pi.
It's quite exciting to be honest. Further improvements and features are still planned hence it's only the beginning :-) If you have some time to spare or in need to play a DOS gem at fullspeed, you'd better give it a try. I'm especially interested by any feedback for pi3. All you need is to get the latest master then make sure to set the following parameter in your
dosbox-staging.conf
:[sdl] ... vsync = true ... [cpu] cycles = auto ...
Should you not see this parameter in
dosbox-staging.conf
then you'll have to manually upgrade your config file by doing this... At the DOSBoxC:\>
prompt, run:config -wc
. Your existing settings will be retained however extraneous comments will be dropped.EDIT: I forgot to mention an extra cherry on top of the cake => it's now possible (even recommended) to rely on
cycles = auto
instead of a fixed count \o/ No more hassle in finding what value will work best. -
@nemo93 O_o
This is really stunning! I would never have guessed that there is so much potential in the Dosbox-staging code. So maybe I can now (finally) lay the old Dosbox to rest? I can't wait to try that.
What perfomance do you get with MDK now? -
@nemo93 Great news! I'm not all that versed in the updating of things outside of the Retropie script. I'd love to give you feedback for Pi3b+ performance.
I'm just now pulling down the latest "source" update listed on the Retropie script, I have already pulled down the Master file.
So... how do I update to the .78 version? Copy the files into my dosbox-staging folder?
Thanks!
JamR
Nevermind... I see it's already in the source build! Thanks for being quick to get it uploaded for updating!
-
@ecto @jamrom2 I forgot to mention in my post that
cycles = auto
is now fully working as it should and it's the recommended value! Less trouble and less fiddling with.conf
files.MDK is running great even on high resolution setting (not sure there's a big difference with the low res' though). Action is smooth all the time. Based on the internal performance tool from the setup screen, my pi4 is still close to a Pentium 90. Yet I'm not sure how this tool works and if it has trouble to get a precise value given the new "pacing" algorithm implemented to Staging. For sure the game is running much better and you won't get the "not enough CPU" message at the start. Feel free to test and report back if you have a chance.
Megarace 2 was a game barely playable before now it's totally enjoyable.
-
@nemo93
Hi, Thanks for help with Dosbox
In my dosbox-staging.conf 0.77
I have the following
core = dynamic
cputype = auto
cycles = 25000
cycleup = 10
cycledown = 20
So is it the line cycles = 25000 I just need to change to cycles = auto
I did try updating to 0.78 by installing via source but it fetched same version.
Many Thanks
Sim -
@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. -
@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
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.