@echo off
title DOOM ESP32-S3 Instalador

echo.
echo ========================================
echo   DOOM ESP32-S3 - Instalador
echo ========================================
echo.

REM Cambiar al directorio donde esta el script
cd /d "%~dp0"

REM Puerto COM - CAMBIAR SI ES NECESARIO
set PORT=COM10

echo Puerto COM: %PORT%
echo Directorio: %cd%
echo.

REM Ruta de PlatformIO
set PIO=%USERPROFILE%\.platformio\penv\Scripts\platformio.exe
set PYTHON=%USERPROFILE%\.platformio\penv\Scripts\python.exe
set ESPTOOL="%PYTHON%" "%USERPROFILE%\.platformio\packages\tool-esptoolpy\esptool.py"

echo ========================================
echo Verificando requisitos...
echo ========================================
echo.

REM Verificar PlatformIO
if not exist "%PIO%" (
    echo [ERROR] PlatformIO no encontrado en:
    echo %PIO%
    echo.
    echo Instala PlatformIO en VS Code primero:
    echo 1. Instala VS Code: https://code.visualstudio.com/
    echo 2. Abre VS Code, ve a Extensions
    echo 3. Busca "PlatformIO IDE" e instala
    echo.
    goto error
)
echo [OK] PlatformIO encontrado

REM Verificar WADs
if not exist "doom2.wad" (
    echo [ERROR] doom2.wad no encontrado
    goto error
)
echo [OK] doom2.wad encontrado

if not exist "prboom-plus.wad" (
    echo [ERROR] prboom-plus.wad no encontrado
    goto error
)
echo [OK] prboom-plus.wad encontrado

if not exist "platformio.ini" (
    echo [ERROR] platformio.ini no encontrado
    goto error
)
echo [OK] platformio.ini encontrado

echo.
echo Todo listo! Presiona una tecla para compilar...
pause

echo.
echo ========================================
echo Compilando proyecto...
echo ========================================
echo.

call "%PIO%" run
if errorlevel 1 goto compile_error

echo.
echo ========================================
echo Subiendo firmware al ESP32...
echo ========================================
echo Conecta el ESP32 y presiona una tecla...
pause

call "%PIO%" run --target upload --upload-port %PORT%
if errorlevel 1 goto upload_error

echo.
echo ========================================
echo Subiendo doom2.wad (tarda 2-5 min)...
echo ========================================
echo.

%ESPTOOL% --chip esp32s3 --port %PORT% --baud 921600 write_flash 0x120000 doom2.wad
if errorlevel 1 goto wad_error

echo.
echo ========================================
echo Subiendo prboom-plus.wad...
echo ========================================
echo.

%ESPTOOL% --chip esp32s3 --port %PORT% --baud 921600 write_flash 0xFA0000 prboom-plus.wad
if errorlevel 1 goto wad_error

echo.
echo ========================================
echo   INSTALACION COMPLETADA!
echo ========================================
echo.
echo Presiona RESET en el ESP32-S3 para jugar!
echo.
pause
exit /b 0

:compile_error
echo.
echo ERROR: Fallo la compilacion
echo Abre el proyecto en VS Code para ver detalles
pause
exit /b 1

:upload_error
echo.
echo ERROR: No se pudo subir el firmware
echo Verifica que el ESP32 este conectado
echo y que el puerto %PORT% sea correcto
pause
exit /b 1

:wad_error
echo.
echo ERROR: Fallo al subir archivo WAD
pause
exit /b 1

:error
echo.
pause
exit /b 1
