RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login

    [Guide]Adding MS-DOS games using eXoDOS and sduensin's import-eXoDOS script

    Scheduled Pinned Locked Moved General Discussion and Gaming
    exodosms-dosmsdospc gamesdosbox
    22 Posts 9 Posters 10.6k 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.
    • BiZzAr721B
      BiZzAr721
      last edited by

      0_1523244167097_+Start DOSBox.png
      I am making a simple tutorial on how to import MS-DOS games to RetroPie using import-eXoDOS script created by @sduensin. Sduensin's script saved me MANY hours of scraping metadata, artwork and getting everything to launch from the emulation station menu. The script will process the collection, generate Emulation Station metadata, and create launcher scripts for DOSBox. Please read import-eXoDOS.txt for more detailed information on the script.

      https://github.com/sduensin/retropie-tools - Download [import-eXoDOS.sh]

      You will need the eXoDOS collection of PC games. eXoDOS is a collection of nearly all DOS games, using the best version of each game, all pre configured with metadata and artwork.

      There are a total of 5 collections:

      • Action
      • Adventure
      • RPG
      • Strategey
      • Simulation

      Some sets have a version 2.0 available. Version doesn't matter, but upgrading existing set version may create duplicated games. The newer sets have updated artwork. Please do not ask where to get the collections. Please do your due diligence to find out the what and where of eXoDOS.

      Each collection has a archive named the same as the collection (eg - Action.zip) You will need this file. It contains a !DOS folder which has all the metadata, artwork, & DOSbox config files. After you have all the games you would like to add, and the associated collection archive, extract them all into the same folder. You should now have a folder for each game, and a !DOS folder.

      Copy the game folders from your PC to your retro pie in /home/pi/RetroPie/roms/pc (do not copy !DOS folder)
      Move import-eXoDOS.sh to roms directory
      Create pc directory in /opt/retropie/configs/all/emulationstation/gamelists if it does not already exist

      The !DOS folder contains the meta data for EVERY game in that collection. We now need to remove the ones that you do not have a game for, otherwise the script will end with error line 182: No such file or directory. The way I accomplished this was pretty convoluted. If anyone has a more efficient way of accomplishing this, perhaps with a batch file, I would love to be able to update this guide with it.

      For reference, I'll write what I did first, but ultimately did it a different way. This will leave you with a list of all game directories which may help with creating a script.
      I use Lopesoft file menu tools which adds useful context menu tools and shortcuts.

      I opened a command prompt at the eXodos games folder (Right click -> file menu tools -> command line from here)
      Then, enter:

      dir>listmyfolder.txt
      

      Open listmyfolder.txt with notepad++ and remove lines mentioning !dos, listmyfolder.tx and anything else that is not a game directory.
      Hold ALT + SHIFT and select the column of the game folder names. COPY, CTRL + A, then PASTE
      This leaves you with a file containing only the game folder names.
      alt text

      What I ended up doing was selecting all folders in !DOS, right clicked & dragged to the games folder and chose the Window's move option (NOT teracopy if you have it installed). When a popup about a conflict appears and asks if you would like to merge folders, click NO and check to skip all. Your games folder will be mixed with the !dos directories (but you still have all the zips, plus your games directory on your retropie if you need to put it back in order) I deleted those mixed folders to clear up some HD space.....but like a big dummy, I removed the freshly edited !dos folder as well!!
      Afterwards,(as long as you haven't delete the !DOS folder) you will be left with only folders matching the names of the game folders you have.

      Afterwards I used WinMerge to make sure every folder that appears in !DOS appears in pc folder on RetroPie as well.
      alt text

      Move the !DOS folder from your pc over to the pc directory on the pie.

      Over on the Pie, intall DOSbox from optional packages.
      Next, from the command prompt, (f4 while in Emulation Station) edit es_systems.cfg which is located in /opt/retropie/configs/all/emulationstation

      If es_systems.cfg is not shown, run the following command to put a copy there and give write permissions:

      sudo cp /etc/emulationstation/es_systems.cfg /opt/retropie/configs/all/emulationstation/es_systems.cfg
      sudo chown -R pi /opt/retropie
      

      Find PC and change extensions to <extension>.sh .SH</extension>

      Next, we will run the script. To do that we must make it executable.

      From the command prompt enter:

      cd /home/pi/RetroPie/roms
      chmod +x import-eXoDOS.sh
      

      At this point, we are ready to run the script. If you manually added PC games, BACKUP your gamelist.xml file and merge it with the newly created gamelist from the next step:

      ./import-eXoDOS.sh /home/pi/RetroPie/roms/pc
      

      Now, go into the pc folder. All scripts are UPPERCASE.SH. Gamelist calls for lowercase.sh. The easiest way to do this is using FileMenuTools. Select all scripts, right click, and go to FileMenu Tools --> Advanced Renamer.
      Check "Change Name", "convert format" and choose lowercase. Also check "Change Extension", "Convert Format" and choose lowercase. Click rename in upper right.
      alt text

      Finally, type exit to boot up Emulation Station.

      sduensin writes a disclaimer:
      "If you need to modify the AUTOEXEC.BAT of any of the games in your
      collection to make them run (several are broken in eXoDOS), DO NOT modify
      the AUTOEXEC.BAT file in the actual game folder! Instead, find the
      DOSBOX.CONF file for the game under the EXODOS/!DOS folder and modify it.
      That way, when you re-run this script, your changes will be applied and not
      clobbered when the AUTOEXEC.BAT is updated. When you apply fixes, pretend
      you're fixing the original Meager front end installation. Do not remove
      things like the first two "CD .." statements that Meager requires."

      If you have no intentions on re-running the script, I was able to get a couple CD based games working by editing the AUTOEXEC.BAT.

      Red Baron

      [autoexec]
      @ECHO ON
      MOUNT -u C
      MOUNT E /home/pi/RetroPie/roms/pc/REDBARON
      IMGMOUNT D /home/pi/RetroPie/roms/pc/REDBARON/CD/REDBARON.ISO -t iso
      IMGMOUNT A "/home/pi/RetroPie/roms/pc/REDBARON/CD/RED BARON EXPANSION DISK.IMA" -t floppy
      e:
      cd /SIERRA/REDBARON > NUL
      BARON
      exit
      

      Fallout 1

      [autoexec]
      @ECHO ON
      MOUNT -u C
      MOUNT E /home/pi/RetroPie/roms/pc/FALLOUT1 -FREESIZE 1000
      IMGMOUNT D /home/pi/RetroPie/roms/pc/FALLOUT1/CD/FALLOUT.CUE -t iso
      e:
      cls
      cd /INTRPLAY/FALLOUT > NUL
      FALLOUT
      exit
      

      (I keep echo ON, I like the look of the commands showing during boot)

      I hope this helps all those that were intimidated by setting up DOS on RetroPie!

      edmaul69E GrandMasterLynxG 2 Replies Last reply Reply Quote 1
      • edmaul69E
        edmaul69
        last edited by edmaul69

        with new stuff there is no longer a need for .sh files unless you are using real cd disc drives. it can boot the games from the .conf files now. reading .conf files means universal files for dosbox and lr-dosbox

        1 Reply Last reply Reply Quote 0
        • edmaul69E
          edmaul69 @BiZzAr721
          last edited by edmaul69

          This post is deleted!
          1 Reply Last reply Reply Quote 0
          • Z
            zerojay
            last edited by

            I believe the error is line 83, not 182,

            DIRLIST[i++]="!DOS"

            Gotta add a slash before the ! in !DOS. Everything works after that.

            1 Reply Last reply Reply Quote 0
            • BiZzAr721B
              BiZzAr721
              last edited by

              I did some research before getting involved with adding DOS. From what I saw, it seemed lr-dosbox still has some hiccups to iron out (like slowdowns on games). Also, adding meta data was a concern. Many games wouldn't scrape. Using the script & ExoDOS, Metadata is already there, along with a basic image. All I have to do is some minor tweaking, and that's only if I want to add video and change out the boxart.
              What benefits does loading through a config file give vs. Sh?
              Also, is there a standard for scraping dos Metadata?

              1 Reply Last reply Reply Quote 0
              • N
                nighthurdles
                last edited by

                Really sorry to open up an old thread but it seems to be the only place to get any english language info on this I can see.
                Firstly, I must say, BiZzAr721... thanks for your guide!...
                I've spent about 3 days solid trying to get eXoDOS to work on my retropie setup off the back of the limited info out there. Thanks to this guide and some (russian sites with a translator) I have managed to install a full complete eXodos pack on the retropie using the script from sduensin.

                The script finally ran perfectly (after I renamed everything using 3rd party software - without the script - because the pi seemed to ignore the az>AZ command stating that it was already there, but then wouldnt access the ini files due to them not being INI (capitals) etc... so after all that was understood and fixed (with my limited understanding of linux systems and whatnot) Finally after the script ran against my capitalised eXoDOS files - I saw all the scriptfiles show up and meta data scraped and whatnot in the gamelist and on my retropie pc ports menu, but the issue I have now is that even though all the files are seemigly sorted and organised, autoexecs and script files, in the menu etc... none of the games actually load... and I mean NONE of them not even the simplest non cd game. They all kick me straight back to the retropie menu. I've checked the scriptfiles and the autoexec.bat files and they all seem to be pointing to correct files (All caps files and folders). I'm pretty damn sure I got install with the script spot on... I'd be grateful to anyone with any ideas whether I could be missing something simple? I'm using the standard dosbox emulator (non lr) with no settings changed. Getting desperate after the amount of time I've spent gettign them to show up!
                Thanks for any help in advance!! Cheers

                1 Reply Last reply Reply Quote 0
                • Z
                  zerojay
                  last edited by

                  Look at the runcommand log.

                  N 2 Replies Last reply Reply Quote 0
                  • N
                    nighthurdles @zerojay
                    last edited by

                    @zerojay cheers for speedy reply... i dont see a log under dev/shm/runcommand.log... which is where google seems to think it should be? sorry for the newbness.

                    1 Reply Last reply Reply Quote 0
                    • N
                      nighthurdles @zerojay
                      last edited by nighthurdles

                      @zerojay

                      hi... ignore previous comment! fixed - I/it deleted the +start DosBOX.sh somewhere along the line! No worries :D

                      1 Reply Last reply Reply Quote 0
                      • Z
                        zerojay
                        last edited by

                        I installed Dosbox-sdl2 and I found i also had to symlink the executable and the conf file.

                        1 Reply Last reply Reply Quote 0
                        • D
                          dje33
                          last edited by

                          I have a problem
                          when i do :

                          cd /home/pi/RetroPie/roms
                          chmod +x import-eXoDOS.sh
                          ./import-eXoDOS.sh /home/pi/RetroPie/roms/pc

                          i have this error
                          -bash: ./import-eXoDOS.sh: Permission non accordée

                          1 Reply Last reply Reply Quote 0
                          • V
                            VictimRLSH
                            last edited by

                            375GB?!? OK, I'm going to do this, but it will have to wait. LOL...

                            System Config: Retropie 4.4 with full desktop, RPi 3B, 256gb SD, 5v 2.1A 5,200 mAH USB battery. EasyMSX controller mounted with Pimoroni Hyperpixel 4 (non touch). Also running 4.6 on a 4gb Pi 4 serving as my primary desktop computer now.

                            1 Reply Last reply Reply Quote 0
                            • KN4THXK
                              KN4THX
                              last edited by

                              To enhance nostalgia purposes I am going to download this with my 14.4k modem and copy it to my a: drive as a multidisk installation. See you guys in the Trade Wars tournament.

                              "If you're gonna play the Game Boy, You gotta learn to play it right" - https://www.youtube.com/watch?v=FYLGl92ETNQ

                              V 1 Reply Last reply Reply Quote 0
                              • V
                                VictimRLSH @KN4THX
                                last edited by

                                @TheDataCereal Do I DARE want to calculate how long that will take and how many 1.44mb floppies that will occupy?!?

                                System Config: Retropie 4.4 with full desktop, RPi 3B, 256gb SD, 5v 2.1A 5,200 mAH USB battery. EasyMSX controller mounted with Pimoroni Hyperpixel 4 (non touch). Also running 4.6 on a 4gb Pi 4 serving as my primary desktop computer now.

                                KN4THXK 1 Reply Last reply Reply Quote 0
                                • KN4THXK
                                  KN4THX @VictimRLSH
                                  last edited by

                                  @VictimRLSH That'd be like a modern day Ping Of Death to the modern landline infrastructure..and floppys? Pfff I used to work at AOL back in the day, do you know how many Floppies and CDs I've had shipped back to me out of spite? Heck, I used to mail them back to myself out of self hatred!

                                  "If you're gonna play the Game Boy, You gotta learn to play it right" - https://www.youtube.com/watch?v=FYLGl92ETNQ

                                  1 Reply Last reply Reply Quote 1
                                  • V
                                    VictimRLSH
                                    last edited by

                                    OK, just for giggles, I actually DID calculate that. Under IDEAL conditions it would take 6.7 years and occupy only 267,857 1.44mb floppy discs.

                                    System Config: Retropie 4.4 with full desktop, RPi 3B, 256gb SD, 5v 2.1A 5,200 mAH USB battery. EasyMSX controller mounted with Pimoroni Hyperpixel 4 (non touch). Also running 4.6 on a 4gb Pi 4 serving as my primary desktop computer now.

                                    1 Reply Last reply Reply Quote 2
                                    • GrandMasterLynxG
                                      GrandMasterLynx @BiZzAr721
                                      last edited by

                                      @BiZzAr721

                                      Sorry for bumping this but I tried to do the command for the es_systems.cfg and it’s not working for me at all I really could use the help on this

                                      BiZzAr721B 1 Reply Last reply Reply Quote 0
                                      • BiZzAr721B
                                        BiZzAr721 @GrandMasterLynx
                                        last edited by BiZzAr721

                                        @GrandMasterLynx I believe es_systems.cfg lists .exe your extension type. You must add change to .SH & .sh since you will be running games from scripts. Anyway you make those changes will do. (if you keep .exe listed, you will have a bunch of game subfolders listed in ES)

                                        The way I mentioned above, the first command will create a copy of es_systems.cfg in your config folder. The 2nd command will give you proper permissions. (you can now easily view & edit es_systems.cfg from the config folder in samba share)

                                        1 Reply Last reply Reply Quote 0
                                        • N
                                          nighthurdles
                                          last edited by nighthurdles

                                          Hello again almost a year later. I'm in the process of a fresh install of my SD card as my old one was giving me grief... I do have backups but they are a bit bloated and I want the install to be as clean as possible... My exoDOS setup and for that matter, all roms and gamelists are on a USB harddrive. Could anybody let me know what (if any) issues may arise when trying to get the exoDOS collection working again? Which files on the SD card will need reconfiguring from a fresh dosbox install? Or... (even worse)... have I screwed up anything major by trying to go about the retropie reinstall this way (fresh retropie installation on new SD card?)

                                          Thank you for those listening and those who helped in the past, for any help is greatly appreciated!

                                          Edit: Turns out that it seems the gamelist for the exoDOS stuff is obviously not with the roms, as they now dont show up at all having installed dosbox and restarting the retropie. I could still grab the gamelist.xml from the old SD card if its on there instead. Would this be the recommended action? Thanks again!

                                          Edit: I'll have a go at copying over the gamelist.xml and make sure that the es_systems.cfg file only looks for dosbox .sh extensions I'll let you know how I get on!

                                          1 Reply Last reply Reply Quote 1
                                          • N
                                            nighthurdles
                                            last edited by

                                            Worked out absolutely fine! No issues once the gamelist was back all was perfect again :)

                                            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.