M88M is a modern, cross-platform port of the classic PC-8801 emulator M88, originally developed by cisc.
While the original M88 was tightly coupled with the Win32 API and DirectX, M88M leverages raylib and raygui for its frontend, making it natively compatible with macOS (Intel/Apple Silicon), Linux, and Windows via a single CMake-based build system.
- Cross-Platform: Native support for macOS, Linux, and Windows.
- Raylib Frontend: Modern, lightweight hardware-accelerated rendering and audio.
- Core Integrity: Retains the highly accurate emulation core of the original M88 while replacing the platform-dependent layers.
- Modern Build System: Uses CMake for easy compilation with modern compilers (Clang, GCC, MSVC).
- Dual-Threaded Architecture: Separate threads for emulation and UI/rendering ensure smooth performance.
- Enhanced UI: Includes a built-in overlay for disk management, state management, and system configuration.
M88M is fully functional and supports a wide range of PC-8801 software.
Working Features:
- N88-BASIC (V1/V2) and compatible modes.
- Soundboard II (OPNA) emulation (FM, PSG, Rhythm, ADPCM) with a built-in volume mixer.
- D88 Disk Support: Mount/Unmount disks, disk image management, and "Recent Disks" history.
- State Management: 10 save state slots with visual previews.
- High-DPI Scaling: Adjustable window scaling (1x, 2x, 3x) and fullscreen support.
- Input: Keyboard matrix emulation, Mouse, and Gamepad support.
To run the emulator, you must provide the necessary PC-8801 ROM files. Place the following files in the roms directory:
N88.ROM(orN88.ROM+N88_0.ROM, etc.)DISK.ROMFONT.ROM- (Optional)
KANJI1.ROM,KANJI2.ROM
The emulator looks for ROMs in the following locations (in order):
- Environment variable
M88M_ROM_DIR roms/subfolder in the same directory as the executable.- Linux:
~/.local/share/M88M/roms - macOS:
~/Library/Application Support/M88M/roms - Windows:
%APPDATA%\M88M\roms
Note: You must own the original hardware to legally use these ROM files.
Homebrew and Xcode Command Line Tools are required.
xcode-select --installInstall cmake via Homebrew:
brew install cmakegit clone https://github.com/bubio/M88M.git
cd M88M
bash scripts/build_macos.shTo build a Universal Binary (Intel + Apple Silicon):
MACOS_UNIVERSAL=1 bash scripts/build_macos.shThe app bundle will be generated at ./build/M88M.app.
Arch-based (CachyOS, Manjaro, etc. / pacman):
sudo pacman -S --needed base-devel cmake git libx11 libxcursor libxinerama libxrandr libxi mesa alsa-lib gtk3Fedora / RHEL-based (dnf):
sudo dnf install -y gcc-c++ make cmake git libX11-devel libXcursor-devel libXinerama-devel libXrandr-devel libXi-devel mesa-libGL-devel alsa-lib-devel gtk3-develDebian-based (Ubuntu, etc. / apt):
sudo apt-get install build-essential cmake git libasound2-dev libx11-dev libxcursor-dev libxinerama-dev libxrandr-dev libxi-dev libgl1-mesa-dev libgtk-3-devgit clone https://github.com/bubio/M88M.git
cd M88M
bash scripts/build_linux.shThe executable will be generated at ./build/m88m.
cmake -S . -B build
cmake --build build --config ReleaseThe executable will be generated at .\build\Release\m88m.exe.
- F11 / Right Click: Toggle the Main Menu / Settings overlay.
- ESC: Close sub-menus or the main overlay.
- Drag & Drop: Drop a
.d88file onto the window to mount it to Drive 1&2.
- The original M88 core is copyright (C) cisc. Please refer to
docs/README.mdfor the original license terms. - New code, porting layers, and Raylib integration are provided under the 2-Clause BSD License.
c86ctl.his provided under the 2-Clause BSD License.- The bundled fonts (
assets/NotoSansJP-Regular.ttf,assets/ChicagoKare-Regular.ttf) are licensed under the SIL Open Font License 1.1. Seeassets/NOTICE.mdandassets/OFL.txtfor details.
This project is a fan-made port and is not affiliated with the original author cisc.


