summaryrefslogblamecommitdiffstatshomepage
path: root/src/mame/drivers/bingowav.cpp
blob: 9286efd3343d06a5b7df9fd582abe55e05ae2dd4 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11





                                                                            




                                                                        

                                        








                                 
                                           













                            



















                                                                                        
                                              



                                                    












                                              








                                                                                                                              






















                                                                                                                        





                                    

                                                     
                                                                       
                                                                               
 
                                                          
                                         
 
                                                          
                                         
 
                                                                                                      
 
                                               
 




                                                               
 


                                                                       
 


                                                                                             
 

                                                                                                                    


                     
                                                                                  


















                                                                                                                       
                                                                                                                           
// license:BSD-3-Clause
// copyright-holders:AJR
/***************************************************************************

    Taito Bingo Wave

    This is a skeleton driver for what appears to be a satellite betting
    game similar to Sega's Caribbean Boule.

    "MAIN PCB"
    - Toshiba TMP68303F-16 (IC26)
    - Mitsubishi M66220SP (IC19)
    - Unpopulated space for 68000 (IC36)
    - TEL TE7750 (IC38, IC47)
    - Taito TC0140SYT (IC68)
    - Zilog Z80-A (IC74)
    - Yamaha YM2610 (IC77)
    - ??MHz XTAL (OSC1)

    "TERMINAL PCB"
    - Toshiba TMP68303F-16 (IC35)
    - Taito TC0650FDA (IC26)
    - Unpopulated space for 68000-16 (IC41)
    - TEL TE7750 (IC42)
    - Taito TCO470LIN (IC33)
    - Taito TC0600OBT (IC11)
    - Yamaha YM2149F (IC53)
    - 36MHz XTAL (OSC1)
    - 32MHz XTAL (OSC2)
    - DIP switches (1x8)
    - JAMMA edge connector

    "CONTROL PCB"
    - Taito PC060HA (IC2)
    - Zilog Z80 (IC13)
    - 16MHz XTAL (OSC1)
    - DIP switches (1x8)

***************************************************************************/

#include "emu.h"
#include "speaker.h"
#include "cpu/m68000/m68000.h"
#include "cpu/z80/z80.h"
#include "machine/te7750.h"
#include "machine/tmp68301.h"
#include "sound/2610intf.h"
#include "audio/taitosnd.h"

class bingowav_state : public driver_device
{
public:
	bingowav_state(const machine_config &mconfig, device_type type, const char *tag)
		: driver_device(mconfig, type, tag)
		, m_maincpu(*this, "maincpu")
	{ }

	void bingowav(machine_config &config);
	void bingowav_audio_map(address_map &map);
	void bingowav_control_map(address_map &map);
	void bingowav_drive_map(address_map &map);
	void bingowav_main_map(address_map &map);
protected:
	virtual void machine_start() override;

private:
	required_device<cpu_device> m_maincpu;
};


void bingowav_state::machine_start()
{
}


void bingowav_state::bingowav_main_map(address_map &map)
{
	map(0x000000, 0x03ffff).rom();
	map(0x100000, 0x10ffff).ram();
	map(0x120000, 0x12001f).rw("mainioh", FUNC(te7750_device::read), FUNC(te7750_device::write)).umask16(0xff00);
	map(0x120000, 0x12001f).rw("mainiol", FUNC(te7750_device::read), FUNC(te7750_device::write)).umask16(0x00ff);
	map(0x140000, 0x140001).nopr();
	map(0x150001, 0x150001).w("tc0140syt", FUNC(tc0140syt_device::master_port_w));
	map(0x150003, 0x150003).rw("tc0140syt", FUNC(tc0140syt_device::master_comm_r), FUNC(tc0140syt_device::master_comm_w));
}

void bingowav_state::bingowav_audio_map(address_map &map)
{
	map(0x0000, 0xbfff).rom();
	map(0xc000, 0xdfff).ram();
	map(0xe000, 0xe003).rw("ymsnd", FUNC(ym2610_device::read), FUNC(ym2610_device::write));
	map(0xe200, 0xe200).w("tc0140syt", FUNC(tc0140syt_device::slave_port_w));
	map(0xe201, 0xe201).rw("tc0140syt", FUNC(tc0140syt_device::slave_comm_r), FUNC(tc0140syt_device::slave_comm_w));
	map(0xf200, 0xf200).nopw();
}

