Page 1 of 4

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

PostPosted: 04 Sep 2012, 09:15
by ketmar
да, 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.

спрашивайте ваши вопросы, я читаю форум регулярно, раз в месяц.

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

PostPosted: 04 Sep 2012, 10:08
by lvd
ketmar wrote:нет, пентэвы, 16c и прочее эмулировать не буду.

Спасибо, ненужно. Закопать.

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

PostPosted: 04 Sep 2012, 16:06
by ketmar
а у меня доков нет нормальных. выдирать из анрыла и ты пы не хочу. дайте идиоту ссылки на доки — будет.

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

PostPosted: 04 Sep 2012, 16:30
by lvd

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

PostPosted: 05 Sep 2012, 06:48
by ketmar
вот жеж… теперь придётся эту портянку читать. благодарю, как дочитаю и набыдлокодю — напишу.

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

PostPosted: 05 Sep 2012, 07:45
by lvd
если портянка покажется вдруг нераспарсиваемой, то спрашивай у её аффтара, который лвд. Вроде как лвд обиснять умеет понятнее, чем писать доки :-D

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

PostPosted: 26 May 2013, 11:42
by zxmak
ketmar wrote:эмулирует пентагон с правильным бордером (а FUSE — сосёт);


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

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

PostPosted: 26 May 2013, 21:50
by deathsoft
zxmak wrote:Пока что вроде нет эмулей полностью корректно эмулирующих переключение аттр/пиксел у пентагона

И чем унриал эмулирует неправильно? На каком тесте или деме это можно увидеть (сравнить скриншот унриала и скриншот реала, чтобы были различия, ну или если там важна динамика, то покадровое видео с реала и из унриала).

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

PostPosted: 26 May 2013, 22:55
by zxmak
deathsoft wrote:И чем унриал эмулирует неправильно?


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

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

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

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

Ни один из эмулей корректно пентагон не эмулирует. В унриале ошибка эмуляции пентагона самая большая из протестированных эмулей :dontknow:

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

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

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

В пентеве с этим всё ещё хуже -- выборка начинается за 2 знакоместа до, но тем не менее тоже дем, которым это критично -- я не видел.