Войти
ФлеймФорумЖелезо

Блеск и нищета 8/16-битных консолей и ПК (40 стр)

Страницы: 139 40 41 4247 Следующая »
#585
10:43, 10 июля 2019

0iStalker

Прикольная ссылка. Добавил в оглавление.
В свете того, что яндекс конкурс зарядил https://gamedev.ru/industry/forum/?id=245418 даже подмывает какой нибудь вывод спрайтов взять оттуда и попробовать, но времени конечно нет, а победители там уже практически известны. :)


#586
18:11, 1 авг. 2019

#587
(Правка: 9:38) 9:37, 2 авг. 2019

0iStalker

Меня до сих пор улыбает, что документация Software Reference Manual для Sega Mark III - это брошюрка на 44 страницы из которых 14 последних - это приложения в виде кусков кода и картинок для наглядности.
Вот и вся документация - вечером перед сном почитал и с утра пошёл игру писать. :D

#588
(Правка: 22:15) 22:02, 12 сен. 2019

Несколько хинтов по работе с ESXDOS для ZX Spectrum (доступно, если подключить модули расширения DivIDE/DivMMC)

a) в каталоге BIN на загрузочном диске хранятся системные программы, которые можно запускать набрав прямо в бейсике, начав комманду с символа точки, например

.ls

выведет список файлов/каталогов на текущем диске в текущей выбранной директории

а

.cd

сменит текущий каталог

b) есть поддержка эмуляции ввода/вывода  с/на ленту  с помощью команд tapein/tapeout

.tapein dizzy.tap
LOAD ""

загрузит игру, хранящуюся в файле "dizzy.tap"

c) команда vdisk позволяет работать с образами дисков TR-DOS

.vdisk 0  "disk.trd"

подключит образ диска в драйв А, для драйва B нужно, соответственно сделать

.vdisk 1  "disk.trd"

ну а потом можно загрузиться через стандартные точки входа TR-DOS, например  RANDOMIZE USR 15616

сделано это, конечно, через всю ту же самую технологию теневых ПЗУ,  но удобно до жути. Можно, например, старые бейсик программы (хотя это нафиг никому не нужно) доработать до возможности работы с SD картой на 16Гб. 

зы.
А, да, через NMI меню можно запускать  trd/tap тупо через GUI стрелочками.

+ Показать
#589
(Правка: 14:40) 14:29, 13 сен. 2019

Краткое описание видеорежимов ZX Spectrum Next

Пока искал ответ на вопрос в соседней теме заинтересовался графическими возможностями ZX Spectrum Next.
Оказались весьма широкие.
Ну во первых конечно сохранён оригинальный и единственный видеорежим ZX Spectrum 48 - 256x192 монохрома раскрашенного по два цвета в знакоместах 8x8 которые начинаются по адресу $4000 (16384) и занимают 6144 байта на монохромный битмап и 32x24=768 байт на атрибуты знакомест сразу после битмапа.
Можно сказать что он составляет изначальный "слой ULA".
Вообще изображение как бы может состоять из следующих слоёв:
1. Слой ULA
2. Тайловая карта
3. Спрайты
4. Слой 2 (Layer 2)
Всех их можно комбинировать, но я не совсем понял могут ли одновременно быть активированы 2 и 4.

