New systems marked not working

------------------------------
Bio Rhythm [Siftware]
Janken Man Ganso 2 [buffi]
Jipin Dou Di Zhu (set 1) [little0]
San Da Yi [little0]

New clones marked not working
-----------------------------
Feng Kuang Dou Di Zhu II [little0]
Jipin Dou Di Zhu (set 2)  [little0]

- bmc/koftball.cpp: identified a couple of inputs for jxzh [little0]

- igs/igspoker.cpp: added NVRAM support, split driver in subclasses, small cleanups

- kaneko/airbustr.cpp: added PLD dumps for the original sets [PLD Archive, f205v]
This commit is contained in:
Ivan Vangelista 2025-04-08 06:43:10 +02:00
parent e4d09c2b64
commit d8613f0d95
8 changed files with 836 additions and 500 deletions

View File

@ -12,7 +12,7 @@ TODO:
accesses are similar;
- probably jxzh also supports the mahjong keyboard. Check if one of the dips enable it and where it
is read;
- better understanding of the koftball protection;
- better understanding of the koftball protection.
--
@ -432,7 +432,7 @@ INPUT_PORTS_END
static INPUT_PORTS_START( jxzh )
PORT_START("INPUTS")
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("unknown1") PORT_CODE(KEYCODE_A) // TODO: read in test mode, check the meaning shown there
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT )
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_REACH )
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_PON )
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_MAHJONG_KAN )
@ -441,7 +441,7 @@ static INPUT_PORTS_START( jxzh )
PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_MAHJONG_RON )
PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_MAHJONG_BET )
PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("unknown2") PORT_CODE(KEYCODE_S) // TODO: read in test mode, check the meaning shown there
PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("hopper switch") PORT_CODE(KEYCODE_H)
PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK )
PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT )
PORT_SERVICE_NO_TOGGLE( 0x1000, IP_ACTIVE_LOW )

File diff suppressed because it is too large Load Diff

View File

