artemis-nerds / protocol-docs

Unofficial documentation for the Artemis network and file protocols, written by the Artemis community
https://artemis-nerds.github.io/protocol-docs/
MIT License
8 stars 5 forks source link

0xf754c8fe subtypes 0x19, 1a, 1b, 1d seen #79

Closed NoseyNick closed 6 years ago

NoseyNick commented 7 years ago

0xf754c8fe officially means "simpleEvent" - #52

0xf754c8fe 0x18 hypothesized, because...

0xf754c8fe 0x19 seen in v2.5.1, v2.6.0, and V2.6.204 games:

fec854f71900000000000000 # 2.5.1 payload fec854f71900000004000000 # 2.5.1 payload fec854f71900000000000000 # 2.6.0 payload fec854f71900000004000000 # 2.6.0 payload fec854f71900000000000000 # 2.6.204 payload fec854f71900000004000000 # 2.6.204 payload Single integer? Values 0 and 4 seen. Purpose unknown.

0xf754c8fe 0x1a:

fec854f71a00000004120000 # 2.6.0 payload fec854f71a00000008220000 # 2.6.0 payload fec854f71a00000008320000 # 2.6.0 payload fec854f71a00000009140000 # 2.6.0 payload fec854f71a0000000f070000 # 2.6.0 payload fec854f71a00000020080000 # 2.6.0 payload fec854f71a0000002e040000 # 2.6.0 payload fec854f71a00000034040000 # 2.6.204 payload fec854f71a0000003e040000 # 2.6.0 payload fec854f71a000000673d0000 # 2.6.0 payload fec854f71a00000078300000 # 2.6.0 payload fec854f71a0000008f140000 # 2.6.0 payload fec854f71a000000b7270000 # 2.6.0 payload fec854f71a000000c10c0000 # 2.6.0 payload fec854f71a000000c5100000 # 2.6.0 payload fec854f71a000000c70f0000 # 2.6.0 payload fec854f71a000000ce0b0000 # 2.6.0 payload fec854f71a000000d5290000 # 2.6.0 payload fec854f71a000000d6070000 # 2.6.0 payload fec854f71a000000ea030000 # 2.6.204 payload fec854f71a000000ec030000 # 2.6.204 payload fec854f71a000000ee190000 # 2.6.0 payload fec854f71a000000f5170000 # 2.6.0 payload Single int? Probably an ObjectID?

0xf754c8fe 0x1b:

fec854f71b000000041200000000000012adb73f7a3195bff60796c1 # 2.6.0 payload fec854f71b00000004120000000000001bddf8c04b437ec005084dc2 # 2.6.0 payload fec854f71b0000000412000003000000a306c73f9548d2bf461692c1 # 2.6.0 payload fec854f71b00000004120000040000002ae0e1be8bd494bf534296c1 # 2.6.0 payload fec854f71b000000041200000400000040b01042925f8540607059c2 # 2.6.0 payload fec854f71b000000041200000400000052e2f1408b0fc6beb34e1bc2 # 2.6.0 payload fec854f71b0000000412000004000000957df1413081283ed3e46ac2 # 2.6.0 payload fec854f71b0000000412000004000000d634cd4047eb123f7b76a2c1 # 2.6.0 payload fec854f71b0000000412000005000000628ee5407194c5be80291fc2 # 2.6.0 payload [loads more] Looks like: Int 1019..1600ish (ObjectID?), int 0..7, float, float, float.

0xf754c8fe 0x1c hypothesized, because...

0xf754c8fe 0x1d seen just once:

fec854f71d000000c8050000030000000800000041007200740065006d006900730000000b00000032003000310037002d00310031002d00310039000000 # 2.6.204 payload Looks like: fec854f71d000000 packet type/subtype c8050000 int 1480 (ObjectID? Corresponds to a "WRECK" Creature type=7 I think) 03000000 int 3 0800000041007200740065006d00690073000000 String(8)="Artemis\0", 0b00000032003000310037002d00310031002d00310039000000 String(11)="2017-11-19\0" which was definitely the date I was playing it. I was Helm and Weapons. This was a server2client packet.

Curioser and Curioser!

NoseyNick commented 6 years ago

0xf754c8fe:0x1a appears to mean "Ship Docked". Contents:

NoseyNick commented 6 years ago

__server_hypothetical__2 0xf754c8fe:0x0e observed in the wild. Server to client Integer type = 0xf754c8fe - officially JamCRC("simpleEvent") Integer subtype = 0x0e Integer (?) always 0? Float (values 0,0.00475 - 0.8866 observed) Seen a few times in "real world" 2.6.0, and a load of times in "playtesting for protocol hacking" 2.6.204-beta, which HOPEFULLY means I stand some change of reproducing it. Purpose unknown at this time. Was mid-game. DamCon teams were running around repairing stuff. Tried looking for the same floats in other places, doesn't match anything else.

NoseyNick commented 6 years ago

0xf754c8fe:0x13 "__server_unknown__4" ... "Speculated to have some relation to detonations" contains an "Unknown (int) Only the value 7 has been observed so far. Unknown function or significance". I've seen some where it's 11. I would add the observation that 7 happens to be the MINE ObjectType, 11 the TORPEDO type, further reinforcing the speculation that it may have some relation to detonations "immediately before DestroyObject(Mine, objID) or DestroyObject(Torpedo, objID)" :-D

NoseyNick commented 6 years ago

Thanks to @Starry on https://discord.gg/HeCTdF for spotting this "deliberate mistake": server_hypothetical2 | server | 0xf754c8fe | simpleEvent | 0x02 server_hypothetical2 | server | 0xf754c8fe | simpleEvent | 0x0e I've never seen a subtype 0x02. I've seen 182 of subtype 0x0e. WIP.

NoseyNick commented 6 years ago

0xf754c8fe 0x18 no longer hypothesized. Seen in the wild, in a 2.6.0 "Friday night fighters" game over on https://www.unitedstellarnavy.net/ Payload appears to be: Subtype (int), always 0x18 ObjectID (int), always the ID of a fighter/bomber/shuttle/"singleseat" Unknown (float), usually 3.0 but sometimes 2.0, occasionally 1.5, 1.05, 0.5. Believed to be a singleseat version of the 0xf754c8fe:0x05 "PlayerShipDamagePacket"... speaking of which...

NoseyNick commented 6 years ago

0xf754c8fe:0x05 PlayerShipDamagePacket Payload: Subtype (int) Always 0x05. Ship index (int) The index of the damaged ship; valid values are 0 through 7 inclusive. Unknown (float) - This is the DURATION of the shake, in seconds, isn't it? Similar to the above, values of 3.0 are really common, with other values in the order of 1.5, 2.0, 1.85 also seen in the wild. Unknown (int) - Described in the docs and even "Values of 0, 103, 108, and 114 observed" but NEVER seen in my archive of >750 games, with >72,000 packets of type 0xf754c8fe:0x05, various versions (2.2.0 through 2.6.204). Can someone confirm that this exists? In what version(s) of Artemis? Are you sure it's not a misreading of the above float?

NoseyNick commented 6 years ago

__server_hypothetical__1 Type: 0xf754c8fe:0x01 [from server] is not hypothetical. I've seen 8 of them in one single 2.2.0 game. It has no payload (apart from the integer subtype). It makes the client play the Red Alert noise. Even if you inject them into a 2.6.0 client :laughing:

NoseyNick commented 6 years ago

__server_unknown__2 Type: 0xf754c8fe:0x07 [from server]

This packet type has been observed, and its payload structure is believed to be understood. However, its function has not determined with certainty. Contains three floats which seem to correspond to map coordinates of ships with special abilities. Could relate to cloak/decloak graphical effects.

I can confirm that if you inject one in the server-to-client stream, the client (mainscreen/vis/observer) will render a green "poof" type blobby smoky sparkly thing at those galactic x,y,z coords. Propose we call this "PoofPacket", but would settle for "CloakDecloakEffect" or something if you want to be all grown-up about it :stuck_out_tongue_winking_eye:

NoseyNick commented 6 years ago

0xf754c8fe 0x18 (as discussed above) confirmed to be a SingleSeatDamageShake, Payload: Subtype (int), always 0x18 ObjectID (int), always the ID of a fighter/bomber/shuttle/"singleseat" Duration (float), in seconds, usually 3.0, sometimes 2.0, occasionally 1.5, 1.05, 0.5.

Injecting one in server2client traffic with a stupid-long duration is... "fun" :white_check_mark:

rjwut commented 6 years ago

Let's simplify tracking of work by splitting this issue into a separate issue for each subtype.

NoseyNick commented 6 years ago

0xf754c8fe:0x01 RedAlert noise #110 0xf754c8fe:0x02 (see #109 and #77 ) 0xf754c8fe:0x05 PlayerShipDamagePacket refinements moved to #104 0xf754c8fe:0x07 Green Poof effect moved to #112 0xf754c8fe:0x0e __server_hypothetical__2 needs more research #109 and #77 0xf754c8fe:0x13 Detonate? moved to #111 0xf754c8fe 0x18 SingleSeatDamageShake moved to #103 0xf754c8fe:0x19 Unknown moved to #105 0xf754c8fe:0x1a ShipDocked moved to #106 0xf754c8fe:0x1b Unknown moved to #107 0xf754c8fe:0x1c hypothesized but never seen - #115 0xf754c8fe:0x1d Unknown moved to #108 I THINK that's all moved to separate tickets? Did I miss any?