Skip to content
View in the app

A better way to browse. Learn more.

ResHax

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.
Help us keep the site running.

QuickBMS errors [programming, scripting, quickbms.exe tool... NOT games]

Featured Replies

  • Author
  • Localization

Sruffy, posted Wed Jun 15, 2022 4:48 am (72069)


This is the script I use for normal unpacking

tk7.bms

  • Replies 671
  • Views 45
  • Created
  • Last Reply

Top Posters In This Topic

  • Author
  • Localization

Sruffy, posted Fri Jul 15, 2022 12:08 am (72607)


aluigi wrote:
This problems is not so uncommon.
Many libraries that compress using the deflate algorithm (known as zlib if there is a header and a crc before and after it) sometimes are not able to match the ratio or other libraries in some conditions.

For example zlib is not so good and for that def_item_trophies.xml file you provided you get 1996 bytes.
7zip compresses it to 1984 bytes.
The uberflate/kzip solution reaches 1970 bytes.

A good candidate is zopfli but it's unable to offer good results with various types of files.
In this case it's good and I can reach 1939 bytes so I will for sure add it to the next version of quickbms (I already evaluated it months ago but I rejected it just due to its results) but I guess I have to write a sort of "options fuzzer" for finding those with the best results.
  • Author
  • Localization

Sruffy, posted Fri Jul 15, 2022 12:15 am (72608)


Hi everyone, I mod Tekken 7 and while trying to unpack a mod file, this error happen. Script I use is attached below for reference. Could someone please help?

Error: the compressed zlib/deflate input is wrong or incomplete (-3)
Info: algorithm 1
offset 00000049
input size 0x0000055e 1374
output size 0x00000e29 3625
result 0xffffffff -1

Error: the uncompressed data (-1) is bigger than the allocated buffer (3625)

tk7.bms

  • Author
  • Localization

aluigi, posted Wed Aug 24, 2022 9:29 am (73152)


@Sruffy and 3IMiner
You are off-topic

@spiritovod
ok I fixed that.

I just released quickbms 0.12 as stable version, it's the beta with the fix for the float bug plus a couple of simple patches for compilation on other platforms and updates libraries (like zlib and lzma).

I decided to go with the stable version because the beta didn't give any problems for so many months and I have no plans to work further on it.

P.S.: yeah I know that the changelog sucks this time, for any details it's better to check what I wrote in my previous posts about the beta.
  • Author
  • Localization

johnz1, posted Fri Aug 26, 2022 7:20 pm (73196)


johnz1 wrote:
Hello

I just upgraded QuickBMS from 0.10.1 to 0.11. I'm running into a problem with reimport (the original, not reimport2 or reimport3). 9 out of 743 files that used to be able to be reimported are now failing because the compressed size is too big. If I switch back to 0.10.1, they all can be reimported without an error. I'm using "nbajamfire.bms" 0.2.3a with QuickBMS to reimport texture files.

I don't see anything in the 0.11 release notes about changing the compression algorithms. I've also noticed that the reimport in 0.11 is much faster than 0.10.1 - which is nice!

Thanks


I'm happy to report that this is fixed in QuickBMS 0.12. Thank you!
  • Author
  • Localization

spiritovod, posted Tue Sep 06, 2022 6:13 pm (73359)


aluigi: Thanks for fixing doubles. I only checked it with "get" so far, but probably "put" and reimport also should work fine now.

Not sure if it's supposed behavior or just missed point in documentation, but one must consider actual internal order for multi-dimensional arrays and address then accordingly. For example:
putarray 0 FILES 0 0
putarray 1 FILES 0 0
^ will not work, because it will be putarray 0 / putarray 1 / putarray 1 / putarray 2 and they will overlap.
Correct usage would be:
putarray 0 FILES 0 0
putarray 2 FILES 0 0
  • Author
  • Localization

Jozaca1199, posted Wed Sep 28, 2022 12:00 pm (73614)


Hello, I have a doubt about using quickbms with the purpouse of modding a game. Does the "NOT games" in the title mean that I should post this in another thread?
  • Author
  • Localization

sparr, posted Wed Sep 28, 2022 6:32 pm (73619)


Code:
string NAME = ".foo"
log NAME 0 0

This script produces a zero byte file named "foo"

If I run `quickbms -f ".foo"` then the file is extracted, still with the name "foo"

