如何编程旧游戏机?

时间:2011-06-30 20:03:35

标签: compiler-construction hardware video-game-consoles

我想知道如何为旧游戏机编程以获得乐趣。

我可以使用C等编程语言吗?我必须使用组装吗?我不知道任何控制台编译器,汇编程序或API。我需要编译成ROM映像并使用模拟器进行测试,因为我没有任何控制台。

每个控制台都有其有趣的功能,我想和它们一起玩。

  • Atari 2600(仅128字节的RAM)
  • NES(仅限8位)
  • SNES(一个好的控制台,16位)
  • PS1(3D,复杂)
  • Game Boy(简单,单色)

3 个答案:

答案 0 :(得分:3)

像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编程.GRA上的大量信息使它成为一个好的起点:

DevKitPro为GBA开发提供了一个完整的GNU工具链(DevKitARM + libgba):http://www.devkitpro.org/

TONC是GBA的一个非常好的指南,有很多详细的解释:http://www.coranac.com/tonc/text/

最后,详细介绍GBA硬件的必不可少的gbatek表。这将告诉您GBA上必须使用哪些寄存器来更改图形模式,声音模式,使用中断等 http://nocash.emubase.de/gbatek.htm

这些旧游戏系统的编程与编程微控制器有很多共同之处。如果没有某种抽象层,你必须对寄存器进行大量的按位操作才能完成最基本的操作。

编辑:我在进行GBA编程时遇到的主要问题是弄清楚声音寄存器的工作原理。就教程而言,它是(是?)真正的盲点。当时最好的资源是研究gbatek表和这些网站:
http://deku.rydia.net/program/sound1.html
http://belogic.com/gba/

答案 1 :(得分:0)

控制台的制造商为机器的处理器提供了自己的工具/编译器(SDK),因为它们(大多数时候)是高度专业化的。

但大多数时候你会用C / C ++编写代码。我相信你会经常需要更多的ASM。

试试这个链接: http://www.emuparadise.me/sdk/index.php

Google关键字:sdk,console,homebrew,indie

答案 2 :(得分:0)

还有一些“开放式”自制游戏机,其设计与过去的机器类似,但更容易获取信息和更友好的工具。

XGameStation Pico这样的东西会给你类似于Atari 2600的体验,Micro Edition功能更强大,并附带有关它如何运作的控制台的文档。

如果您没有明确寻求开发大规模,商业发布的控制台,这些可能是一个很好的替代方案,对于嵌入式编程新手来说可能是一个更好的学习工具。