новый мегагигасуперкрутой эмулятор для буханки

emulators

Postby ketmar » 04 Sep 2012, 09:15

да, GNU/Linux only. и нестандартная система сборки. и требует jim-tcl. а кто обещал, что будет легко? зато:
* эмулирует 48 и 128 с точным следованием за лучом;
* эмулирует пентагон с правильным бордером (а FUSE — сосёт);
* глючит в эмуляции ВГ;
* криво, но пытается эмулировать скорпион;
* имеет офигенную консоль a-la quake, с толпой команд и встроеным tcl;
* нихера не работает нормально на хороших саундкартах (звук придётся вырубать);
* ах, да: офигенный режим noflic для просмотра этих… как их… демок с гигаскрином — так, кажется, называется; у FUSE его тоже нет.

зачем? а не знаю. так просто. можно считать, что это DSP5. хобби у меня такое — писать эмуляторы спекки.

нет, пентэвы, 16c и прочее эмулировать не буду.

если вдруг найдётся псих, который захочет это собрать, то:
система сборки
её надо собрать при помощи прилагаемого файла 0build.sh и сделать, например:
sudo cp bin.unix/jam /usr/local/bin
да, там один бинарь в итоге.
потом взять вот это, сказать jam (оно отконфигурится) и снова jam (оно соберётся). и запустить. и офигевать от отсутствия документации.

ах, да. для сборки надо:
SDL
jim-tcl (конфигур скажет урл, где его брать)
libzip
imlib2
libspectrum из FUSE.

почти весь код — WTFPL.

спрашивайте ваши вопросы, я читаю форум регулярно, раз в месяц.
User avatar
ketmar
 
Posts: 36
Joined: 06 Apr 2011, 06:08
Group: Registered users

Postby lvd » 04 Sep 2012, 10:08

ketmar wrote:нет, пентэвы, 16c и прочее эмулировать не буду.

Спасибо, ненужно. Закопать.
F̞͖̭̿̔ͯu̐̅cͬ̑ͩk̨̤̳͇̮̭̪̠̽̿̓̆ͭͩ ̷̩̰͎̩͓̘̾̀ͬ̊ͭ͛ͅda̝̺͙̬͎̝̾͟ ̰̜̝̯͉̯̖̓̎́ͨ̽ͫ͟f̟͇̭̀ͬͨͭ̐̚u̹̼̹̗̞͑̔͂͐̚cͭ̅̊̆̒̆ǩ̝̩̯́ͥ̔̍̑ḭ͓͍̳̬ͦ̽͂n͍͎͈̈̅ͩͬ ̊ͫ̂̾̑̈́f̲͚͉͓͗̋́ͧͦ̅ȗ͇̲̻͈̲̅̎͗͒ͭ͡c̬̟̠̹̯̈́ͩ͘ͅk̫̠̻̋͜a̲͒̾̇!͙͕̺͉̗̩̲̂̏̄̀
User avatar
lvd
 
Posts: 7227
Joined: 07 Apr 2007, 21:28
Group: Registered users

Postby ketmar » 04 Sep 2012, 16:06

а у меня доков нет нормальных. выдирать из анрыла и ты пы не хочу. дайте идиоту ссылки на доки — будет.
User avatar
ketmar
 
Posts: 36
Joined: 06 Apr 2011, 06:08
Group: Registered users

Postby lvd » 04 Sep 2012, 16:30

F̞͖̭̿̔ͯu̐̅cͬ̑ͩk̨̤̳͇̮̭̪̠̽̿̓̆ͭͩ ̷̩̰͎̩͓̘̾̀ͬ̊ͭ͛ͅda̝̺͙̬͎̝̾͟ ̰̜̝̯͉̯̖̓̎́ͨ̽ͫ͟f̟͇̭̀ͬͨͭ̐̚u̹̼̹̗̞͑̔͂͐̚cͭ̅̊̆̒̆ǩ̝̩̯́ͥ̔̍̑ḭ͓͍̳̬ͦ̽͂n͍͎͈̈̅ͩͬ ̊ͫ̂̾̑̈́f̲͚͉͓͗̋́ͧͦ̅ȗ͇̲̻͈̲̅̎͗͒ͭ͡c̬̟̠̹̯̈́ͩ͘ͅk̫̠̻̋͜a̲͒̾̇!͙͕̺͉̗̩̲̂̏̄̀
User avatar
lvd
 
Posts: 7227
Joined: 07 Apr 2007, 21:28
Group: Registered users

Postby ketmar » 05 Sep 2012, 06:48

вот жеж… теперь придётся эту портянку читать. благодарю, как дочитаю и набыдлокодю — напишу.
User avatar
ketmar
 
Posts: 36
Joined: 06 Apr 2011, 06:08
Group: Registered users

Postby lvd » 05 Sep 2012, 07:45

