PDA

Просмотр полной версии : MSX - VDP. Что делать с V9958. Пора менять?



OrionExt
03.01.2018, 19:29
Тихо так начнем). В новом году.

s_kosorev
03.01.2018, 22:10
Не, не стоит

OrionExt
05.01.2018, 14:58
Это я к чему:)

Какую замену можно предложить для V9958?

V9990 тут как бы лидер. Благодаря конторе Sunrise, которая изготовила модуль Video9000.
И все бы хорошо, и программы иногда пишутся и какая никакая активность в этом направлении есть. На этом хорошее и заканчивается. Сам по себе V9990 никакого отношения к стандарту MSX не имеет. С таким же успехом можно было прикрутить любой VDP от существующих в то время компьютеров и приставок. Потенциал V9990 не раскручивает даже R800, который сам по себе оказался не намного шустрей штатного Z80.
- In internal RAM, 0 waits are inserted, or 1 wait if the instruction fetch crosses a 256-byte memory page boundary (“page break”).
- In internal RAM, 2 waits are inserted for every memory read/write, or 3 if it does both, regardless of whether it is in the same page or not.
- In internal RAM, 2 waits are inserted for every jp.
- In internal ROM, 3 waits are inserted.
- In external memory, 4-5 waits are inserted depending on bus clock alignment.
- For I/O, 6-7 waits are inserted depending on bus clock alignment.
- For I/O to ports 98H-9BH, ± 54 extra waits are inserted if not enough time has passed since the last access to these ports.
На мой взгляд, проект PlaySoniq и Franky с инородным VDP, намного предпочтителен для замены V9958.

Или можно пойти другим путем и оставить полную совместимость со стандартом MSX. Допустим, включить несколько V9958 в параллель с одним выходом, как сделал некий бразилец. Или расшарить память VDP для CPU - проект ADVRAM. Но опять же запас у китайцев V9958, не вечен.

И последний вариант. Можно пойти по пути проекта F18A для TI-99/4A. Запихнуть V9958 в FPGA оставить базовую совместимость и добавить новые возможности. Этот вариант в долгосрочной перспективе самый предпочтительный, что ли выходит.

s_kosorev
05.01.2018, 15:41
R800 тормозят, про топик 9958 все!

Pencioner
05.01.2018, 16:47
Та видимо wait-ы нужны не потому что r800 тормозит а потому что наоборот, другие девайсы за ним не поспевают? вот и приходится его подтормаживать чуток?

OrionExt
05.01.2018, 17:39
R800 тормозят, про топик 9958 все!
Так вроде варианты с V9958 изложил. Причем варианты существуют/существовали в железе и это не очередная мега супер-пупер эффективная видео-карта,которую никто не видел. Другой вопрос что ни одной схемы нет, ну это дело авторов этих проектов.



Та видимо wait-ы нужны не потому что r800 тормозит а потому что наоборот, другие девайсы за ним не поспевают? вот и приходится его подтормаживать чуток?
Ну, если тянуть все периферию с 83г то да.

Тогда резонный вопрос нафиг этот R800 нужен, если есть Z80. Ну не знаю, что там за инженеры это проектировали. Если Z80 с V9958 работает быстрее чем R800.

Pencioner
05.01.2018, 18:24
Решения крупных компаний когда дело касается совместимости со старыми продуктами могут приводить к таким с технической точки зрения казусам... это весьма часто случается.

s_kosorev
06.01.2018, 00:04
Если Z80 с V9958 работает быстрее чем R800.
Пруф?

OrionExt
07.01.2018, 23:38
Пруф?
Вы видимо снова не внимательно читаете.

- For I/O to ports 98H-9BH, ± 54 extra waits are inserted if not enough time has passed since the last access to these ports.

Или на украинский перевести, а?)

И пред отвечу. Набери три слова R800, WAIT ,V9958 и получи ответ=) В гугле.
Конечно никто чипы от MSX Turbo никто не разбирал до транзистора, и вряд ли это случится. Ну, уж поверь тестам=)

b2m
08.01.2018, 13:41
Если Z80 с V9958 работает быстрее чем R800.
1. R800 работает быстрее
2. Имеется куча программ, работающих непосредственно с регистрами V9958
3. При выполнении этих программ V9958 не успевает
Спрашивается, что делать?
Ответ прост - притормозить процессор при обращении к V9958 таким образом, чтобы это не было быстрее, чем при использовании Z80

OrionExt
08.01.2018, 17:56
Тут еще одна историческая загадка. Почему не использовали сигнал wait самого V9958?

