From eb7c20d2317337037a97f540042ae86378c531de Mon Sep 17 00:00:00 2001 From: angelosa Date: Fri, 18 Oct 2024 00:15:17 +0200 Subject: nec/pc9801.cpp: FDC uses DMA CH. 3 when in 2dd mode --- hash/pc98.xml | 149 +++++++++++++++++++++++++++------------------- src/mame/nec/pc9801.cpp | 8 ++- src/mame/nec/pc9801_v.cpp | 3 +- 3 files changed, 98 insertions(+), 62 deletions(-) diff --git a/hash/pc98.xml b/hash/pc98.xml index 5389be144ab..7434865fc2f 100644 --- a/hash/pc98.xml +++ b/hash/pc98.xml @@ -7130,13 +7130,10 @@ Draws Gainax logo with half height - + BeatVice 1989 風雅システム (Fuga System) - @@ -11673,7 +11670,8 @@ Course names draws a full square kanji block between nation and "GP" (verify) 1986 スクウェア (Square) " error with chrn=(0, 1, 1, 512) in 2dd mode ]]> @@ -13449,8 +13447,7 @@ Hangs during BASIC boot with vanilla class (works on VM) 1994 エクシィーズ (Xyz) @@ -16039,11 +16036,13 @@ Boots with NAX.EXE -T -BFF -Q -FC - Dokkin Minako-sensei 1988 テクトハウス (Tect House) + @@ -16367,13 +16366,16 @@ Boots with NAX.EXE -T -BFF -Q -FC - - + Door Door 1984 エニックス (Enix) + + @@ -16593,11 +16595,13 @@ Boots with NAX.EXE -T -BFF -Q -FC - Doukyuusei 2 HD Senyou Ban - Special Disk 1995 エルフ (Elf) + @@ -18029,8 +18033,7 @@ User disk creation screen is offset - - + Eiyuu Densetsu Saga 1984 マイクロキャビン (Micro Cabin) @@ -18787,12 +18790,13 @@ User disk creation screen is offset - - Executive e no Michi 1987 チャンピオンソフト (Champion Soft) + @@ -19160,8 +19164,7 @@ User disk creation screen is offset - - + Fairie's Residence 1984 チャンピオンソフト (Champion Soft) @@ -19201,12 +19204,13 @@ User disk creation screen is offset - - Fairytale 1987 フェアリーテール (Fairytale) + @@ -19310,11 +19314,13 @@ User disk creation screen is offset - Fantasian 1985 クリスタルソフト (Xtal Soft) + @@ -19323,8 +19329,7 @@ User disk creation screen is offset - - + Farce - Yuuwaku Hakusho 1994 ソフトウェアハウスぱせり (Software House Parsley) @@ -20268,11 +20273,13 @@ User disk creation screen is offset - Flight in Hawaii 1986 キャリーラボ (Carry Lab) + @@ -20772,11 +20779,13 @@ User disk creation screen is offset - Funny 19?? アスキー (ASCII) + @@ -20787,7 +20796,7 @@ User disk creation screen is offset - + @@ -28631,12 +28640,13 @@ Keyboard keys stays stuck in one direction even after release (verify) - - Love Chaser 1987 チャンピオンソフト (Champion Soft) + @@ -29055,12 +29065,14 @@ Keyboard keys stays stuck in one direction even after release (verify) - - Mahjong Clinic Zoukan-gou 1990 ホームデータ (Home Data) + @@ -29836,7 +29848,7 @@ Keyboard keys stays stuck in one direction even after release (verify) - + Märchen Paradise 1990 グレイト (Great) @@ -29870,11 +29882,13 @@ Keyboard keys stays stuck in one direction even after release (verify) - Märchen Veil II 1986 システムサコム (System Sacom) + @@ -31255,12 +31269,13 @@ Keyboard keys stays stuck in one direction even after release (verify) - + Mighty Head 1986 アポロテクニカ (Apollo Technica) @@ -33250,10 +33265,13 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?) - + Nobunaga no Yabou 1983 光栄 (Koei) + @@ -38485,8 +38503,7 @@ No [PC9801-86] sound - - + Rogue 1986 アスキー (ASCII) @@ -41168,13 +41185,16 @@ Cannot install, gets stuck at "please insert disk and press mouse" prompt - - - Sorcerian 1988 日本ファルコム (Nihon Falcom) + @@ -41209,7 +41229,7 @@ Cannot install, gets stuck at "please insert disk and press mouse" prompt - + Sorcerian Tsuika Scenario 1988 日本ファルコム (Nihon Falcom) @@ -41223,10 +41243,13 @@ Cannot install, gets stuck at "please insert disk and press mouse" prompt - + Sorcerian Tsuika Scenario 2 - Sengoku Sorcerian 1988 日本ファルコム (Nihon Falcom) + @@ -41237,7 +41260,7 @@ Cannot install, gets stuck at "please insert disk and press mouse" prompt - + Sorcerian Tsuika Scenario 3 - Pyramid Sorcerian 1988 日本ファルコム (Nihon Falcom) @@ -41251,7 +41274,7 @@ Cannot install, gets stuck at "please insert disk and press mouse" prompt - + Sorcerian Tsuika Scenario 4 - Uchuu kara no Houmonsha 1989 アモルファス (Amorphous) @@ -41265,7 +41288,7 @@ Cannot install, gets stuck at "please insert disk and press mouse" prompt - + Sorcerian Tsuika Scenario 4 - Uchuu kara no Houmonsha (alt) 1989 アモルファス (Amorphous) @@ -41279,7 +41302,7 @@ Cannot install, gets stuck at "please insert disk and press mouse" prompt - + Sorcerian Utility Disk Vol.1 1988 日本ファルコム (Nihon Falcom) @@ -45222,7 +45245,7 @@ Eventually hangs with stuck [PC9801-26] sound note 1994 日本クリエイト (Nihon Create) @@ -45245,7 +45268,7 @@ Throws "Protection check error, please reset" after logos, [FDC] CHRN=(1, 0, -1, 1995 日本クリエイト (Nihon Create) @@ -45533,13 +45556,13 @@ Accesses [OPN] at $288? - - + Twilight Zone III - Nagakute Amai Yoru 1989 グレイト (Great) + @@ -48568,7 +48591,7 @@ Accesses [OPN] at $288? 日本ファルコム (Nihon Falcom) @@ -50236,11 +50259,14 @@ Doesn't recognize [FDC] disk 3 swap after title screen - A Ressha de Ikou 98 ~ Take the A Train. 1987 アートディンク (Artdink) + @@ -50249,8 +50275,7 @@ Doesn't recognize [FDC] disk 3 swap after title screen - - + Abunai Tengu Densetsu - Yomigaetta Tengu ga Yozora o Mau (alt format) 1989 アリスソフト (AliceSoft) @@ -50296,6 +50321,9 @@ unsupported .fix format Alantia (alt format) 1988 ビクター音楽産業 (Victor Musical Industries) + @@ -51631,12 +51659,12 @@ Black screen, around PC=1fc76 (copy protection?) - + Gai Flame 1987 NCS @@ -51765,9 +51793,7 @@ Has non working optional RS-MIDI thru SQS -S CLI switch (will hang game if used) - - - + Gandhara 1988 エニックス (Enix) @@ -52154,7 +52180,7 @@ unsupported .fix format 1985 ティーアンドイーソフト (T&E Soft) @@ -54044,6 +54070,9 @@ Black screen, keeps hitting an empty divide by zero exception at PC=1fcb6 Mystery House (Microcabin) 1983 マイクロキャビン (Micro Cabin) + @@ -66997,7 +67026,7 @@ doujin?!? 19?? <doujin> diff --git a/src/mame/nec/pc9801.cpp b/src/mame/nec/pc9801.cpp index 66eb887c76b..ffa8db00f81 100644 --- a/src/mame/nec/pc9801.cpp +++ b/src/mame/nec/pc9801.cpp @@ -949,7 +949,8 @@ template u8 pc9801vm_state::fdc_2hd_2dd_ctrl_r() TIMER_CALLBACK_MEMBER(pc9801vm_state::fdc_trigger) { - // TODO: sorcer definitely expects this irq to be taken + // TODO: sorcer/hydlide definitely expects the XTMASK irq to be taken + // NOTE: should probably trigger the FDC irq depending on mode, i.e. use fdc_irq_w fn if (BIT(m_fdc_2hd_ctrl, 2)) { m_pic2->ir2_w(0); @@ -978,6 +979,7 @@ template void pc9801vm_state::fdc_2hd_2dd_ctrl_w(u8 data) } // TODO: this looks awfully similar to pc88va DMA mode, including same bits for trigger and irq mask. + // NOTE: 100 msec too slow if (port == 0 && !prev_trig && cur_trig) { m_fdc_timer->reset(); @@ -2376,6 +2378,10 @@ void pc9801vm_state::pc9801rs(machine_config &config) m_fdc_2hd->intrq_wr_callback().set(FUNC(pc9801vm_state::fdc_irq_w)); m_fdc_2hd->drq_wr_callback().set(FUNC(pc9801vm_state::fdc_drq_w)); + // ch. 3 used when in 2DD mode (mightyhd, rogue) + // TODO: should lock as everything else depending on mode bit 0 + m_dmac->in_ior_callback<3>().set(m_fdc_2hd, FUNC(upd765a_device::dma_r)); + m_dmac->out_iow_callback<3>().set(m_fdc_2hd, FUNC(upd765a_device::dma_w)); m_hgdc[1]->set_addrmap(0, &pc9801vm_state::upd7220_grcg_2_map); diff --git a/src/mame/nec/pc9801_v.cpp b/src/mame/nec/pc9801_v.cpp index 873b24eb8fd..07a14e5d889 100644 --- a/src/mame/nec/pc9801_v.cpp +++ b/src/mame/nec/pc9801_v.cpp @@ -189,8 +189,9 @@ void pc9801_state::draw_text(bitmap_rgb32 &bitmap, uint32_t addr, int y, int wd, if(!secret) { - // kanji select will override semigraphics + // kanji select takes over semigraphics // beatvice wants this for bitmap masking on edges during gameplay + // (uses fully opaque PCG tiles) if(kanji_sel) tile_data = (m_kanji_rom[tile*0x20+yi*2+kanji_lr+tile_lr]); else if(gfx_mode) -- cgit v1.2.3