diff options
| author | 2025-07-22 18:10:51 +0200 | |
|---|---|---|
| committer | 2025-07-22 18:10:51 +0200 | |
| commit | 093250ebaadfbc86ed9a999483b9bf1a49c83546 (patch) | |
| tree | 5cd89f9128744e7b117e7bf6a05ba4bc3ac6ec30 /src | |
| parent | 71970b528d9c671c0f9f6269732aa17fddb3449a (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.cpp | 32 | ||||
| -rw-r--r-- | src/mame/galaxian/galaxold.cpp | 24 | ||||
| -rw-r--r-- | src/mame/igs/goldstar.cpp | 2 | ||||
| -rw-r--r-- | src/mame/igs/spoker.cpp | 41 | ||||
| -rw-r--r-- | src/mame/mame.lst | 7 | ||||
| -rw-r--r-- | src/mame/misc/goldnpkr.cpp | 6 | ||||
| -rw-r--r-- | src/mame/skeleton/jinhuang6.cpp | 149 |
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 ) |
