Quiero dejar algo en claro. Esto no es un tutorial paso a paso sobre cómo hackear la música en los juegos de GB / GBC, sino más bien un recurso que se puede utilizar en el hacking. Es un poco desorganizado, pero debería ayudar a algunas personas. El autor intentó que ésto no fuese tan sombrío y largo a la hora de leerlo, sino, más interesante.
Propósito del documento:
Este documento mostrará una lista de los offsets de todos los encabezados de música en todos los juegos GB / GBC, explicar el formato de los encabezados de la música, y el formato básico de los datos de música.
Para empezar...
Programas necesarios:
- Un editor hexadecimal (Usar Google)
- Sound Edit v1.3
Conocimientos requeridos:
- Uso básico de un Editor Hexadécimal
- Conocimientos elementales de punteros
Música GSC:
En primer lugar, voy a explicar un poco acerca de cómo funciona la música en GBC. Hay hasta cuatro canales para cada pista de música, dos son la parte tremble principal, uno es el bajo, y la última es la batería. Para cada pista de música, hay una cabecera de música. Las cabeceras de los puntos de música a donde se encuentran los datos reales de música, las notas y tal. Aquí está una lista completa de donde se encuentran las cabeceras de música en GSC, por orden de desplazamiento:
E9492 - S.S. Aqua
EA267 - Ice Path
EAD42 - Trainer- Basic Tune
EB27C - New Bark Town
EB3FC - Goldenrod City
EB61F - Vermilion City
EBD92 - Unown Ruins
EBDCB - Whirl Islands
EBDD5 - Meet trainer - Freaky Tune
EE35E - Meet Trainer - Japanese Tune 2
EE45F - Special Fanfare?
EE569 - Whirl Islands
EE6C5 - Routes 42-44
EE852 - Indigo Plateau
EE94B - Routes 38-39
EEB75 - Rocket's Hideout
EECE8 - Dragon's Den
EEDCB - Unown Radio Station
EEE3E - Trainer Rocket Tune
EEFB2 - Routes 26-27
EF5B1 - Weird
EF9BC - Dance Theatre
EFB3E - Bug Contest Results
0F0386 - Routes 34-37
0F07FD - Printer Error
F4602 - Killed a Wild Pokemon
F605C - Wild Pokemon (Johto)
F66C3 - Trainer Girl Tune
F6811 - Tin Tower
F6974 - Sprout Tower
F6A99 - Burned Tower
F6BF2 - Meet Mom
F6C72 - Victory Road
F6D79 - Pokemon Lullaby
F6E23 - Pokemon March
F7055 - Intro - Part 1
F7308 - Intro - Part 2
F766D - Rockets Take Radio Tower
F78FD - New Game/Continue
F7B13 - Pokeflute
F7C16 - Bug Contest
Ahora ya sabes donde se encuentran las cabeceras, es hora de aprender el formato de las cabeceras musicales. Éste es el formato de todos los formatos de música:
vv ww ww 01 xx xx 02 yy yy 03 zz zz
vv: Byte al inicio del header, no estoy muy seguro de lo que significa.
ww ww: Puntero de 2 bytes al primer canal
xx xx: Puntero de 2 bytes al segundo canal
yy yy: Puntero de 2 bytes al tercer canal
zz zz: Puntero de 2 bytes al cuarto canal
Si una pista de música no tiene un cuarto canal, simplemente no tendrá el puntero de la misma. Bueno, ya sabemos donde se encuentran todas las cabeceras de música, y su formato. Ahora es el momento de aprender el formato de los datos musicales reales. Esta es la estructura de nota para el GOLD y SILVER, estoy asumiendo que es el mismo para Crystal:
Notas (x = retraso nota)
0x - Sin nota
1x - C
2x - C#
3x - D
4x - D#
5x - E
6x - F
7x - F#
8x - G
9x - G#
Ax - A
Bx - A#
Cx - B (H)
D0 - Octave 7
D1 - Octave 6
D2 - Octave 5
D3 - Octave 4
D4 - Octave 3
D5 - Octave 2
D6 - Octave 1
D7 - Octave 0
D8 xx yz - xx Frames por unidad de retardo de nota, velocidad y, Longitud de Nota, z
DA hh ll - Set Tempo (sí, hh ll, no ll hh, menor es el value, más rápido)
DB xx - Ciclo de trabajo (00-03), también puede ser instrumento para la selección Ch3
DC yz - Velocidad Y, Longitud de Nota Z (básicamente igual al D8 sin xx)
E1 xx yz - Vibrato - Delay xx, profundidad y, Cambio Z
E3 xx - Ajuste de ruido (instrumento?)
E6 xx xx - Tune (no estoy seguro cuáles son los argumentos para ésto ..)
EF xx - Toma panorámica (seguro de los argumentos ..)
FD 00 ll hh - Salto (esto se usa para establecer el punto de bucle para la canción, ll = byte bajo, hh = high byte)
FE ll hh - Subrutina (ll = byte bajo, hh = byte alto, la dirección del remitente es el lugar inmediatamente después de este comando)
FF - End / Retorno de subrutina
Tu puedes utilizar Edit Sound v1.3 para añadir en las notas básicas, pero que en realidad tienen que entrar y agregar manualmente en los puntos de bucle y otras cosas pequeñas. Esto es muy molesto, pero es la única manera de hacerlo.
Música RBY
Puesto que ya hemos aprendido los conceptos básicos de los encabezados de música, no voy a tener que explicar todo de nuevo, puedo darle los offsets. Aquí están todas las ubicaciones de las cabeceras de música en RBY:
822E-8236 Pallet Town
8237-823F Pokecenter
8240-8248 Gym
8249-8254 Viridian / Pewter / Saffron
8255-825D Cerulean / Fuchsia
825E-8266 Celedon
8267-826F Cinnibar
8270-827B Vermilion
827C-8287 Lavender
8288-8290 S.S. Anne
8291-8299 Meet Prof. Oak
829A-82A2 Meet Rival
82A3-82AE Guy Walks you to Museum
82AF-82B7 Safari Zone
82B8-82C0 Pokemon get healed
82C1-82CC Routes 1 / 2
82CD-82D8 Routes 24 / 25
82D9-82E4 Routes 3 / 4 / 5 / 6 / 7 / 8 / 9 / 10 / 16 / 17 / 18 / 19 / 20 / 21 / 22
82E5-82F0 Routes 11 / 12 / 13 / 14 / 15
82F1-82FD Route 23 / Indigo Plateau
7C249-7C254 Title Screen
7C255-7C25D Credits
7C25E-7C266 Hall of FAme Registration
7C267-7C26F PRof Oak's LAb
7C270-7C275 Jigglypuff's Song
7C276-7C281 Bike Riding
7C282-7C28A Surfing
7C28B-7C293 Casino
7C294-7C29F Introduction Battle
7C2A0-7C2AB Power Plant / Unknown Dungeon
7C2AC-7C2B7 Viridian Forest / Seafoam Islands
7C2B8-7C2C3 Mt. Moon / Rock Tunnel / Victory Road
7C2C4-7C2CF Cinnibar Mansion
7C2D0-7C2D8 Pokemon Tower
7C2D9-7C2E1 Silph Co
7C2E2-7C2EA Meet Bad Trainer
7C2EB-7C2F3 Meet Girl Trainer
7C2F4-7C2FC Meet Angry Trainer
Los encabezados de música tienen el mismo formato que GSC. Parece que a Game Freak no le gusta tanto cambiar la codificación en sus juegos. Por desgracia, la estructura básica de nota es un poco diferente. Esta es la estructura básica de nota RED y BLUE, una vez más, no estoy seguro de si en YELLOW es exactamente el mismo:
Notas (x = Retraso de Nota)
0x - B
1x - C
2x - C#
3x - D
4x - D#
5x - E
6x - F
7x - F#
8x - G
9x - G#
Ax - A
Bx - A#
Cx - Sin Nota
Retraso de Nota:
x0: 1/16
x1: 1/8
x2: 1/8.
x3: 1/4
x4:
x5: 1/4.
x6:
x7: 1/2
xB: 1/2.
xF: 1
E0 - Octave 7E1 - Octave 6
E2 - Octave 5
E3 - Octave 4
E4 - Octave 3
E5 - Octave 2
E6 - Octave 1
E7 - Octave 0
Es casi lo mismo que en GSC. Los datos de octava han cambiado junto con varios otros bytes. Por lo tanto, no se puede importar canciones de RBY a GSC utilizando el "copiar y pegar", pero se puede hacer de nuevo manualmente sin demasiado estrés. Por desgracia, sólo tengo la estructura básica, y no los otros datos, tales como puntos de bucles y otra información.
~Creditos:
Coolboyman - Aportando la mayor parte del formato de datos de música que tenemos aquí
Data Crystal - Contenía un mapa ROM Gold y Red donde se obtuvo las offsets.
Fuente del Documento.
Comentarios
Eso sí, existe un método mucho más rápido y efectivo aún no documentado de hackear la música de GBC, tal vez debería hacer un tutorial.
Ya quiero ver otro.
Por último, un consejo, mira de agregar palabras, y de armar el tutorial con tu propio estilo. No solo lo traduzcas.