• This is a reminder of 3 IMPORTANT RULES:

    1- External self-promotion websites or apps are NOT allowed here, like Discord/Twitter/Patreon/etc.

    2- Do NOT post in other languages. English-only.

    3- Crack/Warez/Piracy talk is NOT allowed.

    Breaking any of the above rules will result in your messages being deleted and you will be banned upon repetition.

    Please, stop by this thread SoccerGaming Forum Rules And Guidelines and make sure you read and understand our policies.

    Thank you!

Reading/Writing Rx3 & Rx2 Files [.dll] [All Fifas]

Beedy

Club Supporter
Hi, thank you @tokke001 for your work about the formats. For further information about rx2 vertex color format.

D3DDECLUSAGE_COLOR 0x/00/0A/00/04 = 0x/00/18/28/86 D3DDECLTYPE_D3DCOLOR
Vertex colors are stored in argb format instead of rgba and for example Noesis use rgba.

Using my scripts colors doesn’t display correctly because alpha channel are in wrong place when Noesis read rgba. I can fix it swapping alpha byte for each vertex.
 

tokke001

Senior Squad
Hi, thank you @tokke001 for your work about the formats. For further information about rx2 vertex color format.

D3DDECLUSAGE_COLOR 0x/00/0A/00/04 = 0x/00/18/28/86 D3DDECLTYPE_D3DCOLOR
Vertex colors are stored in argb format instead of rgba and for example Noesis use rgba.

Using my scripts colors doesn’t display correctly because alpha channel are in wrong place when Noesis read rgba. I can fix it swapping alpha byte for each vertex.
hey,
thanks !
is it "ABGR" format (complete endian swap of RGBA), or "ARGB" format for rx2 / FIFA 11?

it depends on the endian format of the vertices, if i understand correctly ?
big endian = ABGR (or "ARGB" ? )
little endian = RGBA

vertices of FIFA 07 - 11: is always big endian
vertices of newer games (example FIFA 14): is little endian, reading is then RGBA
 

Beedy

Club Supporter
hey,
thanks !
is it "ABGR" format (complete endian swap of RGBA), or "ARGB" format for rx2 / FIFA 11?

it depends on the endian format of the vertices, if i understand correctly ?
big endian = ABGR (or "ARGB" ? )
little endian = RGBA

vertices of FIFA 07 - 11: is always big endian
vertices of newer games (example FIFA 14): is little endian, reading is then RGBA
I think it’s argb. I can double-check it but i’m pretty sure that’s the format.
 

PaoloDNY

Youth Team
Hey guys, question... when I use FIFA Converter this feature is disabled... is there a fix to this???...

neck.png


Thanks!!!...
 

Death GOD 7

Club Supporter
Hey guys, question... when I use FIFA Converter this feature is disabled... is there a fix to this???...

View attachment 90002

Thanks!!!...
Maybe not supported for 14 to 16 conversion or.... disabled due to bugs. Also please send issues in "FIFA Converter / tokke001s' programs and files" thread cause some may also be facing same issues and have found solution there.
 

tokke001

Senior Squad

FIFA Library 2022


New 2022 version of my dll,
a lot of rewriting and changes have been done !
Here are the main new features:

Rx2/Rx3Hybrid/Rx3 files​

Moved and changed structures, making it easier to edit but also giving more options !
* FIFALibrary22.Rx2File
-> Load/Save Rx2 from games: FIFA07, UEFA CL 06–07, FIFA08, UEFA Euro 2008, FIFA09 (All Xbox360), or other not-fifa games using Rx2

* FIFALibrary22.Rx3HybridFile
-> Load/Save from games: FIFA 10 (console), 2010 FIFA World Cup SA, FIFA 11 (pc/console), FIFA Online 3 (old FIFA 11 engine)

* FIFALibrary22.Rx3File
-> Load/Save Rx3 from games: FIFA 12 or newer

* FIFALibrary22.RxFile
-> This is new: Load/Save any Rx2/Rx3Hybrid/Rx3 file as a 'FIFALibrary22.RxFile'
* Fix for reading/writing DEC3N vertex values (normals/tangents/binormals)

Rw4 (Renderware) Structure changes​

From a nhl11 debug-file: section-structures, namespaces, property-names, enums, ... have been added ! (thx to @Beedy )
* Near complete known renderware sections
* Easier to work with: Automatic links between sections (for pointers)
* Easier to add a new RW sections
* "RwObject" introduced: All Rw4 Sections are now identified as a RwObject, and have: TYPE_CODE, ALIGNMENT, SectionInfo values
* Create custom Vertex formats: : ex. hairmodels with multiple UVs
* Section 'Rw.Graphics.Raster' is now fully editable: edit Depth, Dimension, ... + corrected TextureFormat-enums

Rx3 Structure changes​

