问题标签 [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 回答
10625 浏览

c# - C# 中的 GBA 模拟器 wp7

我想为 WP7 做一个 GameBoy Advance 模拟器,但我不知道从哪里开始。任何人都可以指出我正确的方向吗?我知道GB有一个,也许从那里开始会是个好主意。任何图书馆或资源?

0 投票
2 回答
6160 浏览

compiler-construction - 如何从 C 或 C++ 编译 Game Boy ROM

我需要在 Windows 中编译一个 Game Boy ROM。这是怎么做的?我在谷歌上到处找,只发现死链接。

0 投票
3 回答
981 浏览

emulation - 仿真:无条件跳转和 PC 通过 CPU 周期递增

我正在编写一个简单的 GB 模拟器(哇,现在这是新的东西,不是吗),因为我真的在 emu 中迈出了第一步。

我似乎不明白的是如何正确实现 CPU 周期和无条件跳转。

如果我有一个基本循环,请考虑命令 JP nn(指出的无条件跳转到内存地址),例如 JP 1000h:

然后在读取 JP 操作码并执行命令后(从内存中读取 1000h 并设置 PC = 1000h),PC 会递增并变为 1001h,从而导致仿真不良。

tl; dr 当有增加 PC 的 cpu 循环时,您如何模拟模拟器中的跳转,以使 PC 值保持正确?

0 投票
3 回答
5998 浏览

c - 如何学习编写控制台模拟器?

可能重复:
模拟器如何工作以及它们是如何编写的?

我想尝试编写一个基本的游戏机模拟器,甚至可能是 NES。我知道 C 的基础知识,而且我相当擅长 Java,所以我知道必要的编程基础知识。但我不知道的是,人们如何将所有数据处理成 C 程序并从中创建一个模拟器。我知道我应该从源代码中学习,但是在不知道它们为什么存在以及它们应该做什么的情况下,很难看到一堆代码行。如果我想学习如何编写这样的模拟器,我应该从哪里开始?

我已经搜索了互联网,但我只发现了包含太多错误的不清楚的教程,无法自行解决。我应该从哪里开始?

0 投票
2 回答
77 浏览

c - 将按钮的寄存器标记为已读

我正在使用 C 编写 Game Boy 游戏。我正在实现一个光标,该光标可以根据按下的按钮上下移动。如果按下 UP 键,则寄存器中的相应位被设置。然后我让光标向上移动。游戏处于无限循环中。因此,在下一次迭代中,仍将寄存器视为已设置。我需要一些簿记来告诉自己将来光标已经向上移动,我应该忽略该位已设置的事实。我该怎么做呢?

编辑:这是我写的代码。基本上,当我按下向上按钮时,光标会上升很多步。我希望它只上升一步。

0 投票
1 回答
584 浏览

c - 在 C/Gameboy 编程中使用两个数组

对于 Gameboy 编程中的游戏,我使用了四个名为topoldTopbottom的数组oldBottom

其中 Rect 是由两个结构点组成的结构,左上角点和右下角点。

游戏的想法是让随机高度的方块从天花板上向下,从地板上向下。它类似于直升机经典游戏。在我的无限 while 循环中,我使用以下代码将所有矩形向下移动一个像素

drawRect 方法使用 DMA 来绘制矩形。

使用此代码,代码应显示如下矩形:(在油漆中绘制) 在此处输入图像描述

但我得到的结果是

在此处输入图像描述

奇怪的是,如果我根本不画底行,那么顶行画得很好。当我画两者时,结果只会变得混乱。这真的很奇怪,因为我认为代码应该可以正常工作,并且代码不是很复杂。发生这种情况是否有特定原因,有没有办法解决这个问题?

谢谢。

我用来绘制矩形的代码如下所示:

0 投票
2 回答
400 浏览

emulation - 模拟 GameBoy Color 的 GameLink

我目前正在开发一个用于学习目的的 GameBoy 颜色模拟器。我还想模拟 GameLink 功能(poké-fight ftw!),但我没有找到任何有关如何模拟 GameLink 的文档、示例、参考或源代码片段。

我在 github 上找到的所有 GameBoy 模拟器都没有提供这个功能。

编程语言无关紧要,我只是好奇那里是否有关于该主题的资源。

有人知道从哪里开始使用此功能吗?

0 投票
1 回答
1367 浏览

cpu - Z80 'Game Boy' CPU 是 8 位还是 16 位?

我正在阅读有关创建Game Boy模拟器的教程,我知道 Game Boy 使用 8 位 CPU,但我不明白为什么 Gameboy 使用两种类型的数据:字节(8 位)和字(16 位) )。

如果 CPU 有 8 位的容量,为什么可以使用 16 位?

0 投票
1 回答
1427 浏览

javascript - 在 javascript 中模拟来自 gameboy ROM 的音频

使用这个模拟器http://www.codebase.es/jsgb/我做了这个项目https://github.com/rafaelcastrocouto/gbonline

现在我想用 html5 音频 API 模拟声音和音乐,但我不知道从哪里开始。我查看了模拟器代码和手册,但我远未理解那里发生了什么。

模拟器代码:https ://github.com/rafaelcastrocouto/gbonline/blob/gh-pages/script.js 手册: http: //nocash.emubase.de/pandocs.htm

你们能解释一下应该怎么做,也许是一些伪代码???

0 投票
1 回答
605 浏览

java - Gameboy 仿真 - SwingWorker 卡在 Unsafe.park

我正在为 Gameboy 系统制作一个模拟器,并且我使用 Swing 作为我的 GUI。我的实现使用 aSwingWorker在后台线程中运行 CPU 仿真。通过SwingWorker.doInBackground方法,我定期发布一个包含帧缓冲区(图像数据)的数组(每当 Gameboy 模拟 VBlank 屏幕刷新时),这应该每秒发生约 60 次。我Thread.sleep(...)在这个后台线程中调用以将 Gameboys 时间与系统时间同步。在process方法中,我将此数据传递给 aJPanel并调用它的repaint方法。我的doInBackground方法基本上是一个无限循环,模拟的 Gameboy CPU 在后台不断执行指令。

我面临的问题是在某些 ROM 上,我的应用程序只是冻结并且我的JPanel组件没有显示屏幕更新。我尝试println在我的后台运行线程上使用 's 输出模拟 CPU 正在执行的指令,这也卡住了,一段时间后没有生成输出。

对于某些 ROM,我根本看不到这个问题发生。

这是我的 SwingWorker 代码示例:

我进行了 jstack 跟踪,发现我的 swing-worker-thread 卡在 Unsafe.park:

我不确定可能出了什么问题,因为我所有的 Swing 组件更新都只在 EventDispatch 线程上完成。

我正在为 Mac OS X Mountain Lion 运行 Java(TM) SE 运行时环境(内部版本 1.7.0_40-b43),这是可用的最新版本。