NEC PC-9800

The NEC PC-9800 (a.k.a. PC-9800シリーズ, Pī Shī Kyūsen Happyaku Shirīzu or just PC-98) is a family of 16/32-bit computers developed by NEC. The first model, the PC-9801, was released (mostly) exclusively in Japan on October 1982, and the last model was discontinued in 2003. Notable titles include Daisenryaku, Romance of the Three Kingdoms, 46 Okunen Monogatari: The Shinkaron, Policenauts and the Touhou Project. It's also home to a lot of a certain kind of visual novels. A lot.

Check out the PC-98 model list on Wikipedia.

Aimed at business use, in an ironic twist of events it became the dominant personal home PC in the Japanese market, with over 18 million units having being sold by 1999. It had a healthy homebrew scene (thanks in part to its completely free licensing scheme), with many game developers self-publishing games. Being an x86-based computer, it was technically possible to run a localized version of MS-DOS and thus Microsoft Windows, though demand for this particular feature wasn't too high.

This system scrapes metadata for the “pc98” group and loads the pc98 set from the currently selected theme, if available.

  • Emulator: RetroArch
  • Folder: /userdata/roms/pc98
  • Accepted ROM formats: .d98, .zip, .98d, .fdi, .fdd, .2hd, .tfd, .d88, .88d, .hdm, .xdf, .dup, .cmd, .hdi, .thd, .nhd, .hdd, .hdn, .m3u

Required BIOS files:

MD5 checksum Share file path Description
e246140dec5124c5e404869a84caefce bios/np2kai/BIOS.ROM
2af6179d7de4893ea0b705c00e9a98d6 bios/np2kai/FONT.ROM Alternative font file
caf90f22197aed6f14c471c21e64658d bios/np2kai/SOUND.ROM
e9fc3890963b12cf15d0a2eea5815b72 bios/np2kai/ITF.ROM
7da1e5b7c482d4108d22a5b09631d967 bios/np2kai/font.bmp A BMP of the raster font

Optional BIOS files:

MD5 checksum Share file path Description
bios/np2kai/bios9821.rom PC-9821 BIOS
bios/np2kai/d8000.rom
bios/np2kai/2608_BD.WAV YM2608 RYTHM sample
bios/np2kai/2608_SD.WAV YM2608 RYTHM sample
bios/np2kai/2608_TOP.WAV YM2608 RYTHM sample
bios/np2kai/2608_HH.WAV YM2608 RYTHM sample
bios/np2kai/2608_TOM.WAV YM2608 RYTHM sample
bios/np2kai/2608_RIM.WAV YM2608 RYTHM sample

Place your NEC PC-9800 ROMs in /userdata/roms/pc98.

Software for the PC-98 was delivered typically via floppy disk drives (you remember those, right?) which would then install their software onto the hard-drive. For this reason, PC-98 ROMs can come in either their original floppy disk image (to be installed) or the game data as it was post-installation (an image of the hard-drive). If given the choice, it is easier to work with hard-drive images.

Using hard-drive images is pretty simple, just load the single file and play. Batocera will take care of most of the configuration for you.

List of formats PC-98 hard-drive images typically come in:

  • HDI
  • HDM
  • NHD
  • 2HD
  • and more…

These are harder to work with as they require all of the floppy disk images for that particular piece of software (typically, most software was distributed on multiple floppy disks due to their limited storage).

How are these loaded? Need to test.

List of formats PC-98 floppy disk images typically come in:

  • FDI
  • FDM
  • NFD
  • D88
  • and more…

These are rare but sometimes the only method available to rip the game at the time was to put all the raw data onto a CD image. Games in this format cannot be loaded by NPIIKai, and must be put into either a HDI by a PC-98 hard-disk image exploring tool or something else.

todo: how to do this

RetroArch (formerly SSNES), is a ubiquitous frontend that can run multiple “cores”, which are essentially the emulators themselves. The most common cores use the libretro API, so that's why cores run in RetroArch in Batocera are referred to as “libretro: (core name)”. RetroArch aims to unify the feature set of all libretro cores and offer a universal, familiar interface independent of platform.

RetroArch configuration

RetroArch offers a Quick Menu accessed by pressing [HOTKEY] + South button (B SNES) which can be used to alter various things like RetroArch and core options, and controller mapping. Most RetroArch related settings can be altered from Batocera's EmulationStation.

Standardized features available to all libretro cores: pc98.videomode, pc98.ratio, pc98.smooth, pc98.shaders, pc98.decoration, pc98.game_translation

