Я прям боюсь спросить о принципе действия этого расширения до 256 цветов.Цитата:
Сообщение от Vladimir Kladov
Вид для печати
Я прям боюсь спросить о принципе действия этого расширения до 256 цветов.Цитата:
Сообщение от Vladimir Kladov
к каждому биту спектрумовской памяти и к каждому биту регистра z80 приклеивается дополнительный байт. когда биты пересылаются, этот байт тоже. при арифметических/логических операциях применяются свои действия (сходу не скажу, какие). нужно всего лишь узнать, где лежат спрайты игры, и каждому биту спрайта дописать байт-цвет. дальше их будет выводить, перемещать и т.п. уже сам z80 вместе с приклеенными цветами. в итоге в видеопамяти оказывается не просто набор бит, а вместе с приклееными байтами, которые интерпретируются рисовалкой экрана как цвета точки под этим битомЦитата:
Сообщение от Spectre
Это понял, давай посчитаем. 6144х8 = 49152 => 48К. Сходится с расходом для разрешения 256х192х8. Т.е. грубо говоря 48К отдельной памяти.Цитата:
Сообщение от SMT
А это зачем? В смысле зачем мониторить _биты регистров_ (или всё же сами регистры)?Цитата:
Сообщение от SMT
Ну да, что бы например вычислить правильную результирующую при наложении двух цветов, так? Только вот как узнать, где спрайты лежат? Хак?Цитата:
Сообщение от SMT
Хм, медленно. И сложно. Но выход. :)Цитата:
Сообщение от SMT
да, но каждый z80 работает со своим 6144 (или эмулятор гоняет не 8-битные регитры, а 8-байтные mmx-регистры), так что скорость не страдаетЦитата:
Сообщение от icebear
Цитата:
Сообщение от SMT
чтобы не вносить изменения в код игры. когда байт читается из памяти, где лежит спрайт, в регистр, приклеенные цвета читаются в этот же регистр. при сдвигах или иной обработке данных, считанных из спрайта, приклеенные байты цвета перемещаются вместе с битами спрайта. в итоге они попадут на экран и пофиг, как над ними извращался программёр, хоть писал через стекЦитата:
Сообщение от icebear
есть тулзы, как на пц, так и спектруме, для просмотра памяти в графическом виде. спрайты выцепляются визуальноЦитата:
Сообщение от icebear
на реале - чушь собачья. если уж и ставить 8 процессором (да что там - 8 спектрумов), то лучше, чтобы они не обрабатывали синхронно одну и ту же программу, отличаясь содержимым памяти только в местах спрайтов, а сделать так, как я написал 17:22Цитата:
Сообщение от icebear
Вот тут перечитал свои последние сообщения свежим взглядом... Нда, одно дело - урывками
набирать несколько килобайт текста, и совсем другое - все это сразу прочесть ;)
Могло создаться впечатление, что я грубо наезжаю вообще на компьютер АТМ и его производителя
(упаси меня! тем более, он последний "живой" остался). Это не совсем ( ;) ) так.
Видимо, мою мысль следует выразить точнее. Я считаю, что все отечественные навороченные
клоны фактически состоят из двух компов - собственно Спектрум-совместимой части, и второй
оригинальной разработки, мало меня (судя по всему, и других Спектрумистов тоже, особенно
сейчас) интересующей по причине необеспеченности "развлекательным" (ну что поделаешь...)
софтом и несовместимостью этих наворотов с другими клонами - вне зависимости от того,
удачный этот "второй" компьютер, или не очень.
Я не против ни присутствия этой "второй части" в компьютере, по-прежнему гордо именуемом
"Спектрум-совместимым", ни всяких высокотехнологичных прибамбасов, к нему приделываемых.
Нужно только четко осознавать, какие из наворотов объективно работают на спековский
режим (а значит, насколько полезны для программистов именно Спектрума), а какие нет. И не
пытаться выдать одно за другое.
Так, большинству программ все равно, с ленты они загружаютя, с флопа или с винта (адаптация,
если она нужна, не представляет особых трудностей). Мышь тоже ничему не вредит, это ведь
всего лишь дополнение, в крайнем случае клавиатура всегда под рукой (исключения крайне
редки). AY-чип вообще следует считать частью Спектрума (хоть его и "испанцы придумали")
- но и его присутствие для работы программ необязательно (хотя и желательно, чего говорить).
А вот видеорежим, тем более сильно отличающийся по адресации (а то и вообще совершенно
чуждый "по философии" видеочип) - это совсем, совсем другое дело. Он для работы юзающей
его программы НЕОБХОДИМ.
Так что даже если наворот доступен из Спектрум-режима, это не значит, что он для
него полезен. Из графических возможностей АТМ реально полезной для спектрумовского
софта я могу признать лишь изменяемую палитру - и то в основном раз установленную, а не
"сменяемую по ходу", что влечет за собой большой объем работ по адаптации. А так - будет
графика в игре выглядеть более естественной, а нет АТМ - и обычной палитрой можно обойтись
в крайнем случае.
Пусть и дальше совершенствуется "расширенная часть" Спектрум-клонов - приделыванием ли
внешних наворотов или их интеграцией в схему - желаю успехов. Но только не следует забывать,
что совершенствоваться она должна ВМЕСТЕ со Спектрум-частью. А не ВМЕСТО нее.
Хм, чего-то опять в монстрологию ударились. Ну хоть оживление какое-то....
А чего я предложил в последний раз - так только перехват на запись в экран и надо сделать, если без четвертушек, то есть совсем пассивный девайс с точки зрения програмера.
Кстати, как насчет переделки в такую видеокарту старых 48К Спектрумов, пылящихся на антресолях, и тому подобного барахла?
P.S. CHRV, а что, последнее предложение недостаточно конкретно...
Или только и можем, что чайников "сизым дымком" пугать?
Какие проблемы будут при внешней реализации, например, для того же ATM Turbo 2++ ?
И вообще, будет ли в дальнейших АТМ системная шина (сколько слотов) и какая?
P.P.S. Не отступать и не сдаваться! ( Пошел домой отвечать остальным... )
Идея не нова и очень хороша (тем, что оформлена отдельным самостоятельным модулем). Немцы например таким образом создали контроллер LCD дисплея в 96-97 годах для ZX-81. С собственным Z80 (ну тогда просто всякие матрицы не особо были распространены среди мирного населения).Цитата:
Сообщение от Lethargeek
да, правильно, это должно быть именно 8 спеков, примерно одинаковых по конфигурации. Лучше брать именно 48К или 128К без дополнительных наворотов. (и переделывать тогда - как и сейчас делается - игры сделанные для этих режимов). Я уже представляю себе этого реального монстра (вообще реально, без шуток) - 8 параллельно установленных плат, на 7 отрезаются входы инта, wait'а, и clk, и протягиваются соответствующие провода от 1-го - ведущего - спека на 7 прочих. Чтобы в итоге все 8 пахали как один. Видеовыходы со всех компов собираются в один композитный сигнал 256 цветов и идут на обычный ibm-ный моник (в цифре или аналоге, это уже не суть - как спаяется). Но нужно еще кое-что. Там есть ряд операций, которые несколько отличаются от того, что делал бы проц с обычным байтом из 8 бит. Обычно это дело касается работы с регистром L, и есть еще одна фишка. Некоторые спек-проги для естественной экономии крупные спрайты хранят один раз, а для выполнения операции сдвигов, отображений, маскирования таких спрайтов при выводе на экран держат в памяти несколько (штук 7) 256-байтных таблиц. Так вот, по сигнатурам я в эмуляторе определяю, что прога делает сейчас именно такое действие, и маленько кое-что делаю, чего проц сам бы не сделал. (Собственно, это и есть мое главное усовершенствование против Spec256, хотя есть еще парочка фишек. Ну, не считая тулзы для раскраски). В общем если кто загорится, я подробно выделю все эти операции, и детально расскажу. Но тогда - чур - не отверчиваться: паяльник в зубы - и вперед :) В общем, для таких операций надо действительно отслеживать содержимое регистров, и смотреть на память, и это должна делать какая-то дополнительная плата.
А насчет 6144 - это вы неправильно поняли. КАЖДОМУ биту оперативки соспоставляется байт расширенной граф-памяти. Итого 48Кх8=384К или 128Кх8=1024К=1М. SMT-то понял... он-то правильно объясняет :)
Тулза для переделки есть у меня в эмуляторе, достаточно мощная, чтобы выполнять поиск спрайтов и их раскраску почти всю. Проще посмотреть на уже переделанные игры (опять же лучше под EmuZWin - Spec256 не имеет тулзы, и не поддерживает некоторые преобразования - не все переделки под ним правильно пойдут. Может потому испанцы и забили в 2000 году на это дело. А жаль - идея классная, просто немножко опередила время. Мне-то намного проще было, с ММХ, я действительно гоняю 64-битные байты через ММХ-регистры, скорость вообще практически не падает).
Да, чуть не забыл. Там еще может подрисовываться фон. Например, каменный или травянистый фон в knight lore, или облачка в BruceLee. В эмуляторе для этого используется набор сигнатур из экранной области, при прорисовке по определенным правилам вместо пикселов, которые считаются прозрачными в экране спека, подставляются 256-цветные пикселы из текущего бакграунда. По сигнатуре в экране, бакграунд может переключаться. Сигнатуры естественно задает тот, кто графику раскрашивает, для подготовки бэкграундов в нужном формате 320х200х256 есть отдельная тулза. Вот и вся техника. В эмуляторе действительно просто. И игры действительно переделывать несложно - нужно лишь уметь пользовать паинтбрашем.
Восемь спеков :v2_eek: и каждый по ~20у.ё. :v2_eek:
(и всё это взамен десятибаксовой фентифлюшки :v2_unsur: )
ASDT> "Нужно - не нужно..." Ясно. Вся тема - пустой гон.
Пустой гон - это когда "сон разума рождает чудовищ" аппаратных. Я-то, по крайней мере,
всегда стараюсь быть предельно конкретным в рамках моей компетенции. И внимательно читаю,
что другие пишут. И отвечаю подробно. А тут у людей прежде всего проблемы с пониманием.
Ну что мне, скриншоты, что ли, раскрасить? - так тут же обвинят в дешевых приемчиках.
Эх, была бы поддержка в нормальном эмуле, уже начал бы софт адаптировать... я ведь его
и так ковыряю все время. А в пределах спековских ограничений графику исправлять
- это ведь даже сложнее.