Alrighty, I just spent some time trying to analyze 480 bytes I mentioned in the .acm analysis topic.
The situation:
I started a custom combat mission, with 1 wingman, 1 enemy F-22 and 1 enemy EF2000. → 4 Planes in total. Loadout: Guns only.
I then dumped the 480 bytes (which are stored right after each other, so 4× a chunk of 480 bytes) and tried to do some color-coding, to see what was the same for every plane, what was the same for all the F-22’s, what was the same for ALLY vs ENEMY.
Here is the result: VERSION 1
(I will also upload the photoshop work file to box.net so that the color layers can be worked upon.)
OVERVIEW:
Legend:
Green: accounted for (4 bytes X pos, 4 bytes altitude, 4 bytes Y pos / 4 bytes FUEL amount (float) / 60 bytes of ammo array (1 byte weaponID, 2 bytes ammount) / 2 bytes chaffs ammount & 2 bytes flares ammount
Yellow: possibly pitch, yaw & roll – edit: confirmed.
PITCH: doing a looping starting nose slightly up will go like this: 65k → 49k → 65k/0k → 16k → 0k
YAW: starting
North → East → South → West → Northwill be: 0 → 16k → 32k → 49k → 65k/0ROLL: flying straight, then tilting to the left to make a complete aileron roll will be: 0 → 16k → 32k → 49k → 65k/0
Orange: 2× a counter byte I noticed, will also have to further investigate (01,02,03,04 / CE,CF,D0,D1)
Red: shows all bytes that are the same for that type of plane (F-22 vs EF2000)
Blue: shows all bytes that are the same for planes of the same nation (friendly / hostile)
Purple: these bytes are the same for ALL the planes
Black: these bytes didn’t have a constant value and were twitching quickly when viewed in cheat engine – have been disregarded for now
here are the 4 chunks without any colors
plane 1: lead F-22
00 00 00 00 00 00 00 00 00 00 00 0A E1 01 00 00this line of code comes right before the 480 byte long chunk. It has an element that reoccurs (
E1 01 00 00
) at the very end of the chunks aswell, possibly an opcode? maybe initializing the plane? dunno yet …6D 73 5C 05 57 F2 FE FF 06 00 D4 01 66 FF FE 3F 2D 00 3F 02 00 00 01 00 00 00 00 00 00 00 00 00 00 CE 43 00 00 00 00 00 00 21 0C 00 00 00 00 00 00 00 02 00 21 5D 6A 8E AF D4 11 41 7F 99 6B 22 2B 25 2A 41 B9 9F 6F 60 56 8C 84 C0 CF DE 54 9D 3E 88 72 40 1A AD D0 F1 38 E7 87 BF 63 27 99 24 DC 58 0A 40 90 A0 9C 83 25 16 B3 3F 4B 6B DD EF CC 87 72 40 AC 68 26 35 A9 28 F2 BF 04 0C C9 3F 64 53 72 3C 2F 0A 8F BB 65 9A BA 20 F5 9F C0 9C F0 B9 EF B8 00 00 00 00 39 F3 4F BF 00 00 00 00 11 C0 EF B8 43 39 94 43 68 3E 94 43 9D 07 C9 3F E9 CC 80 CE 6E B7 1E 3F 02 04 4A 05 EC FF EF BF C9 F7 F6 E1 70 DF 71 BF 2B EB 9E 9B 1A FF EF 3F 2E FA A1 88 39 97 0B 3F 9F 09 31 CF 55 4A 8E 3F F2 99 C1 13 24 4A 8E BF 6C AC 0D F8 C1 E0 71 BF C9 A5 C7 A4 06 FF EF 3F 6A C8 38 3C C0 6F 25 B8 05 5D C8 66 00 00 00 5C 44 2E 7B BB 45 05 01 02 00 00 06 00 00 00 00 00 04 00 FF FF 00 00 00 00 04 00 8B 74 C9 BA FF FF 00 00 00 00 09 00 00 00 00 00 00 4B 9A 99 19 3F 00 FF FF 3E 9A 34 2B 48 4E 19 93 43 FF FF 00 00 00 00 00 00 FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 E0 06 13 96 00 96 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 56 4A E1 B9 F0 6D A8 40 00 00 00 00 00 00 00 FF FF 00 00 72 E1 01 00 00
plane 2: wingman F-22
14 47 5C 05 7C F2 FE FF F5 5B D3 01 64 FF FF 3F 0F 00 44 02 00 00 02 00 00 00 00 00 00 00 00 00 00 CF 43 00 00 00 00 00 00 21 0C 00 40 01 00 00 00 00 01 00 99 D0 C0 50 6F CE 11 41 37 56 5E DC 52 24 2A 41 DB 61 8C B7 8E 89 84 C0 85 EC 33 E7 4C AA 72 40 4E D2 CE 68 2B 37 85 BF 1A 1C E6 3A 25 48 11 40 57 FB 1A BC 15 93 79 3F 91 BC FF 19 B1 A9 72 40 C0 2A 25 94 C7 3F C3 BF 92 0F C9 3F 20 7E 75 3C 07 52 C1 BA A5 D8 89 39 4B 94 29 B9 EF 80 F1 B7 39 D8 8B 39 9D C0 4B B7 D6 77 0E B8 28 EB EF B7 67 56 95 43 89 4D 95 43 2B 0F C9 3F 69 62 CD A4 13 47 E2 3E 48 27 22 B8 FD FF EF BF 50 9E 7D 02 B4 29 58 BF ED 46 73 96 14 FF EF 3F BE FB 34 32 A4 10 EC BE 90 EB 55 56 78 AF 8E 3F 7F 22 96 CC 78 AF 8E BF 67 61 67 77 8E 29 58 BF CE 2D 96 4E 12 FF EF 3F 6A 02 6D 3C 43 79 11 B8 05 5D C8 66 00 00 00 5C 44 23 71 BB 45 05 01 03 00 00 02 00 00 00 00 00 04 00 01 00 00 00 00 00 FF FF 00 00 00 00 FF FF 00 00 00 00 09 00 00 00 00 00 00 4C F4 5D 19 3F 55 95 0C 3F 25 B2 1C 48 01 45 94 43 FF FF 00 00 00 00 00 00 FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 E0 06 13 96 00 96 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 DE 5D C7 B9 18 0D 8E 40 80 2F 7D 00 00 00 00 FF FF 00 00 0A E1 01 00 00
plane 3: enemy F-22
8D 09 6C 05 81 17 FF FF FF 63 D4 01 FE F5 FF BF 0D 00 32 02 00 00 03 00 00 00 00 00 08 00 00 00 00 D0 43 00 00 00 00 00 00 21 0C 02 00 00 01 00 00 00 FF FF 1A D2 88 A5 7E D8 11 41 6D AB CD 2E 2E 71 2A 41 A7 42 87 BA 6B B7 81 C0 13 CF 37 10 F7 F5 71 40 23 B2 32 E4 26 77 9C BF 4C 90 93 BB 0A 6B 41 40 22 8C E0 E4 97 6F 9A BF AE B0 27 9D EE F9 71 C0 78 1B 8D CD F0 F6 40 C0 D5 14 C9 BF 9F 88 7B 3E B8 21 A5 BA 8A 9D 80 3E 06 42 1C BB 5E 39 8B B8 1B 06 63 3E 8F EF 64 BB 0F 12 BA B8 7B 5E C5 B9 01 BD 90 43 75 CF 8F 43 CC 12 C9 BF 57 C4 DD A3 9D 4E 23 BF B2 9C B7 68 FE FF EF 3F 83 DB E5 E6 52 09 54 3F 03 69 2A 46 18 0A EF BF 2A 90 91 35 5D 40 24 3F 32 10 F8 82 60 20 CF BF 97 F5 91 8C 60 20 CF BF 56 FA FD F8 97 05 54 BF 3E D5 E3 AE 16 0A EF 3F 4A 0F F7 3D 6B 63 C9 B8 05 5D C8 66 00 00 00 5C 44 00 80 BB 45 01 00 03 00 04 02 00 00 00 00 00 FF FF 01 00 5F 06 0F BB FF FF 00 00 00 00 FF FF 00 00 00 00 0A 1E 00 00 00 00 00 47 9A 99 19 3F 00 00 00 00 00 00 00 00 85 1E 7E 43 FF FF 00 00 00 00 00 00 FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 E0 06 14 96 00 96 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F1 99 BC 3C 58 01 0E C1 00 00 00 00 00 00 00 FF FF 00 00 73 E1 01 00 00
plane 4: enemy EF2000
C4 96 6C 05 8C 1C FF FF 00 00 D4 01 63 F7 01 C0 00 00 CE 01 00 00 04 00 00 00 00 00 08 00 00 00 00 D1 43 00 00 00 00 00 10 21 0C 02 00 00 02 00 00 00 FF FF BA 95 4F 4F AF D4 11 41 9F 34 2F D9 DE 73 2A 41 B7 81 0C 8B 05 55 81 C0 E9 BD 31 D2 1A A0 6D 40 8B D7 B9 FD 72 6E 54 3F 78 7A DE 32 40 E4 38 40 C7 95 30 7E 84 47 53 3F C0 0D F6 9D 5A A1 6D C0 30 DC 5C FC 4E E7 37 C0 99 0F C9 BF 19 8E 58 3E B5 38 9A 38 B3 5A 52 3E 69 B2 F7 38 A8 FC 7C 36 99 D4 39 3E 7E 8F 22 39 78 6E A4 36 C1 C8 9B 37 8C 4E 6E 43 D5 0A 6D 43 B1 0F C9 BF 53 8B 40 33 38 02 E0 3E E5 BE 98 FE FF FF EF 3F 7A C4 E9 86 1B D9 12 BF C0 E1 D7 6C 7E 49 EF BF 82 5D BD 69 53 FF DF BE 65 59 59 2E 39 DE CA BF 08 41 59 2E 39 DE CA BF 66 E3 CB 35 24 D9 12 3F A5 A0 70 6B 7E 49 EF 3F F5 4E D6 3D 49 96 AF 36 06 FE C8 66 00 00 C0 80 43 5A E3 79 45 01 00 04 00 04 01 00 02 01 02 00 FF FF 01 00 8B 74 C9 BA FF FF 00 00 00 00 FF FF 00 00 00 00 0A 1E 00 00 00 00 00 50 9A 99 19 3F 00 00 80 3F CA 0E 16 48 89 60 75 43 FF FF 00 00 00 00 00 00 FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 03 02 14 96 00 96 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3A CE 24 3C CD C0 7F 40 00 00 00 00 00 00 00 FF FF 00 00 6D E1 01 00 00there also seems to be a terminating section that comes right after the 4th chunk …
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00 00 00 00 04 00 00 50 15 00 FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Anyways, further testing is already ongoing, I’m comparing two chunks, one where I have an enemy targeted and locked, one where i don’t … I will update this as I go along …
I’m hoping that we can find out what exactly gets loaded in these 480 bytes. Also I’m hoping this will somehow reveal the mechanics of loading a plane into memory …
I’ve noticed, that having other mobile units in the mission causes the 2nd, 3rd and 4th chunk not to align anymore, suggesting the chunks might be smaller for less complex units?? I will also have to dump the memory section with only a truck or something like that to further analyze the change …
… Now I’ve got to take a short break ^^
PS. I’ve already noticed some stuff, like bytes that are the same for me and my wingman, different for the enmy F-22 and yet again different for the EF2000, suggesting they may relate to which flight the plane is in. I ran out of colors for this though, but I will get to it! Also noticed for example all computer controlled planes having the same bytes, with only my plane having a different value → this also makes sense to have that stored somehow …
//edit: short edit to CONFIRM PITCH YAW & ROLL