# FIFA 16 (BIG format) # Written by Ekey (h4x0r) # script for QuickBMS http://quickbms.aluigi.org
comtype COMP_DEFLATE idstring "BIG" get VERSION byte #4 get BIGSIZE long endian big get FILES long get TABLESIZE long
for i = 0 < FILES get OFFSET long get FZSIZE long get NAME string
savepos TMP goto OFFSET getdstring TYPE 8
if TYPE == "chunkzip" get DUMMY long get SIZE long getdstring DUMMY 24 get ZSIZE long get DUMMY long savepos ZOFFSET clog NAME ZOFFSET ZSIZE SIZE else log NAME OFFSET FZSIZE endif goto TMP next i
As far as I know the chunkzip files are a bit more complex than that. Probably it's better to dump them "as-is" and then use the chunklzx script: http://aluigi.org/papers/bms/chunklzx.bms
aluigi wrote:As far as I know the chunkzip files are a bit more complex than that. Probably it's better to dump them "as-is" and then use the chunklzx script: http://aluigi.org/papers/bms/chunklzx.bms
Hmmm. I have small .big archive with single chunks
aluigi wrote:As far as I know the chunkzip files are a bit more complex than that. Probably it's better to dump them "as-is" and then use the chunklzx script: http://aluigi.org/papers/bms/chunklzx.bms
Is extraction possible or is injected again? chunklzx == Extract and re-compress ?
aluigi wrote:As far as I know the chunkzip files are a bit more complex than that. Probably it's better to dump them "as-is" and then use the chunklzx script: http://aluigi.org/papers/bms/chunklzx.bms
Please update the script to compress chunklzx files Currently, only the script extracts files and does not inject Is this done?
The reimporting feature may not work because the file is chunked (basically it's splitted in small pieces). As already said, if it doesn't work I have no other solutions unfortunately.
Anyway I have updated the script and it "may" work better in reimport mode, it's a type of update that usually worked for the scripts of other games. Try it, version 0.2.4: http://aluigi.org/bms/chunklzx.bms
If the game doesn't work with the "edited" file try to use the unpacked file at the place of the original one.
aluigi wrote:The reimporting feature may not work because the file is chunked (basically it's splitted in small pieces). As already said, if it doesn't work I have no other solutions unfortunately.
Anyway I have updated the script and it "may" work better in reimport mode, it's a type of update that usually worked for the scripts of other games. Try it, version 0.2.4: http://aluigi.org/bms/chunklzx.bms
If the game doesn't work with the "edited" file try to use the unpacked file at the place of the original one.
Keep us update!
Thank you very much. You made a very quick update Imports files but crashes when the game is running The compressed file is also not available for Xbox Possibly in the computer version of the game
# FIFA 16 (BIG format) # Written by Ekey (h4x0r) # script for QuickBMS http://quickbms.aluigi.org
comtype COMP_DEFLATE idstring "BIG" get VERSION byte #4 get BIGSIZE long endian big get FILES long get TABLESIZE long
for i = 0 < FILES get OFFSET long get FZSIZE long get NAME string
savepos TMP goto OFFSET getdstring TYPE 8
if TYPE == "chunkzip" get DUMMY long get SIZE long getdstring DUMMY 24 get ZSIZE long get DUMMY long savepos ZOFFSET clog NAME ZOFFSET ZSIZE SIZE else log NAME OFFSET FZSIZE endif goto TMP next i
There is no update for this script Because in that chunkzip it can extract and import in one step But chunklzx only extracts and requires two extraction steps
Here is a script to compress single files to chunklzx format. The script is not complete yet so you must copy chunklzx header (0x28) from original chunklzx file to start of the compressed file created with this script.
comtype xmemlzx_compress endian big math CHUNK_SIZE = 0x40000 get SIZE asize math T = 0 get NAME filename
log NAME 0 0 for OFFSET = 0 != SIZE
math TMP = SIZE math TMP - OFFSET if TMP < CHUNK_SIZE math CHUNK_SIZE = TMP endif clog MEMORY_FILE OFFSET CHUNK_SIZE CHUNK_SIZE get CHUNK_ZSIZE asize MEMORY_FILE
# math number of nulls in end of chunk putting CHUNK_ZSISE to right column in the file. math N = 0x10 math T = CHUNK_ZSIZE math T %= 0x10 if T == 8 math N = 0 elif T > 8 math N += 8 math N -= T else math N -= 8 math N -= T endif
putvarchr MEMORY_FILE2 0 CHUNK_ZSIZE long putvarchr MEMORY_FILE2 4 3 long putvarchr MEMORY_FILE3 N 0 append log NAME 0 8 MEMORY_FILE2 log NAME 0 CHUNK_ZSIZE MEMORY_FILE log NAME 0 N MEMORY_FILE3 append next OFFSET + CHUNK_SIZE