elliot1377 / mw2-ps3-server
git clone https://github.com/elliot1377/mw2-ps3-server.git
v1.0.1 · 17d ago
Community DemonWare server for Call of Duty: Modern Warfare 2 (PS3) - play MW2 online again in RPCS3 or on a real PS3
+-12
stars, 24h · #62,386
+~119
stars, 7 days · #1,788
+225
stars, 30 days · #3,544
225
★ total · +112% this week
1
forks · 0 open issues
Star history (as recorded here)
LanguagePython
LicenseMIT
Created2026-10-06 (17d ago)
Last push17d ago
Watchers0
OwnerUser
GitHub topics
Links
README excerpt
# MW2 PS3 Server A community replacement for the shut-down **Call of Duty: Modern Warfare 2 (PS3)** online servers (DemonWare / IWNet). Run it on your PC and play MW2's online mode again in **RPCS3** - or host it for real PS3s and friends. MW3 (PS3) is partly supported too. No game files are modified and nothing is patched: the game is only pointed at this server. ## What works - Sign-in (PS3 NP ticket / RPCN), online menu, message of the day - Playlists, rank and unlocks - Private matches, matchmaking (create / find sessions) - All MW2 regions and languages (US, EU, JP) - IP / NAT discovery, bandwidth test ## Quick start (Windows + RPCS3) 1. Download the latest **`mw2-ps3-server-*-windows.zip`** from Releases and unzip it. 2. Double-click **`Install Online Fix.bat`** (pick your RPCS3 folder if asked). 3. In RPCS3: *Configuration > RPCN* - create a free account (once). 4. Every time you play: run **`Start Server.bat`**, keep it open, then MW2 > *Multiplayer > Play Online*. No Python needed for the release. To play on someone else's server instead: `Install Online Fix.bat ` - see docs/PLAYERS.md (also for real PS3s). ## Running from source [code] | option | | | --- | --- | | `--bind ADDR` | listen address (default `127.0.0.1`; `0.0.0.0` for a public server) | | `--public-ip IP` | public IP told to players on the server's own PC / LAN | | `--log FILE` | log file (default `dwserver.log` next to the server; `""` = none) | | `--verbose` | log every task and packet | Ports: TCP 3074 (auth + lobby), UDP 3074 (IP / NAT discovery). ### Public server (VPS) On a fresh Ubuntu / Debian server, as root: [code] This installs the server and a small DNS (`server/dnsserver.py`) that answers only MW2's DemonWare / IWNet names with the server's IP, so real PS3s can join by setting that IP as their DNS. ### Building the Windows release [code] ## Repository | path | | | --- | --- | | `server/dwserver.py` | the DemonWare server (auth, lobby, storage, matchmaking, UDP) | | `server/dwcore.py` | protocol building blocks: Tiger-192, bit / byte buffers, NP ticket, auth ticket | | `server/dnsserver.py` | DNS for real PS3s | | `server/files/` | files served to the game: message of the day, playlists (MW2 + MW3) | | `rpcs3/` | the RPCS3 online fix (sets MW2's IP swap list) | | `windows/` | `Start Server.bat` of the release | | `deploy/install.sh` | VPS install (systemd services + firewall) | | `tools/make_mw3_playlist.py` | builds MW3's compressed playlist file | | `tests/` | protocol self-tests: `python -m unittest discover tests` | | `docs/PROTOCOL.md` | reverse-engineering notes | ## Notes - Your MW3 / player data is stored in `userfiles/` next to the server. - Edit `server/files/playlists.patch3` to change the MW2 playlists - raise its `version` line, the game only downloads a new version. - This is a fan project, not affiliated with Activision, Infinity Ward, DemonWare or Sony. You need your own copy of the game. ## License MIT