Old-gen EA model file format research (.o)

Dmitri

Club Supporter
Most of things related to meshes and skinning were researched and documented.
I would say, the current progress on researching is:
-meshes - 90%
-skeleton and skinning- 90%
-shaders - 10%
-animations - 5%

 

Dmitri

Club Supporter
My experimental exporting tool which I'm currently working on is nearly completed.
During the research I found that the general model format was not changed for many years, since 2004 or so (I also checked FIFA WC 2002 and it had some slight differences).
What changed during these years were shaders. Shaders determine how geometry (vertex buffer) is stored and how geometry is rendered (render code). So these 2 things may differ in different games and game versions. At this point I'm only interested in FIFA Manager series (13, 07 and 08), and maybe I will also look at FIFA 07/08.
If you are interested in any other games (like NBA, Cricket or anything else) and could help with finding/testing, let me know.









 

Telega12

Youth Team
It would be nice, if you have extracted files from World Cup 2010 Ea Sports Game, especially coach heads.
 

Dmitri

Club Supporter
Skinning is now supported.
In total, all 31 shaders which were present in vanilla FM13 files, were added.
Now, when/if there are people who interested in other games, specific shaders for these games can be added.

Messi face from FIFA20 converted to FM13:


I didn't do any special skinning here, all head vertices were attached to spine bone.
 

Dmitri

Club Supporter
Current otools version is 0.145.
We already converted all FIFA20 Nintendo Switch faces to FIFA Manager. We even converted all generic heads and hairs.
If you want to see how new faces look in a 12-year old FIFA engine, here you go:












FIFA 07 import support in progress (imported this model)
 

Dmitri

Club Supporter
Conversion to FIFA 07 / 08 faces would be great!!
There are many problems with replacing/adding files to the game.
For FIFA Manager I made my own model loader to be able to add files externally, without zdataX.big edits.
I don't know if it will be possible to do this for FIFA 07/08.
 

FifaMan017*

Senior Squad
There are many problems with replacing/adding files to the game.
For FIFA Manager I made my own model loader to be able to add files externally, without zdataX.big edits.
I don't know if it will be possible to do this for FIFA 07/08.
Os is it possible to use fifa 30 nintendo scoreboard
 

0743v3r

Club Supporter
There are many problems with replacing/adding files to the game.
For FIFA Manager I made my own model loader to be able to add files externally, without zdataX.big edits.
I don't know if it will be possible to do this for FIFA 07/08.
What problems are there with replacing/adding files? Not a big problem for me to import them manually or with some other tools. My problem is head model / texture conversion to 07/08. ;)
 

Dmitri

Club Supporter
I think you can't replace original game files with bigger files (for example, replace 256 Kb file with 1 MB file).

New version of the tool released. GUI version is now also available.
 

0743v3r

Club Supporter
I think you can't replace original game files with bigger files (for example, replace 256 Kb file with 1 MB file).
Really? Never heard of this before. And what could be such big files? .o-files or textures? I know you can get problems with texture sizes (only max resolution of 256x128px for example is supported by fifa 07 game faces without crashing). And, of course, you have a limitation of .big-files size. But for single files? Can you explain? We are talking about 3D-Heads, what means an .o-file (Head and Hair) and texture-files (.fsh), right? I don't understand much about 3d-modelling but i guess FIFA 07 faces must be much simplier than the head-models you used for FM (needs conversion to fifa 07/08 format). And importing/exporting files to zdataxx.big is not a big problem for me. How did you manage the viking head?
 
Last edited:

Dmitri

Club Supporter
I know that FIFA games use memory caching for some resources (models and maybe textures).
It means that the memory, allocated for one resource, can be later re-used for some another resource of the same type.
If it happens that the memory size required for that another resource is larger than allocated memory from previous resource - the game normally will crash.
That's how it works in FIFA Manager, and I believe it's same in FIFA07-FIFA10.

It will be a reasonable to ask how then original head models work, because they have different sizes.
All original head models are stored inside zdataX.big archives, and they are also compressed.
The size for memory, required for uncompressed model, is stored in fifa.fat.
And if you check fifa.fat, you can find that "uncompressed size" for all head models is same - even when originally models are different in size.

To solve this problem in FIFA Manager, I align all model files to the same size. I also replaced all original models and aligned them too.

And what could be such big files?
I think both models and textures.

