OFPEC Forum

Editors Depot - Mission Editing and Scripting => OFP - Editing/Scripting General => Topic started by: Mikero on 15 Apr 2005, 13:58:05

Title: DePbo dll
Post by: Mikero on 15 Apr 2005, 13:58:05
can anyone point me to a huffman / lzw decoder that I can plug into visual basic please?

What i'm trying to do is peek at mission.sqm and a few others inside a pbo without the Full Monty, eg, extracting the lot (especially using VB commands !!!!)

I understand there is now an STL template using C++, and probably even .NET, but am not happy going down that large tunnel for the simple tools i want to create for the authors of ofp missions.

thanx in advance.
Title: Re:DePbo dll
Post by: Planck on 15 Apr 2005, 19:27:38
What you need is WinPBO mikero.

It allows you to view the contents of a PBO without extracting the whole lot.

I don't have a link for it, but try ofp.cz, they are bound to have it.  It hasn't been out too long either...maybe 2 or 3 months.


Planck
Title: Re:DePbo dll
Post by: Mikero on 15 Apr 2005, 23:51:27
thank u for that

I have winbo, and unless i missed something vital it isn't what I need, I can't integrate it into another program. It is a gui in it's own right. At moment, I am using the command prompt version that comes with that package to force an extraction (which i then examine and delete in  temp folder)

Hardly a satisfactory way of doing things <grin>

If I've missed something here, sure would appreciate you correcting me.


Title: Re:DePbo dll
Post by: Planck on 16 Apr 2005, 00:09:37
With WinPBO you don't have to extract any files....like sqs files or sqm files.

You can display them without extracting anything at all.

You can view sqm, sqs, txt, jpg without extracting them.
You can also save copies of particular files to another location if you wish.

Or copy/past portions of a file to another document, without extracting anything.

But, this is maybe not exactly what you were wanting.



Planck
Title: Re:DePbo dll
Post by: DBR_ONIX on 17 Apr 2005, 17:00:52
PBO Tool came with source code.. It was VB code I think..
T'was ages ago, and I only started learning VB < week ago :)
- Ben
Title: Re:DePbo dll
Post by: Mikero on 19 Apr 2005, 03:49:56
PBO Tool came with source code.. It was VB code I think..
T'was ages ago, and I only started learning VB < week ago :)
- Ben

Rats! It's STL template C++ stuff which is way out of my league. Damn.

Although I'm better than average with C++ I really just prefer to keep using the quick and dirty Forms ability of Visual Basic.

Thank you for the reply, regardless.

@Plank.

Nope, sorry, not what i need. It's not me, that needs to cut n paste or view the contents via WinPbo, it's the program I'm writing that needs to do that bit for me. Thank you anyway.


