mirror of
https://github.com/holub/mame
synced 2025-04-24 09:20:02 +03:00
taitogn.cpp : Reduce duplicates related to zn.cpp (Taito GNET uses ZN2 motherboard, Same as capcom ZN2 based board) (#6077)
* taitogn.cpp : Move subclass into zn.h (Taito GNET uses ZN2 motherboard, Same as capcom ZN2 based board) * zn.cpp : Minor fixes * taitogn.cpp : Move state class declaration into taitogn.cpp * zn.cpp : Fix states * zn.cpp : Fix conflict
This commit is contained in:
parent
15dc4bcd52
commit
f9b15f8b5a
@ -330,34 +330,21 @@ Type 3 (PCMCIA Compact Flash Adaptor + Compact Flash card, sealed together with
|
||||
*/
|
||||
|
||||
#include "emu.h"
|
||||
#include "audio/taito_zm.h"
|
||||
#include "includes/zn.h"
|
||||
|
||||
#include "cpu/psx/psx.h"
|
||||
#include "machine/at28c16.h"
|
||||
#include "machine/ataflash.h"
|
||||
#include "machine/bankdev.h"
|
||||
#include "machine/cat702.h"
|
||||
#include "machine/intelfsh.h"
|
||||
#include "machine/mb3773.h"
|
||||
#include "machine/ram.h"
|
||||
#include "machine/rf5c296.h"
|
||||
#include "machine/znmcu.h"
|
||||
#include "sound/spu.h"
|
||||
#include "video/psx.h"
|
||||
#include "screen.h"
|
||||
#include "speaker.h"
|
||||
|
||||
#include <algorithm>
|
||||
//
|
||||
// Taito GNET specific
|
||||
//
|
||||
|
||||
class taitogn_state : public driver_device
|
||||
class taitogn_state : public zn_state
|
||||
{
|
||||
public:
|
||||
taitogn_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
driver_device(mconfig, type, tag),
|
||||
m_sio0(*this, "maincpu:sio0"),
|
||||
m_cat702(*this, "cat702_%u", 1U),
|
||||
m_znmcu(*this, "znmcu"),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
zn_state(mconfig, type, tag),
|
||||
m_mn10200(*this, "taito_zoom:mn10200"),
|
||||
m_pccard(*this, "pccard"),
|
||||
m_flashbank(*this, "flashbank"),
|
||||
@ -366,14 +353,13 @@ public:
|
||||
m_pgmflash(*this, "pgmflash"),
|
||||
m_sndflash(*this, "sndflash%u", 0U),
|
||||
m_jp1(*this, "JP1"),
|
||||
m_has_zoom(true),
|
||||
m_znmcu_dataout(1)
|
||||
m_has_zoom(true)
|
||||
{
|
||||
std::fill(std::begin(m_cat702_dataout), std::end(m_cat702_dataout), 1);
|
||||
}
|
||||
|
||||
void init_coh3002t_nz();
|
||||
|
||||
void base_config(machine_config &config);
|
||||
void coh3002t_t2_mp(machine_config &config);
|
||||
void coh3002t(machine_config &config);
|
||||
void coh3002t_t1_mp(machine_config &config);
|
||||
@ -382,9 +368,6 @@ public:
|
||||
void coh3002t_t1(machine_config &config);
|
||||
|
||||
private:
|
||||
template<int Chip> DECLARE_WRITE_LINE_MEMBER(cat702_dataout) { m_cat702_dataout[Chip] = state; update_sio0_rxd(); }
|
||||
DECLARE_WRITE_LINE_MEMBER(znmcu_dataout) { m_znmcu_dataout = state; update_sio0_rxd(); }
|
||||
void update_sio0_rxd() { m_sio0->write_rxd(m_cat702_dataout[0] && m_cat702_dataout[1] && m_znmcu_dataout); }
|
||||
DECLARE_READ8_MEMBER(control_r);
|
||||
DECLARE_WRITE8_MEMBER(control_w);
|
||||
DECLARE_WRITE16_MEMBER(control2_w);
|
||||
@ -393,25 +376,18 @@ private:
|
||||
DECLARE_READ16_MEMBER(gn_1fb70000_r);
|
||||
DECLARE_WRITE16_MEMBER(gn_1fb70000_w);
|
||||
DECLARE_READ16_MEMBER(hack1_r);
|
||||
DECLARE_READ8_MEMBER(znsecsel_r);
|
||||
DECLARE_WRITE8_MEMBER(znsecsel_w);
|
||||
DECLARE_READ8_MEMBER(boardconfig_r);
|
||||
DECLARE_WRITE8_MEMBER(coin_w);
|
||||
DECLARE_READ8_MEMBER(coin_r);
|
||||
DECLARE_READ8_MEMBER(gnet_mahjong_panel_r);
|
||||
DECLARE_READ32_MEMBER(zsg2_ext_r);
|
||||
|
||||
void flashbank_map(address_map &map);
|
||||
void taitogn_map(address_map &map);
|
||||
void taitogn_mp_map(address_map &map);
|
||||
void main_map(address_map &map);
|
||||
void main_mp_map(address_map &map);
|
||||
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
|
||||
required_device<psxsio0_device> m_sio0;
|
||||
required_device_array<cat702_device, 2> m_cat702;
|
||||
required_device<znmcu_device> m_znmcu;
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<cpu_device> m_mn10200;
|
||||
required_device<pccard_slot_device> m_pccard;
|
||||
required_device<address_map_bank_device> m_flashbank;
|
||||
@ -427,15 +403,9 @@ private:
|
||||
uint8_t m_control3;
|
||||
int m_v;
|
||||
|
||||
uint8_t m_n_znsecsel;
|
||||
|
||||
uint8_t m_coin_info;
|
||||
|
||||
int m_cat702_dataout[2];
|
||||
int m_znmcu_dataout;
|
||||
};
|
||||
|
||||
|
||||
// Misc. controls
|
||||
|
||||
READ8_MEMBER(taitogn_state::control_r)
|
||||
@ -513,7 +483,8 @@ READ16_MEMBER(taitogn_state::hack1_r)
|
||||
switch (offset)
|
||||
{
|
||||
case 0:
|
||||
m_v = m_v ^ 8;
|
||||
if (!machine().side_effects_disabled())
|
||||
m_v = m_v ^ 8;
|
||||
// Probably something to do with MCU
|
||||
return m_v;
|
||||
|
||||
@ -526,30 +497,6 @@ READ16_MEMBER(taitogn_state::hack1_r)
|
||||
|
||||
|
||||
|
||||
// Lifted from zn.c
|
||||
|
||||
READ8_MEMBER(taitogn_state::znsecsel_r)
|
||||
{
|
||||
return m_n_znsecsel;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(taitogn_state::znsecsel_w)
|
||||
{
|
||||
m_cat702[0]->write_select(BIT(data, 2));
|
||||
m_cat702[1]->write_select(BIT(data, 3));
|
||||
m_znmcu->write_select((data & 0x8c) != 0x8c);
|
||||
// BIT(data,4); // read analogue controls?
|
||||
|
||||
m_n_znsecsel = data;
|
||||
}
|
||||
|
||||
READ8_MEMBER(taitogn_state::boardconfig_r)
|
||||
{
|
||||
// see zn.c
|
||||
return 64|32|8;
|
||||
}
|
||||
|
||||
|
||||
WRITE8_MEMBER(taitogn_state::coin_w)
|
||||
{
|
||||
/* 0x01=counter
|
||||
@ -605,14 +552,12 @@ READ32_MEMBER(taitogn_state::zsg2_ext_r)
|
||||
|
||||
void taitogn_state::machine_start()
|
||||
{
|
||||
zn_state::machine_start();
|
||||
save_item(NAME(m_control));
|
||||
save_item(NAME(m_control2));
|
||||
save_item(NAME(m_control3));
|
||||
save_item(NAME(m_v));
|
||||
save_item(NAME(m_n_znsecsel));
|
||||
save_item(NAME(m_coin_info));
|
||||
save_item(NAME(m_cat702_dataout));
|
||||
save_item(NAME(m_znmcu_dataout));
|
||||
}
|
||||
|
||||
void taitogn_state::machine_reset()
|
||||
@ -629,22 +574,15 @@ void taitogn_state::init_coh3002t_nz()
|
||||
m_has_zoom = false;
|
||||
}
|
||||
|
||||
void taitogn_state::taitogn_map(address_map &map)
|
||||
void taitogn_state::main_map(address_map &map)
|
||||
{
|
||||
zn_base_map(map);
|
||||
|
||||
map(0x1f000000, 0x1f7fffff).m(m_flashbank, FUNC(address_map_bank_device::amap16));
|
||||
map(0x1fa00000, 0x1fa00003).portr("P1");
|
||||
map(0x1fa00100, 0x1fa00103).portr("P2");
|
||||
map(0x1fa00200, 0x1fa00203).portr("SERVICE");
|
||||
map(0x1fa00300, 0x1fa00303).portr("SYSTEM");
|
||||
map(0x1fa10000, 0x1fa10003).portr("P3");
|
||||
map(0x1fa10100, 0x1fa10103).portr("P4");
|
||||
map(0x1fa10200, 0x1fa10200).r(FUNC(taitogn_state::boardconfig_r));
|
||||
map(0x1fa10300, 0x1fa10300).rw(FUNC(taitogn_state::znsecsel_r), FUNC(taitogn_state::znsecsel_w));
|
||||
map(0x1fa20000, 0x1fa20000).rw(FUNC(taitogn_state::coin_r), FUNC(taitogn_state::coin_w));
|
||||
map(0x1fa30000, 0x1fa30000).rw(FUNC(taitogn_state::control3_r), FUNC(taitogn_state::control3_w));
|
||||
map(0x1fa51c00, 0x1fa51dff).nopr(); // systematic read at spu_address + 250000, result dropped, maybe other accesses
|
||||
map(0x1fa60000, 0x1fa60003).r(FUNC(taitogn_state::hack1_r));
|
||||
map(0x1faf0000, 0x1faf07ff).rw("at28c16", FUNC(at28c16_device::read), FUNC(at28c16_device::write)); /* eeprom */
|
||||
map(0x1fb00000, 0x1fb0ffff).rw("rf5c296", FUNC(rf5c296_device::io_r), FUNC(rf5c296_device::io_w));
|
||||
map(0x1fb40000, 0x1fb40000).rw(FUNC(taitogn_state::control_r), FUNC(taitogn_state::control_w));
|
||||
map(0x1fb60000, 0x1fb60001).w(FUNC(taitogn_state::control2_w));
|
||||
@ -674,9 +612,9 @@ void taitogn_state::flashbank_map(address_map &map)
|
||||
map(0x10200000, 0x103fffff).rw("biosflash", FUNC(intelfsh16_device::read), FUNC(intelfsh16_device::write));
|
||||
}
|
||||
|
||||
void taitogn_state::taitogn_mp_map(address_map &map)
|
||||
void taitogn_state::main_mp_map(address_map &map)
|
||||
{
|
||||
taitogn_map(map);
|
||||
main_map(map);
|
||||
map(0x1fa10100, 0x1fa10100).r(FUNC(taitogn_state::gnet_mahjong_panel_r));
|
||||
}
|
||||
|
||||
@ -690,33 +628,12 @@ void slot_ataflash(device_slot_interface &device)
|
||||
|
||||
void taitogn_state::coh3002t(machine_config &config)
|
||||
{
|
||||
zn2(config);
|
||||
gameboard_cat702(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
CXD8661R(config, m_maincpu, XTAL(100'000'000));
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &taitogn_state::taitogn_map);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &taitogn_state::main_map);
|
||||
|
||||
m_maincpu->subdevice<ram_device>("ram")->set_default_size("4M");
|
||||
|
||||
auto &sio0(*m_maincpu->subdevice<psxsio0_device>("sio0"));
|
||||
sio0.sck_handler().set(m_cat702[0], FUNC(cat702_device::write_clock));
|
||||
sio0.sck_handler().append(m_cat702[1], FUNC(cat702_device::write_clock));
|
||||
sio0.sck_handler().append(m_znmcu, FUNC(znmcu_device::write_clock));
|
||||
sio0.txd_handler().set(m_cat702[0], FUNC(cat702_device::write_datain));
|
||||
sio0.txd_handler().append(m_cat702[1], FUNC(cat702_device::write_datain));
|
||||
|
||||
CAT702(config, m_cat702[0], 0);
|
||||
m_cat702[0]->dataout_handler().set(FUNC(taitogn_state::cat702_dataout<0>));
|
||||
|
||||
CAT702(config, m_cat702[1], 0);
|
||||
m_cat702[1]->dataout_handler().set(FUNC(taitogn_state::cat702_dataout<1>));
|
||||
|
||||
ZNMCU(config, m_znmcu, 0);
|
||||
m_znmcu->dataout_handler().set(FUNC(taitogn_state::znmcu_dataout));
|
||||
m_znmcu->dsr_handler().set("maincpu:sio0", FUNC(psxsio0_device::write_dsr));
|
||||
m_znmcu->dsw_handler().set_ioport("DSW");
|
||||
m_znmcu->analog1_handler().set_ioport("ANALOG1");
|
||||
m_znmcu->analog2_handler().set_ioport("ANALOG2");
|
||||
|
||||
AT28C16(config, "at28c16", 0);
|
||||
RF5C296(config, "rf5c296", 0).set_pccard("pccard");
|
||||
|
||||
PCCARD_SLOT(config, m_pccard, slot_ataflash, nullptr);
|
||||
@ -731,21 +648,9 @@ void taitogn_state::coh3002t(machine_config &config)
|
||||
|
||||
ADDRESS_MAP_BANK(config, "flashbank").set_map(&taitogn_state::flashbank_map).set_options(ENDIANNESS_LITTLE, 16, 32, 0x8000000);
|
||||
|
||||
// 5MHz NEC uPD78081 MCU:
|
||||
// we don't have a 78K0 emulation core yet..
|
||||
|
||||
/* video hardware */
|
||||
CXD8654Q(config, "gpu", XTAL(53'693'175), 0x200000, subdevice<psxcpu_device>("maincpu")).set_screen("screen");
|
||||
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "lspeaker").front_left();
|
||||
SPEAKER(config, "rspeaker").front_right();
|
||||
|
||||
spu_device &spu(SPU(config, "spu", XTAL(67'737'600)/2, subdevice<psxcpu_device>("maincpu")));
|
||||
spu.add_route(0, "lspeaker", 0.3);
|
||||
spu.add_route(1, "rspeaker", 0.3);
|
||||
subdevice<spu_device>("spu")->reset_routes();
|
||||
subdevice<spu_device>("spu")->add_route(0, "lspeaker", 0.3);
|
||||
subdevice<spu_device>("spu")->add_route(1, "rspeaker", 0.3);
|
||||
|
||||
TAITO_ZOOM(config, m_zoom);
|
||||
m_zoom->set_use_flash();
|
||||
@ -772,7 +677,7 @@ void taitogn_state::coh3002t_t1_mp(machine_config &config)
|
||||
coh3002t_t1(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &taitogn_state::taitogn_mp_map);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &taitogn_state::main_mp_map);
|
||||
}
|
||||
|
||||
void taitogn_state::coh3002t_t2_mp(machine_config &config)
|
||||
@ -780,7 +685,7 @@ void taitogn_state::coh3002t_t2_mp(machine_config &config)
|
||||
coh3002t_t2(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &taitogn_state::taitogn_mp_map);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &taitogn_state::main_mp_map);
|
||||
}
|
||||
|
||||
void taitogn_state::coh3002t_cf(machine_config &config)
|
||||
|
@ -13,8 +13,6 @@
|
||||
#include "emu.h"
|
||||
#include "includes/zn.h"
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
#define VERBOSE_LEVEL ( 0 )
|
||||
|
||||
inline void ATTR_PRINTF(3,4) zn_state::verboselog( int n_level, const char *s_fmt, ... )
|
||||
@ -144,19 +142,24 @@ void zn_state::zn_base_map(address_map &map)
|
||||
map(0x1fa10100, 0x1fa10103).portr("P4");
|
||||
map(0x1fa10200, 0x1fa10200).r(FUNC(zn_state::boardconfig_r));
|
||||
map(0x1fa10300, 0x1fa10300).rw(FUNC(zn_state::znsecsel_r), FUNC(zn_state::znsecsel_w));
|
||||
map(0x1fa20000, 0x1fa20000).w(FUNC(zn_state::coin_w));
|
||||
map(0x1fa30000, 0x1fa30003).noprw(); /* ?? */
|
||||
map(0x1fa40000, 0x1fa40003).nopr(); /* ?? */
|
||||
map(0x1fa60000, 0x1fa60003).nopr(); /* ?? */
|
||||
map(0x1faf0000, 0x1faf07ff).rw("at28c16", FUNC(at28c16_device::read), FUNC(at28c16_device::write)); /* EEPROM */
|
||||
map(0x1fb20000, 0x1fb20007).r(FUNC(zn_state::unknown_r));
|
||||
}
|
||||
|
||||
void zn_state::zn_rom_base_map(address_map &map)
|
||||
{
|
||||
zn_base_map(map);
|
||||
map(0x1fa20000, 0x1fa20000).w(FUNC(zn_state::coin_w));
|
||||
map(0x1fa30000, 0x1fa30003).noprw(); /* ?? */
|
||||
map(0x1fa60000, 0x1fa60003).nopr(); /* ?? */
|
||||
}
|
||||
|
||||
void zn_state::zn_1mb_vram(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
CXD8530CQ(config, m_maincpu, XTAL(67'737'600));
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &zn_state::zn_base_map);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &zn_state::zn_rom_base_map);
|
||||
|
||||
m_maincpu->subdevice<ram_device>("ram")->set_default_size("4M");
|
||||
|
||||
@ -197,11 +200,12 @@ void zn_state::zn_2mb_vram(machine_config &config)
|
||||
CXD8561Q(config.replace(), "gpu", XTAL(53'693'175), 0x200000, subdevice<psxcpu_device>("maincpu")).set_screen("screen");
|
||||
}
|
||||
|
||||
void zn2_state::zn2(machine_config &config)
|
||||
// used in Capcom ZN2, Taito GNET
|
||||
void zn_state::zn2(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
CXD8661R(config, m_maincpu, XTAL(100'000'000));
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &zn2_state::zn_base_map);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &zn_state::zn_rom_base_map);
|
||||
m_maincpu->subdevice<ram_device>("ram")->set_default_size("4M");
|
||||
|
||||
auto &sio0(*m_maincpu->subdevice<psxsio0_device>("sio0"));
|
||||
@ -210,10 +214,10 @@ void zn2_state::zn2(machine_config &config)
|
||||
sio0.txd_handler().set(m_cat702[0], FUNC(cat702_device::write_datain));
|
||||
|
||||
CAT702(config, m_cat702[0], 0);
|
||||
m_cat702[0]->dataout_handler().set(FUNC(zn2_state::cat702_dataout<0>));
|
||||
m_cat702[0]->dataout_handler().set(FUNC(zn_state::cat702_dataout<0>));
|
||||
|
||||
ZNMCU(config, m_znmcu, 0);
|
||||
m_znmcu->dataout_handler().set(FUNC(zn2_state::znmcu_dataout));
|
||||
m_znmcu->dataout_handler().set(FUNC(zn_state::znmcu_dataout));
|
||||
m_znmcu->dsr_handler().set("maincpu:sio0", FUNC(psxsio0_device::write_dsr));
|
||||
m_znmcu->dsw_handler().set_ioport("DSW");
|
||||
m_znmcu->analog1_handler().set_ioport("ANALOG1");
|
||||
@ -383,7 +387,7 @@ INTERRUPT_GEN_MEMBER(capcom_zn_state::qsound_interrupt)
|
||||
|
||||
void capcom_zn_state::main_map(address_map &map)
|
||||
{
|
||||
zn_base_map(map);
|
||||
zn_rom_base_map(map);
|
||||
|
||||
map(0x1f000000, 0x1f3fffff).rom().region("bankedroms", 0);
|
||||
map(0x1f400000, 0x1f7fffff).bankr("rombank");
|
||||
@ -843,7 +847,7 @@ WRITE8_MEMBER(taito_fx1a_state::sound_bankswitch_w)
|
||||
|
||||
void taito_fx1a_state::main_map(address_map &map)
|
||||
{
|
||||
zn_base_map(map);
|
||||
zn_rom_base_map(map);
|
||||
|
||||
map(0x1f000000, 0x1f7fffff).bankr("rombank");
|
||||
map(0x1fb40000, 0x1fb40000).w(FUNC(taito_fx1a_state::bank_w));
|
||||
@ -927,7 +931,7 @@ READ8_MEMBER(taito_fx1b_state::fram_r)
|
||||
|
||||
void taito_fx1b_state::main_map(address_map &map)
|
||||
{
|
||||
zn_base_map(map);
|
||||
zn_rom_base_map(map);
|
||||
map(0x1f000000, 0x1f7fffff).bankr("rombank");
|
||||
map(0x1fb00000, 0x1fb003ff).rw(FUNC(taito_fx1b_state::fram_r), FUNC(taito_fx1b_state::fram_w)).umask32(0x00ff00ff);
|
||||
map(0x1fb40000, 0x1fb40000).w(FUNC(taito_fx1b_state::bank_w));
|
||||
@ -1200,7 +1204,7 @@ void primrag2_state::machine_start()
|
||||
|
||||
void primrag2_state::main_map(address_map &map)
|
||||
{
|
||||
zn_base_map(map);
|
||||
zn_rom_base_map(map);
|
||||
map(0x1f000000, 0x1f1fffff).rom().region("roms", 0);
|
||||
map(0x1f000000, 0x1f000003).w("watchdog", FUNC(watchdog_timer_device::reset16_w)).umask16(0xffff); // ds1232s
|
||||
map(0x1f7e8000, 0x1f7e8003).noprw();
|
||||
@ -1385,7 +1389,7 @@ WRITE8_MEMBER(raizing_zn_state::sound_irq_w)
|
||||
|
||||
void raizing_zn_state::main_map(address_map &map)
|
||||
{
|
||||
zn_base_map(map);
|
||||
zn_rom_base_map(map);
|
||||
|
||||
map(0x1f000000, 0x1f7fffff).bankr("rombank");
|
||||
map(0x1fa10300, 0x1fa10300).w(FUNC(raizing_zn_state::bank_w));
|
||||
@ -1572,7 +1576,7 @@ READ16_MEMBER(bam2_state::unk_r)
|
||||
|
||||
void bam2_state::main_map(address_map &map)
|
||||
{
|
||||
zn_base_map(map);
|
||||
zn_rom_base_map(map);
|
||||
|
||||
map(0x1f000000, 0x1f3fffff).rom().region("bankedroms", 0);
|
||||
map(0x1f400000, 0x1f7fffff).bankr("rombank");
|
||||
@ -1879,7 +1883,7 @@ WRITE8_MEMBER(nbajamex_state::backup_w)
|
||||
|
||||
void acclaim_zn_state::coh1000a_map(address_map &map)
|
||||
{
|
||||
zn_base_map(map);
|
||||
zn_rom_base_map(map);
|
||||
map(0x1fbfff00, 0x1fbfff03).w(FUNC(acclaim_zn_state::acpsx_00_w));
|
||||
map(0x1fbfff12, 0x1fbfff13).w(FUNC(acclaim_zn_state::acpsx_10_w));
|
||||
}
|
||||
@ -2106,7 +2110,7 @@ WRITE8_MEMBER(atlus_zn_state::bank_w)
|
||||
|
||||
void atlus_zn_state::main_map(address_map &map)
|
||||
{
|
||||
zn_base_map(map);
|
||||
zn_rom_base_map(map);
|
||||
|
||||
map(0x1f000000, 0x1f7fffff).bankr("rombank");
|
||||
map(0x1fb00000, 0x1fb00001).w(m_soundlatch16, FUNC(generic_latch_16_device::write));
|
||||
@ -2171,7 +2175,7 @@ WRITE8_MEMBER(visco_zn_state::bank_w)
|
||||
|
||||
void visco_zn_state::main_map(address_map &map)
|
||||
{
|
||||
zn_base_map(map);
|
||||
zn_rom_base_map(map);
|
||||
map(0x1f000000, 0x1f27ffff).rom().region("fixedroms", 0);
|
||||
map(0x1fb00000, 0x1fbfffff).bankr("rombank");
|
||||
map(0x1fb00000, 0x1fb00000).w(FUNC(visco_zn_state::bank_w));
|
||||
@ -2362,7 +2366,7 @@ WRITE8_MEMBER(tecmo_zn_state::bank_w)
|
||||
|
||||
void tecmo_zn_state::base_map(address_map &map)
|
||||
{
|
||||
zn_base_map(map);
|
||||
zn_rom_base_map(map);
|
||||
map(0x1f000000, 0x1f7fffff).bankr("rombank");
|
||||
map(0x1fb00006, 0x1fb00006).w(FUNC(tecmo_zn_state::bank_w));
|
||||
}
|
||||
|
@ -38,6 +38,8 @@
|
||||
#include "screen.h"
|
||||
#include "speaker.h"
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
class zn_state : public driver_device
|
||||
{
|
||||
public:
|
||||
@ -57,6 +59,7 @@ public:
|
||||
|
||||
void zn_1mb_vram(machine_config &config);
|
||||
void zn_2mb_vram(machine_config &config);
|
||||
void zn2(machine_config &config);
|
||||
void gameboard_cat702(machine_config &config);
|
||||
|
||||
protected:
|
||||
@ -70,6 +73,7 @@ protected:
|
||||
DECLARE_WRITE8_MEMBER(coin_w);
|
||||
|
||||
void zn_base_map(address_map &map);
|
||||
void zn_rom_base_map(address_map &map);
|
||||
|
||||
virtual void machine_start() override;
|
||||
|
||||
@ -162,7 +166,6 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
void zn2(machine_config &config);
|
||||
void coh3002c(machine_config &config);
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user