mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-11-11 12:33:53 -06:00
NP2kai and meowPC98 read font.bmp (PC-98 bitmap) and FONT.ROM (V98) as separate files, each through its own reader (NP2kai font/font.c:192-195, meowPC98 font/font.c:180-181). The V98 names hung on font.bmp as aliases let a collection without font.bmp serve the PC-88 2 KB font.rom there. FONT.ROM is now its own entry, at least 0x46800 bytes (fontv98.c:8, 51). Manifests: np2/FONT.ROM and np2kai/FONT.ROM are added where the platform did not declare them, served by the V98 font bios/NEC/PC-98/font.rom.
176 lines
6.6 KiB
YAML
176 lines
6.6 KiB
YAML
emulator: "Neko Project II"
|
|
type: libretro
|
|
core_classification: community_fork
|
|
source: "https://github.com/libretro/libretro-meowPC98"
|
|
upstream: "https://np2.yui.ne.jp"
|
|
profiled_date: "2026-03-24"
|
|
source_commit: "5fdbb2187f6b14ca7bf668dd52b36c820b989995"
|
|
core_version: "0.86"
|
|
version_basis:
|
|
kind: file
|
|
path: "x11/configure.ac"
|
|
pattern: 'AC_INIT\(Xnp2,([0-9][\w.+-]*)'
|
|
display_name: "NEC - PC-98 (Neko Project II)"
|
|
cores: [nekop2, meowpc98]
|
|
systems: [pc-98]
|
|
|
|
# Neko Project II (NP2) by Yui, ported to libretro by meepingsnesroms.
|
|
# np2.yui.ne.jp now serves its host's invalid-URL page (checked 2026-10-19).
|
|
# The libretro repository is where the source survives.
|
|
# PC-9801/9821 emulator (80286/IA-32 CPU). All files load from <system>/np2/.
|
|
# The libretro shim sets np2cfg.biospath to "<system>/np2/" and
|
|
# file_setcd() to the same path (libretro/libretro.c:856-864,196).
|
|
#
|
|
# BIOS_SIMULATE is hardcoded (bios/bios.c:26), so the core always has
|
|
# a built-in BIOS simulator and ITF ROM is never loaded from disk.
|
|
# Font data falls back to built-in 8x8 tables. Sound ROM falls back
|
|
# to a 9-byte stub. IDE/SCSI/SASI all have built-in stubs.
|
|
#
|
|
# .info declares firmware_count=0, but the core loads several BIOS, font and
|
|
# sound files, each with a built-in fallback.
|
|
|
|
files:
|
|
# -- Main BIOS ROM --
|
|
# Loaded in bios/bios.c:232-237 via getbiospath(). 96 KB (0x18000)
|
|
# mapped at 0xe8000. Without this, the built-in BIOS simulator
|
|
# (nosyscode + BIOS_SIMULATE) is used (bios/bios.c:253).
|
|
- name: "bios.rom"
|
|
path: "np2/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: "bios/bios.c:232-237, common/strres.c:53"
|
|
|
|
# -- PC-9821 IDE BIOS, the ROM at D8000h --
|
|
# Opened in bios/bios.c:263-264 via getbiospath(). The first 0x2000
|
|
# bytes are read to 0xd8000 (bios/bios.c:266), then the word at 0xd8009
|
|
# is cleared (bios/bios.c:269), and the comment above that line reads
|
|
# "crush the IDE BIOS". Only compiled when SUPPORT_PC9821 is defined
|
|
# (libretro/compiler.h:169). GETBIOS writes BIOS9821.ROM on a PC-9821
|
|
# from segment D800h, length 0x2000 (np2tool/GETBIOS.ASM:96-106).
|
|
- name: "bios9821.rom"
|
|
path: "np2/bios9821.rom"
|
|
description: "PC-9821 IDE BIOS, the 8 KB ROM at D8000h-D9FFFh"
|
|
min_size: 8192
|
|
validation: [size]
|
|
required: false
|
|
note: >
|
|
Dump of D8000h-D9FFFh from a PC-9821, 8192 bytes as GETBIOS writes
|
|
it. The first 0x2000 bytes are read to 0xd8000 and the word at
|
|
0xd8009 is then zeroed, which leaves the ROM mapped with its IDE
|
|
BIOS disabled. A file shorter than 0x2000 bytes fails the read test
|
|
and the word is left alone. Nothing past 0x2000 is read. No other
|
|
file name is tried.
|
|
source_ref: "bios/bios.c:262-272, np2tool/GETBIOS.ASM:96-106, libretro/compiler.h:169"
|
|
|
|
# -- Font file --
|
|
# Set in libretro.c:862 as "<system>/np2/font.bmp".
|
|
# font_load() in font/font.c:113 determines type by extension:
|
|
# .bmp = PC98 format, FONT.ROM = V98 format.
|
|
# Without any font file, built-in fontdata_8 provides 8x8 ASCII only.
|
|
- name: "font.bmp"
|
|
path: "np2/font.bmp"
|
|
required: false
|
|
hle_fallback: true
|
|
aliases: ["FONT.BMP"]
|
|
note: >
|
|
PC-98 font bitmap. Required for correct Japanese kanji display.
|
|
Without this, only basic ASCII renders using built-in 8x8 data.
|
|
source_ref: "libretro/libretro.c:872, font/font.c:74-104, 180, font/fontdata.c:11"
|
|
|
|
- name: "FONT.ROM"
|
|
path: "np2/FONT.ROM"
|
|
required: false
|
|
hle_fallback: true
|
|
min_size: 288768
|
|
validation: [size]
|
|
note: >
|
|
V98 font, read after font.bmp and filling only the glyphs it left
|
|
out. fontv98_read refuses a file shorter than 0x46800 bytes.
|
|
source_ref: "libretro/libretro.c:196, 868, font/font.c:181, font/fontdata.c:12, font/fontv98.c:8, 45-51"
|
|
|
|
# -- Sound BIOS ROM --
|
|
# Loaded by soundrom_load() via loadsoundrom() in sound/soundrom.c:21-55.
|
|
# Filename built as "sound" + optional board name + ".rom".
|
|
# Board-specific variants: sound26.rom (PC-9801-26K), sound86.rom (86),
|
|
# sound118.rom (118), soundSPB.rom (Speak Board), sound14.rom (14).
|
|
# The code tries the board-specific name first, falls back to sound.rom.
|
|
# 16 KB (0x4000). Fallback: 9-byte defsoundrom stub.
|
|
- name: "sound.rom"
|
|
path: "np2/sound.rom"
|
|
required: false
|
|
hle_fallback: true
|
|
note: >
|
|
FM sound board BIOS ROM (16 KB). The core tries board-specific
|
|
variants first (sound26.rom, sound86.rom, sound118.rom, soundSPB.rom,
|
|
sound14.rom) then falls back to sound.rom.
|
|
source_ref: "sound/soundrom.c:15-16,21-55,65-78"
|
|
|
|
# -- YM2608 OPNA rhythm samples --
|
|
# Loaded by rhythm_load() in sound/rhythmc.c:60-71 via getbiospath().
|
|
# The core has no fmgen engine, and only lowercase filenames are used.
|
|
- name: "2608_bd.wav"
|
|
path: "np2/2608_bd.wav"
|
|
required: false
|
|
note: "YM2608 OPNA rhythm sample: bass drum"
|
|
source_ref: "sound/rhythmc.c:11,60-71"
|
|
|
|
- name: "2608_sd.wav"
|
|
path: "np2/2608_sd.wav"
|
|
required: false
|
|
note: "YM2608 OPNA rhythm sample: snare drum"
|
|
source_ref: "sound/rhythmc.c:12"
|
|
|
|
- name: "2608_top.wav"
|
|
path: "np2/2608_top.wav"
|
|
required: false
|
|
note: "YM2608 OPNA rhythm sample: top cymbal"
|
|
source_ref: "sound/rhythmc.c:13"
|
|
|
|
- name: "2608_hh.wav"
|
|
path: "np2/2608_hh.wav"
|
|
required: false
|
|
note: "YM2608 OPNA rhythm sample: hi-hat"
|
|
source_ref: "sound/rhythmc.c:14"
|
|
|
|
- name: "2608_tom.wav"
|
|
path: "np2/2608_tom.wav"
|
|
required: false
|
|
note: "YM2608 OPNA rhythm sample: tom"
|
|
source_ref: "sound/rhythmc.c:15"
|
|
|
|
- name: "2608_rim.wav"
|
|
path: "np2/2608_rim.wav"
|
|
required: false
|
|
note: "YM2608 OPNA rhythm sample: rim shot"
|
|
source_ref: "sound/rhythmc.c:16"
|
|
|
|
# -- SCSI controller BIOS --
|
|
# Loaded in cbus/scsiio.c:219 via file_open_rb_c(). 16 KB (0x4000).
|
|
# Falls back to built-in scsibios[] stub.
|
|
- name: "scsi.rom"
|
|
path: "np2/scsi.rom"
|
|
required: false
|
|
hle_fallback: true
|
|
note: >
|
|
SCSI controller BIOS ROM (16 KB). The core includes a built-in
|
|
SCSI BIOS stub as fallback.
|
|
source_ref: "cbus/scsiio.c:208-233"
|
|
|
|
# -- SASI controller BIOS --
|
|
# Loaded in cbus/sasiio.c:453 via file_open_rb_c(). 4 KB (0x1000).
|
|
# Falls back to built-in sasibios[] stub.
|
|
- name: "sasi.rom"
|
|
path: "np2/sasi.rom"
|
|
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: "cbus/sasiio.c:442-465"
|