Speccy - наш выбор!

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

nzeemin 13th February 2013 22:45

UKNCBTL сборка 495
 
Нумерация версий эмулятора поменялась -- теперь это просто ревизия кода в репозитории.

Изменения:
  • UKNCBTL: one more fix in serial/network implementation.
  • UKNCBTL: resizeable main window.
  • UKNCBTL: ConsoleView prompt moved to separate control.
  • UKNCBTL: MainWindow_AdjustWindowSize() - change window position only in Debug mode.
  • UKNCBTL: "Switch CPU/PPU" command.
  • UKNCBTL: ScreenView bitmap scaling using AVERAGERGB() macro.
  • UKNCBTL: Version.tpl -> Version.h using SubWCRev.exe for PRODUCT configuration.
  • UKNCBTL: keyboard mask in KeyboardView.
  • UKNCBTL: DebugView -- debug toolbar.
  • UKNCBTL: Emulator_LoadROMCartridge error checking fixed.

hobot 13th February 2013 23:31

Quote:

Originally Posted by nzeemin (Post 575838)
UKNCBTL сборка 495

Полноэкранности пока нет, но сохранения (State) от 38беты загружает - работают )
Не центруется экран УК-НЦ при развёртывании окна эмулятора.
Или может я просто не научился пока как?

Остальное будем гонять в процессах )

Titus 14th February 2013 00:38

Quote:

Originally Posted by nzeemin (Post 575838)
Нумерация версий эмулятора поменялась -- теперь это просто ревизия кода в репозитории.

Изменения:
  • UKNCBTL: one more fix in serial/network implementation.
  • UKNCBTL: resizeable main window.
  • UKNCBTL: ConsoleView prompt moved to separate control.
  • UKNCBTL: MainWindow_AdjustWindowSize() - change window position only in Debug mode.
  • UKNCBTL: "Switch CPU/PPU" command.
  • UKNCBTL: ScreenView bitmap scaling using AVERAGERGB() macro.
  • UKNCBTL: Version.tpl -> Version.h using SubWCRev.exe for PRODUCT configuration.
  • UKNCBTL: keyboard mask in KeyboardView.
  • UKNCBTL: DebugView -- debug toolbar.
  • UKNCBTL: Emulator_LoadROMCartridge error checking fixed.

Наверное эмулятор делается специально для иностранцев. Иначе как обьяснить только английские нотации)

---------- Post added at 23:38 ---------- Previous post was at 23:35 ----------

И зачем ресайз окна, если изображение не центруется, и/или не масштабируется?

hobot 14th February 2013 00:54

Есть ещё два наблюдения :
из плюсов
- ЖД и возможно флоппы (их трудно оценить но ЖД точно) шустрее стал !
из минусов
- каждая новая версия UKNCBTL всё сильнее греет мой ноут (

Остальное будем гонять в процессе ).

---------- Post added at 23:54 ---------- Previous post was at 23:51 ----------

Quote:

Originally Posted by Titus (Post 575885)
И зачем ресайз окна,

Так Debug режим никто не отменял же, но конечно я им почти не пользуюсь и мне
конечно было-бы комфортнее при необходимости доступа к кнопкам управления иметь экран УК-НЦ по центру или (когда кнопки не нужны) полноэкранный режим )

NovaStorm 14th February 2013 20:00

>UKNCBTL: resizeable main window.
Про центрирование уже упомянули, я хочу высказаться про "screen mode 5". Когда я разворачиваю окно, слева остаётся его рамка. Разрешение у меня 1280х1024, и охота, чтобы удвоенный по горизонтали экран влезал полностью в монитор, чему рамка мешает.
Может быть стоит вывести наличие интерлейса в отдельную галочку для всех вариантов масштабирования?
Эмулем хоть один англоязычный человек пользуется? =)

hobot 14th February 2013 20:25

Quote:

Originally Posted by NovaStorm (Post 576167)
Эмулем хоть один англоязычный человек пользуется? =)

Гарантирую, что да ! )

