Bug in CHD support for beetle saturn core


I discovered what it seems like a bug in chd support for the beetle saturn core. Last Bronx, in either PAL or USA versions, does not work when loading in CHD format. The systems loads the bios fine, and then the screen shows a corrupted screen and nothing else. Strangely, this does not happen with Japanese version, but both with Pal and Usa versions of the game. Game works fine when in cue/bin format.

If you take the compressed chd and uncompress it back to cue/bin using exctractcd chdman command, the resulting uncompressed image works ok. So the problem must be on the chd support on beetle saturn core or retroarch itself, it’s not a problem with the chd standard.

Of course I tried with different source images and with redump verifies dumps. I’m using Retroarch 1.7.2 and chdman 0.197, and using the md5 matching bioses for the system.

I’m not complaining, it’s not a problem for me to use the uncompressed image, but thought I could report this bug so someone can take care of it.


1 Like

I can confirm, 2 years later… yet still only Japanese (Disc1) loads in CHD format, USA, EUR, JAP/2 all fail in the same way. Other cores run fine though, so it is out of the question being an issue with the dumps, even though that possibility was low to begin with.

1 Like

Hmm, I didn’t know other cores load’em fine. So, in yabause-kronos-etc… the EUR/USA version of Last Bronx load fine in chd?

That would mean the bug is on beetle-saturn itself and not on the libchd implementation of RetroArch.

Unfortunately nobody (developers) has looked at this issue yet, maybe we could open an issue on the github’beetlesaturn page. I don’t know who is maintaining this core and if he browses this forum.

Maybe @hunterk could give us instructions on how to proceed?


Yeah, the issue seems most definetely in libchdr implementation inside Beetle Saturn; unfortunately I’m not a coder myself, I just skimmed through the libchdr code from both yabause and beetle, there are some omissions but the general implementation seems to be the same; as I said, not a coder, could be a lot of things since most games with a few narrow exceptions load fine.

I opened an issue on Github, not sure if it’ll get the attention though: https://github.com/libretro/beetle-saturn-libretro/issues/162


One of the main coders behind the libchdr port and implementation in Beetle Saturn is already floating a theory as to why this issue may be happening:

github comment

Fingers crossed!

1 Like