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

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

Страницы: 159 60 61 6266 Следующая »
#885
8:58, 27 фев. 2020

Не нашёл нужного раздела, но всё равно же шедевры 8/16 бит

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры


#886
11:30, 2 мар. 2020

4х канальная биперная музыка на ZX Spectrum

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры


исходники - https://github.com/utz82/ZX-Spectrum-1-Bit-Routines/tree/master/fluidcore

#887
12:54, 3 мар. 2020

=A=L=X=
> прикольно, как раз тот самый Shiru

Уже где-то тут вставлял, но тут оно попалось опять  в рекомендациях и сразу бросилось в глаза название

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры
#888
(Правка: 17 мар. 2020, 5:53) 13:14, 3 мар. 2020

0iStalker
> Shiru

А. Кстати сам Shiru отписывался на мой вопрос про это тут: http://hype.retroscene.org/blog/967.html#comment25049
Суть в том, что он довольно весомо продвинул ретропрограммерскую движуху для NES: написал редактор графики и спрайтов, библиотеку музыки и звуков FamiTone которая может воспроизводить с некоторыми ограничениями (для того чтобы соответствовало по скорости игровому применению) музыку и эффекты из популярного FamiTracker и плагин neslib (назовём это так - набор правил и код обвязочный для сборки) для кроссплатформенного компилятора Си на машины базированные на MOS 6502 и его потомках - CC65. В общем крупный след оставил и он до сих пор аукается так сказать, причём для меня иногда с совсем неожиданных направлений.

Так, автор IDE Nesicide - Кристофер - с которым я переписываюсь иногда сейчас пока пишу уроки сказал, что свою среду Nesicide обкатывал на игре Alter Ego от Shiru чтобы усилить доказательство Shiru что на NES можно писать на Си еще одним утверждением: что на NES можно отлаживать программы на Си. :D

Короче говоря сейчас я пишу урок для денди по музыке и звукам и использую конечно же FamiTone2 - и да, всё уже играется и воспроизводится, работаю над текстовкой когда свободное время выпадает.
Хотел еще Darkman007 спросить нет ли какого нибудь материальчика под NES для, но что-то он долго не отвечает и у нас тут с 25 числа не появлялся. В отпуске что ли или типа того...

#889
12:09, 5 мар. 2020

Надо ведь так извратиться

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры
#890
15:50, 15 мар. 2020

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры
#891
19:51, 15 мар. 2020

Диодами он наверное мог бы вполне помигать и из бейсика, POKE наше все (я когда-то через него вообще бутстрапился).

#892
20:13, 15 мар. 2020

0iStalker

детство моё

#893
21:00, 15 мар. 2020

Dmitry_Milk
Да там поуком можно было и в спрайты. Но видео про бейсик-боль лайков не наберёт)

#894
22:51, 15 мар. 2020

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

Зато тогда я открыл первый в своей жизни "демосценный хак". На Фокале не было возможности пищать произвольные тоны, можно было только в цикле включать/выключать магнитофонное реле, которое в таком случае трещало с частотой порядка пары-тройки сотен герц. Воткнуть внуть цикла хоть какую-то еще одну более-менее сложную инструкцию (скажем, внутренний for) было бесполезно - частота становилась ниже пары-тройки десятков герц. Но мне удалось найти хитрое решение - оказалось, можно не добавлять инструкций в цикл, а просто добавить дополнительных точкозапятых - и это слегда удлиняло время выполнения тела цикла, чем больше - тем дольше. За счет этого удалось получить соответствия нотам в районе малой-большой октавы.

#895
(Правка: 10:16) 8:47, 19 мар. 2020

Оказывается в денди у мапперов была еще одна забавная особенность.
Когда первые еще несложные мапперы в картриджах денди стали делать, то была выработана простая схема - маппер смотрел что CPU обращается в ROM на картридже (т.е. во вторую половину 64Кб адресного пространства CPU), но на запись (ножка read/write процессора/шины) - абсурдную для ROM операцию и в этом случае воспринимал байт на шине данных как некий параметр для себя. Фактически маппер просто смотрел что одновременно зажжены бит записи и верхний бит шины адреса - это значит что мапперу летит какой то байт на шине данных. Более того, полезную нагрузку можно впихнуть и в шину адреса и в нижних битах адресов из диапазона $8000-$FFFF тоже давать мапперу какую то интересную информацию. И так тоже будут делать. Но на шине данных информацию давали в первую очередь.

И вот, например, одни из самых простых мапперов UNROM и CNROM просто и воспринимали таким образом любой записанный в область ROM, т.е. $8000-$FFFF байт как номер банка страницы ПЗУ процессора (в UNROM) или видеочипа (в CNROM) которые надо подставлять при считываниях с картриджа. Увеличивая таким образом объёмы.

Но вот проблема - сама плашка ROM ничего не знала о маппере как и о сигнале R/W и продолжала выдавать на шину данных байт по указанному адресу. И он смешиваясь с тем байтом что пытался передать в маппер процессор порождал ситуацию "конфликт шины (bus conflict)". Биты данных из ROM и из CPU перемешивались то ли по OR то ли по AND и давали неверный результат который видел маппер в общем случае.

Казалось бы нужно просто усложнить схему чтобы отсечь ROM от шины данных если сигнал R/W есть Write? Можно. И многие мапперы так и делали. Но нужно вовлекать дополнительную логическую схему.
Так что нередко для простоты и дешевизны делали еще проще - писали в ROM (т.е. на самом деле в маппер) в такой адрес $XXXX где находился заранее такой же байт который хотели в маппер передать. Так что они смешиваясь хоть по AND хоть по OR всё равно давали нужное значение и маппер получал нужное данное. Конечно тут обычно речь идёт о таких мапперах где диапазоны возможных параметров (номеров банков) сравнительно невелики. Но тоже хлеб.

#896
9:31, 19 мар. 2020

=A=L=X=
> Но нужно вовлекать дополнительную логическую схему.

Странно, разве у ROM-микросхем не было сигнала cs (Chip Select вроде)? Насколько помню, ю любых известных мне ROM и RAM всегда был сигнал CS, предназначенный в первую очередь для дешифратора старших адресных линий.

#897
(Правка: 9:34) 9:33, 19 мар. 2020

Dmitry_Milk
> Странно, разве у ROM-микросхем не было сигнала cs (Chip Select вроде)?

А зачем он ROM то? Вот RAM он нужен - без него она правильно работать не сможет. А ROM для дешевизны он просто не играет никакой роли.
P.S.
Хотя представляется логичным, что как раз для ликвидации проблемы могут быть ROM не пытающиеся ничего выдавать наружу если сигнал не на Read.

#898
9:43, 19 мар. 2020

Dmitry_Milk
> Странно, разве у ROM-микросхем не было сигнала cs (Chip Select вроде)?
Еще этот сигнал иногда называется ОЕ(Output Enable), мне казалось что такой сигнал должен быть у всех микросхем памяти для безпроблемной работы нескольких микросхем на паралельной шине.

#899
9:52, 19 мар. 2020

Там мощнейший оверинжиниринг, чего стоит только разделение адресных и шин данных PRG/CHR  ROM. Зачем?  Не говоря уж о том, что ~ROMSEL формируется внутри приставки (чуть ли не внутри CPU)

Изображение
Страницы: 159 60 61 6266 Следующая »
ФлеймФорумЖелезо