FIFA 11 (PC) file formats resarch - RenderWare 4.5 assets

Dmitri

Youth Team
This thread is for sharing information about FIFA 11 files researching.

At the moment we know that FIFA 11 uses RenderWare 4.5 graphics engine.
This engine was used in some other EA games (SimCity, NFS MW 2012).

Most of FIFA 11 assets are .RX3 files, but they are not same with FIFA 12 and later versions.
 

Dmitri

Youth Team
So, some basic information on assets (.rx3)
Currently this contains only info which I found myself.
Later I will compare and connect it with researchings from other games.

RenderWare 4.5 terminology
Arena
- the scene, a place where the action happens
Arena file - scene asset
Raster - 2D-texture with pixels stored in some format

Arena file

Arena file header:
Code:
UINT32 - RW4 magick (\x89,'R','W','4')
UINT32 - platform magick ('x','b','2',\x00 for Xbox 360; 'w','3','2',\x00 for PC)
UINT32 - unknown magick (always \xD,\xA,\x1A,\xA)

UINT8 - endianness (0 - little-endian, 1 - big-endian)
UINT8 - number of bits for pointer type (normally 32)
UINT8 - pointer alignment, in bytes (normally 4)
UINT8 - unused, always 0

CHAR[4] - major version (RW) - normally "454" (i.e. RenderWare 4.5.4)
CHAR[4] - minor version (RW) - normally "000"
UINT32 - build number (RW) - normally 0

Arena file general structure
Code:
UINT32 - asset id/type
UINT32 - number of entries
UINT32 - number of used entries
UINT32 - alignment (in bytes)
UINT32 - unknown (0 - offset to file start?)
UINT32 - offset to dictionary entries
UINT32 - offset to sections manifest
UINT32 - unknown offset (0)
UINT32 - unknown offset (0)
UINT32 - unknown offset (0)
RESOURCE_DESCRIPTOR[4] - resources
RESOURCE_DESCRIPTOR[4] - used resources
RESOURCE_DESCRIPTOR - unknown (empty)
UINT32 - unknown offset (0)

Resource descriptor - contains information about resource data.
Code:
UINT32 - data size (can be 0)
UINT32 - data alignment (minimum possible value is 1)

For empty data, the descriptor is: data size = 0; data alignment = 1.

Sections manifest


Dictionary entry
Code:
UINT32 - data offset
UINT32 - unknown (0)
UINT32 - data size
UINT32 - data alignment
UINT32 - type index
UINT32 - type id

Type IDs:
Code:
0x00000 - ?
0x10000 - ?
0x10002 - ?
0x10004 - ArenaSectionManifest
0x10005 - ArenaSectionTypes
0x10006 - ArenaSectionExternalArenas
0x10007 - ArenaSectionSubreferences
0x10008 - ArenaSectionAtoms
0x10010 - StaticAtomTable
0x10030 - ?
0x10031 - ?
0x10032 - ?
0x20002 - Palette
0x20003 - Raster
0x20004 - VertexDescriptor
0x20005 - VertexBuffer
0x20006 - IndexDescriptor
0x20007 - IndexBuffer
0x20008 - Light
0x20009 - Mesh
0x2000A - Shader
0x2000B - CompiledState
0x2000C - RenderObject
0x2000E - VertexShader
0x20013 - PixelShader
0x20019 - RenderObjectContainer
0x2001A - MeshCompiledStateLink
0x2001B - ShaderCode
 
Last edited:

tokke001

Senior Squad
hey,
great to see you in the fifa 11 forums ;)