Title: Re:DePbo dll
Post by: Jedie on 14 May 2005, 19:36:07
Hey! I'm writing a Tool in Python ( see http://mapfact.gamigo.de/forum/viewtopic.php?p=55684#55684 ).
I need a "unpack"-tool, too. Actually I need only access to the config files like "Mission.sqm".
I have seen the "Pbo file format description by OFPInternals" but I cannot use it directly (I am still stupid).
Is there anywhere more Information???
Title: Re:DePbo dll
Post by: Sefe on 14 May 2005, 20:01:26
I used to write a PBO decompressor (as well as a compressor) in Delphi (with the core written in Assembler). Unfortunately the code got lost in one of my numerous Windows updates in the meantime. Which is a shame since it surpassed all other decompressors/compressors in terms of speed (and some of them also in terms of stability).
However, the algorithm itself is quite simple and I'm pretty sure it's documented in the editors depot. It should not be too difficult to write an implementation in VB. Unfortunately my real-life commitments do not allow me to work with the whole pbo issue agiain, but you can contact me anyway if you need assistance with implementing the functionality.
Title: Re:DePbo dll
Post by: bdfy1 on 14 May 2005, 21:45:48
There[re lots of pbo packers/depacker IMHO DePbo ( Pbo Decryptor 1.5 ) is still the best one ( winPbo\Fastpbo are great but they do not always work properly ( with official pbo's 1985.pbo for example ).
But unfortunately , there's no good Total Commander plugin :( The existing one works awfully...
It would be great if somebody make TC plugin for work with pbo like with all other archives.
Title: Re:DePbo dll
Post by: Mikero on 18 May 2005, 15:19:48
@sefe

thanks for that. The documentation does exist at ofpec for the content of a pbo, it's headers, how it's structured, but there's no documentation for the compression method. Eg you can discover where each file offset begins and it's size (length) but there's no information how to start decompressing that content. (be it huffman, lzw or whatever it might be).

@ALL

I uploaded source code for JAVA perhaps a week ago into the ED. Unfortunately it's for compressing, not de-compressing, and the best I could do with it is mangle it into C++ which is what I don't want to do.

@bdfy1

I don't know what Total Commander is, but if I crack this pluggable DLL, ie make it a com object, I'll get back to you.

Title: Re:DePbo dll
Post by: bdfy1 on 18 May 2005, 20:17:34
Quote
I don't know what Total Commander is
Really!? :o  What do you use instead ? Far? It's file managing shell.
Title: Re:DePbo dll
Post by: Mikero on 19 May 2005, 00:48:55
I feel like one of us is a Martian (probably me). I have no idea what you're on about. Far?

I'm simply writing visual basic tools under Windows OS that are hopefully useful to the OFP community.

I prefer in this instance to use VB because of it's very quick 'n dirty forms creation ability.The simple gui tools I'm doing don't justify the C++ (visual studio 6/7 ) overhead of my sweat and tears.

I have uploaded a very simple tool already that sniffs at missions and campaigns to check which addons, if any, are used, and if they're 'official' or otherwise. Now, I want to extend that specific application to read the content of a pbo file rather than, use winpbo console mode to extract to temp.

If all goes well I will later apply a small data base of references to some of the well known addons, and hopefully extend that to anything with an ofpec TAG_

SO, what I'm after at this moment is a plugin, a dll, a com object, an active x component, that I can use to decompress pbo's and apply that 'thing' to many other small tools, not just the above. It would appear from comments on other forums, other sites, that many of use are looking for same thing. A stand alone pbo extractor that is driven by program, not human.


Title: Re:DePbo dll
Post by: bdfy1 on 19 May 2005, 01:03:51
A liitle bit info
http://www.google.com/search?hl=en&q=Total+Commander&btnG=Google+Search
Just try it ;) this is very usefull program , I really can't understand how people can go without it...

Anyway, good look in your work;)  
Title: Re:DePbo dll
Post by: Mikero on 24 May 2005, 01:59:36
BINGO!

found it.

well, at least, I found the C source for decompressing.

Am implementing it and testing as a C++ library addon and if anyone needs this source code early before I push it into a completed submission just pm me.

It's not a plug and play tool just yet folks, but for any of you who need to grab something right now....
Title: Re:DePbo dll
Post by: bdfy1 on 24 May 2005, 13:50:33
Great! I will be wauting for your work ( I want TC plugin :) )
PS: Have you tried Total Comander ?
Title: Re:DePbo dll
Post by: Mikero on 28 May 2005, 00:50:08
>Iwant a tc plugin

it's ready today and i'll be uploading to pending in editors submissions.

it has a c, c++ and Visual Basic API, and I doubt a plugin for a desktop (such as TC) is applicable to a dll so you'll have to write your own wrapper

It's not an application as such, its the raw extractor wriiten in C++ for speed and which can be attached to any gui program like any other library.

I looked at TC but frankly, I keep as far away from the Window$ os as possible, preferring KDE desktop in linux.

