Game Boy的Z80 CPU有一个半进位标志位,但我似乎找不到关于何时设置/清除它的信息。 目前我的理解是,任何8位加法、减法、移位或旋转操作(可能还有其他操作)都会将其设置为结果的第4位(?),而DAA指令以某种方式设置/使用它。 我不确定的是16位指令如何影响它以及是否受某些寄存器的影响。
和很多人一样,我正在编写Game Boy模拟器,并且有几个关于指令0xE8(ADD SP,n,其中n是一个8位立即数)的问题。 在16位指令中,这里声称如果从第7位到第8位发生进位,则设置半进位标志,而这里则说半进位标志表示从第11位到第12位的进位。在这个Reddit主题中,似乎对此问题有...
我尝试使用在这里描述的背景调色板方案解码以下位图: 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...
作为回答关于《宝可梦红》中一个故障的技术运作的问题的一部分,我一直在寻找一种使用标准调试器来调试Game Boy ROM的方法。虽然我找到的许多模拟器都有一些调试支持,但迄今为止我找到的没有什么帮助。 背景是,我尝试使用Visual Boy Advance内置功能进行调试,但它们对我要做的事...
我一直在开发Game Boy模拟器,注意到有些操作码永远不会改变任何值,例如LD A, A、LD B, B等以及AND A。前两个显然没有改变任何东西,因为它们将寄存器的值加载到相同的寄存器中,而由于AND与A寄存器进行比较,AND A将始终返回A。这些操作有什么目的,还是每个周期之后本质上与...
这不是一道作业题,而是我正在开发的一个游戏。 我有两个16位RGB颜色,并希望根据另外六个4位数量来改变它们的六个通道。虽然算法简单但很繁琐,我正在寻找一种优化方法,以便一次处理更多有用的工作。 这是高级概述: hl指向四个颜色字节:[hl] = %gggrrrrr、[hl+1] = ...
在《Game Boy CPU Manual》第87页中,声称CP n指令在没有借位时设置进位标志,并且这意味着A < n,但这似乎与自身矛盾,因为当A > n时设置进位标志。 例如:如果A=0且B=1,则CP B像SUB A, B一样设置标志,即 0 - 1。这变成了 0 + 2...
你好,我正在写一款Game Boy模拟器。 我使用了这个参考文献:Gameboy CPU (LR35902) 指令集 这份文档指出以下操作码:0xE2 LD (C),A 和0xF2 LD A,(C) 长度为2。 Game Boy CPU 手册 中提到这些指令: 将寄存器 C 中的...