Registrarse

[Herramienta] 🎬 GBA Video Studio | Editor Visual y Compilador Avanzado de Video para GBA

CompuMax

Discord: CompuMax#0425
Miembro insignia


GBA Video Studio
Editor Visual y Compilador Avanzado de Video para Game Boy Advance

✨ Introducción
GBA Video Studio es una potente aplicación de escritorio diseñada para preparar, optimizar y adaptar activamente cualquier material audiovisual al ecosistema técnico de la Game Boy Advance. A diferencia de los encoders tradicionales por línea de comandos, este proyecto ofrece un entorno visual completo tipo "Studio", permitiéndote importar videos, editarlos y exportarlos una ROM independiente reproducible en hardware y como recursos binarios listos para proyectos de descompilación.

🚀 Características Principales
  • Arquitectura Híbrida Qt: Motor inteligente que detecta de forma automática tu entorno para ofrecer la interfaz de usuario más óptima en tiempo de ejecución (PySide6 o PySide2).
  • Editor y Preview Visual Inteligente: Cuenta con controles de reproducción completos, línea de tiempo integrada y previsualización exacta a resolución nativa de GBA (240×160) aplicando transformaciones como Crop (recorte), escalado o Letterbox.
  • Control Fino de Compresión (11 Parámetros): Equilibra perfectamente calidad, peso y consumo de memoria ajustando el tamaño del libro de códigos VQ, iteraciones K-means, compensación de movimiento e intervalo de fotogramas I. Incluye presets listos para usar y la capacidad de guardar tus propias configuraciones.
  • Audio de Alta Fidelidad sin Desincronización:
    - Modo PCM: Audio mono con signo de 8 bits (6500–44100 Hz) con soporte completo de búsqueda.​
    - Modo ADPCM: Compresión IMA ADPCM de 4 bits que reduce el espacio al 50% con frecuencias matemáticamente ajustadas al hardware para evitar tirones por remuestreo y desincronización A/V.​
  • Doble Flujo de Exportación Profesional:
    - ROM Independiente: Genera un archivo .gba funcional con reproductor integrado que incluye controles en tiempo real (Pausa, Silenciar, Avance/Retroceso rápido y Bloqueo de controles).​
    - Integración en Decompilación: Produce código limpio (video.c, video.h) y recursos binarios optimizados listos para inyectarse directamente en proyectos pret (pokeemerald, pokefirered).​
  • Métricas en Tiempo Real: El sistema calcula y muestra de forma detallada el impacto técnico del video final en la memoria ROM, IWRAM y EWRAM de la consola.
  • Cero Acumulación de RAM: Motor optimizado mediante procesamiento GOP en paralelo y matrices de mapeo de memoria (memmap) respaldadas por disco para procesar videos largos sin consumir la memoria del PC.
  • Multilingüe: Interfaz con soporte dinámico para 18 idiomas, intercambiables al instante sin reiniciar la aplicación.

🖼 Capturas de Pantalla


Interfaz visual en español con línea de tiempo y configuración de parámetros.


Resultado final con métricas de memoria.

🎬 Demostraciones
En este video les muestro el flujo completo de trabajo y el resultado de la conversión.
Y a continuación el resultado en pokefirered y pokeemerald-expansion

📦 Requisitos y Descarga
La herramienta incluye ejecutables portables independientes que integran su propio entorno según tu sistema operativo:
  • Edición Moderna (Recomendado): Diseñado para Windows 10/11, Linux y macOS (requiere Python 3.10+ y PySide6 si se ejecuta desde código fuente).
  • Edición Legacy: Soporte completo para Windows 7, 8 y 8.1 (vía Python 3.8 y PySide2).
  • Herramientas externas requeridas: Requiere tener instalado FFmpeg en el sistema y el paquete gba-dev de devkitPro para compilar las ROMs de forma automática.

🛠 Guía Rápida
1. Carga: Abre cualquier archivo de video (Ctrl+O) y ajusta el segmento de tiempo deseado en el timeline.​
2. Filtra: Define si usarás Letterbox o Recorte y pulsa "Aplicar Filtros" para ver la preview de GBA.​
3. Configura: Selecciona un perfil de codificación predeterminado o personaliza los FPS nativos de GBA y el formato de audio (PCM/ADPCM).​
4. Compila: Elige la ruta de salida y presiona "Construir ROM". ¡Tu archivo GBA_Video.gba y tus recursos para decompilación estarán listos en minutos!​

🎮 Controles del Reproductor (ROM GBA)
BotónEfecto en PCMEfecto en ADPCM
START / APausar / ReanudarPausar / Reanudar
BSilenciar / Activar sonidoSilenciar / Activar sonido
DERECHAAvance rápido (3s)No disponible (Limitación ADPCM)
IZQUIERDARetroceso rápido (3s)No disponible (Limitación ADPCM)
SELECTBloquear / Desbloquear controlesBloquear / Desbloquear controles

🤝 Créditos y Agradecimientos
Proyecto open-source bajo licencia GPL-3.0. Inspirado en el reproductor de video GBA de Ausar (ArcheyChen) y las bases conceptuales del códec 8ad de Damian Yerrick (PinoBatch).

