A NES Emulator Written In Odin
AIThis post was created with the assistance of artificial intelligence (AI).

TL;DR

Developer Lucy Pero has published lucyNES, a Nintendo Entertainment System emulator written in Odin. Pero says it can run Battletoads and hundreds of other games, while acknowledging that sound, some cartridge mappers and other accuracy issues still need work; development was paused in January 2025.

Developer Lucy Pero has built lucyNES, a Nintendo Entertainment System emulator written in the Odin programming language, reporting that it can run Battletoads and hundreds of other games. The project, developed in spare time over about seven months and paused in January 2025, offers a working example of emulator development while leaving sound and some hardware details unfinished.

Before you orderOffer from Amazon

Get the latest gadgets delivered free with Prime

  • Fast, free delivery on millions of items
  • Prime Video, Amazon Music and more included
  • Member-only deals all year
Start your free Prime trial Free trial for eligible customers · Cancel anytime
As an affiliate, we earn on qualifying purchases.

Pero’s project report lists support for seven cartridge mapper families: NROM, MMC1, UXROM, CNROM, MMC3, GxROM and AxROM. It also describes a debugger view, a menu, save states, controller support, a partial CRT shader option and sound support. Pero says the emulator runs Battletoads and hundreds of other games “perfectly,” but also notes that some games do not work because certain mappers are incomplete or inaccurate. The performance description is the developer’s account; the report does not provide independent compatibility testing.

The developer started work in late June 2024, building the emulator intermittently in spare time, then paused it in January 2025 to focus on other work. Pero says the project helped develop their knowledge of NES architecture, CPU instructions, timing, emulation and Odin. The code is linked from the project page, though the supplied report does not specify a release version or describe a formal testing process.

Pero identifies sound quality and mapper accuracy among the areas needing more work. Some cartridge types provide extra audio capabilities, which the emulator does not implement, according to the report. The developer also says that approaching more complete hardware accuracy proved substantially more difficult than getting a basic emulator running.

At a glance
reportWhen: Development began in late June 2024 and…
The developmentLucy Pero published a personal account and project details for lucyNES, an Odin-written NES emulator developed over about seven months and paused in January 2025.
Top Steam deals right now
The Elder Scrolls V: Skyrim Special Edition-80%$7.99
One More Lawn-30%$4.89
Mortal Shell II-25%$37.49
Bodycam-20%$26.65
Main Sequence-20%$19.99
Casualties: Unknown-15%$19.54
Zombies Aren’t Real-10%$8.99
DREADMOOR-10%$17.99
Live · Steam store (current discounts)

Why Emulator Accuracy Takes Time

The project illustrates a recurring challenge in classic-console emulation: launching a game is not the same as reproducing the hardware behavior that all games expect. A title may depend on precise timing between the NES central processing unit and its graphics processor, or on circuitry specific to its cartridge. Small inaccuracies can cause glitches or prevent a game from running.

For readers interested in game preservation or programming, lucyNES offers a concrete case study in how those requirements affect a personal project. Its reported support for hundreds of games shows the reach a handful of mapper implementations can provide, while the stated gaps make clear that the count does not mean every game or feature works correctly. The project also gives Odin users an example of the language applied to a low-level system with explicit memory management and bitwise operations.

Products Worth Considering

Apple MacBook Air 15-inch Laptop with M5 Chip, 16GB Memory, 512GB SSD, Liquid Retina Display, and Touch ID (Midnight)

Apple MacBook Air 15-inch Laptop with M5 Chip, 16GB Memory, 512GB SSD, Liquid Retina Display, and Touch ID (Midnight)

As an affiliate, we earn on qualifying purchases.

A Seven-Month Development Effort

Pero writes that making a NES emulator is sometimes described as a quick project, but that getting a basic game to run is different from achieving broad compatibility. In the report, the developer says the difficult work came later: accounting for hardware-specific behavior, accurately coordinating the CPU and graphics processor, and implementing cartridge mappers. Some games rely on details that less accurate emulators can omit.

The report credits online technical documentation, the Nesdev wiki and its Discord community, a NES programming series by Javidx, and test ROMs that check particular parts of an emulator. Pero says guidance from the community was important while working through hardware behavior and mapper documentation. The report does not claim the project has been independently reviewed or certified against a full compatibility suite.

On the language side, Pero describes Odin as a simple, strongly typed language with a C-like style and direct control over memory. The project uses separate allocation strategies for temporary work, persistent data and a NES session. Pero also describes using a CBOR library to serialize data for save states, with custom handling needed for some Odin types, including raw unions and bit fields.

Compatibility And Sound Gaps

The report does not provide an independently verified list of compatible games, a test methodology or a current build number. Its claims that lucyNES runs Battletoads and hundreds of other games should be understood as the developer’s reported results, not as a guarantee that those games work without issues across versions or hardware.

It is also unclear whether development resumed after the January 2025 pause. The report identifies sound and some mapper implementations as incomplete, but does not give a schedule for addressing them or a detailed account of which games are affected. The emulator’s platform requirements and distribution or usage terms are not specified in the supplied material.

No Restart Date Reported

Pero says the project was paused in January 2025 to focus on other work and does not announce a restart date or a planned release milestone. The project page links to the code and its README for further technical information. Any updates to sound, mapper support or compatibility would depend on development resuming; the report does not say whether that is planned.

For readers evaluating the emulator, the next useful signals would be a dated release, documented test results and specific updates to the unfinished features. Until then, lucyNES is best understood as a publicly described personal project with a broad reported game range and acknowledged technical gaps.

Key Questions

What is lucyNES?

lucyNES is a NES emulator written in Odin, developed by Lucy Pero. The project includes a debugger, save states, controller support and several cartridge mapper implementations, according to the developer.

Which games does it run?

Pero reports that it runs Battletoads and hundreds of other games. The report does not provide an independently tested compatibility list, and it says some games may fail because of mapper and accuracy issues.

Is the emulator finished?

No. Pero says development was paused in January 2025 and identifies sound and some mapper implementations as areas that need more work.

Why are NES emulators difficult to make?

Games can depend on precise timing between the NES CPU and graphics processor, as well as behavior specific to cartridge circuitry. Reproducing those details can take much longer than getting a basic game to start.

What happens to the project next?

The report gives no restart date or future development plan. The project page links to the code and README, where readers can check for later updates.

Source: lucypero.com

You May Also Like

An Update On Orion For Linux And Windows

Kagi says it will stop developing Orion for Linux and Windows and release both projects’ source code for community stewardship.

Patero And Horizen Labs Collaborate To Help Organizations Prepare For Post-Quantum Security

The companies will pair migration advice with cryptographic inventories and scoped pilots to help organizations plan post-quantum security upgrades.

Inside Google’s Disruption Of A 1.3-Million-Device TV Box Botnet

Google says it helped disrupt XCPE, a botnet of more than 1.3 million TV boxes allegedly compromised through manufacturer-installed firmware.

2004 RuneScape Fit A Multiplayer RPG Into 56K Dial-up

RuneScape in 2004 managed to deliver a multiplayer RPG experience optimized for 56k dial-up connections, a feat confirmed by sources familiar with the game’s development.