{"slug": "show-hn-i-recreated-contra-in-a-custom-nes-game-engine-not-an-emulator", "title": "Show HN: I recreated Contra in a custom NES game engine (NOT an emulator)", "summary": "Developer Jeff Lunt built a custom NES-style game engine called neo8, using an AI agent to generate a microengine with a sprite engine, input handling, sound and music, and a camera system, then recreated Contra gameplay as a proof-of-concept. Lunt said neo8 is not an emulator and cannot run NES ROMs, but it includes an image, audio and code structure analysis tool that converts raw ROM binary data into .png files, mp3 files and high-level code, which compiles to a zero-dependency native binary for Windows, Mac and Linux. Lunt said the goal was not to port Contra but to enable new cross-platform NES-style games: \"The Contra demo was simply a proof-of-concept to see if my little engine could replicate Contra's gameplay style, and sure enough it pretty much worked.", "body_md": "Here's a demo video I recorded for a friend that I decided to repost. Sorry for the terrible sound quality and my cough -- hope it's mostly understandable.\n\n[https://s3.us-east-2.amazonaws.com/jeffluntgames.com/the-sur...](https://s3.us-east-2.amazonaws.com/jeffluntgames.com/the-surprise-demo.mp4)\n\n---\n\nHere's the technical breakdown of what I did:\n\n* Worked with an AI agent (of course) * Described the basic features of the NES * Sprite engine * Input handling * Sound and music\n\nHad the AI build what I'll call a microengine around this. Why do I call it a microengine? Because games on the NES were, I assume, written in assembly, without game engines. But my micro engine (which I named `neo8`) looks like a high-level language, has a basic camera system, and event-based sound system, a polling and event-based input handler that maps inputs to in-game events, a way to model game entities (entity attributes, rendering, animation state machines, etc.), but really just the very basics of what you'd need to create NES-style games on modern hardware.\n\nTo be clear, `neo8` is _not_ an emulator. It cannot run NES ROMs. But part of the engine, for the purpose of this demo, involved creating an image, audio, and code structure analysis tool so that I could convert the raw binary data from an actual ROM into .png files, mp3 files, and high-level code.\n\nThat high-level code is then compiled to a zero-dependency, native binary, and the little engine supports win/mac/linux as binary outputs.\n\nAnyway, it was fun. Why not just port Contra directly (the \"reverse engineer anything\" repo, I'm sure could do it direct from the ROM to Rust or something). But I didn't want Contra, because I could just play the real Contra on original hardware or an emulator. Recreating Contra wasn't the point.\n\nThe point was to create the engine so I could create new, cross-platform NES-style games using a tiny engine. The Contra demo was simply a proof-of-concept to see if my little engine could replicate Contra's gameplay style, and sure enough it pretty much worked.\n\nComments URL: [https://news.ycombinator.com/item?id=50143302](https://news.ycombinator.com/item?id=50143302)\n\nPoints: 1\n\n# Comments: 0", "url": "https://wpnews.pro/news/show-hn-i-recreated-contra-in-a-custom-nes-game-engine-not-an-emulator", "canonical_source": "https://news.ycombinator.com/item?id=50143302", "published_at": "2026-10-18 17:35:03+00:00", "updated_at": "2026-10-18 17:48:12.667298+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "developer-tools", "artificial-intelligence"], "entities": ["Jeff Lunt", "neo8", "Contra", "Nintendo Entertainment System", "Hacker News"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/show-hn-i-recreated-contra-in-a-custom-nes-game-engine-not-an-emulator", "markdown": "https://wpnews.pro/news/show-hn-i-recreated-contra-in-a-custom-nes-game-engine-not-an-emulator.md", "text": "https://wpnews.pro/news/show-hn-i-recreated-contra-in-a-custom-nes-game-engine-not-an-emulator.txt", "jsonld": "https://wpnews.pro/news/show-hn-i-recreated-contra-in-a-custom-nes-game-engine-not-an-emulator.jsonld"}}