mattpannella / pupdate

Pupdate - A thing for updating your Analogue Pocket
https://mattpannella.github.io/pupdate/
MIT License
1.11k stars 39 forks source link

System.IO.DirectoryNotFoundException: Could not find a part of the path '/Volumes/POCKET/Assets/wonderswan/common/bw.rom'. #252

Closed SlCKB0Y closed 9 months ago

SlCKB0Y commented 9 months ago

Describe the bug When running pupdate 3.2.1 from an SD card on macOS 14.3, when it attempts to download assets for the already installed Wonderswan core, it throws exceptions, Eg: System.IO.DirectoryNotFoundException: Could not find a part of the path '/Volumes/POCKET/Assets/wonderswan/common/bw.rom'. It then moves on to the colour BIOS and throws a similar exception, before moving onto the next core.

The '/Volumes/POCKET/Assets/wonderswan/common/' directory does not exist, which implies the assets have never been downloaded or were deleted. Manually creating the 'common' directory and rerunning Update All allows the Wonderswan BIOSes to download to the SD card.

To Reproduce Steps to reproduce the behavior:

  1. Go to Update All
  2. See error

Checking Core: agg23.WonderSwan 1.0.1 is the most recent release, checking local core... local core found: 1.0.1 Looking for Assets Loading Assets Index... Downloading 'bw.rom' Something went wrong with 'bw.rom' System.IO.DirectoryNotFoundException: Could not find a part of the path '/Volumes/POCKET/Assets/wonderswan/common/bw.rom'. at Interop.ThrowExceptionForIoErrno(ErrorInfo, String, Boolean) at Interop.CheckIo(Error, String , Boolean ) at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String, OpenFlags, Int32, Func4) at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String, FileMode, FileAccess, FileShare, FileOptions, Int64, UnixFileMode, Int64& , UnixFileMode& , Func4 ) at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String, FileMode, FileAccess, FileShare, FileOptions, Int64, Nullable1 , Func4 ) at System.IO.Strategies.OSFileStreamStrategy..ctor(String, FileMode, FileAccess, FileShare, FileOptions, Int64, Nullable1) at System.IO.Strategies.UnixFileStreamStrategy..ctor(String, FileMode, FileAccess, FileShare, FileOptions, Int64, Nullable1) at System.IO.Strategies.FileStreamHelpers.ChooseStrategyCore(String, FileMode, FileAccess, FileShare, FileOptions, Int64, Nullable1) at System.IO.Strategies.FileStreamHelpers.ChooseStrategy(FileStream, String, FileMode, FileAccess, FileShare, Int32, FileOptions, Int64, Nullable1) at System.IO.FileStream..ctor(String, FileMode, FileAccess, FileShare, Int32, FileOptions, Int64) at System.IO.FileStream..ctor(String, FileMode, FileAccess, FileShare, Int32, FileOptions) at System.IO.FileStream..ctor(String, FileMode, FileAccess, FileShare, Int32, Boolean) at System.IO.FileStream..ctor(String, FileMode, FileAccess) at Pannella.Helpers.HttpHelper.DownloadFileAsync(String uri, String outputPath, Int32 timeout) at Pannella.Models.Core.DownloadAsset(String fileName, String destination, Archive archive, String archiveName, Boolean useCustomArchive) Downloading 'color.rom' Something went wrong with 'color.rom' System.IO.DirectoryNotFoundException: Could not find a part of the path '/Volumes/POCKET/Assets/wonderswan/common/color.rom'. at Interop.ThrowExceptionForIoErrno(ErrorInfo, String, Boolean) at Interop.CheckIo(Error, String , Boolean ) at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String, OpenFlags, Int32, Func4) at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String, FileMode, FileAccess, FileShare, FileOptions, Int64, UnixFileMode, Int64& , UnixFileMode& , Func4 ) at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String, FileMode, FileAccess, FileShare, FileOptions, Int64, Nullable1 , Func4 ) at System.IO.Strategies.OSFileStreamStrategy..ctor(String, FileMode, FileAccess, FileShare, FileOptions, Int64, Nullable1) at System.IO.Strategies.UnixFileStreamStrategy..ctor(String, FileMode, FileAccess, FileShare, FileOptions, Int64, Nullable1) at System.IO.Strategies.FileStreamHelpers.ChooseStrategyCore(String, FileMode, FileAccess, FileShare, FileOptions, Int64, Nullable1) at System.IO.Strategies.FileStreamHelpers.ChooseStrategy(FileStream, String, FileMode, FileAccess, FileShare, Int32, FileOptions, Int64, Nullable1) at System.IO.FileStream..ctor(String, FileMode, FileAccess, FileShare, Int32, FileOptions, Int64) at System.IO.FileStream..ctor(String, FileMode, FileAccess, FileShare, Int32, FileOptions) at System.IO.FileStream..ctor(String, FileMode, FileAccess, FileShare, Int32, Boolean) at System.IO.FileStream..ctor(String, FileMode, FileAccess) at Pannella.Helpers.HttpHelper.DownloadFileAsync(String uri, String outputPath, Int32 timeout) at Pannella.Models.Core.DownloadAsset(String fileName, String destination, Archive archive, String archiveName, Boolean useCustomArchive) Up to date. Skipping core

