Switch from API to direct download.
Fixes 403 error code.
jammy-aarch64 needs `unzip` from universe in the Dockerfile.
eg:
```
add-apt-repository universe
apt update -qq
apt-get install -y unzip
```
Fixes https://github.com/RPCS3/rpcs3/issues/18560
Every launch constructs a fresh iso_archive for each ISO game, which
calls iso_form_hierarchy() and walks the full directory tree. On top of
that, qt_utils opens a second iso_archive just for icon loading, so
every ISO game ends up doing two full directory tree walks on every
launch.
This adds a metadata cache keyed by ISO path + mtime stored under
fs::get_config_dir()/iso_cache/. Each entry stores the raw SFO binary,
resolved icon/movie/audio paths and raw icon bytes.
- On cache hit, iso_archive construction is skipped entirely for both
game list scanning and icon loading
- On cache miss archive is scanned as before and the result is persisted
to disk
- Cache is automatically invalidated when the ISO file's mtime changes
Tested with a decrypted PS3 disc ISO (God of War III):
- First launch writes cache files correctly to iso_cache/
- Second launch reads from cache with correct title and icon
- touch game.iso correctly invalidates the cache and triggers a rescan
fix compile errors and suppress minor warnings
strip minor bug fixes and cleanup
minor cleanup
minor cleanup
Fixed crash at boot parsing an ISO with a empty directory entry at file head
applied suggested changes
added missing break in switch
Update rpcs3/Loader/ISO.cpp
Co-authored-by: Megamouse <studienricky89@googlemail.com>
use hex_to_bytes() instead of self made functions
minor cleanup
rewrite nested if()
add explicit support to .key
minor cleanup
optimize partial sector read
minor optimization
fix conflict