Использование в NeoGS софтядра Z80 (вопросы к разработчикам)

NeoGS software and hardware

Postby AlexBel » 02 Jun 2019, 10:40

Всем привет.

Вопросы к разработчикам NeoGS:
1. Рассматривалась ли возможность использования в NeoGS софтядра Z80 в FPGA (T80 или другого)? Если рассматривалась, то почему этот вариант не был принят? Были ли практические попытки использования в NeoGS софтядра? Насколько я помню, на Cyclone2 ядро T80 удавалось разгонять до 50МГц.
2. Используются ли в программе Z80 недокументированные команды?
3. Исходников кода Z80, выложенных здесь: http://svn.zxevo.ru/listing.php?repname=ngs, достаточно для самостоятельной сборки? Честно скажу, исходники, пока что, не смотрел, решил сперва спросить - от этого зависят дальнейшие действия.
4. Какой ассемблер использовался для сборки кода Z80 проекта?

Цель - реализация NGS на FPGA и подключение к другому компьютеру. Кроме электрической схемы, придётся корректировать и пересобирать исходники Z80 и FPGA, отсюда и вопросы про исходники.
Bye!
User avatar
AlexBel
 
Posts: 5
Joined: 26 Mar 2010, 20:19
Location: Volgograd, Russia
Group: Registered users

Postby lvd » 03 Jun 2019, 04:14

1. нет, в 2005 году брать жирные циклоны, обвешивать их преобразователями уровней и проч. было несколько геморройно. Кроме того, в НГС возможно на лету вливать в FPGA прошивку, загруженную с компа. Это, очевидно, не очень тривиально делать, когда нет процессора в незашитой FPGA. Рассматривался вариант замены всего GS на программный эмулятор на арме, чтоб была совместимость только по командам прошивки GS 1.05.

Ещё важно отметить, что все эти T80 -- это именно эмулятор Z80, пусть и на верилоге. Не факт, что пройдёт все тесты zexall, например.

2. Конечно!

3. Для сборки достаточно зашить флеш (full_ngs.rom) и CPLD. Точнее, этого достаточно,чтоб заработал NGS. В роме есть следующие части:
- загрузчик FPGA. Он работает только на CPLD и Z80. Может грузить прошивку из RAM и из ROM.
- загрузчик кода GS 1.05 в RAM. Далее соотв. страницы RAM помечаются как read-only и запускается GS 1.05

4. ASL, лежит там же в тулзах
Многого нет здесь: http://lvd.nedopc.com
Image
User avatar
lvd
 
Posts: 1678
Joined: 07 Apr 2007, 22:28
Group: Registered users

Postby lvd » 03 Jun 2019, 04:18

AlexBel wrote:Цель - реализация NGS на FPGA

На какой FPGA? И зачем, если NGS уже на FPGA? :)

и подключение к другому компьютеру.

К какому?

Кроме электрической схемы, придётся корректировать и пересобирать исходники Z80 и FPGA, отсюда и вопросы про исходники.

При этом будет потеряна, очевидно, совместимость с ориг. NGS, в котором можно вливать на лету свои прошивки FPGA.
Многого нет здесь: http://lvd.nedopc.com
Image
User avatar
lvd
 
Posts: 1678
Joined: 07 Apr 2007, 22:28
Group: Registered users

Postby AlexBel » 03 Jun 2019, 12:52

lvd wrote:На какой FPGA? И зачем, если NGS уже на FPGA? :)

Cyclone II, III, IV. NGS не на FPGA. Его основа - процессор Z80, а FPGA, насколько я могу судить по схеме, просто обвязка, "чипсет". Моя цель - интегрировать полностью в FPGA. Ну, или насколько это вообще возможно.

lvd wrote:К какому?

"Агат". SAA1099, в плане эксперимента, уже подключен (http://forum.agatcomp.ru//viewtopic.php?id=238), но этого мало. Сейчас жду из Китая плату с возможностью установки OPL3. Для полного счастья не хватает сэмплера, поэтому, после некоторых поисков, был выбран NGS. Но использовать его оригинал неудобно, поэтому проект нужно будет где-то подрезать (ненужный функционал), где-то добавить (управление), где-то изменить (интерфейсная часть). А для этого нужно иметь возможность самостоятельно изучить и пересобрать проект.

lvd wrote:При этом будет потеряна, очевидно, совместимость с ориг. NGS, в котором можно вливать на лету свои прошивки FPGA.

В моём случае это как раз ненужный функционал :)

lvd wrote:Рассматривался вариант замены всего GS на программный эмулятор на арме

Дальше рассмотрения дело не пошло?

lvd wrote:Ещё важно отметить, что все эти T80 -- это именно эмулятор Z80, пусть и на верилоге. Не факт, что пройдёт все тесты zexall, например.


