summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2018-02-15 08:26:30 -0500
committer AJR <ajrhacker@users.noreply.github.com>2018-02-15 08:26:30 -0500
commit7d201e2e085a89fef52e4b4e214ec4e06ba9fe0a (patch)
tree59691d11577fb4f303db735c93a2868cc26ad7db
parentdfe4205d4bfcec78e5c298b109e86c2603df5990 (diff)
Revert "Merge satcdb skeleton device with stvcd"
This reverts commit 431de71d2033d389cdf1f49878c5b690c03bc891.
-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, 98 insertions, 36 deletions
diff --git a/scripts/target/mame/arcade.lua b/scripts/target/mame/arcade.lua
index b268c0fdab6..00c6d07dd4e 100644
--- a/scripts/target/mame/arcade.lua
+++ b/scripts/target/mame/arcade.lua
@@ -3311,6 +3311,8 @@ 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 3e828364956..c38eb46c82b 100644
--- a/scripts/target/mame/mess.lua
+++ b/scripts/target/mame/mess.lua
@@ -1318,6 +1318,8 @@ 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 240f0df8580..b5f083d3260 100644
--- a/src/devices/machine/stvcd.cpp
+++ b/src/devices/machine/stvcd.cpp
@@ -26,7 +26,6 @@
#include "emu.h"
#include "machine/stvcd.h"
-#include "cpu/sh/sh2.h"
#include "coreutil.h"
// super-verbose
@@ -78,21 +77,7 @@ 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")
@@ -2754,19 +2739,3 @@ 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 b713f93e394..a20985fd394 100644
--- a/src/devices/machine/stvcd.h
+++ b/src/devices/machine/stvcd.h
@@ -31,11 +31,8 @@ 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 55ef4912af3..3e8f1efa3ab 100644
--- a/src/mame/drivers/saturn.cpp
+++ b/src/mame/drivers/saturn.cpp
@@ -431,6 +431,7 @@ 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"
@@ -841,7 +842,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, 16000000)
+ MCFG_DEVICE_ADD("stvcd", STVCD, 0)
//MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
//MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
@@ -862,6 +863,7 @@ 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")
@@ -876,6 +878,7 @@ 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")
@@ -889,6 +892,7 @@ 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 ccb1207adbd..1d83e598a44 100644
--- a/src/mame/drivers/stv.cpp
+++ b/src/mame/drivers/stv.cpp
@@ -41,9 +41,11 @@
#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"
@@ -1131,7 +1133,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, 16000000)
+ MCFG_DEVICE_ADD("stvcd", STVCD, 0)
//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
new file mode 100644
index 00000000000..d655064150e
--- /dev/null
+++ b/src/mame/machine/saturn_cdb.cpp
@@ -0,0 +1,57 @@
+// 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
new file mode 100644
index 00000000000..7a6f19b43dc
--- /dev/null
+++ b/src/mame/machine/saturn_cdb.h
@@ -0,0 +1,29 @@
+// 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