This extension may be useful if you have a local library of PC Windows and/or emulated games you legally own, such as Abandonware or public domain games not available on the usual platforms (steam, epic, xbox game pass, etc), and you have limited space on your fast storage device(s). This extension allows you to host your games on big-and-slow storage devices (HDDs, network drives/NAS, etc.), and it can create & mangage game caches on your fast storage device(s) for the games you are actively playing.
Game caching is now possible for the following emulated platforms (See here for details):
Note, the Play action's 'Path' must point to an executable/shortcut/symlink that is somewhere under the 'Work' directory.
When you enable a game for caching, it gets subsumed under the NowPlaying Game Cacher library. (If game caching is later disabled, the game is released back to the Playnite library.)
To play a game from the NowPlaying library, you first Install it to create a game cache on your fast storage device, and then you Play it as you normally would. As an alternative, you can also Preview the game (via right-mouse click) without creating a cache. Preview plays a game directly from its installation directory, aka, from a big-and-slow storage device. Once you finish a game, or if don't plan on playing it for awhile, you'll likely want to Uninstall it to delete its cache and free up space for other game caches.
While a game's cache is being created (which can take awhile depending on the size of the game, speed of the storage devices, etc), you are still able to browse and play games in Playnite; and you can also schedule cache installation for additional games (in a queue). Depending on NowPlaying's settings, cache installation can continue in the background while you are playing games.
Playnite's built in interface can be used for basic game cache management (install/uninstall, as well as enable/disable game caching via right-mouse). A progress indicator (at the top of Playnite's library view) will keep you informed of NowPlaying cache activity, and notifications will be issued for milestones such as when a game cache is installed and ready to play. More advanced management as well as real-time, detailed installation progress are available from the NowPlaying view (via the sidebar). NowPlaying's settings are also accessible there, too.
After installing this extension, you'll want to specify at least one cache root directory/storage device and then you'll be able to enable games for caching. This is done from the NowPlaying view (via sidebar).
Choose a new, empty Directory on a fast storage device to create game caches in, such as "C:\Games\NowPlaying". Note, you can specify multiple cache roots but only one is allowed per storage device.
Set the Maximum fill level allowed for the storage device when installing game caches, in a range of 50-100%. This will limit the space used for game caches on the device and reserve a portion of it for other use. It's recommended to set the maximum fill level to, at most, 75-85% (or so) for a cache root on your system disk (C:). If the device is used exclusively for gaming, it can be set as high as 100%.
Some games save settings and game save data locally. While playing one of these games, the cache can become 'dirty', or different than the installed files. When a dirty game cache is uninstalled, you have the option of syncing updated game settings/save data back to the installation directory. (See NowPlaying settings.)
If using game caching for emulated platform games, here are some recommendations:
To ensure there is only 1 ROM per game, you may may need to place game updates/DLCs under their own subdirectories and exclude those from Playnite's emulator library scans. As an example, a Switch game directory might look like this:
E:\Games\Switch\MyFavoriteSwitchGame\ DLCs\ MyFavoriteSwitchGame [DLC pack 1].nsp MyFavoriteSwitchGame [DLC pack 2].nsp Updates\ MyFavoriteSwitchGame [UPD 1.1].nsp MyFavoriteSwitchGame.nsp
In Playnite, add 'DLCs' and 'Updates' to your Switch emulator's excluded folders list, found under Library → Configure Emulators... → Auto-scan configurations → Exclusions.
If applicable, launch your emulator(s) separately to install DLCs and update ROM files on a per-game basis. To get the full benefit of game caching, you may want install the game's NowPlaying cache first and install the DLC/update files from the cache directory.
If M3U files are a supported by the emulator, you can create one and import it as the game's ROM file:
Create a .m3u asii text file in the game directory (e.g. using Notepad) that lists the paths to the individual ROM files. An example multi-disk GameCube game directory might look like this:
E:\Games\GameCube\MyFavoriteGameCubeGame\ DVDs\ MyFavoriteGameCubeGame (DVD1).iso MyFavoriteGameCubeGame (DVD2).iso MyFavoriteGameCubeGame.m3u
In this example, MyFavoriteGameCubeGame.m3u would contain
DVDs\MyFavoriteGameCubeGame (DVD1).iso DVDs\MyFavoriteGameCubeGame (DVD2).iso
Import PC Windows and/or supported emulator platform games into Playnite from your big-and-slow storage devices (Add Game → Manually, Add Game → Scan Automatically, or via emulator library scan)
Make sure each game's Installation Folder points to its main folder. Also, avoid using a shortcut (with a hardcoded path to the big-and-slow device) as the game's executable
A good way to check this at a glance is to see if the Install Size seems reasonable. Sometimes Playnite sets the Installation Folder to a subdirectory where the game executable/ROM lives. When that happens, the Install Size reported will be way too small. Edit the game's Install Folder and play action/ROM Path, if needed.
Install NowPlaying Game Cacher Extension, if you haven't already.
Navagate to the NowPlaying view (via sidebar).
Add at least one NowPlaying Cache Root (storage device, directory, max fill level), where game caches can be created.
Note, a maximum fill level can be set to prevent game caches from completely filling your storage device, if necessary. Definitely set this < 100% if using your C:\ drive for game caches, for example.
Enable caching for the games you imported in step 1. If you specified more than one Cache Root, you will be able to select which Root each game will be cached to, in this step. There are two ways to enable games for caching:
Installing/uninstalling a game cache; there are several ways: