/ Games

A multiplatform NES emulator written in Kotlin

A multiplatform NES emulator written in Kotlin


A NES emulator implemented in Kotlin using multiplatform support and Kotlin/Native.

Ported from the awesome Golang implementation nes by @fogleman.




You'll need https://github.com/google/oboe to run ktnes.
Please clone Oboe and put it in the same directory as ktnes, eg.:
~/code/ktnes and ~/code/oboe.

Kotlin/Native implementation

The emulator implementation using Kotlin/Native is not functional yet.
To build the Android native library implementation:

  • Set ANDROID_HOME to your Android SDK path (e.g. /Users/jenny/Library/Android/sdk).
  • Run ./gradlew android:native-lib:copyLibs

If you did that correctly, you should be able to build and run directly from Android Studio.


Still under active development.

Sound works but is still a bit garbled/distorted.

Implemented mappers:

  • Mapper 1
  • Mapper 4 (MMC3)