General changes making it easier to edit, and many fixes/improvements :
* Some changes in names: namespaces, property-names
* Properties wich are automaticly done at saving are now read-only: Number, size, ... values
* Added summaries
* "Rx3Object" introduced: All Rw4 Sections are now identified as a Rx3Object, and have: TYPE_CODE, ALIGNMENT, SectionInfo values
* New Rx3 section: MORPH_INDEXED
* New Rx3 texture format: BC6H_UF16 (ex. Sky-textures FIFA 22 switch): Dds/Ktx only (no decoding to bitmap possible)
* ...

Textures​

* Compressed textures
A new library for encoding/decoding BC1-5 + BC7 compressed textures is in use now: BCnEncoder
-> Better Quality when encoding/decoding BC1-5: Fix in small color difference
-> New: support for BC7 compression (beta)
-> Dds files are done by this dll now (not mine)
-> New: Support for Ktx files

* Uncompressed textures
-> now correct reading/writing of uncompressed textures

Other​

* "glare.bin" files
Newly added: Reading of "glare.bin" files
used at old games like: nhl11, FIFA08 console, ...

* CrowdPlacement "Crowd_*_*.dat" files
Newly added: Reading/Writing of crowdplacement *.dat files (beta)
for games:
* Crowd v3 format: FIFA 07-14
* Crowd v4 format: WC14 game
* Crowd v5 format: FIFA 15 - 22


Info:
-> See full Overview of features in included text file !
-> .NET framework 4.7.2 compatible

Credits also to:
* Dmitri, Beedy (research)
* Rinaldo (some small code parts)
* BCnEncoder.NET

GitHub (code):​

Link

Download (ddl + docs):

Link
 
Last edited:

Death GOD 7

Club Supporter

FIFA Library 2022


New 2022 version of my dll,
a lot of rewriting and changes have been done !
Here are the main new features:

Rx2/Rx3Hybrid/Rx3 files​

Moved and changed structures, making it easier to edit but also giving more options !
* FIFALibrary22.Rx2File
-> Load/Save Rx2 from games: FIFA07, UEFA CL 06–07, FIFA08, UEFA Euro 2008, FIFA09 (All Xbox360), or other not-fifa games using Rx2

* FIFALibrary22.Rx3HybridFile
-> Load/Save from games: FIFA 10 (console), 2010 FIFA World Cup SA, FIFA 11 (pc/console), FIFA Online 3 (old FIFA 11 engine)

* FIFALibrary22.Rx3File
-> Load/Save Rx3 from games: FIFA 12 or newer

* FIFALibrary22.RxFile
-> This is new: Load/Save any Rx2/Rx3Hybrid/Rx3 file as a 'FIFALibrary22.RxFile'
* Fix for reading/writing DEC3N vertex values (normals/tangents/binormals)

Rw4 (Renderware) Structure changes​

From a nhl11 debug-file: section-structures, namespaces, property-names, enums, ... have been added ! (thx to @Beedy )
* Near complete known renderware sections
* Easier to work with: Automatic links between sections (for pointers)
* Easier to add a new RW sections
* "RwObject" introduced: All Rw4 Sections are now identified as a RwObject, and have: TYPE_CODE, ALIGNMENT, SectionInfo values
* Create custom Vertex formats: : ex. hairmodels with multiple UVs
* Section 'Rw.Graphics.Raster' is now fully editable: edit Depth, Dimension, ... + corrected TextureFormat-enums

Rx3 Structure changes​

General changes making it easier to edit, and many fixes/improvements :
* Some changes in names: namespaces, property-names
* Properties wich are automaticly done at saving are now read-only: Number, size, ... values
* Added summaries
* "Rx3Object" introduced: All Rw4 Sections are now identified as a Rx3Object, and have: TYPE_CODE, ALIGNMENT, SectionInfo values
* New Rx3 section: MORPH_INDEXED
* New Rx3 texture format: BC6H_UF16 (ex. Sky-textures FIFA 22 switch): Dds/Ktx only (no decoding to bitmap possible)
* ...

Textures​

* Compressed textures
A new library for encoding/decoding BC1-5 + BC7 compressed textures is in use now: BCnEncoder
-> Better Quality when encoding/decoding BC1-5: Fix in small color difference
-> New: support for BC7 compression (beta)
-> Dds files are done by this dll now (not mine)
-> New: Support for Ktx files

* Uncompressed textures
-> now correct reading/writing of uncompressed textures

Other​

* "glare.bin" files
Newly added: Reading of "glare.bin" files
used at old games like: nhl11, FIFA08 console, ...

* CrowdPlacement "Crowd_*_*.dat" files
Newly added: Reading/Writing of crowdplacement *.dat files (beta)
for games:
* Crowd v3 format: FIFA 07-14
* Crowd v4 format: WC14 game
* Crowd v5 format: FIFA 15 - 22


Info:
-> See full Overview of features in included text file !
-> .NET framework 4.7.2 compatible

Credits also to:
* Dmitri, Beedy (research)
* Rinaldo (some small code parts)
* BCnEncoder.NET

Download:

Link
Finally, master tokke001's hammer struck and will shake the modding community again.
Keep up the excellent work. Now back to the blender script. :3
 

