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

Hiding useless executables for DOSbox games by default?



  • A lot of DOS games have multiple executables, batch files etc, that are either used internally by the game, or not needed often (such as installers, setup files, etc.) Sometimes they're even named things like game.exe which can be a little confusing if you don't know off the top of your head you need to run launcher.bat to start the game. They also seriously inflate the gamecount listed for DOS games, since that counts each executable file as a separate game. So what I've been doing, is setting these files to hidden in their metadata. Then I have to filter by hidden: false and everything is hunky dory. I don't have to look at the files I'll (almost) never run and my game count is much more accurate. That is until I restart emulation station. At first I though all my work was gone, but in fact, I just had to re-enable the filter since the metadata I had set was all still there. This is a little bit of a pain though, and I'd like to be able to have the hidden files filter on by default, so I don't have to re-enable it every time I reboot or restart emulation station. I can't find a way or place to set that however. In the other settings menu, there's another option to show hidden files, but turning that on or off doesn't do anything visible to me. I assume that might have to do with the OS's hidden files and not files tagged hidden in their metadata. Maybe I'm going about this the wrong way.



  • @mrdowntempo There are a couple of ways of achieving this:

    (1) Use shell scripts (.sh) to launch games. More info: https://dosonthepi.blogspot.co.uk/2015/01/run-dos-games-in-retropie_15.html#add-dosgames

    (2) Use custom DOSBox cofiguration files (.conf) to launch games. Using the Wolfenstein 3D example from the link above, you would create a text file, Wolfenstein 3D.conf, in the PC roms folder with the following contents:

    [autoexec]
    # Lines in this section will be run at startup.
    # You can put your MOUNT lines here.
    
    MOUNT c /home/pi/RetroPie/roms/pc
    C:
    cd WOLF3D
    WOLF3D.EXE
    EXIT
    

    This is a recent update so you may need to update the DOSBox binary.

    Either method will require the use of a custom es_systems.cfg file to make sure DOS executables don't appear in ES. Guidance on creating one can be found here. Once created, you need to edit the <extension> entry for the PC system and only include .sh and/or .conf extensions as appropriate.



  • Buy why? That seems like a lot MORE work in the long run, especially for small and early games that don't need any non-default config (stuff like sopwith)

    I don't want to hafta write a custom shell script for each game I want to launch. Why can't I just choose to hide the stuff I don't want to see, and keep it hidden? And even outside the scope of DOS, let's say I just wanted to set all games with mature content to hidden, or all non-english games or some other arbitrary thing. Why can't I just get ES to keep things I've labeled hidden, hidden?



  • @mrdowntempo early games actually need more done to keep them from running at 300 miles per hour.



  • @edmaul69 Can someone please tell me if setting the hidden filter to be on by default is or isn't possible?



  • @mrdowntempo im not sure about how you want to do it but with .sh and .conf files you can name them to a real name as apposed to seeing the name the .exe files use.


  • Global Moderator

    @mrdowntempo I think if you run Emulationtation set up with Kiosk/Kid mode they're always hidden.



  • @mrdowntempo easiest way by far is to move all your DOS games to other folder than /home/pi/RetroPie/roms/pc, for example /home/pi/RetroPie/roms/pcdata

    then you just create .sh file for each game in /home/pi/RetroPie/roms/pc



  • @spiky @dudleydes @edmaul69 Ok, well... it sounds like the .sh method is the universally accepted one (though it bothers me that it requires a change to es_systems.cfg) Is three a resource of prewritten .sh files that have been tested to work for various games?


  • Global Moderator

    The .conf method is more favourable than .sh, but you need to ensure that you've updated your RetroPie-Setup script and installed DOSBox recently.

    You don't need to edit es_systems.cfg. Simply put your conf files in the main folder ~/RetroPie/roms/pc, and store all of your game data in a subfolder. If you want to hide the folder, prefix the folder name with a full stop to prevent EmulationStation from showing it.

    Your .conf files would look something like:

    [autoexec]
    # Lines in this section will be run at startup.
    # You can put your MOUNT lines here.
    
    MOUNT c /home/pi/RetroPie/roms/pc/.games
    C:
    cd WOLF3D
    WOLF3D.EXE
    EXIT
    

  • Global Moderator

    @mrdowntempo The es_systems.cfg for PC should already accepts .sh scripts, so there's not need for any modifications. You can find a few examples linked from the docs page - e.g. http://dosonthepi.blogspot.ro/2015/01/run-dos-games-in-retropie_15.html#add-dosgames or http://dosonthepi.blogspot.ro/2015/02/dosbox-configuration-for-individual.html.



  • @mrdowntempo as @psyke83 stated .conf files is the better way. And yes I actually have all of my games in a roms folder called pc2 and only .conf files in my pc folder. You dont have to edit your es_systems.cfg if you do this.



  • Do the sub-directories have to follow DOS naming restrictions? Or can I have them named things like /roms/pc/.games/raptor - call of shadows/



  • @mrdowntempo that all depends. If you set that folder up as your c: drive then you can do that. but you cant access it after you switch from drive z: to drive c: However the spaces is an issue in a .sh or .conf file. To get around that you need to replace the spaces with / in the .sh or .conf file. Example:

    mount c /roms/pc/.games/raptor/-/call/of/shadows/
    c:
    RAPTOR.EXE


  • @edmaul69 ok thanks, wasn't sure if / or %20 was the way to go. I think I'll just use shorter names like /raptor/ since I'll have to do a lot of moving around anyway. Thanks!



  • @mrdowntempo no problem. Just remember one thing, linux is case sensitive so caps and lowercase are important. Even though if you are inside dosbox and you want to run say WOLF.EXE you can type wolf or wolf.exe, when you do it in a .sh file, even though it actually runs the commands inside of dosbox you have to have it say WOLF.EXE.

    However, if you do it in a .conf file it doesnt matter.



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.