Title: Re:DePbo dll
Post by: bdfy1 on 28 May 2005, 09:40:18
Frankly speaking, I'm not a programmer at all and I have no idea how to write plugin using your api :( I'll post it at russian forum - may be someone can do it...
I hope you realize suport of commpressed pbo's ?
...
Source of an old TC plugin is available here
http://clubtotal.free.fr/WCX_Packer_Plugins/WCX-game_Operation%20Flashpoint-PBO_1.0%2BSRC.zip
Title: Re:DePbo dll
Post by: Mikero on 31 May 2005, 01:42:49
YAY!

I did it!!!

 :o :o :o

DePbo.dll is now avaialble at

http://www.ofpec.com/editors/list.php?show=pending

or http://andrew.nf/ofp/tools/

It understands all about compressed folders in both campaigns and missions and ALSO decrypts the so-called 'encrypted' mission sqm's and fps files.

It's a beauty, I'm really pleased with it.

You can attach it to any C++ or Visual Basic program you make.

source code supplied on request.
Title: Re:DePbo dll
Post by: Jedie on 31 May 2005, 06:03:16
Very cool  ;D
But, why don't you pack the sourcen directly with the DePbo.rar?
Title: Re:DePbo dll
Post by: DBR_ONIX on 31 May 2005, 12:11:15
Trying to use it with VB. I made new project, saved it to folder, added the module.
In the main form, made a button, then put in the code :
Code: [Select]
cd.Filter = "*.pbo"
cd.ShowOpen
PBOName = cd.FileName
thePbo = DePboOpen(tmp)

And it comes up with an error "DePBO, file not found" or similar..

If you have the VB source of something you've made with it, could you email me it, might help me understand it :)

Good work! Even if I can't use it currently :P
- Ben
Title: Re:DePbo dll
Post by: Mikero on 31 May 2005, 16:05:50
@DBR

place the dll in the windows/system folder
this should fix the problem.

your email address fails, so the source is now located  here (http://andrew.nf/ofp/tools)


@jedie

because I first want to ensure that it can be released as a slamn dunk damn easy thing to apply and use _without_ people having to resort to huge jump over left knee toeholds. Either, the dll is usable 'as is' or it isn't. That's what i want to find out.

2nd, assuming there's problems, sometimes referred to as 'undocumented features' by the very kind, I want to be able to fix them before there are 18 million different versions spread all over the internet.
Title: Re:DePbo dll
Post by: DBR_ONIX on 31 May 2005, 17:00:05
Ahh, that's the problem, thanks
- Ben
Title: Re:DePbo dll
Post by: Mikero on 01 Jun 2005, 03:03:07
@ONIX

let me know how you get on. I'm very curious to know if I'm right that this dll will be exceptionally usable.
Title: Re:DePbo dll
Post by: MachoMan on 01 Jun 2005, 15:42:36
Hmm I don't wanna spoil the fun, but you do know it's not good practice to place any dll in your windows folder, do you? :-\
Title: Re:DePbo dll
Post by: Mikero on 02 Jun 2005, 01:24:32
As a principle it's a bad idea (tm), exactly as putting addons in the 'official' ofp folders. But, it's also 'accepted practice' when the dll concerned is not part of a specific application. Eg, there isn't a mywhatsit.exe in a mywhatsit\ folder for the dll to be placed in. with a path=mywhatsit statement to go find it.

Don't know if you've delved into visual basic, but for vb to find a dll anywhere else than the listed default folders it searches is an excercise in futility.

all of which to say, you are right, but this was and is too convenient.


Title: Re:DePbo dll
Post by: DBR_ONIX on 04 Jun 2005, 01:22:35
dllPath = App.Path & "depbo.dll"
..no?
- Ben
Title: Re:DePbo dll
Post by: Mikero on 04 Jun 2005, 17:10:04
>dllPath=

that and const cannot be used on declare statements (unless I stopped trying too soon)

can u let me know if you had any issues with required system  ocx files? I didn't supply any.