Convert cclimber/galpani2/gticlub/namcond1/pacman/seibuspi/tetrisp2/vicdual

to driver_device. [Atari Ace]
This commit is contained in:
Aaron Giles 2011-03-25 16:02:59 +00:00
parent a1ed6067d0
commit 0989f6fe05
35 changed files with 272 additions and 296 deletions

View File

@ -71,11 +71,9 @@ typedef struct sound_cache_entry
/* globals */
UINT8 exidy440_sound_command;
UINT8 exidy440_sound_command_ack;
/* local allocated storage */ /* local allocated storage */
static UINT8 sound_command;
static UINT8 sound_command_ack;
static UINT8 *sound_banks; static UINT8 *sound_banks;
static UINT8 *m6844_data; static UINT8 *m6844_data;
static UINT8 *sound_volume; static UINT8 *sound_volume;
@ -136,10 +134,10 @@ static DEVICE_START( exidy440_sound )
int i, length; int i, length;
/* reset the system */ /* reset the system */
exidy440_sound_command = 0; sound_command = 0;
exidy440_sound_command_ack = 1; sound_command_ack = 1;
state_save_register_global(machine, exidy440_sound_command); state_save_register_global(machine, sound_command);
state_save_register_global(machine, exidy440_sound_command_ack); state_save_register_global(machine, sound_command_ack);
/* reset the 6844 */ /* reset the 6844 */
for (i = 0; i < 4; i++) for (i = 0; i < 4; i++)
@ -339,9 +337,23 @@ static READ8_HANDLER( sound_command_r )
{ {
/* clear the FIRQ that got us here and acknowledge the read to the main CPU */ /* clear the FIRQ that got us here and acknowledge the read to the main CPU */
cputag_set_input_line(space->machine, "audiocpu", 1, CLEAR_LINE); cputag_set_input_line(space->machine, "audiocpu", 1, CLEAR_LINE);
exidy440_sound_command_ack = 1; sound_command_ack = 1;
return exidy440_sound_command; return sound_command;
}
void exidy440_sound_command(running_machine *machine, UINT8 param)
{
sound_command = param;
sound_command_ack = 0;
cputag_set_input_line(machine, "audiocpu", INPUT_LINE_IRQ1, ASSERT_LINE);
}
UINT8 exidy440_sound_command_ack(void)
{
return sound_command_ack;
} }

View File

@ -1,4 +1,4 @@
extern UINT8 exidy440_sound_command; void exidy440_sound_command(running_machine *machine, UINT8 param);
extern UINT8 exidy440_sound_command_ack; UINT8 exidy440_sound_command_ack(void);
MACHINE_CONFIG_EXTERN( exidy440_audio ); MACHINE_CONFIG_EXTERN( exidy440_audio );

View File

