Skip to content

Commit 206bee6

Browse files
committed
ci: deploy chobby_config.json to data dir, not the .sdd (fixes lobby black screen)
Same fix as the GPU build: liblobby reads chobby_config.json via raw VFS from the data dir; inside the .sdd it's invisible, the lobby falls back to game=generic and crashes in interface_root, giving a black screen. Stage at a stable bundle path; launcher copies it into the data dir.
1 parent cbf0d89 commit 206bee6

1 file changed

Lines changed: 12 additions & 6 deletions

File tree

.github/workflows/macos-build.yml

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -394,11 +394,13 @@ jobs:
394394
sed -i.bak "s/\\\$VERSION/$LOBBY_VERSION/g" "$LOBBY_SDD/modinfo.lua"
395395
rm -f "$LOBBY_SDD/modinfo.lua.bak"
396396
397-
# The BAR launcher normally reads dist_cfg/config.json and
398-
# extracts the json_files.chobby_config.json entry, writing it
399-
# to the game data directory before launching the engine.
400-
# Since this bundle has no launcher, we generate the file
401-
# directly inside the Chobby .sdd so the VFS can find it.
397+
# The BAR launcher normally reads dist_cfg/config.json and extracts
398+
# the json_files.chobby_config.json entry, writing it to the game
399+
# data directory before launching the engine. We stage it at a stable
400+
# bundle path here; our launcher copies it into the data dir at
401+
# runtime, where liblobby reads it via raw VFS. (It must NOT go inside
402+
# the .sdd — liblobby's raw-VFS lookup can't see it there, so the
403+
# lobby would fall back to game=generic and render a black screen.)
402404
printf '%s\n' \
403405
'{' \
404406
' "server": {' \
@@ -408,7 +410,7 @@ jobs:
408410
' "serverName": "BAR"' \
409411
' },' \
410412
' "game": "byar"' \
411-
'}' > "$LOBBY_SDD/chobby_config.json"
413+
'}' > "$GAME_DIR/chobby_config.json"
412414
413415
414416
echo "Game content staged:"
@@ -462,6 +464,10 @@ jobs:
462464
# macOS 26 (which SIGKILLs a Mach-O with an invalid seal).
463465
[ -e "\$USER_DATA/games" ] || ln -s "\$GAME_DIR/games" "\$USER_DATA/games"
464466
[ -e "\$USER_DATA/fonts" ] || ln -s "\$GAME_DIR/fonts" "\$USER_DATA/fonts"
467+
# liblobby reads chobby_config.json from the data dir via raw VFS;
468+
# deploy it there or the lobby is a black screen (game=generic ->
469+
# interface_root crashes on missing ShortenNameString -> Chobby nil).
470+
cp -f "\$GAME_DIR/chobby_config.json" "\$USER_DATA/chobby_config.json"
465471
# Do NOT set DYLD_LIBRARY_PATH — it overrides the system OpenGL
466472
# framework globally, breaking NSOpenGLContext inside SDL2's
467473
# Cocoa backend (SIGBUS in +[NSOpenGLContext currentContext]).

0 commit comments

Comments
 (0)