├── android ├── .idea │ ├── .name │ ├── .gitignore │ ├── codeStyles │ │ ├── codeStyleConfig.xml │ │ └── Project.xml │ ├── compiler.xml │ ├── kotlinc.xml │ ├── vcs.xml │ ├── migrations.xml │ ├── misc.xml │ ├── deploymentTargetSelector.xml │ ├── gradle.xml │ ├── runConfigurations.xml │ ├── appInsightsSettings.xml │ └── inspectionProfiles │ │ └── Project_Default.xml ├── app │ ├── .gitignore │ ├── src │ │ ├── main │ │ │ ├── jniLibs │ │ │ │ ├── x86_64 │ │ │ │ │ └── .keep │ │ │ │ └── arm64-v8a │ │ │ │ │ └── .keep │ │ │ ├── res │ │ │ │ ├── values │ │ │ │ │ ├── strings.xml │ │ │ │ │ ├── ic_launcher_background.xml │ │ │ │ │ ├── themes.xml │ │ │ │ │ └── colors.xml │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ ├── ic_launcher.webp │ │ │ │ │ └── ic_launcher_round.webp │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ ├── ic_launcher.webp │ │ │ │ │ └── ic_launcher_round.webp │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ ├── ic_launcher.webp │ │ │ │ │ └── ic_launcher_round.webp │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ ├── ic_launcher.webp │ │ │ │ │ └── ic_launcher_round.webp │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ │ ├── ic_launcher.webp │ │ │ │ │ └── ic_launcher_round.webp │ │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ │ ├── ic_launcher.xml │ │ │ │ │ └── ic_launcher_round.xml │ │ │ │ ├── drawable │ │ │ │ │ ├── app_shortcut.xml │ │ │ │ │ ├── nes_icon.xml │ │ │ │ │ ├── ic_launcher_foreground.xml │ │ │ │ │ └── web_search.xml │ │ │ │ └── xml │ │ │ │ │ ├── backup_rules.xml │ │ │ │ │ └── data_extraction_rules.xml │ │ │ ├── ic_launcher-playstore.png │ │ │ ├── java │ │ │ │ └── dev │ │ │ │ │ └── luckasranarison │ │ │ │ │ └── mes │ │ │ │ │ ├── lib │ │ │ │ │ ├── Rust.kt │ │ │ │ │ ├── Controller.kt │ │ │ │ │ ├── Audio.kt │ │ │ │ │ └── Nes.kt │ │ │ │ │ ├── data │ │ │ │ │ ├── Store.kt │ │ │ │ │ ├── Types.kt │ │ │ │ │ └── SettingsRepository.kt │ │ │ │ │ ├── ui │ │ │ │ │ ├── theme │ │ │ │ │ │ ├── Color.kt │ │ │ │ │ │ ├── Type.kt │ │ │ │ │ │ └── Theme.kt │ │ │ │ │ ├── info │ │ │ │ │ │ ├── Utils.kt │ │ │ │ │ │ ├── AppIcon.kt │ │ │ │ │ │ ├── InfoSection.kt │ │ │ │ │ │ └── InfoScreen.kt │ │ │ │ │ ├── settings │ │ │ │ │ │ ├── Utils.kt │ │ │ │ │ │ ├── FloatingSettings.kt │ │ │ │ │ │ ├── SettingsSection.kt │ │ │ │ │ │ └── SettingsScreen.kt │ │ │ │ │ ├── shared │ │ │ │ │ │ └── TopAppBar.kt │ │ │ │ │ ├── home │ │ │ │ │ │ ├── DirectoryChooser.kt │ │ │ │ │ │ ├── FloatingButton.kt │ │ │ │ │ │ ├── TopAppBar.kt │ │ │ │ │ │ └── HomeScreen.kt │ │ │ │ │ ├── rom │ │ │ │ │ │ ├── InitialBox.kt │ │ │ │ │ │ ├── sheet │ │ │ │ │ │ │ ├── BottomSheet.kt │ │ │ │ │ │ │ ├── TopRow.kt │ │ │ │ │ │ │ └── Metadata.kt │ │ │ │ │ │ ├── RomList.kt │ │ │ │ │ │ └── RomContainer.kt │ │ │ │ │ ├── license │ │ │ │ │ │ ├── License.kt │ │ │ │ │ │ ├── LibraryContainer.kt │ │ │ │ │ │ └── BottomSheet.kt │ │ │ │ │ ├── gamepad │ │ │ │ │ │ ├── MenuButton.kt │ │ │ │ │ │ ├── ActionButton.kt │ │ │ │ │ │ ├── BaseButton.kt │ │ │ │ │ │ ├── GamePadLayout.kt │ │ │ │ │ │ └── DirectionButton.kt │ │ │ │ │ └── emulator │ │ │ │ │ │ ├── EmulatorView.kt │ │ │ │ │ │ ├── EmulatorScreen.kt │ │ │ │ │ │ ├── EmulatorBackHandler.kt │ │ │ │ │ │ └── FullScreenContainer.kt │ │ │ │ │ ├── extra │ │ │ │ │ └── Shortcut.kt │ │ │ │ │ ├── anim │ │ │ │ │ └── Animation.kt │ │ │ │ │ ├── MainActivity.kt │ │ │ │ │ └── Application.kt │ │ │ └── AndroidManifest.xml │ │ ├── test │ │ │ └── java │ │ │ │ └── dev │ │ │ │ └── luckasranarison │ │ │ │ └── mes │ │ │ │ └── ExampleUnitTest.kt │ │ └── androidTest │ │ │ └── java │ │ │ └── dev │ │ │ └── luckasranarison │ │ │ └── mes │ │ │ └── ExampleInstrumentedTest.kt │ ├── proguard-rules.pro │ └── build.gradle.kts ├── gradle │ ├── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ └── libs.versions.toml ├── .gitignore ├── build.gradle.kts ├── settings.gradle.kts ├── gradle.properties └── gradlew.bat ├── .gitignore ├── web ├── src │ ├── vite-env.d.ts │ ├── assets │ │ ├── fullscreen.svg │ │ ├── upload.svg │ │ ├── arrow-down.svg │ │ ├── arrow-left.svg │ │ ├── arrow-right.svg │ │ ├── arrow-up.svg │ │ ├── stop.svg │ │ ├── error.svg │ │ ├── keyboard.svg │ │ ├── drag-drop.svg │ │ ├── gamepad.svg │ │ ├── sparkle.svg │ │ └── github.svg │ ├── index.css │ ├── workers │ │ └── audio.ts │ ├── ringbuffer.ts │ ├── controller.ts │ ├── emulator.ts │ └── main.ts ├── public │ └── favicon.ico ├── postcss.config.js ├── vite.config.ts ├── tailwind.config.js ├── tsconfig.json └── package.json ├── crates ├── mes-core │ ├── src │ │ ├── features │ │ │ ├── mod.rs │ │ │ └── json.rs │ │ ├── ppu │ │ │ ├── internals │ │ │ │ ├── mod.rs │ │ │ │ ├── oam.rs │ │ │ │ ├── background.rs │ │ │ │ └── sprite.rs │ │ │ └── registers │ │ │ │ ├── mod.rs │ │ │ │ ├── mask.rs │ │ │ │ ├── status.rs │ │ │ │ ├── control.rs │ │ │ │ └── address.rs │ │ ├── apu │ │ │ ├── channels │ │ │ │ ├── mod.rs │ │ │ │ ├── common │ │ │ │ │ ├── sequencer.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── timer.rs │ │ │ │ │ ├── envelope.rs │ │ │ │ │ ├── length_counter.rs │ │ │ │ │ └── sweep.rs │ │ │ │ ├── noise.rs │ │ │ │ ├── triangle.rs │ │ │ │ └── pulse.rs │ │ │ ├── filters.rs │ │ │ └── frame_counter.rs │ │ ├── cpu │ │ │ ├── interrupt.rs │ │ │ ├── address.rs │ │ │ └── register.rs │ │ ├── bus │ │ │ ├── dma.rs │ │ │ └── ppu.rs │ │ ├── controller │ │ │ └── mod.rs │ │ ├── error │ │ │ └── mod.rs │ │ ├── mappers │ │ │ ├── mapper_000.rs │ │ │ ├── mapper_002.rs │ │ │ ├── mapper_003.rs │ │ │ ├── mod.rs │ │ │ └── mapper_001.rs │ │ ├── utils │ │ │ ├── test.rs │ │ │ └── mod.rs │ │ └── lib.rs │ └── Cargo.toml ├── mes-jni │ ├── Cargo.toml │ └── src │ │ └── utils.rs └── mes-wasm │ ├── Cargo.toml │ └── src │ └── lib.rs ├── rust-toolchain.toml ├── palette └── nespalette.pal ├── Cargo.toml ├── .gitmodules ├── .github ├── dependabot.yml └── workflows │ ├── ci.yml │ └── deploy.yml ├── LICENSE └── README.md /android/.idea/.name: -------------------------------------------------------------------------------- 1 | Mes -------------------------------------------------------------------------------- /android/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /android/app/src/main/jniLibs/x86_64/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /android/app/src/main/jniLibs/arm64-v8a/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | node_modules 3 | dist 4 | pkg 5 | -------------------------------------------------------------------------------- /web/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /android/.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | -------------------------------------------------------------------------------- /crates/mes-core/src/features/mod.rs: -------------------------------------------------------------------------------- 1 | #[cfg(feature = "json")] 2 | pub mod json; 3 | -------------------------------------------------------------------------------- /rust-toolchain.toml: -------------------------------------------------------------------------------- 1 | [toolchain] 2 | channel = "1.88.0" 3 | components = ["clippy"] 4 | -------------------------------------------------------------------------------- /palette/nespalette.pal: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luckasRanarison/mes/HEAD/palette/nespalette.pal -------------------------------------------------------------------------------- /web/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luckasRanarison/mes/HEAD/web/public/favicon.ico -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [workspace] 2 | members = ["crates/mes-core", "crates/mes-jni", "crates/mes-wasm"] 3 | resolver = "2" 4 | -------------------------------------------------------------------------------- /android/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Mes 3 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "nes-test-roms"] 2 | path = nes-test-roms 3 | url = https://github.com/christopherpow/nes-test-roms 4 | -------------------------------------------------------------------------------- /web/postcss.config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | }; 7 | -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luckasRanarison/mes/HEAD/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /android/app/src/main/ic_launcher-playstore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luckasRanarison/mes/HEAD/android/app/src/main/ic_launcher-playstore.png -------------------------------------------------------------------------------- /android/app/src/main/java/dev/luckasranarison/mes/lib/Rust.kt: -------------------------------------------------------------------------------- 1 | package dev.luckasranarison.mes.lib 2 | 3 | object Rust { 4 | external fun setPanicHook() 5 | } -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luckasRanarison/mes/HEAD/android/app/src/main/res/mipmap-hdpi/ic_launcher.webp -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luckasRanarison/mes/HEAD/android/app/src/main/res/mipmap-mdpi/ic_launcher.webp -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luckasRanarison/mes/HEAD/android/app/src/main/res/mipmap-xhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luckasRanarison/mes/HEAD/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luckasRanarison/mes/HEAD/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luckasRanarison/mes/HEAD/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luckasRanarison/mes/HEAD/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luckasRanarison/mes/HEAD/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luckasRanarison/mes/HEAD/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luckasRanarison/mes/HEAD/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /android/app/src/main/res/values/ic_launcher_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #E60012 4 | -------------------------------------------------------------------------------- /crates/mes-core/src/ppu/internals/mod.rs: -------------------------------------------------------------------------------- 1 | mod background; 2 | mod oam; 3 | mod sprite; 4 | 5 | pub use background::BackgroundData; 6 | pub use oam::OamData; 7 | pub use sprite::SpriteData; 8 | -------------------------------------------------------------------------------- /android/.idea/codeStyles/codeStyleConfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | -------------------------------------------------------------------------------- /android/app/src/main/res/values/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |