1995년 4X 게임 Stars!를 80286 에뮬레이터와 Win16→Win32 브리지로 되살린 Stars!VM 공개, MCP로 Opus 5가 한 판 완주
- Stars!VM은 1995년 16비트 Windows 3.1용 4X 게임 Stars!를 돌리기 위해 만든 80286 에뮬레이터와 Win16→Win32 브리지이고, GitHub 서명 릴리스에 원본 16비트 게임을 압축해 넣어 단일 EXE로 바로 실행됨. 32비트 빌드이며 SSE2가 필요함.
- 턴 생성이 계산 병목이라 실행 트레이스를 모아 Fable 5.1로 핫 루틴(L'Ecuyer MCG PRNG 등)과 기본 블록을 역설계하고 C로 다시 써서 80286 명령으로 디코더에 매핑, 로드 시 해당 루틴을 패치해 턴 생성 속도를 약 2배 높임.
- 에뮬레이터는 x87 80비트 부동소수를 소프트웨어로 구현하지 않고 호스트 x87 하드웨어에서 직접 실행하므로 x86/x86-64가 필요하며, 무작위 16비트 명령을 호스트 JIT 실행 결과와 비교하는 차분 퍼저로 에뮬레이션 전체를 검증함.
- Win32 브리지를 MCP로 모니터링하고 조작할 수 있어 AI 에이전트가 UI 'DOM'을 읽고 합성 이벤트를 주입하며 게스트 메모리까지 접근 가능하고, Opus 5가 MCP로 한 게임을 끝까지 플레이하면서 UI에서 막힌 두 지점에서만 도움을 요청함.
- 원본 게임의 비압축 아트 자산(EXE 약 3MB의 대부분)은 게임에 맞춘 자체 LZ 압축으로 넣고, 사운드용 WaveMix.dll은 로드 대신 인터페이스를 네이티브 구현했으며, 원본의 잦은 소규모 읽기/쓰기를 그대로 Win32로 넘기면 I/O가 턴 생성 시간의 약 5%를 차지해 에뮬레이터가 I/O를 버퍼링함.
Hacker News opinions
와 Stars!, 어릴 때 진짜 많이 했는데. 셰어웨어에서 정식판으로 올리고 나서 디스켓이 우편으로 올 때까지 기다렸던 기억이 나네.