---------- Post added at 19:22 ---------- Previous post was at 19:20 ----------

Как минимум одна копия в Вашингтоне стоит (или стояла 100% около года назад тогда ещё 24 или 28 версия - не помню какая точно).

---------- Post added at 19:25 ---------- Previous post was at 19:22 ----------

Quote:

Originally Posted by NovaStorm (Post 576167)
"screen mode 5"

у меня то же не влезает ( , но у меня разрешение меньше 1280х800 - а этот режим
для больших дюймов совсем )

nzeemin 15th February 2013 15:07

497
 
В этой версии переделана логика расчёта расположения окон, с тем чтобы экрану отводилось всё оставшееся место. Экран центрируется, остальное заполняется чёрным. Лишние полоски убраны. Добавлен режим View | Fullscreen.

Titus 15th February 2013 16:00

А когда будет точная эмуляция таймингов процессора и железа? :v2_wink2:

NovaStorm 15th February 2013 16:27

nzeemin, при переключении в фулскрин галочка не ставится на этом пункте меню, а так - шикарно! Хотя у меня и без фулскрина всё прекрасно.
Мысли про масштабирование - может удобнее вместо фиксированных выборов сделать выбор масштаба по горизонтали/вертикали, плюс галки коррекции аспекта и интерлейса? Вроде так более "общо".

---------- Post added at 15:27 ---------- Previous post was at 15:21 ----------

Quote:

Originally Posted by Titus (Post 576480)
А когда будет точная эмуляция таймингов процессора и железа? :v2_wink2:

А это разве возможно? Насколько я понял, там же шина и то, что по ней ходит, может зависеть не только от конденсаторов на плате и их состояния, но чуть ли не от погоды в Челябинске.

Titus 15th February 2013 16:36

Quote:

Originally Posted by NovaStorm (Post 576487)
А это разве возможно? Насколько я понял, там же шина и то, что по ней ходит, может зависеть не только от конденсаторов на плате и их состояния, но чуть ли не от погоды в Челябинске.

Конечно, возможно) Все это плавает в тестах из-за невозможности точной синхронизации, а на деле подчиняется вполне точным закономерностям.

Patron 15th February 2013 16:51

Важно, что при любых отклонениях быстродействия ( из-за прогрева, разброса номиналов элементов и т.п. ) соотношение продолжительностей различных команд остаётся неизменным.

Правильные тайминги - это именно правильные соотношения, а не "правильные" абсолютные значения.

Titus 15th February 2013 17:01

Quote:

Originally Posted by Patron (Post 576502)
Важно, что при любых отклонениях быстродействия ( из-за прогрева, разброса номиналов элементов и т.п. ) соотношение продолжительностей различных команд остаётся неизменным.

Правильные тайминги - это именно правильные соотношения, а не "правильные" абсолютные значения.

На сколько я понял, уже по итогам тестов, из-за прогрева тайминги почти не меняются.

NovaStorm 15th February 2013 17:04

Quote:

Originally Posted by Patron (Post 576502)
Правильные тайминги - это именно правильные соотношения, а не "правильные" абсолютные значения.

Я не смог осилить тему по таймерам, технически не подкован, но разве с ними при плавающих таймингах проблем не будет? Или это "плавание" слишком мелкое, чтобы их доставить?

nzeemin 15th February 2013 17:27

Вот я тоже не смог пока осилить тему по таймерам. Нужна предварительная работа -- прочитать все нужные треды обсуждений и понять что имелось в виду. собрать тесты на диск, погонять их, сопоставить с тем что получилось у умных людей на реале. Потом уже решать что не так сделано в эмуляторе и двигаться по пути улучшения.

Vamos 15th February 2013 17:46

Quote:

Originally Posted by nzeemin (Post 576458)
Добавлен режим View | Fullscreen.

