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.

Possible next features of QuickBMS

Featured Replies

  • Author
  • Localization

aluigi, posted Tue Apr 09, 2019 9:28 pm (46732)


The new beta is online.
  • Replies 679
  • Views 56
  • Created
  • Last Reply

Top Posters In This Topic

  • Author
  • Localization

Shokoniraya, posted Wed Apr 10, 2019 11:06 am (46758)


aluigi wrote:
The new beta is online.

works fine! thank you!

need to ask you something, some offsets are normal, but padded in their location,
math OFFSET * 16 will turn them to another value,
for example, we have a file in offset 1280 (offset is 1280)
and in header, offset long is 1280 too. but game just can read offsets padded to 16, but how we can use math option? because long already is 1280, just like their real position! (long is 1280, if long was 80, we could do something and use math, but how about normal padded values?)
and i want to say, math OFFSET x 16 is fine or not good for that?
  • Author
  • Localization

Shokoniraya, posted Wed Apr 10, 2019 12:16 pm (46760)


sir aluigi, don't release quickbms 0.9.3 for now
i want to tell two problem

problem 1:
when we using a dictionary name (a list for names to rename CRC to names), those CRCs that are not available in list of names, will not renamed to original crc and will show like this: 00000001.dat, 00000002.dat, 00000000a.dat and so on, but it must be renamed to CRC if name is not available in list, like this :154821484, 42972494, 247442 and so on

and another, problem 2:
names better be like this: 00000001.dat, 00000002.dat, 00000003.dat, 00000004.dat, 00000005.dat, 00000006.dat, 00000007.dat, 00000008.dat, 00000009.dat, 00000010.dat, 00000011.dat, 00000012.dat, 00000013.dat, 00000014.dat and so on, i mean dont use hex numbers as numbers

example code
Code:
math NUM1 = 0
math NUM2 = 0
math NUM3 = 0
math NUM4 = 0
math NUM5 = 0
for i = 0 < 40
math NUM1 1

if NUM1 = 10
math NUM1 = 0
math NUM2 1
endif

if NUM2 = 10
math NUM2 = 0
math NUM3 1
endif

if NUM3 = 10
math NUM3 = 0
math NUM4 1
endif

if NUM4 = 10
math NUM4 = 0
math NUM5 1
endif

if NUM5 = 10
break
endif

string COUNTER p "%s%s%s%s%s%s" NUM5 NUM4 NUM3 NUM2 NUM1 ".dat"
log COUNTER 0 0
next i
  • Author
  • Localization

Shokoniraya, posted Wed Apr 10, 2019 12:43 pm (46761)


and another idea to make quickbms complete ever!

better do something to add an option for edit config files, and export and import values to xml or a file and edit values, like xml files for coordination

like this
Code:
X="204" Y="668" w="20" h="50"

dumping value to file as natural numbers and reimport to size blocks
it can helps alot to edit config files!
  • Author
  • Localization

aluigi, posted Wed Apr 10, 2019 5:22 pm (46772)


Quote:
and i want to say, math OFFSET x 16 is fine or not good for that?

The "80" of your example is already aligned to 16 bytes, let's take 1234 instead, "math SIZE x 16" will result in 1248.
As far as I know the current beta is able to support alignment in reimport mode.
Do a test and let me know.

Quote:
problem 1:
when we using a dictionary name (a list for names to rename CRC to names), those CRCs that are not available in list of names, will not renamed to original crc and will show like this: 00000001.dat, 00000002.dat, 00000000a.dat and so on, but it must be renamed to CRC if name is not available in list, like this :154821484, 42972494, 247442 and so on

It's something I can do it, yes.
It will break compatibility with files extracted in the past (what was 00000000.dat now would be 12345678.dat [hex is necessary]) but I think it's not a bad thing.

Quote:
and another, problem 2:
names better be like this: 00000001.dat, 00000002.dat, 00000003.dat, 00000004.dat, 00000005.dat, 00000006.dat, 00000007.dat, 00000008.dat, 00000009.dat, 00000010.dat, 00000011.dat, 00000012.dat, 00000013.dat, 00000014.dat and so on, i mean dont use hex numbers as numbers