If I run `quickbms -f "foo"` then no file is extracted.

Why is the leading dot stripped? Since it's stripped, why does the -f filter still match the unstripped name? Is this a bug, possibly related to file extension handling? How can I avoid this?

EDIT: The test case above is meant purely for illustrative purposes. My actual use case is a real archive containing files with names starting with a dot, which get extracted without the dot.
  • Author
  • Localization

Jozaca1199, posted Fri Oct 07, 2022 8:27 am (73711)


Jozaca1199 wrote:
Hello, I have a doubt about using quickbms with the purpouse of modding a game. Does the "NOT games" in the title mean that I should post this in another thread?

I still have the same question
  • Author
  • Localization

spiritovod, posted Fri Oct 07, 2022 12:27 pm (73713)


@sparr: I suppose it's expected behavior due to how quickbms handles paths for better user experience and limitations of command line. For example, extracting "../../test.dat" would lead to extraction of "test.dat" to output folder. Also, "test/.foo" would produce ".foo" file in the respective subfolder. As for -f filter, you need to use wildcard(s) as suggested in documentation, then it will work properly.
If you need to process dots in case when there are no subfolders, I guess it can be done by artificially adding some checks and subfolder to path or unique extension to file and processing extracted files externally via file managers. Though if you'll need to reimport stuff in the future, such approach may not work properly.

@Jozaca1199: Yes, that's explained in the first post. And even though quickbms has reimport modes, it main purpose is extraction and reimport may not work correctly in many cases, unless you'll write separate script for packing, that's why it's better to look for some modding dedicated communities for particular game/engine.
  • Author
  • Localization

Gamer2000, posted Tue Oct 18, 2022 2:50 am (73851)


Hello everybody, I want to be able to attempt to extract or decompress fef/fff bin files on Just Dance 4 (like with these sample files for ex.). Whenever I used the just_dance_4.bms or just_dance_bin.bms I get this type of error:

Can anyone please help???
  • Author
  • Localization

tomba, posted Fri Oct 28, 2022 5:47 am (73997)


hello. my problem is that windows 11 won't let me start quickbms. i enabled it through the firewall, the reimport starts, but the import file window closes immediately. is there a solution?
Thanks for the reply.
Sorry, I asked for help too soon. can be run as administrator.
  • Author
  • Localization

jakmrk88, posted Sat Oct 29, 2022 10:20 am (74017)


Hello. I'm trying to unpack Gotham knights using quickbms then using both 4_0.4.25 and 4_0.4.25d scripts but I still get the error: incomplete input file -10. Can anyone help?

Problem solved. I found that even if the exe file is UE 4.25, pak file must be extracted with the script for UE 4.27
  • Author
  • Localization

zgoro, posted Sat Dec 10, 2022 9:38 am (74534)


I apologize for having posted this on another topic, but I suspect this is not just a compatibility issue.

From v.0.12.0, Findloc command is not reading string variable anymore:

Code:
Math A = 1
Open FDSE "prova.txt" 100             # an external .txt file with strings:  _1_ , _2_ ...

goto 0x0 100

String VAR P "_%A%_"                  # String to search as VAR
findloc OFFSET string VAR 100 ""      # VAR is not read in v.0.12.0
print "VAR found at %OFFSET|x%"

test.7z

  • Author
  • Localization

Shokoniraya, posted Thu Dec 15, 2022 8:03 am (74614)


there is 2 p opertor
lower p, acts like scope based languages print system
upper P, QuickBMS print mode

upper P will add a 0x0A byte at end of string, that is why your command not working

please use this way
string VAR p "_%s_" A

but this way may not be safe, so you better to use it like this to avoid formatting problems
string VAR = ""
string VAR "_"
string VAR A
string VAR "_"
  • Author
  • Localization

zgoro, posted Sat Dec 17, 2022 8:51 am (74651)


Thanks for your insight,
Unfortunately altering P in v0.12.0 breaks all previous .bms written without 0x0A, so that's a major issue to consider on my side.
  • Author
  • Localization

Shokoniraya, posted Mon Dec 19, 2022 10:10 am (74675)


hello sir aluigi
i pointed to similiar subject before, but there is a very annoying thing about reimport2 mode of QuickBMS
please add a command line to ignore making old file buffer location to zero (\x00) if file is bigger than old one and a new offset is created for appending file to end of archive, because some archives are optimized to use duplicated files binaries from only one binary, and if that binary replaced with zero, rest of files will be taken as zero too
  • Author
  • Localization

