[Tutorial] Cambiar música en Dissidia con loop parcial

Bueno, desde que tengo este juego (Hace unos días) hay un par de canciones que no me han terminado de convencer y lo primero que hice fue convertir un par de canciones a at3 con el Exact Audio Copy de Codemasters y cambiarlas. El problema venía cuando la canción terminaba, ya que no se repite y se queda el combate sin música de fondo. Más tarde me acordé de que en los inicios del homebrew vi en este foro un post de killer-x para hacer que los at3 se repitieran indefinidamente para usarlos en los archivos EBOOT.PBP (Editando hexadecimalmente el archivo at3 para añadirle una cabecera). Busqué un poco por google y me encontré de casualidad un programa el cual me ahorraba el trabajo de editar el archivo, tan sólo tenía que crear el wav en formato ATRAC3 con cualquier editor, arrastrarlo y pulsar un botón.

Ya tenía mis canciones sonando y con loop infinito, pero no quedaba bien del todo ya que las que yo puse tenían un comienzo único por así decirlo y el resto de la canción es lo que debería repetirse. Imaginaos por ejemplo la canción de batalla normal de Final Fantasy IX ("Battle 1" del juego original, no del Dissidia). Al empezar suena como un piano (O lo que sea xDD) haciendo una escala y ya no suena más en toda la canción, ¿no? O por citar otro ejemplo del mismo juego, la canción "Feel my blade". Tiene una parte tranquila los primeros 55 segundos aproximadamente y comienza la parte más rapidilla que es la que debería repetirse. ¡Pues esto es lo que vengo a compartir con los que no sepan como hacerlo! Si consigo explicarme bien, claro xD

Me encontré un programa creado por Spirax que podía poner ese tipo de loop a los archivos, pero al ponerlos en el juego no recuerdo bien que es lo que pasaba porque sólo hice una prueba pero se me quedó pillado antes o despues del combate, como digo no lo recuerdo y eso que fue hace dos días xD Me dio por abrir los diferentes archivos con un editor hexadecimal y di con la tecla sin tener practicamente ni idea para ser sincero xD

Bueno, ya me dejo de rollos y al lio. Las herramientas necesarias son:

- Codecs ATRAC3

- Un programa que pueda convertir archivos de sonido a dicho formato, como Goldwave o la propia grabadora de windows (Esta no puede abrir ficheros mp3). Recomiendo un editor medio decente porque hay que dejar el final de la canción en un punto adecuado (Punto B a partir de ahora, que será el final del archivo final) para que enganche perfectamente con el comienzo del loop (Punto A). Como resultado obtendremos una canción que empezará y cuando llegué al final (Punto B) volverá a reproducirse desde el punto A y no desde el principio.

- Un editor hexadecimal

- GWAT3

Un apunte, si no funcionan los enlaces a los mp3 de ejemplo o alguno de los 2 enlaces anteriores, podéis bajarlos aquí

Una vez tengais elegida la canción deseada abrid el archivo con el editor (Las capturas que yo pondré son de Goldwave Y la canción "Fighting" de Final Fantasy VII). En esta parte tendréis que tirar vosotros de oido para hacer que enganche bien, yo no puedo explicar esto por escrito pero lo intentaré con un ejemplo poniendo tanto imágenes como sonido.

Imagen

En mi caso, escuchando la canción veo que a partir del 01:10.00 más o menos la canción ya se repite, por lo que busco un punto B a partir de ahí para cortar, es decir, para borrar desde B hasta el final del archivo que evidentemente ya no hace falta (Como ya digo esto depende de cada uno, sólo es buscar un sitio que haya sonado anteriormente en la canción). En la imagen 2 he marcado el final y en la 3 ya he eliminado desde ahí hasta el final, quedando un archivo de 1 minuto y poco. Podéis escuchar el corte aquí.

Imagen

Imagen

Lo más coñazo viene ahora, hay que buscar el punto A. Aquí sí que no puedo ayudar, es sólo encontrar un sitio que continue por donde acaba el fichero (Punto B). Un dato a tener en cuenta sobre el punto A: Intentad que no tenga más de 2 decimas de segundo, es decir, que el punto A sea por ejemplo minuto 00:06.00 ó 00:07.20 ó 00:04.25, nada de 00:04:125. Esto es porque luego hay que hacer unos cálculos matématicos y pasarlo a hexadecimal, y mejor no meternos en decimales xDD Un truco que yo utilizo para saber si el punto elegido es bueno o no es copiar TODO desde ese punto A hasta el final, lo pego al final y escucho como queda. Así veo si tengo que moverlo hacia delante o hacia atrás. Si no podeis encontrar un punto bueno con sólo 2 decimales meted o borrar un poco de silencio al principio de la canción, es mi consejo. Sé que me explico como un libro cerrado pero bueno xD En la siguiente imagen marco el punto A en el 00:02:80 (Lo he remarcado debajo con un rectángulo rojo). Podéis escucharlo aquí.

