diff --git a/hash/ggm.xml b/hash/ggm.xml
index 3fb1411f69f..2e827b3dc86 100644
--- a/hash/ggm.xml
+++ b/hash/ggm.xml
@@ -17,7 +17,7 @@ license:CC0-1.0
-
+
@@ -37,6 +37,33 @@ license:CC0-1.0
+
+ Capablanca-S Edition: Master Chess Endgame
+ 1982
+ Applied Concepts
+
+
+
+
+
+
+
+
+
+
+
+ Las Vegas 21: Master Blackjack
+ 1980
+ Applied Concepts
+
+
+
+
+
+
+
+
+
Morphy Edition: Master Chess
1981
diff --git a/src/mame/appliedconcepts/ggm.cpp b/src/mame/appliedconcepts/ggm.cpp
index c3c712435ec..f0a3f4843ac 100644
--- a/src/mame/appliedconcepts/ggm.cpp
+++ b/src/mame/appliedconcepts/ggm.cpp
@@ -31,15 +31,20 @@ Known chess cartridges (*denotes not dumped):
- Steinitz Edition-4: Master Chess
- *Monitor Edition: Master Kriegspiel
+The newer revisions of Gruenfeld and Capablanca did not have any version label visible
+on the module, though the German distributor Sandy Electronic sold them (and offered
+an upgrade service) as Gruenfeld-S and Capablanca-S.
+
Other games:
-- *Borchek Edition: Master Checkers
- *Odin Edition: Master Reversi
-- *Las Vegas 21
+- Las Vegas 21: Master Blackjack
+- *Borchek: Championship Checkers
- *Wits End (unreleased?)
- *Lunar Lander (unreleased?)
TODO:
- confirm display AP segment, is it used anywhere?
+- lasvegas overlay
******************************************************************************/
diff --git a/src/mame/handheld/hh_hmcs40.cpp b/src/mame/handheld/hh_hmcs40.cpp
index a6ea777bc27..86c799fb8a1 100644
--- a/src/mame/handheld/hh_hmcs40.cpp
+++ b/src/mame/handheld/hh_hmcs40.cpp
@@ -114,8 +114,8 @@ TODO:
- kevtris's HMCS40 ROM dumps are incomplete, missing MCU factory test code from
the 2nd half of the ROM, none of the games access it though and it's impossible
to execute unless the chip is in testmode.
-- Though very uncommon when compared to games with LED/lamp display, some
- games may manipulate VFD plate brightness by strobing it longer/shorter,
+- Though very uncommon when compared to games with LED/lamp display, some games
+ may deliberately change VFD plate brightness by strobing it longer/shorter,
eg. cgalaxn when a ship explodes.
- bzaxxon 3D effect is difficult to simulate
- improve/redo SVG for: bzaxxon, bbtime
diff --git a/src/mame/handheld/hh_pic16.cpp b/src/mame/handheld/hh_pic16.cpp
index f08846807f6..cf303ab09f8 100644
--- a/src/mame/handheld/hh_pic16.cpp
+++ b/src/mame/handheld/hh_pic16.cpp
@@ -69,6 +69,7 @@ TODO:
#include "speaker.h"
+// netlist
#include "nl_sfxphasor.h"
// internal artwork
diff --git a/src/mame/handheld/hh_sm510.cpp b/src/mame/handheld/hh_sm510.cpp
index 7afef0819a7..3bd072ad25f 100644
--- a/src/mame/handheld/hh_sm510.cpp
+++ b/src/mame/handheld/hh_sm510.cpp
@@ -1436,6 +1436,8 @@ ROM_END
MC-25 and EG-26 are the same game, it's assumed that the latter was for
regions where Nintendo wasn't able to license from Disney.
+----------------------------------------------------------------------------
+
In 1984, Электроника (Elektronika, USSR) released an unlicensed clone:
Ну, погоди! (Nu, pogodi!). This was followed by several other titles that
were the same under the hood, only differing in graphics. They also made a
diff --git a/src/mame/handheld/hh_tms1k.cpp b/src/mame/handheld/hh_tms1k.cpp
index 55c7f10396b..49b0ee11bef 100644
--- a/src/mame/handheld/hh_tms1k.cpp
+++ b/src/mame/handheld/hh_tms1k.cpp
@@ -224,6 +224,7 @@ on Joerg Woerner's datamath.org: http://www.datamath.org/IC_List.htm
#include "screen.h"
#include "speaker.h"
+// netlist
#include "nl_bship.h"
// internal artwork
@@ -2217,7 +2218,7 @@ class h2hbaskb_state : public hh_tms1k_state
public:
h2hbaskb_state(const machine_config &mconfig, device_type type, const char *tag) :
hh_tms1k_state(mconfig, type, tag),
- m_cap_empty_timer(*this, "cap_empty")
+ m_cap_discharge(*this, "cap_discharge")
{ }
void h2hbaskb(machine_config &config);
@@ -2227,9 +2228,7 @@ protected:
virtual void machine_start() override;
private:
- required_device m_cap_empty_timer;
- TIMER_DEVICE_CALLBACK_MEMBER(cap_empty_callback);
- bool m_cap_state = false;
+ required_device m_cap_discharge;
attotime m_cap_charge = attotime::zero;
void update_display();
@@ -2243,18 +2242,11 @@ void h2hbaskb_state::machine_start()
hh_tms1k_state::machine_start();
// register for savestates
- save_item(NAME(m_cap_state));
save_item(NAME(m_cap_charge));
}
// handlers
-TIMER_DEVICE_CALLBACK_MEMBER(h2hbaskb_state::cap_empty_callback)
-{
- if (~m_r & 0x200)
- m_cap_state = false;
-}
-
void h2hbaskb_state::update_display()
{
// R6,R7 are commons for R0-R5
@@ -2276,12 +2268,10 @@ void h2hbaskb_state::write_r(u32 data)
// R9: K8 and 15uF cap to V- (used as timer)
// rising edge, remember the time
if (data & ~m_r & 0x200)
- {
- m_cap_state = true;
m_cap_charge = machine().time();
- }
+
// falling edge, determine how long K8 should stay up
- if (~data & m_r & 0x200)
+ else if (~data & m_r & 0x200)
{
const attotime full = attotime::from_usec(1300); // approx. charge time
const int factor = 27; // approx. factor for charge/discharge to logic 0
@@ -2290,7 +2280,7 @@ void h2hbaskb_state::write_r(u32 data)
if (charge > full)
charge = full;
- m_cap_empty_timer->adjust(charge * factor);
+ m_cap_discharge->adjust(charge * factor);
}
// R0-R7: led select
@@ -2308,7 +2298,8 @@ void h2hbaskb_state::write_o(u16 data)
u8 h2hbaskb_state::read_k()
{
// K1-K4: multiplexed inputs, K8: R9 and capacitor
- return (read_inputs(4) & 7) | (m_cap_state ? 8 : 0);
+ u8 cap_state = (m_r & 0x200 || m_cap_discharge->enabled()) ? 8 : 0;
+ return (read_inputs(4) & 7) | cap_state;
}
// config
@@ -2355,7 +2346,7 @@ void h2hbaskb_state::h2hbaskb(machine_config &config)
m_maincpu->write_r().set(FUNC(h2hbaskb_state::write_r));
m_maincpu->write_o().set(FUNC(h2hbaskb_state::write_o));
- TIMER(config, "cap_empty").configure_generic(FUNC(h2hbaskb_state::cap_empty_callback));
+ TIMER(config, "cap_discharge").configure_generic(nullptr);
// video hardware
PWM_DISPLAY(config, m_display).set_size(6+6, 7);
diff --git a/src/mame/handheld/monty.cpp b/src/mame/handheld/monty.cpp
index 8a2718a167a..b70eed73381 100644
--- a/src/mame/handheld/monty.cpp
+++ b/src/mame/handheld/monty.cpp
@@ -81,15 +81,13 @@ private:
u8 input_r(offs_t offset);
DECLARE_WRITE_LINE_MEMBER(halt_changed) { m_halt = state; }
- u64 m_lcd_data[32];
+ u64 m_lcd_data[32] = { };
int m_lcd_cs = 0;
int m_halt = 0;
};
void monty_state::machine_start()
{
- memset(m_lcd_data, 0, sizeof(m_lcd_data));
-
save_item(NAME(m_lcd_data));
save_item(NAME(m_lcd_cs));
save_item(NAME(m_halt));
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 31dac99bee4..a0a91d0100b 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -7487,18 +7487,18 @@ m4przmc__d //
m4przmc__e //
m4przmc__f //
m4przmc__g //
-m4przmc__h //
-m4przmc__i //
-m4przmc__j //
-m4przmc__k //
-m4przmc__l //
-m4przmc__m //
-m4przmc__n //
-m4przmc__o //
-m4przmc__p //
-m4przmc__q //
-m4przmc__r //
-m4przmc__s //
+m4przmc__h //
+m4przmc__i //
+m4przmc__j //
+m4przmc__k //
+m4przmc__l //
+m4przmc__m //
+m4przmc__n //
+m4przmc__o //
+m4przmc__p //
+m4przmc__q //
+m4przmc__r //
+m4przmc__s //
m4przsss // Prize Spend Spend Spend (Barcrest)
m4przsss__0 //
m4przsss__1 //
@@ -7921,16 +7921,16 @@ v4bulblxb
v4bulblxc
v4cmaze // The Crystal Maze (v1.3)
v4cmaze2 // The New Crystal Maze Featuring Ocean Zone
-v4cmaze2_amld //
+v4cmaze2_amld //
v4cmaze2b //
v4cmaze2c //
v4cmaze2d //
v4cmaze3 // The Crystal Maze Team Challenge
-v4cmaze3_amld //
+v4cmaze3_amld //
v4cmaze3b //
v4cmaze3c //
v4cmaze3d //
-v4cmaze_amld //
+v4cmaze_amld //
v4cmazeb //
v4cmazec //
v4cmazed //
@@ -7997,7 +7997,7 @@ v4gldrsh3
v4mate // The Mating Game
v4mated //
v4mazbel // Mazooma Belle
-v4mazbel15 //
+v4mazbel15 //
v4mazbel15a
v4mdice // Miami Dice
v4mdicea
@@ -8024,7 +8024,7 @@ v4mdiceu
v4mdicev
v4mdicew
v4mdice5
-v4mdiceger // Miami Dice
+v4mdiceger // Miami Dice
v4mdice6
v4megbuk // Megabucks Poker
v4megbuka
@@ -8103,10 +8103,10 @@ v4picdil // Piccadilly Night
v4picdila
v4picdilz
v4psi // Prize Space Invaders
-v4psibc //
-v4psi14 //
+v4psibc //
+v4psi14 //
v4psibcd //
-v4psid //
+v4psid //
v4psi14a //
v4pztet // Prize Tetris
v4pzteta
@@ -26527,7 +26527,7 @@ scrpionda // (c) 1997 Merit Industries, Inc.
scrpiondb // (c) 1993 Merit Industries, Inc.
@source:merit/meritsdx.cpp
-scrpndx //
+scrpndx //
@source:merit/mgames.cpp
mgames // (c) 1981 Merit
@@ -30683,7 +30683,7 @@ odyssey // (c) Silicon Gaming.
@source:misc/oneshot.cpp
maddonna // (c) 1995 Tuning
-komocomo //
+komocomo //
maddonnab // (c) 1995 Tuning
oneshot // no copyright notice
@@ -36346,7 +36346,7 @@ rollr_l2 //
rollr_l3 //
rollr_p2 //
rvrbt_l3 //
-rvrbt_p7 //
+rvrbt_p7 //
strax_p7 //
@source:pinball/sam.cpp
@@ -40158,7 +40158,7 @@ zombraidpj // (c) 1995 Sammy Industries Co.,Ltd.
@source:seta/seta2.cpp
ablast // (c) 2000 Subsino
-ablastb //bootleg
+ablastb // bootleg
deerhunt // (c) 2000 Sammy USA Corporation
deerhunta // (c) 2000 Sammy USA Corporation
deerhuntb // (c) 2000 Sammy USA Corporation
@@ -40554,7 +40554,7 @@ ts2068 // 1983 TS2068
uk2086 // 1986 UK2086
@source:sinclair/tsconf.cpp
-tsconf // ZX Evolution - TS-Configuration
+tsconf // ZX Evolution - TS-Configuration
@source:sinclair/zx.cpp
lambda // Lambda 8300
@@ -43176,18 +43176,18 @@ tehkanwch // (c) 1986 (hack)
@source:tecmo/wc90.cpp
pac90 // bootleg
-twcup90 // (c) 1989 Tecmo
-twcup90a // (c) 1989 Tecmo
-twcup90b // (c) 1989 Tecmo
-twcup90c // (c) 1989 Tecmo
-twcup90t // (c) 1989 Tecmo
+twcup90 // (c) 1989 Tecmo
+twcup90a // (c) 1989 Tecmo
+twcup90b // (c) 1989 Tecmo
+twcup90c // (c) 1989 Tecmo
+twcup90t // (c) 1989 Tecmo
@source:tecmo/wc90b.cpp
-twcup90b1 // bootleg
-twcup90b2 // bootleg
-twcup90ba // bootleg
-twcup90bb // bootleg
-eurogael // bootleg
+twcup90b1 // bootleg
+twcup90b2 // bootleg
+twcup90ba // bootleg
+twcup90bb // bootleg
+eurogael // bootleg
@source:tektronix/tek405x.cpp
tek4051 //
diff --git a/src/mame/taito/gladiatr.cpp b/src/mame/taito/gladiatr.cpp
index c2c6d710a44..4fc089771ca 100644
--- a/src/mame/taito/gladiatr.cpp
+++ b/src/mame/taito/gladiatr.cpp
@@ -1385,7 +1385,6 @@ void gladiatr_state::init_gladiatr()
// sort data
std::swap_ranges(rom + 0x14000, rom + 0x18000, rom + 0x18000);
-
rom = memregion("gfx3")->base();
// unpack 3bpp graphics
for (int j = 5; j >= 0; j--)
@@ -1461,5 +1460,5 @@ void ppking_state::init_ppking()
GAME( 1985, ppking, 0, ppking, ppking, ppking_state, init_ppking, ROT90, "Taito America Corporation", "Ping-Pong King", MACHINE_IMPERFECT_SOUND | MACHINE_NO_COCKTAIL | MACHINE_NODEVICE_LAN )
GAME( 1986, gladiatr, 0, gladiatr, gladiatr, gladiatr_state, init_gladiatr, ROT0, "Allumer / Taito America Corporation", "Gladiator (US)", MACHINE_SUPPORTS_SAVE )
GAME( 1986, ogonsiro, gladiatr, gladiatr, gladiatr, gladiatr_state, init_gladiatr, ROT0, "Allumer / Taito Corporation", "Ougon no Shiro (Japan)", MACHINE_SUPPORTS_SAVE )
-GAME( 1986, greatgur, gladiatr, greatgur, gladiatr, gladiatr_state, init_gladiatr, ROT0, "Allumer / Taito Corporation", "Great Gurianos (Japan?)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, greatgur, gladiatr, greatgur, gladiatr, gladiatr_state, init_gladiatr, ROT0, "Allumer / Taito Corporation", "Great Gurianos (bootleg?)", MACHINE_SUPPORTS_SAVE )
GAME( 1986, gcastle, gladiatr, gladiatr, gladiatr, gladiatr_state, init_gladiatr, ROT0, "Allumer / Taito Corporation", "Golden Castle (prototype?)", MACHINE_SUPPORTS_SAVE ) // incomplete dump
diff --git a/src/mame/ussr/im01.cpp b/src/mame/ussr/im01.cpp
index 195290b34bf..1808406f167 100644
--- a/src/mame/ussr/im01.cpp
+++ b/src/mame/ussr/im01.cpp
@@ -101,8 +101,6 @@ CТА: - - Enter Move
namespace {
-// ИМ-01 / shared
-
class im01_state : public driver_device
{
public:
@@ -121,6 +119,7 @@ public:
protected:
virtual void machine_start() override;
+private:
// devices/pointers
required_device m_maincpu;
required_device m_display;