Users browsing this thread: 6 Guest(s)
[TUTORIAL] Making BMS Scripts; Post and get help with your BMS scripts!
#61
Hello, really appreciate this tutorial and I thank you for it.

I am trying to get myself acquainted with QuickBMS so I started with the Pak0 file from the Quake 2 demo and although I've analysed it okay, my script seems to be off. Been trying for a while now and feel like a complete idiot because I know it's probably a stupid mistake lol. I'd appreciate any help Smile

Code:
idstring "PACK"
get BASE_OFF long
get ArchiveSize long
goto BASE_OFF
set NUM_OF_FILES 1106

for i = 1 < NUM_OF_FILES
    getdstring NAME 0x10
    get OFFSET long
    get SIZE long
    goto OFFSET
log NAME OFFSET SIZE
next i

File in question: https://mega.nz/#!MhhTiBrS!Ng_xeSoYMKLdO...6uunA559H8
Reply
Thanked by:
#62
(03-06-2016, 09:17 PM)beastedot9 Wrote: Hello, really appreciate this tutorial and I thank you for it.

I am trying to get myself acquainted with QuickBMS so I started with the Pak0 file from the Quake 2 demo and although I've analysed it okay, my script seems to be off. Been trying for a while now and feel like a complete idiot because I know it's probably a stupid mistake lol. I'd appreciate any help Smile

Code:
idstring "PACK"
get BASE_OFF long
get ArchiveSize long
goto BASE_OFF
set NUM_OF_FILES 1106

for i = 1 < NUM_OF_FILES
    getdstring NAME 0x10
    get OFFSET long
    get SIZE long
    goto OFFSET
log NAME OFFSET SIZE
next i

File in question: https://mega.nz/#!MhhTiBrS!Ng_xeSoYMKLdO...6uunA559H8

Oh, I didn't see this, I'll take a quick look at it Smile
EDIT:
Code:
idstring "PACK"
get OFFNAMETBL long
get FCOUNT long
goto OFFNAMETBL
for i = 0 < FCOUNT
    getdstring NAME 0x38
    get OFFSET long
    get SIZE long
    log NAME OFFSET SIZE
next i

This should work; This was a pretty simple format, however I don't think it gets the last file so I'm sorry about that :/
Reply
Thanked by: beastedot9
#63
(03-09-2016, 07:03 PM)ThatTrueStruggle Wrote:
(03-06-2016, 09:17 PM)beastedot9 Wrote: Hello, really appreciate this tutorial and I thank you for it.

I am trying to get myself acquainted with QuickBMS so I started with the Pak0 file from the Quake 2 demo and although I've analysed it okay, my script seems to be off. Been trying for a while now and feel like a complete idiot because I know it's probably a stupid mistake lol.  I'd appreciate any help Smile

Code:
idstring "PACK"
get BASE_OFF long
get ArchiveSize long
goto BASE_OFF
set NUM_OF_FILES 1106

for i = 1 < NUM_OF_FILES
    getdstring NAME 0x10
    get OFFSET long
    get SIZE long
    goto OFFSET
log NAME OFFSET SIZE
next i

File in question: https://mega.nz/#!MhhTiBrS!Ng_xeSoYMKLdO...6uunA559H8

Oh, I didn't see this, I'll take a quick look at it Smile
EDIT:
Code:
idstring "PACK"
get OFFNAMETBL long
get FCOUNT long
goto OFFNAMETBL
for i = 0 < FCOUNT
    getdstring NAME 0x38
    get OFFSET long
    get SIZE long
    log NAME OFFSET SIZE
next i

This should work; This was a pretty simple format, however I don't think it gets the last file so I'm sorry about that :/

I appreciate you still taking the time to look into it, thank you Smile

I realised that I wasn't calculating the file count correctly and the length of NAME was too short.

Once again, thank you, appreciate it.
Reply
Thanked by:
#64
(03-06-2016, 10:47 AM)Ecelon Wrote: I'm now trying to extract the files from Infinite Crisis' .rp archives. Using the tutorial, I've determined that the archives are "10P"
. I've guessed that the Endian is little, but that may be wrong. This is the code I have so far:

endian little

