mirror of
https://github.com/holub/mame
synced 2025-05-30 01:23:07 +03:00
Memory maps merges for the following drivers:
* groundfx.c (also fixed 00487: groundfx: It has wrong default NVRAM settings, especially about the lap number (1) and the coin/credit settings (1/2).) * lastduel.c * macrossp.c * madmotor.c (also cleaned-up some video variables in it) * mcatadv.c (also reduced a 1.0 clipping out volume setting) * moo.c Converted ssingles.c case of AM_READ(SMH_ROM)
This commit is contained in:
parent
da0f8757c8
commit
7c137ce2a7
@ -117,13 +117,13 @@ static TIMER_CALLBACK( groundfx_interrupt5 )
|
||||
|
||||
static const UINT8 default_eeprom[128]=
|
||||
{
|
||||
0x02,0x01,0x11,0x12,0x01,0x01,0x01,0x00,0x80,0x80,0x30,0x01,0x00,0x00,0x62,0x45,
|
||||
0xe0,0xa0,0xff,0x28,0xff,0xff,0xfa,0xd7,0x33,0x28,0x00,0x00,0x33,0x28,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xa0,0xff,0x28,0xff,0xff,0xff,0xff,0xfa,0xd7,
|
||||
0x33,0x28,0x00,0x00,0x33,0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||
0x62,0x11,0x00,0x00,0x00,0x00,0x01,0x00,0x80,0x80,0x30,0x05,0x00,0x00,0x96,0x14,
|
||||
0x17,0x70,0x35,0xcd,0x75,0x30,0x24,0xaa,0x75,0x30,0x51,0xd9,0x75,0x30,0x2d,0x2b,
|
||||
0x75,0x30,0x51,0xb9,0x00,0x00,0xe0,0xa0,0x17,0x70,0x35,0xcd,0x75,0x30,0x24,0xaa,
|
||||
0x75,0x30,0x51,0xd9,0x75,0x30,0x2d,0x2b,0x75,0x30,0x51,0xb9,0x00,0x00,0xff,0xff,
|
||||
0x17,0x70,0x35,0xcd,0x75,0x30,0x24,0xaa,0x75,0x30,0x51,0xd9,0x75,0x30,0x2d,0x2b,
|
||||
0x75,0x30,0x51,0xb9,0xff,0xff,0xff,0xff,0x17,0x70,0x35,0xcd,0x75,0x30,0x24,0xaa,
|
||||
0x75,0x30,0x51,0xd9,0x75,0x30,0x2d,0x2b,0x75,0x30,0x51,0xb9,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
|
||||
};
|
||||
|
||||
@ -249,37 +249,23 @@ static WRITE32_HANDLER( motor_control_w )
|
||||
MEMORY STRUCTURES
|
||||
***********************************************************/
|
||||
|
||||
static ADDRESS_MAP_START( groundfx_readmem, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x000000, 0x1fffff) AM_READ(SMH_ROM)
|
||||
AM_RANGE(0x200000, 0x21ffff) AM_READ(SMH_RAM) /* main CPUA ram */
|
||||
AM_RANGE(0x300000, 0x303fff) AM_READ(SMH_RAM) /* sprite ram */
|
||||
static ADDRESS_MAP_START( groundfx_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x000000, 0x1fffff) AM_ROM
|
||||
AM_RANGE(0x200000, 0x21ffff) AM_RAM AM_BASE(&groundfx_ram) /* main CPUA ram */
|
||||
AM_RANGE(0x300000, 0x303fff) AM_RAM AM_BASE(&spriteram32) AM_SIZE(&spriteram_size) /* sprite ram */
|
||||
AM_RANGE(0x400000, 0x400003) AM_WRITE(motor_control_w) /* gun vibration */
|
||||
AM_RANGE(0x500000, 0x500003) AM_READ_PORT("BUTTONS")
|
||||
AM_RANGE(0x500004, 0x500007) AM_READ_PORT("SYSTEM")
|
||||
AM_RANGE(0x600000, 0x600003) AM_READ(groundfx_adc_r)
|
||||
AM_RANGE(0x700000, 0x7007ff) AM_READ(SMH_RAM)
|
||||
AM_RANGE(0x800000, 0x80ffff) AM_READ(TC0480SCP_long_r) /* tilemaps */
|
||||
AM_RANGE(0x830000, 0x83002f) AM_READ(TC0480SCP_ctrl_long_r) // debugging
|
||||
AM_RANGE(0x900000, 0x90ffff) AM_READ(TC0100SCN_long_r) /* piv tilemaps */
|
||||
AM_RANGE(0x920000, 0x92000f) AM_READ(TC0100SCN_ctrl_long_r)
|
||||
AM_RANGE(0xa00000, 0xa0ffff) AM_READ(SMH_RAM) /* palette ram */
|
||||
AM_RANGE(0xb00000, 0xb003ff) AM_READ(SMH_RAM) // ?? single bytes
|
||||
AM_RANGE(0xc00000, 0xc00007) AM_READNOP /* Network? */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( groundfx_writemem, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x000000, 0x1fffff) AM_WRITE(SMH_ROM)
|
||||
AM_RANGE(0x200000, 0x21ffff) AM_WRITE(SMH_RAM) AM_BASE(&groundfx_ram)
|
||||
AM_RANGE(0x300000, 0x303fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram32) AM_SIZE(&spriteram_size)
|
||||
AM_RANGE(0x400000, 0x400003) AM_WRITE(motor_control_w) /* gun vibration */
|
||||
AM_RANGE(0x500000, 0x500007) AM_WRITE(groundfx_input_w) /* eeprom etc. */
|
||||
AM_RANGE(0x600000, 0x600003) AM_WRITE(groundfx_adc_w)
|
||||
AM_RANGE(0x700000, 0x7007ff) AM_WRITE(SMH_RAM) AM_BASE(&f3_shared_ram)
|
||||
AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0480SCP_long_w) /* tilemaps */
|
||||
AM_RANGE(0x830000, 0x83002f) AM_WRITE(TC0480SCP_ctrl_long_w)
|
||||
AM_RANGE(0x900000, 0x90ffff) AM_WRITE(TC0100SCN_long_w) /* piv tilemaps */
|
||||
AM_RANGE(0x920000, 0x92000f) AM_WRITE(TC0100SCN_ctrl_long_w)
|
||||
AM_RANGE(0xa00000, 0xa0ffff) AM_WRITE(color_ram_w) AM_BASE(&paletteram32)
|
||||
AM_RANGE(0xb00000, 0xb003ff) AM_WRITE(SMH_RAM) // single bytes, blending ??
|
||||
AM_RANGE(0x600000, 0x600003) AM_READWRITE(groundfx_adc_r,groundfx_adc_w)
|
||||
AM_RANGE(0x700000, 0x7007ff) AM_RAM AM_BASE(&f3_shared_ram)
|
||||
AM_RANGE(0x800000, 0x80ffff) AM_READWRITE(TC0480SCP_long_r,TC0480SCP_long_w) /* tilemaps */
|
||||
AM_RANGE(0x830000, 0x83002f) AM_READWRITE(TC0480SCP_ctrl_long_r,TC0480SCP_ctrl_long_w) // debugging
|
||||
AM_RANGE(0x900000, 0x90ffff) AM_READWRITE(TC0100SCN_long_r,TC0100SCN_long_w) /* piv tilemaps */
|
||||
AM_RANGE(0x920000, 0x92000f) AM_READWRITE(TC0100SCN_ctrl_long_r,TC0100SCN_ctrl_long_w)
|
||||
AM_RANGE(0xa00000, 0xa0ffff) AM_RAM_WRITE(color_ram_w) AM_BASE(&paletteram32) /* palette ram */
|
||||
AM_RANGE(0xb00000, 0xb003ff) AM_RAM // ?? single bytes, blending ??
|
||||
AM_RANGE(0xc00000, 0xc00007) AM_READNOP /* Network? */
|
||||
AM_RANGE(0xd00000, 0xd00003) AM_WRITE(rotate_control_w) /* perhaps port based rotate control? */
|
||||
/* f00000 is seat control? */
|
||||
ADDRESS_MAP_END
|
||||
@ -397,7 +383,7 @@ static MACHINE_DRIVER_START( groundfx )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("maincpu", M68EC020, 16000000) /* 16 MHz */
|
||||
MDRV_CPU_PROGRAM_MAP(groundfx_readmem,groundfx_writemem)
|
||||
MDRV_CPU_PROGRAM_MAP(groundfx_map,0)
|
||||
MDRV_CPU_VBLANK_INT("screen", groundfx_interrupt)
|
||||
|
||||
TAITO_F3_SOUND_SYSTEM_CPU(16000000)
|
||||
|
@ -49,102 +49,64 @@ static WRITE16_HANDLER( lastduel_sound_w )
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
static ADDRESS_MAP_START( lastduel_readmem, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x05ffff) AM_READ(SMH_ROM)
|
||||
AM_RANGE(0xfc0800, 0xfc0fff) AM_READ(SMH_RAM)
|
||||
AM_RANGE(0xfc4000, 0xfc4001) AM_READ_PORT("P1_P2")
|
||||
AM_RANGE(0xfc4002, 0xfc4003) AM_READ_PORT("SYSTEM")
|
||||
static ADDRESS_MAP_START( lastduel_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x05ffff) AM_ROM
|
||||
AM_RANGE(0xfc0000, 0xfc0003) AM_WRITENOP /* Written rarely */
|
||||
AM_RANGE(0xfc0800, 0xfc0fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
|
||||
AM_RANGE(0xfc4000, 0xfc4001) AM_READ_PORT("P1_P2") AM_WRITE(lastduel_flip_w)
|
||||
AM_RANGE(0xfc4002, 0xfc4003) AM_READ_PORT("SYSTEM") AM_WRITE(lastduel_sound_w)
|
||||
AM_RANGE(0xfc4004, 0xfc4005) AM_READ_PORT("DSW1")
|
||||
AM_RANGE(0xfc4006, 0xfc4007) AM_READ_PORT("DSW2")
|
||||
AM_RANGE(0xfcc000, 0xfcdfff) AM_READ(SMH_RAM)
|
||||
AM_RANGE(0xfd0000, 0xfd3fff) AM_READ(SMH_RAM)
|
||||
AM_RANGE(0xfd4000, 0xfd7fff) AM_READ(SMH_RAM)
|
||||
AM_RANGE(0xfd8000, 0xfd87ff) AM_READ(SMH_RAM)
|
||||
AM_RANGE(0xfe0000, 0xffffff) AM_READ(SMH_RAM)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( lastduel_writemem, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x05ffff) AM_WRITE(SMH_ROM)
|
||||
AM_RANGE(0xfc0000, 0xfc0003) AM_WRITENOP /* Written rarely */
|
||||
AM_RANGE(0xfc0800, 0xfc0fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
|
||||
AM_RANGE(0xfc4000, 0xfc4001) AM_WRITE(lastduel_flip_w)
|
||||
AM_RANGE(0xfc4002, 0xfc4003) AM_WRITE(lastduel_sound_w)
|
||||
AM_RANGE(0xfc8000, 0xfc800f) AM_WRITE(lastduel_scroll_w)
|
||||
AM_RANGE(0xfcc000, 0xfcdfff) AM_WRITE(lastduel_vram_w) AM_BASE(&lastduel_vram)
|
||||
AM_RANGE(0xfd0000, 0xfd3fff) AM_WRITE(lastduel_scroll1_w) AM_BASE(&lastduel_scroll1)
|
||||
AM_RANGE(0xfd4000, 0xfd7fff) AM_WRITE(lastduel_scroll2_w) AM_BASE(&lastduel_scroll2)
|
||||
AM_RANGE(0xfd8000, 0xfd87ff) AM_WRITE(lastduel_palette_word_w) AM_BASE(&paletteram16)
|
||||
AM_RANGE(0xfe0000, 0xffffff) AM_WRITE(SMH_RAM)
|
||||
AM_RANGE(0xfcc000, 0xfcdfff) AM_RAM_WRITE(lastduel_vram_w) AM_BASE(&lastduel_vram)
|
||||
AM_RANGE(0xfd0000, 0xfd3fff) AM_RAM_WRITE(lastduel_scroll1_w) AM_BASE(&lastduel_scroll1)
|
||||
AM_RANGE(0xfd4000, 0xfd7fff) AM_RAM_WRITE(lastduel_scroll2_w) AM_BASE(&lastduel_scroll2)
|
||||
AM_RANGE(0xfd8000, 0xfd87ff) AM_RAM_WRITE(lastduel_palette_word_w) AM_BASE(&paletteram16)
|
||||
AM_RANGE(0xfe0000, 0xffffff) AM_RAM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( madgear_readmem, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM)
|
||||
AM_RANGE(0xfc1800, 0xfc1fff) AM_READ(SMH_RAM)
|
||||
AM_RANGE(0xfc4000, 0xfc4001) AM_READ_PORT("DSW1")
|
||||
AM_RANGE(0xfc4002, 0xfc4003) AM_READ_PORT("DSW2")
|
||||
static ADDRESS_MAP_START( madgear_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x07ffff) AM_ROM
|
||||
AM_RANGE(0xfc1800, 0xfc1fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
|
||||
AM_RANGE(0xfc4000, 0xfc4001) AM_READ_PORT("DSW1") AM_WRITE(lastduel_flip_w)
|
||||
AM_RANGE(0xfc4002, 0xfc4003) AM_READ_PORT("DSW2") AM_WRITE(lastduel_sound_w)
|
||||
AM_RANGE(0xfc4004, 0xfc4005) AM_READ_PORT("P1_P2")
|
||||
AM_RANGE(0xfc4006, 0xfc4007) AM_READ_PORT("SYSTEM")
|
||||
AM_RANGE(0xfc8000, 0xfc9fff) AM_READ(SMH_RAM)
|
||||
AM_RANGE(0xfcc000, 0xfcc7ff) AM_READ(SMH_RAM)
|
||||
AM_RANGE(0xfd4000, 0xfd7fff) AM_READ(SMH_RAM)
|
||||
AM_RANGE(0xfd8000, 0xfdffff) AM_READ(SMH_RAM)
|
||||
AM_RANGE(0xff0000, 0xffffff) AM_READ(SMH_RAM)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( madgear_writemem, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM)
|
||||
AM_RANGE(0xfc1800, 0xfc1fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
|
||||
AM_RANGE(0xfc4000, 0xfc4001) AM_WRITE(lastduel_flip_w)
|
||||
AM_RANGE(0xfc4002, 0xfc4003) AM_WRITE(lastduel_sound_w)
|
||||
AM_RANGE(0xfc8000, 0xfc9fff) AM_WRITE(lastduel_vram_w) AM_BASE(&lastduel_vram)
|
||||
AM_RANGE(0xfcc000, 0xfcc7ff) AM_WRITE(lastduel_palette_word_w) AM_BASE(&paletteram16)
|
||||
AM_RANGE(0xfc8000, 0xfc9fff) AM_RAM_WRITE(lastduel_vram_w) AM_BASE(&lastduel_vram)
|
||||
AM_RANGE(0xfcc000, 0xfcc7ff) AM_RAM_WRITE(lastduel_palette_word_w) AM_BASE(&paletteram16)
|
||||
AM_RANGE(0xfd0000, 0xfd000f) AM_WRITE(lastduel_scroll_w)
|
||||
AM_RANGE(0xfd4000, 0xfd7fff) AM_WRITE(madgear_scroll1_w) AM_BASE(&lastduel_scroll1)
|
||||
AM_RANGE(0xfd8000, 0xfdffff) AM_WRITE(madgear_scroll2_w) AM_BASE(&lastduel_scroll2)
|
||||
AM_RANGE(0xff0000, 0xffffff) AM_WRITE(SMH_RAM)
|
||||
AM_RANGE(0xfd4000, 0xfd7fff) AM_RAM_WRITE(madgear_scroll1_w) AM_BASE(&lastduel_scroll1)
|
||||
AM_RANGE(0xfd8000, 0xfdffff) AM_RAM_WRITE(madgear_scroll2_w) AM_BASE(&lastduel_scroll2)
|
||||
AM_RANGE(0xff0000, 0xffffff) AM_RAM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0xdfff) AM_READ(SMH_ROM)
|
||||
AM_RANGE(0xe000, 0xe7ff) AM_READ(SMH_RAM)
|
||||
AM_RANGE(0xe800, 0xe801) AM_DEVREAD("ym1", ym2203_r)
|
||||
AM_RANGE(0xf000, 0xf001) AM_DEVREAD("ym2", ym2203_r)
|
||||
static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0xdfff) AM_ROM
|
||||
AM_RANGE(0xe000, 0xe7ff) AM_RAM
|
||||
AM_RANGE(0xe800, 0xe801) AM_DEVREADWRITE("ym1", ym2203_r,ym2203_w)
|
||||
AM_RANGE(0xf000, 0xf001) AM_DEVREADWRITE("ym2", ym2203_r,ym2203_w)
|
||||
AM_RANGE(0xf800, 0xf800) AM_READ(soundlatch_r)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0xdfff) AM_WRITE(SMH_ROM)
|
||||
AM_RANGE(0xe000, 0xe7ff) AM_WRITE(SMH_RAM)
|
||||
AM_RANGE(0xe800, 0xe801) AM_DEVWRITE("ym1", ym2203_w)
|
||||
AM_RANGE(0xf000, 0xf001) AM_DEVWRITE("ym2", ym2203_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static WRITE8_HANDLER( mg_bankswitch_w )
|
||||
{
|
||||
int bankaddress;
|
||||
UINT8 *RAM = memory_region(space->machine, "audiocpu");
|
||||
|
||||
bankaddress = 0x10000 + (data & 0x01) * 0x4000;
|
||||
memory_set_bankptr(space->machine, 3,&RAM[bankaddress]);
|
||||
memory_set_bankptr(space->machine, 1,&RAM[bankaddress]);
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( mg_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
|
||||
AM_RANGE(0x8000, 0xcfff) AM_READ(SMH_BANK3)
|
||||
AM_RANGE(0xd000, 0xd7ff) AM_READ(SMH_RAM)
|
||||
AM_RANGE(0xf000, 0xf001) AM_DEVREAD("ym1", ym2203_r)
|
||||
AM_RANGE(0xf002, 0xf003) AM_DEVREAD("ym2", ym2203_r)
|
||||
AM_RANGE(0xf006, 0xf006) AM_READ(soundlatch_r)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( mg_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0xcfff) AM_WRITE(SMH_ROM)
|
||||
AM_RANGE(0xd000, 0xd7ff) AM_WRITE(SMH_RAM)
|
||||
AM_RANGE(0xf000, 0xf001) AM_DEVWRITE("ym1", ym2203_w)
|
||||
AM_RANGE(0xf002, 0xf003) AM_DEVWRITE("ym2", ym2203_w)
|
||||
static ADDRESS_MAP_START( madgear_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0x8000, 0xcfff) AM_ROMBANK(1)
|
||||
AM_RANGE(0xd000, 0xd7ff) AM_RAM
|
||||
AM_RANGE(0xf000, 0xf001) AM_DEVREADWRITE("ym1", ym2203_r,ym2203_w)
|
||||
AM_RANGE(0xf002, 0xf003) AM_DEVREADWRITE("ym2", ym2203_r,ym2203_w)
|
||||
AM_RANGE(0xf004, 0xf004) AM_DEVWRITE("oki", okim6295_w)
|
||||
AM_RANGE(0xf006, 0xf006) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0xf00a, 0xf00a) AM_WRITE(mg_bankswitch_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -265,11 +227,11 @@ static MACHINE_DRIVER_START( lastduel )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("maincpu", M68000, 10000000) /* Could be 8 MHz */
|
||||
MDRV_CPU_PROGRAM_MAP(lastduel_readmem,lastduel_writemem)
|
||||
MDRV_CPU_PROGRAM_MAP(lastduel_map,0)
|
||||
MDRV_CPU_VBLANK_INT_HACK(lastduel_interrupt,3) /* 1 for vbl, 2 for control reads?? */
|
||||
|
||||
MDRV_CPU_ADD("audiocpu", Z80, 3579545) /* Accurate */
|
||||
MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
|
||||
MDRV_CPU_PROGRAM_MAP(sound_map,0)
|
||||
|
||||
/* video hardware */
|
||||
MDRV_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK | VIDEO_BUFFERS_SPRITERAM)
|
||||
@ -304,11 +266,11 @@ static MACHINE_DRIVER_START( madgear )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("maincpu", M68000, 10000000) /* Accurate */
|
||||
MDRV_CPU_PROGRAM_MAP(madgear_readmem,madgear_writemem)
|
||||
MDRV_CPU_PROGRAM_MAP(madgear_map,0)
|
||||
MDRV_CPU_VBLANK_INT_HACK(madgear_interrupt,3) /* 1 for vbl, 2 for control reads?? */
|
||||
|
||||
MDRV_CPU_ADD("audiocpu", Z80, XTAL_3_579545MHz) /* verified on pcb */
|
||||
MDRV_CPU_PROGRAM_MAP(mg_sound_readmem,mg_sound_writemem)
|
||||
MDRV_CPU_PROGRAM_MAP(madgear_sound_map,0)
|
||||
|
||||
/* video hardware */
|
||||
MDRV_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK | VIDEO_BUFFERS_SPRITERAM)
|
||||
|
@ -404,65 +404,42 @@ static WRITE32_HANDLER( macrossp_palette_fade_w )
|
||||
|
||||
/*** MEMORY MAPS *************************************************************/
|
||||
|
||||
static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x000000, 0x3fffff) AM_READ(SMH_ROM)
|
||||
static ADDRESS_MAP_START( macrossp_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x000000, 0x3fffff) AM_ROM
|
||||
AM_RANGE(0x800000, 0x802fff) AM_RAM AM_BASE(¯ossp_spriteram) AM_SIZE(&spriteram_size)
|
||||
/* SCR A Layer */
|
||||
AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(macrossp_scra_videoram_w) AM_BASE(¯ossp_scra_videoram)
|
||||
AM_RANGE(0x904200, 0x9043ff) AM_WRITEONLY /* W/O? */
|
||||
AM_RANGE(0x905000, 0x90500b) AM_WRITEONLY AM_BASE(¯ossp_scra_videoregs) /* W/O? */
|
||||
/* SCR B Layer */
|
||||
AM_RANGE(0x908000, 0x90bfff) AM_RAM_WRITE(macrossp_scrb_videoram_w) AM_BASE(¯ossp_scrb_videoram)
|
||||
AM_RANGE(0x90c200, 0x90c3ff) AM_WRITEONLY /* W/O? */
|
||||
AM_RANGE(0x90d000, 0x90d00b) AM_WRITEONLY AM_BASE(¯ossp_scrb_videoregs) /* W/O? */
|
||||
/* SCR C Layer */
|
||||
AM_RANGE(0x910000, 0x913fff) AM_RAM_WRITE(macrossp_scrc_videoram_w) AM_BASE(¯ossp_scrc_videoram)
|
||||
AM_RANGE(0x914200, 0x9143ff) AM_WRITEONLY /* W/O? */
|
||||
AM_RANGE(0x915000, 0x91500b) AM_WRITEONLY AM_BASE(¯ossp_scrc_videoregs) /* W/O? */
|
||||
/* Text Layer */
|
||||
AM_RANGE(0x918000, 0x91bfff) AM_RAM_WRITE(macrossp_text_videoram_w) AM_BASE(¯ossp_text_videoram)
|
||||
AM_RANGE(0x91c200, 0x91c3ff) AM_WRITEONLY /* W/O? */
|
||||
AM_RANGE(0x91d000, 0x91d00b) AM_WRITEONLY AM_BASE(¯ossp_text_videoregs) /* W/O? */
|
||||
|
||||
AM_RANGE(0x800000, 0x802fff) AM_READ(SMH_RAM)
|
||||
|
||||
AM_RANGE(0x900000, 0x903fff) AM_READ(SMH_RAM)
|
||||
AM_RANGE(0x908000, 0x90bfff) AM_READ(SMH_RAM)
|
||||
AM_RANGE(0x910000, 0x913fff) AM_READ(SMH_RAM)
|
||||
AM_RANGE(0x918000, 0x91bfff) AM_READ(SMH_RAM)
|
||||
|
||||
AM_RANGE(0xa00000, 0xa03fff) AM_READ(SMH_RAM)
|
||||
AM_RANGE(0xa00000, 0xa03fff) AM_RAM_WRITE(paletteram32_macrossp_w) AM_BASE(&paletteram32)
|
||||
|
||||
AM_RANGE(0xb00000, 0xb00003) AM_READ_PORT("INPUTS")
|
||||
AM_RANGE(0xb00004, 0xb00007) AM_READ(macrossp_soundstatus_r)
|
||||
AM_RANGE(0xb0000c, 0xb0000f) AM_READ_PORT("DSW")
|
||||
|
||||
AM_RANGE(0xf00000, 0xf1ffff) AM_READ(SMH_RAM)
|
||||
|
||||
// AM_RANGE(0xfe0000, 0xfe0003) AM_READNOP
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x000000, 0x3fffff) AM_WRITE(SMH_ROM)
|
||||
AM_RANGE(0x800000, 0x802fff) AM_WRITE(SMH_RAM) AM_BASE(¯ossp_spriteram) AM_SIZE(&spriteram_size)
|
||||
|
||||
/* SCR A Layer */
|
||||
AM_RANGE(0x900000, 0x903fff) AM_WRITE(macrossp_scra_videoram_w) AM_BASE(¯ossp_scra_videoram)
|
||||
AM_RANGE(0x904200, 0x9043ff) AM_WRITE(SMH_RAM) /* W/O? */
|
||||
AM_RANGE(0x905000, 0x90500b) AM_WRITE(SMH_RAM) AM_BASE(¯ossp_scra_videoregs) /* W/O? */
|
||||
/* SCR B Layer */
|
||||
AM_RANGE(0x908000, 0x90bfff) AM_WRITE(macrossp_scrb_videoram_w) AM_BASE(¯ossp_scrb_videoram)
|
||||
AM_RANGE(0x90c200, 0x90c3ff) AM_WRITE(SMH_RAM) /* W/O? */
|
||||
AM_RANGE(0x90d000, 0x90d00b) AM_WRITE(SMH_RAM) AM_BASE(¯ossp_scrb_videoregs) /* W/O? */
|
||||
/* SCR C Layer */
|
||||
AM_RANGE(0x910000, 0x913fff) AM_WRITE(macrossp_scrc_videoram_w) AM_BASE(¯ossp_scrc_videoram)
|
||||
AM_RANGE(0x914200, 0x9143ff) AM_WRITE(SMH_RAM) /* W/O? */
|
||||
AM_RANGE(0x915000, 0x91500b) AM_WRITE(SMH_RAM) AM_BASE(¯ossp_scrc_videoregs) /* W/O? */
|
||||
/* Text Layer */
|
||||
AM_RANGE(0x918000, 0x91bfff) AM_WRITE(macrossp_text_videoram_w) AM_BASE(¯ossp_text_videoram)
|
||||
AM_RANGE(0x91c200, 0x91c3ff) AM_WRITE(SMH_RAM) /* W/O? */
|
||||
AM_RANGE(0x91d000, 0x91d00b) AM_WRITE(SMH_RAM) AM_BASE(¯ossp_text_videoregs) /* W/O? */
|
||||
|
||||
AM_RANGE(0xa00000, 0xa03fff) AM_WRITE(paletteram32_macrossp_w) AM_BASE(&paletteram32)
|
||||
|
||||
AM_RANGE(0xb00004, 0xb00007) AM_WRITENOP // irq related?
|
||||
AM_RANGE(0xb00004, 0xb00007) AM_READ(macrossp_soundstatus_r) AM_WRITENOP // irq related?
|
||||
AM_RANGE(0xb00008, 0xb0000b) AM_WRITENOP // irq related?
|
||||
AM_RANGE(0xb0000c, 0xb0000f) AM_WRITENOP
|
||||
AM_RANGE(0xb0000c, 0xb0000f) AM_READ_PORT("DSW") AM_WRITENOP
|
||||
AM_RANGE(0xb00010, 0xb00013) AM_WRITE(macrossp_palette_fade_w) // macrossp palette fade
|
||||
AM_RANGE(0xb00020, 0xb00023) AM_WRITENOP
|
||||
|
||||
AM_RANGE(0xc00000, 0xc00003) AM_WRITE(macrossp_soundcmd_w)
|
||||
|
||||
AM_RANGE(0xf00000, 0xf1ffff) AM_WRITE(SMH_RAM) AM_BASE(¯ossp_mainram) /* Main Ram */
|
||||
|
||||
// AM_RANGE(0xfe0000, 0xfe0003) AM_WRITENOP
|
||||
AM_RANGE(0xf00000, 0xf1ffff) AM_RAM AM_BASE(¯ossp_mainram) /* Main Ram */
|
||||
// AM_RANGE(0xfe0000, 0xfe0003) AM_NOP
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
static ADDRESS_MAP_START( macrossp_sound_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x0fffff) AM_ROM
|
||||
AM_RANGE(0x200000, 0x207fff) AM_RAM
|
||||
AM_RANGE(0x400000, 0x40007f) AM_DEVREADWRITE8("ensoniq", es5506_r, es5506_w, 0x00ff)
|
||||
@ -629,11 +606,11 @@ static const es5506_interface es5506_config =
|
||||
static MACHINE_DRIVER_START( macrossp )
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("maincpu", M68EC020, 50000000/2) /* 25 MHz */
|
||||
MDRV_CPU_PROGRAM_MAP(readmem,writemem)
|
||||
MDRV_CPU_PROGRAM_MAP(macrossp_map,0)
|
||||
MDRV_CPU_VBLANK_INT("screen", irq3_line_hold) // there are others ...
|
||||
|
||||
MDRV_CPU_ADD("audiocpu", M68000, 32000000/2) /* 16 MHz */
|
||||
MDRV_CPU_PROGRAM_MAP(sound_map,0)
|
||||
MDRV_CPU_PROGRAM_MAP(macrossp_sound_map,0)
|
||||
|
||||
/* video hardware */
|
||||
MDRV_SCREEN_ADD("screen", RASTER)
|
||||
|
@ -22,20 +22,12 @@
|
||||
VIDEO_START( madmotor );
|
||||
VIDEO_UPDATE( madmotor );
|
||||
|
||||
READ16_HANDLER( madmotor_pf1_rowscroll_r );
|
||||
WRITE16_HANDLER( madmotor_pf1_rowscroll_w );
|
||||
READ16_HANDLER( madmotor_pf1_data_r );
|
||||
READ16_HANDLER( madmotor_pf2_data_r );
|
||||
READ16_HANDLER( madmotor_pf3_data_r );
|
||||
WRITE16_HANDLER( madmotor_pf1_data_w );
|
||||
WRITE16_HANDLER( madmotor_pf2_data_w );
|
||||
WRITE16_HANDLER( madmotor_pf3_data_w );
|
||||
WRITE16_HANDLER( madmotor_pf1_control_w );
|
||||
WRITE16_HANDLER( madmotor_pf2_control_w );
|
||||
WRITE16_HANDLER( madmotor_pf3_control_w );
|
||||
extern UINT16 *madmotor_pf1_rowscroll;
|
||||
extern UINT16 *madmotor_pf1_data,*madmotor_pf2_data,*madmotor_pf3_data;
|
||||
|
||||
extern UINT16 *madmotor_pf1_control,*madmotor_pf2_control,*madmotor_pf3_control;
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
@ -51,58 +43,37 @@ static WRITE16_HANDLER( madmotor_sound_w )
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
static ADDRESS_MAP_START( madmotor_readmem, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM)
|
||||
AM_RANGE(0x184000, 0x1847ff) AM_READ(madmotor_pf1_rowscroll_r)
|
||||
AM_RANGE(0x188000, 0x189fff) AM_READ(madmotor_pf1_data_r)
|
||||
AM_RANGE(0x198000, 0x1987ff) AM_READ(madmotor_pf2_data_r)
|
||||
AM_RANGE(0x1a4000, 0x1a4fff) AM_READ(madmotor_pf3_data_r)
|
||||
AM_RANGE(0x18c000, 0x18c001) AM_READNOP
|
||||
static ADDRESS_MAP_START( madmotor_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x07ffff) AM_ROM
|
||||
AM_RANGE(0x180000, 0x18001f) AM_WRITEONLY AM_BASE(&madmotor_pf1_control)
|
||||
AM_RANGE(0x184000, 0x1847ff) AM_RAM AM_BASE(&madmotor_pf1_rowscroll)
|
||||
AM_RANGE(0x188000, 0x189fff) AM_RAM_WRITE(madmotor_pf1_data_w) AM_BASE(&madmotor_pf1_data)
|
||||
AM_RANGE(0x18c000, 0x18c001) AM_NOP
|
||||
AM_RANGE(0x190000, 0x19001f) AM_WRITEONLY AM_BASE(&madmotor_pf2_control)
|
||||
AM_RANGE(0x198000, 0x1987ff) AM_RAM_WRITE(madmotor_pf2_data_w) AM_BASE(&madmotor_pf2_data)
|
||||
AM_RANGE(0x19c000, 0x19c001) AM_READNOP
|
||||
AM_RANGE(0x3e0000, 0x3e3fff) AM_READ(SMH_RAM)
|
||||
AM_RANGE(0x3e8000, 0x3e87ff) AM_READ(SMH_RAM)
|
||||
AM_RANGE(0x3f0000, 0x3f07ff) AM_READ(SMH_RAM)
|
||||
AM_RANGE(0x1a0000, 0x1a001f) AM_WRITEONLY AM_BASE(&madmotor_pf3_control)
|
||||
AM_RANGE(0x1a4000, 0x1a4fff) AM_RAM_WRITE(madmotor_pf3_data_w) AM_BASE(&madmotor_pf3_data)
|
||||
AM_RANGE(0x3e0000, 0x3e3fff) AM_RAM
|
||||
AM_RANGE(0x3e8000, 0x3e87ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
|
||||
AM_RANGE(0x3f0000, 0x3f07ff) AM_RAM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16)
|
||||
AM_RANGE(0x3f8002, 0x3f8003) AM_READ_PORT("P1_P2")
|
||||
AM_RANGE(0x3f8004, 0x3f8005) AM_READ_PORT("DSW")
|
||||
AM_RANGE(0x3f8006, 0x3f8007) AM_READ_PORT("SYSTEM")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( madmotor_writemem, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM)
|
||||
AM_RANGE(0x180000, 0x18001f) AM_WRITE(madmotor_pf1_control_w)
|
||||
AM_RANGE(0x184000, 0x1847ff) AM_WRITE(madmotor_pf1_rowscroll_w) AM_BASE(&madmotor_pf1_rowscroll)
|
||||
AM_RANGE(0x188000, 0x189fff) AM_WRITE(madmotor_pf1_data_w) AM_BASE(&madmotor_pf1_data)
|
||||
AM_RANGE(0x18c000, 0x18c001) AM_WRITENOP
|
||||
AM_RANGE(0x190000, 0x19001f) AM_WRITE(madmotor_pf2_control_w)
|
||||
AM_RANGE(0x198000, 0x1987ff) AM_WRITE(madmotor_pf2_data_w) AM_BASE(&madmotor_pf2_data)
|
||||
AM_RANGE(0x1a0000, 0x1a001f) AM_WRITE(madmotor_pf3_control_w)
|
||||
AM_RANGE(0x1a4000, 0x1a4fff) AM_WRITE(madmotor_pf3_data_w) AM_BASE(&madmotor_pf3_data)
|
||||
AM_RANGE(0x3e0000, 0x3e3fff) AM_WRITE(SMH_RAM)
|
||||
AM_RANGE(0x3e8000, 0x3e87ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
|
||||
AM_RANGE(0x3f0000, 0x3f07ff) AM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16)
|
||||
AM_RANGE(0x3fc004, 0x3fc005) AM_WRITE(madmotor_sound_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
/* Physical memory map (21 bits) */
|
||||
static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x000000, 0x00ffff) AM_READ(SMH_ROM)
|
||||
AM_RANGE(0x100000, 0x100001) AM_DEVREAD("ym1", ym2203_r)
|
||||
AM_RANGE(0x110000, 0x110001) AM_DEVREAD("ym2", ym2151_r)
|
||||
AM_RANGE(0x120000, 0x120001) AM_DEVREAD("oki1", okim6295_r)
|
||||
AM_RANGE(0x130000, 0x130001) AM_DEVREAD("oki2", okim6295_r)
|
||||
static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x000000, 0x00ffff) AM_ROM
|
||||
AM_RANGE(0x100000, 0x100001) AM_DEVREADWRITE("ym1", ym2203_r,ym2203_w)
|
||||
AM_RANGE(0x110000, 0x110001) AM_DEVREADWRITE("ym2", ym2151_r,ym2151_w)
|
||||
AM_RANGE(0x120000, 0x120001) AM_DEVREADWRITE("oki1", okim6295_r,okim6295_w)
|
||||
AM_RANGE(0x130000, 0x130001) AM_DEVREADWRITE("oki2", okim6295_r,okim6295_w)
|
||||
AM_RANGE(0x140000, 0x140001) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0x1f0000, 0x1f1fff) AM_READ(SMH_BANK8)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x000000, 0x00ffff) AM_WRITE(SMH_ROM)
|
||||
AM_RANGE(0x100000, 0x100001) AM_DEVWRITE("ym1", ym2203_w)
|
||||
AM_RANGE(0x110000, 0x110001) AM_DEVWRITE("ym2", ym2151_w)
|
||||
AM_RANGE(0x120000, 0x120001) AM_DEVWRITE("oki1", okim6295_w)
|
||||
AM_RANGE(0x130000, 0x130001) AM_DEVWRITE("oki2", okim6295_w)
|
||||
AM_RANGE(0x1f0000, 0x1f1fff) AM_WRITE(SMH_BANK8)
|
||||
AM_RANGE(0x1f0000, 0x1f1fff) AM_RAMBANK(8)
|
||||
AM_RANGE(0x1fec00, 0x1fec01) AM_WRITE(h6280_timer_w)
|
||||
AM_RANGE(0x1ff400, 0x1ff403) AM_WRITE(h6280_irq_status_w)
|
||||
ADDRESS_MAP_END
|
||||
@ -262,11 +233,11 @@ static MACHINE_DRIVER_START( madmotor )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("maincpu", M68000, 12000000) /* Custom chip 59, 24 MHz crystal */
|
||||
MDRV_CPU_PROGRAM_MAP(madmotor_readmem,madmotor_writemem)
|
||||
MDRV_CPU_PROGRAM_MAP(madmotor_map,0)
|
||||
MDRV_CPU_VBLANK_INT("screen", irq6_line_hold)/* VBL */
|
||||
|
||||
MDRV_CPU_ADD("audiocpu", H6280, 8053000/2) /* Custom chip 45, Crystal near CPU is 8.053 MHz */
|
||||
MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
|
||||
MDRV_CPU_PROGRAM_MAP(sound_map,0)
|
||||
|
||||
/* video hardware */
|
||||
MDRV_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
|
||||
|
@ -174,54 +174,35 @@ static READ16_HANDLER( mcat_wd_r )
|
||||
}
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( mcatadv_readmem, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x0fffff) AM_READ(SMH_ROM)
|
||||
AM_RANGE(0x100000, 0x10ffff) AM_READ(SMH_RAM)
|
||||
|
||||
AM_RANGE(0x200000, 0x200005) AM_READ(SMH_RAM)
|
||||
AM_RANGE(0x300000, 0x300005) AM_READ(SMH_RAM)
|
||||
static ADDRESS_MAP_START( mcatadv_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x0fffff) AM_ROM
|
||||
AM_RANGE(0x100000, 0x10ffff) AM_RAM
|
||||
|
||||
// AM_RANGE(0x180018, 0x18001f) AM_READNOP // ?
|
||||
|
||||
AM_RANGE(0x400000, 0x401fff) AM_READ(SMH_RAM) // Tilemap 0
|
||||
AM_RANGE(0x500000, 0x501fff) AM_READ(SMH_RAM) // Tilemap 1
|
||||
AM_RANGE(0x200000, 0x200005) AM_RAM AM_BASE(&mcatadv_scroll)
|
||||
AM_RANGE(0x300000, 0x300005) AM_RAM AM_BASE(&mcatadv_scroll2)
|
||||
|
||||
AM_RANGE(0x600000, 0x601fff) AM_READ(SMH_RAM)
|
||||
AM_RANGE(0x602000, 0x602fff) AM_READ(SMH_RAM)
|
||||
AM_RANGE(0x400000, 0x401fff) AM_RAM_WRITE(mcatadv_videoram1_w) AM_BASE(&mcatadv_videoram1) // Tilemap 0
|
||||
AM_RANGE(0x500000, 0x501fff) AM_RAM_WRITE(mcatadv_videoram2_w) AM_BASE(&mcatadv_videoram2) // Tilemap 1
|
||||
|
||||
AM_RANGE(0x700000, 0x707fff) AM_READ(SMH_RAM) // Sprites
|
||||
AM_RANGE(0x708000, 0x70ffff) AM_READ(SMH_RAM) // Tests more than is needed?
|
||||
AM_RANGE(0x600000, 0x601fff) AM_RAM_WRITE(paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE(&paletteram16)
|
||||
AM_RANGE(0x602000, 0x602fff) AM_RAM // Bigger than needs to be?
|
||||
|
||||
AM_RANGE(0x700000, 0x707fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) // Sprites, two halves for double buffering
|
||||
AM_RANGE(0x708000, 0x70ffff) AM_RAM // Tests more than is needed?
|
||||
|
||||
AM_RANGE(0x800000, 0x800001) AM_READ_PORT("P1")
|
||||
AM_RANGE(0x800002, 0x800003) AM_READ_PORT("P2")
|
||||
// AM_RANGE(0x900000, 0x900001) AM_WRITE(mcat_coin_w) // Lockout / Counter MCAT Only
|
||||
AM_RANGE(0xa00000, 0xa00001) AM_READ_PORT("DSW1")
|
||||
AM_RANGE(0xa00002, 0xa00003) AM_READ_PORT("DSW2")
|
||||
|
||||
AM_RANGE(0xb00000, 0xb0000f) AM_READ(SMH_RAM)
|
||||
AM_RANGE(0xb00000, 0xb0000f) AM_RAM AM_BASE(&mcatadv_vidregs)
|
||||
|
||||
AM_RANGE(0xb0001e, 0xb0001f) AM_READ(mcat_wd_r) // MCAT Only
|
||||
AM_RANGE(0xc00000, 0xc00001) AM_READ(soundlatch2_word_r)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( mcatadv_writemem, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_ROM)
|
||||
AM_RANGE(0x100000, 0x10ffff) AM_WRITE(SMH_RAM)
|
||||
AM_RANGE(0x200000, 0x200005) AM_WRITE(SMH_RAM) AM_BASE(&mcatadv_scroll)
|
||||
AM_RANGE(0x300000, 0x300005) AM_WRITE(SMH_RAM) AM_BASE(&mcatadv_scroll2)
|
||||
|
||||
AM_RANGE(0x400000, 0x401fff) AM_WRITE(mcatadv_videoram1_w) AM_BASE(&mcatadv_videoram1) // Tilemap 0
|
||||
AM_RANGE(0x500000, 0x501fff) AM_WRITE(mcatadv_videoram2_w) AM_BASE(&mcatadv_videoram2) // Tilemap 1
|
||||
|
||||
AM_RANGE(0x600000, 0x601fff) AM_WRITE(paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE(&paletteram16)
|
||||
AM_RANGE(0x602000, 0x602fff) AM_WRITE(SMH_RAM) // Bigger than needs to be?
|
||||
|
||||
AM_RANGE(0x700000, 0x707fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) // Sprites, two halves for double buffering
|
||||
AM_RANGE(0x708000, 0x70ffff) AM_WRITE(SMH_RAM) // Tests more than is needed?
|
||||
|
||||
// AM_RANGE(0x900000, 0x900001) AM_WRITE(mcat_coin_w) // Lockout / Counter MCAT Only
|
||||
AM_RANGE(0xb00000, 0xb0000f) AM_WRITE(SMH_RAM) AM_BASE(&mcatadv_vidregs)
|
||||
AM_RANGE(0xb00018, 0xb00019) AM_WRITE(watchdog_reset16_w) // NOST Only
|
||||
AM_RANGE(0xc00000, 0xc00001) AM_WRITE(mcat_soundlatch_w)
|
||||
AM_RANGE(0xb0001e, 0xb0001f) AM_READ(mcat_wd_r) // MCAT Only
|
||||
AM_RANGE(0xc00000, 0xc00001) AM_READWRITE(soundlatch2_word_r,mcat_soundlatch_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
/*** Sound ***/
|
||||
@ -234,18 +215,11 @@ static WRITE8_HANDLER ( mcatadv_sound_bw_w )
|
||||
}
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( mcatadv_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x3fff) AM_READ(SMH_ROM ) // ROM
|
||||
AM_RANGE(0x4000, 0xbfff) AM_READ(SMH_BANK1 ) // ROM
|
||||
AM_RANGE(0xc000, 0xdfff) AM_READ(SMH_RAM ) // RAM
|
||||
AM_RANGE(0xe000, 0xe003) AM_DEVREAD("ym", ym2610_r)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( mcatadv_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x3fff) AM_WRITE(SMH_ROM ) // ROM
|
||||
AM_RANGE(0x4000, 0xbfff) AM_WRITE(SMH_ROM ) // ROM
|
||||
AM_RANGE(0xc000, 0xdfff) AM_WRITE(SMH_RAM ) // RAM
|
||||
AM_RANGE(0xe000, 0xe003) AM_DEVWRITE("ym", ym2610_w)
|
||||
static ADDRESS_MAP_START( mcatadv_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x3fff) AM_ROM // ROM
|
||||
AM_RANGE(0x4000, 0xbfff) AM_ROMBANK(1) // ROM
|
||||
AM_RANGE(0xc000, 0xdfff) AM_RAM // RAM
|
||||
AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE("ym", ym2610_r,ym2610_w)
|
||||
AM_RANGE(0xf000, 0xf000) AM_WRITE(mcatadv_sound_bw_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -255,16 +229,10 @@ static ADDRESS_MAP_START( mcatadv_sound_io_map, ADDRESS_SPACE_IO, 8 )
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( nost_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM ) // ROM
|
||||
AM_RANGE(0x8000, 0xbfff) AM_READ(SMH_BANK1 ) // ROM
|
||||
AM_RANGE(0xc000, 0xdfff) AM_READ(SMH_RAM ) // RAM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( nost_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM ) // ROM
|
||||
AM_RANGE(0x8000, 0xbfff) AM_WRITE(SMH_ROM ) // ROM
|
||||
AM_RANGE(0xc000, 0xdfff) AM_WRITE(SMH_RAM ) // RAM
|
||||
static ADDRESS_MAP_START( nost_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM // ROM
|
||||
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK(1) // ROM
|
||||
AM_RANGE(0xc000, 0xdfff) AM_RAM // RAM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( nost_sound_io_map, ADDRESS_SPACE_IO, 8 )
|
||||
@ -466,11 +434,11 @@ static MACHINE_DRIVER_START( mcatadv )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("maincpu", M68000, XTAL_16MHz) /* verified on pcb */
|
||||
MDRV_CPU_PROGRAM_MAP(mcatadv_readmem,mcatadv_writemem)
|
||||
MDRV_CPU_PROGRAM_MAP(mcatadv_map,0)
|
||||
MDRV_CPU_VBLANK_INT("screen", irq1_line_hold)
|
||||
|
||||
MDRV_CPU_ADD("soundcpu", Z80, XTAL_16MHz/4) /* verified on pcb */
|
||||
MDRV_CPU_PROGRAM_MAP(mcatadv_sound_readmem,mcatadv_sound_writemem)
|
||||
MDRV_CPU_PROGRAM_MAP(mcatadv_sound_map,0)
|
||||
MDRV_CPU_IO_MAP(mcatadv_sound_io_map,0)
|
||||
|
||||
/* video hardware */
|
||||
@ -497,15 +465,15 @@ static MACHINE_DRIVER_START( mcatadv )
|
||||
MDRV_SOUND_CONFIG(mcatadv_ym2610_interface)
|
||||
MDRV_SOUND_ROUTE(0, "lspeaker", 0.32)
|
||||
MDRV_SOUND_ROUTE(0, "rspeaker", 0.32)
|
||||
MDRV_SOUND_ROUTE(1, "lspeaker", 1.0)
|
||||
MDRV_SOUND_ROUTE(2, "rspeaker", 1.0)
|
||||
MDRV_SOUND_ROUTE(1, "lspeaker", 0.5)
|
||||
MDRV_SOUND_ROUTE(2, "rspeaker", 0.5)
|
||||
MACHINE_DRIVER_END
|
||||
|
||||
static MACHINE_DRIVER_START( nost )
|
||||
MDRV_IMPORT_FROM( mcatadv )
|
||||
|
||||
MDRV_CPU_MODIFY("soundcpu")
|
||||
MDRV_CPU_PROGRAM_MAP(nost_sound_readmem,nost_sound_writemem)
|
||||
MDRV_CPU_PROGRAM_MAP(nost_sound_map,0)
|
||||
MDRV_CPU_IO_MAP(nost_sound_io_map,0)
|
||||
MACHINE_DRIVER_END
|
||||
|
||||
|
@ -225,7 +225,7 @@ static READ16_HANDLER( sound_status_r )
|
||||
|
||||
static WRITE8_HANDLER( sound_bankswitch_w )
|
||||
{
|
||||
memory_set_bankptr(space->machine, 2, memory_region(space->machine, "soundcpu") + 0x10000 + (data&0xf)*0x4000);
|
||||
memory_set_bankptr(space->machine, 1, memory_region(space->machine, "soundcpu") + 0x10000 + (data&0xf)*0x4000);
|
||||
}
|
||||
|
||||
|
||||
@ -296,168 +296,122 @@ static WRITE16_DEVICE_HANDLER( moobl_oki_bank_w )
|
||||
okim6295_set_bank_base(device, (data & 0x0f)* 0x40000);
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM)
|
||||
static ADDRESS_MAP_START( moo_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x07ffff) AM_ROM
|
||||
AM_RANGE(0x0c0000, 0x0c003f) AM_WRITE(K056832_word_w)
|
||||
AM_RANGE(0x0c2000, 0x0c2007) AM_WRITE(K053246_word_w)
|
||||
|
||||
AM_RANGE(0x0c4000, 0x0c4001) AM_READ(K053246_word_r)
|
||||
AM_RANGE(0x0ca000, 0x0ca01f) AM_WRITE(K054338_word_w) /* K054338 alpha blending engine */
|
||||
AM_RANGE(0x0cc000, 0x0cc01f) AM_WRITE(K053251_lsb_w)
|
||||
AM_RANGE(0x0ce000, 0x0ce01f) AM_WRITE(moo_prot_w)
|
||||
AM_RANGE(0x0d0000, 0x0d001f) AM_WRITEONLY /* CCU regs (ignored) */
|
||||
AM_RANGE(0x0d4000, 0x0d4001) AM_WRITE(sound_irq_w)
|
||||
AM_RANGE(0x0d600c, 0x0d600d) AM_WRITE(sound_cmd1_w)
|
||||
AM_RANGE(0x0d600e, 0x0d600f) AM_WRITE(sound_cmd2_w)
|
||||
AM_RANGE(0x0d6014, 0x0d6015) AM_READ(sound_status_r)
|
||||
AM_RANGE(0x0d6000, 0x0d601f) AM_READ(SMH_RAM) /* sound regs fall through */
|
||||
AM_RANGE(0x0d6000, 0x0d601f) AM_RAM /* sound regs fall through */
|
||||
AM_RANGE(0x0d8000, 0x0d8007) AM_WRITE(K056832_b_word_w) /* VSCCS regs */
|
||||
AM_RANGE(0x0da000, 0x0da001) AM_READ_PORT("P1_P3")
|
||||
AM_RANGE(0x0da002, 0x0da003) AM_READ_PORT("P2_P4")
|
||||
AM_RANGE(0x0dc000, 0x0dc001) AM_READ_PORT("IN0")
|
||||
AM_RANGE(0x0dc002, 0x0dc003) AM_READ(control1_r)
|
||||
AM_RANGE(0x0de000, 0x0de001) AM_READ(control2_r)
|
||||
AM_RANGE(0x100000, 0x17ffff) AM_READ(SMH_ROM)
|
||||
AM_RANGE(0x180000, 0x18ffff) AM_READ(SMH_RAM) /* Work RAM */
|
||||
AM_RANGE(0x190000, 0x19ffff) AM_READ(SMH_RAM) /* Sprite RAM */
|
||||
AM_RANGE(0x1a0000, 0x1a1fff) AM_READ(K056832_ram_word_r) /* Graphic planes */
|
||||
AM_RANGE(0x1a2000, 0x1a3fff) AM_READ(K056832_ram_word_r) /* Graphic planes mirror */
|
||||
AM_RANGE(0x0de000, 0x0de001) AM_READWRITE(control2_r,control2_w)
|
||||
AM_RANGE(0x100000, 0x17ffff) AM_ROM
|
||||
AM_RANGE(0x180000, 0x18ffff) AM_RAM AM_BASE(&workram) /* Work RAM */
|
||||
AM_RANGE(0x190000, 0x19ffff) AM_RAM AM_BASE(&spriteram16) /* Sprite RAM */
|
||||
AM_RANGE(0x1a0000, 0x1a1fff) AM_READWRITE(K056832_ram_word_r,K056832_ram_word_w) /* Graphic planes */
|
||||
AM_RANGE(0x1a2000, 0x1a3fff) AM_READWRITE(K056832_ram_word_r,K056832_ram_word_w) /* Graphic planes mirror */
|
||||
AM_RANGE(0x1b0000, 0x1b1fff) AM_READ(K056832_rom_word_r) /* Passthrough to tile roms */
|
||||
AM_RANGE(0x1c0000, 0x1c1fff) AM_READ(SMH_RAM)
|
||||
AM_RANGE(0x1c0000, 0x1c1fff) AM_RAM_WRITE(paletteram16_xrgb_word_be_w) AM_BASE(&paletteram16)
|
||||
#if MOO_DEBUG
|
||||
AM_RANGE(0x0c0000, 0x0c003f) AM_READ(K056832_word_r)
|
||||
AM_RANGE(0x0c2000, 0x0c2007) AM_READ(K053246_reg_word_r)
|
||||
AM_RANGE(0x0ca000, 0x0ca01f) AM_READ(K054338_word_r)
|
||||
AM_RANGE(0x0cc000, 0x0cc01f) AM_READ(K053251_lsb_r)
|
||||
AM_RANGE(0x0d0000, 0x0d001f) AM_READ(SMH_RAM)
|
||||
AM_RANGE(0x0d0000, 0x0d001f) AM_RAM
|
||||
AM_RANGE(0x0d8000, 0x0d8007) AM_READ(K056832_b_word_r)
|
||||
#endif
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM)
|
||||
static ADDRESS_MAP_START( moobl_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x07ffff) AM_ROM
|
||||
AM_RANGE(0x0c0000, 0x0c003f) AM_WRITE(K056832_word_w)
|
||||
AM_RANGE(0x0c2000, 0x0c2007) AM_WRITE(K053246_word_w)
|
||||
AM_RANGE(0x0ca000, 0x0ca01f) AM_WRITE(K054338_word_w) /* K054338 alpha blending engine */
|
||||
AM_RANGE(0x0cc000, 0x0cc01f) AM_WRITE(K053251_lsb_w)
|
||||
AM_RANGE(0x0ce000, 0x0ce01f) AM_WRITE(moo_prot_w)
|
||||
AM_RANGE(0x0d0000, 0x0d001f) AM_WRITE(SMH_RAM) /* CCU regs (ignored) */
|
||||
AM_RANGE(0x0d4000, 0x0d4001) AM_WRITE(sound_irq_w)
|
||||
AM_RANGE(0x0d600c, 0x0d600d) AM_WRITE(sound_cmd1_w)
|
||||
AM_RANGE(0x0d600e, 0x0d600f) AM_WRITE(sound_cmd2_w)
|
||||
AM_RANGE(0x0d6000, 0x0d601f) AM_WRITE(SMH_RAM) /* sound regs fall through */
|
||||
AM_RANGE(0x0d8000, 0x0d8007) AM_WRITE(K056832_b_word_w) /* VSCCS regs */
|
||||
AM_RANGE(0x0de000, 0x0de001) AM_WRITE(control2_w)
|
||||
AM_RANGE(0x100000, 0x17ffff) AM_WRITE(SMH_ROM)
|
||||
AM_RANGE(0x180000, 0x18ffff) AM_WRITE(SMH_RAM) AM_BASE(&workram)
|
||||
AM_RANGE(0x190000, 0x19ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16)
|
||||
AM_RANGE(0x1a0000, 0x1a1fff) AM_WRITE(K056832_ram_word_w) /* Graphic planes */
|
||||
AM_RANGE(0x1a2000, 0x1a3fff) AM_WRITE(K056832_ram_word_w) /* Graphic planes mirror */
|
||||
AM_RANGE(0x1c0000, 0x1c1fff) AM_WRITE(paletteram16_xrgb_word_be_w) AM_BASE(&paletteram16)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( readmembl, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM)
|
||||
AM_RANGE(0x0c2f00, 0x0c2f01) AM_READNOP /* heck if I know, but it's polled constantly */
|
||||
AM_RANGE(0x0c2f00, 0x0c2f01) AM_READNOP /* heck if I know, but it's polled constantly */
|
||||
AM_RANGE(0x0c4000, 0x0c4001) AM_READ(K053246_word_r)
|
||||
AM_RANGE(0x0d6ffe, 0x0d6fff) AM_DEVREAD8("oki", okim6295_r, 0x00ff)
|
||||
AM_RANGE(0x0da000, 0x0da001) AM_READ_PORT("P1_P3")
|
||||
AM_RANGE(0x0da002, 0x0da003) AM_READ_PORT("P2_P4")
|
||||
AM_RANGE(0x0dc000, 0x0dc001) AM_READ_PORT("IN0")
|
||||
AM_RANGE(0x0dc002, 0x0dc003) AM_READ(control1_r)
|
||||
AM_RANGE(0x0de000, 0x0de001) AM_READ(control2_r)
|
||||
AM_RANGE(0x100000, 0x17ffff) AM_READ(SMH_ROM)
|
||||
AM_RANGE(0x180000, 0x18ffff) AM_READ(SMH_RAM) /* Work RAM */
|
||||
AM_RANGE(0x190000, 0x19ffff) AM_READ(SMH_RAM) /* Sprite RAM */
|
||||
AM_RANGE(0x1a0000, 0x1a1fff) AM_READ(K056832_ram_word_r) /* Graphic planes */
|
||||
AM_RANGE(0x1a2000, 0x1a3fff) AM_READ(K056832_ram_word_r) /* Graphic planes mirror */
|
||||
AM_RANGE(0x1b0000, 0x1b1fff) AM_READ(K056832_rom_word_r) /* Passthrough to tile roms */
|
||||
AM_RANGE(0x1c0000, 0x1c1fff) AM_READ(SMH_RAM)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( writemembl, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM)
|
||||
AM_RANGE(0x0c0000, 0x0c003f) AM_WRITE(K056832_word_w)
|
||||
AM_RANGE(0x0c2000, 0x0c2007) AM_WRITE(K053246_word_w)
|
||||
AM_RANGE(0x0ca000, 0x0ca01f) AM_WRITE(K054338_word_w) /* K054338 alpha blending engine */
|
||||
AM_RANGE(0x0ca000, 0x0ca01f) AM_WRITE(K054338_word_w) /* K054338 alpha blending engine */
|
||||
AM_RANGE(0x0cc000, 0x0cc01f) AM_WRITE(K053251_lsb_w)
|
||||
AM_RANGE(0x0d0000, 0x0d001f) AM_WRITE(SMH_RAM) /* CCU regs (ignored) */
|
||||
AM_RANGE(0x0d0000, 0x0d001f) AM_WRITEONLY /* CCU regs (ignored) */
|
||||
AM_RANGE(0x0d6ffc, 0x0d6ffd) AM_DEVWRITE("oki", moobl_oki_bank_w)
|
||||
AM_RANGE(0x0d6ffe, 0x0d6fff) AM_DEVWRITE8("oki", okim6295_w, 0x00ff)
|
||||
AM_RANGE(0x0d8000, 0x0d8007) AM_WRITE(K056832_b_word_w) /* VSCCS regs */
|
||||
AM_RANGE(0x0de000, 0x0de001) AM_WRITE(control2_w)
|
||||
AM_RANGE(0x100000, 0x17ffff) AM_WRITE(SMH_ROM)
|
||||
AM_RANGE(0x180000, 0x18ffff) AM_WRITE(SMH_RAM) AM_BASE(&workram)
|
||||
AM_RANGE(0x190000, 0x19ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16)
|
||||
AM_RANGE(0x1a0000, 0x1a1fff) AM_WRITE(K056832_ram_word_w) /* Graphic planes */
|
||||
AM_RANGE(0x1a2000, 0x1a3fff) AM_WRITE(K056832_ram_word_w) /* Graphic planes mirror */
|
||||
AM_RANGE(0x1c0000, 0x1c1fff) AM_WRITE(paletteram16_xrgb_word_be_w) AM_BASE(&paletteram16)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( buckyreadmem, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM)
|
||||
AM_RANGE(0x080000, 0x08ffff) AM_READ(SMH_RAM)
|
||||
AM_RANGE(0x090000, 0x09ffff) AM_READ(SMH_RAM) /* Sprite RAM */
|
||||
AM_RANGE(0x0a0000, 0x0affff) AM_READ(SMH_RAM) /* extra sprite RAM? */
|
||||
AM_RANGE(0x0c4000, 0x0c4001) AM_READ(K053246_word_r)
|
||||
AM_RANGE(0x0d2000, 0x0d20ff) AM_READ(K054000_lsb_r)
|
||||
AM_RANGE(0x0d6014, 0x0d6015) AM_READ(sound_status_r)
|
||||
AM_RANGE(0x0d6000, 0x0d601f) AM_READ(SMH_RAM) /* sound regs fall through */
|
||||
AM_RANGE(0x0d6ffe, 0x0d6fff) AM_DEVREADWRITE8("oki", okim6295_r,okim6295_w, 0x00ff)
|
||||
AM_RANGE(0x0d8000, 0x0d8007) AM_WRITE(K056832_b_word_w) /* VSCCS regs */
|
||||
AM_RANGE(0x0da000, 0x0da001) AM_READ_PORT("P1_P3")
|
||||
AM_RANGE(0x0da002, 0x0da003) AM_READ_PORT("P2_P4")
|
||||
AM_RANGE(0x0dc000, 0x0dc001) AM_READ_PORT("IN0")
|
||||
AM_RANGE(0x0dc002, 0x0dc003) AM_READ(control1_r)
|
||||
AM_RANGE(0x0de000, 0x0de001) AM_READ(control2_r)
|
||||
AM_RANGE(0x180000, 0x181fff) AM_READ(K056832_ram_word_r) /* Graphic planes */
|
||||
AM_RANGE(0x182000, 0x183fff) AM_READ(K056832_ram_word_r) /* Graphic planes mirror */
|
||||
AM_RANGE(0x184000, 0x187fff) AM_READ(SMH_RAM) /* extra tile RAM? */
|
||||
AM_RANGE(0x0de000, 0x0de001) AM_READWRITE(control2_r,control2_w)
|
||||
AM_RANGE(0x100000, 0x17ffff) AM_ROM
|
||||
AM_RANGE(0x180000, 0x18ffff) AM_RAM AM_BASE(&workram) /* Work RAM */
|
||||
AM_RANGE(0x190000, 0x19ffff) AM_RAM AM_BASE(&spriteram16) /* Sprite RAM */
|
||||
AM_RANGE(0x1a0000, 0x1a1fff) AM_READWRITE(K056832_ram_word_r,K056832_ram_word_w) /* Graphic planes */
|
||||
AM_RANGE(0x1a2000, 0x1a3fff) AM_READWRITE(K056832_ram_word_r,K056832_ram_word_w) /* Graphic planes mirror */
|
||||
AM_RANGE(0x1b0000, 0x1b1fff) AM_READ(K056832_rom_word_r) /* Passthrough to tile roms */
|
||||
AM_RANGE(0x1c0000, 0x1c1fff) AM_RAM_WRITE(paletteram16_xrgb_word_be_w) AM_BASE(&paletteram16)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( bucky_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x07ffff) AM_ROM
|
||||
AM_RANGE(0x080000, 0x08ffff) AM_RAM
|
||||
AM_RANGE(0x090000, 0x09ffff) AM_RAM AM_BASE(&spriteram16) /* Sprite RAM */
|
||||
AM_RANGE(0x0a0000, 0x0affff) AM_RAM /* extra sprite RAM? */
|
||||
AM_RANGE(0x0c0000, 0x0c003f) AM_WRITE(K056832_word_w)
|
||||
AM_RANGE(0x0c2000, 0x0c2007) AM_WRITE(K053246_word_w)
|
||||
AM_RANGE(0x0c4000, 0x0c4001) AM_READ(K053246_word_r)
|
||||
AM_RANGE(0x0ca000, 0x0ca01f) AM_WRITE(K054338_word_w) /* K054338 alpha blending engine */
|
||||
AM_RANGE(0x0cc000, 0x0cc01f) AM_WRITE(K053251_lsb_w)
|
||||
AM_RANGE(0x0ce000, 0x0ce01f) AM_WRITE(moo_prot_w)
|
||||
AM_RANGE(0x0d0000, 0x0d001f) AM_WRITEONLY /* CCU regs (ignored) */
|
||||
AM_RANGE(0x0d2000, 0x0d20ff) AM_READWRITE(K054000_lsb_r,K054000_lsb_w)
|
||||
AM_RANGE(0x0d4000, 0x0d4001) AM_WRITE(sound_irq_w)
|
||||
AM_RANGE(0x0d600c, 0x0d600d) AM_WRITE(sound_cmd1_w)
|
||||
AM_RANGE(0x0d600e, 0x0d600f) AM_WRITE(sound_cmd2_w)
|
||||
AM_RANGE(0x0d6014, 0x0d6015) AM_READ(sound_status_r)
|
||||
AM_RANGE(0x0d6000, 0x0d601f) AM_RAM /* sound regs fall through */
|
||||
AM_RANGE(0x0d8000, 0x0d8007) AM_WRITE(K056832_b_word_w) /* VSCCS regs */
|
||||
AM_RANGE(0x0da000, 0x0da001) AM_READ_PORT("P1_P3")
|
||||
AM_RANGE(0x0da002, 0x0da003) AM_READ_PORT("P2_P4")
|
||||
AM_RANGE(0x0dc000, 0x0dc001) AM_READ_PORT("IN0")
|
||||
AM_RANGE(0x0dc002, 0x0dc003) AM_READ(control1_r)
|
||||
AM_RANGE(0x0de000, 0x0de001) AM_READWRITE(control2_r,control2_w)
|
||||
AM_RANGE(0x180000, 0x181fff) AM_READWRITE(K056832_ram_word_r,K056832_ram_word_w) /* Graphic planes */
|
||||
AM_RANGE(0x182000, 0x183fff) AM_READWRITE(K056832_ram_word_r,K056832_ram_word_w) /* Graphic planes mirror */
|
||||
AM_RANGE(0x184000, 0x187fff) AM_RAM /* extra tile RAM? */
|
||||
AM_RANGE(0x190000, 0x191fff) AM_READ(K056832_rom_word_r) /* Passthrough to tile roms */
|
||||
AM_RANGE(0x1b0000, 0x1b3fff) AM_READ(SMH_RAM)
|
||||
AM_RANGE(0x200000, 0x23ffff) AM_READ(SMH_ROM) /* data */
|
||||
AM_RANGE(0x1b0000, 0x1b3fff) AM_RAM_WRITE(paletteram16_xrgb_word_be_w) AM_BASE(&paletteram16)
|
||||
AM_RANGE(0x200000, 0x23ffff) AM_ROM /* data */
|
||||
#if MOO_DEBUG
|
||||
AM_RANGE(0x0c0000, 0x0c003f) AM_READ(K056832_word_r)
|
||||
AM_RANGE(0x0c2000, 0x0c2007) AM_READ(K053246_reg_word_r)
|
||||
AM_RANGE(0x0ca000, 0x0ca01f) AM_READ(K054338_word_r)
|
||||
AM_RANGE(0x0cc000, 0x0cc01f) AM_READ(K053251_lsb_r)
|
||||
AM_RANGE(0x0d0000, 0x0d001f) AM_READ(SMH_RAM)
|
||||
AM_RANGE(0x0d0000, 0x0d001f) AM_RAM
|
||||
AM_RANGE(0x0d8000, 0x0d8007) AM_READ(K056832_b_word_r)
|
||||
#endif
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( buckywritemem, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM)
|
||||
AM_RANGE(0x080000, 0x08ffff) AM_WRITE(SMH_RAM)
|
||||
AM_RANGE(0x090000, 0x09ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) /* Sprite RAM */
|
||||
AM_RANGE(0x0a0000, 0x0affff) AM_WRITE(SMH_RAM) /* extra sprite RAM? */
|
||||
AM_RANGE(0x0c0000, 0x0c003f) AM_WRITE(K056832_word_w)
|
||||
AM_RANGE(0x0c2000, 0x0c2007) AM_WRITE(K053246_word_w)
|
||||
AM_RANGE(0x0ca000, 0x0ca01f) AM_WRITE(K054338_word_w) /* K054338 alpha blending engine */
|
||||
AM_RANGE(0x0cc000, 0x0cc01f) AM_WRITE(K053251_lsb_w)
|
||||
AM_RANGE(0x0ce000, 0x0ce01f) AM_WRITE(moo_prot_w)
|
||||
AM_RANGE(0x0d0000, 0x0d001f) AM_WRITE(SMH_RAM) /* CCU regs (ignored) */
|
||||
AM_RANGE(0x0d2000, 0x0d20ff) AM_WRITE(K054000_lsb_w)
|
||||
AM_RANGE(0x0d4000, 0x0d4001) AM_WRITE(sound_irq_w)
|
||||
AM_RANGE(0x0d600c, 0x0d600d) AM_WRITE(sound_cmd1_w)
|
||||
AM_RANGE(0x0d600e, 0x0d600f) AM_WRITE(sound_cmd2_w)
|
||||
AM_RANGE(0x0d6000, 0x0d601f) AM_WRITE(SMH_RAM) /* sound regs fall through */
|
||||
AM_RANGE(0x0d8000, 0x0d8007) AM_WRITE(K056832_b_word_w) /* VSCCS regs */
|
||||
AM_RANGE(0x0de000, 0x0de001) AM_WRITE(control2_w)
|
||||
AM_RANGE(0x180000, 0x181fff) AM_WRITE(K056832_ram_word_w) /* Graphic planes */
|
||||
AM_RANGE(0x182000, 0x183fff) AM_WRITE(K056832_ram_word_w) /* Graphic planes mirror */
|
||||
AM_RANGE(0x184000, 0x187fff) AM_WRITE(SMH_RAM) /* extra tile RAM? */
|
||||
AM_RANGE(0x1b0000, 0x1b3fff) AM_WRITE(paletteram16_xrgb_word_be_w) AM_BASE(&paletteram16)
|
||||
AM_RANGE(0x200000, 0x23ffff) AM_WRITE(SMH_ROM)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
|
||||
AM_RANGE(0x8000, 0xbfff) AM_READ(SMH_BANK2)
|
||||
AM_RANGE(0xc000, 0xdfff) AM_READ(SMH_RAM)
|
||||
AM_RANGE(0xe000, 0xe22f) AM_DEVREAD("konami", k054539_r)
|
||||
AM_RANGE(0xec00, 0xec01) AM_DEVREAD("ym", ym2151_r)
|
||||
static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK(1)
|
||||
AM_RANGE(0xc000, 0xdfff) AM_RAM
|
||||
AM_RANGE(0xe000, 0xe22f) AM_DEVREADWRITE("konami", k054539_r,k054539_w)
|
||||
AM_RANGE(0xec00, 0xec01) AM_DEVREADWRITE("ym", ym2151_r,ym2151_w)
|
||||
AM_RANGE(0xf000, 0xf000) AM_WRITE(soundlatch3_w)
|
||||
AM_RANGE(0xf002, 0xf002) AM_READ(soundlatch_r)
|
||||
AM_RANGE(0xf003, 0xf003) AM_READ(soundlatch2_r)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0xbfff) AM_WRITE(SMH_ROM)
|
||||
AM_RANGE(0xc000, 0xdfff) AM_WRITE(SMH_RAM)
|
||||
AM_RANGE(0xe000, 0xe22f) AM_DEVWRITE("konami", k054539_w)
|
||||
AM_RANGE(0xec00, 0xec01) AM_DEVWRITE("ym", ym2151_w)
|
||||
AM_RANGE(0xf000, 0xf000) AM_WRITE(soundlatch3_w)
|
||||
AM_RANGE(0xf800, 0xf800) AM_WRITE(sound_bankswitch_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
static INPUT_PORTS_START( moo )
|
||||
PORT_START("IN0")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
|
||||
@ -524,11 +478,11 @@ static MACHINE_DRIVER_START( moo )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("maincpu", M68000, 16000000)
|
||||
MDRV_CPU_PROGRAM_MAP(readmem,writemem)
|
||||
MDRV_CPU_PROGRAM_MAP(moo_map,0)
|
||||
MDRV_CPU_VBLANK_INT("screen", moo_interrupt)
|
||||
|
||||
MDRV_CPU_ADD("soundcpu", Z80, 8000000)
|
||||
MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
|
||||
MDRV_CPU_PROGRAM_MAP(sound_map,0)
|
||||
|
||||
MDRV_MACHINE_START(moo)
|
||||
MDRV_MACHINE_RESET(moo)
|
||||
@ -566,7 +520,7 @@ static MACHINE_DRIVER_START( moobl )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("maincpu", M68000, 16100000)
|
||||
MDRV_CPU_PROGRAM_MAP(readmembl,writemembl)
|
||||
MDRV_CPU_PROGRAM_MAP(moobl_map,0)
|
||||
MDRV_CPU_VBLANK_INT("screen", moobl_interrupt)
|
||||
|
||||
MDRV_MACHINE_START(moo)
|
||||
@ -601,7 +555,7 @@ static MACHINE_DRIVER_START( bucky )
|
||||
MDRV_IMPORT_FROM(moo)
|
||||
|
||||
MDRV_CPU_MODIFY("maincpu")
|
||||
MDRV_CPU_PROGRAM_MAP(buckyreadmem,buckywritemem)
|
||||
MDRV_CPU_PROGRAM_MAP(bucky_map,0)
|
||||
|
||||
/* video hardware */
|
||||
MDRV_PALETTE_LENGTH(4096)
|
||||
|
@ -164,7 +164,7 @@ static CUSTOM_INPUT(controls_r)
|
||||
static ADDRESS_MAP_START( ssingles_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x00ff) AM_WRITE(ssingles_videoram_w)
|
||||
AM_RANGE(0x0800, 0x08ff) AM_WRITE(ssingles_colorram_w)
|
||||
AM_RANGE(0x0000, 0x1fff) AM_READ( SMH_ROM )
|
||||
AM_RANGE(0x0000, 0x1fff) AM_ROM
|
||||
AM_RANGE(0xc000, 0xc000) AM_READ( c000_r )
|
||||
AM_RANGE(0xc001, 0xc001) AM_READWRITE( c001_r, c001_w )
|
||||
AM_RANGE(0x6000, 0xbfff) AM_ROM
|
||||
|
@ -11,9 +11,9 @@
|
||||
UINT16 *madmotor_pf1_rowscroll;
|
||||
UINT16 *madmotor_pf1_data,*madmotor_pf2_data,*madmotor_pf3_data;
|
||||
|
||||
static UINT16 madmotor_pf1_control[16];
|
||||
static UINT16 madmotor_pf2_control[16];
|
||||
static UINT16 madmotor_pf3_control[16];
|
||||
UINT16 *madmotor_pf1_control;
|
||||
UINT16 *madmotor_pf2_control;
|
||||
UINT16 *madmotor_pf3_control;
|
||||
|
||||
static int flipscreen;
|
||||
static tilemap *madmotor_pf1_tilemap,*madmotor_pf2_tilemap,*madmotor_pf3_tilemap,*madmotor_pf3a_tilemap;
|
||||
@ -125,21 +125,6 @@ VIDEO_START( madmotor )
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
READ16_HANDLER( madmotor_pf1_data_r )
|
||||
{
|
||||
return madmotor_pf1_data[offset];
|
||||
}
|
||||
|
||||
READ16_HANDLER( madmotor_pf2_data_r )
|
||||
{
|
||||
return madmotor_pf2_data[offset];
|
||||
}
|
||||
|
||||
READ16_HANDLER( madmotor_pf3_data_r )
|
||||
{
|
||||
return madmotor_pf3_data[offset];
|
||||
}
|
||||
|
||||
WRITE16_HANDLER( madmotor_pf1_data_w )
|
||||
{
|
||||
COMBINE_DATA(&madmotor_pf1_data[offset]);
|
||||
@ -163,31 +148,6 @@ WRITE16_HANDLER( madmotor_pf3_data_w )
|
||||
tilemap_mark_tile_dirty(madmotor_pf3a_tilemap,offset);
|
||||
}
|
||||
|
||||
WRITE16_HANDLER( madmotor_pf1_control_w )
|
||||
{
|
||||
COMBINE_DATA(&madmotor_pf1_control[offset]);
|
||||
}
|
||||
|
||||
WRITE16_HANDLER( madmotor_pf2_control_w )
|
||||
{
|
||||
COMBINE_DATA(&madmotor_pf2_control[offset]);
|
||||
}
|
||||
|
||||
WRITE16_HANDLER( madmotor_pf3_control_w )
|
||||
{
|
||||
COMBINE_DATA(&madmotor_pf3_control[offset]);
|
||||
}
|
||||
|
||||
READ16_HANDLER( madmotor_pf1_rowscroll_r )
|
||||
{
|
||||
return madmotor_pf1_rowscroll[offset];
|
||||
}
|
||||
|
||||
WRITE16_HANDLER( madmotor_pf1_rowscroll_w )
|
||||
{
|
||||
COMBINE_DATA(&madmotor_pf1_rowscroll[offset]);
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
static void draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectangle *cliprect,int pri_mask,int pri_val)
|
||||
|
Loading…
Reference in New Issue
Block a user