@ -825,6 +825,11 @@ ROM_START( airbustr )
ROM_REGION( 0x40000, "oki", 0 )
ROM_LOAD( "pr-200.bin", 0x00000, 0x40000, CRC(a4dd3390) SHA1(2d72b46b4979857f6b66489bebda9f48799f59cf) )
ROM_REGION( 0x400, "plds", ROMREGION_ERASE00 )
ROM_LOAD( "pal16l8-pr-500.16f", 0x000, 0x104, CRC(e0f901e1) SHA1(f436f5357408ad7056c950018c0e94681b34fd11) )
ROM_LOAD( "gal16v8a-pr-501.13j", 0x200, 0x117, CRC(d8bf8cb5) SHA1(2ccd4b35f97a4fdaf13f3eccb741a0ff54fc7115) )
ROM_END
ROM_START( airbustrj )
@ -846,6 +851,10 @@ ROM_START( airbustrj )
ROM_REGION( 0x40000, "oki", 0 )
ROM_LOAD( "pr-200.bin", 0x00000, 0x40000, CRC(a4dd3390) SHA1(2d72b46b4979857f6b66489bebda9f48799f59cf) )
ROM_REGION( 0x400, "plds", ROMREGION_ERASE00 )
ROM_LOAD( "pal16l8-pr-500.16f", 0x000, 0x104, CRC(e0f901e1) SHA1(f436f5357408ad7056c950018c0e94681b34fd11) )
ROM_LOAD( "gal16v8a-pr-501.13j", 0x200, 0x117, CRC(d8bf8cb5) SHA1(2ccd4b35f97a4fdaf13f3eccb741a0ff54fc7115) )
ROM_END
/*

View File

@ -20656,9 +20656,9 @@ xyddz
@source:igs/igspoker.cpp
chleague
chleagul
chleagxa
chleagxb
chleaguel
chleaguexa
chleaguexb
citalcup
cpoker
cpokerpk
@ -20676,7 +20676,7 @@ igs_ncs2
igstet341
igstet342
number10
numbr10l
number10l
pktet346
stellecu
@ -31395,9 +31395,13 @@ megaphx
yoyospel
@source:misc/menghong.cpp
crzyddz2
fkddz2
jpddz
jpddza
jzst
menghong
menghonga
sandayi
@source:misc/meyc8080.cpp
casbjack
@ -42556,6 +42560,9 @@ basf7120
@source:skeleton/bert.cpp
bert
@source:skeleton/biorhythm.cpp
biorhthm
@source:skeleton/bitgraph.cpp
bitgrpha
bitgrphb
@ -44052,6 +44059,9 @@ anoworld
@source:sunwise/jankenmn.cpp
jankenmn
@source:sunwise/jankmg2.cpp
jankmg2
@source:svi/svi318.cpp
svi318
svi318n

View File

@ -1821,7 +1821,7 @@ static INPUT_PORTS_START( cjdlz ) // TODO
PORT_DIPSETTING( 0x0000, "1 Note/10 Credits" )
PORT_DIPSETTING( 0x0008, "1 Note/20 Credits" )
PORT_DIPSETTING( 0x0010, "1 Note/50 Credits" )
PORT_DIPNAME( 0x0020, 0x0000, "Show Tiles after Reach" ) PORT_DIPLOCATION("DSW2:6")
PORT_DIPNAME( 0x0020, 0x0000, "Show Credits" ) PORT_DIPLOCATION("DSW2:6")
PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
PORT_DIPNAME( 0x0040, 0x0000, "Pay Out Type" ) PORT_DIPLOCATION("DSW2:7")

View File

@ -18,7 +18,7 @@
=============================================================================
Meng Hong Lou (Dream of the Red Chamber), Sealy, 2008
Crazy Dou Di Zhu II, Sealy, 2006
Jue Zhan Shanghai Tan, Sealy, 2006
Hardware Info By Guru
---------------------
@ -45,7 +45,8 @@ Notes:
CPU Clock Input Pins 6 & 7 - 14.31818MHz
Video Clock Input Pin 103 - 28.63636MHz
Another identical PCB has this chip marked "ADC Amazon-LF EISC" so these are 100% compatible.
0260F8A - unknown TQFP44 (Microcontroller?). Clock Input 8.000MHz
0260F8A - Renesas M30260F8AGP (TQFP44) (M16C/26A based microcontroller with internal 64K + 4K Flash ROM).
Clock Input 8.000MHz.
HY04 - rebadged DIP8 PIC - type unknown (*). PCB marked "SAM1"
Some chips are marked "SL01". Chip data is unique to each game but different
versions of the same game work ok with swapped HY04 or swapped main program EPROM.
@ -534,7 +535,7 @@ ROM_START( menghonga )
ROM_LOAD("hy04_fake_data.bin", 0, 0x100, BAD_DUMP CRC(73cc964b) SHA1(39d223c550e38c97135322e43ccabb70f04964b9) )
ROM_END
ROM_START( crzyddz2 )
ROM_START( jzst )
ROM_REGION32_LE( 0x1000000, "flash", 0 ) // Flash
ROM_LOAD( "rom.u48", 0x000000, 0x1000000, CRC(0f3a1987) SHA1(6cad943846c79db31226676c7391f32216cfff79) )
@ -547,9 +548,76 @@ ROM_START( crzyddz2 )
ROM_REGION( 0x0100, "pic_data", ROMREGION_ERASEFF )
ROM_END
// PCB is very similar to the one documented at the top, but with HY03 instead of HY04 and standard ROMs instead of flash
ROM_START( fkddz2 )
ROM_REGION32_LE( 0x1000000, "flash", ROMREGION_ERASEFF )
ROM_LOAD( "exrom.u9", 0x000000, 0x400000, CRC(798d992d) SHA1(67e23ba8ee5867ef6cf6678c3942fe71077648b1) )
ROM_LOAD( "rom2.u8", 0x400000, 0x400000, CRC(da43ba27) SHA1(495cb36393c358498171e0e3fd3c5bbcdf2edefc) )
ROM_LOAD( "rom3.u7", 0x800000, 0x400000, CRC(48c2b302) SHA1(8b995cdf1d1763ec610732b8f8ebe24ceab3745a) )
ROM_REGION( 0x0400000, "maincpu", ROMREGION_ERASEFF )
ROM_LOAD( "rom.u13", 0x000000, 0x0200000, CRC(ed5faeea) SHA1(f5055a74c153dda5cdc035853f773bdf0bf89924) ) // 1xxxxxxxxxxxxxxxxxxxx = 0xFF
ROM_REGION( 0x4280, "pic", 0 ) // hy03
ROM_LOAD("hy-03", 0x000000, 0x4280, NO_DUMP )
ROM_REGION( 0x0100, "pic_data", ROMREGION_ERASEFF )
ROM_END
// Sealy 2005.7 PCB
// PCB is very similar to the one documented at the top, but with KEY02 instead of HY04 and standard ROMs instead of flash
ROM_START( jpddz )
ROM_REGION32_LE( 0x1000000, "flash", ROMREGION_ERASEFF )
ROM_LOAD( "exrom.u19", 0x000000, 0x400000, CRC(755dd9f9) SHA1(2361ee329777ea42fee5bbdf9c7e962a96863e28) )
ROM_LOAD( "rom.u18", 0x400000, 0x400000, CRC(39a0def4) SHA1(b84681e603a7c5eb49e81c3c622f3ce498a5f40c) )
ROM_LOAD( "rom.u17", 0x800000, 0x400000, CRC(1bd2f550) SHA1(f8283a5d4750f1c435c0bba993381bb6849ed490) )
ROM_REGION( 0x0400000, "maincpu", ROMREGION_ERASEFF )
ROM_LOAD( "rom.u13", 0x000000, 0x0200000, CRC(2cf079f1) SHA1(b924ab4e5359ec56b9c5203d3a277f487c2553fe) ) // 1xxxxxxxxxxxxxxxxxxxx = 0xFF
ROM_REGION( 0x4280, "pic", 0 ) // key02
ROM_LOAD("hy-02", 0x000000, 0x4280, NO_DUMP )
ROM_REGION( 0x0100, "pic_data", ROMREGION_ERASEFF )
ROM_END
ROM_START( jpddza )
ROM_REGION32_LE( 0x1000000, "flash", ROMREGION_ERASEFF )
ROM_LOAD( "exrom.u19", 0x000000, 0x400000, CRC(755dd9f9) SHA1(2361ee329777ea42fee5bbdf9c7e962a96863e28) )
ROM_LOAD( "rom.u18", 0x400000, 0x400000, CRC(39a0def4) SHA1(b84681e603a7c5eb49e81c3c622f3ce498a5f40c) )
ROM_LOAD( "rom.u17", 0x800000, 0x400000, CRC(1bd2f550) SHA1(f8283a5d4750f1c435c0bba993381bb6849ed490) )
ROM_REGION( 0x0400000, "maincpu", ROMREGION_ERASEFF )
ROM_LOAD( "rom.u13", 0x000000, 0x0200000, CRC(3af68f42) SHA1(e51be0578891ba3b6e4a1a999c08ec8b64cf3924) ) // 1xxxxxxxxxxxxxxxxxxxx = 0xFF
ROM_REGION( 0x4280, "pic", 0 ) // key02
ROM_LOAD("hy-02", 0x000000, 0x4280, NO_DUMP )
ROM_REGION( 0x0100, "pic_data", ROMREGION_ERASEFF )
ROM_END
ROM_START( sandayi )
ROM_REGION32_LE( 0x1000000, "flash", ROMREGION_ERASEFF )
ROM_LOAD( "exr01.u19", 0x000000, 0x400000, CRC(c9808384) SHA1(6e1d893e125c9aa187881a866ba78d0173a46409) )
ROM_LOAD( "rom.u18", 0x400000, 0x400000, CRC(8c8dbdb4) SHA1(9fc8b7da52b5bda3d209db735e6d6534b9b2082d) )
ROM_LOAD( "rom.u17", 0x800000, 0x400000, CRC(7c7f57d8) SHA1(5f7a0dbfead4b3f90b0b5502130cbf92e2811036) ) // 1111xxxxxxxxxxxxxxxxxx = 0xFF
ROM_REGION( 0x0400000, "maincpu", ROMREGION_ERASEFF )
ROM_LOAD( "r0.u13", 0x000000, 0x0200000, CRC(176ec98e) SHA1(b699a84aa365881ac43d3ad72ba78699afbf5f3d) ) // 11xxxxxxxxxxxxxxxxxxx = 0xFF
ROM_REGION( 0x4280, "pic", 0 ) // HY-02
ROM_LOAD("hy-02", 0x000000, 0x4280, NO_DUMP )
ROM_REGION( 0x0100, "pic_data", ROMREGION_ERASEFF )
ROM_END
} // anonymous namespace
GAME( 2004?, menghong, 0, menghong, crzyddz2, menghong_state, empty_init, ROT0, "Sealy", "Meng Hong Lou", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION )
GAME( 2004?, menghonga, menghong, menghong, crzyddz2, menghong_state, empty_init, ROT0, "Sealy", "Meng Hong Lou (earlier)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION )
GAME( 2006, crzyddz2, 0, crzyddz2, crzyddz2, menghong_state, empty_init, ROT0, "Sealy", "Crazy Dou Di Zhu II", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION )
GAME( 2004?, menghong, 0, menghong, crzyddz2, menghong_state, empty_init, ROT0, "Sealy", "Meng Hong Lou", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION )
GAME( 2004?, menghonga, menghong, menghong, crzyddz2, menghong_state, empty_init, ROT0, "Sealy", "Meng Hong Lou (earlier)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION )
GAME( 2006, jzst, fkddz2, crzyddz2, crzyddz2, menghong_state, empty_init, ROT0, "Sealy", "Jue Zhan Shanghai Tan", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION )
GAME( 2006, fkddz2, 0, crzyddz2, crzyddz2, menghong_state, empty_init, ROT0, "Sealy", "Feng Kuang Dou Di Zhu II", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION )
GAME( 2005, jpddz, 0, crzyddz2, crzyddz2, menghong_state, empty_init, ROT0, "Sealy", "Jipin Dou Di Zhu (set 1)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION ) // this one boots
GAME( 2005, jpddza, jpddz, crzyddz2, crzyddz2, menghong_state, empty_init, ROT0, "Sealy", "Jipin Dou Di Zhu (set 2)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION ) // this one doesn't
GAME( 2005, sandayi, 0, crzyddz2, crzyddz2, menghong_state, empty_init, ROT0, "Sealy", "San Da Yi", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION )

View File

@ -0,0 +1,104 @@
// license:BSD-3-Clause
// copyright-holders:
/*
Biorhythm machine
Etched in copper on top of board
(c) THE BIO RHYTHM CO INC 1979
BIORHYTHM CONTROL CARD
SR. NO. F
Main components:
HD46802P
4.000 MHz XTAL
3x EF6821P
MC14028
NE555N
*/
#include "emu.h"
#include "cpu/m6800/m6800.h"
#include "machine/6821pia.h"
#include "speaker.h"
namespace {
class biorhythm_state : public driver_device
{
public:
biorhythm_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu")
{
}
void biorhythm(machine_config &config) ATTR_COLD;
protected:
virtual void machine_start() override ATTR_COLD;
private:
required_device<cpu_device> m_maincpu;
void program_map(address_map &map);
};
void biorhythm_state::machine_start()
{
}
void biorhythm_state::program_map(address_map &map)
{
map.global_mask(0x1fff);
map(0x0800, 0x0803).rw("pia0", FUNC(pia6821_device::read), FUNC(pia6821_device::write));
map(0x0804, 0x0807).rw("pia1", FUNC(pia6821_device::read), FUNC(pia6821_device::write));
map(0x0808, 0x080b).rw("pia2", FUNC(pia6821_device::read), FUNC(pia6821_device::write));
map(0x1000, 0x1fff).rom().region("maincpu", 0);
}
static INPUT_PORTS_START(biorhythm)
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 )
INPUT_PORTS_END
void biorhythm_state::biorhythm(machine_config &config)
{
M6802(config, m_maincpu, 4_MHz_XTAL); // Actually a HD46802P
m_maincpu->set_addrmap(AS_PROGRAM, &biorhythm_state::program_map);
PIA6821(config, "pia0");
PIA6821(config, "pia1");
PIA6821(config, "pia2");
SPEAKER(config, "speaker").front_center();
}
ROM_START( biorhthm )
ROM_REGION( 0x1000, "maincpu", 0 ) // hand-written labels
ROM_LOAD( "1000_v2.0.u5", 0x000, 0x800, CRC(ba96c674) SHA1(12fd665e69177975438a9a2dc63b97897159bfae) )
ROM_LOAD( "1800_2.0.u11", 0x800, 0x800, CRC(e499ccfa) SHA1(426c4462399a89253a17a99a3c814f65a95aa739) )
ROM_END
} // anonymous namespace
GAME( 1979?, biorhthm, 0, biorhythm, biorhythm, biorhythm_state, empty_init, ROT0, "Bio Rhythm", "Biorhythm", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) // title may be wrong / incomplete