idstring "10P"
get archiveSize long
get fileCount long
get null long
for i = 0 < fileCount
   get pointer long
   get length long
   getdstring name 0x20
   log name pointer length
next i

The code extracts the first bunch of blank data as .dat files, then continuously requests file renaming. Any ideas on what can be done. I've uploaded 3 .rp files to my onedrive to use as a reference. If more are needed, I can upload them Smile

https://onedrive.live.com/redir?resid=28...older%2crp

Code:
idstring "10PR"
get ALWAYSONE long
get SIZE long
get UNK_FCOUNT long
get NAME basename
string NAME += ".model"
log NAME 0x400 SIZE

It seems like those RP files contain models. However I only saw one model that could be extracted from it. Nothing looks too interesting other than that.
Reply
Thanked by:
#65
Hello again, sorry to be a bother, I've been looking at these files from WWE 2K16:

https://mega.nz/#!U95TwDJa!xXdR0iMsbD5Nu...Cs1KC59CxQ

What's there is a regular pac file and then its a zlib compressed PACH but it doesn't seem like regular zlib(so basically an archive within an archive). I was wondering if anyone had any clue as to how begin writing a script for this and if its even possible?

The data that I do know:

- Headers of the .pac files are always either "EPK8" or "EPAC".
- Next value long is always null
- Then another long value which seems to be the size of the archive (or possibly offset?)
- The names of the archvies always start at offset x00000800 and the data itself always starts at offset x00004000.

Apart from that, I have no idea how to open the zlib compressed ones. Any help is appreciated Smile
Reply
Thanked by:
#66
May I request a really simple script? Basically, by trimming off the header, this file is just 00000000000000filehere00000000000000filehere000000000000000 with a variable number of zeros but at least 15 I would say. The 0s are actual text for some strange reason with the bytes being 30s. Would this be simple to make? The file names are in plaintext and in order so I will manually add them.
Reply
Thanked by:
#67
(03-14-2016, 01:34 PM)Telespentry Wrote: May I request a really simple script? Basically, by trimming off the header, this file is just 00000000000000filehere00000000000000filehere000000000000000 with a variable number of zeros but at least 15 I would say. The 0s are actual text for some strange reason with the bytes being 30s. Would this be simple to make? The file names are in plaintext and in order so I will manually add them.

If you could, could you please add a sample?

(03-13-2016, 06:25 PM)beastedot9 Wrote: Hello again, sorry to be a bother, I've been looking at these files from WWE 2K16:

https://mega.nz/#!U95TwDJa!xXdR0iMsbD5Nu...Cs1KC59CxQ

What's there is a regular pac file and then its a zlib compressed PACH but it doesn't seem like regular zlib(so basically an archive within an archive). I was wondering if anyone had any clue as to how begin writing a script for this and if its even possible?

The data that I do know:

- Headers of the .pac files are always either "EPK8" or "EPAC".
- Next value long is always null
- Then another long value which seems to be the size of the archive (or possibly offset?)
- The names of the archvies always start at offset x00000800 and the data itself always starts at offset x00004000.

Apart from that, I have no idea how to open the zlib compressed ones. Any help is appreciated Smile
I can take a look real quick Cute

EDIT: Here you go!
Code:
comtype zlib
getdstring IDString 0x4
if IDString == "PACH" || IDString == "EPK8"
    findloc PACH string "PACH" 0 ""
    goto PACH
    idstring "PACH"
    get FCOUNT long
    for i = 0 < FCOUNT
        findloc OFFSET string "ZLIB0" 0 ""
        get NAME basename
        string NAME += i
        string NAME + ".dec"
        goto OFFSET
        idstring "ZLIB0"
        getdstring NONE 0x3
        get SIZE long
        get ZSIZE long
        savepos OFFSET
        clog NAME OFFSET SIZE ZSIZE
        math OFFSET + SIZE
        goto OFFSET
    next i
else
    cleanexit
endif
I see some very interesting things in the decompressed files; textures and models ;3 Have fun.
Reply
Thanked by: beastedot9
#68
(03-14-2016, 02:07 PM)ThatTrueStruggle Wrote:
(03-14-2016, 01:34 PM)Telespentry Wrote: May I request a really simple script? Basically, by trimming off the header, this file is just 00000000000000filehere00000000000000filehere000000000000000 with a variable number of zeros but at least 15 I would say. The 0s are actual text for some strange reason with the bytes being 30s. Would this be simple to make? The file names are in plaintext and in order so I will manually add them.

