Skip to content

A LaunchBox plugin which extracts and caches large ROM archives, letting you play games faster.

License

Notifications You must be signed in to change notification settings

mtyrealhanla/archive-cache-manager

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Archive Cache Manager

Achive Cache Manager logo

A LaunchBox plugin which caches extracted ROM archives, letting you play games faster. Also allows launching individual files from archives, and loading preferred file type from an archive.

New in v2.0.7

  • Badge for cached games. Also includes Simple White and Neon style badges to match your theme.
    • Badge icon to indicate if a game is cached
  • ROMs previously selected using the "Select ROM In Archive..." menu are automatically loaded the next time a game is played.

Description

When a compressed ROM (in zip, 7z, or rar format) is first extracted, it is stored in the archive cache. The next time it is played, the game is loaded directly from the cache, virtually eliminating wait time.

Launch time comparison video

As the cache approaches its maximum size, the least recently played games are deleted from the cache, making room for new games.

Features

  • Skip the extraction wait time for recently played games.
  • Configurable cache size and location.
  • Configurable minimum archive size (skip caching small archives).
  • Option to keep select ROMs cached and ready to play.
  • Select and play individual ROM files from an archive.
  • File extension priorities per emulator and platform (cue, bin, iso, etc).

Example Use Cases

Why use Archive Cache Manager? Here's some example use cases.

  • Zipped ROMs located on network server or cloud drive, where disk read or network transfer time is slow.
  • ROM library maintained as accurately ripped/dumped collections, where specialised compression formats not an option.
  • Extract and play archives from location other than LaunchBox\ThirdParty\7-Zip\Temp, such as high speed SSD.
  • Playing ripped PS2 games with PCSX2 where the disc image is bin/cue format, avoiding the "CDVD plugin failed to open" error message.
  • Your library contains GoodMerged sets, and you want a quick way to play individual ROMs.

Installation

Uninstallation

  • Quit LaunchBox / BigBox, then navigate to the LaunchBox\Plugins folder and delete ArchiveCacheManager.
  • Delete the archive cache folder (default is LaunchBox\ArchiveCache).

Usage

Archive Cache Manager is designed to run transparent to the user. All that is required is the emulator has the "Extract ROM archives before running" option checked. Extraction and cache management is carried out automatically when a game is launched.

Selecting and Playing Individual ROMs From an Archive

To play an individual ROM from an archive containing multiple ROMs (different regions, hacks, or discs), right-click it and choose "Select ROM In Archive...".

A window will popup with a full listing of the archive contents. Select the desired ROM file, then click Play. That ROM will now launch with the configured emulator.

The next time the game is launched via the normal Play option, the previous ROM selection will be automatically applied. To select another ROM, use the same "Select ROM In Archive..." menu.

ROM file selection window

Keeping Games Cached

Games can be marked 'Keep' so they stay cached and ready to play. To keep a game cached, open the plugin configuration window from the Tools->Archive Cache Manager menu. From there a list of games in the cache is shown. Check the Keep box next to the game, then click OK.

Badge

The plugin includes a badge to indicate if a game is currently in the cache. It is available under the Badges->Enable Archive Cached menu. There are additional Simple White and Neon style badges, which can be found in the LaunchBox\Plugins\ArchiveCacheManager\Badges folder.

Badge icon to indicate if a game is cached

Configuration

Configuration can be accessed from the Tools->Archive Cache Manager menu.

Achive Cache Manager config screen

An overview of each of the configuration items is below.

Cache Details

This section shows a summary of the cache including the Cache Path, Cache Size, and Keep Size. It also displays a list of the items currently in the cache.

Cached Items & Keep

Each item in the cache has a Keep flag, which when set will prevent the item from being removed from the cache when the cache is full. This is useful for less frequently played games which you still want to load without waiting (party games, favourites, children's games, etc).

Items marked Keep are not included in the cache size calculation. The total size of Keep items is listed in the cache details summary.

Configure Cache

Clicking the Configure Cache... button opens the cache configuration window.

Achive Cache Manager cache config screen

Configure Cache - Cache Path

This is the path of the cache on disk. The path can be absolute or relative, where relative paths are to the LaunchBox root folder.

Default: ArchiveCache

If the cache path is set to an invalid location (LaunchBox root for example), an error message will be displayed when clicking OK.

Cache path error

If the cache path is set to an existing path that already contains files or folders, a warning will be displayed when clicking OK. Click Yes to proceed, or No to go back and change the path.

Cache path warning

Configure Cache - Cache Size

This is the maximum cache size on disk in megabytes. The oldest played games will be deleted from the cache when it reaches this size.

Default: 20,000 MB (20 GB)

Configure Cache - Minimum Archive Size

This is the minimum size in megabytes of an uncompressed archive to be added to the cache. Archives smaller than this won't be added to the cache.

Default: 100 MB

Open In Explorer

Clicking the Open In Explorer button will open the configured cache path in Windows Explorer. This button is disabled if the cache path does not exist.

Refresh

Refreshes the cache summary and list of cached items from disk.

Delete

Clicking on the Delete button will remove the selected items from the cache (including items with the Keep setting).

Purge Cache

Clicking on the Delete All button will delete everything from the cache (including items with the Keep setting).

File Extension Priority

This defines the file extension priority for the specified emulator and platform combination. Use the Add / Edit / Delete buttons to manage file extension priorities.

File extensions are a comma delimited list, where the highest priority is the first extension, the next highest priority is the second extension, and so on. If the file extension is not found in the archive when a game is loaded, the default LaunchBox priority is used.

Note that the extension priority is applied to all archives, even if they are not cached.

Default: PCSX2 \ Sony Playstation 2 \ bin, iso

Building

The project is built with Visual Studio Community 2019 and .NET Framework 4.7.2.

An older version of the Unbroken.LaunchBox.Plugins assembly is preferred when building, to maintain compatibility across LaunchBox versions. The plugin is currently built against version 1.0.0.0 included with LaunchBox 10.14. It can be built with the latest version, but will not be backwards compatible. The minimum LaunchBox version supported is 10.11, required for Badge support.

Dependencies

Dependencies are listed below, and can be installed using Visual Studio's Package Manager Console with the command shown.

Package Version PM Command
System.Drawing.Common 4.7.2 Install-Package System.Drawing.Common -Version 4.7.2 -ProjectName Plugin
ini-parser latest Install-Package ini-parser -ProjectName Core

Acknowledgements

About

A LaunchBox plugin which extracts and caches large ROM archives, letting you play games faster.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 100.0%