SimIT!

Club Supporter
How do you use this? please tell me where to write
I’m also interested here.

For exemple, When you say crowd v5 its the same for 15 until 22, do you mean Any kind of FIFA 22 or just the Switch version? That its important for future convertions and Madden convertion.

Second, its possible to open WC14 crowds? All the generic stadiums are ready but without crowds.
 

tokke001

Senior Squad

Crowd Placement .dat file



here is a scheme of the layout a FIFA 11-14 crowd file :
version.png


Version

i took the first byte after "CRWD" as a "version" :
because i found 3 values, wich always equals with a different crowd-file layout
Code:
Public Enum CrwdFileType As Byte
    FIFA_14 = 3     'found at FIFA07-14
    FIFA_WC14 = 4
    FIFA_15 = 5        'FIFA 14 or later
End Enum

FIFA 07 to FIFA 14 games: version is always '3', the files are compatible
FIFA WC'14 game has version '4'
FIFA 15 or later has version '5'

the small exception :
FIFA WC'06 : the crowd has version '3', but the layout is lightly different

Number of seats

this is a 32bit value : so a maximum of 2.147.483.647 seats (integer) or maybe 4.294.967.295 (uinteger) in a crowd file are possible

i think this was wrong at the old blender rx3-plugin:
it said there it was a short (wich only has a maximum of 32767 seats)

Crowd data

then followed is the crowd data, this is an array of the size of "number of seats"
* Vertices: XYZ positions (3 floats)
* Rotation: defines the rotation (1 float)
* Color: RGB values (3 bytes)
* Data: number of awaycrowd, Size of crowd, ...
these values various at different the version, and not all is known
* Extra Data
these values various at different the version, and not all is known


for my dll
here s an example code :
 
Last edited:

Death GOD 7

Club Supporter

Examples Added


i added some examples for getting data from rx3 model and texture files :
Edit Rx3 model files
Edit Rx3 Texture files
Edit Crowd Dat files (code) | Crowd data (info)

Crowd



here is a scheme of the layout a FIFA 11-14 crowd file :
View attachment 99044

Version

i took the first byte after "CRWD" as a "version" :
because i found 3 values, wich always equals with a different crowd-file layout
Code:
Public Enum CrwdFileType As Byte
    FIFA_14 = 3     'found at FIFA07-14
    FIFA_WC14 = 4
    FIFA_15 = 5        'FIFA 14 or later
End Enum

FIFA 07 to FIFA 14 games: version is always '3', the files are compatible
FIFA WC'14 game has version '4'
FIFA 15 or later has version '5'

the small exception :
FIFA WC'06 : the crowd has version '3', but the layout is lightly different

Number of seats

this is a 32bit value : so a maximum of 2.147.483.647 seats (integer) or maybe 4.294.967.295 (uinteger) in a crowd file are possible

i think this was wrong at the old blender rx3-plugin:
it said there it was a short (wich only has a maximum of 32767 seats)

Crowd data

then followed is the crowd data, this is an array of the size of "number of seats"
* Vertices: XYZ positions (3 floats)
* Rotation: defines the rotation (1 float)
* Color: RGB values (3 bytes)
* Data: number of awaycrowd, Size of crowd, ...
these values various at different the version, and not all is known
* Extra Data
these values various at different the version, and not all is known


for my dll
here s an example code :
The example is nice and with comments. Thank you for making it.
(I will go through it and maybe help you write the wiki file with more advanced details.)
 

SimIT!

Club Supporter

Crowd



here is a scheme of the layout a FIFA 11-14 crowd file :
View attachment 99044

Version

i took the first byte after "CRWD" as a "version" :
because i found 3 values, wich always equals with a different crowd-file layout
Code:
Public Enum CrwdFileType As Byte
    FIFA_14 = 3     'found at FIFA07-14
    FIFA_WC14 = 4
    FIFA_15 = 5        'FIFA 14 or later
End Enum

FIFA 07 to FIFA 14 games: version is always '3', the files are compatible
FIFA WC'14 game has version '4'
FIFA 15 or later has version '5'

the small exception :
FIFA WC'06 : the crowd has version '3', but the layout is lightly different

Number of seats

this is a 32bit value : so a maximum of 2.147.483.647 seats (integer) or maybe 4.294.967.295 (uinteger) in a crowd file are possible

i think this was wrong at the old blender rx3-plugin:
it said there it was a short (wich only has a maximum of 32767 seats)

Crowd data

then followed is the crowd data, this is an array of the size of "number of seats"
* Vertices: XYZ positions (3 floats)
* Rotation: defines the rotation (1 float)
* Color: RGB values (3 bytes)
* Data: number of awaycrowd, Size of crowd, ...
these values various at different the version, and not all is known
* Extra Data
these values various at different the version, and not all is known


for my dll
here s an example code :
Its possible to convert one format tô another in crowd?

and today in FIFA 16 if we make a crowd larger than around 60k seats the game crashes. Do you mean its a problem of the exporter no the game?
 


Top