Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   Эмуляторы отечественных компьютеров (http://zx-pk.ru/forumdisplay.php?f=61)
-   -   Эмулятор старых компьютеров "eCat" (http://zx-pk.ru/showthread.php?t=11034)

Panther 8th October 2009 19:12

Эмулятор старых компьютеров "eCat"
 
Я решил наконец выложить на всеобщее обозрение свой эмулятор, над которым работаю уже около 4-х лет. Не судите строго, это проект чисто для развлечения, не претендующий на какое-либо соревнование с тем, что уже есть и работает заметно лучше :).

http://ecat.emuverse.ru/

b2m 8th October 2009 19:41

А минимальные требования к компьютеру какие?
Кое-как убил процесс, так и не дождавшись главного окна.
На однопроцессорную машину явно не рассчитано :)

Ewgeny7 8th October 2009 21:37

Panther, а мне понравилось! Спасибо!

Panther 8th October 2009 23:18

Quote:

Originally Posted by b2m (Post 224315)
На однопроцессорную машину явно не рассчитано

Странно, у меня на одном компьютере (ноутбук) с 2,4 ГГц работает, но плохо, на другом настольном 3,2 вообще нормально. Оба одноядерные. Да там многоядерность особо ни к чему, основной поток-то один. Только если чтобы Винда не мешала :).

На самом деле большую часть производительности ест отрисовка картинки через GDI, особенно при масштабировании. Все никак не займусь более прогрессивными вариантами. :(

b2m 8th October 2009 23:57

А вот на Athlon XP 1500+ после запуска система переходит в коматозное состояние. На вызов диспетчера задач и убиение процесса ушло порядка двух минут. Я понимаю, мультимедийный таймер поточнее обычного, но если обработчик события от этого таймера выполняется дольше, чем период самого таймера, то происходят такие вот вещи. Ты б сделал контроль реентерабельности обработчика + какой-нибудь sleep на полпериода, если был повторный заход, чтобы система не вешалась.

---------- Post added at 23:57 ---------- Previous post was at 23:50 ----------

Quote:

Originally Posted by Panther (Post 224366)
На самом деле большую часть производительности ест отрисовка картинки через GDI

На кой ты её каждый раз полностью формируешь? Храни готовый битмап и подправляй его при записи в видео-ОЗУ. А вывод битмапа - почти мгновенный, даже если использовать StretchBlt, т.к. используется аппаратное ускорение.

Panther 9th October 2009 03:46

Quote:

Originally Posted by b2m (Post 224381)
Ты б сделал контроль реентерабельности обработчика + какой-нибудь sleep на полпериода, если был повторный заход, чтобы система не вешалась.

Хм, я на слабых машинах вообще не тестировал. Насчет проверки реентерабельности хорошая идея, сделаю.

Я вынес в INI настройку высокого приоритета, попробуй поставить high_priority = 0. На моем 3,2 ГГц загрузка в три раза уменьшается (вместе с FPS, естественно).

И еще, я при последней компиляции забыл оптимизацию включить, с ней загрузка еще на 10% упала.

Quote:

Originally Posted by b2m (Post 224381)
Храни готовый битмап и подправляй его при записи в видео-ОЗУ.

Да, рендеринг съедает 50% производительности. Хотя твой вариант в универсальной архитектуре отдельный геморрой. Модулю видеоадаптера придется вешать на нужные блоки памяти какой-то callback по записи, плюс запускать полную регенерацию при изменении регистров конфигурации. Вот тут-то красота задумки и начинает страдать от технических ограничений ;).

b2m 9th October 2009 12:29

Теперь запускается, жрёт, конечно все 100%, и FPS только 5-6, но работает.

Panther 10th October 2009 02:16

У меня возник вопрос к Error404. Я стал запускать игры Z80 с Disk2.odi. Заставки были кривые - какое-то месиво. Думал, проблема в эмуляторе. Стал трассировать. Оказалось, что начало файла OVL из User_1 тупо переносится в видеостраницу без всякой обработки. Получается, повреждены именно файлы? В эмуляторе b2m та же хрень. Пример игры, чтобы не искать - xecutor.com. Сама игра, вроде, работает, проблема только в заставке. Как такое получилось?

Error404 11th October 2009 22:10

Quote:

Originally Posted by Panther (Post 224571)
У меня возник вопрос к Error404. Я стал запускать игры Z80 с Disk2.odi. Заставки были кривые - какое-то месиво. Думал, проблема в эмуляторе. Стал трассировать. Оказалось, что начало файла OVL из User_1 тупо переносится в видеостраницу без всякой обработки. Получается, повреждены именно файлы? В эмуляторе b2m та же хрень. Пример игры, чтобы не искать - xecutor.com. Сама игра, вроде, работает, проблема только в заставке. Как такое получилось?

О какой заставке идет речь?
Там нет никакой заставки (как я понимаю, не задумывалось). Первый после загрузки экран запрашивает "Press Enter" для настройки на тип клавиатуры (РК/МС7007), следующий экран - уже игровое меню (меню Press 1.2.3).
Игра из файла OVL тупо последовательно грузится в 0 страницу памяти. Понятно, что-то залезает и на экран. Но этого не должно быть видно - у вас "запрет видеосигнала" (на экране черный квадрат Малевича) обрабатывается?

Code:

Экранная память располагается в 0 и 1 страницах ОЗУ,  при-
чем количество экранов и распределение сегментов в них  зависит
от текущего цветового режима, задаваемого разрядами порта 0F8H:

    D4  D3  D2  D1  D0
    ------------------
    0  x  0  0  0  - монохромный, палитра 1
    0  x  0  0  1  - монохромный, палитра 2
    0  x  0  1  x  - запрет видеосигнала
    0  x  1  0  0  - 2-битный (4-цветный), палитра 1
    0  x  1  0  1  - 2-битный (4-цветный), палитра 2
    0  x  1  1  x  - 16-цветный с групповым кодированием
    0  1  1  1  x  - псевдоцветной (цвет -  в порт 0FCH)
    1  x  0  x  x  - 3-битный (8-цветный RGB)
    1  x  1  x  x  - 4-битный (16-цветный RGBI)


Panther 12th October 2009 10:07

Quote:

Originally Posted by Error404 (Post 224862)
Игра из файла OVL тупо последовательно грузится в 0 страницу памяти. Понятно, что-то залезает и на экран. Но этого не должно быть видно - у вас "запрет видеосигнала" (на экране черный квадрат Малевича) обрабатывается?

Я просто подумал, что раз что-то переносится, а потом переключается в экран, то это должна быть заставка. Тем более, там что-то похожее на испорченную картинку проглядывало.

А откуда табличка? Я сделал Z80 Card II, видео стандартное, с тремя битами порта F8. А тут пять. Плюс FC. Я упустил доработку видео?

И еще, в некоторых других играх есть какой-то цветной мусор в левой колонке экрана. Это ошибка, или хитрый трюк, на реале не видный за границей экрана телевизора?


All times are GMT +4. The time now is 03:00.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.