Difference between revisions of "Pro Evolution Soccer 2017/Edit file"
(Preliminary team data mapping) |
Two Scoops (talk | contribs) (→Team Game Plan: A few small changes related to memory reading) |
||
(8 intermediate revisions by 2 users not shown) | |||
Line 138: | Line 138: | ||
=== Player entry === | === Player entry === | ||
Things like Enforced Limits and Default Value are copied straight from the PES16 page, but they should be mostly correct.<br> | Things like Enforced Limits and Default Value are copied straight from the PES16 page, but they should be mostly correct.<br> | ||
Start: HEX block 78 <br> | |||
End: HEX block 3C3E57 <br> | |||
Entry length: 116 (0x74) bytes | |||
{| class="wikitable" | {| class="wikitable" | ||
Line 703: | Line 705: | ||
=== Player appearance entry === | === Player appearance entry === | ||
Length: 72 (0x48) bytes | Note: A player appearance entry always follows the player data entry. That's why the start and end of the entire datablock are the same as the player entry's. <br> | ||
Start: HEX block 78 <br> | |||
End: HEX block 3C3E57 <br> | |||
Entry Length: 72 (0x48) bytes | |||
{| class="wikitable" | {| class="wikitable" | ||
Line 765: | Line 770: | ||
| 0x07:4 | | 0x07:4 | ||
| 4 bits | | 4 bits | ||
| ''Unknown | | ''Unknown A'' | ||
| | | | ||
| | | | ||
Line 973: | Line 978: | ||
| 0x16:4 | | 0x16:4 | ||
| 4 bits | | 4 bits | ||
| | | Appearance: Jawline | ||
| | | In-game value plus seven | ||
| | | PES: must be in range [0, 14] | ||
| | | 7 | ||
|- | |- | ||
| 0x17:0 | | 0x17:0 | ||
| | | 4 bits | ||
| ''Unknown | | Appearance: Jaw Height | ||
| In-game value plus seven | |||
| PES: must be in range [0, 14] | |||
| 7 | |||
|- | |||
| 0x17:4 | |||
| 4 bits | |||
| Appearance: Jawline (duplicate) | |||
| Set by the game but doesn't affect anything alone | |||
| PES: must be in range [0, 14] | |||
| 7 | |||
|- | |||
| 0x18:0 | |||
| 4 bits | |||
| Appearance: Cheekbones | |||
| In-game value plus seven | |||
| PES: must be in range [0, 14] | |||
| 7 | |||
|- | |||
| 0x18:4 | |||
| 4 bits | |||
| ''Unknown B'' | |||
| | | | ||
| | | | ||
| | | | ||
|- | |- | ||
| | | 0x19:0 | ||
| | | 4 bits | ||
| | | Appearance: Cheekbones (duplicate) | ||
| Set by the game but doesn't affect anything alone | |||
| PES: must be in range [0, 14] | |||
| 7 | |||
| PES: must be in range [ | |||
| | |||
|- | |- | ||
| | | 0x19:4 | ||
| | | 4 bits | ||
| ''Unknown | | ''Unknown C'' | ||
| | | | ||
| | | | ||
| | | | ||
|- | |- | ||
| | | 0x1A:0 | ||
| | | 4 bits | ||
| ''Unknown | | ''Unknown D'' | ||
| | | | ||
| | | | ||
| | | | ||
|- | |- | ||
| | | 0x1A:4 | ||
| 4 bits | | 4 bits | ||
| | | Appearance: Brow Width | ||
| | | In-game value plus seven | ||
| PES: must be in range [0, | | PES: must be in range [0, 14] | ||
| | | 7 | ||
|- | |- | ||
| | | 0x1B:0 | ||
| 4 bits | | 4 bits | ||
| | | Appearance: Inner Eyebrow Height | ||
| | | In-game value plus seven | ||
| | | PES: must be in range [0, 14] | ||
| | | 7 | ||
|- | |- | ||
| | | 0x1B:4 | ||
| | | 4 bits | ||
| | | Appearance: Eyebrow Depth | ||
| | | In-game value plus seven | ||
| | | PES: must be in range [0, 14] | ||
| 7 | |||
|- | |- | ||
| 0x1C:0 | |||
| 4 bits | |||
| Appearance: Temple Width | |||
| In-game value plus seven | |||
| PES: must be in range [0, 14] | |||
| 7 | |||
|- | |||
| 0x1C:4 | |||
| 4 bits | |||
| Appearance: Outer Eyebrow Height | |||
| In-game value plus seven | |||
| PES: must be in range [0, 14] | |||
| 7 | |||
|- | |- | ||
| | | 0x1D:0 | ||
| 4 | | 4 bits | ||
| | | ''Unknown E'' | ||
| | | | ||
| | | | ||
| | | | ||
|- | |- | ||
| | | 0x1D:4 | ||
| | | 4 bits | ||
| | | Appearance: Pupil Size | ||
| | | In-game value plus seven | ||
| PES: must be in range [0, 14] | |||
| 7 | |||
| | |- | ||
| | | 0x1E:0 | ||
| 4 bits | |||
| Appearance: Eye Depth | |||
| In-game value plus seven | |||
| PES: must be in range [0, 14] | |||
| 7 | |||
|- | |- | ||
| | | 0x1E:4 | ||
| | | 4 bits | ||
| | | Appearance: Inner Eye Position | ||
| | | In-game value plus seven | ||
| | | PES: must be in range [0, 14] | ||
| | | 7 | ||
|- | |- | ||
| | | 0x1F:0 | ||
| | | 4 bits | ||
| | | Appearance: Inner Eye Height | ||
| | | In-game value plus seven | ||
| | | PES: must be in range [0, 14] | ||
| | | 7 | ||
|- | |- | ||
| | | 0x1F:4 | ||
| | | 4 bits | ||
| | | Appearance: Outer Eye Position | ||
| | | In-game value plus seven | ||
| | | PES: must be in range [0, 14] | ||
| | | 7 | ||
|- | |- | ||
| | | 0x20:0 | ||
| | | 4 bits | ||
| | | Appearance: Eye Corner Height | ||
| | | In-game value plus seven | ||
| | | PES: must be in range [0, 14] | ||
| | | 7 | ||
|- | |- | ||
| | | 0x20:4 | ||
| | | 4 bits | ||
| | | Appearance: Upper Eyelid Width Inner | ||
| | | In-game value plus seven | ||
| PES: | | PES: must be in range [0, 14] | ||
| | | 7 | ||
|- | |- | ||
| | | 0x21:0 | ||
| | | 4 bits | ||
| | | Appearance: Upper Eyelid Height Inner | ||
| | | In-game value plus seven | ||
| PES: | | PES: must be in range [0, 14] | ||
| | | 7 | ||
|- | |- | ||
| | | 0x21:4 | ||
| 4 bits | | 4 bits | ||
| | | Appearance: Upper Eyelid Width Outer | ||
| | | In-game value plus seven | ||
| PES: | | PES: must be in range [0, 14] | ||
| | | 7 | ||
|- | |- | ||
| | | 0x22:0 | ||
| | | 4 bits | ||
| | | Appearance: Upper Eyelid Height Outer | ||
| | | In-game value plus seven | ||
| PES: | | PES: must be in range [0, 14] | ||
| | | 7 | ||
|- | |- | ||
| | | 0x22:4 | ||
| | | 4 bits | ||
| | | ''Unknown F'' | ||
| | | | ||
| | | | ||
| | | | ||
|- | |- | ||
| | | 0x23:0 | ||
| | | 4 bits | ||
| | | Appearance: Bottom Eyelid Height | ||
| | | In-game value plus seven | ||
| PES: | | PES: must be in range [0, 14] | ||
| | | 7 | ||
|- | |- | ||
| | | 0x23:4 | ||
| | | 4 bits | ||
| | | Appearance: Horizontal Eye Position | ||
| | | In-game value plus seven | ||
| | | PES: must be in range [0, 14] | ||
| | | 7 | ||
|- | |- | ||
| | | 0x24:0 | ||
| | | 4 bits | ||
| | | Appearance: Eye Height | ||
| | | In-game value plus seven | ||
| PES: | | PES: must be in range [0, 14] | ||
| | | 7 | ||
|- | |- | ||
| | | 0x24:4 | ||
| | | 4 bits | ||
| | | Appearance: Nose Height | ||
| | | In-game value plus seven | ||
| | | PES: must be in range [0, 14] | ||
| | | 7 | ||
|- | |- | ||
| | | 0x25:0 | ||
| 4 bits | | 4 bits | ||
| | | Appearance: Nose Tip Depth | ||
| | | In-game value plus seven | ||
| PES: | | PES: must be in range [0, 14] | ||
| | | 7 | ||
|- | |- | ||
| | | 0x25:4 | ||
| 4 bits | | 4 bits | ||
| | | Appearance: Nostril Width | ||
| | | In-game value plus seven | ||
| PES: | | PES: must be in range [0, 14] | ||
| | | 7 | ||
|- | |- | ||
| | | 0x26:0 | ||
| 4 bits | | 4 bits | ||
| | | ''Unknown G'' | ||
| | |||
| | | | ||
| | | | ||
|- | |- | ||
| | | 0x26:4 | ||
| | | 4 bits | ||
| | | Appearance: Nose Depth | ||
| | | In-game value plus seven | ||
| PES: must be in range [0, 14] | |||
| 7 | |||
| | |||
| | |||
|- | |- | ||
| | | 0x27:0 | ||
| | | 4 bits | ||
| ''Unknown | | Appearance: Nose Width | ||
| In-game value plus seven | |||
| PES: must be in range [0, 14] | |||
| 7 | |||
|- | |||
| 0x27:4 | |||
| 4 bits | |||
| ''Unknown H'' | |||
| | | | ||
| | | | ||
| | | | ||
|- | |- | ||
| | | 0x28:0 | ||
| | | 4 bits | ||
| | | Appearance: Mouth Height | ||
| | | In-game value plus seven | ||
| | | PES: must be in range [0, 14] | ||
| | | 7 | ||
|- | |- | ||
| | | 0x28:4 | ||
| | | 4 bits | ||
| | | Appearance: Mouth Depth | ||
| | | In-game value plus seven | ||
| PES: must be in range [0, 14] | |||
| 7 | |||
|- | |||
| 0x29:0 | |||
| 4 bits | |||
| Appearance: Lip Size | |||
| In-game value plus seven | |||
| PES: must be in range [0, 14] | |||
| 7 | |||
|- | |||
| 0x29:4 | |||
| 4 bits | |||
| ''Unknown I'' | |||
| | |||
| | | | ||
| | | | ||
|- | |- | ||
| | | 0x2A:0 | ||
| | | 4 bits | ||
| | | Appearance: Mouth Corner Height | ||
| | | In-game value plus seven | ||
| PES: must be in range [0, 14] | |||
| 7 | |||
| | |- | ||
| | | 0x2A:4 | ||
| 4 bits | |||
| Appearance: Lip Width | |||
| In-game value plus seven | |||
| PES: must be in range [0, 14] | |||
| 7 | |||
|- | |- | ||
| | | 0x2B:0 | ||
| | | 4 bits | ||
| ' | | Appearance: Mouth Depth (duplicate) | ||
| Set by the game but doesn't affect anything alone | |||
| | | PES: must be in range [0, 14] | ||
| | | 7 | ||
|- | |- | ||
| | | 0x2B:4 | ||
| | | 4 bits | ||
| | | Appearance: Chin Width | ||
| | | In-game value plus seven | ||
| PES: must be in range [0, 14] | |||
| 7 | |||
| | |||
| | |||
|- | |- | ||
| | | 0x2C:0 | ||
| | | 4 bits | ||
| | | Appearance: Chin Height | ||
| | | In-game value plus seven | ||
| PES: must be in range [0, 14] | |||
| 7 | |||
| | |||
| | |||
|- | |- | ||
| | | 0x2C:4 | ||
| | | 4 bits | ||
| | | Appearance: Chin Depth | ||
| | | In-game value plus seven | ||
| | | PES: must be in range [0, 14] | ||
| | | 7 | ||
|- | |- | ||
| | | 0x2D:0 | ||
| 1 | | 3 bits | ||
| | | Skin color | ||
| | | Possible values are: | ||
| | * 0: Caucasian white / Transparent for custom models | ||
| | * 1-6: | ||
[[File:Skin colors 2015.jpg|thumbnail|none]] | |||
* 7: None / Transparent for custom models | |||
| PES: must be in range [1, 6] | |||
| 1 | |||
|- | |||
| 0x2D:3 | |||
| 5 bits | |||
| Appearance: Cheek Type | |||
| In-game value minus one | |||
| PES: must be in range [0, 5] | |||
| 0 | |||
|- | |- | ||
| | | 0x2E:0 | ||
| | | 3 bits | ||
| | | Appearance: Forehead Type | ||
| | | In-game value minus one | ||
| PES: must be in range [0, 6] | |||
| 0 | |||
|- | |||
| 0x2E:3 | |||
| 5 bits | |||
| Appearance: Facial Hair Type | |||
| In-game value, 0=OFF | |||
| PES: must be in range [0, 19] | |||
| 0 | |||
|- | |||
| 0x2F:0 | |||
| 3 bits | |||
| Appearance: Laughter Lines | |||
| In-game value minus one | |||
| PES: must be in range [0, 4] | |||
| 0 | |||
|- | |||
| 0x2F:3 | |||
| 3 bits | |||
| Appearance: Upper Eyelid Type | |||
| In-game value minus one | |||
| PES: must be in range [0, 7] | |||
| 0 | |||
|- | |||
| 0x2F:6 | |||
| 2 bits | |||
| ''Unknown J'' | |||
| | | | ||
| | | | ||
| | | | ||
|- | |- | ||
| | | 0x30:0 | ||
| | | 3 bits | ||
| | | Appearance: Bottom Eyelid Type | ||
| | | In-game value minus one | ||
| | | PES: must be in range [0, 6] | ||
| | | 0 | ||
|- | |- | ||
| | | 0x30:3 | ||
| | | 1 bit | ||
| | | ''Unknown K'' | ||
| | | | ||
| | | | ||
| | | | ||
|- | |- | ||
| | | 0x30:4 | ||
| 4 | | 4 bits | ||
| | | Appearance: Ear Length | ||
| | | In-game value plus seven | ||
| | | PES: must be in range [0, 14] | ||
| | | 7 | ||
|- | |- | ||
| | | 0x31:0 | ||
| 4 | | 4 bits | ||
| | | Appearance: Ear Width | ||
| In-game value plus seven | |||
| PES: must be in range [0, 14] | |||
| 7 | |||
|- | |||
| 0x31:4 | |||
| 4 bits | |||
| Appearance: Ear Angle | |||
| In-game value plus seven | |||
| PES: must be in range [0, 14] | |||
| 7 | |||
|- | |||
| 0x32:0 | |||
| 3 bits | |||
| Appearance: Eyebrow Type | |||
| In-game value minus one | |||
| PES: must be in range [0, 7] | |||
| 0 | |||
|- | |||
| 0x32:3 | |||
| 2 bits | |||
| ''Unknown L'' | |||
| | |||
| | | | ||
| | | | ||
|- | |- | ||
| | | 0x32:5 | ||
| | | 2 bits | ||
| | | Appearance: Neck Line Type | ||
| In-game value minus one | |||
| PES: must be in range [0, 3] | |||
| 0 | |||
|- | |||
| 0x32:7 | |||
| 1 bit | |||
| ''Unknown M'' | |||
| | |||
| | | | ||
| | | | ||
|- | |- | ||
| | | 0x33:0 | ||
| 4 | | 4 bits | ||
| | | Appearance: Face Size | ||
| In-game value plus seven | |||
| PES: must be in range [0, 14] | |||
| 7 | |||
|- | |||
| 0x33:4 | |||
| 4 bits | |||
| Appearance: Face Height | |||
| In-game value plus seven | |||
| PES: must be in range [0, 14] | |||
| 7 | |||
|- | |||
| 0x34:0 | |||
| 3 bits | |||
| Appearance: Nose Type | |||
| In-game value minus one | |||
| PES: must be in range [0, 7] | |||
| 0 | |||
|- | |||
| 0x34:3 | |||
| 5 bits | |||
| ''Unknown N'' | |||
| | | | ||
| | | | ||
| | | | ||
|- | |- | ||
| | | 0x35:0 | ||
| | | 3 bits | ||
| | | Appearance: Upper Lip Type | ||
| | | In-game value minus one | ||
| | | PES: must be in range [0, 4] | ||
| | | 0 | ||
|- | |- | ||
| | | 0x35:3 | ||
| | | 3 bits | ||
| | | Appearance: Lower Lip Type | ||
| | | In-game value minus one | ||
| | | PES: must be in range [0, 4] | ||
| | | 0 | ||
|- | |- | ||
| | | 0x35:6 | ||
| | | 6 bits | ||
| | | Appearance: Hair Colour Red | ||
| | | | ||
| | | PES: must be in range [0, 63] | ||
| | | | ||
|- | |- | ||
| | | 0x36:4 | ||
| | | 6 bits | ||
| | | Appearance: Hair Colour Green | ||
| | | | ||
| | | PES: must be in range [0, 63] | ||
| | | | ||
|- | |- | ||
| | | 0x37:2 | ||
| | | 6 bits | ||
| | | Appearance: Hair Colour Blue | ||
| | | | ||
| | | PES: must be in range [0, 63] | ||
| | | | ||
|- | |- | ||
| | | 0x38:0 | ||
| | | 3 bits | ||
| | | Appearance: Hairstyle | ||
| | | 1=Normal, 2=Dry, 3=Mohican, 4=Afro, 5=Dreadlocks, 6=Braided, 7=Special | ||
| | | PES: must be in range [1, 7] | ||
| | | 1 | ||
|- | |- | ||
| | | 0x38:3 | ||
| 1 | | 1 bit | ||
| | | ''Unknown O'' | ||
| | | | ||
| | | | ||
| | | | ||
|- | |||
| 0x38:4 | |||
| 3 bits | |||
| Appearance: Cropped Hair Style | |||
| | |||
| PES: must be in range [1, 6] | |||
| 1 | |||
|- | |- | ||
| | | 0x38:7 | ||
| 1 | | 1 bit | ||
| | | ''Unknown P'' | ||
| | | | ||
| | | | ||
| | | | ||
|- | |- | ||
| | | 0x39:0 | ||
| | | 6 bits | ||
| | | Appearance: Eyebrow Colour Red | ||
| | | | ||
| | | PES: must be in range [0, 63] | ||
| | | | ||
|- | |- | ||
| | | 0x39:6 | ||
| | | 2 bits | ||
| | | Appearance: Eyebrow Style | ||
| | | 0=Normal, 1=Thick, 2=Thin | ||
| | | PES: must be in range [0, 2] | ||
| | | 0 | ||
|- | |- | ||
| | | 0x3A:0 | ||
| | | 6 bits | ||
| | | Appearance: Eyebrow Colour Green | ||
| | | | ||
| PES: must be in range [0, 63] | |||
| | | | ||
|- | |- | ||
| | | 0x3A:6 | ||
| | | 2 bits | ||
| | | Appearance: Eyebrow Density | ||
| | | | ||
| | | PES: must be in range [0, 3] | ||
| 3 | |||
|- | |- | ||
| | | 0x3B:0 | ||
| | | 6 bits | ||
| | | Appearance: Eyebrow Colour Blue | ||
| | | | ||
| PES: must be in range [0, 63] | |||
| | | | ||
|- | |- | ||
| | | 0x3B:6 | ||
| | | 2 bits | ||
| | | Appearance: Eyebrow Thickness | ||
| | | | ||
| | | PES: must be in range [0, 2] | ||
| 1 | |||
|- | |||
| 0x3C:0 | |||
| 3 bits | |||
| Appearance: Hair Length | |||
| 1=Shaven, 2=Very Short, 3=Short, 4=Medium, 5=Long | |||
| PES: must be in range [1, 5] | |||
| 2 | |||
|- | |||
| 0x3C:3 | |||
| 3 bits | |||
| Appearance: Wave Level | |||
| In-game value plus one | |||
| PES: must be in range [1, 7] | |||
| 1 | |||
|- | |- | ||
| | | 0x38:7 | ||
| | | 1 bit | ||
| | | ''Unknown Q'' | ||
| | | | ||
| | |||
| | | | ||
|- | |- | ||
| | | 0x3D:0 | ||
| | | 1 bit | ||
| | | Appearance: Hair Accessories | ||
| 0=OFF, 1=ON | |||
| PES: must be in range [0, 1] | |||
| 0 | |||
|- | |||
| 0x3D:1 | |||
| 3 bits | |||
| Appearance: Hair Accessory Colour | |||
| | | | ||
| | | PES: must be in range [0, 7] | ||
| 0 | |||
|- | |- | ||
| 0x3D:4 | |||
| 6 bits | |||
| Appearance: Facial Hair Colour Red | |||
| | |||
| PES: must be in range [0, 63] | |||
| | |||
|- | |- | ||
| | | 0x3E:2 | ||
| | | 6 bits | ||
| | | Appearance: Facial Hair Colour Green | ||
| | | | ||
| PES: must be | | PES: must be in range [0, 63] | ||
| | | | ||
|- | |- | ||
| | | 0x3F:0 | ||
| 2 | | 6 bits | ||
| | | Appearance: Facial Hair Colour Blue | ||
| | | | ||
| | | PES: must be in range [0, 63] | ||
| | | | ||
|- | |||
| 0x3F:6 | |||
| 2 bits | |||
| Appearance: Facial Hair Thickness | |||
| | |||
| PES: must be in range [0, 3] | |||
| 3 | |||
|- | |||
| 0x40:0 | |||
| 4 bits | |||
| Iris color | |||
| [[File:Eyeofthepony.png]] | |||
| PES: must be in range [0, 10] | |||
| 1 | |||
|- | |||
| 0x40:4 | |||
| 5 bits | |||
| Hair Variation | |||
| | |||
| PES: must be in range [1, 29] | |||
| 1 | |||
|- | |- | ||
| | | 0x41:1 | ||
| | | 7 bytes | ||
| | | ''Unknown R'' | ||
| | |||
| | | | ||
| | | | ||
|} | |||
=== Team entry === | |||
Start: HEX block 3C3E58 <br> | |||
End: HEX block 410117 <br> | |||
Entry Length: 480 (0x1E0) bytes | |||
|} | |||
=== | |||
Length: | |||
{| class="wikitable" | {| class="wikitable" | ||
Line 1,546: | Line 1,638: | ||
! Enforced limits | ! Enforced limits | ||
! Default value | ! Default value | ||
|- | |- | ||
| 0x000:0 | |||
| 4 bytes | |||
| Team ID | |||
| | |||
| 4 bytes | |||
| | |||
| | | | ||
| PES: must be unique | | PES: must be unique | ||
| | | | ||
|- | |- | ||
| | | 0x004:0 | ||
| | | 4 bytes | ||
| | | Manager ID | ||
| | | | ||
| | | | ||
| | | | ||
|- | |- | ||
| 0x008:0 | |||
| 2 bytes | |||
| Team Emblem | |||
| | |||
| | |||
| Team | |||
| | | | ||
* 0xFF if using default emblem | |||
* References loaded emblem number if not | |||
| | | | ||
| | |||
|- | |- | ||
| | | 0x00A:0 | ||
| | | 2 bytes | ||
| | | Home Stadium | ||
| | | References a Stadium ID | ||
| | |||
| | | | ||
|- | |- | ||
| | | 0x00C:0 | ||
| | | 2 bytes | ||
| | | ''Unknown A'' | ||
| | | | ||
| | |||
| 0xFF | |||
|- | |||
| 0x00E:0 | |||
| 2 bytes | |||
| Team Nationality | |||
| References a Nation ID | |||
| | |||
| | | | ||
|- | |- | ||
| 0x010:0 | |||
| 2 bytes | |||
| Team Callname | |||
| References a Callname ID | |||
| | |||
| 0xFF | |||
|- | |- | ||
| | | 0x012:0 | ||
| 6 bits | |||
| Team Colour 1 Red | |||
| | |||
| PES: Must be in range [0-63] | |||
| | |||
|- | |- | ||
| 0x012:6 | |||
| 6 bits | |||
| Team Colour 1 Green | |||
| | |||
| PES: Must be in range [0-63] | |||
| | |||
|- | |- | ||
| 0x013:4 | |||
| 4 bits | |||
| Stadium Net Design | |||
| | |||
| PES: Must be in range [1-15] | |||
| | |||
|- | |||
| 0x014:0 | |||
| 6 bits | |||
| Team Colour 2 Red | |||
| | |||
| PES: Must be in range [0-63] | |||
| | |||
|- | |||
| 0x014:6 | |||
| 6 bits | |||
| Team Colour 2 Green | |||
| | |||
| PES: Must be in range [0-63] | |||
| | |||
|- | |||
| 0x015:4 | |||
| 6 bits | |||
| Team Colour 2 Blue | |||
| | |||
| PES: Must be in range [0-63] | |||
| | |||
|- | |||
| 0x016:2 | |||
| 6 bits | |||
| Team Colour 1 Blue | |||
| | |||
| PES: Must be in range [0-63] | |||
| | |||
|- | |||
| 0x017:0 | |||
| 1 bit | |||
| Stadium Net Design | |||
| | |||
| PES: Must be in range [0-1] | |||
| | |||
|- | |||
| 0x017:1 | |||
| 3 bits | |||
| ''Unknown B'' | |||
| | |||
| | |||
| | |||
|- | |||
| 0x017:4 | |||
| 2 bits | |||
| Stadium Goal Type | |||
| | |||
| PES: Must be in range [0-3] | |||
| | |||
|- | |||
| 0x017:6 | |||
| 2 bits | |||
| ''Unknown C'' | |||
| | |||
| | |||
| | |||
|- | |||
| 0x018:0 | |||
| 4 bits | |||
| Stadium Turf Pattern | |||
| | |||
| PES: Must be in range [1-8] | |||
| | |||
|- | |||
| 0x018:4 | |||
| 4 bits | |||
| Stadium Sideline Colour | |||
| | |||
| PES: Must be in range [1-8] | |||
| | |||
|- | |||
| 0x019:0 | |||
| 4 bits | |||
| Stadium Seat Colour | |||
| | |||
| PES: Must be in range [1-8] | |||
| | |||
|- | |||
| 0x019:4 | |||
| 1 bit | |||
| Team Name Edited Flag | |||
| Flag that tells if team name has been changed or still default: | |||
* 0 - Default | |||
* 1 - Changed | |||
| | |||
| | |||
|- | |||
| 0x019:5 | |||
| 1 bit | |||
| Team Stadium Changed Flag | |||
| Flag that tells if team has its stadium changed or default: | |||
* 0 - Default | |||
* 1 - Changed | |||
| | |||
| | |||
|- | |||
| 0x019:6 | |||
| 1 bit | |||
| ''Unknown D'' | |||
| | |||
| | |||
| | |||
|- | |||
| 0x019:7 | |||
| 1 bit | |||
| Stadium Name Edited Flag | |||
| Flag that tells if team has its stadium name changed or default: | |||
* 0 - Default | |||
* 1 - Changed | |||
| | |||
| | |||
|- | |||
| 0x01A:0 | |||
| 1 bit | |||
| ''Unknown E'' | |||
| | |||
| | |||
| | |||
|- | |||
| 0x01A:1 | |||
| 1 bit | |||
| Stadium Settings Edited Flag | |||
| Flag that tells if team has its stadium settings changed or default: | |||
* 0 - Default | |||
* 1 - Changed | |||
| | |||
| | |||
|- | |||
| 0x01A:2 | |||
| 1 bit | |||
| Rival Team Edited Flag | |||
| Flag that tells if team has its rival teams changed or default: | |||
* 0 - Default | |||
* 1 - Changed | |||
| | |||
| | |||
|- | |||
| 0x01A:3 | |||
| 1 bit | |||
| Team Banners Edited Flag | |||
| Flag that tells if team has its banners changed or default: | |||
* 0 - Default | |||
* 1 - Changed | |||
| | |||
| | |||
|- | |||
| 0x01A:4 | |||
| 1 bit | |||
| ''Unknown F'' | |||
| | |||
| | |||
| | |||
|- | |||
| 0x01A:5 | |||
| 1 bit | |||
| Team Strip Edited Flag | |||
| Flag that tells if team has its strip changed or default: | |||
* 0 - Default | |||
* 1 - Changed | |||
| | |||
| | |||
|- | |||
| 0x01A:6 | |||
| 1 bit | |||
| Team Manager Changed Flag | |||
| Flag that tells if team has its manager changed or default: | |||
* 0 - Default | |||
* 1 - Changed | |||
| | |||
| | |||
|- | |||
| 0x01A:7 | |||
| 1 bit | |||
| ''Unknown G'' | |||
| | |||
| | |||
| | |||
|- | |||
| 0x01B:0 | |||
| 1 byte | |||
| ''Unknown H'' | |||
| | |||
| | |||
| | |||
|- | |||
| 0x01C:0 | |||
| 4 bytes | |||
| Team Strip 1 | |||
| | |||
* 1st byte = Number of kit starting from 00, or 0x80 if goalkeeper | |||
* Next 3 bytes = Team ID * 0x4000 | |||
* These apply to all the kit entries below as well | |||
| | |||
| | |||
|- | |||
| 0x020:0 | |||
| 4 bytes | |||
| Team Strip 2 | |||
| | |||
| | |||
| | |||
|- | |||
| 0x024:0 | |||
| 4 bytes | |||
| Team Strip 3 | |||
| | |||
| | |||
| | |||
|- | |||
| 0x028:0 | |||
| 4 bytes | |||
| Team Strip 4 | |||
| | |||
| | |||
| | |||
|- | |||
| 0x02C:0 | |||
| 4 bytes | |||
| Team Strip 5 | |||
| | |||
| | |||
| | |||
|- | |||
| 0x030:0 | |||
| 4 bytes | |||
| Team Strip 6 | |||
| | |||
| | |||
| | |||
|- | |||
| 0x034:0 | |||
| 4 bytes | |||
| Team Strip 7 | |||
| | |||
| | |||
| | |||
|- | |||
| 0x038:0 | |||
| 4 bytes | |||
| Team Strip 8 | |||
| | |||
| | |||
| | |||
|- | |||
| 0x03C:0 | |||
| 4 bytes | |||
| Team Strip 9 | |||
| | |||
| | |||
| | |||
|- | |||
| 0x040:0 | |||
| 4 bytes | |||
| Team Strip 10 | |||
| | |||
| | |||
| | |||
|- | |||
| 0x044:0 | |||
| 4 bytes | |||
| Rival Team 1 | |||
| References a Team ID | |||
| | |||
| | |||
|- | |||
| 0x048:0 | |||
| 4 bytes | |||
| Rival Team 2 | |||
| References a Team ID | |||
| | |||
| | |||
|- | |||
| 0x04C:0 | |||
| 4 bytes | |||
| Rival Team 3 | |||
| References a Team ID | |||
| | |||
| | |||
|- | |||
| 0x050:0 | |||
| 44 bytes | |||
| ''Unknown I'' | |||
| | |||
| | |||
| | |||
|- | |||
| 0x094:0 | |||
| 1 byte | |||
| Banner 1 Edited Flag | |||
| Special case, 0x00 always | |||
| | |||
| | |||
|- | |||
| 0x095:0 | |||
| 1 byte | |||
| Banner 2 Edited Flag | |||
| 0x00 if not edited, 0x01 if edited | |||
| | |||
| | |||
|- | |||
| 0x096:0 | |||
| 1 byte | |||
| Banner 3 Edited Flag | |||
| 0x00 if not edited, 0x02 if edited | |||
| | |||
| | |||
|- | |||
| 0x097:0 | |||
| 1 byte | |||
| Banner 4 Edited Flag | |||
| 0x00 if not edited, 0x03 if edited | |||
| | |||
| | |||
|- | |||
| 0x098:0 | |||
| 70 bytes | |||
| Team Name | |||
| Null-terminated string | |||
| | |||
| | |||
|- | |||
| 0x0DE:0 | |||
| 4 bytes | |||
| Scoreboard name | |||
| Null-terminated string | |||
| | |||
| | |||
|- | |||
| 0x0E2:0 | |||
| 121 bytes | |||
| Custom Stadium Name | |||
| Null-terminated string | |||
| | |||
| | |||
|- | |||
| 0x15B:0 | |||
| 16 bytes | |||
| Banner 1 Text | |||
| Null-terminated string | |||
| | |||
| | |||
|- | |||
| 0x16B:0 | |||
| 16 bytes | |||
| Banner 2 Text | |||
| Null-terminated string | |||
| | |||
| | |||
|- | |||
| 0x17B:0 | |||
| 16 bytes | |||
| Banner 3 Text | |||
| Null-terminated string | |||
| | |||
| | |||
|- | |||
| 0x18B:0 | |||
| 16 bytes | |||
| Banner 4 Text | |||
| Null-terminated string | |||
| | |||
| | |||
|- | |||
| 0x19B:0 | |||
| 69 bytes | |||
| ''Unknown J'' | |||
| | |||
| | |||
| | |||
|} | |||
=== Manager entry === | |||
Start: HEX block 410118 <br> | |||
End: HEX block 422547 <br> | |||
Entry Length: 88 (0x58) bytes | |||
{| class="wikitable" | |||
|- | |||
! Offset (byte:bit) | |||
! Length | |||
! Description | |||
! Format | |||
! Enforced limits | |||
! Default value | |||
|- | |||
| 0x00:0 | |||
| 4 bytes | |||
| Manager ID | |||
| | |||
| PES: must be unique | |||
| | |||
|- | |||
| 0x04:0 | |||
| 2 bytes | |||
| Manager Nationality | |||
| | |||
| | |||
| | |||
|- | |||
| 0x06:0 | |||
| 2 bytes | |||
| Manager picture ID | |||
| | |||
| | |||
| 0xFFFF | |||
|- | |||
| 0x08:0 | |||
| 1 byte | |||
| ''Unknown A'' | |||
| | |||
| | |||
| 0x60 | |||
|- | |||
| 0x09:0 | |||
| 79 bytes | |||
| Manager Name | |||
| | |||
| | |||
| | |||
|- | |||
|} | |||
=== Competitions === | |||
Start: HEX block 422548 <br> | |||
End: HEX block 423D7F <br> | |||
Entry Length: 124 (0x7C) bytes | |||
{| class="wikitable" | |||
|- | |||
! Offset (byte:bit) | |||
! Length | |||
! Description | |||
! Format | |||
! Enforced limits | |||
! Default value | |||
|} | |||
=== Stadium Name === | |||
Start: HEX block 423D80 <br> | |||
End: HEX block 42517F <br> | |||
Entry Length: 128 (0x80) bytes | |||
{| class="wikitable" | |||
|- | |||
! Offset (byte:bit) | |||
! Length | |||
! Description | |||
! Format | |||
! Enforced limits | |||
! Default value | |||
|- | |||
| 0x00:0 | |||
| 4 bytes | |||
| Stadium ID | |||
| | |||
| PES: must be unique | |||
| | |||
|- | |||
| 0x04:0 | |||
| 124 bytes | |||
| Stadium Name | |||
| PES: must not exceed 40 characters | |||
| | |||
| | |||
|} | |||
=== Unknown section === | |||
This section is located between the Stadium name and Team Player tables, but has not been documented yet.<br> | |||
Start: HEX block 425180 <br> | |||
End: HEX block 475A8F <br> | |||
Entry Length: 132 (0x84) bytes | |||
=== Team-Player table === | |||
The Team-Player table is what links a Player ID to a Team ID. It is basically a Team ID, followed by a list of 32 Player IDs that correspond to the players in that team, then the respective shirt numbers for those players.<br> | |||
Start: HEX block 475A90 <br> | |||
End: HEX block 48FAF7 <br> | |||
Entry Length: 164 (0xA4) bytes | |||
{| class="wikitable" | |||
|- | |||
! Offset (byte:bit) | |||
! Length | |||
! Description | |||
! Format | |||
! Enforced limits | |||
! Default value | |||
|- | |||
| 0x00:0 | |||
| 4 bytes | |||
| Team ID | |||
| | |||
| PES: must be unique | |||
| | |||
|- | |||
| 0x04:0 | |||
| 128 bytes | |||
| Player IDs / Index IDs | |||
| 32 x 4 bytes | |||
This table also assigns (what I would like to call them anyways) Index IDs.<br> | |||
The first player in the table will get the Index ID 0x00, the second will get 0x01, and if your team has 32 players, the 32nd will get 0x1F.<br> | |||
These Index IDs are then used for the Game Plan menu to assign players to positions. | |||
| | |||
| 0x00000000 (no player) | |||
|- | |||
| 0x84:0 | |||
| 32 bytes | |||
| Shirt Numbers | |||
| 32 x 1 bytes | |||
| | |||
| | |||
|} | |||
=== Competition Entry === | |||
This section does not use separators nor do individual sections have a fixed length.<br> | |||
It is almost a continued list of Team IDs (length: 4 bytes) that will determine what team plays in what league. For example, the first 20 team IDs are teams that will play in the English League. Right after that you get 20 team IDs that will play in the English 2nd Division. Therefore this section will be slightly different from the other ones. 0xFFFF0300 is used to mark 'no team' in the list. | |||
Start: HEX block 48FAF8 <br> | |||
End: HEX block 49063F <br> | |||
Entry Length: 2888 (0xB48) bytes (whole section) | |||
{| class="wikitable" | |||
|- | |||
! Offset (byte:bit) | |||
! Length | |||
! Amount of teams | |||
! League/Cup | |||
|- | |||
|} | |||
=== Team Game Plan === | |||
In addition to storing saved tactics in the Edit File, this exact same structure is present in PES memory for both teams during a match and pre-match (after team select) and contains the currently set tactics for each team. <br>Some values or settings may be marked "invalid in Edit Mode" or "pre-match only" to indicate that PES cannot be used to set them in the Edit File.<br> | |||
Start: HEX block 490640 <br> | |||
End: HEX block 505B03 <br> | |||
Entry Length: 628 (0x274) bytes | |||
{| class="wikitable" | |||
|- | |||
! Offset (byte:bit) | |||
! Length | |||
! Description | |||
! Format | |||
! Enforced limits | |||
! Default value | |||
|- | |||
| 0x000:0 | |||
| 4 bytes | |||
| Team ID | |||
| | |||
| | |||
* PES: must be unique | |||
* 0x03FFFF if the team slot is not used | |||
| | |||
|- | |||
! 0x004:0 | |||
! 160 bytes | |||
! Preset Tactics 1: Main (Offensive) | |||
! ''see below'' (add 0x004 to all offsets) | |||
! | |||
! | |||
|- | |||
| 0x000:0 | |||
| 11 bytes | |||
| Player Positions | |||
* Kick-off | |||
| 11 x 1 byte<br> | |||
The first byte is the first player in the Player Lineup, the second byte is the second player in the Player Lineup, etc..<br> | |||
Possible values are: | |||
* 0C - Centre Forward | |||
* 0B - Second Striker | |||
* 0A - Right Wing Forward | |||
* 09 - Left Wing Forward | |||
* 08 - Attacking Midfielder | |||
* 07 - Right Midfielder | |||
* 06 - Left Midfielder | |||
* 05 - Centre Midfielder | |||
* 04 - Defensive Midfielder | |||
* 03 - Right Back | |||
* 02 - Left Back | |||
* 01 - Centre Back | |||
* 00 - Goalkeeper | |||
| | |||
| | |||
|- | |||
| 0x00B:0 | |||
| 22 bytes | |||
| Player Coordinates | |||
* Kick-off | |||
| 11 x 2 bytes<br> | |||
The first byte pair is the first player in the Player Lineup, the second byte pair is the second player in the Player Lineup, etc..<br> | |||
* First byte is the vertical position (from bottom to top) | |||
* Second byte is the horizontal position (from left to right) | |||
| GK is always 03 34 | |||
| | |||
|- | |||
| 0x021:0 | |||
| 11 bytes | |||
| Player Positions | |||
* When in possession | |||
| 11 x 1 byte | |||
| | |||
| | |||
|- | |||
| 0x02C:0 | |||
| 22 bytes | |||
| Player Coordinates | |||
* When in possession | |||
| 11 x 2 bytes | |||
| | |||
| | |||
|- | |||
| 0x042:0 | |||
| 11 bytes | |||
| Player Positions | |||
* When out of possession | |||
| 11 x 1 byte | |||
| | |||
| | |||
|- | |||
| 0x04D:0 | |||
| 22 bytes | |||
| Player Coordinates | |||
* When out of possession | |||
| 11 x 2 bytes | |||
| | |||
| | |||
|- | |||
| 0x063:0 | |||
| 1 byte | |||
| Attacking Style | |||
| | |||
* 0 - Counter Attack | |||
* 1 - Possession Game | |||
| | |||
| | |||
|- | |||
| 0x064:0 | |||
| 1 byte | |||
| Build Up | |||
| | |||
* 0 - Long-pass | |||
* 1 - Short-pass | |||
| | |||
| | |||
|- | |||
| 0x065:0 | |||
| 1 byte | |||
| Attacking Area | |||
| | |||
* 0 - Wide | |||
* 1 - Centre | |||
| | |||
| | |||
|- | |||
| 0x066:0 | |||
| 1 byte | |||
| Positioning | |||
| | |||
* 0 - Maintain Formation | |||
* 1 - Flexible | |||
| | |||
| | |||
|- | |||
| 0x067:0 | |||
| 1 byte | |||
| Defensive Styles | |||
| | |||
* 0 - Frontline Pressure | |||
* 1 - All-out Defence | |||
| | |||
| | |||
|- | |||
| 0x068:0 | |||
| 1 byte | |||
| Containment Area | |||
| | |||
* 0 - Middle | |||
* 1 - Wide | |||
| | |||
| | |||
|- | |||
| 0x069:0 | |||
| 1 byte | |||
| Pressuring | |||
| | |||
* 0 - Aggressive | |||
* 1 - Conservative | |||
| | |||
| | |||
|- | |||
| 0x06A:0 | |||
| 2 bytes | |||
| ''Unknown A'' | |||
| Padding? | |||
| | |||
| 0x0000 | |||
|- | |||
| 0x06C:0 | |||
| 1 byte | |||
| Attack1 (Advanced Instructions) | |||
| | |||
Advanced Instruction ID: | |||
* 0x00 - OFF | |||
* 0x01 - Hug the Touchline | |||
* 0x02 - False No. 9 | |||
* 0x03 - False Full Backs | |||
* 0x04 - Attacking Full Backs | |||
* 0x05 - Wing Rotation | |||
* 0x06 - Tiki-Taka | |||
* 0x07 - Centering Targets | |||
* 0x08 - Swarm the Box | |||
* 0x09 - Deep Defensive Line | |||
* 0x0A - Gegenpress | |||
* 0x0B - Tight Marking (invalid in Edit Mode) | |||
* 0x0C - Counter Target | |||
| OFF and attacking instructions (0x00-0x07) | |||
| 0x00 | |||
|- | |||
| 0x06D:0 | |||
| 3 bytes | |||
| ''Unknown B'' (Attack1) | |||
| | |||
| | |||
| | |||
|- | |||
| 0x070:0 | |||
| 1 byte | |||
| Targeted Player (Attack1) | |||
| Unused | |||
| 0x00 | |||
| | |||
|- | |||
| 0x071:0 | |||
| 3 bytes | |||
| ''Unknown C'' (Attack1) | |||
| | |||
| | |||
| | |||
|- | |||
| 0x074:0 | |||
| 1 byte | |||
| Attack2 | |||
| Advanced Instruction ID | |||
| OFF and attacking instructions (0x00-0x07) | |||
| 0x00 | |||
|- | |||
| 0x075:0 | |||
| 3 bytes | |||
| ''Unknown B'' (Attack2) | |||
| | |||
| | |||
| | |||
|- | |||
| 0x078:0 | |||
| 1 byte | |||
| Targeted Player (Attack2) | |||
| Unused | |||
| 0x00 | |||
| | |||
|- | |||
| 0x079:0 | |||
| 3 bytes | |||
| ''Unknown C'' (Attack2) | |||
| | |||
| | |||
| | |||
|- | |||
| 0x07C:0 | |||
| 1 byte | |||
| Defence1 | |||
| Advanced Instruction ID | |||
| OFF and defending instructions (0x00, 0x08-0x0C), except Tight Marking (0x0B) in Edit Mode | |||
| 0x00 | |||
|- | |||
| 0x07D:0 | |||
| 3 bytes | |||
| ''Unknown B'' (Defence1) | |||
| | |||
| | |||
| | |||
|- | |||
| 0x080:0 | |||
| 1 byte | |||
| Targeted Player (Defence1) | |||
| Index ID of the player selected for Counter Target or Tight Marking, 0x00 when neither are selected | |||
| 0x01-0x0A | |||
| | |||
|- | |||
| 0x081:0 | |||
| 3 bytes | |||
| ''Unknown C'' (Defence1) | |||
| | |||
| | |||
| | |||
|- | |||
| 0x084:0 | |||
| 1 byte | |||
| Defence2 | |||
| Advanced Instruction ID | |||
| OFF and defending instructions (0x00, 0x08-0x0C), except Tight Marking (0x0B) in Edit Mode | |||
| 0x00 | |||
|- | |||
| 0x085:0 | |||
| 3 bytes | |||
| ''Unknown B'' (Defence2) | |||
| | |||
| | |||
| | |||
|- | |||
| 0x088:0 | |||
| 1 byte | |||
| Targeted Player (Defence2) | |||
| Index ID of the player selected for Counter Target or Tight Marking, 0x00 when neither are selected | |||
| 0x01-0x0A | |||
| | |||
|- | |||
| 0x089:0 | |||
| 3 bytes | |||
| ''Unknown C'' (Defence2) | |||
| | |||
| | |||
| | |||
|- | |||
| 0x08C:0 | |||
| 1 byte | |||
| Support range | |||
| 1 - 10 slider | |||
| 01 - 0A in PES | |||
| | |||
|- | |||
| 0x08D:0 | |||
| 1 byte | |||
| Numbers in attack? | |||
| Unused | |||
| set to 3 (Many in PES16) | |||
| | |||
|- | |||
| 0x08E:0 | |||
| 1 byte | |||
| Defensive Line | |||
| 1 - 10 slider | |||
| 01 - 0A in PES | |||
| | |||
|- | |||
| 0x08F:0 | |||
| 1 byte | |||
| Compactness | |||
| 1 - 10 slider | |||
| 01 - 0A in PES | |||
| | |||
|- | |||
| 0x090:0 | |||
| 1 byte | |||
| Numbers in defence? | |||
| Unused | |||
| Set to 3 (Many in PES16) | |||
| | |||
|- | |||
| 0x091:0 | |||
| 11 bytes | |||
| Manmarking | |||
| 11 x 1 bytes | |||
Each byte refers to a Index ID of a player on the other team that will be marked. (Invalid in Edit Mode) | |||
| 0xFF = No Player marked | |||
| 0xFF x 11 | |||
|- | |||
| 0x09C:0 | |||
| 1 byte | |||
| Fluid Formation | |||
| Whether the team's Offensive game plan uses Fluid Formations (1) or not (0). | |||
| | |||
| 0 | |||
|- | |||
| 0x09D:0 | |||
| 3 bytes | |||
| ''Unknown D'' | |||
| Padding? | |||
| | |||
| 0x000000 | |||
|- | |||
! 0x0A4:0 | |||
! 160 bytes | |||
! Preset Tactics 2: Defensive | |||
! ''see above'' (add 0x0A4 to all offsets) | |||
! | |||
! | |||
|- | |||
! 0x144:0 | |||
! 160 bytes | |||
! Preset Tactics 3: Custom | |||
! ''see above'' (add 0x144 to all offsets) | |||
! | |||
! | |||
|- | |||
| 0x1E4:0 | |||
| 32 bytes | |||
| Player Lineup | |||
| 32 bytes | |||
This is a list of 32 Index IDs (explained below Team Player table) that determine the team's lineup.<br> | |||
The first Index ID in the list will be the GK. Then the next 10 are all the outfield players. The remaining players will then fill the bench from the top down. | |||
| | |||
| | |||
|- | |||
| 0x204:0 | |||
| 1 byte | |||
| Long FK Taker | |||
| Index ID of the player to take the Long FKs. | |||
| | |||
| | |||
|- | |||
| 0x205:0 | |||
| 1 byte | |||
| Short FK Taker | |||
| Index ID of the player to take the Short FKs. | |||
| | |||
| | |||
|- | |||
| 0x206:0 | |||
| 1 byte | |||
| FK Taker 2 | |||
| Index ID of the player to be backup for FKs. | |||
| | |||
| | |||
|- | |||
| 0x207:0 | |||
| 1 byte | |||
| Left CK Taker | |||
| Index ID of the player to take the Left CKs. | |||
| | |||
| | |||
|- | |||
| 0x208:0 | |||
| 1 byte | |||
| Right CK Taker | |||
| Index ID of the player to take the Right CKs. | |||
| | |||
| | |||
|- | |||
| 0x209:0 | |||
| 1 byte | |||
| PK Taker | |||
| Index ID of the player to take the Right CKs. | |||
| | |||
| | |||
|- | |||
| 0x20A:0 | |||
| 3 bytes | |||
| Players to Join Attack | |||
| 3 x 1 byte | |||
Index ID of the players to join the attack. | |||
| 0xFF = No Player | |||
| 0xFF FF FF | |||
|- | |||
| 0x20D:0 | |||
| 1 byte | |||
| Captain | |||
| Index ID of the player to be the Captain. | |||
| | |||
| | |||
|- | |||
| 0x20E:0 | |||
| 1 byte | |||
| Auto Substitution | |||
| | |||
* 00 - Off | |||
* 01 - Very Late | |||
* 02 - Flexible | |||
* 03 - Very Early | |||
| | |||
| 0 | |||
|- | |||
| 0x20F:0 | |||
| 1 byte | |||
| Auto Offside Trap | |||
| Whether the team uses Auto Offside Trap (1) or not (0). | |||
| | |||
| 0 | |||
|- | |||
| 0x210:0 | |||
| 1 byte | |||
| Auto change Preset Tactics | |||
| Whether the team uses Auto Change Preset Tactics (1) or not (0). | |||
| | |||
| 0 | |||
|- | |||
| 0x211:0 | |||
| 1 byte | |||
| Auto Change Attack/Defence Level | |||
| Whether the team uses Auto Change Attack/Defence Level (1) or not (0). | |||
| | |||
| 0 | |||
|- | |||
| 0x212:0 | |||
| 1 byte | |||
| Auto Lineup Select | |||
| | |||
* 0 - Unedited | |||
* 2 - By Ability | |||
* 3 - No Preference (Pre-match only) | |||
* 4 - By Form (Pre-match only) | |||
| | |||
| 0 | |||
|- | |||
| 0x213:0 | |||
| 1 byte | |||
| ''Unknown E'' | |||
| Don't know what this is but PES copies it into memory along with the rest of this section so ¯\_(ツ)_/¯ | |||
| | |||
| 0 | |||
|- | |||
| 0x214:0 | |||
| 96 bytes | |||
| Nothing | |||
| Padding, most likely leftover from PES16 when Player Lineup used 4 bytes for each index ID instead of 1 (Not included in the in-memory version of the Game Plan) | |||
| | |||
| 0x00 x 96 | |||
|} | |} | ||
Latest revision as of 21:00, 11 March 2018
![]() Pro Evolution Soccer 2017 | |
---|---|
Game | |
Rules | |
Info | |
Tools | |
Modding |
The Edit file is called EDIT00000000 and can be found in %HOMEPATH%\documents\KONAMI\Pro Evolution Soccer 2017\save.
It is encrypted and thus, cannot be simply edited directly.
Refer to the Tools page for decrypting and editing tools.
This page is a work in progress, and currently only contains the parts that are somewhat properly mapped out.
Structure
Note: The beginning of the file is considered what pesXcrypter exports as data.dat.
- Header
- Player entries
- Player appearance entries
- Team entries
- Manager entries
- Competitions
- Stadiums
- Undocumented entries
- Team-Player table
- Competition entry entries
- Game plan entries
Header
Length: 120 (0x78) bytes, first 92 (0x5c) omitted for now
Offset (byte:bit) | Length | Description | Format | Enforced limits | Default value |
---|---|---|---|---|---|
0x5C:0 | 2 bytes | Amount of player entires (appearance and data) | |||
0x5E:0 | 2 bytes | Unknown, could be leftover appearance entry | Always appears to be 0x00 00 | ||
0x60:0 | 2 bytes | Amount of team entires | |||
0x62:0 | 2 bytes | Amount of manager entries | |||
0x64:0 | 2 bytes | Amount of competition entries | |||
0x66:0 | 2 bytes | Amount of stadium entires | |||
0x68:0 | 2 bytes | Amount of entries of a currently undocumented entry | |||
0x6A:0 | 2 bytes | Unknown | Always appears to be 0x00 00 | ||
0x6C:0 | 2 bytes | Amount of team-player table entries | |||
0x6E:0 | 2 bytes | Unknown | Always appears to be 0x00 00 | ||
0x70:0 | 2 bytes | Amount of team game plan entries | |||
0x72:0 | 2 bytes | Unknown | Always appears to be 0x00 00 | ||
0x74:0 | 2 bytes | Unknown | |||
0x76:0 | 2 bytes | Unknown | Always appears to be 0x00 00 |
Player entry
Things like Enforced Limits and Default Value are copied straight from the PES16 page, but they should be mostly correct.
Start: HEX block 78
End: HEX block 3C3E57
Entry length: 116 (0x74) bytes
Offset (byte:bit) | Length | Description | Format | Enforced limits | Default value |
---|---|---|---|---|---|
0x00:0 | 4 bytes | Player ID | PES: must be unique | >= 1048576 | |
0x04:0 | 4 bytes | Commentary Name | References a player ID (0xFFFFFFFF = None) | PES: apparently none | 0xFFFFFFFF |
0x08:0 | 2 bytes | Unknown A | Probably unused (always 0xFFFF) | 0xFFFF | |
0x0A:0 | 2 bytes | Nationality/Region | 0x0401 = Others | 0x0401 | |
0x0C:0 | 8 bits | Height (cm) | PES: must be in range [155, 210] | 180 | |
0x0D:0 | 8 bits | Weight (kg) | PES: must be in range [max(30, Height - 129), Height - 81] | 75 | |
0x0E:0 | 8 bits | Motion: Goal Celebration 1 | 0 = OFF | PES: must be in range [0, 122] | 0 |
0x0F:0 | 8 bits | Motion: Goal Celebration 2 | 0 = OFF | PES: must be in range [0, 122] | 0 |
0x10:0 | 7 bits | Attacking Prowess | PES: must be in range [40, 99] | 80 | |
0x10:7 | 7 bits | Defensive Prowess | PES: must be in range [40, 99] | 80 | |
0x11:6 | 7 bits | Goalkeeping | PES: must be in range [40, 99] | 80 | |
0x12:5 | 7 bits | Dribbling | PES: must be in range [40, 99] | 80 | |
0x13:4 | 4 bits | Motion: Free Kick | In-game value minus one | PES: must be in range [0, 15] (full range) | 0 |
0x14:0 | 7 bits | Finishing | PES: must be in range [40, 99] | 80 | |
0x14:7 | 7 bits | Low Pass | PES: must be in range [40, 99] | 80 | |
0x15:6 | 7 bits | Lofted Pass | PES: must be in range [40, 99] | 80 | |
0x16:5 | 7 bits | Header | PES: must be in range [40, 99] | 80 | |
0x17:4 | 3 bits | Form | In-game value minus one | PES: must be in range [0, 7] (full range) | 3 |
0x17:7 | 1 bit | Edited/Created player | Whether the player was edited/created (1) or not (0).
Keeping it at 0 may hide edited values in some places. |
PES: must be in range [0, 1] (full range) | 1 |
0x18:0 | 7 bits | Swerve | PES: must be in range [40, 99] | 80 | |
0x18:7 | 7 bits | Catching | PES: must be in range [40, 99] | 80 | |
0x19:6 | 7 bits | Clearing | PES: must be in range [40, 99] | 80 | |
0x1A:5 | 7 bits | Reflexes | PES: must be in range [40, 99] | 80 | |
0x1B:4 | 2 bits | Injury Resistance | In-game value minus one | PES: must be in range [0, 2] | 1 |
0x1B:6 | 1 bit | Unknown B | Presumably unused/padding. | 0 | |
0x1B:7 | 1 bit | Basic Settings | Whether the player's basic settings are changed (1) or not (0) from default. | PES: must be in range [0, 1] (full range) | 0 |
0x1C:0 | 7 bits | Body Control | PES: must be in range [40, 99] | 80 | |
0x1C:7 | 7 bits | Physical Contact | PES: must be in range [40, 99] | 80 | |
0x1D:6 | 7 bits | Kicking Power | PES: must be in range [40, 99] | 80 | |
0x1E:5 | 7 bits | Explosive Power | PES: must be in range [40, 99] | 80 | |
0x1F:4 | 3 bits | Motion: Arm Movement (dribbling) | In-game value minus one | PES: must be in range [0, 7] (full range) | 0 |
0x1F:7 | 1 bit | Registered Position | Whether the player's registered position is changed (1) or not (0) from default. | PES: must be in range [0, 1] (full range) | 0 |
0x20:0 | 6 bits | Age | PES: must be in range [15, 50] | 17 | |
0x20:6 | 4 bits | Registered Position | Possible values are:
|
PES: must be in range [0, 12] | 12 |
0x21:2 | 1 bit | Unknown C | Presumably unused/padding. | 0 | |
0x21:3 | 5 bits | Playing Styles |
|
PES: must be be in range [0, 18] and not 16 | 0 |
0x22:0 | 7 bits | Ball Control | PES: must be in range [40, 99] | 80 | |
0x22:7 | 7 bits | Ball Winning | PES: must be in range [40, 99] | 80 | |
0x23:6 | 2 bits | Weak Foot Accuracy | In-game value minus one | PES: must be in range [0, 3] (full range) | 1 |
0x24:0 | 7 bits | Jump | PES: must be in range [40, 99] | 80 | |
0x24:7 | 3 bits | Motion: Arm Movement (running) | In-game value minus one | PES: must be in range [0, 7] (full range) | 0 |
0x25:2 | 3 bits | Motion: Corner Kick | In-game value minus one | PES: must be in range [0, 5] | 0 |
0x25:5 | 7 bits | Coverage | PES: must be in range [40, 99] | 80 | |
0x26:4 | 2 bits | Weak Foot Usage | In-game value minus one | PES: must be in range [0, 3] | 1 |
0x26:6 | 26 bits | Playable Position | An array of 13 2-bit entries with:
Each entry pertains to one position, in the following order:
|
PES: each entry must be in range [0, 2] | 0 |
0x2A:0 | 2 bits | Motion: Hunching (dribbling) | In-game value minus one | PES: must be in range [0, 2] | 0 |
0x2A:2 | 2 bits | Motion: Hunching (running) | In-game value minus one | PES: must be in range [0, 2] | 0 |
0x2A:4 | 2 bits | Motion: Penalty Kick | In-game value minus one | PES: must be in range [0, 3] (full range) | 0 |
0x2A:6 | 7 bits | Place Kicking | PES: must be in range [40, 99] | 80 | |
0x2B:5 | 1 bit | Playable Position | Whether the player's playable positions are changed (1) or not (0) from default. | PES: must be in range [0, 1] (full range) | 0 |
0x2B:6 | 1 bit | Ability | Whether the player's abilities are changed (1) or not (0) from default. | PES: must be in range [0, 1] (full range) | 0 |
0x2B:7 | 1 bit | Player Skills | Whether the player's player skills are changed (1) or not (0) from default. | PES: must be in range [0, 1] (full range) | 0 |
0x2C:0 | 7 bits | Stamina | PES: must be in range [40, 99] | 80 | |
0x2C:7 | 7 bits | Speed | PES: must be in range [40, 99] | 80 | |
0x2D:6 | 1 bit | Playing Styles | Whether the player's playing styles are changed (1) or not (0) from default. | PES: must be in range [0, 1] (full range) | 0 |
0x2D:7 | 1 bit | COM Playing Styles | Whether the player's COM playing styles are changed (1) or not (0) from default. | PES: must be in range [0, 1] (full range) | 0 |
0x2E:0 | 1 bit | Motion | Whether the player's Motions are changed (1) or not (0) from default. | PES: must be in range [0, 1] (full range) | 0 |
0x2E:1 | 1 bit | Base Copy | Whether the player is a base copy (1) or not (0). | PES: must be in range [0, 1] (full range) | 0 |
0x2E:2 | 1 bit | Unknown D | Presumably unused/padding. | 0 | |
0x2E:3 | 1 bit | Stronger Foot | Possible values are:
|
PES: must be in range [0, 1] (full range) | 0 |
0x2E:4 | 1 bit | Unknown E | Presumably unused/padding. | 0 | |
0x2E:5 | 7 bits | COM Playing Style | Bitmask with 7 entries:
|
PES: at most 5 may be active at once | 0 |
0x2F:4 | 28 bits | Player Skills | Bitmask with 28 entries:
|
PES: at most 10 may be active at once | 0 |
0x33:0 | 8 bits | Unknown F | Presumably unused/padding. | 0 | |
0x34:0 | 46 bytes | Player Name | Null-terminated string | PES: must not exceed 15 characters
Up to 45 characters are handled by the game |
Must not be empty |
0x62:0 | 18 bytes | Print Name | Null-terminated string | PES: must not exceed 15 characters, uppercase letters only | Empty string |
Note: default values are based on a newly created edited player.
Player appearance entry
Note: A player appearance entry always follows the player data entry. That's why the start and end of the entire datablock are the same as the player entry's.
Start: HEX block 78
End: HEX block 3C3E57
Entry Length: 72 (0x48) bytes
Team entry
Start: HEX block 3C3E58
End: HEX block 410117
Entry Length: 480 (0x1E0) bytes
Offset (byte:bit) | Length | Description | Format | Enforced limits | Default value |
---|---|---|---|---|---|
0x000:0 | 4 bytes | Team ID | PES: must be unique | ||
0x004:0 | 4 bytes | Manager ID | |||
0x008:0 | 2 bytes | Team Emblem |
|
||
0x00A:0 | 2 bytes | Home Stadium | References a Stadium ID | ||
0x00C:0 | 2 bytes | Unknown A | 0xFF | ||
0x00E:0 | 2 bytes | Team Nationality | References a Nation ID | ||
0x010:0 | 2 bytes | Team Callname | References a Callname ID | 0xFF | |
0x012:0 | 6 bits | Team Colour 1 Red | PES: Must be in range [0-63] | ||
0x012:6 | 6 bits | Team Colour 1 Green | PES: Must be in range [0-63] | ||
0x013:4 | 4 bits | Stadium Net Design | PES: Must be in range [1-15] | ||
0x014:0 | 6 bits | Team Colour 2 Red | PES: Must be in range [0-63] | ||
0x014:6 | 6 bits | Team Colour 2 Green | PES: Must be in range [0-63] | ||
0x015:4 | 6 bits | Team Colour 2 Blue | PES: Must be in range [0-63] | ||
0x016:2 | 6 bits | Team Colour 1 Blue | PES: Must be in range [0-63] | ||
0x017:0 | 1 bit | Stadium Net Design | PES: Must be in range [0-1] | ||
0x017:1 | 3 bits | Unknown B | |||
0x017:4 | 2 bits | Stadium Goal Type | PES: Must be in range [0-3] | ||
0x017:6 | 2 bits | Unknown C | |||
0x018:0 | 4 bits | Stadium Turf Pattern | PES: Must be in range [1-8] | ||
0x018:4 | 4 bits | Stadium Sideline Colour | PES: Must be in range [1-8] | ||
0x019:0 | 4 bits | Stadium Seat Colour | PES: Must be in range [1-8] | ||
0x019:4 | 1 bit | Team Name Edited Flag | Flag that tells if team name has been changed or still default:
|
||
0x019:5 | 1 bit | Team Stadium Changed Flag | Flag that tells if team has its stadium changed or default:
|
||
0x019:6 | 1 bit | Unknown D | |||
0x019:7 | 1 bit | Stadium Name Edited Flag | Flag that tells if team has its stadium name changed or default:
|
||
0x01A:0 | 1 bit | Unknown E | |||
0x01A:1 | 1 bit | Stadium Settings Edited Flag | Flag that tells if team has its stadium settings changed or default:
|
||
0x01A:2 | 1 bit | Rival Team Edited Flag | Flag that tells if team has its rival teams changed or default:
|
||
0x01A:3 | 1 bit | Team Banners Edited Flag | Flag that tells if team has its banners changed or default:
|
||
0x01A:4 | 1 bit | Unknown F | |||
0x01A:5 | 1 bit | Team Strip Edited Flag | Flag that tells if team has its strip changed or default:
|
||
0x01A:6 | 1 bit | Team Manager Changed Flag | Flag that tells if team has its manager changed or default:
|
||
0x01A:7 | 1 bit | Unknown G | |||
0x01B:0 | 1 byte | Unknown H | |||
0x01C:0 | 4 bytes | Team Strip 1 |
|
||
0x020:0 | 4 bytes | Team Strip 2 | |||
0x024:0 | 4 bytes | Team Strip 3 | |||
0x028:0 | 4 bytes | Team Strip 4 | |||
0x02C:0 | 4 bytes | Team Strip 5 | |||
0x030:0 | 4 bytes | Team Strip 6 | |||
0x034:0 | 4 bytes | Team Strip 7 | |||
0x038:0 | 4 bytes | Team Strip 8 | |||
0x03C:0 | 4 bytes | Team Strip 9 | |||
0x040:0 | 4 bytes | Team Strip 10 | |||
0x044:0 | 4 bytes | Rival Team 1 | References a Team ID | ||
0x048:0 | 4 bytes | Rival Team 2 | References a Team ID | ||
0x04C:0 | 4 bytes | Rival Team 3 | References a Team ID | ||
0x050:0 | 44 bytes | Unknown I | |||
0x094:0 | 1 byte | Banner 1 Edited Flag | Special case, 0x00 always | ||
0x095:0 | 1 byte | Banner 2 Edited Flag | 0x00 if not edited, 0x01 if edited | ||
0x096:0 | 1 byte | Banner 3 Edited Flag | 0x00 if not edited, 0x02 if edited | ||
0x097:0 | 1 byte | Banner 4 Edited Flag | 0x00 if not edited, 0x03 if edited | ||
0x098:0 | 70 bytes | Team Name | Null-terminated string | ||
0x0DE:0 | 4 bytes | Scoreboard name | Null-terminated string | ||
0x0E2:0 | 121 bytes | Custom Stadium Name | Null-terminated string | ||
0x15B:0 | 16 bytes | Banner 1 Text | Null-terminated string | ||
0x16B:0 | 16 bytes | Banner 2 Text | Null-terminated string | ||
0x17B:0 | 16 bytes | Banner 3 Text | Null-terminated string | ||
0x18B:0 | 16 bytes | Banner 4 Text | Null-terminated string | ||
0x19B:0 | 69 bytes | Unknown J |
Manager entry
Start: HEX block 410118
End: HEX block 422547
Entry Length: 88 (0x58) bytes
Offset (byte:bit) | Length | Description | Format | Enforced limits | Default value |
---|---|---|---|---|---|
0x00:0 | 4 bytes | Manager ID | PES: must be unique | ||
0x04:0 | 2 bytes | Manager Nationality | |||
0x06:0 | 2 bytes | Manager picture ID | 0xFFFF | ||
0x08:0 | 1 byte | Unknown A | 0x60 | ||
0x09:0 | 79 bytes | Manager Name |
Competitions
Start: HEX block 422548
End: HEX block 423D7F
Entry Length: 124 (0x7C) bytes
Offset (byte:bit) | Length | Description | Format | Enforced limits | Default value |
---|
Stadium Name
Start: HEX block 423D80
End: HEX block 42517F
Entry Length: 128 (0x80) bytes
Offset (byte:bit) | Length | Description | Format | Enforced limits | Default value |
---|---|---|---|---|---|
0x00:0 | 4 bytes | Stadium ID | PES: must be unique | ||
0x04:0 | 124 bytes | Stadium Name | PES: must not exceed 40 characters |
Unknown section
This section is located between the Stadium name and Team Player tables, but has not been documented yet.
Start: HEX block 425180
End: HEX block 475A8F
Entry Length: 132 (0x84) bytes
Team-Player table
The Team-Player table is what links a Player ID to a Team ID. It is basically a Team ID, followed by a list of 32 Player IDs that correspond to the players in that team, then the respective shirt numbers for those players.
Start: HEX block 475A90
End: HEX block 48FAF7
Entry Length: 164 (0xA4) bytes
Offset (byte:bit) | Length | Description | Format | Enforced limits | Default value |
---|---|---|---|---|---|
0x00:0 | 4 bytes | Team ID | PES: must be unique | ||
0x04:0 | 128 bytes | Player IDs / Index IDs | 32 x 4 bytes
This table also assigns (what I would like to call them anyways) Index IDs. |
0x00000000 (no player) | |
0x84:0 | 32 bytes | Shirt Numbers | 32 x 1 bytes |
Competition Entry
This section does not use separators nor do individual sections have a fixed length.
It is almost a continued list of Team IDs (length: 4 bytes) that will determine what team plays in what league. For example, the first 20 team IDs are teams that will play in the English League. Right after that you get 20 team IDs that will play in the English 2nd Division. Therefore this section will be slightly different from the other ones. 0xFFFF0300 is used to mark 'no team' in the list.
Start: HEX block 48FAF8
End: HEX block 49063F
Entry Length: 2888 (0xB48) bytes (whole section)
Offset (byte:bit) | Length | Amount of teams | League/Cup |
---|
Team Game Plan
In addition to storing saved tactics in the Edit File, this exact same structure is present in PES memory for both teams during a match and pre-match (after team select) and contains the currently set tactics for each team.
Some values or settings may be marked "invalid in Edit Mode" or "pre-match only" to indicate that PES cannot be used to set them in the Edit File.
Start: HEX block 490640
End: HEX block 505B03
Entry Length: 628 (0x274) bytes
Offset (byte:bit) | Length | Description | Format | Enforced limits | Default value |
---|---|---|---|---|---|
0x000:0 | 4 bytes | Team ID |
|
||
0x004:0 | 160 bytes | Preset Tactics 1: Main (Offensive) | see below (add 0x004 to all offsets) | ||
0x000:0 | 11 bytes | Player Positions
|
11 x 1 byte The first byte is the first player in the Player Lineup, the second byte is the second player in the Player Lineup, etc..
|
||
0x00B:0 | 22 bytes | Player Coordinates
|
11 x 2 bytes The first byte pair is the first player in the Player Lineup, the second byte pair is the second player in the Player Lineup, etc..
|
GK is always 03 34 | |
0x021:0 | 11 bytes | Player Positions
|
11 x 1 byte | ||
0x02C:0 | 22 bytes | Player Coordinates
|
11 x 2 bytes | ||
0x042:0 | 11 bytes | Player Positions
|
11 x 1 byte | ||
0x04D:0 | 22 bytes | Player Coordinates
|
11 x 2 bytes | ||
0x063:0 | 1 byte | Attacking Style |
|
||
0x064:0 | 1 byte | Build Up |
|
||
0x065:0 | 1 byte | Attacking Area |
|
||
0x066:0 | 1 byte | Positioning |
|
||
0x067:0 | 1 byte | Defensive Styles |
|
||
0x068:0 | 1 byte | Containment Area |
|
||
0x069:0 | 1 byte | Pressuring |
|
||
0x06A:0 | 2 bytes | Unknown A | Padding? | 0x0000 | |
0x06C:0 | 1 byte | Attack1 (Advanced Instructions) |
Advanced Instruction ID:
|
OFF and attacking instructions (0x00-0x07) | 0x00 |
0x06D:0 | 3 bytes | Unknown B (Attack1) | |||
0x070:0 | 1 byte | Targeted Player (Attack1) | Unused | 0x00 | |
0x071:0 | 3 bytes | Unknown C (Attack1) | |||
0x074:0 | 1 byte | Attack2 | Advanced Instruction ID | OFF and attacking instructions (0x00-0x07) | 0x00 |
0x075:0 | 3 bytes | Unknown B (Attack2) | |||
0x078:0 | 1 byte | Targeted Player (Attack2) | Unused | 0x00 | |
0x079:0 | 3 bytes | Unknown C (Attack2) | |||
0x07C:0 | 1 byte | Defence1 | Advanced Instruction ID | OFF and defending instructions (0x00, 0x08-0x0C), except Tight Marking (0x0B) in Edit Mode | 0x00 |
0x07D:0 | 3 bytes | Unknown B (Defence1) | |||
0x080:0 | 1 byte | Targeted Player (Defence1) | Index ID of the player selected for Counter Target or Tight Marking, 0x00 when neither are selected | 0x01-0x0A | |
0x081:0 | 3 bytes | Unknown C (Defence1) | |||
0x084:0 | 1 byte | Defence2 | Advanced Instruction ID | OFF and defending instructions (0x00, 0x08-0x0C), except Tight Marking (0x0B) in Edit Mode | 0x00 |
0x085:0 | 3 bytes | Unknown B (Defence2) | |||
0x088:0 | 1 byte | Targeted Player (Defence2) | Index ID of the player selected for Counter Target or Tight Marking, 0x00 when neither are selected | 0x01-0x0A | |
0x089:0 | 3 bytes | Unknown C (Defence2) | |||
0x08C:0 | 1 byte | Support range | 1 - 10 slider | 01 - 0A in PES | |
0x08D:0 | 1 byte | Numbers in attack? | Unused | set to 3 (Many in PES16) | |
0x08E:0 | 1 byte | Defensive Line | 1 - 10 slider | 01 - 0A in PES | |
0x08F:0 | 1 byte | Compactness | 1 - 10 slider | 01 - 0A in PES | |
0x090:0 | 1 byte | Numbers in defence? | Unused | Set to 3 (Many in PES16) | |
0x091:0 | 11 bytes | Manmarking | 11 x 1 bytes
Each byte refers to a Index ID of a player on the other team that will be marked. (Invalid in Edit Mode) |
0xFF = No Player marked | 0xFF x 11 |
0x09C:0 | 1 byte | Fluid Formation | Whether the team's Offensive game plan uses Fluid Formations (1) or not (0). | 0 | |
0x09D:0 | 3 bytes | Unknown D | Padding? | 0x000000 | |
0x0A4:0 | 160 bytes | Preset Tactics 2: Defensive | see above (add 0x0A4 to all offsets) | ||
0x144:0 | 160 bytes | Preset Tactics 3: Custom | see above (add 0x144 to all offsets) | ||
0x1E4:0 | 32 bytes | Player Lineup | 32 bytes
This is a list of 32 Index IDs (explained below Team Player table) that determine the team's lineup. |
||
0x204:0 | 1 byte | Long FK Taker | Index ID of the player to take the Long FKs. | ||
0x205:0 | 1 byte | Short FK Taker | Index ID of the player to take the Short FKs. | ||
0x206:0 | 1 byte | FK Taker 2 | Index ID of the player to be backup for FKs. | ||
0x207:0 | 1 byte | Left CK Taker | Index ID of the player to take the Left CKs. | ||
0x208:0 | 1 byte | Right CK Taker | Index ID of the player to take the Right CKs. | ||
0x209:0 | 1 byte | PK Taker | Index ID of the player to take the Right CKs. | ||
0x20A:0 | 3 bytes | Players to Join Attack | 3 x 1 byte
Index ID of the players to join the attack. |
0xFF = No Player | 0xFF FF FF |
0x20D:0 | 1 byte | Captain | Index ID of the player to be the Captain. | ||
0x20E:0 | 1 byte | Auto Substitution |
|
0 | |
0x20F:0 | 1 byte | Auto Offside Trap | Whether the team uses Auto Offside Trap (1) or not (0). | 0 | |
0x210:0 | 1 byte | Auto change Preset Tactics | Whether the team uses Auto Change Preset Tactics (1) or not (0). | 0 | |
0x211:0 | 1 byte | Auto Change Attack/Defence Level | Whether the team uses Auto Change Attack/Defence Level (1) or not (0). | 0 | |
0x212:0 | 1 byte | Auto Lineup Select |
|
0 | |
0x213:0 | 1 byte | Unknown E | Don't know what this is but PES copies it into memory along with the rest of this section so ¯\_(ツ)_/¯ | 0 | |
0x214:0 | 96 bytes | Nothing | Padding, most likely leftover from PES16 when Player Lineup used 4 bytes for each index ID instead of 1 (Not included in the in-memory version of the Game Plan) | 0x00 x 96 |
Limitations enforced by PES
Even though editing the save files externally technically allows using the full range of all values, PES puts some additional limitations in place. Some of these might be checked and corrected by the game, others are just taken as they are. This might lead to unexpected behaviour or even crash the game. Be sure to check Appendix:Rules or the rules of the invitational in question to find out what is considered legal.