hh_cop400: correct bship82 speaker output

This commit is contained in:
hap 2021-03-26 16:58:06 +01:00
parent 707ce1121b
commit 8af62eef60
5 changed files with 28 additions and 25 deletions

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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.