bruvzg / gdsdecomp

Godot reverse engineering tools
MIT License
1.34k stars 134 forks source link

Crash when attempting to open .pck for The Interactive Adventures of Dog Mendonça & Pizzaboy® #126

Closed caimantilla closed 1 year ago

caimantilla commented 1 year ago

System information

Windows 11

Issue description

The program locks up. Additionally, GodotPckTool reports the error, pck is unsupported version: 0.

I'd test the demo, but since I own the game, Steam won't give me the option to download it. The game is built with Godot 2. I don't know to what extent the engine was modified, if there are any custom formats, etc.

Steps to reproduce

Open Godot RE Tools Try to recover project for The Interactive Adventures of Dog Mendonça & Pizzaboy®

Recovery log

N/A

Minimal reproduction project

https://store.steampowered.com/app/330420/The_Interactive_Adventures_of_Dog_Mendona__Pizzaboy/

nikitalita commented 1 year ago

Oh, that’s interesting. Where does it lock up? After selecting the PCK or after opening and selecting Extract?

We do support 2.x games; I’ll have to double check to see if there were format changes to the PCK within the 2.x branch, I had thought there wasn’t.

caimantilla commented 1 year ago

Oh, that’s interesting. Where does it lock up? After selecting the PCK or after opening and selecting Extract?

We do support 2.x games; I’ll have to double check to see if there were format changes to the PCK within the 2.x branch, I had thought there wasn’t.

It freezes immediately after selecting the file. It's totally possible this is game-specific, like the header being stripped or something. Idk

nikitalita commented 1 year ago

So there were no actual changes to the PCK format between format version 0 (2.x) and 1 (3.x), looking at the commit history. I’d recommend filing an issue with GodotPckTook telling them that they can support version 0 with very little changes.

As for this game, the hanging actually had nothing to do with the PCK; this game IS using a custom build of Godot 2.0 and I think they were using some custom sprite sheet importer. the way some of the textures were named totally screwed up my assumptions of which resources had import metadata in 2.x and ended up putting it into a very long recursive loop. There were additional bugs I found and corrected , too. I’ll push a fix for this shortly.

caimantilla commented 1 year ago

Yay!! Thanks :) I was surprised nobody's brought this up before considering it was made by okam >_<

nikitalita commented 1 year ago

When the CI is finished building, can you give the standalone artifacts here a try? https://github.com/bruvzg/gdsdecomp/actions/runs/4704250672

nikitalita commented 1 year ago

BTW, I’ve found that loading and exporting this is very slow right now; it’s a fairly large game (> 1GB unpacked), so you might still experience hanging after the initial file selection in the GUI. It should still load eventually, just give it time.

this is a good indicator that we could stand to try and optimize the recovery process, I’ll take a look at that later.

nikitalita commented 1 year ago

Did this end up working for you?

caimantilla commented 1 year ago

Did this end up working for you?

Sorry I didn't respond, yes!! :D image

nikitalita commented 1 year ago

excellent, I shall merge and tag a new release then