если портянка покажется вдруг нераспарсиваемой, то спрашивай у её аффтара, который лвд. Вроде как лвд обиснять умеет понятнее, чем писать доки :-D
F̞͖̭̿̔ͯu̐̅cͬ̑ͩk̨̤̳͇̮̭̪̠̽̿̓̆ͭͩ ̷̩̰͎̩͓̘̾̀ͬ̊ͭ͛ͅda̝̺͙̬͎̝̾͟ ̰̜̝̯͉̯̖̓̎́ͨ̽ͫ͟f̟͇̭̀ͬͨͭ̐̚u̹̼̹̗̞͑̔͂͐̚cͭ̅̊̆̒̆ǩ̝̩̯́ͥ̔̍̑ḭ͓͍̳̬ͦ̽͂n͍͎͈̈̅ͩͬ ̊ͫ̂̾̑̈́f̲͚͉͓͗̋́ͧͦ̅ȗ͇̲̻͈̲̅̎͗͒ͭ͡c̬̟̠̹̯̈́ͩ͘ͅk̫̠̻̋͜a̲͒̾̇!͙͕̺͉̗̩̲̂̏̄̀
User avatar
lvd
 
Posts: 7227
Joined: 07 Apr 2007, 21:28
Group: Registered users

Postby zxmak » 26 May 2013, 11:42

ketmar wrote:эмулирует пентагон с правильным бордером (а FUSE — сосёт);


так ведь в эмуляции пентагона основная проблема - аттрибуты/пикселы, а не бордюр.
Пока что вроде нет эмулей полностью корректно эмулирующих переключение аттр/пиксел у пентагона :)
В ZXMAK2 сейчас тайминги пентагона максимально близкие к оригиналу из всех эмулей, но сама фишка смены порядка выборки аттр/пиксел не эмулируется.
Эмулятор-виртуальная машина ZX Spectrum - ZXMAK2: https://zxmak2.codeplex.com/
User avatar
zxmak
 
Posts: 83
Joined: 26 Oct 2012, 02:25
Group: Registered users

Postby deathsoft » 26 May 2013, 21:50

zxmak wrote:Пока что вроде нет эмулей полностью корректно эмулирующих переключение аттр/пиксел у пентагона

И чем унриал эмулирует неправильно? На каком тесте или деме это можно увидеть (сравнить скриншот унриала и скриншот реала, чтобы были различия, ну или если там важна динамика, то покадровое видео с реала и из унриала).
User avatar
deathsoft
 
Posts: 4666
Joined: 07 Apr 2007, 00:58
Group: Registered users

Postby zxmak » 26 May 2013, 22:55

deathsoft wrote:И чем унриал эмулирует неправильно?


в унриал вообще тайминги пентагона довольно далеки от риала - разница порядка 5-6 тактов, т.е. ошибка более чем 8 пикселов. Кроме того в унриал иногда при отладке замечал недостачу в 1-2 такта на выполнении больших процедур.

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

В ZXMAK2 сейчас тайминги максимально близки к риалу, но смена аттр/пиксел не эмулируется, поэтому иногда возникает ошибка в 1 такт. Т.е. в ZXMAK2 тайминги всегда статичны, а на риале они колеблются в пределах 1-го такта.

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

Ни один из эмулей корректно пентагон не эмулирует. В унриале ошибка эмуляции пентагона самая большая из протестированных эмулей :dontknow:
Эмулятор-виртуальная машина ZX Spectrum - ZXMAK2: https://zxmak2.codeplex.com/
User avatar
zxmak
 
Posts: 83
Joined: 26 Oct 2012, 02:25
Group: Registered users

Postby lvd » 27 May 2013, 01:38

Схема не хитрая, а я бы даже сказал, что тупая. Каждый свободный такт она лепит обращение то в атрибут, то в пиксели, складывая результат в ИР22-23, а раз в 4 такта из оттуда данные копируются в рисовалку экрана. Процу даётся один такт при первой же его потребности (он требует не чаще раза в 3 такта), соответственно у схемы всегда есть возможность считать за знакоместо два требуемых байта.

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

В пентеве с этим всё ещё хуже -- выборка начинается за 2 знакоместа до, но тем не менее тоже дем, которым это критично -- я не видел.
F̞͖̭̿̔ͯu̐̅cͬ̑ͩk̨̤̳͇̮̭̪̠̽̿̓̆ͭͩ ̷̩̰͎̩͓̘̾̀ͬ̊ͭ͛ͅda̝̺͙̬͎̝̾͟ ̰̜̝̯͉̯̖̓̎́ͨ̽ͫ͟f̟͇̭̀ͬͨͭ̐̚u̹̼̹̗̞͑̔͂͐̚cͭ̅̊̆̒̆ǩ̝̩̯́ͥ̔̍̑ḭ͓͍̳̬ͦ̽͂n͍͎͈̈̅ͩͬ ̊ͫ̂̾̑̈́f̲͚͉͓͗̋́ͧͦ̅ȗ͇̲̻͈̲̅̎͗͒ͭ͡c̬̟̠̹̯̈́ͩ͘ͅk̫̠̻̋͜a̲͒̾̇!͙͕̺͉̗̩̲̂̏̄̀
User avatar
lvd
 
Posts: 7227
Joined: 07 Apr 2007, 21:28
Group: Registered users

Next

Return to Эмуляторы

Who is online

Users browsing this forum: No registered users and 2 guests