added explicit support for not bundled files
split extraction into two steps: first extract everything, then sort files into correct folders
added TOC-based sorting that reads TOC files to know where each file belongs
files without a TOC entry just get their hash removed from the filename
fixed file moving on Windows when the output file already exists \
WARNING: for cur version of the game data, please delete the cached data fully(DSOClient from Temp),
then redownload then use the script to parse it
The following tags: _B3NHB3N, __ZN, IB3N, _TOC
TODO: The following are not yet tested: KCAP,LMXB
(name_len(u16 @0x08) + name(UTF-8) + padding/u32 + repeated)
The shaders_sm30, is a nighmare hell for reversing, however I get somewhere
Using SM3.0 bytecode obv
The fourcc in the file are: FXLC, CTAB, HLSL, CLIT, PRES, PRSI, \
PUVS, MLPU, PDHS is the header fourcc, MLPS, SSMT, PSSM, ESMD
(however some of them may or may not be valid)
File size: 0x0016B506 bytes
python shaders.py --dedup shaders_sm30 folderNameP.S. Im not continuing this shader reversing shit sry.
U see the shader names used, thats enough. U can write them yourself \
simple asf
py neb.pyauto-scans input/ folder recursively for data files
py bank.py <file1.bank> [file2.bank ...]
py {inputFROM} {inputWith} out.txt
-
Get main TOC file from current version
__toc_md5hash
bundles_optional___toc_md5hash -
Get the same files from test server
-
Parse them with neb.py
-
Copy diff.py to the output directory where these TOC files are located
-
Compare with diff.py
-
Copy the new data and extract it with neb.py
-
Set the path in copy.ps1
$listFile is the input file for compare
$src is the path with new data containing bundles
Change $src to the path containing the new data (bundles)
$listFile must point to the input file for comparison
then copy the difference
prod. by simo 🖤
base: August 22, 2025
License: WTFPL