Skip to content

Releases: rgnv/wc3-wasm

wc3-dedicated v0.2.0 — native x86_64 + aarch64

Choose a tag to compare

@rgnv rgnv released this 23 Oct 21:50

Native dedicated server builds for the Warcraft III wasm port.

Assets

  • wc3-dedicated-v0.2.0-linux-x86_64.tar.gz — x86_64 (Proxmox/mesa, verified)
  • wc3-dedicated-v0.2.0-linux-aarch64.tar.gz — aarch64 (Ampere/chi1, verified)
  • SHA256SUMS

Each tarball contains bin/openwarcraft3, the engine module libs, and the
WebSocket bridge + dedicated-lobby scripts. No game data is included — point
-data at your own Warcraft III data directory.

What's new in v0.2.0

  • First aarch64 build. Fixed a JASS interoperability bug that broke every
    map boot on ARM: the type-pointer corruption guard in jass_setnull()
    rejected addresses >= 2^47, and AArch64 PIE/ASLR maps the JASS library above
    that line, so every pushed value was zeroed (invalid native argument: expected jasstype_integer → abort). The guard now checks alignment and
    page-zero only.
  • Reliable match start. The browser host's lobby_start_match is re-sent
    every 600 ms (up to 20x) while connected — the command rides a one-shot
    unreliable channel message, so one lost datagram previously cancelled the
    Start silently.
  • Connect-handshake retries for all address types (was Internet-rooms
    only): a lost client_connect reply no longer leaves a client half-joined
    (rendering the lobby but unable to send).
  • Lobby seat config that matches the map: run-dedicated-browser.sh now
    seats bootybay's two real players (map_player 0 and 1) instead of mapping
    extra slots to map players the map does not use.

Verified

  • x86_64 and aarch64: dedicated boot to Server initialized on bootybay from
    the extracted tarball layout (relative RPATH).
  • Live two-player match on the aarch64 host through the public WebSocket relay:
    both clients join, the host presses Start, both sign on as player 0 / 1.

Requirements

SDL2, Mesa/GL, ALSA or PulseAudio on the host. Server is headless
(+dedicated 1).

wc3-web v0.1.0 — first public binary release

Choose a tag to compare

@rgnv rgnv released this 18 Oct 16:22

wc3-web v0.1.0 — first public binary release

The browser client for wc3-wasm — Warcraft III: Reign of Chaos + The Frozen Throne running in a browser tab. Built from the published 29-patch series with a data-free preload: engine code only, no game content.

What's inside

  • index.html, wc3-input.js — the client shell (touch + gamepad input, FMV overlay, base64-sidecar fetch path)
  • openwarcraft3.js, openwarcraft3.wasm — the wasm64 engine (~12 MB)
  • openwarcraft3.data — engine share files only (configs + font stubs; no game data)
  • version.json — build id
  • README-RELEASE.md, NOTICE.md, LICENSE, serve.py

Quick start

  1. Extract this tarball into a directory. Put your own extracted gamedata/ mirror next to index.html — scripts/prepare-data.sh in the source repo builds it from a Warcraft III copy you own (nothing is downloaded or re-hosted here).
  2. Serve it: python3 serve.py --web . --data ./gamedata → open http://127.0.0.1:8080/
  3. First boot builds the UI from your mirror over HTTP (a few hundred small requests); later loads are cached.

Verified

  • The literal release files, served against a fresh mirror, boot to the Frozen Throne main menu (~6–16 s on a LAN), navigate Single Player → campaign → mission, and load into a running mission (Strahnbrad, in-game HUD).
  • The live reference deployment is additionally verified on real-GPU hardware.
  • Without movie transcodes you click once through the two logo screens at startup (built-in skip; see README-RELEASE.md).

Rules restated

No game assets are distributed in this release or in the repository. Warcraft III is © Blizzard Entertainment, Inc. — bring a copy you legally own. Engine and tooling are MIT-licensed. Source + patch series: https://github.com/rgnv/wc3-wasm