Слой ULA
Слой ULA, однако, не остался неизменным, хотя все модификации продолжают гнездится во второй странице в 16Кб памяти компьютера. Его можно переключить в следующие дополнительные видеорежимы:
1. Timex Sinclair Double Buffering - стартовый адрес видеопамяти можно переключить на адрес $6000 вместо $4000 (т.е. во вторых 8Кб страницы) и таким образом реализовать две страницы
2. Timex Sinclair Hi-Res Mode - удваивает горизонтальное разрешение до 512x192 при этом с адреса $6000 хранится второй битмап с добавленными колонками, но при этом вообще отваливаются атрибуты и изображение становится тру монохромным!
3. Timex Sinclair Hi-Color Mode - в этом режиме уже область атрибутов начинается с адреса $6000 и при этом на каждый байт полоски монохромного изображения 8x1 идёт байт атрибутов с тем же смыслом что раньше и с той же раскладкой в памяти что и у битмапа - собственно атрибутов. Т.е. это такой узаконенный мультиколор 8x1 без проблем.
(судя по всему эти 3 новых видеорежима выше достались из серии компов Timex Sinclair и управляются через аналогичный порт ввода-вывода для совместимости что и было там)
4. LoRes Layer/Radasjimian Mode - аналог одноимённого режима из ZX Uno - 128x96 256-цветных пикселей. Первые 48 строк лежат по адресам $4000-5800, а последние - по $6000-$7800. Каждый байт - индекс в палитре, управление через порт спрайтов.
5. Enhanced ULA - позволяет заиметь до 256 цветов на экране, но довольно странным методом. Через специальный порт программируется сколько бит в атрибуте описывает цвет единичных бит в знакоместе, а сколько - нулевых (через палитру). Т.е. опять в пределах одного знакоместа 8x8 возможно только 2 разных цвета, но их цветовые диапазоны значительно расширены по сравнению с оригинальным режимом ULA.

Тайловая карта
Тайловая карта отображает сетку тайлов 8x8 и в пикселях может иметь размер 320x256 или 640x480 (40x32 или 80x32 тайла).
Очевидно это никак не совпадает и не кратно разрешению ULA 256x192, поэтому было принято забавное решение - пиксели слоя тайловой карты выступают на 32 пикселя во все стороны за слой ULA, т.е. просто покрывают большую площадь.
Как обычно тайловая карта состоит из двух вещей - массив изображений тайлов (каждый тайл 16-цветный, 4 бита на пиксель, 32 байта размером) и собственно самой тайловой карты.
Тайловая карта может иметь 1 байт на тайл (тогда это просто индекс тайла) или 2 байта на тайл - тогда во втором байте можно зеркалировать каждый тайл по отдельности, выбирать ему палитры и порядок заслонения со слоем ULA если тот включен. Последний бит правда еще можно отдать под старший бит номера тайла и тогда можно вывести больше чем 256 тайлов.
Забавно, однако, что все эти данные должны лежать там же где и данные ULA - во второй странице памяти ПК, поэтому если одновременно включить и тайловую карту и ULA, то придётся сокращать число выводимых тайлов. К счастью местонахождение всех данных управляется с гранулярностью в 256 байт.
Конечно главная фича тайловой карты - регистры скроллинга которые позволяют делать плавный скроллинг заднего фона абсолютно в консольном стиле.

Спрайты
Все данные по аппаратным спрайтам (и их изображения и атрибуты) хранятся в собственной памяти FPGA и процессор может общаться с ней только через порты ввода-вывода.
Так же как и слой тайловой карты размер слоя спрайтов - 320x256 пикселей и точно так же он выступает за слой ULA на 32 пикселя во все стороны.
максимально 128 спрайтов 16x16 пикселей с возможностью масштабирования в 2,4,8 раз отдельно по каждой оси.
100 спрайтов может выводится в одной строке.
16Кб памяти спрайтов может хранить 64 256-цветных спрайта или 128 16-цветных (и любые их промежуточные комбинации)

Слой 2 (Layer 2)
256-цветный битмап 256x192 палетризированных пикселя. Может выводится одновременно со слоем ULA и скорее всего спрайтами, но у меня создалось впечатление, что со слоем тайлов они несовместимы.
Слой должен занимать ровно 3 страницы по 16Кб, поэтому лежит или в логических страницах 8,9,10 или (для буферизации) в 11,12,13. Эти страницы как раз следующие после 8 стандартных страниц ZX Spectrum 128, т.е. само их использование уже предполагает что у нас ПК с 256Кб на борту и выше.
Интересно, что можно перевести первые 16Кб памяти ПК (ПЗУ) в такой режим, что при записи туда будет происходить запись в выбранную в специальном регистре текущую страницу Layer 2 - т.к. в норме запись в ПЗУ не нужна, то это позволяет экономить на переключениях страниц. Но если понадобится считывать данные, то обязательно работать через переключение страниц.
Необычно так же то, что у этого слоя тоже есть порты ввода-вывода для скроллинга.

