Registrarse

[Herramienta] GBA2PMD Importa música de GBA a PRET

Samu

Miembro insignia
Miembro insignia
YAY....

Bueno, estoy algo cansado así que seré breve, si eso lo edito en un par de días para que quede un poco más mono(?).


GBA to Pret Music Data (gba2pmd)



Esta herramienta permite extraer los datos de la música de los juegos de gba que usan el driver de audio "m4a", entre los que se encuentran los juegos de Pokémon. Los datos son extraídos en un formato compatible con los proyectos de decompilación de 3ªgen de pret (pokeemerald, pokefirered, pokeruby). De esta manera, gba2pmd permite exportar de forma más sencilla la música de vuestros antiguos hacks a los nuevos proyectos de decomp, así como importar música de otros juegos de gba.

Gba2pmd tiene soporta distintas roms, entre las que se encuentra toda la 3ª gen de Pokémon (Español, Inglés y Japonés), los Fire Emblem 6-8 y el Final Fantasy VI. Adicionalmente, también soporta cualquier ROM que use el "m4a", siempre que el usuario proporcione la dirección (offset) de la tabla de canciones del juego en cuestión (puede ser fácilmente escaneada con Sappy).

DESCARGA

Como nota importante, decir que en esta versión los ficheros ".mid" no son generados automáticamente, y tendréis que extraerlos con el Sappy o con gba2mid.

El contenido de los ficheros compatibles con pret generados ha de añadirse manualmente. (De hecho, no sé hasta que punto automatizar esto sería una buena o una terrible idea).

Agradecimientos.
  • A Huderlem por el aif2pcm contenido dentro de esta herramienta.
  • A @Json || @L!no || @DinoRabbit por terminar la herramienta desarrollando un algoritmo que convierte los datos del rom en ficheros ".mid". (?)(?)(?)

Ahora en serio, si alguien tiene una versión de línea de comandos del gba2mid o el código fuente del mismo, por dios, que me lo mande por privado, que me da mucha pereza "darle la vuelta" al mid2gba :D.
 
Última edición:

Dragonite

But where's your heart
El apartado de música estaba descuidado en Decomp, me alegro que haya herramientas que faciliten tanto este (hasta ahora) engorroso proceso.

Se me ocurre así, a bote pronto, que se podría usar el tutorial tradicional para insertar MIDIs a un rom binario y luego con esta aplicación insertarlo en en el proyecto de Decomp. Es un poco engorroso pero serviría hasta que puedas darle la vuelta al asuntillo del gba2mid.
 

Lunos

Enfrentando a La Organización
Miembro insignia
YAY....

Bueno, estoy algo cansado así que seré breve, si eso lo edito en un par de días para que quede un poco más mono(?).


GBA to Pret Music Data (gba2pmd)



Esta herramienta permite extraer los datos de la música de los juegos de gba que usan el driver de audio "m4a", entre los que se encuentran los juegos de Pokémon. Los datos son extraídos en un formato compatible con los proyectos de decompilación de 3ªgen de pret (pokeemerald, pokefirered, pokeruby). De esta manera, gba2pmd permite exportar de forma más sencilla la música de vuestros antiguos hacks a los nuevos proyectos de decomp, así como importar música de otros juegos de gba.

Gba2pmd tiene soporta distintas roms, entre las que se encuentra toda la 3ª gen de Pokémon (Español, Inglés y Japonés), los Fire Emblem 6-8 y el Final Fantasy VI. Adicionalmente, también soporta cualquier ROM que use el "m4a", siempre que el usuario proporcione la dirección (offset) de la tabla de canciones del juego en cuestión (puede ser fácilmente escaneada con Sappy).

DESCARGA

Como nota importante, decir que en esta versión los ficheros ".mid" no son generados automáticamente, y tendréis que extraerlos con el Sappy o con gba2mid.

El contenido de los ficheros compatibles con pret generados ha de añadirse manualmente. (De hecho, no sé hasta que punto automatizar esto sería una buena o una terrible idea).

Agradecimientos.
  • A Huderlem por el aif2pcm contenido dentro de esta herramienta.
  • A @Json || @L!no || @DinoRabbit por terminar la herramienta desarrollando un algoritmo que convierte los datos del rom en ficheros ".mid". (?)(?)(?)

Ahora en serio, si alguien tiene una versión de línea de comandos del gba2mid o el código fuente del mismo, por dios, que me lo mande por privado, que me da mucha pereza "darle la vuelta" al mid2gba :D.
Muy buena Samu, tocará darle caña a la música.
La herramienta tenía ciertos errores que Samu arregló. También tiene un pequeño fix por parte de Sierra.
Aquí os dejo la última versión compilada: https://mega.nz/file/vJRSka4C#fWGIvUCCvgaD2AqtBgXfSjeiCc6Ygw3MovWuTtQXdrQ
Andaba trasteando sin mucho conocimiento con las musicas, y noté que la herramienta parece estar obsoleta ahora mismo.
El programa dumpea todos los voicegroups en voice_groups.inc pese a que cada voicegroup deberia ser exportado en archivos individuales.
Untitled3865.png


 

Samu

Miembro insignia
Miembro insignia
Efectivamente ahora mismo está desactualizada, ese cambio que mencionas de los ficheros lo tengo hecho en local, pero no he llegado a pushearlo.

La herramienta tiene varios problemas que me llevaron a dejarla abandonada. Cuando extraes información de ROMS oficiales, no existe ningún problema, ya que la tabla de canciones, los samples y los voicegroups están correctamente formados. Sin embargo, en el caso de extraer información de los hackroms, por lo general existen gran cantidad de errores de configuración en los voicegroup, etc. He intentado controlar todos los errores de posibles, algunos de ellos de forma bastante 'hacky', pero hay uno en concreto que no logro evitar completamente.

Al tratarse de información en binario crudo, no tengo una forma fiable de saber si el puntero de una entrada Direct Sound (o similar) de un voicegroup apunta realmente a un sample de audio o si el puntero es simplemente basura que dejó el romhacker al configurar ese VG. Hay punteros que puedo descartar fácilmente por la dirección a la que apuntan, sin embargo hay otros que podrían ser candidatos válidos, y no lo son.

Este problema es especialmente tocacojones con los voicegroups rippeados de otros juegos, en los que solo se han reconfigurado unos pocos instrumentos, el resto de instrumentos tienen los punteros del rom de origen, que ya no se corresponden con información de audio en el juego actual.


Edit: Y los samples aún puedo filtrarlos "mirando" la cabecera del supuesto sample, el problema se complica más con los keysplit que tienen voicegroups dentro de voicegroups. Aún así, hay tantas entradas, que al final siempre hay alguna que acaba coincidiendo con el formato del cabezal del sample sin ser un sample, y peta xd.
 
Arriba