А придумали внешнею тормозилку, которая получилась не очень удачная (клац (https://github.com/openMSX/openMSX/blob/master/doc/internal/turbor-vdp-io-timing.ods)) и тормозит не всегда по делу (доступ к внутренним регистрам VDP).

Дойдет очередь до замены Z80 на Z180 и обязательно попробую wait от V9958. Да и установка Z180 (HD64180) в MSX2 была проделана в Victor HC-90 до выхода MSX TurboR.

s_kosorev
08.01.2018, 18:36
Ответ прост
пруф - не домыслы

- - - Добавлено - - -


И пред отвечу. Набери три слова R800, WAIT ,V9958 и получи ответ=) В гугле.
а в сумме на единицу времени?

OrionExt
08.01.2018, 19:52
а в сумме на единицу времени?
Да кто его знает.

Просто пользователи TurboR подметили что в режиме R800 и при интенсивном обмене с VDP процессор начинает тормозить и проигрывать по производительности Z80. Даже программу приводили в пример, правда, название забыл. Нашел EVA-player.

ivagor
08.01.2018, 20:06
Как я понял из прочтения интернетов, S1990 в turboR после обращения к портам vdp считает 8 мкс. Если за эти 8 мкс не было больше обращений к vdp, то все нормально. А вот если в течении этих 8 мкс случается попытка второго обращения к vdp, то процессор waitится до окончания 8 мкс.
В "обычном" msx2 единственный тормоз, про который я знаю - дополнительный такт в цикле M1 Z80.
В пзу можно найти примеры двух обращений к vdp с интервалом <8 мкс, например в msx2ext.rom
298С out (99h),a
298E ld a,8Fh
2990 out (99h),a
интервал между двумя out (99h) на msx2 (с учетом торможения в M1) будет 20 тактов, т.е. примерно 5.7 мкс, что < 8 мкс.

Насчет почему в turboR 8 - как я понял, требуемая vdp задержка может составлять от 2 до 8 мкс (в зависимости от разных условий), и разработчики turboR сделали по максимуму, чтобы все работало и в худшем случае.

OrionExt
08.01.2018, 20:24
ivagor видимо так. И по факту вышло хрено.

Вот еще интересный эксперимент был проделан c wait v9958, не касающийся R800.

The /WAIT pin on the MSX bus works in a very similar way to the /INT signal: It's a big logic AND between all the built-in devices & slots so any of those can request a WAIT (or a interrupt, in that case) to the CPU.

This was a feature clearly designed to allow Z80s with more than 5.37MHz (*1) to access the VRAM.

I did some tests some years ago, but I had no access to a logical analyzer. Those obviously are not very precise tests, but probably results are enough for the educated guess, until someone dissects this better using a logical analyzer.

The V9958 /WAIT generation indeed seem to be somewhat intelligent. My test set was done connecting a LED to the V9958 /WAIT output pin, and connecting the /WAIT to the CPU. The circuit was designed so that only V9958 /WAIT requests would light up the LED, isolating any /WAIT requests from other devices. My circuit could also disable the M1 waitstate generator for an instant +/-20% speed increase.

The results were:

1. If the WTE bit of the R#25 is disabled, no waitstate request is ever generated
2. I tested with several CPU clocks, to check the limits. When the WTE bit is enabled, those were the results:
2.1) From 1.78MHz to 5.37MHz no waitstate seems to be generated. Disabling the M1 waitstate at 5.37MHz resulted in the LED lighting up very dimly.
2.2) At 6MHz, the led started blinking very dim. This means that very few waitstates were being generated. Disabling the M1 waitstate instantly increased the LED brightness a bit.
2.3) At 7.14MHz the led light strobe seemed to be around 25% of the LED brightness
2.4) At 10.74MHz the led light strobe seemed to be around 50% of the LED brightness

From the educated guess side of things, what seemed to happen is that when the Z80 tried some VRAM access before of it's reserved time slot, the V9958 would issue the /WAIT until the access time slot comes.

As the V9958 datasheet states, no WAITs seem to be generated for accessing the V9958 registers. It only generates WAITs for VRAM access.

*1: 5.37MHz seems to be the V9958 limit for VRAM access without extra waits. The register access handles 7.14MHz without trouble, and maybe can take even more.

ivagor
08.01.2018, 20:41
Если wait, включение/выключение которого описано в разделе 5.1.2 pdf (http://map.grauw.nl/resources/video/yamaha_v9958_ocr.pdf) (стр. 7-8 документа, или 11-12 в файле) и wait в разделе 7.3.5 (стр. 17-18 документа или 21-22 в файле) - это один и тот же wait, то неудивительно, что в turboR пришлось тормозить чипсетом, т.к. wait от 9958 получается "не всеобъемлющий".

OrionExt
08.01.2018, 20:54
Ну, зафиксировали бы частоту на уровне 7МГц для доступа к регистрам, а видео-память разруливали бы от wait VDP. Так нет. Поступили по тупому. Нати вам таймер один на все.

Самое интересное wait VDP детище тех же разработчиков. И они прекрасно знали, как оно работает.

А то прямо диверсия какая-то:)

TomaTLAB
08.01.2018, 21:09
"не читал, но осуждаю"
Ох чую прав Саша. Сделали это, видать, в погоне за какой нибудь "обратной совместимостью". Чтобы зародившаяся и потянувшаяся когда-то хренота не поломала "новую красивую систему".

ivagor
08.01.2018, 21:15
С ходу не нагуглил, где читал, но вот нечто в этом духе (https://www.faq.msxnet.org/msxtr.html). В TurboR планировали 9978, но его не доделали (по крайней мере не выпустили в массы), и поставили 9958.

OrionExt
08.01.2018, 21:27
Ох чую прав Саша. Сделали это, видать, в погоне за какой нибудь "обратной совместимостью". Чтобы зародившаяся и потянувшаяся когда-то хренота не поломала "новую красивую систему".
Так как и писал ранее. Оставили бы z80 для совместимости. Не давайте и все преимущества R800 сведем почти к нулю.

C высоты годов оно конечно всегда лучше видно:)


С ходу не нагуглил, где читал, но вот нечто в этом духе (https://www.faq.msxnet.org/msxtr.html). В TurboR планировали 9978, но его не доделали, и поставили 9958.
Это вообще печальная история.

- - - Добавлено - - -

А так задумка с двумя CPU очень хорошая. Тоже хочу что-то подобное сделать у себя. Правда, до конца не понял как:)

bigral
09.01.2018, 22:37
Здается мне что японцы и в случае с r800 остались японцами, потому и небыло там z80 (это значит что в японсокой машине ТОЛЬКО японские инжекторы могут стоять и никаких других, в европейской могут ставить и европейские и японские, а в американской и американские и японские и европейские).

