mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-21 03:09:08 -05:00
Profiles that read two repositories, a libretro port and its upstream, now prefix each citation with source or upstream, decided by which tree carries the cited value at its pin. The emulator pages use the word to tell libretro glue, emulator code as the port carries it, and the upstream emulator apart.
253 lines
9.9 KiB
YAML
253 lines
9.9 KiB
YAML
emulator: NP2kai
|
|
type: libretro
|
|
core_classification: enhanced_fork
|
|
source: "https://github.com/libretro/NP2kai"
|
|
upstream: "https://github.com/AZO234/NP2kai"
|
|
profiled_date: "2026-03-24"
|
|
source_commit: "1ea561cd7fd62b33f4e7b3f1c2e30fc3e6089f28"
|
|
core_version: "0.86"
|
|
display_name: "NEC - PC-98 (Neko Project II Kai)"
|
|
cores: [np2kai]
|
|
systems: [pc-98]
|
|
|
|
# NP2kai is a PC-9801/9821 emulator by AZO234, enhanced fork of Neko Project II
|
|
# by Yui (original upstream dead: np2.yui.ne.jp). All files load from
|
|
# <system>/np2kai/ subdirectory, set in retro_load_game()
|
|
# (sdl/libretro/libretro.c:1800-1815). All getbiospath() calls resolve
|
|
# relative to that directory.
|
|
#
|
|
# BIOS_SIMULATE is unconditionally #define'd (bios/bios.c:79), so the core
|
|
# always has a built-in BIOS simulator. itf.rom loading (bios.c:579) is dead
|
|
# code behind #else of this define and is never executed.
|
|
#
|
|
# .info declares firmware_count=11 but is incomplete: misses IDE, SCSI, SASI,
|
|
# PCI, GPIB ROMs and key.txt. Lists itf.rom which is dead code (phantom).
|
|
#
|
|
# The fmgen YM2608 rhythm engine (fmgen_opna.cpp:1415-1444) loads WAV files
|
|
# with uppercase names (2608_BD.WAV), the built-in rhythm engine (rhythmc.c)
|
|
# lowercase ones (2608_bd.wav), both from np2kai/. fmgen's 2608_RYM.WAV
|
|
# fallback for the rim sample is opened without the directory.
|
|
#
|
|
# Sound ROM has board-specific variants tried before the generic fallback:
|
|
# sound26.rom (26K), sound86.rom (86), sound118.rom (118), soundSPB.rom
|
|
# (Speak Board), soundMO.rom (MO), sound14.rom (14). Built as "sound" +
|
|
# board name + ".rom" in soundrom.c:21-33.
|
|
|
|
files:
|
|
# -- Main BIOS ROM --
|
|
# Loaded in bios/bios.c:440-447 via getbiospath(). 96 KB (0x18000) mapped
|
|
# at 0xe8000. Only loaded when np2cfg.usebios is set, which is the default
|
|
# (pccore.c:129) and has no core option. Without this, CopyMemory copies
|
|
# the nosyscode[] built-in simulator (bios/bios.c:463).
|
|
- name: "bios.rom"
|
|
path: "np2kai/bios.rom"
|
|
min_size: 98304
|
|
validation: [size]
|
|
required: false
|
|
hle_fallback: true
|
|
note: >
|
|
PC-9801 system BIOS ROM. The first 0x18000 bytes are read to 0xe8000.
|
|
A file shorter than that is ignored and the built-in BIOS simulator
|
|
is used, as when the file is absent.
|
|
source_ref: "source bios/bios.c:440-447, source pccore.c:129, upstream common/strres.c:67"
|
|
|
|
# -- Font file --
|
|
# Path set in libretro.c:1813 as "<system>/np2kai/font.bmp".
|
|
# font_load() in font/font.c:125 detects type by extension:
|
|
# .bmp/.BMP = PC98 format (fontpc98.c), FONT.ROM = V98 format (fontv98.c).
|
|
# Without any font file, fontdata_8 provides 8x8 ASCII only.
|
|
- name: "font.bmp"
|
|
path: "np2kai/font.bmp"
|
|
required: false
|
|
hle_fallback: true
|
|
aliases: ["FONT.ROM", "font.rom", "FONT.BMP"]
|
|
note: >
|
|
PC-98 font bitmap. Required for correct Japanese kanji display.
|
|
Without this, only basic ASCII renders using built-in 8x8 data.
|
|
FONT.ROM (V98 format) is also accepted.
|
|
source_ref: "source sdl/libretro/libretro.c:1830, source font/font.c:86-125, upstream font/fontdata.c:11"
|
|
|
|
# -- Sound BIOS ROM --
|
|
# Loaded by soundrom_load() in soundrom.c:93-106 via loadsoundrom().
|
|
# Filename composed as "sound" + optional board name + ".rom" (soundrom.c:27-32).
|
|
# Board-specific variants tried first, then sound.rom as fallback.
|
|
# 16 KB (0x4000). Falls back to 9-byte defsoundrom[] stub.
|
|
- name: "sound.rom"
|
|
path: "np2kai/sound.rom"
|
|
size: 16384
|
|
required: false
|
|
hle_fallback: true
|
|
note: >
|
|
FM sound board BIOS ROM (16 KB). Generic fallback for all sound boards.
|
|
Board-specific variants are tried first: sound26.rom (PC-9801-26K),
|
|
sound86.rom (86), sound118.rom (118), soundSPB.rom (Speak Board),
|
|
soundMO.rom (MO), sound14.rom (14).
|
|
source_ref: "source sound/soundrom.c:15-16, 21-55, 93-106"
|
|
|
|
# -- YM2608 OPNA rhythm samples --
|
|
# Two engines, two sets of names: the built-in rhythm engine (rhythmc.c:60-71)
|
|
# opens the lowercase files, fmgen (fmgen_opna.cpp:1415-1444, selected by the
|
|
# np2kai_usefmgen option) the uppercase ones. getbiospath() folds no case
|
|
# (pccore.c:262-275), so a case-sensitive filesystem needs both sets.
|
|
- name: "2608_bd.wav"
|
|
path: "np2kai/2608_bd.wav"
|
|
required: false
|
|
note: "YM2608 OPNA rhythm sample: bass drum"
|
|
source_ref: "upstream sound/rhythmc.c:11, 60-71"
|
|
|
|
- name: "2608_sd.wav"
|
|
path: "np2kai/2608_sd.wav"
|
|
required: false
|
|
note: "YM2608 OPNA rhythm sample: snare drum"
|
|
source_ref: "upstream sound/rhythmc.c:12, 60-71"
|
|
|
|
- name: "2608_top.wav"
|
|
path: "np2kai/2608_top.wav"
|
|
required: false
|
|
note: "YM2608 OPNA rhythm sample: top cymbal"
|
|
source_ref: "upstream sound/rhythmc.c:13, 60-71"
|
|
|
|
- name: "2608_hh.wav"
|
|
path: "np2kai/2608_hh.wav"
|
|
required: false
|
|
note: "YM2608 OPNA rhythm sample: hi-hat"
|
|
source_ref: "upstream sound/rhythmc.c:14, 60-71"
|
|
|
|
- name: "2608_tom.wav"
|
|
path: "np2kai/2608_tom.wav"
|
|
required: false
|
|
note: "YM2608 OPNA rhythm sample: tom"
|
|
source_ref: "upstream sound/rhythmc.c:15, 60-71"
|
|
|
|
- name: "2608_rim.wav"
|
|
path: "np2kai/2608_rim.wav"
|
|
required: false
|
|
note: "YM2608 OPNA rhythm sample: rim shot"
|
|
source_ref: "upstream sound/rhythmc.c:16, 60-71"
|
|
|
|
- name: "2608_BD.WAV"
|
|
path: "np2kai/2608_BD.WAV"
|
|
required: false
|
|
note: "YM2608 OPNA rhythm sample for the fmgen engine: bass drum"
|
|
source_ref: "source sound/fmgen/fmgen_opna.cpp:1417-1420, 1431-1444, source sound/opna.c:124-125"
|
|
|
|
- name: "2608_SD.WAV"
|
|
path: "np2kai/2608_SD.WAV"
|
|
required: false
|
|
note: "YM2608 OPNA rhythm sample for the fmgen engine: snare drum"
|
|
source_ref: "source sound/fmgen/fmgen_opna.cpp:1417-1420, 1431-1444, source sound/opna.c:124-125"
|
|
|
|
- name: "2608_TOP.WAV"
|
|
path: "np2kai/2608_TOP.WAV"
|
|
required: false
|
|
note: "YM2608 OPNA rhythm sample for the fmgen engine: top cymbal"
|
|
source_ref: "source sound/fmgen/fmgen_opna.cpp:1417-1420, 1431-1444, source sound/opna.c:124-125"
|
|
|
|
- name: "2608_HH.WAV"
|
|
path: "np2kai/2608_HH.WAV"
|
|
required: false
|
|
note: "YM2608 OPNA rhythm sample for the fmgen engine: hi-hat"
|
|
source_ref: "source sound/fmgen/fmgen_opna.cpp:1417-1420, 1431-1444, source sound/opna.c:124-125"
|
|
|
|
- name: "2608_TOM.WAV"
|
|
path: "np2kai/2608_TOM.WAV"
|
|
required: false
|
|
note: "YM2608 OPNA rhythm sample for the fmgen engine: tom"
|
|
source_ref: "source sound/fmgen/fmgen_opna.cpp:1417-1420, 1431-1444, source sound/opna.c:124-125"
|
|
|
|
- name: "2608_RIM.WAV"
|
|
path: "np2kai/2608_RIM.WAV"
|
|
required: false
|
|
note: >-
|
|
YM2608 OPNA rhythm sample for the fmgen engine: rim shot. When it is
|
|
missing fmgen tries 2608_RYM.WAV, but strncpy drops the directory, so
|
|
that name is opened from the working directory, not from np2kai/.
|
|
source_ref: "source sound/fmgen/fmgen_opna.cpp:1417-1420, 1431-1444, source sound/opna.c:124-125"
|
|
|
|
# -- IDE BIOS ROM --
|
|
# Loaded by ideio_reset (cbus/ideio.c:1944-1981). Tried in order:
|
|
# ide.rom, d8000.rom, bank3.bin, bios9821.rom. Only opened when
|
|
# np2cfg.idebios and np2cfg.usebios are both set and IDEBADDR is not
|
|
# zero (cbus/ideio.c:1928-1930). The bios9821.rom read in bios/bios.c is
|
|
# commented out (bios/bios.c:473-482).
|
|
- name: "ide.rom"
|
|
path: "np2kai/ide.rom"
|
|
min_size: 8192
|
|
validation: [size]
|
|
required: false
|
|
hle_fallback: true
|
|
aliases: ["d8000.rom", "bank3.bin", "bios9821.rom"]
|
|
note: >
|
|
IDE BIOS of a PC-9821, the ROM a real machine maps at D8000h. The
|
|
first 0x2000 bytes of the first name found are read to
|
|
idebaddr << 12 and nothing past them. A shorter file is dropped.
|
|
Without a loaded ROM the emulated IDE BIOS is used.
|
|
source_ref: "source cbus/ideio.c:1928-1930, source cbus/ideio.c:1944-1981"
|
|
|
|
# -- SCSI BIOS ROM --
|
|
# Read into a 0x4000 buffer, and any non-empty read is kept. Falls back to the
|
|
# scsibios[] stub.
|
|
- name: "scsi.rom"
|
|
path: "np2kai/scsi.rom"
|
|
max_size: 16384
|
|
required: false
|
|
hle_fallback: true
|
|
note: >
|
|
SCSI controller BIOS ROM, up to 16 KB: the full-size test is commented
|
|
out and a shorter file is used as read. The core includes a built-in
|
|
SCSI BIOS stub as fallback.
|
|
source_ref: "upstream cbus/scsiio.c:720-732"
|
|
|
|
# -- SASI BIOS ROM --
|
|
# Loaded by sasiio.c:455. 4 KB (0x1000). Falls back to sasibios[] stub.
|
|
- name: "sasi.rom"
|
|
path: "np2kai/sasi.rom"
|
|
size: 4096
|
|
required: false
|
|
hle_fallback: true
|
|
note: >
|
|
SASI controller BIOS ROM (4 KB). The core includes a built-in
|
|
SASI BIOS stub as fallback.
|
|
source_ref: "source cbus/sasiio.c:451-467"
|
|
|
|
# -- PCI BIOS ROM --
|
|
# Loaded by pcidev.c:360-382. Tries pci.rom then bank0.bin.
|
|
# 32 KB (0x8000). Falls back to built-in PCI BIOS simulation.
|
|
- name: "pci.rom"
|
|
path: "np2kai/pci.rom"
|
|
size: 32768
|
|
required: false
|
|
hle_fallback: true
|
|
aliases: ["bank0.bin"]
|
|
note: >
|
|
PCI BIOS ROM (32 KB). For PC-9821 PCI bus emulation.
|
|
Without this, the built-in PCI BIOS simulator is used.
|
|
source_ref: "source io/pcidev.c:356-382"
|
|
|
|
# -- GPIB BIOS ROM --
|
|
# Loaded by gpibio.c:327-356. 8 KB (0x2000). No built-in fallback:
|
|
# if missing, GPIB is disabled entirely (gpib.enable = 0).
|
|
- name: "gpib.rom"
|
|
path: "np2kai/gpib.rom"
|
|
size: 8192
|
|
required: false
|
|
unsourceable: "never publicly dumped, GP-IB emulation is stub code (source comment: not implemented)"
|
|
note: >
|
|
GP-IB interface BIOS ROM (8 KB). If missing, GP-IB emulation
|
|
is disabled entirely.
|
|
source_ref: "source cbus/gpibio.c:320-356"
|
|
|
|
# -- Keyboard remapping config --
|
|
# Loaded by keystat_initialize() in keystat.c:43 via getbiospath().
|
|
# Plain text file mapping keyboard scancodes. If missing, default
|
|
# built-in table is used.
|
|
- name: "key.txt"
|
|
path: "np2kai/key.txt"
|
|
required: false
|
|
hle_fallback: true
|
|
unsourceable: "user-created keyboard config, no default distributed in any NP2kai release"
|
|
note: >
|
|
Keyboard remapping configuration (text file). User-created file
|
|
for custom keyboard layout. The core uses built-in defaults if absent.
|
|
source_ref: "upstream keystat.c:46, 116-151"
|