You can obtain decimal names with the command-line option -N, the option works in the quickbmsver command too.

Quote:
better do something to add an option for edit config files, and export and import values to xml or a file and edit values, like xml files for coordination

That's complex, really complex. There are many types of configuration files with an unknown number of fields.
Not possible.
  • Author
  • Localization

Shokoniraya, posted Thu Apr 11, 2019 8:25 am (46787)


and please one other fix in slog

some characters are not visible in text editor and writing as space, can you set it to write as hex like /x01 or other hex numbers like old quickbms?
  • Author
  • Localization

aluigi, posted Thu Apr 11, 2019 8:56 am (46788)


I need a sample
  • Author
  • Localization

Shokoniraya, posted Fri Apr 12, 2019 3:39 pm (46842)


aluigi, there is a problem with get text string
i dont know how quickbms can get strings but i know it is must be like that:
like this: get string and stop it when reach to a zero \x00 byte! must be like that!

problem: quickbms has problem in get YOUR_TEXT string, for example you can download this zip file and export text, done and then go and check line 12 (TEST-STRING.zip)!
dialog is 40th St.. But QuickBMS will dump as 40th St.\0Auto Hide\041st St.\0Find a snit


and some times, if dialog start with a number and a space, other part will not dump
example: dialog is 2 player can't be at same place, Please go to a diffirent location
but will dump as 2

i think you have to fix get TEXT string

TEST-STRING.zip

  • Author
  • Localization

aluigi, posted Fri Apr 12, 2019 4:31 pm (46846)


it's a problem of the script.
You must simply use: slog "" OFFSET -1

From:
Code:
savepos OFFHANDLER
goto OFFSET
get LENGHT string
math LENGHT -= 1
goto OFFHANDLER
slog "" OFFSET LENGHT

To:
Code:
slog "" OFFSET -1


Ah, in the next beta and final quickbms -b will be replaced by -j, -b will be used for specifying the filler char when the reimported file is smaller than the original: by default space (0x20) in slog and 0x00 in Clog and Log
  • Author
  • Localization

Shokoniraya, posted Sat Apr 13, 2019 11:32 am (46876)


QuickBMS can calculate and get text with -1! So why get TEXT string has problem? Weird!
So can you fix get TEXT string?
I have to use some texts in string NAME p, what about that? slog is fine if -1 can solve that but other text (except slog or dumping) has problem
If string reach to zero, then stop reaching. Must work like that and I think script was fine
  • Author
  • Localization

aluigi, posted Sat Apr 13, 2019 5:04 pm (46886)


what you wanted to use in your old script was strlen:
strlen LENGHT LENGHT

you got the string LENGHT from the file and you used math on it, which was wrong :)
  • Author
  • Localization

aluigi, posted Sat Apr 13, 2019 9:17 pm (46894)


The new beta is out:
http://aluigi.org/beta/quickbms_0.9.3.zip

I plan to release the new version on Monday so if you have any idea or bug, this is the right moment :)

Remember what I said about -b that is -j now.
  • Author
  • Localization

Shokoniraya, posted Sun Apr 14, 2019 11:32 am (46918)


aluigi wrote:
The new beta is out:
http://aluigi.org/beta/quickbms_0.9.3.zip

I plan to release the new version on Monday so if you have any idea or bug, this is the right moment :)

Remember what I said about -b that is -j now.


new thing
change utf-16 from big endian to little endian
make quickbms to use full cpu using (use maximum cpu to make it fast or add an option if someone dont want to use at maximum)


add a log for xml (I know its hard, but for next release after 0.9.3)
like this:
Code:
get HEADER long
get DUMMY long
get FILES long
for i = 0 get DUMMY long
get X-OFFSET long
get Y-OFFSET long
get W-SIZE long
get H-SIZE long
xlog X-OFFSET Y-OFFSET W-SIZE H-SIZE(and so many other parts to add in xlog)
next i
and so on
xlog should just replace hex-decimal numbers (just like hex editor)
and quickbms generate a xml (xml tags and template must generate by quickbms and not create by user)

examle
Code:




xlog can helps a lot in config modding like fonts and save files and server files and alot of files! even change setting or coordination files and object files in games!
  • Author
  • Localization

