[DOSBox] official thread
-
@wengier Oh wow, this is the best version of DOSBox ever! It's like they read my mind exactly how I'd ever want a DOS emulator to function! Thanks for posting this.
-
@wengier thanks a lot for providing a detailed view of this very impressive fork (not sure it's still a fork at that point where there have been so much added). To be honest I never gave a try to your fork as the number of features and options are simply daunting!! I'd say my objective remains to be able to run a few (famous) DOS games on a pi3B+ (now a Pi4). If you have a specific version or even some guidance to run DOSBox-X on such a low-spec device please feel free to share it. For sure this fork is by far the most complete and it's really amazing to see the so many options supported... Please keep this thread updated (if you will) with any new changes. I'll update the first post. Thanks again!
-
@wengier Hmm... the PC version is a dream come true. But my Pi doesn't seem to want to cooperate with the second step of installing flatpak. It's too bad this isn't a Libretro core.
-
@nemo93 and @themazingness Glad to hear the feedbacks from both of you. Indeed, DOSBox-X is so unique that it may not be appropriate to be called a "fork" any more. As a complete DOS emulator it is under very active developments of course.
So far, I have tested DOSBox-X in Windows, Linux and macOS on the PC platform. According to Jon Campbell, Raspberry Pi 3 is a supported platform for DOSBox-X, but since I don't have a Pi myself at this time I have not checked it personally yet. I do have plan to get a Pi (hopefully 4) shortly myself and post any updates here. Thanks again for your support!
-
@wengier Ah, that's probably the problem then. I have a Raspberry Pi 4, so it may not be compatible updated hardware.
Edit: Did some diving, and it looks like Flatpak is super new (first stable release last month), and DOSBox-X was previously using RPM for installation. I suspect if I wait a while or try a different day it'll be working.
-
@nemo93 Ok, I did the dive, and Staging is now running on my Pi4. I can give some thoughts:
First of all: it's really nice. Especially the pixelperfect display. Bye-bye washed out pixels! For that alone it was worth it! I've managed to get fluidsynth to run (easyly) and for selected games Munt's MT32 emulation runs through ALSA (just like with svn).
But it's more work to set up. I'm slowly getting somewhere, but I'm not done yet. The cycle settings is a hit and miss. I tried setting them from the dos command prompt (config -set cycles xxx) but the doesn't seem ro have any influence?! On top of that, choppy video or sound is no indication for too few cycles. It could also be too many, which makes it complicated. For many games I found cycle settings for Dosbox games online, but not all seem to be the right number for Staging. Some examples: Wing Commander 3, Magic Carpet 2 and Pro Pinball Timeshock. There is still some crackling and choppy gameplay left. Is it too early to collect the optimal cycle settings in a wiki maybe?
Then there were some hard lock-ups of my Pi4: one while starting up Staging, and one right before a system reboot. I can't say for sure it was Staging's fault, but as I was fiddeling with it I guess it was. It might have something to do with sound emulation, as sometimes I loose all sounds and so far I could only restore it by rebooting... ^^;
Btw. Magic Carpet also works with dos32a. :D
Cheers and happy gaming!
edited for some horrible spelling
-
@ecto thanks for taking time to share. To set proper cycles amount is quite annoying for sure yet with such low-spec devices it's the only way to get the best experience. After lot of testing I ended up setting a default value of 25000 cycles in my default
.conf
file (dosbox-staging-git.conf
). This will allow games to run and without any crashes. That setting is the foundation I use to build up specific settings should a game require some. Feel free to try the default + specific settings from that wiki page if you haven't already.I've never used the command utilities you've mentioned. I do everything by modifying one default
.conf
(which I never change) and one specific.conf
per game (which I fiddle with in case of issue to add more memory, joystick, GUS, etc). Choppiness tends to occur mostly when you have too many cycles. To the point it could crash your Pi.That's why you must never go with the
max
orauto
values forcycles
parameter. This explains the fixed value of 25.000 as said above. If you respect that statement then DOSBox will never crash again. If it does then something else is happening on your Pi. I haven't faced a single crash with Staging for the past 7 months or so. Of course you have to properly configure the games to match the correct IRQ/DMA asked during setup/install.exe and for some games you have to set the rightmachine
setting :) It's not specific to Staging though.I was tempted to add a page with optimal settings per device but first that's a lot of work and second Pi's environment (OS, drivers, etc) as well as Staging are getting improved at a good pace making settings obsolete. Yet I decided to put settings for some games on that wiki page. I may add more.
I'm using
cycles = 30000
for Wing Commander 3 yet I haven't tested that game extensively. Regarding Magic Carpet 2 it was one of the first game to be optimized especially for Pentium processor (devs even included some Easter Eggs) and as such requires a solid configuration to run at full speed. You'll need to give a try to thekc/fps-pacing-1
branch to allow your Pi to go above the 35000 cycles mark (the limit on mine above which choppiness occurs). You could give a try to the Retropie script and just uncomment a line to get that version. I have currently set 90000 cycles for that game and it runs fullspeed.My version of Magic Carpet 1 is running off the CD hence I can't change the extender. I'll be happy to add anything to the wiki if you provide me with the version (CD, GoG, etc) you're using and the
.exe
to patch. -
Thanks for your reply @nemo93 !
I will try and comment on the things you suggested:I've never used the command utilities you've mentioned. I do everything by modifying one default
.conf
(which I never change) and one specific.conf
per game (which I fiddle with in case of issue to add more memory, joystick, GUS, etc). Choppiness tends to occur mostly when you have too many cycles. To the point it could crash your Pi.I tried to use the command line tool to find a nice cycle setting without haveing to reboot the games all the time (exit -> edit config -> restart game -> test). But as I said, it doesn't seem to have the desired effect. (?)
That's why you must never go with the
max
orauto
values forcycles
parameter. This explains the fixed value of 25.000 as said above.That's a very good point! I have many
conf
files left over from my DosBox-SVN. There I have often usedcycles = max or auto
or somesuch. That would explain the occasional crashes when trying the games. I will check myconf
files for leftovers.[... ]and for some games you have to set the right
machine
setting :) It's not specific to Staging though.Yeah about that... So far, I have only used
svga_s3
. Are there games, that require anothermachine
setting? Sorry for my ignorance... ^^;I'm using
cycles = 30000
for Wing Commander 3 yet I haven't tested that game extensively. Regarding Magic Carpet 2 it was one of the first game to be optimized especially for Pentium processor (devs even included some Easter Eggs) and as such requires a solid configuration to run at full speed. You'll need to give a try to thekc/fps-pacing-1
branch to allow your Pi to go above the 35000 cycles mark (the limit on mine above which choppiness occurs). You could give a try to the Retropie script and just uncomment a line to get that version. I have currently set 90000 cycles for that game and it runs fullspeed.I have the
kc/fps-pacing-1
branch installed from the start as I thought that this might be the best for the Pi4. Are there downsides to that? Do you know if the cycle settings are interchangeable between thekc/fps-pacing-1
and themaster
branch? (Of course the highercycles
settings above 35000 are not interchangeable...)My version of Magic Carpet 1 is running off the CD hence I can't change the extender. I'll be happy to add anything to the wiki if you provide me with the version (CD, GoG, etc) you're using and the
.exe
to patch.I'm using the GOG version of MC2. It comes with a CD image, but I mounted it and copied over all files into the game directory. This way, no CD is needed (at least so far as I'm aware). By that I can easily exchange the dow4gw.exe that is provided with dos32a.exe. I probably did the same for MC1, as I don't need / mount the CD.
-
@ecto you're welcome. I can't comment further on the command-line utilities at this stage. Yet I made extensive use of the CTRL-F11 / CTRL-F12 combo keys to do exactly that. Not very precise as on Pi you won't see on screen the current cycles count but it works.
About the
machine
setting, in fact you almost never require to go withsvga_s3
. The recommended setting ismachine = vesa_nolfb
. With it you won't have any flickering issue with Build Engine games (Duke3D, Blood, Shadow Warrior, etc) as well as on other games. Actually only a handful of games do require thesvga_s3
setting (mostly ones with FMV like 11th Hour or Ripper for instance but not required for Wing Commander's serie).
Note: I discovered that after patching Blood up to version 1.11 (latest patch available) then you must rely onmachine = svga_paradise
instead ofvesa_nolfb
to remove flickering. It's the only game to my knowledge which requires that value. It's only for patch/version 1.10 and 1.11.The
kc/fps-pacing-1
branch is the recommended one to use on pi4. Yet it's not polished and not officially supported. The only downside I'm aware is regarding sound/audio. Given the throttling implemented (the more cpu available the higher the cycles count) it might lead to a doppler effect or distortion in the sound when throttling occurs. Apart from that it's really fine and the added cycles allow for more games to run fullspeed on pi4.Thanks about Magic Carpet. The first one comes with no CDDA/redbook audio and I recall you might face issues at some point (opening/closing map and/or casting spells perhaps) if game is not executed from CD. Magic Carpet 2 does have CDDA. You might not hear the score if you copy the data to your c: drive. Keep me honest. I'll add these anyway to the wiki as Bullfrog games have no issue with DOS32A.
Keep on testing and feel free to report back!
-
@nemo93 Thanks for your input. It's greatly appreciated!
I will set
vesa_nolfb
in the defaultdosbox.conf
. Sorry to keep on bothering you but I have a couple of questions remaining ;)- What is the best setting for
output
is recommended? I have it ontexturepp
. - Should I leave the
texture_renderer
onauto
?
Do you have any experience with the following games that I can't get to run without sound crackeling:
- Pro Pinball Timeshock!: I tested
cycles = fixed 30000 .. 150000
but it's mostly laggy gameplay and always crackeling sound. - Fallout: I found it with
cycles = fixed 60000
to be perfectly playable but the sound keeps crackling at some points.
I'm so happy to have Dosbox working so great, as I grew up with various MS-DOS PCs (from 286 to 468 to several Pentiums) and played a good share of games on them and to relive that now is simply amazing.
PS I have to look into the CDDA of Magic Carpet 2 O_o I completely missed that!
edit
I got a bit further with Timeshock! I'm using a slightly lower detail setting in-game and 120000 cycles and I disabled CDDA. With that only minor audio stuttering remain. I can even almost use 800x600 resolution.
Does CDDA need so much processing power? The tracks are in .ogg format so a bit of decoding is certainly needed. I'm almost inclined to transcode to .wav, as the soundtrack is definitely worth it... - What is the best setting for
-
@ecto no problem :) I just saw this morning that MT32 is almost there on Staging. I guess it won't be long before it will be fully integrated. Now to your questions.
-
What is the best setting for output is recommended? I have it on texturepp.
=> I'm relying onoutput = texturenb
and that's good enough for me. The pixel perfect might be more suitable for desktop environments. -
Should I leave the texture_renderer on auto?
=> when it comes to DOS stuff I don't like to leave settings onauto
:D I'm usingtexture_renderer = opengles2
which is the backend currently supported on Pi's. At some point we might move toopengl
instead!
I have no experience whatsoever with Pro Pinball Timeshock! (you mean Pro-Pinball 2 : TimeShock! right?) I'm afraid as it's not part of my testbed. I'll give it a try when I have a chance though. As a wild guess your issue might be due to a too high resolution to handle for the Pi. Perhaps you could try enforcing a VGA resolution of 320x200 by setting
machine = vgaonly
in the.conf
. If the game supports such mode of course.Fallout sound is crackling and runs slow even going with
cycles = 100000
. So it migth be due to the resolution as well. I need to give a try tomachine = vgaonly
to see what's happening.
EDIT: Fallout doesn't supportmachine = vgaonly
which leaves us only with the only option to have a faster CPU.About the audio, please don't go with compressed formats like ogg, opus or mp3 as they will tax the CPU for decompression. It's best to stick with pure CD Audio on low-spec devices like the Pi. You just need to pass along a BIN/CUE pair to DOSBox and that will do. Don't bother to transcode anything!
-
-
@nemo93 said in [DOSbox] official thread:
At some point we might move to opengl instead!
opengl
should be working on a PI4 in RetroPie, it supports OpenGL 2.1. -
@ecto how hard was it to get the stage to work on the Pi. i remember from some if the past posts that it was not really messed with yet. just asking before i make the jump
-
-
@exarkuniv Well... it depends...
I have a custom dosbox starting script that starts Timidity++ or Munt, depending on the game. It also passes along specific game
conf
files to the dosbox executable.All I really had to do there, was exchanging the SVN executable for the Staging one.
** BUT** what really changed, is the way Staging handles the
cycles
setting! I usually usedcycles = max
in SVN, which doesn't work for Staging at all.So while my transition was quite smooth, it somehow wasn't (if you understand what I mean). Right now I'm exchanging all my GOG CD games (that usually rely on cue sheets with
.ogg
audio) with real images of the CD to keep the processing power for the audio decoding low. Somehow I have the feeling, that SVN handled that better.All in all, I certainly won't go back. The pixel-perfect scaling alone is just too nice to miss! Also, as @nemo pointed out, MT32 is soon to be integrated into Staging, which is also very nice!
-
Ok... I just did some more experimenting and I must say I'm very confused!
Especially the "higher resolution" (640x480) games are not running well for me on Staging. D:
I tried again with SVN and those games run fluently (!) and without sound distortions/crackling. Here is a list of games I compared directly:- Crusader No Remorse
- Wing Commander 3
- Dungeon Keeper (in hi-res mode)
- Timeshock
- Syndicate Wars (in hi-res mode)
I'm a little stumped, but maybe I will stick with SVN at least for those games... I even tried an recompiled Staging without the rpi4 optimization, but it made no difference. Some games just won't run fluently... :(
-
@ecto thanks again for your continuous feedback. Much appreciated! For both Bullfrog games, Dungeon Keeper and Syndicate Wars in hi-res I'm surprised. Back in the days those games required a bleeding-edge Pentium to run in SVGA/hi-res to the point I never saw them running properly in SVGA! With our Pi4 we can come close to a Pentium 75 so I never thought it would be possible to run those games in SVGA. The only games I'm able to run in such hi-res are Mechwarrior 2 and it's addon Mercenaries as well as Fade To Black (with
100000
cycles). For DK and SyndWar I'm having80000
cycles and they do run fullspeed in VGA/lo-res mode. Both work fine with the DOS32a extender.Crusader and Dungeon Keeper are 2 games which require
machine = svga_s3
to run fine under Staging. I do havecycles = 60000
for Crusader and it runs quite nicely I'd say almost fullspeed here with Staging and those settings.I really need to spend more time on the Wing Commander's serie. I've done only basic testing and I'm afraid I can't comment further.
Fortunately Retropie is super flexible and it's easy to pick a specific emulator per game :-) Feel free to switch back to SVN for the games that run best on another fork or SVN.
-
@nemo93 Yeah, I was a little surprised as well! I just converted my cdda games from ogg to wav or bin and hoped for a better result... Then I tried it with the installed svn and it's really running fluently. I had to change the cycles back to max in svn, but that was it.
Well, I will probably use svn for the 10 odd svga games and the rest with Staging, because the look of Staging is so much cleaner with pixelperfect output. Since Staging is still in very active development I'm confident, that it will get only better with time.
Do you think the developers are aware of this svga discrepancy? -
DOSBox Pure is available for public testing:
https://github.com/schellingb/dosbox-pure#download -
@ecto would you mind sharing your full conf please (game.conf + dosbox.conf + OS/kernel/Retropie)? I'll reproduce here as I can't see why such big differences between SVN and Staging. For now there's no evidence about an issue in the "svga code" but anything supporting this will be helpful.
I've tried Timeshock and it's running very smoothly even in higher resolution. Is your issue only about sound distortion or is it also about slow video emulation?
@themazingness thanks for that. Any feedback about Pure would be much appreciated as it looks an interesting fork.
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.