Вот https://zx-pk.ru/threads/28219-orion-pro-(orion-power)-skhemy-proshivki-soft.html?p=932337&viewfull=1#post932337 пост темы, которую я когда-то создавал, там упоминается прохождение софтядра T80 теста Zexall. И, думаю, вопрос не в том, насколько софтядро совместимо с оригинальным процессором, а в том, насколько корректно оно будет работать в данном проекте :)

lvd wrote:- загрузчик кода GS 1.05 в RAM. Далее соотв. страницы RAM помечаются как read-only и запускается GS 1.05

Я ещё этот вопрос не успел изучить. Правильно ли я понимаю, что код Z80 исполняется не из ROM, а перегружается в RAM и работает оттуда?

Кстати, вот вопрос - программа Z80 для NGS совместима с железом GS? Т.е. она будет на GS работать?
Bye!
User avatar
AlexBel
 
Posts: 5
Joined: 26 Mar 2010, 20:19
Location: Volgograd, Russia
Group: Registered users

Postby lvd » 03 Jun 2019, 20:18

AlexBel wrote:Дальше рассмотрения дело не пошло?

Конечно не пошло. Решили что поделка, к которой нормально новую программу не напишешь и на которой не пойдут даже все ГС-софты (те, которые грузят свой код в ГС и потом его выполняют) -- не нужна.
Я ещё этот вопрос не успел изучить. Правильно ли я понимаю, что код Z80 исполняется не из ROM, а перегружается в RAM и работает оттуда?

Кстати, вот вопрос - программа Z80 для NGS совместима с железом GS? Т.е. она будет на GS работать?


Оригинальный ром работает точно на 2мб-версии и имеет вроде как проблемы на 4мб (не видит все 4мб, говнокодеры такие говнокодеры были тогда). Но есть фиксы.
В GS ром работает из ПЗУшки, по логике переключения страниц ПЗУшка является нулевой страницей страничной памяти, страницы 1..N -- ОЗУ. Потому оказалось самым логичным сделать ридонли на страницу 0, сэмулировав ПЗУ GS.

Кроме самой оригинальной фирмвары gs1.05, в NGS есть доп. код, который грузит FPGA и потом копирует gs1.05 из флешки в RAM. Он ессно несовместим.

Вот еще что подумал тут.
GS ценен на спектруме тем, что он GS. К нему есть достаточное кол-во софта (игр, дем, тулов). NGS потому с ним и совместим.

Если поставить полный аналог GSа в другой комп, то какой смысл от него останется? Играть моды и семплы, выполняя специфическую gs1.05 под специфическое до уровня кривизны железо GS? Сдаётся мне, что в современном случае самое простое -- взять и сделать плеер модов на каком-нить быстром 32-битном MCU. Будет больше возможностей и гибкости, всего в 3-4 корпусах.
Многого нет здесь: http://lvd.nedopc.com
Image
User avatar
lvd
 
Posts: 1678
Joined: 07 Apr 2007, 22:28
Group: Registered users

Postby lvd » 03 Jun 2019, 20:21

AlexBel wrote:Вот https://zx-pk.ru/threads/28219-orion-pro-(orion-power)-skhemy-proshivki-soft.html?p=932337&viewfull=1#post932337 пост темы, которую я когда-то создавал, там упоминается прохождение софтядра T80 теста Zexall. И, думаю, вопрос не в том, насколько софтядро совместимо с оригинальным процессором, а в том, насколько корректно оно будет работать в данном проекте :)

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

Далее, есть некая разница между случаем когда Z80 настоящий и стоит рядом на плате и когда он внутри вериложный (ВДНХшный). Во втором случае в принципе ситуация проще. Так что -- работать будет.

Ну а вопрос о целесообразности вообще такого деяния, я рассмотрел со своей ТЗ сообщением выше.
Многого нет здесь: http://lvd.nedopc.com
Image
User avatar
lvd
 
Posts: 1678
Joined: 07 Apr 2007, 22:28
Group: Registered users

Postby AlexBel » 03 Jun 2019, 21:35

lvd wrote:Оригинальный ром работает точно на 2мб-версии и имеет вроде как проблемы на 4мб (не видит все 4мб, говнокодеры такие говнокодеры были тогда). Но есть фиксы.
В GS ром работает из ПЗУшки, по логике переключения страниц ПЗУшка является нулевой страницей страничной памяти, страницы 1..N -- ОЗУ. Потому оказалось самым логичным сделать ридонли на страницу 0, сэмулировав ПЗУ GS.
Кроме самой оригинальной фирмвары gs1.05, в NGS есть доп. код, который грузит FPGA и потом копирует gs1.05 из флешки в RAM. Он ессно несовместим.


2 магабайта памяти вполне достаточно. Но оригинальная прошивка умеет делать только 4 голоса, а для NGS заявлено 8 голосов, пока что не понял, как это делается.

lvd wrote:Если поставить полный аналог GSа в другой комп, то какой смысл от него останется? Играть моды и семплы, выполняя специфическую gs1.05 под специфическое до уровня кривизны железо GS?


Смысл его не изменится - он будет выполнять те же самые функции (ну, или немного меньше), что на "Спектруме".
По мне, так понятие кривизны не имеет точных цифр. Как определить, где заканчивается кривизна и начинается прямизна? Если уж говорить о "Спектруме", то он сам по себе изначально крив до невозможности (ИМХО) - это же не пугает тех, кто его до сих пор пользует :)

lvd wrote:Сдаётся мне, что в современном случае самое простое -- взять и сделать плеер модов на каком-нить быстром 32-битном MCU. Будет больше возможностей и гибкости, всего в 3-4 корпусах.


Я, безусловно, согласен насчёт использования современных контроллеров/процессоров, но GS можно реализовать, как я считаю, используя плату для разработки, разработанную (каламбур) мной для "Агата". И это потребует минимум схемных изменений. Для реализации сэмплера на, скажем, STM32, потребуется разработка новой платы. Возможно, позже я так и поступлю, но сейчас хочу использовать то, что есть.

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


Наверное, самый лучший способ проверить - попробовать сделать. А что касается эмулятора, то по мне, так если софтядро обеспечивает требуемое, то без разницы, как его назвать, я человек без предрассудков и моя симпатия к теплу и ламповости имеет вполне определённые границы.
Извиняюсь за отсталость, но что значит "гяф крякнет, именно эти зафиксенные сорцы не продолбаются" - можно попроще? ;)

lvd wrote:Ну а вопрос о целесообразности вообще такого деяния, я рассмотрел со своей ТЗ сообщением выше.


И я очень благодарен за информацию и выраженное мнение. Большое спасибо!

И немного почти оффтопика - мысль о реализации сэмплера на современных контроллерах мне уже приходила в голову, но плотно этим вопросом я, пока что, не занимался и даже теорией владею не очень. Есть ли информация по организации проигрывания сэмплов с заданной тональностью? Таблицы, расчёты... Возможно, в Интернет этой информации довольно много, но, к сожалению, обилие информации, так же, как её недостаток, создаёт проблемы - не знаешь заранее, каким источникам можно доверять. А безграмотных теоретиков, поучающих других, увы, становится всё больше.
Last edited by AlexBel on 03 Jun 2019, 21:46, edited 1 time in total.
Bye!
User avatar
AlexBel
 
Posts: 5
Joined: 26 Mar 2010, 20:19
Location: Volgograd, Russia
Group: Registered users

Postby lvd » 03 Jun 2019, 21:50

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


Да там и реализовывать нечего -- многие контроллеры имеют встроеный ЦАП (например многие из stm32), и аналогично же многие -- выход I2S (не путать с I2C!), куда можно подцеплять внешний аудио-сигмадельта-цап (которых тоже миллионы разных).

Вся проблема как обычно -- в прошивке, тут ее писать надо будет :)
А гс с прошивкой уже есть и играет. С этой точки зрения GS конечно предпочтителен, взял и используешь.
Многого нет здесь: http://lvd.nedopc.com
Image
User avatar
lvd
 
Posts: 1678
Joined: 07 Apr 2007, 22:28
Group: Registered users

Postby lvd » 03 Jun 2019, 21:52

AlexBel wrote:Но оригинальная прошивка умеет делать только 4 голоса, а для NGS заявлено 8 голосов, пока что не понял, как это делается.

Это удвоение относительно GS, где было 4 независимых канала. Штатная GSная ромка естественно про это ничего не знает.

8 каналов играются вот тут например: viewtopic.php?f=31&t=8944
Многого нет здесь: http://lvd.nedopc.com
Image
User avatar
lvd
 
Posts: 1678
Joined: 07 Apr 2007, 22:28
Group: Registered users

Postby lvd » 03 Jun 2019, 21:56

AlexBel wrote:Извиняюсь за отсталость, но что значит "гяф крякнет, именно эти зафиксенные сорцы не продолбаются" - можно попроще? ;)

Это так, местный жаргон. Я тут погуглил, изменения для прохода zexall вроде уже есть за пределами гяфа (это я так называю тот форум куда ты сослался :)).
Многого нет здесь: http://lvd.nedopc.com
Image
User avatar
lvd
 
Posts: 1678
Joined: 07 Apr 2007, 22:28
Group: Registered users

Next

Return to NeoGS - софт и железо

Who is online

Users browsing this forum: No registered users and 2 guests

cron