aluigi, posted Sun Apr 14, 2019 2:11 pm (46930)


Good, I forgot about the big endian in -j and it will be changed to little endian, anyway doesn't change anything when editing.

Regarding the CPU, quickbms is not limited in any way BUT:
- it's single thread, it's not possible to support multiple CPU at the same time because all the operations are in sequential order
- the handling of the commands is slow because there is no JIT compilation
So there are no ways to improve it.

Regarding xlog... it seems really very complicated and it's still the same thing we discussed in the previous post.
  • Author
  • Localization

Brolijah, posted Thu Apr 18, 2019 7:41 pm (47064)


Greetings, I'd like to submit some code for a decompression format not contained with QuickBMS. I was referred to this thread by chrrox to share this. Getting to it...

I've been calling it "Aqualead LZSS," and the file magic is "ALLZ".
Aqualead is a game development framework sold within Japan. According to their online documentation, their compression is a modified variant of LZSS with their own optimizations added in.

Link to my decompression tool source code (DL under releases):
https://github.com/Brolijah/Aqualead_LZSS

Some sample files to test with:
https://www.dropbox.com/s/6u1sjn5yxflm1 ... s-ALLZ.rar

Extra:
This tool I compiled using the decompression ASM routines I pulled from Groove Coaster for Steam. While I have confidence in my own C program linked above, I'm including this in case you might be curious how exactly a game using ALLZ does it. This is 100% guaranteed to work.
https://www.dropbox.com/s/lo3s51eub6ie1 ... SS_ASM.zip

If you have any questions or concerns, I'll try to answer them as best I can.
  • Author
  • Localization

aluigi, posted Thu Apr 18, 2019 9:52 pm (47068)


Excellent job Elijah, I will add it to the next quickbms.

Let me know if you are aware of other algorithms that may be worth to add.
  • Author
  • Localization

Shokoniraya, posted Fri Apr 19, 2019 3:42 pm (47076)


can you add a better zlib and lzo (lzo1x) library too?
and why deflate always is a problem?
  • Author
  • Localization

aluigi, posted Fri Apr 19, 2019 9:39 pm (47127)


what's the problem?
both zlib (zlib, zopfli, advancedcomp, uberflate) and lzo work perfectly.
  • Author
  • Localization

Shokoniraya, posted Mon Apr 22, 2019 3:34 pm (47193)


aluigi wrote:
what's the problem?
both zlib (zlib, zopfli, advancedcomp, uberflate) and lzo work perfectly.

deflate has problem in some games (just in reimporting) and just in some games, like Evil whithin 2! or limbo!
  • Author
  • Localization

Mysticus, posted Mon Apr 22, 2019 4:57 pm (47197)


Any chance about your Umineko: Golden Fantasia (PC) script update?
I need that to extract sprites.
And what about the XOR encryption script for UNDER NIGHT IN-BIRTH Exe:Late[st] (PC)?
  • Author
  • Localization

aluigi, posted Fri Apr 26, 2019 5:07 am (47304)


@Shokoniraya
I need sample

@Mysticus
off-topic
  • Author
  • Localization

aluigi, posted Fri Apr 26, 2019 6:57 pm (47330)


@Shokoniraya
If you refer to the zopli bug in reimport mode, it has been fixed in the beta

I have just uploaded the new beta.
Quickbms 0.10.0 will be released this Sunday, and the beta will be the final version if there are no other things to add/fix
  • Author
  • Localization

Shokoniraya, posted Fri Apr 26, 2019 10:34 pm (47335)


release quickbms in monday

i just find a problem!
seems like quickbms cant add \x00\x00 in end of a unicode text in text file in reimporting

you can download and click on reimport and you will see
i removed message_22.lng content

TEST_1.zip

TEST_1.zip

  • Author
  • Localization

aluigi, posted Sat Apr 27, 2019 3:38 am (47345)


It seems to work well because it's a size-based string, so no NUL delimiter must be placed there.

Extraction of the rebuilt lng file is perfect indeed.
  • Author
  • Localization

Shokoniraya, posted Sat Apr 27, 2019 10:25 am (47354)


based on size? then its fine
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.