from what i know,
these fifa games uses the same FIFA 11 engine, and those rx3 files (like stadiums, faces, balls, ...) could be directly copied to fifa 11 :
- FIFA 10 (console only)
- 2010 FIFA WC South africa (this game is only avaible for console)
- FIFA online 3 (until december '15, then there was an engine change)

small note,
FIFA 11 console uses a newer engine (i think the fifa 12 pc engine)


if u need files from above mentioned games,
i have them
 

Dmitri

Youth Team
Spore game is also based on RW 4.5
It looks like, their modding community is far bigger than FIFA modding community. I'm not even talking about their willingness to share their researching with others.
They researched RW 4.5 files already, and made tools for them.
So now a question is - do we need to create special tools for FIFA 11 or existing tools for Spore can be used?

Useful links:
https://github.com/emd4600/SporeModder-FX
https://github.com/emd4600/SporeModder-Blender-Addons
http://davoonline.com/sporemodder/emd4600/SporeModAPI/namespace_render_ware.html


from what i know,
these fifa games uses the same FIFA 11 engine
Do you know anything about FIFA 07/08/06 WC on Xbox 360?
 

tokke001

Senior Squad
Spore game is also based on RW 4.5
It looks like, their modding community is far bigger than FIFA modding community. I'm not even talking about their willingness to share their researching with others.
They researched RW 4.5 files already, and made tools for them.
So now a question is - do we need to create special tools for FIFA 11 or existing tools for Spore can be used?

Useful links:
https://github.com/emd4600/SporeModder-FX
https://github.com/emd4600/SporeModder-Blender-Addons
http://davoonline.com/sporemodder/emd4600/SporeModAPI/namespace_render_ware.html



Do you know anything about FIFA 07/08/06 WC on Xbox 360?

these tools may be usefull yes,
if we would export from blender to .rw4; not sure how much spore rw4 files looks like fifa 11 rx3

Do you know anything about FIFA 07/08/06 WC on Xbox 360?

not much,
it s not fifa 11 engine i think
FIFA 08 (xbox) used a better 'next gen' engine i think , pc version not

someone saying FIFA 08 ps3 looks like FIFA 10 sructures :
http://www.soccergaming.com/index.php?threads/fifa-08-ps3-version-running-on-pc.6465343/
 
Last edited:

tokke001

Senior Squad
Sporemodder-FX

so i tried the following :
* import FIFA 16 ball model into blender
* export to spore .RW4 (with Sporemodder-FX plugin)

my blender knowledge is limited,
but what i noticed after exporting the .rw4 file and viewing it with an hex editor :
the .rw4 file looks similar a bit to fifa 11 rx3 files (like u suggested),
but data for describing the rx3 ball file seems missing i think

blender + rw4 file:
https://mega.nz/file/c1dFwIyD#2sprJCunioZqT07TLF0hUEHqBHliIiZhPoZ725F0X7Y
 

Dmitri

Youth Team
I think you should start with import first.
I mean, tryin to import FIFA 11 model to Blender with that plugin.
 

tokke001

Senior Squad
I think you should start with import first.
I mean, tryin to import FIFA 11 model to Blender with that plugin.

i tried work on a rx3 model converting program,
based on the libraries made by Rinaldo (wich were used by his creation master tools)

i halfly succeeded :
after converting the fifa 16 model to fifa 11,
at a render (ex. with creation master) it looks perfect
but ingame, there are holes in my ball

i copied all data i think between the 2 formats :
- vertex data (x, y, z, u, v) are same + number of vertexes are the same
- index data also identical + same number of faces/indexes

maybe u have an idea what could cause this, i m not a big expert with models ?

i m thinking maybe,
fifa 16 has 3 ball textures , fifa 11 only 2 : maybe this may be the cause

the source model (fifa 16) came from here,
but is with other models kind of same (credits to @Johnny28ua):
http://www.soccergaming.com/index.php?threads/graphics-johnny28ua.6465278/page-56#post-6590250


fifa 11 converted model :
https://mega.nz/file/h98xlTQa#j1xwYswpB15VfYOsXmBNBwZdBQI8117PntlruhFcK50
 
Last edited:

Dmitri

Youth Team
I'm not working in such way.
The goal of this thread is researching the format completely, and not only the vertex data.
 

tokke001

Senior Squad
I think you should start with import first.
I mean, tryin to import FIFA 11 model to Blender with that plugin.

the original spore script dont work on fifa 11 files,
i think the files are still too different

i know there s also the old "Cyberface converters",
those program(s) export the vertex data from rx3, allow them to inport into blender (scipt included), and import into rx3 again
the big minor is:
it 'only' allows to edit vertexes, not add or remove any,
also there are some bugs (only the format for head files are included), hair editing or other files may not work
https://www.moddingway.com/file/5977.html
https://www.moddingway.com/file/9801.html

i tried get some more info about vertexes,
maybe u can help me with more info about vertexes:

i notice a vertex format is same (FIFA 11 vs newer fifa),
but fifa 11 uses a big-endian format, new fifas little-endian (like u say, the arena-fileheader value shows this also)
the reason maybe we cant just copy the vertex data from fifa 16 to fifa 11 (needs formatting?)

in a rx3 file,
when a vertexsize is 32bits,
it got these values (in this order) :
X -value
Y-value
Z-value
Unknown(0)
Unknown(1)
Unknown(2)
Unknown(3)
U-value
V-value
Unknown(4)
Unknown(5)
Unknown(6)
Unknown(7)

my question is,
if u know more about this :
i liked to know what these 8 Unknown values may be
also i m not sure about the format of those unknown (may change between 10^-40 to 10^40)
but the uknown values seems important ingame (they cant be 0)
 
Last edited:

tokke001

Senior Squad
Can you find out what's the difference?

- i think endianness is different (Arena file header):
spore rw4 = 0
fifa 11 rx3 = 1

i think later fifas (fifa 12-16) uses endianness = 0 ?


- the part that comes after "RX3b",
index data (?) i think :
looks different at rw4


- in the middle start x0014....
both present at rw4 and rx3
(vertex (?) data starts here )


i think endianness may be the biggest difference ?


i ll try share the files for if u like take a look
 

tokke001

Senior Squad
i found some more info about ea RW4 / rx2 files,
the ea NHL series uses also Renderware 4

i think @Beedy know s more about this,
he also said the fifa 11 format is very similar to NHL rx2 files
he adopted his NHL script for the fifa 11 game : for reading fifa 11 files into noesis


i ll post the links :
https://forum.xentax.com/viewtopic.php?t=15601
https://forum.xentax.com/viewtopic.php?f=16&t=21960&p=161760
https://forum.xentax.com/viewtopic.php?f=16&t=21785&p=160385
https://www.zenhax.com/viewtopic.php?f=7&t=9490

http://www.soccergaming.com/index.php?threads/xbox-360-stadium-models-viewing.6467458/
 

Beedy

Club Supporter
00 EF 00 05 is material and 00 EB 00 03 is (mesh) group. Here is some information about xbox 360 rx2 how I identify materials, texture indices and material indices for each meshes.
https://imgur.com/a/7FYdLgu
I made quickbms script which help understand the file structure.

I don’t understand why but my messages are stuck in moderator approval whole a day.
 

Attachments

  • rx2.bms.zip
    1.1 KB · Views: 93
Last edited:

Beedy

Club Supporter
i tried work on a rx3 model converting program,
based on the libraries made by Rinaldo (wich were used by his creation master tools)

i halfly succeeded :
after converting the fifa 16 model to fifa 11,
at a render (ex. with creation master) it looks perfect
but ingame, there are holes in my ball

I think problem is that Fifa 11 facebuffer is Triangle Strip format and Fifa 16 Triangles by default. I don't know what is the value in hex which tells that model uses triangle strip instead of triangles. I don't know how to convert triangles to triangle strip. Fifa 11 / console rx2 uses triangles in stadium container files and maybe some other models.

Fifa 16 vertex format descriptor looks like this.

p0:00:00:0001:4f16
n0:08:00:0001:3s10n
g0:0C:00:0001:3s10n
t0:10:00:0001:2f16

P0 = position, n0 = normal, g0= maybe tangent, t0 = texture coords.
00, 08, 0C and 10 is offset in vertex block.

You can see Fifa 11/console rx2 vertex format here:
https://forum.xentax.com/viewtopic.php?f=16&t=21960

ball_124.rx3:
/00/00/00/00 /00/1A/23/60 /00/00/00/01 = position float16_4
/00/00/00/08 /00/2A/21/87 /00/03/00/03 = normal DEC3N
/00/00/00/0C /00/2A/21/87 /00/06/00/15 = tangent? DEC3N
/00/00/00/10 /00/2C/23/5F /00/05/00/06 = uv coord. FLOAT16_2

Xbox 360 decl types:
Code:
fn Get_D3DDECLTYPE id=
(
    case id of
    (
        0x002C83A4: #FLOAT1
        0x002C23A5: #FLOAT2
        0x002A23B9: #FLOAT3
        0x001A23A6: #FLOAT4
        0x002C83A1: #INT1
        0x002C23A2: #INT2
        0x001A23A3: #INT4
        0x002C82A1: #UINT1
        0x002C22A2: #UINT2
        0x001A22A3: #UINT4
        0x002C81A1: #INT1N
        0x002C21A2: #INT2N
        0x001A21A3: #INT4N
        0x002C80A1: #UINT1N
        0x002C20A2: #UINT2N
        0x001A20A3: #UINT4N
        0x00182886: #D3DCOLOR
        0x001A2286: #UBYTE4
        0x001A2386: #BYTE4
        0x001A2086: #UBYTE4N
        0x001A2186: #BYTE4N
        0x002C2359: #SHORT2
        0x001A235A: #SHORT4
        0x002C2259: #USHORT2
        0x001A225A: #USHORT4
        0x002C2159: #SHORT2N
        0x001A215A: #SHORT4N
        0x002C2059: #USHORT2N
        0x001A205A: #USHORT4N
        0x002A2287: #UDEC3
        0x002A2387: #DEC3
        0x002A2087: #UDEC3N
        0x002A2187: #DEC3N
        0x001A2287: #UDEC4
        0x001A2387: #DEC4
        0x001A2087: #UDEC4N
        0x001A2187: #DEC4N
        0x002A2290: #UHEND3
        0x002A2390: #HEND3
        0x002A2090: #UHEND3N
        0x002A2190: #HEND3N
        0x002A2291: #UDHEN3
        0x002A2391: #DHEN3
        0x002A2091: #UDHEN3N
        0x002A2191: #DHEN3N
        0x002C235F: #FLOAT16_2
        0x001A2360: #FLOAT16_4
        default: #UNKNOWN
    )  
)

Here is model researcher (https://zenhax.com/viewtopic.php?t=4105) preview differences between Fifa 16 and Fifa 11 ball models:
 
Last edited:

tokke001

Senior Squad
00 EF 00 05 is material and 00 EB 00 03 is (mesh) group. Here is some information about xbox 360 rx2 how I identify materials, texture indices and material indices for each meshes.
https://imgur.com/a/7FYdLgu
I made quickbms script which help understand the file structure.

I don’t understand why but my messages are stuck in moderator approval whole a day.

great , thank you :)
the script helped to get insight in some things
 
Last edited:

tokke001

Senior Squad
I think problem is that Fifa 11 facebuffer is Triangle Strip format and Fifa 16 Triangles by default. I don't know what is the value in hex which tells that model uses triangle strip instead of triangles. I don't know how to convert triangles to triangle strip. Fifa 11 / console rx2 uses triangles in stadium container files and maybe some other models.

Fifa 16 vertex format descriptor looks like this.

p0:00:00:0001:4f16
n0:08:00:0001:3s10n
g0:0C:00:0001:3s10n
t0:10:00:0001:2f16

P0 = position, n0 = normal, g0= maybe tangent, t0 = texture coords.
00, 08, 0C and 10 is offset in vertex block.

You can see Fifa 11/console rx2 vertex format here:
https://forum.xentax.com/viewtopic.php?f=16&t=21960

ball_124.rx3:
/00/00/00/00 /00/1A/23/60 /00/00/00/01 = position float16_4
/00/00/00/08 /00/2A/21/87 /00/03/00/03 = normal DEC3N
/00/00/00/0C /00/2A/21/87 /00/06/00/15 = tangent? DEC3N
/00/00/00/10 /00/2C/23/5F /00/05/00/06 = uv coord. FLOAT16_2

Xbox 360 decl types:
Code:
fn Get_D3DDECLTYPE id=
(
    case id of
    (
        0x002C83A4: #FLOAT1
        0x002C23A5: #FLOAT2
        0x002A23B9: #FLOAT3
        0x001A23A6: #FLOAT4
        0x002C83A1: #INT1
        0x002C23A2: #INT2
        0x001A23A3: #INT4
        0x002C82A1: #UINT1
        0x002C22A2: #UINT2
        0x001A22A3: #UINT4
        0x002C81A1: #INT1N
        0x002C21A2: #INT2N
        0x001A21A3: #INT4N
        0x002C80A1: #UINT1N
        0x002C20A2: #UINT2N
        0x001A20A3: #UINT4N
        0x00182886: #D3DCOLOR
        0x001A2286: #UBYTE4
        0x001A2386: #BYTE4
        0x001A2086: #UBYTE4N
        0x001A2186: #BYTE4N
        0x002C2359: #SHORT2
        0x001A235A: #SHORT4
        0x002C2259: #USHORT2
        0x001A225A: #USHORT4
        0x002C2159: #SHORT2N
        0x001A215A: #SHORT4N
        0x002C2059: #USHORT2N
        0x001A205A: #USHORT4N
        0x002A2287: #UDEC3
        0x002A2387: #DEC3
        0x002A2087: #UDEC3N
        0x002A2187: #DEC3N
        0x001A2287: #UDEC4
        0x001A2387: #DEC4
        0x001A2087: #UDEC4N
        0x001A2187: #DEC4N
        0x002A2290: #UHEND3
        0x002A2390: #HEND3
        0x002A2090: #UHEND3N
        0x002A2190: #HEND3N
        0x002A2291: #UDHEN3
        0x002A2391: #DHEN3
        0x002A2091: #UDHEN3N
        0x002A2191: #DHEN3N
        0x002C235F: #FLOAT16_2
        0x001A2360: #FLOAT16_4
        default: #UNKNOWN
    )
)

Here is model researcher (https://zenhax.com/viewtopic.php?t=4105) preview differences between Fifa 16 and Fifa 11 ball models:

about the triangle type ,
what i found at Rinaldos codes :
he dont read from a hex-value to see for the triangle type, but calculate it with a formula :
if the number of indexes is divisible by three, then it is a Triangle Strip format

my guess,
There may be a (unknown) value in the file or the game says all files are same triangletype

from what i check,
like u say fifa 11 uses a different type then newer fifas files :
i didnt check all files however, but for my converted ball it was different
 
Last edited:


Top