mirror of
https://github.com/DorkSquadRR/DorkNet.git
synced 2026-10-25 15:08:47 -07:00
patcher: bundle Goldberg steam_api64.dll stub + steam_appid
Stripping SteamStub DRM with Steamless is necessary but not sufficient — Rec Room's Plugins/steam_api64.dll still tries to talk to Steam at runtime and bails when Steam isn't loaded. The working test installs swap in Goldberg Steam Emulator (~11 MB), which fakes a logged-in user without needing Steam running. - DorkNet.ClientMod/steam-stub/ holds the stub DLL + a 7-byte steam_appid.txt (Rec Room is Steam app 471710) - build-patcher-zip.ps1 copies both into the zip and writes a new steam_stub block in manifest.json so the launcher knows where to install them - Manifest schema is back-compat: launchers that don't know the steam_stub block just ignore it Without this, the launcher's Steamless step produced a runnable exe that exited within a second of launch because of the Steam API failure. With it, the unwrapped exe starts up cleanly.
This commit is contained in:
Binary file not shown.
@@ -0,0 +1 @@
|
||||
471710
|
||||
@@ -95,7 +95,22 @@ try {
|
||||
}
|
||||
Copy-Item $template "$stage\dorknet-clientmod.json.template"
|
||||
|
||||
# ── 4. Write manifest.json ──────────────────────────────────────────
|
||||
# ── 4. Copy the Steam stub (Goldberg) + appid ────────────────────────
|
||||
# Replaces the Valve steam_api64.dll so the unwrapped exe can run
|
||||
# without Steam loaded. App ID 471710 is Rec Room — same across all
|
||||
# versions we ship for.
|
||||
$stubDll = "$repoRoot\DorkNet.ClientMod\steam-stub\steam_api64.dll"
|
||||
$stubAppid = "$repoRoot\DorkNet.ClientMod\steam-stub\steam_appid.txt"
|
||||
if (-not (Test-Path $stubDll)) {
|
||||
throw "Steam stub DLL missing: $stubDll"
|
||||
}
|
||||
if (-not (Test-Path $stubAppid)) {
|
||||
throw "Steam appid file missing: $stubAppid"
|
||||
}
|
||||
Copy-Item $stubDll "$stage\steam_api64.dll"
|
||||
Copy-Item $stubAppid "$stage\steam_appid.txt"
|
||||
|
||||
# ── 5. Write manifest.json ──────────────────────────────────────────
|
||||
$manifest = @{
|
||||
'$schema_version' = 1
|
||||
'loader_archive' = 'MelonLoader.zip'
|
||||
@@ -106,10 +121,17 @@ try {
|
||||
'old_plugin_paths' = @(
|
||||
'BepInEx/plugins/DorkNet.ClientPatch.dll'
|
||||
)
|
||||
'steam_stub' = @{
|
||||
'api_dll' = 'steam_api64.dll'
|
||||
'api_dest' = 'Recroom_Release_Data/Plugins/steam_api64.dll'
|
||||
'api_backup_suffix' = '.steam-original'
|
||||
'appid_file' = 'steam_appid.txt'
|
||||
'appid_dest' = 'steam_appid.txt'
|
||||
}
|
||||
} | ConvertTo-Json -Depth 4
|
||||
Set-Content -LiteralPath "$stage\manifest.json" -Value $manifest
|
||||
|
||||
# ── 5. Bundle into the final zip ────────────────────────────────────
|
||||
# ── 6. Bundle into the final zip ────────────────────────────────────
|
||||
# Strip the extracted MelonLoader scratch dir before zipping so it
|
||||
# doesn't bloat the artifact. The MelonLoader.zip itself stays.
|
||||
Remove-Item -Recurse -Force $mlExtract
|
||||
|
||||
Reference in New Issue
Block a user