Capcom Home Arcade, un arcade stick con juegos clásicos de recreativa

Pararegistros escribió:@jj_0

Great tips.

BTW, they say:

yeah
we have some protections in place, but i guess the only fool proof way is digitally signing the binary
i.e. its signed using a key that only we have
Thats a step above what we've done so far
nothing says we can't do that ofc
yea
its hash checked and what not
can't stop anyone creating a http server and doing domain redirection - thats (for example) how steam caches and xbox live etc caches work
the bit we can improve for protection is the binary validation



So until now it is very vulnerable to external attacks (malicious or to hack update server to mod the CHA) as PSVita or Wii with DNS mod method if one could inject signed code.


Yes, if someone wants to do harm they could, but there is not much profit to make form it I guess.

By the way, it's nice to see how open they really are, or at least their community manager. Even with sending out boards with SD-card slot for free.
@jj_0 Yep. Ben is an absolutelly great guy; totally open-minded about the issue and caring for community but hand tied. I understand his point of ballance perfectly and the contrasting ideas about this particular issue.

The malware could serve to hack into owners networks and mine data.
@CAMPIRULO
@kikex-box
@Vick21

¿Habéis probado eso con ese método y hay novedades frescas? ;)
Pararegistros escribió:@CAMPIRULO
@kikex-box
@Vick21

¿Habéis probado eso con ese método y hay novedades frescas? ;)


No, por ahora solo he editado el ejecutable del menú intentando hacer que acepte mas de los 16 juegos incluidos, pero claro, sin medios para probar, cada vez que hago alguna modificación se la paso a alguien que pueda probarla :p
Pararegistros escribió:@CAMPIRULO
@kikex-box
@Vick21

¿Habéis probado eso con ese método y hay novedades frescas? ;)


Yo no he podido mirar nada más. Quería mirar lo que ha comentado @jj_0 de arrancar un sistema de orangepi (también intenté en su día con el chroot del sistema, pero no conseguí nada) para investigar alguna cosilla, pero vamos toquitear ya lo que es el sistema de Capcom ahí me pierdo, que yo soy administrador de sistemas, no desarrollador...
Lo de engañar al sistema de actualización del CHA, ya lo había pensado ya que vi el script de arranque (el S21Capcom) y me pareció bastante simple, pero para eso hay que tener una alternativa a esos binarios para inyectárselo...
@vick21 @kikex-box Pues sí, el método de secuestro de la web de actualización con las DNS podría funcionar... teniendo la alternativa que inyectarle en la EMMC bloqueando el uBoot antes del arranque físicamente o por hardware.
Buenas a todos, ahhhhh no puedo más...!!!



Por hacer un recuento de lo conseguido:
- Meter una rom diferente de las que trae y que esta quede "oculta" tras una de las portadillas de otro juego. Sin incrementar el número de 16 pero en teoría se podrían cambiar esos 16 o parte por otros títulos y jugarlos.

Mi petición:

¿Podríais hacer un tutorial del proceso para llegar a ello?
Contando desde lo más básico, soldar conector y cómo hacerlo, tipo, etc.. pasando por la comunicación con Linux, pasos a seguir, etc.

Yo por mi parte, aunque he seguido y leído el hilo muy detalladamente, tengo lagunas y a pesar de no ser ningún entendido, si que me veo capaz siguiendo instrucciones para atreverme a meterle mano para cacharrear, ya que por mi parte me gustaría probar otro título con el sistema, consciente de que es una fase muy temprana y que se ha llegado a los logos ni otras cosas que harían que quede infinitamente mejor, pero menos da una piedra. Gracias a todos los que hasta ahora habéis hecho posible el avance de este hack. Saludos [beer]
@miguelonic

Yo no sé al ritmo que evolucione la cosa, pero con la opción de la PCB BT y el poder personalizar unos cuantos juegos... es para que la peña vaya corriendo a comprarlo antes de que se acaben que luego vienen los llantos. XD
@Pararegistros
Totalmente de acuerdo, creo que es el típico caso de... Ostias me compré una Pandora china que es un mojón y no esto de calidad ademas de oficial.

Las minis nes se pagaron una millonada por algunas durante la especulación, conste que me encantan estos productos, yo mismo compré una snes mini (precio normal) y estoy encantado, aún teniendo una wii con "todo metido", ahora no entiendo demonizar este producto, cuando lo conectas y lo usas te encanta (actualizado, eso sí).

Lo que me he reído releyendo el hilo con un usuario que descartaba comprar el CHA por la elección de una Pandora por 250 pavos, increíble, algo de los chinos..

yo si no quiero esto, al menos busco un stick IL y le meto una pi (incluso las venden en combos ya hechos) pero comparar una Pandora con una CHA es de estar muy poco informado.

Y me da igual 800000000000 juegos para jugar con un mojón de componentes y con fallos de todo tipo.
Siempre he preferido la calidad a la cantidad.

Yo con la PCB bluetooth y la actualización 1.5 estaría servido pero....
Cuándo estarán disponibles..??? [enfa]
Se están pasando!!! cawento

@CAMPIRULO
Compañero! Por favor, manifiéstate!! Dinos que has probado y corrido otro juego siguiendo el método de @jj_0 tienes que estar liado y es lógico, nos diste momentos de serie... todos enganchados esperando el siguiente post... así que si por ahora está aparcado lo entendemos... [decaio] no sé si encontrarás hueco para recopilar un tuto...
@miguelonic

No gruñas tanto. XD

1.5 is coming... SOON

https://www.reddit.com/r/CapcomHomeArca ... in_action/

Han añadido Dip Switches, One Coin Mode, Scanlines,,, falta arreglar el audio en algunos aparatos, el scroll que se va un poco rápido y algún detalle más (el de la seguridad del servidor de actualización es gordo), añadir configuración manual de la Wifi y no sólo por DHCP...

Pero la cosa avanza. Se ve bien que le ha venido bien a Tim confinarse XD. Le está cundiendo más. [qmparto]
vick21 escribió:
Pararegistros escribió:@CAMPIRULO
@kikex-box
@Vick21

¿Habéis probado eso con ese método y hay novedades frescas? ;)


Yo no he podido mirar nada más. Quería mirar lo que ha comentado @jj_0 de arrancar un sistema de orangepi (también intenté en su día con el chroot del sistema, pero no conseguí nada) para investigar alguna cosilla, pero vamos toquitear ya lo que es el sistema de Capcom ahí me pierdo, que yo soy administrador de sistemas, no desarrollador...
Lo de engañar al sistema de actualización del CHA, ya lo había pensado ya que vi el script de arranque (el S21Capcom) y me pareció bastante simple, pero para eso hay que tener una alternativa a esos binarios para inyectárselo...


Hola,
¿Has podido hacer algo? He seguido el hilo de @jj_0 con el TheC64 y tiene una imagen que rula en la Orange Pi PC. Estaría bien conseguir esa imagen. No se hasta que punto nos la "prestarian". ¿Alquien tiene contactos?

Saludos,
@RataWeb

Como se ha dicho, es una placa Orange Pi personalizada (vamos, sin puertos USB ni lector de tarjetas SD XD ).

De momento la sustitución de las roms con límite de 16 y esperar a ver como avanza la cosa. Y mientras que salga una 1.5 estable porque ahora ejecutando juegos CPS3 a tope de opciones (16:9 + scanlines) no demuestra que se sobrecaliente la CPU y falta pulir detalles. Hay un par de obstáculos pero ya están más cerca.

Pero vamos, con esto y próximamente la PCB BT a la venta, quien no se la haya pillado ya... es porque no la quiere y luego que no llore. [qmparto]
Pararegistros escribió:@RataWeb

Como se ha dicho, es una placa Orange Pi personalizada (vamos, sin puertos USB ni lector de tarjetas SD XD ).

De momento la sustitución de las roms con límite de 16 y esperar a ver como avanza la cosa. Y mientras que salga una 1.5 estable porque ahora ejecutando juegos CPS3 a tope de opciones (16:9 + scanlines) no demuestra que se sobrecaliente la CPU y falta pulir detalles. Hay un par de obstáculos pero ya están más cerca.

Pero vamos, con esto y próximamente la PCB BT a la venta, quien no se la haya pillado ya... es porque no la quiere y luego que no llore. [qmparto]


Si, si, esta claro, la modificación de la placa BT es una mejora muy importante!!!

Saludos,
@RataWeb

Pues la verdad es que es un gustazo. Anoche subí un vídeo en Reddit con el Black Dragon en MAME y va de lujo sin lag.
@Pararegistros
Bueno, qué tal? Muy guapo jugar a Black Tiger, uno de los primeros arcades que jugué en salones... hace mucho mucho tiempo... XD

Estamos en mayo y no hay link para comprar la PCB bluetooth y tampoco está la 1.5... esto les hace quedar mal, simplemente se queda mejor no anunciándolo pero bueno, son las ganas de tenerlo... [+furioso]

Por otro lado todo lo avanzado en la scene se sigue en otro hilo de diferente foro o web en el idioma de Shakespeare dónde esté el amigo jj_0 :-?

EDITO: 2 preguntas; cuando le cambiaste la PCB terminaste poniendo las gomas que venían en el kit o re-pegaste las originales?
Tacto jostick, botones, sensaciones, etc con cuál te quedas, estos de sanwa o los que tienes de IL? Gracias!
miguelonic escribió:@Pararegistros
Bueno, qué tal? Muy guapo jugar a Black Tiger, uno de los primeros arcades que jugué en salones... hace mucho mucho tiempo... XD

Estamos en mayo y no hay link para comprar la PCB bluetooth y tampoco está la 1.5... esto les hace quedar mal, simplemente se queda mejor no anunciándolo pero bueno, son las ganas de tenerlo... [+furioso]

Por otro lado todo lo avanzado en la scene se sigue en otro hilo de diferente foro o web en el idioma de Shakespeare dónde esté el amigo jj_0 :-?

EDITO: 2 preguntas; cuando le cambiaste la PCB terminaste poniendo las gomas que venían en el kit o re-pegaste las originales?
Tacto jostick, botones, sensaciones, etc con cuál te quedas, estos de sanwa o los que tienes de IL? Gracias!


Ahora mismo la cosa al menos por mi parte está parada, hemos llegado a un obstáculo difícil de salvar, he editado un par de veces el menú del CHA para intentar saltarme el limite de 16 juego, pero claro, sin la placa para probarlo es muy engorroso estar pasando el ejecutable editado a alguien para cada prueba y no es viable (le he pedido a Ben el comunity manager a ver si le queda alguna de esas placas que dice que tiene en la oficina, por si me puede enviar una y así ir probando).

A lo que se ha llegado es a la conclusión de que se pueden meter juegos cambiando el core de fba que lleva incluido el CHA, pero dejando siempre 16 juegos en total, en teoría se podrían cambiar y ponerle sus imágenes y sus archivos de audio personalizados.

Básicamente el procedimiento seria:
-Conectarse a través de UART interrumpir el uboot y ganar acceso root
-Descargarse el core de fba que decia jj_0 de aquí https://buildbot.libretro.com/nightly/l ... hf/latest/ y sustituir el que viene incluido
-Sustituir las roms que queramos (y ya de paso las imágenes y archivos de audio para el menú) y editar el games.txt para que los añada al menú.
@miguelonic

Te respondo: La PCB va a llegar muy pronto 1 a 2 semanas según me dijo Ben.

1. Le pegué los originales. A ver si tengo tiempo para terminar de editar y subir el vídeo de la instalación (muy simple).

2. Uff... Cada cosa tiene su gusto. Para mi bartop usé IL Eurostick con botones cóncavos, para un stick Multisistema que me hice Stick Sanwa y botones Seimitsu. Para otro que me hice de NES IL de bate rojo con botones rojos Sanwa, para arcade sticks modificados alterno. No tengo preferencias. Eso sí, para algunos sticks Sanwa o Seimitsu suelo usar extensores de la barra para ganar un par de centímetros y cogerlo a la occidental (desde arriba) y no a la japonesa (desde abajo).

@kikex-box A ver, es engorroso. A Campirulo debería llegarle la semana que viene. A ver si avanza la cosa algo más.
@kikex-box

Gracias, entiendo que una vez hemos conectado la placa por UART (soldado) mediante USB al pc, este tiene que estar con Linux, la interrupción de uboot y ganar acceso root, no sabría cómo hacerlo sin alguna instrucción previa.
A ver si @Pararegistros que tiene mano con Ben, le comenta que es importante que seas uno de los "agraciados" con una placa, ya que tú podrías llegar lejos en el hack. Una pena que no la tengas, si fuera así, tal vez estaríamos hablando ya de algo "gordo"...[decaio]

@Pararegistros

Gracias, pues me parece que si las PCB bluetooth tardan 1 a 2 semanas más en estar listadas es un fiasco en los plazos, siempre se había comentado en reedit a finales de abril...

Entonces para estos de CHA que son sanwas le pones extensores? Entiendo que no, por lo tanto los juegas más a la japonesa?
Y si te tuvieras que quedar con uno solo; los sanwas de la cha o los euro2 de IL? Es porque nuestras recreativas cuando éramos pequeños eran IL de bate, yo apenas toqué de bolas, lo que es verdad es que estás se sienten de calidad y no sabría si al comparar me gustarían más las de IL, otra cosa es un posible mod al CHA cambiando bolas por bate...que opinas? Y dime tú ganador independientemente de otras circunstancias, sanwa o IL, Gracias. [beer]
miguelonic escribió:@kikex-box

Gracias, entiendo que una vez hemos conectado la placa por UART (soldado) mediante USB al pc, este tiene que estar con Linux, la interrupción de uboot y ganar acceso root, no sabría cómo hacerlo sin alguna instrucción previa.

En esa parte del proceso me pierdo, ahí el que te podría ayudar es @CAMPIRULO que es el que hizo el proceso con su placa
Hola,
Supongo que por UART, se puede extraer la nand, no? O hacer un backup. Alguien lo ha conseguido?
Saludos,
@RataWeb

Si se puede hacer un backup del sistema por UART yo lo hice.
@miguelonic
Para conectar la placa por UART necesitas seguir este tutorial
https://thec64community.online/thread/7 ... ttle-guide
Te creas un perfil en putty para no estar poniendo los mismos datos siempre que vayas a conectarte.
El modo de interrumpir el Uboot es sencillo,
1º Conectamos la placa a la alimentación a través de un puerto Usb del portatil, tambien le podemos dar alimentacion a traves del puerto usb de la placa con un cable type A.
2º conectamos el UART a otro puerto del portatil (importante son solo 3 pins no conectar a la alimentacion del UART) la placa tiene que estar encendida,
3º Abrimos sesion en Putty y una vez que tengamos conexion apagamos la placa con el boton de encendido.
4º Una vez la placa este apagada y tengamos seleccionado la pantalla de putty, apretamos el boton "S" del teclado del portatil y sin soltalo le damos al boton de encendido de la placa empezara a cargar el menu de arranque y parara cuando de la orden de interrumpir el Uboot.
Es mas facil de lo que parece.

Aunque no estemos posteando, no quiere decir que este la cosa parada, a ver que sale ;)

[bye]
Aquí estamos:


Así como resumen:
- Mi CHA es alemana y tiene lector de SD ya instalado
- Hice los pasos para cambiar passwd de root
- Hice una imagen de las particiones a la SD CARD
- He modificado el UBOOT para que arranque desde la SD CARD (también es posible hacerlo desde USB) pero la modificación no se queda permanente, tengo que investigar el porqué, creo que algún proceso en la carga lo vuelve a dejar desde la MMC interna ya que otras modificaciones sí se quedan permanentes. Pendiente de revisar, no es prioritario hasta que se solucione lo siguiente.

- El emulador incluido fba_libretro (v0.2.97.44) está limitado para que sólo acepte las ROMS que vienen incluidas, si lo arrancamos a mano desde Linux con otras ROMS no funciona. He revisado el código con un RA2 y efectivamente no hay referencias a más ROMS de ahí que sólo ocupe 14MB frente a los 60MB de mismo emulador completo (con referencias internas a todas las ROMS).
- Una vez cambiado el emu arranca la rom del dino si problemas desde la shell, si cerramos antes el menú de CAPCOM ya que sino se queda sin RAM (posiblemente por esto se reinicie el menú tras cada juego, simplemente para liberar memoria).
- Desde el menú de CAPCOM no se pueden lanzar otras ROMS distintas a las que vienen incluidas ya que, el emulador necesita que el menú le indique el nombre correcto del juego para que lo inicie y cualquier modificación en el fichero que controla esto "\opt\capcom\assets\games.txt" hace que el menú no arranque (muestra el logo de KOCH y nunca llega al de CAPCOM) <- Este es el punto en el que estoy ahora, revisando como pasar este control.

- Además he encontrado partes de scripts comentadas como la posibilidad de volcar una imagen desde el USB a la partición interna en cada arranque (lo que sería una buena solución una vez comprobado todo ya que se puede liar).

- Y otro punto sería como ganar root e instalar un medio de acceso directo (OpenSSH ¿?) sin UART mediante un DNS Spoofing de http://cha.tbbrds.com pero eso para más adelante...

A ver si alguna noche más me puedo quedar a investigar y os voy comentando.
@CAMPIRULO si tu placa ha muerto pero tienes acceso UART te la puedo intentar recuperar.
@Kei_Dash

Gracias pero ya la tengo arreglada. Tienes un mp ;) @Pararegistros
Tu tambien tienes un mp
Kei_Dash escribió:Aquí estamos:


Así como resumen:
- Mi CHA es alemana y tiene lector de SD ya instalado
- Hice los pasos para cambiar passwd de root
- Hice una imagen de las particiones a la SD CARD
- He modificado el UBOOT para que arranque desde la SD CARD (también es posible hacerlo desde USB) pero la modificación no se queda permanente, tengo que investigar el porqué, creo que algún proceso en la carga lo vuelve a dejar desde la MMC interna ya que otras modificaciones sí se quedan permanentes. Pendiente de revisar, no es prioritario hasta que se solucione lo siguiente.

- El emulador incluido fba_libretro (v0.2.97.44) está limitado para que sólo acepte las ROMS que vienen incluidas, si lo arrancamos a mano desde Linux con otras ROMS no funciona. He revisado el código con un RA2 y efectivamente no hay referencias a más ROMS de ahí que sólo ocupe 14MB frente a los 60MB de mismo emulador completo (con referencias internas a todas las ROMS).
- Una vez cambiado el emu arranca la rom del dino si problemas desde la shell, si cerramos antes el menú de CAPCOM ya que sino se queda sin RAM (posiblemente por esto se reinicie el menú tras cada juego, simplemente para liberar memoria).
- Desde el menú de CAPCOM no se pueden lanzar otras ROMS distintas a las que vienen incluidas ya que, el emulador necesita que el menú le indique el nombre correcto del juego para que lo inicie y cualquier modificación en el fichero que controla esto "\opt\capcom\assets\games.txt" hace que el menú no arranque (muestra el logo de KOCH y nunca llega al de CAPCOM) <- Este es el punto en el que estoy ahora, revisando como pasar este control.

- Además he encontrado partes de scripts comentadas como la posibilidad de volcar una imagen desde el USB a la partición interna en cada arranque (lo que sería una buena solución una vez comprobado todo ya que se puede liar).

- Y otro punto sería como ganar root e instalar un medio de acceso directo (OpenSSH ¿?) sin UART mediante un DNS Spoofing de http://cha.tbbrds.com pero eso para más adelante...

A ver si alguna noche más me puedo quedar a investigar y os voy comentando.
@CAMPIRULO si tu placa ha muerto pero tienes acceso UART te la puedo intentar recuperar.


Impresionante avance, vaya nivel que hay en el foro. Por casualidad, ¿has podido trastear con el usb ext?. Muchas gracias!.
Kei_Dash escribió:- Una vez cambiado el emu arranca la rom del dino si problemas desde la shell, si cerramos antes el menú de CAPCOM ya que sino se queda sin RAM (posiblemente por esto se reinicie el menú tras cada juego, simplemente para liberar memoria).


En la 1.5 dicen que está solucionado. Igual lo han logrado con una especie de savestate o algo así, porque no sé que otra solución puede haber si faltaba ram.
@gynion Todavía hay problemas con la 1.5. Hay cosas que están y otras que hay que solucionar.
Pararegistros escribió:@gynion Todavía hay problemas con la 1.5. Hay cosas que están y otras que hay que solucionar.


Eso he leído, que están ahí ahí, pero que todavía no ha salido. Lo que me pareció leer también es que eso en concreto sí estaba solucionado.
CAMPIRULO escribió:
El modo de interrumpir el Uboot es sencillo.
Es mas facil de lo que parece.
Aunque no estemos posteando, no quiere decir que este la cosa parada, a ver que sale ;)
[bye]
Muchas gracias Campirulo, este finde quiero meterle mano, mi placa lleva ranura SD, pregunto; se puede llegar al proceso sin soldar en la placa?

@Kei_Dash
Joder macho, enhorabuena..! Supongo que cuando entre el nuevo firmware de la actualización 1.5 puede que sea más fácil, ya que el reset mandará a la pantalla de selección de juegos. Muchas gracias por la info de los avances, seguimos muy atentos!!
Hola,

Tengo una idea en mente, pero aún tengo la CHA en garantía y no quiero tocarla aún.

De otro proyecto antiguo, de una iCade, tengo su placa blouetooth y un controlador zero delay, por lo que creo que puedo adaptar la placa BT del iCade a la CHA, pero me gustaría probarlo todo antes de modificar la CHA en una Orange Pi que tengo. Pero claro, necesito la nand de la CHA, y por eso preguntaba antes lo del backup.

Si me la podeis hacer llegar, os lo agradecería mucho para poder continuar con mis pruebas con la placa bluetooth del iCade. O en su defecto, el fichero img para la Orange Pi.

Muchas gracias,
Updated: Additonal description on capcom md5sum hash requirements plus added an 'asset.zip' for root password change and ssh/ftp.

Overall I think the easiest way to make changes to the CHA without having to open it up is to abuse the update mechanism. In fact it took me much longer to type the explanation below than to actually set it up ;):
  • Choose which device you are going to use as a fake update webserver.
  • Install a webserver on it. This obviously depends on what OS you are using but there are options for both Windows and Linux
  • In the webserver root folder create the directory structure as I described here:
    upd
    ├── e4f0d6df5d62e282c138ecd3af755764
    │   ├── asset.zip
    │   ├── capcom
    │   ├── updater
    │   └── version.txt
    └── current.txt
  • For the initial files you can download the 'capcom', 'updater' and if you want 'asset.zip' from the official CapCom update server:
  • 'version.txt' you can create with whatever text you want
  • 'current.txt' has the md5sum hash of 'capcom'. The update only seems to work if this is a correct md5sum. This makes it a little bit more difficult if you want to update from the latest version as you will have to have a 'capcom' that works but also has a different md5sum. What you can do is to just add a bit of text to the real 'capcom' and that will make it different. So for the latest v1.4 capccom:
    # md5sum capcom
    e4f0d6df5d62e282c138ecd3af755764 capcom
    # echo "PADDING" >>capcom
    # md5sum capcom
    988080fad1f493d01f0f951c3408c995  capcom

    And then you of course have to use 988080fad1f493d01f0f951c3408c995 instead of e4f0d6df5d62e282c138ecd3af755764
  • You can create your own 'asset.zip', I've created this one that:
    • Changes the root password to 'chachacha'
    • Adds a dropbear sshd server so you can ssh (as root) into the CHA
    • Adds pure-ftp ftp server so you can ftp (as root) into the CHA
    I've tested this on mine and it works fine. However use this at your own risk, I won't be responsible for any unforeseen effects/bricked CHA's etc.
  • On the device give it's network connection a second IP address which is the same as 'cha.tbbrds.com' has. Currently that's 77.240.1.20:
    • On Linux do something like
      ifconfig eth0:1 77.240.1.20
    • On Windows you can edit an 'Alternate Configuration' in the IP properties of the network adapter
  • Now all that's left to do is to ensure that the CHA will connect to your webserver rather than the official one. To do this set up a route in your router to point to the your webserver. Assuming the real ip-address of your webserver's PC is for example 192.168.178.105 you need to tell your router to send requests to 77.240.1.20 instead to 192.168.178.105. Most routers have an option somewhere to put in a 'static route' to do this. In my example the static route would be network: 77.240.1.0, netmask: 255.255.255.0, gateway 192.168.178.105.
  • You can check whether it works by (on a different device go to http://cha.tbbrds.com/upd/current.txt and check if the hash displayed is indeed the one you put in the file 'current.txt.' However ensure that your browser hasn't cached te original page or address. You can also ping cha.tbbrds.com and you should see quite low ping times as ti will be on your own network
  • Of course you can also differently, e.g. set up your PC as Wifi hotspot with address range 77.240.1.xx, or set up a separate access point etc etc

Once you have done all the above you can basically keep the 'capcom' and 'updater' binaries as is, only changing them when new versions are released. An then make any change you want by changing 'asset.zip'.

If one doesn't mind opening up the CHA then both UART connection (I just bend the 5V and 3.3V pins of the USB2UART converter out of the way and stick the GND, RX and TX pins through the appropriate holes and squeeze them a bit so thee device is fixed into position) an using FEL mode are easy to use for different purposes.

@Kei_dash Which fba_retrolib.so did you use, the same one I used here or a different one? The one I used doesn't skip the games bootup process does your skip them?

Also, regarding UBOOT changes to boot from SD-card note being permanent, I assume you would change the bootargs variable from:
bootargs=console=ttyS0,115200 root=///dev///mmcblk1p2 rootwait usbhid.quirks=0x1C59:0x0023:0x20000000 quiet vt.global_cursor_default=0
to:
bootargs=console=ttyS0,115200 root=//dev///mmcblk0p2 rootwait usbhid.quirks=0x1C59:0x0023:0x20000000 quiet vt.global_cursor_default=0
and then do a 'saveenv'? I don't have an SD-card board myself, so i'm wondering whether with an SD_card inserted u-boot + settings is loaded still form the internal eMMC or from the SD-card?


Btw, does anyone else also hate the fact that the forum doesn't allow single //'s?
@jj_0

Hi. The single slash issue is probably to block spam.

BTW, the other day I suggested Ben to tell Tim to implement WIFI manual setup rather than having to rely on DHCP, so, if tris is implemented, wouldn't it be easier?

Oh. Did you get the PM?
jj_0 escribió:Overall I think the easiest way to make changes to the CHA without having to open it up is to abuse the update mechanism. In fact it took me much longer to type the explanation below than to actually set it up ;):
  • Choose which device you are going to use as a fake update webserver.
  • Install a webserver on it. This obviously depends on what OS you are using but there are options for both Windows and Linux
  • In the webserver root folder create the directory structure as I described here:
    upd
    ├── 6aba9986b734f32fc7e1a9c5c3907410
    │   ├── asset.zip
    │   ├── capcom
    │   ├── updater
    │   └── version.txt
    └── current.txt
  • For the initial files you can download the 'capcom', 'updater' and if you want 'asset.zip' from the official CapCom update server:
  • 'version.txt' you can create with whatever text you want
  • 'current.txt' has the md5sum hash of 'capcom' but al lthat is really required is that it is a different md5sum than what is currently on the CHA. I used '6aba9986b734f32fc7e1a9c5c3907410'
  • On the device give it's network connection a second IP address which is the same as 'cha.tbbrds.com' has. Currently that's 77.240.1.20:
    • On Linux do something like
      ifconfig eth0:1 77.240.1.20
    • On Windows you can edit an 'Alternate Configuration' in the IP properties of the network adapter
  • Now all that's left to do is to ensure that the CHA will connect to your webserver rather than the official one. To do this set up a route in your router to point to the your webserver. Assuming the real ip-address of your webserver's PC is for example 192.168.178.105 you need to tell your router to send requests to 77.240.1.20 instead to 192.168.178.105. Most routers have an option somewhere to put in a 'static route' to do this. In my example the static route would be network: 77.240.1.0, netmask: 255.255.255.0, gateway 192.168.178.105.
  • You can check whether it works by (on a different device go to http://cha.tbbrds.com/upd/current.txt and check if the hash displayed is indeed the one you put in the file 'current.txt.' However ensure that your browser hasn't cached te original page or address. You can also ping cha.tbbrds.com and you should see quite low ping times as ti will be on your own network
  • Of course you can also differently, e.g. set up your PC as Wifi hotspot with address range 77.240.1.xx, or set up a separate access point etc etc

Once you have done all the above you can basically keep the 'capcom' and 'updater' binaries as is, only changing them when new versions are released. An then make any change you want by changing 'asset.zip'.

If one doesn't mind opening up the CHA then both UART connection (I just bend the 5V and 3.3V pins of the USB2UART converter out of the way and stick the GND, RX and TX pins through the appropriate holes and squeeze them a bit so thee device is fixed into position) an using FEL mode are easy to use for different purposes.

@Kei_dash Which fba_retrolib.so did you use, the same one I used here or a different one? The one I used doesn't skip the games bootup process does your skip them?

Also, regarding UBOOT changes to boot from SD-card note being permanent, I assume you would change the bootargs variable from:
bootargs=console=ttyS0,115200 root=///dev///mmcblk1p2 rootwait usbhid.quirks=0x1C59:0x0023:0x20000000 quiet vt.global_cursor_default=0
to:
bootargs=console=ttyS0,115200 root=//dev///mmcblk0p2 rootwait usbhid.quirks=0x1C59:0x0023:0x20000000 quiet vt.global_cursor_default=0
and then do a 'saveenv'? I don't have an SD-card board myself, so i'm wondering whether with an SD_card inserted u-boot + settings is loaded still form the internal eMMC or from the SD-card?


Btw, does anyone else also hate the fact that the forum doesn't allow single //'s?


Hi @jj_0,

I think that it's better that in the same server that you are configured a fake webserver, configure a domain name server to resolve cha.tbbrds.com domain with your IP webserver. Remember change on your router, the DNS, then it will assign your IP server as a DNS to CHA.

Regards,
RataWeb escribió:
Hi @jj_0,

I think that it's better that in the same server that you are configured a fake webserver, configure a domain name server to resolve cha.tbbrds.com domain with your IP webserver. Remember change on your router, the DNS, then it will assign your IP server as a DNS to CHA.

Regards,

Sure you can do it that way as well. But if you don't want to install a DNS server you can do it just by 'using' the IP-address on your own network. On my router that was easy to do so I didn't need to install a DNS server as well. But both ways work.

I'm not sure how long this method is going to work anyway, it seems that in v1.4 they have already changed something, not using 'wget' anymore in the updater. So I guess the best way forward is sitll going to be via UART or FEL mass-storage.

@Pararegistros Regarding manual Wifi, you will still need to 'hijack' the update IP address I think.
jj_0 escribió: @Kei_dash Which fba_retrolib.so did you use, the same one I used here or a different one? The one I used doesn't skip the games bootup process does your skip them?

Also, regarding UBOOT changes to boot from SD-card note being permanent, I assume you would change the bootargs variable from:
bootargs=console=ttyS0,115200 root=///dev///mmcblk1p2 rootwait usbhid.quirks=0x1C59:0x0023:0x20000000 quiet vt.global_cursor_default=0
to:
bootargs=console=ttyS0,115200 root=//dev///mmcblk0p2 rootwait usbhid.quirks=0x1C59:0x0023:0x20000000 quiet vt.global_cursor_default=0
and then do a 'saveenv'? I don't have an SD-card board myself, so i'm wondering whether with an SD_card inserted u-boot + settings is loaded still form the internal eMMC or from the SD-card?


Btw, does anyone else also hate the fact that the forum doesn't allow single //'s?


Lo siento pero al ser un foro de habla hispana te respondo en castellano, no tengo inconveniente en hablar por MP en inglés. Intento usar expresiones simples para que se traduzcan correctamente.

Acerca del UBOOT, el cambio que hice fue poner la variable mmc_bootdev a "0", tras esto hacer un saveenv pero esto sólo afecta al boot actual. Aunque haga un saveenv en el siguiente arranque vuelve a arrancar desde la MMC interna.

La modificación que comentas me parece más agresiva ya que los parámetros que tengo en el boot.scr son:

setenv fdt_high ffffffff

setenv bootargs console=ttyS0,115200 root=/dev/mmcblk${mmc_bootdev}p2 rootwait usbhid.quirks=0x1C59:0x0023:0x20000000 quiet vt.global_cursor_default=0

fatload mmc ${mmc_bootdev} $kernel_addr_r zImage
fatload mmc ${mmc_bootdev} $fdt_addr_r sun8i-h3-orangepi-pc.dtb
bootz $kernel_addr_r - $fdt_addr_r


Y si consiguiéramos poner el mmc_bootdev = 0 de forma permanente, sería todo más rápido y limpio, ¿no lo crees?
Kei_Dash escribió:
jj_0 escribió: @Kei_dash Which fba_retrolib.so did you use, the same one I used here or a different one? The one I used doesn't skip the games bootup process does your skip them?

Also, regarding UBOOT changes to boot from SD-card note being permanent, I assume you would change the bootargs variable from:
bootargs=console=ttyS0,115200 root=///dev///mmcblk1p2 rootwait usbhid.quirks=0x1C59:0x0023:0x20000000 quiet vt.global_cursor_default=0
to:
bootargs=console=ttyS0,115200 root=//dev///mmcblk0p2 rootwait usbhid.quirks=0x1C59:0x0023:0x20000000 quiet vt.global_cursor_default=0
and then do a 'saveenv'? I don't have an SD-card board myself, so i'm wondering whether with an SD_card inserted u-boot + settings is loaded still form the internal eMMC or from the SD-card?


Btw, does anyone else also hate the fact that the forum doesn't allow single //'s?


Lo siento pero al ser un foro de habla hispana te respondo en castellano, no tengo inconveniente en hablar por MP en inglés. Intento usar expresiones simples para que se traduzcan correctamente.

Acerca del UBOOT, el cambio que hice fue poner la variable mmc_bootdev a "0", tras esto hacer un saveenv pero esto sólo afecta al boot actual. Aunque haga un saveenv en el siguiente arranque vuelve a arrancar desde la MMC interna.

La modificación que comentas me parece más agresiva ya que los parámetros que tengo en el boot.scr son:

setenv fdt_high ffffffff

setenv bootargs console=ttyS0,115200 root=/dev/mmcblk${mmc_bootdev}p2 rootwait usbhid.quirks=0x1C59:0x0023:0x20000000 quiet vt.global_cursor_default=0

fatload mmc ${mmc_bootdev} $kernel_addr_r zImage
fatload mmc ${mmc_bootdev} $fdt_addr_r sun8i-h3-orangepi-pc.dtb
bootz $kernel_addr_r - $fdt_addr_r


Y si consiguiéramos poner el mmc_bootdev = 0 de forma permanente, sería todo más rápido y limpio, ¿no lo crees?

No problem with you using Spanish, it works quite well with Google Translate. Unfortunately I don't speak Spanish at all :-( so I have to use English.

I agree, my method would be more aggressive and it would be better to make 'mmc_bootdev = 0' permanent. However I think that the 'mmc_boot_dev' variable is set by u-boot during booting. That will overwrite any change you make to it. But another way is to change 'bootcmd_mmc1':
=> printenv bootcmd_mmc1
bootcmd_mmc1=setenv devnum 1; run mmc_boot
=> setenv bootcmd_mmc1 "setenv devnum 0; run mmc_boot"
=> printenv bootcmd_mmc1                             
bootcmd_mmc1=setenv devnum 0; run mmc_boot
=> saveenv
Saving Environment to FAT... writing uboot.env
OK
=>

This is not overly aggressive, and if you want to restore the original settings you can always delete the uboot.env file

I'm still curious, which fba_libretro.so did you use?
jj_0 escribió:
RataWeb escribió:
Hi @jj_0,

I think that it's better that in the same server that you are configured a fake webserver, configure a domain name server to resolve cha.tbbrds.com domain with your IP webserver. Remember change on your router, the DNS, then it will assign your IP server as a DNS to CHA.

Regards,

Sure you can do it that way as well. But if you don't want to install a DNS server you can do it just by 'using' the IP-address on your own network. On my router that was easy to do so I didn't need to install a DNS server as well. But both ways work.

I'm not sure how long this method is going to work anyway, it seems that in v1.4 they have already changed something, not using 'wget' anymore in the updater. So I guess the best way forward is sitll going to be via UART or FEL mass-storage.

@Pararegistros Regarding manual Wifi, you will still need to 'hijack' the update IP address I think.


But with manual IP, someone could try to create an alternative update server with its own DNS (such as the case for Henkaku Enso and Wiihack) and it would be even better than having to change router DNS or creating a DNS server with BIND or similar software.

My main doubt is what follows: 1.5 will get rid of RA layer (or at least that's what they have been working in), so, in which position are we left if the method relies in the custom FBA Libretro core?
jj_0 escribió:
Kei_Dash escribió:
jj_0 escribió: @Kei_dash Which fba_retrolib.so did you use, the same one I used here or a different one? The one I used doesn't skip the games bootup process does your skip them?

Also, regarding UBOOT changes to boot from SD-card note being permanent, I assume you would change the bootargs variable from:
bootargs=console=ttyS0,115200 root=///dev///mmcblk1p2 rootwait usbhid.quirks=0x1C59:0x0023:0x20000000 quiet vt.global_cursor_default=0
to:
bootargs=console=ttyS0,115200 root=//dev///mmcblk0p2 rootwait usbhid.quirks=0x1C59:0x0023:0x20000000 quiet vt.global_cursor_default=0
and then do a 'saveenv'? I don't have an SD-card board myself, so i'm wondering whether with an SD_card inserted u-boot + settings is loaded still form the internal eMMC or from the SD-card?


Btw, does anyone else also hate the fact that the forum doesn't allow single //'s?


Lo siento pero al ser un foro de habla hispana te respondo en castellano, no tengo inconveniente en hablar por MP en inglés. Intento usar expresiones simples para que se traduzcan correctamente.

Acerca del UBOOT, el cambio que hice fue poner la variable mmc_bootdev a "0", tras esto hacer un saveenv pero esto sólo afecta al boot actual. Aunque haga un saveenv en el siguiente arranque vuelve a arrancar desde la MMC interna.

La modificación que comentas me parece más agresiva ya que los parámetros que tengo en el boot.scr son:

setenv fdt_high ffffffff

setenv bootargs console=ttyS0,115200 root=/dev/mmcblk${mmc_bootdev}p2 rootwait usbhid.quirks=0x1C59:0x0023:0x20000000 quiet vt.global_cursor_default=0

fatload mmc ${mmc_bootdev} $kernel_addr_r zImage
fatload mmc ${mmc_bootdev} $fdt_addr_r sun8i-h3-orangepi-pc.dtb
bootz $kernel_addr_r - $fdt_addr_r


Y si consiguiéramos poner el mmc_bootdev = 0 de forma permanente, sería todo más rápido y limpio, ¿no lo crees?

No problem with you using Spanish, it works quite well with Google Translate. Unfortunately I don't speak Spanish at all :-( so I have to use English.

I agree, my method would be more aggressive and it would be better to make 'mmc_bootdev = 0' permanent. However I think that the 'mmc_boot_dev' variable is set by u-boot during booting. That will overwrite any change you make to it. But another way is to change 'bootcmd_mmc1':
=> printenv bootcmd_mmc1
bootcmd_mmc1=setenv devnum 1; run mmc_boot
=> setenv bootcmd_mmc1 "setenv devnum 0; run mmc_boot"
=> printenv bootcmd_mmc1                             
bootcmd_mmc1=setenv devnum 0; run mmc_boot
=> saveenv
Saving Environment to FAT... writing uboot.env
OK
=>

This is not overly aggressive, and if you want to restore the original settings you can always delete the uboot.env file

I'm still curious, which fba_libretro.so did you use?


Hola, finalmente he solucionado el arranque desde la SD permanente con los siguintes cambios en el env del UBOOT:
env set -f mmc_bootdev_custom 0
env set -f bootcmd_mmc_auto "if test ${mmc_bootdev_custom} -eq 1; then run bootcmd_mmc1; run bootcmd_mmc0; elif test ${mmc_bootdev_custom} -eq 0; then run bootcmd_mmc0; run bootcmd_mmc1; fi"
env set bootcmd_mmc0 "setenv devnum 0; setenv mmc_bootdev 0; run mmc_boot"
env set bootcmd_mmc1 "setenv devnum 1; setenv mmc_bootdev 1; run mmc_boot"
env save


Además, estos cambios permiten que, si no hay una SD presente (mmc0), el sistema arranque desde la MMC interna (mmc1) directamente. Posteriormente habría que añadir la posibilidad de hacer lo mismo con el puerto para no tener que estar con la SD y para los que no tengáis esta posibilidad, aunque supongo que el puerto USB será algo más lento.

El fba_libretro que utilizo es este:
https://www.mediafire.com/file/9fc2lemc5owo8og/fba_libretro.zip/file
@Kei_Dash

Increíble [flipa] vaya logro..! Felicitaciones. [plas] [plas] [plas] [plas] [plas] [plas] [plas] [plas] [plas] [plas] [plas] [plas] [plas] [plas] [plas] [plas] [plas] [plas]

Pregunta de profano: ¿Es posible, meter una tarjeta SD (con los datos adecuados) y que arranque con la modificación de ROMs que se pretenda sin hacer previamente nada? Muchas gracias.
miguelonic escribió:@Kei_Dash

Increíble [flipa] vaya logro..! Felicitaciones. [plas] [plas] [plas] [plas] [plas] [plas] [plas] [plas] [plas] [plas] [plas] [plas] [plas] [plas] [plas] [plas] [plas] [plas]

Pregunta de profano: ¿Es posible, meter una tarjeta SD (con los datos adecuados) y que arranque con la modificación de ROMs que se pretenda sin hacer previamente nada? Muchas gracias.


No, eso sería la leche!! desde el fronted de CAPCOM que se arranca, de momento, solo se pueden ejecutar las ROMS que vienen. Cualquier modificación en el archivo que controla esto games.txt hace que no arranque el frontend. Estamos ahora con ello... [beer]
@Kei_Dash
Claro, es lo que pensaba...
Espero que la próxima actualización, que debe ser inminente, abra más puertas a los especialistas como tú.
Entonces, la situación hasta ahora para cargar otra ROM solo sería posible conectando por UART a pc y posteriormente al proceso concreto, si sería posible cargar desde la sd. Mi placa también la trae.

De qué manera los de Koch podrían "filtrar" información :-?

Gracias por compartir, seguiremos atentos. [beer]
Kei_Dash escribió:
miguelonic escribió:@Kei_Dash

Increíble [flipa] vaya logro..! Felicitaciones. [plas] [plas] [plas] [plas] [plas] [plas] [plas] [plas] [plas] [plas] [plas] [plas] [plas] [plas] [plas] [plas] [plas] [plas]

Pregunta de profano: ¿Es posible, meter una tarjeta SD (con los datos adecuados) y que arranque con la modificación de ROMs que se pretenda sin hacer previamente nada? Muchas gracias.


No, eso sería la leche!! desde el fronted de CAPCOM que se arranca, de momento, solo se pueden ejecutar las ROMS que vienen. Cualquier modificación en el archivo que controla esto games.txt hace que no arranque el frontend. Estamos ahora con ello... [beer]


Siendo realistas,tu crees que llegareis a ese punto?
@fakemaria

Viendo los avances de los dos hilos y la cabezonería de algunos, seguro que sí. ;) Tiempo al tiempo.
Kei_Dash escribió:Hola, finalmente he solucionado el arranque desde la SD permanente con los siguintes cambios en el env del UBOOT:
env set -f mmc_bootdev_custom 0
env set -f bootcmd_mmc_auto "if test ${mmc_bootdev_custom} -eq 1; then run bootcmd_mmc1; run bootcmd_mmc0; elif test ${mmc_bootdev_custom} -eq 0; then run bootcmd_mmc0; run bootcmd_mmc1; fi"
env set bootcmd_mmc0 "setenv devnum 0; setenv mmc_bootdev 0; run mmc_boot"
env set bootcmd_mmc1 "setenv devnum 1; setenv mmc_bootdev 1; run mmc_boot"
env save


Además, estos cambios permiten que, si no hay una SD presente (mmc0), el sistema arranque desde la MMC interna (mmc1) directamente. Posteriormente habría que añadir la posibilidad de hacer lo mismo con el puerto para no tener que estar con la SD y para los que no tengáis esta posibilidad, aunque supongo que el puerto USB será algo más lento.


That is a nice change :-)

Kei_Dash escribió:El fba_libretro que utilizo es este:
https://www.mediafire.com/file/9fc2lemc5owo8og/fba_libretro.zip/file

Thanks. That one (when running games from the menu) also shows the 'machine' boot screens. But it is bigger than the one I found so probably supports even more games.

Pararegisters escribió:But with manual IP, someone could try to create an alternative update server with its own DNS (such as the case for Henkaku Enso and Wiihack) and it would be even better than having to change router DNS or creating a DNS server with BIND or similar software.

Ah yes, I understand now. Yes that would make it easier as well.

miguelonic escribió:(Translated from Spanish by Google, apologies if this isn't what you meant) So, the situation so far to load another ROM would only be possible connecting by UART to pc

If you load my fake firmware upgrade you should not need an UART, but can connect via ftp or ssh or scp to copy and change things. Or you could use the fake firmware method to create an 'asset.zip' that replaces the //usr//lib//libretro//fba_libretro.so, replaces the //opt//capcom//assets//games.txt and adds a new game and the neccesary pictures and music in //opt//capcom//assets as well.
Buenas.
Leo este hilo con mucho interés y hoy me registré para compartir unas ideas.

@Pararegistros , veo tanto entusiasmo con la actualización a 1.5 pero mi CHA se queda en v1.0 y nunca la conecte al wifi... lo que sé de otras consuelas es que las actualizaciones sirven para impedir el hack (me escuchas, Sony? :) )

@jj_0 muchas gracias por el guía para montar nuestro servidor y por el 'asset.zip'. Es la ayuda que yo necesitaba para hacer mis experimentos... y tengo una idea que quiero compartir:

Me parece que el limite de 16 juegos puede ser difícil de traspasar, si es definido por un array en el código del menú.
Yo creo que el mejor camino seria remplazar el menú de Capcom por RetroAch.
Hay un firmware llamado RetrOrangePi que incluye RetroArch y me pregunto si no seria posible meter este ejecutable de RetroARch en lugar del menú de Capcom.

Si remplazar el menú por el RetroArch y no funcione, el servidor de ftp o ssh quedarán funcionando? Puedo recuperar el menú por ftp?

* resumen en inglés *
I think that replacing the Capcom menu with RetroArch could be the best way to hack the CHA.
I found a firmware named RetrOrangePi that runs RetroArch, but I don't know how this works.
@jj_0 If I replace the Capcom menu and then CHA doesn't work, do you think that your ftp server (in asset.zip) will be working and allow me to restore the original menu?
@CHA_fan

No sabes lo equivocado que vas con ésto. Además que con la 1.0 tienes un input lag del demonio.

Y en principio, este SOC debería ejecutar hasta Android 7, por poder... Una vez flashees podrías hasta probar aFBA, MAME4Droid como en cualquier Android. El problema es que PIERDES LA UI que es lo que le da la gracia a esto. Para meter RA tienes una Pi y acabas antes.
Yo sé que Ben no quiere cerrar puertas, pero yo no sé si no lo forzam a eso y para jugar por seguro me quedé en la v1.0.

Para mantener el menú Capcom creo que habrá que modificar el ejecutable, ya sabemos que no basta editar la lista en txt. Si la intención era limitar a 16 juegos, habrá alguna constante o array declarando que solamente acepte 16 elementos (juegos).

Solamente por eso mi sugerencia de probar con retroarch. Yo no sé como hacer el debug del menú para estudiar como están declaradas las variables/constantes/listas lo que sea.
jj_0 escribió:If you load my fake firmware upgrade you should not need an UART, but can connect via ftp or ssh or scp to copy and change things. Or you could use the fake firmware method to create an 'asset.zip' that replaces the //usr//lib//libretro//fba_libretro.so, replaces the //opt//capcom//assets//games.txt and adds a new game and the neccesary pictures and music in //opt//capcom//assets as well.


Yes, that's what I wanted to say. Thank you very much for answering. I would like to test your method to access. Could you write some basic instructions from point number 1 to the ROM change point? If I understood correctly, it would be possible without connecting UART, using a method to trick cha by fake update. At this point it would be great for me to swap out some ROMs and be left with a personal selection of 16 games, something like: D&D Tod and SoM, King of Dragons, Knight of the Rounds, Cadillacs & Dinosaurs, The Punisher, Super Street Fighter II turbo , Street Fighter Alpha 3, SFIII, Mercs, Three wonders, Tiger Road and Black Tiger. In addition to those already included Final Fight, Ghouls'n Ghost and AvsP. Cheers!
[beer]
3031 respuestas