TASEmulators / TASEmulators/BizHawk

[BSNESv115] Allow modifying the apu frequency via sync settings

Open
#4,547 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Core: BSNES Request: Feature/Enhancement
Dominant language
C#
Stars
2.8k
Forks
468
PR merge metrics
No merged PRs in 30d

Description

Initially requested by Alyosha for console verification purposes.

Some games are apparently very sensitive to the apu frequency when it comes to syncing on console, and because the apu frequency varies a lot on original hardware there's a chance the run on emulator won't sync on all consoles. By allowing setting the apu frequency that the emulator uses, it's possible to re-sync runs on the emulator to a specific console's apu frequency.

Currently, bsnes uses a dsp sample rate of 32040. Real-world testing shows that the sample rate on real consoles can be as low as ~31950 Hz and as high as ~32200 Hz, and even tiny differences can break sync, so if we want to allow matching all consoles then the apu frequency / dsp sample rate should be freely configurable (perhaps with some sensible bounds).

I have a hacky branch that allows configuring this, but we should probably do it properly considering it's required for console verification. Putting this here so I don't forget about it.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the linked hacky branch and the current BSNESv115 handling of the 32040 Hz DSP sample rate. Determine appropriate bounds for a configurable APU frequency in sync settings, then verify that runs can be re-synced to the measured console range described in the issue.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
game-dev
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.