¿Sería posible overclockear la Wii por homebrew?

nuvalo escribió:
los usos serían por ejemplo para forzar a la Wii a 720p ya que oceado el micro tendria mas posibilidades de realizar esa y otras tareas


Desconozco si se puede overclockear o no, pero ese en concreto no sería un uso. La wii no puede con 720p por cuestiones de hardware gráfico. "No caben" 720p, al menos con sistema de color de 16 bits.

No jodas... si la PS2 puede... como no va a poder la Wii???

[bye]
La PS2 saca más de 480p? :-?
Las respuestas al porque la wii no saca mas de 480p ya estan es este hilo, simplemente leed unos post un poco mas abajo de los primeros ;)
shadow22 escribió:Las respuestas al porque la wii no saca mas de 480p ya estan es este hilo, simplemente leed unos post un poco mas abajo de los primeros ;)

Ya lo he hecho, buffers y bits de profundidad, no?

Pero lo encuentro raro... Una máquina inferior como es la PS2 se puede forzar a 720p e 1080i con HDTV exploder, o algo así, incluso hay varios juegos que admiten esas resoluciones de forma nativa:
http://en.wikipedia.org/wiki/List_of_Pr ... _PS2_Games

[bye]
PD: Dejo el tema de PS2, que tengo miedo de caldear el ambiente
Pero no se puede comparar, que sea mas nueva o mas potente no quiere decir que pueda hacer todas las cosas que hace la otra. Son sistemas diferentes, no se pueden comparar tan facilmente.
En la Wii el XFB va en memoria RAM y puede ser de hasta 50MB o por ahí, que es enorme. El EFB es irrelevante porque se puede hacer el render a cachos. El VI lo mas probable es que pueda ponerse en otros modos de video mas anchos. La unica limitación es el pixelclock - el hardware de salida de vídeo no tiene (que sepamos) opción de usar relojes más rápidos que el de 480p.

No tiene nada que ver con la potencia gráfica - la Wii puede hacer render de 1080p y lo que te de la gana (mas rápido o lento ya depende, pero por poder puede y por hardware). El problema es que la salida de vídeo no tiene opción de 720p@60Hz. Se podrían hacer resoluciones altas, pero bajando la velocidad de refresco, y no serían compatibles con ningún equipo existente. La unica solución es encontrar una forma de subir el pixelclock.
SwapNewbie escribió:
shadow22 escribió:Las respuestas al porque la wii no saca mas de 480p ya estan es este hilo, simplemente leed unos post un poco mas abajo de los primeros ;)

Ya lo he hecho, buffers y bits de profundidad, no?

Pero lo encuentro raro... Una máquina inferior como es la PS2 se puede forzar a 720p e 1080i con HDTV exploder, o algo así, incluso hay varios juegos que admiten esas resoluciones de forma nativa:
http://en.wikipedia.org/wiki/List_of_Pr ... _PS2_Games

[bye]
PD: Dejo el tema de PS2, que tengo miedo de caldear el ambiente


Yo estaba convencido de que esos juegos a 1080i solo salían en PS3, y que lo del HDTV explorer ese era un poco "falso" (reescalando a tope).

Claro que no tengo ni idea, por eso preguntaba.
shadow22 escribió:¿Hay algo ya estudiado sobre el arranque de la wii?

Mas o menos todo está explicado en hackmii.com

Y para contestar a tu pregunta, el overclock - tanto en PCs como en la Wii como en casi todo - siempre es temporal y se borra al apagar y encender (o reiniciar). Las BIOS de PC guardan esos valores en la CMOS y los restauran cada vez que arrancas.
Flyper2 escribió:Yo estaba convencido de que esos juegos a 1080i solo salían en PS3, y que lo del HDTV explorer ese era un poco "falso" (reescalando a tope).

Claro que no tengo ni idea, por eso preguntaba.


Sí, claro que es falso, el juego seguro que renderiza a lo que está programado, pero la salida es esa. Es cuanto menos, curioso ;)

