Registrarse

[pokeruby - pokeemerald] Aumentar los canales de audio a 12

Samu

Miembro insignia
Miembro insignia
Esto va a ser breve, pero será mejor que quede por aquí o mucha gente va a perder el tiempo.

Bueno, por defecto los juegos de Pokémon tienen 8 canales de audio disponibles para las midis. En RH tradicional existe una forma muy sencilla de aumentar estos canales a 12 cambiando cierto byte de 'C5' a 'CC'.

En decompilación el cambio equivalente consiste en editar la función "m4aSoundInit" en "m4a.c, cambiando un 5 por un 12 (C).
Código:
void m4aSoundInit(void)
{
    s32 i;

    CpuCopy32((void *)((s32)SoundMainRAM & ~1), SoundMainRAM_Buffer, sizeof(SoundMainRAM_Buffer));

    SoundInit(&gSoundInfo);
    MPlayExtender(gCgbChans);
    m4aSoundMode(SOUND_MODE_DA_BIT_8
               | SOUND_MODE_FREQ_13379
               | (12 << SOUND_MODE_MASVOL_SHIFT)
              [S] | (5 << SOUND_MODE_MAXCHN_SHIFT));[/S]
               | (12 << SOUND_MODE_MAXCHN_SHIFT));

.....
...
.
Por si alguno no lo ve, hay que cambiar el 5 de esta imagen por un 12.




En fin, que os cunda.
 

Xuuki

holi
Como dije en discord, esto no funciona en pokeruby, he comprobado y ambos usan el mismo m4a, el mismo espacio en buffer y de igaul forma, el mismo archivo sound.c (casi el mismo)

Igualmente en m4a_internal.h hay otra referencia a SOUND_MODE_MAXCHN_SHIFT



siguiendo con mi investigacion, encontre otro archivo m4a en berry_fix (pokeemerald), cosa que no existe en pokeruby, por lo que pienso que puede haber algo aqui que en pokeruby interfiera con la cantidad maxima de canales y que en pokeemerald no afecte
 

Lunos

Enfrentando a La Organización
Miembro insignia
Venia a mencionar que, aparentemente, en Pokefirered es igual de facil que en Pokeemerald.


Bueno chau.
 

Dragonite

But where's your heart
Excelente tutorial, es sencillito en sí, pero bastante útil.

Como dije en discord, esto no funciona en pokeruby, he comprobado y ambos usan el mismo m4a, el mismo espacio en buffer y de igaul forma, el mismo archivo sound.c (casi el mismo)

Igualmente en m4a_internal.h hay otra referencia a SOUND_MODE_MAXCHN_SHIFT



siguiendo con mi investigacion, encontre otro archivo m4a en berry_fix (pokeemerald), cosa que no existe en pokeruby, por lo que pienso que puede haber algo aqui que en pokeruby interfiera con la cantidad maxima de canales y que en pokeemerald no afecte
Eso es porque eso no se podía hacer en Ruby si yo mal no recuerdo, sólo se podía en Fire Red y Emerald. Supongo entonces que es una cuestión más bien técnica.
 
Arriba