QuickBMS errors [programming, scripting, quickbms.exe tool... NOT games]
-
- Site Admin
- Posts: 12984
- Joined: Wed Jul 30, 2014 9:32 pm
Re: QuickBMS errors [programming, scripting, quickbms.exe tool... NOT games]
The final \" is probably the problem.
Try using "%%~dpi\"
Try using "%%~dpi\"
-
- Posts: 233
- Joined: Sun Aug 24, 2014 5:26 pm
Re: QuickBMS errors [programming, scripting, quickbms.exe tool... NOT games]
Thanks, it works with two "\"
-
- Posts: 3
- Joined: Mon Jan 23, 2017 5:01 pm
Re: QuickBMS errors [programming, scripting, quickbms.exe tool... NOT games]
QuickBMS crashes with this testcase.
-
- Site Admin
- Posts: 12984
- Joined: Wed Jul 30, 2014 9:32 pm
Re: QuickBMS errors [programming, scripting, quickbms.exe tool... NOT games]
Eh, unfortunately not all the TotalCommander plugins can be easily supported.
When I tested this feature many years ago (far 2010) I had success with many TC plugins but those more complex relying on specific TC features/functions/callbacks can't work correctly. I guess InstallExplorer is one of them.
I'm quite surprised someone uses this feature of quickbms I never received feedback about it.
Anyway regarding InstallExplorer, it's a jurassik plugin that has been superseed by other standalone tools for the specific installers (innounp for InnoSetup is one of the main examples).
When I tested this feature many years ago (far 2010) I had success with many TC plugins but those more complex relying on specific TC features/functions/callbacks can't work correctly. I guess InstallExplorer is one of them.
I'm quite surprised someone uses this feature of quickbms I never received feedback about it.
Anyway regarding InstallExplorer, it's a jurassik plugin that has been superseed by other standalone tools for the specific installers (innounp for InnoSetup is one of the main examples).
-
- Posts: 3
- Joined: Mon Jan 23, 2017 5:01 pm
Re: QuickBMS errors [programming, scripting, quickbms.exe tool... NOT games]
Well, let's say Installshields are totally different beasts.
But anyway, if you say WONTFIX, I'm fine.
I guess perhaps the program shouldn't *crash* though.
But anyway, if you say WONTFIX, I'm fine.
I guess perhaps the program shouldn't *crash* though.
-
- Site Admin
- Posts: 12984
- Joined: Wed Jul 30, 2014 9:32 pm
Re: QuickBMS errors [programming, scripting, quickbms.exe tool... NOT games]
Maybe I can take a look at some TC plugins for the next release but it's just for curiosity rather than for real interest (so yeah the WONTFIX tag is probably correct).
I have not checked the crash, is it in the quickbms code or in the plugin that it's looking for a missing callback?
I have not checked the crash, is it in the quickbms code or in the plugin that it's looking for a missing callback?
-
- Posts: 3
- Joined: Mon Jan 23, 2017 5:01 pm
Re: QuickBMS errors [programming, scripting, quickbms.exe tool... NOT games]
Code: Select all
-------------------
*EXCEPTION HANDLER*
-------------------
An error or crash occurred:
*EH* ExceptionCode c0000005 access violation
*EH* ExceptionFlags 00000000
*EH* ExceptionAddress 001f5724
001F0000 + 00005724 InstExpl.dll
*EH* NumberParameters 00000002
*EH* 00000000
*EH* 3a43c64a
-
- Posts: 25
- Joined: Tue Dec 20, 2016 8:18 pm
Re: QuickBMS errors [programming, scripting, quickbms.exe tool... NOT games]
When I use recursive function, position for "get" operator is not restored to its original value after execution of that function. Is this behavior intentional?
I can deal with this quirk by saving position before calling function, but I'm curious to know is this a bug or not.
I can deal with this quirk by saving position before calling function, but I'm curious to know is this a bug or not.
-
- Site Admin
- Posts: 12984
- Joined: Wed Jul 30, 2014 9:32 pm
Re: QuickBMS errors [programming, scripting, quickbms.exe tool... NOT games]
Yes that's on purpose.
Go with:
Go with:
Code: Select all
startfunction FUNC
savepos BCK_OFF
...
goto BCK_OFF
endfunction
-
- Posts: 388
- Joined: Thu Aug 07, 2014 10:28 pm
Re: QuickBMS errors [programming, scripting, quickbms.exe tool... NOT games]
having trouble with oodle in quickbms.
It works fine for some chunks but fails on others.
I am thinking mabee they are using newer version?
https://github.com/powzix/kraken
00 00 EC 80 00 00 00 00 00 00 04 00 2C 7F 93 3E 6E 1C 20 23 00 00 00 00 77 C8 03 00 93 DC D7 6B - works - sample1
00 00 F0 80 00 00 00 00 00 00 04 00 3C 49 E6 C0 E5 E4 23 23 00 00 00 00 33 CF 03 00 EC 9F 78 FB - fails - sample2
00 00 F4 80 00 00 00 00 00 00 04 00 FB B5 3B 80 18 B4 27 23 00 00 00 00 57 CE 03 00 21 D0 4B 7C - crash - sample3
decompressed size is always 0x40000
compressed size is the size of the sample
It works fine for some chunks but fails on others.
I am thinking mabee they are using newer version?
https://github.com/powzix/kraken
00 00 EC 80 00 00 00 00 00 00 04 00 2C 7F 93 3E 6E 1C 20 23 00 00 00 00 77 C8 03 00 93 DC D7 6B - works - sample1
00 00 F0 80 00 00 00 00 00 00 04 00 3C 49 E6 C0 E5 E4 23 23 00 00 00 00 33 CF 03 00 EC 9F 78 FB - fails - sample2
00 00 F4 80 00 00 00 00 00 00 04 00 FB B5 3B 80 18 B4 27 23 00 00 00 00 57 CE 03 00 21 D0 4B 7C - crash - sample3
decompressed size is always 0x40000
compressed size is the size of the sample
-
- Site Admin
- Posts: 12984
- Joined: Wed Jul 30, 2014 9:32 pm
Re: QuickBMS errors [programming, scripting, quickbms.exe tool... NOT games]
Oodle has long history of compatibility problems of its own algorithms, it's enough to check the changelog:
http://www.radgametools.com/oodlehist.htm
What I mean is that data created with a version of oodle may not be compatible with other versions (even newer versions).
Quickbms 0.7.7 uses oodle 2.3.0.
Anyway quickbms simply calls OodleLZ_Decompress on the data "as is", it performs absolutely no operation on the bytes of the input data (that happens only if you specify a raw algorithm, not the default behaviour).
http://www.radgametools.com/oodlehist.htm
What I mean is that data created with a version of oodle may not be compatible with other versions (even newer versions).
Quickbms 0.7.7 uses oodle 2.3.0.
Anyway quickbms simply calls OodleLZ_Decompress on the data "as is", it performs absolutely no operation on the bytes of the input data (that happens only if you specify a raw algorithm, not the default behaviour).
-
- Posts: 388
- Joined: Thu Aug 07, 2014 10:28 pm
Re: QuickBMS errors [programming, scripting, quickbms.exe tool... NOT games]
the chunks are from the same archive.
quickbms decompressed 19gb from the file fine then failed on everything for the remaining 12gb starting at this sample here.
this is ps4 sample.
looks like it might be the 2.40 version they used.
Oodle 2.4.0 is up--New Hydra automatically selects Kraken/Mermaid/Selkie and new Mermaid+ compressor with slightly higher compression!
quickbms decompressed 19gb from the file fine then failed on everything for the remaining 12gb starting at this sample here.
this is ps4 sample.
looks like it might be the 2.40 version they used.
Oodle 2.4.0 is up--New Hydra automatically selects Kraken/Mermaid/Selkie and new Mermaid+ compressor with slightly higher compression!
-
- Site Admin
- Posts: 12984
- Joined: Wed Jul 30, 2014 9:32 pm
Re: QuickBMS errors [programming, scripting, quickbms.exe tool... NOT games]
Unfortunately 2.3.0 was the only oodle dll available on Warframe when I released quickbms 0.7.7
Currently the 2.4.1 is available but I don't know when I'm going to work on the next quickbms.
In your case it's probably more easy to write a simple tool from scratch, after all it's just one API to call... ok it's not that simple to be honest because in the past the oodle developers changed even the prototype of the main API! :O
Currently the 2.4.1 is available but I don't know when I'm going to work on the next quickbms.
In your case it's probably more easy to write a simple tool from scratch, after all it's just one API to call... ok it's not that simple to be honest because in the past the oodle developers changed even the prototype of the main API! :O
-
- Posts: 25
- Joined: Tue Dec 20, 2016 8:18 pm
Re: QuickBMS errors [programming, scripting, quickbms.exe tool... NOT games]
Just thought about something... Few times I had problems with break operator, those problems often was solvable, but sometimes they give real headaches, so I have idea about solution for this problem. Why not add labels for the cycles? And when we need to break some cycle then we could point break to the label of that cycle.
Also I think that labels for the script in general are also needed, this could help a lot in writing custom decompress functions, because disassembled code often can have lots of branches and it is not that easy to unwrap such code, there also can be some platform specific optimizations inside that code which gives even more confusion. So labels are must have in such situations.
Also I think that labels for the script in general are also needed, this could help a lot in writing custom decompress functions, because disassembled code often can have lots of branches and it is not that easy to unwrap such code, there also can be some platform specific optimizations inside that code which gives even more confusion. So labels are must have in such situations.
-
- Site Admin
- Posts: 12984
- Joined: Wed Jul 30, 2014 9:32 pm
Re: QuickBMS errors [programming, scripting, quickbms.exe tool... NOT games]
Compression and custom encryption algorithm should not implemented in bms language.
The correct way is dumping the function/dll (maybe in a MEMORY_FILE to avoid external files) and using it with CallDLL.
Labels for the cycles?
The language is meant to be simple and as close as possible to the original one.
The correct way is dumping the function/dll (maybe in a MEMORY_FILE to avoid external files) and using it with CallDLL.
Labels for the cycles?
The language is meant to be simple and as close as possible to the original one.
-
- Posts: 25
- Joined: Tue Dec 20, 2016 8:18 pm
Re: QuickBMS errors [programming, scripting, quickbms.exe tool... NOT games]
Then how to fix that very annoying bug in the other way? Sometimes break is pretty much useless in its current state, either it doesn't work as it should or gives unpredictable result, but many decompression algorithms rely on break in the cycles, there is no other solution for such cases.
-
- Site Admin
- Posts: 12984
- Joined: Wed Jul 30, 2014 9:32 pm
Re: QuickBMS errors [programming, scripting, quickbms.exe tool... NOT games]
The work-around I use when I need it (rarely to be honest) is an OK variable set to 1 by default, and set to 0 when I have to break or I set the initial value of the cycle to a value that causes its termination (for example i = 9999 if for i = 0 < 100).
Just curious, what compression algorithms are you implementing in bms language?
I bet it's graphic stuff, right?
Just curious, what compression algorithms are you implementing in bms language?
I bet it's graphic stuff, right?
-
- Posts: 25
- Joined: Tue Dec 20, 2016 8:18 pm
Re: QuickBMS errors [programming, scripting, quickbms.exe tool... NOT games]
aluigi wrote:Compression and custom encryption algorithm should not implemented in bms language.
The correct way is dumping the function/dll (maybe in a MEMORY_FILE to avoid external files) and using it with CallDLL.
Dumping function from where to where? From MIPS code to where? Or from PowerPC? Or from ARM? Games exist not only for PC, don't you understand it? And the only way is to disassemble game's native code, find decompression routine and translate it manually into human readable code. If quickbms can do so many things then it should handle the most basic functions flawlessly. Otherwise why you implemented all those functions at all?
-
- Site Admin
- Posts: 12984
- Joined: Wed Jul 30, 2014 9:32 pm
Re: QuickBMS errors [programming, scripting, quickbms.exe tool... NOT games]
"break" wasn't available in the original language.
So can't you just translate the reverse engineerd function into C code and use it (yeah "dumping" since there is no need of dll if it's simple) with calldll?
So can't you just translate the reverse engineerd function into C code and use it (yeah "dumping" since there is no need of dll if it's simple) with calldll?
-
- Site Admin
- Posts: 12984
- Joined: Wed Jul 30, 2014 9:32 pm
Re: QuickBMS errors [programming, scripting, quickbms.exe tool... NOT games]
And in any case I prefer to have a "break" that works in most of cases rather than not having it at all.