[bye]
marcansoft escribió:
shadow22 escribió:¿Hay algo ya estudiado sobre el arranque de la wii?

Mas o menos todo está explicado en hackmii.com

Y para contestar a tu pregunta, el overclock - tanto en PCs como en la Wii como en casi todo - siempre es temporal y se borra al apagar y encender (o reiniciar). Las BIOS de PC guardan esos valores en la CMOS y los restauran cada vez que arrancas.

Pienso que la teoria esta echa, hace falta ponerlo todo en practica
Ok, a quien le interesaria trabajar en el tema? de momento es solo verificar que se puede hacer por lo del pixel clock y demas.
Si queremos hacer OC a la Wii lo ideal seria explorar todas las posibilidades por Soft, y si no se puede siempre podemos probar a modificar el Hard. Ya puestos...

Supongo que habra que empezar por estudiarnos la documentacion que hay en wiibrew sobre el funcionamiento interno, y la informacion de hackmii sobre el arranque y demas parafernalia.
Yo me ofrezco para trabajar en el tema este, ademas he visto que hackmii es una pagina queesta todo en ingles y se me da bien, ademas me interesa todo el tema del oceo y todas las posibilidades de scene de la wii. Technik, cuenta conmigo para lo que sea [beer] [oki]
¿Para qué queréis overclockear la Wii? ¬_¬
ANTONIOND escribió:¿Para qué queréis overclockear la Wii? ¬_¬

Me gustaria que la gente se leyera el hilo entero antes de postear -.-
shadow22 escribió:
ANTONIOND escribió:¿Para qué queréis overclockear la Wii? ¬_¬

Me gustaria que la gente se leyera el hilo entero antes de postear -.-

Es que me resulta absurdo... Si es por lo de los modos de video, pues no serviría para los juegos porque están programados como están y salvo que seas un auténtico genio no vas a poder modificarlos para que usen correctamente lo que pueda hacerse con overclock. ¿Para la emulación? Si para usar un emulador hay que overclockear la Wii dudo que lo use mucha gente, la verdad, para eso está el ordenador que no hay que overclockearlo. Y lo mismo con cualquier cosa.

Simplemente me parece absurdo, pero en fin...

PD: Me he leído el hilo, que lo sepas, no respondo por que sí.

EDIT: Repito demasiado las palabras XD.
Si alguien quiere investigarlo, que empiece por cojer el binario de MIOS, extraer el IPL de GameCube de el, y desensamblarlo para ver cómo cojones hacen el underclock :)

El IPL es la parte que comienza en el offset 0x530 o por ahí del ELF, creo. Algunas strings curiosas:
Bus  Clock = %u Hz
Core Clock = %u Hz
Switching to compatible mode.
Now in compatible mode.
--- GAMECUBE BOOTROM for REVOLUTION v1.1 ---
Bueno, pues montemos el Team WOC xD Wii OverClock. XD
Marcan, seguire tu consejo, pero primero voy a mirar el funcionamiento general, porque veo que mas alla de las GX no tengo casi ni idea del funcionamiento de una Wii, asi que mejor estudio primero el funcionamiento general, y cuando sepa mas me centro en el MIOS ;). No obstante son bienvenidos todos los consejos sobre "por donde empezar"
Shadow22, tu como andas de conocimientos del funcionamiendo de la Wii?
technik escribió:Bueno, pues montemos el Team WOC xD Wii OverClock. XD
Marcan, seguire tu consejo, pero primero voy a mirar el funcionamiento general, porque veo que mas alla de las GX no tengo casi ni idea del funcionamiento de una Wii, asi que mejor estudio primero el funcionamiento general, y cuando sepa mas me centro en el MIOS ;). No obstante son bienvenidos todos los consejos sobre "por donde empezar"
Shadow22, tu como andas de conocimientos del funcionamiendo de la Wii?

Por ahora sigo reuniendo conocimientos sobre la wii por diversas fuentes (wiibrew sobre todo) y ademas estoy aprendiendo a utilizar el devkitppc, conforme se vayay investigando ire aprendiendo mas cosas ^^
Yo me estoy leyendo ahora la documentacion sobre el starlet, me alegra un montonazo que sea un ARM porque me son muy familiares por su uso en robotica, y eso facilitara la tarea.
technik escribió:Yo me estoy leyendo ahora la documentacion sobre el starlet, me alegra un montonazo que sea un ARM porque me son muy familiares por su uso en robotica, y eso facilitara la tarea.

Me has pillado tambien leyendo esa parte. Lo que me parece es que en el arranque de la Wii es el proceso que sigue

Wiibrew escribió:Starlet is the first processor to run code in the Wii.

* Starlet boots from an internal Mask ROM, BOOT0 (about 1300 bytes of code out of 4K possible)
* BOOT0 decrypts, verifies, and runs the first few blocks of NAND, BOOT1 (up to the first 48 pages of flash)
* BOOT1 locates, loads, decrypts, verifies, and runs BOOT2
* The BOOT2 bootstrap then loads the embedded ELF file.
* BOOT2 starts the IOS.

Esto es que para que se "arranque" el IOS tiene que iniciarse primero el starlet, luego el BOOT0,BOOT1 y BOOT2. En alguno de esos momentos que decripta comprueba y ejecuta el siguiente boot debe ser donde podemos coger algo sobre el tema de que se haga la comprobacion de las frecuencias y rectificacion de ellas en caso de haber ejecutado previamente el modeo gamecube.
Otra cosa que me ha llamado la atencion es en el Starlet Memory Map esta zona de aqui
Wiibrew escribió:x'0d80_0010 timer (core clock divided by 128)
x'0d80_0014 alarm (interrupt 0 is fired when the timer reaches this value)
x'0d80_0034 ???
x'0d80_0038 active interrupts (write 1 to clear)
x'0d80_003C enabled interrupts clear 0x40000 for legacy di
x'0d80_0060 ???
x'0d80_0070 ??? set 0x10 for legacy DI; 0x1 to allow write to exi boot buffer


Esta parte no se si la he captado bien, pero en la primera linea que he puesto dice "core clock divided by 128" y luego pone "interrupt 0 is fired when the timer reaches this value" y luego interrogaciones. Puede ser en ese momento que se compruebe las velocidades y se corrijan??
A mi eso me suena mas bien a una especie de WDT, un perro guardian del reloj, es un metodo que se utiliza para evitar cuelgues a bajo nivel. En algun momento del programa se inicia el timer a 0, luego, cada 128 instrucciones el registro del timer se incremente en una unidad. El programa que se ejecute en el micro (presumiblemente el IOS, aun no lo he mirado) reinicia el timer periodicamente, de esta forma si por algun motivo el IOS se quedase pillado no reiniciaria el timer, este se desbordaria y llamaria a la interrupcion 0, que seguramente llevara a una rutina de ejecucion nueva que nos libere del cuelgue.
technik escribió:A mi eso me suena mas bien a una especie de WDT, un perro guardian del reloj, es un metodo que se utiliza para evitar cuelgues a bajo nivel. En algun momento del programa se inicia el timer a 0, luego, cada 128 instrucciones el registro del timer se incremente en una unidad. El programa que se ejecute en el micro (presumiblemente el IOS, aun no lo he mirado) reinicia el timer periodicamente, de esta forma si por algun motivo el IOS se quedase pillado no reiniciaria el timer, este se desbordaria y llamaria a la interrupcion 0, que seguramente llevara a una rutina de ejecucion nueva que nos libere del cuelgue.

Ahora que lo has explicado asi si que tiene sentido esas lineas de codigo xDD
Os estáis liando. Las frecuencias no se corrigen al volver del modo de gamecube - símplemente se resetea el sistema y con ello las frecuencias vuelven al valor por defecto automáticamente. Si el valor por defecto no es el correcto (por ejemplo si el sistema arranca en una velocidad mas lenta "segura"), será algo de configuración que hará el menú del sistema o puede que incluso IOS, pero ponte tu a encontrar eso. Si hay algo que va a decirnos como se cambian las frecuencias es MIOS, ya que es relativamente pequeño y contiene llamadas a printf informativas cuando se realiza el cambio, con lo que es fácil de encontrar.

El timer no tiene nada que ver. Eso es un timer periódico del sistema, que es una parte básica de cualquier sistema informático moderno, ya que gobierna la temporización de los procesos. Es el encargado de pausar el código que se esté ejecutando en un momento dado y devolverle el control al núcleo del sistema, para poder implementar la multitarea. Por ejemplo, en un PC con Linux, salta cada 10ms (kernels viejos) o cada 10ms, 4ms, o 1ms (kernels nuevos), con lo que la CPU va dando saltos de aplicación en aplicación cada ese tiempo.
Ya se que el timer no tiene nada que ver, lo he puesto precisamente para indicar que eso no tiene nada que ver con el OC. Mi confusion ha sido porque pense que la interrupcion era a modo de watch dog timer, no cai en la cuenta de la multitarea. Lo unico que cambia es la rutina a la que llama la interrupcion.
Por cierto, como puedo conseguir los binarios, de un NAND DUMP?
El MIOS te lo puedes bajar directamente desde Nintendo.

Luego lo desencriptas con AES-128-CBC, clave dc8b5b0155a66577552a960faed0a29b, IV 00010000000000000000000000000000:
openssl enc -aes-128-cbc -in mios.aes -out mios.bin -d -K dc8b5b0155a66577552a960faed0a29b -iv 00010000000000000000000000000000 -nopad


Eso te da el archivo cargable, incluyendo el ELFloader. El ELF del MIOS propiamente dicho empieza en el offset 0x334, así que los primeros 0x334 bytes los borramos. Luego el IPL de gamecube creo que empieza en el offset 0x530 del ELF, creo.
marcansoft escribió:El MIOS te lo puedes bajar directamente desde Nintendo.

Luego lo desencriptas con AES-128-CBC, clave dc8b5b0155a66577552a960faed0a29b, IV 00010000000000000000000000000000:
openssl enc -aes-128-cbc -in mios.aes -out mios.bin -d -K dc8b5b0155a66577552a960faed0a29b -iv 00010000000000000000000000000000 -nopad


Eso te da el archivo cargable, incluyendo el ELFloader. El ELF del MIOS propiamente dicho empieza en el offset 0x334, así que los primeros 0x334 bytes los borramos. Luego el IPL de gamecube creo que empieza en el offset 0x530 del ELF, creo.

Ahora estoy viendo algunas lineas interesantes, cuando este seguro de que son fiables pongo los resultados [oki]
El ELF es ARM y corre en Starlet, no en el PPC, así que eso de cargarlo con HBC sería absurdo. Pero el IPL de Gamecube que contiene sí que es código PPC. Los IPL de los modchips de GC no valen porque evidentemente este IPL hace mas cosas (por ejemplo, underclockear la consola, cambiar al modo de gamecube, y hasta parchear algunos juegos que tienen problemas de compatibilidad).

El IPL es código de PPC en bruto (ni DOL ni ELF ni nada), así que tendrás que abrirlo como archivo binario en IDA, sin cabeceras. No se en que offset se carga, tendrás que investigar.
Ni idea. No he investigado ese IPL, al margen de los strings. Si lo hubiera hecho no os haría hacerlo a vosotros :P
Por si alguien quiere saber como sacar la clave, es muy fácil. Cojes el ticket, offset 0x1bf (sí, 0x1bf y no 0x1c0), y los 16 bytes siguientes son la clave encriptada con la clave común (ebe4...)
Me ha petado mi ordenador bueno, asi que temporalmente estare a bajo rendimiento xDDD. Os ire informando

PD: de camino hago up al hilo que le hace falta
Le doy un up a esto, que tenia buena pinta y sigo investigando ya con mi ordenador arregladito :D
83 respuestas
1, 2