Jump to content
Sign in to follow this  
bxbx

1st  MLOD from ARMA ODOL v40 - M16A4.P3D

Recommended Posts

here is a little example of my ODOL v40 decoding.

M16A4

I am not able to decode full file but by handly seeking in file a can find all lods, when i succes and decode it fully, I release a GB with this feature.

About M16A4: LODs 200 and 250 are renamed from 1.0e4 and 1.001e4 values (in ARMA are new 4 named LODs (like in OFP memory, geometry,...)) I dont know purpose of this new named LODs now.

enjoy it.

Share this post


Link to post
Share on other sites

You gonna tell me that you encoded a M16A4 rifle from Arma??? wow_o.gifwow_o.gifwow_o.gifnotworthy.gifnotworthy.gifnotworthy.gif

LOL F*ck dude I just checked it... I am off now for some weeks cya!!!! biggrin_o.gif:D:D

BIS we are coming!

EDIT: Awwwwww.. I love ya mate...

wink_o.gif

m16loluk3.jpg

Share this post


Link to post
Share on other sites
here is a little example of my ODOL v40 decoding.

M16A4

I am not able to decode full file but by handly seeking in file a can find all lods, when i succes and decode it fully, I release a GB with this feature.

About M16A4: LODs 200 and 250 are renamed from 1.0e4 and 1.001e4 values (in ARMA are new 4 named LODs (like in OFP memory, geometry,...)) I dont know purpose of this new named LODs now.

enjoy it.

So far the 10000 LOD acts as a shadow lod.

Share this post


Link to post
Share on other sites

Mine.

And I did it yesterday smile_o.gif.

But I must say I used a more crude method of capturing textures and meshes directly from DX cache... Or something like that. -_-;

Now this... this is making everyone's lifes easier.

Your method is much simplier and if I got it right you can export a model together with all selections, lods etc.

Big woot foryou man.  notworthy.gif

I am expecting reworks of BiS soldiers to arrive soon now smile_o.gif.

Share this post


Link to post
Share on other sites
here is a little example of my ODOL v40 decoding.

I am not able to decode full file but by handly seeking in file a can find all lods

Can you please share the file format with us, I would like to update WrpTool to align ArmA ODOL models properly to the ground?

Share this post


Link to post
Share on other sites

Could someone do me a big favor and decode (if possible) the minigun from the UH60?

You would save me a lot of time, doing one myself.

Share this post


Link to post
Share on other sites

This tool would be nice to have a better idea on how BIS did their work, is it possible to show us a first and second view of any hand gun? I'd like to check if they modeled the hand guns bigger in 1st person view.

Thank you for you work wink_o.gif

Share this post


Link to post
Share on other sites

Hi, hey Bxbx, if you extract the MLOD of the M4 Aimpoint, we could

make a M16A4 Aimpoint that is really needed; if you do it... i'll marry

you.

Thanks for your time and effort, we apreciate this. Let's C ya

Share this post


Link to post
Share on other sites

didnt he release the m16a4 as a mlod on the first page?

@cameron

ah ok didnt know there wasnt an m16a4 with an aimpoint

Share this post


Link to post
Share on other sites

Very impressive...

Congratulation bxbx smile_o.gif i hope you will be able to soon provide a working tool for the community smile_o.gif

I can't wait to be able to convert the character smile_o.gif

Share this post


Link to post
Share on other sites

Are you going to provide instructions on how to extract the

models? Please? It'd be instructional for many of us just to

see how the BIS models are constructed.

Share this post


Link to post
Share on other sites

very cool... hopefully once you're finished with your GB upgrade you'll have time to do a struct? smile_o.gif

btw... your 3rd LOD is the first offset in your file. the MLOD's I look at seem to have the LOD order in O2 replicated in the file offset...

PS. beautiful work...

actually, i'm wrong... had the struct offset wrong when viewing the p3d in my hex editor, lol... great job. like the others, we'd appreciate your producing a document detailing the format.

now all thats needed is the anims... huh.gif

Share this post


Link to post
Share on other sites

blocks in odol v4 are quite similar to odol v7 but placed in back direction , (first is relolution table, LOD are placed from last to first ),there is same LZ compresion as ODOL v7

known data:

char signature[4] //'ODOL'

int format // 40

int lod_count

float resolutions[lod_count]

{

int u1;

float u2,u3,u4

} // unknow data, same data follows on end of ODOL v7

char u5[139] // unknow data , still same length

char *sceletonname // float zeroendded char array

if (char[0]!=0)

{

bool8 u6 // 8bit boolean // value 1 or 0

int bone_count

struct bones[bone_count]

{

char * bone1,bone2 //strings

}

}

char u7[0x26] // unknow data

char *modelclass, *modelparent // I think of purpose this data found values 'house''no' or 'house''building',....

char u8[5] // unknowd data

bool8 exist_anims

if (exist_anims)

{

int anims_count

struct anims[anims_count]

{

int type // 0,4,9 // rotation,move,.., i dont check it yet

char *name,*parent

float tr[6]// transformations values

if (type!=9) int u9

}

}

unknowdata[unknowlength] // handle seek

lod

{

int vertices count

bool8 ub1

if (ub1) char uch[11] // unknow data

cha uch[0x29] // unknow data

int textures_count

char * texture[textures_count]

int materials_count

struct materials[materials_count]

{

char * name

char uch[0x85] // unknowdata // some float values

int textres_count

struct textures_in_material[textres_count]

{

int u10 // value 3 still

char* t_name

int u11 // self increment value // 0,1,2,3,4,...

}

char uch[0x34*textres_count] // some struct with same length as textures_in_material // I dont work with material now, I skip it.

}

if ( textures_count>0 ) char uch[7];

bool8 ub // unknown value

int faces_count

char u12[6]

struct faces[6]

{

char dot_count

unsigned short dot_vertice_index[dot_count]

}

unknowdata[ubknowlength]

int components_count

struct components[components_count]

{

char *name;

int selected_faces_count

unsign short selected_faces[selected_faces_count] // if selected_faces_count > 0x100 then compresed by LZ

int u14;

unsign short u15[u14]

bool8 ub

if (ub) int u16

char uch[3]

bool8 ub2

int selected_vertices_count

unsign short selected_vertices[selected_vertices_count] // if selected_vertices_count > 0x100 then compresed by LZ

int u17

char uch[u17];

}

int named_properties_count

struct named_properties[named_properties_count]

{

char * name,*value

}

unknowdata[mostly 0x15 , but not every time]

int vertices_count // again same value

bool8 ub

if (ub)

{

struct UV[vertices_count] {float u,v} if count > 127 then LZ

}

else char uch[8]

int u[18]

int vertices_count

struct vertices_pos[verices_count]{float x,y,z}

follows normals and the other data ,but this is in progress

I cannot find face.texture_index informations, in M16A4 are only 2 textures and I texture it handly by original UVsets.

}

I you make some progress in ODOL decoding please inform my back.

Share this post


Link to post
Share on other sites

bxbx  thumbs-up.gif  notworthy.gif

my tool for manual decode some ftp://www.armedassault.info/_hosted/rau/flea/deparse.rar

for example

start programm

open file `sara.wrp`

write to

Bytes read - 4194304 (2048*2048)

offset bytes - 1163387

Out data size - 4194304 (2048*2048)

out file - c:\dump.raw

press `Dump It...`

And Open c:\dump.raw in photoshop as Width 2048 Height 2048, 1 chanel 1 byte and you will see Sahrani AS IS xmas_o.gif

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

×