Ответ 1
Старые системы, такие как Atari, NES и GameBoy, как правило, программируются в Assembly или C. Существует множество инструментов для разработки GameBoy, с которыми я играл:
Rednex Gameboy Development (ASM): http://www.otakunozoku.com/rednex-gameboy-development-system/
GBDK (C): http://gbdk.sourceforge.net/
И хотя на нем много мертвых ссылок, на этой странице есть много хорошей информации и ссылок на разработку GameBoy в целом: http://www.devrs.com/gb/
Для NES есть два сборника, которые я знаю. Второй учебник связан с первым, с утверждением, что он превосходит, но я не могу прокомментировать, поскольку вторая ссылка не существовала в прошлый раз, когда меня интересовала эта тема.
http://www.patater.com/nes-asm-tutorials
http://www.nintendoage.com/forum/messageview.cfm?catid=22&threadid=7155
Если это не слишком для вас, у GBA есть много отличных ресурсов доморощенного и, как правило, программируется с использованием C. Богатство информации о GBA делает его хорошим местом для начала:
DevKitPro предоставляет полный набор инструментов GNU для разработки GBA (DevKitARM + libgba): http://www.devkitpro.org/
TONC - очень хорошее руководство для GBA с большим подробным объяснением: http://www.coranac.com/tonc/text/
Наконец, незаменимый лист gbatek, в котором подробно описано оборудование GBA. Это расскажет вам, какие регистры на GBA вы должны играть, чтобы менять графические режимы, режимы звучания, использовать прерывания и т.д.
http://nocash.emubase.de/gbatek.htm
Программирование для этих старых игровых систем имеет много общего с программированием микроконтроллеров. Без какого-либо слоя абстракции вам нужно сделать побитовое манипулирование регистрами, чтобы выполнить даже самые простые вещи.
Edit: Основная проблема, с которой я столкнулся при программировании GBA, - это выяснить, как работают звуковые регистры. Это было (есть?) Реальное слепое пятно с точки зрения учебников. Лучшим ресурсом в то время было изучение листа gbatek, и эти сайты:
http://deku.rydia.net/program/sound1.html
http://belogic.com/gba/