Skip to content

luckasRanarison/mes

Repository files navigation

logo

Mes

A decent multiplatform NES emulator built using Rust. Try it now in your browser.

Contents

Supported platforms

  • Web
  • Android
  • Desktop
  • Embedded (ESP32)

Features

  • Supports iNES 1.0 file format
  • Supports basic mappers
  • Fairly decent audio quality
  • Implements some of the original hardware quirks

Mappers

Build

Important

The Rust toolchain is required to build the main library.

Web

TypeScript Vite WebAssembly

Requirements:

Scripts:

npm run wasm # build the WASM artifacts using wasmpack
npm run dev # run the dev server
npm run build # build the website

Android

Kotlin

Requirements:

Setup:

Edit your global cargo config in ~/.cargo/cargo.toml and use linkers from NDK:

[target.aarch64-linux-android]
linker = "your-ndk-pah/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android34-clang"

[target.x86_64-linux-android]
linker = "your-ndk-pah/toolchains/llvm/prebuilt/linux-x86_64/bin/x86_64-linux-android34-clang"

Gradle scripts:

  • buildRustArm64: Build the shared library for arm64
  • buildRustx86_64: Build the shared library for x86_64
  • buildRs: Runs both

Resources

This project wouldn't have been possible without the help of the following ressources: