summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author hap <happppp@users.noreply.github.com>2021-03-26 16:58:06 +0100
committer hap <happppp@users.noreply.github.com>2021-03-26 16:58:35 +0100
commit8af62eef601549f732818a5bf50dc616dd48626a (patch)
tree42051473dbeac6fb12462da9f66038ba70ad4e9c
parent707ce1121b60345f801ec62b402497284b750c2e (diff)
hh_cop400: correct bship82 speaker output
-rw-r--r--src/mame/drivers/hh_cop400.cpp35
-rw-r--r--src/mame/drivers/hh_cops1.cpp9
-rw-r--r--src/mame/drivers/hh_pps41.cpp5
-rw-r--r--src/mame/drivers/hh_tms1k.cpp2
-rw-r--r--src/mame/drivers/hh_ucom4.cpp2
5 files changed, 28 insertions, 25 deletions
diff --git a/src/mame/drivers/hh_cop400.cpp b/src/mame/drivers/hh_cop400.cpp
index d98ac882fbc..f44587a415f 100644
--- a/src/mame/drivers/hh_cop400.cpp
+++ b/src/mame/drivers/hh_cop400.cpp
@@ -1542,6 +1542,7 @@ public:
{ }
void write_d(u8 data);
+ void write_g(u8 data);
u8 read_l();
u8 read_in();
DECLARE_WRITE_LINE_MEMBER(write_so);
@@ -1556,6 +1557,13 @@ void bship82_state::write_d(u8 data)
m_inp_mux = data;
}
+void bship82_state::write_g(u8 data)
+{
+ // G0-G2: speaker out via 3.9K, 2.2K, 1.0K resistor
+ // G3: enable speaker
+ m_speaker->level_w((data & 8) ? (data & 7) : 0);
+}
+
u8 bship82_state::read_l()
{
// L: multiplexed inputs
@@ -1637,31 +1645,13 @@ static INPUT_PORTS_START( bship82 )
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_TOGGLE PORT_CODE(KEYCODE_F1) PORT_NAME("Load/Go") // switch
INPUT_PORTS_END
-/*
-
-http://www.seanriddle.com/bship82.txt
-
-21 G0 3.9K resistor to speaker transistor base
-22 G1 2.2K resistor to speaker transistor base
-23 G2 1.0K resistor to speaker transistor base
-24 G3 speaker transistor base tied high 4.7K
-
-speaker connection
-2N3904 transistor:
-emitter to 10ohm resistor to ground
-collector to 68ohm resistor to speaker (other speaker terminal to VCC)
-base pulled high with 4.7K resistor, connects directly to G3, 1K resistor to G2,
-2.2K resistor to G1, 3.9K resistor to G0
-
-*/
-
void bship82_state::bship82(machine_config &config)
{
/* basic machine hardware */
COP420(config, m_maincpu, 750000); // approximation - RC osc. R=14K, C=100pF
m_maincpu->set_config(COP400_CKI_DIVISOR_4, COP400_CKO_OSCILLATOR_OUTPUT, false); // guessed
m_maincpu->write_d().set(FUNC(bship82_state::write_d));
- m_maincpu->write_g().set("dac", FUNC(dac_byte_interface::data_w));
+ m_maincpu->write_g().set(FUNC(bship82_state::write_g));
m_maincpu->read_l().set(FUNC(bship82_state::read_l));
m_maincpu->read_in().set(FUNC(bship82_state::read_in));
m_maincpu->write_so().set(FUNC(bship82_state::write_so));
@@ -1673,7 +1663,10 @@ void bship82_state::bship82(machine_config &config)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- DAC_4BIT_BINARY_WEIGHTED_SIGN_MAGNITUDE(config, "dac").add_route(ALL_OUTPUTS, "mono", 0.125); // see above
+ SPEAKER_SOUND(config, m_speaker);
+ static const double speaker_levels[8] = { 0.0, 1.0/7.0, 2.0/7.0, 3.0/7.0, 4.0/7.0, 5.0/7.0, 6.0/7.0, 1.0 };
+ m_speaker->set_levels(8, speaker_levels);
+ m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
}
// roms
@@ -1956,4 +1949,4 @@ CONS( 1979, qkracer, 0, 0, qkracer, qkracer, qkracer_state, e
CONS( 1987, vidchal, 0, 0, vidchal, vidchal, vidchal_state, empty_init, "Select Merchandise", "Video Challenger", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
// ***: As far as MAME is concerned, the game is emulated fine. But for it to be playable, it requires interaction
-// with other, unemulatable, things eg. game board/pieces, playing cards, pen & paper, etc.
+// with other, unemulatable, things eg. game board/pieces, book, playing cards, pen & paper, etc.
diff --git a/src/mame/drivers/hh_cops1.cpp b/src/mame/drivers/hh_cops1.cpp
index 1d11b928655..4c1165e89c1 100644
--- a/src/mame/drivers/hh_cops1.cpp
+++ b/src/mame/drivers/hh_cops1.cpp
@@ -133,6 +133,10 @@ namespace {
Judging from videos online, there are two versions of Basketball. One where
the display shows "12" at power-on(as on MAME), and one that shows "15".
+ There's also an other version of Hockey, presumably for the foreign market.
+ It plays more like Basketball/Soccer: no penalty boxes and you can't go
+ behind the goal.
+
***************************************************************************/
class mbaskb_state : public hh_cops1_state
@@ -640,4 +644,7 @@ CONS( 1978, msoccer, 0, 0, msoccer, mbaskb, mbaskb_state, empty_
CONS( 1978, mhockey, 0, 0, mhockey, mbaskb, mbaskb_state, empty_init, "Mattel", "Hockey (Mattel)", MACHINE_SUPPORTS_SAVE )
CONS( 1977, qkracerm, qkracer, 0, qkracerm, qkracerm, qkracerm_state, empty_init, "National Semiconductor", "QuizKid Racer (MM5799 version)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW | MACHINE_NODEVICE_LAN )
-CONS( 1978, qkspeller, 0, 0, qkspeller, qkspeller, qkspeller_state, empty_init, "National Semiconductor", "QuizKid Speller", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW )
+CONS( 1978, qkspeller, 0, 0, qkspeller, qkspeller, qkspeller_state, empty_init, "National Semiconductor", "QuizKid Speller", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) // ***
+
+// ***: As far as MAME is concerned, the game is emulated fine. But for it to be playable, it requires interaction
+// with other, unemulatable, things eg. game board/pieces, book, playing cards, pen & paper, etc.
diff --git a/src/mame/drivers/hh_pps41.cpp b/src/mame/drivers/hh_pps41.cpp
index 4258cdca12a..7b2a1c6f2e1 100644
--- a/src/mame/drivers/hh_pps41.cpp
+++ b/src/mame/drivers/hh_pps41.cpp
@@ -1593,4 +1593,7 @@ CONS( 1979, horocomp, 0, 0, horocomp, horocomp, horocomp_state, empty_in
CONS( 1980, mwcfootb, 0, 0, mwcfootb, mwcfootb, mwcfootb_state, empty_init, "Mattel", "World Championship Football", MACHINE_SUPPORTS_SAVE )
CONS( 1978, scrabsen, 0, 0, scrabsen, scrabsen, scrabsen_state, empty_init, "Selchow & Righter", "Scrabble Sensor - Electronic Word Game", MACHINE_SUPPORTS_SAVE )
-CONS( 1980, rdqa, 0, 0, rdqa, rdqa, rdqa_state, empty_init, "Selchow & Righter", "Reader's Digest Q&A - Computer Question & Answer Game", MACHINE_SUPPORTS_SAVE )
+CONS( 1980, rdqa, 0, 0, rdqa, rdqa, rdqa_state, empty_init, "Selchow & Righter", "Reader's Digest Q&A - Computer Question & Answer Game", MACHINE_SUPPORTS_SAVE ) // ***
+
+// ***: As far as MAME is concerned, the game is emulated fine. But for it to be playable, it requires interaction
+// with other, unemulatable, things eg. game board/pieces, book, playing cards, pen & paper, etc.
diff --git a/src/mame/drivers/hh_tms1k.cpp b/src/mame/drivers/hh_tms1k.cpp
index 8096ce34dd5..9ab445958b8 100644
--- a/src/mame/drivers/hh_tms1k.cpp
+++ b/src/mame/drivers/hh_tms1k.cpp
@@ -12821,4 +12821,4 @@ CONS( 1980, ssports4, 0, 0, ssports4, ssports4, ssports4_state, emp
CONS( 1983, xl25, 0, 0, xl25, xl25, xl25_state, empty_init, "Vulcan Electronics", "XL 25", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
// ***: As far as MAME is concerned, the game is emulated fine. But for it to be playable, it requires interaction
-// with other, unemulatable, things eg. game board/pieces, playing cards, pen & paper, etc.
+// with other, unemulatable, things eg. game board/pieces, book, playing cards, pen & paper, etc.
diff --git a/src/mame/drivers/hh_ucom4.cpp b/src/mame/drivers/hh_ucom4.cpp
index 7d78ddc5e96..61be1bd8ace 100644
--- a/src/mame/drivers/hh_ucom4.cpp
+++ b/src/mame/drivers/hh_ucom4.cpp
@@ -3024,4 +3024,4 @@ CONS( 1982, tcaveman, 0, 0, tcaveman, tcaveman, tcaveman_state, empty_ini
CONS( 1984, alnchase, 0, 0, alnchase, alnchase, alnchase_state, empty_init, "Tomy", "Alien Chase", MACHINE_SUPPORTS_SAVE )
// ***: As far as MAME is concerned, the game is emulated fine. But for it to be playable, it requires interaction
-// with other, unemulatable, things eg. game board/pieces, playing cards, pen & paper, etc.
+// with other, unemulatable, things eg. game board/pieces, book, playing cards, pen & paper, etc.