mirror of
https://github.com/JogmansonReal/Radicade.git
synced 2026-10-25 23:18:56 -07:00
48 lines
2.4 KiB
Markdown
48 lines
2.4 KiB
Markdown
# August 2023 interop repair
|
|
|
|
For the exact Rec Room 20230825 metadata header fingerprint and the installed
|
|
BepInEx 6.0.0-be.697 loader. This fixes interop generation, not login or gameplay.
|
|
It does not change GameAssembly.dll or the metadata used by the native game.
|
|
|
|
Requirements: Node.js, .NET 9 SDK, and the August build's BepInEx core libraries.
|
|
Run from the repository root, with the game closed during installation.
|
|
|
|
```powershell
|
|
$gameRoot = 'C:\RecRoom\2023-08-29T06-53-33Z'
|
|
$core = Join-Path $gameRoot 'BepInEx\core'
|
|
$metadataDir = Join-Path $gameRoot 'RecRoom_Data\il2cpp_data\Metadata'
|
|
node tools/AugustInterop/normalize.cjs "$metadataDir\global-metadata.dat" artifacts/august-normalized-metadata.dat
|
|
dotnet run --project tools/AugustInterop -- "$core" artifacts/august-normalized-metadata.dat "$gameRoot\GameAssembly.dll"
|
|
```
|
|
|
|
The normalizer checks the exact shuffled header, table bounds, image/type counts,
|
|
and every repaired module row. All other records remain unchanged. The C# tool
|
|
uses the installed LibCpp2IL to verify metadata and native registration parsing.
|
|
|
|
To reproduce the loader modification, use the original loader backup as input:
|
|
|
|
```powershell
|
|
dotnet run --project tools/AugustInterop -- --patch-loader "$core\BepInEx.Unity.IL2CPP.dll.before-august-interop" artifacts/BepInEx.Unity.IL2CPP.dll
|
|
```
|
|
|
|
For a different installation path, pass `-p:BepInExCore=<path-to-core>` when
|
|
building. The patch tool requires a separate output file and exactly one matching
|
|
metadata filename instruction. Preserve the original loader before installation.
|
|
|
|
Installation performed locally:
|
|
|
|
- Normalized copy: `RecRoom_Data/il2cpp_data/Metadata/global-metadata.interop.dat`.
|
|
- Modified loader: `BepInEx/core/BepInEx.Unity.IL2CPP.dll`.
|
|
- Original loader: same path plus `.before-august-interop`.
|
|
- Native `global-metadata.dat`: unchanged by this interop repair.
|
|
|
|
Launch `RecRoom.exe +forcemode:screen`. Successful generation ends with
|
|
`Il2CppInteropGen ... Done!` and `Chainloader startup complete`, and writes
|
|
`BepInEx/interop/assembly-hash.txt`. Keep `UpdateInteropAssemblies = true`.
|
|
Do not copy March-generated interop assemblies into this build.
|
|
|
|
Rollback: close the game and restore the original loader from its backup. The
|
|
separate normalized file can remain on disk; the original loader never reads it.
|
|
The old loader will again reject this release's custom metadata if regeneration
|
|
is needed. If the game build changes, this exact mapping must be revalidated.
|