Imagen

En la siguiente imágen he copiado todo lo que está seleccionado, es decir, desde A hasta B, y lo he pegado detrás para ver como suena el enganche. Aquí la prueba.

Imagen

Como parece que suena perfectamente sin cortes ni nada raro, quito lo que he pegado y guardo el archivo como wav en formato ATRAC3. A la hora de guardarlo permite hacerlo con calidades diferentes, yo utilizo la segunda ya que suena bien y no ocupa mucho. NOTA: Fijaos que se guarda a 44100 samples/segundo, esto es parte de lo que dije de los 2 decimales, luego se explica.

Imagen

Una vez que tenemos el archivo wav, abrimos el GWAT3, arrastramos el fichero de sonido, pulsamos el botón Goldwave y ya tenemos un archivo at3 con loop infinito pero de toda la canción completa, no parcial como queremos. Cerramos GWAT3.

Imagen

Ahora abrimos con el editor hexadecimal el archivo at3 creado por el GWAT3 y nos vamos a la posición 78h.

Imagen

Hora de los cálculos matemáticos, ahora vereis porqué dije lo de los 2 decimales como mucho. Abrimos la calculadora de windows y la ponemos en modo científico (Ver > Científica). En modo Dec introducimos el tiempo del punto A en segundos, en mi caso 2.8

Imagen

Multiplicamos por 44100 (He aquí lo de los 2 decimales, al tener los 2 ceros se nos van).

Imagen

Pulsamos en Hex para ver el resultado en hexadecimal y este es el resultado que hay que tener en cuenta. ¿Qué hemos hecho? El at3 necesita saber el sample en el que empieza el loop, y como el archivo está guardado a 44100 samples/segundo hemos calculado el número de samples que hay en 2.8 segundos.

Imagen

Como veis a mi me da 1E258, pues esto es lo que tenemos que meter en el editor hexadecimal pero más o menos al revés, me explico: Empezando por la derecha separamos el número en parejas de dos, añadiendo si es necesario un 0 a la izquierda. En mi caso es 1 E2 58, como el 1 está sólo se añade un 0 quedando 01 E2 58

Ahora le damos la vuelta a las parejas de esta manera: 58 E2 01 y esto es lo que hay que meter en el editor hexadecimal. Otro ejemplo: Si el resultado en la calculadora fuera 632E, lo separamos 63 2E y le damos la vuelta 2E 63 (En este caso el tercer byte queda 00, que debería estar así por defecto en el archivo).

Imagen

Guardamos y ya tenemos el archivo at3 listo para reemplazarlo en la carpeta BGM del juego y rehacer la iso con UMDGen o VCDromX.

Espero haberme explicado más o menos bien, no sabía cómo escribirlo xDD Para cualquier duda o incluso ayuda con ficheros estoy por aquí o por MP

Saludos :)

Edit: Aquí tenéis un ejemplo con la canción "Battle 1" de Final Fantasy IX en donde podéis ver el ejemplo que dije anteriormente. El Punto A está en el segundo 6 aproximadamente, por lo que ese "piano" y una breve introducción sólo sonarán UNA VEZ. La canción dura 1:15 y el loop se produce justo cuando cojo el último Núcleo EX.
¡Qué tutorial tan bueno! Supongo que sirve para cualquier juego.
Enhorabuena ci0ud
Bilkoff escribió:¡Qué tutorial tan bueno! Supongo que sirve para cualquier juego.
Enhorabuena ci0ud


Gracias Bilkoff [beer]

La verdad es que sólo lo he probado en este, sólo es cuestión de probar xD Los otros juegos en los que he cambiado canciones son de carreras (Burnout por ejemplo) y lo suyo es que vayan pasando canciones, a parte de que no sabía esto hasta hace nada xD

He añadido al final del tutorial un link a un video donde se ve una demostración grabada directamente en el juego.

Un saludo
Tio pedazo tuto. Muchisimas gracias. Voy a hacerme una versión para mi.
Tengo un problema puesto que introduzco música creada por mi con este tutorial pero si meto más de dos es como si el juego se corrompiese y no me arranca utilizo el umdgen v4.00 para modificar y el irshell con usbhost para probar el juego.
redirectto escribió:Tengo un problema puesto que introduzco música creada por mi con este tutorial pero si meto más de dos es como si el juego se corrompiese y no me arranca utilizo el umdgen v4.00 para modificar y el irshell con usbhost para probar el juego.

Eso es muy extraño. Yo he modificado más de 9 temas del juego y me van perfectamente cuando juego.

Eso si, no he hecho lo del loop. Simplemente he recortado con el audacity de forma que queden bien. Y ahorra mucho esfuerzo y tiempo en hacer todo.
5 respuestas