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

CHA_fan escribió: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.

Each to his own, I too think the 16-game limit is hardcoded with an array, at least when I decompiled 'capcom' in Ghidra the function that loaded 'games.txt' had two hardcoded arrays with 16 elements in it.

If you want to replace the firmware entirely with RetrOrangPi that seems to work at least to some extent:
  • Start the CHA in FEL mass storage mode and backup the entire eMMC
  • Download RetrOrangePi 4.2 SLIM for PC Plus 2e as the standard version is too big
  • Write the entire image to the CHA's eMMC
  • Eject the USB-drive and reboot the CHA again in FEL mass storage mode
  • In the //boot directory edit the boot-slim.cmd and change all references to 'mmc 0' to 'mmc 1' but keep //dev//mmcblk0p1 (u-boot assigns mmc 1 to the eMMC but the Linux kernel mmc 0)
  • Also in the boot directory run
    mkimage -C none -A arm -T script -d boot-slim.cmd boot.scr
  • Eject the USB-drive and reboot

For me I get the RetrOrangePi start screen where you can define the controllers, and it sees controllers CHA1 and CHA2. I haven't checked e.g. if WiFi works.

If you want to add the RetroOrangPi menu/interface to the CHA that's a big puzzle on what you need to copy and what not.
jj_0 escribió:(...)
If you want to replace the firmware entirely with RetrOrangPi (...)

That's not what I meant. I only suggested to replace the CHA launcher with the retroarch version used in RetrOrangPi.
I'm going to install your "fake update" and explore a little the system...

EDIT (no puedo puedo escribir otra mensaje en 5 dias :( )

jj_0 escribió:Each to his own, I too think the 16-game limit is hardcoded with an array, at least when I decompiled 'capcom' in Ghidra the function that loaded 'games.txt' had two hardcoded arrays with 16 elements in it.


I was looking into the "capcom" file (binary, not debuged) and this caught my attention:
...4Menu...............vector::_M_range_check: __n (which is %zu) >= this->size() (which is %zu)......assets/games.txt......


Maybe this is where the limit is enforced!

____
Amigos, si se abre el fichero "capcom" en un editor hexadecimal se puede leer lo que me parece ser la función que limita el número de juegos!
@CHA_fan

Escribo en inglés para que @jj_0 me entienda.

There is still something that puzzles me and its the real size of the emmc. Supposedly, this is a custom Orange Pi (stripped out of any unnecessary extras such as BT, USBs) and stock ones mount 512 MB Ram but 8 GB emmc. However, everytime I refer Ben this issue (hi, mate!), he claims that it's only 4 gigabits, that's to say, 512 emmc storage, but other people who have dumped the nand claim that it is 4 GB altogether, with a 512 MB partition (mmc0) and 3,5 left of unallocated space.

So, as far as I know, it's always more expensive for a manufacturer to make a custom smaller size storage unit rather than having a larger one and either cap it or leave it as it is, just partitioned, as every special order that departs from ordinary products turns out to be far more expensive. And he said that manufacturers had to enable special compatibility with smaller storage units. So, where those 3,5 GB in the board come from? All Capcom romset is 1,8 GB approximately so, it would be great that this 3,5 GB unallocated space really existed and that CFW could redirect to this instead of depending on a external USB or internal soldered SD Board. That's to say, if these 3.5 GB really exists and they are not a chimera.

And it's obvious that if I go to a computer shop and ask for a 32, 48 or 64 GB SSD unit (because a certain device can't handle more storage space) it would be much more expensive than ordinary 128, 256 mb ones as they are special size production unlike the common ones.

https://www.hardkernel.com/shop/8gb-emm ... -c2-linux/

Here a retail price is barely more than $12 for 8 Gb. It's really strange that in 2019 they used a emmc lower than 4 GB at least (stock Orange Pi is 8 GB).
No tengo el CHA, lo sigo por curiosear y no sé inglés, pero por mí no habría problema con que habléis en inglés, si es necesario. Lo importante digo yo que será abrir el boquete al cacharro. [carcajad]
@Pararegistros occams razor my friend. Its a CM,so its likely that he doesn't know anything about tech more than press two buttons and click.
@Pararegistros
I don't see it so strange. I think Ben had more ambitious plans for CHA but Capcom guys imposed very restrictive limits.The short partition space probably was just an attempt to limit the ability for anybody to add more games somehow. The 4GB emmc was imposed by the manufacturer because of stocks/costs.
@CHA_fan That's precisely what I was saying someone else, somewhere else at the same time. [qmparto]

It's amazing we were having the same thoughts at the same time. But was very obvious that form any manufacturer is cheaper to cap a standard larger product than making a smaller one anew. What takes me back to the point of the unnecessary partitioning of that standard size and all the unallocated space unless it was, again, forced by contract reasons.

@Fakemaria that one focuses more in a concrete aspect doesn't mean you can do other things. Look at weird gang working in some projects. : [+risas]
CAMPIRULO escribió:@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]


En @ jj, por favor traduzca esto al inglés. No estoy atrapado con un submarino aquí. Graciashttps://imgur.com/FdH9L5R
CHA_fan escribió:
jj_0 escribió:(...)
If you want to replace the firmware entirely with RetrOrangPi (...)

That's not what I meant. I only suggested to replace the CHA launcher with the retroarch version used in RetrOrangPi.
I'm going to install your "fake update" and explore a little the system...

Ok, well I think you can install RetroArch on the existing system as well, but you have to do it manually.

CHA_fan escribió:EDIT (no puedo puedo escribir otra mensaje en 5 dias :( )

jj_0 escribió:Each to his own, I too think the 16-game limit is hardcoded with an array, at least when I decompiled 'capcom' in Ghidra the function that loaded 'games.txt' had two hardcoded arrays with 16 elements in it.


I was looking into the "capcom" file (binary, not debuged) and this caught my attention:
...4Menu...............vector::_M_range_check: __n (which is %zu) >= this->size() (which is %zu)......assets/games.txt......


Maybe this is where the limit is enforced!

It could be. I loaded the 'capcom' binary in Ghidra (which is mostly out of my level of expertise) and the only function that uses 'games.txt' is:
void FUN_000391c8(int param_1)

{
  char cVar1;
  int iVar2;
  _Ios_Iostate _Var3;
  void *pvVar4;
  int *piVar5;
  uint uVar6;
  undefined4 *puVar7;
  int local_174;
  undefined *local_170;
  int local_16c;
  undefined local_168 [16];
  undefined *local_158 [2];
  undefined auStack336 [16];
  int local_140;
  undefined4 local_13c;
  undefined4 local_138;
  locale alStack284 [28];
  __basic_file<char> a_Stack256 [60];
  int *apiStack196 [5];
  undefined4 local_b0 [28];
  undefined4 local_40;
  undefined local_3c;
  undefined local_3b;
  undefined4 local_38;
  undefined4 local_34;
  undefined4 local_30;
  undefined4 local_2c;

  local_174 = 0;
  local_170 = local_168;
  local_16c = 0;
  local_168[0] = 0;
  ios_base((ios_base *)local_b0);
  local_3c = 0;
  local_40 = 0;
  local_3b = 0;
  local_38 = 0;
  local_34 = 0;
  local_30 = 0;
  local_2c = 0;
  local_140 = VTT._4_4_;
  local_b0[0] = 0x52c28;
  *(undefined4 *)((int)&local_140 + *(int *)(VTT._4_4_ + -0xc)) = VTT._8_4_;
  local_13c = 0;
  init((basic_streambuf *)((int)&local_140 + *(int *)(VTT._4_4_ + -0xc)));
  local_140 = 0x52d48;
  local_b0[0] = 0x52d5c;
  basic_filebuf();
  init((basic_streambuf *)local_b0);
  iVar2 = open((char *)(&local_140 + 2),(_Ios_Openmode)"assets/games.txt");
  _Var3 = (int)&local_140 + *(int *)(local_140 + -0xc);
  if (iVar2 == 0) {
    clear(_Var3);
  }
  else {
    clear(_Var3);
  }
  piVar5 = *(int **)((int)apiStack196 + *(int *)(local_140 + -0xc));
  while( true ) {
    if (piVar5 == (int *)0x0) {
      __throw_bad_cast();
      ~basic_ifstream((basic_ifstream<char,std--char_traits<char>> *)&local_140);
      if (local_170 != local_168) {
        operator.delete(local_170);
      }
                    /* WARNING: Subroutine does not return */
      __cxa_end_cleanup();
    }
    if (*(char *)(piVar5 + 7) == '\0') {
      _M_widen_init();
      if (*(code **)(*piVar5 + 0x18) == do_widen) {
        cVar1 = '\n';
      }
      else {
        cVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,10);
      }
    }
    else {
      cVar1 = *(char *)((int)piVar5 + 0x27);
    }
    piVar5 = (int *)getline<char,std--char_traits<char>,std--allocator<char>>
                              ((basic_istream *)&local_140,(basic_string *)&local_170,cVar1);
    if ((*(uint *)((int)piVar5 + *(int *)(*piVar5 + -0xc) + 0x14) & 5) != 0) break;
    local_158[0] = auStack336;
    FUN_00038e14(local_158,local_170,local_170 + local_16c);
    pvVar4 = operator.new(0x84);
    FUN_00033280(pvVar4,local_158);
    *(void **)(param_1 + (local_174 + 2) * 4) = pvVar4;
    if (local_158[0] != auStack336) {
      operator.delete(local_158[0]);
    }
    piVar5 = *(int **)(param_1 + 0x4c);
    if (piVar5 == *(int **)(param_1 + 0x50)) {
      FUN_0003a1c4(param_1 + 0x48,piVar5,&local_174);
    }
    else {
      if (piVar5 != (int *)0x0) {
        *piVar5 = local_174;
      }
      *(int **)(param_1 + 0x4c) = piVar5 + 1;
    }
    local_174 = local_174 + 1;
    piVar5 = *(int **)((int)apiStack196 + *(int *)(local_140 + -0xc));
  }
  iVar2 = close();
  if (iVar2 == 0) {
    clear((int)&local_140 + *(int *)(local_140 + -0xc));
  }
  *(int *)(param_1 + 4) = local_174 + -1;
  if (local_174 + -1 != 0) {
    puVar7 = (undefined4 *)(param_1 + 4);
    uVar6 = 0;
    do {
      puVar7 = puVar7 + 1;
      FUN_000331ac(*puVar7);
      uVar6 = uVar6 + 1;
    } while (uVar6 < *(uint *)(param_1 + 4));
  }
  FUN_000349f4(local_158,DAT_0005368c);
  FUN_0003908c(param_1,local_158);
  if (local_158[0] != auStack336) {
    operator.delete(local_158[0]);
  }
  local_b0[0] = 0x52d5c;
  local_138 = 0x52de4;
  local_140 = 0x52d48;
  close();
  ~__basic_file(a_Stack256);
  local_138 = 0x52c88;
  ~locale(alStack284);
  local_140 = VTT._4_4_;
  *(undefined4 *)((int)&local_140 + *(int *)(VTT._4_4_ + -0xc)) = VTT._8_4_;
  local_b0[0] = 0x52c28;
  local_13c = 0;
  ~ios_base((ios_base *)local_b0);
  if (local_170 != local_168) {
    operator.delete(local_170);
  }
  return;
}

I don't understand most of this, but there are two arrays with a hardcoded length of 16 members:
  undefined local_168 [16];
  undefined auStack336 [16];

So I fear it is a hardcoded limit. But then again I thought the same of the The64Mini/Maxi binary supporting 150 games and that turned out to be wrong ;-) and someone found a way to change it to support up to 255 by just changing a single byte.

@Pararegistros I think they used a OrangePi PC (which has no eMMC) or PC Plus 2e (which has eMMC) as development board, but then designed their own PCB together with the guys from The64 to fit both CHA and The64 cases and minimise the unnecessary components. And as it is quite easy to use either eMMC or NAND in a production run (they use the same area/connectors on the board) one of them uses eMMC and the other NAND. But what I don't understand (like you) is why they put on 4GB of eMMC and only use ~512MB. This must be for future developments or maybe the cheapest eMMC they could get?

@miguelonic To change games on the CHA:
  • First setup things so you can do the fake upgrade as per the instructions here
  • Then, when you have this confirmed running you can use an FTP program or SCP to copy files to/from the CHA. You can also use an SSH program to log in remotely. If you use Linux these tools are normally installed already, if you use Windows then I 'd suggest using Putty for SSH. I don't use Windows but for FTP there's e.g. Filezilla and for SCP WinSCP.
  • The important directories are:
    • //opt//capcom/assets:
      /opt
      └── capcom
          └── assets        -> location of gamest.txt
              ├── games     -> location of <gamename>.png menu screens
              └── sounds    -> location of <gamename>.ogg game menu music
    • //usr//share//roms, this is where the game zipfiles are
    • //lib//libretro, this is the location of 'fba_libretro.so' which is basically the core of the emulator
  • The key file to edit is the '//opt/capcom//assets//games.txt' file. The format is self-explanatory, just one row per game that defines what picture, game zipfile, music, etc is to be used. To start, you can just only add a game zipfile to the roms folder and change only the zipfile name in one of the predefined games in games.txt
@jj_0

So it is confirmed that there are 4 GBYTES of physichal memory, partitioned and 512 MB/4Gbits used, leaving 3.5 GB unallocated, right?
The most feasible answer is what I said before: current standard sizes are much cheaper than old custom size standards, and by contract Koch might have been forced just to use those 512 mb alone just to prevent hacking attempts, which is ridiculous on the part of Capcom as, once accessed the nand and dumped, you theoretically could wipe out the entire partition structure and reinstall again.

And for the 16 games limitation override: we have certain advantage: WE KNOW IT CAN BE DONE, AS IT HAS ALREADY BEEN DONE. It is not a matter of WHETHER IT CAN BE DONE BUT HOW HAS IT BEEN DONE. So the goal must be clear. Regarding pre-cps games perhaps emulator cores should be added too.

Oh, yes. And their image has ICONS/SCREENSHOTS AND OGG music.
Pararegistros escribió:@jj_0

So it is confirmed that there are 4 GBYTES of physichal memory, partitioned and 512 MB/4Gbits used, leaving 3.5 GB unallocated, right?
The most feasible answer is what I said before: current standard sizes are much cheaper than old custom size standards, and by contract Koch might have been forced just to use those 512 mb alone just to prevent hacking attempts, which is ridiculous on the part of Capcom as, once accessed the nand and dumped, you theoretically could wipe out the entire partition structure and reinstall again.

And for the 16 games limitation override: we have certain advantage: WE KNOW IT CAN BE DONE, AS IT HAS ALREADY BEEN DONE. It is not a matter of WHETHER IT CAN BE DONE BUT HOW HAS IT BEEN DONE. So the goal must be clear. Regarding pre-cps games perhaps emulator cores should be added too.

Oh, yes. And their image has ICONS/SCREENSHOTS AND OGG music.


Yes, the eMMC is 4GB. On mine it's a Kingston EMMC04G-M627

When you say that it can be done, who has done it? Other than Koch of course, for them it's easy because they have the source ;-)

@miguelonic You're welcome :-) Don't forget to make a backup first!
@jj_0

OK thanks. Excuse me, did you post how to do it?

EDITO:
@Pararegistros
Has leído lo que ha comentado Ben sobre el tema que comentas de la memoria de 4 GB? Le hice referencia a que hay usuarios que han llegado a descubrir ese dato y contestó esto:

I heard about this 4GB claim. I cant believe it. I have tried inserting a 2GB IMG onto emmc and it won't fit, maximum is about 470MB as capacity is 512MB

It possible I guess that different chips were used, but seems unlikely.

In some ways I regret instructing such high levels of protection against modding and side loading, considering the ease of doing it on other high profile mini consoles. It actually annoys me.

I have my own personal build of all CPS games on my CHA and it's a glorious catalogue and plays so well. Nothing beats plug and play Capcom arcade games with Sanwa sticks and buttons.

I'd be lying if I didn't want everyone to enjoy that entire catalogue.
miguelonic escribió:@jj_0

OK thanks. Excuse me, did you post how to do it?

EDITO:
@Pararegistros
Has leído lo que ha comentado Ben sobre el tema que comentas de la memoria de 4 GB? Le hice referencia a que hay usuarios que han llegado a descubrir ese dato y contestó esto:

I heard about this 4GB claim. I cant believe it. I have tried inserting a 2GB IMG onto emmc and it won't fit, maximum is about 470MB as capacity is 512MB

It possible I guess that different chips were used, but seems unlikely.

In some ways I regret instructing such high levels of protection against modding and side loading, considering the ease of doing it on other high profile mini consoles. It actually annoys me.

I have my own personal build of all CPS games on my CHA and it's a glorious catalogue and plays so well. Nothing beats plug and play Capcom arcade games with Sanwa sticks and buttons.

I'd be lying if I didn't want everyone to enjoy that entire catalogue.



Acerca de este punto:
I heard about this 4GB claim. I cant believe it. I have tried inserting a 2GB IMG onto emmc and it won't fit, maximum is about 470MB as capacity is 512MB


Si vuelca la imagen de una partición > 512MB no va a entrar ya que la segunda partición del internal eMMC es de 512MB.
Antes de hacer esto hay que expandir la partición (ext2fs) hasta los 3,5GB o volver a hacerla con 3,5GB de capacidad y entonces volcar sobre ella la imagen y entrará.

Si lo que tiene es una imagen de disco completa (2 particiones y tabla de particiones) sí que podría hacerlo pero dudo que sea el caso ya que por lo que he visto comentado en algunos scripts del CHA han trabajado con imágenes de particiones NO de disco completo.

Me parece raro que trabajen con 2 modelos de chips distintos: 512MB y 4GB, además no serían de 512MB (que es el estandar) ya que habría que sumar los 10MB de la partición de arranque y sería ya de 1GB. Estoy más en que no ha volcado bien la imagen o no ha expandido la partición antes.
[beer]
@miguelonic

I've been talking to Ben. I assume that from manufacturer they told him to format 512 Mb and that's all, so all this monumental cock-up between the 4 Gb and 4 GB in which all parts were right eventually.
The physical emmc is 4GB but manufacturer told the dev to prepare the 512 MB partition, leaving all unallocated.
So it was a bit of a surprise for them too.

@Kei_Dash niño lee el Telegram. XD
@Pararegistros
Es lo que pensaba...

Por cierto, te ha dado por realizar el método de la falsa actualización para cambiar alguna rom..?
Estuvo todo el dia tentando y no lo conseguí...
Detecta mi nueva versión, 1.4.0.1 pero al pulsar install se ve que intenta y un segundo después regresa el mismo mensaje de que hay una actualización e no salgo de esto.
Ya he hecho reset, cambiado de servidor... no sé que se pasa.
Estoy en la versión 1.0 y my asset.zip tiene los ficheros de @jj_0 con los originales de Capcom.
@CHA_fan

Puede ser que el proceso que ha realizado @jj_0 lo ha hecho en una CHA actualizada previamente por wifi a 1.4 y en tu caso no es así. Debido a que existe la opción de restablecer la consola al estado de fábrica, lo suyo sería probar a meterle la actualización oficial y después realizar el método de @jj_0 a ver qué pasa.
CHA_fan escribió:Estuvo todo el dia tentando y no lo conseguí...
Detecta mi nueva versión, 1.4.0.1 pero al pulsar install se ve que intenta y un segundo después regresa el mismo mensaje de que hay una actualización e no salgo de esto.
Ya he hecho reset, cambiado de servidor... no sé que se pasa.
Estoy en la versión 1.0 y my asset.zip tiene los ficheros de @jj_0 con los originales de Capcom.


I edited the post on how to fake update yesterday, you might have missed the updated version? I had the same issue as you with the latest (1.4) version and discovered that after downloading the new 'capcom' (as 'capcom.new') it looks like the CHA does another md5sum hash check and if the old and new version have the same hash it doesn't proceed with the update. So you have to ensure even if you are at the latest version version your 1.4.0.1 'capcom' is slightly different that the real latest version. Details are in the updated post.


@miguelonic Basic instructions of how to back up the eMMC:
  • Option 1:
    • Download the software from here but replace the file 'h3//zImage' with this one. On your PC go to the directory where you have downloaded the software
    • Open up the CHA, keep the tiny button that is to the left of the antenna connector pressed and connect the Type-A USB port (the large one) to your PC with a Type-A to Type-A USB cable to provide the CHA with power. Even better is to use a powered USB HUB that has on/off switches per USB port, to ensure the CHA gets enough power and you can easily switch it on/off
    • Then run the 'start.bat' (Windows) or 'start.sh' (Linux) for the directory you're in
    • Now the CHA's eMMC should appear to your PC as if it is an USB-drive, with two partitions appearing
    • Back up this entire USB-drive, in Windows with e.g. Win32DiskImager or in Linux with the 'Disks' command or 'dd if=/dev/sd<x> of=CHA-backup.img' where <x> is the letter assigned to the USB-disk device
    This is the cleanest way to make backup, but you need to open the CHA
  • Option 2:
    • Open up the CHA, add a USB2SERIAL UART converter, reset root password, log in as root (described elsewhere in the thread)
    • Insert a >=4GB formatted USB-drive and mount it with 'mount /dev/sda1 /mnt'
    • Ensure you are at the UI and not playing a game ;-)
    • Kill the UI then back up the eMMC: 'killall capcom;dd if=/dev/mmcblk1 of=/mnt/CHA-eMMC.img'
    • After it's finished: 'poweroff'
    This is also fairly clean, the only difference is that the root password is no longer the original one. But that shouldn't matter. And you need to open the CHA
  • Option 3:
    • ssh in as root and to the same as with Option 2
    This is less clean as then you have already made changes with installing the SSH and FTP servers
@jj_0

In my Reddit post at CHA, "Weird, weird" you can see as I powered and played perfectly for a while using the Type A male plugged to a USB laptop output, so those are 5 stable volts.

It may suffice by itself alone.
Pararegistros escribió:@jj_0

In my Reddit post at CHA, "Weird, weird" you can see as I powered and played perfectly for a while using the Type A male plugged to a USB laptop output, so those are 5 stable volts.

It may suffice by itself alone.

Yes, it may be. But with the TheC64 Maxi I've noted NAND read errors when just powering from my PC. Now eMMC uses les power than NAND so maybe I'm too cautious.
@jj_0

Thank you very much sir.

I am sure that these instructions that you have published here can be used by more people and maybe there will be contributions to find more keys. We remain in high anticipation to get to what we all want ... the Capcom catalog on our fucking logo replicas. [qmparto]

All the best and many thanks again. [tadoramo]
@jj_0
I saw that, I just assumed that 'capcom' would already be different since I was on v1.0 but it seems that I was wrong. When I changed it the update went fast and rebooted BUT... after reboot shows v1.4 instead of v1.0.1 (my fake update) with the information that there is a new version v1.0.1 to download.

Unfortunately I had no time to proceed investigations and now I'm here dying to check if I can connect with ssh/ftp or if somehow the real v1.4 was installed. If not, why does it says it is v1.4? Arrrrg...

Another question: your "option 1" method works to restore the image to the CHA?


@miguelonic
Atención que el la opción de restablecer el estado de fábrica no repone la v1.0! Lo hice inmediatamente a la actualización cuando vi que ponia v1.4 ni siquiera olvidó la existencia de mi falsa actualización v1.0.1!

Por último, veo que http://cha.tbbrds.com no está accesible... estarán lanzando la v1.5 o notaran algo raro en los downloads e lo bloquearan? :)
Vaya! Daba por hecho que un reset factory devolvería la versión. Eso es un fallo desde mi punto de vista. Para asegurarte de si ha cambiado definitivamente, podrías comprobar en las opciones de imagen, si no me equivoco, cambiaba cuando se actualizaba.
@Miguelonic Los reset de fábrica SUELEN SER PARA BORRAR PÁRAMETROS Y CONFIGURACIONES actuales, y muy rara vez, vas a ver un firmware rollback. En la CHA hicieron uno de la 1.41 la 1.40 que llegué a probar antes de que la retiraran. Simplemente era un tema de los Hi-Scores del SPF2 y no llegó a corregirse bien. Curiosamente, se me quedó menos sensible el menú y no me saltaban los juegos de dos en dos con el scroll.

@jj_0 Have you tried installing and Android on it?

https://www.computersdealstore.com/down ... winner-h3/
@jj_0
I'm in! I'm in! I have SSH connection to the CHA and could login as 'root' [beer]
I have some details to add but will write in Spanish for other to follow.

El sistema de actualización funcionó! Me conecté por ssh con login 'root' y pudo listar todo el sistema! [beer]

Ahora unos detalles.
Como yo tenía la v1.0 utilicé el 'capcom' sin modificarlo porque tenía que ser diferente del mío, pero no sé porqué no funcionó. Mi "actualización personalizada" solo resultó con un 'capcom' modificado (y md5 distinto del original 1.4)

Mi CHA ahora dice estar con la v1.4 pero los ficheros de 'asset.zip' originales no existen en mi CHA, concretamente "hiscore.dat" y "ca-certificates".

Ahora ya puedo mirar el "interior" de mi CHA a ver si descubro algo más :)
Pararegistros escribió:@Miguelonic Los reset de fábrica SUELEN SER PARA BORRAR PÁRAMETROS Y CONFIGURACIONES actuales, y muy rara vez, vas a ver un firmware rollback.

Joder es verdad y lo peor es que lo sabía [facepalm] no sé en qué coño pensaba...
Pido disculpas, y en particular a @CHA_fan, por cierto, felicitaciones..! [plas] [plas] [plas] [plas] [plas] Lo has logrado, esperamos nuevas y buenas noticias [beer]
CHA_fan escribió:@jj_0
I'm in! I'm in! I have SSH connection to the CHA and could login as 'root' [beer]
I have some details to add but will write in Spanish for other to follow.


Cool! Glad it worked OK for you as it proves it's not just me :-)

It probably says 1.4 because that's hardcoded in the 'capcom' binary.

Oh, and yes 'Option 1' is also an easy way to write a backup of the eMMC back, just do the reverse of course, using the backup as input and the fake CHA USB-drive as output.


@Pararegistros I trust that Android will work as well, I might try it later
@fakemaria

¿Ya lo quieres, perraco? ;) Te dije que iba a ser buena semana en ambas. [qmparto]
Pararegistros escribió:@fakemaria

¿Ya lo quieres, perraco? ;) Te dije que iba a ser buena semana en ambas. [qmparto]


Si lo pillo a buen precio seguro!
@jj_0
I did the option 3 "ssh in as root and do the same as with Option 2" but the CHA rebooted and the file "CHA-eMMC.img" only has 232 MB... shouldn't it be around 512 MB?

EDIT:
After trying 3 times I got a 830 MB img that gives no error opening with 7zip... maybe it's good now.

Also I managed to fully restore v1.0 from 'capcom.old' and 'updater.old'.
Now I wonder if ssh and ftp servers survive a "system reset" from the menu... :)
Me los quedo porque los voy a cambiar por otros nuevos cuando abran el p. Mediamarkt, o sino tendré que actuar desde el lado más oscuro
Chicos , donde compráis/compraríais el lector de tarjetas para soldarlo y poder cacharrear con esto ?
Si no entendí mal en su momento solo es necesario el componente y soldar no?
Algún modelo en especial? He estado mirando y hay distintos tipos...

Thanks
CHA_fan escribió:@jj_0
I did the option 3 "ssh in as root and do the same as with Option 2" but the CHA rebooted and the file "CHA-eMMC.img" only has 232 MB... shouldn't it be around 512 MB?

EDIT:
After trying 3 times I got a 830 MB img that gives no error opening with 7zip... maybe it's good now.

Also I managed to fully restore v1.0 from 'capcom.old' and 'updater.old'.
Now I wonder if ssh and ftp servers survive a "system reset" from the menu... :)

Apologies, I didn't try out Option 2/3 beforehand.

I get the same result as you, it is probably lack of memory as if I inspect the kernel log during the copy I see stuff like:
Jan  1 00:15:55 Retro user.warn kernel: [  811.987163] capcom: page allocation failure: order:0, mode:0x4(GFP_DMA32), nodemask=(null)

And similar errors & panics and then the reboot occurs. The solution is to stop 'capcom' first:
# killall capcom


Now also tested Option 3 (FTP) which fails miserably because /dev/mmcblk1 is not a 'regular file'

I've amended the earlier post and feel embarrased [decaio]
AES escribió:Me los quedo porque los voy a cambiar por otros nuevos cuando abran el p. Mediamarkt, o sino tendré que actuar desde el lado más oscuro


Si te apetece venderme uno dímelo
@jj_0

Good afternoon.
What he has done has been helping the community and if there were mistakes, it is logical, it can happen to anyone, here there is no guarantee that everything is fine, the only thing we can do is thank him for the effort and progress that has been achieved. hopefully soon you will discover more, much encouragement. Thanks again and all the best.

[plas] [plas] [plas] [plas] [plas] [plas]

@HauryasuMifune
No sabría decirte, ya que mi placa trae el slot, quizá sería recomendable que preguntes en el hilo de reedit, allí puede que incluso el CM te diga cuál exactamente, incluso le puedes mandar un MP, se muestra muy activo para ayudar.

@CHA_fan

Felicitaciones, esperamos nos cuentes tu progreso, gracias. [beer]
jj_0 escribió:I've amended the earlier post and feel embarrased [decaio]

Don't be, I am learning a lot.
I now have a img with 3.55 GB so it should be good.
Thanks @miguelonic, @CHA_fan and also @Pararegistros for your suppport [beer]

Here's something new, a nice clunky way to get around the '16 games only' issue. Rename it to 'asset.zip' and use it in a fake firmware upgrade. Then when the CHA has rebooted if you press Player 1 'Insert Coin'+'Start'+'Upper Left'+'Upper Middle' buttons and hold them until the screen turns black, the UI will reload with a different 'games.txt'. It will rotate over consecutive 'games-1.txt', ' games-2.txt', ' games-4.txt' etc etc. To demonstrate this the version I created has a 'games-2.txt' added that has just 'Ghouls'n Ghosts' as second menu. But of course if you change my version and add the necessary game files you can add new games as well. The required directories are included already, including the one for the updated 'fba_libretro.so' to support more games that you have to add as well:
├── etc
│   └── init.d
│       └── S22swap-games-txt          -> Startup script for the mod
├── opt
│   ├── capcom[url=https://www.mediafire.com/file/9fc2lemc5owo8og/fba_libretro.zip/file]fba_libretro.so[/url]
│   │   └── assets
│   │       ├── games                  -> Directory for game UI screens (png)
│   │       ├── games-2.txt            -> Default 2nd game list
│   │       └── sounds                 -> Directory for game UI music (ogg)
│   └── mod-jj_0
│       └── swap-games-txt.sh          -> Script that runs in the background waiting for the '4-button press'
├── sbin
│   └── evtest                         -> Utility the reports Joystick button state
└── usr
    ├── lib
    │   └── libretro
    │       └── ...........            -> Copy the fba_libretro.so that supports more games here
    └── share
        └── roms                       -> Directory for game roms (zip)


The script itself is as follows:
#!/bin/sh

if [ ! -e /opt/capcom/assets/games-1.txt ]
then
   echo "Copying /opt/capcom/assets/games.txt to /opt/capcom/assets/games-1.txt"
fi

if [ "x$1" = "x" ]
then
   GAMES_NEXT=2
else
   GAMES_NEXT=$1
fi

if [ ! -e /opt/capcom/assets/games-$GAMES_NEXT.txt ]
then
   echo "/opt/capcom/assets/games-$GAMES_NEXT.txt doesn't exist. Quitting."
else
   while true
   do
      CHA1_IC=0
      CHA1_ST=0
      CHA2_IC=0
      CHA2_ST=0


# Wait for Player 1 'Insert Coin'+'Start'+'Upper Left'+'Upper Middle' buttons are all pressed
      until [ "$CHA1_IC$CHA1_ST$CHA2_IC$CHA2_ST" = "10101010" ]
      do
         evtest --query /dev/input/event2 EV_KEY BTN_BASE2
         CHA1_IC=$?
         evtest --query /dev/input/event2 EV_KEY BTN_BASE
         CHA1_ST=$?
         evtest --query /dev/input/event3 EV_KEY BTN_TRIGGER
         CHA2_IC=$?
         evtest --query /dev/input/event3 EV_KEY BTN_THUMB
         CHA2_ST=$?
         echo "$CHA1_IC$CHA1_ST$CHA2_IC$CHA2_ST"
      done

      until [ `ps | grep -e capcom -e retro | wc -l` -eq 1 ]
      do
         killall capcom
         killall retroarch
      done
      cp /opt/capcom/assets/games-$GAMES_NEXT.txt /opt/capcom/assets/games.txt
      echo "Changed to games-$GAMES_NEXT.txt"

# Wait for Player 1 'Insert Coin'+'Start'+'Upper Left'+'Upper Middle' buttons are no longer all pressed
      while [ "$CHA1_IC$CHA1_ST$CHA2_IC$CHA2_ST" = "10101010" ]
      do
         evtest --query /dev/input/event2 EV_KEY BTN_BASE2
         CHA1_IC=$?
         evtest --query /dev/input/event2 EV_KEY BTN_BASE
         CHA1_ST=$?
         evtest --query /dev/input/event3 EV_KEY BTN_TRIGGER
         CHA2_IC=$?
         evtest --query /dev/input/event3 EV_KEY BTN_THUMB
         CHA2_ST=$?
      done

      cd /opt/capcom
      /opt/capcom/capcom &

      GAMES_NEXT=$(($GAMES_NEXT + 1))
      if [ ! -e /opt/capcom/assets/games-$GAMES_NEXT.txt ]
      then
         GAMES_NEXT=1
      fi
   done
fi


I hope this will do until someone figures out how to hack the 'capcom' binary to support an endless number of games! [carcajad]

Anybody, feel free to modify this and republish.

As always, use at your own risk, ensure you have a backup before you apply this.
@jj_0 It could be a solution... IF YOU DON'T HAVE A Bluetooth PC. [carcajad]

That's the exact combination to enable BT or CHA mode.
jj_0 escribió:Thanks @miguelonic, @CHA_fan and also @Pararegistros for your suppport [beer]

Here's something new, a nice clunky way to get around the '16 games only' issue. Rename it to 'asset.zip' and use it in a fake firmware upgrade. Then when the CHA has rebooted if you press both Player 1 and Player 2 'Insert Coin' and 'Start' buttons and hold them until the screen turns black, the UI will reload with a different 'games.txt'. It will rotate over consecutive 'games-1.txt', ' games-2.txt', ' games-4.txt' etc etc. To demonstrate this the version I created has a 'games-2.txt' added that has just 'Ghouls'n Ghosts' as second menu. But of course if you change my version and add the necessary game files you can add new games as well. The required directories are included already, including the one for the updated 'fba_libretro.so' to support more games that you have to add as well:
├── etc
│   └── init.d
│       └── S22swap-games-txt          -> Startup script for the mod
├── opt
│   ├── capcom[url=https://www.mediafire.com/file/9fc2lemc5owo8og/fba_libretro.zip/file]fba_libretro.so[/url]
│   │   └── assets
│   │       ├── games                  -> Directory for game UI screens (png)
│   │       ├── games-2.txt            -> Default 2nd game list
│   │       └── sounds                 -> Directory for game UI music (ogg)
│   └── mod-jj_0
│       └── swap-games-txt.sh          -> Script that runs in the background waiting for the '4-button press'
├── sbin
│   └── evtest                         -> Utility the reports Joystick button state
└── usr
    ├── lib
    │   └── libretro
    │       └── ...........            -> Copy the fba_libretro.so that supports more games here
    └── share
        └── roms                       -> Directory for game roms (zip)


The script itself is as follows:
#!/bin/sh

if [ ! -e /opt/capcom/assets/games-1.txt ]
then
   echo "Copying /opt/capcom/assets/games.txt to /opt/capcom/assets/games-1.txt"
fi

if [ "x$1" = "x" ]
then
   GAMES_NEXT=2
else
   GAMES_NEXT=$1
fi

if [ ! -e /opt/capcom/assets/games-$GAMES_NEXT.txt ]
then
   echo "/opt/capcom/assets/games-$GAMES_NEXT.txt doesn't exist. Quitting."
else
   while true
   do
      CHA1_IC=0
      CHA1_ST=0
      CHA2_IC=0
      CHA2_ST=0


# Wait for Player 1 and Player 2 'Insert Coin' and 'Start' buttons are all pressed
      until [ "$CHA1_IC$CHA1_ST$CHA2_IC$CHA2_ST" = "10101010" ]
      do
         evtest --query /dev/input/event2 EV_KEY BTN_BASE2
         CHA1_IC=$?
         evtest --query /dev/input/event2 EV_KEY BTN_BASE
         CHA1_ST=$?
         evtest --query /dev/input/event3 EV_KEY BTN_BASE2
         CHA2_IC=$?
         evtest --query /dev/input/event3 EV_KEY BTN_BASE
         CHA2_ST=$?
         echo "$CHA1_IC$CHA1_ST$CHA2_IC$CHA2_ST"
      done

      until [ `ps | grep -e capcom -e retro | wc -l` -eq 1 ]
      do
         killall capcom
         killall retroarch
      done
      cp /opt/capcom/assets/games-$GAMES_NEXT.txt /opt/capcom/assets/games.txt
      echo "Changed to games-$GAMES_NEXT.txt"

# Wait for Player 1 and Player 2 'Insert Coin' and 'Start' buttons are no longer all pressed
      while [ "$CHA1_IC$CHA1_ST$CHA2_IC$CHA2_ST" = "10101010" ]
      do
         evtest --query /dev/input/event2 EV_KEY BTN_BASE2
         CHA1_IC=$?
         evtest --query /dev/input/event2 EV_KEY BTN_BASE
         CHA1_ST=$?
         evtest --query /dev/input/event3 EV_KEY BTN_BASE2
         CHA2_IC=$?
         evtest --query /dev/input/event3 EV_KEY BTN_BASE
         CHA2_ST=$?
      done

      cd /opt/capcom
      /opt/capcom/capcom &

      GAMES_NEXT=$(($GAMES_NEXT + 1))
      if [ ! -e /opt/capcom/assets/games-$GAMES_NEXT.txt ]
      then
         GAMES_NEXT=1
      fi
   done
fi


I hope this will do until someone figures out how to hack the 'capcom' binary to support an endless number of games! [carcajad]

Anybody, feel free to modify this and republish.

As always, use at your own risk, ensure you have a backup before you apply this.


Great! [plas] [plas] [plas] [plas] [plas] [plas] [plas] [plas]
I’m a bit lost . Is this method through usb / sd card or uart? @jj_0
Pararegistros escribió:@jj_0 It could be a solution... IF YOU DON'T HAVE A Bluetooth PC. [carcajad]

That's the exact combination to enable BT or CHA mode.

Oops. Well you know, those BT cards are not actually for sale yet, only the elite few have them ;-)
Does the button combination for the BT card work at any time or just at boot time?

(edit) Button combination now changed to Player 1 'Insert Coin'+'Start'+'Upper Left'+'Upper Middle', post updated.

@HauryasuMifune It's for the fake firmware update method as linked in the post. But you can also download the file, put it on a USB-drive and unzip it on the CHA itself.
jj_0 escribió:
Pararegistros escribió:@jj_0 It could be a solution... IF YOU DON'T HAVE A Bluetooth PC. [carcajad]

That's the exact combination to enable BT or CHA mode.

Oops. Well you know, those BT cards are not actually for sale yet, only the elite few have them ;-)
Does the button combination for the BT card work at any time or just at boot time?

@HauryasuMifune It's for the fake firmware update method as linked in the post. But you can also download the file, put it on a USB-drive and unzip it on the CHA itself.


The BT PCB cards will be available by the end of this week , and there will be enough for all of us.
jj_0 escribió:
Pararegistros escribió:@jj_0 It could be a solution... IF YOU DON'T HAVE A Bluetooth PC. [carcajad]

That's the exact combination to enable BT or CHA mode.

Oops. Well you know, those BT cards are not actually for sale yet, only the elite few have them ;-)
Does the button combination for the BT card work at any time or just at boot time?

(edit) Button combination now changed to Player 1 'Insert Coin'+'Start'+'Upper Left'+'Upper Middle', post updated.

@HauryasuMifune It's for the fake firmware update method as linked in the post. But you can also download the file, put it on a USB-drive and unzip it on the CHA itself.



BT switch works once CHA is booted, not during boot, but boot is instantaneous when BT PCB is installed. So as to say, "once BT is installed, once you plug the power cord, the led goes red inmediatelly without having to press the power button".

EDIT: I forgot. Remember there are two BT models available (PC-Swtich & PS4) and we don't know what the button combination will be after all. I guess it is the same but who knows. PC-Switch version PAIRS with PS4 but Chinese manufacturer capped it to sell PS4 versions too. [enfado1]
jj_0 escribió:Thanks @miguelonic, @CHA_fan and also @Pararegistros for your suppport [beer]

Here's something new, a nice clunky way to get around the '16 games only' issue. Rename it to 'asset.zip' and use it in a fake firmware upgrade. Then when the CHA has rebooted if you press Player 1 'Insert Coin'+'Start'+'Upper Left'+'Upper Middle' buttons and hold them until the screen turns black, the UI will reload with a different 'games.txt'. It will rotate over consecutive 'games-1.txt', ' games-2.txt', ' games-4.txt' etc etc. To demonstrate this the version I created has a 'games-2.txt' added that has just 'Ghouls'n Ghosts' as second menu. But of course if you change my version and add the necessary game files you can add new games as well. The required directories are included already, including the one for the updated 'fba_libretro.so' to support more games that you have to add as well:
├── etc
│   └── init.d
│       └── S22swap-games-txt          -> Startup script for the mod
├── opt
│   ├── capcom[url=https://www.mediafire.com/file/9fc2lemc5owo8og/fba_libretro.zip/file]fba_libretro.so[/url]
│   │   └── assets
│   │       ├── games                  -> Directory for game UI screens (png)
│   │       ├── games-2.txt            -> Default 2nd game list
│   │       └── sounds                 -> Directory for game UI music (ogg)
│   └── mod-jj_0
│       └── swap-games-txt.sh          -> Script that runs in the background waiting for the '4-button press'
├── sbin
│   └── evtest                         -> Utility the reports Joystick button state
└── usr
    ├── lib
    │   └── libretro
    │       └── ...........            -> Copy the fba_libretro.so that supports more games here
    └── share
        └── roms                       -> Directory for game roms (zip)


The script itself is as follows:
#!/bin/sh

if [ ! -e /opt/capcom/assets/games-1.txt ]
then
   echo "Copying /opt/capcom/assets/games.txt to /opt/capcom/assets/games-1.txt"
fi

if [ "x$1" = "x" ]
then
   GAMES_NEXT=2
else
   GAMES_NEXT=$1
fi

if [ ! -e /opt/capcom/assets/games-$GAMES_NEXT.txt ]
then
   echo "/opt/capcom/assets/games-$GAMES_NEXT.txt doesn't exist. Quitting."
else
   while true
   do
      CHA1_IC=0
      CHA1_ST=0
      CHA2_IC=0
      CHA2_ST=0


# Wait for Player 1 'Insert Coin'+'Start'+'Upper Left'+'Upper Middle' buttons are all pressed
      until [ "$CHA1_IC$CHA1_ST$CHA2_IC$CHA2_ST" = "10101010" ]
      do
         evtest --query /dev/input/event2 EV_KEY BTN_BASE2
         CHA1_IC=$?
         evtest --query /dev/input/event2 EV_KEY BTN_BASE
         CHA1_ST=$?
         evtest --query /dev/input/event3 EV_KEY BTN_TRIGGER
         CHA2_IC=$?
         evtest --query /dev/input/event3 EV_KEY BTN_THUMB
         CHA2_ST=$?
         echo "$CHA1_IC$CHA1_ST$CHA2_IC$CHA2_ST"
      done

      until [ `ps | grep -e capcom -e retro | wc -l` -eq 1 ]
      do
         killall capcom
         killall retroarch
      done
      cp /opt/capcom/assets/games-$GAMES_NEXT.txt /opt/capcom/assets/games.txt
      echo "Changed to games-$GAMES_NEXT.txt"

# Wait for Player 1 'Insert Coin'+'Start'+'Upper Left'+'Upper Middle' buttons are no longer all pressed
      while [ "$CHA1_IC$CHA1_ST$CHA2_IC$CHA2_ST" = "10101010" ]
      do
         evtest --query /dev/input/event2 EV_KEY BTN_BASE2
         CHA1_IC=$?
         evtest --query /dev/input/event2 EV_KEY BTN_BASE
         CHA1_ST=$?
         evtest --query /dev/input/event3 EV_KEY BTN_TRIGGER
         CHA2_IC=$?
         evtest --query /dev/input/event3 EV_KEY BTN_THUMB
         CHA2_ST=$?
      done

      cd /opt/capcom
      /opt/capcom/capcom &

      GAMES_NEXT=$(($GAMES_NEXT + 1))
      if [ ! -e /opt/capcom/assets/games-$GAMES_NEXT.txt ]
      then
         GAMES_NEXT=1
      fi
   done
fi


I hope this will do until someone figures out how to hack the 'capcom' binary to support an endless number of games! [carcajad]

Anybody, feel free to modify this and republish.

As always, use at your own risk, ensure you have a backup before you apply this.


A 1944.png norom.zip|/opt/script1.sh 1944.ogg 1944 The Loop Master
B avp.png avsp.zip avsp.ogg Aliens vs Predator
C armored-warriors.png armwar.zip armwar.ogg Armored Warriors
C captain-commando.png captcomm.zip captcomm.ogg Captain Commando
C csc.png csclub.zip csclub.ogg Capcom Sports Club
D cyberbots.png cybots.zip cybots.ogg Cyberbots Full Metal Madness
A darkstalkers.png dstlku.zip dstlk.ogg Dalk Stalker
C eco-fighters.png ecofghtru.zip ecofghtr.ogg Eco Fighters
A final-fight.png ffight.zip ffight.ogg Final Fight
A ghoulsnghosts.png ghouls.zip ghouls.ogg Ghouls n Ghosts
A gigawing.png gigawing.zip gigawing.ogg Gigawing
C megaman.png megaman.zip megaman.ogg Megaman The Power Battle
A progear.png progear.zip progear.ogg Progear
A sf2-hyper-fighting.png sf2hf.zip sf2ce.ogg Street Fighter 2 Hyper Fighting
A strider.png strider.zip strider.ogg Strider
A super-puzzle-fighter-2-turbo.png spf2t.zip spf2t.ogg Super Puzzle Fighter 2 Turbo


Yes, it works! The system doesn't parse the variables, it's better for us.
With this and great @jj_0 idea we can already build a custom ROMS menu or activate functions or services inside CAPCOM menu.
[beer]

EDIT:

Here is the first shoddy implementation of the menu system taking advantage of the lack of parsing in the CAPCOM Front.

Video: I'm sorry but I don't have the joystick mounted and I have to short the cables to move around the menu.


File: First implementation, don't use if you don't have access to the CHA guaranteed by UART or similar and always make a backup. It's necessary to modify the code to be fully functional and add creativities to make it nice.
https://www.mediafire.com/file/gwg19jqipwgyp99/CHA_menu.zip/file
Kei_Dash escribió:
A 1944.png norom.zip|/opt/script1.sh 1944.ogg 1944 The Loop Master


Yes, it works! The system doesn't parse the variables, it's better for us.
With this and great @jj_0 idea we can already build a custom ROMS menu or activate functions or services inside CAPCOM menu.
[beer]

This is brilliant! [plas] [plas] [plas] [plas] What an elegant way to abuse the menu system! I think this is better than my '4-button press' method, as it doesn't need the extra scripts & 'evtest' binary.
jj_0 escribió:
Kei_Dash escribió:
A 1944.png norom.zip|/opt/script1.sh 1944.ogg 1944 The Loop Master


Yes, it works! The system doesn't parse the variables, it's better for us.
With this and great @jj_0 idea we can already build a custom ROMS menu or activate functions or services inside CAPCOM menu.
[beer]

This is brilliant! [plas] [plas] [plas] [plas] What an elegant way to abuse the menu system! I think this is better than my '4-button press' method, as it doesn't need the extra scripts & 'evtest' binary.


Actually, it wasn't until I saw the idea for your script that I thought of trying something like that. Both your idea to change the games.txt and the use of evtest are great, I was thinking to implement with evtest a service menu or a change between the CAPCOM FRONTEND interface and the loading from the USB of a RetroOrange or similar with ALL the R0M5 of the FBA (PANDORA interface).

Another goal is to minimize the CAPCOM FRONTEND startup time to make the menu management less heavy, remember that the limit is still 16 games or options (*sh) per "games.txt".

We have a lot of work ahead of us and we need to adapt a lot of creativity in order to have attractive menus.
[beer]
@Kei_Dash

Felicitaciones [plas] [plas] [plas] [plas] [plas] [plas]

A raíz de las publicaciones de jj_0 es posible atreverse mediante el método de falsa actualización para añadir/cambiar juegos pero particularmente tengo lagunas/dudas para llevar a cabo la tarea, no sé hasta qué punto te sería posible publicar un tutorial para realizar el proceso.. [fumando]

En cualquier caso, gracias, además me encanta ver en el vídeo acceder a otros juegos, jugar nativamente a D&D (sin depender de otro sistema, consola o pc) es una de las cosas que más me gustaría hacer con estos sticks [tadoramo] [tadoramo] [tadoramo] [tadoramo]
3031 respuestas