EDIT2:no se si probasteis el otro que puse, pero no se podian leer las instrucciones en pantalla (aunque funcionar funcionaba).
De todas formas, aqui el bueno, tambien con la opcion de cambiar entre mono y estereo, lo he probado y parece que funciona bien. Binarios para wii y gamecube.
http://www.mediafire.com/download.php?mjmowzm4gnmEDIT: mientras buscaba info y la ponia abajo me he dado cuenta de lo facil que era hacerlo (en teoria), asi que aqui teneis un sram language modifier open source y en modo wii:
http://www.mediafire.com/download.php?zmjyynyzztdEn principio, deberia salir el idioma actual en pantalla y actualizarse nada mas cambiarlo.
Voy a ver si le añado lo del mono-estereo y a cruzar los dedos a ver si rula.
Yo no he podido probarlo porque no tengo la wii aqui mismo. Por arrancarlo no os va a pasar nada, eso seguro, pero si cambiais el idioma no me responsabilizo (aunque deberia funcionar bien)
___________________________________________________
He estado mirando por libogc y tal y no veo ningun motivo por el que no funcione el programa... si tuviera una wii ntsc lo probaba a ver.
http://hitmen.c02.at/files/yagcd/yagcd/ ... ml#sec10.5Ahi hay info sobre la ram, las operaciones de escribir y leer son con comando EXI (nidea, solo se que se usan los mismos para la MC) y por libogc parecen haber funciones para la SRAM, a ver si averiguo como escribir valores.
EDIT: aqui un ejemplo de en libogc que modifica la SRAM:
void SYS_SetWirelessID(u32 chan,u32 id)
{
u32 write;
syssramex *sram;
write = 0;
sram = __SYS_LockSramEx();
if(sram->wirelessPad_id[chan]!=(u16)id) {
sram->wirelessPad_id[chan] = (u16)id;
write = 1;
}
__SYS_UnlockSramEx(write);
}
Esos datos estan en la sram extendida, pero como hay funciones para la ram normal, esto deberia funcionar, en modo wii y en modo GC:
#define SRAM_ENGLISH 0
#define SRAM_GERMAN 1
#define SRAM_FRENCH 2
#define SRAM_SPANISH 3
#define SRAM_ITALIAN 4
#define SRAM_DUTCH 5
extern syssram* __SYS_LockSram();
extern u32 __SYS_UnlockSram(u32 write);
void SYS_SetSramLang(u8 lang)
{
u32 write;
syssram *sram;
write = 0;
sram = __SYS_LockSram();
if(sram->lang != lang) {
sram->lang = lang;
write = 1;
}
__SYS_UnlockSram(write);
}
u8 SYS_GetSramLang()
{
u8 lang;
syssram *sram;
lang = 0;
sram = __SYS_LockSram();
lang = sram->lang;
__SYS_UnlockSram(0);
return lang;
}
Así que con un SYS_SetSramLang(SRAM_SPANISH); debería funcionar la cosa.