XycloMod: Por fin se puede flashear la (no) TSOP de los/as v1.6!!!!!!

Hay novedades, de momento hay dos revisiones probadas del chip Xyclops:

Revisión A-A02 funciona.

Revisión A-B01 de momento NO funciona.

Acaba de aparecer un avance gigantesco en el mundo XBOX, en especial para los que tenemos v1.6 / 1.6b
De esta noticia me ha hecho eco @Holapepe en este hilo hilo_borg-disc-installer-aka-bdi_1049347_s2900#p1755899434

Para que quede claro:

No se flashea desde ningún installer, sino desde una/un PC.
Hay que abrir el/la XBOX para soldar cables, etc
Si has cortado LFRAME para hacer una instalación de modchip, tendrás que volver a conectarlo.
Los adaptadores / convertidores USB a UART suelen tener un jumper para seleccionar entre 5v y 3,3v Cuidado con equivocarse de voltaje.

El scener Prehistoricman ha descubierto los entresijos del chip "todo en uno" Xyclops, el diseño de este chip es propietario de MS, de ahí lo poco o nada de se supiera de su funcionamiento interno.

Esto es un copy paste del hilo original traducido por google y con algún arreglo mío. Para evitar problemas con las fotos, las he alojado en otro servidor.

Link de la fuente original https://www.xbox-scene.info/forums/topi ... os-on-v16/

Durante mucho tiempo se ha pensado que el chip Xyclops, que contiene el BIOS en una placa base v1.6, no se puede flashear. Sin embargo, recientemente descubrí que tiene un puerto serie con una variedad de comandos interesantes. Admite el volcado del BIOS, así como el código Intel 8051 que ejecuta las funciones SMC del chip. Y al igual que las otras versiones de Xbox que tienen el flash TSOP, podemos reprogramar el BIOS en la v1.6.

En cierto modo, este mod es mejor que el típico flash TSOP porque es fácil recuperarse si lo estropeas. El puerto serie seguirá estando disponible.

Tutorial

Materiales necesarios:


Soldador (estaño y flux de calidad)
Python instalado en tu PC
El script de flasheo https://github.com/Prehistoricman/Xbox_ ... flasher.py
Un archivo BIOS de 256 KB (recomendable CerBios) renombrado como your_bios.bin

Adaptador USB a UART de 3.3V. Puedes encontrar muchos de estos disponibles online a precios muy bajos. Mira de buscar uno que tenga un valor de resistencia TX inferior a 1k porque el RX de Xbox tiene una resistencia interna de 1k.

Pasos:

Conecta el adaptador USB a UART a el/la XBOX. Esto se puede hacer conectándolo al puerto AV o abriendo el/la XBOX y usando conexiones internas.

Nota de hal9000
Personalmente antes de conectar nada miraría que estuvieran bien instalados los drivers del adaptador USB a UART y estar seguro del puerto COM que le ha asignado la/el PC


Conexiones internas:

El pin 29 de Xyclops es DEBUG. Conéctalo al voltaje stand-by de 3.3 V.

Imagen

El pin 64 de Xyclops es TXD. Conéctalo al terminal RX del adaptador.

Cerca de Xyclops:

Imagen

O al punto alterno bajo el puerto AV:

Imagen

El pin 63 de Xyclops es RXD. Conéctelo al pin TX del adaptador.

Parte superior, cerca del puerto AV:

Imagen

O al punto alterno bajo el puerto AV:

Imagen

Conecta a tierra el terminal GND del adaptador. Puede usar la carcasa metálica de el/la XBOX, cualquier tornillo que sujete la placa base o el pin 2 del encabezado LPC (consulta el diseño de los pines aquí).

Conexiones externas:

