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

v1.70 archaeology #170

Open NoseyNick opened 6 years ago

NoseyNick commented 6 years ago

Some of us have managed to get hold of v1.65 and v1.70 for archaeological purposes! :grin: See #168 and #169 but also... ObjectType enumeration is different. v1.70 Object types appear to be:

Object Type 0x00 EOL (0 bit field = 0 bytes)

And yes EOL is still 0x00000000 even though you'd expect 0x00 would be enough

Object Type 0x01 PlayerShip (36 bit field = 5 bytes)

Target (bit 1.1, int) Impulse (bit 1.2, float) Rudder (bit 1.3, float) MaxImpulse (bit 1.4, float) TurnRate (bit 1.5, float) AutoBeams (bit 1.6, byte) WarpFactor (bit 1.7, byte) Energy (bit 1.8, float) ShieldsUp (bit 2.1, short) ShipNum (bit 2.2, int) ShipType (bit 2.3, int) X (bit 2.4, float) Y (bit 2.5, float) Z (bit 2.6, float) Pitch (bit 2.7, float) Roll (bit 2.8, float) Heading (bit 3.1, float) Velocity (bit 3.2, float) InNebula (bit 3.3, short) Name (bit 3.4, string) ForeShields (bit 3.5, float) ForeShieldsMax (bit 3.6, float) AftShields (bit 3.7, float) AftShieldsMax (bit 3.8, float) LastDockedBase (bit 4.1, int) RedAlert (bit 4.2, byte) Unknown (bit 4.3, float) MainScreenView (bit 4.4, byte) BeamFreq (bit 4.5, byte) AvailableCoolant (bit 4.6, byte) ScienceTarget (bit 4.7, int) CaptainTarget (bit 4.8, int) DriveType (bit 5.1, byte) ScanningID (bit 5.2, int) ScanningProgress (bit 5.3, float) Reverse (bit 5.4, byte)

Object Type 0x02 WeapCons (23 bit field = 3 bytes)

Homings (bit 1.1, byte) Nukes (bit 1.2, byte) Mines (bit 1.3, byte) EMPs (bit 1.4, byte) Unknown (bit 1.5, byte) LoadTime1 (bit 1.6, float) LoadTime2 (bit 1.7, float) LoadTime3 (bit 1.8, float) LoadTime4 (bit 2.1, float) LoadTime5 (bit 2.2, float) LoadTime6 (bit 2.3, float) TubeUsed1 (bit 2.4, byte) TubeUsed2 (bit 2.5, byte) TubeUsed3 (bit 2.6, byte) TubeUsed4 (bit 2.7, byte) TubeUsed5 (bit 2.8, byte) TubeUsed6 (bit 3.1, byte) TubeCont1 (bit 3.2, byte) TubeCont2 (bit 3.3, byte) TubeCont3 (bit 3.4, byte) TubeCont4 (bit 3.5, byte) TubeCont5 (bit 3.6, byte) TubeCont6 (bit 3.7, byte)

Object Type 0x03 EngCons (24 bit field = 4 bytes)

BeamsHeat (bit 1.1, float) TorpsHeat (bit 1.2, float) SenseHeat (bit 1.3, float) ManuvHeat (bit 1.4, float) ImpulHeat (bit 1.5, float) DriveHeat (bit 1.6, float) FShldHeat (bit 1.7, float) AShldHeat (bit 1.8, float) BeamsEner (bit 2.1, float) TorpsEner (bit 2.2, float) SenseEner (bit 2.3, float) ManuvEner (bit 2.4, float) ImpulEner (bit 2.5, float) DriveEner (bit 2.6, float) FShldEner (bit 2.7, float) AShldEner (bit 2.8, float) BeamsCool (bit 3.1, byte) TorpsCool (bit 3.2, byte) SenseCool (bit 3.3, byte) ManuvCool (bit 3.4, byte) ImpulCool (bit 3.5, byte) DriveCool (bit 3.6, byte) FShldCool (bit 3.7, byte) AShldCool (bit 3.8, byte)

Object Type 0x04 Enemy (39 bit field = 5 bytes)

Name (bit 1.1, string) Throttle (bit 1.2, float) Rudder (bit 1.3, float) MaxImpulse (bit 1.4, float) MaxTurnRate (bit 1.5, float) IsEnemy (bit 1.6, int) VesselType (bit 1.7, int) X (bit 1.8, float) Y (bit 2.1, float) Z (bit 2.2, float) Pitch (bit 2.3, float) Roll (bit 2.4, float) Heading (bit 2.5, float) Velocity (bit 2.6, float) Surrendered (bit 2.7, byte) Unknown (bit 2.8, short) ForeShields (bit 3.1, float) ForeShieldsMax (bit 3.2, float) AftShields (bit 3.3, float) AftShieldsMax (bit 3.4, float) Unknown (bit 3.5, short) FleetNum (bit 3.6, byte) SingleScan (bit 3.7, int) DoubleScan (bit 3.8, int) Unknown (bit 4.1, byte) Unknown (bit 4.2, short) BeamsDamg (bit 4.3, float) TorpsDamg (bit 4.4, float) SenseDamg (bit 4.5, float) ManuvDamg (bit 4.6, float) ImpulDamg (bit 4.7, float) DriveDamg (bit 4.8, float) FShldDamg (bit 5.1, float) AShldDamg (bit 5.2, float) ShFreqA (bit 5.3, float) ShFreqB (bit 5.4, float) ShFreqC (bit 5.5, float) ShFreqD (bit 5.6, float) ShFreqE (bit 5.7, float)

Object Type 0x05 NPCShip (35 bit field = 5 bytes)

Name (bit 1.1, string) Throttle (bit 1.2, float) Rudder (bit 1.3, float) MaxImpulse (bit 1.4, float) MaxTurnRate (bit 1.5, float) IsEnemy (bit 1.6, int) VesselType (bit 1.7, int) X (bit 1.8, float) Y (bit 2.1, float) Z (bit 2.2, float) Pitch (bit 2.3, float) Roll (bit 2.4, float) Heading (bit 2.5, float) Velocity (bit 2.6, float) Unknown (bit 2.7, short) ForeShields (bit 2.8, float) ForeShieldsMax (bit 3.1, float) AftShields (bit 3.2, float) AftShieldsMax (bit 3.3, float) Unknown (bit 3.4, short) FleetNum (bit 3.5, byte) Unknown (bit 3.6, byte) BeamsDamg (bit 3.7, float) TorpsDamg (bit 3.8, float) SenseDamg (bit 4.1, float) ManuvDamg (bit 4.2, float) ImpulDamg (bit 4.3, float) DriveDamg (bit 4.4, float) FShldDamg (bit 4.5, float) AShldDamg (bit 4.6, float) ShFreqA (bit 4.7, float) ShFreqB (bit 4.8, float) ShFreqC (bit 5.1, float) ShFreqD (bit 5.2, float) ShFreqE (bit 5.3, float)

Object Type 0x06 Base (14 bit field = 2 bytes)

Name (bit 1.1, string) Shields (bit 1.2, float) MaxShields (bit 1.3, float) Index (bit 1.4, int) VesselType (bit 1.5, int) X (bit 1.6, float) Y (bit 1.7, float) Z (bit 1.8, float) Unknown (bit 2.1, int) Unknown (bit 2.2, int) Unknown (bit 2.3, int) Unknown (bit 2.4, int) Unknown (bit 2.5, byte) Side (bit 2.6, byte)

Object Type 0x07 Mine (3 bit field = 1 bytes)

X (bit 1.1, float) Y (bit 1.2, float) Z (bit 1.3, float)

Object Type 0x08 Anomaly (4 bit field = 1 bytes)

X (bit 1.1, float) Y (bit 1.2, float) Z (bit 1.3, float) Name (bit 1.4, string)

Object Type 0x0a Nebula (6 bit field = 1 bytes)

X (bit 1.1, float) Y (bit 1.2, float) Z (bit 1.3, float) R (bit 1.4, float) G (bit 1.5, float) B (bit 1.6, float)

Object Type 0x0b Torpedo (8 bit field = 2 bytes)

X (bit 1.1, float) Y (bit 1.2, float) Z (bit 1.3, float) dX (bit 1.4, float) dY (bit 1.5, float) dZ (bit 1.6, float) OrdnanceType (bit 1.7, int) Unknown (bit 1.8, int)

Object Type 0x0c BlackHole (3 bit field = 1 bytes)

X (bit 1.1, float) Y (bit 1.2, float) Z (bit 1.3, float)

Object Type 0x0d Asteroid (3 bit field = 1 bytes)

X (bit 1.1, float) Y (bit 1.2, float) Z (bit 1.3, float)

Object Type 0x0e GenericMesh

Details TBC

Object Type 0x0f Xtal (4 bit field = 1 bytes)

X (bit 1.1, float) Y (bit 1.2, float) Z (bit 1.3, float) Name (bit 1.4, string)

Object Type 0x10 Xeno (13 bit field = 2 bytes)

Name (bit 1.1, string) Unknown (bit 1.2, int) Unknown (bit 1.3, int) X (bit 1.4, float) Y (bit 1.5, float) Z (bit 1.6, float) Pitch (bit 1.7, float) Roll (bit 1.8, float) Heading (bit 2.1, float) Unknown (bit 2.2, float) Unknown (bit 2.3, float) Unknown (bit 2.4, float) Unknown (bit 2.5, float)

Will tackle 1.65 once 1.70 is parseable.

NoseyNick commented 6 years ago

EngSetEnergyPacket was Packet type 0x0351a5ac:0x03 HelmSetJump was 0x0351a5ac:0x04 GameMasterSelectLocationPacket was 0x0351a5ac:0x05 HelmSetPitchPacket might not have existed, there doesn't seem to be any sort of control for it.

NoseyNick commented 6 years ago

I THINK that's 1.70 ready for update