I don't know where to post this, so I do it here in Playnite's forum.
I've recently decided to reorganize my ROMS and emulators folders, in order to make it more clear. You all know the difficulty of sorting things in your filesystem (files, folders), and how chaos often results from the attempt to apply a certain logic. Like, for instance, when you choosed a long time ago to store your ROMS in folders dedicated to an emulator, and finally realize that it is not the perfect way to do things, or when a solution like RomStation downloads stuffs in its own special directory, and separates roms and emulators from your previous "system". This all adds complexity to a point you can't merge it coherently with a library like Playnite, because all is scattered.
Fortunately, I found a new way to organize my ROMS and Emulators, and almost naturally I also find a very useful way to launch ROMS with MS-DOS Batch files that can be called in Playnite.
This solution I offer you make it easier to have a universal way of launching your ROMS, with or without Playnite, while keeping a coherent method you can fall back on if necessary.
Summary :
1. THE FILES AND FOLDERS
After years of reflexion, the best way for me to organize stuffs ended to :
In the /Emulators folder lies the BAT files we'll talk about right now.
2. THE .BAT
Here comes the wizardry : as I found it difficult to launch a ROM with an emulator quickly, without being forced to launch the aforementioned emulator first, and to open menus, and moreover as Playnite was a kind of solution for this but required some modifications to customize the command line arguments (YAML packed in Playnite sometimes aren't using the good arguments and emulators don't launch ROMs), I started to create some .BAT files to test things.
http://www.8651748351.duckdns.org/public/host/playnite_forum/emulator_bat_file.jpg
![[Image: emulator_bat_file.jpg]](http://www.8651748351.duckdns.org/public/host/playnite_forum/emulator_bat_file.jpg)
As I was progressing, I found useful to keep those batches with correct command-lines, and found very handy to drag'n'drop ROMS onto them to launch the emulators (note that the "app" folder is here to store extra BAT or CMD files containing various functions to make that "system" to work).
http://www.8651748351.duckdns.org/public/host/playnite_forum/emulators_bat_files_list.jpg
![[Image: emulators_bat_files_list.jpg]](http://www.8651748351.duckdns.org/public/host/playnite_forum/emulators_bat_files_list.jpg)
But as I was subject to using different emulators about a certain time (because of various problems), I found even more handy to create some "access point" kind of batch, with the name of the console (even if that's contradictory with the fact that emulators often emulate MANY consoles !), in wich I would reoriente toward the emulator I want.
Here's the content of a BAT named "Mégadrive" (coresponding to the GENESIS console), and redirecting toward the Kega Fusion emulator :
http://www.8651748351.duckdns.org/public/host/playnite_forum/emulator_console_bat.jpg
![[Image: emulator_console_bat.jpg]](http://www.8651748351.duckdns.org/public/host/playnite_forum/emulator_console_bat.jpg)
Those "centralized" BAT files or "access-points" would be stored at the root of my /Emulators folder, and the previous emulators BAT would be moved in a /_launchers folder :
http://www.8651748351.duckdns.org/public/host/playnite_forum/emulators_folder_root.jpg
![[Image: emulators_folder_root.jpg]](http://www.8651748351.duckdns.org/public/host/playnite_forum/emulators_folder_root.jpg)
Now, each time I want to play a ROM for a GENESIS game, I just have to drop it onto the "Mégadrive" BAT file. This method appear to be more clear than dropping on a specific emulator (because after a few months, you can forget what emulator is needed for what console). Also, it appeared that it would be more practical for any modification in PLAYNITE : if suddently I change my mind and decide to change the emulator for GENESIS games, I just have to edit the access-point (the console BAT).
3. INTEGRATION IN PLAYNITE
The thing was Playnite was only offering me two ways to integrate ROMS :
1) by selecting "Emulator" in the launch options
http://www.8651748351.duckdns.org/public/host/playnite_forum/launch_option_emulator.jpg
![[Image: launch_option_emulator.jpg]](http://www.8651748351.duckdns.org/public/host/playnite_forum/launch_option_emulator.jpg)
2) by selecting "File" (pointing to my magic BAT file, and passing Playnite's variables as arguments)
http://www.8651748351.duckdns.org/public/host/playnite_forum/launch_option_file.jpg
![[Image: launch_option_file.jpg]](http://www.8651748351.duckdns.org/public/host/playnite_forum/launch_option_file.jpg)
That second option was the only one possible to use my BAT files, but everytime I added a game, I had to type the path to the BAT file and had to type the variables as an argument. Not mentioning that moving the BAT file would force to update all games in Playnite.
In the other way, I found more handy to use the "Emulator" option, with already prebuilt options and arguments.
So I ended creating YAML files in Playnite in order to use my BAT files with the "Emulator" option :
http://www.8651748351.duckdns.org/public/host/playnite_forum/yaml_of_emulator_bat.jpg
![[Image: yaml_of_emulator_bat.jpg]](http://www.8651748351.duckdns.org/public/host/playnite_forum/yaml_of_emulator_bat.jpg)
This way, after importing those "fake emulators" in the emulator panel, it was possible to select them as a launch option :
http://www.8651748351.duckdns.org/public/host/playnite_forum/launch_option_custom_emulator_batch.jpg
![[Image: launch_option_custom_emulator_batch.jpg]](http://www.8651748351.duckdns.org/public/host/playnite_forum/launch_option_custom_emulator_batch.jpg)
4. ROMS IMPORTATION PROCESS
For now, Playnite only proposes to select a bunch of ROMS in a folder and to associate them with an emulator. This implies that all the ROMS are gathered in folders of emulators, or, as my files and folders system proposes (and that's why I made it), in folders dedicated to consoles.
Personally, I don't use that mass importation process, because of a few reasons like metadata importation messing with the title and images, but I will test it in the future. I simply add a game (like for any PC game), and follow this process :
Here's a screenshot of the INSTALLATION path edition (step #6) :
http://www.8651748351.duckdns.org/public/host/playnite_forum/playnite_installation_tab.jpg
![[Image: playnite_installation_tab.jpg]](http://www.8651748351.duckdns.org/public/host/playnite_forum/playnite_installation_tab.jpg)
And here's a screenshot of the fake emulators (consoles BAT) list when opening the emulator dropdown (step #9). Note that I added an underscore in front of the names, to always have them in the top of the list :
http://www.8651748351.duckdns.org/public/host/playnite_forum/emulators_dropdown_menu.jpg
![[Image: emulators_dropdown_menu.jpg]](http://www.8651748351.duckdns.org/public/host/playnite_forum/emulators_dropdown_menu.jpg)
FINAL WORDS
I hope this will help people in despair when coming to organize emulators, and I will for sure upload the whole set of files in GITHUB as soon as it will be stable and secure.
I just need a few weeks to see if all is perfectly working fine, but for now I can just say that after the difficult steps of implementing things, it works instantly in Playnite : meaning that when cliking on a game, it launches the BAT system in a snap, and the emulator launches itself and the ROM loads well.
The main interest and spectacular improvement remains that when browsing my ROMS folders for maintenance, if I want to launch a game, I just drag the folder (I worked my code to automatically search for the zip inside and update the path variable) onto a shortcut of the BAT files, and it launches it. I never feel at any point a disconnection with PLAYNITE as if for any reason I need to delete an emulator and change it, I just have to edit the consoles BAT files.
http://www.8651748351.duckdns.org/public/host/playnite_forum/roms_folder.jpg
![[Image: roms_folder.jpg]](http://www.8651748351.duckdns.org/public/host/playnite_forum/roms_folder.jpg)
Everything feels coherent and harmonious, while letting me in FULL CONTROL of the launching mechanism though WINDOWS' filesystem.
Thanks for the reading, folks !
PS : I'll keep in touch for the github upload
I've recently decided to reorganize my ROMS and emulators folders, in order to make it more clear. You all know the difficulty of sorting things in your filesystem (files, folders), and how chaos often results from the attempt to apply a certain logic. Like, for instance, when you choosed a long time ago to store your ROMS in folders dedicated to an emulator, and finally realize that it is not the perfect way to do things, or when a solution like RomStation downloads stuffs in its own special directory, and separates roms and emulators from your previous "system". This all adds complexity to a point you can't merge it coherently with a library like Playnite, because all is scattered.
Fortunately, I found a new way to organize my ROMS and Emulators, and almost naturally I also find a very useful way to launch ROMS with MS-DOS Batch files that can be called in Playnite.
This solution I offer you make it easier to have a universal way of launching your ROMS, with or without Playnite, while keeping a coherent method you can fall back on if necessary.
Summary :
- The files and folders
- The .bat system
- Integration in Playnite
- ROMS importation process
1. THE FILES AND FOLDERS
After years of reflexion, the best way for me to organize stuffs ended to :
- A /ROMS folder to store all ROMS, with sub-folders corresponding to the hardwares they were originally working on (i.e : consoles).
- A /Emulators folder, with sub-folders for each emulator.
In the /Emulators folder lies the BAT files we'll talk about right now.
2. THE .BAT
Here comes the wizardry : as I found it difficult to launch a ROM with an emulator quickly, without being forced to launch the aforementioned emulator first, and to open menus, and moreover as Playnite was a kind of solution for this but required some modifications to customize the command line arguments (YAML packed in Playnite sometimes aren't using the good arguments and emulators don't launch ROMs), I started to create some .BAT files to test things.
http://www.8651748351.duckdns.org/public/host/playnite_forum/emulator_bat_file.jpg
![[Image: emulator_bat_file.jpg]](http://www.8651748351.duckdns.org/public/host/playnite_forum/emulator_bat_file.jpg)
As I was progressing, I found useful to keep those batches with correct command-lines, and found very handy to drag'n'drop ROMS onto them to launch the emulators (note that the "app" folder is here to store extra BAT or CMD files containing various functions to make that "system" to work).
http://www.8651748351.duckdns.org/public/host/playnite_forum/emulators_bat_files_list.jpg
![[Image: emulators_bat_files_list.jpg]](http://www.8651748351.duckdns.org/public/host/playnite_forum/emulators_bat_files_list.jpg)
But as I was subject to using different emulators about a certain time (because of various problems), I found even more handy to create some "access point" kind of batch, with the name of the console (even if that's contradictory with the fact that emulators often emulate MANY consoles !), in wich I would reoriente toward the emulator I want.
Here's the content of a BAT named "Mégadrive" (coresponding to the GENESIS console), and redirecting toward the Kega Fusion emulator :
http://www.8651748351.duckdns.org/public/host/playnite_forum/emulator_console_bat.jpg
![[Image: emulator_console_bat.jpg]](http://www.8651748351.duckdns.org/public/host/playnite_forum/emulator_console_bat.jpg)
Those "centralized" BAT files or "access-points" would be stored at the root of my /Emulators folder, and the previous emulators BAT would be moved in a /_launchers folder :
http://www.8651748351.duckdns.org/public/host/playnite_forum/emulators_folder_root.jpg
![[Image: emulators_folder_root.jpg]](http://www.8651748351.duckdns.org/public/host/playnite_forum/emulators_folder_root.jpg)
Now, each time I want to play a ROM for a GENESIS game, I just have to drop it onto the "Mégadrive" BAT file. This method appear to be more clear than dropping on a specific emulator (because after a few months, you can forget what emulator is needed for what console). Also, it appeared that it would be more practical for any modification in PLAYNITE : if suddently I change my mind and decide to change the emulator for GENESIS games, I just have to edit the access-point (the console BAT).
3. INTEGRATION IN PLAYNITE
The thing was Playnite was only offering me two ways to integrate ROMS :
1) by selecting "Emulator" in the launch options
http://www.8651748351.duckdns.org/public/host/playnite_forum/launch_option_emulator.jpg
![[Image: launch_option_emulator.jpg]](http://www.8651748351.duckdns.org/public/host/playnite_forum/launch_option_emulator.jpg)
2) by selecting "File" (pointing to my magic BAT file, and passing Playnite's variables as arguments)
http://www.8651748351.duckdns.org/public/host/playnite_forum/launch_option_file.jpg
![[Image: launch_option_file.jpg]](http://www.8651748351.duckdns.org/public/host/playnite_forum/launch_option_file.jpg)
That second option was the only one possible to use my BAT files, but everytime I added a game, I had to type the path to the BAT file and had to type the variables as an argument. Not mentioning that moving the BAT file would force to update all games in Playnite.
In the other way, I found more handy to use the "Emulator" option, with already prebuilt options and arguments.
So I ended creating YAML files in Playnite in order to use my BAT files with the "Emulator" option :
http://www.8651748351.duckdns.org/public/host/playnite_forum/yaml_of_emulator_bat.jpg
![[Image: yaml_of_emulator_bat.jpg]](http://www.8651748351.duckdns.org/public/host/playnite_forum/yaml_of_emulator_bat.jpg)
This way, after importing those "fake emulators" in the emulator panel, it was possible to select them as a launch option :
http://www.8651748351.duckdns.org/public/host/playnite_forum/launch_option_custom_emulator_batch.jpg
![[Image: launch_option_custom_emulator_batch.jpg]](http://www.8651748351.duckdns.org/public/host/playnite_forum/launch_option_custom_emulator_batch.jpg)
4. ROMS IMPORTATION PROCESS
For now, Playnite only proposes to select a bunch of ROMS in a folder and to associate them with an emulator. This implies that all the ROMS are gathered in folders of emulators, or, as my files and folders system proposes (and that's why I made it), in folders dedicated to consoles.
Personally, I don't use that mass importation process, because of a few reasons like metadata importation messing with the title and images, but I will test it in the future. I simply add a game (like for any PC game), and follow this process :
- I type the name of the game.
- I click on "Import metadata" and chose IGBD. I select the good game (and I retry if that's not the good one).
- I customize all the tag fields (I have a very handy tag system that I would share in an other topic, when I will have some time).
- I go in the MEDIA tab, I click to add a cover from a file, and I browse to the folder of my ROM to select the JPG of the cover stored in it.
- I chose a google screenshot image as a background.
- I go in the INSTALLATION tab, and I click to browse to an installation path : PLAYNITE automatically opens the last folder opened, wich is the one from the cover I chosed (so, the one of the ROM ! No extra clicks required).
- Just below, I click to browse to the ROM file (also, no extra clicks required except selecting the desired zip file).
- I type the exact same name of the zip file chosen (can be useful for specific emulators wich require {ImageName} as an argument, and we need it to be the name of the zip).
- I finally go in the ACTION tab and I use the aforementioned technic to select my access-point BAT, wich has the name of the console corresponding to that game.
- I then select the profile for that "fake emulator", so it can have the correct arguments passed, and that's all !
Here's a screenshot of the INSTALLATION path edition (step #6) :
http://www.8651748351.duckdns.org/public/host/playnite_forum/playnite_installation_tab.jpg
![[Image: playnite_installation_tab.jpg]](http://www.8651748351.duckdns.org/public/host/playnite_forum/playnite_installation_tab.jpg)
And here's a screenshot of the fake emulators (consoles BAT) list when opening the emulator dropdown (step #9). Note that I added an underscore in front of the names, to always have them in the top of the list :
http://www.8651748351.duckdns.org/public/host/playnite_forum/emulators_dropdown_menu.jpg
![[Image: emulators_dropdown_menu.jpg]](http://www.8651748351.duckdns.org/public/host/playnite_forum/emulators_dropdown_menu.jpg)
FINAL WORDS

I just need a few weeks to see if all is perfectly working fine, but for now I can just say that after the difficult steps of implementing things, it works instantly in Playnite : meaning that when cliking on a game, it launches the BAT system in a snap, and the emulator launches itself and the ROM loads well.
The main interest and spectacular improvement remains that when browsing my ROMS folders for maintenance, if I want to launch a game, I just drag the folder (I worked my code to automatically search for the zip inside and update the path variable) onto a shortcut of the BAT files, and it launches it. I never feel at any point a disconnection with PLAYNITE as if for any reason I need to delete an emulator and change it, I just have to edit the consoles BAT files.
http://www.8651748351.duckdns.org/public/host/playnite_forum/roms_folder.jpg
![[Image: roms_folder.jpg]](http://www.8651748351.duckdns.org/public/host/playnite_forum/roms_folder.jpg)
Everything feels coherent and harmonious, while letting me in FULL CONTROL of the launching mechanism though WINDOWS' filesystem.
Thanks for the reading, folks !
PS : I'll keep in touch for the github upload
