Page 1 of 1

BLF Splitter and Merger

Posted: Sun Jul 06, 2008 8:57 am
by miinaturvat
Ever get bored of having to extract a usermap from a CON file to edit it with sandbox, then have to put it back in the CON file again?

Not any more!

With the BLF splitter and merger, extracting and injecting BLFs is made easy!

Some examples of BLFs are maps, gametypes and film clips inside Halo 3 CON files.

BLF splitter and merger is attached to this post.

Posted: Sun Jul 06, 2008 9:16 am
by mxrider108
Cool! Nice work.

Posted: Sun Jul 06, 2008 9:25 am
by Eaton
Very useful! :D

Posted: Sun Jul 06, 2008 10:37 am
by grimdoomer
Not only does this take forever to extract a small file, it doesent even extract files larger then 696320 bytes properly!

Posted: Sun Jul 13, 2008 2:26 am
by miinaturvat
Not only does this take forever to extract a small file, it doesent even extract files larger then 696320 bytes properly!
I tend to use it solely for usermaps and gametypes...

And it's not my fault your computer is slow! Buy some more RAM :D

Posted: Sun Jul 13, 2008 3:46 am
by Patrickssj6
miinaturvat wrote:
Not only does this take forever to extract a small file, it doesent even extract files larger then 696320 bytes properly!
And it's not my fault your computer is slow! Buy some more RAM :D
It has nothing to do with the RAM probably...I didn't take a look at the application and of course neither of the source code but I'm pretty sure you used a loop inefficient.

Loops have more or less a fixed cycling time, which can be speed up immensely if you copy the code inside the loop multiple times.

Code: Select all

for (int c;c<=Size;c++)
{
Br.BaseStream.Location = c
Br.Read()
}
(I know the code is incomplete)
This would take forever...this though would already be five times faster.

Code: Select all

for (int c;c<=Size;c++)
{
Br.BaseStream.Location = c
Br.Read()
c+=1
Br.BaseStream.Location = c
Br.Read()
c+=1
Br.BaseStream.Location = c
Br.Read()
c+=1
Br.BaseStream.Location = c
Br.Read()
c+=1
Br.BaseStream.Location = c
Br.Read()
}
Ugly coding...but you get the picture.

I take everything back if this is not the case in your application.

Posted: Mon Jul 14, 2008 7:34 am
by miinaturvat
Ah. I know what the problem is...

I wrote this in VB for some stupid reason :D

VB is crap. I should've done it in C++

Posted: Mon Jul 14, 2008 8:02 am
by LuxuriousMeat
miinaturvat wrote:Ah. I know what the problem is...

I wrote this in VB for some stupid reason :D

VB is crap. I should've done it in C++
That has nothing to do with it. If you plan on using C++.NET it would be no faster, as all .NET languages are all compiled into the IL and use the same CLR.

Posted: Mon Jul 14, 2008 11:51 am
by grimdoomer
Patrickssj6 wrote:.........
Or you could goto the clustor and read X (being the filesize) amount of bytes like any sane person :roll:

Posted: Mon Jul 14, 2008 12:02 pm
by Anthony
grimdoomer wrote:
Patrickssj6 wrote:.........
Or you could goto the clustor and read X (being the filesize) amount of bytes like any sane person :roll:
stupid*

anyone that knows a thing or two about the STFS file system would know thats not how they work... :roll:

Posted: Mon Jul 14, 2008 12:06 pm
by grimdoomer
Anthony wrote:
grimdoomer wrote:
Patrickssj6 wrote:.........
Or you could goto the clustor and read X (being the filesize) amount of bytes like any sane person :roll:
stupid*

anyone that knows a thing or two about the STFS file system would know thats not how they work... :roll:
Yea well he did't take the hash tables into consideration nor does he care so it doesn't matter now.

Posted: Tue Jul 15, 2008 2:51 am
by Patrickssj6
grimdoomer wrote: Yea well he did't take the hash tables into consideration
I must have been so stupid to not include full source code to proof my point.
You just wanted to find something to bash on.
miinaturvat wrote:Ah. I know what the problem is...

I wrote this in VB for some stupid reason :D

VB is crap. I should've done it in C++
Like LuxuriousMeat said, if you mean C++ compiled inside the .NET environment, all languages in that particular environment get compiled into an Intermediate Language called IL.

There are just some fine differences between the compilation of the individual languages into IL which, in this case, don't affect the performance (almost) at all.

Posted: Tue Jul 15, 2008 7:03 am
by grimdoomer
If you don't take the hash tables into consideration you will never be able yo extract or inject a file larger then 696320 bytes.

Posted: Tue Jul 15, 2008 3:06 pm
by Supermodder911
Grimdoomer don't just ignore Anthony proving you wrong. Learn off what he's telling you.

Posted: Tue Jul 22, 2008 12:19 pm
by miinaturvat
What is everyone argueing about?

I made a program to extract forge variants and screenshots. It works. End of :)

So what if I didn't make it excellent! I don't really care if it doesen't work for files bigger than 696320 bytes; If you can find a BLF bigger than that, then more power to you :D