EMDL file description

265 views
Skip to first unread message

A D

unread,
Oct 10, 2012, 2:50:56 AM10/10/12
to soft...@listproc.autodesk.com
Hi all,

I'm just curious if anybody knows more about structure of Softimage proprietary formats, I mean if there is any chance to make custom reader to other softwares?
I know it is quite complex format so I was thinking more about reading geometries, hierarchy not live operator stacks and other XSI specific stuff.

Thank you

AD


Szabolcs Matefy

unread,
Oct 10, 2012, 4:06:58 AM10/10/12
to soft...@listproc.autodesk.com

Emdl is the very same as the scn format AFAIK, and therefore it is probably a closed format. Just consider that when you save an ICE deformed geometry in EMDL format, opening the EMDL in Softimage will preserve the ICE tree as well. Quite impossible at this moment to have it opened in other packages.

 

Use FBX format instead, it starts to get quite reliable…

Vladimir Jankijevic

unread,
Oct 10, 2012, 4:14:54 AM10/10/12
to soft...@listproc.autodesk.com
HA!
--
---------------------------------------
Vladimir Jankijevic
Technical Direction

Elefant Studios AG
Lessingstrasse 15
CH-8002 Zürich

+41 44 500 48 20

www.elefantstudios.ch
---------------------------------------

A D

unread,
Oct 10, 2012, 5:37:32 AM10/10/12
to soft...@listproc.autodesk.com
I'm aware of it. We have our assets in EMDL format and sometime we need some interaction in maya. Now we must use obj,fbx,DotXSI or Send to Maya which is OK but we are duplicating assets. I think Alembic will be great once we debug plugins for maya and xsi but oportunity to use just one format is cool for me :-)

A

Alan Fregtman

unread,
Oct 10, 2012, 11:55:43 AM10/10/12
to soft...@listproc.autodesk.com
For what it's worth, opening modern scn and emdl files in 7zip shows some guts:

Inline image 1
7zip_opens_guts_of_SCN_and_EMDL.gif

Eric Cosky

unread,
Oct 10, 2012, 1:46:49 PM10/10/12
to soft...@listproc.autodesk.com

Very interesting. I wonder what format it is using and if it would ever be possible to migrate objects from a corrupted scene by repacking them. It’s been a while since I’ve had that happen but it would be nice to have another option besides reverting to backups if that problem ever comes up again.

image001.gif

Luc-Eric Rousseau

unread,
Oct 10, 2012, 2:46:39 PM10/10/12
to soft...@listproc.autodesk.com
it's a practically impossible file format to decode outside of Softimage; if we could have documented it or write a utility to dump it to ascii ("bin2ascii"), we would have done it already.
7zip is able to open it because it's an OLE Compound File, but it's gets very complicated from there, with various forms of compressions, guids and other OLE contructs, and exactly how stuff is persisted is specific to each kind of objects and therefore you'd have to know the implementation of that object to figure it out

Alan Fregtman

unread,
Oct 10, 2012, 2:56:08 PM10/10/12
to soft...@listproc.autodesk.com
What are the chances one could hack a modern file to appear to be in an older format if one could swap the "Version" file with that extracted from another version?

(That is, assuming no new tech was used that didn't exist in the old version.)

Luc-Eric Rousseau

unread,
Oct 10, 2012, 3:30:18 PM10/10/12
to soft...@listproc.autodesk.com

Needs to be investigated. As far as I know, it doesn't use the "version" stream to do that validation, but rather some byte in main data stream.  You cant look at or patch ole compound file with a hex editor, unfortunately. You have to write a small app that is specially aware of compound files and enumerate the streams, because they will change location inside the file.

Eric Cosky

unread,
Oct 10, 2012, 3:56:49 PM10/10/12
to soft...@listproc.autodesk.com

This utility appears to be able to manipulate compound files fwiw, http://www.coco.co.uk/developers/CFX.html

 

 

From: softimag...@listproc.autodesk.com [mailto:softimag...@listproc.autodesk.com] On Behalf Of Luc-Eric Rousseau
Sent: Wednesday, October 10, 2012 12:30 PM
To: soft...@listproc.autodesk.com
Subject: Re: EMDL file description

 

Needs to be investigated. As far as I know, it doesn't use the "version" stream to do that validation, but rather some byte in main data stream.  You cant look at or patch ole compound file with a hex editor, unfortunately. You have to write a small app that is specially aware of compound files and enumerate the streams, because they will change location inside the file.

Rob Chapman

unread,
Oct 10, 2012, 4:41:36 PM10/10/12
to soft...@listproc.autodesk.com
think this just blew my mind, a scene containing many compounds is in itself a compound!  :) 

also it looks like we may be able to edit scene version numbers with something like this...?  could have come in REAL handy today when I opened a scene in 2013 by accident, did some work for an hour then tried to open again in 2012 production version....  and yes transferred some geometry bits with .xsi format as .emdl is useless for this task but ICE trees just got turned into nulls :/

Luc-Eric Rousseau