@ -149,9 +149,6 @@ rom.
#include "sound/2151intf.h" #include "sound/2151intf.h"
UINT8 *t5182_sharedram;
enum enum
{ {
VECTOR_INIT, VECTOR_INIT,
@ -162,8 +159,19 @@ enum
CPU_CLEAR CPU_CLEAR
}; };
static UINT8 *t5182_sharedram;
static int irqstate; static int irqstate;
READ8_HANDLER(t5182_sharedram_r)
{
return t5182_sharedram[offset];
}
WRITE8_HANDLER(t5182_sharedram_w)
{
t5182_sharedram[offset] = data;
}
static TIMER_CALLBACK( setirq_callback ) static TIMER_CALLBACK( setirq_callback )
{ {
device_t *cpu; device_t *cpu;

View File

@ -13,6 +13,7 @@ READ8_HANDLER(t5182_sharedram_semaphore_snd_r);
WRITE8_HANDLER(t5182_sharedram_semaphore_main_acquire_w); WRITE8_HANDLER(t5182_sharedram_semaphore_main_acquire_w);
WRITE8_HANDLER(t5182_sharedram_semaphore_main_release_w); WRITE8_HANDLER(t5182_sharedram_semaphore_main_release_w);
extern UINT8 *t5182_sharedram; READ8_HANDLER( t5182_sharedram_r );
WRITE8_HANDLER( t5182_sharedram_w );
extern const ym2151_interface t5182_ym2151_interface; extern const ym2151_interface t5182_ym2151_interface;

View File

@ -376,25 +376,6 @@ static const UINT8 BFM_strcnv[] =
//ACIA helper functions //ACIA helper functions
static void send_to_adder(running_machine *machine, int data)
{
adder2_data_from_sc2 = 1; // set flag, data from scorpion2 board available
adder2_sc2data = data; // store data
adder2_acia_triggered = 1; // set flag, acia IRQ triggered
cputag_set_input_line(machine, "adder2", M6809_IRQ_LINE, ASSERT_LINE );//HOLD_LINE);// trigger IRQ
}
///////////////////////////////////////////////////////////////////////////
static int receive_from_adder(void)
{
int data = adder2_data;
adder2_data_to_sc2 = 0; // clr flag, data from adder available
return data;
}
///////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////
static READ8_HANDLER( mux1latch_r ) static READ8_HANDLER( mux1latch_r )
@ -629,7 +610,8 @@ static WRITE8_DEVICE_HANDLER( nec_latch_w )
static WRITE8_HANDLER( vid_uart_tx_w ) static WRITE8_HANDLER( vid_uart_tx_w )
{ {
send_to_adder(space->machine,data); adder2_send(data);
cputag_set_input_line(space->machine, "adder2", M6809_IRQ_LINE, ASSERT_LINE );//HOLD_LINE);// trigger IRQ
} }
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
@ -642,21 +624,14 @@ static WRITE8_HANDLER( vid_uart_ctrl_w )
static READ8_HANDLER( vid_uart_rx_r ) static READ8_HANDLER( vid_uart_rx_r )
{ {
int data = receive_from_adder(); return adder2_receive();
return data;
} }
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
static READ8_HANDLER( vid_uart_ctrl_r ) static READ8_HANDLER( vid_uart_ctrl_r )
{ {
int status = 0; return adder2_status();
if ( adder2_data_to_sc2 ) status |= 0x01; // receive buffer full
if ( !adder2_data_from_sc2) status |= 0x02; // transmit buffer empty
return status;
} }
// scorpion1 board init /////////////////////////////////////////////////// // scorpion1 board init ///////////////////////////////////////////////////

View File

@ -257,42 +257,6 @@ static void e2ram_reset(running_machine *machine);
0 1 1 0 0 0 0 1 1 0 0 0
*/ */
///////////////////////////////////////////////////////////////////////////
static void send_to_adder(running_machine *machine, int data)
{
adder2_data_from_sc2 = 1;
adder2_sc2data = data;
adder2_acia_triggered = 1;
cputag_set_input_line(machine, "adder2", M6809_IRQ_LINE, HOLD_LINE );
LOG_SERIAL(("sadder %02X (%c)\n",data, data ));
}
///////////////////////////////////////////////////////////////////////////
static int receive_from_adder(void)
{
int data = adder2_data;
adder2_data_to_sc2 = 0;
LOG_SERIAL(("radder: %02X(%c)\n",data, data ));
return data;
}
///////////////////////////////////////////////////////////////////////////
static int get_scorpion2_uart_status(running_machine *machine)
{
int status = 0;
if ( adder2_data_to_sc2 ) status |= 0x01; // receive buffer full
if ( !adder2_data_from_sc2) status |= 0x02; // transmit buffer empty
return status;
}
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// called if board is reset /////////////////////////////////////////////// // called if board is reset ///////////////////////////////////////////////
@ -1062,7 +1026,10 @@ static WRITE8_HANDLER( uart2data_w )
static WRITE8_HANDLER( vid_uart_tx_w ) static WRITE8_HANDLER( vid_uart_tx_w )
{ {
send_to_adder(space->machine, data); adder2_send(data);
cputag_set_input_line(space->machine, "adder2", M6809_IRQ_LINE, HOLD_LINE );
LOG_SERIAL(("sadder %02X (%c)\n",data, data ));
} }
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
@ -1075,14 +1042,18 @@ static WRITE8_HANDLER( vid_uart_ctrl_w )
static READ8_HANDLER( vid_uart_rx_r ) static READ8_HANDLER( vid_uart_rx_r )
{ {
return receive_from_adder(); int data = adder2_receive();
LOG_SERIAL(("radder: %02X(%c)\n",data, data ));
return data;
} }
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
static READ8_HANDLER( vid_uart_ctrl_r ) static READ8_HANDLER( vid_uart_ctrl_r )
{ {
return get_scorpion2_uart_status(space->machine); return adder2_status();
} }
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////

View File

@ -37,17 +37,6 @@ static WRITE8_HANDLER(darkmist_hw_w)
memory_set_bankptr(space->machine, "bank1",&space->machine->region("maincpu")->base()[0x010000+((data&0x80)?0x4000:0)]); memory_set_bankptr(space->machine, "bank1",&space->machine->region("maincpu")->base()[0x010000+((data&0x80)?0x4000:0)]);
} }
static READ8_HANDLER(t5182shared_r)
{
return t5182_sharedram[offset];
}
static WRITE8_HANDLER(t5182shared_w)
{
t5182_sharedram[offset] = data;
}
static ADDRESS_MAP_START( memmap, ADDRESS_SPACE_PROGRAM, 8 ) static ADDRESS_MAP_START( memmap, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
@ -61,7 +50,7 @@ static ADDRESS_MAP_START( memmap, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xc808, 0xc808) AM_READ_PORT("UNK") AM_RANGE(0xc808, 0xc808) AM_READ_PORT("UNK")
AM_RANGE(0xd000, 0xd3ff) AM_RAM AM_BASE_GENERIC(paletteram) AM_RANGE(0xd000, 0xd3ff) AM_RAM AM_BASE_GENERIC(paletteram)
AM_RANGE(0xd400, 0xd41f) AM_RAM AM_BASE_MEMBER(darkmist_state, scroll) AM_RANGE(0xd400, 0xd41f) AM_RAM AM_BASE_MEMBER(darkmist_state, scroll)
AM_RANGE(0xd600, 0xd67f) AM_READWRITE(t5182shared_r, t5182shared_w) AM_RANGE(0xd600, 0xd67f) AM_READWRITE(t5182_sharedram_r, t5182_sharedram_w)
AM_RANGE(0xd680, 0xd680) AM_WRITE(t5182_sound_irq_w) AM_RANGE(0xd680, 0xd680) AM_WRITE(t5182_sound_irq_w)
AM_RANGE(0xd681, 0xd681) AM_READ(t5182_sharedram_semaphore_snd_r) AM_RANGE(0xd681, 0xd681) AM_READ(t5182_sharedram_semaphore_snd_r)
AM_RANGE(0xd682, 0xd682) AM_WRITE(t5182_sharedram_semaphore_main_acquire_w) AM_RANGE(0xd682, 0xd682) AM_WRITE(t5182_sharedram_semaphore_main_acquire_w)

View File

@ -346,7 +346,7 @@ static READ8_HANDLER( exidy440_input_port_3_r )
static READ8_HANDLER( sound_command_ack_r ) static READ8_HANDLER( sound_command_ack_r )
{ {
/* sound command acknowledgements come on bit 3 here */ /* sound command acknowledgements come on bit 3 here */
return exidy440_sound_command_ack ? 0xf7 : 0xff; return exidy440_sound_command_ack() ? 0xf7 : 0xff;
} }
@ -359,11 +359,7 @@ static READ8_HANDLER( sound_command_ack_r )
static TIMER_CALLBACK( delayed_sound_command_w ) static TIMER_CALLBACK( delayed_sound_command_w )
{ {
exidy440_sound_command = param; exidy440_sound_command(machine, param);
exidy440_sound_command_ack = 0;
/* cause an FIRQ on the sound CPU */
cputag_set_input_line(machine, "audiocpu", 1, ASSERT_LINE);
} }

View File

@ -250,17 +250,6 @@ static MACHINE_RESET( josvolly )
josvolly_8741_reset(); josvolly_8741_reset();
} }
#if 0
static INTERRUPT_GEN( josvolly_snd_interrupt )
{
if(josvolly_nmi_enable)
{
cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
josvolly_nmi_enable = 0;
}
}
#endif
static INTERRUPT_GEN( gsword_snd_interrupt ) static INTERRUPT_GEN( gsword_snd_interrupt )
{ {
gsword_state *state = device->machine->driver_data<gsword_state>(); gsword_state *state = device->machine->driver_data<gsword_state>();
@ -306,11 +295,6 @@ static WRITE8_DEVICE_HANDLER( gsword_nmi_set_w )
#endif #endif
} }
static WRITE8_HANDLER( josvolly_nmi_enable_w )
{
josvolly_nmi_enable = 1;
}
static WRITE8_DEVICE_HANDLER( gsword_AY8910_control_port_0_w ) static WRITE8_DEVICE_HANDLER( gsword_AY8910_control_port_0_w )
{ {
gsword_state *state = device->machine->driver_data<gsword_state>(); gsword_state *state = device->machine->driver_data<gsword_state>();

View File

@ -42,17 +42,6 @@ YM2151:
#define YM_CLOCK (XTAL1/4) #define YM_CLOCK (XTAL1/4)
static READ8_HANDLER(t5182shared_r)
{
return t5182_sharedram[offset];
}
static WRITE8_HANDLER(t5182shared_w)
{
t5182_sharedram[offset] = data;
}
static ADDRESS_MAP_START( memmap, ADDRESS_SPACE_PROGRAM, 8 ) static ADDRESS_MAP_START( memmap, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROM AM_RANGE(0x8000, 0xbfff) AM_ROM
@ -61,7 +50,7 @@ static ADDRESS_MAP_START( memmap, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xd001, 0xd001) AM_READ(t5182_sharedram_semaphore_snd_r) AM_RANGE(0xd001, 0xd001) AM_READ(t5182_sharedram_semaphore_snd_r)
AM_RANGE(0xd002, 0xd002) AM_WRITE(t5182_sharedram_semaphore_main_acquire_w) AM_RANGE(0xd002, 0xd002) AM_WRITE(t5182_sharedram_semaphore_main_acquire_w)
AM_RANGE(0xd003, 0xd003) AM_WRITE(t5182_sharedram_semaphore_main_release_w) AM_RANGE(0xd003, 0xd003) AM_WRITE(t5182_sharedram_semaphore_main_release_w)
AM_RANGE(0xd400, 0xd4ff) AM_READWRITE(t5182shared_r, t5182shared_w) AM_RANGE(0xd400, 0xd4ff) AM_READWRITE(t5182_sharedram_r, t5182_sharedram_w)
AM_RANGE(0xd800, 0xd800) AM_READ_PORT("P1") AM_RANGE(0xd800, 0xd800) AM_READ_PORT("P1")
AM_RANGE(0xd801, 0xd801) AM_READ_PORT("P2") AM_RANGE(0xd801, 0xd801) AM_READ_PORT("P2")
AM_RANGE(0xd802, 0xd802) AM_READ_PORT("START") AM_RANGE(0xd802, 0xd802) AM_READ_PORT("START")

View File

@ -175,7 +175,7 @@ static TILE_GET_INFO( get_txttile_info )
static READ8_HANDLER(t5182shared_r) static READ8_HANDLER(t5182shared_r)
{ {
if ((offset & 1) == 0) if ((offset & 1) == 0)
return t5182_sharedram[offset/2]; return t5182_sharedram_r(space, offset/2);
else else
return 0; return 0;
} }
@ -183,7 +183,7 @@ static READ8_HANDLER(t5182shared_r)
static WRITE8_HANDLER(t5182shared_w) static WRITE8_HANDLER(t5182shared_w)
{ {
if ((offset & 1) == 0) if ((offset & 1) == 0)
t5182_sharedram[offset/2] = data; t5182_sharedram_w(space, offset/2, data);
} }

View File

@ -436,7 +436,7 @@ public:
extern const char *const amiga_custom_names[0x100]; extern const char *const amiga_custom_names[0x100];
extern void amiga_chip_ram_w8(amiga_state *state, offs_t offset, UINT8 data); void amiga_chip_ram_w8(amiga_state *state, offs_t offset, UINT8 data);
void amiga_machine_config(running_machine *machine, const amiga_machine_interface *intf); void amiga_machine_config(running_machine *machine, const amiga_machine_interface *intf);

View File

@ -98,7 +98,7 @@ WRITE32_HANDLER( konamigx_t1_psacmap_w );
WRITE32_HANDLER( konamigx_t4_psacmap_w ); WRITE32_HANDLER( konamigx_t4_psacmap_w );
extern int konamigx_current_frame; extern int konamigx_current_frame;
extern WRITE32_HANDLER( konamigx_type3_psac2_bank_w ); WRITE32_HANDLER( konamigx_type3_psac2_bank_w );
extern UINT32* konamigx_type3_psac2_bank; extern UINT32* konamigx_type3_psac2_bank;

View File

@ -5,5 +5,5 @@
DISCRETE_SOUND_EXTERN( m79amb ); DISCRETE_SOUND_EXTERN( m79amb );
extern WRITE8_DEVICE_HANDLER( m79amb_8000_w ); WRITE8_DEVICE_HANDLER( m79amb_8000_w );
extern WRITE8_DEVICE_HANDLER( m79amb_8003_w ); WRITE8_DEVICE_HANDLER( m79amb_8003_w );

View File

@ -108,12 +108,12 @@ void model3_set_irq_line(running_machine *machine, UINT8 bit, int state);
/*----------- defined in machine/model3.c -----------*/ /*----------- defined in machine/model3.c -----------*/
extern void model3_machine_init(running_machine *machine, int step); void model3_machine_init(running_machine *machine, int step);
extern int model3_tap_read(running_machine *machine); int model3_tap_read(running_machine *machine);
extern void model3_tap_write(running_machine *machine, int tck, int tms, int tdi, int trst); void model3_tap_write(running_machine *machine, int tck, int tms, int tdi, int trst);
extern void model3_tap_reset(running_machine *machine); void model3_tap_reset(running_machine *machine);
extern READ32_HANDLER(rtc72421_r); READ32_HANDLER(rtc72421_r);
extern WRITE32_HANDLER(rtc72421_w); WRITE32_HANDLER(rtc72421_w);
/*----------- defined in video/model3.c -----------*/ /*----------- defined in video/model3.c -----------*/

View File

@ -52,4 +52,4 @@ DISCRETE_SOUND_EXTERN( orbit );
VIDEO_START( orbit ); VIDEO_START( orbit );
SCREEN_UPDATE( orbit ); SCREEN_UPDATE( orbit );
extern WRITE8_HANDLER( orbit_playfield_w ); WRITE8_HANDLER( orbit_playfield_w );

View File

@ -23,7 +23,7 @@ public:
DISCRETE_SOUND_EXTERN( skyraid ); DISCRETE_SOUND_EXTERN( skyraid );
extern WRITE8_DEVICE_HANDLER( skyraid_sound_w ); WRITE8_DEVICE_HANDLER( skyraid_sound_w );
/*----------- defined in video/skyraid.c -----------*/ /*----------- defined in video/skyraid.c -----------*/

View File

@ -231,23 +231,23 @@ typedef struct
} scc68070_regs_t; } scc68070_regs_t;
// Member functions // Member functions
extern TIMER_CALLBACK( scc68070_timer0_callback ); TIMER_CALLBACK( scc68070_timer0_callback );
extern TIMER_CALLBACK( scc68070_rx_callback ); TIMER_CALLBACK( scc68070_rx_callback );
extern TIMER_CALLBACK( scc68070_tx_callback ); TIMER_CALLBACK( scc68070_tx_callback );
extern READ16_HANDLER( scc68070_periphs_r ); READ16_HANDLER( scc68070_periphs_r );
extern WRITE16_HANDLER( scc68070_periphs_w ); WRITE16_HANDLER( scc68070_periphs_w );
//extern READ16_HANDLER( uart_loopback_enable ); //READ16_HANDLER( uart_loopback_enable );
extern void scc68070_init(running_machine *machine, scc68070_regs_t *scc68070); void scc68070_init(running_machine *machine, scc68070_regs_t *scc68070);
extern void scc68070_uart_rx(running_machine *machine, scc68070_regs_t *scc68070, UINT8 data); void scc68070_uart_rx(running_machine *machine, scc68070_regs_t *scc68070, UINT8 data);
extern void scc68070_uart_tx(running_machine *machine, scc68070_regs_t *scc68070, UINT8 data); void scc68070_uart_tx(running_machine *machine, scc68070_regs_t *scc68070, UINT8 data);
extern void scc68070_register_globals(running_machine *machine, scc68070_regs_t *scc68070); void scc68070_register_globals(running_machine *machine, scc68070_regs_t *scc68070);
// UART Access for Quizard // UART Access for Quizard
extern void scc68070_set_quizard_mcu_value(running_machine *machine, UINT16 value); void scc68070_set_quizard_mcu_value(running_machine *machine, UINT16 value);
extern void scc68070_set_quizard_mcu_ack(running_machine *machine, UINT8 ack); void scc68070_set_quizard_mcu_ack(running_machine *machine, UINT8 ack);
extern void scc68070_quizard_rx(running_machine *machine, scc68070_regs_t *scc68070, UINT8 data); void scc68070_quizard_rx(running_machine *machine, scc68070_regs_t *scc68070, UINT8 data);
extern INTERRUPT_GEN( scc68070_mcu_frame ); INTERRUPT_GEN( scc68070_mcu_frame );
#endif // _MACHINE_CDI070_H_ #endif // _MACHINE_CDI070_H_

View File

@ -110,91 +110,93 @@ public:
extern WRITE8_HANDLER( decocass_coin_counter_w ); WRITE8_HANDLER( decocass_coin_counter_w );
extern WRITE8_HANDLER( decocass_sound_command_w ); WRITE8_HANDLER( decocass_sound_command_w );
extern READ8_HANDLER( decocass_sound_data_r ); READ8_HANDLER( decocass_sound_data_r );
extern READ8_HANDLER( decocass_sound_ack_r ); READ8_HANDLER( decocass_sound_ack_r );
extern WRITE8_HANDLER( decocass_sound_data_w ); WRITE8_HANDLER( decocass_sound_data_w );
extern READ8_HANDLER( decocass_sound_command_r ); READ8_HANDLER( decocass_sound_command_r );
extern TIMER_DEVICE_CALLBACK( decocass_audio_nmi_gen ); TIMER_DEVICE_CALLBACK( decocass_audio_nmi_gen );
extern WRITE8_HANDLER( decocass_sound_nmi_enable_w ); WRITE8_HANDLER( decocass_sound_nmi_enable_w );
extern READ8_HANDLER( decocass_sound_nmi_enable_r ); READ8_HANDLER( decocass_sound_nmi_enable_r );
extern READ8_HANDLER( decocass_sound_data_ack_reset_r ); READ8_HANDLER( decocass_sound_data_ack_reset_r );
extern WRITE8_HANDLER( decocass_sound_data_ack_reset_w ); WRITE8_HANDLER( decocass_sound_data_ack_reset_w );
extern WRITE8_HANDLER( decocass_nmi_reset_w ); WRITE8_HANDLER( decocass_nmi_reset_w );
extern WRITE8_HANDLER( decocass_quadrature_decoder_reset_w ); WRITE8_HANDLER( decocass_quadrature_decoder_reset_w );
extern WRITE8_HANDLER( decocass_adc_w ); WRITE8_HANDLER( decocass_adc_w );
extern READ8_HANDLER( decocass_input_r ); READ8_HANDLER( decocass_input_r );
extern WRITE8_HANDLER( decocass_reset_w ); WRITE8_HANDLER( decocass_reset_w );
extern READ8_HANDLER( decocass_e5xx_r ); READ8_HANDLER( decocass_e5xx_r );
extern WRITE8_HANDLER( decocass_e5xx_w ); WRITE8_HANDLER( decocass_e5xx_w );
extern WRITE8_HANDLER( decocass_de0091_w ); WRITE8_HANDLER( decocass_de0091_w );
extern WRITE8_HANDLER( decocass_e900_w ); WRITE8_HANDLER( decocass_e900_w );
extern MACHINE_START( decocass ); MACHINE_START( decocass );
extern MACHINE_RESET( decocass ); MACHINE_RESET( decocass );
extern MACHINE_RESET( ctsttape ); MACHINE_RESET( ctsttape );
extern MACHINE_RESET( chwy ); MACHINE_RESET( chwy );
extern MACHINE_RESET( clocknch ); MACHINE_RESET( clocknch );
extern MACHINE_RESET( ctisland ); MACHINE_RESET( ctisland );
extern MACHINE_RESET( csuperas ); MACHINE_RESET( csuperas );
extern MACHINE_RESET( castfant ); MACHINE_RESET( castfant );
extern MACHINE_RESET( cluckypo ); MACHINE_RESET( cluckypo );
extern MACHINE_RESET( cterrani ); MACHINE_RESET( cterrani );
extern MACHINE_RESET( cexplore ); MACHINE_RESET( cexplore );
extern MACHINE_RESET( cprogolf ); MACHINE_RESET( cprogolf );
extern MACHINE_RESET( cmissnx ); MACHINE_RESET( cmissnx );
extern MACHINE_RESET( cdiscon1 ); MACHINE_RESET( cdiscon1 );
extern MACHINE_RESET( cptennis ); MACHINE_RESET( cptennis );
extern MACHINE_RESET( ctornado ); MACHINE_RESET( ctornado );
extern MACHINE_RESET( cbnj ); MACHINE_RESET( cbnj );
extern MACHINE_RESET( cburnrub ); MACHINE_RESET( cburnrub );
extern MACHINE_RESET( cbtime ); MACHINE_RESET( cbtime );
extern MACHINE_RESET( cgraplop ); MACHINE_RESET( cgraplop );
extern MACHINE_RESET( cgraplop2 ); MACHINE_RESET( cgraplop2 );
extern MACHINE_RESET( clapapa ); MACHINE_RESET( clapapa );
extern MACHINE_RESET( cfghtice ); MACHINE_RESET( cfghtice );
extern MACHINE_RESET( cprobowl ); MACHINE_RESET( cprobowl );
extern MACHINE_RESET( cnightst ); MACHINE_RESET( cnightst );
extern MACHINE_RESET( cprosocc ); MACHINE_RESET( cprosocc );
extern MACHINE_RESET( cppicf ); MACHINE_RESET( cppicf );
extern MACHINE_RESET( cscrtry ); MACHINE_RESET( cscrtry );
extern MACHINE_RESET( cflyball ); MACHINE_RESET( cflyball );
extern MACHINE_RESET( cbdash ); MACHINE_RESET( cbdash );
extern MACHINE_RESET( czeroize ); MACHINE_RESET( czeroize );
extern WRITE8_HANDLER( i8041_p1_w ); WRITE8_HANDLER( i8041_p1_w );
extern READ8_HANDLER( i8041_p1_r ); READ8_HANDLER( i8041_p1_r );
extern WRITE8_HANDLER( i8041_p2_w ); WRITE8_HANDLER( i8041_p2_w );
extern READ8_HANDLER( i8041_p2_r ); READ8_HANDLER( i8041_p2_r );
void decocass_machine_state_save_init(running_machine *machine); void decocass_machine_state_save_init(running_machine *machine);
/*----------- defined in video/decocass.c -----------*/ /*----------- defined in video/decocass.c -----------*/
extern WRITE8_HANDLER( decocass_paletteram_w );
extern WRITE8_HANDLER( decocass_charram_w );
extern WRITE8_HANDLER( decocass_fgvideoram_w );
extern WRITE8_HANDLER( decocass_colorram_w );
extern WRITE8_HANDLER( decocass_bgvideoram_w );
extern WRITE8_HANDLER( decocass_tileram_w );
extern WRITE8_HANDLER( decocass_objectram_w );
extern WRITE8_HANDLER( decocass_watchdog_count_w ); WRITE8_HANDLER( decocass_paletteram_w );
extern WRITE8_HANDLER( decocass_watchdog_flip_w ); WRITE8_HANDLER( decocass_charram_w );
extern WRITE8_HANDLER( decocass_color_missiles_w ); WRITE8_HANDLER( decocass_fgvideoram_w );
extern WRITE8_HANDLER( decocass_mode_set_w ); WRITE8_HANDLER( decocass_colorram_w );
extern WRITE8_HANDLER( decocass_color_center_bot_w ); WRITE8_HANDLER( decocass_bgvideoram_w );
extern WRITE8_HANDLER( decocass_back_h_shift_w ); WRITE8_HANDLER( decocass_tileram_w );
extern WRITE8_HANDLER( decocass_back_vl_shift_w ); WRITE8_HANDLER( decocass_objectram_w );
extern WRITE8_HANDLER( decocass_back_vr_shift_w );
extern WRITE8_HANDLER( decocass_part_h_shift_w );
extern WRITE8_HANDLER( decocass_part_v_shift_w );
extern WRITE8_HANDLER( decocass_center_h_shift_space_w );
extern WRITE8_HANDLER( decocass_center_v_shift_w );
extern VIDEO_START( decocass ); WRITE8_HANDLER( decocass_watchdog_count_w );
extern SCREEN_UPDATE( decocass ); WRITE8_HANDLER( decocass_watchdog_flip_w );
WRITE8_HANDLER( decocass_color_missiles_w );
WRITE8_HANDLER( decocass_mode_set_w );
WRITE8_HANDLER( decocass_color_center_bot_w );
WRITE8_HANDLER( decocass_back_h_shift_w );
WRITE8_HANDLER( decocass_back_vl_shift_w );
WRITE8_HANDLER( decocass_back_vr_shift_w );
WRITE8_HANDLER( decocass_part_h_shift_w );
WRITE8_HANDLER( decocass_part_v_shift_w );
WRITE8_HANDLER( decocass_center_h_shift_space_w );
WRITE8_HANDLER( decocass_center_v_shift_w );
VIDEO_START( decocass );
SCREEN_UPDATE( decocass );
void decocass_video_state_save_init(running_machine *machine); void decocass_video_state_save_init(running_machine *machine);

View File

@ -812,7 +812,7 @@ DRIVER_INIT( pceboard )
memory_install_write8_handler(cputag_get_address_space(machine, "cart", ADDRESS_SPACE_PROGRAM), 0x8000, 0xffff, 0, 0, eboard_rom_switch_w ); memory_install_write8_handler(cputag_get_address_space(machine, "cart", ADDRESS_SPACE_PROGRAM), 0x8000, 0xffff, 0, 0, eboard_rom_switch_w );
/* ppu_latch callback */ /* ppu_latch callback */
ppu_latch = mapper9_latch; ppu2c0x_set_latch(machine->device("ppu"), mapper9_latch);
/* nvram at $6000-$6fff */ /* nvram at $6000-$6fff */
memory_install_ram(cputag_get_address_space(machine, "cart", ADDRESS_SPACE_PROGRAM), 0x6000, 0x6fff, 0, 0, NULL ); memory_install_ram(cputag_get_address_space(machine, "cart", ADDRESS_SPACE_PROGRAM), 0x6000, 0x6fff, 0, 0, NULL );

View File

@ -1,9 +1,9 @@
/*SCU DSP stuff*/ /*SCU DSP stuff*/
extern void dsp_prg_ctrl(address_space *space, UINT32 data); void dsp_prg_ctrl(address_space *space, UINT32 data);
extern void dsp_prg_data(UINT32 data); void dsp_prg_data(UINT32 data);
extern void dsp_ram_addr_ctrl(UINT32 data); void dsp_ram_addr_ctrl(UINT32 data);
extern void dsp_ram_addr_w(UINT32 data); void dsp_ram_addr_w(UINT32 data);
extern UINT32 dsp_ram_addr_r(void); UINT32 dsp_ram_addr_r(void);
extern void dsp_execute_program(address_space *dmaspace); void dsp_execute_program(address_space *dmaspace);

View File

@ -378,7 +378,7 @@ joshi Vollyball set.
****************************************************************************/ ****************************************************************************/
int josvolly_nmi_enable; static int josvolly_nmi_enable;
typedef struct josvolly_8741_struct { typedef struct josvolly_8741_struct {
UINT8 cmd; UINT8 cmd;
@ -535,6 +535,11 @@ READ8_HANDLER( josvolly_8741_0_r ) { return josvolly_8741_r(space,0,offset); }
WRITE8_HANDLER( josvolly_8741_1_w ) { josvolly_8741_w(space,1,offset,data); } WRITE8_HANDLER( josvolly_8741_1_w ) { josvolly_8741_w(space,1,offset,data); }
READ8_HANDLER( josvolly_8741_1_r ) { return josvolly_8741_r(space,1,offset); } READ8_HANDLER( josvolly_8741_1_r ) { return josvolly_8741_r(space,1,offset); }
WRITE8_HANDLER( josvolly_nmi_enable_w )
{
josvolly_nmi_enable = 1;
}
static struct static struct
{ {
UINT8 rxd; UINT8 rxd;

View File

@ -42,13 +42,12 @@ READ8_HANDLER( TAITO8741_3_r );
joshi Volleyball set. joshi Volleyball set.
****************************************************************************/ ****************************************************************************/
extern int josvolly_nmi_enable;
void josvolly_8741_reset(void); void josvolly_8741_reset(void);
WRITE8_HANDLER( josvolly_8741_0_w ); WRITE8_HANDLER( josvolly_8741_0_w );
WRITE8_HANDLER( josvolly_8741_1_w ); WRITE8_HANDLER( josvolly_8741_1_w );
READ8_HANDLER( josvolly_8741_0_r ); READ8_HANDLER( josvolly_8741_0_r );
READ8_HANDLER( josvolly_8741_1_r ); READ8_HANDLER( josvolly_8741_1_r );
WRITE8_HANDLER( josvolly_nmi_enable_w );
/**************************************************************************** /****************************************************************************
Cycle Mahbou set. Cycle Mahbou set.

View File

@ -169,9 +169,7 @@ WRITE16_HANDLER( vertigo_wsot_w )
static TIMER_CALLBACK( sound_command_w ) static TIMER_CALLBACK( sound_command_w )
{ {
exidy440_sound_command = param; exidy440_sound_command(machine, param);
exidy440_sound_command_ack = 0;
cputag_set_input_line(machine, "audiocpu", INPUT_LINE_IRQ1, ASSERT_LINE);
/* It is important that the sound cpu ACKs the sound command /* It is important that the sound cpu ACKs the sound command
quickly. Otherwise the main CPU gives up with sound. Boosting quickly. Otherwise the main CPU gives up with sound. Boosting
@ -190,7 +188,7 @@ WRITE16_HANDLER( vertigo_audio_w )
READ16_HANDLER( vertigo_sio_r ) READ16_HANDLER( vertigo_sio_r )
{ {
return exidy440_sound_command_ack ? 0xfc : 0xfd; return exidy440_sound_command_ack() ? 0xfc : 0xfd;
} }

View File

@ -273,9 +273,6 @@ static void reset_common(running_machine *machine)
state->bg_status = 0x01; state->bg_status = 0x01;
state->flipscreen = 0; state->flipscreen = 0;
state->palette_intensity = 0; state->palette_intensity = 0;
if (jal_blend_table != NULL)
memset(jal_blend_table, 0, 0xc00);
} }
VIDEO_START( argus ) VIDEO_START( argus )
@ -292,7 +289,7 @@ VIDEO_START( argus )
/* dummy RAM for back ground */ /* dummy RAM for back ground */
state->dummy_bg0ram = auto_alloc_array(machine, UINT8, 0x800); state->dummy_bg0ram = auto_alloc_array(machine, UINT8, 0x800);
jal_blend_table = auto_alloc_array(machine, UINT8, 0xc00); jal_blend_init(machine, 1);
} }
VIDEO_RESET( argus ) VIDEO_RESET( argus )
@ -317,7 +314,7 @@ VIDEO_START( valtric )
state->mosaicbitmap = machine->primary_screen->alloc_compatible_bitmap(); state->mosaicbitmap = machine->primary_screen->alloc_compatible_bitmap();
jal_blend_table = auto_alloc_array(machine, UINT8, 0xc00); jal_blend_init(machine, 1);
} }
VIDEO_RESET( valtric ) VIDEO_RESET( valtric )
@ -346,8 +343,7 @@ VIDEO_START( butasan )
state->butasan_txram = &state->butasan_pagedram[1][0x000]; state->butasan_txram = &state->butasan_pagedram[1][0x000];
state->butasan_txbackram = &state->butasan_pagedram[1][0x800]; state->butasan_txbackram = &state->butasan_pagedram[1][0x800];
jal_blend_table = auto_alloc_array(machine, UINT8, 0xc00); jal_blend_init(machine, 1);
//jal_blend_table = NULL;
} }
VIDEO_RESET( butasan ) VIDEO_RESET( butasan )
@ -396,7 +392,7 @@ static void argus_change_palette(running_machine *machine, int color, int lo_off
argus_state *state = machine->driver_data<argus_state>(); argus_state *state = machine->driver_data<argus_state>();
UINT8 lo = state->paletteram[lo_offs]; UINT8 lo = state->paletteram[lo_offs];
UINT8 hi = state->paletteram[hi_offs]; UINT8 hi = state->paletteram[hi_offs];
if (jal_blend_table != NULL) jal_blend_table[color] = hi & 0x0f; jal_blend_set(color, hi & 0x0f);
palette_set_color_rgb(machine, color, pal4bit(lo >> 4), pal4bit(lo), pal4bit(hi >> 4)); palette_set_color_rgb(machine, color, pal4bit(lo >> 4), pal4bit(lo), pal4bit(hi >> 4));
} }

View File

@ -8,8 +8,8 @@
extern const char layout_awpvid14[]; /* main layout positioning 6 reels, a lamp matrix and a 14seg VFD */ extern const char layout_awpvid14[]; /* main layout positioning 6 reels, a lamp matrix and a 14seg VFD */
extern const char layout_awpvid16[]; /* main layout positioning 6 reels, a lamp matrix and a 16seg VFD */ extern const char layout_awpvid16[]; /* main layout positioning 6 reels, a lamp matrix and a 16seg VFD */
extern void awp_draw_reel(int rno); void awp_draw_reel(int rno);
extern void awp_reel_setup(void); void awp_reel_setup(void);
#endif #endif

View File

@ -113,7 +113,7 @@ static int adder2_screen_page_reg; // access/display select
static int adder2_c101; static int adder2_c101;
static int adder2_rx; static int adder2_rx;
static int adder_vbl_triggered; // flag <>0, VBL IRQ triggered static int adder_vbl_triggered; // flag <>0, VBL IRQ triggered
int adder2_acia_triggered; // flag <>0, ACIA receive IRQ static int adder2_acia_triggered; // flag <>0, ACIA receive IRQ
static UINT8 adder_ram[0xE80]; // normal RAM static UINT8 adder_ram[0xE80]; // normal RAM
static UINT8 adder_screen_ram[2][0x1180]; // paged display RAM static UINT8 adder_screen_ram[2][0x1180]; // paged display RAM
@ -121,11 +121,11 @@ static UINT8 adder_screen_ram[2][0x1180]; // paged display RAM
static tilemap_t *tilemap0; // tilemap screen0 static tilemap_t *tilemap0; // tilemap screen0
static tilemap_t *tilemap1; // timemap screen1 static tilemap_t *tilemap1; // timemap screen1
UINT8 adder2_data_from_sc2; static UINT8 adder2_data_from_sc2;
UINT8 adder2_data_to_sc2; static UINT8 adder2_data_to_sc2;
UINT8 adder2_data; static UINT8 adder2_data;
UINT8 adder2_sc2data; static UINT8 adder2_sc2data;
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
@ -416,6 +416,32 @@ static READ8_HANDLER( adder2_irq_r )
return status; return status;
} }
void adder2_send(int data)
{
adder2_data_from_sc2 = 1; // set flag, data from scorpion2 board available
adder2_sc2data = data; // store data
adder2_acia_triggered = 1; // set flag, acia IRQ triggered
}
int adder2_receive(void)
{
UINT8 data = adder2_data;
adder2_data_to_sc2 = 0; // clr flag, data from adder available
return data;
}
int adder2_status()
{
int status = 0;
if ( adder2_data_to_sc2 ) status |= 0x01; // receive buffer full
if ( !adder2_data_from_sc2) status |= 0x02; // transmit buffer empty
return status;
}
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
// // // //
// decode character data to a format which can be decoded by MAME // // decode character data to a format which can be decoded by MAME //

