I'm beta testing Yabause (for years ago), UoYabause/Yaba Sanshiro and Kronos. Devmiyax commits was not pulled on the yabause fork. I'm not sure but it seems Yab dev didn't want to give access to him. So he made his own fork. And François pulled some commits on UoYabause, and Devmiyax ignore it. So new fork called Kronos.
Wow, I didn't know the relations between each others were rotten at that point oO
If you are a windows/linux user, so use Kronos, and if you are an android user, Yaba Sanshiro is for you.
In my particular case, I use Saturn emulator for dev under Windows, and use yabause from a long time (before Kronos or uoYabause started), so prefer to stick with it. (please don't flame me because of different religion
)
I tested Kronos a bit regarding ST-V emulation, and it seems that cartridge CS1 is not accessed at all by SH-2 until crashing, which implies that problem is located before cartridge ROM decryption.
The unzip library seems working correctly : no error message is output from there, and
some data is copied here and there in cartridge ROM buffers.
To say things simply, I'm short on ideas regarding this problem
So If you or François have some tracks about any other suspicious behavior to check, I would gladly give an hand.
Additionally, I dumped CS0 and CS1 contents after extracting files from ROM archive, so if similar thing could be done on working linux version, it may be helpful to verify if they match. Please PM me if you're interested.
Q&D dump code used, inserted in stv.c. It's for testing purpose hence may not work on everybody's computer.
Code:
if(jzReadEndRecord(zip, &endRecord)) {
LOGSTV("Couldn't read ZIP file end record.\n");
} else {
if(jzReadCentralDirectory(zip, &endRecord, recordCallback, &info)) {
LOGSTV("Couldn't read ZIP file central record.\n");
}
}
zip->close(zip);
FILE* fp_dump = fopen("R:\\01_cartdump.bin", "wb");
if (fp_dump)
{
fwrite(CartridgeArea->rom, 48 * 1024 * 1024, 1, fp_dump);
fclose(fp_dump); fp_dump = NULL;
}
There is nothing special for decryption. You need to compile the qt version, download some zip file from mame rom set, the stvbios.zip file then you go to option menu, you select stv rom cartridge, you enter the Tom directory where you put your st3 toms and bios file and it will scan the directory and put some detected game names. You select one game and press start. If the game needs decryption, it will call the decryption mechanism on code read functions. The decrypt.c file is used here. I will see if Benjamin can share a video of stv games on kronos
No problem for setting up testing environment here : I initially didn't understood well how it works, but the setup steps in Kronos official release archive were helpful
I could reproduce the problem (SH-2 invalid opcode at address 06010000) with Astra Super Star.