summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author hap <happppp@users.noreply.github.com>2021-02-15 17:56:40 +0100
committer hap <happppp@users.noreply.github.com>2021-02-15 17:56:53 +0100
commit443ad8f864ba7de3888db11b742fa395ec625855 (patch)
tree952adb27adde63ee1b5007da8acdeee889df9923
parent0ba1d1db35e4b8370d58bdbe0a009cc7d9f28466 (diff)
New working machines
-------------------- Black Knight Pinball (Entex) [hap, Sean Riddle, Rik]
-rw-r--r--src/devices/cpu/cops1/cops1base.h2
-rw-r--r--src/devices/cpu/cops1/cops1op.cpp4
-rw-r--r--src/mame/drivers/hh_cop400.cpp4
-rw-r--r--src/mame/drivers/hh_cops1.cpp6
-rw-r--r--src/mame/drivers/hh_pic16.cpp7
-rw-r--r--src/mame/drivers/hh_tms1k.cpp30
-rw-r--r--src/mame/layout/ebknight.lay73
-rw-r--r--src/mame/layout/raisedvl.lay23
-rw-r--r--src/mame/mame.lst1
9 files changed, 124 insertions, 26 deletions
diff --git a/src/devices/cpu/cops1/cops1base.h b/src/devices/cpu/cops1/cops1base.h
index cb0d85ddedb..485e120c6e8 100644
--- a/src/devices/cpu/cops1/cops1base.h
+++ b/src/devices/cpu/cops1/cops1base.h
@@ -58,7 +58,7 @@ public:
// read SI directly with AXO (default false)
auto &set_option_axo_si(bool b) { m_option_axo_si = b; return *this; }
- // K and INB pins can be active high or active low (default high)
+ // K and INB pins can be active high or active low (default true)
auto &set_option_k_active_high(bool b) { m_option_k_active_high = b; return *this; }
auto &set_option_inb_active_high(bool b) { m_option_inb_active_high = b; return *this; }
diff --git a/src/devices/cpu/cops1/cops1op.cpp b/src/devices/cpu/cops1/cops1op.cpp
index 1cc20ce61c6..7a8e038e578 100644
--- a/src/devices/cpu/cops1/cops1op.cpp
+++ b/src/devices/cpu/cops1/cops1op.cpp
@@ -182,7 +182,7 @@ void cops1_base_device::op_axo()
void cops1_base_device::op_ldf()
{
- // LDF: load F pin(s)
+ // LDF x: load F pin(s)
u8 mask = bitswap<4>(~m_arg, 7,5,3,1);
u8 f = bitswap<4>(~m_arg, 6,4,2,0);
m_f = (m_f & ~mask) | (f & mask);
@@ -211,7 +211,7 @@ void cops1_base_device::op_go()
void cops1_base_device::op_call()
{
- // CALL: call subroutine
+ // CALL x: call subroutine
// calls from page 0x1e/0x1f don't push PC
if ((m_pc & 0x780) != 0x780)
diff --git a/src/mame/drivers/hh_cop400.cpp b/src/mame/drivers/hh_cop400.cpp
index d331f933570..1c69e036bd7 100644
--- a/src/mame/drivers/hh_cop400.cpp
+++ b/src/mame/drivers/hh_cop400.cpp
@@ -1691,8 +1691,8 @@ ROM_END
* COP420 MCU label COP420-NPG/N
* 8-digit 7seg led display(1 custom digit), 1 green led, no sound
- This is the COP420 version, the first release was on a MM5799 MCU,
- see hh_cops1.cpp.
+ This is the COP420 version, they removed support for the link cable.
+ The first release was on a MM5799 MCU, see hh_cops1.cpp.
***************************************************************************/
diff --git a/src/mame/drivers/hh_cops1.cpp b/src/mame/drivers/hh_cops1.cpp
index 1f8cbe5a3bf..98413c02a09 100644
--- a/src/mame/drivers/hh_cops1.cpp
+++ b/src/mame/drivers/hh_cops1.cpp
@@ -5,6 +5,8 @@
National Semiconductor COPS(MM57 MCU series) handhelds
+ MCU die label for MM5799 games says MM4799, but they are in fact MM5799.
+
TODO:
- qkracerm RAM configuration is unknown (it also works fine with 8x12)
- qkracerm link cable
@@ -299,8 +301,8 @@ void qkracerm_state::ds8874_output_w(u16 data)
void qkracerm_state::write_do(u8 data)
{
- // DO1: DS8874N CP
- // DO4: DS8874N _DATA
+ // DO1: DS8874 CP
+ // DO4: DS8874 _DATA
m_ds8874->cp_w(BIT(data, 0));
m_ds8874->data_w(BIT(data, 3));
}
diff --git a/src/mame/drivers/hh_pic16.cpp b/src/mame/drivers/hh_pic16.cpp
index d4fcd4da195..c945fc00428 100644
--- a/src/mame/drivers/hh_pic16.cpp
+++ b/src/mame/drivers/hh_pic16.cpp
@@ -1121,7 +1121,8 @@ ROM_END
* PIC 1655A-51
* 2 7seg LEDs + 21 other LEDs, 1-bit sound
- The ROM is nearly identical to hccbaskb, the shell/overlay is the same as
+ It is a clone of Mattel Basketball, but at lower speed.
+ The ROM is nearly identical to hccbaskb, the housing/overlay is the same as
U.S. Games/Tandy Trick Shot Basketball.
***************************************************************************/
@@ -1204,7 +1205,7 @@ INPUT_PORTS_END
void tbaskb_state::tbaskb(machine_config &config)
{
/* basic machine hardware */
- PIC1655(config, m_maincpu, 950000); // approximation - RC osc. R=18K, C=47pF
+ PIC1655(config, m_maincpu, 800000); // approximation - RC osc. R=18K, C=47pF
m_maincpu->read_a().set(FUNC(tbaskb_state::read_a));
m_maincpu->write_b().set(FUNC(tbaskb_state::write_b));
m_maincpu->read_c().set_constant(0xff);
@@ -1443,7 +1444,7 @@ INPUT_PORTS_END
void hccbaskb_state::hccbaskb(machine_config &config)
{
/* basic machine hardware */
- PIC1655(config, m_maincpu, 950000); // approximation - RC osc. R=15K, C=47pF
+ PIC1655(config, m_maincpu, 800000); // approximation - RC osc. R=15K, C=47pF
m_maincpu->read_a().set(FUNC(hccbaskb_state::read_a));
m_maincpu->write_b().set(FUNC(hccbaskb_state::write_b));
m_maincpu->read_c().set_constant(0xff);
diff --git a/src/mame/drivers/hh_tms1k.cpp b/src/mame/drivers/hh_tms1k.cpp
index 89d3b1a09da..81155f1b4d4 100644
--- a/src/mame/drivers/hh_tms1k.cpp
+++ b/src/mame/drivers/hh_tms1k.cpp
@@ -56,7 +56,7 @@
@MP1219 TMS1100 1980, U.S. Games Super Sports-4
@MP1221 TMS1100 1980, Entex Raise The Devil (6011)
*MP1231 TMS1100 1983, Tandy 3-in-1 Sports Arena (model 60-2178)
- *MP1296 TMS1100? 1982, Entex Black Knight
+ @MP1296 TMS1100 1982, Entex Black Knight Pinball (6081)
*MP1311 TMS1100 1981, Bandai TC7: Air Traffic Control
@MP1312 TMS1100 1983, Gakken FX-Micom R-165/Radio Shack Science Fair Microcomputer Trainer
*MP1359 TMS1100? 1985, Capsela CRC2000
@@ -200,6 +200,7 @@
#include "ebball2.lh"
#include "ebball3.lh"
#include "ebaskb2.lh"
+#include "ebknight.lh"
#include "efootb4.lh"
#include "einvader.lh"
#include "elecbowl.lh"
@@ -4411,7 +4412,11 @@ ROM_END
* TMS1100 MP1221 (die label same)
* 4 7seg LEDs(rightmost one unused), and other LEDs behind bezel, 1-bit sound
- led translation table: led zz from game PCB = MAME y.x:
+ Entex Black Knight (a licensed handheld version of Williams' Black Knight pinball)
+ is on the same hardware. MCU label: MP1296 (no decap).
+
+ raisedvl led translation table: led zz from game PCB = MAME y.x:
+ (no led labels on ebknight PCB)
0 = - 10 = 4.4 20 = 5.3 30 = 9.5 40 = 9.2
1 = 3.0 11 = 4.5 21 = 5.4 31 = 8.5 41 = 9.3
@@ -4443,6 +4448,7 @@ public:
void set_clock();
DECLARE_INPUT_CHANGED_MEMBER(skill_switch) { set_clock(); }
void raisedvl(machine_config &config);
+ void ebknight(machine_config &config);
protected:
virtual void machine_reset() override;
@@ -4528,7 +4534,6 @@ void raisedvl_state::raisedvl(machine_config &config)
/* video hardware */
PWM_DISPLAY(config, m_display).set_size(10, 7);
m_display->set_segmask(7, 0x7f);
- m_display->set_bri_levels(0.01, 0.125); // ball is brighter
config.set_default_layout(layout_raisedvl);
/* sound hardware */
@@ -4537,6 +4542,12 @@ void raisedvl_state::raisedvl(machine_config &config)
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
}
+void raisedvl_state::ebknight(machine_config &config)
+{
+ raisedvl(config);
+ config.set_default_layout(layout_ebknight);
+}
+
// roms
ROM_START( raisedvl )
@@ -4549,6 +4560,16 @@ ROM_START( raisedvl )
ROM_LOAD( "tms1100_raisedvl_output.pla", 0, 365, CRC(00db663b) SHA1(6eae12503364cfb1f863df0e57970d3e766ec165) )
ROM_END
+ROM_START( ebknight )
+ ROM_REGION( 0x0800, "maincpu", 0 )
+ ROM_LOAD( "mp1296", 0x0000, 0x0800, CRC(bc57a46a) SHA1(f60843779f49a8bd28291df3390086e54b9e3f40) )
+
+ ROM_REGION( 867, "maincpu:mpla", 0 )
+ ROM_LOAD( "tms1100_common2_micro.pla", 0, 867, BAD_DUMP CRC(7cc90264) SHA1(c6e1cf1ffb178061da9e31858514f7cd94e86990) ) // not verified, taken from raisedvl
+ ROM_REGION( 365, "maincpu:opla", 0 )
+ ROM_LOAD( "tms1100_ebknight_output.pla", 0, 365, BAD_DUMP CRC(00db663b) SHA1(6eae12503364cfb1f863df0e57970d3e766ec165) ) // "
+ROM_END
+
@@ -12603,7 +12624,8 @@ CONS( 1979, esbattle, 0, 0, esbattle, esbattle, esbattle_state, emp
CONS( 1980, einvader, 0, 0, einvader, einvader, einvader_state, empty_init, "Entex", "Space Invader (Entex, TMS1100 version)", MACHINE_SUPPORTS_SAVE )
CONS( 1980, efootb4 , 0, 0, efootb4, efootb4, efootb4_state, empty_init, "Entex", "Color Football 4 (Entex)", MACHINE_SUPPORTS_SAVE )
CONS( 1980, ebaskb2 , 0, 0, ebaskb2, ebaskb2, ebaskb2_state, empty_init, "Entex", "Electronic Basketball 2 (Entex)", MACHINE_SUPPORTS_SAVE )
-CONS( 1980, raisedvl, 0, 0, raisedvl, raisedvl, raisedvl_state, empty_init, "Entex", "Raise The Devil", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+CONS( 1980, raisedvl, 0, 0, raisedvl, raisedvl, raisedvl_state, empty_init, "Entex", "Raise The Devil Pinball", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+CONS( 1982, ebknight, 0, 0, ebknight, raisedvl, raisedvl_state, empty_init, "Entex", "Black Knight Pinball (Entex)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
CONS( 1979, f2pbball, 0, 0, f2pbball, f2pbball, f2pbball_state, empty_init, "Fonas", "2 Player Baseball (Fonas)", MACHINE_SUPPORTS_SAVE )
CONS( 1979, f3in1, 0, 0, f3in1, f3in1, f3in1_state, empty_init, "Fonas", "3 in 1: Football, Basketball, Soccer", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
diff --git a/src/mame/layout/ebknight.lay b/src/mame/layout/ebknight.lay
new file mode 100644
index 00000000000..2b20a9dcae7
--- /dev/null
+++ b/src/mame/layout/ebknight.lay
@@ -0,0 +1,73 @@
+<?xml version="1.0"?>
+<!--
+license:CC0
+-->
+<mamelayout version="2">
+
+<!-- define elements -->
+
+ <element name="digit" defstate="0">
+ <led7seg><color red="1.0" green="0.20" blue="0.22" /></led7seg>
+ </element>
+
+ <element name="led" defstate="0">
+ <disk state="0"><color red="0.14" green="0.02" blue="0.03" /></disk>
+ <disk state="1"><color red="1.0" green="0.20" blue="0.22" /></disk>
+ </element>
+
+
+<!-- build screen -->
+
+ <view name="Internal Layout">
+ <bounds left="70" right="229" top="59" bottom="342" />
+
+ <element name="digit2" ref="digit"><bounds x="121" y="318" width="13" height="20" /></element>
+ <element name="digit1" ref="digit"><bounds x="134" y="318" width="13" height="20" /></element>
+ <element name="digit0" ref="digit"><bounds x="147" y="318" width="13" height="20" /></element>
+ <element ref="digit"><bounds x="160" y="318" width="13" height="20" /></element> <!-- unconnected -->
+
+ <element name="4.1" ref="led"><bounds x="136" y="65" width="6" height="6" /></element> <!-- 1 -->
+ <element name="4.0" ref="led"><bounds x="172" y="72" width="6" height="6" /></element> <!-- 2 -->
+ <element name="4.2" ref="led"><bounds x="93" y="81" width="6" height="6" /></element> <!-- 3 -->
+ <element name="4.5" ref="led"><bounds x="137" y="88" width="6" height="6" /></element> <!-- 4 -->
+ <element name="3.4" ref="led"><bounds x="198" y="91" width="6" height="6" /></element> <!-- 5 -->
+ <element name="7.3" ref="led"><bounds x="149" y="101" width="6" height="6" /></element> <!-- 6 -->
+ <element name="4.4" ref="led"><bounds x="118" y="101" width="6" height="6" /></element> <!-- 7 -->
+ <element name="7.2" ref="led"><bounds x="76" y="114" width="6" height="6" /></element> <!-- 8 -->
+ <element name="4.3" ref="led"><bounds x="109" y="119" width="6" height="6" /></element> <!-- 9 -->
+
+ <element name="5.2" ref="led"><bounds x="100" y="130" width="6" height="6" /></element> <!-- 10 -->
+ <element name="7.4" ref="led"><bounds x="152" y="133" width="6" height="6" /></element> <!-- 11 -->
+ <element name="5.0" ref="led"><bounds x="124" y="150" width="6" height="6" /></element> <!-- 12 -->
+ <element name="6.1" ref="led"><bounds x="174" y="163" width="6" height="6" /></element> <!-- 13 -->
+ <element name="3.3" ref="led"><bounds x="217" y="194" width="6" height="6" /></element> <!-- 14 -->
+ <element name="5.1" ref="led"><bounds x="138" y="207" width="6" height="6" /></element> <!-- 15 -->
+ <element name="5.3" ref="led"><bounds x="157" y="207" width="6" height="6" /></element> <!-- 16 -->
+ <element name="3.2" ref="led"><bounds x="217" y="207" width="6" height="6" /></element> <!-- 17 -->
+ <element name="5.4" ref="led"><bounds x="116" y="217" width="6" height="6" /></element> <!-- 18 -->
+ <element name="3.1" ref="led"><bounds x="217" y="220" width="6" height="6" /></element> <!-- 19 -->
+
+ <element name="6.4" ref="led"><bounds x="85" y="228" width="6" height="6" /></element> <!-- 20 -->
+ <element name="6.2" ref="led"><bounds x="197" y="233" width="6" height="6" /></element> <!-- 21 -->
+ <element name="3.0" ref="led"><bounds x="217" y="233" width="6" height="6" /></element> <!-- 22 -->
+ <element name="6.0" ref="led"><bounds x="96" y="238" width="6" height="6" /></element> <!-- 23 -->
+ <element name="6.3" ref="led"><bounds x="180" y="238" width="6" height="6" /></element> <!-- 24 -->
+ <element name="8.4" ref="led"><bounds x="115" y="250" width="6" height="6" /></element> <!-- 25 -->
+ <element name="9.4" ref="led"><bounds x="165" y="250" width="6" height="6" /></element> <!-- 26 -->
+ <element name="8.0" ref="led"><bounds x="122" y="258" width="6" height="6" /></element> <!-- 27 -->
+ <element name="9.1" ref="led"><bounds x="158" y="258" width="6" height="6" /></element> <!-- 28 -->
+ <element name="8.1" ref="led"><bounds x="112" y="264" width="6" height="6" /></element> <!-- 29 -->
+
+ <element name="9.0" ref="led"><bounds x="168" y="264" width="6" height="6" /></element> <!-- 30 -->
+ <element name="7.0" ref="led"><bounds x="102" y="270" width="6" height="6" /></element> <!-- 31 -->
+ <element name="8.5" ref="led"><bounds x="122" y="271" width="6" height="6" /></element> <!-- 32 -->
+ <element name="9.5" ref="led"><bounds x="158" y="271" width="6" height="6" /></element> <!-- 33 -->
+ <element name="7.1" ref="led"><bounds x="178" y="270" width="6" height="6" /></element> <!-- 34 -->
+ <element name="8.2" ref="led"><bounds x="112" y="276" width="6" height="6" /></element> <!-- 35 -->
+ <element name="9.3" ref="led"><bounds x="168" y="276" width="6" height="6" /></element> <!-- 36 -->
+ <element name="8.3" ref="led"><bounds x="122" y="282" width="6" height="6" /></element> <!-- 37 -->
+ <element name="9.2" ref="led"><bounds x="158" y="282" width="6" height="6" /></element> <!-- 38 -->
+ <element name="6.5" ref="led"><bounds x="140" y="293" width="6" height="6" /></element> <!-- 39 -->
+
+ </view>
+</mamelayout>
diff --git a/src/mame/layout/raisedvl.lay b/src/mame/layout/raisedvl.lay
index 02e512a6fd2..51bbe4fed8b 100644
--- a/src/mame/layout/raisedvl.lay
+++ b/src/mame/layout/raisedvl.lay
@@ -4,7 +4,7 @@ license:CC0
-->
<mamelayout version="2">
- <!-- define elements -->
+<!-- define elements -->
<element name="digit" defstate="0">
<led7seg><color red="1.0" green="0.20" blue="0.22" /></led7seg>
@@ -12,12 +12,11 @@ license:CC0
<element name="led" defstate="0">
<disk state="0"><color red="0.14" green="0.02" blue="0.03" /></disk>
- <disk state="1"><color red="0.6" green="0.12" blue="0.13" /></disk>
- <disk state="2"><color red="1.0" green="0.20" blue="0.22" /></disk>
+ <disk state="1"><color red="1.0" green="0.20" blue="0.22" /></disk>
</element>
- <!-- build screen -->
+<!-- build screen -->
<view name="Internal Layout">
<bounds left="52" right="247" top="6" bottom="342" />
@@ -52,19 +51,19 @@ license:CC0
<element name="6.2" ref="led"><bounds x="219" y="233" width="6" height="6" /></element> <!-- 25 -->
<element name="6.3" ref="led"><bounds x="140" y="231" width="6" height="6" /></element> <!-- 26 -->
<element name="6.4" ref="led"><bounds x="58" y="233" width="6" height="6" /></element> <!-- 27 -->
- <element name="8.4" ref="led"><bounds x="113" y="250" width="6" height="6" /></element> <!-- 28 -->
+ <element name="8.4" ref="led"><bounds x="115" y="250" width="6" height="6" /></element> <!-- 28 -->
<element name="9.4" ref="led"><bounds x="165" y="250" width="6" height="6" /></element> <!-- 29 -->
<element name="9.5" ref="led"><bounds x="158" y="271" width="6" height="6" /></element> <!-- 30 -->
- <element name="8.5" ref="led"><bounds x="120" y="271" width="6" height="6" /></element> <!-- 31 -->
+ <element name="8.5" ref="led"><bounds x="122" y="271" width="6" height="6" /></element> <!-- 31 -->
<element name="6.5" ref="led"><bounds x="140" y="293" width="6" height="6" /></element> <!-- 32 -->
<element name="7.4" ref="led"><bounds x="140" y="177" width="6" height="6" /></element> <!-- 33 -->
- <element name="7.0" ref="led"><bounds x="96" y="270" width="6" height="6" /></element> <!-- 34 -->
- <element name="7.1" ref="led"><bounds x="180" y="270" width="6" height="6" /></element> <!-- 35 -->
- <element name="8.0" ref="led"><bounds x="120" y="258" width="6" height="6" /></element> <!-- 36 -->
- <element name="8.1" ref="led"><bounds x="108" y="264" width="6" height="6" /></element> <!-- 37 -->
- <element name="8.2" ref="led"><bounds x="108" y="276" width="6" height="6" /></element> <!-- 38 -->
- <element name="8.3" ref="led"><bounds x="120" y="282" width="6" height="6" /></element> <!-- 39 -->
+ <element name="7.0" ref="led"><bounds x="98" y="270" width="6" height="6" /></element> <!-- 34 -->
+ <element name="7.1" ref="led"><bounds x="182" y="270" width="6" height="6" /></element> <!-- 35 -->
+ <element name="8.0" ref="led"><bounds x="122" y="258" width="6" height="6" /></element> <!-- 36 -->
+ <element name="8.1" ref="led"><bounds x="110" y="264" width="6" height="6" /></element> <!-- 37 -->
+ <element name="8.2" ref="led"><bounds x="110" y="276" width="6" height="6" /></element> <!-- 38 -->
+ <element name="8.3" ref="led"><bounds x="122" y="282" width="6" height="6" /></element> <!-- 39 -->
<element name="9.2" ref="led"><bounds x="158" y="282" width="6" height="6" /></element> <!-- 40 -->
<element name="9.3" ref="led"><bounds x="170" y="276" width="6" height="6" /></element> <!-- 41 -->
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 2d10d048738..2a7deda62ef 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -16288,6 +16288,7 @@ amaztron // Coleco
astro // Kosmos
bankshot // Parker Bros
bcheetah // Bandai
+ebknight // Entex
bigtrak // Milton Bradley
bship // Milton Bradley
bshipb // Milton Bradley