Skip to content

Severe Framerate Caps When Using Certain Combinations of Headsets + Audio APIs While Enabling Audio Sync #26

Open
@RPGHacker

Description

@RPGHacker

Background: I was trying out this ROM hack yesterday and noticed that my framerate was capped at around 50 FPS, making it unplayable. This shouldn't be a matter of just processing power, because my PC has very high specs. In fact, I then went on to test out other hacks - ones that I was able to play just fine on this system previously - and they all had the same 50 FPS cap.

I then went on to try different things and figured out that the cause of this problem is the combination of certain audio APIs with certain audio output devices. My PC speakers died on me yesterday, so I was forced to switch to an USB headset I had lying around. I set up BSNES to use WASAPI with my USB headset. Trying out different audio APIs with the same headset, I could observe that every one of them led to a different framerate cap, all below 60 FPS. Disabling audio entirely or switching the audio output back to my broken PC speakers restored the intended framerate cap of 60 FPS.

It's worth noting that I went on to play the hack in RetroArch + Snes9x core afterwards, which did not show these symptoms, so it seems to be something unique to BSNES. I don't know what could be causing it, though. Maybe some kind of audio syncing. Since this is a USB headset, I suppose it technically counts as its own sound device (rather than using the Sound Blaster Z in my PC), so maybe BSNES uses audio in a way that isn't compatible with all audio devices or something like that.

This USB headset is pretty much from a no-name brand, but I can imagine that other audio devices could lead to similar issues. Also I just went ahead to check if there's an option for audio-syncing, and indeed there is one. When I disable it, the framerate is actually capped at 60 FPS, so that confirms that audio-syncing is the issue here, but I'm not sure whether this can be considered an actual bug or whether this is something that is just inherent to certain audio devices/drivers and that BSNES can't do anything about.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingquestionFurther information is requested

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions