{"id":32512498,"url":"https://github.com/provigz/zoneinternetgamesserver","last_synced_at":"2026-03-08T09:30:54.959Z","repository":{"id":236390450,"uuid":"792512248","full_name":"provigz/ZoneInternetGamesServer","owner":"provigz","description":"Aiming to bring back the functionality of the Internet Games, included in Windows 7 and XP.","archived":false,"fork":false,"pushed_at":"2025-10-22T21:25:34.000Z","size":8611,"stargazers_count":45,"open_issues_count":2,"forks_count":3,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-10-22T23:30:55.087Z","etag":null,"topics":["gameserver","internet-games","reverse-engineering","windows-7","windows-xp"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/provigz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-04-26T20:33:47.000Z","updated_at":"2025-10-22T21:25:38.000Z","dependencies_parsed_at":"2024-05-08T23:28:22.033Z","dependency_job_id":"372a3216-7772-47c2-b2a2-ec515884e70f","html_url":"https://github.com/provigz/ZoneInternetGamesServer","commit_stats":null,"previous_names":["vankata453/zoneinternetgamesserver","provigz/zoneinternetgamesserver"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/provigz/ZoneInternetGamesServer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/provigz%2FZoneInternetGamesServer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/provigz%2FZoneInternetGamesServer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/provigz%2FZoneInternetGamesServer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/provigz%2FZoneInternetGamesServer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/provigz","download_url":"https://codeload.github.com/provigz/ZoneInternetGamesServer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/provigz%2FZoneInternetGamesServer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281350308,"owners_count":26486170,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-27T02:00:05.855Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gameserver","internet-games","reverse-engineering","windows-7","windows-xp"],"created_at":"2025-10-27T22:19:10.015Z","updated_at":"2026-03-08T09:30:54.933Z","avatar_url":"https://github.com/provigz.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Zone Internet Games Server\n\nThis project brings back the functionality of the Internet Games included in Windows 7 and XP/ME, the servers for which were officially shut down on:\n\n* **Windows XP/ME**: July 31st, 2019\n* **Windows 7**: January 22nd, 2020\n\nThose games include:\n\n* Internet Backgammon (XP/ME, 7)\n* Internet Checkers (XP/ME, 7)\n* Internet Spades (XP/ME, 7)\n* Internet Hearts (XP/ME)\n* Internet Reversi (XP/ME)\n\n## Connecting an Internet Game to a hosted Internet Games Server\n\n### On Windows XP/7\n\n1. Ensure you have access to a hosted [Internet Games Server](#internet-games-server), either on `localhost`, your local network or via the Internet.\n2. From the [latest release of this project](https://github.com/Vankata453/ZoneInternetGamesServer/releases), under \"Assets\", download the \"Release\" package for your architecture (x64 or x86).\n\n\u003e [!NOTE]\n\u003e\n\u003e You must download the x86 package to get the Client DLL and Injector for Windows XP games.\n\n3. Extract the downloaded package, containing the [Internet Games Server](#internet-games-server), custom client DLL and injector.\n\n\u003e [!NOTE]\n\u003e\n\u003e Ensure the custom client DLL (`InternetGamesClientDLL.dll` or `InternetGamesClientDLL_XP.dll`) and the injector (`DLLInjector.exe` or `DLLInjector_XP.exe`) are in the same directory!\n\n4. Start an Internet Game of your choice.\n5. Run the DLL Injector, supplying a [target game argument](#command-line-arguments-dll-injector) if using the variant for Windows 7 games (`DLLInjector.exe`). A dialog for you to enter a host and port to an [Internet Games Server](#internet-games-server) should appear!\n\n\u003e [!WARNING]\n\u003e\n\u003e `DLLInjector.exe` is likely to be flagged by antivirus software as a threat. That is normal, since DLL Injecting is behaviour\n\u003e commonly used in malware to inject malicious code into other processes.\n\u003e\n\u003e DLL injecting, however, is required for preparing the Windows 7 Internet Games to connect to a custom server.\n\u003e Make sure you add `DLLInjector.exe` as an exception in your antivirus software!\n\n\u003e [!TIP]\n\u003e\n\u003e You can create a shortcut to `DLLInjector.exe` with a [target game argument](#command-line-arguments-dll-injector) for ease!\n\n### On Windows ME\n\nNo supported DLL Injector or Client DLL are available for Windows ME.\n\nI could not get modifications to the `hosts` file to work on ME. Thus, as an alternative, you can patch the game executables and `CMNCLIM.DLL` (which specifies the port).\n\nUse the VBScript patcher for Windows ME (`InternetGamesPatcher_ME.vbs`) which is included in every build package of this project. Upon running it, you will be prompted to enter both a target host and port in separate dialogs. You can leave either one empty or press \"Cancel\" to not patch host/port.\n\n\u003e [!NOTE]\n\u003e\n\u003e Patching the game executables comes with the drawback of a restricted host name length to 44 characters.\n\nTo use the patcher from the command line (more verbose): `cscript //nologo InternetGamesPatcher_ME.vbs`\n\nThe patcher creates .bak copies of the original game executables and `CMNCLIM.DLL`, so that if anything goes wrong, you can easily restore them.\n\n## Includes\n\nThis repository includes the following:\n\n### Internet Games Server\n\n![Preview of the Internet Games Server in action](docs/img/README_ServerPreview.png)\n\nA Winsock server, which makes the Internet Games playable by acting as a Zone games server.\nIt matches players in lobbies, depending on the game being played, as well as the chosen skill level.\nIt can manage many matches of any of the games at the same time.\n\nEach game has custom messages, which are supported by the server in order for it to function properly.\n\n#### Internet Backgammon (Windows 7)\n\n![Internet Backgammon (7)](docs/img/README_BackgammonPreview.png)\n\n#### Internet Checkers (Windows 7)\n\n![Internet Checkers (7)](docs/img/README_CheckersPreview.png)\n\n#### Internet Spades (Windows 7)\n\n![Internet Spades (7)](docs/img/README_SpadesPreview.png)\n\n#### Internet Backgammon (Windows XP/ME)\n\n![Internet Backgammon (XP/ME)](docs/img/README_BackgammonXPPreview.png)\n\n#### Internet Checkers (Windows XP/ME)\n\n![Internet Checkers (XP/ME)](docs/img/README_CheckersXPPreview.png)\n\n#### Internet Spades (Windows XP/ME)\n\n![Internet Spades (XP/ME)](docs/img/README_SpadesXPPreview.png)\n\n#### Internet Hearts (Windows XP/ME)\n\n![Internet Hearts (XP/ME)](docs/img/README_HeartsXPPreview.png)\n\n#### Internet Reversi (Windows XP/ME)\n\n![Internet Reversi (XP/ME)](docs/img/README_ReversiXPPreview.png)\n\n\n\u003e [!NOTE]\n\u003e\n\u003e For all games, there are differences from original server behaviour:\n\u003e\n\u003e * **If an opponent leaves a Windows 7 Backgammon or Checkers game, instead of replacing them with an AI player, the server ends the game.**\n\u003e\n\u003e   AI player logic was originally developed server-side. Originally, all three Windows 7 games and Spades and Hearts from Windows XP/ME supported them.\n\u003e   This server does not currently support game logic for Backgammon and Checkers, so computer players are not currently supported for those games.\n\u003e   Instead, the match is ended by disconnecting the other player, causing an \"Error communicating with server\" error message.\n\u003e\n\u003e * **Since the server does not support game logic everywhere, it may not entirely validate some messages from clients.**\n\u003e\n\u003e   If a player were to modify game messages being sent to the server to try and cheat, in some cases it might be up to the opponents' game clients to determine whether the action/s are legitimate or not.\n\u003e   Luckily, from my testing, this local validation seems to work nicely. On invalid data, the game ends with a \"Corrupted data\" message.\n\u003e   If the server catches an invalid message, the player in question will be disconnected. The game should continue if it supports computer players.\n\n#### Command line arguments\n\n* `-c` (`--config`): Sets the target configuration file. Any changes to options will be written there. *Default: \"InternetGamesServer.config\"*\n* `-p` (`--port`): Port to host the server on. Automatically written to config file.\n\n### Internet Games Client DLL + DLL Injector\n\nA DLL, which is to be injected into any of the 3 games, using the DLL Injector application.\n\nBoth applications have two variants for Windows 7 and Windows XP games. The Windows XP one is only available in x86 builds.\n\nBoth the Injector and the Client DLL are **not supported on Windows ME**. Use the [VBScript patcher](#on-windows-me) to configure host and port on Windows ME.\n\n#### Functionality\n\nThe Windows 7 Client DLL performs the following operations:\n\n* Creates the `HKEY_CURRENT_USER\\Software\\Microsoft\\zone.com\\Zgmprxy` registry key, if it doesn't exist.\n* Creates a `DisableTLS` DWORD 32-bit registry value under `HKEY_CURRENT_USER\\Software\\Microsoft\\zone.com\\Zgmprxy`, set to 1.\n* Displays a dialog, where the user can enter a host and port, where an [Internet Games Server](#internet-games-server) is located, to connect to.\n* Puts a hook on the [`GetAddrInfoW`](https://learn.microsoft.com/en-us/windows/win32/api/ws2tcpip/nf-ws2tcpip-getaddrinfow) function from `ws2_32.dll`, setting appropriate arguments, as well as the host and the port, specified in the dialog.\n\nThe Windows XP Client DLL performs the following operations:\n\n* Displays a dialog, where the user can enter a host and port, where an [Internet Games Server](#internet-games-server) is located, to connect to.\n* Puts a hook on the [`inet_addr`](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-inet_addr) and [`htons`](https://learn.microsoft.com/en-us/windows/win32/api/winsock/nf-winsock-htons) functions from `ws2_32.dll`, setting the host and the port, specified in the dialog.\n\n#### Command line arguments (DLL Injector)\n\n* **[WINDOWS 7 ONLY!] Exactly one of the following arguments:**\n  * `-b` (`--backgammon`) *OR* `-c` (`--checkers`) *OR* `-s` (`--spades`) **[REQUIRED]**: Specifies a target Windows 7 game to inject the client DLL into.\n  * `-x` (`--xp`): For injecting the client DLL into any Windows XP game **(x86 only!)**.\n* `-r` (`--repeat`): See [Using DLL Injector on multiple instances](#using-dll-injector-on-multiple-instances). *Default: 0*\n\n## Building\n\nTo build any of the projects, open up the respective project file (.vcxproj) in Visual Studio and build from there.\n\n### Running Multiple Instances\n\nFor information on how to run multiple instances of any of the Internet Games, [read this](docs/MultipleInstances.md).\n\n#### Using DLL Injector on multiple instances\n\nTo use the DLL Injector on multiple instances at the same time, provide the `-r` (or `--repeat`) argument to it,\nallowing to skip a select number of previously started processes of the specified Internet Game.\nFor example, to inject the DLL into a second instance of the same game, provide `-r 1` (or `--repeat 1`).\n\n## Credits\n\n* [codereversing.com](https://www.codereversing.com/archives/138) for providing some logs and tons of helpful information, regarding reverse-engineering the Windows 7 Internet Games.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprovigz%2Fzoneinternetgamesserver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprovigz%2Fzoneinternetgamesserver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprovigz%2Fzoneinternetgamesserver/lists"}