Cable AV: ¡no es aconsejable!
Consulta el diagrama del conector AV aquí https://xboxdevwiki.net/AV_Cables
El pin 5 es DEBUG. Conéctalo a 3.3V.
El pin 18 es TXD. Conéctalo al terminal RX del adaptador.
El pin 6 es RXD. Conecta esto al terminal TX del adaptador.
Retira las resistencias debajo del puerto AV: R5M3, R4M10. Esto afectará el reconocimiento del modo de video y puede impedir la visualización normal.
Conecta cualquier pin de tierra (como el pin 6, 7 o 😎 al terminal GND del adaptador.

Flasheo::

Conecta el USB. Es mejor hacer esto antes de encender el/la XBOX
Conecta el/la XBOX. Se puede dejar en modo de espera.
Identifica qué puerto serie tiene su adaptador. En Windows, puedes esperar que sea algo como COM5.
Instala Python 3 si aún no lo tienes
Abre cmd, powershell, bash o lo que sea que esté el terminal en tu PC.
Ejecuta el script escribiendo

python xyclops_flasher.py your_bios.bin COM5

Al terminal, reemplazando your_bios.bin con la ruta a su archivo BIOS y COM5 con su puerto serie. Presiona enter

Sigue el texto en pantalla. Debe decir Xyclops comunicación establecida y preguntar si deseas borrar el flash.
Una vez que se haya realizado la conexión, o incluso se haya intentado, es posible que no puedas encender o apagar el/la XBOX. Es normal. El SMC se congela mientras el serial está activo.
Los Xyclops pueden alterarse y dejar de responder a veces. Si no puedes comunicarte, intenta desenchufar el/la XBOX durante 10 segundos.
Si obtienes un tiempo de espera de borrado, asegúrese de haber realizado la conexión GND.
Si no puedes comunicarse, es posible que su adaptador serie tenga demasiada resistencia interna. Identifica su resistencia TX y redúcela a ~500 ohmios.
El proceso de flasheo tarda unos 2 minutos, y la verificación (si quieres hacerlo) tarda otros 2 minutos.
Si deseas volver a verificar, utiliza la opción -v:

python xyclops_flasher.py your_bios.bin COM5 -v

El botón de encendido de Xbox debería volver a funcionar, así que intenta encenderlo.
Preguntas más frecuentes

¿Podemos usar un BIOS de más de 256 KiB?
No en una Xbox comercial. Algunos kits de desarrollo raros pueden ser capaces de hacer 512 KB, pero no lo he confirmado.

¡Ejecuté el script y mi Xbox no se enciende!
Sí, el SMC se congelará cuando reciba comunicación en serie. El script debería resolver eso si se cierra con éxito, por lo que debo asumir que falló. Puedes desenchufar tu Xbox durante 10 segundos y volver a enchufarla para restablecerla y volver a intentarlo.

¿Se puede hacer esto a través de un método de software?
Que yo sepa, no, pero se rumorea que ha sido descubierto.
Técnicamente, la respuesta es sí, pero implica usar primero el serie y luego reprogramar el SMC (avanzado).

¿Qué más puede hacer?
El puerto serie Xyclops es capaz de realizar muchas acciones de bajo nivel en el SMC. Por ejemplo, puede "presionar" los botones del panel frontal, cambiar la velocidad del ventilador, cambiar los colores de los LED. También puede hacer algunas cosas engañosas, como falsificar el modo de cable de video o eludir el desafío de arranque (FRAG).
También podemos reprogramar el SMC, lo que podría conducir a algunos mods más avanzados para fines específicos y de nicho.

A través del puerto AV???
Sí, lo sé, ¿verdad? No podemos estar seguros de por qué Microsoft lo hizo de esta manera. Es demasiado lento para la programación de fábrica Y hay esas resistencias que lo impiden. Definitivamente podría haber acelerado el proceso de desarrollo de Xyclops, pero eso no explica por qué se dejó presente en la placa base minorista.



Foto general

Imagen
hal9000 muchas gracias por la información !!!, esta muy buena esto!!!, justo de casualidad tengo todo lo necesario, así que voy a intentar saludos.
Casualmente se me a volado el LAD0 en la reconstruccion del LPC , he probado en el pin 2 del Xyclops que dicen que es el punto alternativo y nada


quizas esta sea la unica forma de revivirla pero el tutorial se ma hace bastante complicado
No veo que sea complicado: a mi entender

Hacer el puente debug a +3,3v

Imagen

Conectar el TX

Imagen

Conectar el RX

Imagen

El GND se puede tomar de la chapa o de cualquier tornillo.

Tener el UART configurado a 3,3v y por supuesto tener configurado los drivers en la/el PC.

XBOX con tensión en stand-by / reposo.

Ejecutar el Script en la/el PC y cruzar los dedos.

Me resulta muy muy sencillo.

Acabo de entrar en el hilo de su creador, por si había novedades o modificado el proceso. No hay cambios, todo lo del primer post es válido.

Foto general

Imagen

El GND a cualquier tornillo / chapa
@hal9000 yo me pierdo en la parte del uart, entiendo que valdria un STlink v2?

tengo este https://prnt.sc/bEOblSae_Vby

no se cual seria TX y RX y si hay que conectar el 3,3v y GND tambien del StLINK a la xbox
Hay novedades, de momento hay dos revisiones probadas del chip Xyclops:

Revisión A-A02 funciona.

Revisión A-B01 de momento NO funciona.


Un adaptador USB a UART de los mas comunes es como el que muestro en la foto de abajo. Son los mas económicos y suelen llevar el chip CH341

Imagen

Este es de mejor calidad, ya que incorpora el chip FT232RL

Imagen

Si te fijas tiene dos jumper, uno que pone I2C - TTL y el otro 3,3v - 5v. Este punto es el que se debe extremar la precaución, debe estás configurado en 3,3V de lo contrario adiós consola.
Las salidas que nos interesan son TXD, RXD y GND. No se necesita nada mas.

He tenido varios adaptadores de estos, pero ahora mismo no los encuentro. Su precio ronda no mas de 5€

No creo que tarden mucho en sacar un script para poder hacerlo con un Arduino / Raspberry
5 respuestas