Search
On FM Scout you can chat about Football Manager in real time since 2011. Here are 10 reasons to join!

Physical Constraints in FM21

Where to find and how to read the physical constraints in FM21
Started on 9 January 2021 by CAE
Latest Reply on 9 January 2021 by CAE
 
CAE's avatar Group CAE
4 yearsEdited
Extracting

You'll need to have installed the FM21 Resource Archiver from Steam tools.

  • Open the resource archiver
  • 'Extract Archive'
  • Find simatch.fmf in C:\Program Files (x86) \ Steam \ steamapps \ common \ Football Manager 2021 \ data
  • Extract to somewhere like your Desktop

Once you've extracted the archive, you'll find a directory of files that includes physical_constraints.jsb in the physics sub-directory. This file is no longer a simple JSON and is now a binary file. Therefore you'll need something like HxD (on Windows) to open it.



On the left you'll see the raw bytes (in hexadecimal) and on the right you'll see a human-readable form.

We can read the name of the keys, but the actual numerical values need decoding.

Between each key there are 6 bytes.



Start Byte

The first byte seems to be a start byte



which has a decimal value of 2 and is the same for most keys we checked.



Data Value

The next 4 bytes (i.e. 32 bits) are the actual values



In this case, it translates (little-endian) to 250.



To see how it translates, you need to look at the hex values



Here was can see those 4 bytes are 0xFA 0x00 0x00 0x00. Since they are in little-endian format, we need to reverse the order

0x00 0x00 0x00 0xFA

These can be combined

0x000000FA

or just

0xFA

We can then use a hex/dec/bin converter tool online to find this is 250 in decimal.

Check-sum?

The final byte in the packet appears to be somekind of checksum.





This is different for each key in the file and so would probably need re-calculating in the event the file was edited. Unfortunatey it does not appear to be a simple partity check sum (XOR) or sum.

Editing

If someone did want to edit the file, they'd need to calculate the correct hexadecimal values to overwrite the original ones. For example, if we wanted to change the above 250 ms into 500 ms.

1. Convert 500 in decimal to hexadecimal

0x01F4

2. Pad with leading zeroes to get 8 digits (4 bytes)

0x000001F4

3. Split into bytes

0x00 0x00 0x01 0xF4

4. Reverse order

0xF4 0x01 0x00 0x00

Overwrite the original bytes with these values using your hex editor.

Compressing

Once you've done this, you'll have to compress the extracted archive back into the simatch.fmf using the Resource Archiver.

Disclaimer

In FM20, SI did not recommend modifying the physical contraints file and this is probably why it was hidden in FM21. We are posting this simply out of interest and will not be modifying the files or releasing any 'match engine fixes'. The claims in FM20 that changing these values would improve the ME were pretty much unfounded and any changes were very subjective and imperceptible.

If you do decide to try and edit, bear in mind that you'll probably have to figure out how the checksum is calculated (or if it is even a checksum - you could try just editing the 4 bytes and leave the start and end byte the same).


CAE and fc.cadoni

You are reading "Physical Constraints in FM21".

FMS Chat

Stam
hey, just wanted to let you know that we have a fb style chat for our members. login or sign up to start chatting.