RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login
    Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

    [DOSBox] official thread

    Scheduled Pinned Locked Moved Help and Support
    dosdosboxdosbox-stagingdosbox-xdosbox-pure
    234 Posts 27 Posters 80.0k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • jamrom2J
      jamrom2 @mitu
      last edited by jamrom2

      @mitu good question... I'm using the latest build of Retropie... 4.7.1. That's about all I know about what's running the background.

      So ... I'd like to say yes, but I honestly don't know.

      Can I run a command to tell me?

      mituM 1 Reply Last reply Reply Quote 0
      • mituM
        mitu Global Moderator @jamrom2
        last edited by

        @jamrom2 The information is shown when you start the RetroPie-Setup script

        0bacfb0f-a602-4c43-9b4d-45e31d4684f6-image.png

        jamrom2J 1 Reply Last reply Reply Quote 0
        • jamrom2J
          jamrom2 @mitu
          last edited by

          @mitu lol... oh.. that one...

          Yes, it's Buster

          mituM 1 Reply Last reply Reply Quote 0
          • mituM
            mitu Global Moderator @jamrom2
            last edited by

            @jamrom2 Make sure your OS and packages are. up-to-date. What's the output of:

            apt policy meson
            

            It should show something like:

                 0.52.1-1~bpo10+1 500
                    500 http://archive.raspberrypi.org/debian buster/main armhf Packages
                 0.49.2-1 500
                    500 http://raspbian.raspberrypi.org/raspbian buster/main armhf Packages
            
            jamrom2J 2 Replies Last reply Reply Quote 0
            • jamrom2J
              jamrom2 @mitu
              last edited by jamrom2

              @mitu
              Looks like 52.1 needs to be installed

              meson 1.jpg

              1 Reply Last reply Reply Quote 0
              • jamrom2J
                jamrom2 @mitu
                last edited by

                @mitu does this sound right? Or is there another command to get it done.

                https://mesonbuild.com/Quick-guide.html

                LolonoisL 1 Reply Last reply Reply Quote 0
                • LolonoisL
                  Lolonois @jamrom2
                  last edited by

                  @jamrom2 sudo apt-get install meson, will also pull in ninja-build and python3 (if absent).

                  jamrom2J 2 Replies Last reply Reply Quote 0
                  • jamrom2J
                    jamrom2 @Lolonois
                    last edited by

                    @lolonois thank you. It's compiling now.

                    1 Reply Last reply Reply Quote 0
                    • jamrom2J
                      jamrom2 @Lolonois
                      last edited by jamrom2

                      @lolonois stopped here... been over an hour. Is this a problem? Am I missing something else?

                      Update: never mind... I forgot it's better to run the compiling scripts in the unit and not remotely. It blew through the build in 10 min. All good.

                      1 Reply Last reply Reply Quote 0
                      • jamrom2J
                        jamrom2 @nemo93
                        last edited by jamrom2

                        @nemo93 I have a question about this Staging version... and I'm sure I'll get the Idiot of the Year award for it.. lol.

                        I have the SDL2, Pure, and now Staging versions all loaded. Plus the lr-dosxbox as well... but that's no where near the performance of the other three.

                        So what is the difference between the three versions? Staging seems to be the best, but I'm not seeing any difference on games like NHL 96, and stuff in that era. I realize my little Pi3b+ should probably be upgraded to a 4 for better overall speed and such. But I was curious as to what makes these versions different.

                        Also, I'd like to run some shaders for the CRT look of the late 80's. How do I do that with these?

                        Thanks for all the work on Staging... it's very good.

                        N 1 Reply Last reply Reply Quote 0
                        • N
                          nemo93 @jamrom2
                          last edited by nemo93

                          @jamrom2 it's always better to ask questions, to learn new stuff and to try to understand what's going on. Keep shooting questions, there is a lot of knowledge around that forum with plenty of wise fellows.

                          I haven't done any new testing recently with lr-dosbox but when I did I got poor performance on pi3/pi4. If I'm not mistaken this is more or less a straightforward port of "SVN" and I'm not even sure this libretro core is still being maintained. There's @RealNC 's libretro core as well which brings many features and of course "Pure" but I haven't tested it yet. All those cores benefit from RetroArch quality-of-life improvements like an easy-to-use GUI, controllers mapping, etc at the cost of a slight overhead which can decrease performance a bit on some lower-end devices like our beloved Raspberry Pi. Especially on some of the most demanding games (the 3D ones like Azrael's Tears, Quake, etc). That's why I prefer to stick to the "standalone" versions of DOSbox for now.

                          "SDL2" is a "standalone" version based on "Dugan Chen" 's fork. It's a great fork bringing lots of improvements the most important being SDL2 support which prevents tearing for instance. The only issue is that this fork is no longer maintained (last commit from Jan 2020). Staging is also a "standalone" fork which brings many features and improvements. On top of that the 2 maintainers (all credits to them) have done an incredible work of modernizing the whole codebase. This is no small task and they keep merging patches from "SVN" and adding features on a very regular basis.

                          The fact you don't see any difference in 3D games is mostly due to the limited power available on a Pi. Also even if there are differences in features etc all forks above do share the same foundation which is the "SVN" code base. A game might run - slightly - better on a specific fork but don't expect huge differences.

                          Upgrading to a Pi4 will help 3D games to run better given the performance boost from the CPU but it won't be perfect. Keep in mind that it was very uncommon for DOS games to run at 60fps back in the days. Running a game at constant 30fps was amazing back then :-)

                          For shaders, I'm not 100% sure but DOSBox does use a specific format hence you can't rely on Retroarch's ones for instance. Some shaders have been ported though, you can find them at that page.

                          jamrom2J 1 Reply Last reply Reply Quote 0
                          • jamrom2J
                            jamrom2 @nemo93
                            last edited by jamrom2

                            @nemo93 Thanks for the detailed reply. From all the testing I've done so far, Staging seems to be the better of them all, with SDL2 right behind it and truthfully, almost impossible to see any difference between them. They both run really well.

                            I've tested games like Aces of the Deep, Aces over Europe, Team Yankee, Duke Nuk'em 3D. They run good in core based DosBox but get really beat-up in Libretro based Dosbox. Sound issues, frame jumps, etc.

                            I think the extras like overlays and shaders will just have to wait. I understand the reasons, it's emulation and not native hardware, so it's expected to take performance hits when you turn on all the extras.

                            I was going to install lr-dosbox-core, but I don't see a step-by step install for it... unless I missed it. It's fine, because if there is no performance gain over the other libretro cores, I won't use it anyway.

                            I'll stick with Staging and play around with adding in a shader for the CRT effect. I'll see how it effects performance and decide from there.

                            Thanks again for the great response. I agree... the knowledge is incredible and we all learn by asking. It's a great community!

                            BTW... mitsu actually sent me that link for the shaders... I just haven't played with it. Now that I'm decided on my DOSbox direction, I'll mess around like I mentioned.

                            1 Reply Last reply Reply Quote 0
                            • ectoE
                              ecto
                              last edited by

                              It's time for another status report from me ;)
                              I have now made the change to full kms and while I had some problems with sound, which I now reverted back to bcm, I'm happy to have made this step.

                              Now, on to my favourite topic: dosbox.
                              I once again trieddosbox-stagingwith the new build script from @nemo93's repository. That all went well, thanks for that!
                              It's nice to have the build-in MT32 emulation and the possibility to use shaders (zfast_crt especially) is a really great development. But sadly I still have some problems with different games (everything tested with 35000 cycles):

                              • Ultima VII with MT32: The music in the start screen crackles, when the titles fade in. When I tried it with my external munt demon it just works. Even with shaders (nice!). Maybe running munt externally keeps it off of the cpu dosbox is running on? Idk. I coudn't find options for MT32 emulation, like a higher buffersize or enabling dedicated thread for it.
                              • Wing Commander IV: (or maybe it's the svga resolution) doesn't like dosbox-staging, I guess. Crackling sound everywhere, and somewhat slow video output. I tried different outputs (gl, gles, software) and machines (vesa_nolfb, svga_s3), but it made no difference. It got better when I randosboxwithXINIT, but then my keyboard and controller wouldn't work at all.

                              I hadn't time to test more, but as it seems, I will still stay withSVNon higher resolution games. But using the shaders on those low-resolution games together with pixel-perfect scaling is a great feature. I will test more games in the weeks to come!

                              PS. have I made everything right: the shaders only work when output=openglppis set?

                              jamrom2J 1 Reply Last reply Reply Quote 1
                              • jamrom2J
                                jamrom2 @ecto
                                last edited by

                                @ecto How did you get the shaders to work. I've been playing around with this... but not 100% focused on it.

                                I'd like to try it as well.

                                I think between the two versoins (SVN and Staging) there are some really good options. What games did you try?

                                ectoE 1 Reply Last reply Reply Quote 0
                                • ectoE
                                  ecto @jamrom2
                                  last edited by

                                  @jamrom2 I used output=openglpp and glshader =/path/to/shader.glsl. Shaders can be found here or you use the build-in ones.

                                  I have lots of games (The MSDOS-era is where I grew up in). For starters I would recommend the Origin games (Ultima, System Shock, Wing Commander, Strike Commander, Privateer, Crusader). Other great games are Fallout, Pro Pinball games, Dungeon Keeper and Heroes of Might and Magic to name a few. Very good are also the first Alone in the Dark games.
                                  There's also Lucasarts, but those adventures are probably best played with ScummVM.

                                  Overall SVN seems to have the better performance (at least for me and especially at higher resolutions), but staginglooks soooo much better. It's no easy call.

                                  jamrom2J 1 Reply Last reply Reply Quote 0
                                  • jamrom2J
                                    jamrom2 @ecto
                                    last edited by jamrom2

                                    @ecto can I pick your brain on this one a little...

                                    I am using Staging.

                                    I adjusted the dosbox-staging.conf file located in /opt/retropie/configs.hdmi/pc to match what you have in the [SDL] and [render] areas.

                                    output = openglpp

                                    I then placed the shader (I used zfast_crt.glsl) in the opt/retropie/emulators/dosbox-staging folder and adjusted the statement in [render] to this...

                                    glshader = /opt/retropie/emulators/dosbox-staging/zfast_crt.glsl

                                    Nothing shows... so I am definately missing something in the config file. Seems simple enough, but I think I'm writing the location wrong.

                                    Thanks!

                                    ectoE 1 Reply Last reply Reply Quote 0
                                    • ectoE
                                      ecto @jamrom2
                                      last edited by

                                      @jamrom2

                                      Here are the important (?) parts of my dosbox-staging.conf

                                      [sdl]
                                      fullscreen       = true
                                      display          = 0
                                      fullresolution   = desktop
                                      windowresolution = default
                                      output           = openglpp
                                      texture_renderer = opengl
                                      
                                      [dosbox]
                                      language          = 
                                      machine           = vesa_nolfb
                                      captures          = capture
                                      memsize           = 16
                                      startup_verbosity = high
                                      
                                      [render]
                                      frameskip          = 0
                                      aspect             = true
                                      monochrome_palette = white
                                      scaler             = none
                                      glshader           = /opt/retropie/emulators/dosbox-staging/zfast_crt.glsl
                                      

                                      Maybe that helps ;)

                                      N 1 Reply Last reply Reply Quote 0
                                      • N
                                        nemo93 @ecto
                                        last edited by

                                        @ecto thanks for reporting back. Very useful. Whenever there's sound crackling that means you have either not enough cycles or too many. On either Pi3 or Pi4 I consider the maximum number of cycles you can set to be 35.000 (it's possible to go beyond that point on Pi4 using a specific dev branch). To me setting 35.000 should be done only for the most demanding games and usually this is where sound will start crackling. Also SVGA will require more processing power than VGA so try the latter in case of issue. As a rule try to stay under 35.000 whenever you can.

                                        In Staging MT32/Fluidsynth should run on their own thread automatically. Decision has been made to hide as much options as possible from users in order to expose only the most relevant ones in the conf. To keep things tidy and efficient.

                                        • Ultima VII: I'm a bit surprised you had to go up to 35.000 cycles. Can you try with far less than that? I'm using 10.000 cycles here and it looks ok. Anything in the range from 9000 to 11.000 cycles should be good for more recent Ultima's. It's fine to disable EMS as well.

                                        • Wing Commander IV: required a beast back in the days especially if you wanted to play in "hi-res" mode which is SVGA. This one should require more than 35.000 cycles to run smooth. Apparently it should be fine in the range 50-60.000 cycles. A bit too high even on a Pi4. Try VGA instead to see if this runs better and don't go above 30.000 cycles.

                                        @jamrom2 I believe @ecto provided everything :-) Just keep in mind you can set options/functionalities on a per-game basis. You need to rely on an opengl output for shaders to work.

                                        ectoE 1 Reply Last reply Reply Quote 0
                                        • ectoE
                                          ecto @nemo93
                                          last edited by

                                          @nemo93
                                          You are right, with Ultima VII, I didn't need 35000 cycles there. I've settled for 16000, which is more than enough (it doesn't hurt to let the Avatar run a little faster). ;)

                                          But very good news: I think I just had a small breaktrough! In all (?) VGA (320x200) games that had some sort of sound crackling before, I completely got rid of it by setting

                                          [mixer]
                                          blocksize = 512
                                          prebuffer = 200
                                          

                                          This is a bit counter intuitive (according to the documentation), but it works. Also, for most of those games, the sweet spot of cpu cycles is (as you said) more around 20000 than around 30000.

                                          Now I still have to find out, why SVGA (640x480) games are so much worse on stagingas in comparison to SVN, where those run fluently! I tried different ones (Wing Commander 3+4, The Settlers 1+2, Terminal Velocity, Dungeon Keeper...) and there is always crackling sound even with my new settings from above. The crackling gets really bad, as soon as I move my mouse, so maybe there is a connection?

                                          jamrom2J 1 Reply Last reply Reply Quote 0
                                          • jamrom2J
                                            jamrom2 @ecto
                                            last edited by

                                            @ecto I'm not sure what I'm doing wrong with this, but no matter what I put in those SDL settings, I get either box in the middle of the screen as big as a birthday card, or I get a box in the lower left-hand screen the size of a business card.

                                            Is there a full write-up on making all this work? I must be missing a step somewhere.

                                            ectoE 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            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.