21

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

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

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

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

3 回答 3

4

像 Atari、NES 和 GameBoy 这样的旧系统通常使用汇编或 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/

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

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

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

于 2011-07-01T01:50:23.973 回答
1

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

但大多数时候,您将使用 C/C++ 编写代码。我相信你会更频繁地需要而不是求助于 ASM。

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

谷歌关键词:sdk、控制台、自制软件、独立

于 2011-06-30T20:15:01.787 回答
1

还有一些“开放”的自制控制台,它们的设计与过去的机器类似,但更容易访问信息和更友好的工具。

XGameStation Pico这样的东西会给你类似于 Atari 2600 的体验,而 Micro Edition 的功能要强大得多,并附带有关与其类似的控制台如何工作的文档。

如果您没有明确地寻求为大型、商业发布的控制台进行开发,这些可能是一个很好的替代方案,并且对于刚接触嵌入式编程的人来说可能是一个更好的学习工具。

于 2011-07-01T02:05:06.583 回答