Page 1 of 2

[request] convert GRIN Engine .diesel models

Posted: Fri Sep 17, 2010 6:09 am
by Tosyk
[UPDATED]
2011.01.15 - re-uploaded all samples

This engine have several very interesting games, but model format are still not knowing.

Interesting game:

Bionic Commando
Image Image
Image Image

sample files
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Terminator Salvation
Image Image
Image Image

sample files
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Wanted: Weapons of Fate
Image Image
Image Image

sample files
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Lead and Gold: Gangs of the Wild West
Image Image
Image Image

sample files
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Actually i opened .diesel files in hex editor and find something interesting stuff, such as names of joints, names of materials and other.

p.s.: i hope somebody can help me to convert models to something like dae/fbx/smd
p.p.s.: if i find other games on GRIN Engine i will post them here

Re: [request] convert GRIN Engine .diesel models

Posted: Mon Oct 18, 2010 1:06 pm
by SLIFallen
I've been able to capture Wanted assets with 3DRipper in game, so it's better than nothing but it would be nice to extract/convert the models individually (and not have to correct the D.O.F. angles, which admittedly are so slight it's almost non-existent, but I digress...) :wink:

These other GRIN games would be cool to look at as well....

EDIT:

So, a programmer I AM NOT. But I am just starting the quickbms tuts and am looking at the wanted .bundle files with Hex Workshop and as stated above I am seeing some filenames (the stream.bundle looks to be all the sounds) so I assume the quick.bundle are the models and textures and stuff. (at leat the ascii part shows filenames! so now I just have to learn to decipher the hex and then try to follow the scripting tuts but this might be a good start....

EDIT 2:

AlphaTwentyThree's "generic" wav scanner script works beautifully on the stream.bundle file. Extracts all the wav sound files!

Here:
viewtopic.php?f=13&t=4450

Thanks Alpha!! :D

Now on to the textures and models (the hard one!)

Re: [request] convert GRIN Engine .diesel models

Posted: Sun Dec 19, 2010 7:17 pm
by SLIFallen
Tosyk,

The sample files link (for Wanted in particular) are no longer valid.

I am ASSUMING you figured out how to uncompress the quick.bundle (2gb) file? in order to provide samples? (This file is what contains the models I believe)

As I said, 3D ripper does work well with this game but it would be nice tho be able to get "proper" models directly.

BTW off topic, thank you so much for the nice tutorial on your blog for Max Payne 2! Just picked it up on digital download (microsoft live games I think) was on sale for 99 cents. lol And your tutorial/tools works great! 8D

EDIT: I got the bundle archive uncompressed. Watto's Game extractor does the job!

Now, as you said the .diesel (model) files themselves....

Re: [request] convert GRIN Engine .diesel models

Posted: Fri Jan 14, 2011 9:39 am
by omfgpota
@slifallen,

what game have you've been successful with? i'm assuming that you've only tried it with "wanted" anyway,
have you tried 3dripper with bionic commando? i have tried every version of 3dripper at my disposal, nothing seems to work on bionic commando for me, btw i'm on win 7 64 ultimate, thanks!

Re: [request] convert GRIN Engine .diesel models

Posted: Fri Jan 14, 2011 1:04 pm
by Tosyk
SLIFallen
I'm used this tool
thanks for watching my blog :]

omfgpota
i have same system as yours, and 3dripper doesn't work with those games for me too

Re: [request] convert GRIN Engine .diesel models

Posted: Fri Jan 14, 2011 7:24 pm
by SLIFallen
omfgpota wrote:@slifallen,

what game have you've been successful with? i'm assuming that you've only tried it with "wanted" anyway,
have you tried 3dripper with bionic commando? i have tried every version of 3dripper at my disposal, nothing seems to work on bionic commando for me, btw i'm on win 7 64 ultimate, thanks!
I dont have Bionic Commando so I cant tell you if it works or not. I've only done it with Wanted. What I CAN tell you is this: I maintain a WinXP 32bit box *SOLELY* for 3DRipper use. It's really unfortunate that there is no DX10/64bit support for this app (I've openly offered Hax money for this, but oh well..) So I just have to install games twice (once to play on my main Vista64 bit system, and once on the XP box for 3Dripper) if I want to try to use 3dripper with it.

@ Tosyk:

I'm a bit confused on your comment (about that link to the GRAW bundle extractor) I already have been sucessful in extracting the .bundle files from Wanted using Watto's Game Extractor. I was just hoping to be able to do something with the .diesel model files within there to get them into a format a 3d app can use.

Re: [request] convert GRIN Engine .diesel models

Posted: Sat Jan 15, 2011 4:28 am
by Tosyk
SLIFallen wrote:I'm a bit confused on your comment (about that link to the GRAW bundle extractor) I already have been sucessful in extracting the .bundle files from Wanted using Watto's Game Extractor. I was just hoping to be able to do something with the .diesel model files within there to get them into a format a 3d app can use.
i'm misunderstanding with this, sorry
SLIFallen wrote:I am ASSUMING you figured out how to uncompress the quick.bundle (2gb) file?
I don't like much watto extractor, for me it's work to strange..
and, for now we can't nothing to do with *.diesel models.

btw, i will uploading all files presented as a samples above today.

ADD:
Re-uploaded all samples.

Re: [request] convert GRIN Engine .diesel models

Posted: Sat Sep 17, 2011 2:09 am
by luxox18
than later! LOL!!


please check this link from my facepunch thread. :D

http://www.facepunch.com/threads/1123609 (bionic commando)

Re: [request] convert GRIN Engine .diesel models

Posted: Mon Sep 19, 2011 3:12 pm
by SLIFallen
luxox18 wrote:than later! LOL!!


please check this link from my facepunch thread. :D

http://www.facepunch.com/threads/1123609 (bionic commando)
Nice! so where is the tool or the procedure that was used to extract/convert these models? (so we can attempt to use/modify for the various diesel engine games)

Thanks for sharing!

Re: [request] convert GRIN Engine .diesel models

Posted: Mon Sep 19, 2011 9:49 pm
by luxox18
SLIFallen wrote:
luxox18 wrote:than later! LOL!!


please check this link from my facepunch thread. :D

http://www.facepunch.com/threads/1123609 (bionic commando)
Nice! so where is the tool or the procedure that was used to extract/convert these models? (so we can attempt to use/modify for the various diesel engine games)

Thanks for sharing!

I use Gameassassin tool, I could not find any other tool.

Re: [request] convert GRIN Engine .diesel models

Posted: Sat Oct 15, 2011 2:10 am
by XLAX
any news with this?

Re: [request] convert GRIN Engine .diesel models

Posted: Mon Oct 17, 2011 5:06 pm
by Szkaradek123
Blender249 importer for Bionic models from samples:
-import geometry and uv
-open script in Blender249 text editor

Code: Select all

#MARIUSZ SZKARADEK GLOGOW POLAND 2011-10-17
#BIONIC BLENDER249 IMPORTER(.DIESEL MODEL)
#GEOMETRY+UV
#PRESS ALT+P TO RUN SCRIPT AND SELECT DIESEL MODEL

import bpy,struct,os
import Blender
from Blender import *
from struct import *
from Blender.Mathutils import *
import math


def find_0(): 
    s=''
    while(True):
        litera =  struct.unpack('c',plik.read(1))[0]
        if  litera=='\x00':
            break
        else:
            s+=litera
    return s


def word(long): 
   s=''
   for j in range(0,long): 
       lit =  struct.unpack('c',plik.read(1))[0]
       if ord(lit)!=0:
           s+=lit
           if len(s)>100000:
               break
   return s


def b(n):
    return struct.unpack(n*'b', plik.read(n))
def B(n):
    return struct.unpack(n*'B', plik.read(n))
def h(n):
    return struct.unpack(n*'h', plik.read(n*2))
def H(n):
    return struct.unpack(n*'H', plik.read(n*2))
def i(n):
    return struct.unpack(n*'i', plik.read(n*4))
def f(n):
    return struct.unpack(n*'f', plik.read(n*4))


def vertexuv():
    mesh.vertexUV = 1
    for m in range(len(mesh.verts)):
        mesh.verts[m].uvco = Vector(uvlist[m])
    mesh.update() 
    mesh.faceUV = 1
    for fc in mesh.faces: fc.uv = [v.uvco for v in fc.verts];fc.smooth = 1
    mesh.update() 

def drawmesh(name):
        global mesh 
        mesh = bpy.data.meshes.new(name)
        mesh.verts.extend(vertexlist)
        mesh.faces.extend(faceslist,ignoreDups=True)
        if len(uvlist)!=0:
                vertexuv()
        scene = bpy.data.scenes.active
        obj = scene.objects.new(mesh,name)
        mesh.recalcNormals()
        Redraw()

def parser():
    global vertexlist,faceslist,uvlist
    print 
    data = H(10);print data
    plik.seek(12)
    for m in range(data[4]):
        print '-'*20,m,
        var0 = i(2);print var0,plik.tell()
        seek = i(1)[0]#;print 'seek',seek
        back = plik.tell()
        if var0[0]==1012162716:
            print find_0() 
        if var0[0]==268226816:
            print find_0() 
        if var0[0]==2058384083:
            vertexlist = []
            uvlist = []
            num = i(1)[0];print 'num =',num
            var = i(1)[0];print 'var =',var
            if   var == 5:i(10)
            elif var == 2:i(4) 
            elif var == 4:i(8) 
            elif var == 7:i(14) 
            elif var == 8:i(16) 
            elif var == 9:i(18) 
            elif var == 10:i(21)
            else: 
                print i(10)
                break 
            for n in range(num):
                vertexlist.append(f(3))
            for n in range(num):
                uvlist.append([f(1)[0],-f(1)[0]])
            print plik.tell()
            #print f(10) 
        if var0[0]==1280342547:
            faceslist = []
            var = i(2);print var
            for n in range(var[1]/var[0]):
                faceslist.append(H(3))
            drawmesh('model-'+str(m))
        plik.seek(back)
        plik.seek(seek,1)
    
    
def openfile(filename):
    global plik
    print sys.basename(filename)
    plik = open(filename,'rb')  
    parser()
    
Window.FileSelector(openfile)   

Re: [request] convert GRIN Engine .diesel models

Posted: Tue Oct 18, 2011 7:21 pm
by Szkaradek123
The contents of this post was deleted because of possible forum rules violation.

Re: [request] convert GRIN Engine .diesel models

Posted: Tue Oct 18, 2011 11:03 pm
by pixellegolas
skills! nice

Re: [request] convert GRIN Engine .diesel models

Posted: Tue Oct 18, 2011 11:08 pm
by luxox18
great! but how to extract the contents of the .fcl files?

I'm looking for this particular model (bionic commando)

Image

maybe this within the system files since it is not in the game