From 49d6d934143a0bef556a0aa8942ba092ea15d31e Mon Sep 17 00:00:00 2001 From: Cyd Date: Thu, 13 Aug 2026 13:36:26 -0500 Subject: [PATCH] The new AppID changes the name on the friends list, nothing else The AppID commit claimed the switch off Spacewar meant a Steam account now had to have Red Planet on it, and that an account without it would drop to the TCP fallback. That is wrong, and it was never tested - it was reasoned from how AppIDs work in general and written down as fact, in the handbook, the environ.ini template, the README and the three-machine test doc. Cyd checked it the direct way: put 5108000 into an older dist and ran it. It behaved exactly as it had under 480. SteamAPI_Init does not check entitlement; steam_appid.txt only tells the API which app it is. The one real difference is that the Steam client now names Red Planet instead of Spacewar. So all four places now say that, and say nothing about entitlement. The part that was always true is kept: a copy started from its own folder needs the file, and without it Steam networking cannot start and the game falls back to TCP. Co-Authored-By: Claude Opus 5 (1M context) --- README.md | 4 ++-- RP_L4/RPL4ENVIRON.cpp | 8 ++++---- docs/STEAM-3-MACHINE-TEST.md | 10 +++++----- docs/rp412-handbook.html | 2 +- pack-dist.ps1 | 8 +++++--- 5 files changed, 17 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 4e28700..15f3be7 100644 --- a/README.md +++ b/README.md @@ -94,8 +94,8 @@ run `start-windowed.bat` — the game boots into the setup menu, where the SCENARIO group picks Death Race or Football (Football swaps in the team/position columns and its own track list). Steam multiplayer: see [docs/STEAM-3-MACHINE-TEST.md](docs/STEAM-3-MACHINE-TEST.md). It runs -under Red Planet's own AppID, 5108000, so the Steam account playing it -needs the game on it; without that the wire falls back to TCP. +under Red Planet's own AppID, 5108000, so the Steam client reports the +game by name instead of as Spacewar. The config files beside the exe are self-documenting and none of them ship: the game writes each one the first time it needs it and then leaves diff --git a/RP_L4/RPL4ENVIRON.cpp b/RP_L4/RPL4ENVIRON.cpp index c159839..de7ad3f 100644 --- a/RP_L4/RPL4ENVIRON.cpp +++ b/RP_L4/RPL4ENVIRON.cpp @@ -312,10 +312,10 @@ namespace "# stop the game starting, and steam_api.dll being absent altogether is\n" "# fine. 0 = TCP only.\n" "#\n" -"# steam_appid.txt holds 5108000, which is Red Planet's own AppID, so the\n" -"# Steam account running the game needs Red Planet on it. An account\n" -"# without it gets the TCP fallback - the same quiet symptom as a missing\n" -"# file, so check the log before blaming the network.\n" +"# steam_appid.txt holds 5108000, Red Planet's own AppID, so the Steam\n" +"# client reports you as playing Red Planet rather than Spacewar. It has\n" +"# to be there for a copy started from its own folder; the number itself\n" +"# changes nothing else.\n" "RP412STEAM=1\n" "\n" "# Line up each remote player's clock with ours, so their vehicle is\n" diff --git a/docs/STEAM-3-MACHINE-TEST.md b/docs/STEAM-3-MACHINE-TEST.md index b37b005..937414c 100644 --- a/docs/STEAM-3-MACHINE-TEST.md +++ b/docs/STEAM-3-MACHINE-TEST.md @@ -17,11 +17,11 @@ Planet's own AppID; builds before that ran under Spacewar, 480) and ships both before blaming the network: a missing appid file makes SteamAPI_Init fail and the game quietly falls back to TCP. -Now that the AppID is ours rather than Valve's public one, the Steam -account on each machine has to actually have Red Planet on it. An account -without it gets the TCP fallback — same silent symptom as a missing -appid file, so check library access first when one machine will not join -the mesh. +The switch off Spacewar changes what Steam thinks you are playing and +nothing else: the client now names Red Planet on the friends list. +`SteamAPI_Init` does not check entitlement, so a machine behaves exactly +as it did under 480 — confirmed by dropping the new number into an older +dist, which ran unchanged. Sanity check per machine: `rpl4.log` should show `SteamNetTransport: up as 169.254.x.y (fake ports N console, M game)`. diff --git a/docs/rp412-handbook.html b/docs/rp412-handbook.html index 5849dd4..e967c06 100644 --- a/docs/rp412-handbook.html +++ b/docs/rp412-handbook.html @@ -1543,7 +1543,7 @@ JOYSTICK.INIThe 1995 single-stick calibration, for the legacy L4CONTROLS=DIJOYSTICK path only. Modern sticks are configured in bindings.txt — see above. *.CFG in AUDIO\Pod audio-hardware mixer tables. Dead weight on a desktop; kept because the arcade path still reads them. RPL4.RESResource blob, not text. - steam_appid.txtRed Planet’s Steam AppID, 5108000. It tells the Steam client which game this is when you start it straight from the folder. Your Steam account needs Red Planet on it; without that the game quietly falls back to plain TCP. + steam_appid.txtRed Planet’s Steam AppID, 5108000. It tells the Steam client which game this is when you start it straight from the folder, so your friends list shows Red Planet rather than Spacewar. Delete it and Steam networking cannot start — the game falls back to plain TCP without saying much about it. diff --git a/pack-dist.ps1 b/pack-dist.ps1 index cd0ac0b..9e4212e 100644 --- a/pack-dist.ps1 +++ b/pack-dist.ps1 @@ -101,9 +101,11 @@ Copy-Item (Join-Path $root 'extern\steamworks_sdk_165\sdk\redistributable_bin\st # SteamAPI_Init fails and the game drops to plain TCP, which is exactly # the confusing symptom testers hit when it goes missing. # -# Unlike the Spacewar days this AppID is ours, so the Steam account -# running it has to actually have Red Planet on it. An account without it -# gets the TCP fallback, not the Steam wire. +# What changes against the old Spacewar (480) number is what Steam thinks +# you are playing: the client now says Red Planet. SteamAPI_Init itself +# does not check entitlement, so a build carrying this file behaves the +# same as it did under 480 - verified by dropping the new number into an +# older dist. # # Retail builds launched BY the Steam client do not need this file at all # - the client supplies the AppID - and Valve would rather it were not in