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

    Для меня 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. Вперёд! И обязательно расскажите о том, что у вас получилось.

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


    Если вы знаете что-то ещё полезное или интересное по теме — обязательно делитесь в комментариях.
    Поделиться публикацией
    Похожие публикации
    Реклама помогает поддерживать и развивать наши сервисы

    Подробнее
    Реклама
    Комментарии 61
    • +14
      Я смотрю на первые три картинки и у меня в ушах играет эта чёртова восьмибитная музыка.
      • +40
        • +5
          Есть трек отдельно :)
          soundcloud.com/mike-iceman-1/dendy-romantic-splash-screen
          • +7
            Без картинки воспоминания не полные, даже сказал бы — неполноценные :-)
            • +2
              Для полных ощущений это должен быть эмулятор и соответствующий ром! ;)
              • +11
                И теплый ламповый телевизор.

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

                Как-то так.
                • 0
                  И блок питания обязательно проверять на работоспособность языком.
                  • +1
                    И джойстики, постоянно разбираемые для «ремонта» джойстики.
                    • +3
                      Да, и пальцы обмотанные фольгой от шоколадки, для тыка прямо в контакты ))) Хардкор конечно и эксклюзив :)
                      • +1
                        А я втыкал в приставку ножницы :)

                        Со временем что-то там сломалось, и на экране были сплошные помехи, но стоило воткнуть в определённое место приставки ножницы, как картинка прояснялась, и можно было играть!
                        Сейчас даже не представляю, как это я смог опытным путём дойти до этого :)
                        • 0
                          Я тоже так делал: замыкал отверткой на картридже дорожки и иногда очень забавно спрайты корёжились: вместо марио бегала какая-нибудь мешанина из букв и пикселей.
                      • +1
                        … которые на самом деле — джойпеды )
                        • +2
                          Мы были детьми и сами давали названия вещам. :-)
                    • 0
                      А мне повезло. Несмотря на многочисленные истории и примеры плавления и выхода из строя блоков питания, мой прослужил от звонка до звонка.
                      • 0
                        Как-то решили вспомнить былое на даче и вытащили денди. Блок питания не нашли, но автомобильный аккумулятор вместо него отлично подошел.
                  • 0
                    Спасибо, прям как будто вчера было. Детство.
                  • +1
                    Где-то даже валяется этот картридж :)
                    • +1
                      Смотрю и чувствую запах нового картриджа… Денди, провода, телевизор. Очень сильная ностальгия, наверно)
                      • +3
                    • 0
                      Спасибо за песню о программистской молодости.
                      Да и за картинки с закатом )
                      • 0
                        У меня такой вопрос — можно сделать автоматическую конвертилку BMP в тайлы или спрайты NES, чтоб с возможностью показать на весь экран?
                        • +1
                          NES Screen Tool умеет загружать BMP файлы (соответствующие требованиям), разбивать их на тайлы и создавать из них тайловые карты. В архиве есть примеры отображения тайловых карт на C.
                        • 0
                          На таких картриджах никогда не было «серьёзных» игр, и не глядя на громкие надписи типа 9999-in-1, их обычно было что-то около пяти

                          Разбита мечта детства :(
                          • 0
                            Для простоты добавил архив с моим окружением для быстрой и простой компиляции примеров от Shiru и blargg. Просто извлеките всё содержимое архива в любой каталог без пробелов в пути, запускайте make.bat для компиляции. Должно работать без дополнительных телодвижений. Останется только скормить полученные nes файлы вашему любимому эмулятору :)
                            • +5
                              А вы знаете, что среди игр с картриджа «9 999 999 in 1» есть почти все игры, только их трудно найти и они иногда скрываются за левыми названиями? :D

                              Этот же текст с пояснениями
                              А вы знаете, что среди игр с картриджа «9 999 999 in 1» есть почти все игры, например Черепашки или Черный плащ, только их трудно найти (читай пасхальные яйца) и они иногда скрываются за левыми названиями, например за Tank или Lunner Ball? :D
                              • +2
                                А вы знаете, что среди читателей этого комментария могут найтись доверчивые люди, которые всё ещё ждут, что в карманной «Ну погоди» после 999 очков покажут мультик?)
                                • +8
                                  image
                                  • –1
                                    Шесть плюсов и один минус.
                                    Похоже один доверчивый искал-искал, но так и не нашел.
                                    Бедненький, не повезло ему :D
                                • 0
                                  А для меня на таких картриджах было именно 9999, потому как я не в жисть не смог бы дойти сам до некоторых левелов из включённых игр, а так можно было посмотреть на крутые танки и на последние левелы Марио.
                                  • +1
                                    Любопытно, есть средства разработки для NES _под_NES_?
                                    • +3
                                      Есть :). Были версии с клавиатурой и, например, с портом для принтера. И картриджи для них были соотв.: с языками программирования, текстовыми редакторами, тренажерами клавиатуры.
                                      • +1
                                        Сюбор
                                        • 0
                                          Точнее Liko.
                                          Но были и другие, например комбат (или Kombat, или даже Combat — точно уже не помню). Там даже мышь в комплекте была
                                          • 0
                                            Может быть.
                                            У нас продавались только Сюбор. Да и гуглится так проще (другие не гуглятся что-то).
                                            И там есть basic'и какие-то
                                            Картинки
                                            image
                                            image
                                            • 0
                                              Не подгрузились картинки.
                                              Вот тут несколько фоток
                                              • 0
                                                Service Temporarily Unavailable
                                                Хабраэффект чтоли? Оо
                                          • 0
                                            Сюбор стоял включенным несколько дней, что бы код на basic заново не набивать… эх детство.
                                            • +1
                                              В оригинальном Famicom можно было сохранять труды на кассету. Китайцы решили, что нам это не нужно :)
                                        • +4
                                          Афаик есть — BASIC. Нам (русскоязычным пользователям) он известен по компьютеру-денди под названием Сюбор По информации от Сергея Фролова, F-BASIC на картридже соответствует бейсику компа Apple ][. А «у них» тоже была клава и такой картридж, который цеплялся к Famicon
                                          image

                                          Есть мнение, что Сюбор — есть простая копипаста Famicon+этот девайс на картинке+AT'шная клава -)
                                          • +5
                                            Не удержался, пошёл сфотографировал.
                                            • +1
                                              Оооо, у меня был именно такой :) Погиб в неравном бою с коротким замыканием. Зачем-то понадобилось соединять контакты на неработающем картридже.
                                            • +2
                                              В детстве имел сюбор с клавиатурой, картриджем с 2мя версиями BASIC и ТОЛСТЕННУЮ инструкцию по программированию на всём этом. F-BASIC расшифровывается, как float-basic, его предназначение — только расчёты. Там были вещественные числа и математическое функции типа ln, sin. Работа с графикой отсутствовала. G-BASIC — game basic — умел только в целые числа, но там была возможность работы со звуком, с джойстиком, с графикой. Причём графика ограничивалась заранее заданными спрайтами, что-то типа вывести спрайт номер такой-то таким-то цветом. Диалект предназначался только для обучения, марио на нём не написать (хотя все спрайты и были из super mario bros 1). Стандартные процедуры бейсика для работы с графикой там не работали.
                                          • 0
                                            9999-in-1
                                            это был обман всего детства.
                                            • 0
                                              Это был обман № 3:). Первым были 999 очков в «Ну погоди», вторым 99..-in-1 в портативном тетрисе (Brick Game).
                                              • 0
                                                Да, финальный мультик в «Ну погоди» это было сильно.
                                                • +7
                                                  Вы про этот?

                                                  Скрытый текст
                                                  image
                                            • +1
                                              Помнится, были такие картриджи, в которых методом тыка можно было добавить или, наоборот, убавить количество игр с помощью перемычек. Тогда это была магия чистой воды, я демонстрировал это чудо друзьям, дымя паяльником и бормоча заклинания «ну пожалуйста-ну пожалуйста...». Хотя и была во всем этом и прямая выгода — ко мне таскали на шару разные игры…
                                              • 0
                                                Kinaman в выпуске про Алладинов (их было несколько) на NES про эти перемычки рассказывал) А ещё недавно статья была на хабре, про такую же операцию… с тетрисом. Тем, который BrickGame. :)
                                                • 0
                                                  О, точно, давно не смотрел этого замечательного человека. А еще помню, что когда джойстики выходили из строя, их с небольшой вероятностью можно было воскресить, нагревая микросхему-ляпку паяльником с последующей отправкой в морозильник. Правда после воскрешения джойстик становился зачастую зомби и часто чудил.
                                              • +2
                                                Если кто-то считает, что NES — мёртвая платформа, тот ошибается :)

                                                На amiga, спектрумы или commodore 64 тоже всё-ещё пишутся демки, а иногда даже пишутся и портируются игры!
                                                Так что в таком качестве живы многие старые платформы.
                                                • 0
                                                  Не сочтите за рекламу, Dendy и SEGA Megadrive сейчас продаются в Метро кэш энд кэрри. Удивительно но факт.
                                                  • 0
                                                    И не только там. У нас в Екатеринбурге можно купить в 4-5 различных сетях магазинов)
                                                    • 0
                                                      Я покупал в М-Видео в Москве.
                                                      Хотел подарить друзьям на прошлый НГ.
                                                      Перед тем, как подарил еще несколько часов резался в контру.
                                                    • 0
                                                      Раз уж затронули тему демок для NES, не могу не вспомнить NES-версию Bad Apple.
                                                      youtu.be/ZMbAEjPPf7w
                                                      • –1
                                                        На случай, если кто-то не желает устанавливать эмулятор, я сделал запись ностальгической демки:
                                                        • 0
                                                          В посте картинки со звуком!
                                                          • 0
                                                            Поясните, что вы хотели этим сказать.
                                                            • +2
                                                              если смотреть на эти картинки — в голове начинает играть музыка
                                                              • 0
                                                                А, вы об этом… Для лучшего эффекта лучше смотреть и слушать это дело в эмуляторе :)
                                                                • +1
                                                                  На живом железе совсем не работает? Попробовал с флешкартриджа запустить на Twin Famicom — вешается на загрузке.
                                                                  • 0
                                                                    Хм. Работало, правда на Dendy проверялось. Возможно, в последнем обновлении я что-то сломал. Попробуйте запустить разные версии: unchained-nostalgia-v1.0.zip, unchained-nostalgia-v1.1.zip и unchained-nostalgia.zip (это v1.2). Буду благодарен, если поможете выявить когда появилась проблема, а я проанализирую и постараюсь исправить (как раз сейчас к 8 марта делаю маленькое обновление).

                                                          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.