mirror of
https://github.com/holub/mame
synced 2025-04-25 09:50:04 +03:00
qdrmfgp.cpp: removed ide hack now that Ted Green's work allows it. Fixes MT06685. There's a regression with audio, though, possibly related to the recently fixed one in djmain.cpp (nw)
This commit is contained in:
parent
dfedfb6574
commit
f024759b01
@ -11,10 +11,6 @@ OSC :18.43200MHz/32.00000MHz
|
||||
Other(GQ460):Konami 053252,054156,056832,054539
|
||||
Other(GE557):Konami 056832,058141,058143
|
||||
|
||||
TODO:
|
||||
- qdrmfgp2 requires an interrupt hack following an IDE READ_MULTIPLE
|
||||
command
|
||||
|
||||
--
|
||||
driver by Hau
|
||||
|
||||
@ -34,9 +30,6 @@ GP1 HDD data contents:
|
||||
#include "speaker.h"
|
||||
|
||||
|
||||
#define IDE_HACK 1
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* 68k CPU memory handlers
|
||||
@ -204,29 +197,6 @@ WRITE16_MEMBER(qdrmfgp_state::sndram_w)
|
||||
}
|
||||
}
|
||||
|
||||
/*************/
|
||||
|
||||
|
||||
READ16_MEMBER(qdrmfgp_state::gp2_ide_std_r)
|
||||
{
|
||||
if (offset == 0x07)
|
||||
{
|
||||
switch (m_maincpu->pcbase())
|
||||
{
|
||||
case 0xdb4c:
|
||||
if ((m_workram[0x5fa4/2] - m_maincpu->state_int(M68K_D0)) <= 0x10)
|
||||
m_gp2_irq_control = 1;
|
||||
break;
|
||||
|
||||
case 0xdec2:
|
||||
m_gp2_irq_control = 1;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
return m_ata->read_cs0(offset, mem_mask);
|
||||
}
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
@ -268,30 +238,9 @@ INTERRUPT_GEN_MEMBER(qdrmfgp_state::qdrmfgp2_interrupt)
|
||||
|
||||
WRITE_LINE_MEMBER(qdrmfgp_state::gp2_ide_interrupt)
|
||||
{
|
||||
#if IDE_HACK
|
||||
if (m_control & 0x0010)
|
||||
{
|
||||
if (state != CLEAR_LINE)
|
||||
{
|
||||
if (m_gp2_irq_control)
|
||||
{
|
||||
m_gp2_irq_control = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_maincpu->set_input_line(M68K_IRQ_5, ASSERT_LINE);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_maincpu->set_input_line(5, CLEAR_LINE);
|
||||
}
|
||||
}
|
||||
#else
|
||||
if (m_control & 0x0010)
|
||||
if (state != CLEAR_LINE)
|
||||
m_maincpu->set_input_line(M68K_IRQ_5, ASSERT_LINE);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@ -341,11 +290,7 @@ ADDRESS_MAP_START(qdrmfgp_state::qdrmfgp2_map)
|
||||
AM_RANGE(0x880000, 0x881fff) AM_READWRITE(gp2_vram_r, gp2_vram_w) /* vram */
|
||||
AM_RANGE(0x89f000, 0x8a0fff) AM_READWRITE(gp2_vram_mirror_r, gp2_vram_mirror_w) /* vram (mirror) */
|
||||
AM_RANGE(0x900000, 0x901fff) AM_READ(v_rom_r) /* gfxrom through */
|
||||
#if IDE_HACK
|
||||
AM_RANGE(0xa00000, 0xa0000f) AM_READ(gp2_ide_std_r) AM_DEVWRITE("ata", ata_interface_device, write_cs0) /* IDE control regs */
|
||||
#else
|
||||
AM_RANGE(0xa00000, 0xa0000f) AM_DEVREADWRITE("ata", ata_interface_device, read_cs0, write_cs0) /* IDE control regs */
|
||||
#endif
|
||||
AM_RANGE(0xa40000, 0xa4000f) AM_DEVREADWRITE("ata", ata_interface_device, read_cs1, write_cs1) /* IDE status control reg */
|
||||
AM_RANGE(0xc00000, 0xcbffff) AM_READWRITE(sndram_r,sndram_w) /* sound ram */
|
||||
ADDRESS_MAP_END
|
||||
|
@ -27,6 +27,15 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
void qdrmfgp(machine_config &config);
|
||||
void qdrmfgp2(machine_config &config);
|
||||
|
||||
DECLARE_CUSTOM_INPUT_MEMBER(battery_sensor_r);
|
||||
|
||||
protected:
|
||||
virtual void machine_reset() override;
|
||||
|
||||
private:
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_shared_ptr<uint16_t> m_nvram;
|
||||
required_shared_ptr<uint16_t> m_workram;
|
||||
@ -55,14 +64,12 @@ public:
|
||||
DECLARE_WRITE16_MEMBER(sndram_w);
|
||||
DECLARE_READ16_MEMBER(gp2_ide_std_r);
|
||||
DECLARE_READ16_MEMBER(inputs_r);
|
||||
DECLARE_CUSTOM_INPUT_MEMBER(battery_sensor_r);
|
||||
|
||||
virtual void machine_reset() override;
|
||||
|
||||
DECLARE_MACHINE_START(qdrmfgp);
|
||||
DECLARE_VIDEO_START(qdrmfgp);
|
||||
DECLARE_MACHINE_START(qdrmfgp2);
|
||||
DECLARE_VIDEO_START(qdrmfgp2);
|
||||
|
||||
uint32_t screen_update_qdrmfgp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
INTERRUPT_GEN_MEMBER(qdrmfgp2_interrupt);
|
||||
TIMER_CALLBACK_MEMBER(gp2_timer_callback);
|
||||
@ -72,8 +79,7 @@ public:
|
||||
DECLARE_WRITE_LINE_MEMBER(k054539_irq1_gen);
|
||||
K056832_CB_MEMBER(qdrmfgp_tile_callback);
|
||||
K056832_CB_MEMBER(qdrmfgp2_tile_callback);
|
||||
void qdrmfgp(machine_config &config);
|
||||
void qdrmfgp2(machine_config &config);
|
||||
|
||||
void qdrmfgp2_map(address_map &map);
|
||||
void qdrmfgp_k054539_map(address_map &map);
|
||||
void qdrmfgp_map(address_map &map);
|
||||
|
Loading…
Reference in New Issue
Block a user