Зимний формат не то, это не опенеир. Если уж выбирать что отменять, я бы выбрал его
«Некоторые видеопроцы используют другой способ вывода видео. Каждую строку изображения дисплей лист выполняется полностью, но отрисовывается не фреймбуфер (битмап 1024х512, например), а буфер строки (1024х1)»

Пишу сейчас про Atari Jaguar (а это ровесница Playstation 1) — там как раз по сути синтез таких подходов.
На видеовыход подаётся информация именно из строки-буфера в то время как в теневую такую же рисуются пиксели для следующей строки. При этом видеоадаптер для построения следующей строки проходит по командам дисплейного списка, где типовыми объектами являются битмапы из которых один сканлайн за раз переносится со всевозможными наложениями и прозрачностями диктуемыми порядком отрисовки. Таким образом это могут быть как спрайты из атласа так и почти полноэкранными битмапами в которые рендерил специализированный процессор. Черновик статьи с этим можно сейчас посмотреть тут: gamedev.ru/flame/forum/?id=231027&page=7&m=4976559#m95
как минимум в зимнем формате останется.
  • avatar tsl
  • 0
Я понимаю, что сам дихалт не закрывается? В каком формате он будет продолжаться?
Грустная новость.
  • avatar VBI
  • 0
Жаль! Весёлые были времена!
  • avatar sq
  • 3
Ты прав.
И ты вполне сценер!)
блин, что за тема удалять посты? все, что написано в сети, должно оставаться в сети.
или ты как страус — спрятал голову в песок и все? даже неудавшиеся посты это жизнь — жизнь Хайпа.
хоть я не фиг и сценер, но считаю себя вправе высказать такое мнение.
прошу простить меня за такое имхо.
  • avatar Weiv
  • 1
Спасибо за развернутый ответ. Я многое не понял, но, возможно, позже разберусь.
  • avatar Robus
  • 5
… продолжение ...
— Далее, что мне нужно от эмулятора ещё. На данный момент SPECCY.DLL, это прокладка между группой библиотек, таких как COREZ80.DLL и PENTAGON.DLL. В COREZ80.DLL находится эмулятор ядра вызываемый из этой библиотеки процедурой CoreStep. А в PENTAGON.DLL находится вся периферия и непосредственная схема самого компьютера. Если я захочу сделать эмуляцию оригинального спектрума, то я добавлю ZXORIGINAL.DLL, если захочу TS-CONF, то добавлю EVOLUTION.DLL. То есть, есть некая обвязка компьютера, находящаяся в процедуре «Z80_Half_Tik_Step()», которая вызывается каждые пол такта основного генератора. Я понимаю, что события могут быть независимыми и иметь разное тактирование, но ради хоть какой-то гибкости и максимальной скорости был выбран именно такой путь. Как это выглядит в коде, который могу добыть на данный момент сохранённый в почте, простите но я не дома и не доступен мой рабочий комп:

PROCEDURE Z80_Half_Tik_Step();
BEGIN
   Z80ST.CLK:=Z80ST.CLK XOR 1;
////////
   IF Z80ST.BUS.MREQ=0 THEN BEGIN
    IF Z80ST.BUS.RD=0 THEN BEGIN
     CASE ZBUSWAIT(BUSWAITMEM) OF
      0:BEGIN
       Z80ST.RDA:=Z80_RD_Mem(Z80ST.BUS.ADDR);
      END;
      1:Z80ST.RDA:=$FF;
     END;
    END;
   END ELSE ZBUSRESET(BUSWAITMEM);
////////
   IF Z80ST.BUS.IORQ=0 THEN BEGIN
    IF Z80ST.BUS.RD=0 THEN BEGIN
     CASE ZBUSWAIT(BUSWAITPORT) OF
      0:BEGIN
       Z80ST.RDA:=Z80_RD_Port(Z80ST.BUS.ADDR);
      END;
      1:Z80ST.RDA:=$FF;
     END;
    END;
   END ELSE ZBUSRESET(BUSWAITPORT);
////////
   CoreStep(Z80CORE); // <--- ВОТ ТУТ ПОЛ ТАКТА ЯДРА ВЫПОЛНЯЕТСЯ
////////
   IF Z80ST.BUS.MREQ=0 THEN BEGIN
    IF Z80ST.BUS.WR=0 THEN BEGIN
     CASE ZBUSWAIT(BUSWAITMEM) OF
      0:BEGIN
       Z80_WR_Mem(Z80ST.BUS.ADDR,Z80ST.BUS.DATA);
      END;
     END;
    END;
   END ELSE ZBUSRESET(BUSWAITMEM);
