github Xian55/HermesProxy v4.6.0-feature-cata-442-client-c751439
Pre-release: Cataclysm Classic 4.4.2 preview @ c751439

pre-release4 hours ago

Branch: feature/cata-442-client
Commit: c751439b2e3932d05ae6d90ea5fac0b49e6bc64d

Cataclysm Classic 4.4.2 — early preview

Work in progress. This prerelease lets a Cataclysm Classic 4.4.2.60895 client play through HermesProxy. Everything was playtested solo, so expect missing features, wrong numbers and the occasional disconnect. Progress and discussion: #202.

Why it came together this fast. The 4.4.2 client turned out to be a close relative of 3.4.3, so the WotLK Classic groundwork paid off: the per-build packet layouts, the opcode table (4.4.2's was generated by matching 3.4.3's names) and most of the packet writers apply as they are. Diffing the two clients' own readers (docs/protocol) puts a number on it: of the 687 packets HermesProxy handles that both clients have, 556 are laid out identically, and of the other 121, 60 differ only in how the layout is written down or in parts HermesProxy never sends. That left about sixty real changes, mostly a widened field or one extra byte, each with its own 4.4.2 shape in the code (47 done, 14 open). On the client side the genuinely new parts were the Battle.net SRP login and the stronger world handshake. The bulk of the new work was on the other end: teaching the proxy to speak to a 4.3.4 server.

What works

  • TrinityCore 4.3.4 (Cataclysm Preservation Project): Battle.net login, the character screen with Goblin and Worgen creation, entering the world, movement, combat and spells, questing, looting, vendors, trainers, the bank, mail (money, items, COD), reputation, chat channels and the world map.
  • 3.3.5a (AzerothCore / TrinityCore 3.3.5): world, gossip, quests, vendors, trainers and combat.

Not yet: groups and raids, guilds, the auction house, LFG, battlegrounds and arenas, pets. docs/cata-progress.md lists what is done and what is still open.

Setup

  • Server: Xian55/TrinityCore-docker, branch 4.3.4, with TC_LEGACY_CONNECTION_MODE_ENABLED=1 in tc.env (HermesProxy keeps each player on one connection).
  • appsettings.json: ClientOptions:ClientBuild = V4_4_2_60895. LegacyServerOptions:Build = auto picks 4.3.4; use V3_3_5a_12340 for a 3.3.5a server.
  • Password: the 4.4.2 client logs in with SRP and never sends its password, so set HERMES_LegacyServerOptions__Password to the legacy account's password, or type it when the proxy asks at startup.
  • Client: SET portal "127.0.0.1" in WTF/Config.wtf, started with the Arctium Game Launcher (tested with 1.5.0) and --version=Classic.

WotLK Classic 3.4.3 was regression-checked against AzerothCore for this build. Bug reports are welcome in #202 or as new issues; the bug template now offers 4.4.2 and TrinityCore 4.3.4.

Don't miss a new HermesProxy release

NewReleases is sending notifications on new releases.