mirror of
https://github.com/holub/mame
synced 2025-05-09 15:51:48 +03:00
added some inputs to classic arcade pinball (nw)
This commit is contained in:
parent
24091af194
commit
f4457050e7
@ -17,13 +17,26 @@
|
||||
DEFINE_DEVICE_TYPE(SPG110, spg110_device, "spg110", "SPG110 System-on-a-Chip")
|
||||
|
||||
spg110_device::spg110_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_memory_interface(mconfig, *this),
|
||||
m_space_config("spg110", ENDIANNESS_BIG, 16, 32, 0, address_map_constructor(FUNC(spg110_device::map_video), this)),
|
||||
m_cpu(*this, finder_base::DUMMY_TAG),
|
||||
m_palette(*this, "palette"),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_palram(*this, "palram")
|
||||
: device_t(mconfig, type, tag, owner, clock)
|
||||
, device_memory_interface(mconfig, *this)
|
||||
, m_space_config("spg110", ENDIANNESS_BIG, 16, 32, 0, address_map_constructor(FUNC(spg110_device::map_video), this))
|
||||
, m_cpu(*this, finder_base::DUMMY_TAG)
|
||||
, m_screen(*this, finder_base::DUMMY_TAG)
|
||||
, m_palette(*this, "palette")
|
||||
, m_gfxdecode(*this, "gfxdecode")
|
||||
, m_palram(*this, "palram")
|
||||
, m_spg_io(*this, "spg_io")
|
||||
, m_porta_out(*this)
|
||||
, m_portb_out(*this)
|
||||
, m_portc_out(*this)
|
||||
, m_porta_in(*this)
|
||||
, m_portb_in(*this)
|
||||
, m_portc_in(*this)
|
||||
, m_adc_in{{*this}, {*this}}
|
||||
, m_eeprom_w(*this)
|
||||
, m_eeprom_r(*this)
|
||||
, m_uart_tx(*this)
|
||||
, m_chip_sel(*this)
|
||||
{
|
||||
}
|
||||
|
||||
@ -210,7 +223,27 @@ static GFXDECODE_START( gfx )
|
||||
GFXDECODE_ENTRY( ":maincpu", 0, charlayout6, 0, 16 ) // correct for lots of the tiles inc. startup text
|
||||
GFXDECODE_END
|
||||
|
||||
|
||||
void spg110_device::configure_spg_io(spg2xx_io_device* io)
|
||||
{
|
||||
io->porta_in().set(FUNC(spg110_device::porta_r));
|
||||
io->portb_in().set(FUNC(spg110_device::portb_r));
|
||||
io->portc_in().set(FUNC(spg110_device::portc_r));
|
||||
io->porta_out().set(FUNC(spg110_device::porta_w));
|
||||
io->portb_out().set(FUNC(spg110_device::portb_w));
|
||||
io->portc_out().set(FUNC(spg110_device::portc_w));
|
||||
io->adc_in<0>().set(FUNC(spg110_device::adc_r<0>));
|
||||
io->adc_in<1>().set(FUNC(spg110_device::adc_r<1>));
|
||||
io->eeprom_w().set(FUNC(spg110_device::eepromx_w));
|
||||
io->eeprom_r().set(FUNC(spg110_device::eepromx_r));
|
||||
io->uart_tx().set(FUNC(spg110_device::tx_w));
|
||||
io->chip_select().set(FUNC(spg110_device::cs_w));
|
||||
// io->pal_read_callback().set(FUNC(spg110_device::get_pal_r));
|
||||
// io->write_timer_irq_callback().set(FUNC(spg110_device::timerirq_w));
|
||||
// io->write_uart_adc_irq_callback().set(FUNC(spg110_device::uartirq_w));
|
||||
// io->write_external_irq_callback().set(FUNC(spg110_device::extirq_w));
|
||||
// io->write_ffrq_tmr1_irq_callback().set(FUNC(spg110_device::ffreq1_w));
|
||||
// io->write_ffrq_tmr2_irq_callback().set(FUNC(spg110_device::ffreq2_w));
|
||||
}
|
||||
|
||||
void spg110_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
@ -222,6 +255,10 @@ void spg110_device::device_add_mconfig(machine_config &config)
|
||||
PALETTE(config, m_palette, palette_device::BLACK, 256);
|
||||
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx);
|
||||
|
||||
SPG24X_IO(config, m_spg_io, DERIVED_CLOCK(1, 1), m_cpu, m_screen);
|
||||
configure_spg_io(m_spg_io);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -250,25 +287,6 @@ WRITE16_MEMBER(spg110_device::spg110_2063_w)
|
||||
m_cpu->set_state_unsynced(UNSP_IRQ0_LINE, CLEAR_LINE);
|
||||
}
|
||||
|
||||
READ16_MEMBER(spg110_device::datasegment_r)
|
||||
{
|
||||
uint16_t val = m_cpu->get_ds();
|
||||
return val;
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(spg110_device::datasegment_w)
|
||||
{
|
||||
m_cpu->set_ds(data & 0x3f);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(spg110_device::spg110_3221_w)
|
||||
{
|
||||
/* first write on startup? */
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(spg110_device::spg110_3223_w) { }
|
||||
WRITE16_MEMBER(spg110_device::spg110_3225_w) { }
|
||||
|
||||
|
||||
WRITE16_MEMBER(spg110_device::spg110_201c_w) { }
|
||||
WRITE16_MEMBER(spg110_device::spg110_2020_w) { }
|
||||
@ -351,17 +369,6 @@ READ16_MEMBER(spg110_device::dma_len_status_r)
|
||||
READ16_MEMBER(spg110_device::spg110_2037_r) { return 0x0000; }
|
||||
READ16_MEMBER(spg110_device::spg110_2042_r) { return 0x0000; }
|
||||
|
||||
WRITE16_MEMBER(spg110_device::spg110_3200_w) { }
|
||||
WRITE16_MEMBER(spg110_device::spg110_3201_w) { }
|
||||
WRITE16_MEMBER(spg110_device::spg110_3203_w) { }
|
||||
WRITE16_MEMBER(spg110_device::spg110_3204_w) { }
|
||||
WRITE16_MEMBER(spg110_device::spg110_3206_w) { }
|
||||
WRITE16_MEMBER(spg110_device::spg110_3208_w) { }
|
||||
WRITE16_MEMBER(spg110_device::spg110_3209_w) { }
|
||||
|
||||
READ16_MEMBER(spg110_device::spg110_3201_r) { return 0x0000; }
|
||||
READ16_MEMBER(spg110_device::spg110_3225_r) { return 0x0000; }
|
||||
READ16_MEMBER(spg110_device::spg110_322c_r) { return 0x0000; }
|
||||
|
||||
WRITE16_MEMBER(spg110_device::spg110_3100_w) { }
|
||||
WRITE16_MEMBER(spg110_device::spg110_3101_w) { }
|
||||
@ -520,24 +527,7 @@ void spg110_device::map(address_map &map)
|
||||
map(0x00310f, 0x00310f).r(FUNC(spg110_device::spg110_310f_r));
|
||||
|
||||
// 0032xx looks like it could be the same as 003d00 on spg2xx
|
||||
map(0x003200, 0x003200).w(FUNC(spg110_device::spg110_3200_w));
|
||||
|
||||
map(0x003201, 0x003201).rw(FUNC(spg110_device::spg110_3201_r),FUNC(spg110_device::spg110_3201_w));
|
||||
|
||||
map(0x003203, 0x003203).w(FUNC(spg110_device::spg110_3203_w));
|
||||
map(0x003204, 0x003204).w(FUNC(spg110_device::spg110_3204_w));
|
||||
|
||||
map(0x003206, 0x003206).w(FUNC(spg110_device::spg110_3206_w));
|
||||
|
||||
map(0x003208, 0x003208).w(FUNC(spg110_device::spg110_3208_w));
|
||||
map(0x003209, 0x003209).w(FUNC(spg110_device::spg110_3209_w));
|
||||
|
||||
map(0x003221, 0x003221).w(FUNC(spg110_device::spg110_3221_w));
|
||||
map(0x003223, 0x003223).w(FUNC(spg110_device::spg110_3223_w));
|
||||
map(0x003225, 0x003225).rw(FUNC(spg110_device::spg110_3225_r),FUNC(spg110_device::spg110_3225_w));
|
||||
map(0x00322c, 0x00322c).r(FUNC(spg110_device::spg110_322c_r));
|
||||
|
||||
map(0x00322f, 0x00322f).rw(FUNC(spg110_device::datasegment_r),FUNC(spg110_device::datasegment_w));
|
||||
map(0x003200, 0x00322f).rw(m_spg_io, FUNC(spg2xx_io_device::io_r), FUNC(spg2xx_io_device::io_w));
|
||||
}
|
||||
|
||||
// this seems to be a different, non-cpu mapped space only accessible via the DMA?
|
||||
@ -574,6 +564,20 @@ void spg110_device::device_start()
|
||||
save_item(NAME(m_bg_scrollx));
|
||||
save_item(NAME(m_bg_scrolly));
|
||||
save_item(NAME(m_2036_scroll));
|
||||
|
||||
m_porta_out.resolve_safe();
|
||||
m_portb_out.resolve_safe();
|
||||
m_portc_out.resolve_safe();
|
||||
m_porta_in.resolve_safe(0);
|
||||
m_portb_in.resolve_safe(0);
|
||||
m_portc_in.resolve_safe(0);
|
||||
m_adc_in[0].resolve_safe(0x0fff);
|
||||
m_adc_in[1].resolve_safe(0x0fff);
|
||||
m_eeprom_w.resolve_safe();
|
||||
m_eeprom_r.resolve_safe(0);
|
||||
m_uart_tx.resolve_safe();
|
||||
m_chip_sel.resolve_safe();
|
||||
|
||||
}
|
||||
|
||||
void spg110_device::device_reset()
|
||||
|
@ -9,6 +9,7 @@
|
||||
//#include "spg2xx.h"
|
||||
#include "cpu/unsp/unsp.h"
|
||||
#include "emupal.h"
|
||||
#include "spg2xx_io.h"
|
||||
|
||||
|
||||
class spg110_device : public device_t, public device_memory_interface
|
||||
@ -18,11 +19,12 @@ public:
|
||||
spg110_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
|
||||
spg110_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
template <typename T>
|
||||
spg110_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, T &&cpu_tag)
|
||||
template <typename T, typename U>
|
||||
spg110_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, T &&cpu_tag, U &&screen_tag)
|
||||
: spg110_device(mconfig, tag, owner, clock)
|
||||
{
|
||||
m_cpu.set_tag(std::forward<T>(cpu_tag));
|
||||
m_screen.set_tag(std::forward<U>(screen_tag));
|
||||
}
|
||||
|
||||
void map(address_map &map);
|
||||
@ -32,6 +34,22 @@ public:
|
||||
uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
DECLARE_WRITE_LINE_MEMBER(vblank);
|
||||
|
||||
auto porta_out() { return m_porta_out.bind(); }
|
||||
auto portb_out() { return m_portb_out.bind(); }
|
||||
auto portc_out() { return m_portc_out.bind(); }
|
||||
auto porta_in() { return m_porta_in.bind(); }
|
||||
auto portb_in() { return m_portb_in.bind(); }
|
||||
auto portc_in() { return m_portc_in.bind(); }
|
||||
|
||||
template <size_t Line> auto adc_in() { return m_adc_in[Line].bind(); }
|
||||
|
||||
auto eeprom_w() { return m_eeprom_w.bind(); }
|
||||
auto eeprom_r() { return m_eeprom_r.bind(); }
|
||||
|
||||
auto uart_tx() { return m_uart_tx.bind(); }
|
||||
|
||||
auto chip_select() { return m_chip_sel.bind(); }
|
||||
|
||||
protected:
|
||||
virtual void device_start() override;
|
||||
virtual void device_reset() override;
|
||||
@ -66,9 +84,11 @@ private:
|
||||
};
|
||||
|
||||
required_device<unsp_device> m_cpu;
|
||||
required_device<screen_device> m_screen;
|
||||
required_device<palette_device> m_palette;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_shared_ptr<uint16_t> m_palram;
|
||||
required_device<spg2xx_io_device> m_spg_io;
|
||||
|
||||
//TIMER_CALLBACK_MEMBER(test_timer);
|
||||
//emu_timer *m_test_timer;
|
||||
@ -132,26 +152,6 @@ private:
|
||||
DECLARE_READ16_MEMBER(dma_len_status_r);
|
||||
DECLARE_READ16_MEMBER(spg110_2063_r);
|
||||
|
||||
DECLARE_WRITE16_MEMBER(spg110_3200_w);
|
||||
DECLARE_WRITE16_MEMBER(spg110_3201_w);
|
||||
DECLARE_WRITE16_MEMBER(spg110_3203_w);
|
||||
DECLARE_WRITE16_MEMBER(spg110_3204_w);
|
||||
DECLARE_WRITE16_MEMBER(spg110_3206_w);
|
||||
DECLARE_WRITE16_MEMBER(spg110_3208_w);
|
||||
DECLARE_WRITE16_MEMBER(spg110_3209_w);
|
||||
|
||||
DECLARE_READ16_MEMBER(spg110_3201_r);
|
||||
|
||||
DECLARE_WRITE16_MEMBER(spg110_3221_w);
|
||||
DECLARE_WRITE16_MEMBER(spg110_3223_w);
|
||||
DECLARE_WRITE16_MEMBER(spg110_3225_w);
|
||||
|
||||
DECLARE_READ16_MEMBER(spg110_3225_r);
|
||||
DECLARE_READ16_MEMBER(spg110_322c_r);
|
||||
|
||||
READ16_MEMBER(datasegment_r);
|
||||
WRITE16_MEMBER(datasegment_w);
|
||||
|
||||
DECLARE_WRITE16_MEMBER(spg110_3100_w);
|
||||
|
||||
DECLARE_WRITE16_MEMBER(spg110_3101_w);
|
||||
@ -195,6 +195,39 @@ private:
|
||||
void blit(const rectangle &cliprect, uint32_t line, uint32_t xoff, uint32_t yoff, uint32_t attr, uint32_t ctrl, uint32_t bitmap_addr, uint16_t tile);
|
||||
void blit_page(const rectangle &cliprect, uint32_t scanline, int depth, uint32_t bitmap_addr, uint16_t *regs);
|
||||
uint32_t m_screenbuf[320 * 240];
|
||||
|
||||
devcb_write16 m_porta_out;
|
||||
devcb_write16 m_portb_out;
|
||||
devcb_write16 m_portc_out;
|
||||
devcb_read16 m_porta_in;
|
||||
devcb_read16 m_portb_in;
|
||||
devcb_read16 m_portc_in;
|
||||
|
||||
devcb_read16 m_adc_in[2];
|
||||
|
||||
devcb_write8 m_eeprom_w;
|
||||
devcb_read8 m_eeprom_r;
|
||||
|
||||
devcb_write8 m_uart_tx;
|
||||
|
||||
devcb_write8 m_chip_sel;
|
||||
|
||||
DECLARE_READ16_MEMBER(porta_r) { return m_porta_in(); };
|
||||
DECLARE_READ16_MEMBER(portb_r) { return m_portb_in(); };
|
||||
DECLARE_READ16_MEMBER(portc_r) { return m_portc_in(); };
|
||||
DECLARE_WRITE16_MEMBER(porta_w) { m_porta_out(offset, data, mem_mask); };
|
||||
DECLARE_WRITE16_MEMBER(portb_w) { m_portb_out(offset, data, mem_mask); };
|
||||
DECLARE_WRITE16_MEMBER(portc_w) { m_portc_out(offset, data, mem_mask); };
|
||||
template <size_t Line> DECLARE_READ16_MEMBER(adc_r) { return m_adc_in[Line](); };
|
||||
|
||||
DECLARE_WRITE8_MEMBER(eepromx_w) { m_eeprom_w(offset, data, mem_mask); };
|
||||
DECLARE_READ8_MEMBER(eepromx_r) { return m_eeprom_r(); };
|
||||
|
||||
DECLARE_WRITE8_MEMBER(tx_w) { m_uart_tx(offset, data, mem_mask); };
|
||||
DECLARE_WRITE8_MEMBER(cs_w) { m_chip_sel(offset, data, mem_mask); };
|
||||
DECLARE_READ16_MEMBER(get_pal_r) { return 0; /*m_pal_flag;*/ };
|
||||
void configure_spg_io(spg2xx_io_device* io);
|
||||
|
||||
};
|
||||
|
||||
DECLARE_DEVICE_TYPE(SPG110, spg110_device)
|
||||
|
@ -81,7 +81,8 @@ void spg2xx_device::map(address_map &map)
|
||||
map(0x003000, 0x0031ff).rw(m_spg_audio, FUNC(spg2xx_audio_device::audio_r), FUNC(spg2xx_audio_device::audio_w));
|
||||
map(0x003200, 0x0033ff).rw(m_spg_audio, FUNC(spg2xx_audio_device::audio_phase_r), FUNC(spg2xx_audio_device::audio_phase_w));
|
||||
map(0x003400, 0x0037ff).rw(m_spg_audio, FUNC(spg2xx_audio_device::audio_ctrl_r), FUNC(spg2xx_audio_device::audio_ctrl_w));
|
||||
map(0x003d00, 0x003dff).rw(m_spg_io, FUNC(spg2xx_io_device::io_r), FUNC(spg2xx_io_device::io_w));
|
||||
map(0x003d00, 0x003d2f).rw(m_spg_io, FUNC(spg2xx_io_device::io_r), FUNC(spg2xx_io_device::io_w));
|
||||
map(0x003d30, 0x003dff).rw(m_spg_io, FUNC(spg2xx_io_device::io_extended_r), FUNC(spg2xx_io_device::io_extended_w));
|
||||
map(0x003e00, 0x003e03).rw(FUNC(spg2xx_device::dma_r), FUNC(spg2xx_device::dma_w));
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,10 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Ryan Holtz
|
||||
|
||||
/* this is used by the SPG110, SPG24x and SPG28x
|
||||
basic I/O behavior is definitely the same on the SPG110 but
|
||||
the rest needs verifying */
|
||||
|
||||
#include "emu.h"
|
||||
#include "spg2xx_io.h"
|
||||
|
||||
@ -272,7 +276,25 @@ READ16_MEMBER(spg2xx_io_device::io_r)
|
||||
val = m_cpu->get_ds();
|
||||
LOGMASKED(LOG_SEGMENT, "io_r: Data Segment = %04x\n", val);
|
||||
break;
|
||||
|
||||
default:
|
||||
LOGMASKED(LOG_UNKNOWN_IO, "io_r: Unknown register %04x\n", 0x3d00 + offset);
|
||||
break;
|
||||
}
|
||||
|
||||
return val;
|
||||
}
|
||||
|
||||
READ16_MEMBER(spg2xx_io_device::io_extended_r)
|
||||
{
|
||||
// this set of registers might only be on the 24x not the 11x
|
||||
|
||||
offset += 0x30;
|
||||
|
||||
uint16_t val = m_io_regs[offset];
|
||||
|
||||
switch (offset)
|
||||
{
|
||||
case 0x30: // UART Control
|
||||
LOGMASKED(LOG_UART, "%s: io_r: UART Control = %04x\n", machine().describe_context(), val);
|
||||
break;
|
||||
@ -460,8 +482,10 @@ void spg2xx_io_device::update_timer_c_src()
|
||||
}
|
||||
|
||||
|
||||
WRITE16_MEMBER(spg28x_io_device::io_w)
|
||||
WRITE16_MEMBER(spg28x_io_device::io_extended_w)
|
||||
{
|
||||
offset += 0x30;
|
||||
|
||||
if (offset == 0x33)
|
||||
{
|
||||
m_io_regs[offset] = data;
|
||||
@ -470,7 +494,7 @@ WRITE16_MEMBER(spg28x_io_device::io_w)
|
||||
}
|
||||
else
|
||||
{
|
||||
spg2xx_io_device::io_w(space, offset, data, mem_mask);
|
||||
spg2xx_io_device::io_extended_w(space, offset-0x30, data, mem_mask);
|
||||
}
|
||||
}
|
||||
|
||||
@ -847,6 +871,25 @@ WRITE16_MEMBER(spg2xx_io_device::io_w)
|
||||
LOGMASKED(LOG_SEGMENT, "io_w: Data Segment = %04x\n", data);
|
||||
break;
|
||||
|
||||
default:
|
||||
LOGMASKED(LOG_UNKNOWN_IO, "io_w: Unknown register %04x = %04x\n", 0x3d00 + offset, data);
|
||||
m_io_regs[offset] = data;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
WRITE16_MEMBER(spg2xx_io_device::io_extended_w)
|
||||
{
|
||||
// this set of registers might only be on the 24x not the 11x
|
||||
|
||||
offset += 0x30;
|
||||
|
||||
switch (offset)
|
||||
{
|
||||
|
||||
case 0x30: // UART Control
|
||||
{
|
||||
static const char* const s_9th_bit[4] = { "0", "1", "Odd", "Even" };
|
||||
|
@ -34,9 +34,13 @@ public:
|
||||
|
||||
void extint_w(int channel, bool state);
|
||||
|
||||
virtual DECLARE_READ16_MEMBER(io_r);
|
||||
virtual DECLARE_WRITE16_MEMBER(io_w);
|
||||
DECLARE_READ16_MEMBER(io_r);
|
||||
DECLARE_WRITE16_MEMBER(io_w);
|
||||
|
||||
virtual DECLARE_READ16_MEMBER(io_extended_r);
|
||||
virtual DECLARE_WRITE16_MEMBER(io_extended_w);
|
||||
|
||||
|
||||
auto pal_read_callback() { return m_pal_read_cb.bind(); };
|
||||
|
||||
auto write_timer_irq_callback() { return m_timer_irq_cb.bind(); };
|
||||
@ -170,7 +174,7 @@ public:
|
||||
|
||||
spg28x_io_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
virtual DECLARE_WRITE16_MEMBER(io_w) override;
|
||||
virtual DECLARE_WRITE16_MEMBER(io_extended_w) override;
|
||||
};
|
||||
|
||||
DECLARE_DEVICE_TYPE(SPG24X_IO, spg24x_io_device)
|
||||
|
@ -51,9 +51,312 @@ void spg110_game_state::mem_map(address_map &map)
|
||||
map(0x000000, 0x003fff).m(m_spg, FUNC(spg110_device::map));
|
||||
}
|
||||
|
||||
static INPUT_PORTS_START( spg110 )
|
||||
static INPUT_PORTS_START( jak_capb )
|
||||
PORT_START("PA")
|
||||
PORT_DIPNAME( 0x0001, 0x0000, "PA" )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0001, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0002, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0002, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0004, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0004, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0008, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0008, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0010, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0010, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0020, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0020, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0040, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0040, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0080, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0080, DEF_STR( On ) )
|
||||
PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Menu")
|
||||
PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_NAME("Left Flipper")
|
||||
PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Nudge")// nudge (motion control)
|
||||
PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_NAME("Right Flipper")
|
||||
PORT_DIPNAME( 0x1000, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x1000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x2000, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x2000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x4000, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x4000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x8000, DEF_STR( On ) )
|
||||
|
||||
PORT_START("PB")
|
||||
PORT_DIPNAME( 0x0001, 0x0000, "PB" )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0001, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0002, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0002, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0004, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0004, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0008, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0008, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0010, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0010, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0020, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0020, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0040, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0040, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0080, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0080, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0100, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0100, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0200, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0200, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0400, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0400, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0800, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0800, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x1000, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x1000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x2000, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x2000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x4000, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x4000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x8000, DEF_STR( On ) )
|
||||
|
||||
PORT_START("PC")
|
||||
PORT_DIPNAME( 0x0001, 0x0000, "PC" )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0001, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0002, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0002, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0004, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0004, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0008, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0008, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0010, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0010, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0020, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0020, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0040, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0040, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0080, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0080, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0100, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0100, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0200, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0200, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0400, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0400, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0800, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0800, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x1000, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x1000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x2000, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x2000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x4000, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x4000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x8000, DEF_STR( On ) )
|
||||
|
||||
PORT_START("JOYX")
|
||||
PORT_BIT( 0xffff, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
|
||||
PORT_START("JOYY")
|
||||
PORT_BIT(0x0fff, 0x0000, IPT_AD_STICK_Y) PORT_SENSITIVITY(100) PORT_KEYDELTA(100) PORT_MINMAX(0x00,0x0fff) PORT_NAME("Plunger")
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( jak_spdmo )
|
||||
PORT_START("PA")
|
||||
PORT_DIPNAME( 0x0001, 0x0000, "PA" )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0001, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0002, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0002, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0004, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0004, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0008, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0008, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0010, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0010, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0020, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0020, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0040, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0040, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0080, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0080, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0100, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0100, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0200, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0200, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0400, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0400, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0800, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0800, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x1000, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x1000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x2000, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x2000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x4000, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x4000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x8000, DEF_STR( On ) )
|
||||
|
||||
PORT_START("PB")
|
||||
PORT_DIPNAME( 0x0001, 0x0000, "PB" )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0001, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0002, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0002, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0004, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0004, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0008, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0008, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0010, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0010, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0020, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0020, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0040, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0040, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0080, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0080, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0100, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0100, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0200, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0200, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0400, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0400, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0800, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0800, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x1000, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x1000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x2000, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x2000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x4000, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x4000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x8000, DEF_STR( On ) )
|
||||
|
||||
PORT_START("PC")
|
||||
PORT_DIPNAME( 0x0001, 0x0000, "PC" )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0001, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0002, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0002, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0004, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0004, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0008, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0008, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0010, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0010, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0020, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0020, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0040, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0040, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0080, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0080, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0100, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0100, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0200, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0200, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0400, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0400, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0800, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0800, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x1000, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x1000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x2000, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x2000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x4000, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x4000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x8000, DEF_STR( On ) )
|
||||
|
||||
PORT_START("JOYX")
|
||||
|
||||
PORT_START("JOYY")
|
||||
|
||||
INPUT_PORTS_END
|
||||
|
||||
void spg110_game_state::spg110_base(machine_config &config)
|
||||
{
|
||||
@ -72,7 +375,12 @@ void spg110_game_state::spg110_base(machine_config &config)
|
||||
// m_spg->add_route(ALL_OUTPUTS, "lspeaker", 0.5);
|
||||
// m_spg->add_route(ALL_OUTPUTS, "rspeaker", 0.5);
|
||||
|
||||
SPG110(config, m_spg, XTAL(27'000'000), "maincpu");
|
||||
SPG110(config, m_spg, XTAL(27'000'000), m_maincpu, m_screen);
|
||||
m_spg->porta_in().set_ioport("PA");
|
||||
m_spg->portb_in().set_ioport("PB");
|
||||
m_spg->portc_in().set_ioport("PC");
|
||||
m_spg->adc_in<0>().set_ioport("JOYX");
|
||||
m_spg->adc_in<1>().set_ioport("JOYY");
|
||||
}
|
||||
|
||||
ROM_START( jak_capb )
|
||||
@ -87,5 +395,5 @@ ROM_START( jak_spdmo )
|
||||
ROM_END
|
||||
|
||||
// JAKKS Pacific Inc TV games
|
||||
CONS( 2004, jak_capb, 0, 0, spg110_base, spg110, spg110_game_state, empty_init, "JAKKS Pacific Inc / HotGen Ltd", "Classic Arcade Pinball (JAKKS Pacific TV Game)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
|
||||
CONS( 2004, jak_spdmo, jak_spdm, 0, spg110_base, spg110, spg110_game_state, empty_init, "JAKKS Pacific Inc / Digital Eclipse", "Spider-Man (JAKKS Pacific TV Game) (older hardare)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // this is the smaller more 'square' style joystick that was originally released before the GameKey slot was added.
|
||||
CONS( 2004, jak_capb, 0, 0, spg110_base, jak_capb, spg110_game_state, empty_init, "JAKKS Pacific Inc / HotGen Ltd", "Classic Arcade Pinball (JAKKS Pacific TV Game)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
|
||||
CONS( 2004, jak_spdmo, jak_spdm, 0, spg110_base, jak_spdmo, spg110_game_state, empty_init, "JAKKS Pacific Inc / Digital Eclipse", "Spider-Man (JAKKS Pacific TV Game) (older hardare)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // this is the smaller more 'square' style joystick that was originally released before the GameKey slot was added.
|
||||
|
Loading…
Reference in New Issue
Block a user