Need a windows dev for Kronos.

Hi all,

François made a fork of UoYabause/Yabause named Kronos. There are lot of work on it (STV support, filters, etc...). Anyway, he works/dev with linux and not Windows. We need a windows dev to help with fixing STV support. With Linux all games are launchable. With Windows, some games are not playable (Master SH2 invalid opcode). So if you want to help us, it will be a pleasure.

Thanks by advance.
 
I'm not up to date on anything yabause, but I'm curious what's with all the forks as opposed to direct contributions?

I've noticed that as well. There are too many forks.

I do believe that it's due to the fact that Yabause isn't as active anymore. The pull requests take too long to be accepted.
 
Hello I forget to add the link, thanks VBT. There are 3 kinds od yabause emulators.

Yabause (the original project) create by Guillaume Duhamel and Theo Barkau.
UoYabause --> Yaba Sanshiro create by Devmiyax. Now it"s focused on odroid, cellphone and stuff like that.
Kronos (Yabause + UoYabause + Yaba Sanshiro + own fixes/adding stuff) --> François is focused on Linux and Windows port. The main problem is François works under linux. And it's more difficult for him to fix windows port. He tried to fix STV support on the windows port but it's uncomplete.
 
Sorry for my curiosity, but what kind of problem(s) are you facing regarding STV support ?

And, is Kronos up to date with Yabause, or did it stopped from merging recent changes on Yabause side ? For example, LLE CD Block emulation, etc. I'm asking about this because it's easier to compare two projects with relatively equivalent source code.

I know that's really not an easy task, but that would be cool if all theses forks could be merged into their parent project :)
 
Cafe alpha :

There are some master sh2 opcode invalid errors. here an example with Astra :

Error: Master SH2 invalid opcode

R0 = 060002A8 R12 = 00000000
R1 = 06000650 R13 = 00000000
R2 = 0600064C R14 = 00000000
R3 = FFFFFFFD R15 = 06100000
R4 = 06090000 SR = 00000000
R5 = 22082000 GBR = FFFFFE00
R6 = 00000000 VBR = 06000000
R7 = 06010000 MACH = 00000000
R8 = 00000000 MACL = 00000000
R9 = 00000000 PR = 000044A2
R10 = 00000000 PC = 06010000
R11 = 00000000



It"s almost up to date with yabause but I don't know exactly.

Guillaume/Theo seems far away of Yabause now. Sometimes they pushed some commits made by some people, but some are not (ie : https://github.com/Yabause/yabause/pulls). Each dev want his own fork.
 
Hi, I am francois the current owner of kronos.
Kronos is born due to two reasons:
- original yabause team is taking ages to validate pull request and they are not fixing games issues now. They are focused on features for homebrew developers it seems
- uoyabause is focusing on fixing game emulation and performance issue but devmyiax is hardly focused on android, not interested in supporting Linux or Windows.
I tried in both cases to provide patches, I tried to discuss but it is consuming more time than fixing issues...

So I renamed my working fork as kronos to avoid misunderstanding.

I am back porting all interesting patches from yabause or uoyabause as soon as it is fixing games. I clean up the code a bit, introduced a new working dynarec for x86 and x64 (should work on arm but I did not tried) and I added the stv emulation support. This emulation is working very well on Linux but not on Windows. I think it is due to non posix usage or something like this. But I am a Linux developer, not a Windows one so I am spending too much time on Windows debug for simple issues. I am open to any contributions, libretro, Windows fix or any help on game fixing or hidden documentation.
 
Wow, two new Frenchies on SegaXtreme forums in less than one week !
:D


It's almost up to date with yabause but I don't know exactly.

From what I could see on source code, it is not really so : for example low level CD Block emulation is not available, and the VDP/memory/whatever debug viewers aren't available too.
From a playing point of view, theses are super minor features, but that may be needed by somebody someday.

Each dev want his own fork.

Yeah, I know that everybody just care about their own interest, but source code fragmentation is what's killing yabause project.

I don't know if Guillaume and CyberWarriorX are the ones to blame : without them, yabause project (and consequently all the forks surrounding) wouldn't exist.
And, yabause patreon page indicates they are currently supported $37 per month ... if the community is not that interested then it's not surprising that developers are not more involved.


I think it is due to non posix usage or something like this.

This is what I initially thought regarding file opening and unzipping, but BIOS as well as ROM files seem to be decompressed correctly, so my guess is that something is going wrong regarding ROM decryption ?
Which CMake parameters are you using for the linux port ? Please let me know if some specific compilation parameter is mandatory to get decryption correctly working.
 
Wow, two new Frenchies on SegaXtreme forums in less than one week !
:D


Resistance is coming on the forum ^^


From what I could see on source code, it is not really so : for example low level CD Block emulation is not available, and the VDP/memory/whatever debug viewers aren't available too.
From a playing point of view, theses are super minor features, but that may be needed by somebody someday.

Devmiyax removed these options, I dont have any idea why he did this. Like you said, minor features. Most users not toying with these kind of options.

Yeah, I know that everybody just care about their own interest, but source code fragmentation is what's killing yabause project.
I don't know if Guillaume and CyberWarriorX are the ones to blame : without them, yabause project (and consequently all the forks surrounding) wouldn't exist.
And, yabause patreon page indicates they are currently supported $37 per month ... if the community is not that interested then it's not surprising that developers are not more involved.


François said this above :
- original yabause team is taking ages to validate pull request and they are not fixing games issues now. They are focused on features for homebrew developers it seems
- uoyabause is focusing on fixing game emulation and performance issue but devmyiax is hardly focused on android, not interested in supporting Linux or Windows.
I tried in both cases to provide patches, I tried to discuss but it is consuming more time than fixing issues...

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.

If you are a windows/linux user, so use Kronos, and if you are an android user, Yaba Sanshiro is for you.

I made a quick list to show the difference between Yaba Sanshiro/Yabause and Kronos :

- Windows 7 support (broken with Yaba).
- STV games support.
- Filters support (HQ4X, Bicubic, etc...).
- New kronos interpreter (less CPU usage).
- Several GFX problems was fixed.
- New video options.
 
Last edited:
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
 
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.
 
First thanks for your help :)

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'm not this kind of person :)

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.

It will be great. Astal was a working game with a previous release, now there is just a black screen on the boot. And no particular error message.

...but the setup steps in Kronos official release archive were helpful

Great I made this quickly :)
 
Last edited:
It will be great. Astal was a working game with a previous release, now there is just a black screen on the boot. And no particular error message.

Which game is currently working on linux version ? It should be better to start testing with a working game :)
 
I m a windows user, not a inux user :(

@LeCare is using Linux and could get ST-V working there, right ?
If so, I would like extra informations how he could get ST-V working : for example which particular compilation flag(s) used, which yabause settings required (which SH-2 core ? which video code ? etc), and knowing which ROM was working on Linux would help too.

I honestly don't have any bloody interest in ST-V emulation, and just wanted to help new froggies on SegaXtreme forums :)
 
Back
Top