Ну и высказанные в этой теме соображения, про замену v9958, ярко показывают причину по которой v9978 не появился а v9990 не стал достойной ему заменой для msx.

Про синтетику в FPGA в качестве замены: вон выпустили vampire fpga-68080! акселератор для amiga600 теперь народ спорит осталась ли 600-я после этого амигой... тут будет тоже самое. Но там проще немного, так как были проги компиленные под amigados в котором графика и музыка отделена абстрактным уровнем, таким образом amigados-проги писанные под amiga4000 и крутые видяхи смогли запуститься на amiga600 с HD-графикой... (как бы то чего 600-я немогла никогда). Но под msx разве что symbos в теории такое может использовать. Но 99% прог это использовать не будут, а если писать под это дело новые то оно НЕВПЕЧАТЛИТ ниразу (хороший пример spec256, кому он надо? по сравнению с оригиналом).

Бешенная тема - аналог v9958 на дискретах на плате размером 1000x1000 но это никто не осилит

OrionExt
10.01.2018, 01:24
Бешенная тема - аналог v9958 на дискретах на плате размером 1000x1000 но это никто не осилит
Не-не-не. Уже проходили, не осилили:)

А вот ADVRAM (http://www.msxpro.com/mirror/ricardo/The%20ADVRAM%20Page.htm) таки себе можно на статике 2 портовой (ленивый вариант). И DMA накинуть, шустренько получится.

bigral
10.01.2018, 02:58
На скоко я понял - http://www.gr8bit.ru/gr8bit-specifications.html тут эта фича была изначально: (V9938 VDP, 128KiB VRAM, direct video memory access). Но никто не оценил, так как особого ускорения не дает и игр патченых нету. У кого есть этот GR8BIT в последствии для перехода на v9958 должен отрезать это дело как ненужный апендикс.

Что интересно в ПК8002 изначально память совмещенная!!! Т.е. "экран" и КР580ВМ80 "качают из одной бочки". Увидеть бы вживую это дело, для сравнения торможения с реальным msx. Еще сдается мне что v9938 использует линейки dram неэфективно, изза того что их у него 2шт а шина данных одна (значит мог бы по идее в 2 раза быстрее выкачивать). В теории возможен комп построенный по той же концепции что ПК8002 но со многими банками РУ6 (по 16кб) который качал бы одновременно со всех банок и это бы дало ему "жирную кучку спрайтов в одной строке", по идее на шину каждой банки можно было бы повесить и свой проц (i8048? i8051? z80?) в качестве сопроцессора. Ну ясное дело что вопрос совместимости тут встанет в полный рост, но думаю если реализовать сначала тот же "функционал" то вопрос совместимости со старым интерфейсом решить таки можно будет (либо патчами софта либо созданием железного "преобразователя" команд). Ну и все это дело манит еще тем что игры в которых спрайты мигают (а это типо огромное число) ВДРУГ перестанут мигать спрайтами!!! С торможением в некоторых играх тоже можно разобраться качественно. Чем не sega genesis?

ivagor
10.01.2018, 07:17
для сравнения торможения
Благодаря сотрудничеству владельца реала торможение проца ПК8002 удалось разъяснить (http://zx-pk.ru/threads/8378-pk8000-soft-staryj-i-novyj.html?p=877066&viewfull=1#post877066). В папке ПК8002 pk8002speed.html
Не так ужасно, как в ПК8000, но хуже чем в Векторе. Хотя если учесть возможность ослабления торможения на бордюре, с вектором можно было бы посоревноваться, но тактовая меньше.

OrionExt
10.01.2018, 11:23
Насчет GR8BIT не скажу, хотя видел фотки с этой доработкой на проводках обычной машинки. Это надо автора спрашивать.


Но никто не оценил, так как особого ускорения не дает и игр патченых нету.
TurboR с мягко говоря "прибитым" процессором R800 просто начинает радовать глаз с ADVRAM.
Да и цена плюс сложность доработки не подстегивала интерес к этому проекту.
Хотя по мне нужно было делать это на отдельной карте с V9938/58 за те же деньги.


Еще сдается мне что v9938 использует линейки dram неэфективно, изза того что их у него 2шт а шина данных одна (значит мог бы по идее в 2 раза быстрее выкачивать).

Фиг его знает. V9938/58 не такой уж медленный (это не TMS9918) как может показаться с первого взгляда. Ну, спрайты выводятся на обратном ходе луча, а вот аппаратный ускоритель? Не все там так просто.


Чем не sega genesis?
Делать sega genesis, это птица другого полета. Тогда уж V9990:)

- - - Добавлено - - -

Ну и с подтормаживаем игр на реальных MSX проблема явна, преувеличена (Space Manbow (https://www.youtube.com/watch?v=gcZJ64PgtgA) – достойный проект). А если это так, можно и разогнать реал Или ляпы разработчиков пропатчить:)

bigral
11.01.2018, 00:04
Благодаря сотрудничеству владельца реала торможение проца ПК8002 удалось разъяснить (http://zx-pk.ru/threads/8378-pk8000-soft-staryj-i-novyj.html?p=877066&viewfull=1#post877066). В папке ПК8002 pk8002speed.html
Не так ужасно, как в ПК8000, но хуже чем в Векторе. Хотя если учесть возможность ослабления торможения на бордюре, с вектором можно было бы посоревноваться, но тактовая меньше.

К сожалению яндекс забанен везде куда у меня есть доступ. Не очень понимаю смысл сравнения с вектор06ц, там разве есть спрайты и тайлы? Я всегда думал что вектору для обновления всего экрана нужно качать в разы большие обьемы чем msx-у или c64. Тут интересно сравнить с реальным msx, c целью выведения ответа на вопрос - ПК 8002 сильно тормознее MSX или нет?

- - - Добавлено - - -


Фиг его знает. V9938/58 не такой уж медленный (это не TMS9918) как может показаться с первого взгляда. Ну, спрайты выводятся на обратном ходе луча, а вот аппаратный ускоритель? Не все там так просто.

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

OrionExt
11.01.2018, 02:03
Просто, не просто - это все лирика, факт остается: пропускная моща памяти потрачена впустую, а значит исправивши эту ошибку можно достичь вдвое более быстрой скорости (или количества спрайтов или цветов графики...)
Возможно, и в существующей конфигурации VDP не все возможности были исчерпаны. Сделали, как сделали. Что и кто на это повлиял и почему именно так? Все тут далеко не очевидно. Поэтому все и не просто.

Тут (http://map.grauw.nl/articles/vdp-vram-timing/vdp-timing.html) можно почитать, как там все фурычит. Думаю, чтобы это расковырять не одна неделя потребовалась.

А тем временем для карт PlaySoniq /Franky добавилась еще одна известная игра - Fantastic Dizzy (SMS):)

TomaTLAB
11.01.2018, 03:32
факт остается: пропускная моща памяти потрачена впустую,
Ну не стоит забывать, что помимо всего прочего, лапок у корпуса и падов на пластине - ограниченное количество.
И то, что можно было бы навертеть на "россыпи", иногда проблематично упаковать в один чип. Решая одну проблему - вылазит другая :)
Даже сейчас, имея гигабайты памяти и сотни тысяч ячеек ПЛИС, в полный рост встает тупая проблема нехватки ног.

OrionExt
11.01.2018, 11:01
Про ноги я и писать не стал – это и ежу понятно.

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

- - - Добавлено - - -

Как кто-то тут высказывался по поводу почему не вышел новый VDP для TurboR - не хватило ресурсов и возможностей старого дизайна.
Это из области знаний как впихнуть не впихуемое:)

bigral
11.01.2018, 18:03
Тут (http://map.grauw.nl/articles/vdp-vram-timing/vdp-timing.html) можно почитать, как там все фурычит. Думаю, чтобы это расковырять не одна неделя потребовалась.

круто! оказалось япошки используют хитрый режим чередования /CAS-ов во время PAGEMODE чтения, в этом режиме 2 линейки памяти поочередно занимают шину и выходит что скорость ПОЧТИ как при паралельном чтении!!! Круто, я не знал что так можно, 8 ног экономии для микрухи на ровном месте. Тут еще надо учесть момент, что экран и спрайты, по своей сути, это не отдельные байты а многобайтовые структуры, значит PAGEMODE тут по любому использовать НАДО!

OrionExt
11.01.2018, 18:58
Об использовании 2 банок по 64Кбайта:)

https://youtu.be/OAzn5yY55NA

Dolphin101546015
06.02.2019, 22:19
Интерлив работает только в высоких разрешениях G6-G11.
И его достоинство становится его же недостатком: при расширении видеопамяти, использовать XVRAM линейно - нельзя, четная точка дублирует нечетную. Можно извращаться и пересылать столбцами с умножением на два и смещением на 1, чтобы писать только в нечетные адреса, но скорость обращения к видеопамяти падает на порядок, а используемый размер - вдвое.
Причем это красноречиво даже Вики рассказывает:

192 kB, where 64 kB is extended-VRAM (only available as backbuffer for G4 and G5 modes)


Очевидно, что Ямахи кастрировали чип при разработке (не хватает второго CASX1), может не было лишней ноги, а может решили что 256кб видеопамяти это жирно и дорого (да-да, именно столько ее должно быть для полноценной работы в интерливе).
Тем не менее, эта кастрация перекочевала и в 9958, который сам по себе, ничем новым не отличается от 9938 кардинально на уровне функций (можно сколько угодно топить за 1оо5оо цветов на экране, но те кто реально их использовал, понимают о чем я).
Горизонтальный скроллинг сделали?! Так это они просто исправили то, что должно было быть еще в 9938.
В общем - тунеядцы, алкоголики и проходимцы работали над VDP, не менее!

Для сравнения: Yamaha YM2602, выпущенный в том же году умел:
- 64 спрайта в строке с одновременным выводом до 256 спрайтов;
- раздельные таблицы цветности для спрайтов и остальной графики;
- не только горизонтальный, вертикальный и диагональный скроллинг, не только страничный, а отдельно взятой линии или части экрана!
- прерывания флипа палитры внутри линии кадра!
и все такое...
А уж если сравнивать с YM7101, который вышел на три года позже (И НА 6 ЛЕТ РАНЬШЕ V9990), то и 38й, и 58, просто меркнут в сравнении.

Правильно Ниши делает упор на ARM. Нужен 32-х битный MSX-2019, с аппаратным трех-мерным ускорением (не менее), но с полным соблюдением концепции архитектуры, включая самую важную и самую главную часть этой концепции: несравненно фантастический MSX-Basic ... ИМХО.

ivagor
07.02.2019, 08:48
Yamaha YM2602, выпущенный в том же году умел:
- 64 спрайта в строке с одновременным выводом до 256 спрайтов;
8 спрайтов в строке с одновременным выводом до 64 спрайтов (много букв (https://segaretro.org/Sega_Master_System_VDP_documentation_(2002-11-12)), коротко в таблице (https://segaretro.org/Sprite), или много букв 2 (http://www.smspower.org/uploads/Development/richard.txt)).

- - - Добавлено - - -

На всякий случай еще вот (https://segaretro.org/Sega_Master_System/Technical_specifications), что Sega 315-5124 это Yamaha YM2602

Wierzbowsky
07.02.2019, 10:36
Ниши кое-что интересное готовит к выпуску по MSX платформе. Надеюсь, что в этом году объявят. К тому же ожидается выход двух очень навороченных кариков, которые дадут фору любой известной на данный момент периферии.

OrionExt
07.02.2019, 11:48
На данный момент. У меня сложилось мнение, что ASCII сильно давила на Yamaha и требовала повторить дизайн TMS9918 в новой обвертке. Ну и додавила, что вообще без чипа осталась в MSX Turbo R.

Ведь действительно Yamaha YM2602 уделывает по движку V9958. Вот что выходит, если руки не выкручивать. Причем YM2602 совместим с TMS9918. И что интересно энтузиасты прикрутили YM2602 (чип от SMS) к MSX и потихоньку переносят игры с SMS.

С другой стороны V9958 это видео-чип не игровой направленности с большим объемом памяти рассчитанный на многоцветную графику высокого разрешения.

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

Dolphin101546015
07.02.2019, 12:16
8 спрайтов в строке с одновременным выводом до 64 спрайтов ...
Завтыкал перед сном, каюсь - в другой спек смотрел. В остальном все верно?
Не суть! Суть уловил OrionExt ;)

bigral
11.02.2019, 11:31
А как по мне Ниши тупит. Это очередная попытка продать ширпотреб под раскрученным брендом. Сколько такого мы видели за 30 лет? помните всякие там мега амиги в 90-х с платами на i486 внутри, всякие там amiga-de, c64-pentium3. А вот недавно была волна мусора, опять вывалило на рынок всякого snes classic, sony ps1 classic, megadrive classic ... да и прочее гамно, все оно тот же raspberry pi + эмуль под тормознейшим линуксом внутри.

какой арм? какое 3D? это что MSX??? мракобесие и дурка косит наши ряды.

И да... никакой MSX basic не есть ключевой фичей MSX. А ключевая фича в нем это: z80+v9938+ay-3-8910+mapper (и даже msxdos и cp/m не такие уж и важные для msx).

А то что Вы тут про v9958 понаписали, что мол фигня... читать противно, бешенный видеопроцессор по сути, можно графику с любой 8-bit игры перенести и выглядеть будет очень достойно. И при этом z80 будет работать как и ранее на 3.5mhz и память подойдет 565ру5в. Никакого sram или dualport sram или vram не требует, это бешенное достижение. Уже не раз тут писал что шото подобное у нас только в ПК8002 было (ну там в союз-неон 11\16 видеоадаптер тоже дикой мощи правда он не для игр проектировался).

OrionExt
11.02.2019, 13:44
bigral, ну так отсутствие информации и порождает этот "бред".

По мне MSX1 был спроектирован стратегически практически идеально. Простой компик с громадным потенциалом к расширению. А потом пошли тактические ошибки одна за другой.

VDP - использование старого дизайна от TMS. Блиттер не так быстр и удобен.
MSX-AUDIO - использован устаревший OPL1. Не понятно?
R800 - сильно урезанный и значительно переработанный Z800 /Z280/ (Я вот тут гоняю реальный Z280. Интереснейший камень я вам скажу. Истинный наследник Z80. Вот только появился поздно). Почему его не использовали?

Я могу еще долго продолжать этот список.

Видимо ASCII играла в какую-то свою "игру". Мотивы этой игры практически не раскрыты.

Все это затянулось на годы, и понятно рынок, в конце концов, сместился в сторону 16бит.

Цель поста не очернить MSX. А простое человеческое любопытство:)

Dolphin101546015
11.02.2019, 14:56
А то что Вы тут про v9958 понаписали, что мол фигня... читать противно, бешенный видеопроцессор по сути, можно графику с любой 8-bit игры перенести и выглядеть будет очень достойно. И при этом z80 будет работать как и ранее на 3.5mhz и память подойдет 565ру5в. Никакого sram или dualport sram или vram не требует, это бешенное достижение. Уже не раз тут писал что шото подобное у нас только в ПК8002 было (ну там в союз-неон 11\16 видеоадаптер тоже дикой мощи правда он не для игр проектировался).

Я знаю про что пишу, верь мне ;)
Хочешь пруфов? их есть у меня.
Бешеный видеопроцессор, в режимах высокого разрешения (256х424 и 512х424), не способен даже страницы видеопамяти иметь (SCREEN7,8,10,11,12), а выводить графику напрямую.... увидишь сразу, насколько он бешеный.
512x424x16 colors, 128 Kb VRAM used:
https://i.ibb.co/j3kshfW/photo-2018-10-19-10-31-15.jpg
512x424x16 colors, 128 Kb VRAM used:
https://i.ibb.co/KzVr63S/photo-2018-10-19-10-31-17.jpg
512x424x16 colors, 128 Kb VRAM used:
https://i.ibb.co/6RNkXDm/photo-2018-10-19-18-04-42.jpg

- - - Добавлено - - -



...
Цель поста не очернить MSX. А простое человеческое любопытство:)
Плюсую по всем пунктам! И да, очернять никто не собирался, MSX - моя самая любимая платформа.
Просто время MSX1,2,2+ и TurboR с Дюшей Метёлкиным давно вышло.
Требуется нечто новое, но такое же классное и удобное.
А именно: такой же простой доступ к функциям графики на всех уровнях, к функциям звука на всех уровнях, и обязательно должен быть бейсик.
Только намного навороченней и намного удобнее! И чтобы оперативной памяти и видеопамяти было в достатке для любых проектов.

bigral
11.02.2019, 15:22
Просто время MSX1,2,2+ и TurboR с Дюшей Метёлкиным давно вышло. Требуется нечто новое, но такое же классное и удобное. А именно: такой же простой доступ к функциям графики на всех уровнях, к функциям звука на всех уровнях, и обязательно должен быть бейсик.
Только намного навороченней и намного удобнее! И чтобы оперативной памяти и видеопамяти было в достатке для любых проектов.

гы гы гы... так этот форум типо об msx, а не об чем-то новом, и если время давно вышло то форум по raspberry pi тут: https://www.raspberrypi.org/forums/ только тут это никому неинтересно (а сама raspberry pi используется исключительно как дешевая замена x86 pc более компактного размера).

вспомнил! выйми из кармана свой android и найди в playmarket BASIC! и там будет тебе и "новое" и "памяти" и всего чего душа пожелает. нажми на кнопку - получишь результат, твоя мечта осуществится! нажми на кнопку но что же ты не рад, тебе больше не к чему стремиться-а-а-а-ааа...

Dolphin101546015
11.02.2019, 16:02
Я даже сейчас сижу пишу под MSX, а ты? ;)
И да, зачем плести то, о чем я не говорил? ARM, это не только андройд, это огромная сфера применения в современном мире, с лучшими на сегодняшний день ценой/производительностью... имхо.

