TASEmulators / TASEmulators/BizHawk
[BSNESv115] Allow modifying the apu frequency via sync settings
Nobody has claimed this yet.
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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