Pull to refresh

Демо BACK TO THE PET — дневник разработки

Level of difficulty Medium
Reading time 54 min
Views 672
Abnormal programming *Assembler *Demoscene Old hardware

В 2022 году я написал и выставил на CAFe 2022 полноформатное демо для редкой в наших краях платформы, одного из древнейших персональных компьютеров — Commodore PET 4032. Монохромный текстовый режим 40x25 без возможности загрузки шрифта, никаких аппаратных скроллов, однобитный бипер на выходе последовательного порта, 32 килобайта ОЗУ, в которые помещается все 4 минуты демо без дозагрузок.

Читать далее
Total votes 11: ↑11 and ↓0 +11
Comments 3

Atari 800XL: Смотрим, разбираем, включаем

Reading time 6 min
Views 53K
History of IT Old hardware Games and game consoles
Наверняка многие читатели Хабра выросли на компьютерах ZX Spectrum и БК-0010/0011, ну или как минимум сталкивались с ними в далёких 90-х годах. Для многих эти ПК стали отправной точкой в мир ИТ. Но, как и многое другое, в нашу страну восьмибитные домашние ЭВМ пришли гораздо позже остального цивилизованного мира, да и не в полном объёме. Там же эта эра началась почти на 10 лет раньше, в конце 70-х годов, когда вышли Atari 400/800, Commodore PET и, конечно, Apple II. Массовое же распространение домашние компьютеры начали получать в начале 80-х. В 1982 году увидели свет знаменитый ZX Spectrum 48 и не менее знаменитый Commodore 64, в 1983 году вышел Atari 800XL, а в 1984 году на прилавках магазинов появился первый Macintosh. Как и большинство домашних компьютеров на тот момент, Atari 800XL был основан на процессоре 6502C с частотой 1.79 МГц, имел 64Кб памяти, умел запускать игры с кассет, трещать 5,25" дискетами, выгуливать на экране 61440 разноцветных пикселей и много чего ещё. Об этой замечательной железке я и собираюсь сегодня поговорить, впрочем, не только поговорить!


Читать дальше →
Total votes 67: ↑67 and ↓0 +67
Comments 22

Простой «железный» терминал

Reading time 5 min
Views 69K
DIY
Данная статья является продолжением описания микроконтроллера на процессоре 6502 «Аюша». В ней мы рассмотрим, как превратить контроллер в полноценный компьютерный комплект, причём в качестве основы не обязательно делать «Аюшу», сойдёт любой иной девайс. Ну или применим собранный терминал для чего-нибудь ещё. И опять же, для сборки будет применён «подножный корм»…

image
Читать дальше →
Total votes 71: ↑71 and ↓0 +71
Comments 20

Как собрать Apple 1 и написать для него игру

Reading time 14 min
Views 30K
Assembler *Computer hardware History of IT DIY Games and game consoles

Как собрать Apple 1 и написать для него игру




Прошло 40 лет с момента выхода в свет компьютера Apple 1. Сегодня его возможности не дотягивают даже до простых микропроцессорных устройств или микроконтроллеров. Но в 1976-ом году эта новинка наделала много шума, говорилось даже о революции в мире ЭВМ. Предлагаю читателю вместе со мной собрать Apple 1, чтобы узнать, что же интересного в нём было, и написать какую нибудь программу.

Сразу скажу, собирал я его не за один раз. На поиск компонентов, сборку и отладку в свободное время, ушло три года, примерно столько же потом на отладку, и чтобы наконец собраться и написать эту статью.
Total votes 83: ↑82 and ↓1 +81
Comments 38

Союз Arduino и классического процессора

Reading time 9 min
Views 32K
Developing for Arduino *Old hardware CPU DIY
Tutorial
Translation

Ретрокомпьютерщики бывают различной степени привередливости. Одни довольствуются эмуляцией. Другие предпочитают ПЛИС, потому что тогда получается не эмуляция, а воссоздание. Наконец, третьим подавай настоящий процессор.

Но процессору для работы нужно столько всего! Снова дилемма: взять настоящие микросхемы тех же лет, или поместить всё в ПЛИС, оставив снаружи процессор? Впрочем, почему обязательно ПЛИС? Да здравствует союз Arduino и классического процессора!
Читать дальше →
Total votes 56: ↑56 and ↓0 +56
Comments 23

История взлома классической игры на Dendy или Contra на 100 жизней

Reading time 7 min
Views 12K
Assembler *Games and game consoles
Sandbox

Поскольку некоторая японская компания, до сих пор тщательно бдит свои авторские права. Я не могу предоставить вам ни мою версию рома ни использованный мною исходник. Скажу лишь, что нашёл его в торрент сборнике "Все игры на Dendy". Взяв оттуда переведённую на русский язык японскую версию игры "Contra (J) [T+Rus_Chronix]" я несколько раз её прошёл и будучи крайне любознательным человеком решил немного расковырять ROM образ, в частности подарить немного жизней игрокам.

Читать дальше →
Total votes 21: ↑19 and ↓2 +17
Comments 19

История взлома классической игры на Dendy или Contra со спрэдганом в начале

Reading time 6 min
Views 9.2K
Assembler *Games and game consoles
Tutorial

Раз уж прошлая моя статья, к моему большому удивлению, вас заинтересовала. Я решил дополнить её результат, хакнутую версию игры "Contra (J) [T+Rus_Chronix]", небольшим функционалом, заодно показав "code injection" на NES. В этот раз я сделаю так, чтоб игроки начинали игру с прокачанным Spreadgun, для его получения в игре нужно подобрать иконку "S", а за ней "R".



Все заинтересовавшиеся welcome под кат.

Total votes 30: ↑27 and ↓3 +24
Comments 9

Умные часы с Бейсиком на физическом 6502

Reading time 4 min
Views 18K
Programming *Gadgets DIY
Tutorial
Translation

Процессор 6502 существует более 40 лет и до сих пор используется в ряде встроенных систем. Компания WDC продолжает выпускать 65C02 и периферийные микросхемы серии 65Cxx. Автор обнаружил, что теперь они доступны и в корпусах PLCC и QFP, но эти варианты микросхем используются редко. Микросхемы же в DIP-корпусах более недоступны, поскольку спрос со стороны одних лишь самодельщиков слишком мал. Автор решил сделать самый маленький одноплатник на 6502, какой только сможет. Не исключено, что самый маленький из известных самодельных одноплатников на этом процессоре (несамодельные бывают и меньше, например, Тамагочи). В результате получилось устройство, к которому можно при желании разработать наручный корпус с ремешком. Дисплей взят от Nokia 5110, написана оболочка с красивым интерфейсом, и получились, возможно, единственные смарт-часы на 6502.

В часах установлены: процессор 65C02 с тактовой частотой в 8 МГц, микросхема 65C22, управляющая ЖКИ и опрашивающая кнопки на плате и внешнюю клавиатуру, дисплей от Nokia 5110 (84х48 пикселей), 32 кБ статического ОЗУ, 16 кБ ПЗУ в адресном пространстве. Напряжение питания — 3,3 В.

И самое главное: в качестве док-станции к разъёму на плате можно подключать матрицу клавиатуры от Commodore 64, получая что-то похожее на Seiko UC-2000 (обзор на Хабре):

Читать дальше →
Total votes 52: ↑52 and ↓0 +52
Comments 6

Я нашёл отличного программиста по имени Стив Возняк

Reading time 2 min
Views 40K
Programming *Perfect code *Manufacture and development of electronics *History of IT CPU
Translation
Давным-давно, когда компьютеры были большими, а бизнес скучным, произошло нечто неожиданное. Молодые хакеры нашли способ собрать персональные компьютеры на дешёвых микропроцессорах от телетайпов и светофоров. Одним из них был Стив Возняк. Эти ребята восприняли ограничения своих компьютеров как вызов, сели и заставили эти крошечные чипы делать удивительные вещи. Вот что публиковал Dr Dobb's Journal в августе 1976 года:



Это набор арифметических процедур на действительных числах. Микропроцессор (6502, такой же, как в Apple I и II) мог работать только с байтами, то есть целыми числами между 0 и 255. Хуже того, он мог только складывать и вычитать их. Но с помощью этой библиотеки вы можете вычислить $1.2627-1099.56$, или даже взять квадратный корень из пи. Удивительно, но автор программы по имени Стив Возняк уместил основные функции (сложение, вычитание, умножение и деление) в 239 байт, используя всего 127 инструкций.
Читать дальше →
Total votes 85: ↑80 and ↓5 +75
Comments 69

Грязные хаки ассемблера 6502

Reading time 10 min
Views 22K
Sport programming *Perfect code *Assembler *Demoscene
Translation
В этой статье перечислены некоторые трюки, которые применяли участники моего маленького конкурса программирования Commodore 64. Правила конкурса были просты: создать исполняемый файл C64 (PRG), который рисует две линии, чтобы сформировать изображение ниже. Побеждал тот, чей файл меньше по размеру.


Конкурсные работы публиковались в открытых твитах и личными сообщениями, которые содержали только байты PRG-файла и хэш MD5.
Читать дальше →
Total votes 75: ↑74 and ↓1 +73
Comments 19

Разработка демо для NES — HEOHdemo

Reading time 24 min
Views 5.5K
Abnormal programming *Demoscene Old hardware Games and game consoles
История проведения фестивалей компьютерного искусства, также известных как демопати, насчитывает в нашей стране уже четверть века. Люди со всех концов страны собираются, чтобы показать свои упражнения в извлечении невозможного из старых или современных компьютеров и сверхмалых объёмов кода. В первую пятилетку одним из главных демопати страны стал CAFe (внезапно, Computer Art Festival), проводившийся в Казани с 1999 по 2003 годы. Позже он надолго исчез с радаров, отдав пальму первенства более известным ныне Chaos Constructions и DiHalt, и только в этом году произошло довольно триумфальное его возвращение — если не по масштабу мероприятия, то по количеству разнообразных работ, показ которых затянулся до шести утра. Среди них была и моя, о создании которой пойдёт речь в этой статье.

Читать дальше →
Total votes 53: ↑53 and ↓0 +53
Comments 5

Making a demo for NES — HEOHdemo

Reading time 26 min
Views 4.6K
Abnormal programming *Demoscene Old hardware Games and game consoles
There is a lengthy history of computer arts festivals, also known as demo parties, held in Russia over the last quarter century. For decades, once in a while people from all over the country gather together to compete in their ingenuity at getting what was once deemed impossible out of the old or new computer hardware and mere bytes of code. A few leading annual events has been established in the early years. One of them, creatively named CAFe (an acronym for Computer Art FEstival), was held in Kazan from 1999 to 2003. It went under the radar since, making the way for the everlasting Chaos Constructions (1999 — now) and DiHalt (2005 — now). After so long hiatus, the last year CAFe made a loud comeback, returning in full glory — at least by the number of prods released, if not in the scale of the event itself. Presentation of the compo entries went far into the night, with the last demos being shown at 6 AM to the popping eyes of the few hardy ones. There was my demo, too, and this is the story of its making.

Read more →
Total votes 13: ↑12 and ↓1 +11
Comments 0

Превращаем компьютер BBC Micro (1981 год) в устройство записи защищённых дисков за 40 000 долларов

Reading time 12 min
Views 7.7K
Reverse engineering *Old hardware Games and game consoles
Translation

Введение


Одна из самых известных историй о защите гибких дисков связана с Dungeon Master. Эта игра, выпущенная в декабре 1987 года, сочетала в себе усложнённый формат физического диска (нечёткие биты) со скрытными проверками защиты, встроенными в сам геймплей.