Dark Frost, posted Sun Jan 29, 2023 3:48 am (75193)


hello aluigi
? Think Positional compare not working with QuickBMS
Because I Try This But This Isnt Working My Data
Code:
do
    findloc A_OFFSET binary "\x80\x00"
    goto A_OFFSET
    get A_SIZE asize
    findloc Q_OFFSET binary "\x43\x52\x49"
    goto Q_OFFSET
    get Q_SIZE asize
    math Q_OFFSET - 34
    math Q_SIZE = Q_OFFSET
    if A_SIZE == Q_SIZE
    callfunction Extraction
    startfunction Extraction
    findloc B_OFFSET binary "\x80\x01\x??\x??" 0 ""
    goto B_OFFSET
    if B_OFFSET == ""
        get B_SIZE asize
    else
       math B_OFFSET - 2 # 2 is B_OFFSET Byte
       math B_SIZE = B_OFFSET
    endif
    math B_SIZE - A_OFFSET
    string A_OFFSET ".adx"
    log A_OFFSET A_OFFSET B_SIZE
    math A_OFFSET = B_OFFSET
    goto A_OFFSET
    else
    goto A_OFFSET
While NotEOF <> 0
endfunction
cleanexit

? need compare,Q_OFFSET ("\x43\x52\x49") - 34 if it corresponds A_OFFSET ("\x80\x00") function start

? Try This Way But It Didint Work
Code:
do  
    startFunction Back
    findloc A_OFFSET binary "\x80\x00"
    goto A_OFFSET
    get A_SIZE asize
    findloc Q_OFFSET binary "\x43\x52\x49"
    math Q_OFFSET - 33
    goto Q_OFFSET
    endFunction
    if A_OFFSET == Q_OFFSET
    callFunction Start
    else
    math A_OFFSET 2
    callFunction Back
    endif
    StartFunction Start
    findloc B_OFFSET binary "\x80\x01" 0 ""
    goto B_OFFSET
    if B_OFFSET == ""
        get B_SIZE asize
    else
       math B_OFFSET 2 # 2 is B_OFFSET Byte
        math B_SIZE = B_OFFSET
    endif
    math B_SIZE - A_OFFSET
    string A_OFFSET ".adx"
    log A_OFFSET A_OFFSET B_SIZE
    math A_OFFSET = B_OFFSET
    goto A_OFFSET
while NotEOF <> 0
endFunction
cleanexit

  • Author
  • Localization

Fabx, posted Mon Mar 27, 2023 11:01 am (76079)


Hello, i can't compile for Linux since this has been deprecated in openSSL:

https://github.com/openssl/openssl/issues/14216

with error log:

```perform.c:1544:99: error: 'RSA_SSLV23_PADDING' undeclared (first use in this function); did you mean 'RSA_NO_PADDING'?
1544 | | RSA_##X##_##Y (datalen, data, data, rsa_ctx->openssl_rsa, RSA_SSLV23_PADDING) < 0) \
| ^~~~~~~~~~~~~~~~~~

perform.c:1555:13: note: in expansion of macro 'QUICKBMS_OPENSSL_RSA'
1555 | QUICKBMS_OPENSSL_RSA(public, decrypt)
| ^~~~~~~~~~~~~~~~~~~~
perform.c:1544:99: note: each undeclared identifier is reported only once for each function it appears in
1544 | | RSA_##X##_##Y (datalen, data, data, rsa_ctx->openssl_rsa, RSA_SSLV23_PADDING) < 0) \
| ^~~~~~~~~~~~~~~~~~

perform.c:1555:13: note: in expansion of macro 'QUICKBMS_OPENSSL_RSA'
1555 | QUICKBMS_OPENSSL_RSA(public, decrypt)
| ```

would be great to readapt the code to the new feature.
  • Author
  • Localization

Fabx, posted Tue Mar 28, 2023 11:25 am (76087)


While extracting F1 2013 nfs archive on windows i always get a "not enough memory resources to process this command", extracting from the nfs archive a total of 6.18gb, but the extraction can't be completed. Any suggestions?

Yes i have lastes quickBMS and lastes codemasters_nefs script
Guest
This topic is now closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.