You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
2.0 KiB
64 lines
2.0 KiB
#!/bin/sh |
|
# Launcher CyberMatris per Miyoo Mini Plus (OnionOS / Stock OS) |
|
GAMEDIR=$(dirname "$0") |
|
LOGFILE="$GAMEDIR/cybermatris.log" |
|
|
|
# Preserva il log della sessione precedente (utile in caso di crash improvvisi) |
|
if [ -f "$LOGFILE" ]; then |
|
mv "$LOGFILE" "$GAMEDIR/cybermatris.old.log" |
|
fi |
|
|
|
exec > "$LOGFILE" 2>&1 |
|
set -x |
|
|
|
echo "=== CyberMatris Launch $(date) ===" |
|
|
|
# Ferma MainUI per evitare conflitti grafici/framebuffer |
|
kill -STOP $(pidof MainUI) 2>/dev/null |
|
echo "MainUI stopped" |
|
|
|
# Questo è fondamentale: indica a SDL2 di usare il backend video nativo Miyoo |
|
export SDL_VIDEODRIVER=mmiyoo |
|
unset SDL_RENDER_DRIVER |
|
unset LD_PRELOAD |
|
|
|
export HOME=/mnt/SDCARD |
|
export LD_LIBRARY_PATH="$GAMEDIR:/config/lib:/customer/lib:/mnt/SDCARD/.tmp_update/lib/parasyte:/mnt/SDCARD/usr/local/lib:/mnt/SDCARD/usr/lib/arm-linux-gnueabihf" |
|
|
|
# Ferma l'audioserver per liberare il device audio hardware (/dev/mi_ao) |
|
killall -9 audioserver 2>/dev/null || true |
|
sleep 1 |
|
|
|
# Rilevamento dello schermo e impostazione della risoluzione nativa |
|
# Controlliamo la risoluzione corrente PRIMA di modificarla per evitare di forzare |
|
# parametri fuori specifica che congelano il controller dello schermo del Miyoo Mini Plus. |
|
if fbset | grep -q "752"; then |
|
echo "[LAUNCHER] Rilevato schermo Miyoo Mini V4 (752x560)!" |
|
fbset -g 752 560 752 1120 32 2>/dev/null |
|
IS_V4=1 |
|
export MIYOO_SCREEN_WIDTH=752 |
|
export MIYOO_SCREEN_HEIGHT=560 |
|
else |
|
echo "[LAUNCHER] Schermo standard 640x480 (Miyoo Mini Plus / v1/v2/v3)" |
|
fbset -g 640 480 640 960 32 2>/dev/null |
|
IS_V4=0 |
|
export MIYOO_SCREEN_WIDTH=640 |
|
export MIYOO_SCREEN_HEIGHT=480 |
|
fi |
|
|
|
cd "$GAMEDIR" |
|
./cybermatris_miyoo |
|
EXIT=$? |
|
|
|
# Ripristina sempre la modalità standard 640x480 all'uscita per evitare disallineamenti con MainUI |
|
if [ "$IS_V4" -eq 1 ]; then |
|
echo "[LAUNCHER] Ripristino risoluzione standard all'uscita..." |
|
fbset -g 640 480 640 960 32 2>/dev/null |
|
fi |
|
|
|
# Ripristina MainUI all'uscita del gioco |
|
kill -CONT $(pidof MainUI) 2>/dev/null |
|
echo "MainUI resumed" |
|
|
|
echo "=== EXIT CODE: $EXIT ===" |
|
exit $EXIT
|
|
|