summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2024-04-09 16:28:20 +1000
committer Vas Crabb <vas@vastheman.com>2024-04-09 16:28:20 +1000
commita6a81a692955a8abfd41db832ec33cd64fe9323e (patch)
treec6eae8f7532a99da2a57a399ecfa8285df249b35
parentc895c5e19865e804d9ba37b1f0f05d9c9bcc19dd (diff)
-konami/konamigq.cpp, konami/konamigv.cpp: Use "new SCSI" 53CF96 and drives. [Windy Fairy]
* Marked games as not supporting save states due to DMA pointer in member variable, and marked kdeadeye as having imperfect graphics due existing texturing issues that cause in-game text to be jumbled. -konami/konamigv.cpp: Redumped CD for kdeadeye. [Brian Troha]
-rw-r--r--src/mame/konami/konamigq.cpp120
-rw-r--r--src/mame/konami/konamigv.cpp211
2 files changed, 183 insertions, 148 deletions
diff --git a/src/mame/konami/konamigq.cpp b/src/mame/konami/konamigq.cpp
index 6f58e57178d..ba8291a3444 100644
--- a/src/mame/konami/konamigq.cpp
+++ b/src/mame/konami/konamigq.cpp
@@ -69,21 +69,23 @@
*/
#include "emu.h"
-#include "bus/scsi/scsi.h"
-#include "bus/scsi/scsihd.h"
+
+#include "bus/nscsi/hd.h"
#include "cpu/m68000/m68000.h"
#include "cpu/psx/psx.h"
#include "cpu/tms57002/tms57002.h"
-#include "machine/am53cf96.h"
#include "machine/eepromser.h"
#include "machine/mb89371.h"
+#include "machine/ncr53c90.h"
#include "machine/ram.h"
#include "sound/k054539.h"
#include "sound/k056800.h"
#include "video/psx.h"
+
#include "screen.h"
#include "speaker.h"
+#include "endianness.h"
#include "multibyte.h"
@@ -97,7 +99,7 @@ public:
m_maincpu(*this, "maincpu"),
m_soundcpu(*this, "soundcpu"),
m_dasp(*this, "dasp"),
- m_am53cf96(*this, "am53cf96"),
+ m_ncr53cf96(*this, "scsi:7:ncr53cf96"),
m_k056800(*this, "k056800"),
m_pcmram(*this, "pcmram")
{
@@ -107,18 +109,26 @@ public:
protected:
virtual void machine_start() override;
+ virtual void machine_reset() override;
private:
+ emu_timer *m_dma_timer;
+
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_soundcpu;
required_device<tms57002_device> m_dasp;
- required_device<am53cf96_device> m_am53cf96;
+ required_device<ncr53cf96_device> m_ncr53cf96;
required_device<k056800_device> m_k056800;
required_shared_ptr<uint8_t> m_pcmram;
- uint8_t m_sector_buffer[ 512 ]{};
- uint8_t m_sound_ctrl = 0;
- uint8_t m_sound_intck = 0;
+ uint8_t m_sound_ctrl;
+ uint8_t m_sound_intck;
+
+ uint32_t *m_dma_data_ptr;
+ uint32_t m_dma_offset;
+ int32_t m_dma_size;
+ bool m_dma_is_write;
+ bool m_dma_requested;
void eeprom_w(uint16_t data);
void pcmram_w(offs_t offset, uint8_t data);
@@ -128,8 +138,12 @@ private:
INTERRUPT_GEN_MEMBER(tms_sync);
void k054539_irq_gen(int state);
+ TIMER_CALLBACK_MEMBER(scsi_dma_transfer);
+
void scsi_dma_read( uint32_t *p_n_psxram, uint32_t n_address, int32_t n_size );
void scsi_dma_write( uint32_t *p_n_psxram, uint32_t n_address, int32_t n_size );
+ void scsi_drq(int state);
+
void konamigq_dasp_map(address_map &map);
void konamigq_k054539_map(address_map &map);
void konamigq_map(address_map &map);
@@ -173,7 +187,7 @@ uint8_t konamigq_state::pcmram_r(offs_t offset)
void konamigq_state::konamigq_map(address_map &map)
{
- map(0x1f000000, 0x1f00001f).rw(m_am53cf96, FUNC(am53cf96_device::read), FUNC(am53cf96_device::write)).umask32(0x00ff00ff);
+ map(0x1f000000, 0x1f00001f).m(m_ncr53cf96, FUNC(ncr53cf96_device::map)).umask16(0x00ff);
map(0x1f100000, 0x1f10001f).rw(m_k056800, FUNC(k056800_device::host_r), FUNC(k056800_device::host_w)).umask32(0x00ff00ff);
map(0x1f180000, 0x1f180001).w(FUNC(konamigq_state::eeprom_w));
map(0x1f198000, 0x1f198003).nopw(); /* cabinet lamps? */
@@ -269,43 +283,66 @@ void konamigq_state::k054539_irq_gen(int state)
void konamigq_state::scsi_dma_read( uint32_t *p_n_psxram, uint32_t n_address, int32_t n_size )
{
- uint8_t *sector_buffer = m_sector_buffer;
- int i;
- int n_this;
+ m_dma_data_ptr = p_n_psxram;
+ m_dma_offset = n_address;
+ m_dma_size = n_size * 4;
+ m_dma_is_write = false;
+ m_dma_timer->adjust(attotime::from_usec(10));
+}
+
+void konamigq_state::scsi_dma_write( uint32_t *p_n_psxram, uint32_t n_address, int32_t n_size )
+{
+ m_dma_data_ptr = p_n_psxram;
+ m_dma_offset = n_address;
+ m_dma_size = n_size * 4;
+ m_dma_is_write = true;
+ m_dma_timer->adjust(attotime::from_usec(10));
+}
- while( n_size > 0 )
+TIMER_CALLBACK_MEMBER(konamigq_state::scsi_dma_transfer)
+{
+ if (m_dma_requested && m_dma_data_ptr != nullptr && m_dma_size > 0)
{
- if( n_size > sizeof( m_sector_buffer ) / 4 )
- {
- n_this = sizeof( m_sector_buffer ) / 4;
- }
+ if (m_dma_is_write)
+ m_ncr53cf96->dma_w(util::little_endian_cast<const uint8_t>(m_dma_data_ptr)[m_dma_offset]);
else
- {
- n_this = n_size;
- }
- m_am53cf96->dma_read_data( n_this * 4, sector_buffer );
- n_size -= n_this;
-
- i = 0;
- while( n_this > 0 )
- {
- p_n_psxram[ n_address / 4 ] = get_u32le( &sector_buffer[ i ] );
- n_address += 4;
- i += 4;
- n_this--;
- }
+ util::little_endian_cast<uint8_t>(m_dma_data_ptr)[m_dma_offset] = m_ncr53cf96->dma_r();
+
+ m_dma_offset++;
+ m_dma_size--;
}
+
+ if (m_dma_requested && m_dma_size > 0)
+ m_dma_timer->adjust(attotime::from_usec(10));
}
-void konamigq_state::scsi_dma_write( uint32_t *p_n_psxram, uint32_t n_address, int32_t n_size )
+void konamigq_state::scsi_drq(int state)
{
+ if (!m_dma_requested && state)
+ m_dma_timer->adjust(attotime::from_usec(10));
+
+ m_dma_requested = state;
}
void konamigq_state::machine_start()
{
- save_item(NAME(m_sector_buffer));
save_item(NAME(m_sound_ctrl));
save_item(NAME(m_sound_intck));
+
+ m_dma_timer = timer_alloc(FUNC(konamigq_state::scsi_dma_transfer), this);
+ m_dma_timer->adjust(attotime::never);
+}
+
+void konamigq_state::machine_reset()
+{
+ m_sound_ctrl = 0;
+ m_sound_intck = 0;
+
+ m_dma_timer->adjust(attotime::never);
+ m_dma_data_ptr = nullptr;
+ m_dma_offset = 0;
+ m_dma_size = 0;
+ m_dma_requested = m_dma_is_write = false;
}
void konamigq_state::konamigq(machine_config &config)
@@ -328,12 +365,15 @@ void konamigq_state::konamigq(machine_config &config)
EEPROM_93C46_16BIT(config, "eeprom").default_data(konamigq_def_eeprom, 128);
- scsi_port_device &scsi(SCSI_PORT(config, "scsi", 0));
- scsi.set_slot_device(1, "harddisk", SCSIHD, DEVICE_INPUT_DEFAULTS_NAME(SCSI_ID_0));
-
- AM53CF96(config, m_am53cf96, 0);
- m_am53cf96->set_scsi_port("scsi");
- m_am53cf96->irq_handler().set("maincpu:irq", FUNC(psxirq_device::intin10));
+ NSCSI_BUS(config, "scsi");
+ NSCSI_CONNECTOR(config, "scsi:0").option_set("harddisk", NSCSI_HARDDISK);
+ NSCSI_CONNECTOR(config, "scsi:7").option_set("ncr53cf96", NCR53CF96).clock(32_MHz_XTAL/2).machine_config(
+ [this] (device_t *device)
+ {
+ ncr53cf96_device &adapter = downcast<ncr53cf96_device &>(*device);
+ adapter.irq_handler_cb().set(":maincpu:irq", FUNC(psxirq_device::intin10));
+ adapter.drq_handler_cb().set(*this, FUNC(konamigq_state::scsi_drq));
+ });
/* video hardware */
CXD8538Q(config, "gpu", XTAL(53'693'175), 0x200000, subdevice<psxcpu_device>("maincpu")).set_screen("screen");
@@ -453,7 +493,7 @@ ROM_START( cryptklr )
ROM_REGION32_LE( 0x080000, "maincpu:rom", 0 ) /* bios */
ROM_LOAD( "420b03.27p", 0x0000000, 0x080000, CRC(aab391b1) SHA1(bf9dc7c0c8168c22a4be266fe6a66d3738df916b) )
- DISK_REGION( "scsi:" SCSI_PORT_DEVICE1 ":harddisk" )
+ DISK_REGION( "scsi:0:harddisk:image" )
DISK_IMAGE( "420uaa04", 0, SHA1(67cb1418fc0de2a89fc61847dc9efb9f1bebb347) )
ROM_END
diff --git a/src/mame/konami/konamigv.cpp b/src/mame/konami/konamigv.cpp
index 38bd4c21aa6..c804090ef95 100644
--- a/src/mame/konami/konamigv.cpp
+++ b/src/mame/konami/konamigv.cpp
@@ -44,6 +44,10 @@ The Simpsons Bowling uses an extra PCB plugged in on top containing flash ROMs a
Some of the other games may also have extra PCBs.
+Have seen two different CD-ROM drives:
+- Sony CDU-76S (found in Hyper Athlete)
+- Toshiba XM-5401B (found in Tokimeki Memorial Oshiete Your Heart)
+
PCB Layouts
@@ -62,7 +66,7 @@ ZV610 PWB301331
|A CXD2923AR 058239 |
|M |
|M CXD8530BQ |
-|A D482445LGW-A70 93CF96-2 |
+|A D482445LGW-A70 53CF96-2 |
| CXD8514Q S|
| D482445LGW-A70 C|
| 67.7376MHz S|
@@ -86,7 +90,7 @@ GV999 PWB301949A
|A 058239 |
|M 53.693175MHz |
|M CXD8530CQ |
-|A 93CF96-2 |
+|A 53CF96-2 |
| CXD8561Q S|
| KM4132G271Q-12 C|
| 67.7376MHz S|
@@ -214,23 +218,24 @@ Notes:
#include "emu.h"
-#include "bus/scsi/scsi.h"
-#include "bus/scsi/scsicd.h"
+
+#include "bus/nscsi/cd.h"
#include "cpu/psx/psx.h"
-#include "machine/am53cf96.h"
#include "machine/eepromser.h"
#include "machine/intelfsh.h"
#include "machine/mb89371.h"
+#include "machine/ncr53c90.h"
#include "machine/upd4701.h"
#include "machine/ram.h"
#include "sound/cdda.h"
#include "sound/spu.h"
#include "video/psx.h"
+
#include "screen.h"
#include "speaker.h"
-#include "cdrom.h"
-#include "multibyte.h"
+#include "cdrom.h"
+#include "endianness.h"
namespace {
@@ -240,7 +245,7 @@ class konamigv_state : public driver_device
public:
konamigv_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
- , m_am53cf96(*this, "am53cf96")
+ , m_ncr53cf96(*this, "scsi:7:ncr53cf96")
, m_btc_trackball(*this, "upd%u", 1)
, m_maincpu(*this, "maincpu")
{
@@ -255,24 +260,33 @@ protected:
void konamigv_map(address_map &map);
virtual void machine_start() override;
+ virtual void machine_reset() override;
void btc_trackball_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
uint16_t tokimeki_serial_r();
void tokimeki_serial_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
- void scsi_dma_read( uint32_t *p_n_psxram, uint32_t n_address, int32_t n_size );
- void scsi_dma_write( uint32_t *p_n_psxram, uint32_t n_address, int32_t n_size );
+ void scsi_dma_read(uint32_t *p_n_psxram, uint32_t n_address, int32_t n_size);
+ void scsi_dma_write(uint32_t *p_n_psxram, uint32_t n_address, int32_t n_size);
+ void scsi_drq(int state);
void btchamp_map(address_map &map);
void kdeadeye_map(address_map &map);
void tmosh_map(address_map &map);
- static void cdrom_config(device_t *device);
+ TIMER_CALLBACK_MEMBER(scsi_dma_transfer);
- required_device<am53cf96_device> m_am53cf96;
+ required_device<ncr53cf96_device> m_ncr53cf96;
optional_device_array<upd4701_device, 2> m_btc_trackball;
- uint8_t m_sector_buffer[ 4096 ];
required_device<cpu_device> m_maincpu;
+
+ uint32_t *m_dma_data_ptr;
+ uint32_t m_dma_offset;
+ int32_t m_dma_size;
+ bool m_dma_is_write;
+ bool m_dma_requested;
+
+ emu_timer *m_dma_timer;
};
class simpbowl_state : public konamigv_state
@@ -301,7 +315,7 @@ private:
void konamigv_state::konamigv_map(address_map &map)
{
- map(0x1f000000, 0x1f00001f).rw(m_am53cf96, FUNC(am53cf96_device::read), FUNC(am53cf96_device::write)).umask32(0x00ff00ff);
+ map(0x1f000000, 0x1f00001f).m(m_ncr53cf96, FUNC(ncr53cf96_device::map)).umask16(0x00ff);
map(0x1f100000, 0x1f100003).portr("P1");
map(0x1f100004, 0x1f100007).portr("P2");
map(0x1f100008, 0x1f10000b).portr("P3_P4");
@@ -353,93 +367,67 @@ void konamigv_state::tmosh_map(address_map &map)
// SCSI
-void konamigv_state::scsi_dma_read( uint32_t *p_n_psxram, uint32_t n_address, int32_t n_size )
+void konamigv_state::scsi_dma_read(uint32_t *p_n_psxram, uint32_t n_address, int32_t n_size)
{
- uint8_t *sector_buffer = m_sector_buffer;
- int i;
- int n_this;
+ m_dma_data_ptr = p_n_psxram;
+ m_dma_offset = n_address;
+ m_dma_size = n_size * 4;
+ m_dma_is_write = false;
+ m_dma_timer->adjust(attotime::from_usec(10));
+}
+
+void konamigv_state::scsi_dma_write(uint32_t *p_n_psxram, uint32_t n_address, int32_t n_size)
+{
+ m_dma_data_ptr = p_n_psxram;
+ m_dma_offset = n_address;
+ m_dma_size = n_size * 4;
+ m_dma_is_write = true;
+ m_dma_timer->adjust(attotime::from_usec(10));
+}
- while( n_size > 0 )
+TIMER_CALLBACK_MEMBER(konamigv_state::scsi_dma_transfer)
+{
+ if (m_dma_requested && m_dma_data_ptr != nullptr && m_dma_size > 0)
{
- if( n_size > sizeof( m_sector_buffer ) / 4 )
- {
- n_this = sizeof( m_sector_buffer ) / 4;
- }
- else
- {
- n_this = n_size;
- }
- if( n_this < 2048 / 4 )
- {
- // non-READ commands
- m_am53cf96->dma_read_data( n_this * 4, sector_buffer );
- }
+ if (m_dma_is_write)
+ m_ncr53cf96->dma_w(util::little_endian_cast<const uint8_t>(m_dma_data_ptr)[m_dma_offset]);
else
- {
- // assume normal 2048 byte data for now
- m_am53cf96->dma_read_data( 2048, sector_buffer );
- n_this = 2048 / 4;
- }
- n_size -= n_this;
-
- i = 0;
- while( n_this > 0 )
- {
- p_n_psxram[ n_address / 4 ] = get_u32le( &sector_buffer[ i ] );
- n_address += 4;
- i += 4;
- n_this--;
- }
+ util::little_endian_cast<uint8_t>(m_dma_data_ptr)[m_dma_offset] = m_ncr53cf96->dma_r();
+
+ m_dma_offset++;
+ m_dma_size--;
}
+
+ if (m_dma_requested && m_dma_size > 0)
+ m_dma_timer->adjust(attotime::from_usec(10));
}
-void konamigv_state::scsi_dma_write( uint32_t *p_n_psxram, uint32_t n_address, int32_t n_size )
+void konamigv_state::scsi_drq(int state)
{
- uint8_t *sector_buffer = m_sector_buffer;
- int i;
- int n_this;
+ if (!m_dma_requested && state)
+ m_dma_timer->adjust(attotime::from_usec(10));
- while( n_size > 0 )
- {
- if( n_size > sizeof( m_sector_buffer ) / 4 )
- {
- n_this = sizeof( m_sector_buffer ) / 4;
- }
- else
- {
- n_this = n_size;
- }
- n_size -= n_this;
-
- i = 0;
- while( n_this > 0 )
- {
- put_u32le( &sector_buffer[ i ], p_n_psxram[ n_address / 4 ] );
- n_address += 4;
- i += 4;
- n_this--;
- }
-
- m_am53cf96->dma_write_data( i, sector_buffer );
- }
+ m_dma_requested = state;
}
void konamigv_state::machine_start()
{
- save_item(NAME(m_sector_buffer));
+ m_dma_timer = timer_alloc(FUNC(konamigv_state::scsi_dma_transfer), this);
}
-void simpbowl_state::machine_start()
+void konamigv_state::machine_reset()
{
- konamigv_state::machine_start();
- save_item(NAME(m_flash_address));
+ m_dma_timer->adjust(attotime::never);
+ m_dma_data_ptr = nullptr;
+ m_dma_offset = 0;
+ m_dma_size = 0;
+ m_dma_requested = m_dma_is_write = false;
}
-void konamigv_state::cdrom_config(device_t *device)
+void simpbowl_state::machine_start()
{
- device->subdevice<cdda_device>("cdda")->add_route(0, "^^lspeaker", 1.0);
- device->subdevice<cdda_device>("cdda")->add_route(1, "^^rspeaker", 1.0);
- device = device->subdevice("cdda");
+ konamigv_state::machine_start();
+ save_item(NAME(m_flash_address));
}
void konamigv_state::konamigv(machine_config &config)
@@ -454,13 +442,20 @@ void konamigv_state::konamigv(machine_config &config)
MB89371(config, "mb89371", 0);
EEPROM_93C46_16BIT(config, "eeprom");
- scsi_port_device &scsi(SCSI_PORT(config, "scsi", 0));
- scsi.set_slot_device(1, "cdrom", SCSICD, DEVICE_INPUT_DEFAULTS_NAME(SCSI_ID_4));
- scsi.slot(1).set_option_machine_config("cdrom", cdrom_config);
-
- AM53CF96(config, m_am53cf96, 0);
- m_am53cf96->set_scsi_port("scsi");
- m_am53cf96->irq_handler().set("maincpu:irq", FUNC(psxirq_device::intin10));
+ NSCSI_BUS(config, "scsi");
+ NSCSI_CONNECTOR(config, "scsi:4").option_set("cdrom", NSCSI_XM5401).machine_config(
+ [](device_t *device)
+ {
+ device->subdevice<cdda_device>("cdda")->add_route(0, "^^lspeaker", 1.0);
+ device->subdevice<cdda_device>("cdda")->add_route(1, "^^rspeaker", 1.0);
+ });
+ NSCSI_CONNECTOR(config, "scsi:7").option_set("ncr53cf96", NCR53CF96).clock(32_MHz_XTAL/2).machine_config(
+ [this](device_t *device)
+ {
+ ncr53cf96_device &adapter = downcast<ncr53cf96_device &>(*device);
+ adapter.irq_handler_cb().set(":maincpu:irq", FUNC(psxirq_device::intin10));
+ adapter.drq_handler_cb().set(*this, FUNC(konamigv_state::scsi_drq));
+ });
// video hardware
CXD8514Q(config, "gpu", XTAL(53'693'175), 0x100000, subdevice<psxcpu_device>("maincpu")).set_screen("screen");
@@ -823,7 +818,7 @@ ROM_START( lacrazyc )
ROM_REGION16_BE( 0x0000080, "eeprom", 0 ) // default EEPROM
ROM_LOAD( "lacrazyc.25c", 0x000000, 0x000080, CRC(e20e5730) SHA1(066b49236c658a4ef2930f7bacc4b2354dd7f240) )
- DISK_REGION( "scsi:" SCSI_PORT_DEVICE1 ":cdrom" )
+ DISK_REGION( "scsi:4:cdrom" )
DISK_IMAGE_READONLY( "gv027-a1", 0, BAD_DUMP SHA1(840d0d4876cf1b814c9d8db975aa6c92e1fe4039) )
ROM_END
@@ -833,7 +828,7 @@ ROM_START( susume )
ROM_REGION16_BE( 0x0000080, "eeprom", 0 ) // default EEPROM
ROM_LOAD( "susume.25c", 0x000000, 0x000080, CRC(52f17df7) SHA1(b8ad7787b0692713439d7d9bebfa0c801c806006) )
- DISK_REGION( "scsi:" SCSI_PORT_DEVICE1 ":cdrom" )
+ DISK_REGION( "scsi:4:cdrom" )
DISK_IMAGE_READONLY( "gv027j1", 0, BAD_DUMP SHA1(e7e6749ac65de7771eb8fed7d5eefaec3f902255) )
ROM_END
@@ -843,7 +838,7 @@ ROM_START( hyperath )
ROM_REGION16_BE( 0x0000080, "eeprom", 0 ) // default EEPROM
ROM_LOAD( "hyperath.25c", 0x000000, 0x000080, CRC(20a8c435) SHA1(a0f203a999757fba68b391c525ac4b9684a57ba9) )
- DISK_REGION( "scsi:" SCSI_PORT_DEVICE1 ":cdrom" )
+ DISK_REGION( "scsi:4:cdrom" )
DISK_IMAGE_READONLY( "gv021-j1", 0, SHA1(579442444025b18da658cd6455c51459fbc3de0e) )
ROM_END
@@ -853,7 +848,7 @@ ROM_START( powyak96 )
ROM_REGION16_BE( 0x0000080, "eeprom", 0 ) // default EEPROM
ROM_LOAD( "powyak96.25c", 0x000000, 0x000080, CRC(405a7fc9) SHA1(e2d978f49748ba3c4a425188abcd3d272ec23907) )
- DISK_REGION( "scsi:" SCSI_PORT_DEVICE1 ":cdrom" )
+ DISK_REGION( "scsi:4:cdrom" )
DISK_IMAGE_READONLY( "powyak96", 0, BAD_DUMP SHA1(ebd0ea18ff9ce300ea1e30d66a739a96acfb0621) )
ROM_END
@@ -863,7 +858,7 @@ ROM_START( weddingr )
ROM_REGION16_BE( 0x0000080, "eeprom", 0 ) // default EEPROM
ROM_LOAD( "weddingr.25c", 0x000000, 0x000080, CRC(b90509a0) SHA1(41510a0ceded81dcb26a70eba97636d38d3742c3) )
- DISK_REGION( "scsi:" SCSI_PORT_DEVICE1 ":cdrom" )
+ DISK_REGION( "scsi:4:cdrom" )
DISK_IMAGE_READONLY( "weddingr", 0, BAD_DUMP SHA1(4e7122b191747ab7220fe4ce1b4483d62ab579af) )
ROM_END
@@ -873,7 +868,7 @@ ROM_START( simpbowl )
ROM_REGION16_BE( 0x0000080, "eeprom", 0 ) // default EEPROM
ROM_LOAD( "simpbowl.25c", 0x000000, 0x000080, CRC(2c61050c) SHA1(16ae7f81cbe841c429c5c7326cf83e87db1782bf) )
- DISK_REGION( "scsi:" SCSI_PORT_DEVICE1 ":cdrom" )
+ DISK_REGION( "scsi:4:cdrom" )
DISK_IMAGE_READONLY( "829uaa02", 0, SHA1(2ec4cc608d5582e478ee047b60ccee67b52f060c) )
ROM_END
@@ -883,7 +878,7 @@ ROM_START( btchamp )
ROM_REGION16_BE( 0x0000080, "eeprom", 0 ) // default EEPROM
ROM_LOAD( "btchmp.25c", 0x000000, 0x000080, CRC(6d02ea54) SHA1(d3babf481fd89db3aec17f589d0d3d999a2aa6e1) )
- DISK_REGION( "scsi:" SCSI_PORT_DEVICE1 ":cdrom" )
+ DISK_REGION( "scsi:4:cdrom" )
DISK_IMAGE_READONLY( "btchamp", 0, BAD_DUMP SHA1(c9c858e9034826e1a12c3c003dd068a49a3577e1) )
ROM_END
@@ -893,8 +888,8 @@ ROM_START( kdeadeye )
ROM_REGION16_BE( 0x0000080, "eeprom", 0 ) // default EEPROM
ROM_LOAD( "kdeadeye.25c", 0x000000, 0x000080, CRC(3935d2df) SHA1(cbb855c475269077803c380dbc3621e522efe51e) )
- DISK_REGION( "scsi:" SCSI_PORT_DEVICE1 ":cdrom" )
- DISK_IMAGE_READONLY( "kdeadeye", 0, BAD_DUMP SHA1(3c737c51717925be724dcb93d30769649029b8ce) )
+ DISK_REGION( "scsi:4:cdrom" )
+ DISK_IMAGE_READONLY( "054uaa01", 0, SHA1(84ff29b6ca0282b8d3ffac8c8a1a1c58085fd469) )
ROM_END
ROM_START( nagano98 )
@@ -903,7 +898,7 @@ ROM_START( nagano98 )
ROM_REGION16_BE( 0x0000080, "eeprom", 0 ) // default EEPROM
ROM_LOAD( "nagano98.25c", 0x000000, 0x000080, CRC(b64b7451) SHA1(a77a37e0cc580934d1e7e05d523bae0acd2c1480) )
- DISK_REGION( "scsi:" SCSI_PORT_DEVICE1 ":cdrom" )
+ DISK_REGION( "scsi:4:cdrom" )
DISK_IMAGE_READONLY( "nagano98", 0, BAD_DUMP SHA1(1be7bd4531f249ff2233dd40a206c8d60054a8c6) )
ROM_END
@@ -913,7 +908,7 @@ ROM_START( naganoj )
ROM_REGION16_BE( 0x0000080, "eeprom", 0 ) // default EEPROM
ROM_LOAD( "720ja.25c", 0x000000, 0x000080, CRC(34c473ba) SHA1(768225b04a293bdbc114a092d14dee28d52044e9) )
- DISK_REGION( "scsi:" SCSI_PORT_DEVICE1 ":cdrom" )
+ DISK_REGION( "scsi:4:cdrom" )
DISK_IMAGE_READONLY( "720jaa01", 0, SHA1(437160996551ef4dfca43899d1d14beca62eb4c9) )
ROM_END
@@ -923,7 +918,7 @@ ROM_START( tmosh )
ROM_REGION16_BE( 0x0000080, "eeprom", 0 ) // default EEPROM
ROM_LOAD( "tmosh.25c", 0x000000, 0x000080, NO_DUMP )
- DISK_REGION( "scsi:" SCSI_PORT_DEVICE1 ":cdrom" )
+ DISK_REGION( "scsi:4:cdrom" )
DISK_IMAGE_READONLY( "673jaa01", 0, SHA1(eaa76073749f9db48c1bee3dff9bea955683c8a8) )
ROM_END
@@ -933,7 +928,7 @@ ROM_START( tmoshs )
ROM_REGION16_BE( 0x0000080, "eeprom", 0 ) // default EEPROM
ROM_LOAD( "tmoshs.25c", 0x000000, 0x000080, CRC(e57b833f) SHA1(f18a0974a6be69dc179706643aab837ff61c2738) )
- DISK_REGION( "scsi:" SCSI_PORT_DEVICE1 ":cdrom" )
+ DISK_REGION( "scsi:4:cdrom" )
DISK_IMAGE_READONLY( "755jaa01", 0, SHA1(fc742a0b763ba38350ba7eb5d775948632aafd9d) )
ROM_END
@@ -943,7 +938,7 @@ ROM_START( tmoshsp )
ROM_REGION16_BE( 0x0000080, "eeprom", 0 ) // default EEPROM
ROM_LOAD( "tmoshsp.25c", 0x000000, 0x000080, CRC(af4cdd87) SHA1(97041e287e4c80066043967450779b81b62b2b8e) )
- DISK_REGION( "scsi:" SCSI_PORT_DEVICE1 ":cdrom" )
+ DISK_REGION( "scsi:4:cdrom" )
DISK_IMAGE_READONLY( "756jab01", 0, SHA1(b2c59b9801debccbbd986728152f314535c67e53) )
ROM_END
@@ -953,7 +948,7 @@ ROM_START( tmoshspa )
ROM_REGION16_BE( 0x0000080, "eeprom", 0 ) // default EEPROM
ROM_LOAD( "tmoshsp.25c", 0x000000, 0x000080, CRC(af4cdd87) SHA1(97041e287e4c80066043967450779b81b62b2b8e) )
- DISK_REGION( "scsi:" SCSI_PORT_DEVICE1 ":cdrom" )
+ DISK_REGION( "scsi:4:cdrom" )
DISK_IMAGE_READONLY( "756jaa01", 0, BAD_DUMP SHA1(5e6d349ad1a22c0dbb1ec26aa05febc830254339) ) // The CD was damaged
ROM_END
@@ -968,12 +963,12 @@ GAME( 1996, hyperath, konamigv, konamigv, konamigv, konamigv_state, empty_init,
GAME( 1996, lacrazyc, konamigv, konamigv, konamigv, konamigv_state, empty_init, ROT0, "Konami", "Let's Attack Crazy Cross (GV027 Asia 1.10)", MACHINE_IMPERFECT_SOUND )
GAME( 1996, susume, lacrazyc, konamigv, konamigv, konamigv_state, empty_init, ROT0, "Konami", "Susume! Taisen Puzzle-Dama (GV027 Japan 1.20)", MACHINE_IMPERFECT_SOUND )
GAME( 1996, btchamp, konamigv, btchamp, btchamp, konamigv_state, empty_init, ROT0, "Konami", "Beat the Champ (GV053 UAA01)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
-GAME( 1996, kdeadeye, konamigv, kdeadeye, kdeadeye, konamigv_state, empty_init, ROT0, "Konami", "Dead Eye (GV054 UAA01)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, kdeadeye, konamigv, kdeadeye, kdeadeye, konamigv_state, empty_init, ROT0, "Konami", "Dead Eye (GV054 UAA01)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
GAME( 1997, weddingr, konamigv, konamigv, weddingr, konamigv_state, empty_init, ROT0, "Konami", "Wedding Rhapsody (GX624 JAA)", MACHINE_IMPERFECT_SOUND )
GAME( 1997, tmosh, konamigv, tmosh, konamigv, konamigv_state, empty_init, ROT0, "Konami", "Tokimeki Memorial Oshiete Your Heart (GQ673 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
GAME( 1997, tmoshs, konamigv, tmosh, konamigv, konamigv_state, empty_init, ROT0, "Konami", "Tokimeki Memorial Oshiete Your Heart Seal Version (GE755 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
GAME( 1997, tmoshsp, konamigv, tmosh, konamigv, konamigv_state, empty_init, ROT0, "Konami", "Tokimeki Memorial Oshiete Your Heart Seal Version Plus (GE756 JAB)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
GAME( 1997, tmoshspa, tmoshsp, tmosh, konamigv, konamigv_state, empty_init, ROT0, "Konami", "Tokimeki Memorial Oshiete Your Heart Seal Version Plus (GE756 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
-GAME( 1998, nagano98, konamigv, konamigv, konamigv, konamigv_state, empty_init, ROT0, "Konami", "Nagano Winter Olympics '98 (GX720 EAA)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE)
-GAME( 1998, naganoj, nagano98, konamigv, konamigv, konamigv_state, empty_init, ROT0, "Konami", "Hyper Olympic in Nagano (GX720 JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE)
-GAME( 2000, simpbowl, konamigv, simpbowl, simpbowl, simpbowl_state, empty_init, ROT0, "Konami", "The Simpsons Bowling (GQ829 UAA)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE)
+GAME( 1998, nagano98, konamigv, konamigv, konamigv, konamigv_state, empty_init, ROT0, "Konami", "Nagano Winter Olympics '98 (GX720 EAA)", MACHINE_IMPERFECT_SOUND)
+GAME( 1998, naganoj, nagano98, konamigv, konamigv, konamigv_state, empty_init, ROT0, "Konami", "Hyper Olympic in Nagano (GX720 JAA)", MACHINE_IMPERFECT_SOUND)
+GAME( 2000, simpbowl, konamigv, simpbowl, simpbowl, simpbowl_state, empty_init, ROT0, "Konami", "The Simpsons Bowling (GQ829 UAA)", MACHINE_IMPERFECT_SOUND)