View File

@ -1,15 +1,12 @@
#ifndef INC_BFMADDER2 #ifndef INC_BFMADDER2
#define INC_BFMADDER2 #define INC_BFMADDER2
extern UINT8 adder2_data_from_sc2; // data available for adder from sc2 int adder2_receive(void);
extern UINT8 adder2_sc2data; // data void adder2_send(int data);
extern UINT8 adder2_data_to_sc2; // data available for sc2 from adder int adder2_status(void);
extern UINT8 adder2_data; // data
extern int adder2_acia_triggered; // flag <>0, ACIA receive IRQ
GFXDECODE_EXTERN( adder2 ); GFXDECODE_EXTERN( adder2 );
extern void adder2_decode_char_roms(running_machine *machine); void adder2_decode_char_roms(running_machine *machine);
MACHINE_RESET( adder2 ); MACHINE_RESET( adder2 );
INTERRUPT_GEN( adder2_vbl ); INTERRUPT_GEN( adder2_vbl );

View File

@ -16,7 +16,31 @@
/* each palette entry contains a fourth 'alpha' value */ /* each palette entry contains a fourth 'alpha' value */
UINT8 *jal_blend_table; static UINT8 *jal_blend_table;
static void jal_blend_reset(running_machine &machine)
{
memset(jal_blend_table, 0, 0xc00);
}
void jal_blend_init(running_machine *machine, int enable)
{
if (enable)
{
jal_blend_table = auto_alloc_array_clear(machine, UINT8, 0xc00);
machine->add_notifier(MACHINE_NOTIFY_RESET, jal_blend_reset);
}
else
{
jal_blend_table = NULL;
}
}
void jal_blend_set(int color, UINT8 val)
{
if (jal_blend_table) jal_blend_table[color] = val;
}
/* /*
* 'Alpha' Format * 'Alpha' Format

View File

@ -1,4 +1,6 @@
extern UINT8 *jal_blend_table; void jal_blend_init(running_machine *machine, int enable);
void jal_blend_set(int color, UINT8 val);
rgb_t jal_blend_func(rgb_t dest, rgb_t addMe, UINT8 alpha); rgb_t jal_blend_func(rgb_t dest, rgb_t addMe, UINT8 alpha);
void jal_blend_drawgfx(bitmap_t *dest_bmp,const rectangle *clip,const gfx_element *gfx, void jal_blend_drawgfx(bitmap_t *dest_bmp,const rectangle *clip,const gfx_element *gfx,
UINT32 code,UINT32 color,int flipx,int flipy,int offsx,int offsy, UINT32 code,UINT32 color,int flipx,int flipy,int offsx,int offsy,

View File

@ -183,11 +183,11 @@ struct _mcd212_ab_t
}; };
// Member functions // Member functions
extern READ16_HANDLER( mcd212_r ); READ16_HANDLER( mcd212_r );
extern WRITE16_HANDLER( mcd212_w ); WRITE16_HANDLER( mcd212_w );
extern TIMER_CALLBACK( mcd212_perform_scan ); TIMER_CALLBACK( mcd212_perform_scan );
extern VIDEO_START( cdimono1 ); VIDEO_START( cdimono1 );
extern SCREEN_UPDATE( cdimono1 ); SCREEN_UPDATE( cdimono1 );
extern SCREEN_UPDATE( cdimono1_lcd ); SCREEN_UPDATE( cdimono1_lcd );
#endif // _VIDEO_MCD212_H_ #endif // _VIDEO_MCD212_H_

View File

@ -108,6 +108,7 @@ struct _ppu2c0x_state
int scanlines_per_frame; /* number of scanlines per frame */ int scanlines_per_frame; /* number of scanlines per frame */
rgb_t palette[64*4]; /* palette for this chip */ rgb_t palette[64*4]; /* palette for this chip */
int security_value; /* 2C05 protection */ int security_value; /* 2C05 protection */
void (*latch)( device_t *device, offs_t offset );
}; };
@ -121,7 +122,6 @@ static TIMER_CALLBACK( scanline_callback );
static TIMER_CALLBACK( hblank_callback ); static TIMER_CALLBACK( hblank_callback );
static TIMER_CALLBACK( nmi_callback ); static TIMER_CALLBACK( nmi_callback );
void (*ppu_latch)( device_t *device, offs_t offset );
/* palette handlers */ /* palette handlers */
static WRITE8_HANDLER( ppu2c0x_palette_write ); static WRITE8_HANDLER( ppu2c0x_palette_write );
@ -327,6 +327,12 @@ static const gfx_layout ppu_charlayout =
* *
*************************************/ *************************************/
void ppu2c0x_set_latch( device_t *device, void (*latch)(device_t *device, offs_t offset))
{
ppu2c0x_state *ppu2c0x = get_token(device);
ppu2c0x->latch = latch;
}
static TIMER_CALLBACK( hblank_callback ) static TIMER_CALLBACK( hblank_callback )
{ {
device_t *device = (device_t *)ptr; device_t *device = (device_t *)ptr;
@ -436,9 +442,9 @@ static void draw_background( device_t *device, UINT8 *line_priority )
page2 = ppu2c0x->space->read_byte(index1); page2 = ppu2c0x->space->read_byte(index1);
// 27/12/2002 // 27/12/2002
if (ppu_latch) if (ppu2c0x->latch)
{ {
(*ppu_latch)(device, (tile_page << 10) | (page2 << 4)); (*ppu2c0x->latch)(device, (tile_page << 10) | (page2 << 4));
} }
if (start_x < VISIBLE_SCREEN_WIDTH) if (start_x < VISIBLE_SCREEN_WIDTH)
@ -577,8 +583,8 @@ static void draw_sprites( device_t *device, UINT8 *line_priority )
} }
} }
if (ppu_latch) if (ppu2c0x->latch)
(*ppu_latch)(device, (sprite_page << 10) | ((tile & 0xff) << 4)); (*ppu2c0x->latch)(device, (sprite_page << 10) | ((tile & 0xff) << 4));
/* compute the character's line to draw */ /* compute the character's line to draw */
sprite_line = scanline - sprite_ypos; sprite_line = scanline - sprite_ypos;
@ -991,8 +997,8 @@ READ8_DEVICE_HANDLER( ppu2c0x_r )
break; break;
case PPU_DATA: /* 7 */ case PPU_DATA: /* 7 */
if (ppu_latch) if (ppu2c0x->latch)
(*ppu_latch)(device, ppu2c0x->videomem_addr & 0x3fff); (*ppu2c0x->latch)(device, ppu2c0x->videomem_addr & 0x3fff);
if (ppu2c0x->videomem_addr >= 0x3f00) if (ppu2c0x->videomem_addr >= 0x3f00)
{ {
@ -1142,8 +1148,8 @@ WRITE8_DEVICE_HANDLER( ppu2c0x_w )
{ {
int tempAddr = ppu2c0x->videomem_addr & 0x3fff; int tempAddr = ppu2c0x->videomem_addr & 0x3fff;
if (ppu_latch) if (ppu2c0x->latch)
(*ppu_latch)(device, tempAddr); (*ppu2c0x->latch)(device, tempAddr);
/* if there's a callback, call it now */ /* if there's a callback, call it now */
if (ppu2c0x->vidaccess_callback_proc) if (ppu2c0x->vidaccess_callback_proc)

View File

@ -120,8 +120,7 @@ void ppu2c0x_set_vidaccess_callback( device_t *device, ppu2c0x_vidaccess_cb cb )
void ppu2c0x_set_scanlines_per_frame( device_t *device, int scanlines ) ATTR_NONNULL(1); void ppu2c0x_set_scanlines_per_frame( device_t *device, int scanlines ) ATTR_NONNULL(1);
//27/12/2002 (HACK!) //27/12/2002 (HACK!)
extern void (*ppu_latch)( device_t *device, offs_t offset ); void ppu2c0x_set_latch( device_t *device, void (*ppu_latch_t)( device_t *device, offs_t offset ));
WRITE8_DEVICE_HANDLER( ppu2c0x_w ); WRITE8_DEVICE_HANDLER( ppu2c0x_w );
READ8_DEVICE_HANDLER( ppu2c0x_r ); READ8_DEVICE_HANDLER( ppu2c0x_r );

View File

@ -28,7 +28,7 @@ static void psychic5_change_palette(running_machine *machine, int color, int off
psychic5_state *state = machine->driver_data<psychic5_state>(); psychic5_state *state = machine->driver_data<psychic5_state>();
UINT8 lo = state->ps5_palette_ram[offset & ~1]; UINT8 lo = state->ps5_palette_ram[offset & ~1];
UINT8 hi = state->ps5_palette_ram[offset | 1]; UINT8 hi = state->ps5_palette_ram[offset | 1];
if (jal_blend_table != NULL) jal_blend_table[color] = hi & 0x0f; jal_blend_set(color, hi & 0x0f);
palette_set_color_rgb(machine, color, pal4bit(lo >> 4), pal4bit(lo), pal4bit(hi >> 4)); palette_set_color_rgb(machine, color, pal4bit(lo >> 4), pal4bit(lo), pal4bit(hi >> 4));
} }
@ -252,7 +252,7 @@ VIDEO_START( psychic5 )
state->ps5_palette_ram = &state->ps5_pagedram[1][0x0400]; state->ps5_palette_ram = &state->ps5_pagedram[1][0x0400];
state->fg_videoram = &state->ps5_pagedram[1][0x1000]; state->fg_videoram = &state->ps5_pagedram[1][0x1000];
jal_blend_table = auto_alloc_array(machine, UINT8, 0xc00); jal_blend_init(machine, 1);
state->bg_palette_ram_base = 0x400; state->bg_palette_ram_base = 0x400;
state->bg_palette_base = 0x100; state->bg_palette_base = 0x100;
@ -276,8 +276,7 @@ VIDEO_START( bombsa )
state->fg_videoram = &state->ps5_pagedram[1][0x0800]; state->fg_videoram = &state->ps5_pagedram[1][0x0800];
state->ps5_palette_ram = &state->ps5_pagedram[1][0x1000]; state->ps5_palette_ram = &state->ps5_pagedram[1][0x1000];
//jal_blend_table = auto_alloc_array(machine, UINT8, 0xc00); jal_blend_init(machine, 0);
jal_blend_table = NULL;
state->bg_palette_ram_base = 0x000; state->bg_palette_ram_base = 0x000;
state->bg_palette_base = 0x000; state->bg_palette_base = 0x000;
@ -292,7 +291,6 @@ VIDEO_RESET( psychic5 )
memset(state->ps5_pagedram[0],0,0x2000); memset(state->ps5_pagedram[0],0,0x2000);
memset(state->ps5_pagedram[1],0,0x2000); memset(state->ps5_pagedram[1],0,0x2000);
state->palette_intensity = 0; state->palette_intensity = 0;
if (jal_blend_table != NULL) memset(jal_blend_table,0,0xc00);
} }
VIDEO_RESET( bombsa ) VIDEO_RESET( bombsa )
@ -304,7 +302,6 @@ VIDEO_RESET( bombsa )
memset(state->ps5_pagedram[0],0,0x2000); memset(state->ps5_pagedram[0],0,0x2000);
memset(state->ps5_pagedram[1],0,0x2000); memset(state->ps5_pagedram[1],0,0x2000);
state->palette_intensity = 0; state->palette_intensity = 0;
if (jal_blend_table != NULL) memset(jal_blend_table,0,0xc00);
} }

View File

@ -28,6 +28,6 @@ MCFG_DEVICE_CONFIG(_interface)
DEVICE I/O FUNCTIONS DEVICE I/O FUNCTIONS
***************************************************************************/ ***************************************************************************/
extern int vrender0_ProcessPacket(device_t *device, UINT32 PacketPtr, UINT16 *Dest, UINT8 *TEXTURE); int vrender0_ProcessPacket(device_t *device, UINT32 PacketPtr, UINT16 *Dest, UINT8 *TEXTURE);
#endif /* __VR0VIDEO_H__ */ #endif /* __VR0VIDEO_H__ */