LoveBeat Tools es una suite completa de utilidades de código abierto diseñada para la extracción, análisis, exportación y visualización de recursos del motor del juego LoveBeat.
Este repositorio proporciona todo lo necesario para liberar los recursos internos del juego de sus contenedores cifrados y llevarlos a formatos estándar y accesibles (SLK, OBJ, OGG, DDS, XML, GLB, JSON, etc), permitiendo su preservación, estudio o renderizado en plataformas web modernas.
Note
Propósito Educativo y Preservación Digital: Todo este código se está liberando con un enfoque estrictamente educativo y de preservación. A lo largo de los años, el juego original tuvo versiones regionales históricas que ya no existen, como LoveRitmo (publicado por Softnyx en Latinoamérica) y su versión de Brasil. El objetivo principal de estas herramientas es preservar y estudiar las técnicas de modelado 3D, rigging, y análisis de datos que se usaban en esa época dorada del desarrollo.
Aviso de Propiedad Intelectual: En este repositorio no se distribuye, incluye ni copia ningún código fuente, recurso o asset del juego original. Todo el código presente aquí ha sido escrito desde cero (enfoque de clean-room design) basándose pura y exclusivamente en el análisis investigativo de las estructuras de datos.
El proyecto está dividido en dos módulos principales, cada uno con su propia documentación detallada:
1. Extractors
Un conjunto robusto de scripts en Python modernos orientados a la extracción de datos en masa. Este módulo se encarga del "trabajo pesado":
- Descompresión de archivos empaquetados
.spak(QPACK). - Desencriptación de texturas DDS (cifrado XOR) y hojas de cálculo SLK (algoritmo Blowfish inyectado).
- Parseo profundo de modelos 3D (
.gb), exportando pesos de skinning, huesos y mallas a JSON/OBJ. - Reconstrucción de audio de fondo (
.snba.ogg) y animaciones (.ab).
Para más información, consulte el README de Extractores.
2. WebViewer
Una aplicación full-stack que actúa como un visor 3D en el navegador para los recursos extraídos.
- Servidor Local (
serve.py): Un servidor ligero en Python que intercepta peticiones API y ejecuta dinámicamente los extractores necesarios en segundo plano para servir texturas y modelos al vuelo. - Cliente 3D (Three.js): Una interfaz web moderna (basada en módulos nativos ES6) capaz de reconstruir la jerarquía de huesos, renderizar modelos, aplicar los pesos de skinning en la GPU y reproducir animaciones clave (keyframes) en tiempo real.
Para instrucciones de ejecución y despliegue, consulte el README del WebViewer.
- Python 3.8 o superior: Única dependencia para los extractores y el servidor local. No requiere módulos externos de
pip, todo funciona con bibliotecas estándar (http.server,struct,concurrent.futures, etc). - Cliente del Juego LoveBeat: Para procesar ciertos formatos, las herramientas requieren acceso a la instalación válida del juego y a su ejecutable principal (
LoveBeat.exe). - Navegador Moderno: Cualquier navegador web reciente con soporte para WebGL 2.0 y módulos ES6 para ejecutar el WebViewer.
Warning
Aviso de Compatibilidad: Las herramientas de este repositorio se desarrollan mediante el análisis técnico de clientes específicos del juego. No se garantiza compatibilidad retroactiva o futura absoluta con parches antiguos o nuevos del servidor oficial. Se continuará trabajando progresivamente en ampliar la compatibilidad histórica.
Este es un proyecto impulsado por la nostalgia y el amor a la preservación técnica y análisis de los juegos de ritmo de los 2010s. Si te apasiona la programación gráfica (Three.js, WebGL), el análisis de estructuras de datos, o simplemente querés aportar a reconstruir los escenarios o las animaciones faltantes de los accesorios:
¡Tus Pull Requests y aportes son más que bienvenidos! Invitamos a cualquier curioso a usar este código base para crear nuevos proyectos, forkear, o ayudarnos a completar la compatibilidad con las versiones antiguas de LoveRitmo.
Este proyecto se distribuye bajo la licencia Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0).
Esto significa que eres libre de usar, estudiar, modificar y compartir el código, siempre y cuando des el crédito correspondiente y bajo ninguna circunstancia lo utilices con fines comerciales o de lucro. Consulta el archivo LICENSE para más detalles.