D1 Grand Prix

Extraction and unpacking of game archives and compression, encryption, obfuscation, decoding of unknown files
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

D1 Grand Prix

Post by aluigi »

Argonaut
Posts: 46
Joined: Sat Sep 27, 2014 10:24 pm

Re: D1 Grand Prix

Post by Argonaut »

aluigi wrote:http://aluigi.org/papers/bms/others/d1_grand_prix.bms


This is perfect, the data.bin provides well organised folders with common file formats (BMP/PNG) that are all uncompressed, plus HSB sound files that can be played with some tool I distantly remember..
Folder structure:

Image

However, in a matter of car models it is actually quite simple- they're all stored in the 'PACK' file out of all the obvious ones (MODEL contains player models of all of the things) and vary from 1.7MB to 1.4MB and are all .BIN files with the car titles and different variations following- eg ER34_P0(x)- about seven of each car which is accurate to the different beginner, intermediate and D1 Pro levels of the cars.

I don't know if these .bins are their final forms, so I've uploaded one of them below for extraction if possible.. Thanks


Sample file (in full):

https://www.dropbox.com/s/2w83ok5syydhk ... 1.BIN?dl=0
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: D1 Grand Prix

Post by aluigi »

An idea of script to extract these data:

Code: Select all

set NAME string ""
get BIN_SIZE asize
for OFFSET = 0 < BIN_SIZE
    get TYPE long
    get SIZE long
    get DUMMY1 short    # 0xf or 0x37
    get DUMMY2 short    # 0x1c02
    if DUMMY2 != 0x1c02
        print "ERROR"
        cleanexit
    endif
    savepos OFFSET
    if TYPE == 0x2
        getdstring NAME SIZE
    elif TYPE >= 0x100
        getdstring DUMMY SIZE
    endif
    if TYPE == 1
        log NAME OFFSET SIZE
        set NAME string ""
        math OFFSET += SIZE
        goto OFFSET
    endif
    savepos OFFSET
next
Keep in mind that this is not data to extract, that's why the results have no sense.
Argonaut
Posts: 46
Joined: Sat Sep 27, 2014 10:24 pm

Re: D1 Grand Prix

Post by Argonaut »

aluigi wrote:An idea of script to extract these data:

Code: Select all

set NAME string ""
get BIN_SIZE asize
for OFFSET = 0 < BIN_SIZE
    get TYPE long
    get SIZE long
    get DUMMY1 short    # 0xf or 0x37
    get DUMMY2 short    # 0x1c02
    if DUMMY2 != 0x1c02
        print "ERROR"
        cleanexit
    endif
    savepos OFFSET
    if TYPE == 0x2
        getdstring NAME SIZE
    elif TYPE >= 0x100
        getdstring DUMMY SIZE
    endif
    if TYPE == 1
        log NAME OFFSET SIZE
        set NAME string ""
        math OFFSET += SIZE
        goto OFFSET
    endif
    savepos OFFSET
next
Keep in mind that this is not data to extract, that's why the results have no sense.


Alright, so your suggesting that these aren't really archives with more data inside than what I need? If so, thanks for all your work and I'll try and get something sorted.. hopefully!
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: D1 Grand Prix

Post by aluigi »

I remember that they where quite chaotic, I don't even know if they are resources or what.
Maybe some of them are raw files but I don't know what types of files.
AMG
Posts: 71
Joined: Sun Aug 10, 2014 1:13 pm

Re: D1 Grand Prix

Post by AMG »

I've made a simple analysis regarding the game, it probably used RenderWare engine since I've found some .dff 3D models inside the game folders, but just few are in .dff formats (which can be easily imported with ZModeler, you should know).
So I've tried to rename the .bin packages of cars into .dff and imported them into ZModeler. Most of the meshes are there, but by importing these as .dff in ZMod some errors will appear. My guesses are that these .bin files contain not only 3D data but also textures.

PS: UV map also looks intact.

Image