diff --git a/hash/ekara_japan.xml b/hash/ekara_japan.xml
index 39142bbaf37..34691abfb53 100644
--- a/hash/ekara_japan.xml
+++ b/hash/ekara_japan.xml
@@ -63,7 +63,7 @@
.. *EC0001-JPM J-Pop Mix Volume 1
.. *EC0002-JPM J-Pop Mix Volume 2
.. *EC0003-JPM J-Pop Mix Volume 3
- .. EC0004-JPM J-Pop Mix Volume 4
+ .. *EC0004-JPM J-Pop Mix Volume 4
.. *EC0005-JPM J-Pop Mix Volume 5
.. *EC0006-ENK ENK Volume 1
.. *EC0007-G76 1976-78 Volume 1
@@ -71,31 +71,31 @@
.. *EC0009-ANM ANM Volume 1
.. *EC0010-KID Kid's Mix Volume 1
- .. EC0011-JPM J-Pop Mix Volume 6
+ .. *EC0011-JPM J-Pop Mix Volume 6
.. *EC0012-JPM J-Pop Mix Volume 7
.. *EC0013-JPM J-Pop Mix Volume 8
.. *EC0014-ATS Artist Selection Volume 1 - untranslated artist
.. *EC0015-ATS Artist Selection Volume 2 - untranslated artist
.. EC0016-ENK ENK Volume 2
.. EC0017-G73 1973-75 Volume 1
- .. EC0018-G82 1982-84 Volume 1
+ .. *EC0018-G82 1982-84 Volume 1
.. EC0019-BSC Graduation Encouragement Volume 1
.. EC0020-KID Kid's Mix Volume 2
- .. EC0021-JPM J-Pop Mix Volume 9
+ .. *EC0021-JPM J-Pop Mix Volume 9
.. *EC0022-JPM J-Pop Mix Volume 10
23 *EC0023-JPM J-Pop Mix Volume 11
- 24 EC0024-JPM J-Pop Mix Volume 12
+ 24 *EC0024-JPM J-Pop Mix Volume 12
25 *EC0025-JPM J-Pop Mix Volume 13
26 *EC0026-JPM J-Pop Mix Volume 14
27 *EC0027-JPM J-Pop Mix Volume 15
28 EC0028-JPM J-Pop Mix Volume 16
29 *EC0029-ATS Artist Selection Volume 3 - Dreams Come True
- 30 EC0030-ENK ENK Volume 3
+ 30 *EC0030-ENK ENK Volume 3
31 *EC0031-ATS Artist Selection Volume 4 - untranslated artist
32 *EC0032-ANM ANM Volume 2
- 33 EC0033-JPM J-Pop Mix Volume 17
+ 33 *EC0033-JPM J-Pop Mix Volume 17
34 *EC0034-KID Kid's Mix Volume 3
35 *EC0035-ATS Artist Selection Volume 5 - Matsuda Seiko
36 *EC0036-ATS Artist Selection Volume 6 - KinKi Kids
@@ -110,13 +110,13 @@
44 *EC0044-ATS Artist Selection Volume 9 - Every Little Thing
45 *EC0045-ATS Artist Selection Volume 10 - Mr. Children
46 *EC0046-JPM J-Pop Mix Volume 20
- 47 EC0047- untranslated Volume 1
+ 47 *EC0047-DUE DUE Volume 1
48 *EC0048-ENK ENK Volume 6
49 *EC0049-ATS Artist Selection Volume 11 - Judy and Mary
50 EC0050-ATS Artist Selection Volume 12 - The Beatles
- 51 EC0051-JPM J-Pop Mix Volume 21
- 52 EC0052-ENK ENK Volume 7
+ 51 *EC0051-JPM J-Pop Mix Volume 21
+ 52 *EC0052-ENK ENK Volume 7
53 EC0053-JPM J-Pop Mix Volume 22
54 *EC0054-JPM J-Pop Mix Volume 23
55 EC0055-ATS Artist Selection Volume 13 - Tube
@@ -126,9 +126,9 @@
59 EC0059-JPM J-Pop Mix Volume 25
60 EC0060-JPM J-Pop Mix Volume 26
- 61 EC0061-JPM J-Pop Mix Volume 27
+ 61 *EC0061-JPM J-Pop Mix Volume 27
62 EC0062-JPM J-Pop Mix Volume 28
- 63 EC0063-JPM J-Pop Mix Volume 29
+ 63 *EC0063-JPM J-Pop Mix Volume 29
64 EC0064-ENK ENK Volume 9
65 EC0065-JPM J-Pop Mix Volume 30
66 EC0066-JPM J-Pop Mix Volume 31
@@ -149,9 +149,9 @@
80 EC0080- (unknown)
81 EC0081-JPM J-Pop Mix Volume 42
82 *EC0082-MBH Matthew's Best Hit Selection
- 83
- 84
- 85 (seen in the wild)
+ 83 EC0083-JPM J-Pop Mix Volume 43
+ 84 EC0084- (unknown, seen)
+ 85 EC0085- (unknown, seen)
(more? what's the highest regular number?)
@@ -236,6 +236,17 @@
+
+ J-Pop Mix Volume 4 (Japan) (EC0004-JPM)
+ 2000
+ Takara
+
+
+
+
+
+
+
J-Pop Mix Volume 5 (Japan) (EC0005-JPM)
2000
@@ -247,6 +258,17 @@
+
+ J-Pop Mix Volume 6 (Japan) (EC0011-JPM)
+ 2000
+ Takara
+
+
+
+
+
+
+
ENK Volume 1 (Japan) (EC0006-ENK)
2000
@@ -346,6 +368,36 @@
+
+
+
+
+
+ 1982-84 Volume 1 (Japan) (EC0018-G82)
+ 2000
+ Takara
+
+
+
+
+
+
+
+
+
+
+
+
+ J-Pop Mix Volume 9 (Japan) (EC0021-JPM)
+ 2000
+ Takara
+
+
+
+
+
+
+
J-Pop Mix Volume 10 (Japan) (EC0022-JPM)
2000
@@ -368,6 +420,17 @@
+
+ J-Pop Mix Volume 12 (Japan) (EC0024-JPM)
+ 2000
+ Takara
+
+
+
+
+
+
+
J-Pop Mix Volume 13 (Japan) (EC0025-JPM)
2000
@@ -401,6 +464,8 @@
+
+
Artist Selection Volume 3 (Dreams Come True) (Japan) (EC0029-ATS)
2000
@@ -412,6 +477,17 @@
+
+ ENK Volume 3 (Japan) (EC0030-ENK)
+ 2000
+ Takara
+
+
+
+
+
+
+
Artist Selection Volume 4 (unknown) (Japan) (EC0031-ATS)
2000
@@ -434,6 +510,17 @@
+
+ J-Pop Mix Volume 17 (Japan) (EC0033-JPM)
+ 2000
+ Takara
+
+
+
+
+
+
+
Kid's Mix Volume 3 (Japan) (EC0034-KID)
2000
@@ -478,6 +565,12 @@
+
+
+
+
+
+
Artist Selection Volume 8 (unknown) (Japan) (EC0041-ATS)
2001
@@ -500,13 +593,18 @@
+
+
Artist Selection Volume 9 (Every Little Thing) (Japan) (EC0044-ATS)
2001
Takara
-
+
+
+
@@ -533,6 +631,17 @@
+
+ DUE Volume 1 (Japan) (EC0047-DUE)
+ 2001
+ Takara
+
+
+
+
+
+
+
ENK Volume 6 (Japan) (EC0048-ENK)
2001
@@ -555,6 +664,32 @@
+
+
+
+ J-Pop Mix Volume 21 (Japan) (EC0051-JPM)
+ 2001
+ Takara
+
+
+
+
+
+
+
+
+ ENK Volume 7 (Japan) (EC0052-ENK)
+ 2001
+ Takara
+
+
+
+
+
+
+
+
+
J-Pop Mix Volume 23 (Japan) (EC0054-JPM)
2001
@@ -566,6 +701,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ J-Pop Mix Volume 27 (Japan) (EC0061-JPM)
+ 2001
+ Takara
+
+
+
+
+
+
+
+
+
+
+ J-Pop Mix Volume 29 (Japan) (EC0063-JPM)
+ 2001
+ Takara
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
J-Pop Mix Volume 33 (Japan) (EC0068-JPM)
2001
@@ -577,6 +756,8 @@
+
+
J-Pop Mix Volume 34 (Japan) (EC0070-JPM)
2001
@@ -588,6 +769,8 @@
+
+
J-Pop Mix Volume 36 (Japan) (EC0072-JPM)
2001
@@ -599,6 +782,12 @@
+
+
+
+
+
+
J-Pop Mix Volume 39 (Japan) (EC0076-JPM)
2001
@@ -610,6 +799,10 @@
+
+
+
+
ETZ (Japan) (EC0079-ETZ)
2002
@@ -621,6 +814,10 @@
+
+
+
+
Matthew's Best Hit Selection (Japan) (EC0082-MBH)
2003
@@ -632,4 +829,10 @@
+
+
+
+
+
+
diff --git a/hash/ekara_japan_d.xml b/hash/ekara_japan_d.xml
index 78835696566..859ccb93a85 100644
--- a/hash/ekara_japan_d.xml
+++ b/hash/ekara_japan_d.xml
@@ -21,7 +21,10 @@
D-3 DC0003-BHT BHT (Best Artists?) Volume 9? (most other BHT carts are in G series, or P series)
D-4 DC0004- (unknown)
*D-5 DC0005-TPJ TV Pop Volume 9
-
+ D-6 DC0006- (seen)
+ D-7 DC0007- (seen)
+ D-8 DC0008- (seen)
+
(more? what's the D highest number?)
-->
diff --git a/hash/ekara_japan_g.xml b/hash/ekara_japan_g.xml
index 5d8cc24d2e2..1191b84109c 100644
--- a/hash/ekara_japan_g.xml
+++ b/hash/ekara_japan_g.xml
@@ -88,14 +88,23 @@
-
+
BAT Volume 4 (Japan) (GC0010-BAT)
2002
Takara
-
+
diff --git a/hash/ekara_japan_sp.xml b/hash/ekara_japan_sp.xml
index a8a418e268f..efb6ea08554 100644
--- a/hash/ekara_japan_sp.xml
+++ b/hash/ekara_japan_sp.xml
@@ -24,8 +24,13 @@
gives 'memory error' if plugged into Popira (needs cartridge SEEPROM emulating)
gives 'eep-rom error' if plugged into Taiko de Popira (same reason)
- SP-1 (unknown)
- *SP-2 (unknown)
+ SP-01 (unknown)
+ *SP-02 'Super Cartridge' SP-2
+ SP-03 (unknown)
+ SP-04 (unknown)
+ SP-05
+ SP-06 (seen)
+ SP-07 (seen)
(more? what's the SP highest number?)
diff --git a/src/mame/drivers/xavix.cpp b/src/mame/drivers/xavix.cpp
index 486fc9ce2a3..ff1c7fc7f1d 100644
--- a/src/mame/drivers/xavix.cpp
+++ b/src/mame/drivers/xavix.cpp
@@ -378,8 +378,8 @@ void xavix_state::xavix_lowbus_map(address_map &map)
map(0x7ffb, 0x7ffb).rw(FUNC(xavix_state::nmi_vector_hi_r), FUNC(xavix_state::nmi_vector_hi_w));
map(0x7ffc, 0x7ffc).rw(FUNC(xavix_state::irq_source_r), FUNC(xavix_state::irq_source_w));
// map(0x7ffd, 0x7ffd) some of the Nostalgia games read here, why?
- map(0x7ffe, 0x7ffe).w(FUNC(xavix_state::irq_vector_lo_w)); // an IRQ vector (irq?)
- map(0x7fff, 0x7fff).w(FUNC(xavix_state::irq_vector_hi_w));
+ map(0x7ffe, 0x7ffe).rw(FUNC(xavix_state::irq_vector_lo_r),FUNC(xavix_state::irq_vector_lo_w)); // an IRQ vector (irq?) - rad_opus needs to read this back!
+ map(0x7fff, 0x7fff).rw(FUNC(xavix_state::irq_vector_hi_r),FUNC(xavix_state::irq_vector_hi_w));
}
void xavix_state::superxavix_lowbus_map(address_map &map)
@@ -568,6 +568,21 @@ static INPUT_PORTS_START( rad_mtrkp )
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_CUSTOM )
INPUT_PORTS_END
+static INPUT_PORTS_START( rad_opus )
+ PORT_INCLUDE(xavix)
+
+ PORT_MODIFY("IN0") // comments show how inputs labeled on PCB
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Pad 1 <") // PI00
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Pad 2") // PI01
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Pad 3") // PI02
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Pad 4 >") // PI03
+
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_NAME("Pause") // PI05
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("Menu Select") // PI06
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START1 ) PORT_NAME("Start / Bomb") // PI07
+INPUT_PORTS_END
+
+
static INPUT_PORTS_START( rad_crdn )
PORT_INCLUDE(xavix)
@@ -971,10 +986,18 @@ void xavix_i2c_state::xavix_i2c_24c08(machine_config &config)
void xavix_state::xavixp(machine_config &config)
{
+ // other clocks should change too!
+
xavix(config);
m_screen->set_refresh_hz(50);
}
+void xavix_state::xavix_nv(machine_config &config)
+{
+ xavix(config);
+ NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1);
+}
+
void xavix_state::xavix2000(machine_config &config)
{
xavix(config);
@@ -1141,6 +1164,11 @@ ROM_START( rad_bassp )
ROM_LOAD("bassfishin.bin", 0x000000, 0x100000, CRC(b54eb1c5) SHA1(084faa9349369f2b8846950765f9c8f758db3e9e) )
ROM_END
+ROM_START( rad_opus )
+ ROM_REGION(0x100000, "bios", ROMREGION_ERASE00)
+ ROM_LOAD("opus.bin", 0x000000, 0x100000, CRC(509df402) SHA1(c5b863670eac8498ddda9dfde91387634cf7aa9f) )
+ROM_END
+
ROM_START( rad_snow )
ROM_REGION(0x100000, "bios", ROMREGION_ERASE00)
ROM_LOAD("snoblu.bin", 0x000000, 0x100000, CRC(593e40b3) SHA1(03483ac39eddd7746470fb60018e704382b0da59) )
@@ -1268,6 +1296,9 @@ CONS( 2006, namcons2, 0, 0, xavix_i2c_24lc04, nostalgia,xavix_i2c_sta
CONS( 2000, rad_ping, 0, 0, xavix, rad_ping, xavix_state, init_xavix, "Radica / SSD Company LTD / Simmer Technology", "Play TV Ping Pong (NTSC)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // "Simmer Technology" is also known as "Hummer Technology Co., Ltd"
CONS( 2000, rad_pingp, rad_ping, 0, xavixp, rad_pingp,xavix_state, init_xavix, "Radica / SSD Company LTD / Simmer Technology", "ConnecTV Table Tennis (PAL)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
+CONS( 2000, rad_opus, 0, 0, xavix_nv, rad_opus, xavix_state, init_xavix, "Radica / SSD Company LTD", "Play TV Opus (NTSC)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // there is a missing 'TV Static' noise effect when menus appear (box shows 'Play TV' ingame just shows 'Radica:Plug & Play')
+// ConnecTV Opus is a different ROM in this case? Game doesn't read from PAL/NTSC flag? (verify it isn't detecting PAL in some other way) ( https://www.youtube.com/watch?v=Ub9tstLEj_0 )
+
CONS( 2003, rad_mtrk, 0, 0, xavix_mtrk, rad_mtrk, xavix_mtrk_state, init_xavix, "Radica / SSD Company LTD", "Play TV Monster Truck (NTSC)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
CONS( 2003, rad_mtrkp, rad_mtrk, 0, xavix_mtrkp, rad_mtrkp,xavix_mtrk_state, init_xavix, "Radica / SSD Company LTD", "ConnecTV Monster Truck (PAL)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
diff --git a/src/mame/includes/xavix.h b/src/mame/includes/xavix.h
index cdc0c1d79d4..11646e1c113 100644
--- a/src/mame/includes/xavix.h
+++ b/src/mame/includes/xavix.h
@@ -101,6 +101,7 @@ public:
void xavix(machine_config &config);
void xavixp(machine_config &config);
void xavix2000(machine_config &config);
+ void xavix_nv(machine_config &config);
void init_xavix();
@@ -300,6 +301,8 @@ private:
DECLARE_READ8_MEMBER(nmi_vector_lo_r);
DECLARE_READ8_MEMBER(nmi_vector_hi_r);
+ DECLARE_READ8_MEMBER(irq_vector_lo_r);
+ DECLARE_READ8_MEMBER(irq_vector_hi_r);
DECLARE_WRITE8_MEMBER(vector_enable_w);
DECLARE_WRITE8_MEMBER(nmi_vector_lo_w);
diff --git a/src/mame/machine/xavix.cpp b/src/mame/machine/xavix.cpp
index 2f2d164be05..dc4058f861f 100644
--- a/src/mame/machine/xavix.cpp
+++ b/src/mame/machine/xavix.cpp
@@ -128,6 +128,19 @@ WRITE8_MEMBER(xavix_state::irq_vector_hi_w)
m_irq_vector_hi_data = data;
}
+READ8_MEMBER(xavix_state::irq_vector_lo_r)
+{
+ LOG("%s: irq_vector_lo_r\n", machine().describe_context());
+ return m_irq_vector_lo_data;
+}
+
+READ8_MEMBER(xavix_state::irq_vector_hi_r)
+{
+ LOG("%s: irq_vector_hi_r\n", machine().describe_context());
+ return m_irq_vector_hi_data;
+}
+
+
// this is external bus control (access to ROM etc.)
READ8_MEMBER(xavix_state::extintrf_790x_r)
@@ -883,9 +896,15 @@ WRITE8_MEMBER(xavix_state::irq_source_w)
void xavix_state::machine_start()
{
+ // at least some of the internal CPU RAM can be backed up, not sure how much
+ int nvram_size = 0x1000;
+
+ if (!m_nvram)
+ nvram_size = 0;
+
// card night expects RAM to be initialized to 0xff or it will show the pause menu over the startup graphics?!
// don't do this every reset or it breaks the baseball 2 secret mode toggle which flips a bit in RAM
- std::fill_n(&m_mainram[0], 0x3e00, 0xff);
+ std::fill_n(&m_mainram[0], 0x4000 - nvram_size, 0xff);
m_interrupt_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(xavix_state::interrupt_gen), this));
m_freq_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(xavix_state::freq_timer_done), this));
@@ -896,9 +915,8 @@ void xavix_state::machine_start()
m_sound_timer[i] = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(xavix_state::sound_timer_done), this));
}
- // at least some of the internal CPU RAM is backed up, not sure how much
if (m_nvram)
- m_nvram->set_base(&m_mainram[0x3e00], 0x200);
+ m_nvram->set_base(&m_mainram[0x4000 - nvram_size], nvram_size);
save_item(NAME(m_extbusctrl));
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 871b8da21b0..5cd4e19ef2d 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -39671,6 +39671,7 @@ rad_box //
rad_boxp //
rad_crdn //
rad_crdnp //
+rad_opus //
rad_bass //
rad_bassp //
rad_snow //