emulator: QUASI88 type: libretro core_classification: community_fork source: "https://github.com/libretro/quasi88-libretro" upstream: "https://www.retropc.net/showzoh/quasi88/" profiled_date: "2026-03-29" core_version: "0.6.4" display_name: "NEC - PC-8000 / PC-8800 series (QUASI88)" cores: - quasi88 systems: - nec-pc-88 - nec-pc-80 # QUASI88 by Showzoh Fukunaga, libretro port by Celerizer. # Includes pseudo-BIOS (pbios_n88, pbios_disk) by cisc compiled into the core. # With pseudo-BIOS, some disk-based games boot but compatibility is limited. # # ROM search order (libretro.c:444-491): # 1. / # 2. /quasi88/ # 3. / # Each ROM entry has up to 4 alternate filenames tried in order. # # ROM loading (libretro.c:550-594): # N88.ROM and DISK.ROM have pseudo-BIOS fallback if missing. # All other ROMs are loaded silently if present, ignored if absent. # # The original QUASI88 (memory.c:80-95) uses uppercase-first filenames # (N88.ROM, N88EXT0.ROM, etc.) while the libretro .info file uses # lowercase with underscore variants (n88.rom, n88_0.rom, etc.). # The core tries both naming conventions. # # FONT.ROM/FONT2.ROM/FONT3.ROM are not in the .info file. # When missing, the core uses built-in fonts (font.h) or kanji ROM glyphs. # # Upstream supports 2HD disk ROM (8 KB) via memory.c:356-368. # The libretro port reads only 2 KB (2D type) at libretro.c:552. # # font.rom divergence: libretro.c:566-571 loads 0x1000 bytes then # overwrites the buffer with kanji ROM + built-in graph. The font.rom # data is not actually used (bug). Upstream memory.c:427 loads FONT_SZ # (2048) and keeps the font data in the first half. # # OPNA rhythm samples (2608_BD.WAV etc.): loaded by upstream via # fmgen/opna.cpp:1271 LoadRhythmSample(), but osd_dir_rom() returns # NULL in the libretro port (dir_rom never initialized), so the samples # cannot be loaded. OPNA rhythm playback is silent in the libretro core. notes: | Files go in /quasi88/ or directly in /. The pseudo-BIOS covers N88-BASIC V2 and the disk subsystem at a basic level. For full compatibility (N-BASIC, V1H/V1S modes, dictionary lookup, kanji display), real ROM files are needed. Core option "quasi88_basic_mode" selects N88 V2, N88 V1H, N88 V1S, or N mode. Each mode requires its corresponding ROM. N mode emulates PC-8001 series (N-BASIC) and requires n88n.rom. files: - name: n88.rom path: "quasi88/n88.rom" size: 32768 required: true hle_fallback: true note: "N88-BASIC main ROM (32 KB). Falls back to pseudo-BIOS if missing." source_ref: "src/LIBRETRO/libretro.c:550-551" aliases: ["N88.ROM"] - name: n88_0.rom path: "quasi88/n88_0.rom" size: 8192 required: true note: "N88-BASIC V2 extension ROM 0 (8 KB). Needed by most software." source_ref: "src/LIBRETRO/libretro.c:555" aliases: ["N88_0.ROM", "N88EXT0.ROM", "n88ext0.rom"] - name: n88_1.rom path: "quasi88/n88_1.rom" size: 8192 required: false note: "N88-BASIC V1H extension ROM 1 (8 KB). For V1 High-speed mode." source_ref: "src/LIBRETRO/libretro.c:556" aliases: ["N88_1.ROM", "N88EXT1.ROM", "n88ext1.rom"] - name: n88_2.rom path: "quasi88/n88_2.rom" size: 8192 required: false note: "N88-BASIC V1S extension ROM 2 (8 KB). For V1 Standard mode." source_ref: "src/LIBRETRO/libretro.c:557" aliases: ["N88_2.ROM", "N88EXT2.ROM", "n88ext2.rom"] - name: n88_3.rom path: "quasi88/n88_3.rom" size: 8192 required: false note: "N88-BASIC extension ROM 3 (8 KB). Older V2 extension." source_ref: "src/LIBRETRO/libretro.c:558" aliases: ["N88_3.ROM", "N88EXT3.ROM", "n88ext3.rom"] - name: n88n.rom path: "quasi88/n88n.rom" size: 32768 required: false note: "N-BASIC ROM (32 KB). For PC-8001 compatible N-BASIC mode." source_ref: "src/LIBRETRO/libretro.c:559" aliases: ["N88N.ROM", "N80.ROM", "n80.rom"] - name: disk.rom path: "quasi88/disk.rom" size: 2048 required: false hle_fallback: true note: "Disk subsystem ROM (2 KB, 2D type). Falls back to pseudo-BIOS if missing." source_ref: "src/LIBRETRO/libretro.c:552-553" aliases: ["DISK.ROM", "N88SUB.ROM", "n88sub.rom"] - name: n88knj1.rom path: "quasi88/n88knj1.rom" size: 131072 required: false note: "Kanji ROM level 1 (128 KB). Required for Japanese text display." source_ref: "src/LIBRETRO/libretro.c:560" aliases: ["N88KNJ1.ROM", "KANJI1.ROM", "kanji1.rom"] - name: n88knj2.rom path: "quasi88/n88knj2.rom" size: 131072 required: false note: "Kanji ROM level 2 (128 KB). Extended kanji character set." source_ref: "src/LIBRETRO/libretro.c:561" aliases: ["N88KNJ2.ROM", "KANJI2.ROM", "kanji2.rom"] - name: n88jisho.rom path: "quasi88/n88jisho.rom" size: 524288 required: false note: "Dictionary ROM (512 KB). Japanese dictionary lookup." source_ref: "src/LIBRETRO/libretro.c:562" aliases: ["N88JISHO.ROM", "JISYO.ROM", "jisyo.rom"] # Font ROMs (not in .info, core has built-in fallback via font.h) - name: font.rom path: "quasi88/font.rom" size: 2048 required: false hle_fallback: true note: "ANK font ROM (2 KB). Falls back to built-in font or kanji ROM glyphs." source_ref: "src/LIBRETRO/libretro.c:566" aliases: ["FONT.ROM"] - name: font2.rom path: "quasi88/font2.rom" size: 4096 required: false hle_fallback: true note: "Second font ROM (up to 4 KB). Falls back to built-in ANH font." source_ref: "src/LIBRETRO/libretro.c:576" aliases: ["FONT2.ROM"] - name: font3.rom path: "quasi88/font3.rom" size: 4096 required: false hle_fallback: true note: "Third font ROM (up to 4 KB). Zeroed out if missing." source_ref: "src/LIBRETRO/libretro.c:588" aliases: ["FONT3.ROM"]