Такие вот у ZX Spectrum Next видеорежимы и видеовозможности.

#590
(Правка: 20:50) 20:50, 13 сен. 2019

Ремарка (по истории консолей Sega которая, впрочем, прошла мимо нас, граждан СССР)

Интересно по каким воспоминаниям будут ностальгировать поколение Милениум если это имеет какой то смысл.

#591
6:51, 14 сен. 2019

по соцсетям, вестимо

#592
8:41, 15 сен. 2019

KPG
> Интересно по каким воспоминаниям будут ностальгировать поколение Милениум если
> это имеет какой то смысл.
Они не доживут до этого возраста.

#593
22:08, 19 сен. 2019

0iStalker
> RANDOMIZE USR 15616

о да ... настальгия по детству :)

#594
23:26, 19 сен. 2019

Подарил пятилетнему племяннику RetroPie с двумя геймпадами и поиграл с ним в баттлтодс, в SNES версию. Было столько визгов восторга, что мне самому было весело с ним играть.

#595
10:35, 20 сен. 2019

Отличная статья прям в формате темы на хабре: Архитектура и программирование Fairchild Channel F.
На фоне особенностей и фич микропроцессора F8 я практически реабилитировал в душе своей MOS 6502. :D

#596
11:33, 20 сен. 2019

=A=L=X=
> я практически реабилитировал в душе своей MOS 6502. :D

https://ru.wikipedia.org/wiki/65C02

#597
(Правка: 11:43) 11:41, 20 сен. 2019

0iStalker

Ну во первых про 65C02 (и многих других) я в этой же теме давно уже писал, во вторых суть как раз в абсолютно дебильной архитектуре F8, которая даже на 6502 смотрит как на говно в плане ущербности, неортогональности и дебильности системы команд и регистров. Т.е. 6502 "говно" именно в смысле что оно не такое дебильное, а титул абсолютного говна переходит к F8.

#598
0:15, 6 окт. 2019

Довольно остроумно, на грани гениальности, инженеры SEGA, решили вопрос сохранения обратной совместимости геймпада  ATARI/Sega Master System  и Sega Genesis.  Просто добавили в геймпад  мультиплексор и вывели на свободный пин разъема джойстика сигнал селектора, это позволяет считывать с одних и тех же контактов состояния различных кнопок, без всяких сдвиговых регистров.

Изображение

https://gamesx.com/wiki/doku.php?id=controls:megadrive_genesis_controller_3

#599
(Правка: 16:10) 16:03, 6 окт. 2019

0iStalker
Можнo было бы пойти дальше и кнопки «Select»/«Start» подключить через диоды на крестовину…
Когда я Dendy-джойстик переделал под ZX-Spectrum, надо было придумать, как в своих программах организовать паузу. И я диодами «Start» сделал за «Влево+Вправо», а «Select» - «Вверх+Вниз»…
А так как механически нельзя крестовиной нажать сразу «Влево» и «Вправо», то «Старт/Пауза» реально экономно и чётко вписалась… Тем более, ни «Start», ни «Select» нигде в играх не используется во время игры - только в меню. Потому и совсем не мешали бы…
Инженеры это не додумали. Иначе бы в NES-джойстике было бы не 2 кнопки акта, а 4.

P.S.: В рамках ZX: Вентильно аппаратно можно отлавливать такие «Влево+Вправо» и «Вверх+Вниз» комбинации, нажимая клавиши «P» для паузы и «Space», например, для смены опции (в ArtStudio)…

Страницы: 139 40 41 4247 Следующая »
ФлеймФорумЖелезо