mirror of
https://github.com/holub/mame
synced 2025-07-06 10:29:38 +03:00
-bus/psx/ctlrport, multitap, parallel: Removed MCFG and MACHINE_CONFIG macros. [Ryan Holtz]
-cpu/psx, sound/spu, sound/zsg2, video/psx: Removed MCFG macros. [Ryan Holtz] -drivers/konamigq, konamigv, ksys573, namcos10, namcos11, namcos12, psx, taitogn, twinkle, zn: Removed MACHINE_CONFIG macros. [Ryan Holtz]
This commit is contained in:
parent
f25021c47f
commit
b0b843c089
@ -8,10 +8,6 @@
|
||||
|
||||
#include "memcard.h"
|
||||
|
||||
#define MCFG_PSX_CTRL_PORT_ADD(_tag, _slot_intf, _def_slot) \
|
||||
MCFG_DEVICE_ADD(_tag, PSX_CONTROLLER_PORT, 0) \
|
||||
MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false)
|
||||
|
||||
void psx_controllers(device_slot_interface &device);
|
||||
|
||||
DECLARE_DEVICE_TYPE(PSXCONTROLLERPORTS, psxcontrollerports_device)
|
||||
@ -94,8 +90,8 @@ public:
|
||||
|
||||
void ack();
|
||||
|
||||
template <class Object> devcb_base &set_dsr_handler(Object &&cb) { return m_dsr_handler.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_rxd_handler(Object &&cb) { return m_rxd_handler.set_callback(std::forward<Object>(cb)); }
|
||||
auto dsr() { return m_dsr_handler.bind(); }
|
||||
auto rxd() { return m_rxd_handler.bind(); }
|
||||
|
||||
DECLARE_WRITE_LINE_MEMBER(write_sck);
|
||||
DECLARE_WRITE_LINE_MEMBER(write_dtr);
|
||||
@ -116,6 +112,15 @@ class psx_controller_port_device : public device_t,
|
||||
public device_slot_interface
|
||||
{
|
||||
public:
|
||||
template <typename T>
|
||||
psx_controller_port_device(machine_config const &mconfig, char const *tag, device_t *owner, T &&opts, char const *dflt)
|
||||
: psx_controller_port_device(mconfig, tag, owner, (uint32_t)0)
|
||||
{
|
||||
option_reset();
|
||||
opts(*this);
|
||||
set_default_option(dflt);
|
||||
set_fixed(false);
|
||||
}
|
||||
psx_controller_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
typedef delegate<void ()> void_cb;
|
||||
|
@ -21,12 +21,13 @@ psx_multitap_device::psx_multitap_device(const machine_config& mconfig, const ch
|
||||
{
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(psx_multitap_device::device_add_mconfig)
|
||||
MCFG_PSX_CTRL_PORT_ADD("a", psx_controllers_nomulti, "digital_pad")
|
||||
MCFG_PSX_CTRL_PORT_ADD("b", psx_controllers_nomulti, nullptr)
|
||||
MCFG_PSX_CTRL_PORT_ADD("c", psx_controllers_nomulti, nullptr)
|
||||
MCFG_PSX_CTRL_PORT_ADD("d", psx_controllers_nomulti, nullptr)
|
||||
MACHINE_CONFIG_END
|
||||
void psx_multitap_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
PSX_CONTROLLER_PORT(config, "a", psx_controllers_nomulti, "digital_pad");
|
||||
PSX_CONTROLLER_PORT(config, "b", psx_controllers_nomulti, nullptr);
|
||||
PSX_CONTROLLER_PORT(config, "c", psx_controllers_nomulti, nullptr);
|
||||
PSX_CONTROLLER_PORT(config, "d", psx_controllers_nomulti, nullptr);
|
||||
}
|
||||
|
||||
void psx_multitap_device::device_start()
|
||||
{
|
||||
|
@ -6,14 +6,6 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
//**************************************************************************
|
||||
// INTERFACE CONFIGURATION MACROS
|
||||
//**************************************************************************
|
||||
|
||||
#define MCFG_PSX_PARALLEL_SLOT_ADD(_tag, _slot_intf, _def_slot) \
|
||||
MCFG_DEVICE_ADD(_tag, PSX_PARALLEL_SLOT, 0) \
|
||||
MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false)
|
||||
|
||||
//**************************************************************************
|
||||
// TYPE DEFINITIONS
|
||||
//**************************************************************************
|
||||
@ -26,6 +18,15 @@ class psx_parallel_slot_device : public device_t, public device_slot_interface
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
template <typename T>
|
||||
psx_parallel_slot_device(machine_config const &mconfig, char const *tag, device_t *owner, T &&opts, char const *dflt)
|
||||
: psx_parallel_slot_device(mconfig, tag, owner, (uint32_t)0)
|
||||
{
|
||||
option_reset();
|
||||
opts(*this);
|
||||
set_default_option(dflt);
|
||||
set_fixed(false);
|
||||
}
|
||||
psx_parallel_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
virtual ~psx_parallel_slot_device();
|
||||
|
||||
|
@ -110,33 +110,6 @@ enum
|
||||
};
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// INTERFACE CONFIGURATION MACROS
|
||||
//**************************************************************************
|
||||
|
||||
#define MCFG_PSX_DMA_CHANNEL_READ( cputag, channel, handler ) \
|
||||
psxcpu_device::getcpu( *this, cputag )->subdevice<psxdma_device>("dma")->install_read_handler( channel, handler );
|
||||
|
||||
#define MCFG_PSX_DMA_CHANNEL_WRITE( cputag, channel, handler ) \
|
||||
psxcpu_device::getcpu( *this, cputag )->subdevice<psxdma_device>("dma")->install_write_handler( channel, handler );
|
||||
|
||||
#define MCFG_PSX_GPU_READ_HANDLER(_devcb) \
|
||||
downcast<psxcpu_device &>(*device).set_gpu_read_handler(DEVCB_##_devcb);
|
||||
#define MCFG_PSX_GPU_WRITE_HANDLER(_devcb) \
|
||||
downcast<psxcpu_device &>(*device).set_gpu_write_handler(DEVCB_##_devcb);
|
||||
|
||||
#define MCFG_PSX_SPU_READ_HANDLER(_devcb) \
|
||||
downcast<psxcpu_device &>(*device).set_spu_read_handler(DEVCB_##_devcb);
|
||||
#define MCFG_PSX_SPU_WRITE_HANDLER(_devcb) \
|
||||
downcast<psxcpu_device &>(*device).set_spu_write_handler(DEVCB_##_devcb);
|
||||
|
||||
#define MCFG_PSX_CD_READ_HANDLER(_devcb) \
|
||||
downcast<psxcpu_device &>(*device).set_cd_read_handler(DEVCB_##_devcb);
|
||||
#define MCFG_PSX_CD_WRITE_HANDLER(_devcb) \
|
||||
downcast<psxcpu_device &>(*device).set_cd_write_handler(DEVCB_##_devcb);
|
||||
#define MCFG_PSX_DISABLE_ROM_BERR \
|
||||
downcast<psxcpu_device *>(device)->set_disable_rom_berr(true);
|
||||
|
||||
//**************************************************************************
|
||||
// TYPE DEFINITIONS
|
||||
//**************************************************************************
|
||||
@ -147,12 +120,12 @@ class psxcpu_device : public cpu_device, psxcpu_disassembler::config
|
||||
{
|
||||
public:
|
||||
// configuration helpers
|
||||
template <class Object> devcb_base &set_gpu_read_handler(Object &&cb) { return m_gpu_read_handler.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_gpu_write_handler(Object &&cb) { return m_gpu_write_handler.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_spu_read_handler(Object &&cb) { return m_spu_read_handler.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_spu_write_handler(Object &&cb) { return m_spu_write_handler.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_cd_read_handler(Object &&cb) { return m_cd_read_handler.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_cd_write_handler(Object &&cb) { return m_cd_write_handler.set_callback(std::forward<Object>(cb)); }
|
||||
auto gpu_read() { return m_gpu_read_handler.bind(); }
|
||||
auto gpu_write() { return m_gpu_write_handler.bind(); }
|
||||
auto spu_read() { return m_spu_read_handler.bind(); }
|
||||
auto spu_write() { return m_spu_write_handler.bind(); }
|
||||
auto cd_read() { return m_cd_read_handler.bind(); }
|
||||
auto cd_write() { return m_cd_write_handler.bind(); }
|
||||
|
||||
// public interfaces
|
||||
DECLARE_WRITE32_MEMBER( berr_w );
|
||||
|
@ -22,6 +22,15 @@ DECLARE_DEVICE_TYPE(PCCARD_SLOT, pccard_slot_device)
|
||||
class pccard_slot_device : public device_t, public device_slot_interface
|
||||
{
|
||||
public:
|
||||
template <typename T>
|
||||
pccard_slot_device(machine_config const &mconfig, char const *tag, device_t *owner, T &&opts, char const *dflt)
|
||||
: pccard_slot_device(mconfig, tag, owner, (uint32_t)0)
|
||||
{
|
||||
option_reset();
|
||||
opts(*this);
|
||||
set_default_option(dflt);
|
||||
set_fixed(false);
|
||||
}
|
||||
pccard_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
DECLARE_READ_LINE_MEMBER(read_line_inserted);
|
||||
|
@ -11,6 +11,7 @@
|
||||
#include "emu.h"
|
||||
#include "spu.h"
|
||||
#include "spureverb.h"
|
||||
#include "cpu/psx/psx.h"
|
||||
|
||||
//
|
||||
//
|
||||
@ -934,6 +935,16 @@ static int shift_register15(int &shift)
|
||||
// spu_device - constructor
|
||||
//-------------------------------------------------
|
||||
|
||||
spu_device::spu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, psxcpu_device *cpu)
|
||||
: spu_device(mconfig, tag, owner, clock)
|
||||
{
|
||||
cpu->spu_read().set(tag, FUNC(spu_device::read));
|
||||
cpu->spu_write().set(tag, FUNC(spu_device::write));
|
||||
cpu->subdevice<psxdma_device>("dma")->install_read_handler(4, psxdma_device::read_delegate(&spu_device::dma_read, this));
|
||||
cpu->subdevice<psxdma_device>("dma")->install_write_handler(4, psxdma_device::write_delegate(&spu_device::dma_write, this));
|
||||
irq_handler().set(*cpu->subdevice<psxirq_device>("irq"), FUNC(psxirq_device::intin9));
|
||||
}
|
||||
|
||||
spu_device::spu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
||||
device_t(mconfig, SPU, tag, owner, clock),
|
||||
device_sound_interface(mconfig, *this),
|
||||
|
@ -5,25 +5,10 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
//**************************************************************************
|
||||
// INTERFACE CONFIGURATION MACROS
|
||||
//**************************************************************************
|
||||
|
||||
#define MCFG_SPU_IRQ_HANDLER(_devcb) \
|
||||
downcast<spu_device &>(*device).set_irq_handler(DEVCB_##_devcb);
|
||||
|
||||
#define MCFG_SPU_ADD(_tag, _clock) \
|
||||
MCFG_DEVICE_MODIFY( "maincpu" ) \
|
||||
MCFG_PSX_SPU_READ_HANDLER(READ16(_tag, spu_device, read)) \
|
||||
MCFG_PSX_SPU_WRITE_HANDLER(WRITE16(_tag, spu_device, write)) \
|
||||
MCFG_DEVICE_ADD(_tag, SPU, _clock) \
|
||||
MCFG_SPU_IRQ_HANDLER(WRITELINE("maincpu:irq", psxirq_device, intin9)) \
|
||||
MCFG_PSX_DMA_CHANNEL_READ( "maincpu", 4, psxdma_device::read_delegate(&spu_device::dma_read, (spu_device *) device ) ) \
|
||||
MCFG_PSX_DMA_CHANNEL_WRITE( "maincpu", 4, psxdma_device::write_delegate(&spu_device::dma_write, (spu_device *) device ) )
|
||||
|
||||
// ======================> spu_device
|
||||
|
||||
class stream_buffer;
|
||||
class psxcpu_device;
|
||||
|
||||
class spu_device : public device_t, public device_sound_interface
|
||||
{
|
||||
@ -66,38 +51,39 @@ protected:
|
||||
|
||||
unsigned char *spu_ram;
|
||||
reverb *rev;
|
||||
unsigned int taddr, sample_t;
|
||||
unsigned int taddr;
|
||||
unsigned int sample_t;
|
||||
|
||||
stream_buffer *xa_buffer, *cdda_buffer;
|
||||
unsigned int xa_cnt,cdda_cnt,
|
||||
xa_freq,cdda_freq,
|
||||
xa_channels,
|
||||
xa_spf,
|
||||
xa_out_ptr,
|
||||
cur_frame_sample,
|
||||
cur_generate_sample,
|
||||
dirty_flags;
|
||||
stream_buffer *xa_buffer;
|
||||
stream_buffer *cdda_buffer;
|
||||
unsigned int xa_cnt;
|
||||
unsigned int cdda_cnt;
|
||||
unsigned int xa_freq;
|
||||
unsigned int cdda_freq;
|
||||
unsigned int xa_channels;
|
||||
unsigned int xa_spf;
|
||||
unsigned int xa_out_ptr;
|
||||
unsigned int cur_frame_sample;
|
||||
unsigned int cur_generate_sample;
|
||||
unsigned int dirty_flags;
|
||||
|
||||
uint16_t m_cd_out_ptr;
|
||||
|
||||
signed short xa_last[4];
|
||||
bool status_enabled,
|
||||
xa_playing,
|
||||
cdda_playing;
|
||||
int xa_voll,xa_volr,
|
||||
changed_xa_vol;
|
||||
bool status_enabled, xa_playing, cdda_playing;
|
||||
int xa_voll, xa_volr, changed_xa_vol;
|
||||
voiceinfo *voice;
|
||||
sample_cache **cache;
|
||||
float samples_per_frame,
|
||||
samples_per_cycle;
|
||||
float samples_per_frame;
|
||||
float samples_per_cycle;
|
||||
|
||||
static float freq_multiplier;
|
||||
|
||||
unsigned char *output_buf[4];
|
||||
unsigned int output_head,
|
||||
output_tail,
|
||||
output_size,
|
||||
cur_qsz;
|
||||
unsigned int output_head;
|
||||
unsigned int output_tail;
|
||||
unsigned int output_size;
|
||||
unsigned int cur_qsz;
|
||||
|
||||
unsigned int noise_t;
|
||||
signed short noise_cur;
|
||||
@ -107,14 +93,14 @@ protected:
|
||||
|
||||
struct voicereg
|
||||
{
|
||||
unsigned short vol_l, // 0
|
||||
vol_r, // 2
|
||||
pitch, // 4
|
||||
addr, // 6
|
||||
adsl, // 8
|
||||
srrr, // a
|
||||
curvol, // c
|
||||
repaddr; // e
|
||||
unsigned short vol_l; // 0
|
||||
unsigned short vol_r; // 2
|
||||
unsigned short pitch; // 4
|
||||
unsigned short addr; // 6
|
||||
unsigned short adsl; // 8
|
||||
unsigned short srrr; // a
|
||||
unsigned short curvol; // c
|
||||
unsigned short repaddr; // e
|
||||
};
|
||||
|
||||
union
|
||||
@ -123,23 +109,27 @@ protected:
|
||||
struct
|
||||
{
|
||||
voicereg voice[24];
|
||||
unsigned short mvol_l,mvol_r,
|
||||
rvol_l,rvol_r;
|
||||
unsigned int keyon,
|
||||
keyoff,
|
||||
fm,
|
||||
noise,
|
||||
reverb,
|
||||
chon;
|
||||
unsigned short _unknown,
|
||||
reverb_addr,
|
||||
irq_addr,
|
||||
trans_addr,
|
||||
data,
|
||||
ctrl;
|
||||
unsigned short mvol_l;
|
||||
unsigned short mvol_r;
|
||||
unsigned short rvol_l;
|
||||
unsigned short rvol_r;
|
||||
unsigned int keyon;
|
||||
unsigned int keyoff;
|
||||
unsigned int fm;
|
||||
unsigned int noise;
|
||||
unsigned int reverb;
|
||||
unsigned int chon;
|
||||
unsigned short _unknown;
|
||||
unsigned short reverb_addr;
|
||||
unsigned short irq_addr;
|
||||
unsigned short trans_addr;
|
||||
unsigned short data;
|
||||
unsigned short ctrl;
|
||||
unsigned int status;
|
||||
signed short cdvol_l,cdvol_r,
|
||||
exvol_l,exvol_r;
|
||||
signed short cdvol_l;
|
||||
signed short cdvol_r;
|
||||
signed short exvol_l;
|
||||
signed short exvol_r;
|
||||
} spureg;
|
||||
};
|
||||
|
||||
@ -160,18 +150,9 @@ protected:
|
||||
bool update_envelope(const int v);
|
||||
void write_data(const unsigned short data);
|
||||
void generate(void *ptr, const unsigned int sz);
|
||||
void generate_voice(const unsigned int v,
|
||||
void *ptr,
|
||||
void *noiseptr,
|
||||
void *outxptr,
|
||||
const unsigned int sz);
|
||||
void generate_voice(const unsigned int v, void *ptr, void *noiseptr, void *outxptr, const unsigned int sz);
|
||||
void generate_noise(void *ptr, const unsigned int num);
|
||||
bool process_voice(const unsigned int v,
|
||||
const unsigned int sz,
|
||||
void *ptr,
|
||||
void *fmnoise_ptr,
|
||||
void *outxptr,
|
||||
unsigned int *tleft);
|
||||
bool process_voice(const unsigned int v, const unsigned int sz, void *ptr, void *fmnoise_ptr, void *outxptr, unsigned int *tleft);
|
||||
void process_until(const unsigned int tsample);
|
||||
void update_voice_loop(const unsigned int v);
|
||||
bool update_voice_state(const unsigned int v);
|
||||
@ -189,9 +170,7 @@ protected:
|
||||
|
||||
bool translate_sample_addr(const unsigned int addr, cache_pointer *cp);
|
||||
sample_cache *get_sample_cache(const unsigned int addr);
|
||||
void flush_cache(sample_cache *sc,
|
||||
const unsigned int istart,
|
||||
const unsigned int iend);
|
||||
void flush_cache(sample_cache *sc, const unsigned int istart, const unsigned int iend);
|
||||
void invalidate_cache(const unsigned int st, const unsigned int en);
|
||||
|
||||
void set_xa_format(const float freq, const int channels);
|
||||
@ -203,17 +182,10 @@ protected:
|
||||
|
||||
void flush_output_buffer();
|
||||
|
||||
sample_loop_cache *get_loop_cache(sample_cache *cache,
|
||||
const unsigned int lpen,
|
||||
sample_cache *lpcache,
|
||||
const unsigned int lpst);
|
||||
sample_loop_cache *get_loop_cache(sample_cache *cache, const unsigned int lpen, sample_cache *lpcache, const unsigned int lpst);
|
||||
#if 0
|
||||
void write_cache_pointer(outfile *fout,
|
||||
cache_pointer *cp,
|
||||
sample_loop_cache *lc=nullptr);
|
||||
void read_cache_pointer(infile *fin,
|
||||
cache_pointer *cp,
|
||||
sample_loop_cache **lc=nullptr);
|
||||
void write_cache_pointer(outfile *fout, cache_pointer *cp, sample_loop_cache *lc=nullptr);
|
||||
void read_cache_pointer(infile *fin, cache_pointer *cp, sample_loop_cache **lc=nullptr);
|
||||
#endif
|
||||
static float get_linear_rate(const int n);
|
||||
static float get_linear_rate_neg_phase(const int n);
|
||||
@ -228,10 +200,12 @@ protected:
|
||||
static reverb_preset *find_reverb_preset(const unsigned short *param);
|
||||
|
||||
public:
|
||||
spu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, psxcpu_device *cpu);
|
||||
spu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
// configuration helpers
|
||||
template <class Object> devcb_base &set_irq_handler(Object &&cb) { return m_irq_handler.set_callback(std::forward<Object>(cb)); }
|
||||
auto irq_handler() { return m_irq_handler.bind(); }
|
||||
|
||||
void dma_read( uint32_t *ram, uint32_t n_address, int32_t n_size );
|
||||
void dma_write( uint32_t *ram, uint32_t n_address, int32_t n_size );
|
||||
|
@ -9,15 +9,6 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// INTERFACE CONFIGURATION MACROS
|
||||
//**************************************************************************
|
||||
|
||||
#define MCFG_ZSG2_EXT_READ_HANDLER(_devcb) \
|
||||
downcast<zsg2_device &>(*device).set_ext_read_handler(DEVCB_##_devcb);
|
||||
|
||||
|
||||
// ======================> zsg2_device
|
||||
|
||||
class zsg2_device : public device_t,
|
||||
@ -27,7 +18,7 @@ public:
|
||||
zsg2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
// configuration helpers
|
||||
template <class Object> devcb_base &set_ext_read_handler(Object &&cb) { return m_ext_read_handler.set_callback(std::forward<Object>(cb)); }
|
||||
auto ext_read() { return m_ext_read_handler.bind(); }
|
||||
|
||||
DECLARE_READ16_MEMBER(read);
|
||||
DECLARE_WRITE16_MEMBER(write);
|
||||
|
@ -8,6 +8,7 @@
|
||||
*/
|
||||
|
||||
#include "emu.h"
|
||||
#include "cpu/psx/psx.h"
|
||||
#include "video/psx.h"
|
||||
|
||||
#include "screen.h"
|
||||
@ -25,6 +26,17 @@ DEFINE_DEVICE_TYPE(CXD8561BQ, cxd8561bq_device, "cxd8561bq", "CXD8561BQ GPU") //
|
||||
DEFINE_DEVICE_TYPE(CXD8561CQ, cxd8561cq_device, "cxd8561cq", "CXD8561CQ GPU") // SGRAM
|
||||
DEFINE_DEVICE_TYPE(CXD8654Q, cxd8654q_device, "cxd8654q", "CXD8654Q GPU") // SGRAM
|
||||
|
||||
psxgpu_device::psxgpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t vram_size, psxcpu_device *cpu)
|
||||
: psxgpu_device(mconfig, type, tag, owner, clock)
|
||||
{
|
||||
set_vram_size(vram_size);
|
||||
cpu->gpu_read().set(tag, FUNC(psxgpu_device::read));
|
||||
cpu->gpu_write().set(tag, FUNC(psxgpu_device::write));
|
||||
cpu->subdevice<psxdma_device>("dma")->install_read_handler(2, psxdma_device::read_delegate(&psxgpu_device::dma_read, this));
|
||||
cpu->subdevice<psxdma_device>("dma")->install_write_handler(2, psxdma_device::write_delegate(&psxgpu_device::dma_write, this));
|
||||
vblank_callback().set(*cpu->subdevice<psxirq_device>("irq"), FUNC(psxirq_device::intin0));
|
||||
}
|
||||
|
||||
psxgpu_device::psxgpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock)
|
||||
: device_t(mconfig, type, tag, owner, clock)
|
||||
, device_video_interface(mconfig, *this)
|
||||
@ -59,31 +71,61 @@ void psxgpu_device::device_reset()
|
||||
gpu_reset();
|
||||
}
|
||||
|
||||
cxd8514q_device::cxd8514q_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, uint32_t vram_size, psxcpu_device *cpu)
|
||||
: psxgpu_device(mconfig, CXD8514Q, tag, owner, clock, vram_size, cpu)
|
||||
{
|
||||
}
|
||||
|
||||
cxd8514q_device::cxd8514q_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: psxgpu_device(mconfig, CXD8514Q, tag, owner, clock)
|
||||
{
|
||||
}
|
||||
|
||||
cxd8538q_device::cxd8538q_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, uint32_t vram_size, psxcpu_device *cpu)
|
||||
: psxgpu_device(mconfig, CXD8538Q, tag, owner, clock, vram_size, cpu)
|
||||
{
|
||||
}
|
||||
|
||||
cxd8538q_device::cxd8538q_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: psxgpu_device(mconfig, CXD8538Q, tag, owner, clock)
|
||||
{
|
||||
}
|
||||
|
||||
cxd8561q_device::cxd8561q_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, uint32_t vram_size, psxcpu_device *cpu)
|
||||
: psxgpu_device(mconfig, CXD8561Q, tag, owner, clock, vram_size, cpu)
|
||||
{
|
||||
}
|
||||
|
||||
cxd8561q_device::cxd8561q_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: psxgpu_device(mconfig, CXD8561Q, tag, owner, clock)
|
||||
{
|
||||
}
|
||||
|
||||
cxd8561bq_device::cxd8561bq_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, uint32_t vram_size, psxcpu_device *cpu)
|
||||
: psxgpu_device(mconfig, CXD8561BQ, tag, owner, clock, vram_size, cpu)
|
||||
{
|
||||
}
|
||||
|
||||
cxd8561bq_device::cxd8561bq_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: psxgpu_device(mconfig, CXD8561BQ, tag, owner, clock)
|
||||
{
|
||||
}
|
||||
|
||||
cxd8561cq_device::cxd8561cq_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, uint32_t vram_size, psxcpu_device *cpu)
|
||||
: psxgpu_device(mconfig, CXD8561CQ, tag, owner, clock, vram_size, cpu)
|
||||
{
|
||||
}
|
||||
|
||||
cxd8561cq_device::cxd8561cq_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: psxgpu_device(mconfig, CXD8561CQ, tag, owner, clock)
|
||||
{
|
||||
}
|
||||
|
||||
cxd8654q_device::cxd8654q_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, uint32_t vram_size, psxcpu_device *cpu)
|
||||
: psxgpu_device(mconfig, CXD8654Q, tag, owner, clock, vram_size, cpu)
|
||||
{
|
||||
}
|
||||
|
||||
cxd8654q_device::cxd8654q_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: psxgpu_device(mconfig, CXD8654Q, tag, owner, clock)
|
||||
{
|
||||
|
@ -14,30 +14,6 @@
|
||||
|
||||
#define PSXGPU_DEBUG_VIEWER ( 0 )
|
||||
|
||||
|
||||
#define MCFG_PSX_GPU_VBLANK_HANDLER(_devcb) \
|
||||
downcast<psxgpu_device &>(*device).set_vblank_handler(DEVCB_##_devcb);
|
||||
|
||||
#define MCFG_PSXGPU_ADD( cputag, tag, type, _vramSize, clock ) \
|
||||
MCFG_DEVICE_MODIFY( cputag ) \
|
||||
MCFG_PSX_GPU_READ_HANDLER(READ32(tag, psxgpu_device, read)) \
|
||||
MCFG_PSX_GPU_WRITE_HANDLER(WRITE32(tag, psxgpu_device, write)) \
|
||||
MCFG_DEVICE_ADD( tag, type, clock ) \
|
||||
downcast<psxgpu_device &>(*device).set_vram_size(_vramSize); \
|
||||
MCFG_PSX_GPU_VBLANK_HANDLER(WRITELINE(cputag ":irq", psxirq_device, intin0)) \
|
||||
MCFG_PSX_DMA_CHANNEL_READ( cputag, 2, psxdma_device::write_delegate(&psxgpu_device::dma_read, (psxgpu_device *) device ) ) \
|
||||
MCFG_PSX_DMA_CHANNEL_WRITE( cputag, 2, psxdma_device::read_delegate(&psxgpu_device::dma_write, (psxgpu_device *) device ) )
|
||||
|
||||
#define MCFG_PSXGPU_REPLACE( cputag, tag, type, _vramSize, clock ) \
|
||||
MCFG_DEVICE_MODIFY( cputag ) \
|
||||
MCFG_PSX_GPU_READ_HANDLER(READ32(tag, psxgpu_device, read)) \
|
||||
MCFG_PSX_GPU_WRITE_HANDLER(WRITE32(tag, psxgpu_device, write)) \
|
||||
MCFG_DEVICE_REPLACE( tag, type, clock ) \
|
||||
downcast<psxgpu_device &>(*device).set_vram_size(_vramSize); \
|
||||
MCFG_PSX_GPU_VBLANK_HANDLER(WRITELINE(cputag ":irq", psxirq_device, intin0)) \
|
||||
MCFG_PSX_DMA_CHANNEL_READ( cputag, 2, psxdma_device::write_delegate(&psxgpu_device::dma_read, (psxgpu_device *) device ) ) \
|
||||
MCFG_PSX_DMA_CHANNEL_WRITE( cputag, 2, psxdma_device::read_delegate(&psxgpu_device::dma_write, (psxgpu_device *) device ) )
|
||||
|
||||
DECLARE_DEVICE_TYPE(CXD8514Q, cxd8514q_device)
|
||||
DECLARE_DEVICE_TYPE(CXD8538Q, cxd8538q_device)
|
||||
DECLARE_DEVICE_TYPE(CXD8561Q, cxd8561q_device)
|
||||
@ -45,6 +21,8 @@ DECLARE_DEVICE_TYPE(CXD8561BQ, cxd8561bq_device)
|
||||
DECLARE_DEVICE_TYPE(CXD8561CQ, cxd8561cq_device)
|
||||
DECLARE_DEVICE_TYPE(CXD8654Q, cxd8654q_device)
|
||||
|
||||
class psxcpu_device;
|
||||
|
||||
class psxgpu_device : public device_t, public device_video_interface, public device_palette_interface
|
||||
{
|
||||
public:
|
||||
@ -68,6 +46,7 @@ protected:
|
||||
static constexpr unsigned MID_SHADE = 0x80;
|
||||
|
||||
// construction/destruction
|
||||
psxgpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t vram_size, psxcpu_device *cpu_tag);
|
||||
psxgpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
virtual void device_start() override;
|
||||
@ -333,6 +312,7 @@ class cxd8514q_device : public psxgpu_device
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
cxd8514q_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, uint32_t vram_size, psxcpu_device *cpu);
|
||||
cxd8514q_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
};
|
||||
|
||||
@ -340,6 +320,7 @@ class cxd8538q_device : public psxgpu_device
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
cxd8538q_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, uint32_t vram_size, psxcpu_device *cpu);
|
||||
cxd8538q_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
};
|
||||
|
||||
@ -347,6 +328,7 @@ class cxd8561q_device : public psxgpu_device
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
cxd8561q_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, uint32_t vram_size, psxcpu_device *cpu);
|
||||
cxd8561q_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
};
|
||||
|
||||
@ -354,6 +336,7 @@ class cxd8561bq_device : public psxgpu_device
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
cxd8561bq_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, uint32_t vram_size, psxcpu_device *cpu);
|
||||
cxd8561bq_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
};
|
||||
|
||||
@ -361,6 +344,7 @@ class cxd8561cq_device : public psxgpu_device
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
cxd8561cq_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, uint32_t vram_size, psxcpu_device *cpu);
|
||||
cxd8561cq_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
};
|
||||
|
||||
@ -368,6 +352,7 @@ class cxd8654q_device : public psxgpu_device
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
cxd8654q_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, uint32_t vram_size, psxcpu_device *cpu);
|
||||
cxd8654q_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
};
|
||||
|
||||
|
@ -101,7 +101,8 @@ public:
|
||||
|
||||
void konamigq(machine_config &config);
|
||||
|
||||
void init_konamigq();
|
||||
protected:
|
||||
virtual void machine_start() override;
|
||||
|
||||
private:
|
||||
required_device<cpu_device> m_maincpu;
|
||||
@ -315,55 +316,42 @@ void konamigq_state::scsi_dma_write( uint32_t *p_n_psxram, uint32_t n_address, i
|
||||
{
|
||||
}
|
||||
|
||||
void konamigq_state::init_konamigq()
|
||||
{
|
||||
}
|
||||
|
||||
MACHINE_START_MEMBER(konamigq_state,konamigq)
|
||||
void konamigq_state::machine_start()
|
||||
{
|
||||
save_item(NAME(m_sector_buffer));
|
||||
save_item(NAME(m_sound_ctrl));
|
||||
save_item(NAME(m_sound_intck));
|
||||
}
|
||||
|
||||
MACHINE_RESET_MEMBER(konamigq_state,konamigq)
|
||||
void konamigq_state::konamigq(machine_config &config)
|
||||
{
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(konamigq_state::konamigq)
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", CXD8530BQ, XTAL(67'737'600))
|
||||
MCFG_DEVICE_PROGRAM_MAP(konamigq_map)
|
||||
CXD8530BQ(config, m_maincpu, XTAL(67'737'600));
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &konamigq_state::konamigq_map);
|
||||
m_maincpu->subdevice<psxdma_device>("dma")->install_read_handler(5, psxdma_device::read_delegate(&konamigq_state::scsi_dma_read, this));
|
||||
m_maincpu->subdevice<psxdma_device>("dma")->install_write_handler(5, psxdma_device::write_delegate(&konamigq_state::scsi_dma_write, this));
|
||||
m_maincpu->subdevice<ram_device>("ram")->set_default_size("4M");
|
||||
|
||||
subdevice<ram_device>("maincpu:ram")->set_default_size("4M");
|
||||
M68000(config, m_soundcpu, XTAL(32'000'000)/4); /* 8MHz - measured */
|
||||
m_soundcpu->set_addrmap(AS_PROGRAM, &konamigq_state::konamigq_sound_map);
|
||||
|
||||
MCFG_PSX_DMA_CHANNEL_READ( "maincpu", 5, psxdma_device::read_delegate(&konamigq_state::scsi_dma_read, this ) )
|
||||
MCFG_PSX_DMA_CHANNEL_WRITE( "maincpu", 5, psxdma_device::write_delegate(&konamigq_state::scsi_dma_write, this ) )
|
||||
TMS57002(config, m_dasp, XTAL(48'000'000)/2); /* 24MHz - measured */
|
||||
m_dasp->set_addrmap(AS_DATA, &konamigq_state::konamigq_dasp_map);
|
||||
m_dasp->set_periodic_int(FUNC(konamigq_state::tms_sync), attotime::from_hz(48000));
|
||||
|
||||
MCFG_DEVICE_ADD("soundcpu", M68000, XTAL(32'000'000)/4) /* 8MHz - measured */
|
||||
MCFG_DEVICE_PROGRAM_MAP(konamigq_sound_map)
|
||||
|
||||
MCFG_DEVICE_ADD("dasp", TMS57002, XTAL(48'000'000)/2) /* 24MHz - measured */
|
||||
MCFG_DEVICE_DATA_MAP(konamigq_dasp_map)
|
||||
MCFG_DEVICE_PERIODIC_INT_DRIVER(konamigq_state, tms_sync, 48000)
|
||||
|
||||
MCFG_MACHINE_START_OVERRIDE(konamigq_state, konamigq)
|
||||
MCFG_MACHINE_RESET_OVERRIDE(konamigq_state, konamigq)
|
||||
|
||||
MCFG_DEVICE_ADD("mb89371", MB89371, 0)
|
||||
MB89371(config, "mb89371", 0);
|
||||
|
||||
EEPROM_93C46_16BIT(config, "eeprom").default_data(konamigq_def_eeprom, 128);
|
||||
|
||||
MCFG_DEVICE_ADD("scsi", SCSI_PORT, 0)
|
||||
MCFG_SCSIDEV_ADD("scsi:" SCSI_PORT_DEVICE1, "harddisk", SCSIHD, SCSI_ID_0)
|
||||
scsi_port_device &scsi(SCSI_PORT(config, "scsi", 0));
|
||||
scsi.set_slot_device(1, "harddisk", SCSIHD, DEVICE_INPUT_DEFAULTS_NAME(SCSI_ID_0));
|
||||
|
||||
AM53CF96(config, m_am53cf96, 0);
|
||||
m_am53cf96->set_scsi_port("scsi");
|
||||
m_am53cf96->irq_handler().set("maincpu:irq", FUNC(psxirq_device::intin10));
|
||||
|
||||
/* video hardware */
|
||||
MCFG_PSXGPU_ADD("maincpu", "gpu", CXD8538Q, 0x200000, XTAL(53'693'175))
|
||||
MCFG_VIDEO_SET_SCREEN("screen")
|
||||
CXD8538Q(config, "gpu", XTAL(53'693'175), 0x200000, subdevice<psxcpu_device>("maincpu")).set_screen("screen");
|
||||
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||
|
||||
@ -374,17 +362,17 @@ MACHINE_CONFIG_START(konamigq_state::konamigq)
|
||||
K056800(config, m_k056800, XTAL(18'432'000));
|
||||
m_k056800->int_callback().set_inputline(m_soundcpu, M68K_IRQ_1);
|
||||
|
||||
MCFG_DEVICE_ADD("k054539_1", K054539, XTAL(18'432'000))
|
||||
MCFG_DEVICE_ADDRESS_MAP(0, konamigq_k054539_map)
|
||||
MCFG_K054539_TIMER_HANDLER(WRITELINE(*this, konamigq_state, k054539_irq_gen))
|
||||
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
|
||||
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
|
||||
k054539_device &k054539_1(K054539(config, "k054539_1", XTAL(18'432'000)));
|
||||
k054539_1.set_addrmap(0, &konamigq_state::konamigq_k054539_map);
|
||||
k054539_1.timer_handler().set(FUNC(konamigq_state::k054539_irq_gen));
|
||||
k054539_1.add_route(0, "lspeaker", 1.0);
|
||||
k054539_1.add_route(1, "rspeaker", 1.0);
|
||||
|
||||
MCFG_DEVICE_ADD("k054539_2", K054539, XTAL(18'432'000))
|
||||
MCFG_DEVICE_ADDRESS_MAP(0, konamigq_k054539_map)
|
||||
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
|
||||
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
|
||||
MACHINE_CONFIG_END
|
||||
k054539_device &k054539_2(K054539(config, "k054539_2", XTAL(18'432'000)));
|
||||
k054539_2.set_addrmap(0, &konamigq_state::konamigq_k054539_map);
|
||||
k054539_2.add_route(0, "lspeaker", 1.0);
|
||||
k054539_2.add_route(1, "rspeaker", 1.0);
|
||||
}
|
||||
|
||||
static INPUT_PORTS_START( konamigq )
|
||||
PORT_START("GUNX1")
|
||||
@ -484,4 +472,4 @@ ROM_START( cryptklr )
|
||||
DISK_IMAGE( "420uaa04", 0, SHA1(67cb1418fc0de2a89fc61847dc9efb9f1bebb347) )
|
||||
ROM_END
|
||||
|
||||
GAME( 1995, cryptklr, 0, konamigq, konamigq, konamigq_state, init_konamigq, ROT0, "Konami", "Crypt Killer (GQ420 UAA)", 0 )
|
||||
GAME( 1995, cryptklr, 0, konamigq, konamigq, konamigq_state, empty_init, ROT0, "Konami", "Crypt Killer (GQ420 UAA)", 0 )
|
||||
|
@ -349,35 +349,33 @@ void simpbowl_state::machine_start()
|
||||
|
||||
void konamigv_state::cdrom_config(device_t *device)
|
||||
{
|
||||
device->subdevice<cdda_device>("cdda")->add_route(0, "^^lspeaker", 1.0);
|
||||
device->subdevice<cdda_device>("cdda")->add_route(1, "^^rspeaker", 1.0);
|
||||
device = device->subdevice("cdda");
|
||||
MCFG_SOUND_ROUTE(0, "^^lspeaker", 1.0)
|
||||
MCFG_SOUND_ROUTE(1, "^^rspeaker", 1.0)
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(konamigv_state::konamigv)
|
||||
void konamigv_state::konamigv(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD( "maincpu", CXD8530BQ, XTAL(67'737'600) )
|
||||
MCFG_DEVICE_PROGRAM_MAP( konamigv_map )
|
||||
CXD8530BQ(config, m_maincpu, XTAL(67'737'600));
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &konamigv_state::konamigv_map);
|
||||
m_maincpu->subdevice<psxdma_device>("dma")->install_read_handler(5, psxdma_device::read_delegate(&konamigv_state::scsi_dma_read, this));
|
||||
m_maincpu->subdevice<psxdma_device>("dma")->install_write_handler(5, psxdma_device::write_delegate(&konamigv_state::scsi_dma_write, this));
|
||||
m_maincpu->subdevice<ram_device>("ram")->set_default_size("2M");
|
||||
|
||||
subdevice<ram_device>("maincpu:ram")->set_default_size("2M");
|
||||
|
||||
MCFG_PSX_DMA_CHANNEL_READ( "maincpu", 5, psxdma_device::read_delegate(&konamigv_state::scsi_dma_read, this ) )
|
||||
MCFG_PSX_DMA_CHANNEL_WRITE( "maincpu", 5, psxdma_device::write_delegate(&konamigv_state::scsi_dma_write, this ) )
|
||||
|
||||
MCFG_DEVICE_ADD("mb89371", MB89371, 0)
|
||||
MB89371(config, "mb89371", 0);
|
||||
EEPROM_93C46_16BIT(config, "eeprom");
|
||||
|
||||
MCFG_DEVICE_ADD("scsi", SCSI_PORT, 0)
|
||||
MCFG_SCSIDEV_ADD("scsi:" SCSI_PORT_DEVICE1, "cdrom", SCSICD, SCSI_ID_4)
|
||||
MCFG_SLOT_OPTION_MACHINE_CONFIG("cdrom", cdrom_config)
|
||||
scsi_port_device &scsi(SCSI_PORT(config, "scsi", 0));
|
||||
scsi.set_slot_device(1, "cdrom", SCSICD, DEVICE_INPUT_DEFAULTS_NAME(SCSI_ID_4));
|
||||
scsi.slot(1).set_option_machine_config("cdrom", cdrom_config);
|
||||
|
||||
AM53CF96(config, m_am53cf96, 0);
|
||||
m_am53cf96->set_scsi_port("scsi");
|
||||
m_am53cf96->irq_handler().set("maincpu:irq", FUNC(psxirq_device::intin10));
|
||||
|
||||
/* video hardware */
|
||||
MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8514Q, 0x100000, XTAL(53'693'175) )
|
||||
MCFG_VIDEO_SET_SCREEN("screen")
|
||||
CXD8514Q(config, "gpu", XTAL(53'693'175), 0x100000, subdevice<psxcpu_device>("maincpu")).set_screen("screen");
|
||||
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||
|
||||
@ -385,10 +383,10 @@ MACHINE_CONFIG_START(konamigv_state::konamigv)
|
||||
SPEAKER(config, "lspeaker").front_left();
|
||||
SPEAKER(config, "rspeaker").front_right();
|
||||
|
||||
MCFG_SPU_ADD( "spu", XTAL(67'737'600)/2 )
|
||||
MCFG_SOUND_ROUTE( 0, "lspeaker", 0.75 )
|
||||
MCFG_SOUND_ROUTE( 1, "rspeaker", 0.75 )
|
||||
MACHINE_CONFIG_END
|
||||
spu_device &spu(SPU(config, "spu", XTAL(67'737'600)/2, subdevice<psxcpu_device>("maincpu")));
|
||||
spu.add_route(0, "lspeaker", 0.75);
|
||||
spu.add_route(1, "rspeaker", 0.75);
|
||||
}
|
||||
|
||||
|
||||
static INPUT_PORTS_START( konamigv )
|
||||
|
@ -386,6 +386,8 @@ public:
|
||||
m_psxirq(*this, "maincpu:irq"),
|
||||
m_ata(*this, "ata"),
|
||||
m_image(*this, "ata:0:cr589"),
|
||||
m_pccard1(*this, "pccard1"),
|
||||
m_pccard2(*this, "pccard2"),
|
||||
m_h8_response(*this, "h8_response"),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_ram(*this, "maincpu:ram"),
|
||||
@ -557,6 +559,8 @@ private:
|
||||
|
||||
required_device<ata_interface_device> m_ata;
|
||||
optional_device<atapi_hle_device> m_image;
|
||||
required_device<pccard_slot_device> m_pccard1;
|
||||
required_device<pccard_slot_device> m_pccard2;
|
||||
cdrom_file *m_available_cdroms[ 2 ];
|
||||
emu_timer *m_atapi_timer;
|
||||
int m_atapi_xferbase;
|
||||
@ -2081,54 +2085,51 @@ double ksys573_state::analogue_inputs_callback(uint8_t input)
|
||||
|
||||
void ksys573_state::cr589_config(device_t *device)
|
||||
{
|
||||
device->subdevice<cdda_device>("cdda")->add_route(0, "^^lspeaker", 1.0);
|
||||
device->subdevice<cdda_device>("cdda")->add_route(1, "^^rspeaker", 1.0);
|
||||
device = device->subdevice("cdda");
|
||||
MCFG_SOUND_ROUTE( 0, "^^lspeaker", 1.0 )
|
||||
MCFG_SOUND_ROUTE( 1, "^^rspeaker", 1.0 )
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(ksys573_state::konami573)
|
||||
void ksys573_state::konami573(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD( m_maincpu, CXD8530CQ, XTAL(67'737'600) )
|
||||
MCFG_DEVICE_PROGRAM_MAP( konami573_map )
|
||||
CXD8530CQ(config, m_maincpu, XTAL(67'737'600));
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &ksys573_state::konami573_map);
|
||||
m_maincpu->subdevice<psxdma_device>("dma")->install_read_handler(5, psxdma_device::read_delegate(&ksys573_state::cdrom_dma_read, this));
|
||||
m_maincpu->subdevice<psxdma_device>("dma")->install_write_handler(5, psxdma_device::write_delegate(&ksys573_state::cdrom_dma_write, this));
|
||||
|
||||
subdevice<ram_device>( "maincpu:ram" )->set_default_size( "4M" );
|
||||
subdevice<ram_device>("maincpu:ram")->set_default_size("4M");
|
||||
|
||||
MCFG_PSX_DMA_CHANNEL_READ( "maincpu", 5, psxdma_device::read_delegate(&ksys573_state::cdrom_dma_read, this ) )
|
||||
MCFG_PSX_DMA_CHANNEL_WRITE( "maincpu", 5, psxdma_device::write_delegate(&ksys573_state::cdrom_dma_write, this ) )
|
||||
MCFG_MACHINE_RESET_OVERRIDE(ksys573_state, konami573)
|
||||
|
||||
MCFG_MACHINE_RESET_OVERRIDE( ksys573_state, konami573 )
|
||||
MB89371(config, m_duart, 0);
|
||||
|
||||
MCFG_DEVICE_ADD( m_duart, MB89371, 0 )
|
||||
|
||||
MCFG_DEVICE_ADD( m_ata, ATA_INTERFACE, 0 )
|
||||
m_ata->irq_handler().set( FUNC( ksys573_state::ata_interrupt ) );
|
||||
|
||||
MCFG_DEVICE_MODIFY( "ata:0" )
|
||||
MCFG_SLOT_OPTION_ADD( "cr589", CR589 )
|
||||
MCFG_SLOT_OPTION_MACHINE_CONFIG( "cr589", cr589_config )
|
||||
MCFG_SLOT_DEFAULT_OPTION( "cr589" )
|
||||
ATA_INTERFACE(config, m_ata, 0);
|
||||
m_ata->irq_handler().set(FUNC(ksys573_state::ata_interrupt));
|
||||
m_ata->slot(0).option_add("cr589", CR589);
|
||||
m_ata->slot(0).set_option_machine_config("cr589", cr589_config);
|
||||
m_ata->slot(0).set_default_option("cr589");
|
||||
|
||||
konami573_cassette_slot_device &cassette(KONAMI573_CASSETTE_SLOT(config, "cassette", 0));
|
||||
cassette.dsr_handler().set("maincpu:sio1", FUNC(psxsio1_device::write_dsr));
|
||||
|
||||
// onboard flash
|
||||
FUJITSU_29F016A( config, "29f016a.31m" );
|
||||
FUJITSU_29F016A( config, "29f016a.27m" );
|
||||
FUJITSU_29F016A( config, "29f016a.31l" );
|
||||
FUJITSU_29F016A( config, "29f016a.27l" );
|
||||
FUJITSU_29F016A( config, "29f016a.31j" );
|
||||
FUJITSU_29F016A( config, "29f016a.27j" );
|
||||
FUJITSU_29F016A( config, "29f016a.31h" );
|
||||
FUJITSU_29F016A( config, "29f016a.27h" );
|
||||
FUJITSU_29F016A(config, "29f016a.31m");
|
||||
FUJITSU_29F016A(config, "29f016a.27m");
|
||||
FUJITSU_29F016A(config, "29f016a.31l");
|
||||
FUJITSU_29F016A(config, "29f016a.27l");
|
||||
FUJITSU_29F016A(config, "29f016a.31j");
|
||||
FUJITSU_29F016A(config, "29f016a.27j");
|
||||
FUJITSU_29F016A(config, "29f016a.31h");
|
||||
FUJITSU_29F016A(config, "29f016a.27h");
|
||||
|
||||
MCFG_DEVICE_ADD( "pccard1", PCCARD_SLOT, 0 )
|
||||
MCFG_DEVICE_ADD( "pccard2", PCCARD_SLOT, 0 )
|
||||
PCCARD_SLOT(config, m_pccard1, 0);
|
||||
PCCARD_SLOT(config, m_pccard2, 0);
|
||||
|
||||
ADDRESS_MAP_BANK( config, m_flashbank ).set_map( &ksys573_state::flashbank_map ).set_options( ENDIANNESS_LITTLE, 16, 32, 0x400000 );
|
||||
ADDRESS_MAP_BANK(config, m_flashbank ).set_map( &ksys573_state::flashbank_map ).set_options( ENDIANNESS_LITTLE, 16, 32, 0x400000);
|
||||
|
||||
/* video hardware */
|
||||
MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8561Q, 0x200000, XTAL(53'693'175) )
|
||||
MCFG_VIDEO_SET_SCREEN("screen")
|
||||
CXD8561Q(config, "gpu", XTAL(53'693'175), 0x200000, m_maincpu.target()).set_screen("screen");
|
||||
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER).screen_vblank().set(FUNC(ksys573_state::sys573_vblank));
|
||||
|
||||
@ -2136,15 +2137,15 @@ MACHINE_CONFIG_START(ksys573_state::konami573)
|
||||
SPEAKER(config, "lspeaker").front_left();
|
||||
SPEAKER(config, "rspeaker").front_right();
|
||||
|
||||
MCFG_SPU_ADD( "spu", XTAL(67'737'600)/2 )
|
||||
MCFG_SOUND_ROUTE( 0, "lspeaker", 1.0 )
|
||||
MCFG_SOUND_ROUTE( 1, "rspeaker", 1.0 )
|
||||
spu_device &spu(SPU(config, "spu", XTAL(67'737'600)/2, m_maincpu.target()));
|
||||
spu.add_route(0, "lspeaker", 1.0);
|
||||
spu.add_route(1, "rspeaker", 1.0);
|
||||
|
||||
MCFG_DEVICE_ADD("m48t58", M48T58, 0)
|
||||
M48T58(config, "m48t58", 0);
|
||||
|
||||
adc0834_device &adc(ADC0834(config, "adc0834", 0));
|
||||
adc.set_input_callback(FUNC(ksys573_state::analogue_inputs_callback));
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
// Variants with additional digital sound board
|
||||
void ksys573_state::k573d(machine_config &config)
|
||||
@ -2161,29 +2162,29 @@ void ksys573_state::k573a(machine_config &config)
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &ksys573_state::konami573a_map);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(ksys573_state::pccard1_16mb)
|
||||
MCFG_DEVICE_MODIFY( "pccard1" )
|
||||
MCFG_SLOT_OPTION_ADD( "16mb", LINEAR_FLASH_PCCARD_16MB )
|
||||
MCFG_SLOT_DEFAULT_OPTION( "16mb" )
|
||||
MACHINE_CONFIG_END
|
||||
void ksys573_state::pccard1_16mb(machine_config &config)
|
||||
{
|
||||
m_pccard1->option_add("16mb", LINEAR_FLASH_PCCARD_16MB);
|
||||
m_pccard1->set_default_option("16mb");
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(ksys573_state::pccard1_32mb)
|
||||
MCFG_DEVICE_MODIFY( "pccard1" )
|
||||
MCFG_SLOT_OPTION_ADD( "32mb", LINEAR_FLASH_PCCARD_32MB )
|
||||
MCFG_SLOT_DEFAULT_OPTION( "32mb" )
|
||||
MACHINE_CONFIG_END
|
||||
void ksys573_state::pccard1_32mb(machine_config &config)
|
||||
{
|
||||
m_pccard1->option_add("32mb", LINEAR_FLASH_PCCARD_32MB);
|
||||
m_pccard1->set_default_option("32mb");
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(ksys573_state::pccard2_32mb)
|
||||
MCFG_DEVICE_MODIFY( "pccard2" )
|
||||
MCFG_SLOT_OPTION_ADD( "32mb", LINEAR_FLASH_PCCARD_32MB )
|
||||
MCFG_SLOT_DEFAULT_OPTION( "32mb" )
|
||||
MACHINE_CONFIG_END
|
||||
void ksys573_state::pccard2_32mb(machine_config &config)
|
||||
{
|
||||
m_pccard2->option_add("32mb", LINEAR_FLASH_PCCARD_32MB);
|
||||
m_pccard2->set_default_option("32mb");
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(ksys573_state::pccard2_64mb)
|
||||
MCFG_DEVICE_MODIFY( "pccard2" )
|
||||
MCFG_SLOT_OPTION_ADD( "64mb", LINEAR_FLASH_PCCARD_64MB )
|
||||
MCFG_SLOT_DEFAULT_OPTION( "64mb" )
|
||||
MACHINE_CONFIG_END
|
||||
void ksys573_state::pccard2_64mb(machine_config &config)
|
||||
{
|
||||
m_pccard2->option_add("64mb", LINEAR_FLASH_PCCARD_64MB);
|
||||
m_pccard2->set_default_option("64mb");
|
||||
}
|
||||
|
||||
// Security eeprom variants
|
||||
//
|
||||
@ -2248,13 +2249,14 @@ void ksys573_state::ddr(machine_config &config)
|
||||
cassx(config);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(ksys573_state::ddr2ml)
|
||||
void ksys573_state::ddr2ml(machine_config &config)
|
||||
{
|
||||
k573a(config);
|
||||
MCFG_DEVICE_ADD( "k573mcr", KONAMI_573_MEMORY_CARD_READER, 0 )
|
||||
KONAMI_573_MEMORY_CARD_READER(config, "k573mcr", 0);
|
||||
|
||||
pccard1_16mb(config);
|
||||
cassx(config);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
void ksys573_state::ddr3m(machine_config &config)
|
||||
{
|
||||
@ -2365,14 +2367,15 @@ void ksys573_state::drmn2m(machine_config &config)
|
||||
cassxzi(config);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(ksys573_state::drmn4m)
|
||||
void ksys573_state::drmn4m(machine_config &config)
|
||||
{
|
||||
k573d(config);
|
||||
subdevice<k573dio_device>("k573dio")->output_callback().set(FUNC(ksys573_state::drmn_output_callback));
|
||||
|
||||
casszi(config);
|
||||
|
||||
MCFG_DEVICE_ADD( "k573msu", KONAMI_573_MULTI_SESSION_UNIT, 0 )
|
||||
MACHINE_CONFIG_END
|
||||
KONAMI_573_MULTI_SESSION_UNIT(config, "k573msu", 0);
|
||||
}
|
||||
|
||||
// Guitar Freaks
|
||||
|
||||
@ -2410,10 +2413,11 @@ void ksys573_state::gtrfrk7m(machine_config &config)
|
||||
pccard1_32mb(config);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(ksys573_state::gtfrk10mb)
|
||||
void ksys573_state::gtfrk10mb(machine_config &config)
|
||||
{
|
||||
gtrfrk7m(config);
|
||||
MCFG_DEVICE_ADD( "k573npu", KONAMI_573_NETWORK_PCB_UNIT, 0 )
|
||||
MACHINE_CONFIG_END
|
||||
KONAMI_573_NETWORK_PCB_UNIT(config, "k573npu", 0);
|
||||
}
|
||||
|
||||
// Miscellaneous
|
||||
|
||||
@ -2508,10 +2512,11 @@ void ksys573_state::mamboagg(machine_config &config)
|
||||
casszi(config);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(ksys573_state::mamboagga)
|
||||
void ksys573_state::mamboagga(machine_config &config)
|
||||
{
|
||||
mamboagg(config);
|
||||
MCFG_DEVICE_ADD( "k573npu", KONAMI_573_NETWORK_PCB_UNIT, 0 )
|
||||
MACHINE_CONFIG_END
|
||||
KONAMI_573_NETWORK_PCB_UNIT(config, "k573npu", 0);
|
||||
}
|
||||
|
||||
|
||||
static INPUT_PORTS_START( konami573 )
|
||||
|
@ -409,13 +409,14 @@ public:
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu") { }
|
||||
|
||||
void namcos10_base(machine_config &config);
|
||||
void namcos10_memm(machine_config &config);
|
||||
void namcos10_memn(machine_config &config);
|
||||
void ns10_konotako(machine_config &config);
|
||||
void ns10_mrdrilr2(machine_config &config);
|
||||
void ns10_knpuzzle(machine_config &config);
|
||||
void ns10_chocovdr(machine_config &config);
|
||||
void ns10_startrgn(machine_config &config);
|
||||
void namcos10_memm(machine_config &config);
|
||||
void namcos10_memn(machine_config &config);
|
||||
void ns10_gjspace(machine_config &config);
|
||||
void ns10_nflclsfb(machine_config &config);
|
||||
void ns10_gamshara(machine_config &config);
|
||||
@ -491,7 +492,7 @@ private:
|
||||
|
||||
DECLARE_MACHINE_RESET(namcos10);
|
||||
void memn_driver_init( );
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<psxcpu_device> m_maincpu;
|
||||
};
|
||||
|
||||
|
||||
@ -549,7 +550,7 @@ READ16_MEMBER(namcos10_state::range_r)
|
||||
|
||||
READ16_MEMBER(namcos10_state::control_r)
|
||||
{
|
||||
logerror("control_r %d (%x)\n", offset, m_maincpu->pc());
|
||||
logerror("%s: control_r %d (%x)\n", machine().describe_context(), offset);
|
||||
if(offset == 2)
|
||||
return 1^0xffff;
|
||||
return 0;
|
||||
@ -557,12 +558,12 @@ READ16_MEMBER(namcos10_state::control_r)
|
||||
|
||||
WRITE16_MEMBER(namcos10_state::control_w)
|
||||
{
|
||||
logerror("control_w %d, %04x (%x)\n", offset, data, m_maincpu->pc());
|
||||
logerror("%s: control_w %d, %04x (%x)\n", machine().describe_context(), offset, data);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(namcos10_state::sprot_w)
|
||||
{
|
||||
logerror("sprot_w %04x (%x)\n", data, m_maincpu->pc());
|
||||
logerror("%s: sprot_w %04x (%x)\n", machine().describe_context(), data);
|
||||
sprot_bit = 7;
|
||||
sprot_byte = 0;
|
||||
}
|
||||
@ -704,26 +705,26 @@ READ16_MEMBER(namcos10_state::nand_status_r )
|
||||
|
||||
WRITE8_MEMBER(namcos10_state::nand_address1_w )
|
||||
{
|
||||
logerror("nand_a1_w %08x (%08x)\n", data, m_maincpu->pc());
|
||||
logerror("%s: nand_a1_w %08x (%08x)\n", machine().describe_context(), data);
|
||||
// nand_address = ( nand_address & 0x00ffffff ) | ( data << 24 );
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( namcos10_state::nand_address2_w )
|
||||
{
|
||||
logerror("nand_a2_w %08x (%08x)\n", data, m_maincpu->pc());
|
||||
logerror("%s: nand_a2_w %08x (%08x)\n", machine().describe_context(), data);
|
||||
nand_address = ( nand_address & 0xffffff00 ) | ( data << 0 );
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( namcos10_state::nand_address3_w )
|
||||
{
|
||||
logerror("nand_a3_w %08x (%08x)\n", data, m_maincpu->pc());
|
||||
logerror("%s: nand_a3_w %08x (%08x)\n", machine().describe_context(), data);
|
||||
nand_address = ( nand_address & 0xffff00ff ) | ( data << 8 );
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( namcos10_state::nand_address4_w )
|
||||
{
|
||||
nand_address = ( nand_address & 0xff00ffff ) | ( data << 16 );
|
||||
logerror("nand_a4_w %08x (%08x) -> %08x\n", data, m_maincpu->pc(), nand_address*2);
|
||||
logerror("%s: nand_a4_w %08x (%08x) -> %08x\n", machine().describe_context(), data, nand_address*2);
|
||||
}
|
||||
|
||||
uint16_t namcos10_state::nand_read( uint32_t address )
|
||||
@ -921,107 +922,96 @@ MACHINE_RESET_MEMBER(namcos10_state,namcos10)
|
||||
i2c_bit = 0;
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(namcos10_state::namcos10_memm)
|
||||
void namcos10_state::namcos10_base(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD( "maincpu", CXD8606BQ, XTAL(101'491'200) )
|
||||
MCFG_DEVICE_PROGRAM_MAP( namcos10_memm_map )
|
||||
|
||||
CXD8606BQ(config, m_maincpu, XTAL(101'491'200));
|
||||
m_maincpu->set_disable_rom_berr(true);
|
||||
m_maincpu->subdevice<ram_device>("ram")->set_default_size("16M");
|
||||
// The bios first configures the ROM window as 80000-big, then
|
||||
// switches to 400000. If berr is active, the first configuration
|
||||
// wipes all handlers after 1fc80000, which kills the system
|
||||
// afterwards
|
||||
|
||||
MCFG_PSX_DISABLE_ROM_BERR
|
||||
|
||||
subdevice<ram_device>("maincpu:ram")->set_default_size("16M");
|
||||
|
||||
MCFG_MACHINE_RESET_OVERRIDE(namcos10_state, namcos10 )
|
||||
MCFG_MACHINE_RESET_OVERRIDE(namcos10_state, namcos10)
|
||||
|
||||
/* video hardware */
|
||||
MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8561CQ, 0x200000, XTAL(53'693'175) )
|
||||
MCFG_VIDEO_SET_SCREEN("screen")
|
||||
CXD8561CQ(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();
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(namcos10_state::namcos10_memn)
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD( "maincpu", CXD8606BQ, XTAL(101'491'200) )
|
||||
MCFG_DEVICE_PROGRAM_MAP( namcos10_memn_map )
|
||||
void namcos10_state::namcos10_memm(machine_config &config)
|
||||
{
|
||||
namcos10_base(config);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &namcos10_state::namcos10_memm_map);
|
||||
}
|
||||
|
||||
// The bios first configures the ROM window as 80000-big, then
|
||||
// switches to 400000. If berr is active, the first configuration
|
||||
// wipes all handlers after 1fc80000, which kills the system
|
||||
// afterwards
|
||||
void namcos10_state::namcos10_memn(machine_config &config)
|
||||
{
|
||||
namcos10_base(config);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &namcos10_state::namcos10_memn_map);
|
||||
}
|
||||
|
||||
MCFG_PSX_DISABLE_ROM_BERR
|
||||
|
||||
subdevice<ram_device>("maincpu:ram")->set_default_size("16M");
|
||||
|
||||
MCFG_MACHINE_RESET_OVERRIDE(namcos10_state, namcos10 )
|
||||
|
||||
/* video hardware */
|
||||
MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8561CQ, 0x200000, XTAL(53'693'175) )
|
||||
MCFG_VIDEO_SET_SCREEN("screen")
|
||||
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "lspeaker").front_left();
|
||||
SPEAKER(config, "rspeaker").front_right();
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(namcos10_state::ns10_mrdrilr2)
|
||||
void namcos10_state::ns10_mrdrilr2(machine_config &config)
|
||||
{
|
||||
namcos10_memm(config);
|
||||
/* decrypter device (CPLD in hardware?) */
|
||||
MCFG_DEVICE_ADD("decrypter", MRDRILR2_DECRYPTER, 0)
|
||||
MACHINE_CONFIG_END
|
||||
MRDRILR2_DECRYPTER(config, "decrypter", 0);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(namcos10_state::ns10_chocovdr)
|
||||
void namcos10_state::ns10_chocovdr(machine_config &config)
|
||||
{
|
||||
namcos10_memn(config);
|
||||
/* decrypter device (CPLD in hardware?) */
|
||||
MCFG_DEVICE_ADD("decrypter", CHOCOVDR_DECRYPTER, 0)
|
||||
MACHINE_CONFIG_END
|
||||
CHOCOVDR_DECRYPTER(config, "decrypter", 0);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(namcos10_state::ns10_gamshara)
|
||||
void namcos10_state::ns10_gamshara(machine_config &config)
|
||||
{
|
||||
namcos10_memn(config);
|
||||
/* decrypter device (CPLD in hardware?) */
|
||||
MCFG_DEVICE_ADD("decrypter", GAMSHARA_DECRYPTER, 0)
|
||||
MACHINE_CONFIG_END
|
||||
GAMSHARA_DECRYPTER(config, "decrypter", 0);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(namcos10_state::ns10_gjspace)
|
||||
void namcos10_state::ns10_gjspace(machine_config &config)
|
||||
{
|
||||
namcos10_memn(config);
|
||||
/* decrypter device (CPLD in hardware?) */
|
||||
MCFG_DEVICE_ADD("decrypter", GJSPACE_DECRYPTER, 0)
|
||||
MACHINE_CONFIG_END
|
||||
GJSPACE_DECRYPTER(config, "decrypter", 0);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(namcos10_state::ns10_knpuzzle)
|
||||
void namcos10_state::ns10_knpuzzle(machine_config &config)
|
||||
{
|
||||
namcos10_memn(config);
|
||||
/* decrypter device (CPLD in hardware?) */
|
||||
MCFG_DEVICE_ADD("decrypter", KNPUZZLE_DECRYPTER, 0)
|
||||
MACHINE_CONFIG_END
|
||||
KNPUZZLE_DECRYPTER(config, "decrypter", 0);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(namcos10_state::ns10_konotako)
|
||||
void namcos10_state::ns10_konotako(machine_config &config)
|
||||
{
|
||||
namcos10_memn(config);
|
||||
/* decrypter device (CPLD in hardware?) */
|
||||
MCFG_DEVICE_ADD("decrypter", KONOTAKO_DECRYPTER, 0)
|
||||
MACHINE_CONFIG_END
|
||||
KONOTAKO_DECRYPTER(config, "decrypter", 0);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(namcos10_state::ns10_nflclsfb)
|
||||
void namcos10_state::ns10_nflclsfb(machine_config &config)
|
||||
{
|
||||
namcos10_memn(config);
|
||||
/* decrypter device (CPLD in hardware?) */
|
||||
MCFG_DEVICE_ADD("decrypter", NFLCLSFB_DECRYPTER, 0)
|
||||
MACHINE_CONFIG_END
|
||||
NFLCLSFB_DECRYPTER(config, "decrypter", 0);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(namcos10_state::ns10_startrgn)
|
||||
void namcos10_state::ns10_startrgn(machine_config &config)
|
||||
{
|
||||
namcos10_memn(config);
|
||||
/* decrypter device (CPLD in hardware?) */
|
||||
MCFG_DEVICE_ADD("decrypter", STARTRGN_DECRYPTER, 0)
|
||||
MACHINE_CONFIG_END
|
||||
STARTRGN_DECRYPTER(config, "decrypter", 0);
|
||||
}
|
||||
|
||||
static INPUT_PORTS_START( namcos10 )
|
||||
/* IN 0 */
|
||||
|
@ -608,142 +608,131 @@ TIMER_DEVICE_CALLBACK_MEMBER(namcos11_state::mcu_adc_cb)
|
||||
m_mcu->set_input_line(M37710_LINE_ADC, HOLD_LINE);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(namcos11_state::coh110)
|
||||
MCFG_DEVICE_ADD( "maincpu", CXD8530CQ, XTAL(67'737'600) )
|
||||
MCFG_DEVICE_PROGRAM_MAP( namcos11_map )
|
||||
|
||||
subdevice<ram_device>("maincpu:ram")->set_default_size("4M");
|
||||
void namcos11_state::coh110(machine_config &config)
|
||||
{
|
||||
CXD8530CQ(config, m_maincpu, XTAL(67'737'600));
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &namcos11_state::namcos11_map);
|
||||
m_maincpu->subdevice<ram_device>("ram")->set_default_size("4M");
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("c76", NAMCO_C76, 16934400)
|
||||
MCFG_DEVICE_PROGRAM_MAP(c76_map)
|
||||
MCFG_DEVICE_IO_MAP(c76_io_map)
|
||||
/* TODO: irq generation for these */
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("mcu_irq0", namcos11_state, mcu_irq0_cb, attotime::from_hz(60))
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("mcu_irq2", namcos11_state, mcu_irq2_cb, attotime::from_hz(60))
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("mcu_adc", namcos11_state, mcu_adc_cb, attotime::from_hz(60))
|
||||
NAMCO_C76(config, m_mcu, 16934400);
|
||||
m_mcu->set_addrmap(AS_PROGRAM, &namcos11_state::c76_map);
|
||||
m_mcu->set_addrmap(AS_IO, &namcos11_state::c76_io_map);
|
||||
|
||||
MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8561Q, 0x200000, XTAL(53'693'175) )
|
||||
MCFG_VIDEO_SET_SCREEN("screen")
|
||||
/* TODO: irq generation for these */
|
||||
TIMER(config, "mcu_irq0").configure_periodic(FUNC(namcos11_state::mcu_irq0_cb), attotime::from_hz(60));
|
||||
TIMER(config, "mcu_irq2").configure_periodic(FUNC(namcos11_state::mcu_irq2_cb), attotime::from_hz(60));
|
||||
TIMER(config, "mcu_adc").configure_periodic(FUNC(namcos11_state::mcu_adc_cb), attotime::from_hz(60));
|
||||
|
||||
CXD8561Q(config, "gpu", XTAL(53'693'175), 0x200000, subdevice<psxcpu_device>("maincpu")).set_screen("screen");
|
||||
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||
|
||||
SPEAKER(config, "lspeaker").front_left();
|
||||
SPEAKER(config, "rspeaker").front_right();
|
||||
|
||||
MCFG_DEVICE_ADD("c352", C352, 25401600, 288)
|
||||
MCFG_SOUND_ROUTE(0, "lspeaker", 1.00)
|
||||
MCFG_SOUND_ROUTE(1, "rspeaker", 1.00)
|
||||
//MCFG_SOUND_ROUTE(2, "lspeaker", 1.00) // Second DAC not present.
|
||||
//MCFG_SOUND_ROUTE(3, "rspeaker", 1.00)
|
||||
c352_device &c352(C352(config, "c352", 25401600, 288));
|
||||
c352.add_route(0, "lspeaker", 1.00);
|
||||
c352.add_route(1, "rspeaker", 1.00);
|
||||
//c352.add_route(2, "lspeaker", 1.00); // Second DAC not present.
|
||||
//c352.add_route(3, "rspeaker", 1.00);
|
||||
|
||||
MCFG_DEVICE_ADD("at28c16", AT28C16, 0)
|
||||
MACHINE_CONFIG_END
|
||||
AT28C16(config, "at28c16", 0);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(namcos11_state::coh100)
|
||||
void namcos11_state::coh100(machine_config &config)
|
||||
{
|
||||
coh110(config);
|
||||
MCFG_DEVICE_REPLACE( "maincpu", CXD8530AQ, XTAL(67'737'600) )
|
||||
MCFG_DEVICE_PROGRAM_MAP( namcos11_map )
|
||||
CXD8530AQ(config.replace(), m_maincpu, XTAL(67'737'600));
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &namcos11_state::namcos11_map);
|
||||
m_maincpu->subdevice<ram_device>("ram")->set_default_size("4M");
|
||||
|
||||
subdevice<ram_device>("maincpu:ram")->set_default_size("4M");
|
||||
CXD8538Q(config.replace(), "gpu", XTAL(53'693'175), 0x200000, subdevice<psxcpu_device>("maincpu")).set_screen("screen");
|
||||
}
|
||||
|
||||
MCFG_PSXGPU_REPLACE( "maincpu", "gpu", CXD8538Q, 0x200000, XTAL(53'693'175) )
|
||||
MCFG_VIDEO_SET_SCREEN("screen")
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(namcos11_state::tekken)
|
||||
void namcos11_state::tekken(machine_config &config)
|
||||
{
|
||||
coh100(config);
|
||||
MCFG_DEVICE_MODIFY( "maincpu" )
|
||||
MCFG_DEVICE_PROGRAM_MAP( rom8_map )
|
||||
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &namcos11_state::rom8_map);
|
||||
// TODO: either allow optional devices in memory maps, add another memory map without keycus or add a dummy keycus for tekken
|
||||
MCFG_DEVICE_ADD( "keycus", KEYCUS_C406, 0 )
|
||||
MACHINE_CONFIG_END
|
||||
KEYCUS_C406(config, "keycus", 0);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(namcos11_state::tekken2o)
|
||||
void namcos11_state::tekken2o(machine_config &config)
|
||||
{
|
||||
coh100(config);
|
||||
MCFG_DEVICE_MODIFY( "maincpu" )
|
||||
MCFG_DEVICE_PROGRAM_MAP( rom8_map )
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &namcos11_state::rom8_map);
|
||||
KEYCUS_C406(config, "keycus", 0);
|
||||
}
|
||||
|
||||
MCFG_DEVICE_ADD( "keycus", KEYCUS_C406, 0 )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(namcos11_state::tekken2)
|
||||
void namcos11_state::tekken2(machine_config &config)
|
||||
{
|
||||
coh110(config);
|
||||
MCFG_DEVICE_MODIFY( "maincpu" )
|
||||
MCFG_DEVICE_PROGRAM_MAP( rom8_map )
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &namcos11_state::rom8_map);
|
||||
KEYCUS_C406(config, "keycus", 0);
|
||||
}
|
||||
|
||||
MCFG_DEVICE_ADD( "keycus", KEYCUS_C406, 0 )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(namcos11_state::souledge)
|
||||
void namcos11_state::souledge(machine_config &config)
|
||||
{
|
||||
coh110(config);
|
||||
MCFG_DEVICE_MODIFY( "maincpu" )
|
||||
MCFG_DEVICE_PROGRAM_MAP( rom8_map )
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &namcos11_state::rom8_map);
|
||||
KEYCUS_C409(config, "keycus", 0);
|
||||
}
|
||||
|
||||
MCFG_DEVICE_ADD( "keycus", KEYCUS_C409, 0 )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(namcos11_state::dunkmnia)
|
||||
void namcos11_state::dunkmnia(machine_config &config)
|
||||
{
|
||||
coh110(config);
|
||||
MCFG_DEVICE_MODIFY( "maincpu" )
|
||||
MCFG_DEVICE_PROGRAM_MAP( rom8_map )
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &namcos11_state::rom8_map);
|
||||
KEYCUS_C410(config, "keycus", 0);
|
||||
}
|
||||
|
||||
MCFG_DEVICE_ADD( "keycus", KEYCUS_C410, 0 )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(namcos11_state::primglex)
|
||||
void namcos11_state::primglex(machine_config &config)
|
||||
{
|
||||
coh110(config);
|
||||
MCFG_DEVICE_MODIFY( "maincpu" )
|
||||
MCFG_DEVICE_PROGRAM_MAP( rom8_map )
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &namcos11_state::rom8_map);
|
||||
KEYCUS_C411(config, "keycus", 0);
|
||||
}
|
||||
|
||||
MCFG_DEVICE_ADD( "keycus", KEYCUS_C411, 0 )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(namcos11_state::xevi3dg)
|
||||
void namcos11_state::xevi3dg(machine_config &config)
|
||||
{
|
||||
coh110(config);
|
||||
MCFG_DEVICE_MODIFY( "maincpu" )
|
||||
MCFG_DEVICE_PROGRAM_MAP( rom8_map )
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &namcos11_state::rom8_map);
|
||||
KEYCUS_C430(config, "keycus", 0);
|
||||
}
|
||||
|
||||
MCFG_DEVICE_ADD( "keycus", KEYCUS_C430, 0 )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(namcos11_state::danceyes)
|
||||
void namcos11_state::danceyes(machine_config &config)
|
||||
{
|
||||
coh110(config);
|
||||
MCFG_DEVICE_MODIFY( "maincpu" )
|
||||
MCFG_DEVICE_PROGRAM_MAP( rom8_map )
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &namcos11_state::rom8_map);
|
||||
KEYCUS_C431(config, "keycus", 0);
|
||||
}
|
||||
|
||||
MCFG_DEVICE_ADD( "keycus", KEYCUS_C431, 0 )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(namcos11_state::pocketrc)
|
||||
void namcos11_state::pocketrc(machine_config &config)
|
||||
{
|
||||
coh110(config);
|
||||
MCFG_DEVICE_MODIFY( "maincpu" )
|
||||
MCFG_DEVICE_PROGRAM_MAP( rom8_map )
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &namcos11_state::rom8_map);
|
||||
KEYCUS_C432(config, "keycus", 0);
|
||||
}
|
||||
|
||||
MCFG_DEVICE_ADD( "keycus", KEYCUS_C432, 0 )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(namcos11_state::starswep)
|
||||
void namcos11_state::starswep(machine_config &config)
|
||||
{
|
||||
coh110(config);
|
||||
MCFG_DEVICE_ADD( "keycus", KEYCUS_C442, 0 )
|
||||
MACHINE_CONFIG_END
|
||||
KEYCUS_C442(config, "keycus", 0);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(namcos11_state::myangel3)
|
||||
void namcos11_state::myangel3(machine_config &config)
|
||||
{
|
||||
coh110(config);
|
||||
MCFG_DEVICE_MODIFY( "maincpu" )
|
||||
MCFG_DEVICE_PROGRAM_MAP( rom8_64_map )
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &namcos11_state::rom8_64_map);
|
||||
KEYCUS_C443(config, "keycus", 0);
|
||||
}
|
||||
|
||||
MCFG_DEVICE_ADD( "keycus", KEYCUS_C443, 0 )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(namcos11_state::ptblank2ua)
|
||||
void namcos11_state::ptblank2ua(machine_config &config)
|
||||
{
|
||||
coh110(config);
|
||||
MCFG_DEVICE_MODIFY( "maincpu" )
|
||||
MCFG_DEVICE_PROGRAM_MAP( ptblank2ua_map )
|
||||
|
||||
MCFG_DEVICE_ADD( "keycus", KEYCUS_C443, 0 )
|
||||
MACHINE_CONFIG_END
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &namcos11_state::ptblank2ua_map);
|
||||
KEYCUS_C443(config, "keycus", 0);
|
||||
}
|
||||
|
||||
static INPUT_PORTS_START( namcos11 )
|
||||
PORT_START( "SWITCH" )
|
||||
|
@ -1106,8 +1106,8 @@ class namcos12_state : public driver_device
|
||||
public:
|
||||
namcos12_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_ram(*this, "maincpu:ram")
|
||||
, m_maincpu(*this, "maincpu")
|
||||
, m_ram(*this, "maincpu:ram")
|
||||
, m_sub(*this, "sub")
|
||||
, m_adc(*this, "sub:adc")
|
||||
, m_rtc(*this, "rtc")
|
||||
@ -1149,11 +1149,11 @@ protected:
|
||||
void tdjvsmap(address_map &map);
|
||||
void tektagt_map(address_map &map);
|
||||
|
||||
required_device<psxcpu_device> m_maincpu;
|
||||
required_device<ram_device> m_ram;
|
||||
required_device<h83002_device> m_sub;
|
||||
|
||||
private:
|
||||
required_device<psxcpu_device> m_maincpu;
|
||||
required_device<h83002_device> m_sub;
|
||||
required_device<h8_adc_device> m_adc;
|
||||
required_device<rtc4543_device> m_rtc;
|
||||
required_device<namco_settings_device> m_settings;
|
||||
@ -1724,12 +1724,12 @@ void namcos12_state::init_golgo13()
|
||||
}
|
||||
|
||||
// SYSTEM12 MOTHER PCB
|
||||
MACHINE_CONFIG_START(namcos12_state::namcos12_mobo)
|
||||
|
||||
void namcos12_state::namcos12_mobo(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD(m_sub, H83002, 16934400) // frequency based on research (superctr)
|
||||
MCFG_DEVICE_PROGRAM_MAP(s12h8rwmap)
|
||||
MCFG_DEVICE_IO_MAP(s12h8iomap)
|
||||
H83002(config, m_sub, 16934400); // frequency based on research (superctr)
|
||||
m_sub->set_addrmap(AS_PROGRAM, &namcos12_state::s12h8rwmap);
|
||||
m_sub->set_addrmap(AS_IO, &namcos12_state::s12h8iomap);
|
||||
|
||||
NAMCO_SETTINGS(config, m_settings, 0);
|
||||
|
||||
@ -1742,78 +1742,74 @@ MACHINE_CONFIG_START(namcos12_state::namcos12_mobo)
|
||||
sub_sci1.clk_handler().set(m_rtc, FUNC(rtc4543_device::clk_w)).invert();
|
||||
sub_sci1.clk_handler().append(m_settings, FUNC(namco_settings_device::clk_w));
|
||||
|
||||
MCFG_DEVICE_ADD("at28c16", AT28C16, 0)
|
||||
AT28C16(config, "at28c16", 0);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "lspeaker").front_left();
|
||||
SPEAKER(config, "rspeaker").front_right();
|
||||
|
||||
MCFG_DEVICE_ADD("c352", C352, 25401600, 288)
|
||||
MCFG_SOUND_ROUTE(0, "lspeaker", 1.00)
|
||||
MCFG_SOUND_ROUTE(1, "rspeaker", 1.00)
|
||||
//MCFG_SOUND_ROUTE(2, "lspeaker", 1.00) // Second DAC not present.
|
||||
//MCFG_SOUND_ROUTE(3, "rspeaker", 1.00)
|
||||
MACHINE_CONFIG_END
|
||||
c352_device &c352(C352(config, "c352", 25401600, 288));
|
||||
c352.add_route(0, "lspeaker", 1.00);
|
||||
c352.add_route(1, "rspeaker", 1.00);
|
||||
//c352.add_route(2, "lspeaker", 1.00); // Second DAC not present.
|
||||
//c352.add_route(3, "rspeaker", 1.00);
|
||||
}
|
||||
|
||||
// CPU PCB COH700
|
||||
MACHINE_CONFIG_START(namcos12_state::coh700)
|
||||
void namcos12_state::coh700(machine_config &config)
|
||||
{
|
||||
namcos12_mobo(config);
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", CXD8661R, XTAL(100'000'000))
|
||||
MCFG_DEVICE_PROGRAM_MAP( namcos12_map)
|
||||
|
||||
subdevice<ram_device>("maincpu:ram")->set_default_size("4M");
|
||||
|
||||
MCFG_PSX_DMA_CHANNEL_READ( "maincpu", 5, psxdma_device::read_delegate(&namcos12_state::namcos12_rom_read, this ))
|
||||
CXD8661R(config, m_maincpu, XTAL(100'000'000));
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &namcos12_state::namcos12_map);
|
||||
m_maincpu->subdevice<ram_device>("ram")->set_default_size("4M");
|
||||
m_maincpu->subdevice<psxdma_device>("dma")->install_read_handler(5, psxdma_device::read_delegate(&namcos12_state::namcos12_rom_read, this));
|
||||
|
||||
/* video hardware */
|
||||
MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8654Q, 0x200000, XTAL(53'693'175) )
|
||||
MCFG_VIDEO_SET_SCREEN("screen")
|
||||
CXD8654Q(config, "gpu", XTAL(53'693'175), 0x200000, subdevice<psxcpu_device>("maincpu")).set_screen("screen");
|
||||
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER).screen_vblank().set(FUNC(namcos12_state::namcos12_sub_irq));
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
// CPU PCB COH716
|
||||
MACHINE_CONFIG_START(namcos12_state::coh716)
|
||||
void namcos12_state::coh716(machine_config &config)
|
||||
{
|
||||
namcos12_mobo(config);
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", CXD8606BQ, XTAL(100'000'000))
|
||||
MCFG_DEVICE_PROGRAM_MAP( namcos12_map)
|
||||
|
||||
subdevice<ram_device>("maincpu:ram")->set_default_size("16M");
|
||||
|
||||
MCFG_PSX_DMA_CHANNEL_READ( "maincpu", 5, psxdma_device::read_delegate(&namcos12_state::namcos12_rom_read, this ))
|
||||
CXD8606BQ(config, m_maincpu, XTAL(100'000'000));
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &namcos12_state::namcos12_map);
|
||||
m_maincpu->subdevice<ram_device>("ram")->set_default_size("16M");
|
||||
m_maincpu->subdevice<psxdma_device>("dma")->install_read_handler(5, psxdma_device::read_delegate(&namcos12_state::namcos12_rom_read, this));
|
||||
|
||||
/* video hardware */
|
||||
MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8561CQ, 0x400000, XTAL(53'693'175) )
|
||||
MCFG_VIDEO_SET_SCREEN("screen")
|
||||
CXD8561CQ(config, "gpu", XTAL(53'693'175), 0x400000, subdevice<psxcpu_device>("maincpu")).set_screen("screen");
|
||||
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER).screen_vblank().set(FUNC(namcos12_state::namcos12_sub_irq));
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(namcos12_boothack_state::ptblank2)
|
||||
void namcos12_boothack_state::ptblank2(machine_config &config)
|
||||
{
|
||||
coh700(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_MODIFY("maincpu")
|
||||
MCFG_DEVICE_PROGRAM_MAP( ptblank2_map )
|
||||
MACHINE_CONFIG_END
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &namcos12_boothack_state::ptblank2_map);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(namcos12_boothack_state::tektagt)
|
||||
void namcos12_boothack_state::tektagt(machine_config &config)
|
||||
{
|
||||
coh700(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_MODIFY("maincpu")
|
||||
MCFG_DEVICE_PROGRAM_MAP( tektagt_map )
|
||||
MACHINE_CONFIG_END
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &namcos12_boothack_state::tektagt_map);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(namcos12_boothack_state::golgo13)
|
||||
void namcos12_boothack_state::golgo13(machine_config &config)
|
||||
{
|
||||
coh700(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_MODIFY("sub")
|
||||
MCFG_DEVICE_IO_MAP(golgo13_h8iomap)
|
||||
MACHINE_CONFIG_END
|
||||
m_sub->set_addrmap(AS_IO, &namcos12_boothack_state::golgo13_h8iomap);
|
||||
}
|
||||
|
||||
#define JVSCLOCK (XTAL(14'745'600))
|
||||
void namcos12_state::jvsmap(address_map &map)
|
||||
@ -1827,20 +1823,21 @@ void namcos12_state::jvsiomap(address_map &map)
|
||||
}
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(namcos12_boothack_state::truckk)
|
||||
void namcos12_boothack_state::truckk(machine_config &config)
|
||||
{
|
||||
coh700(config);
|
||||
// Timer at 115200*16 for the jvs serial clock
|
||||
subdevice<h8_sci_device>("sub:sci0")->set_external_clock_period(attotime::from_hz(JVSCLOCK/8));
|
||||
|
||||
MCFG_DEVICE_ADD("iocpu", H83334, JVSCLOCK )
|
||||
MCFG_DEVICE_PROGRAM_MAP( jvsmap )
|
||||
MCFG_DEVICE_IO_MAP( jvsiomap )
|
||||
h83334_device &iocpu(H83334(config, "iocpu", JVSCLOCK));
|
||||
iocpu.set_addrmap(AS_PROGRAM, &namcos12_boothack_state::jvsmap);
|
||||
iocpu.set_addrmap(AS_IO, &namcos12_boothack_state::jvsiomap);
|
||||
|
||||
subdevice<h8_sci_device>("iocpu:sci0")->tx_handler().set("sub:sci0", FUNC(h8_sci_device::rx_w));
|
||||
subdevice<h8_sci_device>("sub:sci0")->tx_handler().set("iocpu:sci0", FUNC(h8_sci_device::rx_w));
|
||||
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(2*115200))
|
||||
MACHINE_CONFIG_END
|
||||
config.m_minimum_quantum = attotime::from_hz(2*115200);
|
||||
}
|
||||
|
||||
READ16_MEMBER(namcos12_state::iob_p4_r)
|
||||
{
|
||||
@ -1898,45 +1895,45 @@ void namcos12_state::plarailjvsiomap(address_map &map)
|
||||
map(h8_device::ADC_2, h8_device::ADC_2).noprw();
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(namcos12_boothack_state::technodr)
|
||||
void namcos12_boothack_state::technodr(machine_config &config)
|
||||
{
|
||||
coh700(config);
|
||||
// Timer at 115200*16 for the jvs serial clock
|
||||
subdevice<h8_sci_device>("sub:sci0")->set_external_clock_period(attotime::from_hz(JVSCLOCK/8));
|
||||
|
||||
// modify H8/3002 map to omit direct-connected controls
|
||||
MCFG_DEVICE_MODIFY("sub")
|
||||
MCFG_DEVICE_PROGRAM_MAP(s12h8rwjvsmap)
|
||||
MCFG_DEVICE_IO_MAP(s12h8jvsiomap)
|
||||
m_sub->set_addrmap(AS_PROGRAM, &namcos12_boothack_state::s12h8rwjvsmap);
|
||||
m_sub->set_addrmap(AS_IO, &namcos12_boothack_state::s12h8jvsiomap);
|
||||
|
||||
MCFG_DEVICE_ADD("iocpu", H83334, JVSCLOCK )
|
||||
MCFG_DEVICE_PROGRAM_MAP( tdjvsmap )
|
||||
MCFG_DEVICE_IO_MAP( tdjvsiomap )
|
||||
h83334_device &iocpu(H83334(config, "iocpu", JVSCLOCK));
|
||||
iocpu.set_addrmap(AS_PROGRAM, &namcos12_boothack_state::tdjvsmap);
|
||||
iocpu.set_addrmap(AS_IO, &namcos12_boothack_state::tdjvsiomap);
|
||||
|
||||
subdevice<h8_sci_device>("iocpu:sci0")->tx_handler().set("sub:sci0", FUNC(h8_sci_device::rx_w));
|
||||
subdevice<h8_sci_device>("sub:sci0")->tx_handler().set("iocpu:sci0", FUNC(h8_sci_device::rx_w));
|
||||
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(2*115200))
|
||||
MACHINE_CONFIG_END
|
||||
config.m_minimum_quantum = attotime::from_hz(2*115200);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(namcos12_boothack_state::aplarail)
|
||||
void namcos12_boothack_state::aplarail(machine_config &config)
|
||||
{
|
||||
coh700(config);
|
||||
// Timer at 115200*16 for the jvs serial clock
|
||||
subdevice<h8_sci_device>("sub:sci0")->set_external_clock_period(attotime::from_hz(JVSCLOCK/8));
|
||||
|
||||
// modify H8/3002 map to omit direct-connected controls
|
||||
MCFG_DEVICE_MODIFY("sub")
|
||||
MCFG_DEVICE_PROGRAM_MAP(s12h8rwjvsmap)
|
||||
MCFG_DEVICE_IO_MAP(s12h8railiomap)
|
||||
m_sub->set_addrmap(AS_PROGRAM, &namcos12_boothack_state::s12h8rwjvsmap);
|
||||
m_sub->set_addrmap(AS_IO, &namcos12_boothack_state::s12h8railiomap);
|
||||
|
||||
MCFG_DEVICE_ADD("iocpu", H83334, JVSCLOCK )
|
||||
MCFG_DEVICE_PROGRAM_MAP( plarailjvsmap )
|
||||
MCFG_DEVICE_IO_MAP( plarailjvsiomap )
|
||||
h83334_device &iocpu(H83334(config, "iocpu", JVSCLOCK));
|
||||
iocpu.set_addrmap(AS_PROGRAM, &namcos12_boothack_state::plarailjvsmap);
|
||||
iocpu.set_addrmap(AS_IO, &namcos12_boothack_state::plarailjvsiomap);
|
||||
|
||||
subdevice<h8_sci_device>("iocpu:sci0")->tx_handler().set("sub:sci0", FUNC(h8_sci_device::rx_w));
|
||||
subdevice<h8_sci_device>("sub:sci0")->tx_handler().set("iocpu:sci0", FUNC(h8_sci_device::rx_w));
|
||||
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(2*115200))
|
||||
MACHINE_CONFIG_END
|
||||
config.m_minimum_quantum = attotime::from_hz(2*115200);
|
||||
}
|
||||
|
||||
static INPUT_PORTS_START( namcos12 )
|
||||
PORT_START("DSW")
|
||||
|
@ -43,6 +43,7 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
void psx_base(machine_config &config);
|
||||
void pse(machine_config &config);
|
||||
void psu(machine_config &config);
|
||||
void psj(machine_config &config);
|
||||
@ -517,106 +518,71 @@ void psx1_state::subcpu_map(address_map &map)
|
||||
map(0x0000, 0xffff).rom();
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(psx1_state::psj)
|
||||
/* basic machine hardware */
|
||||
void psx1_state::psx_base(machine_config &config)
|
||||
{
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &psx1_state::psx_map);
|
||||
m_maincpu->cd_read().set(PSXCD_TAG, FUNC(psxcd_device::read));
|
||||
m_maincpu->cd_write().set(PSXCD_TAG, FUNC(psxcd_device::write));
|
||||
m_maincpu->subdevice<ram_device>("ram")->set_default_size("2M");
|
||||
|
||||
psxcontrollerports_device &controllers(PSXCONTROLLERPORTS(config, "controllers", 0));
|
||||
controllers.rxd().set("maincpu:sio0", FUNC(psxsio0_device::write_rxd));
|
||||
controllers.dsr().set("maincpu:sio0", FUNC(psxsio0_device::write_dsr));
|
||||
PSX_CONTROLLER_PORT(config, "port1", psx_controllers, "digital_pad");
|
||||
PSX_CONTROLLER_PORT(config, "port2", psx_controllers, "digital_pad");
|
||||
|
||||
auto &sio0(*m_maincpu->subdevice<psxsio0_device>("sio0"));
|
||||
sio0.dtr_handler().set("controllers", FUNC(psxcontrollerports_device::write_dtr));
|
||||
sio0.sck_handler().set("controllers", FUNC(psxcontrollerports_device::write_sck));
|
||||
sio0.txd_handler().set("controllers", FUNC(psxcontrollerports_device::write_txd));
|
||||
|
||||
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, m_maincpu.target()));
|
||||
spu.add_route(0, "lspeaker", 1.00);
|
||||
spu.add_route(1, "rspeaker", 1.00);
|
||||
|
||||
quickload_image_device &quickload(QUICKLOAD(config, "quickload", 0));
|
||||
quickload.set_handler(snapquick_load_delegate(&QUICKLOAD_LOAD_NAME(psx1_state, psx_exe_load), this), "cpe,exe,psf,psx", 0);
|
||||
|
||||
PSX_PARALLEL_SLOT(config, "parallel", psx_parallel_devices, nullptr);
|
||||
|
||||
PSXCD(config, m_psxcd, m_maincpu, "spu");
|
||||
m_psxcd->irq_handler().set("maincpu:irq", FUNC(psxirq_device::intin2));
|
||||
subdevice<psxdma_device>("maincpu:dma")->install_read_handler(3, psxdma_device::read_delegate(&psx1_state::cd_dma_read, this));
|
||||
subdevice<psxdma_device>("maincpu:dma")->install_write_handler(3, psxdma_device::write_delegate(&psx1_state::cd_dma_write, this));
|
||||
|
||||
SOFTWARE_LIST(config, "cd_list").set_original("psx");
|
||||
}
|
||||
|
||||
void psx1_state::psj(machine_config &config)
|
||||
{
|
||||
CXD8530CQ(config, m_maincpu, XTAL(67'737'600));
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &psx1_state::psx_map);
|
||||
|
||||
subdevice<ram_device>("maincpu:ram")->set_default_size("2M");
|
||||
|
||||
MCFG_DEVICE_ADD("controllers", PSXCONTROLLERPORTS, 0)
|
||||
MCFG_PSX_CONTROLLER_PORTS_RXD_HANDLER(WRITELINE("maincpu:sio0", psxsio0_device, write_rxd))
|
||||
MCFG_PSX_CONTROLLER_PORTS_DSR_HANDLER(WRITELINE("maincpu:sio0", psxsio0_device, write_dsr))
|
||||
MCFG_PSX_CTRL_PORT_ADD("port1", psx_controllers, "digital_pad")
|
||||
MCFG_PSX_CTRL_PORT_ADD("port2", psx_controllers, "digital_pad")
|
||||
|
||||
auto &sio0(*m_maincpu->subdevice<psxsio0_device>("sio0"));
|
||||
sio0.dtr_handler().set("controllers", FUNC(psxcontrollerports_device::write_dtr));
|
||||
sio0.sck_handler().set("controllers", FUNC(psxcontrollerports_device::write_sck));
|
||||
sio0.txd_handler().set("controllers", FUNC(psxcontrollerports_device::write_txd));
|
||||
|
||||
/* video hardware */
|
||||
MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8561Q, 0x100000, XTAL(53'693'175) )
|
||||
MCFG_VIDEO_SET_SCREEN("screen")
|
||||
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "lspeaker").front_left();
|
||||
SPEAKER(config, "rspeaker").front_right();
|
||||
MCFG_SPU_ADD( "spu", XTAL(67'737'600)/2 )
|
||||
MCFG_SOUND_ROUTE( 0, "lspeaker", 1.00 )
|
||||
MCFG_SOUND_ROUTE( 1, "rspeaker", 1.00 )
|
||||
|
||||
MCFG_QUICKLOAD_ADD("quickload", psx1_state, psx_exe_load, "cpe,exe,psf,psx", 0)
|
||||
|
||||
MCFG_SOFTWARE_LIST_ADD("cd_list","psx")
|
||||
|
||||
MCFG_PSX_PARALLEL_SLOT_ADD("parallel", psx_parallel_devices, nullptr)
|
||||
|
||||
MCFG_DEVICE_MODIFY( "maincpu" )
|
||||
MCFG_PSX_CD_READ_HANDLER( READ8( PSXCD_TAG, psxcd_device, read ) )
|
||||
MCFG_PSX_CD_WRITE_HANDLER( WRITE8( PSXCD_TAG, psxcd_device, write ) )
|
||||
|
||||
PSXCD(config, m_psxcd, m_maincpu, "spu");
|
||||
m_psxcd->irq_handler().set("maincpu:irq", FUNC(psxirq_device::intin2));
|
||||
MCFG_PSX_DMA_CHANNEL_READ( "maincpu", 3, psxdma_device::read_delegate(&psx1_state::cd_dma_read, this ) )
|
||||
MCFG_PSX_DMA_CHANNEL_WRITE( "maincpu", 3, psxdma_device::write_delegate(&psx1_state::cd_dma_write, this ) )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(psx1_state::psu)
|
||||
psj(config);
|
||||
MCFG_DEVICE_ADD( "subcpu", HD63705, 4166667 ) // MC68HC05G6
|
||||
MCFG_DEVICE_PROGRAM_MAP( subcpu_map )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(psx1_state::pse)
|
||||
/* basic machine hardware */
|
||||
CXD8530AQ(config, m_maincpu, XTAL(67'737'600));
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &psx1_state::psx_map);
|
||||
|
||||
subdevice<ram_device>("maincpu:ram")->set_default_size("2M");
|
||||
|
||||
MCFG_DEVICE_ADD("controllers", PSXCONTROLLERPORTS, 0)
|
||||
MCFG_PSX_CONTROLLER_PORTS_RXD_HANDLER(WRITELINE("maincpu:sio0", psxsio0_device, write_rxd))
|
||||
MCFG_PSX_CONTROLLER_PORTS_DSR_HANDLER(WRITELINE("maincpu:sio0", psxsio0_device, write_dsr))
|
||||
MCFG_PSX_CTRL_PORT_ADD("port1", psx_controllers, "digital_pad")
|
||||
MCFG_PSX_CTRL_PORT_ADD("port2", psx_controllers, "digital_pad")
|
||||
|
||||
auto &sio0(*m_maincpu->subdevice<psxsio0_device>("sio0"));
|
||||
sio0.dtr_handler().set("controllers", FUNC(psxcontrollerports_device::write_dtr));
|
||||
sio0.sck_handler().set("controllers", FUNC(psxcontrollerports_device::write_sck));
|
||||
sio0.txd_handler().set("controllers", FUNC(psxcontrollerports_device::write_txd));
|
||||
|
||||
/* video hardware */
|
||||
/* TODO: visible area and refresh rate */
|
||||
MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8561Q, 0x100000, XTAL(53'693'175) )
|
||||
MCFG_VIDEO_SET_SCREEN("screen")
|
||||
CXD8561Q(config, "gpu", XTAL(53'693'175), 0x100000, m_maincpu.target()).set_screen("screen");
|
||||
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||
psx_base(config);
|
||||
}
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "lspeaker").front_left();
|
||||
SPEAKER(config, "rspeaker").front_right();
|
||||
MCFG_SPU_ADD( "spu", XTAL(67'737'600)/2 )
|
||||
MCFG_SOUND_ROUTE( 0, "lspeaker", 1.00 )
|
||||
MCFG_SOUND_ROUTE( 1, "rspeaker", 1.00 )
|
||||
void psx1_state::psu(machine_config &config)
|
||||
{
|
||||
psj(config);
|
||||
HD63705(config, "subcpu", 4166667).set_addrmap(AS_PROGRAM, &psx1_state::subcpu_map); // MC68HC05G6
|
||||
}
|
||||
|
||||
MCFG_QUICKLOAD_ADD("quickload", psx1_state, psx_exe_load, "cpe,exe,psf,psx", 0)
|
||||
void psx1_state::pse(machine_config &config)
|
||||
{
|
||||
CXD8530AQ(config, m_maincpu, XTAL(67'737'600));
|
||||
|
||||
MCFG_SOFTWARE_LIST_ADD("cd_list","psx")
|
||||
/* TODO: visible area and refresh rate */
|
||||
CXD8561Q(config, "gpu", XTAL(53'693'175), 0x100000, m_maincpu.target()).set_screen("screen");
|
||||
|
||||
MCFG_PSX_PARALLEL_SLOT_ADD("parallel", psx_parallel_devices, nullptr)
|
||||
|
||||
MCFG_DEVICE_MODIFY( "maincpu" )
|
||||
MCFG_PSX_CD_READ_HANDLER( READ8( PSXCD_TAG, psxcd_device, read ) )
|
||||
MCFG_PSX_CD_WRITE_HANDLER( WRITE8( PSXCD_TAG, psxcd_device, write ) )
|
||||
|
||||
PSXCD(config, m_psxcd, m_maincpu, "spu");
|
||||
m_psxcd->irq_handler().set("maincpu:irq", FUNC(psxirq_device::intin2));
|
||||
MCFG_PSX_DMA_CHANNEL_READ( "maincpu", 3, psxdma_device::read_delegate(&psx1_state::cd_dma_read, this ) )
|
||||
MCFG_PSX_DMA_CHANNEL_WRITE( "maincpu", 3, psxdma_device::write_delegate(&psx1_state::cd_dma_write, this ) )
|
||||
MACHINE_CONFIG_END
|
||||
psx_base(config);
|
||||
}
|
||||
|
||||
ROM_START( psj )
|
||||
ROM_REGION32_LE( 0x080000, "maincpu:rom", 0 )
|
||||
|
@ -359,6 +359,7 @@ public:
|
||||
m_znmcu(*this, "znmcu"),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_mn10200(*this, "taito_zoom:mn10200"),
|
||||
m_pccard(*this, "pccard"),
|
||||
m_flashbank(*this, "flashbank"),
|
||||
m_mb3773(*this, "mb3773"),
|
||||
m_zoom(*this, "taito_zoom"),
|
||||
@ -412,6 +413,7 @@ private:
|
||||
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;
|
||||
required_device<mb3773_device> m_mb3773;
|
||||
required_device<taito_zoom_device> m_zoom;
|
||||
@ -686,8 +688,8 @@ void slot_ataflash(device_slot_interface &device)
|
||||
device.option_add("ataflash", ATA_FLASH_PCCARD);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(taitogn_state::coh3002t)
|
||||
|
||||
void taitogn_state::coh3002t(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
CXD8661R(config, m_maincpu, XTAL(100'000'000));
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &taitogn_state::taitogn_map);
|
||||
@ -714,11 +716,10 @@ MACHINE_CONFIG_START(taitogn_state::coh3002t)
|
||||
m_znmcu->analog1_handler().set_ioport("ANALOG1");
|
||||
m_znmcu->analog2_handler().set_ioport("ANALOG2");
|
||||
|
||||
MCFG_DEVICE_ADD("at28c16", AT28C16, 0)
|
||||
AT28C16(config, "at28c16", 0);
|
||||
RF5C296(config, "rf5c296", 0).set_pccard("pccard");
|
||||
|
||||
MCFG_DEVICE_ADD("pccard", PCCARD_SLOT, 0)
|
||||
MCFG_DEVICE_SLOT_INTERFACE(slot_ataflash, nullptr, false)
|
||||
PCCARD_SLOT(config, m_pccard, slot_ataflash, nullptr);
|
||||
|
||||
MB3773(config, "mb3773");
|
||||
|
||||
@ -734,8 +735,7 @@ MACHINE_CONFIG_START(taitogn_state::coh3002t)
|
||||
// we don't have a 78K0 emulation core yet..
|
||||
|
||||
/* video hardware */
|
||||
MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8654Q, 0x200000, XTAL(53'693'175) )
|
||||
MCFG_VIDEO_SET_SCREEN("screen")
|
||||
CXD8654Q(config, "gpu", XTAL(53'693'175), 0x200000, subdevice<psxcpu_device>("maincpu")).set_screen("screen");
|
||||
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||
|
||||
@ -743,52 +743,51 @@ MACHINE_CONFIG_START(taitogn_state::coh3002t)
|
||||
SPEAKER(config, "lspeaker").front_left();
|
||||
SPEAKER(config, "rspeaker").front_right();
|
||||
|
||||
MCFG_SPU_ADD("spu", XTAL(67'737'600)/2)
|
||||
MCFG_SOUND_ROUTE(0, "lspeaker", 0.3)
|
||||
MCFG_SOUND_ROUTE(1, "rspeaker", 0.3)
|
||||
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);
|
||||
|
||||
TAITO_ZOOM(config, m_zoom);
|
||||
m_zoom->set_use_flash();
|
||||
m_zoom->add_route(0, "lspeaker", 1.0);
|
||||
m_zoom->add_route(1, "rspeaker", 1.0);
|
||||
|
||||
MCFG_DEVICE_MODIFY("taito_zoom:zsg2")
|
||||
MCFG_ZSG2_EXT_READ_HANDLER(READ32(*this, taitogn_state, zsg2_ext_r))
|
||||
MACHINE_CONFIG_END
|
||||
m_zoom->subdevice<zsg2_device>("zsg2")->ext_read().set(FUNC(taitogn_state::zsg2_ext_r));
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(taitogn_state::coh3002t_t1)
|
||||
void taitogn_state::coh3002t_t1(machine_config &config)
|
||||
{
|
||||
coh3002t(config);
|
||||
MCFG_DEVICE_MODIFY("pccard")
|
||||
MCFG_SLOT_DEFAULT_OPTION("taitopccard1")
|
||||
MACHINE_CONFIG_END
|
||||
m_pccard->set_default_option("taitopccard1");
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(taitogn_state::coh3002t_t2)
|
||||
void taitogn_state::coh3002t_t2(machine_config &config)
|
||||
{
|
||||
coh3002t(config);
|
||||
MCFG_DEVICE_MODIFY("pccard")
|
||||
MCFG_SLOT_DEFAULT_OPTION("taitopccard2")
|
||||
MACHINE_CONFIG_END
|
||||
m_pccard->set_default_option("taitopccard2");
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(taitogn_state::coh3002t_t1_mp)
|
||||
void taitogn_state::coh3002t_t1_mp(machine_config &config)
|
||||
{
|
||||
coh3002t_t1(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_MODIFY( "maincpu" )
|
||||
MCFG_DEVICE_PROGRAM_MAP(taitogn_mp_map)
|
||||
MACHINE_CONFIG_END
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &taitogn_state::taitogn_mp_map);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(taitogn_state::coh3002t_t2_mp)
|
||||
void taitogn_state::coh3002t_t2_mp(machine_config &config)
|
||||
{
|
||||
coh3002t_t2(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_MODIFY( "maincpu" )
|
||||
MCFG_DEVICE_PROGRAM_MAP(taitogn_mp_map)
|
||||
MACHINE_CONFIG_END
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &taitogn_state::taitogn_mp_map);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(taitogn_state::coh3002t_cf)
|
||||
void taitogn_state::coh3002t_cf(machine_config &config)
|
||||
{
|
||||
coh3002t(config);
|
||||
MCFG_DEVICE_MODIFY("pccard")
|
||||
MCFG_SLOT_DEFAULT_OPTION("taitocf")
|
||||
MACHINE_CONFIG_END
|
||||
m_pccard->set_default_option("taitocf");
|
||||
}
|
||||
|
||||
|
||||
static INPUT_PORTS_START( coh3002t )
|
||||
|
@ -1075,31 +1075,30 @@ void twinkle_state::scsi_dma_write( uint32_t *p_n_psxram, uint32_t n_address, in
|
||||
|
||||
void twinkle_state::cdrom_config(device_t *device)
|
||||
{
|
||||
device->subdevice<cdda_device>("cdda")->add_route(0, "^^speakerleft", 1.0);
|
||||
device->subdevice<cdda_device>("cdda")->add_route(1, "^^speakerright", 1.0);
|
||||
device = device->subdevice("cdda");
|
||||
MCFG_SOUND_ROUTE( 0, "^^speakerleft", 1.0 )
|
||||
MCFG_SOUND_ROUTE( 1, "^^speakerright", 1.0 )
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(twinkle_state::twinkle)
|
||||
void twinkle_state::twinkle(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD( "maincpu", CXD8530CQ, XTAL(67'737'600) )
|
||||
MCFG_DEVICE_PROGRAM_MAP( main_map )
|
||||
CXD8530CQ(config, m_maincpu, XTAL(67'737'600));
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &twinkle_state::main_map);
|
||||
m_maincpu->subdevice<psxdma_device>("dma")->install_read_handler(5, psxdma_device::read_delegate(&twinkle_state::scsi_dma_read, this));
|
||||
m_maincpu->subdevice<psxdma_device>("dma")->install_write_handler(5, psxdma_device::write_delegate(&twinkle_state::scsi_dma_write, this));
|
||||
m_maincpu->subdevice<ram_device>("ram")->set_default_size("4M");
|
||||
|
||||
subdevice<ram_device>("maincpu:ram")->set_default_size("4M");
|
||||
|
||||
MCFG_PSX_DMA_CHANNEL_READ( "maincpu", 5, psxdma_device::read_delegate(&twinkle_state::scsi_dma_read, this ) )
|
||||
MCFG_PSX_DMA_CHANNEL_WRITE( "maincpu", 5, psxdma_device::write_delegate(&twinkle_state::scsi_dma_write, this ) )
|
||||
|
||||
MCFG_DEVICE_ADD("audiocpu", M68000, 32000000/2) /* 16.000 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP( sound_map )
|
||||
MCFG_DEVICE_PERIODIC_INT_DRIVER(twinkle_state, irq1_line_assert, 60)
|
||||
MCFG_DEVICE_PERIODIC_INT_DRIVER(twinkle_state, irq2_line_assert, 60)
|
||||
M68000(config, m_audiocpu, 32000000/2); /* 16.000 MHz */
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &twinkle_state::sound_map);
|
||||
m_audiocpu->set_periodic_int(FUNC(twinkle_state::irq1_line_assert), attotime::from_hz(60));
|
||||
m_audiocpu->set_periodic_int(FUNC(twinkle_state::irq2_line_assert), attotime::from_hz(60));
|
||||
|
||||
WATCHDOG_TIMER(config, "watchdog").set_time(attotime::from_msec(1200)); /* check TD pin on LTC1232 */
|
||||
|
||||
MCFG_DEVICE_ADD("scsi", SCSI_PORT, 0)
|
||||
MCFG_SCSIDEV_ADD("scsi:" SCSI_PORT_DEVICE1, "cdrom", SCSICD, SCSI_ID_4)
|
||||
MCFG_SLOT_OPTION_MACHINE_CONFIG("cdrom", cdrom_config)
|
||||
scsi_port_device &scsi(SCSI_PORT(config, "scsi", 0));
|
||||
scsi.set_slot_device(1, "cdrom", SCSICD, DEVICE_INPUT_DEFAULTS_NAME(SCSI_ID_4));
|
||||
scsi.slot(1).set_option_machine_config("cdrom", cdrom_config);
|
||||
|
||||
AM53CF96(config, m_am53cf96, 0);
|
||||
m_am53cf96->set_scsi_port("scsi");
|
||||
@ -1129,8 +1128,7 @@ MACHINE_CONFIG_START(twinkle_state::twinkle)
|
||||
uart.out_rts_callback().set("rs232", FUNC(rs232_port_device::write_rts));
|
||||
|
||||
/* video hardware */
|
||||
MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8561Q, 0x200000, XTAL(53'693'175) )
|
||||
MCFG_VIDEO_SET_SCREEN("screen")
|
||||
CXD8561Q(config, "gpu", XTAL(53'693'175), 0x200000, subdevice<psxcpu_device>("maincpu")).set_screen("screen");
|
||||
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||
|
||||
@ -1138,15 +1136,15 @@ MACHINE_CONFIG_START(twinkle_state::twinkle)
|
||||
SPEAKER(config, "speakerleft").front_left();
|
||||
SPEAKER(config, "speakerright").front_right();
|
||||
|
||||
MCFG_SPU_ADD( "spu", XTAL(67'737'600)/2 )
|
||||
MCFG_SOUND_ROUTE( 0, "speakerleft", 0.75 )
|
||||
MCFG_SOUND_ROUTE( 1, "speakerright", 0.75 )
|
||||
spu_device &spu(SPU(config, "spu", XTAL(67'737'600)/2, subdevice<psxcpu_device>("maincpu")));
|
||||
spu.add_route(0, "speakerleft", 0.75);
|
||||
spu.add_route(1, "speakerright", 0.75);
|
||||
|
||||
MCFG_DEVICE_ADD("rfsnd", RF5C400, XTAL(33'868'800)/2);
|
||||
MCFG_DEVICE_ADDRESS_MAP(0, rf5c400_map)
|
||||
MCFG_SOUND_ROUTE(0, "speakerleft", 1.0)
|
||||
MCFG_SOUND_ROUTE(1, "speakerright", 1.0)
|
||||
MACHINE_CONFIG_END
|
||||
rf5c400_device &rf5c400(RF5C400(config, "rfsnd", XTAL(33'868'800)/2));
|
||||
rf5c400.set_addrmap(0, &twinkle_state::rf5c400_map);
|
||||
rf5c400.add_route(0, "speakerleft", 1.0);
|
||||
rf5c400.add_route(1, "speakerright", 1.0);
|
||||
}
|
||||
|
||||
void twinkle_state::twinklex(machine_config &config)
|
||||
{
|
||||
|
@ -374,8 +374,8 @@ void zn_state::zn_map(address_map &map)
|
||||
map(0x1fb20000, 0x1fb20007).r(FUNC(zn_state::unknown_r));
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(zn_state::zn1_1mb_vram)
|
||||
|
||||
void zn_state::zn1_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_map);
|
||||
@ -398,8 +398,7 @@ MACHINE_CONFIG_START(zn_state::zn1_1mb_vram)
|
||||
m_znmcu->analog2_handler().set_ioport("ANALOG2");
|
||||
|
||||
/* video hardware */
|
||||
MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8561Q, 0x100000, XTAL(53'693'175) )
|
||||
MCFG_VIDEO_SET_SCREEN(m_gpu_screen)
|
||||
CXD8561Q(config, "gpu", XTAL(53'693'175), 0x100000, subdevice<psxcpu_device>("maincpu")).set_screen(m_gpu_screen);
|
||||
|
||||
SCREEN(config, m_gpu_screen, SCREEN_TYPE_RASTER);
|
||||
|
||||
@ -409,25 +408,24 @@ MACHINE_CONFIG_START(zn_state::zn1_1mb_vram)
|
||||
|
||||
GENERIC_LATCH_8(config, m_soundlatch);
|
||||
|
||||
MCFG_SPU_ADD( "spu", XTAL(67'737'600)/2 )
|
||||
MCFG_SOUND_ROUTE(0, "lspeaker", 0.35)
|
||||
MCFG_SOUND_ROUTE(1, "rspeaker", 0.35)
|
||||
spu_device &spu(SPU(config, "spu", XTAL(67'737'600)/2, subdevice<psxcpu_device>("maincpu")));
|
||||
spu.add_route(0, "lspeaker", 0.35);
|
||||
spu.add_route(1, "rspeaker", 0.35);
|
||||
|
||||
MCFG_DEVICE_ADD("at28c16", AT28C16, 0)
|
||||
MACHINE_CONFIG_END
|
||||
AT28C16(config, "at28c16", 0);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(zn_state::zn1_2mb_vram)
|
||||
void zn_state::zn1_2mb_vram(machine_config &config)
|
||||
{
|
||||
zn1_1mb_vram(config);
|
||||
MCFG_PSXGPU_REPLACE( "maincpu", "gpu", CXD8561Q, 0x200000, XTAL(53'693'175) )
|
||||
MCFG_VIDEO_SET_SCREEN(m_gpu_screen)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(zn_state::zn2)
|
||||
CXD8561Q(config.replace(), "gpu", XTAL(53'693'175), 0x200000, subdevice<psxcpu_device>("maincpu")).set_screen("screen");
|
||||
}
|
||||
|
||||
void zn_state::zn2(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
CXD8661R(config, m_maincpu, XTAL(100'000'000));
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &zn_state::zn_map);
|
||||
|
||||
m_maincpu->subdevice<ram_device>("ram")->set_default_size("4M");
|
||||
|
||||
auto &sio0(*m_maincpu->subdevice<psxsio0_device>("sio0"));
|
||||
@ -446,8 +444,7 @@ MACHINE_CONFIG_START(zn_state::zn2)
|
||||
m_znmcu->analog2_handler().set_ioport("ANALOG2");
|
||||
|
||||
/* video hardware */
|
||||
MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8654Q, 0x200000, XTAL(53'693'175) )
|
||||
MCFG_VIDEO_SET_SCREEN(m_gpu_screen)
|
||||
CXD8654Q(config, "gpu", XTAL(53'693'175), 0x200000, subdevice<psxcpu_device>("maincpu")).set_screen(m_gpu_screen);
|
||||
|
||||
SCREEN(config, m_gpu_screen, SCREEN_TYPE_RASTER);
|
||||
|
||||
@ -457,12 +454,12 @@ MACHINE_CONFIG_START(zn_state::zn2)
|
||||
|
||||
GENERIC_LATCH_8(config, m_soundlatch);
|
||||
|
||||
MCFG_SPU_ADD( "spu", XTAL(67'737'600)/2 )
|
||||
MCFG_SOUND_ROUTE(0, "lspeaker", 0.35)
|
||||
MCFG_SOUND_ROUTE(1, "rspeaker", 0.35)
|
||||
spu_device &spu(SPU(config, "spu", XTAL(67'737'600)/2, subdevice<psxcpu_device>("maincpu")));
|
||||
spu.add_route(0, "lspeaker", 0.35);
|
||||
spu.add_route(1, "rspeaker", 0.35);
|
||||
|
||||
MCFG_DEVICE_ADD("at28c16", AT28C16, 0)
|
||||
MACHINE_CONFIG_END
|
||||
AT28C16(config, "at28c16", 0);
|
||||
}
|
||||
|
||||
void zn_state::gameboard_cat702(machine_config &config)
|
||||
{
|
||||
@ -657,52 +654,55 @@ void zn_state::qsound_portmap(address_map &map)
|
||||
map(0x00, 0x00).r(m_soundlatch, FUNC(generic_latch_8_device::read));
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(zn_state::coh1000c)
|
||||
void zn_state::coh1000c(machine_config &config)
|
||||
{
|
||||
zn1_1mb_vram(config);
|
||||
gameboard_cat702(config);
|
||||
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &zn_state::coh1000c_map);
|
||||
|
||||
MCFG_DEVICE_ADD(m_audiocpu, Z80, XTAL(8'000'000))
|
||||
MCFG_DEVICE_PROGRAM_MAP(qsound_map)
|
||||
MCFG_DEVICE_IO_MAP(qsound_portmap)
|
||||
MCFG_DEVICE_PERIODIC_INT_DRIVER(zn_state, qsound_interrupt, 250) // measured (cps2.cpp)
|
||||
Z80(config, m_audiocpu, XTAL(8'000'000));
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &zn_state::qsound_map);
|
||||
m_audiocpu->set_addrmap(AS_IO, &zn_state::qsound_portmap);
|
||||
m_audiocpu->set_periodic_int(FUNC(zn_state::qsound_interrupt), attotime::from_hz(250)); // measured (cps2.cpp)
|
||||
|
||||
MCFG_MACHINE_START_OVERRIDE(zn_state, coh1000c)
|
||||
MCFG_MACHINE_RESET_OVERRIDE(zn_state, coh1000c)
|
||||
|
||||
m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
|
||||
|
||||
MCFG_DEVICE_ADD("qsound", QSOUND)
|
||||
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
|
||||
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
|
||||
MACHINE_CONFIG_END
|
||||
qsound_device &qsound(QSOUND(config, "qsound"));
|
||||
qsound.add_route(0, "lspeaker", 1.0);
|
||||
qsound.add_route(1, "rspeaker", 1.0);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(zn_state::glpracr)
|
||||
void zn_state::glpracr(machine_config &config)
|
||||
{
|
||||
coh1000c(config);
|
||||
MCFG_MACHINE_RESET_OVERRIDE(zn_state, glpracr)
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(zn_state::coh1002c)
|
||||
void zn_state::coh1002c(machine_config &config)
|
||||
{
|
||||
zn1_2mb_vram(config);
|
||||
gameboard_cat702(config);
|
||||
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &zn_state::coh1000c_map);
|
||||
|
||||
MCFG_DEVICE_ADD(m_audiocpu, Z80, XTAL(8'000'000))
|
||||
MCFG_DEVICE_PROGRAM_MAP(qsound_map)
|
||||
MCFG_DEVICE_IO_MAP(qsound_portmap)
|
||||
MCFG_DEVICE_PERIODIC_INT_DRIVER(zn_state, qsound_interrupt, 250) // measured (cps2.cpp)
|
||||
Z80(config, m_audiocpu, XTAL(8'000'000));
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &zn_state::qsound_map);
|
||||
m_audiocpu->set_addrmap(AS_IO, &zn_state::qsound_portmap);
|
||||
m_audiocpu->set_periodic_int(FUNC(zn_state::qsound_interrupt), attotime::from_hz(250)); // measured (cps2.cpp)
|
||||
|
||||
MCFG_MACHINE_START_OVERRIDE(zn_state, coh1000c)
|
||||
MCFG_MACHINE_RESET_OVERRIDE(zn_state, coh1000c)
|
||||
|
||||
m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
|
||||
|
||||
MCFG_DEVICE_ADD("qsound", QSOUND)
|
||||
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
|
||||
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
|
||||
MACHINE_CONFIG_END
|
||||
qsound_device &qsound(QSOUND(config, "qsound"));
|
||||
qsound.add_route(0, "lspeaker", 1.0);
|
||||
qsound.add_route(1, "rspeaker", 1.0);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@ -845,26 +845,27 @@ Notes:
|
||||
Unpopulated sockets on Rival Schools - None
|
||||
*/
|
||||
|
||||
MACHINE_CONFIG_START(zn_state::coh3002c)
|
||||
void zn_state::coh3002c(machine_config &config)
|
||||
{
|
||||
zn2(config);
|
||||
gameboard_cat702(config);
|
||||
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &zn_state::coh1000c_map);
|
||||
|
||||
MCFG_DEVICE_ADD(m_audiocpu, Z80, XTAL(8'000'000))
|
||||
MCFG_DEVICE_PROGRAM_MAP(qsound_map)
|
||||
MCFG_DEVICE_IO_MAP(qsound_portmap)
|
||||
MCFG_DEVICE_PERIODIC_INT_DRIVER(zn_state, qsound_interrupt, 250) // measured (cps2.cpp)
|
||||
Z80(config, m_audiocpu, XTAL(8'000'000));
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &zn_state::qsound_map);
|
||||
m_audiocpu->set_addrmap(AS_IO, &zn_state::qsound_portmap);
|
||||
m_audiocpu->set_periodic_int(FUNC(zn_state::qsound_interrupt), attotime::from_hz(250)); // measured (cps2.cpp)
|
||||
|
||||
MCFG_MACHINE_START_OVERRIDE(zn_state, coh1000c)
|
||||
MCFG_MACHINE_RESET_OVERRIDE(zn_state, coh1000c)
|
||||
|
||||
m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
|
||||
|
||||
MCFG_DEVICE_ADD("qsound", QSOUND)
|
||||
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
|
||||
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
|
||||
MACHINE_CONFIG_END
|
||||
qsound_device &qsound(QSOUND(config, "qsound"));
|
||||
qsound.add_route(0, "lspeaker", 1.0);
|
||||
qsound.add_route(1, "rspeaker", 1.0);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@ -1142,14 +1143,15 @@ void zn_state::fx1a_sound_map(address_map &map)
|
||||
}
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(zn_state::coh1000ta)
|
||||
void zn_state::coh1000ta(machine_config &config)
|
||||
{
|
||||
zn1_1mb_vram(config);
|
||||
gameboard_cat702(config);
|
||||
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &zn_state::coh1000ta_map);
|
||||
|
||||
MCFG_DEVICE_ADD(m_audiocpu, Z80, XTAL(16'000'000) / 4) /* 4 MHz */
|
||||
MCFG_DEVICE_PROGRAM_MAP(fx1a_sound_map)
|
||||
Z80(config, m_audiocpu, XTAL(16'000'000) / 4); /* 4 MHz */
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &zn_state::fx1a_sound_map);
|
||||
|
||||
MCFG_MACHINE_START_OVERRIDE(zn_state, coh1000ta)
|
||||
MCFG_MACHINE_RESET_OVERRIDE(zn_state, coh1000ta)
|
||||
@ -1166,7 +1168,7 @@ MACHINE_CONFIG_START(zn_state::coh1000ta)
|
||||
tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0));
|
||||
tc0140syt.set_master_tag(m_maincpu);
|
||||
tc0140syt.set_slave_tag(m_audiocpu);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(zn_state::fx1b_fram_w)
|
||||
{
|
||||
@ -1199,7 +1201,8 @@ void zn_state::init_coh1000tb()
|
||||
save_pointer(NAME(m_fx1b_fram), 0x200);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(zn_state::coh1000tb)
|
||||
void zn_state::coh1000tb(machine_config &config)
|
||||
{
|
||||
zn1_1mb_vram(config);
|
||||
gameboard_cat702(config);
|
||||
|
||||
@ -1213,17 +1216,17 @@ MACHINE_CONFIG_START(zn_state::coh1000tb)
|
||||
MB3773(config, "mb3773");
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_DEVICE_MODIFY("spu")
|
||||
MCFG_SOUND_ROUTES_RESET()
|
||||
MCFG_SOUND_ROUTE(0, "lspeaker", 0.3)
|
||||
MCFG_SOUND_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->add_route(0, "lspeaker", 1.0);
|
||||
m_zoom->add_route(1, "rspeaker", 1.0);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(zn_state::coh1002tb)
|
||||
void zn_state::coh1002tb(machine_config &config)
|
||||
{
|
||||
zn1_2mb_vram(config);
|
||||
gameboard_cat702(config);
|
||||
|
||||
@ -1237,15 +1240,14 @@ MACHINE_CONFIG_START(zn_state::coh1002tb)
|
||||
MB3773(config, "mb3773");
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_DEVICE_MODIFY("spu")
|
||||
MCFG_SOUND_ROUTES_RESET()
|
||||
MCFG_SOUND_ROUTE(0, "lspeaker", 0.3)
|
||||
MCFG_SOUND_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->add_route(0, "lspeaker", 1.0);
|
||||
m_zoom->add_route(1, "rspeaker", 1.0);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@ -1473,21 +1475,20 @@ void zn_state::coh1000w_map(address_map &map)
|
||||
map(0x1f7f4000, 0x1f7f4fff).rw(FUNC(zn_state::vt83c461_32_r), FUNC(zn_state::vt83c461_32_w));
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(zn_state::coh1000w)
|
||||
void zn_state::coh1000w(machine_config &config)
|
||||
{
|
||||
zn1_2mb_vram(config);
|
||||
gameboard_cat702(config);
|
||||
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &zn_state::coh1000w_map);
|
||||
|
||||
subdevice<ram_device>("maincpu:ram")->set_default_size("8M");
|
||||
m_maincpu->subdevice<ram_device>("ram")->set_default_size("8M");
|
||||
m_maincpu->subdevice<psxdma_device>("dma")->install_read_handler(5, psxdma_device::read_delegate(&zn_state::atpsx_dma_read, this));
|
||||
m_maincpu->subdevice<psxdma_device>("dma")->install_write_handler(5, psxdma_device::write_delegate(&zn_state::atpsx_dma_write, this));
|
||||
|
||||
WATCHDOG_TIMER(config, "watchdog").set_time(attotime::from_msec(600)); /* 600ms Ds1232 TD floating */
|
||||
|
||||
VT83C461(config, m_vt83c461).options(ata_devices, "hdd", nullptr, true);
|
||||
m_vt83c461->irq_handler().set("maincpu:irq", FUNC(psxirq_device::intin10));
|
||||
MCFG_PSX_DMA_CHANNEL_READ( "maincpu", 5, psxdma_device::read_delegate(&zn_state::atpsx_dma_read, this ) )
|
||||
MCFG_PSX_DMA_CHANNEL_WRITE( "maincpu", 5, psxdma_device::write_delegate(&zn_state::atpsx_dma_write, this ) )
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@ -1694,40 +1695,42 @@ void zn_state::oki_map(address_map &map)
|
||||
map(0x30000, 0x3ffff).bankr("okibank");
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(zn_state::coh1002e)
|
||||
void zn_state::coh1002e(machine_config &config)
|
||||
{
|
||||
zn1_2mb_vram(config);
|
||||
gameboard_cat702(config);
|
||||
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &zn_state::coh1002e_map);
|
||||
|
||||
MCFG_DEVICE_ADD(m_audiocpu, M68000, XTAL(12'000'000))
|
||||
MCFG_DEVICE_PROGRAM_MAP(psarc_snd_map)
|
||||
M68000(config, m_audiocpu, XTAL(12'000'000));
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &zn_state::psarc_snd_map);
|
||||
|
||||
MCFG_MACHINE_START_OVERRIDE(zn_state, coh1002e)
|
||||
MCFG_MACHINE_RESET_OVERRIDE(zn_state, coh1002e)
|
||||
|
||||
MCFG_DEVICE_ADD("ymf", YMF271, XTAL(16'934'400))
|
||||
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
|
||||
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
|
||||
MACHINE_CONFIG_END
|
||||
ymf271_device &ymf(YMF271(config, "ymf", XTAL(16'934'400)));
|
||||
ymf.add_route(0, "lspeaker", 1.0);
|
||||
ymf.add_route(1, "rspeaker", 1.0);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(zn_state::beastrzrb)
|
||||
void zn_state::beastrzrb(machine_config &config)
|
||||
{
|
||||
zn1_2mb_vram(config);
|
||||
gameboard_cat702(config); // TODO: hook up bootleg protection
|
||||
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &zn_state::coh1002e_map);
|
||||
|
||||
MCFG_DEVICE_ADD(m_audiocpu, AT89C4051, XTAL(12'000'000)) // clock unverified
|
||||
MCFG_DEVICE_PROGRAM_MAP(beastrzrb_snd_map)
|
||||
AT89C4051(config, m_audiocpu, XTAL(12'000'000)); // clock unverified
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &zn_state::beastrzrb_snd_map);
|
||||
|
||||
MCFG_MACHINE_START_OVERRIDE(zn_state, coh1002e)
|
||||
MCFG_MACHINE_RESET_OVERRIDE(zn_state, coh1002e)
|
||||
|
||||
MCFG_DEVICE_ADD("oki", OKIM6295, 1000000, okim6295_device::PIN7_LOW) // clock frequency & pin 7 not verified
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
|
||||
MCFG_DEVICE_ADDRESS_MAP(0, oki_map)
|
||||
MACHINE_CONFIG_END
|
||||
okim6295_device &oki(OKIM6295(config, "oki", 1000000, okim6295_device::PIN7_LOW)); // clock frequency & pin 7 not verified
|
||||
oki.add_route(ALL_OUTPUTS, "lspeaker", 1.0);
|
||||
oki.add_route(ALL_OUTPUTS, "rspeaker", 1.0);
|
||||
oki.set_addrmap(0, &zn_state::oki_map);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
@ -1852,7 +1855,8 @@ MACHINE_RESET_MEMBER(zn_state,bam2)
|
||||
m_rombank[0]->set_entry( 1 );
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(zn_state::bam2)
|
||||
void zn_state::bam2(machine_config &config)
|
||||
{
|
||||
zn1_2mb_vram(config);
|
||||
gameboard_cat702(config);
|
||||
|
||||
@ -1860,7 +1864,7 @@ MACHINE_CONFIG_START(zn_state::bam2)
|
||||
|
||||
MCFG_MACHINE_START_OVERRIDE(zn_state, bam2)
|
||||
MCFG_MACHINE_RESET_OVERRIDE(zn_state, bam2)
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@ -2203,14 +2207,16 @@ void zn_state::jdredd_map(address_map &map)
|
||||
map(0x1fbfff90, 0x1fbfff9f).rw("ata", FUNC(ata_interface_device::cs0_r), FUNC(ata_interface_device::cs0_w));
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(zn_state::coh1000a)
|
||||
void zn_state::coh1000a(machine_config &config)
|
||||
{
|
||||
zn1_2mb_vram(config);
|
||||
gameboard_cat702(config);
|
||||
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &zn_state::coh1000a_map);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(zn_state::nbajamex)
|
||||
void zn_state::nbajamex(machine_config &config)
|
||||
{
|
||||
coh1000a(config);
|
||||
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &zn_state::nbajamex_map);
|
||||
@ -2222,10 +2228,11 @@ MACHINE_CONFIG_START(zn_state::nbajamex)
|
||||
|
||||
ADDRESS_MAP_BANK(config, "nbajamex_bankmap").set_map(&zn_state::nbajamex_bank_map).set_options(ENDIANNESS_LITTLE, 32, 24, 0x800000);
|
||||
|
||||
MCFG_DEVICE_ADD("rax", ACCLAIM_RAX, 0)
|
||||
MACHINE_CONFIG_END
|
||||
ACCLAIM_RAX(config, "rax", 0);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(zn_state::jdredd)
|
||||
void zn_state::jdredd(machine_config &config)
|
||||
{
|
||||
coh1000a(config);
|
||||
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &zn_state::jdredd_map);
|
||||
@ -2234,7 +2241,7 @@ MACHINE_CONFIG_START(zn_state::jdredd)
|
||||
|
||||
ata_interface_device &ata(ATA_INTERFACE(config, "ata").options(ata_devices, "hdd", nullptr, true));
|
||||
ata.irq_handler().set("maincpu:irq", FUNC(psxirq_device::intin10));
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@ -2392,14 +2399,15 @@ void zn_state::atlus_snd_map(address_map &map)
|
||||
}
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(zn_state::coh1001l)
|
||||
void zn_state::coh1001l(machine_config &config)
|
||||
{
|
||||
zn1_2mb_vram(config);
|
||||
gameboard_cat702(config);
|
||||
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &zn_state::coh1001l_map);
|
||||
|
||||
MCFG_DEVICE_ADD(m_audiocpu, M68000, XTAL(10'000'000))
|
||||
MCFG_DEVICE_PROGRAM_MAP(atlus_snd_map)
|
||||
M68000(config, m_audiocpu, XTAL(10'000'000));
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &zn_state::atlus_snd_map);
|
||||
|
||||
MCFG_MACHINE_START_OVERRIDE(zn_state, coh1001l)
|
||||
MCFG_MACHINE_RESET_OVERRIDE(zn_state, coh1001l)
|
||||
@ -2411,7 +2419,7 @@ MACHINE_CONFIG_START(zn_state::coh1001l)
|
||||
ymz.irq_handler().set_inputline(m_audiocpu, 2);
|
||||
ymz.add_route(0, "lspeaker", 0.35);
|
||||
ymz.add_route(1, "rspeaker", 0.35);
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@ -2449,7 +2457,8 @@ MACHINE_RESET_MEMBER(zn_state,coh1002v)
|
||||
m_rombank[0]->set_entry( 0 );
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(zn_state::coh1002v)
|
||||
void zn_state::coh1002v(machine_config &config)
|
||||
{
|
||||
zn1_2mb_vram(config);
|
||||
gameboard_cat702(config);
|
||||
|
||||
@ -2457,7 +2466,7 @@ MACHINE_CONFIG_START(zn_state::coh1002v)
|
||||
|
||||
MCFG_MACHINE_START_OVERRIDE(zn_state, coh1002v)
|
||||
MCFG_MACHINE_RESET_OVERRIDE(zn_state, coh1002v)
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@ -2640,7 +2649,8 @@ MACHINE_RESET_MEMBER(zn_state,coh1002m)
|
||||
m_rombank[0]->set_entry( 0 );
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(zn_state::coh1002m)
|
||||
void zn_state::coh1002m(machine_config &config)
|
||||
{
|
||||
zn1_2mb_vram(config);
|
||||
gameboard_cat702(config);
|
||||
|
||||
@ -2648,7 +2658,7 @@ MACHINE_CONFIG_START(zn_state::coh1002m)
|
||||
|
||||
MCFG_MACHINE_START_OVERRIDE(zn_state, coh1002m)
|
||||
MCFG_MACHINE_RESET_OVERRIDE(zn_state, coh1002m)
|
||||
MACHINE_CONFIG_END
|
||||
}
|
||||
|
||||
READ8_MEMBER(zn_state::cbaj_sound_main_status_r)
|
||||
{
|
||||
@ -2696,33 +2706,35 @@ void zn_state::coh1002ml_link_port_map(address_map &map)
|
||||
map.global_mask(0xff);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(zn_state::coh1002msnd)
|
||||
void zn_state::coh1002msnd(machine_config &config)
|
||||
{
|
||||
coh1002m(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &zn_state::coh1002msnd_map);
|
||||
|
||||
MCFG_DEVICE_ADD(m_audiocpu, Z80, XTAL(32'000'000)/8)
|
||||
MCFG_DEVICE_PROGRAM_MAP(cbaj_z80_map)
|
||||
MCFG_DEVICE_IO_MAP(cbaj_z80_port_map)
|
||||
Z80(config, m_audiocpu, XTAL(32'000'000)/8);
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &zn_state::cbaj_z80_map);
|
||||
m_audiocpu->set_addrmap(AS_IO, &zn_state::cbaj_z80_port_map);
|
||||
|
||||
FIFO7200(config, m_cbaj_fifo[0], 0x400); // LH540202
|
||||
FIFO7200(config, m_cbaj_fifo[1], 0x400); // "
|
||||
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
|
||||
config.m_minimum_quantum = attotime::from_hz(6000);
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_DEVICE_ADD("ymz", YMZ280B, XTAL(16'934'400))
|
||||
MCFG_SOUND_ROUTE(0, "lspeaker", 0.35)
|
||||
MCFG_SOUND_ROUTE(1, "rspeaker", 0.35)
|
||||
MACHINE_CONFIG_END
|
||||
ymz280b_device &ymz(YMZ280B(config, "ymz", XTAL(16'934'400)));
|
||||
ymz.add_route(0, "lspeaker", 0.35);
|
||||
ymz.add_route(1, "rspeaker", 0.35);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(zn_state::coh1002ml)
|
||||
void zn_state::coh1002ml(machine_config &config)
|
||||
{
|
||||
coh1002m(config);
|
||||
MCFG_DEVICE_ADD("link", Z80, 4000000) // ?
|
||||
MCFG_DEVICE_PROGRAM_MAP(coh1002ml_link_map)
|
||||
MCFG_DEVICE_IO_MAP(coh1002ml_link_port_map)
|
||||
MACHINE_CONFIG_END
|
||||
z80_device &link(Z80(config, "link", 4000000)); // ?
|
||||
link.set_addrmap(AS_PROGRAM, &zn_state::coh1002ml_link_map);
|
||||
link.set_addrmap(AS_IO, &zn_state::coh1002ml_link_port_map);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user