KairoDos DOS |
Kairo88 PC-88 |
Kairo68 X68000 |
KairoTowns FM Towns |
KairoMSX MSX |
KairoST Atari ST |
Kairo64 C64 |
Every Kairo app is built on Kairo, the shared frontend for the game library, controls, and settings.
Play your own PC-98 games on Android phones and handhelds. Kairo98 gives you a game library with artwork, controller and touch controls, an on-screen PC-98 keyboard, save states, and per-game settings. It runs a pinned Neko Project 21/W core with ymfm sound emulation. It is an independent project, not an official release of either core.
- Download
- Screenshots
- Quick start
- Supported disk formats
- Managing your library
- Controls
- Firmware and fonts
- Launching from other frontends
- Documentation
- Help and community
- Building from source
- License
- Google Play (paid): updates automatically. Buying it supports development.
- GitHub Releases (free): install the APK yourself. The larger
-with-imagesAPK also bundles catalog artwork.
Both editions are built from the same source and have the same features. Requires an ARM64 device running Android 8.0 or newer.
| Game library | Game details |
|---|---|
![]() |
![]() |
| Playing a game | On-screen keyboard |
![]() |
![]() |
Games shown in screenshots are user-provided and are not bundled with the app.
- Install Kairo98 from Google Play or GitHub Releases.
- Open Kairo98 and select a folder containing your PC-98 disks. You can change it later in Menu › Manage library.
- Select a game, review its details, and tap Play.
Games, operating systems, and firmware are not supplied. Some games need a separate boot disk, a manual disk swap, or imported firmware.
| Type | Formats |
|---|---|
| Hard disks | HDI |
| Floppies | FDI, D88/88D, D98/98D, NFD, FDD, DCP/DCU, HDM, XDF |
| CDs | CloneCD (CCD with its IMG), CHD |
| Archives | Any of the above inside ZIP files |
Games are recognized by their disk contents, so recompressing a ZIP does not change how it matches. A game's disks show as one library entry, and its other releases in the folder (demos, music disks, other versions) sit behind its main one. Details: game catalog.
- Artwork. Menu › Manage library can download missing artwork for games Kairo98 recognizes.
- Catalog updates. Update catalogs on the same page fetches the latest titles, descriptions, and launch settings without an app update.
- Disk saves. A game plays from its own working copy of each disk, which keeps what the game writes to it. Editing the disk image in your games folder does not replace that copy; Game settings › Reset disk does. Saves, save states and settings belong to the game's place in your games folder, so renaming or moving a game makes it a new game.
- Save states. Saved in private app storage by default. To use a folder of your choice, choose Menu › Configurations › Save folder › Custom folder. Changing the folder moves your save states; if a slot exists in both places, you choose which copy to keep.
- Deleting a game file. Open the game's Game settings and choose Delete game file. Kairo98 names the file before deleting it; deleting a ZIP removes every game inside it. Saves and settings are kept. If the folder grant is read-only, select the folder again to grant write access.
- Startup choices. Some cataloged games ask a menu question before play; Kairo98 can answer it for you or let you Play manually. See startup choices.
| Action | How |
|---|---|
| Open the game menu | Android Back, a left-edge swipe, or the controller Menu/Mode button |
| Show the PC-98 keyboard | Swipe from the right edge |
| Remap a controller | Map buttons and sticks to PC-98 keys, joystick, mouse, or app actions; layouts are saved per game |
| Use touch controls | The same per-game layout works with on-screen controls |
| Use a second screen | A second Android display can show the keyboard or touchpad during play |
The game menu offers save states, disk changes, game and app settings, restart, and return to the library.
Kairo98 has a built-in BIOS and font, so every file is optional. Menu › Machine lists every BIOS file, each marked Required or Optional. Pick each file, or use Import all from a folder… to import every file the app recognizes in a folder you choose. A game that needs the PC-98's own BIOS, font, or the YM2608 rhythm samples uses the ones you import.
A FONT.BMP placed in a game's ZIP or library folder overrides the imported font for that game; the one nearest the disk image wins.
Menu › Machine also sets the CPU's base clock, and Skip memory check (on by default), which starts games without the PC-98's memory count.
Kairo98 can open a game sent from another Android frontend; no library folder is needed. Step-by-step setup:
- Add a game: set up a game the catalog doesn't know: group its disks, name it, choose its drives
- Create a game: make a new game on a blank hard disk, format it in MS-DOS and install to it
- External frontend setup: LaunchBox, ES-DE, iiSU, and Beacon configuration
- Game catalog: how games are matched, catalog updates, metadata overrides
- Startup choices: automatic menu answers and disk swaps before play
- Release notes: changes in every version
- Licensing and credits: code license and third-party components
- Source provenance: imported emulator, sound, and font sources and local changes
- Catalog source data: research records behind the catalog
- Report a game problem in Issues. Include the title, disk format, and what happened.
- Chat with other players on Discord.
- English patches for PC-98 games live in the separate Kairo98 translation project.
Clone with submodules to get the pinned shared frontend:
git clone --recurse-submodules https://github.com/MrJackSpade/Kairo98.gitBuild the app, and optionally install it, with the shared build script:
shared\tools\build.ps1 -Install <adb serial>UI tests: see UI tests; run them with shared/tools/uitest.ps1 -Device <serial>.
First-party code is GPL-2.0-or-later. The app as distributed is GPLv3 because it bundles GPLv3 components. Third-party components keep their own licenses; see licensing and credits and source provenance.




