Player icon indicating copy to clipboard operation
Player copied to clipboard

Add support for TAR archives

Open Gwitr opened this issue 4 months ago • 8 comments

These changes introduce support for reading TAR archives.

TAR is still a popular archival format, and it's slightly easier to work with under Linux over other formats. I also figured games packaged inside it could load slightly faster under constrained platforms over ZIP (3DS, older Android devices, etc.)

Gwitr avatar Aug 24 '25 18:08 Gwitr

Jenkins: Test this please

Thank you for this useful contribution. During summer our project is always kinda inactive. So don't be discouraged due to lack of feedback in August and September.

Ghabry avatar Aug 25 '25 08:08 Ghabry

Okay! Thank you for the heads up and quick reply!

Gwitr avatar Aug 25 '25 10:08 Gwitr

I apologize it took me so long to get around implementing the changes.

Gwitr avatar Sep 21 '25 09:09 Gwitr

I'm not sure why the Windows x64 build failed, it seems to have been interrupted on Jenkins?

The PSVita/PSTV build is failing on trying to include vita.cmake, wherein cmake reports that versions < 3.5 are unsupported. I can't modify the Vita SDK nor the flags passed to cmake in the build, so I don't really know what to do here.

Gwitr avatar Sep 21 '25 10:09 Gwitr

Jenkins: test this please.

No worries, both build failures are not your fault.

carstene1ns avatar Sep 21 '25 11:09 carstene1ns

I just noticed that the indentation of the new files you submitted is wrong: They use spaces instead of tabs. Can you fix this?

(This is configured in the .editorconfig file but some editors unfortunately ignore it :/)

Ghabry avatar Sep 22 '25 07:09 Ghabry

I've corrected the indentation. I guess VS Code doesn't support that config file by default...

Gwitr avatar Sep 22 '25 15:09 Gwitr

I found one bug in your code:

This TAR archive (had to repack it as ZIP as github doesnt accept TAR) triggers the assert assert(!dir.second.name.empty() && "VFS BUG: Empty filename in the folder");

xxx.zip

Looks like you add empty files to the directory list when browsing directories inside a tar archive. Can you try to fix this?

(We support multiple games in a single archive and archives inside of archives etc. You implemented the FS correctly so this all works as expected except for browsing into subdirectories)

Ghabry avatar Oct 12 '25 18:10 Ghabry

btw @carstene1ns is the linter checking the correct branch? All the lines reported are shorter than 120 characters

Total Errors: 6
CMakeLists.txt:1432: Lines should be <= 120 characters long [linelength]
CMakeLists.txt:1433: Line ends in whitespace [whitespace/eol]
CMakeLists.txt:1434: Lines should be <= 120 characters long [linelength]
CMakeLists.txt:1435: Lines should be <= 120 characters long [linelength]
CMakeLists.txt:1436: Lines should be <= 120 characters long [linelength]
CMakeLists.txt:1440: Lines should be <= 120 characters long [linelength]

Ghabry avatar Dec 15 '25 10:12 Ghabry

It merges the changes to master branch. So yes, this should be changed.

carstene1ns avatar Dec 15 '25 10:12 carstene1ns

@Gwitr Thank you for your contribution!

carstene1ns avatar Dec 17 '25 19:12 carstene1ns