b64fd3392f
This'll try salvaging any corrupt packages loaded in: normally we find the block numbers belonging to a file by reading them from the hash table. Seems there's some packages out there (eg. Mass Effect 2 demo) that have corrupt hash tables though, so using the block numbers from there just results in a crash. By verifying the hash of each hash table we can detect if this is the case, and if so we can try just using current_block_number + 1 instead of use any invalid block number. (we also let the user know about the corrupt table in the log file) In LIVE/PIRS packages this should hopefully let us get the correct data, since files are usually stored inside consecutive blocks in those package types. It's doubtful that it'd help much with CON ones though, since those are pretty much a living filesystem. The older & more used a CON package is, the more likely blocks will be fragmented throughout the file... Reading from the hash table is the only way to properly read data from these, using current_block + 1 likely won't help much (we'd be going wxPirs-mode, in a way :P) CON packages do have something that might help with this though: redundant hash blocks, where each hash table is actually made up of two blocks. Maybe in future we can find a way to automatically use the secondary block whenever the primary one is invalid. |
||
---|---|---|
.github | ||
assets | ||
docs | ||
src/xenia | ||
third_party | ||
tools | ||
.appveyor.yml | ||
.azure-pipelines.yml | ||
.clang-format | ||
.gitattributes | ||
.gitignore | ||
.gitmodules | ||
.travis.yml | ||
LICENSE | ||
README.md | ||
premake5.lua | ||
xb | ||
xb.bat | ||
xenia-build | ||
xeniarc |
README.md
Xenia Canary - Xbox 360 Emulator
Xenia Canary is an experimental fork of Xenia. For more information, see the wiki.
See current Pull Request status here.
Interested in supporting the core contributors? Visit Xenia Project on Patreon.
Please check the FAQ page before asking questions. We've got jobs/lives/etc, so don't expect instant answers.
Discussing illegal activities will get you banned.
Disclaimer
The goal of this project is to experiment, research, and educate on the topic of emulation of modern devices and operating systems. It is not for enabling illegal activity. All information is obtained via reverse engineering of legally purchased devices and games and information made public on the internet (you'd be surprised what's indexed on Google...).
Quickstart
See the Quickstart page.
Download
Building
See building.md for setup and information about the
xb
script. When writing code, check the style guide
and be sure to run clang-format!
FAQ
See the frequently asked questions page.