Skip to content

Releases: nuriland/a2kit

v0.4.0

Choose a tag to compare

@nuriland nuriland released this 03 Oct 09:53

cli

  • a2k now picks up the game as soon as you reach the server list, instead of waiting until character select
  • show no longer prints the server clock ticks by default, same as watch. Use -ticks to see them
  • Files you'd share (export, -log and timeline) no longer include your account ID or your character list. Use -account if you want
    them included
    • Keep in mind that show and watch stdout print on screen still includes them, so don't paste that publicly

wire

  • Recognises the lobby, the server you're connected to before picking a world server
  • Handles switching from the lobby server to the world server
    • A full session now counts as 2 sessions (lobby + world server) in the summary for better debugging

game

  • Server list decoding includes players online, the capacity per server, and if a server is currently restricted or recommended (as shown in the UI)
  • Your account and your characters on every server, including their levels
  • The lobby's ping, and the hand-off to the world server you picked
  • Name check on character creation, includes a flag whether a name is free or taken

Fixes

  • On Windows, killing a capture instead of stopping it no longer leaves a capture session running in the background

Full Changelog: v0.3.0...v0.4.0

v0.3.0

Choose a tag to compare

@nuriland nuriland released this 27 Sep 16:42

New features:

  • CLI a2k, replacing dump: watch, record, show, export, timeline, stats, adapters.
    • Readable output by default, -json for scripts, -for to stop live captures, and a summary line on every run.
  • New library interface and entry point a2kit: Open/Capture return a Reader of decoded messages
    • a2log gets a Writer and a Reader.
  • Breaking: wire now yields only the game's frames by default (EmitUnlocked restores the old behaviour), and Live.Close no longer reports ETW losses. Live.Lost() does.

Fixes:

  • live capture no longer reads freed memory when stopped, macOS picks the right default adapter, and Windows no longer fails a capture over a few lost ETW events.

Full Changelog: v0.2.1...v0.3.0

v0.2.1

Choose a tag to compare

@nuriland nuriland released this 27 Sep 11:14

Fixes

  • pktmon captures now decode fully
    • pktmon's etl2pcap labels every packet as Ethernet, including VPN tunnel traffic that has no link header. Packets that aren't TCP when read as Ethernet are now tried again as raw IP
  • dump now warns when a capture's snap length cut TCP segments short, since the cut bytes are lost
  • The new capture.Reader.CutShort() returns how many segments were cut short

Logging

  • Per-stream log lines, including TCP gap lost, now include src/dst, so you can tell which connection they came from
  • The flow locked log line now reports how many other streams were dropped

Opcodes

  • More identified opcodes:
    • 0x3611 Handshake, the first frame of a login
    • 0x3615 Login
    • 0x8D2F Notice, text sent to players

Docs

  • Overall improvements for docs

Full Changelog: v0.2.0...v0.2.1

v0.2.0

Choose a tag to compare

@nuriland nuriland released this 25 Sep 12:53

v0.2.0

  • game package (protocol dissasembler): game.Parse decodes hits, casts, spawns, deaths, movement, ticks and pings
  • dump -events prints decoded events as JSON lines
  • a2log.Frame.Wire() turns a log line back into a frame for game.Parse
  • internal/timeline turns a log or pcap into a Perfetto trace
  • release archives get attached again

Full Changelog: v0.1.0...v0.2.0

v0.1.0

Choose a tag to compare

@nuriland nuriland released this 24 Sep 14:25

Full Changelog: v0.0.1...v0.1.0

v0.0.1

Choose a tag to compare

@nuriland nuriland released this 23 Sep 17:08