Unable to Sideload pdx.zips Built with pdc on Windows

Hello,

Compiling with pdc on Windows seems to be partially broken for me.
I am able to successfully run pdc and produce a pdx file.
The resulting pdx runs normally on the simulator.
I am able top zip the pdx by: right click -> compress to zip file.
I can sideload that zip file to the sideload site and it appears in my games list.

But the install always fails with the same error: "There was a problem installing this game"

The file structure matches other games that I can sideload without issue:
name.pdx.zip -> name.pdx -> game files

Things I have tried so far:

  • Uninstall and reinstall the SDK
  • Install the SDK at default location (c:\users\name\documents\playdatesdk)
  • Install at a different location (d:\playdate\playdatesdk)
  • Updated the env variable and path
  • run pdc with -sdkpath explicitly and as default
  • compiled examples form the sdk folder
  • compiled community source code
  • uploaded the file in multiple browsers (firefox, chrome)

I am using the latest version of the SDK (as of today 5/4/2022) and Windows 11

Any assistance would be great appreciated!
(sorry for posting so many requests for help :sweat_smile:)

Can you sideload other games?

Any unusual filenames in your .pdx?

I can sideload and install other games successfully.
Nothing looks unusual to me, I used the flippy fish example from the SDK examples folder as a control to make sure it wasnt something I was doing with my file names.
I will attach the resulting pdx.zip
flippyfish.pdx.zip (49.4 KB)

Weird. I can reproduce the error using your zipfile, but if I make a new zipfile with the same contents (attached), everything is fine. We'll investigate this. Thanks!

flippyfish.pdx.zip (51.6 KB)

Thanks for looking into it!
I thought I was going crazy there for a minute.
I was able to successfully sideload the zip that you attached without getting the error.

I just had an idea to try another compression utility (7zip) and it resolved the problem with both flippy fish and my own game.

I was using the windows 11 default zip utility, so I guess that could be where the problem originated.

3 Likes

I believe I have discovered the root cause of this. If you use the command line zip (Inf- Zip) and run zip -rl it will list contents of the zip without extracting.

On the @RUMBLEBOX zip it begins like this:

Archive contains:
  flippyfish.pdx/Fish/
  flippyfish.pdx/Fish/fish.pdt
...

While the repacked version from @dwineman looks like this

Archive contains:
  flippyfish.pdx/
  flippyfish.pdx/SystemAssets/
...

The broken zip does not include a directory entry for flippyfish.pdx/ while the working one does. In my reading of the PKZIP specification either is valid (hence why both unzip using normal tools). I believe whatever unzip library implementation included on the playdate device makes an incorrect assumption that there will be a directory entry in the zip prior to a file which is extracted into that directory.

More details over in this thread. Do note that issue is slightly different, as my zip had all the directory entries, but not in the correct order (a sub directory before the root directory).

1 Like