summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2025-07-22 18:10:51 +0200
committer Ivan Vangelista <mesgnet@yahoo.it>2025-07-22 18:10:51 +0200
commit093250ebaadfbc86ed9a999483b9bf1a49c83546 (patch)
tree5cd89f9128744e7b117e7bf6a05ba4bc3ac6ec30 /src
parent71970b528d9c671c0f9f6269732aa17fddb3449a (diff)
New systems marked not working
------------------------------ Jin Huangguan II (V310CN) [little0] Jin Huangguan 6th [little0] New working clones ------------------ Driving Force (Galaxian conversion, Seatongrove UK) [Hammy, Caius] New clones marked not working ----------------------------- Mahjong Electron Base (parts 2 & 3, Japan bootleg set 2) [Mr.Dai] Mahjong Electron Base (parts 2 & 3, Japan bootleg set 3) [Mr.Dai] - misc/goldnpkr.cpp: dumped missing ROMs for kmhpan [Mr.Kong]
Diffstat (limited to 'src')
-rw-r--r--src/mame/dynax/dynax.cpp32
-rw-r--r--src/mame/galaxian/galaxold.cpp24
-rw-r--r--src/mame/igs/goldstar.cpp2
-rw-r--r--src/mame/igs/spoker.cpp41
-rw-r--r--src/mame/mame.lst7
-rw-r--r--src/mame/misc/goldnpkr.cpp6
-rw-r--r--src/mame/skeleton/jinhuang6.cpp149
7 files changed, 251 insertions, 10 deletions
diff --git a/src/mame/dynax/dynax.cpp b/src/mame/dynax/dynax.cpp
index f596199ee1d..6ffc121dcb5 100644
--- a/src/mame/dynax/dynax.cpp
+++ b/src/mame/dynax/dynax.cpp
@@ -6007,6 +6007,34 @@ ROM_START( mjelct3bl )
ROM_LOAD( "e2.u83", 0x100000, 0x080000, BAD_DUMP CRC(e1f1b431) SHA1(04a612aff4c30cb8ea741f228bfa7e4289acfee8) )
ROM_END
+ROM_START( mjelct3bla )
+ ROM_REGION( 0x50000, "maincpu", 0 ) // Z80 Code
+ ROM_LOAD( "020.u3", 0x00000, 0x20000, CRC(34223e3b) SHA1(c3e936e9d6ba504ce240090cc675a55d0cde80fa) )
+ ROM_CONTINUE( 0x00000, 0x20000 )
+ ROM_RELOAD( 0x10000, 0x08000 )
+ ROM_CONTINUE( 0x28000, 0x08000 )
+ ROM_CONTINUE( 0x20000, 0x08000 )
+ ROM_CONTINUE( 0x18000, 0x08000 )
+
+ ROM_REGION( 0x200000, "blitter", 0 ) // blitter data, not dumped for this set
+ ROM_LOAD( "e1.u82", 0x000000, 0x100000, BAD_DUMP CRC(e5c41448) SHA1(b8322e32b0cb3d771316c9c4f7be91de6e422a24) )
+ ROM_LOAD( "e2.u83", 0x100000, 0x080000, BAD_DUMP CRC(e1f1b431) SHA1(04a612aff4c30cb8ea741f228bfa7e4289acfee8) )
+ROM_END
+
+ROM_START( mjelct3blb )
+ ROM_REGION( 0x50000, "maincpu", 0 ) // Z80 Code
+ ROM_LOAD( "mjelct3bl1-fast ron-pld.u3", 0x00000, 0x20000, CRC(a8365b24) SHA1(76ec04fa9f5fa35c28733db4eb931d773d078bfc) )
+ ROM_CONTINUE( 0x00000, 0x20000 )
+ ROM_RELOAD( 0x10000, 0x08000 )
+ ROM_CONTINUE( 0x28000, 0x08000 )
+ ROM_CONTINUE( 0x20000, 0x08000 )
+ ROM_CONTINUE( 0x18000, 0x08000 )
+
+ ROM_REGION( 0x200000, "blitter", 0 ) // blitter data, not dumped for this set
+ ROM_LOAD( "e1.u82", 0x000000, 0x100000, BAD_DUMP CRC(e5c41448) SHA1(b8322e32b0cb3d771316c9c4f7be91de6e422a24) )
+ ROM_LOAD( "e2.u83", 0x100000, 0x080000, BAD_DUMP CRC(e1f1b431) SHA1(04a612aff4c30cb8ea741f228bfa7e4289acfee8) )
+ROM_END
+
/***************************************************************************
Que You Ji - Dian Zi Ji Pan Jiaqiang Ban (Mahjong Electron Base bootleg)
Hom Inn, 1997
@@ -7235,7 +7263,9 @@ GAME( 1990, mjelct3, mjelctrn, mjelctrn, mjelct3, dynax_adpcm_state, init_
GAME( 1990, mjelct3a, mjelctrn, mjelctrn, mjelct3, dynax_adpcm_state, init_mjelct3a, ROT180, "Dynax", "Mahjong Electron Base (parts 2 & 3, Japan set 2)", MACHINE_SUPPORTS_SAVE )
GAME( 1990, mjelct3b, mjelctrn, mjelctrn, mjelct3, dynax_adpcm_state, init_mjelct3, ROT180, "Dynax", "Mahjong Electron Base (parts 2 & 3, Japan set 3)", MACHINE_SUPPORTS_SAVE )
GAME( 1993, mjelctrb, mjelctrn, mjelctrn, mjelct3, dynax_adpcm_state, init_mjelct3, ROT180, "bootleg", "Mahjong Electron Base (parts 2 & 4, Japan bootleg)", MACHINE_SUPPORTS_SAVE )
-GAME( 1993, mjelct3bl, mjelctrn, mjelctrn, mjelct3, dynax_adpcm_state, init_mjelct3, ROT180, "bootleg", "Mahjong Electron Base (parts 2 & 3, Japan bootleg)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1993, mjelct3bl, mjelctrn, mjelctrn, mjelct3, dynax_adpcm_state, init_mjelct3, ROT180, "bootleg", "Mahjong Electron Base (parts 2 & 3, Japan bootleg set 1)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1993, mjelct3bla, mjelctrn, mjelctrn, mjelct3, dynax_adpcm_state, init_mjelct3, ROT180, "bootleg", "Mahjong Electron Base (parts 2 & 3, Japan bootleg set 2)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1993, mjelct3blb, mjelctrn, mjelctrn, mjelct3, dynax_adpcm_state, init_mjelct3, ROT180, "bootleg", "Mahjong Electron Base (parts 2 & 3, Japan bootleg set 3)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
GAME( 1990, majxtal7, 7jigen, neruton, majxtal7, dynax_adpcm_state, init_mjelct3, ROT180, "Dynax", "Mahjong X-Tal 7 - Crystal Mahjong / Mahjong Diamond 7 (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // reuses a subset of 7jigen assets
GAME( 1990, neruton, 0, neruton, neruton, dynax_adpcm_state, init_mjelct3, ROT180, "Dynax / Yukiyoshi Tokoro", "Mahjong Neruton Haikujiradan (Japan, Rev. B?)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
GAME( 1990, nerutona, neruton, neruton, nerutona, dynax_adpcm_state, init_mjelct3, ROT180, "Dynax / Yukiyoshi Tokoro", "Mahjong Neruton Haikujiradan (Japan, Rev. A?)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/galaxian/galaxold.cpp b/src/mame/galaxian/galaxold.cpp
index c5f2085cf4b..de4c55d507b 100644
--- a/src/mame/galaxian/galaxold.cpp
+++ b/src/mame/galaxian/galaxold.cpp
@@ -2497,6 +2497,29 @@ ROM_START( drivfrct )
ROM_LOAD( "tbp28s42.bin", 0x0100, 0x0200, CRC(9b8f310a) SHA1(8e17cc1adf441aec56d98d0809e1359d5175e8ed) )
ROM_END
+ROM_START( drivfrcsgb )
+ ROM_REGION( 0x8000, "maincpu", 0 )
+ ROM_LOAD( "df2.7h", 0x0000, 0x0800, CRC(f8272d64) SHA1(a9c309f0fccb9976a1d1b7c87f1e6f09a7b5f524) )
+ ROM_CONTINUE( 0x4000, 0x0800 )
+ ROM_LOAD( "df3.7k", 0x0800, 0x0800, CRC(bd06af8b) SHA1(268df1e1ce1969c36dea7e3dfcc9ae8da32e1432) )
+ ROM_CONTINUE( 0x4800, 0x0800 )
+ ROM_LOAD( "df4.7m", 0x2000, 0x0800, CRC(753c2b39) SHA1(e60960af58bb8e63d687310bc262e2c639ff0d89) )
+ ROM_CONTINUE( 0x6000, 0x0800 )
+ ROM_LOAD( "df1.7f", 0x2800, 0x0800, CRC(7a784097) SHA1(de1df0018172ff2a5152c29996ff817d67f5388f) )
+ ROM_CONTINUE( 0x6800, 0x0800 )
+
+ ROM_REGION( 0x4000, "gfx1", 0 ) // not dumped for this set
+ ROM_LOAD( "dfgj2.bin", 0x0000, 0x1000, BAD_DUMP CRC(8e19f1e7) SHA1(addd5add2117ef29ce38c0c80584e5d481b9d820) )
+ ROM_LOAD( "dfgj1.bin", 0x1000, 0x1000, BAD_DUMP CRC(86b60ca8) SHA1(be266e2d69e12a196c2195d48b495c0fb9ef8a43) )
+ ROM_LOAD( "dfgl2.bin", 0x2000, 0x1000, BAD_DUMP CRC(ea5e9959) SHA1(6b638d22adf19224cf741458c8ad34d7f7e17e58) )
+ ROM_LOAD( "dfgl1.bin", 0x3000, 0x1000, BAD_DUMP CRC(b7ed195c) SHA1(81b2b444153dacb962a33a5d86a280ed5088637a) )
+
+ // piggy-backed colour PROMs
+ ROM_REGION( 0x0040, "proms", 0 ) // not dumped for this set
+ ROM_LOAD( "top.clr", 0x0000, 0x0020, BAD_DUMP CRC(3110ddae) SHA1(53b2e1cc07915592f6c868131ec296c63a407f04) )
+ ROM_LOAD( "bot.clr", 0x0020, 0x0020, BAD_DUMP CRC(0f0782af) SHA1(32c0dd09ead5c70cee2657e9cb8cb9fcf54c5a6a) )
+ROM_END
+
ROM_START( racknrol ) // has an AY-3-8910 on main pcb, but is unused? SN76489AN on daughterboard is used.
ROM_REGION( 0x8000, "maincpu", 0 )
ROM_LOAD( "horz_p.bin", 0x0000, 0x1000, CRC(32ca5b43) SHA1(f3e7662f947dcdd80f6eae4f002d2fe64a825aff) )
@@ -2653,6 +2676,7 @@ GAME( 1984, drivfrct, drivfrcp, drivfrcg, drivfrcg, galaxold_state, empty_ini
GAME( 1985, drivfrcb, drivfrcp, drivfrcg, drivfrcg, galaxold_state, empty_init, ROT90, "bootleg (Elsys Software)", "Driving Force (Galaxian conversion bootleg)", MACHINE_SUPPORTS_SAVE )
GAME( 1985, drivfrcsg, drivfrcp, drivfrcg, drivfrcg, galaxold_state, empty_init, ROT90, "Shinkai Inc. (Seatongrove UK, Ltd. license)", "Driving Force (Galaxian conversion, Seatongrove UK, E-0010)", MACHINE_SUPPORTS_SAVE ) // assume they got permission through Magic, not directly from Shinkai
GAME( 1985, drivfrcsga,drivfrcp, drivfrcg, drivfrcg, galaxold_state, empty_init, ROT90, "Shinkai Inc. (Seatongrove UK, Ltd. license)", "Driving Force (Galaxian conversion, Seatongrove UK, E-0237)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // incomplete dump
+GAME( 1985, drivfrcsgb,drivfrcp, drivfrcg, drivfrcg, galaxold_state, empty_init, ROT90, "Shinkai Inc. (Seatongrove UK, Ltd. license)", "Driving Force (Galaxian conversion, Seatongrove UK)", MACHINE_SUPPORTS_SAVE )
GAME( 1986, racknrol, 0, racknrol, racknrol, galaxold_state, empty_init, ROT0, "Senko Industries (Status license from Shinkai Inc.)", "Rack + Roll", MACHINE_SUPPORTS_SAVE )
GAME( 1986, hexpool, racknrol, racknrol, racknrol, galaxold_state, empty_init, ROT90, "Senko Industries (Shinkai Inc. license)", "Hex Pool (Shinkai)", MACHINE_SUPPORTS_SAVE ) // still has Senko logo in gfx rom
GAME( 1985, hexpoola, racknrol, hexpoola, racknrol, galaxold_state, empty_init, ROT90, "Senko Industries", "Hex Pool (Senko)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/igs/goldstar.cpp b/src/mame/igs/goldstar.cpp
index bfb340cfab5..9a3bdfd3240 100644
--- a/src/mame/igs/goldstar.cpp
+++ b/src/mame/igs/goldstar.cpp
@@ -15630,7 +15630,7 @@ This game shares the same programmer / programming team as Ichi Ban Jian by Exce
It seems to use a similar split opcodes / data ROM arrangement.
*/
-ROM_START( superdrg ) // TODO: how does the banking work?
+ROM_START( superdrg )
ROM_REGION( 0x60000, "maincpu", 0 )
ROM_LOAD( "oct1.u20", 0x00000, 0x20000, CRC(0f350eaf) SHA1(36018ec122c96d14f871c1db6517eb090f2d2b65) )
diff --git a/src/mame/igs/spoker.cpp b/src/mame/igs/spoker.cpp
index 043cb5393a5..6bba94df9c3 100644
--- a/src/mame/igs/spoker.cpp
+++ b/src/mame/igs/spoker.cpp
@@ -170,6 +170,7 @@ public:
void xjinhuang(machine_config &config) ATTR_COLD;
+ void init_jinhuang2() ATTR_COLD;
void init_xjinhuang() ATTR_COLD;
protected:
@@ -328,7 +329,7 @@ void spokeru_state::video_start()
void xjinhuang_state::video_start() // TODO
{
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(xjinhuang_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(xjinhuang_state::get_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 128, 32);
}
void jinhulu2_state::video_start()
@@ -1599,7 +1600,6 @@ static GFXDECODE_START( gfx_3super8 )
GFXDECODE_ENTRY( "gfx2", 0x00000, layout_8x32x6, 0, 16 )
GFXDECODE_END
-// TODO: bitplane order probably wrong
static const gfx_layout layout_8x8x4 =
{
8, 8,
@@ -2319,7 +2319,7 @@ ROM_START( sleyuan2 )
ROM_LOAD( "rom.u12", 0x00000, 0x20000, CRC(1aeb078c) SHA1(9b8a256f51e66733c4ec30b451ca0711ed02318e) )
ROM_END
-// IGS PCB NO-0171-4. HD64180RP6, 12 MHz XTAL, Altera MAX EPM3256AQC208-10, I8255,
+// IGS PCB NO-0171-4. HD64180RP6, 12 MHz XTAL, Altera MAX EPM3256AQC208-10, I8255, IGS 009, IGS 003E
// File KC89C72 (AY8910 compatible), U6295, 3 banks of 8 switches
// All ROM labels prepend 新金皇冠 (Xīn Jīn Huángguàn)
ROM_START( xjinhuang )
@@ -2327,9 +2327,9 @@ ROM_START( xjinhuang )
ROM_LOAD( "u30.u30", 0x00000, 0x20000, CRC(7c8a7ffe) SHA1(caf5f1e8272e4fd60f72597749d801c04547b1be) )
ROM_REGION( 0xc0000, "gfx1", 0 )
- ROM_LOAD( "u44.u44", 0x00000, 0x40000, CRC(9ea4bf06) SHA1(300c9d1b2ccfe96580d0c4015bc4c22e21f04941) )
+ ROM_LOAD( "u46.u46", 0x00000, 0x40000, CRC(4762b49e) SHA1(0e124c2dbb64d20d53c81e6a6eae432760e50398) )
ROM_LOAD( "u45.u45", 0x40000, 0x40000, CRC(cb78683e) SHA1(6b74c36fde6f0be2c0da1861db031c0294271a42) )
- ROM_LOAD( "u46.u46", 0x80000, 0x40000, CRC(4762b49e) SHA1(0e124c2dbb64d20d53c81e6a6eae432760e50398) )
+ ROM_LOAD( "u44.u44", 0x80000, 0x40000, CRC(9ea4bf06) SHA1(300c9d1b2ccfe96580d0c4015bc4c22e21f04941) )
ROM_REGION( 0x30000, "gfx2", 0 )
ROM_FILL( 0x0000, 0x30000, 0xff ) // filling the whole bank
@@ -2338,6 +2338,23 @@ ROM_START( xjinhuang )
ROM_LOAD( "u34.u34", 0x00000, 0x40000, CRC(1250998d) SHA1(57f81bc6661f1cfe94fd44ccf8b7bdd064521816) )
ROM_END
+// IGS PCB NO-0171-2. Basically the same as xjinhuang's.
+ROM_START( jinhuang2 )
+ ROM_REGION( 0x20000, "maincpu", 0 )
+ ROM_LOAD( "cg.u30", 0x00000, 0x20000, CRC(7a176a31) SHA1(e08bf546fcf452f3f8bf6de307eb0d6602d9e9c8) )
+
+ ROM_REGION( 0xc0000, "gfx1", 0 )
+ ROM_LOAD( "u46.u46", 0x00000, 0x40000, CRC(705d345e) SHA1(1073c9f0222c976f4c5b490e4cf244d4f8d59ad0) )
+ ROM_LOAD( "u45.u45", 0x40000, 0x40000, CRC(5d911ae4) SHA1(ce28cc6304cdc31a1de24e4b9f268a083a9614ef) )
+ ROM_LOAD( "u44.u44", 0x80000, 0x40000, CRC(1547e04d) SHA1(7052402e41aabc949d860791cbf95c242d1852e7) )
+
+ ROM_REGION( 0x30000, "gfx2", 0 )
+ ROM_FILL( 0x0000, 0x30000, 0xff ) // filling the whole bank
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "sp.u34", 0x00000, 0x40000, CRC(1250998d) SHA1(57f81bc6661f1cfe94fd44ccf8b7bdd064521816) ) // same as xjinhuang
+ROM_END
+
/***************************************************************************
Driver Init
***************************************************************************/
@@ -2378,7 +2395,6 @@ void jinhulu2_state::init_jinhulu2()
int addr = bitswap<24>(i, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 6, 11, 8, 9, 10, 7, 12, 5, 4, 3, 2, 1, 0);
gfxrom[i] = tmp[addr];
}
-
}
void jinhulu2_state::init_jinhulu2120gi()
@@ -2531,6 +2547,18 @@ void spoker_state::init_spk120in()
}
}
+void xjinhuang_state::init_jinhuang2()
+{
+ uint8_t *rom = memregion("maincpu")->base();
+
+ for (int a = 0; a < 0x20000; a++)
+ {
+ if ((a & 0x0060) != 0x0020) rom[a] ^= 0x20;
+ if ((a & 0x04a0) != 0x04a0) rom[a] ^= 0x02;
+ if ((a & 0x1208) == 0x1208) rom[a] ^= 0x01;
+ }
+}
+
void xjinhuang_state::init_xjinhuang()
{
uint8_t *rom = memregion("maincpu")->base();
@@ -2606,6 +2634,7 @@ GAME( 1996, spk102ua, spk306us, spokeru, spk102ua, spokeru_state, init_s
GAME( 1996, spk102u, spk306us, spoker, spk102ua, spoker_state, init_spk100, ROT0, "IGS", "Super Poker (v102U)", MACHINE_SUPPORTS_SAVE )
GAME( 1996, spk100, spk306us, spoker, spk100, spoker_state, init_spk100, ROT0, "IGS", "Super Poker (v100)", MACHINE_SUPPORTS_SAVE )
GAME( 1997, xjinhuang, 0, xjinhuang,spoker, xjinhuang_state,init_xjinhuang, ROT0, "IGS", "Xin Jin Huangguan (V400CN)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // wrong GFX decode, memory map incomplete
+GAME( 1997, jinhuang2, 0, xjinhuang,spoker, xjinhuang_state,init_jinhuang2, ROT0, "IGS", "Jin Huangguan II (V310CN)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // wrong GFX decode, memory map incomplete
GAME( 1993?, 3super8, 0, _3super8, 3super8, spoker_state, init_3super8, ROT0, "<unknown>", "3 Super 8 (Italy)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // ROMs are badly dumped
GAME( 1997, jbell, 0, jb, jb, jb_state, init_spokeru, ROT0, "IGS", "Jingle Bell (v200US)", MACHINE_SUPPORTS_SAVE )
GAME( 1995, jinhulu2, 0, jinhulu2, jinhulu2, jinhulu2_state, init_jinhulu2, ROT0, "IGS", "Jin Hu Lu II (v412GS)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // tries to link to something?
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 378486c8c1f..22ba241e691 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -17779,6 +17779,8 @@ mjelct3
mjelct3a
mjelct3b
mjelct3bl
+mjelct3bla
+mjelct3blb
mjelctrb
mjelctrn
mjembase
@@ -19250,6 +19252,7 @@ drivfrcb
drivfrcg
drivfrcsg
drivfrcsga
+drivfrcsgb
drivfrct
froggerv
hexpool
@@ -21113,6 +21116,7 @@ huahuas2a
huluw2
jbell
jinhuang
+jinhuang2
jinhulu2
jinhulu2100gi
jinhulu2101is
@@ -43361,6 +43365,9 @@ itt9216
@source:skeleton/jade.cpp
jade
+@source:skeleton/jinhuang6.cpp
+jinhuang6
+
@source:skeleton/jonos.cpp
jonos
diff --git a/src/mame/misc/goldnpkr.cpp b/src/mame/misc/goldnpkr.cpp
index 2bbf389bf3b..9643d2f58ea 100644
--- a/src/mame/misc/goldnpkr.cpp
+++ b/src/mame/misc/goldnpkr.cpp
@@ -12702,9 +12702,11 @@ ROM_START( kmhpan )
ROM_COPY( "gfx1", 0x5000, 0x0000, 0x1000 )
ROM_FILL( 0x1000, 0x5000, 0x0000 )
+ // these two ROMs each contain just 0x100 of data from 0x4000 to 0x40ff and another 0x100 from 0x7000 to 0x70ff
+ // PROMs substitutes?
ROM_REGION( 0x10000, "unkroms", 0 )
- ROM_LOAD( "pan_dianzi_f.bin", 0x0000, 0x8000, NO_DUMP ) // M27C256B, soldered, not dumped yet
- ROM_LOAD( "pan_dianzi_g.bin", 0x8000, 0x8000, NO_DUMP ) // M27C256B, soldered, not dumped yet
+ ROM_LOAD( "pan_dianzi_f.bin", 0x0000, 0x8000, CRC(e6a1907c) SHA1(b5497fd45a9416d926cde856292504c793b9fa2a) ) // M27C256B
+ ROM_LOAD( "pan_dianzi_g.bin", 0x8000, 0x8000, CRC(6ff231b7) SHA1(82da7b4c577669d261a181b4cc1fc91cd56763d3) ) // M27C256B
ROM_REGION( 0x0100, "proms", ROMREGION_ERASE00 ) // not identified / dumped yet
ROM_LOAD( "82s129n.bin", 0x0000, 0x0100, BAD_DUMP CRC(7f31066b) SHA1(15420780ec6b2870fc4539ec3afe4f0c58eedf12) ) // borrowed from goldnpkr for now, just to see something
diff --git a/src/mame/skeleton/jinhuang6.cpp b/src/mame/skeleton/jinhuang6.cpp
new file mode 100644
index 00000000000..b9d05ec031d
--- /dev/null
+++ b/src/mame/skeleton/jinhuang6.cpp
@@ -0,0 +1,149 @@
+// license:BSD-3-Clause
+// copyright-holders:
+
+/*
+Jin Huangguan 6th by Yuntong Electronics
+
+PCB etched JHG6th 运通电子
+
+Main components:
+- PLCC-84 scratched off chip. On the underside 4J6518 19766NH 1-C 0609.
+ For lack of alternatives, this is probably the CPU core with internal ROM.
+- 11.0592 MHz XTAL. This is often seen with MCS51-family devices, so it may
+ point to what core it is.
+- M74HC08B1 quad 2-input AND gate (immediately near XTAL)
+- W24257-70L RAM
+- DS12C887 RTC
+- U6295 (Oki M6295 clone)
+*/
+
+#include "emu.h"
+
+#include "cpu/z80/z80.h"
+#include "machine/ds128x.h"
+#include "sound/okim6295.h"
+
+#include "emupal.h"
+#include "screen.h"
+#include "speaker.h"
+#include "tilemap.h"
+
+
+namespace {
+
+class jinhuang6_state : public driver_device
+{
+public:
+ jinhuang6_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
+ m_gfxdecode(*this, "gfxdecode")
+ { }
+
+ void jinhuang6(machine_config &config) ATTR_COLD;
+
+protected:
+ virtual void video_start() override ATTR_COLD;
+
+private:
+ required_device<cpu_device> m_maincpu;
+ required_device<gfxdecode_device> m_gfxdecode;
+
+ uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+};
+
+
+void jinhuang6_state::video_start()
+{
+}
+
+uint32_t jinhuang6_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
+{
+ bitmap.fill(rgb_t::black(), cliprect);
+
+ return 0;
+}
+
+
+static INPUT_PORTS_START( jinhuang6 )
+ PORT_START("IN0")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("IN1")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ // no switches on PCB
+INPUT_PORTS_END
+
+
+static const gfx_layout gfx_8x8x16 =
+{
+ 8,8,
+ RGN_FRAC(1,1),
+ 8,
+ { STEP8(0, 2) },
+ { STEP8(0, 8*2) },
+ { STEP8(0, 8*8*2) },
+ 8*8*16
+};
+
+// TODO
+static GFXDECODE_START( gfx_jinhuang6 )
+ GFXDECODE_ENTRY( "tiles", 0, gfx_8x8x16, 0, 16 )
+GFXDECODE_END
+
+
+void jinhuang6_state::jinhuang6(machine_config &config)
+{
+ Z80(config, m_maincpu, 11.0592_MHz_XTAL); // wrong! CPU not identified
+
+ DS12885(config, "rtc", 32.768_kHz_XTAL); // should be DS12C887
+
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); // TODO
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 64*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(jinhuang6_state::screen_update));
+
+ GFXDECODE(config, m_gfxdecode, "palette", gfx_jinhuang6);
+ PALETTE(config, "palette").set_entries(0x100); // TODO
+
+ SPEAKER(config, "mono").front_center();
+
+ OKIM6295(config, "oki", 11.0592_MHz_XTAL / 11, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); // pin 7 and clock not verified
+}
+
+ROM_START( jinhuang6 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "internal_rom", 0x00000, 0x10000, NO_DUMP ) // size unknown
+
+ ROM_REGION( 0x400000, "tiles", 0 )
+ ROM_LOAD( "jhg6th.u5", 0x000000, 0x400000, CRC(c185c9e5) SHA1(dc0518427c33e6e0f2d43fab644f02f4653b9c80) )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "jhg6th.u9", 0x00000, 0x40000, CRC(e6aac74d) SHA1(b8f88b894383cd3eab4b00a20b74ee84dea61672) )
+
+ ROM_REGION( 0x400, "plds", ROMREGION_ERASE00 )
+ ROM_LOAD( "u6", 0x000, 0x117, NO_DUMP ) // read protected
+ ROM_LOAD( "u7", 0x200, 0x117, NO_DUMP ) // read protected
+ROM_END
+
+} // anonymous namespace
+
+
+GAME( 199?, jinhuang6, 0, jinhuang6, jinhuang6, jinhuang6_state, empty_init, ROT0, "Yuntong Electronics", "Jin Huangguan 6th", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )