mirror of
https://github.com/holub/mame
synced 2025-05-29 17:13:05 +03:00
deprecat.h
This commit is contained in:
parent
0e4d227b8a
commit
c3ee29a504
@ -46,15 +46,11 @@ c001 YM2203 #2 write
|
||||
#include "includes/vulgus.h"
|
||||
|
||||
|
||||
static INTERRUPT_GEN( vulgus_interrupt )
|
||||
static INTERRUPT_GEN( vulgus_vblank_irq )
|
||||
{
|
||||
if (cpu_getiloops(device) != 0)
|
||||
device_set_input_line_and_vector(device, 0, HOLD_LINE, 0xcf); /* RST 08h */
|
||||
else
|
||||
device_set_input_line_and_vector(device, 0, HOLD_LINE, 0xd7); /* RST 10h - vblank */
|
||||
device_set_input_line_and_vector(device, 0, HOLD_LINE, 0xd7); /* RST 10h - vblank */
|
||||
}
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x9fff) AM_ROM
|
||||
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("SYSTEM")
|
||||
@ -222,7 +218,7 @@ static MACHINE_CONFIG_START( vulgus, vulgus_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", Z80, 4000000) /* 4 MHz (?) */
|
||||
MCFG_CPU_PROGRAM_MAP(main_map)
|
||||
MCFG_CPU_VBLANK_INT_HACK(vulgus_interrupt,2)
|
||||
MCFG_CPU_VBLANK_INT("screen",vulgus_vblank_irq)
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", Z80, 3000000) /* 3 MHz ??? */
|
||||
MCFG_CPU_PROGRAM_MAP(sound_map)
|
||||
|
@ -15,7 +15,6 @@ likewise be a 2 screen game
|
||||
***************************************************************************/
|
||||
#include "emu.h"
|
||||
#include "cpu/m68000/m68000.h"
|
||||
#include "deprecat.h"
|
||||
#include "video/konicdev.h"
|
||||
#include "machine/eeprom.h"
|
||||
#include "cpu/z80/z80.h"
|
||||
@ -55,6 +54,7 @@ static WRITE16_HANDLER( eeprom_w )
|
||||
/* bit 2 is data */
|
||||
/* bit 3 is clock (active high) */
|
||||
/* bit 4 is cs (active low) */
|
||||
/* bit 5 is enabled in IRQ3, disabled in IRQ5 (sprite DMA start?) */
|
||||
input_port_write(space->machine(), "EEPROMOUT", data, 0xff);
|
||||
}
|
||||
if (ACCESSING_BITS_8_15)
|
||||
@ -88,10 +88,12 @@ static WRITE16_HANDLER( sound_irq_w )
|
||||
|
||||
static WRITE16_HANDLER( xmen_18fa00_w )
|
||||
{
|
||||
xmen_state *state = space->machine().driver_data<xmen_state>();
|
||||
|
||||
if(ACCESSING_BITS_0_7)
|
||||
{
|
||||
/* bit 2 is interrupt enable */
|
||||
interrupt_enable_w(space, 0, data & 0x04);
|
||||
state->m_vblank_irq_mask = data & 0x04;
|
||||
}
|
||||
}
|
||||
|
||||
@ -258,8 +260,8 @@ INPUT_PORTS_END
|
||||
|
||||
static CUSTOM_INPUT( xmen_frame_r )
|
||||
{
|
||||
xmen_state *state = field.machine().driver_data<xmen_state>();
|
||||
return state->m_current_frame;
|
||||
//xmen_state *state = field.machine().driver_data<xmen_state>();
|
||||
return field.machine().primary_screen->frame_number() & 1;
|
||||
}
|
||||
|
||||
static INPUT_PORTS_START( xmen6p )
|
||||
@ -295,15 +297,6 @@ static INPUT_PORTS_START( xmen6p )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
|
||||
static INTERRUPT_GEN( xmen_interrupt )
|
||||
{
|
||||
if (cpu_getiloops(device) == 0)
|
||||
irq5_line_hold(device);
|
||||
else
|
||||
irq3_line_hold(device);
|
||||
}
|
||||
|
||||
static MACHINE_START( xmen )
|
||||
{
|
||||
xmen_state *state = machine.driver_data<xmen_state>();
|
||||
@ -325,6 +318,7 @@ static MACHINE_START( xmen )
|
||||
state->save_item(NAME(state->m_sprite_colorbase));
|
||||
state->save_item(NAME(state->m_layer_colorbase));
|
||||
state->save_item(NAME(state->m_layerpri));
|
||||
state->save_item(NAME(state->m_vblank_irq_mask));
|
||||
machine.save().register_postload(save_prepost_delegate(FUNC(sound_reset_bank), &machine));
|
||||
}
|
||||
|
||||
@ -341,6 +335,7 @@ static MACHINE_RESET( xmen )
|
||||
|
||||
state->m_sprite_colorbase = 0;
|
||||
state->m_sound_curbank = 0;
|
||||
state->m_vblank_irq_mask = 0;
|
||||
}
|
||||
|
||||
static const k052109_interface xmen_k052109_intf =
|
||||
@ -361,12 +356,26 @@ static const k053247_interface xmen_k053246_intf =
|
||||
xmen_sprite_callback
|
||||
};
|
||||
|
||||
static TIMER_DEVICE_CALLBACK( xmen_scanline )
|
||||
{
|
||||
xmen_state *state = timer.machine().driver_data<xmen_state>();
|
||||
int scanline = param;
|
||||
|
||||
if(scanline == 240 && state->m_vblank_irq_mask) // vblank-out irq
|
||||
cputag_set_input_line(timer.machine(), "maincpu", 3, HOLD_LINE);
|
||||
|
||||
if(scanline == 0) // sprite DMA irq?
|
||||
cputag_set_input_line(timer.machine(), "maincpu", 5, HOLD_LINE);
|
||||
|
||||
}
|
||||
|
||||
|
||||
static MACHINE_CONFIG_START( xmen, xmen_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) /* verified on pcb */
|
||||
MCFG_CPU_PROGRAM_MAP(main_map)
|
||||
MCFG_CPU_VBLANK_INT_HACK(xmen_interrupt,2)
|
||||
MCFG_TIMER_ADD_SCANLINE("scantimer", xmen_scanline, "screen", 0, 1)
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", Z80, XTAL_16MHz/2) /* verified on pcb */
|
||||
MCFG_CPU_PROGRAM_MAP(sound_map)
|
||||
@ -404,41 +413,6 @@ static MACHINE_CONFIG_START( xmen, xmen_state )
|
||||
MCFG_SOUND_ROUTE(1, "rspeaker", 0.80)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
static MACHINE_START( xmen6p )
|
||||
{
|
||||
xmen_state *state = machine.driver_data<xmen_state>();
|
||||
|
||||
MACHINE_START_CALL(xmen);
|
||||
|
||||
state->save_item(NAME(state->m_current_frame));
|
||||
}
|
||||
|
||||
static MACHINE_RESET( xmen6p )
|
||||
{
|
||||
xmen_state *state = machine.driver_data<xmen_state>();
|
||||
state->m_current_frame = 0x00;
|
||||
}
|
||||
|
||||
static INTERRUPT_GEN( xmen6p_interrupt )
|
||||
{
|
||||
if (cpu_getiloops(device) == 0)
|
||||
{
|
||||
irq5_line_hold(device);
|
||||
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
// if (xmen_irqenabled & 0x04)
|
||||
// {
|
||||
irq3_line_hold(device);
|
||||
// state->m_current_frame = 0x00;
|
||||
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
static const k053247_interface xmen6p_k053246_intf =
|
||||
{
|
||||
"lscreen", /* is this correct? */
|
||||
@ -454,13 +428,13 @@ static MACHINE_CONFIG_START( xmen6p, xmen_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M68000, 16000000) /* ? */
|
||||
MCFG_CPU_PROGRAM_MAP(6p_main_map)
|
||||
MCFG_CPU_VBLANK_INT_HACK(xmen6p_interrupt,2)
|
||||
MCFG_TIMER_ADD_SCANLINE("scantimer", xmen_scanline, "lscreen", 0, 1)
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", Z80,8000000) /* verified with M1, guessed but accurate */
|
||||
MCFG_CPU_PROGRAM_MAP(sound_map)
|
||||
|
||||
MCFG_MACHINE_START(xmen6p)
|
||||
MCFG_MACHINE_RESET(xmen6p)
|
||||
MCFG_MACHINE_START(xmen)
|
||||
MCFG_MACHINE_RESET(xmen)
|
||||
|
||||
MCFG_EEPROM_ADD("eeprom", eeprom_intf)
|
||||
|
||||
|
@ -21,10 +21,10 @@ public:
|
||||
UINT16 * m_xmen6p_tilemapleft;
|
||||
UINT16 * m_xmen6p_tilemapright;
|
||||
UINT16 * m_k053247_ram;
|
||||
UINT16 m_current_frame;
|
||||
|
||||
/* misc */
|
||||
UINT8 m_sound_curbank;
|
||||
UINT8 m_vblank_irq_mask;
|
||||
|
||||
/* devices */
|
||||
device_t *m_maincpu;
|
||||
|
@ -143,8 +143,6 @@ SCREEN_EOF( xmen6p )
|
||||
rectangle cliprect;
|
||||
int offset;
|
||||
|
||||
state->m_current_frame ^= 0x01;
|
||||
|
||||
// const rectangle *visarea = machine.primary_screen->visible_area();
|
||||
// cliprect.min_x = visarea->min_x;
|
||||
// cliprect.max_x = visarea->max_x;
|
||||
@ -157,7 +155,7 @@ SCREEN_EOF( xmen6p )
|
||||
cliprect.max_y = 30 * 8 - 1;
|
||||
|
||||
|
||||
if (state->m_current_frame & 0x01)
|
||||
if (machine.primary_screen->frame_number() & 0x01)
|
||||
{
|
||||
|
||||
/* copy the desired spritelist to the chip */
|
||||
|
Loading…
Reference in New Issue
Block a user