Skip to content

Shissa43/pocket-updater-utility

 
 

Repository files navigation

Oh Hi

Current Release Downloads Donate

A free utility for updating the openFPGA cores, and firmware, on your Analogue Pocket. The update process will check for pocket firmware updates, openfpga core updates, and install any required BIOS files and arcade ROMS. You're on your own when it comes to console ROMs.

A complete list of available cores can also be found here: https://openfpga-cores-inventory.github.io/analogue-pocket/

I can't (and don't want to) support old versions, so please make sure you download the latest release before submitting any issues.

Instructions

If you just want to use this utility, do not clone the source repository. Just download the latest release. Unzip it, put the executable file for your platform (windows, mac os, or linux) in the root of your sd card, and run the program.

At the main menu run Settings to have it walk through the available settings for you.

Advanced Usage

CLI Parameters

 -p, --path      Absolute path to install location
 -c, --coreselector    Run the core selector.
 -f, --platformsfolder   Preserve the Platforms folder, so customizations aren't overwritten by updates
 -u, --update    Skip the main menu and just run the update process automatically
 -i, --instancegenerator    Skip the main menu and just run the instance json builder for supported cores (will overwrite all)

example: /path/to/pocket_updater -a -p /path/to/sdcard/

Download Image Packs

This will present you with a list of available image packs and automatically download and extract it to the Platforms/_images directory for you

Core Selector

On your first run it will prompt you to select the cores you want tracked. After that initial run, you can run it again any time via the main menu. Or you can always run this again by setting config.core_selector to true in the settings json file, or if running from the cli you can use the paramater -c

Generating Instance JSON Files

  • Only supported by PC Engine CD, currently
  • Put your games in /Assets/{platform}/common
  • Each game needs to be in its own directory (and be sure to name the directory the full title of the game)
    • Example: /Assets/pcecd/common/Rondo of Blood
    • /Assets/pcecd/common/Bonk
    • etc
  • All games (for PC Engine CD) must be in cue/bin format. The generated json file will be saved using the same filename as the cue file, so be sure to also name that with the full title of the game
  • When you run the Generate Instance JSON Files or Update All menu items, it will search through every directory in common and create a json file that can be launched by the core
  • You can disable this process in Update All by setting build_instance_jsons to false in your settings file, if you don't want it to run every time you update.

Settings

All settings can be modified in your pocket_updater_settings.json file

Allow pre-release cores coreSettings.{corename}.allowPrerelease Set to true for any core want to download, even though it's still pre-release
Disable Firmware Downloading config.download_firmware Set to false if you don't want Update All to check for firmware updates
Disable Asset Downloading config.download_assets Set to false if you'd like to supply your own BIOS and arcade rom files, and don't want Update All to handle this.
Preserve Platforms Folder Customizations config.preserve_platforms_folder If you have any customizations to the Platforms folder, you can use this option to preserve them during the update process. Set to true in your settings file, or use -f as a command line parameter
Github Personal Access Token config.github_token If you're running up against the rate limit on the github api, you can provide your personal access token to the updater via the settings.
Disable Instance JSON Builder config.build_instance_jsons Set this to false if you don't want Update All to build instance JSON files.
Delete Untracked Cores config.delete_skipped_cores true by default. Set to false if you don't want the updater to remove cores you don't select to track
CRC Check Assets config.crc_check true by default. Set to false if you don't want the updater check the CRC hash on your asset files
Skip Alternative Assets config.skip_alternative_assets true by default. If a core developer puts any of their rom asset files in a directory named _alternatives they won't be downloaded automatically (unless you set this to false)
Use Custom Archive config.use_custom_archive false by default. Instead of checking the archive site defined in your settings to look for required assets, use a custom site that you can define. (by default this will be a site hosted by RetroDriven)
Custom Archive URL config.custom_archive.url The full url to your custom site
Custom Archive Index config.custom_archive.index Relative path to the index of your custom site's files. This is not required, but it's needed for CRC checking. If you have CRC checking enabled, the setting will be ignored unless this provides the necessary format. It must match the output of archive.org's json endpoint. https://archive.org/developers/md-read.html

Troubleshooting

Slow asset downloads? Try toggling use_custom_archive to true, in your settings.

If you run the update process and get a message like Error in framework RS: bridge not responding when running a core, try to run the updater in a local folder on your pc, and then copy the files over to the sd card afterwards. I'm not entirely sure what the issue is, but I've seen it reported a bunch of times now and running the updater locally seems to help.

Submitting new cores

You can submit new cores here https://github.com/openfpga-cores-inventory/analogue-pocket

Credits

Thanks to neil-morrison44. This is a port built on top of the work originally done by him here https://gist.github.com/neil-morrison44/34fbb18de90cd9a32ca5bdafb2a812b8

Special thanks to RetroDriven for maintaining the arcade rom archive.

And if you're looking for something with a few more features and a user interface, check out this updater. https://github.com/RetroDriven/Pocket_Updater

Or if you want something cross platform that will run on a mac or linux: https://github.com/neil-morrison44/pocket-sync

About

Analogue Pocket Updater Utility

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 100.0%