Я часть забрал. Спасиб.
Да. Там была смешная ошибка, которую я починил почти сразу.
У тебя 4 поверхности и 1 из них сильно лишняя. Я вообще сократил все до 2х.
Ну собственно я хочу вообще слегка исправить эмуль в архитектурном плане. Сейчас основным является Z80, но это неверно. Основным должен стать spectrum и из себя дергать уже все остальное. Я убрал часть под процедуры и вернул инит.
Штука в моей версии такова, что потерей 1 фпс я с легкостью могу развернуть этот цикл в линию и попробовать даже мультиколоры показать. Хотя это можно и в твоей версии сделать, но чуть веселее.
Ну вот смотри, твоя процедура за время своей работы 2 раза копирует данные: 1 - из pixelmap в zx_array, 2 - из него в поверхность. У меня копирование происходит по 8 точек за раз и только 1 раз. Да, чуть медленнее чем скопом, но твой вариант в целом делает то-же самое. У меня есть предположение что если пользоваться не buffer.write, а достать непосредственно мап на поверхность, то я легко верну тот 1 фпс.
[/QUOTE]
Ну вот тут ничего не могу сказать. Если попробовать еще memoryview подключить - возможно еще вырастет.
- - - Добавлено - - -
У меня все норм. Правда не на твоей версии, а на моей, но в принципе там ничего не изменено связанное с иконкой
- - - Добавлено - - -
@CityAceE, я немного извратился с твоим вариантом и возможно чуть ускорил его даже.