Skip to content

Repository files navigation

Kassette NES icon

Kassette

Substack blog Kotlin Kotlin Multiplatform Web Kotlin Multiplatform JVM

Kassette is a small, focused NES emulator for desktop and the browser. It is built for people who want to load their own legally obtained .nes files and play them with a simple menu-driven interface.

No ROMs, BIOS files, Nintendo assets, screenshots, extracted game data, disassemblies, or ROM patches are included in this repository.

Features

  • Desktop and browser frontends.
  • Load local .nes ROM files from the app menu.
  • Keyboard and controller input.
  • Customisable input bindings from Input -> Bindings....
  • Pause, reset, CRT effect, and cast-shadow video filter toggles from the menu bar.
  • Region-aware frame pacing for NTSC, PAL, Dendy, multi-region, and Japan/Famicom-timed cartridges.
  • iNES 1.0 and NES 2.0 ROM header support for the mapper set listed in Technical Details.

Playing

Open Kassette, then choose File -> Open ROM... and select a legally obtained .nes file.

The desktop app can also be started with a ROM path by developers:

./gradlew run --args="/path/to/game.nes"

See Development for local run, build, test, and distribution commands.

Controls

Controls support both keyboard and controller input. Input customisation is available from the app menu, but this feature is still in development.

Compatibility

Kassette currently supports these mapper families: NROM, MMC1, UxROM, CNROM, MMC3, AxROM, Color Dreams, BNROM/NINA-001, GxROM, BF909x, NINA-03/06, Jaleco JF-xx, and NINA multicart software.

This is an emulator MVP, not a cycle-perfect emulator. For the full supported ROM matrix, current emulator scope, known limitations, and architecture notes, see Technical Details.

Legal Notice

Users must provide their own legally obtained ROM files. Do not commit ROMs or copyrighted game assets to this repository. .nes files are ignored by .gitignore to help prevent accidental commits.

About

A Kotlin Multiplatform NES emulator

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages