Squ*_*all 20 hardware compiler-construction video-game-consoles
我想知道如何为旧游戏机编程以获得乐趣.
我可以使用C等编程语言吗?我必须使用组装吗?我不知道任何控制台编译器,汇编程序或API.我需要编译成ROM映像并使用模拟器进行测试,因为我没有任何控制台.
每个控制台都有其有趣的功能,我想和它们一起玩.
Atari、NES 和 GameBoy 等较旧的系统通常使用 Assembly 或 C 语言进行编程。我使用过多种用于 GameBoy 的开发工具,例如:
Rednex Gameboy 开发 (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 为 GBA 开发提供了完整的 GNU 工具链(DevKitARM + libgba):http://www.devkitpro.org/
TONC 是一本非常好的 GBA 指南,有很多详细的解释:http://www.coranac.com/tonc/text/
最后,必不可少的 gbatek 表详细介绍了 GBA 的硬件。这将告诉您必须使用 GBA 上的哪些寄存器来更改图形模式、声音模式、使用中断等。
http://nocash.emubase.de/gbatek.htm
这些旧游戏系统的编程与微控制器的编程有很多共同点。如果没有某种抽象层,你就必须对寄存器进行大量的按位操作才能完成最基本的事情。
编辑:我在进行 GBA 编程时遇到的主要问题是弄清楚声音寄存器是如何工作的。就教程而言,这是(是?)真正的盲点。当时最好的资源是研究 gbatek 表和这些网站:
http://deku.rydia.net/program/sound1.html
http://belogic.com/gba/