Run the reference emulator silently when WebKit reports no audio sample rate #83

Closed
opened 2026-10-17 10:45:35 +02:00 by kawa · 0 comments
Owner

After a page process has opened many AudioContexts, WebKit can hand out
one whose sampleRate is 0. The adapter passed that rate to binjgb, whose
emulator_run_until divides by the audio frequency on every call, so the
first frame trapped with "Division by zero". This failed the Day-Care
cartridge comparisons on WebKit after earlier tests had created hundreds
of emulators, and could crash the reference player in Safari.

A context without a usable rate is now closed and the emulator runs
silently at the fallback rate, as when no AudioContext can be created.

Commit: 7a32e68

After a page process has opened many AudioContexts, WebKit can hand out one whose sampleRate is 0. The adapter passed that rate to binjgb, whose emulator_run_until divides by the audio frequency on every call, so the first frame trapped with "Division by zero". This failed the Day-Care cartridge comparisons on WebKit after earlier tests had created hundreds of emulators, and could crash the reference player in Safari. A context without a usable rate is now closed and the emulator runs silently at the fallback rate, as when no AudioContext can be created. Commit: 7a32e68
kawa added this to the Pokemon Crystal - Web project 2026-10-17 10:45:35 +02:00
kawa moved this to Fait in Pokemon Crystal - Web on 2026-10-17 10:45:35 +02:00
kawa closed this issue 2026-10-17 10:45:35 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: kawa/Crystal#83