summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2018-02-14 23:53:41 -0500
committer AJR <ajrhacker@users.noreply.github.com>2018-02-14 23:54:25 -0500
commit431de71d2033d389cdf1f49878c5b690c03bc891 (patch)
treef3bfc896973e9e85957460b23bf6ac20bc3cc8a5
parent867776875d697581271a07dce6fd5b062ae9b4db (diff)
Merge satcdb skeleton device with stvcd
-rw-r--r--scripts/target/mame/arcade.lua2
-rw-r--r--scripts/target/mame/mess.lua2
-rw-r--r--src/devices/machine/stvcd.cpp31
-rw-r--r--src/devices/machine/stvcd.h3
-rw-r--r--src/mame/drivers/saturn.cpp6
-rw-r--r--src/mame/drivers/stv.cpp4
-rw-r--r--src/mame/machine/saturn_cdb.cpp57
-rw-r--r--src/mame/machine/saturn_cdb.h29
8 files changed, 36 insertions, 98 deletions
diff --git a/scripts/target/mame/arcade.lua b/scripts/target/mame/arcade.lua
index 00c6d07dd4e..b268c0fdab6 100644
--- a/scripts/target/mame/arcade.lua
+++ b/scripts/target/mame/arcade.lua
@@ -3311,8 +3311,6 @@ files {
MAME_DIR .. "src/mame/includes/saturn.h",
MAME_DIR .. "src/mame/drivers/saturn.cpp",
MAME_DIR .. "src/mame/machine/saturn.cpp",
- MAME_DIR .. "src/mame/machine/saturn_cdb.cpp",
- MAME_DIR .. "src/mame/machine/saturn_cdb.h",
MAME_DIR .. "src/mame/includes/stv.h",
MAME_DIR .. "src/mame/machine/stvprot.cpp",
MAME_DIR .. "src/mame/machine/stvprot.h",
diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua
index c38eb46c82b..3e828364956 100644
--- a/scripts/target/mame/mess.lua
+++ b/scripts/target/mame/mess.lua
@@ -1318,8 +1318,6 @@ files {
MAME_DIR .. "src/mame/includes/saturn.h",
MAME_DIR .. "src/mame/drivers/saturn.cpp",
MAME_DIR .. "src/mame/machine/saturn.cpp",
- MAME_DIR .. "src/mame/machine/saturn_cdb.cpp",
- MAME_DIR .. "src/mame/machine/saturn_cdb.h",
}
end
--------------------------------------------------
diff --git a/src/devices/machine/stvcd.cpp b/src/devices/machine/stvcd.cpp
index b5f083d3260..240f0df8580 100644
--- a/src/devices/machine/stvcd.cpp
+++ b/src/devices/machine/stvcd.cpp
@@ -26,6 +26,7 @@
#include "emu.h"
#include "machine/stvcd.h"
+#include "cpu/sh/sh2.h"
#include "coreutil.h"
// super-verbose
@@ -77,7 +78,21 @@ stvcd_device::stvcd_device(const machine_config &mconfig, const char *tag, devic
{
}
+ADDRESS_MAP_START(stvcd_device::saturn_cdb_map)
+ AM_RANGE(0x00000000, 0x0000ffff) AM_ROM
+ AM_RANGE(0x01000000, 0x010fffff) AM_RAM // RAM buffer area?
+ AM_RANGE(0x02000000, 0x0200003f) AM_RAM // i/f with SH-2s
+ AM_RANGE(0x02100000, 0x0210003f) AM_RAM // i/f with SH-2s
+ AM_RANGE(0x02180000, 0x0218003f) AM_RAM // i/f with SH-2s
+ AM_RANGE(0x07000000, 0x07000fff) AM_RAM // unknown, internal RAM?
+ADDRESS_MAP_END
+
MACHINE_CONFIG_START(stvcd_device::device_add_mconfig)
+ MCFG_CPU_ADD("cdbcpu", SH1, DERIVED_CLOCK(1, 1))
+ MCFG_CPU_PROGRAM_MAP(saturn_cdb_map)
+ MCFG_DEVICE_DISABLE() // we're not actually using the CD Block ROM for now
+ // Attempts to use SCI, tight loops checking bit 2 of 0x5ffffc2 (TEIE)
+
MCFG_CDROM_ADD("cdrom")
MCFG_CDROM_INTERFACE("sat_cdrom")
@@ -2739,3 +2754,19 @@ void stvcd_device::set_tray_close()
popmessage("Tray Close");
}
+
+ROM_START( stvcd )
+ ROM_REGION( 0x10000, "cdbcpu", 0 )
+ ROM_DEFAULT_BIOS("cdb106")
+ ROM_SYSTEM_BIOS( 0, "cdb106", "Saturn CD Block 1.06" )
+ ROMX_LOAD( "cdb106.bin", 0x00000, 0x10000, CRC(3681d3b0) SHA1(b3c20fbe57cd2eb595e9edac86817e5948dccae4), ROM_BIOS(1) ) // for YGR019B?
+ ROM_SYSTEM_BIOS( 1, "cdb105", "Saturn CD Block 1.05" )
+ ROMX_LOAD( "cdb105.bin", 0x00000, 0x10000, CRC(2a2ced5c) SHA1(eb8393058f324e922c11b43709b64fc6ca94ab86), ROM_BIOS(2) ) // for YGR019A?
+ ROM_SYSTEM_BIOS( 2, "ygr022", "Saturn CD Block (YGR022 315-5962)" )
+ ROMX_LOAD( "ygr022.bin", 0x00000, 0x10000, CRC(1c8b9f38) SHA1(f4f6c2aac68c352814d396ae41f81f54ad228e68), ROM_BIOS(3) ) // combined package?
+ROM_END
+
+const tiny_rom_entry *stvcd_device::device_rom_region() const
+{
+ return ROM_NAME(stvcd);
+}
diff --git a/src/devices/machine/stvcd.h b/src/devices/machine/stvcd.h
index a20985fd394..b713f93e394 100644
--- a/src/devices/machine/stvcd.h
+++ b/src/devices/machine/stvcd.h
@@ -31,8 +31,11 @@ protected:
virtual void device_start() override;
virtual void device_reset() override;
virtual void device_stop() override;
+ virtual const tiny_rom_entry *device_rom_region() const override;
private:
+ void saturn_cdb_map(address_map &map);
+
TIMER_DEVICE_CALLBACK_MEMBER( stv_sector_cb );
TIMER_DEVICE_CALLBACK_MEMBER( stv_sh1_sim );
diff --git a/src/mame/drivers/saturn.cpp b/src/mame/drivers/saturn.cpp
index 3e8f1efa3ab..55ef4912af3 100644
--- a/src/mame/drivers/saturn.cpp
+++ b/src/mame/drivers/saturn.cpp
@@ -431,7 +431,6 @@ test1f diagnostic hacks:
#include "machine/nvram.h"
#include "machine/smpc.h"
#include "machine/stvcd.h"
-#include "machine/saturn_cdb.h"
#include "sound/scsp.h"
#include "video/stvvdp1.h"
#include "video/stvvdp2.h"
@@ -842,7 +841,7 @@ MACHINE_CONFIG_START(sat_console_state::saturn)
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
- MCFG_DEVICE_ADD("stvcd", STVCD, 0)
+ MCFG_DEVICE_ADD("stvcd", STVCD, 16000000)
//MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
//MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
@@ -863,7 +862,6 @@ SLOT_INTERFACE_END
MACHINE_CONFIG_START(sat_console_state::saturnus)
saturn(config);
- MCFG_DEVICE_ADD("saturn_cdb", SATURN_CDB, 16000000)
MCFG_SOFTWARE_LIST_ADD("cd_list","saturn")
MCFG_SOFTWARE_LIST_FILTER("cd_list","NTSC-U")
@@ -878,7 +876,6 @@ MACHINE_CONFIG_END
MACHINE_CONFIG_START(sat_console_state::saturneu)
saturn(config);
- MCFG_DEVICE_ADD("saturn_cdb", SATURN_CDB, 16000000)
MCFG_SOFTWARE_LIST_ADD("cd_list","saturn")
MCFG_SOFTWARE_LIST_FILTER("cd_list","PAL")
@@ -892,7 +889,6 @@ MACHINE_CONFIG_END
MACHINE_CONFIG_START(sat_console_state::saturnjp)
saturn(config);
- MCFG_DEVICE_ADD("saturn_cdb", SATURN_CDB, 16000000)
MCFG_SOFTWARE_LIST_ADD("cd_list","saturn")
MCFG_SOFTWARE_LIST_FILTER("cd_list","NTSC-J")
diff --git a/src/mame/drivers/stv.cpp b/src/mame/drivers/stv.cpp
index 1d83e598a44..ccb1207adbd 100644
--- a/src/mame/drivers/stv.cpp
+++ b/src/mame/drivers/stv.cpp
@@ -41,11 +41,9 @@
#include "cpu/m68000/m68000.h"
#include "cpu/scudsp/scudsp.h"
#include "cpu/sh/sh2.h"
-#include "imagedev/chd_cd.h"
#include "machine/smpc.h"
#include "machine/stvcd.h"
#include "machine/stvprot.h"
-#include "sound/cdda.h"
#include "sound/scsp.h"
#include "screen.h"
@@ -1133,7 +1131,7 @@ MACHINE_CONFIG_START(stv_state::stvcd)
MCFG_CPU_PROGRAM_MAP(stvcd_mem)
MCFG_DEVICE_MODIFY("slave")
MCFG_CPU_PROGRAM_MAP(stvcd_mem)
- MCFG_DEVICE_ADD("stvcd", STVCD, 0)
+ MCFG_DEVICE_ADD("stvcd", STVCD, 16000000)
//MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
//MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
MACHINE_CONFIG_END
diff --git a/src/mame/machine/saturn_cdb.cpp b/src/mame/machine/saturn_cdb.cpp
deleted file mode 100644
index d655064150e..00000000000
--- a/src/mame/machine/saturn_cdb.cpp
+++ /dev/null
@@ -1,57 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:David Haywood
-
-/* Notes
-
-YGR019B - Hitachi YGR019B CD-Subsystem LSI. Earlier revision is YGR019A. Later revision combines this IC and the SH1 together
- into one IC (YGR022 315-5962). The SH1 and the YGR019B make up the 'CD Block' CD Authentication and CD I/O data controller.
- Another of it's functions is to prevent copied CDs from being played
-
-Attempts to use SCI, tight loops checking bit 2 of 0x5ffffc2 (TEIE)
-
-*/
-
-#include "emu.h"
-#include "machine/saturn_cdb.h"
-
-DEFINE_DEVICE_TYPE(SATURN_CDB, saturn_cdb_device, "satcdb", "Saturn CDB (CD Block)")
-
-saturn_cdb_device::saturn_cdb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : device_t(mconfig, SATURN_CDB, tag, owner, clock)
-{
-}
-
-void saturn_cdb_device::device_start()
-{
-}
-
-ADDRESS_MAP_START(saturn_cdb_device::saturn_cdb_map)
- AM_RANGE(0x00000000, 0x0000ffff) AM_ROM
- AM_RANGE(0x01000000, 0x010fffff) AM_RAM // RAM buffer area?
- AM_RANGE(0x02000000, 0x0200003f) AM_RAM // i/f with SH-2s
- AM_RANGE(0x02100000, 0x0210003f) AM_RAM // i/f with SH-2s
- AM_RANGE(0x02180000, 0x0218003f) AM_RAM // i/f with SH-2s
- AM_RANGE(0x07000000, 0x07000fff) AM_RAM // unknown, internal RAM?
-ADDRESS_MAP_END
-
-MACHINE_CONFIG_START(saturn_cdb_device::device_add_mconfig)
- MCFG_CPU_ADD("cdbcpu", SH1, DERIVED_CLOCK(1, 1))
- MCFG_CPU_PROGRAM_MAP(saturn_cdb_map)
- MCFG_DEVICE_DISABLE() // we're not actually using the CD Block ROM for now
-MACHINE_CONFIG_END
-
-ROM_START( satcdb )
- ROM_REGION( 0x10000, "cdbcpu", 0 )
- ROM_DEFAULT_BIOS("cdb106")
- ROM_SYSTEM_BIOS( 0, "cdb106", "Saturn CD Block 1.06" )
- ROMX_LOAD( "cdb106.bin", 0x00000, 0x10000, CRC(3681d3b0) SHA1(b3c20fbe57cd2eb595e9edac86817e5948dccae4), ROM_BIOS(1) ) // for YGR019B?
- ROM_SYSTEM_BIOS( 1, "cdb105", "Saturn CD Block 1.05" )
- ROMX_LOAD( "cdb105.bin", 0x00000, 0x10000, CRC(2a2ced5c) SHA1(eb8393058f324e922c11b43709b64fc6ca94ab86), ROM_BIOS(2) ) // for YGR019A?
- ROM_SYSTEM_BIOS( 2, "ygr022", "Saturn CD Block (YGR022 315-5962)" )
- ROMX_LOAD( "ygr022.bin", 0x00000, 0x10000, CRC(1c8b9f38) SHA1(f4f6c2aac68c352814d396ae41f81f54ad228e68), ROM_BIOS(3) ) // combined package?
-ROM_END
-
-const tiny_rom_entry *saturn_cdb_device::device_rom_region() const
-{
- return ROM_NAME(satcdb);
-}
diff --git a/src/mame/machine/saturn_cdb.h b/src/mame/machine/saturn_cdb.h
deleted file mode 100644
index 7a6f19b43dc..00000000000
--- a/src/mame/machine/saturn_cdb.h
+++ /dev/null
@@ -1,29 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:David Haywood
-
-#ifndef MAME_MACHINE_SATURN_CDB_H
-#define MAME_MACHINE_SATURN_CDB_H
-
-#pragma once
-
-#include "cpu/sh/sh2.h"
-
-DECLARE_DEVICE_TYPE(SATURN_CDB, saturn_cdb_device)
-
-class saturn_cdb_device : public device_t
-{
-public:
- // construction/destruction
- saturn_cdb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
-
- void saturn_cdb_map(address_map &map);
-protected:
- virtual void device_start() override;
- virtual const tiny_rom_entry *device_rom_region() const override;
- virtual void device_add_mconfig(machine_config &config) override;
-
-private:
-
-};
-
-#endif // MAME_MACHINE_SATURN_CDB_H