Repository navigation
Releases: STiXzoOR/cod2-silicon
Release list
CoD2 Silicon 0.2.0
Apple silicon, macOS 13 or later. Ad-hoc signed and not notarized: see the README for game data and first-launch (Gatekeeper) instructions.
Highlights: a native launcher with server browser, a Mac-hosted dedicated server, and a large round of 64-bit gameplay fixes. Start New Server no longer crashes, and grenades, smoke, effects, mounted turrets and the Controls menu all work.
Added
- Native SwiftUI launcher with Liquid Glass styling on macOS 26+ (material
fallback on macOS 13–25): server browser, library, settings, first-run
setup andcod2x://links. The game helper gets keyboard and mouse focus
on launch. - Layered Icon Composer app icon with light, dark, clear and tinted variants.
- Native arm64 dedicated server (
cod2_macos_ded) for hosting on Mac
hardware, with a launchd service, example config and operator guide in
docs/server.md.
Changed
- Fullscreen now defaults to desktop (borderless) fullscreen at the chosen
render resolution. Exclusive fullscreen remains selectable. com_maxfpsdefaults to 250 and accepts 0 (no cap) through 1000.
Fixed
-
Opening Start New Server crashed the game. The UI read the game-type,
map, mod and movie lists through 32-bit offsets on the 64-bit build. -
Smoke, explosions, muzzle flashes and other effects never advanced: the
effects clock misreadfx_freezeon the 64-bit build. -
Join Server: localized placeholders such as "Source: &&1Internet", the
empty Game Type, the empty server list and the cyan column tint. -
Menu items flickered on hover; the pulse now follows the original timing.
-
Portal visibility overran its pool and clipped projections incorrectly,
a likely cause of the world briefly disappearing while looking around
(that symptom has not been reproduced in automated sweeps). -
Black screens after Cmd-Tab, Mission Control or a hot corner: desktop
fullscreen avoids display mode switches, and exclusive fullscreen now
steps aside while the game is hidden. Exclusive fullscreen can still fail
to restore after display sleep. -
A second (system) cursor in fullscreen menus.
-
Players could not use stock mounted turrets. The use check read the
wrong field, and the server marked every living player active each frame,
which skipped the turret query. -
Temporary collision models dropped their content mask and broadphase
links used the wrong entity numbering, so they were unlinked from the
world. -
Thrown grenades fell through the world: movement checked the wrong
bounce flag, so frags exploded far below the map and smoke never formed
a cloud. -
Effect colour curves and scales were not parsed, so smoke and explosion
particles drew tiny and black. -
The world turned black for several seconds after a nearby explosion: the
OpenGL backbuffer copy behind the screen-feedback effect never copied. -
Ordinary projectile impacts were skipped, and splash damage swapped its
inner damage with its radius. -
The Controls pages showed no key names next to their actions.
-
After a game started from a server link or
--playwith engine options,
the launcher came back without a window. -
A source-wide audit fixed more fields that the 64-bit build read at
their 32-bit positions:- key binding records (the Controls menu);
- 13 sound-setting reads (enable, pause and volume);
- swapped network-channel sequence and dropped-packet fields;
- player, corpse, obituary, scoreboard, pickup-sound and turret-event
records; - renderer world, sun, sky and occluder objects;
- collision-map allocation sizes.
A gate now rejects new raw offsets, and a test opens every menu and runs
every safe menu script. -
Five network-parser memory-safety bugs found by fuzzing, including an
out-of-bounds decompression read and anInfo_SetValueForKeyoverflow
reachable throughgetinfo.
Known limitations
- OpenGL remains the renderer. The native Metal renderer is in progress for
0.3, and so is presentation through Metal for smoother frame pacing. - Exclusive fullscreen can fail to restore after the display sleeps. The
default desktop fullscreen is not affected. - The byte-for-byte comparison of the original 32-bit Linux build needs an
x86_64 Linux host and runs in CI only.
CoD2 Silicon 0.1.0
Call of Duty 2 multiplayer, native on Apple silicon. CoD2x 1.4 compatible.
First public release. Bring your own licensed copy of Call of Duty 2; no game content is included.
Install
- Download
CoD2-Silicon-0.1.0-macos-arm64.zipandSHA256SUMS, then verify:shasum -a 256 -c SHA256SUMS - Unzip and move CoD2 Silicon.app to
/Applications. - The app is ad-hoc signed and not notarized. On macOS 15 and later, open it once, then go to System Settings → Privacy & Security → Open Anyway. Or, after verifying the checksum:
xattr -dr com.apple.quarantine "/Applications/CoD2 Silicon.app"
Prefer to build it yourself? git clone https://github.com/STiXzoOR/cod2-silicon && cd cod2-silicon && ./scripts/install.sh (needs Xcode Command Line Tools and CMake; no game binary needed to build, and a locally built app is not quarantined).
On first launch the app finds your game folder (or asks), asks for your CD key if none is stored, and extracts the original Mac shaders from your own Steam Mac copy when available. See getting your game data.
What works
- Native arm64 client for macOS 13+, self-contained (bundled SDL3 3.4.10 + sdl2-compat 2.32.72).
- Online play on stock 1.3 and CoD2x 1.4 servers, CD-key authentication, HTTP mod downloads,
cod2x://links. - CoD2x client parity: 41 implemented, 12 native equivalents, 2 partial, 13 excluded/server-owned (auto-updater excluded).
- Rendering with the original Mac shaders matches Windows within ~2/255 mean error on matched views; fullscreen up to 6K.
Known limitations
- Frame pacing at high frame caps is still being improved: most slow frames wait in the OpenGL swap (#1). Game Mode activation is unverified (#2).
- No voice capture, no intro cinematics, no standalone dedicated-server binary (use
+set dedicated 1). - Inherits an unhardened 2005-era engine: use trusted servers and content (SECURITY.md).
This build was packaged on Apple silicon from the exact v0.1.0 tag (macOS 13.0 deployment target); later tags are built by the release workflow. Full notes: CHANGELOG · Credits: CREDITS.md · License scope: NOTICE.md
“Call of Duty” is a trademark of Activision. CoD2 Silicon is not affiliated with Activision, Infinity Ward, Aspyr or the CoD2x project.