MCP VICE仿真器服务器
MCP(模型上下文协议)服务器,使Claude Code能够调试在VICE仿真器中运行的Commodore 64/128/VIC-20程序。
这有什么作用
此服务器将Claude Code连接到VICE的二进制监视器协议,允许您:
- 调试黑屏崩溃 -检查寄存器、内存和CPU历史记录,了解出了什么问题
- 读/写存储器 -检查或修改任何内存位置,包括VIC-II/SID/CIA寄存器
- 设置断点 -在特定地址或内存访问模式下停止执行
- 单步执行代码 -单步完成6502/6510组装说明
- 截图 -在调试过程中查看屏幕上实际显示的内容
- 自动启动程序 -直接加载.prg、.d64或.crt文件
环境变量
VICE_PATH-VICE bin目录的路径(默认:C:\bin\vice\bin)VICE_EMULATOR-使用哪个模拟器:x64sc,x128,xvic等等。(默认值:x64sc)VICE_MONITOR_PORT-二进制监视器端口(默认值:6502)
快速开始
配置后,您可以要求Claude Code调试C64程序:
> Load and debug myprog.prg - it shows a black screen and I don't know why克劳德代码将:
- 在启用监控的情况下启动VICE
- 加载您的程序
- 检查寄存器、内存和CPU历史记录
- 诊断问题并提出修复建议
可用的MCP工具
连接
vice_connect-启动VICE并连接到二进制监视器vice_disconnect-停止VICE并关闭连接vice_status-检查VICE是否正在运行并已连接
程序加载
vice_load-自动启动.prg、.d64、.t64或.crt文件vice_reset-重置机器(硬重置或软重置)
记忆
vice_memory_read-读取内存范围(带存储体选择)vice_memory_write-将字节写入内存vice_memory_dump-将内存转储为十六进制+ASCII(类似于十六进制编辑器)
寄存器
vice_registers_get-获取A、X、Y、SP、PC和状态标志vice_registers_set-修改寄存器值
断点和观察点
vice_breakpoint_set-PC到达地址时中断vice_breakpoint_clear-删除断点vice_watchpoint_set-内存读/写/执行中断vice_watchpoint_clear-删除观察点
执行控制
vice_step-执行N条指令vice_continue-继续执行直到断点vice_execute_until_return-运行至RTS/RTI
检查
vice_cpu_history-获取最后N条执行的指令vice_screenshot-将当前屏幕捕获为PNG格式vice_vic_registers-读取VIC-II寄存器($D000-$D02E)vice_sid_registers-读取SID寄存器($D400-$D41C)
调试会话示例
用户: “我的程序显示黑屏。你能找出原因吗?”
克劳德代码将:
// 1. Connect and load program
vice_connect()
vice_load({ file: "myprog.prg" })
// 2. Check what happened
vice_registers_get()
// → PC: $EA31 (Kernal IRQ handler - stuck in ROM!)
vice_cpu_history({ count: 50 })
// → Last 50 instructions show infinite loop at $0810
// 3. Inspect VIC-II
vice_vic_registers()
// → $D011 = $00 (screen disabled!)
// → $D020 = $00, $D021 = $00 (black border and background)
// 4. Check the problem area
vice_memory_dump({ start: 0x0810, length: 16 })
// → Shows the code that disabled the screen
// 5. Capture proof
vice_screenshot()
// → Saves screenshot showing black screen克劳德的诊断: “您的程序禁用了VIC-II屏幕位($D011),但从未重新启用它。$0810处的代码将$00写入$D011,而不是$1B。”
协议文件
看 协议.md 有关VICE二进制监视器协议的详细信息。
故障排除
“连接被拒绝”
- 确保没有其他VICE实例正在运行
- 检查一下
VICE_PATH指向正确的目录 - 验证VICE版本是否为3.5或更高版本
“程序未加载”
- 确保文件路径是绝对路径还是相对于当前目录的路径
- 检查文件格式(.prg、.d64等)是否有效
- 尝试
vice_reset()加载前
“断点未命中”
- 使用
vice_cpu_history()查看执行是否到达该区域 - 检查电脑是否在预期的内存范围内
- 验证断点地址是否正确(使用带$前缀的十进制或十六进制)
发展
# Watch mode for development
npm run watch
# Build for production
npm run build许可证
像啤酒一样免费
