Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

CS 1.6 Native macOS (Apple Silicon)

Native Apple Silicon Counter-Strike 1.6 app bundle for macOS. No Rosetta, no emulation, no Wine at runtime. The game runs as a native arm64 macOS application.

How it works

The build process takes a standard Windows CS 1.6 installer and produces a self-contained .app bundle that runs natively on Apple Silicon Macs:

  1. Extract installer using innounp.exe under Wine (Inno Setup 6.5.0 Unicode, which native innoextract can't handle)
  2. Obtain Xash3D FWGS arm64 runtime (open-source GoldSrc engine reimplementation compiled for macOS arm64)
  3. Obtain CS16Client arm64 game libraries (community-built native game DLLs)
  4. Assemble macOS app bundle with proper directory structure:
CounterStrike16.app/
├── Contents/
│   ├── MacOS/          Engine binaries + symlinks to game assets
│   ├── Resources/      Game assets (cstrike/, valve/ data)
│   ├── Frameworks/     SDL2.framework
│   └── Info.plist

The launcher sets XASH3D_BASEDIR to Contents/MacOS and symlinks game asset trees from Contents/Resources, allowing Xash3D to find both engine modules and cstrike data inside the .app structure.

Key challenges solved

  • Inno Setup 6.5.0 Unicode extraction on macOS: Native innoextract doesn't support this version. Solution: build a minimal Wine prefix, run innounp.exe through Wine to extract, then discard Wine entirely.
  • App bundle asset resolution: Xash3D expects game data relative to the engine binary. Solved with symlinks from MacOS/ back into Resources/ so the engine finds assets while maintaining proper macOS bundle structure.
  • Framework embedding: SDL2.framework embedded in Contents/Frameworks with proper rpaths so the app is fully self-contained.

Requirements

  • macOS 13+ on Apple Silicon (M1/M2/M3/M4)
  • A legally obtained CS 1.6 installer
  • For building: Wine (via Homebrew), cmake, Xcode CLI tools

Build

# 1. Install build dependencies
brew install wine-stable cmake

# 2. Place your CS 1.6 installer
cp /path/to/cs_16_clean_eng.exe downloads/

# 3. Extract installer payload
mkdir -p extract/installer
wine innounp.exe -x -d./extract/installer downloads/cs_16_clean_eng.exe

# 4. Download Xash3D FWGS arm64 and CS16Client arm64 releases
# (see staging/runtime and staging/cs16client for expected structure)

# 5. Assemble the app bundle
# Copy runtime to build/CounterStrike16.app/Contents/MacOS
# Copy game assets to build/CounterStrike16.app/Contents/Resources
# Embed SDL2.framework in Contents/Frameworks
# Create symlinks from MacOS/ to Resources/ for asset resolution

# 6. Launch
open build/CounterStrike16.app

Notes

  • Game assets are copyrighted and not included in this repository. You need your own copy of CS 1.6.
  • This is a packaging/porting project, not a game engine. The engine is Xash3D FWGS and game libraries are from CS16Client.
  • No modifications to game logic. This is a native runtime wrapper.

License

Build scripts and documentation: MIT. Game assets and engine binaries have their own licenses.

About

Native Apple Silicon Counter-Strike 1.6 for macOS. No Rosetta, no emulation. Xash3D FWGS arm64 + proper app bundle packaging.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors