Skip to content

casc_extract: "Invalid file length, expected ... got ..." in GameTables\HpPerSta.txt #10033

@micolous

Description

@micolous

Describe the bug

I'm attempting to extract data for a Windows install of Retail v11.1.0.59466. My CASC data also contains an install of wowxptr v11.1.0.59347.

Battle.net and game are not running while extracting, and the game can launch and run successfully from that CASC store.

I'm extracting data with this PowerShell script, in simc's casc_extract directory:

$build = "11.1.0.59466"
python casc_extract.py -m batch -d 'C:\Program Files (x86)\World of Warcraft\' -o "../casc_data/$build/" --product wow

Extraction fails at:

Extracting GameTables\HpPerSta.txt (id=1391642) ...
Usage: casc_extract.py -d wow_install_dir [options] file_path ...

casc_extract.py: error: Invalid file length, expected 343 got 84870439

If I change this line to print an error and then return None instead of exiting:

simc/casc_extract/casc.py

Lines 445 to 447 in 1df599c

self.options.parser.error(
f'Invalid file length, expected {blte_file_size} got {blte_len}'
)

And then also replace sys.exit(1) with print("extraction failed") here so it continues trying to extract files after any failure:

if not blte.extract_file(*extract_data):
sys.exit(1)

The only other failures are:

Extracting GameTables\SandboxScaling.txt (id=1391659) ...
Invalid file length, expected 893 got 0

Extracting GameTables\CombatRatingsMultByILvl.txt (id=1391670) ...
Invalid file length, expected 9926 got 0

Extracting GameTables\ItemLevelByLevel.txt (id=2012881) ...
Invalid file length, expected 476 got 0 

All other files appear to extract successfully.

I've also tried extracting wowxptr 11.1.0.59347, which has the same problems.

If this issue shows up for others, my hunch is that some CASC/BLTE data structure has changed, and this new encoding is only used for some files.

Looking at my IDE search history, I suspect this also failed in some v11.0.x builds, but I forgot to write a bug at the time and just patched around it. 🙈

I don't care about the failing files, so commenting out the checks and allowing some failures is fine for me. 😄

Additional information

  • SimulationCraft Version (required): 1df599c

  • simc_gui.simc file or contents: n/a

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions