Дело вот в чем. Я хочу сделать так, чтобы эмулятор мог выступать в роли конструктора нужной конфигурации (естественно, в некоторых пределах). Для этого я собираюсь сделать, в частности, гибкую настройку неполной дешифрации портов. И было бы хорошо, если все ограничивалось лишь портами, раскладкой ОЗУ/ПЗУ и временами. Есть же еще, как минимум, разные конфигурации видеопамяти. Например:

[Pentagon]
4-bit pallete
512x192x2, black-and-white
384x304x16, 16 colors total

[ATM-Turbo]
6-bit pallete
640x200x16, 64 colors total

[Profi]
512x240x?

[Scorpion + GMX]
640x200x16

[Sprinter]
24-bit pallete
320x256x256
640x256x16

[ZX-Next]
640x200x?

[Original]
4-bit pallete
256x192x16, 16 colors total

[ZX-Poly]
4-bit pallete
512x384x16, 16 colors total

[Timex]
4-bit pallete
512x192x2, 16 colors total

и т.д.

Конечно, охватывать всех и вся бессмысленно и не стоит даже пытаться. Но также нет желания недалекой реализацией вносить какие-то жесткие ограничения, которые потом придется все равно преодолевать. Для эмуляции указанных выше возможных разрешений клонов ZX подходит некое универсальное разрешение VGA/SVGA 640x480x256 или, если бы мы вдруг захотели получить тот же чересстрочный режим, тогда 640x960x256 или 1280x1024x256. Последнее разрешение кажется удобным, но оно не всегда может быть доступным. А если оно доступно, то все равно его обслуживание будет тормозным. Тогда вообще весь смысл запуска на древних компах теряется...
При этом, для стандартного экрана Speccy достаточно и псевдографического 40x240x16 (самый быстрый) или 80x240x16 (чуть медленнее, но более совместимый). Но при его использовании некоторые конфигурации клонов ZX станут недоступны.
И потом. Я специально сделал возможность плавно менять разрешение экрана, т.к. при этом меняются параметры развертки, что может позволить получить нужную или максимально близкую частоту кадров.
Итого... я еще не решил, как мне поступить. То, как сделано сейчас, мне вскоре начнет мешать.