Нашел немецкую доку по 9958, в которой говорится, что было изменение функции:
1110 с YMMM в HMCM (High Speed Move VRAM to CPU)

v9938 имеет только:
1010 LMCM (Logical Move VRAM to CPU)

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

Проверил в эмуляторе, функция работает как YMMM.
Либо это фейк (так как является нарушением совместимости вниз),
либо эмулятор так эмулирует 9958 (что врядли).

OrionExt
13.02.2019, 11:01
О возможностях TMS9918A (TI-99/4A). Как такое возможно? Не реальное становиться реально. Flying Shark на TI-99/4A.


https://www.youtube.com/watch?v=WyYmGakiyfs

Обсуждение. (http://atariage.com/forums/topic/268548-flying-shark/page-1)

Исходники (https://github.com/Rasmus-M/Flying-shark).

OrionExt
14.02.2019, 00:20
Очевидно, что Ямахи кастрировали чип при разработке (не хватает второго CASX1), может не было лишней ноги, а может решили что 256кб видеопамяти это жирно и дорого (да-да, именно столько ее должно быть для полноценной работы в интерливе).
Тем не менее, эта кастрация перекочевала и в 9958, который сам по себе, ничем новым не отличается от 9938 кардинально на уровне функций (можно сколько угодно топить за 1оо5оо цветов на экране, но те кто реально их использовал, понимают о чем я).Вот как бы в продолжение, может кто не видел / читал. Песня о V9938/58 и 192К (http://www.msxpro.com/192kb_vram.html) (моя вольная интерпретация названия статьи).

ivagor
14.02.2019, 11:33
О возможностях TMS9918A (TI-99/4A). Как такое возможно? Не реальное становиться реально. Flying Shark на TI-99/4A.
Форум atariage не доступен, но из исходников понятна главная фишка - двойная буферизация с использованием разных PNT (в сочетании с условным делением PGT на две части) и SAT. Это не единственный, но, пожалуй, главный момент. А невидимую часть обновляем. За 4 фрейма можно много обновить. Достижения автора нисколько не принижаю, он крут, но невероятного там нет.

OrionExt
14.02.2019, 12:47
ivagor, невероятного, пожалуй, теперь уже нет. Автор это сделал и старичок TMS9918A могет (о VDP ведь тема). А так до этого 37 лет в основном были слышны только вздохи и охи. Как у TI-99/4A все не очень с железом и архитектурой.

О форуме atariage. У меня все доступно.

ivagor
14.02.2019, 12:55
О форуме atariage. У меня все доступно.
Через vpn получилось, не думал что он понадобится для доступа к ретрокомпьютерному форуму.

Lethargeek
14.02.2019, 13:33
какой знакомый графоний) кстати, на спектруме движок, насколько понял, полностью тайловый - буфера на всю активную область нет, "чистые" тайлы сразу на экран кидаются по смещению, "грязные" перед этим по отдельности формируются

Dolphin101546015
15.02.2019, 03:36
Вот как бы в продолжение, может кто не видел / читал. Песня о V9938/58 и 192К (http://www.msxpro.com/192kb_vram.html) (моя вольная интерпретация названия статьи).

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

ivagor
15.02.2019, 11:27
А так до этого 37 лет в основном были слышны только вздохи и охи. Как у TI-99/4A все не очень с железом и архитектурой.
Игра в 512 Кб картридже и требует 32 Кб расширения озу. Интересно, сколько бы стоила такая игра во время коммерческой жизни платформы и сколько экземпляров удалось бы продать.

OrionExt
15.02.2019, 12:13
ivagor, все же докопались (я, и сам на это обратил внимание). Видимо не хватает ресурсов динамически пересчитывать плитки или хранить не где пересчитанное. 512К во времена активной жизни TI-99/4A мало вероятны.

Ну, как тут сказали суть не в этом ;) Автор игры для софто писателей задал новую планку качества.

- - - Добавлено - - -


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

У меня тоже есть пару реальных (и в тоже время утопических) идей. Подключить два VDP на один видео-выход. Сделать открытый проект на подобие F18A MK2.

Dolphin101546015
15.02.2019, 12:34
У меня тоже есть пару реальных (и в тоже время утопических) идей. Подключить два VDP на один видео-выход. Сделать открытый проект на подобие F18A MK2.

Так делали жеж, даже три или четыре, но этот комбайн еще логикой нафаршировать нужно и памятью, и код переключения реализовать. Не нужно это в MSX имхо :)
А вот под МК или SOC какой нибудь - вполне годная штука. Опять же, умел бы он более сложные вещи сам делать (заливку, вывод текста в графике, многоугольники, текстурирования), тогда был бы смысл - пока один делает заливку в своей странице, второй выводит текст, третий обои готовит, а так - все равно все по-очереди делать.
Хотя можно к каждому свой МК-драйвер прицепить...
Мне вот еще суперимпозер хочется. :)

