#gameboy #debugging #cycle #rom #emulation #count #accurate

app olympia_cli

Olympia是一个Gameboy模拟器和工具包,旨在作为本地或Web Assembly应用程序运行,目标是在周期计数上精确模拟。olympia_cli包含调试olympia模拟器和ROM文件的工具。

5个不稳定版本

0.3.0 2020年5月10日
0.2.1 2019年12月24日
0.2.0 2019年12月22日
0.1.1 2019年12月22日
0.1.0 2019年12月13日

#250 in 模拟器

GPL-3.0-or-later

390KB
9K SLoC

Olympia CLI

用于与Olympia模拟器交互的终端用户界面。

CLI命令

debug

用法

olympia_cli debug<rom>

为给定的ROM打开一个交互式调试会话。在提示符下输入help以查看调试器中可用的命令列表,或向下滚动到Debugger Commands

rom-info

用法

olympia_cli rom-info<rom>

打印出有关给定ROM的已知信息。目前限于控制器类型、RAM大小和ROM大小。

disassemble

用法

olympia_cli disassemble[-v] <rom>

打印出给定ROM的反汇编。

如果指定了详细(-v)标志,则每行将包含一个地址、操作码的数值和文本值。如果未指定该标志,则每10行将包含一个地址标签,并且每行将包含操作的文本值。

常用调试器命令

step

用法

step <n> / s <n>

按给定数量的指令向前执行。

exit

用法

exit

退出此调试会话和CLI。

help

用法

help

打印出调试提示符的用法说明。

print-bytes

用法

print-bytes 1:100 / pb 1:100

打印出从十进制1到十进制100的字节。

print-bytes:0x100

打印出从0到十六进制100的字节。

print-bytes0xFFE0:

打印出从0xFFE0到0xFFFF的字节。

print-bytes header

打印命名区域中的字节 header。其他选项包括 staticromswitchromvramcartramsysramcpuram

注意,对于 RAM 小于 0x2000 字节或 ROM 小于 0x8000 字节的卡带,地址空间中不会全部填充。在调试器中,受影响的地址将显示为 --。尝试在真实游戏机硬件上读取此区域的游戏将会有未定义的行为。

print-registers

用法

print-registers / pr

打印所有寄存器的值。F(标志)寄存器被拆分出来以显示各个标志。

其他调试器命令

current

用法

current / ci

打印当前指令的汇编代码。

cycle-count

用法

cycle-count / cc

打印自仿真器启动以来经过的总时钟周期数。这主要用于性能测量或仿真器调试。

依赖

~3MB
~49K SLoC