Note: use typeset to find out what params are Use this command: diff -y <(od -An -v -tx1 -w1 file1) <(od -An -v -tx1 -w1 file2) or: diff --suppress-common-lines -y <(od -Ax -v -tx1 -w1 file1) <(od -Ax -v -tx1 -w1 file2) for 2 bytes at a time, offset: diff -y <(od -An -v -j1 -tx2 -w1 file1) <(od -An -v -j1 -tx2 -w1 file2) display: od -Ax -w1 -v -tx1 file1 -- 0x01-0x19: name of stunt, encoded as fixed-length ASCII string -- Global settings 0x27: Rec: off is 0x00, auto is 0x01, on is 0x02; (defaults to 0xFF?) 0x28-0x29: 1st Take Bonus: encoded as two-byte unsigned integer 0x2C: (packed bits) 76543210 <-- bit numbers -----bfg <-- represented values b: brakes on if true f: flaps down if true g: gear up if true 0x2E-0x2F: time of day 0x31: default cam (number minus 1) 0x32: weapon: none 0, gun 1, missile 2, bomb 3 0x33: max takes (changing from 99 also changes 0x27 to 2, 0x2E to 45) 0x34-0x35 (take penalty), 0x2A...?...0x2E (crash penalty) do strange things with 0x27 and 0x2E as well, setting it to 0x2 if it's previously 0xFF 0x3E: View: Pilot CP is 0x00, Pilot no CP is 0x01, Left side is 0x02, Right side is 0x03, Rear is 0x04, Bomb is 0x05, Spotter is 0x06 -- 0x54: adding at least one event changes this from 0 to 1 -- Deleting prop #1 just removes lines 0x97 through 0xD6; no other lines change. Therefore, 0xD7 is first line for prop #2 (if prop 1 exists). Conclusion: Every prop takes (16*5=80 bytes) Conclusion: List of props is terminated by a 0 byte. > diff -y <(od -Ax -to1 -w1 -v 100000.SET) <(od -Ax -to1 -w1 -v NOPROP1.SET) # useful for comparing prop 1 and prop 2 -- 0x99: (packed bits) 76543210 <-- bit numbers -ve-caw- <-- represented values (on if true) v: visibility (might not be right; looks like this is down in 0xCB) e: explodability c: collideability a: autozoom w: watch 0x9A: (packed bits) 76543210 <-- bit numbers -----s-p <-- represented values (on if true) s: shadow p: placed x99: collideability of prop 1 (x09 if on, x01 if off) -- changing Prop #1 type alters values at offsets x9b and x9c -- The offset for E/W position of prop 1 starts at 9d (instead of a5) Changing N/S position of first prop results in the following changed values (in hexadecimal, offset by 1 byte into file); first byte is actually a good bit earlier at a1, other two are at a5 and a6: offset: a1 a5 a6 a7 a8 099980: 00 00 00 fe ff 099990: 00 00 00 ff ff 099999: 00 66 e6 ff ff 100000: 80 00 00 00 00 100001: 00 99 19 00 00 100002: 00 33 33 00 00 100003: 00 cc 4c 00 00 100004: 00 66 66 00 00 100005: 00 00 80 00 00 100006: 00 99 99 00 00 100007: 00 33 b3 00 00 100008: 00 cc cc 00 00 100009: 00 66 e6 00 00 100010: 00 00 00 01 00 100011: 00 99 19 01 00 100012: 00 33 33 01 00 100013: 00 cc 4c 01 00 100020: 00 00 00 02 00 100030: 00 00 00 03 00 100100: 00 00 00 0a 00 Positions can range between 0 and 200000 (decimal). Singles digit of altitude is at a1 and a2, tens are at a3. offset: a1 a2 a3 a4 alt00: 00 00 00 00 alt01: 67 e6 ff ff alt02: cd cc ff ff alt03: 34 b3 ff ff alt04: 9a 99 ff ff alt05: 00 80 ff ff alt06: 67 66 ff ff alt07: cd 4c ff ff alt08: 34 33 ff ff alt09: 9a 19 ff ff alt10: 00 00 ff ff alt11: 67 e6 ff ff xA9,xAA: facing roll of prop 1 xAB,xAC: facing pitch of prop 1 xAD,xAE: facing yaw of prop 1 xB5,xB6: speed of prop 1 xCB: (packed bits) 76543210 <-- bit numbers ----lv-- <-- represented values l: lock of prop 1 is on if true v: visibility of prop 1 off if true Hide: if it's on, xD6 and xDA have values of 031, and if it's off, values of 033 -- 0xE1-0xEC: adding a single event changes these values -- Used these commands: diff -y --suppress-common-lines <(od -An -v -j1 -tx1 -w1 100000.SET) <(od -An -v -j1 -tx1 -w1 100001.SET) diff -y --suppress-common-lines <(od -An -v -j1 -tx1 -w1 100002.SET) <(od -An -v -j1 -tx1 -w1 100003.SET) diff -y --suppress-common-lines <(od -An -v -j1 -tx1 -w1 100000.SET) <(od -An -v -j1 -tx1 -w1 100003.SET) -- xFF-x100: changing pitch of spotter plane