The author developed a ZX Spectrum emulator using various LLMs, including Qwen, GLM, Sol, and DeepSeek, to assist with architecture, coding, and debugging. The project transitioned from an initial Go implementation to C++ to address performance issues caused by excessive buffering.

The development process involved using LLMs to create an architecture, followed by iterative coding sessions where models implemented Z80 emulation, bus management, and peripheral support. The author utilized SDL3 for the frontend after identifying that the previous library, Fyne, introduced significant latency.

To automate testing and debugging, the author implemented an MCP server, allowing the models to compile code, compare results, and perform step-by-step execution. This setup enabled the emulator to handle cassette images and music playback, effectively replicating the C++ version.

Implementing the WD1793 and NEC uPD765 disk controllers proved challenging, as the models initially failed to provide functional code without external references. The author provided existing emulator code as a guide, which allowed the models to eventually resolve complex copy-protection mechanisms.

The models successfully addressed various copy-protection schemes, including 'weak sectors' and non-standard sector sizes, by analyzing disk images and disassembling loaders. Through iterative testing and manual guidance, the emulator achieved the ability to load and run various game images.