deathsoft wrote:В пентагоне нету никакой контентед памяти, и тайминги обращения к портам взяты из доки на z80 (порты в пентагоне тоже не тормозятся). Сигнал /wait в пентагоне не используется, процессор всегда получает доступ к памяти по первому требованию.
Я к чему про contended memory упомянул, на софте критичном к contended memory очень удобно тайминги отлаживать - малейшая ошибка и все плывет, ошибки сразу заметно. Без contended memory такого эффекта нет и ошибки не заметно.
Речь идет о таймингах внутри инструкции - на каком такте запись в порт/память происходит и т.п. Если ты изменишь тайминги в ini файле unreal, то поплывет мультиколор бордюра. Чтобы его скорректировать, прийдется фиксить в коде эмуляции Z80 тайминги обращения к портам. Поэтому с помощью ini ничего исправить не получится.
Но даже если это исправить, у пентагона есть еще фишка что очередность выборки аттрибута/пикселов меняется, если в момент чтения было обращение процессора к памяти. В итоге выборка аттрибутов/пикселов в двух соседних кадрах будет производиться на разных тактах. Это пока ни в одном эмуляторе не эмулируется...
кстати тайминги в ini файле unreal правильные. Ошибки эмуляции мультиколора для пентагона в unreal именно из-за неправильной эмуляции таймингов Z80. А следовательно, можно сделать вывод что для скорпиона в unreal тоже будут некорректный мультиколор, т.к. код Z80 тот-же самый.
Ошибки таймингов в Unreal небольшие - +-5 тактов и в большинстве мультиколорных дем они будут незаметны, но они есть и 5 тактов - это весьма существенная ошибка.