Possible next features of QuickBMS

Doubts, help and support about QuickBMS and other game research tools
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Possible next features of QuickBMS

Post by aluigi »

QuickBMS 0.10.0 is out
chrrox
Posts: 388
Joined: Thu Aug 07, 2014 10:28 pm

Re: Possible next features of QuickBMS

Post by chrrox »

was ALLZ compression added?
I can't seem to find it.
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Possible next features of QuickBMS

Post by aluigi »

I guess you mean ALZSS
Shokoniraya
Posts: 416
Joined: Sat Sep 15, 2018 5:22 am

Re: Possible next features of QuickBMS

Post by Shokoniraya »

aluigi, please make a quick update

there is a problem

if size is 0, then offset will set to 0? can you just set it to act like normal?
i want to make script for a text file with offset (no size)
if i remove a line, then offset will turn to 0
and game will read header as a text (because offset is 0 and just in one game)
if size is 0, then OFFSET must be act like normal! (like anyother size! not set to zero just because size is zero!)
this is a problem and some games will crash if text-offset turn to 0!
please fix it
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Possible next features of QuickBMS

Post by aluigi »

What reimport mode are you using?
Do you have a sample for replicating the problem on the fly?
Shokoniraya
Posts: 416
Joined: Sat Sep 15, 2018 5:22 am

Re: Possible next features of QuickBMS

Post by Shokoniraya »

another bug!
en.mo is a empty file (i wrote zero in every offset blocks)
and see what happening after importing!! (check in hex editor)

quickbms has bug in some cases, please accept it (same story in past months :cry: )
Shokoniraya
Posts: 416
Joined: Sat Sep 15, 2018 5:22 am

Re: Possible next features of QuickBMS

Post by Shokoniraya »

a sample file uploded in this comment to prove it (tfo.zip)
in this file, i removed text and wrote zero in offset block, but offset must turn to 20 (and add a zero at end of text) not zero! if text is empty, then add new offset with one zero or two (its up to unicode)
Shokoniraya
Posts: 416
Joined: Sat Sep 15, 2018 5:22 am

Re: Possible next features of QuickBMS

Post by Shokoniraya »

some new features for quickbms

add UTF-32 support
add quiet mode
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Possible next features of QuickBMS

Post by aluigi »

UTF-32? I don't see any need to use it, nobody use it.

For the quiet mode, have you tried -Q?

Regarding the other 2 posts I have not checked them yet.

Please note that there is a bug (I used atoi instead of myatoi) in -b, -b 0x2d doesn't work but -b + works, so -b 0x20 doesn't while -b " " does.
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Possible next features of QuickBMS

Post by aluigi »

Shokoniraya wrote:another bug!
en.mo is a empty file (i wrote zero in every offset blocks)
and see what happening after importing!! (check in hex editor)

quickbms has bug in some cases, please accept it (same story in past months :cry: )

No, quickbms is correct, your script is wrong:

Code: Select all

. 000003f4 get     LAST_OFF   0x00000a68 -2
. 000003f4 get     LENGHT     0x00000120 4
. 000003f8 get     OFFSET     0x00000000 4
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Possible next features of QuickBMS

Post by aluigi »

Shokoniraya wrote:a sample file uploded in this comment to prove it (tfo.zip)
in this file, i removed text and wrote zero in offset block, but offset must turn to 20 (and add a zero at end of text) not zero! if text is empty, then add new offset with one zero or two (its up to unicode)

Same as for the other sample, OFFSET is zero and FAKE_SIZE is not declared which means it's zero.
Shokoniraya
Posts: 416
Joined: Sat Sep 15, 2018 5:22 am

Re: Possible next features of QuickBMS

Post by Shokoniraya »

utf-32 used in some new games
like mortal kombat and some engine files
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Possible next features of QuickBMS

Post by aluigi »

I will check what I can do about utf32.
I think Assetto Corsa (data.acd) uses it too, but they are really very very rare cases.
Shokoniraya
Posts: 416
Joined: Sat Sep 15, 2018 5:22 am

Re: Possible next features of QuickBMS

Post by Shokoniraya »

aluigi, another problem, quickbms just can read Uint and why cant read same as normal int? its a problem in negative numbers bacause Uint doesnt have any negative number!

can you replace correct version of quickbms with a fixed version for that?
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Possible next features of QuickBMS

Post by aluigi »

The story about unsigned int and int is complicated because for quickbms they are basically the same, the only difference is with "if", "math" and some other instructions.

If you use quickbms_4gb_files, EVERY 32bit field is unsigned because 0x00000000ffffffff is positive, while in quickbms it's 0xffffffff which is negative.

Long story short, if you want a signed 32bit use signed_long which is universally accepted:

Code: Select all

get VAR signed_long
Shokoniraya
Posts: 416
Joined: Sat Sep 15, 2018 5:22 am

Re: Possible next features of QuickBMS

Post by Shokoniraya »

sir aluigi, why its not possible to use float (single or 32 float) in putvarchr?

example code

Code: Select all

get VAR float
putvarchr MEMORY_FILE1 0 VAR float MEMORY_FILE1

can i write(put) a float VAR in memory_file somehow?
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Possible next features of QuickBMS

Post by aluigi »

floats aren't really supported. They are converted to integer and saved without the part after the comma.

Example:
"put 123.456 float MEMORY_FILE" -> 123.000 (00 00 f6 42)
if input is 79 e9 f6 42, "get DUMMY float" read 123

Long story short, do NOT use floats in quickbms.
Shokoniraya
Posts: 416
Joined: Sat Sep 15, 2018 5:22 am

Re: Possible next features of QuickBMS

Post by Shokoniraya »

but can you do something in future?
i know size and offset cant be float. but you can do rounding just in output file
i want to make a script for convert a xml font to template binary, it can help a lot to edit config files
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Possible next features of QuickBMS

Post by aluigi »

No need to make any change.
Even now you can handle floats with some "creativity".

Example for input float (as string like in your xml) and output as float (32bit field "long"):

Code: Select all

set VAR string "123.456"
string VAR s "%f" OUTPUT
print "%OUTPUT|x%"

log MEMORY_FILE 0 0
put OUTPUT long MEMORY_FILE
Shokoniraya
Posts: 416
Joined: Sat Sep 15, 2018 5:22 am

Re: Possible next features of QuickBMS

Post by Shokoniraya »

thank you, that was exactly what i looked for

and just an other question, how can i read a float and dumped in txt?
i mean how can i convert long to a string float?

i tried this

Code: Select all

goto 0
get POINT long
string NUMB p "%f" POINT
print "%NUMB%"


file is 82 E8 B1 3E
float32 is 0.34747701883316, but quickbms show 0.347477, last 8 number will not show, even in dumped txt