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

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

Страницы: 166 67 68 6973 Следующая »
#990
12:00, 13 июня 2020

Rikk

В денди в играх типа супермарио было примерно так.
Единицей изображения был тайл 8x8, всего 256 уникальных тайлов на фон (ровно как символов в текстовом режиме ПК). Изображения тайлов 2 бита на пиксель занимают 16 байт каждый, а всего их 16*256=4Кб тайлов фона - они были одинаковыми на всю игру. На экране их можно было еще раскрашивать в одну из четырёх палитр.
Один экран фона в памяти имел размер 32x30 байт индексов этих самых тайлов, но во первых видны были не все, а во вторых надо было оставить место под статусную панель, поэтому эфективно экран пусть занимает 32x24 байта ~ 768 байт, но это примерно потому что на деле разные палитры надо было тоже как то обозначать и экран был еще упорядочен аппаратно в блоки 2x2 тайла каждому из которых приписывался индекс палитры (2 бита -> 0..3). В связи с таким положением вещей быстро возникло понятие метатайла - это описание из четырёх индекс тайлов + 2 бита их палитры. Опять таки разных видов метатайлов на уровень делали не более 256 они шли в отдельной таблице метатайлов, поэтому на самом деле экран описывался как минимум метатайлами, а значит на один экран хватало бы 192 байта. Но и тут скрывается подвох - 2 бита индекса палитры на метатайл ну опять таки неудобно хранить - в самой экранной видеопамяти группы по 2 бита объединялись в 1 байт описывающий четыре индекса палитры у четырёх соседних опять таки метатайлов (опять блоком 2x2 метатайла). Таким образом еще удобнее было связать тайлы в метаблоки размером 4x4 байт индексов тайлов + 1 байт упакованных индексов палитр - и большинство игр придерживалось именно этой схемы.
А это значит, что на описание одного экрана нужно уже всего 48 байт индексов метаблоков.
Если предположить, что 1 уровень супер марио состоит из 10 экранов в длину, то это 960 байт на уровень и при размере ROM данных и кода картриджа в 32Кб не сжимая их дальше можно было отдав под описания половину вместить ~34 уровня.
Если посмотреть на типичные его карты:
https://nesmaps.com/maps/SuperMarioBrothers/SuperMarioBrosWorld8-1Map.html
https://nesmaps.com/maps/SuperMarioBrothers/SuperMarioBrosWorld8-2Map.html
https://nesmaps.com/maps/SuperMarioBrothers/SuperMarioBrosWorld8-3Map.html
То где-то так и есть.
Но если рассматривать тот же Super Mario, то в связи с тем, что там скроллинг всегда производился только вперёд, то можно было еще и применить сжатие вида RLE или типа того.


#991
(Правка: 12:07) 12:07, 13 июня 2020

Rikk
> Почему про эти dendy/gameboy мало информации?

В ту эпоху была своя атмосфера - компьютеры нередко собирали по чертежам в журналах (это далеко не только в СССР было) или они продавались в виде россыпухи для собственной пайки и собрать программатор ПЗУ с инфракрасным стиранием - это было первое упражнение на пригодность начинающего ЭВМ-щика.
А картридж для денди - это не более чем 2 микросхемы ПЗУ графики и кода.
Упражнение "сделай сам себе девкит" было настолько мизерным, что Nintendo вроде бы так и не выпустила официальный - в лучшем случае это были такие же поделки на продажу третьих фирм.
Там собственно после кризиса видеоигр задача стояла наоборот: огородится от толпы напирающих разработчиков не давая им выпускать слишком много корявых игр. Поэтому всё было совсем по другому нежели сейчас.
Даже когда уже был SNES практиковалось вот такое: https://gamedev.ru/flame/forum/?id=201716&page=190&m=5197779#m2836 (хотя официальные девкиты на Super NES Nintendo уже начала делать - там загвоздка была в слишком новом чипе SuperFX).

#992
(Правка: 13:56) 12:14, 13 июня 2020

там еще наверно изучать надо было два ассемблера один ассемблер как программировать центральный процессор системы а второй ассемблер как программировать видео процессор PPU(picture processor unit) типа за видео графику отвечал то совсем другой видео-процессор который отличался. ну это надо точно знать там списать урок по инету или чего.а такие уроки как делать гейм dendy/gameboy не эмуляторами с++ а по натуре вы наверно фиг найдёте. ну то есть по ссылке крик души дело было реально жесть.
ну и чтобы не морочиться этим всем =придумали высшие с++версия11.
а сегодня опять морочаться но в другую сторону=с++версия11 гавно, юнити непонятный отстой тоже гавно,юнити-прогание зашквар.
мораль сей басни такова= ну все кричат : а где списать урок,и где тут списать урок=а чтоб понять сущность явления там графика dendy/gameboy/super nintendo=хватило прочитать пару учебников 1984года.
=A=L=X=
> Даже когда уже был SNES практиковалось вот такое
сейчас есть мнение=по любому существовали компьютеры Nintendo наборы разработки SDK и на них производили дела. только там шумиха была этот кризис + какие то условия типа одна фирма производит 4штука геймов в год nes/snes да и эти могут не пропустить по цензуре(насилие, кровь и тд).наверно эти SDK давали точно не всем и контролировали, а все эти уроки по инету=это пираты рассказывают как они обходили официальные законные дела.
=A=L=X=
> что Nintendo вроде бы так и не выпустила официальный -
какой процессор на приставке=на компьютере с таким же процессором делали эти дела. nes 8 bit и Commodore C64 =одинаковый процессор. наверное на нем или компьютере с подобным семейством процессоров и делали. SNES аналогично=какой процессор snes=надо найти компьютеры на том же процессоре.

#993
16:21, 13 июня 2020

=A=L=X=
> ZX Spectrum Next практически весь реализован на FPGA включая процессор, поэтому
> в нём Z80 не только смогли повторить, но и улучшить внедрив несколько новых
> инструкций.
Интересно, под есть ZX-Next и проект(ы) Форт языка и интересно как улучшается эффективность реализации классического  Форт с использованием этих новых инструкций.

P.S. Один из такого проекта Forth on Sinclair ZX Spectrum Next (в активном состоянии)

#994
22:13, 13 июня 2020

=A=L=X=
> Там собственно после кризиса видеоигр задача стояла наоборот: огородится от
> толпы напирающих разработчиков не давая им выпускать слишком много корявых игр.
> Поэтому всё было совсем по другому нежели сейчас.

По-другому? О_о.
Ну только в том что корявые игры никто не мешает выпускать, разве что :).

#995
3:41, 14 июня 2020

jaguard
> Ну только в том что корявые игры никто не мешает выпускать, разве что :).

После кризиса видеоигр 1983 года который был вызван огромным количеством игр и процента шлака среди них из-за свободного вливания разработчиков в большую дружную семью обанкротилось 95% индустрии. Натурально и без преувеличений. Чтобы превозмочь вомглу Nintendo избрало тактику "зловещих мертвецов" - разработчики игр воспринимались как толпа неразумных зомби прущих волной на платформодержателя и платформодержатель пинками ног скидывал их со стены обратно в говна откуда они родились и прут. Запрещено было одному разработчику издавать больше двух или трёх игр в год, любой косяк в игре мог служить причиной её невыпуска и так далее.
Поэтому да, было совсем всё по другому чем нежели сегодня со Стимом и Юнити.
Но потом со временем, когда кризис забылся, а конкуренты воспряли тоже и эта стратегия тоже поменялась.

#996
(Правка: 21:51) 21:11, 14 июня 2020

https://archive.org/details/SNESDevManual/page/n33/mode/2up
программирование super nintendo 16 bit. книга1=240листов. книга2=413листов. всего=650листов.
там очень много про электронику как работают микросхемы, ассемблер snes
стр206 построение character 2бит/точка 4бит/точка 8бит/точка схема А-12
стр198 как character распределяются на экране типа спрайтами 8х8 заполнить весь экран 525х270
стр196 как строится изображение в зоне 8K
методами описанными ранее (лицо морда и сеть клеток) вводятся данные D0..D15 из нолей и точек строится рисунок фигура.записывать это надо в конкретные адреса памяти 4000h...6000h (8 килобайтное слово 8K WORD). электронная схема построена так что схема заранее знает что это объект1 объект2 объект3 и тд... первые 16адресов=объект1, вторые 16адресов=объект2 и тд..это номера OBJ000...OBJ1FF. Затем см стр198 схема А-4 эти объекты заполняют экран по номерам 000..1FF и это весь экран 525х275 пикселов.
  если памяти не хватало тогда принимали решение типа носитель cartridge должен быть с дополнительными микросхемами типа SuperFX и дополнительными RAM пришитыми в cartridge. спецификации cartridge типа вместимость 1 2 4 8 Mb и дополнительные RAM на кассетах см первая книга первые 25листов описания.

ну и чтоб так не мучаться=ввели эти высшие с++версия11
и вот тут заявки типа =с++версия11 гавно мучения=ну разве это мучения? только задумайтесь о трудах тех товарищей которые делали snes

#997
(Правка: 15:21) 15:00, 18 июня 2020

Статья на Хабре, про дедушку встроенного в прошивку ZX Spectrum калькулятора  (по крайней мере, общие черты прослеживаются)

