A modern revival of the classic M1 Arcade Music Player for Android.
This project is a fork of the original M1-Android by Neko68k. It has been updated to compile with modern Android Studio, newer Gradle versions, and run on current Android devices (Android 11+).
- ๐ Origin Story
- ๐ง Project Status
- ๐ Roadmap
- ๐ ๏ธ How to Build
- ๐ Setup & File Structure
โ ๏ธ Disclaimer
This project started after my father asked my if i could build the original M1-Android for him, since the original got deleted from the playstore, so i tried to do that
I accepted the challenge, fixed the build errors, resolved dependency mismatches, and patched the native C++ code to bypass modern Android security crashes (FORTIFY). Now that the "engine" is running, the goal is to completely overhaul the "body" of the application. After the visual overhaul, i maybe try to improve the C/C++ code for better security.
- Core Engine (Native C/C++): Functional. The original 2008 audio engine has been preserved but patched to prevent buffer overflows (
strcpycrashes) on modern CPUs. - Android Layer (Java): Currently legacy code (Activities/AsyncTasks). It builds and runs, but is due for a total rewrite.
- Support: Runs on Android Emulators and Physical Devices (API 34+).
The immediate plan is to move away from the legacy 2010-era Java code and rebuild the frontend using modern Android standards:
- Phase 1: Resurrection - Fix build scripts, NDK compilation, and crash loops (Completed).
- Phase 2: Java -> Kotlin Rewrite - Convert
AsyncTasksto Coroutines and replace Java with Kotlin for null-safety. - Phase 3: UI Overhaul - Replace XML layouts with Jetpack Compose for a modern, responsive UI.
Because this project relies on a legacy C++ engine, it requires a specific build process:
- Clone the repo:
git clone https://github.com/empyzz/M1-Android
- Compile the Native Core:
You must compile the C++ library manually before running the app.
- Navigate to:
app/src/main/jni/ - Run:
ndk-build(Ensure you have the Android NDK installed).
- Navigate to:
- Build the APK: Open the project in Android Studio and click Run.
To use the app, you must manually set up the files on your device (due to scoped storage restrictions on modern Android):
- Create a folder:
/sdcard/m1/ - Place your
m1.xml(Game Database) in that folder. - Place your
m1.iniin that folder (Content:[ROMPATH] roms). - Create a subfolder
/sdcard/m1/roms/and place your.zipgame files there.
- Native Code: The C/C++ files are largely untouched from the original repository. They are complex legacy code; my focus is currently on the Android wrapper.
- ROMs: No ROM files are included in this repository. You must provide your own legally owned game files.
Original M1 emulator by R. Belmont. Android port originally by Neko68k.