From 03220304363af40cef74ab35c4762c64abc9830c Mon Sep 17 00:00:00 2001 From: hap Date: Wed, 31 May 2023 13:27:29 +0200 Subject: Systems promoted to working --------------------------- Finger Bowl [hap, Sean Riddle] --- src/mame/handheld/hh_cop400.cpp | 38 +-- src/mame/handheld/hh_mn1400.cpp | 3 +- src/mame/handheld/hh_tms1k.cpp | 8 +- src/mame/layout/fingbowl.lay | 557 +++++++++++++++++++++++++++++++++++++++- 4 files changed, 582 insertions(+), 24 deletions(-) diff --git a/src/mame/handheld/hh_cop400.cpp b/src/mame/handheld/hh_cop400.cpp index e71d13b68ea..352f524def2 100644 --- a/src/mame/handheld/hh_cop400.cpp +++ b/src/mame/handheld/hh_cop400.cpp @@ -7,7 +7,6 @@ National Semiconductor COPS(COP400 MCU series) handhelds or other simple devices, mostly LED electronic games/toys. TODO: -- why does h2hbaskbc(and clones) need a workaround on writing L pins? - vidchal: Add screen and gun cursor with brightness detection callback, and softwarelist for the video tapes. We'd also need a VHS player device. The emulated lightgun itself appears to be working fine(eg. add a 30hz @@ -292,6 +291,7 @@ public: void h2hhockeyc(machine_config &config); private: + void update_display(); void write_d(u8 data); void write_g(u8 data); void write_l(u8 data); @@ -300,28 +300,35 @@ private: // handlers +void h2hbaskbc_state::update_display() +{ + // D2,D3 double as multiplexer + u16 mask = ((~m_d >> 3 & 1) * 0x00ff) | ((~m_d >> 2 & 1) * 0xff00); + u16 sel = m_g | m_d << 4; + + m_display->matrix((sel << 8 | sel) & mask, m_l); +} + void h2hbaskbc_state::write_d(u8 data) { // D: led select m_d = data; + update_display(); } void h2hbaskbc_state::write_g(u8 data) { // G: led select, input mux - m_inp_mux = data; - m_g = data; + m_g = m_inp_mux = data; + update_display(); } void h2hbaskbc_state::write_l(u8 data) { - // D2,D3 double as multiplexer - u16 mask = ((m_d >> 2 & 1) * 0x00ff) | ((m_d >> 3 & 1) * 0xff00); - u16 sel = (m_g | m_d << 4 | m_g << 8 | m_d << 12) & mask; - - // D2+G0,G1 are 7segs - // L0-L6: digit segments A-G, L0-L4: led data - m_display->matrix(sel, data); + // L0-L6: digit segments A-G + // L0-L4: led data + m_l = data; + update_display(); } u8 h2hbaskbc_state::read_in() @@ -386,7 +393,7 @@ INPUT_PORTS_END void h2hbaskbc_state::h2hbaskbc(machine_config &config) { // basic machine hardware - COP420(config, m_maincpu, 1000000); // approximation - RC osc. R=43K, C=101pF + COP420(config, m_maincpu, 1000000); // approximation - RC osc. R=43K, C=100pF m_maincpu->set_config(COP400_CKI_DIVISOR_16, COP400_CKO_OSCILLATOR_OUTPUT, false); // guessed m_maincpu->write_d().set(FUNC(h2hbaskbc_state::write_d)); m_maincpu->write_g().set(FUNC(h2hbaskbc_state::write_g)); @@ -1635,7 +1642,7 @@ INPUT_PORTS_END void mdallas_state::mdallas(machine_config &config) { // basic machine hardware - COP444L(config, m_maincpu, 900000); // approximation - RC osc. R=57K, C=101pF + COP444L(config, m_maincpu, 900000); // approximation - RC osc. R=57K, C=100pF m_maincpu->set_config(COP400_CKI_DIVISOR_16, COP400_CKO_OSCILLATOR_OUTPUT, false); // guessed m_maincpu->write_l().set(FUNC(mdallas_state::write_l)); m_maincpu->write_d().set(FUNC(mdallas_state::write_d)); @@ -2719,11 +2726,10 @@ u8 lilcomp_state::read_g() void lilcomp_state::write_sk(int state) { - if (state == m_sk) - return; - // SK: trigger power off after a short delay (since it also toggles at boot) - m_power_timer->adjust(state ? attotime::from_msec(100) : attotime::never); + if (state != m_sk) + m_power_timer->adjust(state ? attotime::from_msec(100) : attotime::never); + m_sk = state; } diff --git a/src/mame/handheld/hh_mn1400.cpp b/src/mame/handheld/hh_mn1400.cpp index b16bcb75beb..2c8e85958a0 100644 --- a/src/mame/handheld/hh_mn1400.cpp +++ b/src/mame/handheld/hh_mn1400.cpp @@ -3,7 +3,8 @@ // thanks-to:Sean Riddle /******************************************************************************* -Matsushita (Panasonic) MN1400 handhelds +Matsushita (Panasonic) MN1400 handhelds. Matsushita used this MCU in their +audio/video equipment, and it's used in some handheld toys too. *******************************************************************************/ diff --git a/src/mame/handheld/hh_tms1k.cpp b/src/mame/handheld/hh_tms1k.cpp index 43a53dc2239..8f288530fe3 100644 --- a/src/mame/handheld/hh_tms1k.cpp +++ b/src/mame/handheld/hh_tms1k.cpp @@ -58,7 +58,6 @@ TODO: - tithermos temperature sensor comparator (right now just the digital clock works) - is alphie(patent) the same as the final version? - is starwbcp the same as MP3438? (starwbc is MP3438A) -- fingbowl internal artwork ================================================================================ @@ -15230,8 +15229,9 @@ ROM_END * TMS1100 MP1288 (no decap) * 3 7seg LEDs, 1-bit sound - It's a track & field board game, played by sliding or tapping your finger. - 5 hurdles were included, though they're not essential. + It's a track & field electronic board game, played by sliding or tapping + your finger. Instructions on how to play the events are written on the + device itself. 5 hurdles were included, though they're not essential. *******************************************************************************/ @@ -16880,7 +16880,7 @@ SYST( 1980, dxfootb, 0, 0, dxfootb, dxfootb, dxfootb_state, SYST( 1979, copycat, 0, 0, copycat, copycat, copycat_state, empty_init, "Tiger Electronics", "Copy Cat (model 7-520)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) SYST( 1989, copycata, copycat, 0, copycata, copycata, copycata_state, empty_init, "Tiger Electronics", "Copy Cat (model 7-522)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) SYST( 1981, ditto, 0, 0, ditto, ditto, ditto_state, empty_init, "Tiger Electronics", "Ditto", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -SYST( 1981, fingbowl, 0, 0, fingbowl, fingbowl, fingbowl_state, empty_init, "Tiger Electronics", "Finger Bowl", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_NOT_WORKING ) // some of the games: *** +SYST( 1981, fingbowl, 0, 0, fingbowl, fingbowl, fingbowl_state, empty_init, "Tiger Electronics", "Finger Bowl", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // some of the games: *** SYST( 1982, t7in1ss, 0, 0, t7in1ss, t7in1ss, t7in1ss_state, empty_init, "Tiger Electronics", "7 in 1 Sports Stadium", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) SYST( 1979, tmvolleyb, 0, 0, tmvolleyb, tmvolleyb, tmvolleyb_state, empty_init, "Tomy", "Volleyball (Tomy)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) diff --git a/src/mame/layout/fingbowl.lay b/src/mame/layout/fingbowl.lay index 9e0534e8855..e71fd56a86b 100644 --- a/src/mame/layout/fingbowl.lay +++ b/src/mame/layout/fingbowl.lay @@ -6,17 +6,568 @@ license:CC0-1.0 + + + + + + + + + + + + + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.2.3