#!/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