ivagor
15.02.2019, 12:54
Подход, использованный в Flying Shark для TI интересный, но еще интереснее было бы увидеть его более практичный вариант, влезающий хотя бы в 128 Кб. Сжать там можно много, но тогда возникает другой вопрос - хватит ли времени распаковать на лету? Также смущает порой очень большое число спрайтов на линию, на форуме msxник тоже обратил на это внимание. Да, они помаргивают, т.е. эмулятор похоже учитывает ограничение на 4 спрайта, но тут очень хотелось бы увидеть запись с реала, чтобы снять все вопросы.
Эти мои занудные придирки не ставят под сомнение саму идею (двойная буферизция за счет условного деления PGT и CT на части и чередования PNT и SAT), но ее конкретное воплощение с одной стороны слишком впечатляющее, с другой - слишком толстое (надеюсь только по размеру).

- - - Добавлено - - -

Надеюсь msxники примут вызов и сделают что-то подобное.

OrionExt
15.02.2019, 15:02
Также смущает порой очень большое число спрайтов на линию, на форуме msxник тоже обратил на это внимание. Да, они помаргивают, т.е. эмулятор похоже учитывает ограничение на 4 спрайта, но тут очень хотелось бы увидеть запись с реала, чтобы снять все вопросы.Овер 4 спрайта на линию и подмаргивание - это достаточно часто проскакивает у всех. Тут никуда не деться. Если это не часто, то нормуль.

