forked from Mirrors/RGSX
v1.9.8.4 correction controles bis
This commit is contained in:
@@ -130,43 +130,16 @@ if config.controls_config is None:
|
|||||||
config.controls_config = {}
|
config.controls_config = {}
|
||||||
logger.debug("Initialisation de config.controls_config avec un dictionnaire vide")
|
logger.debug("Initialisation de config.controls_config avec un dictionnaire vide")
|
||||||
|
|
||||||
# Vérifier si la configuration contient au minimum les contrôles essentiels
|
# Vérifier simplement si le fichier controls.json existe
|
||||||
essential_controls = ["confirm", "cancel", "up", "down", "left", "right"]
|
if not os.path.exists(config.CONTROLS_CONFIG_PATH) or not config.controls_config:
|
||||||
has_essential_controls = all(
|
logger.warning("Fichier controls.json manquant ou vide, configuration manuelle nécessaire")
|
||||||
config.controls_config and
|
# Ajouter une configuration minimale de secours pour pouvoir naviguer
|
||||||
action in config.controls_config and
|
config.controls_config = get_emergency_controls()
|
||||||
config.controls_config[action].get("type") is not None
|
config.menu_state = "controls_mapping"
|
||||||
for action in essential_controls
|
config.needs_redraw = True
|
||||||
)
|
|
||||||
|
|
||||||
if not config.controls_config or not has_essential_controls:
|
|
||||||
# Correction : vérifier si config.controls_config n'est pas None avant d'appeler .keys()
|
|
||||||
controls_present = list(config.controls_config.keys()) if config.controls_config else []
|
|
||||||
logger.warning(f"Configuration des contrôles incomplète ou absente. Contrôles présents: {controls_present}")
|
|
||||||
|
|
||||||
# Essayer d'importer depuis EmulationStation
|
|
||||||
try:
|
|
||||||
from es_input_parser import parse_es_input_config
|
|
||||||
es_config = parse_es_input_config()
|
|
||||||
if es_config and all(action in es_config for action in essential_controls):
|
|
||||||
logger.info("Configuration importée depuis EmulationStation avec succès")
|
|
||||||
config.controls_config = es_config
|
|
||||||
save_controls_config(es_config)
|
|
||||||
config.menu_state = "loading"
|
|
||||||
else:
|
|
||||||
logger.warning("Import EmulationStation échoué ou incomplet, configuration manuelle nécessaire")
|
|
||||||
# Ajouter une configuration minimale de secours pour pouvoir naviguer
|
|
||||||
config.controls_config = get_emergency_controls()
|
|
||||||
config.menu_state = "controls_mapping"
|
|
||||||
config.needs_redraw = True
|
|
||||||
except Exception as e:
|
|
||||||
logger.error(f"Erreur lors de l'import EmulationStation: {e}")
|
|
||||||
config.controls_config = get_emergency_controls()
|
|
||||||
config.menu_state = "controls_mapping"
|
|
||||||
config.needs_redraw = True
|
|
||||||
else:
|
else:
|
||||||
config.menu_state = "loading"
|
config.menu_state = "loading"
|
||||||
logger.debug("Configuration des contrôles valide, chargement normal")
|
logger.debug("Configuration des contrôles trouvée, chargement normal")
|
||||||
|
|
||||||
# Initialisation du gamepad
|
# Initialisation du gamepad
|
||||||
joystick = None
|
joystick = None
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import sys
|
|||||||
import logging
|
import logging
|
||||||
|
|
||||||
# Version actuelle de l'application
|
# Version actuelle de l'application
|
||||||
app_version = "1.9.8.3"
|
app_version = "1.9.8.4"
|
||||||
|
|
||||||
def get_application_root():
|
def get_application_root():
|
||||||
"""Détermine le dossier de l'application de manière portable."""
|
"""Détermine le dossier de l'application de manière portable."""
|
||||||
|
|||||||
@@ -273,26 +273,19 @@ HOLD_DURATION = 1000
|
|||||||
JOYHAT_DEBOUNCE = 200 # Délai anti-rebond pour JOYHATMOTION (ms)
|
JOYHAT_DEBOUNCE = 200 # Délai anti-rebond pour JOYHATMOTION (ms)
|
||||||
|
|
||||||
def load_controls_config():
|
def load_controls_config():
|
||||||
"""Charge la configuration des contrôles depuis controls.json ou EmulationStation"""
|
"""Charge la configuration des contrôles depuis controls.json"""
|
||||||
try:
|
try:
|
||||||
if os.path.exists(CONTROLS_CONFIG_PATH):
|
if os.path.exists(CONTROLS_CONFIG_PATH):
|
||||||
with open(CONTROLS_CONFIG_PATH, "r") as f:
|
with open(CONTROLS_CONFIG_PATH, "r") as f:
|
||||||
config_data = json.load(f)
|
config_data = json.load(f)
|
||||||
logger.debug(f"Configuration des contrôles chargée : {config_data}")
|
logger.debug(f"Configuration des contrôles chargée : {config_data}")
|
||||||
|
return config_data
|
||||||
# Vérifier que la configuration contient les éléments essentiels
|
|
||||||
essential_controls = ["confirm", "cancel", "up", "down", "left", "right"]
|
|
||||||
if all(action in config_data for action in essential_controls):
|
|
||||||
return config_data
|
|
||||||
else:
|
|
||||||
logger.warning("Configuration incomplète trouvée dans controls.json")
|
|
||||||
return {} # Retourner un dictionnaire vide au lieu de None
|
|
||||||
else:
|
else:
|
||||||
logger.debug("Aucun fichier controls.json trouvé")
|
logger.debug("Aucun fichier controls.json trouvé")
|
||||||
return {} # Retourner un dictionnaire vide au lieu de None
|
return {}
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"Erreur lors du chargement de controls.json : {e}")
|
logger.error(f"Erreur lors du chargement de controls.json : {e}")
|
||||||
return {} # Retourner un dictionnaire vide au lieu de None
|
return {}
|
||||||
|
|
||||||
def save_controls_config(controls_config):
|
def save_controls_config(controls_config):
|
||||||
"""Enregistre la configuration des contrôles dans controls.json"""
|
"""Enregistre la configuration des contrôles dans controls.json"""
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
@echo on
|
@echo off
|
||||||
setlocal EnableDelayedExpansion
|
setlocal EnableDelayedExpansion
|
||||||
|
|
||||||
:: Définir le fichier de log
|
:: Définir le fichier de log
|
||||||
@@ -13,21 +13,21 @@ cls
|
|||||||
echo Exécution de __main__.py pour RetroBat...
|
echo Exécution de __main__.py pour RetroBat...
|
||||||
echo [%DATE% %TIME%] Exécution de __main__.py pour RetroBat >> "%LOG_FILE%"
|
echo [%DATE% %TIME%] Exécution de __main__.py pour RetroBat >> "%LOG_FILE%"
|
||||||
|
|
||||||
:: Définir les chemins relatifs
|
:: Définir les chemins relatifs et les convertir en absolus
|
||||||
set TOOLS_FOLDER=..\..\..\system\tools
|
set CURRENT_DIR=%CD%
|
||||||
set PYTHON_EXE=python.exe
|
set PYTHON_EXE=python.exe
|
||||||
set MAIN_SCRIPT=__main__.py
|
set MAIN_SCRIPT=__main__.py
|
||||||
set CURRENT_DIR=%CD%
|
|
||||||
set "PYTHON_EXE_FULL=%CURRENT_DIR%\!TOOLS_FOLDER!\Python\!PYTHON_EXE!"
|
:: Convertir les chemins relatifs en absolus avec pushd/popd
|
||||||
set "MAIN_SCRIPT_FULL=%CURRENT_DIR%\..\ports\RGSX\!MAIN_SCRIPT!"
|
pushd "%CURRENT_DIR%\..\..\system\tools\Python"
|
||||||
|
set "PYTHON_EXE_FULL=%CD%\!PYTHON_EXE!"
|
||||||
|
popd
|
||||||
|
|
||||||
|
pushd "%CURRENT_DIR%\..\ports\RGSX"
|
||||||
|
set "MAIN_SCRIPT_FULL=%CD%\!MAIN_SCRIPT!"
|
||||||
|
popd
|
||||||
|
|
||||||
:: Afficher et logger les variables
|
:: Afficher et logger les variables
|
||||||
echo TOOLS_FOLDER : !TOOLS_FOLDER!
|
|
||||||
echo [%DATE% %TIME%] TOOLS_FOLDER : !TOOLS_FOLDER! >> "%LOG_FILE%"
|
|
||||||
echo PYTHON_EXE : !PYTHON_EXE!
|
|
||||||
echo [%DATE% %TIME%] PYTHON_EXE : !PYTHON_EXE! >> "%LOG_FILE%"
|
|
||||||
echo MAIN_SCRIPT : !MAIN_SCRIPT!
|
|
||||||
echo [%DATE% %TIME%] MAIN_SCRIPT : !MAIN_SCRIPT! >> "%LOG_FILE%"
|
|
||||||
echo CURRENT_DIR : !CURRENT_DIR!
|
echo CURRENT_DIR : !CURRENT_DIR!
|
||||||
echo [%DATE% %TIME%] CURRENT_DIR : !CURRENT_DIR! >> "%LOG_FILE%"
|
echo [%DATE% %TIME%] CURRENT_DIR : !CURRENT_DIR! >> "%LOG_FILE%"
|
||||||
echo PYTHON_EXE_FULL : !PYTHON_EXE_FULL!
|
echo PYTHON_EXE_FULL : !PYTHON_EXE_FULL!
|
||||||
@@ -41,29 +41,33 @@ echo [%DATE% %TIME%] Vérification de python.exe à !PYTHON_EXE_FULL! >> "%LOG_F
|
|||||||
if not exist "!PYTHON_EXE_FULL!" (
|
if not exist "!PYTHON_EXE_FULL!" (
|
||||||
echo Python.exe non trouvé. Préparation du téléchargement...
|
echo Python.exe non trouvé. Préparation du téléchargement...
|
||||||
echo [%DATE% %TIME%] Python.exe non trouvé. Préparation du téléchargement... >> "%LOG_FILE%"
|
echo [%DATE% %TIME%] Python.exe non trouvé. Préparation du téléchargement... >> "%LOG_FILE%"
|
||||||
:: Définir les chemins pour le téléchargement et l'extraction
|
|
||||||
|
:: Créer le dossier Python s'il n'existe pas
|
||||||
|
pushd "%CURRENT_DIR%\..\..\..\system\tools"
|
||||||
|
set "TOOLS_FOLDER_FULL=%CD%"
|
||||||
|
popd
|
||||||
|
|
||||||
|
if not exist "!TOOLS_FOLDER_FULL!\Python" (
|
||||||
|
echo Création du dossier !TOOLS_FOLDER_FULL!\Python...
|
||||||
|
echo [%DATE% %TIME%] Création du dossier !TOOLS_FOLDER_FULL!\Python... >> "%LOG_FILE%"
|
||||||
|
mkdir "!TOOLS_FOLDER_FULL!\Python"
|
||||||
|
)
|
||||||
|
|
||||||
set ZIP_URL=https://retrogamesets.fr/softs/python.zip
|
set ZIP_URL=https://retrogamesets.fr/softs/python.zip
|
||||||
|
set "ZIP_FILE=!TOOLS_FOLDER_FULL!\python.zip"
|
||||||
echo ZIP_URL : !ZIP_URL!
|
echo ZIP_URL : !ZIP_URL!
|
||||||
echo [%DATE% %TIME%] ZIP_URL : !ZIP_URL! >> "%LOG_FILE%"
|
echo [%DATE% %TIME%] ZIP_URL : !ZIP_URL! >> "%LOG_FILE%"
|
||||||
if not exist "!TOOLS_FOLDER!\Python" (
|
|
||||||
echo Création du dossier !TOOLS_FOLDER!\Python...
|
|
||||||
echo [%DATE% %TIME%] Création du dossier !TOOLS_FOLDER!\Python... >> "%LOG_FILE%"
|
|
||||||
mkdir "!TOOLS_FOLDER!\Python"
|
|
||||||
)
|
|
||||||
set ZIP_FILE=!TOOLS_FOLDER!\python.zip
|
|
||||||
echo ZIP_FILE : !ZIP_FILE!
|
echo ZIP_FILE : !ZIP_FILE!
|
||||||
echo [%DATE% %TIME%] ZIP_FILE : !ZIP_FILE! >> "%LOG_FILE%"
|
echo [%DATE% %TIME%] ZIP_FILE : !ZIP_FILE! >> "%LOG_FILE%"
|
||||||
|
|
||||||
echo Téléchargement de python.zip...
|
echo Téléchargement de python.zip...
|
||||||
echo [%DATE% %TIME%] Téléchargement de python.zip depuis !ZIP_URL!... >> "%LOG_FILE%"
|
echo [%DATE% %TIME%] Téléchargement de python.zip depuis !ZIP_URL!... >> "%LOG_FILE%"
|
||||||
:: Afficher un message de progression pendant le téléchargement
|
|
||||||
echo Téléchargement en cours...
|
|
||||||
curl -L "!ZIP_URL!" -o "!ZIP_FILE!"
|
curl -L "!ZIP_URL!" -o "!ZIP_FILE!"
|
||||||
|
|
||||||
if exist "!ZIP_FILE!" (
|
if exist "!ZIP_FILE!" (
|
||||||
echo Téléchargement terminé. Extraction de python.zip...
|
echo Téléchargement terminé. Extraction de python.zip...
|
||||||
echo [%DATE% %TIME%] Téléchargement terminé. Extraction de python.zip vers !TOOLS_FOLDER!\Python... >> "%LOG_FILE%"
|
echo [%DATE% %TIME%] Téléchargement terminé. Extraction de python.zip vers !TOOLS_FOLDER_FULL!... >> "%LOG_FILE%"
|
||||||
:: Afficher des messages de progression pendant l'extraction
|
tar -xf "!ZIP_FILE!" -C "!TOOLS_FOLDER_FULL!" --strip-components=0
|
||||||
echo Extraction en cours...
|
|
||||||
tar -xf "!ZIP_FILE!" -C "!TOOLS_FOLDER!" --strip-components=0
|
|
||||||
echo Extraction terminée.
|
echo Extraction terminée.
|
||||||
echo [%DATE% %TIME%] Extraction terminée. >> "%LOG_FILE%"
|
echo [%DATE% %TIME%] Extraction terminée. >> "%LOG_FILE%"
|
||||||
del /q "!ZIP_FILE!"
|
del /q "!ZIP_FILE!"
|
||||||
@@ -74,6 +78,7 @@ if not exist "!PYTHON_EXE_FULL!" (
|
|||||||
echo [%DATE% %TIME%] Erreur : Échec du téléchargement de python.zip. >> "%LOG_FILE%"
|
echo [%DATE% %TIME%] Erreur : Échec du téléchargement de python.zip. >> "%LOG_FILE%"
|
||||||
goto :error
|
goto :error
|
||||||
)
|
)
|
||||||
|
|
||||||
:: Vérifier à nouveau si python.exe existe après extraction
|
:: Vérifier à nouveau si python.exe existe après extraction
|
||||||
if not exist "!PYTHON_EXE_FULL!" (
|
if not exist "!PYTHON_EXE_FULL!" (
|
||||||
echo Erreur : python.exe n'a pas été trouvé après extraction à !PYTHON_EXE_FULL!.
|
echo Erreur : python.exe n'a pas été trouvé après extraction à !PYTHON_EXE_FULL!.
|
||||||
|
|||||||
Reference in New Issue
Block a user