☕ Apoya el Proyecto
Si esta herramienta te resulta útil y deseas apoyar mi trabajo, ¡invítame a un café!


🚀 ¡Únete a la comunidad en Discord!

¿Dudas técnicas o quieres mostrar tus avances? ¡Te esperamos en CompuMax Dev's!

Soporte bilingüe y comunidad de desarrollo GBA.

Desarrollado con ❤ por CompuMax
 
Última edición:

M_Alighieri

Dirigente Total del Imperio Kaktiácero
Miembro del equipo
Redactor/a
Miembro de honor
Se agradece mucho el soporte hacia versiones antiguas de Windows como la 7 y la 8, y el resultado obtenido es alucinante para ser GBA, resulta extraordinario que hayas traído algo así.

Sin duda alguna, hemos llegado muy lejos y esto puede abrir las puertas a proyectos muy potentes y a conceptos que apenas hemos explorado todavía.

¡Mil gracias!
 

Xiros

¡Creador de Pokémon Omega!
Miembro del equipo
Administrador
Staff
Miembro de honor
Buenísimo! Me alegra mucho que hayas publicado esto. Es algo que tiene mucho potencial y ahora es problema nuestro pensar como explotarlo para sacar cosas novedosas!
 

Manurocker95

Doctorando en Ingeniería Biomédica & Game Dev
Miembro insignia
¡Mis absolutos 10! Solo puedo decir que es simplemente CINE.


Como detalles (QoL) que me habría gustado así tener de primeras:

- Añadir a las releases una versión "portable" (básicamente sin el setup) por comodidad.
- Añadir la opción a la toolbar File > Build Rom
- File > Select video te lleva siempre a Documents por defecto en vez de la última ruta seleccionada.
- Poder establecer el nombre de la rom final. Me es más útil que las opciones de "when done" las cuales ninguna incluyen "open the build folder" o "open the rom".
- Porcentaje de progreso mientras buildea la rom (para sabeer cómo va). He hecho la prueba con un cap de 25 minutos y no sabía por donde iba tras 5-10 minutos Encoding Video...
- Cuando salta un error/excepción, no se para el Encoding video... En este caso, me imagino que es algo de FFMPEG pero sí que lo tengo linkado en variables de entorno (y ni que decir que tengo DKP).

1782453387710.png


1782453509371.png


1782454463895.png
 
Última edición:

CompuMax

Discord: CompuMax#0425
Miembro insignia
¡Mis absolutos 10! Solo puedo decir que es simplemente CINE.


Como detalles (QoL) que me habría gustado así tener de primeras:

- Añadir a las releases una versión "portable" (básicamente sin el setup) por comodidad.
- Añadir la opción a la toolbar File > Build Rom
- File > Select video te lleva siempre a Documents por defecto en vez de la última ruta seleccionada.
- Poder establecer el nombre de la rom final. Me es más útil que las opciones de "when done" las cuales ninguna incluyen "open the build folder" o "open the rom".
- Porcentaje de progreso mientras buildea la rom (para sabeer cómo va). He hecho la prueba con un cap de 25 minutos y no sabía por donde iba tras 5-10 minutos Encoding Video...
- Cuando salta un error/excepción, no se para el Encoding video... En este caso, me imagino que es algo de FFMPEG pero sí que lo tengo linkado en variables de entorno (y ni que decir que tengo DKP).
Saludos bro!
Este es el tipo de feedback que se espera.
Actualmente estoy trabajando en una actualización, ya que he tenido muchos reportes de "fallos" y se deben casi en su totalidad a la falta de FFmpeg o devkitPro. Así que estoy estudiando la posibilidad de integrar el FFmpeg en el build o buscar alternativas con librería de Python.
Añadir una versión Portable es totalmente posible aunque tendría que ver como manejar el updater en ese caso.
Poner nombre a la ROM final y Agregar la opción File > Build Rom es totalmente posible, así como agregar "open the build folder" o "open the rom" al "When done:" y hacer que recuerde la última ruta abierta durante la sesión aún con la opción Remember File Path desactivada.
Respecto al porcentaje de progreso tendría que ver como implementarlo, ya que sí, para videos largos o de muchos fotogramas puede tardar mucho la fase de Encoding video... que se encarga de extraer todos los fotogramas para poder procesarlos. Se me ocurre también mostrar alguna advertencia para proceder o cancelar dependiendo de los parámetros de conversión, ya que por ejemplo, procesar un video de 25 minutos es casi imposible que entre en una ROM de 32MB y termine fallando tras una larga espera.
El error que muestras solo lo he tenido si no tengo linkeado el FFmpeg en las variables de entorno, por lo que me parece raro que te haya salido. Igualmente estoy preparando un videotutorial para instalar desde el FFmpeg (si sigue siendo necesario en la próxima versión) hasta el devkitPro y la herramienta en sí.
Lamentablemente tras los terremotos del día 24 de junio aquí en Venezuela el internet y la electricidad han estado fallando bastante y no me ha permitido avanzar en la actualización.
Así que les pido un poquito de paciencia y en tu caso específico puedes estar seguro de que tus recomendaciones serán tomadas en cuenta.
:)
 
Arriba