Jump to navigation Jump to search

Multiloader Guide: Difference between revisions

(Created page with " == How can I play CD/DVD Games with QuickPlay? == Well, if you have a CD/DVD game, and a DVD Player in your PC that can play it, and you want to play your physical disc with...")
 
mNo edit summary
 
(69 intermediate revisions by the same user not shown)
Line 1: Line 1:


== How can I play CD/DVD Games with QuickPlay? ==
== How can I play CD/DVD Games with QuickPlay? ==
Well, if you have a CD/DVD game, and a DVD Player in your PC that can play it, and you want to play your physical disc with some emulator, just setup QuickPlay to launch the emulator with no parameters, and set the emulator up to load from your DVD's drive letter.  
Well, if you have a game on a physical CD/DVD, a DVD Player in your PC that can play it, and you want to play that disc with some emulator, just setup QuickPlay to launch the emulator with just one parameter - the one that says "load from the physical CD/DVD drive letter" for instance <code>../epsxe.exe --cd</code>, and set the emulator up to load from your DVD's drive letter.  


But often you've got an image file in some format of your game, it might be zipped up, it might live on a NAS box.  
But often you've got your disc game as an image file in some format (.iso, .cue/.bin and many many more...). Lets say you just have a .bin/.cue file locally, the image file is unzipped, and you want to just pass the runnable file i.e.: .cue, .iso, .gcz to your emulator (check outside of QuickPlay that this works in the emulator to your satisfaction). In this case, you can choose the .cue file as the game when you scan for roms in QuickPlay, and you can just choose the standard emulator for that system in QuickPlay (i.e.: you don't need to choose the 'MultiLoader' version of that Emulator, though it will work if you do, the Multiloader handles all cases....)


Even when you do get your archived disc file ready to run, although many emulators will directly play image formats for disc systems: some still don't, and some games don't work right (in subtle ways like losing game audio), they might not work with the image file format you have, and most don't let you load directly from a zip file. So even thought you can easily set QuickPlay up to pass an iso file to an emulator, and unzip it if necessary (just see the normal commands for adding roms), the QuickPlay MultiLoader is much better. Multiloader does this:
But it often gets more complicated: although many emulators will directly play many image formats for disc systems, some still don't, some image types don't work with some emulators, and some games don't work right (in subtle ways like losing game audio). In addition, most emulators don't let you load images directly from a zip file.  


1) Accesses almost all types of CD/DVD image formats, whether or not the image has been compressed as .7z, .zip, .rar, or proprietary formats such as those used by dolphin or psp emulators
So even though you can easily set up QuickPlay to pass a .iso to an emulator using just the normal commands for adding roms, the QuickPlay MultiLoader was made to be a single thing to point disc files to in order to get them played with any emulator, given any combination of these problem situations. You don't need to 'set' anything against any individual game or emulator to cope with these situations, as you do with other frontends, you just select the 'Multiloader' emulator for that system.
2) Guesses whether you want to process the file from its current location, or whether you're trying to use a remote image (this bit is convention over configuration: if you tell it to load a symlink we guess you want to move the image locally and use a cache to download the archive locally
 
3) Unzips and passes the image to Daemon Tools and passes your daemon tools' virtual DVD-drive's letter to the emu (eg: drive letter  K:\)
QuickPlay's multiloader does these:
 
<ol>
<li> Accesses almost all types of CD/DVD image formats, whether or not the image has been compressed as .7z, .zip, .rar, or proprietary formats such as those used by dolphin or psp emulators</li>
<li> Unzips if necessary, checking the file unzips ok where it can</li>
        <li> Works out the runnable file in the image</li>
THEN
        <li>passes the image to Daemon Tools and passes your daemon tools' virtual DVD-drive's letter to the emu (eg: drive letter  K:\)</li>
OR
OR
4) Mounts the zip in dameon tools and passes the BIN/ISO/CUE to the emu
<li>Passes the runnable file to your emulator</li>
</ol>


QuickPlay will automatically configure the MultiLoader for many emulators when you run an Efind. When you use the EFind that comes with QuickPlay it will setup emulators load from CD/DVD (the emulators say "MultiLoader" at the end). For instance, if QuickPlay sees you have RetroArch installed, it will setup a MultiLoader for RetroArch's Saturn emulator (as well as many others). Or, If you have a CD/DVD-based emulator that isn't found via QuickPlay's existing EFinds, you can also set it up as an emulator from within QuickPlay yourself, and save it as an EFind so you can search for it again in future


QUICKPLAY WILL AUTOMATICALLY CONFIGURE THE MULTILOADER FOR MANY EMULATORS WHEN YOU RUN AN EFIND
The Multiloader works  just fine with Synctool in QuickPlay: if your compressed game is on remote storage, you don't really want to run it from there, even those emulators (like some RetroArch ones) that can download the whole image first (so you don't get caching issues whilst playing) are just going to pull the whole image each time you play. Instead, enable Synctool in quickplay and you'll pull the image to your machine and it will stay there, and Multiloader will load it
See the "multiloader" EFind. Or, If you have a CD/DVD-based emulator that isn't found via QuickPlay's existing EFinds, you can also set it up as an emulator from within quickplay yourself.
When you use the EFind that comes with QuickPlay it will setup emulators load from CD/DVD (the emulators say "Multiloader" at the end. Here's how to set it up:


== How to setup your PC so the MultiLoader works ==
== How to setup your PC so the MultiLoader works ==
If you want to decompress images you need 7zip installed
If you want to mount images or zips to pass to an emulator, you need the latest Daemon Tools installed
* The Multiloder uses the latest version of Daemon Tools Lite as its Virtual Drive, and 7zip as its CD/DVD file extractor. both are free just download and make sure they're installed


=== Daemon Tools Lite and QuickPlay Frontend ===
If you want to decompress images you need [https://www.7-zip.org/download.html 7zip] installed
QuickPlay considers Daemon Tools Lite an almost-necessary (totally free) add-on for Windows. You can use QuickPlay without Dameon Tools, sure. You can even use QuickPlay without 7-zip. But please install: Windows has never been great at mounting image files, and DT has ALWAYS been great at doing so. They do have ad-ware options in their install, which you NEED to say no to by ticking or not ticking the right box. You also will need to setup a default drive in Daoem Tools (see screenshot) for QuickPlay to use when loading games. If K:/ isn’t a suitable drive letter for this drive for you, then you’ll have to change to a more suitable drive in: qp/tools/Multiloader/Multiloader.ini. In order to use DT’s drive in QuickPlay, please setup a drive in DT just like this screenshot
 
[[File:DaemonTools1.png|500px]]
[[File:7zip_app.PNG|300px]]
 
If you want to mount images or zips to pass to an emulator, you need the latest [https://www.daemon-tools.cc/products/dtLite Daemon Tools Lite] installed (10.10 when I was writing this). Daemon Tools change their command line often, so make sure you have the latest version
 
[[File:DaemonToolsWebSite.PNG|300px]]
 
both are free just download and make sure they're installed - Daemon Tools needs a bit of care so read below first:


== How does the Multiloader work? ==
=== What's all the fuss about Daemon Tools Lite with QuickPlay Frontend? ===


Whenever you load Daemon Tools with an emu, you need daemon tools and the emu you're using to agree which drive to load from - set Daemon to always add the same drive letter every time you boot and then look in the emu's config for where to set which drive the emu looks to
Every emulator frontend needs to use some virtual drive software. We use Daemon Tools for this.


See the Multiloader's readme in Tools/Multiloader if you want to know how to setup the multiloader for some emulator that hasn't already been setup in an EFind (do tell us about it though at the forums so we can update the Efind)




== WHERE DOES MULTILOADER EXTRACT ZIPS TO? ==
<span id="dttext">Currently Supported Version of Deamon Tools Lite:</span>  <span href="https://www.daemon-tools.cc/products/dtLite" id="dtver">[https://www.daemon-tools.cc/products/dtLite 10.10]</span>


You can set this location in the Multiloader.ini - set TEMPDIR=
This is recommended if you want to cache remote archives locally
If you haven't set a location, the zip will always extract to a shortname folder in the ROM directory


== Some notes for advanced use ==


* remember that 7zip and Deamon tools need to be at the default install locations ie: C:\Program Files\7zip\7zip.exe - the functions that use the progs won't work unless they are
=== Why does every emulator frontend need to use some virtual drive software? Many emulators let me pass a disc image file directly? ===
* some of the more "exotic" game names you might want to select "use short name (8:3) for exe's" in QP and/or call "shortrom" - this just makes the command line shorter as over a certain character limit it will refuse to work or error. This only applies to a very few systems' games
You often find directly passing the iso/cue etc doesn't work properly or isn't flexible enough for the file you've got. For every emulator of a CD/DVD-based system, there's yet another implementation of disc-reading algorithms, solving the same old problems again and again in slightly different ways. Sometimes it works with your filetype, sometimes it doesn't. Sometimes the audio all works, sometimes not. Often, multi-disc loading is a problem so you get so far in a game only to find that it breaks when you insert disc 2. So, where we have the option, why not have a single thing that's really good at dealing with disc images, that presents itself to your emulator, rather than rely on a load of emulators all writing their own image reading algorithms? You can use QuickPlay without Dameon Tools Lite, sure (You can even use QuickPlay without 7-zip installed). But if you install it you'll get  the best consistent disc-reading functionality available to use with all emulators, plus you can make full use of the powerful QuickPlay Multiloader capabilities.  Windows has never been great at mounting image files, and DT has ALWAYS been great at doing so.
* YOU CAN CHANGE THE BATCH CODE YOURSELF (mostly useful because daemon tools love changing their command line every minor revision) - alter multiolader_imp.bat
 
* Any problems? In task manager close QUICKPLAY MULTILOADER.exe,cmd.exe to get quickplay responsive again
There are some downsides to Daemon Tools though, as there are with any 3rd party virtual drive software for any emulator frontend. So you need to know how to deal with each issue:
* There is a list in the script of filetypes for it to search in order for the appropriate thing to use - i've added .gcm and .gdi to this list for gamecube and dreamcast - bear in mind daemon tools can't mount these they need to go directly to the emulator. If you come up with any more image filetypes for the script please let me know
<ul>
  <li>they do have ad-ware options in their install, its only a single offer, which you NEED to say no to by ticking or not ticking the right box. </li>
  <li> they change their command line almost every version, you need to be using v10.8 at the moment for the latest QuickPlay, (I usually update the Daemon Tools version once or twice a year as they cycle their command-lines and the name of the command line executable you actually call)</li>
<li> you do get annoyed with windows alerts that Demon Tools uses to try and make you pay for it, usually by saying there's a new version available (which for the reason above, you probably don't want to install right away, you want to install the new version when you upgrade QuickPlay), they don't happen very often but there's sure to be a way to turn them off</li>
<li> they have a lot of silly payware opportunities in their ui. But you can just set Dameon Tools up as described here and then never go into their UI again - the QuickPlay MultiLoader takes care of mounting and unmounting the virtual drive for you</li>
</ul>
 
Its worth putting up with these things. At the time of writing this: every frontend needs virtual drive software.....
 
== How to setup Daemon Tools Lite ==
You will need to setup a default drive in Daemon Tools (see screenshot) for QuickPlay to use when loading games. If K:/ isn’t a suitable drive letter for this drive for you, then you’ll have to change to a more suitable drive in: qp/tools/Multiloader/Multiloader.ini (i.e.: open that file in notepad and look for the drive letter assignment to K and change it to whatever you like). You also need to then change that in the config files of any emulator that needs to know the drive letter its loading from.
 
Its important for many emulators that you keep the same drive letter for the daemon tools virtual drive, and important for some emulators that it is a SCSI drive. So we need to create a SCSI drive (installing the driver as necessary) and tick all options to persistently mount the drive as the same drive letter. So, in order to use DT’s drive in QuickPlay, please setup a drive in DT just like this screenshot. <b>You get to that 'add drive' dialog by right clicking in the lower third  bar (where it says 'quick mount' and selecting 'add drive')</b>


== Multiloader Cache =
[[File:DaemonTools1.PNG|500px]]


QuickPlay can cache archived disc images locally in a temp directory - this is designed for if you run a NAS box or similar, cd/dvd images that you've downloaded to your laptop will stay on your laptop in the cache. The reason for this is twofold: firstly you can be without network and still keep on playing your games, and secondly if you hold your games as zips somewhere on a network its not a good idea to mount the zip remotely, or to unzip the iso to a remote location, or to try to unzip a remote zip to a local location. Instead, the thing to do is to copy the zip to a local cache and to then process it locally.
Whenever you load Daemon Tools with an emu, you need daemon tools and the emu you're using to agree which drive to load from - so now you need to look in the emu's config for where to set which drive the emu looks to, and set it to K:


By default the cache directory is C:/QPGame, but you can change this if you edit the multiloader ini file (tools/multiloader/multiloader.ini). The cache is on by default. The downside of the cache is you then have to maintain it yourself (i mean delete your zips and isos manually when you don't want them locally any more) but there is a flag in the ini you can set to go back to the old behaviour of wiping the cache every time you exit a game.
== Daemon Tools and SCSI/IDE Drives ==
A recent thing to think about is that Spectre mitigation changes to the Windows Kernel has made it very difficult for projects like Daemon Tools to do IDE and SCSI emulation, some old emulators (for instance EPSXE) do need a SCSI drive emulated. Some options you have:
<ol>
  <li>update: https://daemon-help.com/installation/windows_1903/ - the registry changes here will fix this for now and your SCSI and IDE drives will be creatable in DT again (eventually SCSI and IDE drives will be phased out of DT he says, but that might take a while)</li>
  <li>change the Multiloader to pass directly to the Emu and not try to mount in DT (change 0 to 1 as the last call the Multiloader emulators makes (that's the 'pass directly to emulator' flag))</li>
  <li> don't use those emulators</li>
<li>use DTs native DT drive type and see if your emulator accepts that</li>
</ol>


Bear in mind also that you can delete the iso after playing a game, but if you delete the zip, then QuickPlay will download it again and re-extract the iso next time you run i.e: even if the iso is still in the temp dir (the reason for this is that we need to read what's in the archive to know what the iso is called). So you have to have the zip hanging around unfortunately...
== Tell me more about how the Multiloader works? ==


To know what needs to be cached, the multiloader uses robocopy and looks for ''symlinks'' - We use robocopy as this has been installed by default on windows since Windows 7. The core way the cache works is by this simple rule, which you either have to live by, or not use the cache - let us know if this doesn't work for you!): if the rom you're trying to load with the multiloader is a symlink, the multiloader will assume that the file is not on the local machine and will copy the zip to the cache directory before processing it. But if the file isn't a symlink, it will assume the file is somewhere on your local filesystem and will process it directly from there (for instance, if you're mounting the actual iso rather than the zip it will then use 7zip to unzip the iso to the cache directory, so be aware there will still be files in the cache that need manually deleting -  again let us know if this doesn't work for you?). In order to have fine-grained control of what is and is not a symlink I really recommend LinkShellExtension[http://schinagl.priv.at/nt/hardlinkshellext/linkshellextension.html] its a really great tool that windows users should be proud to have!
See the MultiLoader's readme in Tools/Multiloader if you want to know how to setup the multiloader for some emulator that hasn't already been setup in an EFind (do tell us about it though at the forums so we can update the Efind)


Checks your local copies of archives and recopy if they got interrupted/corrupted - if your archive file is readable by 7zip, it does a quick check to see if it can open the archive. If not it will pull it down again. Useful for if you didn't quite get time to finish the download before you had to leave....
== Where does the MultiLoader extract Zips to? ==


Now that QuickPlay implements a cache for CD/DVD, new things become possible - for instance here's just one idea: if you can make your games available to you when you're out of the house (for instance over webDav or FTP or similar) you can use Netdrive[http://www.netdrive.net/] to mount the store as if it were a local drive, and then point QuickPlay to some symlinks that link to that drive. Then if you're away from home, selecting a CD/DVD game in QuickPlay will download your game and keep it locally for as long as you need it.
By default the cache directory is C:/QPGame, you can change this if you edit the multiloader ini file (tools/multiloader/multiloader.ini)


    ''* Multiloader functions/upgrade''
[[File:qp_game_dir.PNG|300px]]


The multiloader's been upgraded to exclusively use Daemon Tools Lite 10.4 (released in July 2016). Its a great release - the previous release forced you to create a new drive every time and the added delay of doing this when mounting was painful. This time around, they've allowed you to persist a drive with the same drive letter across reboots (though I'd note that their api states that daemon can tell you what the drive letter is, and the number of virtual drives you've got mounted, but this is non-functional). So make sure you download the latest version (they change their command-line call every time they release!). If you can't use the latest version for whatever reason, you'll have to modify the DT calls in the multiloader_imp.bat.
== Tell me about the cache and how I can run discs from my NAS box? ==


Its important for many emulators that you keep the same drive letter for the daemon tools virtual drive, and important for many games to work that it is a SCSI drive. So create a SCSI drive (installing the driver as necessary) and tick all options to peristently mount the drive as the same drive letter.
By default QuickPlay caches archived disc images locally in a temp directory - this is designed for if you run a NAS box or similar, so cd/dvd images that you've downloaded to your laptop will stay on your laptop in the cache. The reason for this is twofold: firstly you can be without network and still keep on playing your games, and secondly if you hold your games as zips somewhere on a network its not a good idea to mount the zip remotely, or to unzip the iso to a remote location, or to try to unzip a remote zip to a local location. Instead, the thing to do is to copy the zip to a local cache and to then process it locally.  


you can now mount a zip in daemon tools and pass the iso to the emulator - we finally made use of Daemon Tools' ability to mount zips, but you need to alter the multiloader config file to tell it what drive letter to use (tools/multiloader/multiloader.ini). You have to do this because Daemon can't tell us what drive letter it is using itself - a bug report needs to be filed with them.
[[File:multiloader_cmd.PNG|500px]]


We now look in archives using 7zip to find the runnable iso - due to the amount of stuff the multiloader now does, its console window has been made visible. Sorry its not pretty, but at least this way you can see progress.
The cache is on by default. This is recommended if you want to cache remote archives locally. The downside of the cache is you then have to maintain it yourself (i mean delete your isos and zips manually when you don't want them locally any more) but there is a flag in the ini you can set to wipe the cache every time you exit a game.


Made multiloaders for some PSP, Gamecube, NDS and Dreamcast emus - so why do we have a multiloader for emulators that don't need a file extracted or mounted (like gamecube and dolphin with the .gcz format)? The reason is because we can now cache those systems' games too, so you can store games you are playing on your laptop
Bear in mind also that you can delete the iso after playing a game, but if you delete the zip, then QuickPlay will download it again and re-extract the iso next time you run i.e: even if the iso is still in the temp dir (the reason for this is that we need to read what's in the archive to know what the iso is called). So you have to keep the zip hanging around...


Added Saturn emulator SFF to multiloader - the problem with SFF has always been that it insists on the right bios for the right region's game, and this was outside of the multiloader's remit. But there exists a region free bios out there somewhere, which means, if you have this BIOS, you should be able to now use SFF with the multiloader
To know what needs to be cached, the multiloader uses Window's builtin robocopy, and looks for ''symlinks''. The core way the cache works is by this simple rule: if the rom you're trying to load with the multiloader is a symlink, the multiloader will assume that the file is not on the local machine and will copy the zip to the cache directory before processing it. But if the file isn't a symlink, it will assume the file is somewhere on your local filesystem and will process it directly from there (for instance, if you're mounting the actual iso rather than the zip, it will then use 7zip to unzip the iso to the cache directory, so be aware there will still be files in the cache that need manually deleting if you don't turn caching off.


Supports the non-typical command line of NullDC the Dreamcast emu - a short exception for NullDC has been added, allowing QuickPlay to call the iso directly inside another parameter in the call. As long as there is the string 'NullDC' as the emulator filename (and the EFind will only find it if it is!), and if you select the 'direct' multiloader for NullDC (passing the ISO file to the emu rather than the mounted ISO) this will be automatically-applied
In order to have fine-grained control of what is and is not a symlink I really recommend LinkShellExtension[http://schinagl.priv.at/nt/hardlinkshellext/linkshellextension.html] its a really great tool that windows users should be proud to have! In particular you can make multiple symlinks at the same time in windows explorer by right clicking in the source and destination directories.


[[File:llink_shell_extn.png|300px]]


    ''* Multiloader maintainance''
Now that QuickPlay implements a cache for CD/DVD, new things become possible - for instance here's just one idea: if you can make your games available to you when you're out of the house (for instance over webDav or FTP or similar) you can use Netdrive[http://www.netdrive.net/] to mount the store as if it were a local drive, and then point QuickPlay to some symlinks that link to that drive. Then if you're away from home, selecting a CD/DVD game in QuickPlay will download your game and keep it locally for as long as you need it.


Fixed a bug where you sometimes had to click a rom twice to (multi-)load it - the fault was in the executable that runs the multiloader bat file. Its good to have a bat file for users to alter themselves (did I mention that Daemon Tools alters their command-line EVERY release - it's the strangest thing! Best to give the user flexibility), but in order to achieve that we have to compile a batch runner to an executable that QuickPlay can find. For many years I've used Faith Kodak's [http://www.f2ko.de/en/b2e.php bat2exe converter], and his newest version handles quoting shortnames better than any other bat2exe converter I've ever found. However, by their very nature, these throw up false positive virus warnings - for instance see [https://www.cnet.com/forums/discussions/bat-to-exe-virus-262081/ here]. I had to write to sourceforge last month to get them to whitelist QuickPlay because their Mcafee or something thought Faith's last exe was a virus. Its not, so please just add an exception to windows Defender or any other anti-virus prog for Multiloader.exe (strangely only one of my test PC's shows this problem and all the others don't try and quarantine the file) - notice your antivirus vendor can only tell you that the exe's 'signature' is similar to a virus - that's because it runs executable code based on a text file! That's how it works! Its not a virus. I need to use a bat2exe converter, so this is always going to be a problem.....
=== I don't want to use the cache, how do I turn it off ===


Removed winmount from the multiloader (this was great but got discontinued)
open tools/multiloader/multiloader.ini and change CLEANTEMP to "yes". Now the cache gets wiped every time you finish with a game


Fixed exclamation marks and ampersands in paths
== Why is there a multiloader for emulators that don't need a file extracted or mounted? Like with Dolphin I can just pass a .gcz and it loads... ==
In case your game is on your NAS box: Because we can now cache those systems' games too, so you can store games you are playing on your laptop, if you pass them through the multiloader. Do let us know on the forums any filetypes that need adding here


Fixed to consitently use 8:3 names/shortnames or longnames - its useful to process romnames with the ancient 8:3 name format sometimes (because they can be stupid long) so we try to favour that, and support being passed both short and long names
== Some notes for advanced use ==
 
* remember that 7zip and Deamon tools need to be at the default install locations ie: C:\Program Files\7zip\7zip.exe - the functions that use the progs won't work unless they are
* If you want to use an earlier version of Daemon Tools Lite than we support here, earlier versions of QuickPlay probably used it, you can download them and look in Tools/Multiloader.bat, or just ask Daemon Tools what its command lines are and alter yourself the three variables in the Multiloader.bat (they are very clearly labelled).
* some of the more "exotic" game names you might want to select "use short name (8:3) for exe's" in QP and/or call "shortrom" - this just makes the command line shorter as over a certain character limit it will refuse to work or error. This only applies to a very few systems' games
* And advantage is you can change the multiloader code yourself (mostly useful because daemon tools love changing their command line every minor revision) - open tools/multiolader_imp.bat
* Any problems? In task manager close QUICKPLAY MULTILOADER.exe and/or cmd.exe to get quickplay responsive again
* If you blank the location of the extract directory in the MultiLoader config file, the zip will always extract to a shortname folder in the ROM directory
* When you have to change disc in a game, for the moment you'll just have to do this manually. If you're caching your game, once you've saved your gaems, you can tell quickplay to load the second disc with the emulator first, then the image will be available in the cache to manually mount
* If the disc image is uncompressed, not available locally AND consists of more than one file, things may not work out for you. How do we know what files make up your image set from the source location? We could follow the links in a .cue i guess, or look for matching filenames with different extensions that follow some pattern. But its a non-trivial problem. Its advised that you zip up your images if running from a remote location

Latest revision as of 09:57, 30 April 2024

How can I play CD/DVD Games with QuickPlay?

Well, if you have a game on a physical CD/DVD, a DVD Player in your PC that can play it, and you want to play that disc with some emulator, just setup QuickPlay to launch the emulator with just one parameter - the one that says "load from the physical CD/DVD drive letter" for instance ../epsxe.exe --cd, and set the emulator up to load from your DVD's drive letter.

But often you've got your disc game as an image file in some format (.iso, .cue/.bin and many many more...). Lets say you just have a .bin/.cue file locally, the image file is unzipped, and you want to just pass the runnable file i.e.: .cue, .iso, .gcz to your emulator (check outside of QuickPlay that this works in the emulator to your satisfaction). In this case, you can choose the .cue file as the game when you scan for roms in QuickPlay, and you can just choose the standard emulator for that system in QuickPlay (i.e.: you don't need to choose the 'MultiLoader' version of that Emulator, though it will work if you do, the Multiloader handles all cases....)

But it often gets more complicated: although many emulators will directly play many image formats for disc systems, some still don't, some image types don't work with some emulators, and some games don't work right (in subtle ways like losing game audio). In addition, most emulators don't let you load images directly from a zip file.

So even though you can easily set up QuickPlay to pass a .iso to an emulator using just the normal commands for adding roms, the QuickPlay MultiLoader was made to be a single thing to point disc files to in order to get them played with any emulator, given any combination of these problem situations. You don't need to 'set' anything against any individual game or emulator to cope with these situations, as you do with other frontends, you just select the 'Multiloader' emulator for that system.

QuickPlay's multiloader does these:

  1. Accesses almost all types of CD/DVD image formats, whether or not the image has been compressed as .7z, .zip, .rar, or proprietary formats such as those used by dolphin or psp emulators
  2. Unzips if necessary, checking the file unzips ok where it can
  3. Works out the runnable file in the image
  4. THEN
  5. passes the image to Daemon Tools and passes your daemon tools' virtual DVD-drive's letter to the emu (eg: drive letter K:\)
  6. OR
  7. Passes the runnable file to your emulator

QuickPlay will automatically configure the MultiLoader for many emulators when you run an Efind. When you use the EFind that comes with QuickPlay it will setup emulators load from CD/DVD (the emulators say "MultiLoader" at the end). For instance, if QuickPlay sees you have RetroArch installed, it will setup a MultiLoader for RetroArch's Saturn emulator (as well as many others). Or, If you have a CD/DVD-based emulator that isn't found via QuickPlay's existing EFinds, you can also set it up as an emulator from within QuickPlay yourself, and save it as an EFind so you can search for it again in future

The Multiloader works just fine with Synctool in QuickPlay: if your compressed game is on remote storage, you don't really want to run it from there, even those emulators (like some RetroArch ones) that can download the whole image first (so you don't get caching issues whilst playing) are just going to pull the whole image each time you play. Instead, enable Synctool in quickplay and you'll pull the image to your machine and it will stay there, and Multiloader will load it

How to setup your PC so the MultiLoader works

If you want to decompress images you need 7zip installed

If you want to mount images or zips to pass to an emulator, you need the latest Daemon Tools Lite installed (10.10 when I was writing this). Daemon Tools change their command line often, so make sure you have the latest version

both are free just download and make sure they're installed - Daemon Tools needs a bit of care so read below first:

What's all the fuss about Daemon Tools Lite with QuickPlay Frontend?

Every emulator frontend needs to use some virtual drive software. We use Daemon Tools for this.


Currently Supported Version of Deamon Tools Lite: 10.10


Why does every emulator frontend need to use some virtual drive software? Many emulators let me pass a disc image file directly?

You often find directly passing the iso/cue etc doesn't work properly or isn't flexible enough for the file you've got. For every emulator of a CD/DVD-based system, there's yet another implementation of disc-reading algorithms, solving the same old problems again and again in slightly different ways. Sometimes it works with your filetype, sometimes it doesn't. Sometimes the audio all works, sometimes not. Often, multi-disc loading is a problem so you get so far in a game only to find that it breaks when you insert disc 2. So, where we have the option, why not have a single thing that's really good at dealing with disc images, that presents itself to your emulator, rather than rely on a load of emulators all writing their own image reading algorithms? You can use QuickPlay without Dameon Tools Lite, sure (You can even use QuickPlay without 7-zip installed). But if you install it you'll get the best consistent disc-reading functionality available to use with all emulators, plus you can make full use of the powerful QuickPlay Multiloader capabilities. Windows has never been great at mounting image files, and DT has ALWAYS been great at doing so.

There are some downsides to Daemon Tools though, as there are with any 3rd party virtual drive software for any emulator frontend. So you need to know how to deal with each issue:

  • they do have ad-ware options in their install, its only a single offer, which you NEED to say no to by ticking or not ticking the right box.
  • they change their command line almost every version, you need to be using v10.8 at the moment for the latest QuickPlay, (I usually update the Daemon Tools version once or twice a year as they cycle their command-lines and the name of the command line executable you actually call)
  • you do get annoyed with windows alerts that Demon Tools uses to try and make you pay for it, usually by saying there's a new version available (which for the reason above, you probably don't want to install right away, you want to install the new version when you upgrade QuickPlay), they don't happen very often but there's sure to be a way to turn them off
  • they have a lot of silly payware opportunities in their ui. But you can just set Dameon Tools up as described here and then never go into their UI again - the QuickPlay MultiLoader takes care of mounting and unmounting the virtual drive for you

Its worth putting up with these things. At the time of writing this: every frontend needs virtual drive software.....

How to setup Daemon Tools Lite

You will need to setup a default drive in Daemon Tools (see screenshot) for QuickPlay to use when loading games. If K:/ isn’t a suitable drive letter for this drive for you, then you’ll have to change to a more suitable drive in: qp/tools/Multiloader/Multiloader.ini (i.e.: open that file in notepad and look for the drive letter assignment to K and change it to whatever you like). You also need to then change that in the config files of any emulator that needs to know the drive letter its loading from.

Its important for many emulators that you keep the same drive letter for the daemon tools virtual drive, and important for some emulators that it is a SCSI drive. So we need to create a SCSI drive (installing the driver as necessary) and tick all options to persistently mount the drive as the same drive letter. So, in order to use DT’s drive in QuickPlay, please setup a drive in DT just like this screenshot. You get to that 'add drive' dialog by right clicking in the lower third bar (where it says 'quick mount' and selecting 'add drive')

Whenever you load Daemon Tools with an emu, you need daemon tools and the emu you're using to agree which drive to load from - so now you need to look in the emu's config for where to set which drive the emu looks to, and set it to K:

Daemon Tools and SCSI/IDE Drives

A recent thing to think about is that Spectre mitigation changes to the Windows Kernel has made it very difficult for projects like Daemon Tools to do IDE and SCSI emulation, some old emulators (for instance EPSXE) do need a SCSI drive emulated. Some options you have:

  1. update: https://daemon-help.com/installation/windows_1903/ - the registry changes here will fix this for now and your SCSI and IDE drives will be creatable in DT again (eventually SCSI and IDE drives will be phased out of DT he says, but that might take a while)
  2. change the Multiloader to pass directly to the Emu and not try to mount in DT (change 0 to 1 as the last call the Multiloader emulators makes (that's the 'pass directly to emulator' flag))
  3. don't use those emulators
  4. use DTs native DT drive type and see if your emulator accepts that

Tell me more about how the Multiloader works?

See the MultiLoader's readme in Tools/Multiloader if you want to know how to setup the multiloader for some emulator that hasn't already been setup in an EFind (do tell us about it though at the forums so we can update the Efind)

Where does the MultiLoader extract Zips to?

By default the cache directory is C:/QPGame, you can change this if you edit the multiloader ini file (tools/multiloader/multiloader.ini)

Tell me about the cache and how I can run discs from my NAS box?

By default QuickPlay caches archived disc images locally in a temp directory - this is designed for if you run a NAS box or similar, so cd/dvd images that you've downloaded to your laptop will stay on your laptop in the cache. The reason for this is twofold: firstly you can be without network and still keep on playing your games, and secondly if you hold your games as zips somewhere on a network its not a good idea to mount the zip remotely, or to unzip the iso to a remote location, or to try to unzip a remote zip to a local location. Instead, the thing to do is to copy the zip to a local cache and to then process it locally.

The cache is on by default. This is recommended if you want to cache remote archives locally. The downside of the cache is you then have to maintain it yourself (i mean delete your isos and zips manually when you don't want them locally any more) but there is a flag in the ini you can set to wipe the cache every time you exit a game.

Bear in mind also that you can delete the iso after playing a game, but if you delete the zip, then QuickPlay will download it again and re-extract the iso next time you run i.e: even if the iso is still in the temp dir (the reason for this is that we need to read what's in the archive to know what the iso is called). So you have to keep the zip hanging around...

To know what needs to be cached, the multiloader uses Window's builtin robocopy, and looks for symlinks. The core way the cache works is by this simple rule: if the rom you're trying to load with the multiloader is a symlink, the multiloader will assume that the file is not on the local machine and will copy the zip to the cache directory before processing it. But if the file isn't a symlink, it will assume the file is somewhere on your local filesystem and will process it directly from there (for instance, if you're mounting the actual iso rather than the zip, it will then use 7zip to unzip the iso to the cache directory, so be aware there will still be files in the cache that need manually deleting if you don't turn caching off.

In order to have fine-grained control of what is and is not a symlink I really recommend LinkShellExtension[1] its a really great tool that windows users should be proud to have! In particular you can make multiple symlinks at the same time in windows explorer by right clicking in the source and destination directories.

Now that QuickPlay implements a cache for CD/DVD, new things become possible - for instance here's just one idea: if you can make your games available to you when you're out of the house (for instance over webDav or FTP or similar) you can use Netdrive[2] to mount the store as if it were a local drive, and then point QuickPlay to some symlinks that link to that drive. Then if you're away from home, selecting a CD/DVD game in QuickPlay will download your game and keep it locally for as long as you need it.

I don't want to use the cache, how do I turn it off

open tools/multiloader/multiloader.ini and change CLEANTEMP to "yes". Now the cache gets wiped every time you finish with a game

Why is there a multiloader for emulators that don't need a file extracted or mounted? Like with Dolphin I can just pass a .gcz and it loads...

In case your game is on your NAS box: Because we can now cache those systems' games too, so you can store games you are playing on your laptop, if you pass them through the multiloader. Do let us know on the forums any filetypes that need adding here

Some notes for advanced use

  • remember that 7zip and Deamon tools need to be at the default install locations ie: C:\Program Files\7zip\7zip.exe - the functions that use the progs won't work unless they are
  • If you want to use an earlier version of Daemon Tools Lite than we support here, earlier versions of QuickPlay probably used it, you can download them and look in Tools/Multiloader.bat, or just ask Daemon Tools what its command lines are and alter yourself the three variables in the Multiloader.bat (they are very clearly labelled).
  • some of the more "exotic" game names you might want to select "use short name (8:3) for exe's" in QP and/or call "shortrom" - this just makes the command line shorter as over a certain character limit it will refuse to work or error. This only applies to a very few systems' games
  • And advantage is you can change the multiloader code yourself (mostly useful because daemon tools love changing their command line every minor revision) - open tools/multiolader_imp.bat
  • Any problems? In task manager close QUICKPLAY MULTILOADER.exe and/or cmd.exe to get quickplay responsive again
  • If you blank the location of the extract directory in the MultiLoader config file, the zip will always extract to a shortname folder in the ROM directory
  • When you have to change disc in a game, for the moment you'll just have to do this manually. If you're caching your game, once you've saved your gaems, you can tell quickplay to load the second disc with the emulator first, then the image will be available in the cache to manually mount
  • If the disc image is uncompressed, not available locally AND consists of more than one file, things may not work out for you. How do we know what files make up your image set from the source location? We could follow the links in a .cue i guess, or look for matching filenames with different extensions that follow some pattern. But its a non-trivial problem. Its advised that you zip up your images if running from a remote location