问题标签 [gameboy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2852 浏览

assembly - GameBoy ISA(编写模拟器)

我正在使用 C 语言开发 GameBoy 模拟器。现在我正在处理 CPU.c 文件,我对此处列出的一些指令感到有些困惑:

http://realboyemulator.files.wordpress.com/2013/01/gbcpuman.pdf

如果您参考上述 PDF 的第 66 页,并查看与 Opcode 0x7E - LD,R1,R2 对应的指令,我很好奇这个不是指令。

GB 有 8 个 8 位寄存器,A,B,C,D,E,F,H,L。16位寄存器可以通过连接两个来组成:AF,BC,DE,HL。

我对 Opcode 0x7E 感到困惑,因为它看起来像是试图将 16 位值 (HL) 存储到 8 位寄存器 (A) 中。

LD,A,(HL)

我误解了这份文件吗?有人可以解释为什么会存在这样的指令吗?它不能被 LD,A,L 代替吗?

0 投票
3 回答
2489 浏览

device-emulation - 如何从gameboy解码任天堂标志?

我尝试使用http://imrannazar.com/GameBoy-Emulation-in-JavaScript:-Graphics中描述的背景调色板方案解码以下位图

CE ED 66 66 CC 0D 00 0B 03 73 00 83 00 0C 00 0D 00 08 11 1F 88 89 00 0E DC CC 6E E6 DD DD D9 99 BB BB 67 63 6E 0E EC CC DD DC 99 9F BB B9 33 3E

来源: http: //gbdev.gg8.se/wiki/articles/The_Cartridge_Header#0104-0133_-_Nintendo_Logo

但我只得到了类似于噪音的东西。

我应该往哪个方向走?是否使用压缩?我在互联网上找不到有关此转储的更多信息。

迄今为止最好的(20 倍变焦):在此处输入图像描述

0 投票
3 回答
1216 浏览

c - 我正在运行 gbdk 一个 gameboy 游戏制作程序,我在以下代码中遇到解析错误

那是c代码

我运行提示并弹出以下错误。

0 投票
2 回答
1074 浏览

c - 在 C 中为 Gameboy 创建第二个计数器

所以我是 C 的新手,并被分配了制作游戏的任务。我将使用 Gameboy 模拟器,并且不鼓励导入任何超出基础的库。

我想想出一种方法来运行第二个计数器(将显示在屏幕上),但无法使用该time.h库,我觉得有点卡住了。

无论如何我可以这样做吗?有人告诉我,Gameboy 的运行速度相当慢,如果我可以让它陷入“忙碌循环”,我可以“大约一秒钟”并以这种方式计数。

我已经考虑过sleep执行此操作的功能,但那是在unistd.h库中。我还考虑过可能设置一个循环并数到 10000(或任何数字可能需要一秒钟来计算),但所有这些都将同时发生在手头的游戏中,我担心这样的事情会延迟游戏玩法和其他事情的发生。

有什么建议吗?

编辑:我认为任何超出的stdlib.h东西stdio.h都是不允许的。

0 投票
1 回答
750 浏览

emulation - GB 测试 ROM 仿真问题

我一直在制作 GameBoy 模拟器,目前正在通过位于此处的测试 ROM 运行它。

其中一项测试cpu_instrs.zip如下:

据我了解,这个测试似乎总是会失败。在第一个循环中,不会设置零标志inc c,然后代码最终会跳转到,test_failed因为在第二个循环中,e它将等于 1 并且a将为 0。

我在这里想念什么?

0 投票
0 回答
2648 浏览

c - Gameboy 模拟器 - 携带和半携带标志

我正在使用 C 语言开发 GameBoy 模拟器,目前我正在开发 CPU 内核。不过,我不确定我是否理解何时设置进位和半进位标志,尤其是在以下操作中:

http://www.pastraiser.com/cpu/gameboy/gameboy_opcodes.html

我对这个操作码的实现是:

它是正确的实现还是我误解了标志?

编辑:我的实现是错误的,这个问题重复了另一个。这是正确的实现(我希望),但它可能不是非常有效的资源:

0 投票
3 回答
141 浏览

c - c变量在递增时变成-17918

嗨,我正在制作一种可以在 c 中运行在任天堂 gameboy 上的编程语言,这就是为什么你会看到一些函数,比如 waitpad();但是由于某种原因,当我尝试在 main.c 文件中增加某个变量时,这个问题与 gameboy 库无关:

cnt[0] 变成 -17918 任何人都可以看到任何会导致它以这种方式运行的问题吗?

0 投票
1 回答
246 浏览

assembly - ARM汇编,第一条指令上传

我正在尝试学习 arm assemly,这将是我真正可以说我知道的第一种编程语言。实际上现在我首先学习机器语言,因为它对我来说更容易。

我的问题是:如何将第一条指令加载到处理器中?

我要进行实验的编程平台是一个gameboy Advance。它有一个 arm7tdmi 处理器,我没有闪存卡,所以我将使用我的 arduino 通过链接端口(连接到芯片的 d、di、do、dc 引脚)上传代码。我只需要帮助弄清楚如何上传任何程序。除了 arduino 的东西和 gameboy BIOS 之外,不使用任何其他人的软件。

所以我的问题是:如果我将 bios 芯片从 gba 中取出,我是否仍然可以通过这些引脚上传指令,或者处理器在启动后通常会在不同的地方寻找指令吗?还有它如何接受通信,我如何一次上传一条指令?

0 投票
1 回答
3646 浏览

emulation - 为什么有些模拟器需要 BIOS 转储?

为什么有些模拟器需要 BIOS 转储?

例如 Playstation 模拟器可以,但 Gameboy 和 SNES 模拟器不可以。

0 投票
0 回答
309 浏览

c - GBDK MetaTile 混乱

我正在尝试使用 GBDK 编写自己的 Game Boy 游戏,但我完全遇到了障碍。

瓷砖只能是 8x8 或 8x16,但我需要我的精灵是 16x16。从互联网上关于它的极少数事情中,我发现我需要使用元分块。唯一的问题是我不知道如何使用 metatiles。我用来制作常规图块的程序有一个转换为元图块的选项,并输出:

通常它只是下面的部分/* Start of tile array. */,我可以通过这样做来使用它:

但是,如果我这样做,它只会给我整个精灵的四分之一。