gpt4 book ai didi

intel - Z80 处理器可以运行 Gameboy 游戏吗?

转载 作者:行者123 更新时间:2023-12-01 09:44:38 25 4
gpt4 key购买 nike

由于 Gameboy 的处理器 LR35902 是 Z80 和英特尔 8080 的混合体,请记住,Z80 和英特尔 8080 无论如何设计为主要交叉兼容,任何具有 Z80 处理器的东西都可以运行用于LR35902?我在想不是因为我希望用我的 TI84 在自习室里玩口袋妖怪。

编辑:我知道我必须重新编程控件,可能还有游戏访问 RAM 的方式,但我宁愿这样做也不愿将整个游戏移植过来。

最佳答案

Z-80 指令集是 8080 指令集的超集。 LR35902 与 8080 有很多共同点,但用不同的指令替换了一些 8080 指令,并在一些与 Z-80 不同的方向上扩展了指令集。 LR35902 与 Z-80 不兼容,也不与 8080 兼容。

您必须找到不兼容指令的所有用途,并用提供相同功能的补丁替换它们。由于 TI84 比原始 GameBoy CPU 快得多,因此花费的额外时间不会成为问题,而且很容易为指令本身编写代码替换。 ROM 的反汇编和代码与数据的分离将非常耗时。

但是,您可以使用现有的 GameBoy 模拟器并对其进行检测,以记录其执行的指令位置,而这些指令在 Z-80 上是不同的。广泛地玩游戏应该可以找到大多数必须修补代码的地方。

如需快速概览,请参见 LR35902 instructions 的图表并与 Z-80 进行比较。您还需要 this description of LR35902 instructions .

这是 LR35902 和 Z-80 之间的简要说明操作码差异。

Opcode  LR35902            Z-80
------ -------------- ----------
F2 LD A,(C) JP P,nn
E2 LD (C),A JP NV,nn
EA LD (nn),A JP V,nn
FA LD A,(nn) JP M,nn
3A LDD A,(HL) LD A,(nn)
32 LDD (HL),A LD (nn),A
2A LDI A,(HL) LD HL,(nn)
22 LDI (HL),A LD (nn),HL
08 LD (nn),SP EX AF,AF'
E0 LDH (n),A RET NV
F0 LDH A,(n) RET P
F8 LD HL,(SP+e) RET M
E8 ADD SP,e RET V
CB 3x SWAP r SL1 r (undocumented)
10 STOP DJNZ
D9 RETI EXX

这是 LD A,(nn)的小帮助和 LD (nn),A两者都可用,只需使用不同的操作码。

关于intel - Z80 处理器可以运行 Gameboy 游戏吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52009005/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com