FIFA 07 faces must be much simplier than the head-models you used for FM
Yes. FM uses FIFA09 models.
FIFA09 uses 4 different shaders (materials) for head model (head, eyes, haircap and hair) - FIFA07 uses only 2 (head and hair).
FIFA09 uses 2 textures for hair (color and a special texture with transparency masks), FIFA07 uses only 1.

How did you manage the viking head?
I made an experimental asset loader for FIFA07.
The model works in the match (at least at match beginning), but it crashes in Player edit menu.
 

0743v3r

Club Supporter
Thank you for your answers! All good to know - as much as i can understand.

I know that FIFA games use memory caching for some resources (models and maybe textures).
It means that the memory, allocated for one resource, can be later re-used for some another resource of the same type.
If it happens that the memory size required for that another resource is larger than allocated memory from previous resource - the game normally will crash.
That's how it works in FIFA Manager, and I believe it's same in FIFA07-FIFA10.
OK.

It will be a reasonable to ask how then original head models work, because they have different sizes.
All original head models are stored inside zdataX.big archives, and they are also compressed.
The size for memory, required for uncompressed model, is stored in fifa.fat.
And if you check fifa.fat, you can find that "uncompressed size" for all head models is same - even when originally models are different in size.
Maybe this is the reason for rebuilding .big-files and re-writing the fifa.fat after importing new stuff like .o-models or textures to zdataX.big (?) Sometimes - when i do not - the game crashes after importing. So i do every time. Also i guess the files in zdata.big must not be compressed (but not for sure). Another thing is using only face textures with max resolution 256 x 128 px and hair textures 128x128px. When using too many bigger ones, the game crashes too. That are my observations with it...

To solve this problem in FIFA Manager, I align all model files to the same size. I also replaced all original models and aligned them too.
Is it not possible with FIFA 07 too?

Yes. FM uses FIFA09 models.
FIFA09 uses 4 different shaders (materials) for head model (head, eyes, haircap and hair) - FIFA07 uses only 2 (head and hair).
FIFA09 uses 2 textures for hair (color and a special texture with transparency masks), FIFA07 uses only 1.

I made an experimental asset loader for FIFA07.
The model works in the match (at least at match beginning), but it crashes in Player edit menu.
I am using some edited head-models (not by me) - some of them with 3 shaders(?) in FIFA 07 as well (head, 2x hair). They are not in original FIFA 07-format but work in game and also crash in player edit menu. Now i know why. (?) This should be an example. But thats not a big problem for me. Because i am editing players with external tools anyway. Maybe it helps you?
 
Last edited:

0743v3r

Club Supporter
Does your tool only directly import models to the game or can i choose another targets like any folder?
I wanted to try, but get error-message: "unknown operation type" when opening your tool. Can you help? What did i wrong?
 

Dmitri

Club Supporter
Maybe this is the reason for rebuilding .big-files and re-writing the fifa.fat after importing new stuff like .o-models or textures to zdataX.big (?) Sometimes - when i do not - the game crashes after importing. So i do every time. Also i guess the files in zdata.big must not be compressed (but not for sure). Another thing is using only face textures with max resolution 256 x 128 px and hair textures 128x128px.
But you didn't try to make all them the same size?
I think it's the reason why it crashes. If some textures are 256x128 and some are 512x256 (or 1024x512), it will crash. But if you make them all (all face textures in the game, including generic heads) the same size (512x256 or 1024x512), I think you will avoid crashes. Same thing for all other texture types and models.

When using too many bigger ones, the game crashes too.
Does it crash instantly or during the game?

Is it not possible with FIFA 07 too?
I think it will work, but you don't know until you try it.

Does your tool only directly import models to the game or can i choose another targets like any folder?
No it only converts models saved in regular 3D formats (like .gltf or .glb) to .o
You will need to import the model to the game yourself.

I am using some edited head-models (not by me) - some of them with 3 shaders(?) in FIFA 07 as well (head, 2x hair). They are not in original FIFA 07-format but work in game and also crash in player edit menu.
This model is divided into 3 parts but uses 2 shaders (LitTexture2IrradSkinSubSurfSpec, LitTexture2x_Skin).
Why are there 2 versions?

I wanted to try, but get error-message: "unknown operation type" when opening your tool. Can you help? What did i wrong?
For the command-line tool you need to pass some arguments. The best solution is to launch it from command-line and enter arguments there, or create a batch file (.bat) and write it there. Arguments are explained here: https://bitbucket.org/fifam/otools/src/master/README.md

You can now also use GUI tool (available in 0.146 release), it is much easier to work with it.
 
Last edited:
Top