Audio crackling in some Genesis (Picodrive) games

Hi there,

I’m still amazed on how awesome Picodrive + Retroarch combination is! It’s running perfectly on my Raspberry Pi (950MHz). I compiled from both the Retroarch and the Picodrive libretro repos yesterday, and it runs at rock-solid 60FPS in every Master System and Genesis game I throw at it. Butter-smooth scrolls, of course, and y exact monitor refresh rate specified on the cfg file.

However, some Genesis games have crackling FM audio: -Streets of Rage: the legenday intro music has periodic crackling noises. -Crusader of Centy: horrible buzzing noises can be heard before the intro starts. -Gunstar Heroes: a similar crackling sound can be heard before treasure logo appears.

These aren’t associated with a higher CPU usage: they seem to be internal audio emulation problems, so some genesis audio drivers seem to be affected and other aren’t. Are they fixable somehow? Is this the right place to report them?

That sort of thing is very possible with Picodrive, which sacrifices accuracy for speed. Notaz has mentioned that he may take a look at some of these accuracy issues at some point, so reporting them is fine/helpful, just don’t expect any immediate action. Also, it’s probably a good idea to verify any issues on a more substantial host machine, just to rule out performance dips.

Hi, hunterk!

Just compiled retroarch + picodrive from repos on the Core i3 4-cores + Intel 4000 graphics laptop I’m using, with this configure and after installing the relevant libraries:

./configure --disable-x11 --enable-kms --enable-egl --disable-pulse --disable-oss

It results on a perfect-scrolling retroarch (after taking down the damn Xorg enviroment so framebuffer can be initializated, etc), very similar to the one I compiled on the Rpi. And yes, on this little beast, the same exact audio cracklings can be heard on the exact same games. It’s Picodrive’s audio emulation. All other games I tested are fine.

Perfect. :slight_smile:

The upstream build doesn’t have these issues, so it’s sometihng with libretro port (not blaming anyone here - I did the port myself). I’ll need to debug this somehow…

Hi Notaz! Congratulations for Picodrive, it’s an awesome piece of software! And you should see it running on the Raspberry Pi at full rock-solid 60FPS (even MEGA CD games) without X, with a 5-seconds boot time, using dispmanx+EGL… it’s so beautiful! I’m glad you can also hear those audio glitches so they can be fixed someday.

On the other hand, how do you access Picodrive options under Retroarch frontend? Maybe a cfg file? what should be it’s name an it’s values? I can’t find a doc for those questions on the repository. I’d like to do some experimentation with things like disabling sprite limit, etc…

The options have to be re-added one by one to libretro port. What options to you need?

Two come to mind: -Enable/Disable sprite limit on both Mega Drive and Master System -Enable/Disable Master System audio (used by some Jap games)

I think I fixed the crackling problem. By “Master System audio” I suppose you mean emulation of FM chip in jap SMS? If so it’s not implemented yet at all…

I will release a new version of RetroArch this week (0.9.9.7). It will have an updated Picodrive core in it as well so people can check out the changes/improvements made since then.

It might not be obvious from commit logs, but there is now 32X+CD support too. You might want to announce that in changelogs, as I think it’s first emu after Kega to do it.

@notaz Oh shit, that’s definitely a big deal!

Wow! Incredible, Notaz!! Picodrive’s Master System, Genesis and SegaCD are fullspeed on this neat small board. Just imagine that: SegaCD games on a 35$ computer :smiley: Thanks a lot for this incredible emulator!

I tested the games that had crackling sound and they are sounding perfect now, too!

@notaz:

There are some small cd-audio issues left in SegaCD emulation. They are present both in X86 and ARM builds of the latest git, and were also present in the older release, so it’s NOT a regression. I always use CUE+BIN images, no MP3 involved. For example:

-In Sonic CD (JAP), when you leave Palmtree Panic music playing until it loops, it doesn’t loop right: it plays some audio from the next track, and then starts playing the proper track.

-In Lunar: The Silver Star, when you leave Burg music playing until it loops, it doesn’t loop right: it plays some audio from the next track, and then starts playing the proper track.

…and the same happens in a lot of games. It seems PicoDrive isn’t able to loop audio tracks in games completely right, and it always plays a small part of the next track before looping.

-Also, Sonic (Master System) has jumping sound broken: it sounds very different compared to a real machine. You can compare against Genesis-puls-GX core, where it sounds exactly as expected.

Maybe you can fix it while you’re updating the core :slight_smile:

Wow! Just compiled version 1.91 and Mega CD audio tracks loop perfectly now!! Thanks, Notaz!!

Only the Master System strange jump audio effect in Sonic remains… Have you guys able to hear this?