View File

@ -0,0 +1,167 @@
// license:BSD-3-Clause
// copyright-holders:
/*
Janken Man 2
'S9405021 CPU-DM-NEW' PCB
Z0840004PSC
4.000 MHz XTAL
LH0082A Z80A-CTC-D
CXK5816PS-15L SRAM
2 banks of 8 DIP switches
*/
#include "emu.h"
#include "cpu/z80/z80.h"
#include "machine/z80ctc.h"
#include "machine/z80daisy.h"
#include "sound/dac.h"
#include "speaker.h"
namespace {
class jankmg2_state : public driver_device
{
public:
jankmg2_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
{ }
void jankmg2(machine_config &config);
protected:
virtual void machine_start() override ATTR_COLD;
private:
required_device<z80_device> m_maincpu;
void program_map(address_map &map) ATTR_COLD;
void io_map(address_map &map) ATTR_COLD;
};
void jankmg2_state::machine_start()
{
}
void jankmg2_state::program_map(address_map &map)
{
map(0x0000, 0x3fff).rom();
map(0x4000, 0x47ff).ram();
}
void jankmg2_state::io_map(address_map &map)
{
map.global_mask(0xff);
//map(0x??, 0x??).rw("ctc", FUNC(z80ctc_device::read), FUNC(z80ctc_device::write));
}
static INPUT_PORTS_START( jankmg2 )
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("DSW1")
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:1")
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:2")
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:3")
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:4")
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:5")
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:6")
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:7")
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:8")
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_START("DSW2")
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:1")
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:2")
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:3")
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:4")
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:5")
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:6")
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:7")
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:8")
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
static const z80_daisy_config daisy_chain[] =
{
{ "ctc" },
{ nullptr }
};
void jankmg2_state::jankmg2(machine_config &config)
{
Z80(config, m_maincpu, 4_MHz_XTAL);
m_maincpu->set_daisy_config(daisy_chain);
m_maincpu->set_addrmap(AS_PROGRAM, &jankmg2_state::program_map);
m_maincpu->set_addrmap(AS_IO, &jankmg2_state::io_map);
z80ctc_device& ctc(Z80CTC(config, "ctc", 4_MHz_XTAL));
ctc.intr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
// sound hardware
SPEAKER(config, "speaker").front_center();
DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.5); // TODO: wrong type, verify
}
ROM_START( jankmg2 )
ROM_REGION( 0x4000, "maincpu", 0 )
ROM_LOAD( "gjv1.1.p.u17", 0x0000, 0x4000, CRC(1aa201e7) SHA1(943dff75a46775dd12aed07659dff3d961a58211) )
ROM_REGION( 0x40000, "dac_data", 0 )
ROM_LOAD( "pcg2.1.u13", 0x00000, 0x40000, CRC(48a8f769) SHA1(656346ca0a83fd8ff5c8683152e4c5e1a1c797fa) ) // same as sunwise/jankenm.cpp
// 3 more unpopulated ROM spaces at u14, u15 and u16
ROM_END
} // anonymous namespace
// title machine translated from auction, not verified
GAME( 199?, jankmg2, 0, jankmg2, jankmg2, jankmg2_state, empty_init, ROT0, "Sunwise", "Janken Man Ganso 2", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )