Synctool Instructions
What is this?
Its a service that will take two folder locations: a 'remote' and a 'local', and any rom you ask quickplay to load from your 'local' will be compared against the remote - if its absent or different, it will get synced to the local path with the same folders created as existed on the remote - so if I have on my remote location: /sega games/sega saturn/panzer dragoon.zip, I will get /sega games/sega saturn/panzer dragoon.zip on the local location on my laptop. That's all it is. That's what it is...
So why would I want that?
because you have some games somewhere other than the computer you're on right now (probably you're on a laptop right now and you have some games you own digitised on a NAS box or some kind of online storage), and the laptop doesn't have enough storage to fit all the games on.
Or more simply if you want to share a single folder of games amongst more than one computer without moving each file to each place before using QuickPlay
Synctool works well if you sync your QuickPlay install via some method between your computers, I like https://freefilesync.org/ for this. Say I have both a home PC and a laptop: if I setup realtime sync from freefilesync to sync my QuickPlay (and emulators), then I turn Synctool on for the laptop, whatever games I add on either computer to a romdata in QuickPlay will be available to both, but on the laptop, the game will sync if its not in the local folder you've setup for your games
Basically the big idea is this: If you got a new machine tomorrrow, by using Synctool you could have all your games playable just by getting QuickPlay and some emulators on the machine. If you got used to that way of doing things, then maybe you'd just always keep your games on the remote storage.
Right...so come on: who would want this?
Well, interestingly there are some considerations here, I can see some people wondering why on earth they would want this, but other people wondering how they ever lived without this. here are some considerations to help decide if this is for you:
- Are you a collector? If you aren't a collector, you might wonder why you'd want to have a set of roms on some disk somewhere and be able to get a small subset of those on a device. You only have six games, why would they not fit on your laptop? Or, put more philosophically: if you think its pretty easy to get any game you want anyway without having to actually own them all and have them ripped on a big disk, this def isn't for you...
- Do you have all your CD/DVD game images zipped? This is often found with the above - you aren't a collector and so you might just have iso or bin/cue files uncompressed, so why would you want a tool that can only sync single files?
- Do you have all your games in one folder (probably called 'Games')? again often the kind of thing a non-collector doesn't see the use for, but if you have one Games folder, and if its nicely organised by System just like your romdatas in QuickPlay..well. you could try symlinks i guess to make this useful to you...but really we want to sync your nicely organised 'Games' folder...
- Do you only ever want to run quickplay at home? Maybe you don't have a laptop, you do but you don't use it for games, you don't travel much, or go on holiday often. You live in one room and never compute anywhere else. Then this isn't for you
- Do you actually have lots of storage on your laptop? lucky you, you probably don't travel much with your laptop then...it seems as if Moore's Law has topped out for laptop storage though, there are incredible new media cards, but if your game collection grows over time, its probably a bigger force than Moore's law is to laptop storage
- Do you have a remotely-accessible disk with games on, like a NAS box? if not, this won't make any sense....
How can I use this?
You'll need some way of having a remote set of games, and they need to be collected together in a single folder. Once you have that all you need to do is be able to map them on your machine somehow. You can use anything you like: Originally i tried to do a WebDAV proxying and caching thing, but i reckoned you'd have some other ideas, you might use VPN, or some kind of remote SMB, or SSH, FTP, SFTP. I like using http://www.netdrive.net/ (not free!) to do the folder mapping for this type of storage, but there are many other ways. You just need to be able to map your remote games folder under a drive or folder on your 'laptop', and have a corresponding folder locally on the laptop where the games are going to go - so drive D:\Games is the remote, and any file under it QuickPlay gets asked to run is going to sync to C:\Games, for instance.
Understanding the settings file
There are two ways to 'enable' synctool (disabled by default). Firstly you can check the Global Enable. But if you DO sync QuickPlay between multiple PCs, you probably only want synctool enabled on the laptop, and it wil be really annoying to have to keep turning it off on your other machines. Hence you can make a list instead of hostnames to have Synctool enabled for
If you do enable Synctool via one of those methods, then you wil have to have two different paths on your machine to setup as the remote and local
When you start to use Synctool, you'll come across the situation where you setup some new games on some machine, probably against your remote location, and you want to make them local so that Synctool will work (and so that QuickPlay will show you which games Synctool has synced locally (which you can see in a romdata file with the romdata missing icon against each romdata entry). You will want to 'flip' the filepaths in your romdata so that they change all 'remote' locations into 'local' ones. You might have setup something elaborate under one folder, so you might want a lot of paths suddenly made local (or remote). So you use this menu item.
Select one of your folders in the sidebar in QuickPlay, and select this option, and in every romdata in that folder or any subfolders under that folder, paths will flip from all remote to all local or vice versa. So you can setup new games against the real roms at the remote location, but then switch the romdata to local, effectively 'engaging' synctool. Or you can stop trying to pull games down to your local machine by flipping paths from local to remote, then they will always stay on the NAS (for instance some romset you are bored of but want to keep for reference or something like that)
What if I run out of room in my destination folder?
We fully support symlinks anwhere in the destination path, so just make a symlink to another folder on another drive - this is great for having a nice store of non-disc based games and then a separate place to store images
Does this replace anything we already had?
Actually yes, for years the QuiikPlay CD/DVD Multiloader has supported something similar for CD/DVD games for particular Emulators of particular Systems. It worked via Symlinks effectively meaning 'i want to download this file from the server', and it put all its downloaded files in the root of C:/QPGame. One thing I found really unsatisfactory about this approach was the games ended up such that you didn't know what game was for what system. With this new functionality, the folder structure from the 'server' is always matinained, so you know what games you have from what system. And QuickPlay will tell you what games exist locally when you look at a Romdata. So now the QuickPlay Multiloader just deals with what it always should have done: unpacking images, working out how to mount them and passing them to Emulators.
What do I do if I want to cancel a download?
It can be that your connection is so slow you give up trying to download an image, you can press ctrl+c to close the terminal session. If it still doesn't close fast enough you can click to close the command line window (which may not close the window straight away but will kick QuickPlay back to life)
Known Issues
- Currently displaying download progress is impossible, this is a technical limitation of the technology used. We do print the size of the file being downloaded, so if you're going to download big things, maybe do a speedtest from a website beforehand, and that will give you an idea of how long things might take. The copy itself is the native OS Copy function of Windows, so its fast....
- An interesting situation occurs when you want to right click and look at rom information. Since John never concieved of my idea of syncing roms between locations, he inspects zip files immediately to give QuickPlay and you information about what's contained in them (some of that information is quite important at the time too), so the availability of the archive in the right-click menu is assumed at running time. So regrettably, synctool has to go fetch the rom before displaying the info. In time this can be fixed, but for now just have a really strong desire to play the game before you right-click and ask for game information ;-)
- Just as before, its quite hard to do a cleanup of the partially-downloaded file if it fails. If a download is interrupted, you can of course do a successful downlaod over the top of it. But if you can't do that, now when you right-click in QuickPlay and choose to 'explore ROM directory', you get taken straight to the partially-downloaded file, so you can delete any partial downloads like that, just a couple of clicks...
Tips
What if my server gets corrupted somehow and the game is fine on my local pc?'
I lied slightly above, there's one case in which the ROM will not sync even though the files are different, if the file is smaller on the server. You might have a valid reason for that situation, but generally we're trying to catch just this situation where something's happened to the server copy and we might be about to wipe your good copy, this feature should warn you instead...
Help - I didn't want to flip a load of romdatas but i just did?'
Just run the same flip again and the filepaths will all be back to what they were before
What if I didn't see what happened and my game hasn't run
Look in the log file in quickplay's root: