› Foros › Retro y descatalogado › Consolas clásicas
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.
mkimage -C none -A arm -T script -d boot-slim.cmd boot.scr
jj_0 escribió:(...)
If you want to replace the firmware entirely with RetrOrangPi (...)
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.
...4Menu...............vector::_M_range_check: __n (which is %zu) >= this->size() (which is %zu)......assets/games.txt......
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
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...
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!
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;
}
undefined local_168 [16];
undefined auStack336 [16];
/opt
└── capcom
└── assets -> location of gamest.txt
├── games -> location of <gamename>.png menu screens
└── sounds -> location of <gamename>.ogg game menu 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.
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.
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
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.
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.
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.
CHA_fan escribió:@jj_0
I'm in! I'm in! I have SSH connection to the CHA and could login as 'root'
I have some details to add but will write in Spanish for other to follow.
Pararegistros escribió:@fakemaria
¿Ya lo quieres, perraco? Te dije que iba a ser buena semana en ambas.
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...
Jan 1 00:15:55 Retro user.warn kernel: [ 811.987163] capcom: page allocation failure: order:0, mode:0x4(GFP_DMA32), nodemask=(null)
# killall capcom
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
jj_0 escribió:I've amended the earlier post and feel embarrased
├── 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)
#!/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
jj_0 escribió:Thanks @miguelonic, @CHA_fan and also @Pararegistros for your suppport
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!
Anybody, feel free to modify this and republish.
As always, use at your own risk, ensure you have a backup before you apply this.
Pararegistros escribió:@jj_0 It could be a solution... IF YOU DON'T HAVE A Bluetooth PC.
That's the exact combination to enable BT or CHA mode.
jj_0 escribió:Pararegistros escribió:@jj_0 It could be a solution... IF YOU DON'T HAVE A Bluetooth PC.
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.
jj_0 escribió:Pararegistros escribió:@jj_0 It could be a solution... IF YOU DON'T HAVE A Bluetooth PC.
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ó:Thanks @miguelonic, @CHA_fan and also @Pararegistros for your suppport
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!
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
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.
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.
This is brilliant! 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.