mirror of
https://github.com/holub/mame
synced 2025-10-07 17:27:06 +03:00
adc083x: updated to use delegates and slightly reduced tagmap lookups in
konamigx and zr107 while at it. nw.
This commit is contained in:
parent
8e6d64c060
commit
e4ec4b0ffb
@ -98,6 +98,9 @@ void adc083x_device::device_start()
|
|||||||
{
|
{
|
||||||
clear_sars();
|
clear_sars();
|
||||||
|
|
||||||
|
/* resolve callbacks */
|
||||||
|
m_input_callback.bind_relative_to(*owner());
|
||||||
|
|
||||||
/* register for state saving */
|
/* register for state saving */
|
||||||
save_item( NAME(m_cs) );
|
save_item( NAME(m_cs) );
|
||||||
save_item( NAME(m_clk) );
|
save_item( NAME(m_clk) );
|
||||||
@ -178,8 +181,8 @@ UINT8 adc083x_device::conversion()
|
|||||||
int negative_channel = ADC083X_AGND;
|
int negative_channel = ADC083X_AGND;
|
||||||
double positive = 0;
|
double positive = 0;
|
||||||
double negative = 0;
|
double negative = 0;
|
||||||
double gnd = m_input_callback( this, ADC083X_AGND );
|
double gnd = m_input_callback(ADC083X_AGND);
|
||||||
double vref = m_input_callback( this, ADC083X_VREF );
|
double vref = m_input_callback(ADC083X_VREF);
|
||||||
|
|
||||||
if( type() == ADC0831 )
|
if( type() == ADC0831 )
|
||||||
{
|
{
|
||||||
@ -225,12 +228,12 @@ UINT8 adc083x_device::conversion()
|
|||||||
|
|
||||||
if( positive_channel != ADC083X_AGND )
|
if( positive_channel != ADC083X_AGND )
|
||||||
{
|
{
|
||||||
positive = m_input_callback( this, positive_channel ) - gnd;
|
positive = m_input_callback(positive_channel) - gnd;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( negative_channel != ADC083X_AGND )
|
if( negative_channel != ADC083X_AGND )
|
||||||
{
|
{
|
||||||
negative = m_input_callback( this, negative_channel ) - gnd;
|
negative = m_input_callback(negative_channel) - gnd;
|
||||||
}
|
}
|
||||||
|
|
||||||
result = (int) ( ( ( positive - negative ) * 255 ) / vref );
|
result = (int) ( ( ( positive - negative ) * 255 ) / vref );
|
||||||
|
@ -15,10 +15,11 @@
|
|||||||
TYPE DEFINITIONS
|
TYPE DEFINITIONS
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
typedef double (*adc083x_input_callback)(device_t *device, UINT8 input);
|
typedef device_delegate<double (UINT8 input)> adc083x_input_delegate;
|
||||||
|
#define ADC083X_INPUT_CB(name) double name(UINT8 input)
|
||||||
|
|
||||||
#define MCFG_ADC083X_INPUT_CALLBACK(input_callback) \
|
#define MCFG_ADC083X_INPUT_CB(_class, _method) \
|
||||||
adc083x_device::set_input_callback(*device, input_callback);
|
adc083x_device::set_input_callback(*device, adc083x_input_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner)));
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
CONSTANTS
|
CONSTANTS
|
||||||
@ -46,7 +47,7 @@ public:
|
|||||||
adc083x_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source);
|
adc083x_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source);
|
||||||
|
|
||||||
// static configuration helpers
|
// static configuration helpers
|
||||||
static void set_input_callback(device_t &device, adc083x_input_callback input_callback) { downcast<adc083x_device &>(device).m_input_callback = input_callback; }
|
static void set_input_callback(device_t &device, adc083x_input_delegate input_callback) { downcast<adc083x_device &>(device).m_input_callback = input_callback; }
|
||||||
|
|
||||||
DECLARE_WRITE_LINE_MEMBER( cs_write );
|
DECLARE_WRITE_LINE_MEMBER( cs_write );
|
||||||
DECLARE_WRITE_LINE_MEMBER( clk_write );
|
DECLARE_WRITE_LINE_MEMBER( clk_write );
|
||||||
@ -81,7 +82,7 @@ private:
|
|||||||
INT32 m_bit;
|
INT32 m_bit;
|
||||||
INT32 m_output;
|
INT32 m_output;
|
||||||
|
|
||||||
adc083x_input_callback m_input_callback;
|
adc083x_input_delegate m_input_callback;
|
||||||
};
|
};
|
||||||
|
|
||||||
class adc0831_device : public adc083x_device
|
class adc0831_device : public adc083x_device
|
||||||
|
@ -102,7 +102,6 @@
|
|||||||
#include "sound/k056800.h"
|
#include "sound/k056800.h"
|
||||||
#include "sound/k054539.h"
|
#include "sound/k054539.h"
|
||||||
#include "includes/konamigx.h"
|
#include "includes/konamigx.h"
|
||||||
#include "machine/adc083x.h"
|
|
||||||
#include "rendlay.h"
|
#include "rendlay.h"
|
||||||
|
|
||||||
#define GX_DEBUG 0
|
#define GX_DEBUG 0
|
||||||
@ -463,7 +462,7 @@ WRITE32_MEMBER(konamigx_state::eeprom_w)
|
|||||||
bit 0: eeprom data
|
bit 0: eeprom data
|
||||||
*/
|
*/
|
||||||
|
|
||||||
ioport("EEPROMOUT")->write(odata, 0xff);
|
m_eepromout->write(odata, 0xff);
|
||||||
|
|
||||||
konamigx_wrport1_0 = odata;
|
konamigx_wrport1_0 = odata;
|
||||||
}
|
}
|
||||||
@ -708,14 +707,14 @@ TIMER_DEVICE_CALLBACK_MEMBER(konamigx_state::konamigx_hbinterrupt)
|
|||||||
|
|
||||||
/* National Semiconductor ADC0834 4-channel serial ADC emulation */
|
/* National Semiconductor ADC0834 4-channel serial ADC emulation */
|
||||||
|
|
||||||
static double adc0834_callback( device_t *device, UINT8 input )
|
ADC083X_INPUT_CB(konamigx_state::adc0834_callback)
|
||||||
{
|
{
|
||||||
switch (input)
|
switch (input)
|
||||||
{
|
{
|
||||||
case ADC083X_CH0:
|
case ADC083X_CH0:
|
||||||
return (double)(5 * device->machine().root_device().ioport("AN0")->read()) / 255.0; // steer
|
return (double)(5 * m_an0->read()) / 255.0; // steer
|
||||||
case ADC083X_CH1:
|
case ADC083X_CH1:
|
||||||
return (double)(5 * device->machine().root_device().ioport("AN1")->read()) / 255.0; // gas
|
return (double)(5 * m_an1->read()) / 255.0; // gas
|
||||||
case ADC083X_VREF:
|
case ADC083X_VREF:
|
||||||
return 5;
|
return 5;
|
||||||
}
|
}
|
||||||
@ -725,16 +724,16 @@ static double adc0834_callback( device_t *device, UINT8 input )
|
|||||||
|
|
||||||
READ32_MEMBER(konamigx_state::le2_gun_H_r)
|
READ32_MEMBER(konamigx_state::le2_gun_H_r)
|
||||||
{
|
{
|
||||||
int p1x = ioport("LIGHT0_X")->read()*290/0xff+20;
|
int p1x = m_light0_x->read()*290/0xff+20;
|
||||||
int p2x = ioport("LIGHT1_X")->read()*290/0xff+20;
|
int p2x = m_light1_x->read()*290/0xff+20;
|
||||||
|
|
||||||
return (p1x<<16)|p2x;
|
return (p1x<<16)|p2x;
|
||||||
}
|
}
|
||||||
|
|
||||||
READ32_MEMBER(konamigx_state::le2_gun_V_r)
|
READ32_MEMBER(konamigx_state::le2_gun_V_r)
|
||||||
{
|
{
|
||||||
int p1y = ioport("LIGHT0_Y")->read()*224/0xff;
|
int p1y = m_light0_y->read()*224/0xff;
|
||||||
int p2y = ioport("LIGHT1_Y")->read()*224/0xff;
|
int p2y = m_light1_y->read()*224/0xff;
|
||||||
|
|
||||||
// make "off the bottom" reload too
|
// make "off the bottom" reload too
|
||||||
if (p1y >= 0xdf) p1y = 0;
|
if (p1y >= 0xdf) p1y = 0;
|
||||||
@ -1700,7 +1699,7 @@ static MACHINE_CONFIG_DERIVED( opengolf, konamigx )
|
|||||||
MCFG_CPU_PROGRAM_MAP(gx_type1_map)
|
MCFG_CPU_PROGRAM_MAP(gx_type1_map)
|
||||||
|
|
||||||
MCFG_DEVICE_ADD("adc0834", ADC0834, 0)
|
MCFG_DEVICE_ADD("adc0834", ADC0834, 0)
|
||||||
MCFG_ADC083X_INPUT_CALLBACK(adc0834_callback)
|
MCFG_ADC083X_INPUT_CB(konamigx_state, adc0834_callback)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
static MACHINE_CONFIG_DERIVED( racinfrc, konamigx )
|
static MACHINE_CONFIG_DERIVED( racinfrc, konamigx )
|
||||||
@ -1714,7 +1713,7 @@ static MACHINE_CONFIG_DERIVED( racinfrc, konamigx )
|
|||||||
MCFG_CPU_PROGRAM_MAP(gx_type1_map)
|
MCFG_CPU_PROGRAM_MAP(gx_type1_map)
|
||||||
|
|
||||||
MCFG_DEVICE_ADD("adc0834", ADC0834, 0)
|
MCFG_DEVICE_ADD("adc0834", ADC0834, 0)
|
||||||
MCFG_ADC083X_INPUT_CALLBACK(adc0834_callback)
|
MCFG_ADC083X_INPUT_CB(konamigx_state, adc0834_callback)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
static MACHINE_CONFIG_DERIVED( gxtype3, konamigx )
|
static MACHINE_CONFIG_DERIVED( gxtype3, konamigx )
|
||||||
|
@ -451,6 +451,7 @@ public:
|
|||||||
DECLARE_WRITE8_MEMBER( dmx_output_callback );
|
DECLARE_WRITE8_MEMBER( dmx_output_callback );
|
||||||
DECLARE_WRITE8_MEMBER( mamboagg_output_callback );
|
DECLARE_WRITE8_MEMBER( mamboagg_output_callback );
|
||||||
DECLARE_WRITE8_MEMBER( punchmania_output_callback );
|
DECLARE_WRITE8_MEMBER( punchmania_output_callback );
|
||||||
|
ADC083X_INPUT_CB(analogue_inputs_callback);
|
||||||
|
|
||||||
void cdrom_dma_read( UINT32 *ram, UINT32 n_address, INT32 n_size );
|
void cdrom_dma_read( UINT32 *ram, UINT32 n_address, INT32 n_size );
|
||||||
void cdrom_dma_write( UINT32 *ram, UINT32 n_address, INT32 n_size );
|
void cdrom_dma_write( UINT32 *ram, UINT32 n_address, INT32 n_size );
|
||||||
@ -1680,10 +1681,9 @@ WRITE_LINE_MEMBER( ksys573_state::mamboagg_lamps_b5 )
|
|||||||
/* punch mania */
|
/* punch mania */
|
||||||
|
|
||||||
|
|
||||||
static double punchmania_inputs_callback( device_t *device, UINT8 input )
|
ADC083X_INPUT_CB(konami573_cassette_xi_device::punchmania_inputs_callback)
|
||||||
{
|
{
|
||||||
ksys573_state *state = device->machine().driver_data<ksys573_state>();
|
ksys573_state *state = machine().driver_data<ksys573_state>();
|
||||||
|
|
||||||
double *pad_position = state->m_pad_position;
|
double *pad_position = state->m_pad_position;
|
||||||
int pads = state->m_pads->read();
|
int pads = state->m_pads->read();
|
||||||
for( int i = 0; i < 6; i++ )
|
for( int i = 0; i < 6; i++ )
|
||||||
@ -1719,7 +1719,7 @@ static double punchmania_inputs_callback( device_t *device, UINT8 input )
|
|||||||
|
|
||||||
static MACHINE_CONFIG_FRAGMENT( punchmania_cassette_install )
|
static MACHINE_CONFIG_FRAGMENT( punchmania_cassette_install )
|
||||||
MCFG_DEVICE_MODIFY( "adc0838" )
|
MCFG_DEVICE_MODIFY( "adc0838" )
|
||||||
MCFG_ADC083X_INPUT_CALLBACK( punchmania_inputs_callback )
|
MCFG_ADC083X_INPUT_CB( konami573_cassette_xi_device, punchmania_inputs_callback )
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
|
|
||||||
@ -1987,20 +1987,18 @@ READ16_MEMBER( ksys573_state::gunmania_r )
|
|||||||
|
|
||||||
/* ADC0834 Interface */
|
/* ADC0834 Interface */
|
||||||
|
|
||||||
static double analogue_inputs_callback( device_t *device, UINT8 input )
|
ADC083X_INPUT_CB(ksys573_state::analogue_inputs_callback)
|
||||||
{
|
{
|
||||||
ksys573_state *state = device->machine().driver_data<ksys573_state>();
|
|
||||||
|
|
||||||
switch( input )
|
switch( input )
|
||||||
{
|
{
|
||||||
case ADC083X_CH0:
|
case ADC083X_CH0:
|
||||||
return (double)( 5 * state->m_analog0->read() ) / 255.0;
|
return (double)( 5 * m_analog0->read() ) / 255.0;
|
||||||
case ADC083X_CH1:
|
case ADC083X_CH1:
|
||||||
return (double)( 5 * state->m_analog1->read() ) / 255.0;
|
return (double)( 5 * m_analog1->read() ) / 255.0;
|
||||||
case ADC083X_CH2:
|
case ADC083X_CH2:
|
||||||
return (double)( 5 * state->m_analog2->read() ) / 255.0;
|
return (double)( 5 * m_analog2->read() ) / 255.0;
|
||||||
case ADC083X_CH3:
|
case ADC083X_CH3:
|
||||||
return (double)( 5 * state->m_analog3->read() ) / 255.0;
|
return (double)( 5 * m_analog3->read() ) / 255.0;
|
||||||
case ADC083X_AGND:
|
case ADC083X_AGND:
|
||||||
return 0;
|
return 0;
|
||||||
case ADC083X_VREF:
|
case ADC083X_VREF:
|
||||||
@ -2076,7 +2074,7 @@ static MACHINE_CONFIG_START( konami573, ksys573_state )
|
|||||||
MCFG_M48T58_ADD( "m48t58" )
|
MCFG_M48T58_ADD( "m48t58" )
|
||||||
|
|
||||||
MCFG_DEVICE_ADD( "adc0834", ADC0834, 0 )
|
MCFG_DEVICE_ADD( "adc0834", ADC0834, 0 )
|
||||||
MCFG_ADC083X_INPUT_CALLBACK( analogue_inputs_callback )
|
MCFG_ADC083X_INPUT_CB( ksys573_state, analogue_inputs_callback )
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
// Variants with additional digital sound board
|
// Variants with additional digital sound board
|
||||||
|
@ -191,6 +191,16 @@ public:
|
|||||||
m_k056800(*this, "k056800"),
|
m_k056800(*this, "k056800"),
|
||||||
m_k056832(*this, "k056832"),
|
m_k056832(*this, "k056832"),
|
||||||
m_workram(*this, "workram"),
|
m_workram(*this, "workram"),
|
||||||
|
m_in0(*this, "IN0"),
|
||||||
|
m_in1(*this, "IN1"),
|
||||||
|
m_in2(*this, "IN2"),
|
||||||
|
m_in3(*this, "IN3"),
|
||||||
|
m_in4(*this, "IN4"),
|
||||||
|
m_out4(*this, "OUT4"),
|
||||||
|
m_eepromout(*this, "EEPROMOUT"),
|
||||||
|
m_analog1(*this, "ANALOG1"),
|
||||||
|
m_analog2(*this, "ANALOG2"),
|
||||||
|
m_analog3(*this, "ANALOG3"),
|
||||||
m_palette(*this, "palette") { }
|
m_palette(*this, "palette") { }
|
||||||
|
|
||||||
required_device<cpu_device> m_maincpu;
|
required_device<cpu_device> m_maincpu;
|
||||||
@ -200,6 +210,7 @@ public:
|
|||||||
required_device<k056800_device> m_k056800;
|
required_device<k056800_device> m_k056800;
|
||||||
optional_device<k056832_device> m_k056832;
|
optional_device<k056832_device> m_k056832;
|
||||||
optional_shared_ptr<UINT32> m_workram;
|
optional_shared_ptr<UINT32> m_workram;
|
||||||
|
required_ioport m_in0, m_in1, m_in2, m_in3, m_in4, m_out4, m_eepromout, m_analog1, m_analog2, m_analog3;
|
||||||
required_device<palette_device> m_palette;
|
required_device<palette_device> m_palette;
|
||||||
|
|
||||||
UINT32 *m_sharc_dataram;
|
UINT32 *m_sharc_dataram;
|
||||||
@ -229,6 +240,7 @@ public:
|
|||||||
UINT32 screen_update_jetwave(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
UINT32 screen_update_jetwave(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||||
INTERRUPT_GEN_MEMBER(zr107_vblank);
|
INTERRUPT_GEN_MEMBER(zr107_vblank);
|
||||||
WRITE_LINE_MEMBER(k054539_irq_gen);
|
WRITE_LINE_MEMBER(k054539_irq_gen);
|
||||||
|
ADC083X_INPUT_CB(adc0838_callback);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void machine_start();
|
virtual void machine_start();
|
||||||
@ -316,18 +328,24 @@ UINT32 zr107_state::screen_update_zr107(screen_device &screen, bitmap_rgb32 &bit
|
|||||||
READ8_MEMBER(zr107_state::sysreg_r)
|
READ8_MEMBER(zr107_state::sysreg_r)
|
||||||
{
|
{
|
||||||
UINT32 r = 0;
|
UINT32 r = 0;
|
||||||
static const char *const portnames[] = { "IN0", "IN1", "IN2", "IN3", "IN4" };
|
|
||||||
|
|
||||||
switch (offset)
|
switch (offset)
|
||||||
{
|
{
|
||||||
case 0: /* I/O port 0 */
|
case 0: /* I/O port 0 */
|
||||||
case 1: /* I/O port 1 */
|
r = m_in0->read();
|
||||||
case 2: /* I/O port 2 */
|
break;
|
||||||
case 3: /* System Port 0 */
|
case 1: /* I/O port 1 */
|
||||||
case 4: /* System Port 1 */
|
r = m_in1->read();
|
||||||
r = ioport(portnames[offset])->read();
|
break;
|
||||||
|
case 2: /* I/O port 2 */
|
||||||
|
r = m_in2->read();
|
||||||
|
break;
|
||||||
|
case 3: /* System Port 0 */
|
||||||
|
r = m_in3->read();
|
||||||
|
break;
|
||||||
|
case 4: /* System Port 1 */
|
||||||
|
r = m_in4->read();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 5: /* Parallel data port */
|
case 5: /* Parallel data port */
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -361,7 +379,7 @@ WRITE8_MEMBER(zr107_state::sysreg_w)
|
|||||||
0x02 = EEPCLK
|
0x02 = EEPCLK
|
||||||
0x01 = EEPDI
|
0x01 = EEPDI
|
||||||
*/
|
*/
|
||||||
ioport("EEPROMOUT")->write(data & 0x07, 0xff);
|
m_eepromout->write(data & 0x07, 0xff);
|
||||||
m_audiocpu->set_input_line(INPUT_LINE_RESET, (data & 0x10) ? CLEAR_LINE : ASSERT_LINE);
|
m_audiocpu->set_input_line(INPUT_LINE_RESET, (data & 0x10) ? CLEAR_LINE : ASSERT_LINE);
|
||||||
mame_printf_debug("System register 0 = %02X\n", data);
|
mame_printf_debug("System register 0 = %02X\n", data);
|
||||||
break;
|
break;
|
||||||
@ -382,7 +400,7 @@ WRITE8_MEMBER(zr107_state::sysreg_w)
|
|||||||
if (data & 0x40) /* CG Board 0 IRQ Ack */
|
if (data & 0x40) /* CG Board 0 IRQ Ack */
|
||||||
m_maincpu->set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE);
|
m_maincpu->set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE);
|
||||||
set_cgboard_id((data >> 4) & 3);
|
set_cgboard_id((data >> 4) & 3);
|
||||||
ioport("OUT4")->write(data, 0xff);
|
m_out4->write(data, 0xff);
|
||||||
mame_printf_debug("System register 1 = %02X\n", data);
|
mame_printf_debug("System register 1 = %02X\n", data);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -675,16 +693,16 @@ INPUT_PORTS_END
|
|||||||
|
|
||||||
/* ADC0838 Interface */
|
/* ADC0838 Interface */
|
||||||
|
|
||||||
static double adc0838_callback( device_t *device, UINT8 input )
|
ADC083X_INPUT_CB(zr107_state::adc0838_callback)
|
||||||
{
|
{
|
||||||
switch (input)
|
switch (input)
|
||||||
{
|
{
|
||||||
case ADC083X_CH0:
|
case ADC083X_CH0:
|
||||||
return (double)(5 * device->machine().root_device().ioport("ANALOG1")->read()) / 255.0;
|
return (double)(5 * m_analog1->read()) / 255.0;
|
||||||
case ADC083X_CH1:
|
case ADC083X_CH1:
|
||||||
return (double)(5 * device->machine().root_device().ioport("ANALOG2")->read()) / 255.0;
|
return (double)(5 * m_analog2->read()) / 255.0;
|
||||||
case ADC083X_CH2:
|
case ADC083X_CH2:
|
||||||
return (double)(5 * device->machine().root_device().ioport("ANALOG3")->read()) / 255.0;
|
return (double)(5 * m_analog3->read()) / 255.0;
|
||||||
case ADC083X_CH3:
|
case ADC083X_CH3:
|
||||||
return 0;
|
return 0;
|
||||||
case ADC083X_COM:
|
case ADC083X_COM:
|
||||||
@ -791,7 +809,7 @@ static MACHINE_CONFIG_START( zr107, zr107_state )
|
|||||||
MCFG_SOUND_ROUTE(1, "rspeaker", 0.75)
|
MCFG_SOUND_ROUTE(1, "rspeaker", 0.75)
|
||||||
|
|
||||||
MCFG_DEVICE_ADD("adc0838", ADC0838, 0)
|
MCFG_DEVICE_ADD("adc0838", ADC0838, 0)
|
||||||
MCFG_ADC083X_INPUT_CALLBACK(adc0838_callback)
|
MCFG_ADC083X_INPUT_CB(zr107_state, adc0838_callback)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
|
|
||||||
@ -855,7 +873,7 @@ static MACHINE_CONFIG_START( jetwave, zr107_state )
|
|||||||
MCFG_SOUND_ROUTE(1, "rspeaker", 0.75)
|
MCFG_SOUND_ROUTE(1, "rspeaker", 0.75)
|
||||||
|
|
||||||
MCFG_DEVICE_ADD("adc0838", ADC0838, 0)
|
MCFG_DEVICE_ADD("adc0838", ADC0838, 0)
|
||||||
MCFG_ADC083X_INPUT_CALLBACK(adc0838_callback)
|
MCFG_ADC083X_INPUT_CB(zr107_state, adc0838_callback)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
#include "sound/k056800.h"
|
#include "sound/k056800.h"
|
||||||
#include "sound/k054539.h"
|
#include "sound/k054539.h"
|
||||||
#include "cpu/tms57002/tms57002.h"
|
#include "cpu/tms57002/tms57002.h"
|
||||||
|
#include "machine/adc083x.h"
|
||||||
#include "video/k054156_k054157_k056832.h"
|
#include "video/k054156_k054157_k056832.h"
|
||||||
#include "video/k053246_k053247_k055673.h"
|
#include "video/k053246_k053247_k055673.h"
|
||||||
#include "video/k055555.h"
|
#include "video/k055555.h"
|
||||||
@ -29,6 +30,13 @@ public:
|
|||||||
m_k056800(*this, "k056800"),
|
m_k056800(*this, "k056800"),
|
||||||
m_k054539_1(*this,"k054539_1"),
|
m_k054539_1(*this,"k054539_1"),
|
||||||
m_k054539_2(*this,"k054539_2"),
|
m_k054539_2(*this,"k054539_2"),
|
||||||
|
m_an0(*this, "AN0"),
|
||||||
|
m_an1(*this, "AN1"),
|
||||||
|
m_light0_x(*this, "LIGHT0_X"),
|
||||||
|
m_light0_y(*this, "LIGHT0_Y"),
|
||||||
|
m_light1_x(*this, "LIGHT1_X"),
|
||||||
|
m_light1_y(*this, "LIGHT1_Y"),
|
||||||
|
m_eepromout(*this, "EEPROMOUT"),
|
||||||
m_gfxdecode(*this, "gfxdecode"),
|
m_gfxdecode(*this, "gfxdecode"),
|
||||||
m_screen(*this, "screen"),
|
m_screen(*this, "screen"),
|
||||||
m_palette(*this, "palette")
|
m_palette(*this, "palette")
|
||||||
@ -52,6 +60,7 @@ public:
|
|||||||
optional_device<k056800_device> m_k056800;
|
optional_device<k056800_device> m_k056800;
|
||||||
optional_device<k054539_device> m_k054539_1;
|
optional_device<k054539_device> m_k054539_1;
|
||||||
optional_device<k054539_device> m_k054539_2;
|
optional_device<k054539_device> m_k054539_2;
|
||||||
|
optional_ioport m_an0, m_an1, m_light0_x, m_light0_y, m_light1_x, m_light1_y, m_eepromout;
|
||||||
required_device<gfxdecode_device> m_gfxdecode;
|
required_device<gfxdecode_device> m_gfxdecode;
|
||||||
required_device<screen_device> m_screen;
|
required_device<screen_device> m_screen;
|
||||||
required_device<palette_device> m_palette;
|
required_device<palette_device> m_palette;
|
||||||
@ -119,6 +128,7 @@ public:
|
|||||||
TIMER_CALLBACK_MEMBER(dmaend_callback);
|
TIMER_CALLBACK_MEMBER(dmaend_callback);
|
||||||
TIMER_CALLBACK_MEMBER(boothack_callback);
|
TIMER_CALLBACK_MEMBER(boothack_callback);
|
||||||
TIMER_DEVICE_CALLBACK_MEMBER(konamigx_hbinterrupt);
|
TIMER_DEVICE_CALLBACK_MEMBER(konamigx_hbinterrupt);
|
||||||
|
ADC083X_INPUT_CB(adc0834_callback);
|
||||||
|
|
||||||
void _gxcommoninitnosprites(running_machine &machine);
|
void _gxcommoninitnosprites(running_machine &machine);
|
||||||
void _gxcommoninit(running_machine &machine);
|
void _gxcommoninit(running_machine &machine);
|
||||||
|
@ -80,6 +80,8 @@ public:
|
|||||||
virtual DECLARE_READ_LINE_MEMBER(read_line_adc083x_sars);
|
virtual DECLARE_READ_LINE_MEMBER(read_line_adc083x_sars);
|
||||||
virtual DECLARE_WRITE_LINE_MEMBER(write_line_d5);
|
virtual DECLARE_WRITE_LINE_MEMBER(write_line_d5);
|
||||||
|
|
||||||
|
ADC083X_INPUT_CB(punchmania_inputs_callback);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual machine_config_constructor device_mconfig_additions() const;
|
virtual machine_config_constructor device_mconfig_additions() const;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user