////////
   IF Z80ST.BUS.IORQ=0 THEN BEGIN
    IF Z80ST.BUS.WR=0 THEN BEGIN
     CASE ZBUSWAIT(BUSWAITPORT) OF
      0:BEGIN
       Z80_WR_Port(Z80ST.BUS.ADDR,Z80ST.BUS.DATA);
      END;
     END;
    END;
   END ELSE ZBUSRESET(BUSWAITPORT);
END;

Выше приведена тестовая заглушка для тестирования ядер и периферии. Вот данный DLL я так же настраиваю в своём IDE. Точно таким же образом внутрь внедрён и компилятор музыки от MASON'а, я описываю себе скрипты или, DLL, и внедряю в рабочую оболочку IDE, который по своей сути это эмулятор. Я на ходу меняю музыку, нажимаю откомпилировать и тут же данные от редактора попадают прямо в IDE, в код, который тут же перекомпилируется и я увижу результат действий. Точно такие же утилиты внедрены по графике. То есть я говорю о том, что сам эмулятор мне не нужен вообще, мне нужен встроенный гибкий эмулятор как инструмент, для непосредственного творчества.

— Что ещё очень нужно, это работа с образами на ходу. У меня в эмуляторе нет этого и это очень не удобно. Единственный корректно работающий эмулятор по образу IMG, это Unreal. К сожалению нет работы с TAP или TRD, но есть с IMG. Смысл заключается в том, что бы я мог увидеть результат прямо на ходу. Процесс разработки, это отлаживание каждого пикселя, иногда в конце демки нужно поменять один байтик, и жутко задалбывает постоянно открывать образ, кликать-шмыкать-жмакать и крутить всё на ускоренной перемотке. Благо, IMG перечитывается прямо на ходу, я могу откомпилировать, и результат, без каких либо действий, сразу попадает в эмулятор. Я так отлаживал работу с SD-CARD, для этого мне пришлось написать собственный генератор образов ROBIMG. И главное, что эмулятор Unreal правильно открыл файл не заблокировав его на запись. По сути я только писал код, нажимал в эмуляторе ресет и смотрел на результат.

— Насчёт дебаггера. Все дебаггеры которые в текущих эмуляторах лично мне практически бесполезны. Мне нужна тесная связка с пишущимся кодом, а не простой дебаггер. Я знаю, что в Unreal, можно подгружать метки, но этого ооооочень мало. Мне нужен REAL-TIME-ONE-FRAME, с тем, что я пишу и что есть в реальности, ради чего я и по-написывал кучу утилит. Конечно-же приятно иметь качественный функционал, но как правило это нужно только для взлома. А для непосредственного процесса написания, — код я и так вижу на экране. А вот hacking, это отдельная история. И тут от дебаггера нужно очень много, ссори но я не буду сейчас описывать всего, поскольку это будут сотни простыней текста. Одно могу сказать, главного, чего нет, это дебаггера завязанного на времени. То есть есть код, кторый что-то распаковывает в какую-то область памяти, с какой-то там страницей, и когда-нибудь это исполнит, потом затрёт это новым куском и снова запустит. Вот нужен был бы такой дебагер, с таким управлением, который учитывал бы, что при определённых условиях, нужно реагировать на брейк-поинт, в зависимости от времени и обстоятельств.

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

Будем считать, что разработчик не я (как маргинальная, малоуважаемая и малопредсказуемая личность в здешних кругах), а, к примеру, автор Спектакулятора, или кто-то из местных, в общем, авторитет.
Не знаю зачем так считать? По-моему на твой «блюр» большинство отреагировало очень весело. Хотя для меня осталось загадкой почему был выбран такой шаг? Да же, если ты сделаешь скриншоты всего кода, всех менюшек, — никто не будет да же пытаться украсть твою идею. Ну а хейтерсво, это извечная проблема, и я многое могу не принимать на HYPE, но обвинить его в том, что тут хейтят за иконки DELPHI, уж точно не могу. Насчёт авторитетов, тут нужно посещать другие форумы, совсем с другими правилами, на которых люди «чмырят» друг-друга и извергают желчь в каждом сообщении.

Я предлагаю всем желающим пофантазировать, подумать, и написать ответы на эти вопросы, в отношении себя лично — «нужен ли мне новый эмулятор Спектрума? готов ли я вкладываться в его разработку? за какие особенности и функции?».
Я пофантазировал, понимаю, что это очень маленькая часть того, что хотел бы, но на данный момент сидя за ноутом в отеле я смог выдать только это. Я прекрасно пойму, если все выше перечисленное просто проигнорируется. Но ты, Wiev, сам сказал, что хочешь услышать, чего бы хотелось.
  • avatar Robus
  • 5
Пока писал текст в том посте он удалился… Так что тут оставлю… ТРИ часа его набивал…

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

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

