CityAceE, прошу прощения за телеграфный стиль - я писал с телефона. У 8255 есть режим быстрого сброса/установки бит в порту C. Он подробно описан в документации и эмуляторах, поэтому вдаваться в подробности здесь смысла нет.
Пока не изучал подробно сорцы, но сразу обратил внимание на то, что нету привязки к времени и если где-то принудительно не задан VSYNC, то программа молотит на 100% ядра. Особо не вдаваясь в pygame, с которым я знаком шапочно, попробовал сделать в основном цикле вот так:
Если я его правильно понял, clock.tick(fps) вызывает SDL_Delay() если его вызывают чаще, чем указанный в параметре fps. Теперь эффективность кода можно оценивать по загрузке проца.Код:clock = pygame.time.Clock() while running: cpu.core() if cpu.ticks > INT_TICKS: cpu.ticks = 0 if cpu.scr_upd: cpu.pygame.display.flip() clock.tick(50) cpu.scr_upd = False




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