Files
bigmak94andClaude Opus 5.5 bd9bded792 GalaxyQuest: Super Mario Galaxy in VR on Meta Quest 3
A native port built on the Petari decompilation (previous commit): an
HLE platform layer (OS, DVD, GX, audio, input, NAND) under the game's
own code, an OpenXR presentation (a diorama around the player, a giant
screen, the HUD and settings as compositor layers, SpaceWarp, dynamic
resolution), Touch Plus controls, the tools that convert your own game
files (tools/cook, which also takes the few pieces of data the game's
executable holds from your sys/main.dol), and the port's changes to the
decompilation (`git diff petari-base -- decomp`).  README.md explains
installing and building, docs/TECHNICAL.md how it works.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 01:59:38 +02:00

34 lines
1.5 KiB
Bash

#!/bin/bash
# Runs the headless boot under lldb (remote, via lldb-server on the headset).
# tools/debug_headless.sh <lldb command file> [seconds]
# The unstripped libgame.so is pushed so lldb has full symbols. The command
# file runs after the process is launched and stopped at entry; it usually
# sets breakpoints, `continue`s and inspects state.
cd "$(dirname "$0")/.."
export MSYS_NO_PATHCONV=1
source tools/env.sh
ADB=$(find_adb) || { echo "adb not found" >&2; exit 1; }
NDK=$(find_ndk)
LLDB=$NDK/toolchains/llvm/prebuilt/windows-x86_64/bin/lldb.cmd
DEV=/data/local/tmp/petari
DATA=/sdcard/Android/data/com.galaxy.quest/files/game
CMDS=$1
SECS=${2:-30}
$ADB push build-android/libgame.so build-android/petari_headless $DEV/ > /dev/null || exit 1
$ADB push $NDK/toolchains/llvm/prebuilt/windows-x86_64/lib/clang/21/lib/linux/aarch64/lldb-server $DEV/ > /dev/null
$ADB shell chmod 755 $DEV/lldb-server $DEV/petari_headless
$ADB shell "pkill -f lldb-server; pkill -f petari_headless" 2>/dev/null
$ADB forward tcp:5039 tcp:5039 > /dev/null
$ADB shell "cd $DEV && LD_LIBRARY_PATH=$DEV ./lldb-server gdbserver :5039 -- ./petari_headless $DATA $DEV/nand $SECS > $DEV/lldb-server.log 2>&1 &" &
sleep 2
cat > out/lldb_init.txt <<EOF
settings set target.max-string-summary-length 200
gdb-remote localhost:5039
process handle SIGSEGV -s true -p false -n true
command source $(cygpath -w "$CMDS" | sed 's/\\/\\\\/g')
EOF
cmd //c "$(cygpath -w $LLDB) -b -s $(cygpath -w out/lldb_init.txt)" 2>&1 | grep -v "^(lldb) *$"
$ADB shell "pkill -f lldb-server; pkill -f petari_headless" 2>/dev/null