From 54323ef3cb2baf80cd893f0b2b2a28408a34e9e6 Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Mon, 23 Aug 2021 06:56:49 +0200 Subject: [PATCH] - kikikai.cpp: added PCB infos, corrected dips [Guru] - opercoin.cpp: added basic mappings - skylncr.cpp: redumped u29 for speedway [Ioannis Bampoulas] --- src/mame/drivers/kikikai.cpp | 182 ++++++++++++++++++++++++++-------- src/mame/drivers/opercoin.cpp | 16 ++- src/mame/drivers/skylncr.cpp | 2 +- 3 files changed, 151 insertions(+), 49 deletions(-) diff --git a/src/mame/drivers/kikikai.cpp b/src/mame/drivers/kikikai.cpp index a3913fe8686..725b4151ffe 100644 --- a/src/mame/drivers/kikikai.cpp +++ b/src/mame/drivers/kikikai.cpp @@ -39,6 +39,8 @@ Notes: figure it all out. Indeed, the 68705 code reads all the memory locations related to the missing collision detection, but does nothing with them. +- KiKi KaiKai coinage mode Type 2 doesn't work. + - Kick and Run is a rom swap for Kiki KaiKai as the pal chips are all A85-0x A85 is the Taito rom code for Kiki KaiKai. Even the MCU is socketed! @@ -51,6 +53,90 @@ JPH1011P JPH1020P JPH1021P 185 185 185 PS4 J8635 PS4 J8541 PS4 J8648 + +/*************************************************************************** +Kiki KaiKai, Taito, 1986 +Hardware info by Guru +Last Update: 22nd August 2021 + + +PCB Layout +---------- + +MAIN BOARD K1100195A J1100079A +Sticker: K1100195A KIKI KAIKAI +|-------------------------------------------------------------------| +| SWA SWB TMM2064 A85_15.A1| +| MB3731 YM3014 YM2203C A85-04.A2 A85_14.A3| +| 4556 TMM2064 A85_13.A5| +| VOL Z0840006PSC A85_12.A6| +| CN1 A85_11.F6 | +| PC050CM CXK5816 A85-03.B7 | +|A85_01.H8 |--| +| | | +| | | +|J | | +|A A85_05.D10 | | +|M | |E +|M A85_07.G11 CXK5816 | | +|A | | +| A85-10.G12 MCM2016 | | +| * * * | | +| A85-09.G14 |--| +| A85-08.G15 MCM2016 | +| A85-02.A13| +| A85-06.G16 | +| | +| A85_17.H16 | +| A85_16.H18 Z0840006PSC MB3771 24MHz | +|-------------------------------------------------------------------| +Notes: + E - 50 pin flat cable connector labelled 'E' (unused) + A85-01.H8 - Motorola MC6801U4 8-bit microcontroller with 192 Bytes internal RAM and 4kB internal mask ROM marked 'TAITO A85-01 JPH1020P 185 PS4 J8641' + Clock input 3.000MHz on pin 3 [24/8] + CN1 - 4-pin header labelled 'JAMMA' with a 4-pin plug marked 'H' connected on top. + Pin 1 is tied to ground. + Pin 2 is tied to the PC050CM on pin 10 (schematics show pin 10 is tied to ground). + Each of the pins 3 and 4 connect to the JAMMA 12V pins separately (JAMMA 12V is not tied together on the PCB). + On the 'H' plug, pins 1-2 are tied with a wire and pin 3-4 are tied with a wire. + MB3731 - Fujitsu MB3731 18W BTL mono power amplifier + MB3771 - Fujitsu MB3771 power supply monitotr IC. This is used to provide the power-on reset. + SWA/SWB - 8-position DIP switch + TMM2064 - Toshiba TMM2064 8kx8-bit static RAM + MCM2016 - Motorola MCM2016 2kx8-bit static RAM + CXK5816 - Sony CXK5816 2kx8-bit static RAM + 4556 - 4556 dual operational amplifier + VOL - 5k volume pot + PC050CM - Taito PC050CM custom SIL28 ceramic module for coins, coin lockout and coin counters + YM3014 - Yamaha YM3014 serial input floating D/A converter. Clock input 1.000MHz on pin 5 [24/24]. Other clocks: pin 3= 41.6666kHz, pin 4= 83.3332kHz + YM2203C - Yamaha YM2203C OPN (FM Operator Type-N) 3-channel sound chip. Clock input 3.000MHz [24/8] + Z0840006PSC - Zilog Z0840006PSC Z80 CPU. Clock input 6.000MHz [24/4] (for both Z80's) + HSync - 15.1436kHz + VSync - 59.1858Hz + A85-02.A13 - MMI PAL16L8A marked 'A85-02' + A85-03.B7 - MMI PAL16L8A marked 'A85-03' + A85-04.A2 - MMI PAL16L8A marked 'A85-04' + A85-05.D10 - MMI PAL16L8A marked 'A85-05' + A85-06.G16 - MMI PAL16L8A marked 'A85-06' + A85-07.G11 - MMI PAL16R4A marked 'A85-07' + A85_11 - 27C256 EPROM +A85_12 to 17 - 27C512 EPROM + A85-08.G15 - 63S141 bipolar PROM (Red) + A85-09.G14 - 63S141 bipolar PROM (Blue) + A85-10.G12 - 63S141 bipolar PROM (Green) + * - 4 resistors connected to the color PROM outputs. + They are connected as follows (duplicated 3 times for each color PROM)..... + + O4-----R220-----| + | + O3-----R470--+--| + Final Output----------| | + 02-----R1k------| + | + 01-----R2.2k----| + + The final output of each PROM connects to the JAMMA connector pins for the red, green or blue video output. + ***************************************************************************/ #include "emu.h" @@ -174,49 +260,49 @@ static INPUT_PORTS_START( kicknrun ) /* When Bit 1 is On, the machine waits a signal from another one */ /* Seems like if you can join two cabinets, one as master */ /* and the other as slave, probably to play four players. */ - PORT_DIPNAME( 0x01, 0x01, "Master/Slave Mode" ) PORT_DIPLOCATION("SW1:1") + PORT_DIPNAME( 0x01, 0x01, "Master/Slave Mode" ) PORT_DIPLOCATION("SWA:1") PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:2") // Screen ? + PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SWA:2") // Screen ? PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) PORT_DIPLOCATION("SW1:3") - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:4") // Demo Sounds only play every 8th Demo + PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWA:4") // Demo Sounds only play every 8th Demo PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:5,6") + PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:5,6") PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:7,8") + PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SWA:7,8") PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0xc0, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) ) PORT_START("DSW1") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:1,2") + PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SWB:1,2") PORT_DIPSETTING( 0x03, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x02, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0c, 0x08, "Playing Time" ) PORT_DIPLOCATION("SW2:3,4") + PORT_DIPNAME( 0x0c, 0x08, "Playing Time" ) PORT_DIPLOCATION("SWB:3,4") PORT_DIPSETTING( 0x00, "40 Seconds" ) PORT_DIPSETTING( 0x0c, "One Minute" ) PORT_DIPSETTING( 0x08, "One Minute and 20 Sec." ) PORT_DIPSETTING( 0x04, "One Minute and 40 Sec." ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:5") + PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SWB:5") PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) /* The following dip seems to be related with the first one */ - PORT_DIPNAME( 0x20, 0x20, "Board ID" ) PORT_DIPLOCATION("SW2:6") + PORT_DIPNAME( 0x20, 0x20, "Board ID" ) PORT_DIPLOCATION("SWB:6") PORT_DIPSETTING( 0x20, "Master" ) PORT_DIPSETTING( 0x00, "Slave" ) - PORT_DIPNAME( 0x40, 0x40, "Number of Matches" ) PORT_DIPLOCATION("SW2:7") + PORT_DIPNAME( 0x40, 0x40, "Number of Matches" ) PORT_DIPLOCATION("SWB:7") PORT_DIPSETTING( 0x00, "2" ) PORT_DIPSETTING( 0x40, "6" ) - PORT_DIPNAME( 0x80, 0x80, "Single board 4 Players Mode" ) PORT_DIPLOCATION("SW2:8") + PORT_DIPNAME( 0x80, 0x80, "Single board 4 Players Mode" ) PORT_DIPLOCATION("SWB:8") PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) @@ -298,49 +384,49 @@ static INPUT_PORTS_START( mexico86 ) /* When Bit 1 is On, the machine waits a signal from another one */ /* Seems like if you can join two cabinets, one as master */ /* and the other as slave, probably to play four players. */ - PORT_DIPNAME( 0x01, 0x01, "Master/Slave Mode" ) PORT_DIPLOCATION("SW1:1") + PORT_DIPNAME( 0x01, 0x01, "Master/Slave Mode" ) PORT_DIPLOCATION("SWA:1") PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:2") // Screen ? + PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SWA:2") // Screen ? PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) PORT_DIPLOCATION("SW1:3") - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:4")// this should be Demo Sounds, but doesn't work? + PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SWA:4")// this should be Demo Sounds, but doesn't work? PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:5,6") + PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:5,6") PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:7,8") + PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SWA:7,8") PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0xc0, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) ) PORT_START("DSW1") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:1,2") + PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SWB:1,2") PORT_DIPSETTING( 0x03, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x02, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0c, 0x08, "Playing Time" ) PORT_DIPLOCATION("SW2:3,4") + PORT_DIPNAME( 0x0c, 0x08, "Playing Time" ) PORT_DIPLOCATION("SWB:3,4") PORT_DIPSETTING( 0x00, "40 Seconds" ) PORT_DIPSETTING( 0x0c, "One Minute" ) PORT_DIPSETTING( 0x08, "One Minute and 20 Sec." ) PORT_DIPSETTING( 0x04, "One Minute and 40 Sec." ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:5") + PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SWB:5") PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) /* The following dip seems to be related with the first one */ - PORT_DIPNAME( 0x20, 0x20, "Board ID" ) PORT_DIPLOCATION("SW2:6") + PORT_DIPNAME( 0x20, 0x20, "Board ID" ) PORT_DIPLOCATION("SWB:6") PORT_DIPSETTING( 0x20, "Master" ) PORT_DIPSETTING( 0x00, "Slave" ) - PORT_DIPNAME( 0x40, 0x40, "Number of Matches" ) PORT_DIPLOCATION("SW2:7") + PORT_DIPNAME( 0x40, 0x40, "Number of Matches" ) PORT_DIPLOCATION("SWB:7") PORT_DIPSETTING( 0x00, "2" ) PORT_DIPSETTING( 0x40, "6" ) - PORT_DIPNAME( 0x80, 0x80, "Single board 4 Players Mode" ) PORT_DIPLOCATION("SW2:8") + PORT_DIPNAME( 0x80, 0x80, "Single board 4 Players Mode" ) PORT_DIPLOCATION("SWB:8") PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) @@ -419,14 +505,14 @@ static INPUT_PORTS_START( kikikai ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("DSW0") - PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:1") + PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWA:1") PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:2") + PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SWA:2") PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) PORT_DIPLOCATION("SW1:3") - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:4") + PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) PORT_DIPLOCATION("SWA:3") + PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) PORT_DIPLOCATION("SWA:4") PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) @@ -443,38 +529,46 @@ static INPUT_PORTS_START( kikikai ) PORT_DIPSETTING( 0x00, "A:2C/3C B:1C/6C" ) #endif - // coinage copied from Japanese manual but type B doesn't work - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:5,6") - PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) - PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:7,8") - PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) - PORT_DIPSETTING( 0xc0, DEF_STR( 1C_1C ) ) - PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) - PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) ) + // coinage copied from Japanese manual but Type 2 doesn't work so when Type 2 is selected, the Type 1 coinage is still active. + PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:5,6") + PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW1", 0x40, EQUALS, 0x40) + PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW1", 0x40, EQUALS, 0x40) + PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW1", 0x40, EQUALS, 0x40) + PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) PORT_CONDITION("DSW1", 0x40, EQUALS, 0x40) + PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW1", 0x40, EQUALS, 0x00) + PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW1", 0x40, EQUALS, 0x00) + PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) PORT_CONDITION("DSW1", 0x40, EQUALS, 0x00) + PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) PORT_CONDITION("DSW1", 0x40, EQUALS, 0x00) + PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SWA:7,8") + PORT_DIPSETTING( 0xc0, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW1", 0x40, EQUALS, 0x40) + PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW1", 0x40, EQUALS, 0x40) + PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW1", 0x40, EQUALS, 0x40) + PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) PORT_CONDITION("DSW1", 0x40, EQUALS, 0x40) + PORT_DIPSETTING( 0xc0, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW1", 0x40, EQUALS, 0x00) + PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW1", 0x40, EQUALS, 0x00) + PORT_DIPSETTING( 0x40, DEF_STR( 1C_4C ) ) PORT_CONDITION("DSW1", 0x40, EQUALS, 0x00) + PORT_DIPSETTING( 0x00, DEF_STR( 1C_6C ) ) PORT_CONDITION("DSW1", 0x40, EQUALS, 0x00) PORT_START("DSW1") - PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:1,2") + PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SWB:1,2") PORT_DIPSETTING( 0x02, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x03, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) - PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:3,4") + PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SWB:3,4") PORT_DIPSETTING( 0x00, "50000 100000" ) PORT_DIPSETTING( 0x0c, "70000 150000" ) PORT_DIPSETTING( 0x08, "70000 200000" ) PORT_DIPSETTING( 0x04, "100000 300000" ) - PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:5,6") + PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWB:5,6") PORT_DIPSETTING( 0x00, "2" ) PORT_DIPSETTING( 0x30, "3" ) PORT_DIPSETTING( 0x20, "4" ) PORT_DIPSETTING( 0x10, "5" ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW2:7") - PORT_DIPSETTING( 0x40, "A" ) - PORT_DIPSETTING( 0x00, "B" ) - PORT_DIPNAME( 0x80, 0x00, "Number Match" ) PORT_DIPLOCATION("SW2:8") + PORT_DIPNAME( 0x40, 0x40, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SWB:7") + PORT_DIPSETTING( 0x40, "Type 1" ) + PORT_DIPSETTING( 0x00, "Type 2" ) + PORT_DIPNAME( 0x80, 0x00, "Number Match" ) PORT_DIPLOCATION("SWB:8") PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) diff --git a/src/mame/drivers/opercoin.cpp b/src/mame/drivers/opercoin.cpp index 52ff7f8fb29..c6a114e2f1d 100644 --- a/src/mame/drivers/opercoin.cpp +++ b/src/mame/drivers/opercoin.cpp @@ -54,9 +54,19 @@ public: private: required_device m_maincpu; - virtual void machine_start() override; + void prg_map(address_map &map); }; +void multibaby_state::prg_map(address_map &map) +{ + map(0x0000, 0x3fff).rom(); + map(0x4000, 0x47ff).ram(); + //map(0x8000, 0x8000).w("psg", FUNC(ay8910_device::address_w)); + //map(0x8001, 0x8001).r("psg", FUNC(ay8910_device::data_r)); + //map(0x8002, 0x8002).w("psg", FUNC(ay8910_device::data_w)); + //map(0xe000, 0xe000).nopw(); +} + static INPUT_PORTS_START( multibaby ) PORT_START("DSW1") PORT_DIPUNKNOWN_DIPLOC(0x01, 0x01, "SW1:1") @@ -65,13 +75,11 @@ static INPUT_PORTS_START( multibaby ) PORT_DIPUNKNOWN_DIPLOC(0x08, 0x08, "SW1:4") INPUT_PORTS_END -void multibaby_state::machine_start() -{ -} void multibaby_state::multibaby(machine_config &config) { Z80(config, m_maincpu, 8.000_MHz_XTAL / 2); + m_maincpu->set_addrmap(AS_PROGRAM, &multibaby_state::prg_map); SPEAKER(config, "mono").front_center(); ay8910_device &psg(AY8910(config, "psg", 8.000_MHz_XTAL / 4)); // Divisor unknown diff --git a/src/mame/drivers/skylncr.cpp b/src/mame/drivers/skylncr.cpp index 73bdf0467fb..1dbcd7de481 100644 --- a/src/mame/drivers/skylncr.cpp +++ b/src/mame/drivers/skylncr.cpp @@ -2174,7 +2174,7 @@ ROM_START( speedway ) // runs on a Rolla PCB with small sub board with main CPU, ROM_LOAD( "v3.bin", 0x00000, 0x10000, CRC(ef777180) SHA1(f1a554677543082eb7df2e204d0d4c987b7c6bbb) ) //TMS 27C512 ROM_REGION( 0x80000, "gfx1", 0 ) // all HN27C301AG - ROM_LOAD16_BYTE( "1.u29", 0x00000, 0x20000, CRC(3b360aac) SHA1(a6f31deea53deb8a7da2804c979390ed91ee9f50) ) // 1xxxxxxxxxxxxxxxx = 0xFF + ROM_LOAD16_BYTE( "1.u29", 0x00000, 0x20000, CRC(72e001fe) SHA1(dbb02f8425c175d5ee401754e6c11ce4d429e621) ) ROM_LOAD16_BYTE( "2.u31", 0x00001, 0x20000, CRC(a491bdcf) SHA1(793faa829de50f67a44541136b66407ee9744971) ) ROM_LOAD16_BYTE( "3.u33", 0x40000, 0x20000, CRC(935fc941) SHA1(12e5f7fea932a86298928b70b342e0825a3caca1) ) ROM_LOAD16_BYTE( "4.u35", 0x40001, 0x20000, CRC(aa8164ce) SHA1(027fa9743ad9d80bd86e59d684180f75dc6d60a0) )