Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Games on Demand / Multi-file STFS (SVOD) Support #1254

Merged
merged 4 commits into from May 4, 2019

Conversation

Projects
None yet
3 participants
@Wildenhaus
Copy link
Contributor

commented Nov 7, 2018

Tested on several GoD container and XBLA Games (Burnout Revenge, Halo 3, Halo 3 ODST, JUJU, Duke Nukem 3D). Diff'ed various container files from the original source with no discrepancies. Handles both GDF and non-GDF formats with the same functions.

@Wildenhaus

This comment has been minimized.

Copy link
Contributor Author

commented Nov 7, 2018

Fixed device entries spanning multiple datafiles. Datafiles are split into ~162MB chunks. Tested with a few Halo 3 maps as well as Dead Space 2's bigfile0.viv (3GB). All files were diff'ed from the originals and no differences were found.

@x1nixmzeng

This comment has been minimized.

Copy link
Contributor

commented Nov 7, 2018

Great work!

Could you double check the VFS dump tool works with your change?

https://github.com/xenia-project/xenia/tree/master/src/xenia/vfs

@Wildenhaus

This comment has been minimized.

Copy link
Contributor Author

commented Nov 7, 2018

Could you double check the VFS dump tool works with your change?

VFS Dump Tool is confirmed working. Top screenshot is dumping an nxeart STFS container, and bottom screenshot is a dump of a GoD Container, plus xenia running that dump.

vfsdump

If any issues arise, be sure to do a clean-rebuild. It was acting weird for me until I realized it was using an incomplete version of my changes to stfs_container_device.cc.

@gibbed

This comment has been minimized.

Copy link
Member

commented Nov 8, 2018

  1. Why were two ancient PRs pulled into this?
  2. Please clean up your commit messages and squash unnecessary ones.

@Wildenhaus Wildenhaus force-pushed the Wildenhaus:master branch 7 times, most recently from 7ab501d to 91f2c2b Nov 8, 2018

@Wildenhaus Wildenhaus force-pushed the Wildenhaus:master branch from 91f2c2b to 80375c6 Nov 11, 2018

@Wildenhaus

This comment has been minimized.

Copy link
Contributor Author

commented Nov 11, 2018

  • Rewrote SVOD offset calculation to no longer rely on known hard-coded addresses. Should now work with all cases. Added documentation for reference.
  • Added support for STFS Metadata v2

11/17: Found another edge case with offset calculation for some digital download games. Investigating.

@Wildenhaus

This comment has been minimized.

Copy link
Contributor Author

commented Nov 27, 2018

  • Now supports all known layouts (EGDF, XSF, Single File)
  • Major refactoring, code cleanup, and extensive documentation.
  • Fixed code quality issue pointed out by @x1nixmzeng

Tested both in-game and binary diff'ing VFS dump files. Works as it should for Digital Download, Installed, Arcade, and converted games (done by third-party tools, XSF).

@Wildenhaus Wildenhaus force-pushed the Wildenhaus:master branch from 74a0124 to 38ee72b Nov 27, 2018

@Wildenhaus Wildenhaus force-pushed the Wildenhaus:master branch 2 times, most recently from 0ef2566 to 151a955 Nov 28, 2018

@Wildenhaus

This comment has been minimized.

Copy link
Contributor Author

commented Dec 15, 2018

Corrected an issue where file entry ordinal calculation in games with a large amount of files (e.g. Mass Effect with 4508 files) would run into hash blocks.

@Wildenhaus Wildenhaus force-pushed the Wildenhaus:master branch from 4ea5920 to f7fa48e Dec 16, 2018

@Wildenhaus Wildenhaus force-pushed the Wildenhaus:master branch from f7fa48e to 798e882 Dec 16, 2018

@Wildenhaus Wildenhaus force-pushed the Wildenhaus:master branch from c051cee to 798e882 Jan 25, 2019

@gibbed gibbed merged commit 9bb20bf into xenia-project:master May 4, 2019

2 checks passed

continuous-integration/appveyor/pr AppVeyor build succeeded
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.