... Update Process Complete Assets Not Found: /Assets/wonderswan/common/bw.rom /Assets/wonderswan/common/color.rom

  1. Manually create '/Volumes/POCKET/Assets/wonderswan/common/' directory.
  2. Re-run update all and it downloads the Wonderswan BIOSes to the correct location and completes.

Expected behavior Core updates as required and installs assets without throwing exceptions.

Desktop (please complete the following information):

Contents of settings file

{ "firmware": { "version": "pocket_firmware_B_8.bin" }, "config": { "download_assets": true, "archive_name": "openFPGA-Files", "gnw_archive_name": "fpga-gnw-opt", "download_gnw_roms": false, "github_token": null, "download_firmware": true, "core_selector": false, "preserve_platforms_folder": false, "delete_skipped_cores": true, "download_new_cores": "ask", "build_instance_jsons": true, "crc_check": true, "fix_jt_names": true, "skip_alternative_assets": true, "backup_saves": false, "backup_saves_location": "Backups", "use_custom_archive": false, "custom_archive": { "url": "https://updater.retrodriven.com", "index": "updater.php" } }, "coreSettings": { "agg23.Arduboy": { "skip": true, "download_assets": true, "platform_rename": true }, "agg23.Pong": { "skip": true, "download_assets": true, "platform_rename": true }, "agg23.NES": { "skip": true, "download_assets": true, "platform_rename": true }, "agg23.PC Engine": { "skip": false, "download_assets": true, "platform_rename": true }, "agg23.PokemonMini": { "skip": true, "download_assets": true, "platform_rename": true }, "agg23.SNES": { "skip": false, "download_assets": true, "platform_rename": true }, "ericlewis.Asteroids": { "skip": true, "download_assets": true, "platform_rename": true }, "ericlewis.Dominos": { "skip": true, "download_assets": true, "platform_rename": true }, "ericlewis.DonkeyKong": { "skip": false, "download_assets": true, "platform_rename": true }, "ericlewis.Genesis": { "skip": true, "download_assets": true, "platform_rename": true }, "ericlewis.LunarLander": { "skip": true, "download_assets": true, "platform_rename": true }, "ericlewis.RadarScope": { "skip": true, "download_assets": true, "platform_rename": true }, "ericlewis.SpaceRace": { "skip": true, "download_assets": true, "platform_rename": true }, "ericlewis.SuperBreakout": { "skip": true, "download_assets": true, "platform_rename": true }, "ericlewis.QBert": { "skip": true, "download_assets": true, "platform_rename": true }, "Mazamars312.NeoGeo": { "skip": false, "download_assets": true, "platform_rename": true }, "Mazamars312.amiga": { "skip": false, "download_assets": true, "platform_rename": true }, "nullobject.tecmo": { "skip": true, "download_assets": true, "platform_rename": true }, "boogermann.bankpanic": { "skip": true, "download_assets": true, "platform_rename": true }, "boogermann.congo": { "skip": true, "download_assets": true, "platform_rename": true }, "boogermann.digdug": { "skip": true, "download_assets": true, "platform_rename": true }, "boogermann.galaga": { "skip": true, "download_assets": true, "platform_rename": true }, "boogermann.gberet": { "skip": true, "download_assets": true, "platform_rename": true }, "boogermann.pooyan": { "skip": true, "download_assets": true, "platform_rename": true }, "boogermann.supervision": { "skip": true, "download_assets": true, "platform_rename": true }, "boogermann.xevious": { "skip": true, "download_assets": true, "platform_rename": true }, "Spacemen3.PDP1": { "skip": true, "download_assets": true, "platform_rename": true }, "Spiritualized.GB": { "skip": false, "download_assets": true, "platform_rename": true }, "Spiritualized.GBA": { "skip": false, "download_assets": true, "platform_rename": true }, "Spiritualized.GBC": { "skip": false, "download_assets": true, "platform_rename": true }, "Spiritualized.NES": { "skip": false, "download_assets": true, "platform_rename": true }, "Spiritualized.GG": { "skip": false, "download_assets": true, "platform_rename": true }, "Spiritualized.SMS": { "skip": false, "download_assets": true, "platform_rename": true }, "Spiritualized.SG-1000": { "skip": false, "download_assets": true, "platform_rename": true }, "Spiritualized.VideoBrain": { "skip": true, "download_assets": true, "platform_rename": true }, "Spiritualized.Supervision": { "skip": true, "download_assets": true, "platform_rename": true }, "Spiritualized.SuperGB": { "skip": false, "download_assets": true, "platform_rename": true }, "Spiritualized.Studio2": { "skip": true, "download_assets": true, "platform_rename": true }, "Spiritualized.Odyssey2": { "skip": true, "download_assets": true, "platform_rename": true }, "Spiritualized.Intv": { "skip": false, "download_assets": true, "platform_rename": true }, "Spiritualized.Megaduck": { "skip": true, "download_assets": true, "platform_rename": true }, "Spiritualized.Genesis": { "skip": false, "download_assets": true, "platform_rename": true }, "Spiritualized.Gameking": { "skip": true, "download_assets": true, "platform_rename": true }, "Spiritualized.Gamate": { "skip": true, "download_assets": true, "platform_rename": true }, "Spiritualized.Creativision": { "skip": true, "download_assets": true, "platform_rename": true }, "Spiritualized.Coleco": { "skip": false, "download_assets": true, "platform_rename": true }, "Spiritualized.ChannelF": { "skip": true, "download_assets": true, "platform_rename": true }, "Spiritualized.7800": { "skip": false, "download_assets": true, "platform_rename": true }, "Spiritualized.Arcadia": { "skip": true, "download_assets": true, "platform_rename": true }, "Spiritualized.Adventurevision": { "skip": true, "download_assets": true, "platform_rename": true }, "Spiritualized.2600": { "skip": false, "download_assets": true, "platform_rename": true }, "pram0d.garegga": { "skip": true, "download_assets": true, "platform_rename": true }, "pram0d.snowbros2": { "skip": true, "download_assets": true, "platform_rename": true }, "jotego.jtdd": { "skip": false, "download_assets": true, "platform_rename": true }, "jotego.jtdd2": { "skip": false, "download_assets": true, "platform_rename": true }, "jotego.jtgng": { "skip": true, "download_assets": true, "platform_rename": true }, "jotego.jtkicker": { "skip": true, "download_assets": true, "platform_rename": true }, "jotego.jtkunio": { "skip": true, "download_assets": true, "platform_rename": true }, "jotego.jtmikie": { "skip": true, "download_assets": true, "platform_rename": true }, "jotego.jtpinpon": { "skip": true, "download_assets": true, "platform_rename": true }, "jotego.jtroadf": { "skip": true, "download_assets": true, "platform_rename": true }, "jotego.jtroc": { "skip": true, "download_assets": true, "platform_rename": true }, "jotego.jtsbaskt": { "skip": true, "download_assets": true, "platform_rename": true }, "jotego.jttrack": { "skip": true, "download_assets": true, "platform_rename": true }, "jotego.jtvigil": { "skip": true, "download_assets": true, "platform_rename": true }, "jotego.jtyiear": { "skip": true, "download_assets": true, "platform_rename": true }, "jotego.jtpang": { "skip": true, "download_assets": true, "platform_rename": true }, "Mazamars312.Amiga": { "skip": false, "download_assets": true, "platform_rename": true }, "pram0d.bakraid": { "skip": true, "download_assets": true, "platform_rename": true }, "pram0d.batrider": { "skip": true, "download_assets": true, "platform_rename": true }, "jotego.jtcontra": { "skip": true, "download_assets": true, "platform_rename": true }, "agg23.Tamagotchi_P1": { "skip": true, "download_assets": true, "platform_rename": true }, "agg23.WonderSwan": { "skip": false, "download_assets": true, "platform_rename": true }, "antongale.exerion": { "skip": true, "download_assets": true, "platform_rename": true }, "antongale.performan": { "skip": true, "download_assets": true, "platform_rename": true }, "antongale.slapfight": { "skip": true, "download_assets": true, "platform_rename": true }, "jotego.jtcps1": { "skip": false, "download_assets": true, "platform_rename": true }, "jotego.jtexed": { "skip": true, "download_assets": true, "platform_rename": true }, "jotego.jtgunsmk": { "skip": true, "download_assets": true, "platform_rename": true }, "jotego.jtkarnov": { "skip": true, "download_assets": true, "platform_rename": true }, "jotego.jtoutrun": { "skip": false, "download_assets": true, "platform_rename": true }, "jotego.jtcop": { "skip": true, "download_assets": true, "platform_rename": true }, "jotego.jtsectnz": { "skip": true, "download_assets": true, "platform_rename": true }, "jotego.jtsarms": { "skip": true, "download_assets": true, "platform_rename": true }, "jotego.jtsf": { "skip": true, "download_assets": true, "platform_rename": true }, "jotego.jttrojan": { "skip": true, "download_assets": true, "platform_rename": true }, "jotego.jtvulgus": { "skip": true, "download_assets": true, "platform_rename": true }, "jotego.jtcomsc": { "skip": true, "download_assets": true, "platform_rename": true }, "jotego.jtkiwi": { "skip": true, "download_assets": true, "platform_rename": true }, "Mazamars312.NeoGeo_Overdrive": { "skip": false, "download_assets": true, "platform_rename": true }, "Mazamars312.PC Engine CD": { "skip": false, "download_assets": true, "platform_rename": true }, "pram0d.kingdmgp": { "skip": true, "download_assets": true, "platform_rename": true }, "pram0d.sstriker": { "skip": true, "download_assets": true, "platform_rename": true }, "agg23.GameAndWatch": { "skip": false, "download_assets": true, "platform_rename": true }, "antongale.taitosj": { "skip": false, "download_assets": true, "platform_rename": true }, "jotego.jtaliens": { "skip": true, "download_assets": true, "platform_rename": true }, "jotego.jtbtiger": { "skip": false, "download_assets": true, "platform_rename": true }, "jotego.jtbubl": { "skip": true, "download_assets": true, "platform_rename": true }, "jotego.jtcastle": { "skip": false, "download_assets": true, "platform_rename": true }, "jotego.jtcps15": { "skip": false, "download_assets": true, "platform_rename": true }, "jotego.jtcps2": { "skip": false, "download_assets": true, "platform_rename": true }, "jotego.jtfround": { "skip": false, "download_assets": true, "platform_rename": true }, "jotego.jtninja": { "skip": false, "download_assets": true, "platform_rename": true }, "jotego.jtrastan": { "skip": false, "download_assets": true, "platform_rename": true }, "jotego.jts16": { "skip": false, "download_assets": true, "platform_rename": true }, "jotego.jts16b": { "skip": false, "download_assets": true, "platform_rename": true }, "jotego.jtshanon": { "skip": false, "download_assets": true, "platform_rename": true }, "jotego.jtshouse": { "skip": true, "download_assets": true, "platform_rename": true }, "jotego.jtsimson": { "skip": true, "download_assets": true, "platform_rename": true }, "jotego.jttmnt": { "skip": true, "download_assets": true, "platform_rename": true }, "jotego.jttora": { "skip": false, "download_assets": true, "platform_rename": true }, "RndMnkIII.alphamission": { "skip": false, "download_assets": true, "platform_rename": true }, "somhi.flappybird": { "skip": true, "download_assets": true, "platform_rename": true }, "atrac17.pipibibs": { "skip": true, "download_assets": true, "platform_rename": true }, "atrac17.truxton2": { "skip": true, "download_assets": true, "platform_rename": true }, "jotego.jt1942": { "skip": true, "download_assets": true, "platform_rename": true }, "AwesomeDolphin.SpaceInvaders": { "skip": true, "download_assets": true, "platform_rename": true }, "budude2.GB": { "skip": true, "download_assets": true, "platform_rename": true }, "budude2.GBC": { "skip": true, "download_assets": true, "platform_rename": true }, "jotego.jtngp": { "skip": true, "download_assets": true, "platform_rename": true } } }

SlCKB0Y commented 9 months ago

Apologies for the formatting nastiness.

mattpannella commented 9 months ago

did you manually delete the common directory? it should have been installed at the time the core was installed

hallem commented 9 months ago

Yeah currently the common directory needs to be there first. I have some code that checks for it in some work in progress. I'll try and pull that out into a separate branch and put up a PR for it.

mattpannella commented 9 months ago

no rush, just keep it in the branch you're working on. this has been there since day 1 haha

hallem commented 9 months ago

sounds good.

mattpannella commented 9 months ago

fixed in 3.4.0