A free utility for updating the openFPGA cores, firmware, and a bunch of other stuff on your Analogue Pocket.
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.
Easy Mode
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.
Important Menu Items
Update All
Install/Update all of your cores, plus a bunch of other stuff. It can basically be used as the "do everything I want" option. Everything marked with a * can be turned on/off via settings.
- Checks for new firmware updates *
- Installs/updates every core you have selected
- Checks for missing required assets for each core you have selected *
- Deletes cores that you do not have selected *
- Runs the instance JSON generator for each core you have selected (currently, only PC Engine CD) *
- Rename every Jotego core you have selected *
Update Firmware
Self explanatory. Just checks for firmware updates and exits.
Download Required Assets
Checks for missing required assets for each core you have selected (mainly arcade ROM files and BIOSes)
RTFM
Settings | Additional Settings | CLI Commands and Parameters | Image Packs | Core Selector | PC Engine CD | Jotego Cores | Game n Watch
Settings
The following settings are all available via the Settings
menu item.
Download Firmware Updates | Check for firmware updates when running "Update All" |
Download Missing Assets | Check for missing assets (ROMs, BIOS files, etc) when running "Update All" |
Build game JSON Files | Run the Instance JSON builder during "Update All" |
Delete untracked cores | Any core that is available, but you have not chosen in the "Core Selector" will be uninstalled, if found on your SD card when running "Update All" |
Automatically rename Jotego cores | Jotego's cores will be renamed to the correct titles of the platforms they are emulating, when running "Update All". example: jtcontra is Contra |
Use CRC check | Use CRC file hashes to verify Asset files, and re-download if needed. When running "Update All" or "Download Required Assets" |
Preserve Platforms folder | Don't overwrite changes made to files in the Platforms folder when running "Update All" |
Skip alternative ROMs | Ignore files if they are in a folder named "_altermatives" when checking for Assets (Note: this is on by default) |
Use custom archive | Allows you to use a custom site for Asset file checking (there is a pre-configured site available). The actual URL of the custom site can be set manually by editing the settings file in an editor |
Additional Settings
The following settings can be set by editing pocket_updater_settings.json
in a text editor.
config.archive_name | The account on archive.org that the app will use to check for Assets |
config.github_token | The app will use this when making API calls to GitHub |
config.download_new_cores | This will be set automatically by the Select Cores menu item. It can be set to "yes", "no", or "ask" |
config.custom_archive | You can set a custom URL here, if you don't want to use the default. index is a 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 |
coreSettings | This allows you to set a subset of settings on a per core basis. It contains a list of every core, with 3 options. skip , download_assets , and platform_rename . You can use these to override your global defaults |
CLI Commands and Parameters
menu (Default Verb) Interactive Main Menu
-p, --path Absolute path to install location
fund List sponsor links. Lists all if no core is provided
-c, --core The core to check funding links for
update Run update all. (Can be configured via the settings menu)
-p, --path Absolute path to install location
-c, --core The core you want to update. Runs for all otherwise
-f, --platformsfolder Preserve the Platforms folder, so customizations aren't overwritten by updates.
assets Run the asset downloader
-p, --path Absolute path to install location
-c, --core The core you want to download assets for.
firmware Check for Pocket firmware updates
-p, --path Absolute path to install location
images Download image packs
-p, --path Absolute path to install location
-o, --owner Image pack repo username
-i, --imagepack Github repo name for image pack
-v, --variant The optional variant
instancegenerator Run the instance JSON generator
-p, --path Absolute path to install location
help Display more information on a specific command.
version Display version information.
examples:
/path/to/pocket_updater -p /path/to/sdcard/
/path/to/pocket_updater update -c boogermann.bankpanic
/path/to/pocket_updater assets -c jotego.jtcontra
/path/to/pocket_updater images -i pocket-platform-images -o dyreschlock -v home
Core Selector
This will prompt you to ask if you want new cores installed by default, with 3 options:
- Yes
- Selecting this automatically chooses all existing cores, and will continue to automatically install new cores as they are released.
- No
- Selecting this means as new cores are released, they will not be installed automatically, nor will you be asked about them. Then you will be presented with a list of all currently available cores, to select from for yourself.
- Ask
- Selecting this means as new cores are released, you will be notified each time you run the app and have the option to select them for installation. Then you will be presented with a list of all currently available cores, to select from for yourself.
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
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
orUpdate 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
tofalse
in your settings file, if you don't want it to run every time you update.
Jotego Beta Cores
Now that Jotego is releasing his beta cores publicly (and requiring a beta key to play them), you can just drop the jtbeta.zip
file from patreon onto the root of your sd card and run Update All, and it will automatically copy the beta key to the correct folders for the cores that need it. It also will let you install the yhe cores directly from the updater, now. Make sure you don't rename the file, it's going to look for exactly jtbeta.zip
How to build game and watch roms that are compatible with the pocket
Create 2 new folders.
/Assets/gameandwatch/agg23.GameAndWatch/artwork
and /Assets/gameandwatch/agg23.GameAndWatch/roms
Place your [artwork].zip
files into the artwork folder and your [rom]
.zip files into the roms folder
Should look like this:
/Assets/gameandwatch/agg23.GameAndWatch/artwork/gnw_dkong.zip
/Assets/gameandwatch/agg23.GameAndWatch/roms/gnw_dkong.zip
Now just run the menu option in the updater and it will build your games
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. -
I keep getting a
Missing ROM ID [1]
message when trying to launch arcade games in the _alternatives folder.Check your settings and make sure you have
Skip Alternative ROMS
turned off.
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 dyreschlock for hosting the updated platform files for Jotego's cores
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