- PVSM.RU - https://www.pvsm.ru -
Для меня Dendy всегда была чем-то большим, чем просто приставкой. Я не только играл в неё, но и значительное время провёл внутри неё с паяльником в руках для некоторых простых модификаций. По дороге куда-нибудь я часто размышлял о том, как же создаются эти игры и как это работает внутри. Наверняка, многие из вас когда-то задавались подобными вопросами, такова уж натура будущих IT-шников :)
Прошли годы. С некоторой периодичностью погружался в эму-тему, изучая всё новое на тематических сайтах, но я не решался окунуться в изучение ассемблера 6502 и архитектуры NES. Внутренний конфликт рационального и иррационального. Я долго убеждал себя, что мне не нужно тратить на это время, но… сорвался. Глядя на то, какие интересные вещи делают энтузиасты эму-сцены, я взялся за свою давнюю идею со светлой мыслью: «Я тоже смогу!». Две недели пролетели незаметно, я еле смог остановить себя. И да, теперь я знаком с ассемблером без команд умножения, о чём раньше только слышал в песне о программистской молодости [1].
Очень вероятно, что сейчас вы вспомнили свой первый картридж для Dendy и меню с романтическим сюжетом и приятной музыкой. На таких картриджах никогда не было «серьёзных» игр, и не глядя на громкие надписи типа 9999-in-1, их обычно было что-то около пяти. Но это меню… Разве это не шедевр китайской мысли? :) Мне с детства нравилась эта мелодия (Unchained Melody), а фоновые изображения сейчас навевают кучу ностальгических воспоминаний. Поэтому я взял IDA и дизассемблировал меню 300-in-1 [2], вырезал всё лишнее, исправил ошибки, добавил фейдинг да немного приятных мелочей — и получилась демка Unchained Nostalgia [3] (для запуска нужен эмулятор, например, Nestopia [4]).
Хотите также окунуться в олдскульное программирование? Делюсь самым полезным и интересным, что я нашёл по теме.
Раньше для процессора 6502 писали только на ассемблере, выбор инструментов был маленьким, документации было немного и поведение железа было плохо изучено. Сегодня же таких проблем нет. В последние годы были даже разработаны библиотеки для C и полноценные игры на них, которые при этом быстро работают на скромном железе NES.
Если кто-то считает, что NES — мёртвая платформа, тот ошибается :) Достаточно регулярно выпускаются новые игры и демки. Понятно, что это не массовый рынок, и здесь крутятся, в основном, энтузиасты, но тем не менее… Различных релизов выходит достаточно много, я поделюсь самым интересным и забавным из того, что нашёл сам.
Если вы задаётесь этим вопросом, может быть это и не для вас. Но на самом деле это очень интересное и увлекательное занятие. Если у вас любимой приставкой была не Dendy, то может быть вам будет интереснее сделать что-то, например, для Sega Mega Drive. Вперёд! И обязательно расскажите о том, что у вас получилось.
Если вы знаете что-то ещё полезное или интересное по теме — обязательно делитесь в комментариях.
Автор: VEG
Источник [44]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/staroe-zhelezo/48170
Ссылки в тексте:
[1] песне о программистской молодости: http://pleer.com/tracks/1967590QII9
[2] 300-in-1: http://veg.by/nes/unchained-melody-300-in-1.zip
[3] Unchained Nostalgia: http://veg.by/nes/unchained-nostalgia.zip
[4] Nestopia: http://veg.by/nes/nestopia.zip
[5] FCEUX: http://www.fceux.com/
[6] IDA Pro iNES loader: http://forum.emu-russia.net/viewtopic.php?f=13&t=457
[7] лучшего дизассемблера: http://ru.wikipedia.org/wiki/IDA
[8] Архитектура и программирование Dendy: http://dendy.migera.ru/nes/
[9] Система команд процессора 6502: http://www.emuverse.ru/wiki/MOS_Technology_6502/%D1%E8%F1%F2%E5%EC%E0_%EA%EE%EC%E0%ED%E4
[10] NesDev Wiki: http://wiki.nesdev.com/w/index.php/Programming_guide
[11] Документация по cc65, ca65 и смежным инструментам: http://www.cc65.org/doc/
[12] Программирование для NES на C: http://shiru.untergrund.net/articles/programming_nes_games_in_c.htm
[13] NES Screen Tool: http://shiru.untergrund.net/files/nesst.zip
[14] NESHLA: http://neshla.sourceforge.net/
[15] Nesicide: http://www.nesicide.com/
[16] pyNES: http://gutomaia.net/pyNES/
[17] BreakNES: http://breaknes.com/
[18] Visual6502: http://visual6502.org/JSSim/index.html
[19] Everdrive N8: http://krikzz.com/index.php?route=product/product&product_id=59
[20] Коллекция: http://gilgalad.arc-nova.org/vgscr/nes.html
[21] и ещё: http://www.romhacking.net/?page=documents&category=13&platform=&game=&author=&perpage=20&level=&title=&desc=&docsearch=Go
[22] CMC 80's: http://www.chrismcovell.com/data/cmc80s.zip
[23] High Hopes: http://kkfos.aspekt.fi/projects/nes/demos/high-hopes/
[24] D-Pad Hero: http://dpadhero.com/
[25] Zooming Secretary: http://shiru.untergrund.net/files/nes/zooming_secretary.zip
[26] Shiru: http://shiru.untergrund.net/
[27] исходные коды: http://shiru.untergrund.net/files/src/zooming_secretary_src.zip
[28] Lan Master: http://shiru.untergrund.net/files/nes/lan_master.zip
[29] исходные коды: http://shiru.untergrund.net/files/src/lan_master_src.zip
[30] Lawn Mower: http://shiru.untergrund.net/files/nes/lawn_mower.zip
[31] исходные коды: http://shiru.untergrund.net/files/src/lawn_mower_src.zip
[32] Alter Ego: http://shiru.untergrund.net/files/nes/alter_ego.zip
[33] исходные коды: http://shiru.untergrund.net/files/src/alter_ego_src.zip
[34] Chase: http://shiru.untergrund.net/files/nes/chase.zip
[35] Driar: http://driar.se/
[36] Retro City Rampage: http://www.retrocityrampage.com/
[37] это видео: http://www.youtube.com/watch?v=Hvx4xXhZMrU
[38] Sir Ababol: http://www.mojontwins.com/juegos_mojonos/sir-ababol-nes/
[39] Dune Emperor: http://homepage.corbina.net/~lich/rrr/DuneEmperor_Demo2_by_Ti_HomeBrew.rar
[40] заброшена: http://forums.nesdev.com/viewtopic.php?f=19&t=4659&start=15#p117731
[41] Kira Kira Star Night: http://kirakira-star-night.riki2riki.com/en/index.html
[42] не единственная: http://sivak.nintendoage.com/BK.html
[43] RetroMiner: http://retrominer.com/
[44] Источник: http://habrahabr.ru/post/201864/
Нажмите здесь для печати.