ES setting name batocera.conf_key Description ⇒ ES option key_value
Settings that apply to all cores of this emulator
GRAPHICS API pc98.gfxbackend Choose which graphics API library to use. Vulkan is better, when supported.
⇒ OpenGL opengl, Vulkan vulkan.
AUDIO LATENCY pc98.audio_latency In milliseconds. Can reduce crackling/cutting out.
⇒ 256 256, 192 192, 128 128, 64 64, 32 32, 16 16, 8 8.
THREADED VIDEO pc98.video_threaded Improves performance at the cost of latency and more video stuttering.
⇒ On true, Off false.

libretro: np2kai

Neko Project II Kai is a fork of the original Neko Project II PC-98 emulator. Currently the definitive PC-98 emulator, in libretro form.

libretro: np2kai configuration
ES setting name batocera.conf_key Description ⇒ ES option key_value
Settings that apply to all systems this core supports
PC MODEL global.np2kai_model
⇒ PC-286 PC-286, PC-9801VM PC-9801VM, PC-9801VX PC-9801VX.
CPU FEATURE global.np2kai_cpu_feature Select the processor model.
⇒ Intel 80386 Intel 80386, Intel i486DX Intel i486DX, Intel Pentium (MMX) Intel MMX Pentium, Intel Pentium 2 Intel Pentium II, Intel Pentium 3 Intel Pentium III, Intel Pentium 4 Intel Pentium 4, Neko Processor II Neko Processor II.
OVERCLOCK MULTIPLIER global.np2kai_clk_mult Most games work fine with overclock multipliers up to 42x. 32x is a more conservative setting. For certain games, it is really only feasible to use very low overclock multipliers as otherwise they run too fast.
⇒ 2x 2, 4x 4, 5x 5, 6x (Recommended) 6, 8x 8, 10x 10, 12x 12, 16x 16, 20x 20, 24x 24, 30x 30, 36x 36, 40x 40, 42x 42, 52x 52, 64x 64, 76x 76, 88x 88, 100x 100.
EMULATED RAM SIZE global.np2kai_ExMemory
⇒ 1MB 1, 3MB 2, 7MB 7, 11MB 11, 13MB (Recommended) 13, 16MB 16, 32MB 32, 64MB 64, 120MB 120, 230MB 230, 512MB 512, 1024MB 1024.
GDC global.np2kai_gdc Graphic Display Controller model. In order to change its clock speed, refer to its specific section below.
⇒ uPD7220 uPD7220, uPD72020 uPD72020.
REMOVE SCANLINES global.np2kai_skipline Some older games skipped drawing pixels every second line, resulting in stark scanlines. Enabling this setting stretches every second line to the next row, masking the scanlines. Do note that game designers would have designed their graphics with scanlines in mind, as the PC itself came with the monitor (and thus, was the standard). It is preferable to turn off scanlines here and instead simulate softer scanlines using RetroArch's shaders for a better effect. Action-oriented games (sprites that can move up and down) are typically fine with no scanlines whatsoever. Later games would render in higher resolutions, resulting in no scanlines.
⇒ Full 255 lines Full 255 lines, Off False, On True.
REAL PALETTES global.np2kai_realpal Some games rely on this (Apros).
⇒ Off False, On True.
SOUND BOARD global.np2kai_SNDboard 26K for old games and 86K for newer games.
⇒ None None, PC9801-14 PC9801-14, PC9801-26K PC9801-26K, PC9801-26K + 86 PC9801-26K + 86, PC9801-86 PC9801-86, PC9801-86 + 118(B460) PC9801-86 + 118(B460), PC9801-86 + 118(B460) + Sound Blaster 16 PC9801-86 + 118(B460) + Sound Blaster 16, PC9801-86 + Mate-X PCM(B460) PC9801-86 + Mate-X PCM(B460), PC9801-86 + Mate-X PCM(B460) + Sound Blaster 16 PC9801-86 + Mate-X PCM(B460) + Sound Blaster 16, PC9801-86 + Chibi-oto PC9801-86 + Chibi-oto, PC9801-86 + Speek Board PC9801-86 + Speak Board, PC9801-86 + Sound Blaster 16 PC9801-86 + Sound Blaster 16, PC9801-118 PC9801-118, PC9801-118 + Sound Blaster 16 PC9801-118 + Sound Blaster 16, AMD-98 AMD-98, Chibi-oto Chibi-oto, Sound Blaster 16 Sound Blaster 16, Speak Board Speak Board, Spark Board Spark Board, Sound Orchestra Sound Orchestra, Sound Orchestra-V Sound Orchestra-V, Little Orchestra L Little Orchestra L, Multimedia Orchestra Multimedia Orchestra, Mate-X PCM(B460) Mate-X PCM, Mate-X PCM + Sound Blaster 16 Mate-X PCM + Sound Blaster 16, Otomi-chanx2 Otomi-chanx2, Otomi-chanx2 + 86 Otomi-chanx2 + 86, WaveStar WaveStar.
JAST SOUND global.np2kai_jast_snd To have music and not only sound in games (Owl-Zoo).
⇒ Off False, On True.
JOY2KEY PROFILE global.np2kai_joymode Emulate a keyboard/mouse/joypad.
⇒ Off False, Mouse Mouse, Arrows Arrows, Arrows 3button Arrows 3button, Keypad Keypad, Keypad 3button Keypad 3button, Manual keyboard Manual Keyboard, Atari Joypad Atari Joypad.

The NP2 menu can be opened by pressing [L2], however this shouldn't be required as Batocera can handle the configuration of the important settings in its PER SYSTEM ADVANCED OPTIONS. It's still fun to look at for that retro Windows look, though.

If a particular game isn't working (or is displaying double images), most of the time it's the GDC clock that needs to be adjusted. Thankfully, there are only two modes, so even though the menu is in Japanese it should be easy to tell them apart.

Todo: screenshots.

  1. Open the game.
  2. During the PC-98's booting procedure, hold down the [End] key. This will open up the PC-98's BIOS menu. In case you missed it, you can restart ( [HOTKEY] + East button (A SNES) ) to try again.
  3. Select ディップスイッチ2 using the arrow keys and press Enter.
  4. Select the GDC option and press the right arrow key to switch to 2.5MHz (the default setting is 5Mhz).
  5. To return, select 終了 (the bottom-most option) and press Enter. Go to 終了 again and select it to reboot the PC-98 system.

In case you need to return your BIOS settings back to default, simply open the BIOS menu and press the Home key. This will restore everything to their default values.

Most games would default to assuming the player only had a mouse and keyboard, so the default Joy2Key profiles (with the Z and X keys bound to the controller's face) should be sufficient. In the case that a game requires the full set of keys, the “Manual Keyboard” Joy2Key profile should be used (along with a real keyboard, the Batocera RetroPad doesn't have enough buttons unfortunately).

Here are the default NEC PC-9800's controls shown on a Batocera RetroPad:

Batocera Retropad Joy2Key Arrows Joy2Key Keypad Joy2Key Mouse
South button (B SNES) Z key Z key Mouse Left-click
East button (A SNES) X key X key Mouse Right-click
West button (Y SNES) Left Control key Left Control key
North button (X SNES) Space key Space key
[START] Return key Return key
[SELECT] Escape key Escape key
D-pad Up ↑ key Keypad 8 key (↑) Move cursor up
D-pad Down ↓ key Keypad 2 key (↓) Move cursor down
D-pad Left ← key Keypad 4 key (←) Move cursor left
D-pad Right → key Keypad 6 key (→) Move cursor right
[L1] Backspace key Backspace key Increase cursor speed
[R1] Right Shift key Right Shift key
[R2] Open the NP2 menu Open the NP2 menu

The original PC-98 mice did not have a middle-click, so the middle-click here (should you use it) will also open the NP2 menu.

Most games should handle this automatically, but some may need to be launched manually after being loaded. The process is surprisingly similar to MS-DOS.

  1. Type DIR /p and press [Enter]. A list of files on the disc should be displayed.
    1. In order to navigate into subfolders, type cd <FOLDERNAME> and press [Enter].
  2. Search for the game's executable file. Typically it is a BAT file named an abbreviation/shortening of the game's title.
  3. Type this filename in and press [Enter]. Cross your fingers. If it didn't work, try other files until you find the one that does.

The PC-98 ran at a very unusual framerate of around 55Hz, which doesn't fit in nicely with 50Hz nor 60Hz displays. Luckily, if you have a display that supports variable refresh rate (like Freesync) then it should be easy enough to just activate that option within RetroArch to achieve the exact same framerates as the original machines did.

In case you need to return your BIOS settings back to default, simply open the BIOS menu and press the Home key. This will restore everything to their default values.

Well it is a Japanese computer. A small amount of PC-98 games have English fan-translations available, others may be found by using a search engine.

In case there isn't a translation available for your game yet, you can always use Batocera/RetroArch's AI game translation option, to varying degrees of success. Japanese-to-English is one of the more difficult translations for the AI to do.

For further troubleshooting, refer to the generic support pages.

  • systems/pc98.txt
  • Last modified: 16 months ago
  • by atari