{
  "added_at": "2026-10-19",
  "additional_evidence_urls": [
    "https://github.com/OpenRakis/Spice86/blob/28a877fc64888f070e2dad95ddb739f3e1fe84a2/README.md#L266-L290",
    "https://github.com/OpenRakis/Spice86/blob/28a877fc64888f070e2dad95ddb739f3e1fe84a2/COMPATIBILITY.md",
    "https://github.com/OpenRakis/Spice86/blob/28a877fc64888f070e2dad95ddb739f3e1fe84a2/doc/mcp.md",
    "https://github.com/OpenRakis/Spice86/blob/28a877fc64888f070e2dad95ddb739f3e1fe84a2/src/Directory.Build.props",
    "https://github.com/OpenRakis/Spice86/blob/28a877fc64888f070e2dad95ddb739f3e1fe84a2/LICENSE",
    "https://github.com/OpenRakis/Spice86/blob/28a877fc64888f070e2dad95ddb739f3e1fe84a2/NOTICE",
    "https://github.com/OpenRakis/Spice86/releases/tag/latest",
    "https://www.nuget.org/packages/Spice86/16.1.0"
  ],
  "category": "game-analysis",
  "description_en": "PC emulator for executing, reverse engineering and rewriting real-mode DOS programs whose source code is unavailable. While a program runs it builds a control-flow graph, and on exit it dumps memory, execution flow, Ghidra-compatible symbols and a self-contained, runnable C# project whose generated functions override the original assembly, so analysts can rewrite them function by function into readable code while the program keeps working. It also provides a GDB remote server with custom analysis commands, a built-in debugger with a C-header structure viewer, an optional HTTP memory API and an MCP server whose tools cover CPU, memory, breakpoints, CFG and device state; an optional Ghidra plugin imports the dumps.",
  "description_zh": "用于执行、逆向分析并重写无源码实模式 DOS 程序的 PC 模拟器。程序运行时它会构建控制流图，退出时转储内存、执行流、Ghidra 兼容的符号，以及一个可独立运行的 C# 项目，其中生成的函数会覆盖原有汇编代码，分析者可以在程序始终可运行的前提下逐个函数将其改写为可读代码。它还提供带自定义分析命令的 GDB 远程服务器、配有 C 头文件结构查看器的内置调试器、可选的 HTTP 内存 API，以及工具覆盖 CPU、内存、断点、控制流图和设备状态的 MCP 服务器；可选的 Ghidra 插件可导入这些转储。",
  "entry_url": "https://awesomerea.org/resources/spice86/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/spice86/",
  "evidence_url": "https://github.com/OpenRakis/Spice86/blob/28a877fc64888f070e2dad95ddb739f3e1fe84a2/README.md",
  "group": "tools",
  "id": "spice86",
  "json_url": "https://awesomerea.org/resources/spice86/record.json",
  "kind": "tool",
  "markdown_url": "https://awesomerea.org/resources/spice86/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/spice86/index.md",
  "name": "Spice86",
  "name_zh": "Spice86 实模式 DOS 逆向与重写模拟器",
  "record_type": "resource",
  "relationship": "foundation",
  "requirements": [
    "Releases are published on NuGet (16.1.0 at review, published 2026-08-05); the GitHub release tagged latest is a rolling development prerelease built from master with debug and release archives. The reviewed master commit (2026-10-13) declares 16.1.0. The project is a C# port and continuation of the original Java Spice86. Running and building need .NET 10 on Windows, macOS or Linux; source builds use dotnet build.",
    "The README lists 8086/8088 as fully implemented, with partial 80186, 80286 and 80386 support (no protected mode or paging, and no FPU beyond detection); 1 MB segmented memory with EMS, XMS and HMA; text, CGA, EGA, VGA and VESA VBE 1.2 graphics, with CGA and EGA best effort; a largely complete DOS 5.0 INT 21h; and Sound Blaster, OPL and Adlib Gold audio ported from DOSBox Staging, with MT-32 partial and unavailable on macOS. COMPATIBILITY.md says many programs do not run and lists tested games individually.",
    "The analyst supplies the DOS program and its files; the emulated C: drive defaults to the program folder. Dumps go to a subfolder named by the program's SHA-256 hash, and the generated project passes the expected checksum so overrides cannot run against a different binary. The GDB server starts by default on port 10000, and the MCP HTTP server is documented as enabled by default on port 8081. The Ghidra plugin is a separate repository that needs Java 17. The README suggests LLM assistance for rewriting generated functions and points to the project's Cryogenic rewrite of Cryo's Dune as a worked example.",
    "Apache-2.0; NOTICE credits the Aeon project, the README credits DOSBox Staging for ported sound code and as the model for CD and floppy emulation, and a prebuilt FastExpressionCompiler DLL is vendored in 3rdparty. Test resources are small DOS test programs, most with assembly sources in the repository."
  ],
  "requirements_zh": [
    "正式版本发布在 NuGet 上（审阅时为 16.1.0，发布于 2026-08-05）；GitHub 上标签为 latest 的发布是从 master 持续构建的开发预发布版，提供调试版和发布版压缩包。所审阅的 master 提交（2026-10-13）声明的版本为 16.1.0。该项目是原 Java 版 Spice86 的 C# 移植与延续。运行和构建都需要 .NET 10，支持 Windows、macOS 和 Linux；从源码构建使用 dotnet build。",
    "README 列出：8086/8088 已完整实现，80186、80286 和 80386 仅部分支持（未实现保护模式和分页，FPU 仅支持检测指令）；1 MB 分段内存，支持 EMS、XMS 和 HMA；支持文本模式、CGA、EGA、VGA 和 VESA VBE 1.2 图形，其中 CGA 与 EGA 为尽力实现；DOS 5.0 的 INT 21h 已大体完整；Sound Blaster、OPL 和 Adlib Gold 音频移植自 DOSBox Staging，MT-32 仅部分支持且在 macOS 上不可用。COMPATIBILITY.md 说明许多程序无法运行，并逐一列出了测试过的游戏。",
    "DOS 程序及其文件由分析者自行提供；模拟的 C: 盘默认指向程序所在文件夹。转储文件存放在以程序 SHA-256 哈希命名的子文件夹中，生成的项目会传入预期校验和，因此覆盖代码不会作用于其他二进制。GDB 服务器默认在 10000 端口启动，文档说明 MCP HTTP 服务器默认启用，端口为 8081。Ghidra 插件位于单独的仓库，需要 Java 17。README 建议借助大语言模型改写生成的函数，并以该项目对 Cryo《沙丘》的 Cryogenic 重写作为实际示例。",
    "采用 Apache-2.0 许可；NOTICE 致谢 Aeon 项目，README 说明声音代码移植自 DOSBox Staging，CD 与软盘模拟也以其为参照，3rdparty 目录内置了预编译的 FastExpressionCompiler DLL。测试资源是小型 DOS 测试程序，大多在仓库中附有汇编源码。"
  ],
  "targets": [
    "binary",
    "game"
  ],
  "url": "https://github.com/OpenRakis/Spice86",
  "verification": "source-reviewed",
  "verified_at": "2026-10-19"
}
