https://x8bitrain.github.io/webXash/
Play Half-Life 1 and Counter-Strike 1.6 in your browser with Xash3d-FWGS-webassembly!
Please read the FAQs before you start!
You must provide your own game files (e.g., from Steam):
steamcmd +force_install_dir ./hl +login your_steam_username +app_update 70 validate +quit
Or from your valve
or cstrike
folders located in your steamapps directory.
Click the Open game folder
button and select your Half-Life or Counter-Strike ROOT folder, the folder should always contain a valve
and or cstrike
directory, for example:
/Half-Life 1
├──┬/valve
│ ├───/file1
│ └───/file2...
└──┬/cstrike
├───/file1
└───/file2...
The game should load immediately after allowing access to read the folder.
Zip and and copy the valve
folder from your Half-Life installation into the public/valve.zip
.
Note: zip contents should be like this:
/valve.zip
├──┬/valve
│ ├───/file1
│ └───/file2...
└──┬/cstrike
├───/file1
└───/file2...
The click open zip
to select this zip, if done correctly the game will launch as soon as you've selected the zip.
If you are running a Half-Life mod or expansion like Opposing Force, the valve
folder should always be present in the folder you select, the mod or expandion should be next to your valve
folder in the folder you select or compress into a zip. For example:
/Half-Life Blue Shift
├──┬/valve
│ ├───/file1
│ └───/file2...
└──┬/bshift
├───/file1
└───/file2...
Before you select the folder you need to specify which game folder to launch using the LAUNCH OPTIONS
window, in this example, I would run Blue Shift with -game bshift
If you want to play multiplayer you should use this version of Half-Life: Deathmatch on dos.zone. The WASM client needs to proxy its network requests via a websocket in order to do online multiplayer, afaik Xash3d-FWGS-webassembly does not have this ability yet.
If Xash3d doesn't explicitly support it then it probaly won't work, you can see their incompatability list here: https://github.com/FWGS/xash3d-fwgs/blob/master/Documentation/not-supported-mod-list-and-reasons-why.md
You'd be better off downloading the xash3D mobile ports rather than using this.
Nope, I'm not the maintainer of this port, I just wrote a frontend for it, please submit issues to the engine port repo instead: https://github.com/yohimik/webxash3d-fwgs
Clone the repo:
git clone --recurse-submodules https://github.com/x8BitRain/webXash.git
cd webXash
Build and extract the wasm files from webxash3d-fwgs (this takes a while).
./build-xash.sh
This step seems to be broken so you will need build and extract the WASM binaries following the steps from this repo: https://github.com/yohimik/webxash3d-fwgs
and this script https://github.com/x8BitRain/webXash/blob/main/build-xash.sh#L36, HL binaries go into public/hl
and CS bins go in public/cs
. If you know how to get this script running without corrupting the WASM binaries please submit a PR!
Start or build the frontend (I use bun here, but npm also works).
bun install
bun dev
bun build