Рекомендую прочитать эту статью, в которой представлен замечательный обзор гибких дисков, после которого идёт очень подробный обзор защиты нечёткими битами диска Dungeon Master для Atari ST. Есть также вот эта замечательная статья, которая более подробно рассказывает об историях, связанных с защитой Dungeon Master. В ней есть цитата одного из авторов Dungeon Master:

«Мы получили преимущество, получив патент на схему защиты гибких дисков, в которой для записи дисков требовалось специализированное оборудование за 40 тысяч долларов. Без этого оборудования образ диска создать было невозможно, а само оборудование было выведено из эксплуатации».

Причина такой высокой цены, скорее всего, заключалась в той точности таймингов, которая необходима для надёжного создания нечётких битов. В те времена, когда большая часть мира измеряла производительность в микросекундах, требуемая точность измерялась в наносекундах.

Компьютер BBC Micro имел процессор 6502 на 2 МГц и для выполнения его простейших инструкций требовалось два такта, то есть 1 микросекунда. Есть ли надежда, что можно будет записать нечёткие биты в условиях таких ограничений? Посмотрим, как далеко нам удастся зайти. Эта работа будет называться «проектом Oiled Otter».
Total votes 31: ↑31 and ↓0 +31
Comments 2

Программирование NES (dendy), assembler 6502

Reading time 6 min
Views 9.4K
Programming *Assembler *
Sandbox

У меня с детства была мечта написать игру для любимой приставки денди, шло время, мечта то появлялась то затихала снова. Она меня направляла в сторону магии программирование, и вот прошло больше 20-ти лет я программист, и снова в который раз пытаюсь постигнуть магию той самой денди что так будоражило моё воображение в тяжелом но счастливом детстве. Сегодня Я расскажу вам как постиг секреты этой магии, наконец то смог вывести спрайты на экран и научился рисовать фон, и надеюсь это будет не последняя мая статья на Хабре.

Мечта под катом
Total votes 18: ↑17 and ↓1 +16
Comments 10

Создание графики для nes/dendy

Reading time 3 min
Views 4.2K
Programming *Assembler *Games and game consoles

Предыдущие мои статьи рассказывают о том как начать программировать под денди на ассемблере. Мы научились отрисовывать спрайты и background, так же мельком обсудили что такое таблица атрибутов и таблица имен, так же мы разобрались как прочитать контроллер. В тех статьях Я использовал chr от игры super mario bros 2 потому как не художник, но все же для создания игры мне пришлось искать инструменты какое мне помогут в создание своей графики для игры. Под катом этапы разработки графики.

Читать далее
Total votes 14: ↑13 and ↓1 +12
Comments 2

Как игре Pitfall для Atari удалось поместить 255 комнат в картридж на 4КБ

Reading time 10 min
Views 7.2K
Abnormal programming *Reverse engineering *Games and game consoles
Translation
Игры для Atari 2600 разрабатывались в условиях сильных ограничений. Когда Уоррен Робинетт продвигал идею, которая в дальнейшем станет игрой Adventure (в ней нужно исследовать мир из множества комнат и подбирать предметы, которые помогают игроку в пути), ему отказали, потому что посчитали, что её невозможно реализовать. И это было логично. Консоль появилась в конце 70-х; до Робинетта никто ещё не создавал игру с несколькими экранами. Это была эпоха Space Invaders и Pac Man, когда весь игровой мир постоянно находился у игрока перед глазами, поэтому то, что выпущенная в 1980 году Adventure состояла из 30 комнат, было весьма впечатляюще.


Первый экран игры Adventure. Игрок управляет точкой (которую Робинетт называл «человеком»).

Разработчикам даже пришлось объяснять эту концепцию в руководстве к игре:

Каждая область, показанная на экране телевизора, будет иметь один или несколько барьеров или стен, через которые вы НЕ можете проходить. Также там есть один или несколько проёмов. Чтобы перейти из одной области в соседнюю, «выйдите» с экрана телевизора через один из проёмов, и на экране появится соседняя область.

Наличие нескольких комнат было довольно большой инновацией, а то, что в Adventure удалось реализовать целых 30 комнат, стало настоящей революцией. Однако в созданной Дэвидом Крэйном и выпущенной в 1983 году Pitfall! таких комнат было 255, и каждая из них была более сложной (с точки зрения графики), чем любая комната Adventure. В статье я расскажу, как этого удалось добиться.

Примечание: в игре Superman было несколько комнат и её выпустили до Adventure, но она создавалась на основе кода Adventure.


Типичный экран Pitfall!
Total votes 26: ↑26 and ↓0 +26
Comments 11

Правда о мозге Бендера

Reading time 4 min
Views 34K
Cyberpunk Robotics Old hardware Biography of geeks Science fiction
Translation

14 ноября 1999 года эпизод "Футурамы", анимационного научно-фантастического сериала от создателя "Симпосонов" Мэтта Гроунинга, ошарашил гиков зрелищем технологического характера, абсолютно беспрецедентным в отрасли развлечений в прошлом. В этом эпизоде, "Фрай и фабрика Слёрма", профессор Фарнсворт направляет Ф-луч на голову безумного робота Бендера, и мы видим маленький прямоугольник, очевидно являющийся микросхемой, с надписью "6502".

Читать далее
Total votes 61: ↑57 and ↓4 +53
Comments 44

Живое видео и цифровой звук на 8-битной игровой приставке

Reading time 14 min
Views 10K
Abnormal programming *Assembler *Old hardware Games and game consoles Sound

В 2016 году американский музыкант Sergio Elisondo опубликовал музыкальный альбом инструментальных кавер-версий A Winner Is You (отсылка к древнему мему, происходящему из классической игры Pro Wrestling), в котором он в одиночку исполнял музыку из популярных игр для восьмибитной приставки NES на настоящих музыкальных инструментах. Необычным дополнением к этому релизу стала его версия в виде картриджа для игровой приставки NES, запускаемая на ней и воспроизводящая музыку из альбома в виде полноценного аудио, а не типичного для этой приставки довольно примитивного синтезированного звука. Я занимался разработкой программной части этого не вполне обычного проекта.

Дальше больше
Total votes 80: ↑80 and ↓0 +80
Comments 21

Создание игр для NES на ассемблере 6502: приступаем к разработке

Reading time 14 min
Views 8.5K
Assembler *Game development *Compilers *History of IT Old hardware
Translation
image


2. Фундаментальные понятия


Содержание:

  • Работа с данными
  • Регистры процессора
  • Память
  • Как задаются данные
  • Как сделать данные человекочитаемыми
  • Соединяем всё вместе

Что такое компьютер?

Вопрос кажется простым, но он затрагивает самую суть того, что делаем мы как программисты. Пока скажем, что «компьютер» — это нечто, исполняющее программу. «Программа» — это просто последовательность команд, а под исполнением программы подразумевается, что команды выполняются с начала и одна за другой. (Если вы читаете программу и сами исполняете команды, то поздравляю! Вы — компьютер!)
Читать дальше →
Total votes 11: ↑11 and ↓0 +11
Comments 1

Создание игр для NES на ассемблере 6502: оборудование NES и знакомство с ассемблером

Reading time 14 min
Views 6.1K
Assembler *Game development *Compilers *History of IT Old hardware
Translation
image


4. Оборудование NES


Содержание:

  • Консоль
  • Картриджи
  • Как это связано с нашим тестовым проектом?
  • Цвета и палитры
  • Возвращаемся к тестовому проекту

Прежде чем приступать к разбору ассемблера, начнём с обзора самой NES.
Читать дальше →
Total votes 10: ↑10 and ↓0 +10
Comments 3
1