问题标签 [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.
c# - C# 中的 GBA 模拟器 wp7
我想为 WP7 做一个 GameBoy Advance 模拟器,但我不知道从哪里开始。任何人都可以指出我正确的方向吗?我知道GB有一个,也许从那里开始会是个好主意。任何图书馆或资源?
compiler-construction - 如何从 C 或 C++ 编译 Game Boy ROM
我需要在 Windows 中编译一个 Game Boy ROM。这是怎么做的?我在谷歌上到处找,只发现死链接。
emulation - 仿真:无条件跳转和 PC 通过 CPU 周期递增
我正在编写一个简单的 GB 模拟器(哇,现在这是新的东西,不是吗),因为我真的在 emu 中迈出了第一步。
我似乎不明白的是如何正确实现 CPU 周期和无条件跳转。
如果我有一个基本循环,请考虑命令 JP nn(指出的无条件跳转到内存地址),例如 JP 1000h:
然后在读取 JP 操作码并执行命令后(从内存中读取 1000h 并设置 PC = 1000h),PC 会递增并变为 1001h,从而导致仿真不良。
tl; dr 当有增加 PC 的 cpu 循环时,您如何模拟模拟器中的跳转,以使 PC 值保持正确?
c - 如何学习编写控制台模拟器?
可能重复:
模拟器如何工作以及它们是如何编写的?
我想尝试编写一个基本的游戏机模拟器,甚至可能是 NES。我知道 C 的基础知识,而且我相当擅长 Java,所以我知道必要的编程基础知识。但我不知道的是,人们如何将所有数据处理成 C 程序并从中创建一个模拟器。我知道我应该从源代码中学习,但是在不知道它们为什么存在以及它们应该做什么的情况下,很难看到一堆代码行。如果我想学习如何编写这样的模拟器,我应该从哪里开始?
我已经搜索了互联网,但我只发现了包含太多错误的不清楚的教程,无法自行解决。我应该从哪里开始?
c - 将按钮的寄存器标记为已读
我正在使用 C 编写 Game Boy 游戏。我正在实现一个光标,该光标可以根据按下的按钮上下移动。如果按下 UP 键,则寄存器中的相应位被设置。然后我让光标向上移动。游戏处于无限循环中。因此,在下一次迭代中,仍将寄存器视为已设置。我需要一些簿记来告诉自己将来光标已经向上移动,我应该忽略该位已设置的事实。我该怎么做呢?
编辑:这是我写的代码。基本上,当我按下向上按钮时,光标会上升很多步。我希望它只上升一步。
c - 在 C/Gameboy 编程中使用两个数组
对于 Gameboy 编程中的游戏,我使用了四个名为top
、oldTop
和bottom
的数组oldBottom
:
其中 Rect 是由两个结构点组成的结构,左上角点和右下角点。
游戏的想法是让随机高度的方块从天花板上向下,从地板上向下。它类似于直升机经典游戏。在我的无限 while 循环中,我使用以下代码将所有矩形向下移动一个像素
drawRect 方法使用 DMA 来绘制矩形。
使用此代码,代码应显示如下矩形:(在油漆中绘制)
但我得到的结果是
奇怪的是,如果我根本不画底行,那么顶行画得很好。当我画两者时,结果只会变得混乱。这真的很奇怪,因为我认为代码应该可以正常工作,并且代码不是很复杂。发生这种情况是否有特定原因,有没有办法解决这个问题?
谢谢。
我用来绘制矩形的代码如下所示:
emulation - 模拟 GameBoy Color 的 GameLink
我目前正在开发一个用于学习目的的 GameBoy 颜色模拟器。我还想模拟 GameLink 功能(poké-fight ftw!),但我没有找到任何有关如何模拟 GameLink 的文档、示例、参考或源代码片段。
我在 github 上找到的所有 GameBoy 模拟器都没有提供这个功能。
编程语言无关紧要,我只是好奇那里是否有关于该主题的资源。
有人知道从哪里开始使用此功能吗?
cpu - Z80 'Game Boy' CPU 是 8 位还是 16 位?
我正在阅读有关创建Game Boy模拟器的教程,我知道 Game Boy 使用 8 位 CPU,但我不明白为什么 Gameboy 使用两种类型的数据:字节(8 位)和字(16 位) )。
如果 CPU 有 8 位的容量,为什么可以使用 16 位?
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
你们能解释一下应该怎么做,也许是一些伪代码???
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),这是可用的最新版本。