unread,
Oct 10, 2012, 5:42:55 PM10/10/12
to soft...@listproc.autodesk.com
On Wed, Oct 10, 2012 at 3:30 PM, Luc-Eric Rousseau <luce...@gmail.com> wrote:
> Needs to be investigated. As far as I know, it doesn't use the "version"
> stream to do that validation, but rather some byte in main data stream.

It's in the stream TLShell->VersionInfo stream I think, but I don't
know how to decode the version number, because I think it's compressed
and not directly readable. It might work to just copy over the
VersionInfo from another scene.

Luc-Eric Rousseau

unread,
Oct 10, 2012, 5:49:51 PM10/10/12
to soft...@listproc.autodesk.com

On Wed, Oct 10, 2012 at 3:30 PM, Luc-Eric Rousseau <luce...@gmail.com> wrote:
> Needs to be investigated. As far as I know, it doesn't use the "version"
> stream to do that validation, but rather some byte in main data stream.

It's in the stream TLShell->VersionInfo at the begining, but I don't know how to decode the version number, because I think it's compressed. It might work to just copy over the VersionInfo from another scene.

Matt Lind

unread,
Oct 10, 2012, 5:59:03 PM10/10/12
to soft...@listproc.autodesk.com

After seeing the data with my own eyes, I don’t understand why on scene load Softimage can’t report the name of the missing shader instead of spitting out the CLSID / GUID.  The shader name is clearly stored with the CLSID.

 

Matt

A D

unread,
Oct 11, 2012, 3:08:48 AM10/11/12
to soft...@listproc.autodesk.com
It's not so hard, I've already alter emdl versions safely, you have to look for TNOC string, it's usualy on offset 800h and the version is word on 80Ch. For 2012SAP it is 3E8h (1000 decimal) and for 2011SAP it is 384h (900 decimal). There are of course another textual versions numbers which are displayed by printver.exe app but thoses aren't checked when you are opening emdl in XSI. I believe that is same works for SCN ços there is the same string TNOC.

Btw. TNOC is reversed short for word CONTent

Cheers

A D

unread,
Oct 11, 2012, 3:15:59 AM10/11/12
to soft...@listproc.autodesk.com
One more note, there seems to be another "version" right after TNOC token. You can leave this untouched important version value is on offset TNOC+0Ch

Luc-Eric Rousseau

unread,
Oct 11, 2012, 11:38:26 AM10/11/12
to soft...@listproc.autodesk.com
oopps, I was looking at the wrong stream, that explain why I couldn't
find the scene version.
it's in TLShell->Version then, not tlshell->VersionInfo
softimage 2010 is version 801, 2011 is 900

On Thu, Oct 11, 2012 at 3:08 AM, A D <adl...@gmail.com> wrote:
> It's not so hard, I've already alter emdl versions safely, you have to look
> for TNOC string, it's usualy on offset 800h and the version is word on 80Ch.
> For 2012SAP it is 3E8h (1000 decimal) and for 2011SAP it is 384h (900
> decimal). There are of course another textual versions numbers which are
> displayed by printver.exe app but thoses aren't checked when you are opening
> emdl in XSI. I believe that is same works for SCN �os there is the same
> string TNOC.
>
> Btw. TNOC is reversed short for word CONTent
>
> Cheers
>
>
>
> On Wed, Oct 10, 2012 at 11:59 PM, Matt Lind <ml...@carbinestudios.com>
> wrote:
>>
>> After seeing the data with my own eyes, I don�t understand why on scene
>> load Softimage can�t report the name of the missing shader instead of

Alan Fregtman

unread,
Oct 11, 2012, 12:00:03 PM10/11/12
to soft...@listproc.autodesk.com
Found a pure Python OLE file reader:

http://code.google.com/p/pysstorage/source/browse/#svn%2Ftrunk%2Fpysstorage%253Fstate%253Dclosed


On Thu, Oct 11, 2012 at 11:38 AM, Luc-Eric Rousseau <luce...@gmail.com> wrote:
oopps, I was looking at the wrong stream, that explain why I couldn't
find the scene version.
it's in TLShell->Version then, not tlshell->VersionInfo
softimage 2010 is version 801, 2011 is 900

On Thu, Oct 11, 2012 at 3:08 AM, A D <adl...@gmail.com> wrote:
> It's not so hard, I've already alter emdl versions safely, you have to look
> for TNOC string, it's usualy on offset 800h and the version is word on 80Ch.
> For 2012SAP it is 3E8h (1000 decimal) and for 2011SAP it is 384h (900
> decimal). There are of course another textual versions numbers which are
> displayed by printver.exe app but thoses aren't checked when you are opening
> emdl in XSI. I believe that is same works for SCN ços there is the same

> string TNOC.
>
> Btw. TNOC is reversed short for word CONTent
>
> Cheers
>
>
>
> On Wed, Oct 10, 2012 at 11:59 PM, Matt Lind <ml...@carbinestudios.com>
> wrote:
>>
>> After seeing the data with my own eyes, I don’t understand why on scene
>> load Softimage can’t report the name of the missing shader instead of
Reply all
Reply to author
Forward
0 new messages