Sinclair Scientific смогли уменьшить сложность кода используя обратную польскую запись, в которой математические операторы идут после чисел, над которыми производится действия – к примеру, действие «5 + 4» пишется как «5 4 +».

https://habr.com/ru/post/507088/

upd:
Можо прям сюда, вместо Хабра,  http://files.righto.com/calculator/sinclair_scientific_simulator.html

#998
(Правка: 13:00) 12:53, 24 июня 2020

Реверс-инжиниринг микропроцессора Intel 8086

Кому лень читать

+ Показать
#999
13:14, 24 июня 2020

0iStalker
> 8086 был изначально задуман
а чо тама история типа японский калькулятор и создатель процессора  intel8086  Теодор Хофф говорит=мы не будем делать 15микросхем а сделаем такую эту первую схему и к ней будут подключаться четыре разных схемы типа логика память и умножение,таким образом выиграем 5схем вместо 15схем и эта такая первая схема и стала процессор inel8086.
при том они бы могли просрать свое детище реально если бы японская фирма забрала себе патент, но intel выкупила все права у этой японской компании. так было бы процессор i8086, родина Япония.
не?

#1000
(Правка: 14:09) 14:06, 24 июня 2020

0iStalker
> и был потомком процессора, построенного из платы, полной ТТЛ-микросхем

Там насколько я читал вики (и писал в статье) немного другая история - CTC заказало TI и Intel разработать проц описав систему команд, но из-за срыва сроков и разных проволочек плюнуло, отказалось и реализовало её на TTL как делали все раньше. Т.е. не то чтобы произошёл, а являлся заказом на Instruction Set который был реализован _потом_ иначе.
Тут еще забавно то, что из-за того что это изначально терминал должен был быть, который должен был по линии связи получать от сервера байты и посылать ему нажатия на клавиатуре, то в систему команд был внедрён parity flag, проверяющий чётность бит в пересланном байте для контроля чётности линии связи общепринятой до сих пор. Но в последующих компьютерах тех же IBM PC коммуникационные порты сами себе проверяли чётность и parity flag остался до сих пор даже в x64 несмотря на то что он никем и нигде давно не используется в реальном коде.
Такая вот тоже легаси забавная. В тех же ARM нет никаких parity flag и это никого никогда не парило.

Так же там еще неверная информация что i8086 совместим с i8080 - это не так. Но он разрабатывался так чтобы программы на ассемблере i8080 теоретически можно было автоматически транслировать в программы на i8086. И иногда, как я понял, одна инструкция i8080 могла превратится в несколько инструкций i8086 потому что совсем уродовать новую систему команд из-за наследства не хотели. И вообще не знаю использовали когда нибудь эту фичу или нет.

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

#1001
8:32, 25 июня 2020

С субтитрами, вроде, всё понятно

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры
#1002
(Правка: 9:20) 9:04, 9 июля 2020

Лол, вот тут http://forums.nesdev.com/viewtopic.php?f=2&t=20308 некто под ником EnigmaWave утверждает, что реализуя на NES свой звуковой драйвер решил для семпла DCPM взять звук из игры Double Dribble.
Он звучит прямо на старте игры:

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

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

Так вот автор топика утверждает, что реализуя драйвер перепутал направление прокрутки бит в очередном байте подпитывающем звуковой канал и получил вот такое звучание:
http://forums.nesdev.com/download/file.php?id=18051
Кхем.
Ниже по топику там еще один человек подтвердил, что получил такой же результат и более того, уже выложили фикс для игры.

P.S.

https://tcrf.net/Double_Dribble_%28NES%29 - вот тут выложили в более удобном виде для сравнения 4 цифровых звука из игры.

#1003
(Правка: 10:00) 9:57, 9 июля 2020

https://www.youtube.com/watch?v=nRo0Iv99CXw
DeathRace nes машинки давят людей и стреляют= дедушка Carmageddon/GTA
3мин30сек=меню магазин покупать колеса шасси оружие улучшать параметры там видно типа chassis=8/10 оно еще и RPG

#1004
(Правка: 11:30) 10:24, 9 июля 2020

Rikk
> DeathRace nes

Забавно, там рассказано, что предтечей был игровой автомат 1976 года:

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

И что он настолько потряс СМИ, что про неё написали и Associated Press и The New York Times и многие другие офигев от неприкрытой жестокости и насилия пропагандируемых игрой. Большинство отзывов поэтому было негативным, порицающим, но это только подняло популярность автомата.
О времена, о нравы...

(подробный разбор полётов на англ.: https://gamehistory.org/media-vs-death-race/ )

Страницы: 166 67 68 6973 Следующая »
ФлеймФорумЖелезо