diff --git a/fxemu.cpp b/fxemu.cpp index 09761a3e..4c01a481 100644 --- a/fxemu.cpp +++ b/fxemu.cpp @@ -213,8 +213,9 @@ void S9xInitSuperFX (void) void S9xResetSuperFX (void) { - // FIXME: Snes9x can't execute CPU and SuperFX at a time. Don't ask me what is 0.417 :P - SuperFX.speedPerLine = (uint32) (0.417 * 10.5e6 * ((1.0 / (float) Memory.ROMFramesPerSecond) / ((float) (Timings.V_Max)))); + // FIXME: Snes9x only runs the SuperFX at the end of every line. + // 5823405 is a magic number that seems to work for most games. + SuperFX.speedPerLine = (uint32) (5823405 * ((1.0 / (float) Memory.ROMFramesPerSecond) / ((float) (Timings.V_Max)))); SuperFX.oneLineDone = FALSE; SuperFX.vFlags = 0; CPU.IRQExternal = FALSE;