diff --git a/hash/database.xml b/hash/database.xml
index b762a75d155..1e503859d09 100644
--- a/hash/database.xml
+++ b/hash/database.xml
@@ -157,8 +157,7 @@
Voltmace?
-
-
+
@@ -229,8 +228,7 @@
Voltmace?
-
-
+
diff --git a/hash/vc4000.xml b/hash/vc4000.xml
index d42d8fe7ea7..5dea1663555 100644
--- a/hash/vc4000.xml
+++ b/hash/vc4000.xml
@@ -236,12 +236,10 @@
Interton
-
+
-
-
diff --git a/src/emu/bus/vc4000/rom.c b/src/emu/bus/vc4000/rom.c
index 200d5d4127f..ebca01360f8 100644
--- a/src/emu/bus/vc4000/rom.c
+++ b/src/emu/bus/vc4000/rom.c
@@ -193,6 +193,7 @@
//-------------------------------------------------
const device_type VC4000_ROM_STD = &device_creator;
+const device_type VC4000_ROM_ROM4K = &device_creator;
const device_type VC4000_ROM_RAM1K = &device_creator;
const device_type VC4000_ROM_CHESS2 = &device_creator;
@@ -209,6 +210,11 @@ vc4000_rom_device::vc4000_rom_device(const machine_config &mconfig, const char *
{
}
+vc4000_rom4k_device::vc4000_rom4k_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : vc4000_rom_device(mconfig, VC4000_ROM_ROM4K, "VC 4000 Carts w/4K ROM", tag, owner, clock, "vc4000_rom4k", __FILE__)
+{
+}
+
vc4000_ram1k_device::vc4000_ram1k_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: vc4000_rom_device(mconfig, VC4000_ROM_RAM1K, "VC 4000 Carts w/1K RAM", tag, owner, clock, "vc4000_ram1k", __FILE__)
{
diff --git a/src/emu/bus/vc4000/rom.h b/src/emu/bus/vc4000/rom.h
index 53ef34a4805..55264d33da6 100644
--- a/src/emu/bus/vc4000/rom.h
+++ b/src/emu/bus/vc4000/rom.h
@@ -24,6 +24,15 @@ public:
virtual DECLARE_READ8_MEMBER(read_rom);
};
+// ======================> vc4000_rom4k_device
+
+class vc4000_rom4k_device : public vc4000_rom_device
+{
+public:
+ // construction/destruction
+ vc4000_rom4k_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+};
+
// ======================> vc4000_ram1k_device
class vc4000_ram1k_device : public vc4000_rom_device
@@ -57,6 +66,7 @@ public:
// device type definition
extern const device_type VC4000_ROM_STD;
+extern const device_type VC4000_ROM_ROM4K;
extern const device_type VC4000_ROM_RAM1K;
extern const device_type VC4000_ROM_CHESS2;
diff --git a/src/emu/bus/vc4000/slot.c b/src/emu/bus/vc4000/slot.c
index 43fbfa992e2..14ec2edb593 100644
--- a/src/emu/bus/vc4000/slot.c
+++ b/src/emu/bus/vc4000/slot.c
@@ -127,6 +127,7 @@ struct vc4000_slot
static const vc4000_slot slot_list[] =
{
{ VC4000_STD, "std" },
+ { VC4000_ROM4K, "rom4k" },
{ VC4000_RAM1K, "ram1k" },
{ VC4000_CHESS2, "chess2" }
};
@@ -183,7 +184,7 @@ bool vc4000_cart_slot_device::call_load()
// attempt to identify the non-standard types
if (size > 0x1000) // 6k rom + 1k ram - Chess2 only
m_type = VC4000_CHESS2;
- else if (size > 0x0800) // some 4k roms have 1k of mirrored ram
+ else if (size > 0x0800) // some 4k roms have 1k of mirrored ram (those who don't still work with RAM emulated luckily)
m_type = VC4000_RAM1K;
if (m_type == VC4000_RAM1K || m_type == VC4000_CHESS2)
diff --git a/src/emu/bus/vc4000/slot.h b/src/emu/bus/vc4000/slot.h
index c4226d1c9b9..d965d13d0ba 100644
--- a/src/emu/bus/vc4000/slot.h
+++ b/src/emu/bus/vc4000/slot.h
@@ -12,6 +12,7 @@
enum
{
VC4000_STD = 0,
+ VC4000_ROM4K,
VC4000_RAM1K,
VC4000_CHESS2
};
diff --git a/src/mess/drivers/vc4000.c b/src/mess/drivers/vc4000.c
index 19f95921476..6df1ee22355 100644
--- a/src/mess/drivers/vc4000.c
+++ b/src/mess/drivers/vc4000.c
@@ -369,6 +369,9 @@ void vc4000_state::machine_start()
case VC4000_STD:
m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x07ff, read8_delegate(FUNC(vc4000_cart_slot_device::read_rom),(vc4000_cart_slot_device*)m_cart));
break;
+ case VC4000_ROM4K:
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x0fff, read8_delegate(FUNC(vc4000_cart_slot_device::read_rom),(vc4000_cart_slot_device*)m_cart));
+ break;
case VC4000_RAM1K:
m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x0fff, read8_delegate(FUNC(vc4000_cart_slot_device::read_rom),(vc4000_cart_slot_device*)m_cart));
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x15ff, read8_delegate(FUNC(vc4000_cart_slot_device::read_ram),(vc4000_cart_slot_device*)m_cart), write8_delegate(FUNC(vc4000_cart_slot_device::write_ram),(vc4000_cart_slot_device*)m_cart));
@@ -513,6 +516,7 @@ QUICKLOAD_LOAD_MEMBER( vc4000_state,vc4000)
static SLOT_INTERFACE_START(vc4000_cart)
SLOT_INTERFACE_INTERNAL("std", VC4000_ROM_STD)
+ SLOT_INTERFACE_INTERNAL("rom4k", VC4000_ROM_ROM4K)
SLOT_INTERFACE_INTERNAL("ram1k", VC4000_ROM_RAM1K)
SLOT_INTERFACE_INTERNAL("chess2", VC4000_ROM_CHESS2)
SLOT_INTERFACE_END