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

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



  • 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!



  • 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



  • This post is deleted!


  • I believe the error is line 83, not 182,

    DIRLIST[i++]="!DOS"

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



  • 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?



  • 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



  • Look at the runcommand log.



  • @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.



  • @zerojay

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



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



  • 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



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



  • 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.



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



  • @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!



  • 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.



  • @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



  • @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)



  • 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!



  • Worked out absolutely fine! No issues once the gamelist was back all was perfect 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.