Это не тот Fullscreen которого хотелось, а хотелось экран УКНЦ в размер экрана монитора. :(

NovaStorm 15th February 2013 17:50

Vamos, "fit to screen"? Его же сильно исковеркает.

ZEman 15th February 2013 17:52

nzeemin, пожалуй тоже поддержу Vamos, сделайте пожалуйста Правильный полноэкранный режим в эмуляторе.

nzeemin 15th February 2013 18:01

Вопрос же в том как скалировать изображение. Стандартный StretchBlt -- это ужас-ужас, как по качеству так и по производительности. Можно использовать DirectX, можно писать свой скалер -- но оба эти способа мне пока неинтересны.

nzeemin 15th February 2013 18:14

499
 
1 Attachment(s)
Сделано сохранение положения окна, режима maximized и режима fullscreen.

NovaStorm 15th February 2013 20:13

Играл сейчас в LAST HERO, ну КАК ЖЕ не хватает хоткеев на save/load! Можно сделать какие-нибудь F7-F8 для default.uknc? И для Run тоже.
А то на 9 уровне(сколько их там всего?) при большом количестве объектов начинаются просто ЭПИЧЕСКИЕ тормоза и всё дрыгается рывками - по коридорам летать никакой возможности, старею, чтоль? =)
И какой там алгоритм подбора бонусов?

Titus 15th February 2013 21:10

Quote:

Originally Posted by NovaStorm (Post 576511)
Я не смог осилить тему по таймерам, технически не подкован, но разве с ними при плавающих таймингах проблем не будет? Или это "плавание" слишком мелкое, чтобы их доставить?

Они казались плавающими, пока не были теоретически обоснованы. А как обосновались, стали неплавающими)

hobot 15th February 2013 22:02

Quote:

Originally Posted by Vamos (Post 576529)
Это не тот Fullscreen которого хотелось, а хотелось экран УКНЦ в размер экрана монитора.

Присоединяюсь в этом к Vamos, сейчас развертывание окна и центровка УК-НЦ экрана
сделана хорошо, поскольку часто нужно иметь доступ к кнопкам дискет и меню, а вот
галочка (режим) фулскрин (полноэкран) ИМХО: должен делать размер экрана УК-НЦ,
а не окна эмулятора (которое и без галочки теперь можно развернуть) =
desktop.height
desktop.width
Как в допилиной версии БК-эмулятора там же получилось,
(осторожно !)

Скрытый текст


http://savepic.ru/4025998.jpg
[свернуть]


значит и с
УК-НЦ получится - например по нажатию стандартного alt+enter ?
В любом случае - благодарность за центрование экрана внутри окна,
так намного удобнее )))

---------- Post added at 20:59 ---------- Previous post was at 20:54 ----------

Quote:

Originally Posted by NovaStorm (Post 576627)
И какой там алгоритм подбора бонусов?

До конца не проходил.
По поводу оружия я не брал его после того как классные шевелящиеся снарядики,
покрывающие площадь перед кораблём шириной с сам корабль не начинают лететь
автоматически. Все дальнейшие виды всяких там гипотенуз (смайл) только усложняют
прохождение ) По счёту это или 4 или 5 fier потом их не надо просто собирать. Как-то так.

---------- Post added at 21:02 ---------- Previous post was at 20:59 ----------

По полноэкрану просто добавлю - в таком режиме мой бук (с включенными звуковыми
фишками в эмуляторе) реально превращается в любимый мною БК! ) Как-бы ) Эффект присутствия однако.

Patron 15th February 2013 22:06

Quote:

Originally Posted by nzeemin (Post 576524)
Вот я тоже не смог пока осилить тему по таймерам. Нужна предварительная работа -- прочитать все нужные треды обсуждений и понять что имелось в виду. собрать тесты на диск, погонять их, сопоставить с тем что получилось у умных людей на реале. Потом уже решать что не так сделано в эмуляторе и двигаться по пути улучшения.

Общая идея "формулы быстродействия" проста - время выполнения команды складывается из "алгоритмической" задержки и суммарной задержки всех обращений к памяти.

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

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

Titus 15th February 2013 22:17

Quote:

Originally Posted by Patron (Post 576667)
Общая идея "формулы быстродействия" проста - время выполнения команды складывается из "алгоритмической" задержки и суммарной задержки всех обращений к памяти.

