ZenHAX

Free Game Research Forum | Official QuickBMS support | twitter @zenhax | SSL HTTPS://zenhax.com
It is currently Sat Feb 16, 2019 5:08 pm

All times are UTC




Post new topic  Reply to topic  [ 2 posts ] 
Author Message
PostPosted: Sat Feb 09, 2019 4:37 pm 

Joined: Thu Jul 30, 2015 5:39 pm
Posts: 24
Attachment:
File comment: filecutter sample 1/2
1data.bin [2 MiB]
Downloaded 8 times

Attachment:
File comment: filecutter sample 2/2
2data.bin [2 MiB]
Downloaded 9 times


Sorry for yet another gimmescript post. And yet again, I'm trying to get models/textures/animations.
The disc structure is as follows (Note CVS dirs, homebutton layers and other garbage files are omitted):

    movie [DIR]
    stream [DIR]
    data.bin
    gbw_sound.brsar
    opening.bnr

As you all can see, it's pretty descriptive and strightforward.
I grabt data.bin into HxD and it's FBND/0 encrypted.
Managed to perform extraction with Sonic2006.bms http://aluigi.zenhax.com/bms/sonic2006.bms
Dump final size it's 370MB vs. 642MB original compressed file, though (no duplicates or such).
Correct me if I'm wrong but that's no possible.

The resulting extracted files are all common Wii formats, with avaliable tools for viewing/edition.
All of the dump files consist in 2D images such as textures, static & animated GUIs (TPL,brlan,brlyt formats).

I'm sure this BIN contains also the meshes for players, bass fish, areas, etc. and their respective
animations and vertex morphs. It also sound reasonable to me, size concerning, that these are the bulk-assets
being ignored by the avaliable script.
Also, I'm 99% sure this data is also in brres common format.

May I ask for script "fix"? (Thanks a lot for the existing one, really appreciate it)
I'm trying experimenting getdstring DUMMY & math XLIMIT different values without success.

Getting this (mainly bass animated skinned models) would be a dream(cast) made true which dates since year 2000.
My grattitude to you all in advance.


Top
   
PostPosted: Wed Feb 13, 2019 12:51 am 

Joined: Thu Jul 30, 2015 5:39 pm
Posts: 24
Here's the script I'm using. My suspects are it's finishing before ends scanning the full file, leaving .brres or maybe .arc out of the picture because it doesn't reach the sectors storing those.
I commented the parts which had me experimenting a little, without any success. It's possible making the pc to explode with this? :lol:
Code:
# Sonic 2006 (script 0.2.1)
# script for QuickBMS http://quickbms.aluigi.org

endian big
math VERSION = 1
getdstring SIGN 4
if SIGN == "FBND"
math VERSION = 2
endif
goto 0
for
findloc BASE_OFF binary "\x55\xaa\x38\x2d"
    goto BASE_OFF
    idstring "\x55\xaa\x38\x2d"
    get OFFSET long
    get INFO_SIZE long
    get DATA_OFF long
    getdstring DUMMY 0x10
    math OFFSET + BASE_OFF
    goto OFFSET
    math NAME_BASE = 0
    set PATH string ""
    set NAME string ""
//HERE (?)    math XLIMIT = 0x7fffffff
    putarray 0 0 0
    callfunction EXTRACT
next

startfunction EXTRACT
    string PATH + NAME
    string PATH + /
//HERE (?)    math LIMIT = XLIMIT
    for
        getarray i 0 0
//HERE (?)        if i >= LIMIT
            break
        endif
        math i += 1
        putarray 0 0 i

        get FOLDER short
        if FOLDER & 0x100
//HERE (?)            math VERSION = 2    # Chibi-Robo but I'm just guessing, I don't have Sonic2006 to check compatibility
        endif
        get NAME_OFF short
        if FOLDER == 0
            get OFFSET long
            if VERSION == 1
                get ZSIZE long
            endif
            get SIZE long
            math OFFSET + BASE_OFF
        else
            get ID long
            get XLIMIT long
            if VERSION == 1
                get DUMMY long
            endif
        endif

        if NAME_BASE == 0
            math NAME_BASE = XLIMIT
            if VERSION == 1
                math NAME_BASE * 0x10
            else
                math NAME_BASE * 0xc
            endif
            math INFO_SIZE - NAME_BASE
            math NAME_BASE + OFFSET
            log MEMORY_FILE NAME_BASE INFO_SIZE
            math LIMIT = XLIMIT
        endif
        goto NAME_OFF MEMORY_FILE
        get NAME string MEMORY_FILE

        if FOLDER == 0
            set FNAME string PATH
            string FNAME + NAME
            if VERSION == 1
                clog FNAME OFFSET ZSIZE SIZE
            else
                log FNAME OFFSET SIZE
            endif
        else
            callfunction EXTRACT
        endif
    next
endfunction

The commentary about Chibi-Robo was already there, so this script it's towards that game and not Sonic 2006. Am I wrong? Perhaps script database description should be updated? Just suggesting.
Thanks a lot to all the people giving this request a shot.


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 2 posts ] 

All times are UTC


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Powered by phpBB® Forum Software © phpBB Limited