Тихо так начнем). В новом году.
Вид для печати
Тихо так начнем). В новом году.
Не, не стоит
Это я к чему:)
Какую замену можно предложить для V9958?
V9990 тут как бы лидер. Благодаря конторе Sunrise, которая изготовила модуль Video9000.
И все бы хорошо, и программы иногда пишутся и какая никакая активность в этом направлении есть. На этом хорошее и заканчивается. Сам по себе V9990 никакого отношения к стандарту MSX не имеет. С таким же успехом можно было прикрутить любой VDP от существующих в то время компьютеров и приставок. Потенциал V9990 не раскручивает даже R800, который сам по себе оказался не намного шустрей штатного Z80.
R800 и Wait. facepalm
- 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 оставить базовую совместимость и добавить новые возможности. Этот вариант в долгосрочной перспективе самый предпочтительный, что ли выходит.
R800 тормозят, про топик 9958 все!
Та видимо wait-ы нужны не потому что r800 тормозит а потому что наоборот, другие девайсы за ним не поспевают? вот и приходится его подтормаживать чуток?
Так вроде варианты с V9958 изложил. Причем варианты существуют/существовали в железе и это не очередная мега супер-пупер эффективная видео-карта,которую никто не видел. Другой вопрос что ни одной схемы нет, ну это дело авторов этих проектов.
Ну, если тянуть все периферию с 83г то да.
Тогда резонный вопрос нафиг этот R800 нужен, если есть Z80. Ну не знаю, что там за инженеры это проектировали. Если Z80 с V9958 работает быстрее чем R800.
Решения крупных компаний когда дело касается совместимости со старыми продуктами могут приводить к таким с технической точки зрения казусам... это весьма часто случается.
Вы видимо снова не внимательно читаете.
Или на украинский перевести, а?)Цитата:
- 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 никто не разбирал до транзистора, и вряд ли это случится. Ну, уж поверь тестам=)
1. R800 работает быстрее
2. Имеется куча программ, работающих непосредственно с регистрами V9958
3. При выполнении этих программ V9958 не успевает
Спрашивается, что делать?
Ответ прост - притормозить процессор при обращении к V9958 таким образом, чтобы это не было быстрее, чем при использовании Z80
Тут еще одна историческая загадка. Почему не использовали сигнал wait самого V9958?
А придумали внешнею тормозилку, которая получилась не очень удачная (клац) и тормозит не всегда по делу (доступ к внутренним регистрам VDP).
Дойдет очередь до замены Z80 на Z180 и обязательно попробую wait от V9958. Да и установка Z180 (HD64180) в MSX2 была проделана в Victor HC-90 до выхода MSX TurboR.
Как я понял из прочтения интернетов, 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 сделали по максимуму, чтобы все работало и в худшем случае.
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.[свернуть]
Если wait, включение/выключение которого описано в разделе 5.1.2 pdf (стр. 7-8 документа, или 11-12 в файле) и wait в разделе 7.3.5 (стр. 17-18 документа или 21-22 в файле) - это один и тот же wait, то неудивительно, что в turboR пришлось тормозить чипсетом, т.к. wait от 9958 получается "не всеобъемлющий".
Ну, зафиксировали бы частоту на уровне 7МГц для доступа к регистрам, а видео-память разруливали бы от wait VDP. Так нет. Поступили по тупому. Нати вам таймер один на все.
Самое интересное wait VDP детище тех же разработчиков. И они прекрасно знали, как оно работает.
А то прямо диверсия какая-то:)
"не читал, но осуждаю"
Ох чую прав Саша. Сделали это, видать, в погоне за какой нибудь "обратной совместимостью". Чтобы зародившаяся и потянувшаяся когда-то хренота не поломала "новую красивую систему".
С ходу не нагуглил, где читал, но вот нечто в этом духе. В TurboR планировали 9978, но его не доделали (по крайней мере не выпустили в массы), и поставили 9958.
Так как и писал ранее. Оставили бы z80 для совместимости. Не давайте и все преимущества R800 сведем почти к нулю.
C высоты годов оно конечно всегда лучше видно:)
Это вообще печальная история.
- - - Добавлено - - -
А так задумка с двумя CPU очень хорошая. Тоже хочу что-то подобное сделать у себя. Правда, до конца не понял как:)
Здается мне что японцы и в случае с r800 остались японцами, потому и небыло там z80 (это значит что в японсокой машине ТОЛЬКО японские инжекторы могут стоять и никаких других, в европейской могут ставить и европейские и японские, а в американской и американские и японские и европейские).
Ну и высказанные в этой теме соображения, про замену v9958, ярко показывают причину по которой v9978 не появился а v9990 не стал достойной ему заменой для msx.
Про синтетику в FPGA в качестве замены: вон выпустили vampire fpga-68080! акселератор для amiga600 теперь народ спорит осталась ли 600-я после этого амигой... тут будет тоже самое. Но там проще немного, так как были проги компиленные под amigados в котором графика и музыка отделена абстрактным уровнем, таким образом amigados-проги писанные под amiga4000 и крутые видяхи смогли запуститься на amiga600 с HD-графикой... (как бы то чего 600-я немогла никогда). Но под msx разве что symbos в теории такое может использовать. Но 99% прог это использовать не будут, а если писать под это дело новые то оно НЕВПЕЧАТЛИТ ниразу (хороший пример spec256, кому он надо? по сравнению с оригиналом).
Бешенная тема - аналог v9958 на дискретах на плате размером 1000x1000 но это никто не осилит
Не-не-не. Уже проходили, не осилили:)
А вот ADVRAM таки себе можно на статике 2 портовой (ленивый вариант). И DMA накинуть, шустренько получится.
На скоко я понял - 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?
Благодаря сотрудничеству владельца реала торможение проца ПК8002 удалось разъяснить. В папке ПК8002 pk8002speed.html
Не так ужасно, как в ПК8000, но хуже чем в Векторе. Хотя если учесть возможность ослабления торможения на бордюре, с вектором можно было бы посоревноваться, но тактовая меньше.
Насчет GR8BIT не скажу, хотя видел фотки с этой доработкой на проводках обычной машинки. Это надо автора спрашивать.
TurboR с мягко говоря "прибитым" процессором R800 просто начинает радовать глаз с ADVRAM.
Да и цена плюс сложность доработки не подстегивала интерес к этому проекту.
Хотя по мне нужно было делать это на отдельной карте с V9938/58 за те же деньги.
Фиг его знает. V9938/58 не такой уж медленный (это не TMS9918) как может показаться с первого взгляда. Ну, спрайты выводятся на обратном ходе луча, а вот аппаратный ускоритель? Не все там так просто.
Делать sega genesis, это птица другого полета. Тогда уж V9990:)
- - - Добавлено - - -
Ну и с подтормаживаем игр на реальных MSX проблема явна, преувеличена (Space Manbow – достойный проект). А если это так, можно и разогнать реал Или ляпы разработчиков пропатчить:)
К сожалению яндекс забанен везде куда у меня есть доступ. Не очень понимаю смысл сравнения с вектор06ц, там разве есть спрайты и тайлы? Я всегда думал что вектору для обновления всего экрана нужно качать в разы большие обьемы чем msx-у или c64. Тут интересно сравнить с реальным msx, c целью выведения ответа на вопрос - ПК 8002 сильно тормознее MSX или нет?
- - - Добавлено - - -
Просто, не просто - это все лирика, факт остается: пропускная моща памяти потрачена впустую, а значит исправивши эту ошибку можно достичь вдвое более быстрой скорости (или количества спрайтов или цветов графики...)
Возможно, и в существующей конфигурации VDP не все возможности были исчерпаны. Сделали, как сделали. Что и кто на это повлиял и почему именно так? Все тут далеко не очевидно. Поэтому все и не просто.
Тут можно почитать, как там все фурычит. Думаю, чтобы это расковырять не одна неделя потребовалась.
А тем временем для карт PlaySoniq /Franky добавилась еще одна известная игра - Fantastic Dizzy (SMS):)
Ну не стоит забывать, что помимо всего прочего, лапок у корпуса и падов на пластине - ограниченное количество.
И то, что можно было бы навертеть на "россыпи", иногда проблематично упаковать в один чип. Решая одну проблему - вылазит другая :)
Даже сейчас, имея гигабайты памяти и сотни тысяч ячеек ПЛИС, в полный рост встает тупая проблема нехватки ног.
Про ноги я и писать не стал – это и ежу понятно.
А используемая память (краеугольный камень тех лет - цена). Еще можно вспомнить TMS9918, который точно повлиял на дизайн нового VDP и не в лучшую сторону в угоду совместимости (предположу что спрайтам тут больше всего досталось).
- - - Добавлено - - -
Как кто-то тут высказывался по поводу почему не вышел новый VDP для TurboR - не хватило ресурсов и возможностей старого дизайна.
Это из области знаний как впихнуть не впихуемое:)
круто! оказалось япошки используют хитрый режим чередования /CAS-ов во время PAGEMODE чтения, в этом режиме 2 линейки памяти поочередно занимают шину и выходит что скорость ПОЧТИ как при паралельном чтении!!! Круто, я не знал что так можно, 8 ног экономии для микрухи на ровном месте. Тут еще надо учесть момент, что экран и спрайты, по своей сути, это не отдельные байты а многобайтовые структуры, значит PAGEMODE тут по любому использовать НАДО!
Об использовании 2 банок по 64Кбайта:)
Тот кто нам мешает, тот нам поможет.
https://youtu.be/OAzn5yY55NA[свернуть]
Интерлив работает только в высоких разрешениях 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 ... ИМХО.
8 спрайтов в строке с одновременным выводом до 64 спрайтов (много букв, коротко в таблице, или много букв 2).
- - - Добавлено - - -
На всякий случай еще вот, что Sega 315-5124 это Yamaha YM2602
Ниши кое-что интересное готовит к выпуску по MSX платформе. Надеюсь, что в этом году объявят. К тому же ожидается выход двух очень навороченных кариков, которые дадут фору любой известной на данный момент периферии.
На данный момент. У меня сложилось мнение, что ASCII сильно давила на Yamaha и требовала повторить дизайн TMS9918 в новой обвертке. Ну и додавила, что вообще без чипа осталась в MSX Turbo R.
Ведь действительно Yamaha YM2602 уделывает по движку V9958. Вот что выходит, если руки не выкручивать. Причем YM2602 совместим с TMS9918. И что интересно энтузиасты прикрутили YM2602 (чип от SMS) к MSX и потихоньку переносят игры с SMS.
С другой стороны V9958 это видео-чип не игровой направленности с большим объемом памяти рассчитанный на многоцветную графику высокого разрешения.
Вообще много не понятного и я не верю, что мы, когда-то услышим реальную историю от людей, которые были свидетелями тех событий.
А как по мне Ниши тупит. Это очередная попытка продать ширпотреб под раскрученным брендом. Сколько такого мы видели за 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 видеоадаптер тоже дикой мощи правда он не для игр проектировался).
bigral, ну так отсутствие информации и порождает этот "бред".
По мне MSX1 был спроектирован стратегически практически идеально. Простой компик с громадным потенциалом к расширению. А потом пошли тактические ошибки одна за другой.
VDP - использование старого дизайна от TMS. Блиттер не так быстр и удобен.
MSX-AUDIO - использован устаревший OPL1. Не понятно?
R800 - сильно урезанный и значительно переработанный Z800 /Z280/ (Я вот тут гоняю реальный Z280. Интереснейший камень я вам скажу. Истинный наследник Z80. Вот только появился поздно). Почему его не использовали?
Я могу еще долго продолжать этот список.
Видимо ASCII играла в какую-то свою "игру". Мотивы этой игры практически не раскрыты.
Все это затянулось на годы, и понятно рынок, в конце концов, сместился в сторону 16бит.
Цель поста не очернить MSX. А простое человеческое любопытство:)
Я знаю про что пишу, верь мне ;)
Хочешь пруфов? их есть у меня.
Бешеный видеопроцессор, в режимах высокого разрешения (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 - моя самая любимая платформа.
Просто время MSX1,2,2+ и TurboR с Дюшей Метёлкиным давно вышло.
Требуется нечто новое, но такое же классное и удобное.
А именно: такой же простой доступ к функциям графики на всех уровнях, к функциям звука на всех уровнях, и обязательно должен быть бейсик.
Только намного навороченней и намного удобнее! И чтобы оперативной памяти и видеопамяти было в достатке для любых проектов.
гы гы гы... так этот форум типо об msx, а не об чем-то новом, и если время давно вышло то форум по raspberry pi тут: https://www.raspberrypi.org/forums/ только тут это никому неинтересно (а сама raspberry pi используется исключительно как дешевая замена x86 pc более компактного размера).
вспомнил! выйми из кармана свой android и найди в playmarket BASIC! и там будет тебе и "новое" и "памяти" и всего чего душа пожелает. нажми на кнопку - получишь результат, твоя мечта осуществится! нажми на кнопку но что же ты не рад, тебе больше не к чему стремиться-а-а-а-ааа...