Это может оказаться не совсем точно.
Точная эмуляция - это эмуляция, при которой каждая команда делится на элементы работы с шиной. Т.е. команда эмулируется не целиком, а дробится на микрокоманды.

---------- Post added at 21:17 ---------- Previous post was at 21:16 ----------

В EmuStudio, кстати, так и сделано)

Patron 15th February 2013 22:26

Quote:

Originally Posted by Titus (Post 576671)
Точная эмуляция - это эмуляция, при которой каждая команда делится на элементы работы с шиной. Т.е. команда эмулируется не целиком, а дробится на микрокоманды

А я разве не то же самое сказал?

Alex_K 15th February 2013 22:41

Quote:

Originally Posted by Titus (Post 576671)
В EmuStudio, кстати, так и сделано)

А в EmuStudio учитывается предвыборка?

Titus 15th February 2013 23:50

Quote:

Originally Posted by Patron (Post 576673)
А я разве не то же самое сказал?

Ну, если то, то я согласен)

---------- Post added at 22:50 ---------- Previous post was at 22:47 ----------

Quote:

Originally Posted by Alex_K (Post 576678)
А в EmuStudio учитывается предвыборка?

Да, т.к. писано по первому тому родного технического описания. Правда, возможно, не совсем верно, т.к. многой информации тогда еще не было. Тайминги работы блоков тоже сделаны не совсем такие, как должны быть, т.к. такой информации не было. Сейчас тоже нет содержимого ПЗУ микрокоманд процессора. Феликс хоть и сфоткал и что-то начал разбирать, но все это заглохло. Кроме того, у меня не учитываются здадержки памяти.

hobot 15th February 2013 23:56

nzeemin, правый нижний уголок экрана УК-НЦ в режиме ^полноэкран для окна
и <interlaced upscaled> для экрана УК-НЦ :
http://savepic.ru/4043408.png
Может быть только на моей матрице так? Это не страшно, просто не ясно почему так,
раньше не замечал )

nzeemin 7th March 2013 23:57

1 Attachment(s)
Несколько раздосадованный тем, что пользователям не понравился фулскрин, я сел писать новую архитектуру рендеров.

Суть в том что отрисовщик экрана (рендер) будет вынесен из основного приложения в DLL, причём DLL можно менять, используя разные механизмы формирования изображения. Кроме того, основное приложение не ссылается на зависимые библиотеки, ссылки на нужные .lib стоят только в проектах отдельных DLL.

RenderVfw.dll использует "Video for Windows" -- тот же механизм что сейчас реализован в эмуляторе; ориентирован на вывод 1:1 и кратное масштабирование -- например, в 2 раза или 2 x 1.5.
RenderDX9.dll (DirectX 9) и RenderOpenGL.dll -- ориентированы на произвольное масштабирование, в т.ч. в режиме Fullscreen.

В аттаче действующий макет с тремя рендерами, пока с единственным режимом в каждом из них. RenderTester позволяет подцепить один из рендеров и выводит статичное изображение, плюс есть команда для измерения предельного FPS.
RenderDX9 и RenderOpenGL дают 60 FPS -- думаю это привязано к частоте обновления монитора; зато они дают такой FPS даже на FullHD разрешении.
Пока конечно всё это написано неидеально -- по сути под DX и OpenGL я пишу впервые.

Vamos 8th March 2013 00:30

У меня нормально рендерит только OpenGL, только верхняя рамка окна остается и системный трей.
DirectX 9 - это вообще не запустилось, каккие-то ошибки выдает.
Video for Windows - не рендерит т.е. картинка во всех режимах 1:1

nzeemin 8th March 2013 15:44

1 Attachment(s)
Quote:

Originally Posted by Vamos (Post 582463)
У меня нормально рендерит только OpenGL, только верхняя рамка окна остается и системный трей.
DirectX 9 - это вообще не запустилось, каккие-то ошибки выдает.
Video for Windows - не рендерит т.е. картинка во всех режимах 1:1