За какие особенности и функции эмулятора они готовы в него финансово вложиться (в разработку или за готовый продукт)?
Не плохо было бы к нему ещё добавить цену, хотя бы примерную. Пока, что потолок был озвучен 150 долларов. Ответ — готов вложиться финансово ИСКЛЮЧИТЕЛЬНО в разработку. Причём не задавайте вопрос почему именно так исключительно, ведь результатом будет 100% негатив по отношению ко мне.

За какие особенности и функции эмулятора ...
Вот эти слова заставили меня думать, что моё мнение интересно. Только тут есть серьёзный подводный камень, я бы сказал — булыжник, весящий тонны. Если взять, например, пожелания Introspeca, то скорее всего 100% того, что захочет он не нужно будет мне, и мало того будет мешать. И точно так же всё что нужно мне, 100% будет мешать Introspecу. Мы с ним не враги, просто мы по разному достигаем результата. Уверен, что есть ещё 10 людей, с которыми мы ну никак не сойдёмся во мнениях что нужно в эмуляторе. Поэтому, я не знаю для кого пишется данный эмулятор? У меня уже сейчас установлено три эмулятора, в которых я тестирую свой код каждый день. Ни один я не хочу купить, поскольку в них мне интересна только одна опция — «покажи мне картинку как на ZX-Spectrumе». Все остальные функции используются на 1-2% в лучшем случае. Да же если функции очень круты, всё равно это не то, что мне нужно.
Но я перечислю что я хотел бы в эмуляторе, скажем так. что мне крайне необходимо:
— Начну с того, что я на данный момент использую примерно около 20-ти собственных утилит для создания софта непосредственно для Speccy. Поэтому львиная доля необходимого будет перечислена из того, что есть и прикручено по мере необходимости. Для этого я вынужден был написать собственный IDE, в котором использую эти утилиты, помогающие мне рассчитывать времена, память, последовательность логики, поиск глюков, отладка новых устройств или блоков.
— Итак по скольку нет нужного мне эмулятора и компилятора, я вынужден был написать собственный и «то и другое», который на данный момент является частью IDE. Эмулятор представляет собой настраиваемый на ходу инструмент в виде DLL. Итак есть — IDE, в который внедрён ASAM(компилятор), в который внедрён, SPECCY.DLL эмулятор, в который внедрена конфигурация. Самая простая конфигурация это эмуляция Z80, с учётом таймингов PENTAGON, и его полным функционалом по периферии (TAP/TRD/KEYBOARD), без видео. Без видео самый быстрый вариант и 4-ёх ядер хватает, на то, что бы IDE на заднем плане всё за меня компилировал, пока я набиваю текст кода. Так же, если мне надо посмотреть визуальную часть, тогда в коде дописывается скрипт настраивающий эмулятор SPECCY.DLL. Приведу пример как такое выглядит, я пишу код.

   PHASE "$ASAM.VirtalPageMode" ; с этого момента фиксируется теневая область памяти, и меток
   ORG 18432
START
   LD A,2
   OUT (254),A
   LD B,33  ; DELAY
   DJNZ $
   LD A,0
   OUT (254),A
   LD B,33  ; DELAY
   DJNZ $
END EQU $
SIZE EQU END-START
   EQU $ZX.INTH=0       ;горизонтальная точка развёртки экрана
   EQU $ZX.INTV=100   ;вертикальная точка развёртки экрана
   EQU $ZX.R.PC=START
   EQU $ZX.R.Break=END
   EQU $ZX.r.SP=START
   EQU $ZX.r.IY=23610
   EQU $ZX.r.IM=1
   EQU $ZX.INTMAX=65536 ;если код полетит мима брейка, то на 65536ом такте всё равно прервётся.
   EQU $ASAM.Emul.Type=1  ; это визуалка PENTAGON-71680, после вызова эмулятора командой "RunEmulZXne", всегда сбрасывается в ноль
   EQU $ZX.r.Page=16
   MoveMemAZ START,START:16,SIZE  ;забрасываем код в эмулятор
   RunEmulZXne
   UNPHASE ;метки и память восстанавливаются и данный код не влияет, если, конечно была команда PHASE с режимом VirtalPageMode.

После отработки этого, я получу картинку нарисованной линии на бордюре на пентагоне. При редактировании текста, происходит перекомпиляция, и я вижу тут же на ходу новую картинку. Приведённый пример кода, конечно же обрамлён в макросы, и я не пишу тонну кода каждый раз, — я привёл как пример. Если у меня будет открыто на редактирование два текста, с таким вот кодом, я получу две картинки. Мало того, я могу написать параллельно в двух окнах два кода, как сравнительный пример одного с другим, и засинхронизировать их друг с другом командой «RunEmulZXne 1230H,2» и «RunEmulZXne 1231H,2». То есть эмулятор будет ждать окончания компиляции и запуска двух кусков кода с ID=123xH, где x=номер эмулятора. Как только они октомпилируются, то синхронно запустятся. Например таким образом я могу сравнить два плеера друг с другом. Плееры как пример применения. Например плеер моего MASONа, и PT3, написать код, который будет сравнивать результат работы двух плееров, и остановится в момент, когда что-то где-то не совпадёт. Именно так я сейчас тестирую MASON 2.99, на предмет проигрывания цифры в сравнении с DMMомо.
  • avatar sq
  • 0
под macOS

:3
  • avatar VBI
  • 3

на визу сможешь?
  • avatar sq
  • 3
Готов заплатить минимум $10 за эмулятор под macOS с дебаггером, имеющим все возможности анриловского (трейсинг, навигация по коду, поддержка меток, подсчёт тактов и т. п.)
Да, речь именно о корректной потактовой эмуляции выборки байтов растра и атрибутов.
  • avatar Weiv
  • 0
включая мигающие пикселы, как обсуждалось пару лет назад на форуме zx-pk.ru
Надеюсь, что речь идет о глитчах Пентагона, которые мы и тут обсуждали здесь: hypr.ru/blog/773.html?

Ок, на почту писать ничего не надо. Я буду считать твое сообщение пледжем, требования твои понятны, почта есть. На форуме поддержки я планирую собрать людей, заинтересованных в разработке релиза, и следить за порядком. Этот пост я стереть при всём желании не смогу — он в новостях, значит, я могу стереть только содержание, а комменты останутся.
Ну и зачем в таком случае было нужно городить весь этот безумный огород?

Хорошо, предлагаю компромисс. Я перед лицом своих товарищей торжественно обещаю тебе, что если ты допилишь полноценные времянки пентагона (включая мигающие пикселы, как обсуждалось пару лет назад на форуме zx-pk.ru), плюс сделаешь 100% точный снег в 48к спектрумах, я задоначу тебе те же самые 10 фунтов, что я заплатил за Spectaculator.

При этом, я не буду ничего писать тебе на почту, потому что это маразм, и не пойду на твой секретный форум, т.к. мне совершенно не интересно общаться с контингентом, который ты там пытаешься собрать. Если тебе хочется сохранить вещественное док-во моего обещания — будь добр, не стирай этот пост вместе со всеми комментариями.
  • avatar Weiv
  • 0
Проблема всё-таки, мне кажется, не в том, что я стер свои предыдущие посты. Кроме тебя и кодера Красок, скорее всего, мало кто даже и заметил их удаление. Хотя перед вами мне за это неудобно, потому что там действительно была ценная информация, которую для истории неплохо было бы сохранить. Но в этом плане от меня по-прежнему можно всего ожидать.

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

Я, если хорошо подумать, твой идеальный клиент. Это потому, что я тот тип кодера, который как раз понимает, чего не хватает в существующих эмуляторах, и который очень заинтересован закрыть оставшиеся недочёты существующих эмулаторов. Я, если ты помнишь, сразу обрадовался новому эмулятору, проверил его на всех своих стандартных «трудных случаях» и притащил их тебе тоже. Больше того, чтобы разобраться в проблеме эффекта из Kpacku Deluxe, я притащил тебе кодера красок, который вообще говоря обыкновенно ничего тут не читает и не пишет. Мне всё это хотелось сделать, потому что хорошие эмуляторы нужны, а развивающиеся хорошие эмуляторы нужны особенно.

Кроме того, я был рад что на Hype будет лежать в одном месте вся эта информация, не только для меня или тебя или кодера красок, а для любого заинтересованного человека.

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

Ну вот ты и получаешь то же самое в ответ. Проблема не в русскоязычном сегменте, а в тебе. Если ещё точнее, проблема в том, что заинтересованные люди на Хайпе слишком хорошо тебя знают. Очень рад что находятся ещё наивные люди, готовые пообещать тебе деньги за кота в мешке. Видимо, эпопея с Вегой+ не всех ещё научила осторожности. Надеюсь, что ты найдёшь в себе ресурсы организма не разочаровать их так же, как ты разочаровал, например, меня.
  • avatar Weiv
  • 0
У меня есть недостаток энтузиазма для всего вышеописанного, и прогноз, что даже со всеми вышеописанными плюшками знакомая мне русскоязычная аудитория реагировала бы примерно так же, как сейчас. Общение в надежде получить информацию, что надо людям, было, в том числе и здесь, скриншот какой-никакой я сделал, прошлое у проекта есть, накопилось много изменений, что будет нового, можно оценить из скриншота, несмотря на размытие. Кому надо, тому достаточно, остальным — лишь бы покритиковать да потравить. Некоторые так прямо на говно исходят.