Skip to content

v0.3.29 — Issue #47: v0.107.0 ModManager async lowering 호환 (mod 로드 hotfix)

Choose a tag to compare

@iunius612 iunius612 released this 08 Jun 12:23
· 93 commits to main since this release
40e6399

6/5 베타 v0.107.0 업데이트 후 게임 실행 시 검은 화면 해결

게임 브랜치 전환(안정판↔베타) 직후 PLAY 누르면 검은 화면 해결

Mod 로드 정상 구동 확인

무엇이 바뀌었나

v0.3.28 의 critical regression hotfix [#47]. v0.3.28 install 후 외부 mods 가 로드되지 않던 문제 fix. v0.3.28 사용자는 이 v0.3.29 install 한 번이면 정상 복구 (세이브·로그인·진행도 보존).

핵심 변경

src/STS2Mobile/Patches/ExternalModsFileIo.cs (신규) + src/STS2Mobile/Patches/ModLoaderPatches.cs:

  • v0.107.0 sts2.dll 의 ModManager.Initialize 가 sync void → async Task Initialize(IModManagerFileIo fileIo, ModSettings?, SemanticVersion?) 로 시그니처 변경됨. async lowering 으로 메서드 body 의 ldstr "mods" 가 컴파일러 생성 state machine (<Initialize>d__N.MoveNext()) 안으로 옮겨졌고, 기존 transpiler 가 main body 만 보고 매칭 실패 → external mods 무시.
  • v0.3.28 의 [#44] fix 가 dst sts2.dll 을 v0.107.0 로 정상 갱신하면서 이 transpiler 실패가 노출 (v0.3.27 이하에서는 dst dll 이 옛 v0.106 stale 이라 매칭 우연히 성공).

Fix (transpiler → wrapper 전환)

  • 신규 ExternalModsFileIo : IModManagerFileIo (5 메서드: GetFilesAt, GetDirectoriesAt, FileExists, DirectoryExists, OpenStream). path 가 게임의 "mods" 디렉토리 또는 그 하위면 AppPaths.ExternalModsDir (/storage/emulated/0/StS2LauncherMM/Mods) 로 redirect — 표준 .NET System.IO API 사용해 외부 storage absolute path 100% 호환. 그 외 path 는 inner 위임.
  • ModLoaderPatches: 기존 IL transpiler 제거. Harmony prefix 로 Initialize 의 ref IModManagerFileIo fileIo 를 wrapper 로 swap. interface 시그니처가 stable 한 한 게임이 IL 모양·async 여부 또 바꿔도 동작.

보존되는 것

세이브 데이터, Steam 로그인 토큰, 게임 진행도, mods 폴더 — 모두 보존. install -r (in-place upgrade), keystore 동일.

알려진 비호환

  • NFeedbackScreenOpener._Ready 패치 1건 FAILED — pre-existing, 부팅·플레이 무관. 별도 fix 예정.

업그레이드

StS2Launcher-v0.3.29.apk 다운로드 → 기존 설치 위에 그대로 install.

검증된 디바이스

  • SM-F966N (Galaxy Z Fold 7), Android 16, Adreno 830 — [Mods] Redirected ModManager.Initialize fileIo -> /storage/emulated/0/StS2LauncherMM/Mods 출력, 게임 측 --- RUNNING MODDED! --- Loaded 6 mods 확인. v0.3.28 의 transpiler 경고 ([Mods] Warning: could not locate "mods" ldstr) 사라짐. 메인 메뉴 진입 정상.