3

我想用摩托罗拉68000汇编程序编写一个程序,目标平台是Neo Geo(九十年代的游戏机);这个问题很严肃,我有一个想要实现的特定项目并且我有编程经验(虽然我现在主要编程 Perl/R,但我之前只接触过汇编编程)。

Neo Geo 没有太多可用的文档,但是我有一份来自 Alexander Stante 的文档,其中包含有关格式和存储精灵的位置、内存映射、内存映射寄存器在哪里、图形和声音系统如何工作等信息。

所以应该可以用 68K 汇编器编写程序,在 PC 上汇编它并从 Neo Geo(或模拟器,其中有很多可用的,用于测试)运行它。

我确实有一些 M68 汇编程序的背景,这是我的 CS 硕士期间的一些课程(10 年前);我们在 Sun Sparcstation 上组装并将程序发送到一个附加的盒子,该盒子基本上有一个 M68K,里面有一些 RAM,没有太多其他东西。因此可以将“纯”目标代码加载到 CPU 中。

现在,我对 Neo Geo 的不了解是我必须将汇编代码放入哪种“格式”。

即,如果我组装了一个我用 68K 汇编编写的程序,我怎样才能让它让模拟器认为它是一个 ROM 映像,或者我怎样才能构建一个物理 Neo 的 CD(或 CDZ,就此而言) Geo CD 会接受吗?它会检查文件名还是魔术头?!所以我的问题是,如何将组装的目标代码转换为正确的“文件格式”?!(对不起,我什至不知道这是否是正确的词)。

4

3 回答 3

1

我不能说 Neo Geo 平台的细节,也不能说它在模拟器中常见的格式。

但是,它很可能是某种 ROM 映像。对于 68K 系列,您会在 ROM 的一端找到引导向量。您需要花一些时间阅读手册。处理器将首先使用表 B-1 从内存中获取值。所以 0x0 的 32 位需要有初始堆栈指针,而 0x4 需要初始 PC。

您需要研究一些现有 Neo Geo 游戏的图像,看看是否可以使用这些初始值跟踪代码。模拟器可能以压缩格式或带有某种标题的方式存储它们的图像;你必须自己解决这个问题。

编辑:我还应该补充一点,您最初可能会因为 68K 是正确的字节序(即大字节序)这一事实而感到困惑。

于 2011-02-08T06:48:29.887 回答
1

我相信这个链接列表会让你走得很远:

Neo Geo 编程手册(非官方)

Neo Geo 上有很多各种各样的文件。

模拟器的各种链接。模拟器必须知道代码是如何工作的......非常雄心勃勃的MAME也有 Neo Geo 支持。

http://furrtek.free.fr/noclass/neogeo/NeoGeoPM.pdf

于 2011-05-18T07:20:33.153 回答
1

我想我现在找到了原始问题的答案,最近出现了一个新的 wiki,它非常适合 Neo Geo 编码:

http://neogeodev.wikkii.com/wiki/Main_Page

于 2011-05-19T04:17:16.167 回答