diff --git a/src/mame/drivers/groundfx.c b/src/mame/drivers/groundfx.c index 7cf321326d2..0139e027850 100644 --- a/src/mame/drivers/groundfx.c +++ b/src/mame/drivers/groundfx.c @@ -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) diff --git a/src/mame/drivers/lastduel.c b/src/mame/drivers/lastduel.c index 3a5e98047d8..e31423a412a 100644 --- a/src/mame/drivers/lastduel.c +++ b/src/mame/drivers/lastduel.c @@ -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) diff --git a/src/mame/drivers/macrossp.c b/src/mame/drivers/macrossp.c index 2c22713c5d5..a4b38a58898 100644 --- a/src/mame/drivers/macrossp.c +++ b/src/mame/drivers/macrossp.c @@ -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) diff --git a/src/mame/drivers/madmotor.c b/src/mame/drivers/madmotor.c index d2b1c610a6e..aed4633919e 100644 --- a/src/mame/drivers/madmotor.c +++ b/src/mame/drivers/madmotor.c @@ -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) diff --git a/src/mame/drivers/mcatadv.c b/src/mame/drivers/mcatadv.c index 1ed1c61e13a..3c11048e392 100644 --- a/src/mame/drivers/mcatadv.c +++ b/src/mame/drivers/mcatadv.c @@ -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 diff --git a/src/mame/drivers/moo.c b/src/mame/drivers/moo.c index 797eb4676b7..07d68fa4303 100644 --- a/src/mame/drivers/moo.c +++ b/src/mame/drivers/moo.c @@ -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) diff --git a/src/mame/drivers/ssingles.c b/src/mame/drivers/ssingles.c index 3c311ea5dca..fd798634c64 100644 --- a/src/mame/drivers/ssingles.c +++ b/src/mame/drivers/ssingles.c @@ -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 diff --git a/src/mame/video/madmotor.c b/src/mame/video/madmotor.c index dceb78a7124..288a706683d 100644 --- a/src/mame/video/madmotor.c +++ b/src/mame/video/madmotor.c @@ -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)