summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Angelo Salese <angelosa@users.noreply.github.com>2021-04-19 10:13:18 +0200
committer GitHub <noreply@github.com>2021-04-19 10:13:18 +0200
commit5c4ee0ec5ccee303d6610ea17234817f93a9b54d (patch)
tree62beada21ea07dcff5a0aec234f8092f63741136
parentc037dfd82238537752e2078f52a3276badfbff83 (diff)
New machines marked as NOT_WORKING (#7904)
* pc9801.cpp: proper ipl ROM dump for pc486mu [flyingharuka] * New machines marked as NOT_WORKING ---------------------------------- PC-386M [flyingharuka] * New clones marked as NOT_WORKING -------------------------------- PC-486SE [flyingharuka] PC-9821Xa16 [flyingharuka] PC-9821Ra20 (98MATE R) [flyingharuka] PC-9821Ra333 [flyingharuka] * pc9801.cpp: update QA * pc9801.cpp: move several SW notes from main driver to XML * pc9801.cpp: Make Epson machines to derive parent-clone relationship from pc486mu * pc9801.cpp: Backport ROM bankswitch to pc486mu, making it to ERR:VR too, promote pc386m to parent romset since it definitely diverge * pc88va.cpp: correct main CPU to V50; * pc9801.cpp: rearrange system metadata, in prevision of actual state machine splits; * pc9801.cpp: fix mouse input when in absolute mode (prinmak2, tim, pentium) * pc9801.cpp: improve mouse latch/delta readback, fix biblems2 regression * pc9801.cpp: finalize QA notes * pc98.xml: fix validation, add some extra QA notes * pc9801.cpp: QA update over feedback by cracyc
-rw-r--r--hash/pc98.xml385
-rw-r--r--hash/pc98_cd.xml8
-rw-r--r--src/devices/bus/cbus/pc9801_cbus.cpp11
-rw-r--r--src/devices/video/upd7220.cpp4
-rw-r--r--src/mame/drivers/pc88va.cpp10
-rw-r--r--src/mame/drivers/pc9801.cpp582
-rw-r--r--src/mame/includes/pc88va.h2
-rw-r--r--src/mame/includes/pc9801.h39
-rw-r--r--src/mame/mame.lst7
9 files changed, 746 insertions, 302 deletions
diff --git a/hash/pc98.xml b/hash/pc98.xml
index a1de80a91e4..ec0a871d519 100644
--- a/hash/pc98.xml
+++ b/hash/pc98.xml
@@ -97,9 +97,9 @@ only have some part of Windows file and a Video driver(CLGD?).
</software>
<software name="msdos33">
- <description>MS-DOS 3.3</description>
- <year>19??</year>
- <publisher>&lt;unknown&gt;</publisher>
+ <description>MS-DOS 3.30D</description>
+ <year>1991</year>
+ <publisher>NEC / Microsoft</publisher>
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Disk 1"/>
<dataarea name="flop" size="1265664">
@@ -152,8 +152,8 @@ only have some part of Windows file and a Video driver(CLGD?).
<software name="msdos50a">
<description>MS-DOS 5.0A</description>
- <year>19??</year>
- <publisher>&lt;unknown&gt;</publisher>
+ <year>1992</year>
+ <publisher>NEC / Microsoft</publisher>
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="System Disk 1"/>
<dataarea name="flop" size="1265664">
@@ -230,8 +230,8 @@ only have some part of Windows file and a Video driver(CLGD?).
<software name="msdos62">
<description>MS-DOS 6.2</description>
- <year>19??</year>
- <publisher>&lt;unknown&gt;</publisher>
+ <year>1994</year>
+ <publisher>NEC / Microsoft</publisher>
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Disk 1"/>
<dataarea name="flop" size="1265664">
@@ -394,10 +394,14 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="win211">
+ <!-- Has kanji drawing issues, cfr. win31 notes ("EGC byte wide writes?") -->
+ <!-- not extensively tested -->
+ <software name="win211" supported="partial">
<description>Windows 2.11</description>
- <year>19??</year>
- <publisher>&lt;unknown&gt;</publisher>
+ <year>1989</year>
+ <publisher>NEC / Microsoft</publisher>
+ <!-- Needs DOS install, doesn't boot on msdos62 (invalid DOS mode), -->
+ <!-- it does with msdos33, pinpoint compatibility for proper usage instructions -->
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Disk 1"/>
<dataarea name="flop" size="1265664">
@@ -574,10 +578,14 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="win31">
+ <!-- Throws a non-fatal CD-Rom error during install -->
+ <!-- Text is garbled on arbitrary portions (cfr. disk # during install), last letter of a string cutoff? -->
+ <!-- Tested Solitaire (works), Minesweeper (has slight EGC issues on window move), Paint (has heavy EGC issues) -->
+ <software name="win31" supported="partial">
<description>Windows 3.1</description>
<year>199?</year>
<publisher>Microsoft?</publisher>
+ <info name="usage" value="Needs a DOS install from HDD"/>
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Disk 1"/>
<dataarea name="flop" size="1281968">
@@ -808,11 +816,12 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <!-- Requires DOS -->
- <software name="turbocpp">
- <description>Turbo C++</description>
+ <!-- installable, bgidemo working -->
+ <software name="turbocpp" supported="yes">
+ <description>Turbo C++ (v1.01)</description>
<year>1990</year>
<publisher>Borland</publisher>
+ <info name="usage" value="Needs a DOS install from HDD, run INSTALL.EXE from disk 1"/>
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Disk 1"/>
<dataarea name="flop" size="1281968">
@@ -1532,10 +1541,10 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="msdos33d" supported="no">
- <description>MS-DOS 3.3D</description>
- <year>19??</year>
- <publisher>&lt;unknown&gt;</publisher>
+ <software name="msdos33d" cloneof="msdos33" supported="no">
+ <description>MS-DOS 3.30D (Alt)</description>
+ <year>1991</year>
+ <publisher>NEC / Microsoft</publisher>
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Disk 1"/>
<dataarea name="flop" size="1261568">
@@ -2255,7 +2264,8 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="46okunen">
+ <!-- boot OK with the given instructions -->
+ <software name="46okunen" supported="yes">
<description>46 Okunen Monogatari - The Shinkaron</description>
<year>1990</year>
<publisher>エニックス (Enix)</publisher>
@@ -2320,12 +2330,14 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="4dboxing">
- <description>4D Boxing</description>
+ <!-- boot OK -->
+ <software name="4dboxing" supported="yes">
+ <description>4D Boxing (v1.1)</description>
<year>1993</year>
<publisher>エレクトロニック・アーツ・ビクター (Electronic Arts Victor)</publisher>
<info name="alt_title" value="4Dボクシング" />
<info name="release" value="19930114" />
+ <info name="usage" value="Create an user disk by booting with Disk A, once done reboot with Disk B in drive 0" />
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Disk A"/>
<dataarea name="flop" size="1265664">
@@ -3300,7 +3312,9 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="agumixsl">
+ <!-- boot OK, rectangle selections are doubled to expected behaviour (cfr. main menu, "select" option) -->
+ <!-- double height bitmap on non-interlace mode -->
+ <software name="agumixsl" supported="partial">
<description>Agumix Selects! - Agumix Select Tokusen Graphic Shuu</description>
<year>1992</year>
<publisher>アグミックス (Agumix)</publisher>
@@ -3792,6 +3806,7 @@ only have some part of Windows file and a Video driver(CLGD?).
</software>
<!-- Fails to boot with "初期データが設定できません" (cannot set initial data) error -->
+ <!-- (regressed, was working with RS class at some point) -->
<software name="akitsuka" supported="no">
<description>Aki to Tsukasa no Fushigi no Kabe</description>
<year>1988</year>
@@ -3987,11 +4002,16 @@ only have some part of Windows file and a Video driver(CLGD?).
</software>
<!-- Seems to work only on 286-based machines (e.g. PC-9801UX). Seems to happen on real hardware too (PC-9821Nw150). -->
- <software name="alice">
+ <!-- double height text on non-interlace mode (error text) -->
+ <!-- keyboard stop working on soft reset -->
+ <!-- can't do disk swaps via the File Manager (fixed, option 2 in main menu) -->
+ <software name="alice" supported="partial">
<description>Alice no Yakata</description>
<year>1990</year>
<publisher>アリスソフト (AliceSoft)</publisher>
<info name="alt_title" value="アリスの館" />
+ <!-- reports as SW1-8? -->
+ <info name="usage" value="Boots on 286 or V30 class machines only, needs 16 Color Mode on" />
<info name="release" value="19900215" />
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Disk 1"/>
@@ -4622,7 +4642,9 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="animjv3">
+ <!-- boot OK -->
+ <!-- At some point it was possible to mount a -86 and a -26 to split BGMs and SFXs, regressed -->
+ <software name="animjv3" supported="partial">
<description>Animahjong V3</description>
<year>1993</year>
<publisher>ソニア (Sogna)</publisher>
@@ -4753,12 +4775,14 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="annivers">
+ <!-- randomly hangs with stuck note -->
+ <software name="annivers" supported="no">
<description>Anniversary - Memories of Summer Vacation - Natsuyasumi no Omoide</description>
<year>1993</year>
<publisher>ジャニス (Janis)</publisher>
<info name="alt_title" value="アニヴァーサリー ~夏休みの想い出~" />
<info name="release" value="19931203" />
+ <!-- GRPH key: cycles thru different video modes (Analog, B&W, Digital) -->
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Disk A"/>
<dataarea name="flop" size="1265664">
@@ -4798,12 +4822,14 @@ only have some part of Windows file and a Video driver(CLGD?).
</software>
<!-- Seems to work only on 286-based machines (e.g. PC-9801UX). Seems to happen on real hardware too (PC-9821Nw150). -->
- <software name="agenesis">
+ <!-- Reportedly don't recognize keyboard presses -->
+ <software name="agenesis" supported="partial">
<description>Another Genesis</description>
<year>1990</year>
<publisher>ソフトプラン (Soft Plan)</publisher>
<info name="alt_title" value="アナザージェネシス" />
<info name="release" value="19900621" />
+ <info name="usage" value="Boots on 286 or V30 class machines only (Uses N88-Basic v3.0)" />
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Disk A"/>
<dataarea name="flop" size="1086448">
@@ -4844,7 +4870,8 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="genghis">
+ <!-- boot OK -->
+ <software name="genghis" supported="yes">
<description>Aoki Ookami to Shiroki Mejika - Genghis Khan</description>
<year>1987</year>
<publisher>光栄 (Koei)</publisher>
@@ -4933,7 +4960,12 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="applecl1">
+ <!-- boot OK -->
+ <!-- on VM class: key ups strays one extra input (going twice to the left or right on single press) -->
+ <!-- on RS class: kanji doesn't show text properly (scoring) -->
+ <!-- double height bitmap on non-interlace mode -->
+ <!-- can't pass hands (btanb, F1 key) -->
+ <software name="applecl1" supported="partial">
<description>Apple Club 1 - Kinjirareta Asobi Series</description>
<year>1988</year>
<publisher>フェアリーテール (Fairytale)</publisher>
@@ -5144,7 +5176,8 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="arcshu">
+ <!-- boot OK -->
+ <software name="arcshu" supported="yes">
<description>Arcshu - Kagerou no Jidai o Koete</description>
<year>1990</year>
<publisher>ウルフチーム (WolfTeam)</publisher>
@@ -5157,7 +5190,8 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="arctic">
+ <!-- boot OK -->
+ <software name="arctic" supported="yes">
<description>Arctic</description>
<year>1988</year>
<publisher>アートディンク (Artdink)</publisher>
@@ -5183,7 +5217,8 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <!-- Some graphical glitches in the intro -->
+ <!-- Some graphical glitches in the intro (supposedly text layer not clipping properly) -->
+ <!-- Doesn't like hot swaps (user needs to "empty slot" first when prompted to change disks), btanb -->
<software name="arcus2" supported="partial">
<description>Arcus II - Silent Symphony</description>
<year>1990</year>
@@ -5440,6 +5475,7 @@ only have some part of Windows file and a Video driver(CLGD?).
</software>
<!-- This game plays sampled voices through the beeper, but it doesn't work in MAME - it just outputs a constant beep -->
+ <!-- (has a DAC1BIT tester at boot, may be useful) -->
<software name="arquelph" supported="partial">
<description>Arquelphos</description>
<year>1993</year>
@@ -5478,7 +5514,9 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="artjigs1">
+ <!-- boot OK, randomly locks up (stuck note) -->
+ <!-- On selection menu selected jigsaw doesn't show proper naming, kanji issue? -->
+ <software name="artjigs1" supported="no">
<description>Art Jigsaw - Vol. 1 Super Weapons</description>
<year>1992</year>
<publisher>システムソフト (SystemSoft)</publisher>
@@ -5491,7 +5529,9 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="artjigs2">
+ <!-- boot OK, randomly locks up (stuck note) -->
+ <!-- On selection menu selected jigsaw doesn't show proper naming, kanji issue? -->
+ <software name="artjigs2" supported="no">
<description>Art Jigsaw - Vol. 2 Pretty Girls</description>
<year>1992</year>
<publisher>システムソフト (SystemSoft)</publisher>
@@ -5511,7 +5551,10 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="artjigs3">
+ <!-- boot OK, randomly locks up (stuck note) -->
+ <!-- On selection menu selected jigsaw doesn't show proper naming, kanji issue? -->
+ <!-- Last selectable puzzle shows up garbled on selection and in-game -->
+ <software name="artjigs3" supported="no">
<description>Art Jigsaw - Vol. 3 Fantastic</description>
<year>1992</year>
<publisher>システムソフト (SystemSoft)</publisher>
@@ -5639,7 +5682,8 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="asokokof">
+ <!-- boot OK, randomly hangs with stuck note during intro on VM class -->
+ <software name="asokokof" supported="partial">
<description>Asoko no Koufuku - Yamamoto-san-chi no Baai ni Okeru Asoko no Fukou ni Tsuite</description>
<year>1989</year>
<publisher>Zeit (ツァイト)</publisher>
@@ -5704,7 +5748,8 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="atlantia">
+ <!-- boot OK -->
+ <software name="atlantia" supported="yes">
<description>Atlantia</description>
<year>1994</year>
<publisher>ジャパンホームビデオ (Japan Home Video)</publisher>
@@ -5913,7 +5958,7 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <!-- Fails to boot with "Disk I/O Error" -->
+ <!-- Fails to boot with "Disk I/O Error" on cyan "Please Wait!" screen -->
<software name="azusa108" supported="no">
<description>Azusa 108 Jimusho</description>
<year>1988</year>
@@ -5965,7 +6010,8 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="bacta2">
+ <!-- Hangs with stuck note on title screen display after intro -->
+ <software name="bacta2" supported="no">
<description>Bacta 2</description>
<year>1994</year>
<publisher>姫屋ソフト (Himeya Soft)</publisher>
@@ -6041,12 +6087,16 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="balpower">
+ <!-- boot OK in vanilla, VM, RS classes -->
+ <!-- No kanji displayed on vanilla class -->
+ <software name="balpower" supported="partial">
<description>Balance of Power - Geopolitics in the Nuclear Age</description>
<year>1988</year>
<publisher>アスキー (ASCII)</publisher>
<info name="alt_title" value="バランス オブ パワー" />
<info name="release" value="198810xx" />
+ <!-- 1988 game but runs DOS 6.20, lolwut? -->
+ <!-- disk A may be just an user disk created with disk B via SETUP.EXE -->
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Disk A"/>
<dataarea name="flop" size="1281968">
@@ -6061,12 +6111,15 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="balpowera" cloneof="balpower">
+ <!-- boot OK in vanilla, VM, RS classes -->
+ <!-- No kanji displayed for vanilla version (btanb?) -->
+ <software name="balpowera" cloneof="balpower" supported="partial">
<description>Balance of Power - Geopolitics in the Nuclear Age (Alt Disk 1)</description>
<year>1988</year>
<publisher>アスキー (ASCII)</publisher>
<info name="alt_title" value="バランス オブ パワー" />
<info name="release" value="198810xx" />
+ <!-- again 1988 but DOS 6.20 -->
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Disk A"/>
<dataarea name="flop" size="1281968">
@@ -6165,7 +6218,8 @@ only have some part of Windows file and a Video driver(CLGD?).
</software>
<!-- Can't play any music. It recognizes the MIDI interface correctly, but complains about the interrupt line settings not being correct. -->
- <software name="bandkun" supported="partial">
+ <!-- Supported MIDI interfaces: Roland MT-32, Roland D-10/D-110, Kawai MSB-98, Korg M1 -->
+ <software name="bandkun" supported="no">
<description>Band-kun - Sound Entertainment</description>
<year>1990</year>
<publisher>光栄 (Koei)</publisher>
@@ -6365,7 +6419,8 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="skinpan">
+ <!-- Hangs during the intro (first dialogue) -->
+ <software name="skinpan" supported="no">
<description>Battle Skin Panic 9821</description>
<year>1993</year>
<publisher>ガイナックス (Gainax)</publisher>
@@ -6434,7 +6489,8 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="btech">
+ <!-- boot OK -->
+ <software name="btech" supported="yes">
<description>BattleTech - Ubawareta Seihai</description>
<year>1993</year>
<publisher>ビクター音楽産業 (Victor Musical Industries)</publisher>
@@ -6460,7 +6516,8 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="baycity">
+ <!-- boot OK -->
+ <software name="baycity" supported="yes">
<description>Bay City Elegy</description>
<year>1994</year>
<publisher>カクテル・ソフト FMC (Cocktail Soft FMC)</publisher>
@@ -6577,7 +6634,7 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <!-- Black screen on boot -->
+ <!-- Black screen on boot (FDC keeps reading command sense) -->
<software name="beast" supported="no">
<description>Beast - Injuu no Yakata</description>
<year>1990</year>
@@ -6604,7 +6661,8 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="beast2">
+ <!-- boot OK -->
+ <software name="beast2" supported="yes">
<description>Beast 2 - Incubuster</description>
<year>1991</year>
<publisher>バーディーソフト (Birdy Soft)</publisher>
@@ -6702,7 +6760,8 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="bellsave">
+ <!-- boot OK -->
+ <software name="bellsave" supported="yes">
<description>Bell's Avenue</description>
<year>1993</year>
<publisher>ウェンディマガジン (Wendy Magazine)</publisher>
@@ -6900,7 +6959,8 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="biblems2">
+ <!-- boot OK -->
+ <software name="biblems2" supported="yes">
<description>Bible Master 2 - The Chaos of Aglia</description>
<year>1994</year>
<publisher>グローディア (Glodia)</publisher>
@@ -6991,7 +7051,8 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="birdywld">
+ <!-- boot OK -->
+ <software name="birdywld" supported="yes">
<description>Birdy World</description>
<year>1991</year>
<publisher>バーディーソフト (Birdy Soft)</publisher>
@@ -7056,11 +7117,14 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="idolsaga">
+ <!-- Reportedly crashes on V30 class machine -->
+ <!-- on 386 class throws a "(program) ended. remove the floppy disk and turn off the power.", most likely btanb -->
+ <software name="idolsaga" supported="partial">
<description>Bishoujo Audition - Idol o Sagase!</description>
<year>1993</year>
<publisher>サンタ・フェ (Santa Fe)</publisher>
<info name="alt_title" value="美少女オーディション アイドルを探せ!" />
+ <info name="usage" value="Boots on 286 or V30 class machines only" />
<info name="release" value="19930205" />
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Disk A"/>
@@ -7108,7 +7172,9 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="bishohzx">
+ <!-- boot OK -->
+ <!-- no title screen GFXs (btanb, displayed during intro) -->
+ <software name="bishohzx" supported="yes">
<description>Bishoujo Hunter ZX</description>
<year>1993</year>
<publisher>ボンびいボンボン! (Bonbee Bonbon!)</publisher>
@@ -7220,7 +7286,9 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="bishotsu">
+ <!-- boot OK on RS class, on intro uses PCM1BIT and some text doesn't seem to be drawn? -->
+ <!-- black screen after Cocktail Soft logo on VM class (btanb?) -->
+ <software name="bishotsu" supported="partial">
<description>Bishoujo Tsuushin - Chat no Susume</description>
<year>1992</year>
<publisher>カクテル・ソフト (Cocktail Soft)</publisher>
@@ -7535,7 +7603,7 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <!-- This game is supposed to play sound effects through the beeper, but in MAME it just outputs a constant beep -->
+ <!-- This game is supposed to play sound effects through the beeper, but in MAME it just outputs a constant beep (PCM1BIT) -->
<software name="blockouta" cloneof="blockout" supported="partial">
<description>Block Out (Patched?)</description>
<year>1991</year>
@@ -7687,7 +7755,8 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="bokosuka">
+ <!-- boot OK, sometimes keyboard doesn't recognize key ups -->
+ <software name="bokosuka" supported="partial">
<description>Bokosuka Wars</description>
<year>1985</year>
<publisher>アスキー (ASCII)</publisher>
@@ -9291,13 +9360,14 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <!-- Runs too fast on anything except (presumably) a 8086 CPU, but it doesn't boot on the PC-9801F -->
- <software name="castle">
+ <!-- boot OK -->
+ <software name="castle" supported="yes">
<description>The Castle and Princess.</description>
<year>1985</year>
<publisher>アスキー (ASCII)</publisher>
<info name="alt_title" value="ザ・キャッスル" />
<info name="release" value="198507xx" />
+ <info name="usage" value="Use a vanilla 8086 class machine with 2HD floppy mounted for proper speed" />
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="1142928">
<rom name="castle.d88" size="1142928" crc="77db8f90" sha1="07ac9159e906da1f97da601cd7da5c63ad2713a5" offset="0" />
@@ -9413,6 +9483,7 @@ only have some part of Windows file and a Video driver(CLGD?).
</software>
<!-- "データ・ファイルが見つかりません" (data file not found) on PC-9801UX, "Packed file is corrupt" on anything else -->
+ <!-- boot OK by running CENTURIO.EXE from MSDOS -->
<software name="centurio" supported="no">
<!-- Origin: Neo Kobe Collection -->
<description>Centurion - Defender of Rome</description>
@@ -9432,7 +9503,8 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <!-- Crashes MAME on PC-9801UX, "Packed file is corrupt" on anything else -->
+ <!-- Hardlocks MAME on PC-9801UX, "Packed file is corrupt" on anything else -->
+ <!-- boot OK by running CENTURIO.EXE from MSDOS -->
<software name="centurioa" cloneof="centurio" supported="no">
<!-- Origin: Neo Kobe Collection -->
<description>Centurion - Defender of Rome (Alt)</description>
@@ -9479,6 +9551,7 @@ only have some part of Windows file and a Video driver(CLGD?).
</software>
<!-- Can't change disks, so it's not possible to save or load characters -->
+ <!-- randomly locks up -->
<software name="ckrynn" supported="no">
<description>Champions of Krynn</description>
<year>1992</year>
@@ -9824,7 +9897,8 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="fsmoon">
+ <!-- boot OK, randomly crashes during gameplay with stuck note -->
+ <software name="fsmoon" supported="no">
<description>Chikyuu Bouei Gun II - The Earth Self Defense Force - Far Side Moon</description>
<year>1989</year>
<publisher>アートディンク (Artdink)</publisher>
@@ -13324,13 +13398,14 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <!-- No sound -->
- <software name="deflektr" supported="partial">
+ <!-- boot OK -->
+ <software name="deflektr" supported="yes">
<description>Deflektor</description>
<year>1991</year>
<publisher>B·P·S (Bullet-Proof Software)</publisher>
<info name="alt_title" value="ディフレクター" />
<info name="release" value="19910712" />
+ <info name="usage" value="MEMSW-4 bit 3 must be off for sound to work (as also prompted during MEGDOS booting)" />
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="1298608">
<rom name="deflektor.d88" size="1298608" crc="99a4b5f5" sha1="9cc8257a68093bc5ea992498d0c5d29953c1fa31" offset="0" />
@@ -13681,8 +13756,8 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <!-- The mouse cursor doesn't work correctly -->
- <software name="dengarou" supported="partial">
+ <!-- boot OK -->
+ <software name="dengarou" supported="yes">
<!-- Origin: Neo Kobe Collection -->
<description>Dennou Garou</description>
<year>1993</year>
@@ -13940,7 +14015,8 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <!-- All the menus and the mouse cursor are invisible -->
+ <!-- Black screen on VM and RS classes, boot OK in 9821 (tested up to the copy protection check) -->
+ <!-- Supposed to run on former since game has 16/8 colors mode switch -->
<software name="desdragn" supported="no">
<!-- Origin: Neo Kobe Collection -->
<description>Desert Dragoon - Sabaku no Ryuukihei</description>
@@ -13948,6 +14024,7 @@ only have some part of Windows file and a Video driver(CLGD?).
<publisher>ジャパンホームビデオ (Japan Home Video)</publisher>
<info name="alt_title" value="デザートドラグーン ~砂漠の竜騎兵~" />
<info name="release" value="19930709" />
+ <info name="usage" value="Has manual copy protection" />
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Disk 1"/>
<dataarea name="flop" size="1261568">
@@ -15234,7 +15311,8 @@ only have some part of Windows file and a Video driver(CLGD?).
<year>1992</year>
<publisher>総合ビジネスアシスト (ABA)</publisher>
<info name="alt_title" value="ディスクバトラー" />
- <info name="usage" value="Boot from a DOS floppy with disk 1 in drive 2, then tun DBINST.EXE from disk 1." />
+ <info name="usage" value="Boot DOS from floppy, swap it with disk 1 once on prompt, run DB.EXE" />
+ <!-- Can also be made self bootable via DBINST.EXE, needs write mountable dskbtlr1.d88 in drive 1 -->
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Disk 1"/>
<dataarea name="flop" size="1281968">
@@ -17122,7 +17200,8 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="dconqest">
+ <!-- randomly hangs with a stuck note -->
+ <software name="dconqest" supported="no">
<description>Dungeon Conquest</description>
<year>1993</year>
<publisher>アスキー (ASCII)</publisher>
@@ -17359,7 +17438,10 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="ecomagic">
+ <!-- Randomly crashes (happens more often with 286/V30 class machines) -->
+ <!-- (Runs on MEGDOS 0.27, should supposedly run on latter two) -->
+ <!-- On prolonged gameplays score may roll over instead of giving game over (i.e. going 65k), btanb? -->
+ <software name="ecomagic" supported="partial">
<description>Ecology Magic</description>
<year>1992</year>
<publisher>ジーエーエム (GAM)</publisher>
@@ -17379,7 +17461,9 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <!-- Doesn't recognize disk changes -->
+ <!-- Doesn't recognize disk changes (regressed) -->
+ <!-- has gfx glitch when intro scrolls to top-left -->
+ <!-- user disk creation screen is offset -->
<software name="edge" supported="no">
<description>Edge</description>
<year>1993</year>
@@ -19370,13 +19454,14 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="fh2tag">
+ <software name="fh2tag" supported="partial">
<description>Finish Hold 2 - Tag</description>
<year>1996</year>
<publisher>システムソフト (SystemSoft)</publisher>
<info name="alt_title" value="フィニッシュホールド2 TAG" />
<info name="release" value="19960322" />
- <info name="usage" value="Requires HDD installation, and the game manual to pass the protection check. Run INST.EXE from DOS." />
+ <!-- 001J0283TA 100001 -->
+ <info name="usage" value="Requires HDD installation, and the serial number printed on registration card to pass the protection check. Run INST.EXE or SSHDINST.EXE from DOS." />
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Disk 1"/>
<dataarea name="flop" size="1261568">
@@ -20847,12 +20932,17 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="hypbingo">
+ <!-- boot OK, has heavy GFX issues if EGC is detected. -->
+ <!-- Uses DAC1BIT for speech -->
+ <!-- Has extensive system check, NESA bus for instance -->
+ <software name="hypbingo" supported="partial">
<description>Gals Talk Hyper Bingo</description>
<year>1992</year>
<publisher>総合ビジネスアシスト (ABA)</publisher>
<info name="alt_title" value="ギャルズトーク ハイパービンゴ" />
<info name="release" value="19920313" />
+ <info name="usage" value="Boot DOS from floppy, swap it with disk 1 once on prompt, run BG.EXE" />
+ <!-- Can also be made self bootable via HBINST.EXE, needs write mountable hb-1.d88 in drive 1 -->
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Disk 1"/>
<dataarea name="flop" size="1281968">
@@ -22983,7 +23073,8 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="hayate">
+ <!-- boot OK -->
+ <software name="hayate" supported="yes">
<description>Hayate - The Battle - Hyper Real Battle Action</description>
<year>1994</year>
<publisher>アルテシア (Altacia)</publisher>
@@ -23053,7 +23144,8 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="heatpwfl">
+ <!-- boot OK on VM and RS classes -->
+ <software name="heatpwfl" supported="yes">
<description>Heater Powerful</description>
<year>1993</year>
<publisher>アンビシャス (Ambitious)</publisher>
@@ -23073,11 +23165,13 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="hedgehog">
+ <!-- Doesn't do much after install & run with currently available machines -->
+ <software name="hedgehog" supported="no">
<description>HedgehoG</description>
<year>1996</year>
<publisher>電脳山城組 / コムレイドシステム (Dennou Yamashiro-gumi / Comrade System)</publisher>
<info name="alt_title" value="ヘッジホッグ" />
+ <!-- Minimum requirements: PC9821Cb2 and Win95? -->
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Disk 1"/>
<dataarea name="flop" size="1265664">
@@ -23104,7 +23198,8 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="headqrt">
+ <!-- Doesn't recognize disk on disk swap prompt (even if game is actually installed on HDD) -->
+ <software name="headqrt" supported="no">
<description>Headquarters - America no Akumu</description>
<year>1994</year>
<publisher>アルゴラボ 算法研究所 (Algolab)</publisher>
@@ -23304,7 +23399,8 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="hercequa">
+ <!-- boot OK, beeps out when it's supposed to play samples (DAC1BIT) -->
+ <software name="hercequa" supported="partial">
<description>Hercequary</description>
<year>1994</year>
<publisher>ジックス (ZyX)</publisher>
@@ -24228,8 +24324,9 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="tim" supported="no">
- <description>The Incredible Machine</description>
+ <!-- boot OK, randomly hangs with stuck note -->
+ <software name="tim" supported="partial">
+ <description>The Incredible Machine (v1.00)</description>
<year>1994</year>
<publisher>サイベル (Cybelle)</publisher>
<info name="alt_title" value="インクレディブル・マシーン" />
@@ -24740,7 +24837,8 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="jangou2">
+ <!-- boot OK -->
+ <software name="jangou2" supported="yes">
<description>Jangou 2 - Kouchinou Ban</description>
<year>1989</year>
<publisher>ビクター音楽産業 (Victor Musical Industries)</publisher>
@@ -25561,12 +25659,14 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
+ <!-- boot OK -->
<software name="karateka" supported="yes">
<description>Karateka</description>
<year>1988</year>
<publisher>ブロダーバンドジャパン (Brøderbund Japan)</publisher>
<info name="alt_title" value="カラテカ" />
<info name="release" value="198811xx" />
+ <info name="usage" value="Sound works on V30 class machines only" />
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="1281968">
<rom name="karateka.d88" size="1281968" crc="d762d4d1" sha1="fb9331c301dd641c3398090330ba906b173c2020" offset="0" />
@@ -26092,15 +26192,17 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="kingdung">
+ <!-- boot OK -->
+ <software name="kingdung" supported="yes" >
<description>King's Dungeon - The Story of Heroes</description>
<year>1992</year>
<publisher>ソフトプラン (Soft Plan)</publisher>
<info name="alt_title" value="キングスダンジョン" />
<info name="release" value="19921217" />
+ <!-- has end game save files -->
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="1265664">
- <rom name="kingdung.fdi" size="1265664" crc="b7f4f600" sha1="7bd2ac05e849fa884734b77aca5661382ee5009f" offset="0" />
+ <rom name="kingdung.fdi" size="1265664" crc="b7f4f600" sha1="7bd2ac05e849fa884734b77aca5661382ee5009f" offset="0" status="baddump" />
</dataarea>
</part>
</software>
@@ -28104,7 +28206,9 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="lovelyho">
+ <!-- boot OK in vanilla, VM, RS classes -->
+ <!-- No kanji displayed on vanilla class, no 8x16 charset for RS class (selection numbers) -->
+ <software name="lovelyho" supported="partial">
<description>Lovely Horror - Ochame na Yuurei</description>
<year>1988</year>
<publisher>全流通 (Zenryutsu)</publisher>
@@ -28232,7 +28336,8 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="madoum1">
+ <!-- no bitmap GFXs during gameplay -->
+ <software name="madoum1" supported="no">
<description>Madou Monogatari 1</description>
<year>1991</year>
<publisher>コンパイル (Compile)</publisher>
@@ -28252,7 +28357,8 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="madoum2">
+ <!-- no bitmap GFXs during gameplay -->
+ <software name="madoum2" supported="no">
<description>Madou Monogatari 2</description>
<year>1991</year>
<publisher>コンパイル (Compile)</publisher>
@@ -30226,8 +30332,9 @@ only have some part of Windows file and a Video driver(CLGD?).
</part>
</software>
- <software name="metalor">
- <description>Metal Orange</description>
+ <!-- boot OK -->
+ <software name="metalor" supported="yes">
+ <description>Cyber Block Metal Orange</description>
<year>1991</year>
<publisher>カスタム (Custom)</publisher>
<info name="alt_title" value="メタルオレンジ" />
@@ -34041,12 +34148,15 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?)
</part>
</software>
- <software name="pickupmj">
+ <!-- boot OK, -26/-86 sound voices have low pitches (btanb?) -->
+ <software name="pickupmj" supported="partial">
<description>Pick Up Mahjong Master</description>
<year>1994</year>
<publisher>アレックス (Allex)</publisher>
<info name="alt_title" value="ピックアップ麻雀マスター" />
<info name="release" value="199409xx" />
+ <info name="usage" value="Boot DOS 3.11 or higher from floppy, swap it with Disk A, run INSTALL.EXE and follow on screen instructions" />
+ <!-- Alt version without install: after swap just run MUSIC -> ALBIOS -> _SHELL A:<yen> B:<yen> (aka above AUTOEXEC.BAT output with 2 drives selected) -->
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Disk A"/>
<dataarea name="flop" size="1281968">
@@ -34067,12 +34177,17 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?)
</part>
</software>
- <software name="pickupy1">
+ <!-- Hangs at first agari on RS class (with keyboard beep feedback) -->
+ <!-- With EMS on and ALBIOS /P prints "cannot keep expand MEMORY", booting it fatal errors after title screen with EMM error. -->
+ <!-- "EMM386 privileged instruction violation #00 has occurred" -->
+ <software name="pickupy1" supported="no">
<description>Pick Up Yadokari Eisei Housoukyoku 1</description>
<year>1994</year>
<publisher>アレックス (Allex)</publisher>
<info name="alt_title" value="Pick UP やどかり衛星放送局1" />
<info name="release" value="19940420" />
+ <info name="usage" value="Boot DOS 3.11 or higher from floppy, swap it with Disk A, run INSTALL.EXE and follow on screen instructions" />
+ <!-- Alt version without install: after swap just run MUSIC -> ALBIOS -> YBS1 A:<yen> B:<yen> (aka above AUTOEXEC.BAT output with 2 drives selected) -->
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Disk A"/>
<dataarea name="flop" size="1265664">
@@ -34913,13 +35028,15 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?)
</part>
</software>
-<!-- PC-9821 specific, requires DOS and CD-ROM drive -->
- <software name="policena" supported="no">
+ <!-- PC-9821 specific, requires DOS and CD-ROM drive -->
+ <software name="policena" supported="partial">
<description>Policenauts</description>
<year>1994</year>
<publisher>コナミ (Konami)</publisher>
<info name="alt_title" value="ポリスノーツ" />
<info name="release" value="19940729" />
+ <!-- TODO: describe install instructions (known to be annoying) -->
+ <!-- TODO: why it has mixed interfaces? Do we even need the User Disk? -->
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="System Disk"/>
<dataarea name="flop" size="1265664">
@@ -35568,12 +35685,15 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?)
</part>
</software>
- <software name="ppersia">
+ <!-- boot OK on RS class, on VM class hangs with a black screen while attempting to access main menu from title. -->
+ <!-- (hangs on a slave upd7220 FIFO empty/vsync check that never occurs, regression?) -->
+ <software name="ppersia" supported="partial">
<description>Prince of Persia</description>
<year>1990</year>
<publisher>ブロダーバンドジャパン (Brøderbund Japan)</publisher>
<info name="alt_title" value="プリンス オブ ペルシャ" />
<info name="release" value="19900720" />
+ <info name="usage" value="On main menu insert a blank disk in drive 2 then select option 6 to create an user disk." />
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="1265664">
<rom name="main.fdi" size="1265664" crc="f4b2eabe" sha1="a885b2fa29ef33faacf6cbac696a1d566b6bb4e6" offset="0" />
@@ -35587,6 +35707,7 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?)
<publisher>ブロダーバンドジャパン (Brøderbund Japan)</publisher>
<info name="alt_title" value="プリンス オブ ペルシャ" />
<info name="release" value="19900720" />
+ <info name="usage" value="On main menu insert a blank disk in drive 2 then select option 6 to create an user disk." />
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Disk A"/>
<dataarea name="flop" size="1261568">
@@ -35607,6 +35728,7 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?)
<publisher>ブロダーバンドジャパン (Brøderbund Japan)</publisher>
<info name="alt_title" value="プリンス オブ ペルシャ" />
<info name="release" value="19900720" />
+ <info name="usage" value="On main menu insert a blank disk in drive 2 then select option 6 to create an user disk." />
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Disk A"/>
<dataarea name="flop" size="1265664">
@@ -35653,7 +35775,8 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?)
</part>
</software>
- <software name="prinmak2">
+ <!-- boot OK, randomly hangs on VM class (btanb?) -->
+ <software name="prinmak2" supported="partial">
<description>Princess Maker 2</description>
<year>1993</year>
<publisher>ガイナックス (Gainax)</publisher>
@@ -36218,7 +36341,8 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?)
</part>
</software>
- <software name="puyopuyo" supported="yes">
+ <!-- boot OK, beeps out when it's supposed to play samples (DAC1BIT) -->
+ <software name="puyopuyo" supported="partial">
<description>Puyo Puyo</description>
<year>1993</year>
<publisher>コンパイル (Compile)</publisher>
@@ -36271,7 +36395,10 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?)
</part>
</software>
- <software name="quarth">
+ <!-- boot OK on "vanilla" and VM classes -->
+ <!-- on RS class throws a "packet file is corrupt" during boot, btanb? -->
+ <!-- intro seems very slow, btanb (machine class dependant) -->
+ <software name="quarth" supported="partial">
<description>Quarth</description>
<year>1990</year>
<publisher>コナミ (Konami)</publisher>
@@ -37775,7 +37902,8 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?)
</part>
</software>
- <software name="rogue">
+ <!-- 2DD image, won't boot in vanilla class with 2DD BIOS enabled -->
+ <software name="rogue" supported="no">
<description>Rogue</description>
<year>1986</year>
<publisher>アスキー (ASCII)</publisher>
@@ -38033,12 +38161,15 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?)
</part>
</software>
+ <!-- boot OK -->
+ <!-- voice pitches are too slow (tested with -26 and -86) -->
<software name="rusty">
<description>Rusty</description>
<year>1993</year>
<publisher>シーラボ (C-lab)</publisher>
<info name="alt_title" value="ラスティ" />
<info name="release" value="19930716" />
+ <!-- Are those mislabeled? flop3 is actually 2 according to first disk swap on new game selection -->
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Disk 1"/>
<dataarea name="flop" size="1265664">
@@ -40434,7 +40565,8 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?)
</part>
</software>
- <software name="sorcer">
+ <!-- 2dd images, attempt to map them on 9801F (in drive 2 + BIOS enabled in Machine Config) causes access violation -->
+ <software name="sorcer" supported="no">
<description>Sorcerian</description>
<year>1988</year>
<publisher>日本ファルコム (Nihon Falcom)</publisher>
@@ -41143,7 +41275,8 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?)
</part>
</software>
- <software name="streetm2">
+ <!-- boot OK -->
+ <software name="streetm2" supported="yes">
<description>Street Mahjong 2</description>
<year>1996</year>
<publisher>ブラッキー (Blucky)</publisher>
@@ -42854,13 +42987,14 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?)
</part>
</software>
- <software name="atragon">
+ <!-- boot OK -->
+ <software name="atragon" supported="yes">
<description>Tekkou Kikan Atragon</description>
<year>1995</year>
<publisher>ムービック (Movic)</publisher>
<info name="alt_title" value="鉄甲旗艦アトラゴン" />
<info name="release" value="19950224" />
- <info name="usage" value="Run INSTALL.EXE from DOS" />
+ <info name="usage" value="Requires HDD install, run INSTALL.EXE from DOS" />
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Disk A"/>
<dataarea name="flop" size="1265664">
@@ -43635,13 +43769,14 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?)
</part>
</software>
-<!-- requires DOS and HD install -->
- <software name="tetr2bmb" supported="no">
+ <!-- boot OK -->
+ <software name="tetr2bmb" supported="yes">
<description>Tetris 2 + Bombliss</description>
<year>1994</year>
<publisher>B·P·S (Bullet-Proof Software)</publisher>
<info name="alt_title" value="スーパーテトリス2 + ボンブリス" />
<info name="release" value="19941015" />
+ <info name="usage" value="Needs MSDOS, run SETUP.EXE to install to HDD" />
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="1265664">
<rom name="super tetris 2 + bombliss (1994)(bps).fdi" size="1265664" crc="f087e8a4" sha1="3354a5702e7ba64508a69d2bf749791560922221" offset="0" />
@@ -43864,7 +43999,8 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?)
</part>
</software>
- <software name="tokio">
+ <!-- boot OK -->
+ <software name="tokio" supported="yes">
<description>Tokio - Tokyo-to Dai 24 Ku</description>
<year>1992</year>
<publisher>アートディンク (Artdink)</publisher>
@@ -44720,7 +44856,8 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?)
</part>
</software>
- <software name="twiligh3">
+ <!-- 2dd images, attempt to map them on 9801F (in drive 2 + BIOS enabled in Machine Config) causes access violation -->
+ <software name="twiligh3" supported="no">
<description>Twilight Zone III - Nagakute Amai Yoru</description>
<year>1989</year>
<publisher>グレイト (Great)</publisher>
@@ -49856,7 +49993,7 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?)
</part>
</software>
- <!-- The mouse cursor doesn't work correctly -->
+ <!-- boot OK, don't recognize disk swaps (option 1 -> 1) -->
<software name="choubaku" supported="no">
<description>Chou·Baku</description>
<year>1993</year>
@@ -49927,8 +50064,10 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?)
</part>
</software>
- <software name="clipper">
+ <!-- boot OK -->
+ <software name="clipper" supported="yes">
<description>Clipper - Takepon no Ochimono Puzzle</description>
+ <!-- at least 1992 -->
<year>19??</year>
<publisher>&lt;unknown&gt;</publisher>
<part name="flop1" interface="floppy_5_25">
@@ -49938,7 +50077,8 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?)
</part>
</software>
- <software name="compecon">
+ <!-- boot OK -->
+ <software name="compecon" supported="yes">
<description>Computer Aided Economics</description>
<year>19??</year>
<publisher>&lt;unknown&gt;</publisher>
@@ -50605,7 +50745,8 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?)
</part>
</software>
- <software name="f1datad">
+ <!-- boot OK -->
+ <software name="f1datad" supported="yes">
<description>F-1 Databox (Demo)</description>
<year>1990</year>
<publisher>リード・レックス (Reed Rex)</publisher>
@@ -52878,6 +53019,7 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?)
</part>
</software>
+ <!-- doesn't recognize disk swaps -->
<software name="mezaset2" supported="no">
<description>Mezase! Top Player - Tennis Tennis 2</description>
<year>1993</year>
@@ -54805,7 +54947,8 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?)
</part>
</software>
- <software name="ttennis" supported="no">
+ <!-- boot OK -->
+ <software name="ttennis" supported="yes">
<description>Tennis Tennis</description>
<year>1992</year>
<publisher>日本ソフテック (Nihon Softec)</publisher>
@@ -57767,6 +57910,7 @@ SPACE EMPIRE
</dataarea>
</part>
</software>
+
<!-- Disk changes don't work -->
<software name="elle" supported="no">
<description>Elle</description>
@@ -61659,7 +61803,8 @@ SPACE EMPIRE
</part>
</software>
- <software name="ranmahd" supported="no">
+ <!-- boot OK -->
+ <software name="ranmahd" supported="yes">
<description>Ranma½ - Hiryuu Densetsu</description>
<year>1991</year>
<publisher>ボーステック (Bothtec)</publisher>
@@ -67671,7 +67816,8 @@ doujin?!?
</part>
</software>
- <software name="pentium">
+ <!-- boot OK -->
+ <software name="pentium" supported="yes">
<description>Pentium</description>
<year>19??</year>
<publisher>&lt;doujin&gt;</publisher>
@@ -68223,10 +68369,13 @@ doujin?!?
</part>
</software>
- <software name="tokigirl" supported="no">
+ <!-- boot OK -->
+ <software name="tokigirl" supported="yes">
<description>Tokimeki Girls</description>
- <year>19??</year>
+ <!-- 94 12.15 from game title -->
+ <year>1994</year>
<publisher>&lt;doujin&gt;</publisher>
+ <!-- CG Matuoto Noriyuki / Cheng Soft? -->
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="1261568">
<rom name="tokimeki_girls.hdm" size="1261568" crc="c7412acf" sha1="2f5ceee89e374c8854c04c327e31bc4b57623d78" offset="0" />
@@ -68234,8 +68383,9 @@ doujin?!?
</part>
</software>
- <software name="tonosatn">
- <description>Tono-sama VS Satan</description>
+ <!-- boot OK, no sound (very unlikely to have it, btanb) -->
+ <software name="tonosatn" supported="yes">
+ <description>Tono-sama VS Satan (v1.0)</description>
<year>1995</year>
<publisher>&lt;doujin&gt;</publisher>
<info name="author" value="TTC" />
@@ -68933,8 +69083,10 @@ Same as Police Quest 2 - Quest for Glory stand-alone disks
</part>
</software>
-<!-- 3'5 floppy, compared to the 5'25" one used in Disc Station 10 -->
- <software name="runners">
+ <!-- 3'5 floppy, compared to the 5'25" one used in Disc Station 10 -->
+ <!-- "I/O error", dir issued in DOS goes "(A)bort/(R)etry/(F)ail" -->
+ <!-- double height bitmap on non-interlace mode -->
+ <software name="runners" supported="no">
<description>Runner's High</description>
<year>1996</year>
<publisher>コンパイル (Compile)</publisher>
@@ -68945,7 +69097,8 @@ Same as Police Quest 2 - Quest for Glory stand-alone disks
</part>
</software>
- <software name="transbor">
+ <!-- boot OK, beeps on intro/start of stages (DAC1BIT) -->
+ <software name="transbor" supported="partial">
<description>TransbOrder</description>
<year>1993</year>
<publisher>コンパイル (Compile)</publisher>
diff --git a/hash/pc98_cd.xml b/hash/pc98_cd.xml
index 8158371c854..d10cdb614c2 100644
--- a/hash/pc98_cd.xml
+++ b/hash/pc98_cd.xml
@@ -2115,7 +2115,9 @@ license:CC0
</part>
</software>
- <software name="fh2tag">
+ <!-- boot OK, no sound (tested -26 and -86 on 98RS, TBD: retest in 9821) -->
+ <!-- Has Tuned Heart demo (which also has no sound and hangs at first battle) -->
+ <software name="fh2tag" supported="partial">
<!--
Origin: redump.org
<rom name="Finish Hold 2 - Tag (Japan).cue" size="93" crc="7cf64221" md5="a2dc55a24539aab103701e08562253fe" sha1="8a49ecb6010ea76deb1bcc3c84a0cfc437de46e3"/>
@@ -3936,7 +3938,9 @@ license:CC0
</part>
</software>
- <software name="pnauts">
+ <!-- Can randomly lock up on prolonged sessions (1+ hours) -->
+ <!-- Most likely down to -86 misfired irq (stuck note) -->
+ <software name="pnauts" supported="partial">
<!--
Origin: redump.org
<rom name="Policenauts (Japan).cue" size="591" crc="33715417" md5="ae17a348af34b2f7bddd0695d976f61c" sha1="2e41266a1a1e82eaa6a2b85858aec7af8ad93e33"/>
diff --git a/src/devices/bus/cbus/pc9801_cbus.cpp b/src/devices/bus/cbus/pc9801_cbus.cpp
index 0287404d011..b92b58b19fc 100644
--- a/src/devices/bus/cbus/pc9801_cbus.cpp
+++ b/src/devices/bus/cbus/pc9801_cbus.cpp
@@ -2,7 +2,12 @@
// copyright-holders:Angelo Salese
/**********************************************************************
- CCBUS Slot interface for PC-98xx family
+ C-bus slot interface for PC-98xx family
+
+ a.k.a. NEC version of the ISA bus.
+
+ TODO:
+ - stub interface, checkout what actually belongs here.
**********************************************************************/
@@ -15,7 +20,7 @@
// GLOBAL VARIABLES
//**************************************************************************
-DEFINE_DEVICE_TYPE(PC9801CBUS_SLOT, pc9801_slot_device, "pc9801_slot", "PC-9801 sound cbus slot")
+DEFINE_DEVICE_TYPE(PC9801CBUS_SLOT, pc9801_slot_device, "pc9801_slot", "PC-9801 C-bus slot")
@@ -110,7 +115,7 @@ template<typename R, typename W> void pc9801_slot_device::install_io(offs_t star
m_iospace->install_readwrite_handler(start, end, rhandler, whandler, 0xffffffff);
break;
default:
- fatalerror("PC-9801-26: Bus width %d not supported\n", buswidth);
+ fatalerror("PC-9801 C-bus: Bus width %d not supported\n", buswidth);
}
}
diff --git a/src/devices/video/upd7220.cpp b/src/devices/video/upd7220.cpp
index d1b8a95e264..19bd0c083a1 100644
--- a/src/devices/video/upd7220.cpp
+++ b/src/devices/video/upd7220.cpp
@@ -25,7 +25,9 @@
- QX-10 diagnostic test misses the zooming factor (external pin);
- compis2 SAD address for bitmap is 0x20000 for whatever reason (presumably missing banking);
- A5105 has a FIFO bug with the RDAT, should be a lot larger when it scrolls up.
- The problem is that DMA-ing with RDAT/WDAT shouldn't be instant;
+ Can be fixed with a DRDY mechanism for RDAT/WDAT;
+ - Some later SWs on PC-98 throws "Invalid command byte 05" (zettmj on Epson logo),
+ actual undocumented command to reset something?
- honor visible area
- wide mode (32-bit access)
diff --git a/src/mame/drivers/pc88va.cpp b/src/mame/drivers/pc88va.cpp
index 196c4e122cc..e21224fffc9 100644
--- a/src/mame/drivers/pc88va.cpp
+++ b/src/mame/drivers/pc88va.cpp
@@ -10,18 +10,18 @@
Special thanks to Fujix for his documentation translation help
TODO:
- - Does this system have one or two CPUs? I'm prone to think that the V30 does all the job
- and then enters into z80 compatible mode for PC-8801 emulation.
- What exact kind of garbage happens if you try to enable both direct and palette color
modes to a graphic layer?
+ - unemulated upd71071 demand mode;
- What is exactly supposed to be a "bus slot"?
- fdc "intelligent mode" has 0x7f as irq vector ... 0x7f is ld a,a and it IS NOT correctly
hooked up by the current z80 core
- PC-88VA stock version has two bogus opcodes. One is at 0xf0b15, another at 0xf0b31.
Making a patch for the latter makes the system to jump into a "DIP-Switch" display.
bp f0b31,pc=0xf0b36,g
- - unemulated upd71071 demand mode.
- - Fix floppy motor hook-up;
+ Update: it never reaches latter with V30->V50 CPU switch fix;
+ - Fix floppy motor hook-up (floppy believes to be always in even if empty drive);
+ - Support for PC8801 compatible mode & PC80S31K (floppy interface);
********************************************************************************************/
@@ -1573,7 +1573,7 @@ void pc88va_state::dma_memw_cb(offs_t offset, uint8_t data)
void pc88va_state::pc88va(machine_config &config)
{
- V30(config, m_maincpu, 8000000); /* 8 MHz */
+ V50(config, m_maincpu, 8000000); // μPD9002, aka V30 + μPD70008AC (for PC8801 compatibility mode)
m_maincpu->set_addrmap(AS_PROGRAM, &pc88va_state::pc88va_map);
m_maincpu->set_addrmap(AS_IO, &pc88va_state::pc88va_io_map);
m_maincpu->set_vblank_int("screen", FUNC(pc88va_state::pc88va_vrtc_irq));
diff --git a/src/mame/drivers/pc9801.cpp b/src/mame/drivers/pc9801.cpp
index 46bc9f517c8..86df47a29c7 100644
--- a/src/mame/drivers/pc9801.cpp
+++ b/src/mame/drivers/pc9801.cpp
@@ -1,126 +1,64 @@
// license:BSD-3-Clause
// copyright-holders:Angelo Salese,Carl
-/***************************************************************************************************
+/**************************************************************************************************
PC-9801 (c) 1981 NEC
driver by Angelo Salese
TODO:
- - move sound bios ROMs into pc9801_26 / pc9801_86 devices
- - proper 8251 uart hook-up on keyboard
+ - proper 8251 uart hook-up on keyboard;
- SASI/SCSI support;
- - Write a PC80S31K device (also used on PC-8801 and PC-88VA, it's the FDC + Z80 sub-system);
- - Finish DIP-Switches support
- - text scrolling
- - GRCG+
- - rewrite using slot devices
- - some later SWs put "Invalid command byte 05" (Absolutely Mahjong on Epson logo)
- - investigate on POR bit
- - test 2dd more
- - clean-ups/split into devices.
+ - Finish DIP-Switches support;
+ - text scrolling, upd52611 (cfr. clipping in edge & arcus2, madoum* too?);
+ - AGDC emulation, upd72120;
+ - CMT support (-13/-36 cbus only, identify which models mounted it off the bat);
+ - Write a PC80S31K device for 2d type floppies
+ (also used on PC-8801 and PC-88VA, it's the FDC + Z80 sub-system);
+ - Anything post-PC9801E/F/M should overwrite "speaker_device" to actually use a
+ dac_bit_interface instead (cfr. DAC1BIT in SW list);
+ - clean-ups & split into separate devices and driver flavours;
+ - derive romsets by default options (cfr. 3.5 2HD floppies vs. default 5.25, 2D/2DD etc.);
+ - Remove kludge for POR bit in a20_ctrl_w fn;
+ - floppy sounds never silences when drive is idle (disabled for the time being);
+
+ TODO (PC-9801F)
+ - kanji port 0xa9 readback is broken for several games (balpower, lovelyho).
TODO (PC-9801RS):
- - extra features;
- - keyboard shift doesn't seem to disable properly;
+ - several unemulated extra f/f features;
+ - keyboard shift doesn't seem to disable properly (fixed by now?);
+ - Several games hangs with stuck note by misfired/not catched up -26 / -86 irq;
- clean-up duplicate code;
TODO (PC-9821):
- fix CPU for some clones;
- "cache error"
- - undumped IDE ROM, kludged to work
- - Compatibility is untested;
+ - undumped IDE ROM, kludged to work;
TODO (PC-9821AS)
- IPL ROM banking contradicts greatly from the other machines;
- TODO: (PC-486MU)
- - Tries to read port C of i8255_sys (-> 0x35) at boot without setting up the control
- port. This causes a jump to invalid program area;
- - Dies on ARTIC check;
- - Presumably one ROM is undumped?
+ TODO (PC-386M):
+ - "ERR:BR" at boot (BIOS loader error).
+ Executes some code in text VRAM area (PC=$a006e), trying to setup a writeable RAM bank
+ (shadow RAM even?) to IPL window, I/O $c06 seems to be the control port for it;
+
+ TODO: (PC-486SE/PC-486MU):
+ - Verify ROM bankswitch;
+ On PC-486SE sets up what is normally IPL bankswitch at PC=0xf5115, successive opcode
+ is a jmp 0xf8000, pretty unlikely it delays bankswitch so assume it reloads
+ the same bank.
+ - Fix POR/ROM bankswitch on soft resets.
+ - Eventually errors with a ERR:VR (GFX VRAM);
TODO: (PC-9821AP)
- - No way to exit the initial loop. Code looks broken/bad dump?
-
- floppy issues TODO (* denotes actually fixed, to be moved into specific sheet)
- - 46okunen (DOS not booting / disk swap);
- * ckrynn
- - aishogi: (asserts upon loading, 3'5 image?)
- - akitsuka: (works in PC-9801RS only)
- * alice
- * genghis
- * arcshu
- * arcus2
- * artjigs1 / artjigs2 / artjigs3
- * Atlantia (disk swap?)
- - azusa108 (disk i/o error)
- * bacta2
- - btech (disk swap?)
- - baycity
- - beast (keeps reading command sense)
- * beast2
- * bellsave (disk swap? select B on config menu)
- * biblems2 (at new game loading)
- * birdywld
-
- * Bokosuka Wars
- * jangou2: floppy fails to load after the title screen;
- - runners (size assert)
- - Sorcerian (2dd image)
- - Twilight Zone 3 (2dd image)
-
- List of per-game TODO:
- - 4dboxing: inputs are unresponsive;
- - 4dboxing: crashes after user disk creation (regression);
- - agumixsl: non-interlace mode doesn't resize graphics, has rectangle selection bugs (note: needs GDC = 5 MHz to boot);
- - agenesis: fails loading, attempting to read IDE RAM switch port;
- - alice: doesn't set bitmap interlace properly, can't do disk swaps via the File Manager;
- - applecl1: can't pass hands apparently;
- - arctic, fsmoon: Doesn't detect sound board (tied to 0x00ec ports);
- - arcus2: has intro glitches;
- - artjigs*: some text doesn't appear? Namely under the puzzles and when you clear one;
- - atragon: HDD install disk swap doesn't work?
- - asokokof: black screen with BGM, executes invalid opcode (previous note "waits at 0x225f6");
- - arquelph: beeps out at initial sound check, no voice samples, extra sound board tested;
- - akitsuka: could not setup "initial data" (regression);
- - bandkun: can't install to HDD, has unemulated sound boards in settings (Roland MT-32 & D-10/D-110, Kawai MSB-98, Korg M1, MIDI);
- - biblems2: initial GLODIA logo uses raster effects?
- - bishohzx: Soft House logo uses pseudo-ROZ effect (?), no title screen graphics?
- - bishotsu: beeps out before game (missing sound board?), doesn't draw some text?
-
- - deflektr: no sound, moans about a DIP-SW setting during loading, has timing issues (keyboard being too fast on PC-9801RS);
- - edge: has gfx glitch when intro scrolls to top-left;
- - edge: user disk creation screen is offset?
- - idolsaga: Moans with a "(program) ended. remove the floppy disk and turn off the power."
- - karateka: no sound;
- - lovelyho: Doesn't show kanjis in PC-9801F version (tries to read them thru the 0xa9 port);
- - madoum1, madoum2, madoum3: doesn't display bitmap gfxs during gameplay;
- - quarth: sound cuts off at title screen, doesn't work on 9801rs (bogus "corrupt .exe" detected);
- - prinmak2, tim: cursor stays stuck when using mouse (works with keyboard);
- - puyopuyo: beeps out when it's supposed to play samples, Not supposed to use ADPCM, is it a PIT issue?
- - runners: wrong double height on the title screen;
- - rusty: black stripes when scrolling;
- - rusty: voice pitches are too slow (tested with -26 and -86);
- - win211: EGC drawing issue (byte wide writes?)
- - win31: doesn't boot at
-
- per-game TODO (Dounjishi SW):
- - Absolutely Mahjong: Transitions are too fast.
-
- per-game TODO (PC-9821):
- - Battle Skin Panic: gfx bugs at the Gainax logo, it crashes after it;
- - Policenauts: CD-ROM drive not found;
-
- Notes:
- - annivers: GRPH (ALT) key cycles through different color schemes (normal, b&w, legacy);
- - Animahjong V3 makes advantage of the possibility of installing 2 sound boards, where SFX and BGMs are played on separate chips.
- - Apple Club 1/2 needs data disks to load properly;
- - Beast Lord: needs a titan.fnt, in MS-DOS
- - fhtag2: product key is 001J0283TA 100001
- - To deprotect BASIC modules set 0xcd7 in ram to 0
-
-========================================================================================
+ - No way to exit the initial loop. Code looks broken, bad dump?
+
+ TODO: (PC-9821Xa16/PC-9821Ra20/PC-9821Ra333)
+ - "MICON ERROR" at POST (generic HW fault, PCI?);
+
+===================================================================================================
This series features a huge number of models released between 1982 and 1997. They
were not IBM PC-compatible, but they had similar hardware (and software: in the
@@ -302,6 +240,8 @@
For more info (e.g. optional hardware), see http://www.geocities.jp/retro_zzz/machines/nec/9801/mdl98cpu.html
+ Epson Series
+ http://www.pc-9800.net/db_epson/desk_index.htm
PC-9821 Series
@@ -312,7 +252,7 @@
PC-9821Es (1994) - aka 98FINE, desktop computer with integrated LCD, successor of the PC-98T
PC-9821X series (1994->1995) - aka 98MATE X, desktop computers, Pentium based
PC-9821V series (1995) - aka 98MATE Valuestar, desktop computers, Pentium based
- PC-9821S series (1995->2996) - aka 98Pro, tower computers, PentiumPro based
+ PC-9821S series (1995->1996) - aka 98Pro, tower computers, PentiumPro based
PC-9821R series (1996->2000) - aka 98MATE R, desktop & tower & server computers, various CPU
PC-9821C200 (1997) - aka CEREB, desktop computer, Pentium MMX based
PC-9821 Ne/Ns/Np/Nm (1993->1995) - aka 98NOTE, laptops, 486 based
@@ -387,7 +327,7 @@ Keyboard TX commands:
0x9d keyboard LED settings
0x9f keyboard ID
-****************************************************************************************************/
+**************************************************************************************************/
#include "emu.h"
#include "includes/pc9801.h"
@@ -984,10 +924,12 @@ void pc9801_state::pc9801rs_a0_w(offs_t offset, uint8_t data)
case 0x0e: m_analog16.b[m_analog16.pal_entry] = data & 0xf; break;
}
- m_palette->set_pen_color((m_analog16.pal_entry)+0x10,
- pal4bit(m_analog16.r[m_analog16.pal_entry]),
- pal4bit(m_analog16.g[m_analog16.pal_entry]),
- pal4bit(m_analog16.b[m_analog16.pal_entry]));
+ m_palette->set_pen_color(
+ m_analog16.pal_entry + 0x10,
+ pal4bit(m_analog16.r[m_analog16.pal_entry]),
+ pal4bit(m_analog16.g[m_analog16.pal_entry]),
+ pal4bit(m_analog16.b[m_analog16.pal_entry])
+ );
return;
}
@@ -1175,10 +1117,12 @@ void pc9801_state::pc9821_a0_w(offs_t offset, uint8_t data)
case 0x0e: m_analog256.b[m_analog256.pal_entry] = data & 0xff; break;
}
- m_palette->set_pen_color((m_analog256.pal_entry)+0x20,
- m_analog256.r[m_analog256.pal_entry],
- m_analog256.g[m_analog256.pal_entry],
- m_analog256.b[m_analog256.pal_entry]);
+ m_palette->set_pen_color(
+ m_analog256.pal_entry + 0x20,
+ m_analog256.r[m_analog256.pal_entry],
+ m_analog256.g[m_analog256.pal_entry],
+ m_analog256.b[m_analog256.pal_entry]
+ );
return;
}
@@ -1673,10 +1617,10 @@ static INPUT_PORTS_START( pc9801 )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_START("MOUSE_X")
- PORT_BIT( 0xff, 0x00, IPT_MOUSE_X ) PORT_RESET PORT_SENSITIVITY(30) PORT_KEYDELTA(30)
+ PORT_BIT( 0xff, 0x00, IPT_MOUSE_X ) PORT_SENSITIVITY(30) PORT_KEYDELTA(30)
PORT_START("MOUSE_Y")
- PORT_BIT( 0xff, 0x00, IPT_MOUSE_Y ) PORT_RESET PORT_SENSITIVITY(30) PORT_KEYDELTA(30)
+ PORT_BIT( 0xff, 0x00, IPT_MOUSE_Y ) PORT_SENSITIVITY(30) PORT_KEYDELTA(30)
PORT_START("MOUSE_B")
PORT_BIT(0x0f, IP_ACTIVE_LOW, IPT_UNUSED )
@@ -1938,20 +1882,45 @@ void pc9801_state::ppi_sys_portc_w(uint8_t data)
m_beeper->set_state(!(data & 0x08));
}
+/*
+ * Mouse 8255 I/F
+ *
+ * Port A:
+ * x--- ---- LEFT mouse button
+ * -x-- ---- MIDDLE mouse button
+ * \- Undocumented, most PC98 mice don't have it
+ * --x- ---- RIGHT mouse button
+ * ---? ---- <unused>
+ * ---- xxxx MD3-0 mouse direction latch
+ *
+ * Port C:
+ *
+ * x--- ---- HC Latch Mode (1=read latch, 0=read delta)
+ * \- on 0->1 transition reset delta
+ * -x-- ---- SXY Axis select (1=Y 0=X)
+ * --x- ---- SHL Read nibble select (1) upper (0) lower
+ * ---x ---- INT # (1) disable (0) enable
+ *
+ * Reading Port B and Port C low nibble are misc DIPSW selectors,
+ * their meaning diverges on XA/XL/RL classes vs. the rest.
+ *
+ */
+
uint8_t pc9801_state::ppi_mouse_porta_r()
{
- uint8_t res;
- uint8_t isporthi;
- const char *const mousenames[] = { "MOUSE_X", "MOUSE_Y" };
-
- res = ioport("MOUSE_B")->read() & 0xf0;
- isporthi = ((m_mouse.control & 0x20) >> 5)*4;
+ uint8_t res = ioport("MOUSE_B")->read() & 0xf0;
+ const uint8_t isporthi = ((m_mouse.control & 0x20) >> 5)*4;
- if((m_mouse.control & 0x80) == 0)
- res |= ioport(mousenames[(m_mouse.control & 0x40) >> 6])->read() >> (isporthi) & 0xf;
+ if ((m_mouse.control & 0x80) == 0)
+ {
+ if (m_mouse.control & 0x40)
+ res |= (m_mouse.dy >> isporthi) & 0xf;
+ else
+ res |= (m_mouse.dx >> isporthi) & 0xf;
+ }
else
{
- if(m_mouse.control & 0x40)
+ if (m_mouse.control & 0x40)
res |= (m_mouse.ly >> isporthi) & 0xf;
else
res |= (m_mouse.lx >> isporthi) & 0xf;
@@ -1973,10 +1942,24 @@ void pc9801_state::ppi_mouse_portb_w(uint8_t data)
void pc9801_state::ppi_mouse_portc_w(uint8_t data)
{
- if((m_mouse.control & 0x80) == 0 && data & 0x80)
+ // fsmoon: 0x00 -> 0x80 -> 0xa0 -> 0xc0 -> 0xf0
+ // (read latch as relative)
+ // prinmak2: 0x00 -> 0x20 -> 0x40 -> 0x60 -> 0x60
+ // (keeps reading "delta" but never reset it, absolute mode)
+ // biblems2: 0x0f -> 0x2f -> 0x4f -> 0x6f -> 0xef
+ // (latches a delta reset then reads delta diff, relative mode)
+
+ const u8 mouse_x = ioport("MOUSE_X")->read();
+ const u8 mouse_y = ioport("MOUSE_Y")->read();
+ m_mouse.dx = (mouse_x - m_mouse.prev_dx) & 0xff;
+ m_mouse.dy = (mouse_y - m_mouse.prev_dy) & 0xff;
+
+ if ((m_mouse.control & 0x80) == 0 && data & 0x80)
{
- m_mouse.lx = ioport("MOUSE_X")->read();
- m_mouse.ly = ioport("MOUSE_Y")->read();
+ m_mouse.lx = m_mouse.dx & 0xff;
+ m_mouse.ly = m_mouse.dy & 0xff;
+ m_mouse.prev_dx = mouse_x;
+ m_mouse.prev_dy = mouse_y;
}
m_mouse.control = data;
@@ -2135,6 +2118,7 @@ MACHINE_RESET_MEMBER(pc9801_state,pc9801_common)
m_mouse.control = 0xff;
m_mouse.freq_reg = 0;
m_mouse.freq_index = 0;
+ m_mouse.lx = m_mouse.ly = m_mouse.prev_dx = m_mouse.prev_dy = m_mouse.dx = m_mouse.dy = 0;
m_dma_autoinc[0] = m_dma_autoinc[1] = m_dma_autoinc[2] = m_dma_autoinc[3] = 0;
memset(&m_egc, 0, sizeof(m_egc));
}
@@ -2233,6 +2217,13 @@ void pc9801_state::pc9801_keyboard(machine_config &config)
m_keyb->irq_wr_callback().set(m_pic1, FUNC(pic8259_device::ir1_w));
}
+void pc9801_state::pc9801_pit_clock(machine_config &config, const XTAL clock)
+{
+ m_pit8253->set_clk<0>(clock);
+ m_pit8253->set_clk<1>(clock);
+ m_pit8253->set_clk<2>(clock);
+}
+
void pc9801_state::pc9801_mouse(machine_config &config)
{
i8255_device &ppi_mouse(I8255(config, "ppi8255_mouse"));
@@ -2436,7 +2427,6 @@ void pc9801_state::pc9801(machine_config &config)
PALETTE(config, m_palette, FUNC(pc9801_state::pc9801_palette), 16);
}
-
void pc9801_state::pc9801rs(machine_config &config)
{
I386SX(config, m_maincpu, MAIN_CLOCK_X1*8); // unknown clock.
@@ -2499,6 +2489,8 @@ void pc9801_state::pc9801bx2(machine_config &config)
MCFG_MACHINE_START_OVERRIDE(pc9801_state, pc9801bx2)
}
+// TODO: setter for DMAC clock should follow up whatever is the CPU clock
+
void pc9801_state::pc9821(machine_config &config)
{
pc9801rs(config);
@@ -2542,12 +2534,96 @@ void pc9801_state::pc9821ap2(machine_config &config)
void pc9801_state::pc9821v20(machine_config &config)
{
pc9821(config);
- PENTIUM(config.replace(), m_maincpu, 32000000); // unknown clock
+ PENTIUM(config.replace(), m_maincpu, 32000000); // unknown clock, definitely not 32 MHz
+ m_maincpu->set_addrmap(AS_PROGRAM, &pc9801_state::pc9821_map);
+ m_maincpu->set_addrmap(AS_IO, &pc9801_state::pc9821_io);
+ m_maincpu->set_irq_acknowledge_callback("pic8259_master", FUNC(pic8259_device::inta_cb));
+}
+
+void pc9801_state::pc9821xa16(machine_config &config)
+{
+ pc9821(config);
+ PENTIUM(config.replace(), m_maincpu, 166000000); // Pentium P54C
+ m_maincpu->set_addrmap(AS_PROGRAM, &pc9801_state::pc9821_map);
+ m_maincpu->set_addrmap(AS_IO, &pc9801_state::pc9821_io);
+ m_maincpu->set_irq_acknowledge_callback("pic8259_master", FUNC(pic8259_device::inta_cb));
+}
+
+void pc9801_state::pc9821ra20(machine_config &config)
+{
+ pc9821(config);
+ PENTIUM_PRO(config.replace(), m_maincpu, XTAL(200'000'000));
+ m_maincpu->set_addrmap(AS_PROGRAM, &pc9801_state::pc9821_map);
+ m_maincpu->set_addrmap(AS_IO, &pc9801_state::pc9821_io);
+ m_maincpu->set_irq_acknowledge_callback("pic8259_master", FUNC(pic8259_device::inta_cb));
+}
+
+void pc9801_state::pc9821ra333(machine_config &config)
+{
+ pc9821(config);
+ const double xtal = 333000000;
+ PENTIUM2(config.replace(), m_maincpu, xtal); // actually a Celeron
m_maincpu->set_addrmap(AS_PROGRAM, &pc9801_state::pc9821_map);
m_maincpu->set_addrmap(AS_IO, &pc9801_state::pc9821_io);
m_maincpu->set_irq_acknowledge_callback("pic8259_master", FUNC(pic8259_device::inta_cb));
+
+ // 128KB CPU cache RAM
+ // Trident TGUI9682XGi + integrated 98 gfx card
+ // 3x cbus + 2x PCI slots
+ // 6GB HDD
+ // built-in ethernet 100BASE-TX/10BASE-T
+
+}
+
+// Epson clones
+// TODO: definitely runs on their own state machine
+// (verify if for instance they need EGC and what kind of FM board they needs up)
+
+void pc9801_state::pc386m(machine_config &config)
+{
+ pc9801rs(config);
+// I386SX(config.replace(), m_maincpu, 16000000); // i386SX 16MHz, switchable to 10/6 MHz
+// m_maincpu->set_addrmap(AS_PROGRAM, &pc9801_state::pc9801rs_map);
+// m_maincpu->set_addrmap(AS_IO, &pc9801_state::pc9801rs_io);
+// m_maincpu->set_irq_acknowledge_callback("pic8259_master", FUNC(pic8259_device::inta_cb));
+ // RAM: 640KB + 14.6MB max
+ // 2 3.5 floppy drives
+ // ...
+}
+
+void pc9801_state::pc486se(machine_config &config)
+{
+ pc9821(config);
+ const XTAL xtal = XTAL(25'000'000);
+ I486(config.replace(), m_maincpu, xtal); // i486SX, switchable to 10/5 MHz, supports overdrive
+ m_maincpu->set_addrmap(AS_PROGRAM, &pc9801_state::pc9821_map);
+ m_maincpu->set_addrmap(AS_IO, &pc9801_state::pc9821as_io);
+ m_maincpu->set_irq_acknowledge_callback("pic8259_master", FUNC(pic8259_device::inta_cb));
+
+ pc9801_pit_clock(config, xtal/8); // unknown, passes "ERR:TM" test
+
+ // RAM: 1.6 MB (!) + 17.6 max
+ // "dedicated internal memory slot x 1"
+ // "dedicated video board" slot
}
+void pc9801_state::pc486mu(machine_config &config)
+{
+ pc9821(config);
+ const XTAL xtal = XTAL(33'000'000);
+ I486(config.replace(), m_maincpu, xtal); // i486SX, switchable to I386DX 10MHz/5MHz, Pentium ODP compatible
+ m_maincpu->set_addrmap(AS_PROGRAM, &pc9801_state::pc9821_map);
+ m_maincpu->set_addrmap(AS_IO, &pc9801_state::pc9821as_io);
+ m_maincpu->set_irq_acknowledge_callback("pic8259_master", FUNC(pic8259_device::inta_cb));
+
+ pc9801_pit_clock(config, xtal/8); // unknown, passes "ERR:TM" test
+
+ // CL-GD5428
+ // RAM: 5.6 + 61.6MB max
+ // 2 x 3.5 floppy drives
+}
+
+
/* took from "raw" memory dump, uncomment ROM_FILL if you want to play with it */
#define LOAD_IDE_ROM \
ROM_REGION( 0x4000, "ide", ROMREGION_ERASEVAL(0xcb) ) \
@@ -2649,7 +2725,7 @@ ROM_START( pc9801rs )
ROM_LOAD( "itf_rs.rom", 0x10000, 0x08000, CRC(c1815325) SHA1(a2fb11c000ed7c976520622cfb7940ed6ddc904e) )
ROM_LOAD( "bios_rs.rom", 0x18000, 0x18000, BAD_DUMP CRC(315d2703) SHA1(4f208d1dbb68373080d23bff5636bb6b71eb7565) )
- /* following is an emulator memory dump, should be checked and nuked */
+ /* following is an emulator memory dump, should be checked and eventually nuked if nothing worth is there */
ROM_REGION( 0x100000, "memory", 0 )
ROM_LOAD( "00000.rom", 0x00000, 0x8000, CRC(6e299128) SHA1(d0e7d016c005cdce53ea5ecac01c6f883b752b80) )
ROM_LOAD( "c0000.rom", 0xc0000, 0x8000, CRC(1b43eabd) SHA1(ca711c69165e1fa5be72993b9a7870ef6d485249) ) // 0xff everywhere
@@ -2669,7 +2745,7 @@ ROM_END
/*
BX2/U2 - 486SX - (should be 33, but "dumper" note says it's 25 MHz)
-Yet another franken-dump done with a lame program, shrug
+Yet another franken-romset done with direct memory dump, shrug
*/
@@ -2812,7 +2888,8 @@ ROM_START( pc9821ap2 )
ROM_SYSTEM_BIOS(1, "phd0102", "PHD0102")
ROMX_LOAD( "phd0102.rom", 0x000000, 0x80000, CRC(3036774c) SHA1(59856a348f156adf5eca06326f967aca54ff871c), ROM_BIOS(1) )
- ROM_REGION16_LE( 0x30000, "ipl", ROMREGION_ERASEFF ) // TODO: identify ROM banks
+ ROM_REGION16_LE( 0x30000, "ipl", ROMREGION_ERASEFF )
+ // TODO: identify ROM banks
ROM_COPY( "biosrom", 0x20000, 0x10000, 0x08000 )
ROM_COPY( "biosrom", 0x30000, 0x18000, 0x18000 )
@@ -2841,53 +2918,115 @@ ROM_START( pc9821ne )
ROM_END
/*
-Epson PC-486MU - 486 based, unknown clock
+98MULTi Ce2 - 80486SX 25
*/
-ROM_START( pc486mu )
+ROM_START( pc9821ce2 )
ROM_REGION16_LE( 0x30000, "ipl", ROMREGION_ERASEFF )
- ROM_LOAD( "bios_486mu.rom", 0x00000, 0x18000, BAD_DUMP CRC(57b5d701) SHA1(15029800842e93e07615b0fd91fb9f2bfe3e3c24))
- ROM_RELOAD( 0x18000, 0x18000 ) // missing rom?
+ ROM_LOAD( "itf_ce2.rom", 0x10000, 0x008000, CRC(273e9e88) SHA1(9bca7d5116788776ed0f297bccb4dfc485379b41) )
+ ROM_LOAD( "bios_ce2.rom", 0x18000, 0x018000, BAD_DUMP CRC(76affd90) SHA1(910fae6763c0cd59b3957b6cde479c72e21f33c1) )
ROM_REGION( 0x80000, "chargen", 0 )
- ROM_LOAD( "font_486mu.rom", 0x0000, 0x46800, CRC(456d9fc7) SHA1(78ba9960f135372825ab7244b5e4e73a810002ff))
+ ROM_LOAD( "font_ce2.rom", 0x00000, 0x046800, BAD_DUMP CRC(d1c2702a) SHA1(e7781e9d35b6511d12631641d029ad2ba3f7daef) )
LOAD_KANJI_ROMS
LOAD_IDE_ROM
ROM_END
/*
-98MULTi Ce2 - 80486SX 25
+98MATE X - 486/Pentium based
*/
-ROM_START( pc9821ce2 )
+ROM_START( pc9821xs )
ROM_REGION16_LE( 0x30000, "ipl", ROMREGION_ERASEFF )
- ROM_LOAD( "itf_ce2.rom", 0x10000, 0x08000, CRC(273e9e88) SHA1(9bca7d5116788776ed0f297bccb4dfc485379b41) )
- ROM_LOAD( "bios_ce2.rom", 0x18000, 0x018000, BAD_DUMP CRC(76affd90) SHA1(910fae6763c0cd59b3957b6cde479c72e21f33c1) )
+ ROM_LOAD( "itf.rom", 0x10000, 0x008000, BAD_DUMP CRC(dd4c7bb8) SHA1(cf3aa193df2722899066246bccbed03f2e79a74a) )
+ ROM_LOAD( "bios_xs.rom", 0x18000, 0x018000, BAD_DUMP CRC(0a682b93) SHA1(76a7360502fa0296ea93b4c537174610a834d367) )
ROM_REGION( 0x80000, "chargen", 0 )
- ROM_LOAD( "font_ce2.rom", 0x000000, 0x046800, CRC(d1c2702a) SHA1(e7781e9d35b6511d12631641d029ad2ba3f7daef) )
+ ROM_LOAD( "font_xs.rom", 0x00000, 0x046800, BAD_DUMP CRC(c9a77d8f) SHA1(deb8563712eb2a634a157289838b95098ba0c7f2) )
LOAD_KANJI_ROMS
LOAD_IDE_ROM
ROM_END
+
/*
-98MATE X - 486/Pentium based
+9821Xa16
+
+Pentium P54C @ 166
+32MB
+3.5"2DD/2HDx1, 8xCD-ROM
+CBus: 3 slots
+
*/
-ROM_START( pc9821xs )
+ROM_START( pc9821xa16 )
+ ROM_REGION16_LE( 0x40000, "biosrom", ROMREGION_ERASEFF )
+ ROM_LOAD( "pc-9821xa16_g8yewa_a1_wsg8b01_ab28f200b5-t.bin", 0x00000, 0x040000, CRC(f99c8ce2) SHA1(2bc328d2c496046f6f4f39b0637e90b713a63155) ) // SOP44
+
ROM_REGION16_LE( 0x30000, "ipl", ROMREGION_ERASEFF )
- ROM_LOAD( "itf.rom", 0x10000, 0x08000, BAD_DUMP CRC(dd4c7bb8) SHA1(cf3aa193df2722899066246bccbed03f2e79a74a) )
- ROM_LOAD( "bios_xs.rom", 0x18000, 0x018000, BAD_DUMP CRC(0a682b93) SHA1(76a7360502fa0296ea93b4c537174610a834d367) )
+ // TODO: all of the 256k space seems valid
+ ROM_COPY( "biosrom", 0x28000, 0x00000, 0x18000 )
+ ROM_COPY( "biosrom", 0x00000, 0x18000, 0x18000 )
ROM_REGION( 0x80000, "chargen", 0 )
- ROM_LOAD( "font_xs.rom", 0x000000, 0x046800, BAD_DUMP CRC(c9a77d8f) SHA1(deb8563712eb2a634a157289838b95098ba0c7f2) )
+ ROM_LOAD( "font.rom", 0x00000, 0x46800, BAD_DUMP CRC(a61c0649) SHA1(554b87377d176830d21bd03964dc71f8e98676b1) )
LOAD_KANJI_ROMS
LOAD_IDE_ROM
ROM_END
+/*
+pc-9821Ra20 (98MATE R)
+
+Pentium Pro @ 200
+32MB
+3.5"2DD/2HDx1, 8xCD-ROM
+CBus: 3 slots
+*/
+
+ROM_START( pc9821ra20 )
+ ROM_REGION16_LE( 0x40000, "biosrom", ROMREGION_ERASEFF )
+ ROM_LOAD( "g8wtp_a13_wtp8b01_ab28f200b5-t.bin", 0x00000, 0x040000, CRC(cd3acc5c) SHA1(746490d7f3d8d0e8df865315adaaae65f3fd0425) ) // SOP44
+
+ ROM_REGION16_LE( 0x30000, "ipl", ROMREGION_ERASEFF )
+ // TODO: all of the 256k space seems valid
+ ROM_COPY( "biosrom", 0x28000, 0x00000, 0x18000 )
+ ROM_COPY( "biosrom", 0x00000, 0x18000, 0x18000 )
+
+ ROM_REGION( 0x80000, "chargen", 0 )
+ ROM_LOAD( "font.rom", 0x00000, 0x46800, BAD_DUMP CRC(a61c0649) SHA1(554b87377d176830d21bd03964dc71f8e98676b1) )
+
+ LOAD_KANJI_ROMS
+ LOAD_IDE_ROM
+ROM_END
+
+/*
+pc-9821Ra333 (98MATE R)
+
+Celeron @ 333
+32MB, max 256 MB (ECC EDO RAM)
+3.5x1, 24xCD-ROM
+CBus: 3 slots, PCI: 2 slots
+*/
+
+
+ROM_START( pc9821ra333 )
+ ROM_REGION16_LE( 0x40000, "biosrom", ROMREGION_ERASEFF )
+ ROM_LOAD( "g8ykkw.bin", 0x00000, 0x040000, CRC(c605ef31) SHA1(3779aed757f21eb75093c1bfcbf18a232c198ee6) )
+
+ ROM_REGION16_LE( 0x30000, "ipl", ROMREGION_ERASEFF )
+ // TODO: all of the 256k space seems valid
+ ROM_COPY( "biosrom", 0x28000, 0x00000, 0x18000 )
+ ROM_COPY( "biosrom", 0x00000, 0x18000, 0x18000 )
+
+ ROM_REGION( 0x80000, "chargen", 0 )
+ ROM_LOAD( "font.rom", 0x00000, 0x46800, BAD_DUMP CRC(a61c0649) SHA1(554b87377d176830d21bd03964dc71f8e98676b1) )
+
+ LOAD_KANJI_ROMS
+ LOAD_IDE_ROM
+ROM_END
+
/*
98MATE VALUESTAR - Pentium based
@@ -2899,7 +3038,7 @@ ROM_START( pc9821v13 )
ROM_LOAD( "bios_v13.rom", 0x18000, 0x18000, BAD_DUMP CRC(0a682b93) SHA1(76a7360502fa0296ea93b4c537174610a834d367) )
ROM_REGION( 0x80000, "chargen", 0 )
- ROM_LOAD( "font_a.rom", 0x00000, 0x46800, BAD_DUMP CRC(c9a77d8f) SHA1(deb8563712eb2a634a157289838b95098ba0c7f2) )
+ ROM_LOAD( "font_a.rom", 0x00000, 0x46800, BAD_DUMP CRC(c9a77d8f) SHA1(deb8563712eb2a634a157289838b95098ba0c7f2) )
LOAD_KANJI_ROMS
LOAD_IDE_ROM
@@ -2915,13 +3054,91 @@ ROM_START( pc9821v20 )
ROM_LOAD( "bios_v20.rom", 0x18000, 0x18000, BAD_DUMP CRC(d5d1f13b) SHA1(bf44b5f4e138e036f1b848d6616fbd41b5549764) )
ROM_REGION( 0x80000, "chargen", 0 )
- ROM_LOAD( "font_v20.rom", 0x000000, 0x046800, BAD_DUMP CRC(6244c4c0) SHA1(9513cac321e89b4edb067b30e9ecb1adae7e7be7) )
+ ROM_LOAD( "font_v20.rom", 0x00000, 0x046800, BAD_DUMP CRC(6244c4c0) SHA1(9513cac321e89b4edb067b30e9ecb1adae7e7be7) )
LOAD_KANJI_ROMS
LOAD_IDE_ROM
ROM_END
+/*
+Epson PC-386M
+i386SX-16 @ 16
+1MB
+3.5"2DD/2HDx2
+CBus: 3slots
+*/
+
+ROM_START( pc386m )
+ ROM_REGION16_LE( 0x30000, "ipl", ROMREGION_ERASEFF )
+ ROM_LOAD( "cwma-a02.bin", 0x10000, 0x08000, CRC(d2c357a4) SHA1(819c9a1fc92124a8d6a85339c74651add7efaf92) )
+ ROM_CONTINUE( 0x18000, 0x18000 )
+
+ ROM_REGION( 0x80000, "chargen", 0 )
+ ROM_LOAD( "font_486mu.rom", 0x0000, 0x46800, BAD_DUMP CRC(456d9fc7) SHA1(78ba9960f135372825ab7244b5e4e73a810002ff))
+
+ LOAD_KANJI_ROMS
+ LOAD_IDE_ROM
+ROM_END
+
+/*
+Epson PC-486SE
+
+i486SX @ 25 MHz
+1.6 MB of conventional memory (???)
+17.6 MB
+CBus: 2slots
+*/
+
+ROM_START( pc486se )
+ ROM_REGION16_LE( 0x20000, "biosrom", ROMREGION_ERASEFF )
+ ROM_LOAD( "1699ma_cw99-a03.bin", 0x00000, 0x20000, CRC(f03df711) SHA1(88614746e01c7d3cff9f3b8ce0a598830a77d1dc) )
+
+ ROM_REGION16_LE( 0x30000, "ipl", ROMREGION_ERASEFF )
+ // this looks convoluted
+ ROM_COPY( "biosrom", 0x08000, 0x00000, 0x08000 ) // tests this area at PC=0xf5149
+ ROM_COPY( "biosrom", 0x00000, 0x10000, 0x08000 )
+ ROM_COPY( "biosrom", 0x10000, 0x08000, 0x08000 )
+// ROM_FILL( 0x18000, 0x08000, 0x90) // untested by BIOS
+ ROM_COPY( "biosrom", 0x10000, 0x20000, 0x08000 ) // PC=f5113 bankswitch into same area, correct?
+ ROM_COPY( "biosrom", 0x18000, 0x28000, 0x08000 )
+
+ ROM_REGION( 0x80000, "chargen", 0 )
+ ROM_LOAD( "font_486mu.rom", 0x0000, 0x46800, BAD_DUMP CRC(456d9fc7) SHA1(78ba9960f135372825ab7244b5e4e73a810002ff))
+
+ LOAD_KANJI_ROMS
+ LOAD_IDE_ROM
+ROM_END
+
+/*
+Epson PC-486MU
+i486SX-33 @ 33
+8MB RAM
+3.5'2DD/2HDx2, 2xCD-ROM
+CBus: 3 slots
+*/
+
+ROM_START( pc486mu )
+ ROM_REGION16_LE( 0x20000, "biosrom", ROMREGION_ERASEFF )
+ ROM_LOAD( "pc-486mu_hn27c1024.bin", 0x00000, 0x20000, CRC(113268e1) SHA1(2a630abc825b2808f9f8fb65c6cb1fb7e7f6c710))
+// ROM_LOAD( "bios_486mu.rom", 0x00000, 0x18000, BAD_DUMP CRC(57b5d701) SHA1(15029800842e93e07615b0fd91fb9f2bfe3e3c24))
+
+ ROM_REGION16_LE( 0x30000, "ipl", ROMREGION_ERASEFF )
+ // backported from pc486se
+ ROM_COPY( "biosrom", 0x08000, 0x00000, 0x08000 )
+ ROM_COPY( "biosrom", 0x00000, 0x10000, 0x08000 )
+ ROM_COPY( "biosrom", 0x10000, 0x08000, 0x08000 )
+// ROM_FILL( 0x18000, 0x08000, 0x90) // untested by BIOS
+ ROM_COPY( "biosrom", 0x10000, 0x20000, 0x08000 )
+ ROM_COPY( "biosrom", 0x18000, 0x28000, 0x08000 )
+
+
+ ROM_REGION( 0x80000, "chargen", 0 )
+ ROM_LOAD( "font_486mu.rom", 0x0000, 0x46800, BAD_DUMP CRC(456d9fc7) SHA1(78ba9960f135372825ab7244b5e4e73a810002ff))
+
+ LOAD_KANJI_ROMS
+ LOAD_IDE_ROM
+ROM_END
void pc9801_state::init_pc9801_kanji()
{
@@ -3055,22 +3272,65 @@ void pc9801_state::init_pc9801vm_kanji()
}
}
-/* Genuine dumps */
-COMP( 1983, pc9801f, 0, 0, pc9801, pc9801, pc9801_state, init_pc9801_kanji, "NEC", "PC-9801F", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
-COMP( 1985, pc9801vm, pc9801ux, 0, pc9801vm, pc9801rs, pc9801_state, init_pc9801vm_kanji, "NEC", "PC-9801VM", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
+// For simpilicity's sake we arbitrarily group those with whatever romset came first historically.
+// This is also repeated in SW list reports: you'd have to use an "On RS class xxx" format to indicate a bug report
+// specifically happening for a family group. This will be hopefully put into stone with driver splits at some point in future.
+
+// "vanilla" class (i86, E/F/M)
+COMP( 1983, pc9801f, 0, 0, pc9801, pc9801, pc9801_state, init_pc9801_kanji, "NEC", "PC-9801F", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) // genuine dump
-/* TODO: ANYTHING below there needs REDUMPING! */
-COMP( 1989, pc9801rs, 0, 0, pc9801rs, pc9801rs, pc9801_state, init_pc9801_kanji, "NEC", "PC-9801RS", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) //TODO: not sure about the exact model
+// N5200 (started as a vanilla PC-98 business line derivative, eventually diverged into its own thing and incorporated various Hyper 98 features. Runs proprietary PTOS)
+// APC III (US version of either vanilla PC9801 or N5200, aimed at business market. Runs MS-DOS 2.11/3.xx or PC-UX)
+// ...
+
+// VM class (V30 and/or i286)
+COMP( 1985, pc9801vm, pc9801ux, 0, pc9801vm, pc9801rs, pc9801_state, init_pc9801vm_kanji, "NEC", "PC-9801VM", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) // genuine dump
COMP( 1985, pc9801vm11, pc9801ux, 0, pc9801vm, pc9801rs, pc9801_state, init_pc9801_kanji, "NEC", "PC-9801VM11", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
COMP( 1987, pc9801ux, 0, 0, pc9801ux, pc9801rs, pc9801_state, init_pc9801_kanji, "NEC", "PC-9801UX", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
+
+// VX class (first model using an EGC)
+// ...
+
+// XA/XL class (1120 x 750 true color, nicknamed "High-reso")
+// ...
+
+// PC-H98 (Hyper 98, '90-'93 high end line with High-reso, proprietary NESA bus, E²GC)
+// PC-H98T (LCD Hyper 98)
+// SV-H98 (Later Hyper 98 revision, up to Pentium CPU)
+// ...
+
+// RS class (i386SX)
COMP( 1988, pc9801rx, pc9801rs, 0, pc9801rs, pc9801rs, pc9801_state, init_pc9801_kanji, "NEC", "PC-9801RX", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
+COMP( 1989, pc9801rs, 0, 0, pc9801rs, pc9801rs, pc9801_state, init_pc9801_kanji, "NEC", "PC-9801RS", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
+// FA class (i486SX)
COMP( 1993, pc9801bx2, pc9801rs, 0, pc9801bx2, pc9801rs, pc9801_state, init_pc9801_kanji, "NEC", "PC-9801BX2/U2", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
-COMP( 1994, pc9821, 0, 0, pc9821, pc9821, pc9801_state, init_pc9801_kanji, "NEC", "PC-9821 (98MATE)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND) //TODO: not sure about the exact model
-COMP( 1993, pc9821as, pc9821, 0, pc9821as, pc9821, pc9801_state, init_pc9801_kanji, "NEC", "PC-9821 (98MATE A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
-COMP( 1993, pc9821ap2, pc9821, 0, pc9821ap2, pc9821, pc9801_state, init_pc9801_kanji, "NEC", "PC-9821AP2/U8W (98MATE A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
-COMP( 1994, pc9821xs, pc9821, 0, pc9821, pc9821, pc9801_state, init_pc9801_kanji, "NEC", "PC-9821 (98MATE Xs)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
-COMP( 1994, pc9821ce2, pc9821, 0, pc9821, pc9821, pc9801_state, init_pc9801_kanji, "NEC", "PC-9821 (98MULTi Ce2)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
-COMP( 1994, pc9821ne, pc9821, 0, pc9821, pc9821, pc9801_state, init_pc9801_kanji, "NEC", "PC-9821 (98NOTE)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
-COMP( 1994, pc486mu, pc9821, 0, pc9821, pc9821, pc9801_state, init_pc9801_kanji, "Epson", "PC-486MU", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
-COMP( 1998, pc9821v13, pc9821, 0, pc9821, pc9821, pc9801_state, init_pc9801_kanji, "NEC", "PC-9821 (98MATE VALUESTAR 13)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
-COMP( 1998, pc9821v20, pc9821, 0, pc9821v20, pc9821, pc9801_state, init_pc9801_kanji, "NEC", "PC-9821 (98MATE VALUESTAR 20)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
+
+// PC-98GS (Multimedia PC, exclusive video mode "Extended Screen Graphics", -73 sound board (a superset of later -86), superimposition)
+// ...
+
+// Epson class
+COMP( 1990, pc386m, 0, 0, pc386m, pc9801rs, pc9801_state, init_pc9801_kanji, "Epson", "PC-386M", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
+COMP( 1994, pc486mu, 0, 0, pc486mu, pc9821, pc9801_state, init_pc9801_kanji, "Epson", "PC-486MU", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
+COMP( 1993, pc486se, pc486mu, 0, pc486se, pc9801rs, pc9801_state, init_pc9801_kanji, "Epson", "PC-486SE", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
+
+// PC9821 class
+// TODO: unknown real model of parent, given the BIOS rom size wrt the others it may be better suited as a "98Multi" or even a FA class?
+// investigate by making genuine BIOS dumps to boot
+COMP( 1994, pc9821, 0, 0, pc9821, pc9821, pc9801_state, init_pc9801_kanji, "NEC", "PC-9821 (98MATE)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
+COMP( 1993, pc9821as, pc9821, 0, pc9821as, pc9821, pc9801_state, init_pc9801_kanji, "NEC", "PC-9821 (98MATE A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
+COMP( 1993, pc9821ap2, pc9821, 0, pc9821ap2, pc9821, pc9801_state, init_pc9801_kanji, "NEC", "PC-9821AP2/U8W (98MATE A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
+COMP( 1994, pc9821xs, pc9821, 0, pc9821, pc9821, pc9801_state, init_pc9801_kanji, "NEC", "PC-9821 (98MATE Xs)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
+COMP( 1994, pc9821ce2, pc9821, 0, pc9821, pc9821, pc9801_state, init_pc9801_kanji, "NEC", "PC-9821 (98MULTi Ce2)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
+COMP( 1994, pc9821ne, pc9821, 0, pc9821, pc9821, pc9801_state, init_pc9801_kanji, "NEC", "PC-9821 (98NOTE)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
+COMP( 1996, pc9821xa16, pc9821, 0, pc9821xa16, pc9821, pc9801_state, init_pc9801_kanji, "NEC", "PC-9821Xa16", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
+COMP( 1996, pc9821ra20, pc9821, 0, pc9821ra20, pc9821, pc9801_state, init_pc9801_kanji, "NEC", "PC-9821Ra20 (98MATE R)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
+COMP( 1998, pc9821ra333, pc9821, 0, pc9821ra333, pc9821, pc9801_state, init_pc9801_kanji, "NEC", "PC-9821Ra333 (98MATE R)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
+COMP( 1998, pc9821v13, pc9821, 0, pc9821, pc9821, pc9801_state, init_pc9801_kanji, "NEC", "PC-9821 (98MATE VALUESTAR 13)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
+COMP( 1998, pc9821v20, pc9821, 0, pc9821v20, pc9821, pc9801_state, init_pc9801_kanji, "NEC", "PC-9821 (98MATE VALUESTAR 20)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
+
+// PC98DO (PC88+PC98, V33 + μPD70008AC)
+
+// PC-98LT (laptop b&w LCD version V50, no upd7220, just one single bitmap layer)
+// PC-98HA aka HANDY98 (portable b&w LCD version, V50, apparently compatible with LT)
+// RC-9801 (portable (color?) LCD, i386SX, wireless 9600bps modem)
+// PC-9801P (LCD with light pen)
diff --git a/src/mame/includes/pc88va.h b/src/mame/includes/pc88va.h
index 947badce3ec..a1157b596cf 100644
--- a/src/mame/includes/pc88va.h
+++ b/src/mame/includes/pc88va.h
@@ -11,7 +11,7 @@
#ifndef MAME_INCLUDES_PC88VA_H
#define MAME_INCLUDES_PC88VA_H
-#include "cpu/nec/nec.h"
+#include "cpu/nec/v5x.h"
#include "cpu/z80/z80.h"
#include "imagedev/floppy.h"
#include "machine/am9517a.h"
diff --git a/src/mame/includes/pc9801.h b/src/mame/includes/pc9801.h
index 1824b01e9cf..e4d4e2e98d3 100644
--- a/src/mame/includes/pc9801.h
+++ b/src/mame/includes/pc9801.h
@@ -113,15 +113,27 @@ public:
{
}
- void pc9821v20(machine_config &config);
- void pc9801ux(machine_config &config);
- void pc9801vm(machine_config &config);
void pc9801(machine_config &config);
- void pc9801bx2(machine_config &config);
+
+ void pc9801vm(machine_config &config);
+
+ void pc9801ux(machine_config &config);
void pc9801rs(machine_config &config);
+
+ void pc9801bx2(machine_config &config);
+
void pc9821(machine_config &config);
void pc9821as(machine_config &config);
void pc9821ap2(machine_config &config);
+ void pc9821xa16(machine_config &config);
+ void pc9821ra20(machine_config &config);
+ void pc9821ra333(machine_config &config);
+ void pc9821v20(machine_config &config);
+
+ void pc386m(machine_config &config);
+ void pc486mu(machine_config &config);
+ void pc486se(machine_config &config);
+
DECLARE_CUSTOM_INPUT_MEMBER(system_type_r);
void init_pc9801_kanji();
void init_pc9801vm_kanji();
@@ -129,6 +141,14 @@ public:
protected:
virtual void video_start() override;
+ void pc9801_keyboard(machine_config &config);
+ void pc9801_mouse(machine_config &config);
+ void pc9801_cbus(machine_config &config);
+ void pc9801_sasi(machine_config &config);
+ void pc9801_ide(machine_config &config);
+ void pc9801_common(machine_config &config);
+ void pc9801_pit_clock(machine_config &config, const XTAL clock);
+
private:
static void cdrom_headphones(device_t *device);
@@ -314,12 +334,6 @@ private:
uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
uint32_t a20_286(bool state);
- void pc9801_keyboard(machine_config &config);
- void pc9801_mouse(machine_config &config);
- void pc9801_cbus(machine_config &config);
- void pc9801_sasi(machine_config &config);
- void pc9801_ide(machine_config &config);
- void pc9801_common(machine_config &config);
void ipl_bank(address_map &map);
void pc9801_common_io(address_map &map);
void pc9801_io(address_map &map);
@@ -370,8 +384,9 @@ private:
struct{
uint8_t control;
- uint8_t lx;
- uint8_t ly;
+ uint8_t lx, ly;
+ uint8_t dx, dy;
+ uint8_t prev_dx, prev_dy;
uint8_t freq_reg;
uint8_t freq_index;
}m_mouse;
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index c15b13f1729..ee13a666087 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -33624,21 +33624,26 @@ pc88va //
pc88va2 //
@source:pc9801.cpp
+pc386m //
pc486mu //
+pc486se // 1993
pc9801bx2 // 1993
pc9801f // 1983
pc9801rs // 1989
pc9801rx // 1988
pc9801ux // 1987
pc9801vm // 1985
-pc9801vm11
+pc9801vm11 //
pc9821 //
pc9821ap2 //
pc9821as //
pc9821ce2 //
pc9821ne //
+pc9821ra20 //
+pc9821ra333 //
pc9821v13 //
pc9821v20 //
+pc9821xa16 //
pc9821xs //
@source:pcat_dyn.cpp