The logo competition for the 2025 4chan Winter Cup is now taking submissions. | ||
The deadline is January 6th, 23:59 UTC. Logos will be placed in this gallery to facilitate discussion. This will be followed by a polling period to determine which logo will be used. Please send all submissions to Potatotron. You must supply a high-res PNG file (5000x5000 limit) and the original multi-layer source file. | ||
Cloverleaf logo: .png .svg |
|
Cloverball logo: .ai .png .svg |
Difference between revisions of "Talk:Pro Evolution Soccer 2016/Edit file"
(About Team-Player Entry: last 32 bytes are the shirt numbers) |
|||
Line 194: | Line 194: | ||
[[User:Heringer|Heringer]] ([[User talk:Heringer|talk]]) 23:49, 28 December 2015 (UTC) | [[User:Heringer|Heringer]] ([[User talk:Heringer|talk]]) 23:49, 28 December 2015 (UTC) | ||
Ah that makes perfect sense, thanks! I'll update the table - [[User:NBD|NBD]] ([[User talk:NBD|talk]]) 23:54, 28 December 2015 (UTC) |
Revision as of 23:54, 28 December 2015
Here is some contribution:
Structure of EDIT00000000
- Header - The header may vary in length. There are some patches where the logo inside this file is changed, so the header length changes.
- Player entries start at offset 0x10AAA. There are 25000 entries.
Each entry has 112 bytes (0x70). - Player extra info (appearance mainly) entries start at offset 0x2BC42A. There are 25000 entries.
Each entry has 72 bytes (0x48). - Team entries start at offset 0x473B6A. There are 850 entries.
Each entry has 456 bytes (0x1C8). - Championships entries start at 0x4D257A. There are 100 entries. Each entry has 92 bytes (0x5C). Contains name and ball id.
- Stadium entries start at 0x4D496A. There are 100 entries. Each entry has 128 bytes (0x80).
- To be confirmed: Uniform entries start at 0x4D7B6A. There are 2500 entries. Each entry has 88 bytes (0x58).
- Teams roster entries start at 0x50D6CA. There are 850 entries. Each entry has 164 bytes (0xA4).
- Leagues roster entries start at 0x52F752. There are 712 entries, each entry has 4 bytes and is a team id. The league slots are fixed. It is a mess. I will post about it later.
- To be confirmed: Teams tactics entries start at 0x530272. There are 850 entries. Each entry has 520 bytes (0x208).
- To be confirmed: From 0x59C102 to the end there is nothing.
User:Heringer 08:17, 23 December 2015
I confirmed via unit testing that the position enumeration is correct and all players has values from 0 to 12. Though, the rule about the player offset 0x1F:7 does not seem to be correct.
User:Heringer 14:57, 23 December 2015
Thank you! I will look into it and start adding things once Christmas is over. I am a bit surprised that the position enumeration is correct, because when I looked at it from in-game memory all left and right positions were swapped. Then again, I never confirmed through the save file. --ShiggyGiddy (talk) 08:42, 24 December 2015 (UTC)
Oh, man, you are rigth about the swapped positions. I did not notice it before, sorry. Just swap them and everything will be right. I used my enumeration from PES2015. I thought it was equal to your values, but there is really this difference (L/R swapped).
User:Heringer 14:39, 24 December 2015
On PES2015, the bit you called "Unknown B (0x17:7)" was a flag to indicate if the player was edited or not.
User:Heringer 15:24, 24 December 2015
The playable position seems to be:
Bits 0-1: Centre Forward, Bits 2-3: Second Striker, Bits 4-5: Left Wing Forward, Bits 6-7: Right Wing Forward, Bits 8-9: Attacking Midfielder, Bits 10-11: Defensive Midfielder, Bits 12-13: Centre Midfielder, Bits 14-15: Left Midfielder, Bits 16-17: Right Midfielder, Bits 18-19: Right Back, Bits 20-21: Left Back, Bits 22-23: Centre Back, Bits 24-25: Goalkeeper
Everything else in player entry seems to be ok as you defined.
In the team entry, i can tell you:
const uint OFFSET_COACH_NATION = 0xC; const uint LENGTH_COACH_NATION = 0x2; const uint OFFSET_TEAM_NATION = 0x8; const uint LENGTH_TEAM_NATION = 0x2;
Some stuff from Tony
Player appearance data
- 0x04-0x06 Boots
- When the decimal boot ID is converted to binary/bits, you will get 4 parts. The bits used for the boot ID are the letters in the binary string below:
- dddd 0000 bbbb cccc 0000 00aa
- An example boot ID is 7011, in big-endian hex: 13 C5 and in binary: 0001 0011 1100 0101. The boot ID limits make sure that the last the 2 bits (first 2 on the left) are always 00, thus you actually get the following:
- 01 0011 1100 0101
- Now the first 2 bits on the left are aa in the string with letters. The next 4 are bbbb, then cccc and last dddd. So the final string becomes: 0101 0000 0011 1100 0000 0001
- If you have lower boot ID, for example 234, it's EA in hex. But fill up from the left with 0 until you have 4 character byte string, so 00EA.
- 0x06-0x07 GK Gloves
- The decimal boot ID is converted to little-endian hex and everything is bitshifted 2 bits to the left.
- So for example decimal ID 801 is 21 03 in LE hex and in binary: 0010 0001 0000 0011, and then bitshifted: 1000 01xx 0000 1100
- The x bits are used for the boot ID
- 0x14 Spectacles
- 6-7 sleeve season style
- 3-5 style of glasses (000 = none)
- 0-2 glasses frame color
- 0x2D Skin (and other things)
- 3-4 cheek data
- 0-2 skin ID (full range, where 0 and 7 are transparent skin textures (in the Gamma DLC) and thus allow custom skin texture)
Player Appearance Entry
I am not sure if it will help, because probably you already have something similar and some stuff has changed... But here is my player appearance entry "map" from last version (PES 2015) regarding the present "unknown" offsets in the article. The known offset in the article are almost the samething in both versions (2015, 2016).
Please note that the bits are indexed from 1 to 8 instead of 0 to 7.
16 [5-8] face/facialbuild/jawwidth 17 [1-4] face/facialbuild/jawheight 17 [5-8] face/facialbuild/jawdepth 18 [1-4] face/facialbuild/checkbonewidth 18 [5-8] face/facialbuild/checkboneheight 19 [1-4] face/facialbuild/checkbonedepth 19 [5-8] ? 1A [1-4] ? 1A [5-8] face/eyebrowshape/glabellawidth 1B [1-4] face/eyebrowshape/angleinner 1B [5-8] face/eyebrowshape/glabellaheight 1C [1-4] face/eyebrowshape/eyebrowlength 1C [5-8] face/eyebrowshape/angleouter 1D [1-4] face/eyebrowshape/eyebrowdepth 1D [5-8] face/eyeshape/pupilsize 1E [1-4] face/eyeshape/eyedepth 1E [5-8] face/eyeshape/innereyepos 1F [1-4] face/eyeshape/innereyecornerht 1F [5-8] face/eyeshape/outereyepos 20 [1-4] face/eyeshape/eyecornerht 20 [5-8] face/eyeshape/uppereyelidposinner 21 [1-4] face/eyeshape/uppereyelidhtinner 21 [5-8] face/eyeshape/uppereyelidposouter 22 [1-4] face/eyeshape/uppereyelidhtouter 22 [5-8] face/eyeshape/bottomeyelidpos 23 [1-4] face/eyeshape/bottomeyelidht 23 [5-8] face/eyeshape/horizontaleyepos 24 [1-4] face/eyeshape/eyeheight 24 [5-8] face/noseshape/height 25 [1-4] face/noseshape/lenght 25 [5-8] face/noseshape/size 26 [1-4] face/noseshape/nasalbridgeposition 26 [5-8] face/noseshape/bridge 27 [1-4] face/noseshape/width 27 [5-8] face/noseshape/nasalrootheight 28 [1-4] face/mouthshape/attribute3 28 [5-8] face/mouthshape/attribute5 29 [1-4] face/mouthshape/attribute6 29 [5-8] ? 2A [1-4] face/mouthshape/attribute7 2A [5-8] face/mouthshape/shape 2B [1-4] face/mouthshape/attribute8 2B [5-8] face/facialbuild/chinwidth 2C [1-4] face/facialbuild/chinheight 2C [5-8] face/facialbuild/chindepth 2D [1-3] face/skincolor 2D [4-8] face/skin/type 2E [1-3] face/skin/forehead 2E [4-8] face/facialhair/type 2F [1-3] face/skin/wrinkles 2F [4-8] face/eyeshape/uppereyelidtype 30 [1-4] face/eyeshape/bottomeyelidtype 30 [5-8] face/ear/lenght 31 [1-4] face/ear/width 31 [5-8] face/ear/angle 32 [1-5] face/eyebrowshape/eyebrowstyle 32 [6-8] face/facialbuild/necklinetype 33 [1-4] head/facesize/facesize 33 [5-8] head/facesize/faceposition 34 [1-6] face/noseshape/type, angle: type = 1 + valor / 3; dif = valor - type; angle = 0, se dif = 0; -1, se dif = 1; +1, se dif = 2 34 [7-8] ? 35 [1-3] face/mouthshape/type1 35 [4-6] face/mouthshape/type2 35 [7-8] hairstyle/color/red = 35[8-7] + 36[4-1] 36 [1-4] hairstyle/color/red = 35[8-7] + 36[4-1] 36 [5-8] hairstyle/color/green = 36[8-5] + 37[2-1] 37 [1-2] hairstyle/color/green = 36[8-5] + 37[2-1] 37 [1-6] hairstyle/color/blue 38 [1-8] hairstyle/variation 39 [1-6] face/eyebrowshape/color/red 39 [7-8] face/eyebrowshape/type 3A [1-6] face/eyebrowshape/color/green 3A [7-8] face/eyebrowshape/density 3B [1-6] face/eyebrowshape/color/blue 3B [7-8] face/eyebrowshape/eyebrowthickness 3C [1-3] hairstyle/hairstyles (1=skinhead, 2=veryshort, 3=short, 4=medium, 5=long, 6=special) 3C [4-6] hairstyle/hairtype (0=undefined, 1=straight, 2=wavy, 3=permed, 4=dreadlocks) 3C [7-8] ? 3D [1-1] hairstyle/acessory 3D [2-4] hairstyle/acessorycolor (flag and color index) 3D [5-8] face/facialhair/color/red = 0x3D[8-5] + 0x3E[2-1] 3E [1-2] face/facialhair/color/red = 0x3D[8-5] + 0x3E[2-1] 3E [3-8] face/facialhair/color/green 3F [1-6] face/facialhair/color/blue 3F [7-8] face/facialhair/thickness 40 [1-4] face/eyeshape/iriscolor 40 [5-8] ? (0 or 7) 41 [1-4] ? (0 or 7) 41 [5-8] hairstyle/color/preset (weird: 0=custom(preset9); 1=preset4; 2=preset6; 3=preset5; 4=preset8; 5=preset1; 6=preset2; 7=preset3; 8=preset7)
Team-Player Entry
The last 32 bytes used to be the shirt numbers. Each byte is a shirt number.
In PES 2015, the last shirt number was repeated for the empty players, i do not know why. But i do not think this is relevant, i think it is just ignored.
Example: a team with 23 players numbered sequentially would have the last 32 bytes: 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 17 17 17 17 17 17 17 17 17
Heringer (talk) 23:49, 28 December 2015 (UTC)
Ah that makes perfect sense, thanks! I'll update the table - NBD (talk) 23:54, 28 December 2015 (UTC)