Всё правильно.
DX9 не работает скорее всего потому что его runtime не установлен на вашей машине.
RenderVfW показывает пока только режим 1, без масштабирования.

Во вложении новая версия рендеров.
Отключил VSync для DX9 и OpenGL -- появилась возможность померить реальный FPS.
В RenderOpenGL сделал оптимизацию для вывода 1:1.

На моей машине теперь показывает такие FPS:
Code:

      902x526 1920x1038 640x288  960x576
VfW        -      -      ~1140      -
DX9    ~260  110-140  440-500  210-300
OpenGL  ~230    ~75      ~478    ~200

Intel Core2 Duo T7500 @ 2.20 GHz
nVidia GeForce 8400M GS
Windows 7 x64

nzeemin 8th March 2013 20:10

Есть ещё такая тема как скалеры семейства hqx.
Для интереса попробовал прикрутить hq2x_32 отсюда: http://code.google.com/p/hqx/
Но он довольно медленный, получается 12 FPS в пике. И расход памяти 16 МБ плюсом.
Зато картинка отличная: http://img-fotki.yandex.ru/get/4129/..._75d91b7a_orig

Вообще подумалось -- надо прикрутить в любом случае -- хотя бы для статичных картинок.

ZEman 8th March 2013 20:52

nzeemin, может лучше не стоит, мазня получается.

Vamos 8th March 2013 21:13

ZEman, нормально получается, этож будет отдельно от эмулятора, не хочешь не влючай.

ZEman 8th March 2013 21:15

да символы какието неправильные получаются.
лучше бы скайнлайн или фосфорный эффект добавить.

Titus 8th March 2013 21:23

Quote:

Originally Posted by nzeemin (Post 582589)
Зато картинка отличная: http://img-fotki.yandex.ru/get/4129/..._75d91b7a_orig

Фу... плохой фильтр.

nzeemin 8th March 2013 22:06

По одному скриншоту не стоит судить о качествах фильтра, скоро можно будет увидеть в действии. По скорости всё оказалось не так плохо -- около 60 FPS, а вот по памяти расход около 64 МБ, но это только на время работы данного режима.

shattered 8th March 2013 23:02

Quote:

Originally Posted by ZEman (Post 582599)
да символы какието неправильные получаются.
лучше бы скайнлайн или фосфорный эффект добавить.

Или сразу поддержку HLSL, как в MAME.

hobot 9th March 2013 23:57

Quote:

Originally Posted by nzeemin (Post 582459)
что пользователям не понравился фулскрин,

Мне понравился! ) Только в таком режиме и сижу теперь, но как я писал - это фулскрин для эмулятора, а не для УК-НЦ экрана ) Вот по поводу картинки в сборке 499 правый край экрана УК-НЦ иногда довольно отчётливо край нижнего последнего
символа рисует где-то в середине (но покраю - в смысле не снизу) или наоборот опускает его до уровня нижней рабочей области. Иногда вся верхняя половинка
экрана как-бы на пиксель (экрана реального) сдвинута и получается не прямая линия а как бы на -+1 сдвинутая, скрин я один уже делал, по возможности ещё сделаю, надо просто поймать этот момент )


Quote:

Originally Posted by nzeemin (Post 582589)
Зато картинка отличная:

Впервые (наверное) с Titusom одного мнения о графике, у меня в одном из граф-ред. для обработки статичных картинок есть этот фильтр, я его пробовал
для скриншотов, ИМХО: Самый худший из всех что я видел.

Пока ещё не понял сути нововведений и не пощупал Render-Tester - в общем пока
не понял что это, надо поглядеть )


Quote:

Originally Posted by shattered (Post 582623)
как в MAME.

MAME - это мама MESSa ?

shattered 10th March 2013 00:01

MAME и MESS сейчас фактически одно и то же -- они собираются из тех же исходников, отличаются только набором эмулируемых систем. При желании можно собрать UME, который будет уметь все сразу.


All times are GMT +4. The time now is 02:55.

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