If you could, could you please add a sample?

(03-13-2016, 06:25 PM)beastedot9 Wrote: Hello again, sorry to be a bother, I've been looking at these files from WWE 2K16:

https://mega.nz/#!U95TwDJa!xXdR0iMsbD5Nu...Cs1KC59CxQ

What's there is a regular pac file and then its a zlib compressed PACH but it doesn't seem like regular zlib(so basically an archive within an archive). I was wondering if anyone had any clue as to how begin writing a script for this and if its even possible?

The data that I do know:

- Headers of the .pac files are always either "EPK8" or "EPAC".
- Next value long is always null
- Then another long value which seems to be the size of the archive (or possibly offset?)
- The names of the archvies always start at offset x00000800 and the data itself always starts at offset x00004000.

Apart from that, I have no idea how to open the zlib compressed ones. Any help is appreciated Smile
I can take a look real quick Cute

EDIT: Here you go!
Code:
comtype zlib
getdstring IDString 0x4
if IDString == "PACH" || IDString == "EPK8"
    findloc PACH string "PACH" 0 ""
    goto PACH
    idstring "PACH"
    get FCOUNT long
    for i = 0 < FCOUNT
        findloc OFFSET string "ZLIB0" 0 ""
        get NAME basename
        string NAME += i
        string NAME + ".dec"
        goto OFFSET
        idstring "ZLIB0"
        getdstring NONE 0x3
        get SIZE long
        get ZSIZE long
        savepos OFFSET
        clog NAME OFFSET SIZE ZSIZE
        math OFFSET + SIZE
        goto OFFSET
    next i
else
    cleanexit
endif
I see some very interesting things in the decompressed files; textures and models ;3 Have fun.

Thank you for this, will be really helpful! I really appreciate it Smile
Reply
Thanked by:
#69
I feel stupid, because this absolutely confused me in every way. I don't understand how I can tell if something looks like a header or offset for all files, I can't tell what looks like a file size, I can't tell what looks like anything. It's all just a bunch of randomness to me.
Some guy who just lurks this place nowadays.
Reply
Thanked by:
#70
Hello, I am new to extracting .bnk files, could anyone assist me in extracting the voice files from this decrypted bayonetta 2? I have all the .bnk files but using quickbms i keep getting errors when the conversion is trying to go through. Or does anyone here already have the bayonetta2 files converted that they can share? I am losing my mind xD
Reply
Thanked by:
#71
Thought I'd begin to put the BMS Scripts I've written here, as I'm learning how to do this:
Reply
Thanked by:
#72
Could you modify the cgfx dumper so that it will continue in a file if an error is encountered? Thanks.
Reply
Thanked by:
#73
I'm absolutely confused and don't understand how to make the scritpt.

I want to make an spanish translation from onimusha:warlords PS2 game, and i need to unpack some files. The game comes in english and japaneese so i found suspect files starting with E_ so i think they are the files i need to translate. The files have .ldt and .ipu extension but some ldt files seems alone and other files have both .ipu and .ldt files.

Please can you help me with an script to unpack the files? and whould be possible to repack it again?

Thank you very much. I really appreciate your work.

Sample files here: http://www.mediafire.com/download/6xky9z...sample.rar
Reply
Thanked by:
#74
hello everyone would love me to help me Unsure

[Image: 2e3bvyr.png]

It is how to get the CgFX erasing values Headboard Unsure

but I love a Scripts to compress - decompress Big Grin Big Grin Big Grin Embarassed
Reply
Thanked by:
#75
(06-24-2016, 12:48 AM)zelda200941 Wrote: hello everyone would love me to help me Unsure

It is how to get the CgFX erasing values Headboard Unsure

but I love a Scripts to compress - decompress Big Grin Big Grin Big Grin Embarassed

Just use TGE's CGFX dumping script in the 3rd post mate
Reply
Thanked by: zelda200941


Forum Jump: