barsik, в общем-то b2m вроде бы уже все объяснил, и мне нечего добавить. У меня все сделано практически так же, да и в большинстве современных эмуляторов разных авторов и разных платформ, я думаю, тоже.
В 3-й версии такая проблема вообще возникнуть не могла, так как я синхронизировал эмулятор как раз со звуком. В текущей же используется SDL2, синхронизируется с performance timer'ом (хотя скорее всего хватило бы и обычного), и со звуком проблем не было. Да и вообще, непонятно, из-за чего может появиться отставание, может быть, как раз накапливались не перенесенные на следующий цикл какие-нибудь отброшенные остатки от деления? Не зная особенностей твоей реализации, сложно сказать...
Нет, я начал изучать этот вопрос, но так и не добил пока точные времянки, поэтому воздержусь от ответа, чтобы не наврать.
Зато этого добился uart, надеюсь, он подскажет.
У меня же было просто некое добавленное за несколько минут эвристическое решение, которое резко увеличило точность и зачастую даже выдавало совершенно точные значения на тестах. Но сейчас я уже сам до конца не понимаю, из каких соображений я это сделал и как оно вообще работает. Попытки улучшить приводят только к ухудшению, так что пока его убрал.![]()





Ответить с цитированием