- kikikai.cpp: added PCB infos, corrected dips [Guru]

- opercoin.cpp: added basic mappings

- skylncr.cpp: redumped u29 for speedway [Ioannis Bampoulas]
This commit is contained in:
Ivan Vangelista 2021-08-23 06:56:49 +02:00
parent a961165ca2
commit 54323ef3cb
3 changed files with 151 additions and 49 deletions

View File

@ -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 ) )

View File

@ -54,9 +54,19 @@ public:
private:
required_device<cpu_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

View File

@ -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) )