• 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]

tokke001

Senior Squad
Its possible to convert one format tô another in crowd?
There are still some unknown values
But i think it should be possible, depends wich formats maybe
Wc14 crowd is a bit more unknown yet
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?
I am not sure about the ingame limit,
But regarding the file:
it should be possible to create a crowd file with more then 60k seats

I v seen a crowd file from an older game (fifa 07, or fifa 11 i cant remember) wich had more then 60k seats :
So it was confirmed there that "number of seats" is stored as a 32bit value
 

SimIT!

Club Supporter
There are still some unknown values
But i think it should be possible, depends wich formats maybe
Wc14 crowd is a bit more unknown
If you are able to convert it into an object (obj, 3ds, etc) with the positions of the crowd, everything else can Be done by the exporter.
 

tokke001

Senior Squad

Crowd-Placement files

for the crowd-placement files there is good news :
i got a look on a ea python script for crowdplacement .dat files,
and it got the full layout for 2 file types, and are 100% confirmed now :
* 0x0103 version : for games of FIFA 07 to FIFA 14
* 0x0105 version : for games of FIFA 15 or later

the 3th type wasnt included,
so is a bit more unknown :
* 0x0104 version : game FIFA WC'14

i ll share the layout here,
but i ll also update my dll !

1. File header :

the file starts with a fileheader :
C#:
String Magic;     //"CRWD"
Ushort Version;
Uint NumSeats;

2. Seats

followed is an array of size NumSeats,
and is different for each Version

* Seat0103
if Version = 0x0103
this is for games of FIFA 07 to FIFA 14
C#:
Vector3 Position;
Float Rotation;
Byte(3) SeatColor;
Byte Section;              //home/away : 0 = all home, 255 = all away
Byte Tier;                 //
Byte Attendance;          //Size of crowd: 0 = near no crowd, 255 = full packed
Byte InfluenceArea;       //F11/14: always 127 (ea py script: unused! )
Byte Unused;        //always 51 (ea py script: unused! )
Float(4) Shade;                //lightning, 4 float Values: ussually between 0 - 1 (ea py script: Can be bytes)
Byte Animgroups;            //always 0  (ea py script: unused! )
Byte NumAccs;                //always 0  (ea py script: unused! )

* Seat0105
if Version = 0x0105
this is for games of FIFA 15 or later
C#:
Vector3 Position;
Float Rotation;
Byte(3) SeatColor;
Byte Section0;        //home/away ultra : 0 = all home, 255 = all away
Byte Section1;        //home/away neutral : 0 = all home, 255 = all away
Byte Tier;            //
Byte Attendance;    //Size of crowd: 0 = near no crowd, 255 = full packed
Byte NoChair;        //(ea py script: unused! )
Byte(3) CardColors;    //3 bytes   (ea py script: WC )
Byte CrowdPattern;    //                        
Byte(4) Pad;        //padding (empty 0 values)

* Seat0104
if Version = 0x0104
this is for the game FIFA WC'14
this wasnt found in the python code: so it is needs further testing !
C#:
Vector3 Position;
Float Rotation;
Byte(3) SeatColor;
Byte Section0;        //home/away  : 0 = all home, 255 = all away
Byte Unknown_1;        //Section1 maybe ?
Byte Unknown_2;        //Section2 maybe ?
Byte Unknown_3;        //Section4 maybe ?
Byte Unknown_4;        //Tier maybe ??
Byte Attendance;    //Size of crowd: 0 = near no crowd, 255 = full packed
Float(4) Unknown_5;    //might be bytes, maybe shading (lightning) ?? --> always 0,0,0,1
 

tokke001

Senior Squad

FIFA Library 2022 - v22.07.24


New update of my dll,
these are the main new features:

* CrowdPlacement .dat files support -update
* Updates/fixes for rx3 stadium sections (SceneInstance, SceneLayer, Location, CollisionTriMesh, Collision)
* Updates/Fixes to Dds Files (BCnEncoder.Net dll update)
* other Fixes
(see full changelog below)

ChangeLog

- Fix: error when trying get hotspot/nametable sections from memory if it is nothing

- BCnEncoder.Net
* Fix: Ddsfile - Wrong reading of BC5 textures (wrong texture size calculated)
* Updates of BCnEncoder.Shared.Ddsfile to latest version
-> BCnEncoderNet45.dll has been updated !

- added DdsExtensions
RawImages from/to DdsFile now moved, as extension functions "FromRawImages", "ToRawImages" to BCnEncoder.Shared.Ddsfile

- Fix: Corrupt DdsFile being created when the texture size from RawImage is wrong - now a size-check is added

- Updates to rx3 texture-sections (from official infos)
* renamed some 'unknown' to 'pad' (padding values)
* Rx3.TextureHeader : added Enum "EDataFormat" (flags) + code updates

- Rx3.SceneInstance
* Fix: MeshDescriptors not loaded
* Fix: MeshDescriptors shouldnt be loaded when 'Status = 0'

- Rx3.SceneLayer
* Section-Updates: Instances now as array (NumInstances added, according ea docs)

- Rx3.Location
* Fix: TotalSize not auto-calculated now, because is a random value at Rx3b files (FIFA 12/13)

- Rx3.CollisionTriMesh
Section-Updates
* Spaces added (array) (NumSpaces added, according ea docs)
* Shapes added (array) (NumShapes added)
* + other updates

- Rx3.Collision
Section-Updates
* Spaces added (array) (NumSpaces added)
* Shapes added (array) (NumShapes added)
* + other updates

- CrowdPlacement .dat files
CrowdDat.CrwdFile updated according official infos
* 0x0103 version-FileType (FIFA 07 to FIFA 14) : full confirmed
* 0x0105 version-FileType (FIFA 15 or later) : full confirmed
* 0x0104 version-FileType (FIFA WC'14) : not full, some unknown values yet


Info:

-> .NET framework 4.7.2 compatible
-> Code Examples: Here

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

GitHub (code):​

Link

Download (dll + docs):

Link
 

Death GOD 7

Club Supporter

FIFA Library 2022 - v22.07.24


New update of my dll,
these are the main new features:

* CrowdPlacement .dat files support -update
* Updates/fixes for rx3 stadium sections (SceneInstance, SceneLayer, Location, CollisionTriMesh, Collision)
* Updates/Fixes to Dds Files (BCnEncoder.Net dll update)
* other Fixes
(see full changelog below)

ChangeLog

- Fix: error when trying get hotspot/nametable sections from memory if it is nothing

- BCnEncoder.Net
* Fix: Ddsfile - Wrong reading of BC5 textures (wrong texture size calculated)
* Updates of BCnEncoder.Shared.Ddsfile to latest version
-> BCnEncoderNet45.dll has been updated !

- added DdsExtensions
RawImages from/to DdsFile now moved, as extension functions "FromRawImages", "ToRawImages" to BCnEncoder.Shared.Ddsfile

- Fix: Corrupt DdsFile being created when the texture size from RawImage is wrong - now a size-check is added

- Updates to rx3 texture-sections (from official infos)
* renamed some 'unknown' to 'pad' (padding values)
* Rx3.TextureHeader : added Enum "EDataFormat" (flags) + code updates

- Rx3.SceneInstance
* Fix: MeshDescriptors not loaded
* Fix: MeshDescriptors shouldnt be loaded when 'Status = 0'

- Rx3.SceneLayer
* Section-Updates: Instances now as array (NumInstances added, according ea docs)

- Rx3.Location
* Fix: TotalSize not auto-calculated now, because is a random value at Rx3b files (FIFA 12/13)

- Rx3.CollisionTriMesh
Section-Updates
* Spaces added (array) (NumSpaces added, according ea docs)
* Shapes added (array) (NumShapes added)
* + other updates

- Rx3.Collision
Section-Updates
* Spaces added (array) (NumSpaces added)
* Shapes added (array) (NumShapes added)
* + other updates

- CrowdPlacement .dat files
CrowdDat.CrwdFile updated according official infos
* 0x0103 version-FileType (FIFA 07 to FIFA 14) : full confirmed
* 0x0105 version-FileType (FIFA 15 or later) : full confirmed
* 0x0104 version-FileType (FIFA WC'14) : not full, some unknown values yet


Info:

-> .NET framework 4.7.2 compatible
-> Code Examples: Here

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

GitHub (code):​

Link

Download (dll + docs):

Link
Another major changes!! Lets goooo!!!
 

MR ZERO

Club Supporter
guys im new at fifa modding and think i don't know anything about at all i found this thread and i think it contain what i have been looking for all i need to do to export model from rx3 file if it possible To any file format which i can import it to blender like .fbx .obj
 

tokke001

Senior Squad

FIFA Library 2022 - v22.11.12


New update of my dll,
with some (important) fixes

(see changelog below)

ChangeLog

Code:
- Fix: reading file signatures as integer now
- Fix: mipmaps from rw4 not correctly loaded
- Fix: Values at lists not updated (List parameters at RxFile/Rx3File/Rx2File/Rx3HybridFile)


Info:

-> .NET framework 4.7.2 compatible
-> Code Examples: Here

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

GitHub (code):​

Link

Download (dll + docs):

Link
 

SimIT!

Club Supporter
Hey mate, maybe you can help me here. For converting Madden and FIFA 23 stadiums I found the information of the crowd, i have the xyz positions and orientations. I need to transform that into an obj file or the dat file directly. I could make the xyz positions, but it takes a lot of work and the orientation are not correct. Could you try something? Cheers
 

tokke001

Senior Squad

Bodytype *.scale files


File structure of the (FIFA 16) bodytype *.scale files,
files used for the body types

* ScaleFile
C#:
String Magic;        //"SCLl"
Uint Unknown_1;        //always 1    (version, number of scaledata, ...?)
Uint Unknown_2;        //always 0    (padding, index of scaledata , ... ?)
Float Height;
Float Reach;
Float HeadStall;
Uint NumAiScales;    //Number of AiScales (always 23)
List(of AiScale) AiScales;    // array of AiScale

* AiScale :
C#:
String BoneName;
Vector3 Scale;
Vector3 Trans;
Uint Unknown;    //always 1


above structure will be added to next version of this dll
FIFA 16 *.scale files are very similar to the content of FIFA 23 pc bbscale files,
i believe the values can just be 'copied'
 

moiiii

Club Supporter
Hey, my fifa 16 date is set on 2022. How can i change it to 2015 and will it affect the new players.
 

SimIT!

Club Supporter

FIFA Library 2022 - v22.07.24


New update of my dll,
these are the main new features:

* CrowdPlacement .dat files support -update
* Updates/fixes for rx3 stadium sections (SceneInstance, SceneLayer, Location, CollisionTriMesh, Collision)
* Updates/Fixes to Dds Files (BCnEncoder.Net dll update)
* other Fixes
(see full changelog below)

ChangeLog

- Fix: error when trying get hotspot/nametable sections from memory if it is nothing

- BCnEncoder.Net
* Fix: Ddsfile - Wrong reading of BC5 textures (wrong texture size calculated)
* Updates of BCnEncoder.Shared.Ddsfile to latest version
-> BCnEncoderNet45.dll has been updated !

- added DdsExtensions
RawImages from/to DdsFile now moved, as extension functions "FromRawImages", "ToRawImages" to BCnEncoder.Shared.Ddsfile

- Fix: Corrupt DdsFile being created when the texture size from RawImage is wrong - now a size-check is added

- Updates to rx3 texture-sections (from official infos)
* renamed some 'unknown' to 'pad' (padding values)
* Rx3.TextureHeader : added Enum "EDataFormat" (flags) + code updates

- Rx3.SceneInstance
* Fix: MeshDescriptors not loaded
* Fix: MeshDescriptors shouldnt be loaded when 'Status = 0'

- Rx3.SceneLayer
* Section-Updates: Instances now as array (NumInstances added, according ea docs)

- Rx3.Location
* Fix: TotalSize not auto-calculated now, because is a random value at Rx3b files (FIFA 12/13)

- Rx3.CollisionTriMesh
Section-Updates
* Spaces added (array) (NumSpaces added, according ea docs)
* Shapes added (array) (NumShapes added)
* + other updates

- Rx3.Collision
Section-Updates
* Spaces added (array) (NumSpaces added)
* Shapes added (array) (NumShapes added)
* + other updates

- CrowdPlacement .dat files
CrowdDat.CrwdFile updated according official infos
* 0x0103 version-FileType (FIFA 07 to FIFA 14) : full confirmed
* 0x0105 version-FileType (FIFA 15 or later) : full confirmed
* 0x0104 version-FileType (FIFA WC'14) : not full, some unknown values yet


Info:

-> .NET framework 4.7.2 compatible
-> Code Examples: Here

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

GitHub (code):​

Link

Download (dll + docs):

Link
Hey @tokke001 , I never undestood this correctly. Is there a way of converting WC 2014 crowds into FIFA 16 crowds?
 

tokke001

Senior Squad
Hey @tokke001 , I never undestood this correctly. Is there a way of converting WC 2014 crowds into FIFA 16 crowds?
I ll try make a console tool,
It will be able to convert crowd.dat to a txt file and visa versa

U can edit the txt files, and convert to a different game

For example:
1. Export crowd.dat to .txt

2. Edit the txt with notepad/excel/...
(Convert to a different game)

3. Import .txt to crowd.dat
 

SimIT!

Club Supporter
I ll try make a console tool,
It will be able to convert crowd.dat to a txt file and visa versa

U can edit the txt files, and convert to a different game

For example:
1. Export crowd.dat to .txt

2. Edit the txt with notepad/excel/...
(Convert to a different game)

3. Import .txt to crowd.dat
This is great mate, not only for the convertion itself, but been able o editing a crowd data on txt and also been able to export again is a great evolution
 

joelrrr2002

Club Supporter
Greetings,

I hope this message finds you well. I am relatively new to VB, and I have encountered an issue that I am seeking assistance with.

I am working on a VB project where I use the FIFALibrary22 this is for convert crowdplacement from FIFA WC 2014 to FIFA 15, and I consistently encounter a NullReferenceException at line 22, specifically at the call m_Crowd.Load(m_CurrentFileName) . The exception indicates a problem that it might be from the library, but I'm not quite sure if this the case.

Pointing that I used the example (EditCrowdDat.vb) and had to change some methods because of the name. Here's the code I have actually:

Imports FIFALibrary22
Imports Microsoft.DirectX

Module Module1

Sub Main()

EditCrowdDat()

End Sub

Sub EditCrowdDat()
' Create a new instance of CrwdFile
Dim m_Crowd As New CrowdDat.CrwdFile

' Load the file
Dim m_CurrentFileName As String = "C:\crowd_x_x.dat"
Dim FileType As CrowdDat.CrwdFileHeader.EVersion = CrowdDat.CrwdFileHeader.EVersion.TYPE_0104

' Attempt to load the file only if the file name is not empty
If Not String.IsNullOrEmpty(m_CurrentFileName) Then
m_Crowd.Load(m_CurrentFileName)

' Header info
Dim Signature As String = m_Crowd.Header.Magic ' = "CRWD"
Dim Version As CrowdDat.CrwdFileHeader.EVersion = m_Crowd.Header.Version
Dim NumSeats As UInteger = m_Crowd.Header.NumSeats

' Loop through the Crowd Data
For i = 0 To NumSeats - 1
Dim Vertices As Vector3 = m_Crowd.CrowdData(i).Position
Dim Rotation As Single = m_Crowd.CrowdData(i).Rotation
Dim Color As Byte() = m_Crowd.CrowdData(i).SeatColor

If FileType = CrowdDat.CrwdFileHeader.EVersion.TYPE_0103 Then
Dim m_CrowdStatus As CrowdDat.Seat0103 = CType(m_Crowd.CrowdData(i), CrowdDat.Seat0103)
Dim NumAwayCrowd As Byte = m_CrowdStatus.Attendance
' Handle other properties for TYPE_0103

ElseIf FileType = CrowdDat.CrwdFileHeader.EVersion.TYPE_0104 Then
Dim m_CrowdStatus As CrowdDat.Seat0104 = CType(m_Crowd.CrowdData(i), CrowdDat.Seat0104)
Dim m_Unknown As Byte = m_CrowdStatus.Unknown_1
' Handle other properties for TYPE_0104

ElseIf FileType = CrowdDat.CrwdFileHeader.EVersion.TYPE_0105 Then
Dim m_CrowdStatus As CrowdDat.Seat0105 = CType(m_Crowd.CrowdData(i), CrowdDat.Seat0105)
Dim NumAwayCrowd As Byte = m_CrowdStatus.Attendance
' Handle other properties for TYPE_0105
End If
Next

' Save the File
Dim MySaveLocation As String = "C:\crowd_x_x(converted).dat"
Dim FileType_save As CrowdDat.CrwdFileHeader.EVersion = CrowdDat.CrwdFileHeader.EVersion.TYPE_0105
m_Crowd.Save(MySaveLocation, FileType_save)
End If
End Sub

End Module

If there's a more appropriate way to handle this or if I should have approached it differently, I am open to suggestions and eager to learn. Thank you for such great library I really appreciate it, and of course, your time and assistance. Happy New Year!
 
Last edited:


Top