Back on Spacewar until our own AppID is cleared
5108000 is Red Planet's and it works - dropped into a dist it runs exactly as 480 does, the client just names Red Planet on the friends list instead of Spacewar. The permissions on it are not settled with Steam yet, so the packaged builds go back to Valve's public 480 in the meantime. The number now sits in one variable in pack-dist.ps1 with the real one beside it in a comment, because nothing in the code knows it - the whole mechanism is a text file next to the exe - and this will be flipped back the moment Steam is happy. The docs that name it follow: the handbook, the environ.ini template, the README, and the three-machine test doc, whose Steam Input instruction points at a library entry named after the AppID and so says Spacewar again. The Steamworks 1.65 upgrade is unaffected and stays. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -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
|
SCENARIO group picks Death Race or Football (Football swaps in the
|
||||||
team/position columns and its own track list). Steam multiplayer: see
|
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
|
[docs/STEAM-3-MACHINE-TEST.md](docs/STEAM-3-MACHINE-TEST.md). It runs
|
||||||
under Red Planet's own AppID, 5108000, so the Steam client reports the
|
under Spacewar (480) for now; Red Planet's own AppID, 5108000, is parked
|
||||||
game by name instead of as Spacewar.
|
until its Steam permissions are sorted.
|
||||||
|
|
||||||
The config files beside the exe are self-documenting and none of them
|
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
|
ship: the game writes each one the first time it needs it and then leaves
|
||||||
|
|||||||
@@ -312,10 +312,10 @@ namespace
|
|||||||
"# stop the game starting, and steam_api.dll being absent altogether is\n"
|
"# stop the game starting, and steam_api.dll being absent altogether is\n"
|
||||||
"# fine. 0 = TCP only.\n"
|
"# fine. 0 = TCP only.\n"
|
||||||
"#\n"
|
"#\n"
|
||||||
"# steam_appid.txt holds 5108000, Red Planet's own AppID, so the Steam\n"
|
"# steam_appid.txt has to be there for a copy started from its own\n"
|
||||||
"# client reports you as playing Red Planet rather than Spacewar. It has\n"
|
"# folder. It currently holds 480 - Valve's public Spacewar - so that is\n"
|
||||||
"# to be there for a copy started from its own folder; the number itself\n"
|
"# the name Steam shows you as playing. Red Planet's own AppID is on the\n"
|
||||||
"# changes nothing else.\n"
|
"# way once its permissions are settled.\n"
|
||||||
"RP412STEAM=1\n"
|
"RP412STEAM=1\n"
|
||||||
"\n"
|
"\n"
|
||||||
"# Line up each remote player's clock with ours, so their vehicle is\n"
|
"# Line up each remote player's clock with ours, so their vehicle is\n"
|
||||||
|
|||||||
@@ -11,17 +11,16 @@ the first live test.
|
|||||||
2. Copy the `dist\` folder onto the machine.
|
2. Copy the `dist\` folder onto the machine.
|
||||||
3. Start with `start-windowed.bat` as usual.
|
3. Start with `start-windowed.bat` as usual.
|
||||||
|
|
||||||
The packed dist already contains `steam_appid.txt` (5108000 — Red
|
The packed dist already contains `steam_appid.txt` (480 — Valve's public
|
||||||
Planet's own AppID; builds before that ran under Spacewar, 480) and ships
|
Spacewar) and ships `RP412STEAM=1` in `environ.ini`. If a machine has an
|
||||||
`RP412STEAM=1` in `environ.ini`. If a machine has an older dist, check
|
older dist, check both before blaming the network: a missing appid file
|
||||||
both before blaming the network: a missing appid file makes
|
makes SteamAPI_Init fail and the game quietly falls back to TCP.
|
||||||
SteamAPI_Init fail and the game quietly falls back to TCP.
|
|
||||||
|
|
||||||
The switch off Spacewar changes what Steam thinks you are playing and
|
Red Planet's own AppID, 5108000, is parked until its Steam permissions
|
||||||
nothing else: the client now names Red Planet on the friends list.
|
are sorted out. It does work — dropped into a dist it runs exactly as 480
|
||||||
`SteamAPI_Init` does not check entitlement, so a machine behaves exactly
|
does, the client simply names Red Planet on the friends list instead of
|
||||||
as it did under 480 — confirmed by dropping the new number into an older
|
Spacewar — so the switch, when it comes, changes nothing a tester has to
|
||||||
dist, which ran unchanged.
|
do. `pack-dist.ps1` carries the number in one variable.
|
||||||
|
|
||||||
Sanity check per machine: `rpl4.log` should show
|
Sanity check per machine: `rpl4.log` should show
|
||||||
`SteamNetTransport: up as 169.254.x.y (fake ports N console, M game)`.
|
`SteamNetTransport: up as 169.254.x.y (fake ports N console, M game)`.
|
||||||
@@ -53,11 +52,11 @@ appid file is missing.
|
|||||||
|
|
||||||
Steam Input intercepts Xbox controllers the moment the game initializes
|
Steam Input intercepts Xbox controllers the moment the game initializes
|
||||||
SteamAPI, hiding them from XInput entirely - the pad works everywhere
|
SteamAPI, hiding them from XInput entirely - the pad works everywhere
|
||||||
else and is invisible only in-game (reproduced A/B on the dev box, under
|
else and is invisible only in-game (reproduced A/B on the dev box).
|
||||||
Spacewar; nothing about it was specific to that AppID). Fix, either
|
Nothing about it is specific to the AppID, but the entry to click is
|
||||||
scope:
|
named after it. Fix, either scope:
|
||||||
|
|
||||||
- Per game: Steam Library -> Red Planet -> Properties -> Controller ->
|
- Per game: Steam Library -> Spacewar -> Properties -> Controller ->
|
||||||
Override: **Disable Steam Input**.
|
Override: **Disable Steam Input**.
|
||||||
- Global: Steam -> Settings -> Controller -> uncheck **Enable Steam
|
- Global: Steam -> Settings -> Controller -> uncheck **Enable Steam
|
||||||
Input for Xbox controllers**.
|
Input for Xbox controllers**.
|
||||||
|
|||||||
@@ -1543,7 +1543,7 @@
|
|||||||
<tr><th class="mono">JOYSTICK.INI</th><td>The 1995 single-stick calibration, for the legacy <code>L4CONTROLS=DIJOYSTICK</code> path only. Modern sticks are configured in <code>bindings.txt</code> — see above.</td></tr>
|
<tr><th class="mono">JOYSTICK.INI</th><td>The 1995 single-stick calibration, for the legacy <code>L4CONTROLS=DIJOYSTICK</code> path only. Modern sticks are configured in <code>bindings.txt</code> — see above.</td></tr>
|
||||||
<tr><th class="mono">*.CFG <span style="color:var(--ink-quiet);font-family:var(--sans)">in AUDIO\</span></th><td>Pod audio-hardware mixer tables. Dead weight on a desktop; kept because the arcade path still reads them.</td></tr>
|
<tr><th class="mono">*.CFG <span style="color:var(--ink-quiet);font-family:var(--sans)">in AUDIO\</span></th><td>Pod audio-hardware mixer tables. Dead weight on a desktop; kept because the arcade path still reads them.</td></tr>
|
||||||
<tr><th class="mono">RPL4.RES</th><td>Resource blob, not text.</td></tr>
|
<tr><th class="mono">RPL4.RES</th><td>Resource blob, not text.</td></tr>
|
||||||
<tr><th class="mono">steam_appid.txt</th><td>Red 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.</td></tr>
|
<tr><th class="mono">steam_appid.txt</th><td>Tells the Steam client which game this is when you start it straight from the folder. It holds 480 — Valve’s public Spacewar — so that is the name your friends list will show for now; Red Planet’s own AppID follows once its permissions are settled. Delete the file and Steam networking cannot start — the game falls back to plain TCP without saying much about it.</td></tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
+13
-11
@@ -95,22 +95,24 @@ if (Test-Path $pdb) { Copy-Item $pdb $dist }
|
|||||||
# activates with RP412STEAM=1; plain desktop runs never touch it.
|
# activates with RP412STEAM=1; plain desktop runs never touch it.
|
||||||
Copy-Item (Join-Path $root 'extern\steamworks_sdk_165\sdk\redistributable_bin\steam_api.dll') $dist
|
Copy-Item (Join-Path $root 'extern\steamworks_sdk_165\sdk\redistributable_bin\steam_api.dll') $dist
|
||||||
|
|
||||||
# steam_appid.txt: Red Planet's own AppID, 5108000. It is what lets a
|
# steam_appid.txt: which app the Steam client thinks this is. It is what
|
||||||
# build started straight from the folder - which is how every tester runs
|
# lets a build started straight from the folder - which is how every
|
||||||
# it - tell the Steam client which app it is. Without the file
|
# tester runs it - identify itself. Without the file SteamAPI_Init fails
|
||||||
# SteamAPI_Init fails and the game drops to plain TCP, which is exactly
|
# and the game drops to plain TCP, which is exactly the confusing symptom
|
||||||
# the confusing symptom testers hit when it goes missing.
|
# testers hit when it goes missing.
|
||||||
#
|
#
|
||||||
# What changes against the old Spacewar (480) number is what Steam thinks
|
# Red Planet's own AppID is 5108000 and it works: dropped into a dist it
|
||||||
# you are playing: the client now says Red Planet. SteamAPI_Init itself
|
# runs exactly as 480 does, the client simply names Red Planet instead of
|
||||||
# does not check entitlement, so a build carrying this file behaves the
|
# Spacewar. It is parked until the permissions on it are sorted out with
|
||||||
# same as it did under 480 - verified by dropping the new number into an
|
# Steam. Until then we stay on Valve's public 480 (Spacewar).
|
||||||
# older dist.
|
#
|
||||||
|
# Flipping back is this one line - no code anywhere knows the number.
|
||||||
|
$steamAppId = '480' # '5108000' once the Steam permissions are sorted
|
||||||
#
|
#
|
||||||
# Retail builds launched BY the Steam client do not need this file at all
|
# 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
|
# - the client supplies the AppID - and Valve would rather it were not in
|
||||||
# the shipped depot.
|
# the shipped depot.
|
||||||
Set-Content -Path "$dist\steam_appid.txt" -Encoding ascii -Value '5108000'
|
Set-Content -Path "$dist\steam_appid.txt" -Encoding ascii -Value $steamAppId
|
||||||
|
|
||||||
# --- game data -------------------------------------------------------------
|
# --- game data -------------------------------------------------------------
|
||||||
foreach ($dir in 'AUDIO', 'GAUGE', 'VIDEO') {
|
foreach ($dir in 'AUDIO', 'GAUGE', 'VIDEO') {
|
||||||
|
|||||||
Reference in New Issue
Block a user