Pull to refresh

Как воплотить в жизнь мечту детства и запрограммировать что-нибудь для Dendy

Assembler *Reverse engineering *
Для меня Dendy всегда была чем-то большим, чем просто приставкой. Я не только играл в неё, но и значительное время провёл внутри неё с паяльником в руках для некоторых простых модификаций. По дороге куда-нибудь я часто размышлял о том, как же создаются эти игры и как это работает внутри. Наверняка, многие из вас когда-то задавались подобными вопросами, такова уж натура будущих IT-шников.

Прошли годы. С некоторой периодичностью погружался в эму-тему, изучая всё новое на тематических сайтах, но я не решался окунуться в изучение ассемблера 6502 и архитектуры NES. Внутренний конфликт рационального и иррационального. Я долго убеждал себя, что мне не нужно тратить на это время, но… сорвался. Глядя на то, какие интересные вещи делают энтузиасты эму-сцены, я взялся за свою давнюю идею со светлой мыслью: «Я тоже смогу!». Две недели пролетели незаметно, я еле смог остановить себя. И да, теперь я знаком с ассемблером без команд умножения, о чём раньше только слышал в песне о программистской молодости.



Очень вероятно, что сейчас вы вспомнили свой первый картридж для Dendy и меню с романтическим сюжетом и приятной музыкой. На таких картриджах никогда не было «серьёзных» игр, и не глядя на громкие надписи типа 9999-in-1, их обычно было что-то около пяти. Но это меню… Разве это не шедевр китайской мысли? :) Мне с детства нравилась эта мелодия (Unchained Melody), а фоновые изображения сейчас навевают кучу ностальгических воспоминаний. Поэтому я взял IDA и дизассемблировал меню 300-in-1, вырезал всё лишнее, исправил ошибки, добавил фейдинг да немного приятных мелочей — и получилась демка Unchained Nostalgia (для запуска нужен эмулятор, например, Nestopia), есть запись на YouTube.

Хотите также окунуться в олдскульное программирование? Делюсь самым полезным и интересным, что я нашёл по теме.

Архитектура, программирование и отладка


Раньше для процессора 6502 писали только на ассемблере, выбор инструментов был маленьким, документации было немного и поведение железа было плохо изучено. Сегодня же таких проблем нет. В последние годы были даже разработаны библиотеки для C и полноценные игры на них, которые при этом быстро работают на скромном железе NES.



Современные разработки для NES


Если кто-то считает, что NES — мёртвая платформа, тот ошибается :) Достаточно регулярно выпускаются новые игры и демки. Понятно, что это не массовый рынок, и здесь крутятся, в основном, энтузиасты, но тем не менее… Различных релизов выходит достаточно много, я поделюсь самым интересным и забавным из того, что нашёл сам.

  • CMC 80's (2000 год) — старая демка, с длинным ностальгическим текстом и даже скрытым посланием
  • High Hopes (2007 год) — наверное, лучшая демка для NES, стоит посмотреть
  • D-Pad Hero (две части, 2009 и 2010 годы) — Guitar Hero для NES :)
  • Zooming Secretary (2011 год) — симулятор секретарши, выполненный с хорошей долей чувства юмора (чего только стоит отвлекающий шеф!), написано отечественным разработчиком (Shiru) и имеются исходные коды на C
  • Lan Master (2011 год) — головоломка на сисадминскую тематику с атмосферным звуком, от Shiru, исходные коды
  • Lawn Mower (2011 год) — симулятор газонокосильщика, также от Shiru (талантливый разработчик, да), исходные коды
  • Alter Ego (2011 год) — логический платформер, порт с ZX Spectrum от Shiru, исходные коды на C
  • Chase (2012 год) — это пример простой игры на C к соответствующей статье от Shiru, но вышло так хорошо, что даже жалко, что в игре всего пять уровней (обратите внимание на классные огромные надписи, нехарактерные для NES)
  • Driar (2012 год) — просто приятно выполненная игрушка
  • Retro City Rampage (2012 год) — коммерческая игра для современных консолей, но внутри есть маленький секрет в виде игры для NES, посмотрите это видео о создании NES версии, посмотреть обзор и скачать ROM можно здесь
  • Sir Ababol (2013 год) — платформер-лабиринт от испанской группы разработчиков игр Mojon Twins, написано на C
  • Dune Emperor (2013 год) — демка стратегии (!) под NES, к сожалению, пока что заброшена, автор — русский (Ti_)
  • Kira Kira Star Night (2013 год) — современная коммерческая (и не единственная!) игра для NES от японских разработчиков, цифровая копия для запуска в эмуляторе стоит ≈30$, настоящий картридж стоит ≈200$
  • RetroMiner (2013 год) — майним Bitcoin-ы на NES! :)
  • NES Audio (2011-2013 годы) — новые инструменты для написания музыки под NES на самой NES, от Neil Baldwin, который писал музыку для известных игр эпохи NES уже 20 лет назад


Тематические сайты


  • romhacking.net.ru — обзор свежих переводов на русский язык и хаков игр
  • cah4e3.shedevr.org.ru — проект по дампингу картриджей, в меню слева большой список страниц с дампами по годам
  • chief-net.ru, magicteam.net и shedevr.org.ru — команды, которые занимаются переводом приставочных игр
  • emu-russia.net и emu-land.net — активные русскоязычные эму-сообщества
  • romhacking.net — международное сообщество ромхакеров, переводы игр на английский язык, огромная база хаков
  • nesdev.com — международное сообщество разработчиков под NES


Зачем всё это?


Если вы задаётесь этим вопросом, может быть это и не для вас. Но на самом деле это очень интересное и увлекательное занятие. Если у вас любимой приставкой была не Dendy, то может быть вам будет интереснее сделать что-то, например, для Sega Mega Drive. Вперёд! И обязательно расскажите о том, что у вас получилось.

Спасибо за внимание


Если вы знаете что-то ещё полезное или интересное по теме — обязательно делитесь в комментариях.
Tags:
Hubs:
Total votes 102: ↑100 and ↓2 +98
Views 102K
Comments 61
Comments Comments 61