void bingowav_state::bingowav_drive_map(address_map &map)
{
	map(0x000000, 0x01ffff).rom();
}

void bingowav_state::bingowav_control_map(address_map &map)
{
	map(0x0000, 0x3fff).rom();
	map(0xc000, 0xdfff).ram();
	map(0xf000, 0xf000).nopw();
}


static INPUT_PORTS_START( bingowav )
INPUT_PORTS_END


void bingowav_state::bingowav(machine_config &config)
{
	TMP68301(config, m_maincpu, 12000000); // actually TMP63803F-16
	m_maincpu->set_addrmap(AS_PROGRAM, &bingowav_state::bingowav_main_map);

	te7750_device &mainioh(TE7750(config, "mainioh"));
	mainioh.ios_cb().set_constant(5);

	te7750_device &mainiol(TE7750(config, "mainiol"));
	mainiol.ios_cb().set_constant(4);

	Z80(config, "audiocpu", 4000000).set_addrmap(AS_PROGRAM, &bingowav_state::bingowav_audio_map);

	SPEAKER(config, "mono").front_center();

	ym2610_device &ymsnd(YM2610(config, "ymsnd", 8000000));
	ymsnd.irq_handler().set_inputline("audiocpu", 0);
	ymsnd.add_route(0, "mono", 0.25);
	ymsnd.add_route(1, "mono", 1.0);
	ymsnd.add_route(2, "mono", 1.0);

	tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0));
	tc0140syt.set_master_tag(m_maincpu);
	tc0140syt.set_slave_tag("audiocpu");

	m68000_device &termcpu(M68000(config, "termcpu", 12000000)); // actually TMP63803F-16
	termcpu.set_addrmap(AS_PROGRAM, &bingowav_state::bingowav_drive_map);
	termcpu.set_disable();

	Z80(config, "ctrlcpu", XTAL(16'000'000) / 4).set_addrmap(AS_PROGRAM, &bingowav_state::bingowav_control_map);
}


ROM_START( bingowav )
	// Program and graphics ROMs from the "Terminal PCB" are currently missing
	ROM_REGION( 0x40000, "maincpu", 0 )
	ROM_LOAD16_BYTE( "prg-h.ic35", 0x00000, 0x20000, CRC(0ae8c738) SHA1(c040c4f46089a07ef3c4d5067068ea3cd1546e4e) )
	ROM_LOAD16_BYTE( "prg-l.ic42", 0x00001, 0x20000, CRC(a7742e54) SHA1(2ab75c51ced0bb37b50f5077b611cde1770e2411) )

	ROM_REGION( 0x10000, "audiocpu", 0 )
	ROM_LOAD( "ic66", 0x00000, 0x10000, CRC(9fa09b9a) SHA1(e333b11129141649a18906120805842c2dcccd05) )

	ROM_REGION( 0x80000, "ymsnd", 0 )
	ROM_LOAD( "ic69", 0x00000, 0x80000, CRC(5d86d5bd) SHA1(81ebb63f984690e63e45c8b1fe4251fac8d5cf04) )

	ROM_REGION( 0x40000, "termcpu", 0 )
	ROM_LOAD16_BYTE( "prg-h.ic25", 0x00000, 0x20000, NO_DUMP )
	ROM_LOAD16_BYTE( "prg-l.ic20", 0x00001, 0x20000, NO_DUMP )

	ROM_REGION( 0x20000, "ctrlcpu", 0 )
	ROM_LOAD( "ic1", 0x00000, 0x20000, CRC(d257bbaf) SHA1(9d1414594dc1c1fca256ab5b6039e733bff1414a) )
ROM_END


GAME( 1994, bingowav, 0, bingowav, bingowav, bingowav_state, empty_init, ROT0, "Taito", "Bingo Wave", MACHINE_IS_SKELETON )