На своем канале в ютубе автор выкладывал с реала. Правда вот не уверен финальная ли это была версия. Он там еще и с F18A экспериментировал.

- - - Добавлено - - -


Так делали жеж, даже три или четыре, но этот комбайн еще логикой нафаршировать нужно и памятью, и код переключения реализовать. Не нужно это в MSX имхоДелали то делали. А вот подробностей не оставили. Только фотки. По мне достаточно двух VDP. Один основной, второй вспомогательный. За частую не хватает какой-то мелочи (+50 плиток /256 очень мало/, сразу в голову пришло), чтобы не выдумывать обходные пути. Да как угодно можно использовать второй VDP - 2 план, экранировать часть изображения и т.д. и т.п.


А вот под МК или SOC какой нибудь - вполне годная штука… Не, не, не. Вот именно нужна жирная (но мелкая) плисина. И пилить этот проект до бесконечности-совершенства. Работы там ой как много. Как показала практика тот же F18A еще требует допила в плане эмуляции оригинального VDP (в одну каску очень сложно, даже за деньги. особенно тестирование).


Мне вот еще суперимпозер хочется. Вот так каждому чего-то своего и хочется и мне :)

ivagor
15.02.2019, 15:18
На своем канале в ютубе автор выкладывал с реала. Правда вот не уверен финальная ли это была версия. Он там еще и с F18A экспериментировал.
Увидел Flying Shark TI-99/4A preview 1 (https://www.youtube.com/watch?v=XLAZoxmCPjA). К сожалению "I have my F18A set to support 32 sprites on a scan line.".

bigral
15.02.2019, 15:34
Эти мои занудные придирки не ставят под сомнение саму идею (двойная буферизция за счет условного деления PGT и CT на части и чередования PNT и SAT), но ее конкретное воплощение с одной стороны слишком впечатляющее, с другой - слишком толстое (надеюсь только по размеру). Надеюсь msxники примут вызов и сделают что-то подобное.

ivagor, а можно подробнее для тех кто в танке обьяснить суть вопроса, ато потерялся даже в сокращениях PGT CT PNT SAT... это о чем? В 80-х как бы портировали кучу игр со спектрума на msx ну конечно скорость таких портов раза в 2 медленнее чем на ZX.

OrionExt
15.02.2019, 15:50
В 80-х как бы портировали кучу игр со спектрума на msx ну конечно скорость таких портов раза в 2 медленнее чем на ZX.Так там "ленивые" адаптации (98%) за пару вечеров на коленке. Никто там не програмил под VDP. Тупо чего там игра от ZX нагенерила, выплевывали через узкую дырочку I/O за несколько раз :D Эффективные манагеры, что с них взять :v2_dizzy_facepalm: А потом у людей негативное мнение формируется о платформе :(

Не одну игру честную знаю Avenger (очень оригинально они некоторые вопросы там порешали), может еще были игры.

ivagor
15.02.2019, 16:42
PGT CT PNT SAT... это о чем?
PGT - Pattern Generator Table (собственно графика)
CT - Color Table (собственно цвета)
PNT - Pattern Name Table (номера тайлов)
SAT - Sprite Attribute Table (атрибуты спрайтов - координаты и т.д.)
Свое понимание я написал здесь

двойная буферизация с использованием разных PNT (в сочетании с условным делением PGT на две части) и SAT. Это не единственный, но, пожалуй, главный момент. А невидимую часть обновляем.
но на atariage можно почитать автора (каюсь, я первые страницы там не читал, т.к. сначала не мог выйти на форум и смотрел исходник)

Dolphin101546015
15.02.2019, 18:24
Делали то делали. А вот подробностей не оставили. Только фотки. ...
Там ничего сложного по-сути, выход одного VDP, смешивается с выходом второго, через суперимпозер. Управляются они отдельно (можно дать команду одному, и пока он ее выполняет, заняться вторым). Видеопамять у них, естественно раздельная. Все что рисует первый VDP, отображается в буфере второго, внутри нулевого цвета. Вот и вся кухня ;) (при этом спрайты первого VDP, так же находятся в нижнем слое, относительно всех слоев первого VDP.


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

Говоря о функционале, там нечего пилить. Все функции блита пишутся тривиально, вместе со всей логикой. Поиск цвета, точка и получение цвета по адресу - банальщина. Линия - чистый DDA (хотя довольно кривой, ввиду того, что они не осилили свап вычислений, и требуют установки бита мажоритарности отношений сторон DX/DY, хотя это решается алгоритмически очень просто, могу привести алгоритм на бейсике, который почти повторяет аппаратную линию). Опять же, бросаясь в огород Ямах - линия настолько кривая, что даже рисуя одну и ту же линию с разных направлений, получаем расхождение! И еще, DDA можно рисовать В ДВА РАЗА БЫСТРЕЕ, если рисовать линию сразу с двух концов к центру (в два раза меньше вычислений!).
Остаются спрайты и знакогенератор, тут тоже особых сложностей не вижу, если не рассматривать тайминги и обратноход.

ivagor
15.02.2019, 19:00
В 80-х как бы портировали кучу игр со спектрума на msx ну конечно скорость таких портов раза в 2 медленнее чем на ZX.
Вспомнил 2 примера портов со спека, которые по крайней мере не медленнее, а то и быстрее на msx - manic miner и jet set. Там враги сделаны спрайтами. Наверно есть некоторая ирония в том, что хорошо перенесли игрушки, для которых это было не критично. У jet set есть еще и "традиционный" (без спрайтов) порт на msx от Hudson Soft, он в картридже и там для сокращения размера убрали названия комнат.

OrionExt
15.02.2019, 19:26
Dolphin101546015, сразу скажу, что в этих вопросах я больше интересующийся, чем специалист. Теперь по порядку.

О суперимпозере. Насколько я понял такую штуку можно подсмотреть в нескольких сервис мануалах от MSX. И повторить в один в один (схемы достаточно сложные) или попытаться реализовать аналог на современной элементной базе.

О параллельной/синхронной работе нескольких VDP. Каждый VDP из линейки MSX имеет узлы внешней синхронизации. Схемы внешней синхронизации у каждого VDP несколько отличаются, но принцип почти одинаковый. Наиболее простая схема синхронизации у TMS9918A. Но у TMS9918A есть один существенный недостаток на сегодняшний день - это выходной NTSC сигнал. За остальные VDP я пока не скажу. Да, в открытом доступе схем синхронизации я не встречал. Встречал несколько начинай в сети, но все заканчивалось, когда дело начинало касаться практической реализации.

О VDP на ПЛИС. По моей информации на данный момент не существует ни одной точной (100%) эмуляции любого VDP из линейки MSX. Нужно ли это кому? Достижимо ли это? Не уверен. О потактовых моделях я даже не говорю - их нет.

- - - Добавлено - - -


Вспомнил 2 примера портов со спека, которые по крайней мере не медленнее, а то и быстрее на msx - manic miner и jet set.Ну, это даже не смешно :v2_dizzy_tired2:

Dolphin101546015
15.02.2019, 21:05
О суперимпозере. Насколько я понял такую штуку можно подсмотреть в нескольких сервис мануалах от MSX. И повторить в один в один (схемы достаточно сложные) или попытаться реализовать аналог на современной элементной базе.

Да это тупая переключалка: есть единица на выходе - включить свой RGB, ноль - включить внешний RGB (или наоборот, лень в апноут лезть)
Другое дело, что синхронизировать нужно, это да.

OrionExt
16.02.2019, 00:19
А, я о другой штуке подумал. Типа такой :)


https://www.youtube.com/watch?v=SC1ydm06JMw&t=102s

Dolphin101546015
16.02.2019, 06:46
А, я о другой штуке подумал. Типа такой :)


https://www.youtube.com/watch?v=SC1ydm06JMw&t=102s

Это именно оно и есть :)
В видео зырь, он выставляет COLOR 15,0,0
Когда VDP рисует цвет 0, он разрешает внешний видеосигнал (выход суперимпозера), и любой другой - запрещает.

Wierzbowsky
16.02.2019, 10:38
Это, похоже, стандартная фича. Её используют устройства с лазерными дисками для создания движущегося фона в некоторых играх. Pioneer такие делал. По цене как Мерседес.

OrionExt
16.02.2019, 14:38
Это именно оно и есть :)
В видео зырь, он выставляет COLOR 15,0,0
Когда VDP рисует цвет 0, он разрешает внешний видеосигнал (выход суперимпозера), и любой другой - запрещает.Ага. COLOR 0. В школьные годы не мог понять, какой же он прозрачный, черный ведь цвет :)

- - - Добавлено - - -


Это, похоже, стандартная фича. Её используют устройства с лазерными дисками для создания движущегося фона в некоторых играх. Pioneer такие делал. По цене как Мерседес.Точно были игрушки. Фоном с CD-диска шел не реальный по тем временам графон (видео) и на это все накладывалась игрушка MSX. Конечно, об этом я узнал позже из интернетов.

OrionExt
13.05.2019, 13:52
Вот смотрю я на работающий реал MSX1. И думку гадаю :)

Разробы пошли не тем путем.

MSX ведь модульный комп?

Сделали ли бы в итерации MSX2:
- видео-карта: 256х192, тайлы овер 256, спрайты (цветные) на линию овер 4шт., палитра цветов, скролл, прерывание по линии, текстовый режим 80 символов в строке.
- видео-карта: современный аналог овер 4К и т.д и т.п. – V9938/58.