From 2912a535dd100a54d5678016227fa99940c5d7a5 Mon Sep 17 00:00:00 2001 From: Zsolt Vasvari Date: Mon, 14 Jan 2008 09:49:11 +0000 Subject: [PATCH] - Removed dirtybuffer from video/generic.c and all drivers still using it. Good riddance... - Removed videoram_w, colorram_w and spriteram_w and changed all drivers using it to access RAM directly. Still kept the _r function as some old style drivers are relying on them for mirroring support. Will investigate and address those next --- src/emu/video/generic.c | 66 +-------------- src/emu/video/generic.h | 11 +-- src/mame/drivers/bagman.c | 4 +- src/mame/drivers/buggychl.c | 4 +- src/mame/drivers/carjmbre.c | 2 +- src/mame/drivers/cclimber.c | 12 +-- src/mame/drivers/csk.c | 19 ++--- src/mame/drivers/exerion.c | 2 +- src/mame/drivers/fcombat.c | 2 +- src/mame/drivers/finalizr.c | 4 +- src/mame/drivers/goldstar.c | 16 ++-- src/mame/drivers/ikki.c | 2 +- src/mame/drivers/jedi.c | 8 +- src/mame/drivers/kchamp.c | 4 +- src/mame/drivers/kingobox.c | 4 +- src/mame/drivers/matmania.c | 18 ++--- src/mame/drivers/megazone.c | 42 ++-------- src/mame/drivers/momoko.c | 2 +- src/mame/drivers/mouser.c | 7 +- src/mame/drivers/munchmo.c | 7 +- src/mame/drivers/naughtyb.c | 8 +- src/mame/drivers/ninjakid.c | 6 +- src/mame/drivers/pitnrun.c | 2 +- src/mame/drivers/pkunwar.c | 5 +- src/mame/drivers/redalert.c | 4 +- src/mame/drivers/rollrace.c | 4 +- src/mame/drivers/shougi.c | 35 ++++---- src/mame/drivers/skyarmy.c | 2 +- src/mame/drivers/skychut.c | 6 +- src/mame/drivers/subs.c | 4 +- src/mame/drivers/troangel.c | 2 +- src/mame/drivers/tunhunt.c | 3 +- src/mame/drivers/vigilant.c | 4 +- src/mame/drivers/wiping.c | 5 +- src/mame/drivers/wiz.c | 7 +- src/mame/drivers/yamato.c | 4 +- src/mame/includes/jedi.h | 2 - src/mame/includes/phoenix.h | 1 - src/mame/video/buggychl.c | 27 +++---- src/mame/video/carjmbre.c | 2 - src/mame/video/csk.c | 114 +++++--------------------- src/mame/video/finalizr.c | 38 +++------ src/mame/video/goldstar.c | 122 +++++++--------------------- src/mame/video/jedi.c | 107 ++++++------------------ src/mame/video/matmania.c | 120 ++++++++------------------- src/mame/video/megazone.c | 56 +++++-------- src/mame/video/mouser.c | 87 +++++++------------- src/mame/video/munchmo.c | 58 ++++--------- src/mame/video/naughtyb.c | 131 +++++++++++------------------- src/mame/video/pkunwar.c | 45 ++++------- src/mame/video/redalert.c | 157 +++++++++++++++++------------------- src/mame/video/snk.c | 78 +++++++----------- src/mame/video/thief.c | 83 ++++++------------- src/mame/video/troangel.c | 55 ++++++------- src/mame/video/tunhunt.c | 44 +++------- src/mame/video/vigilant.c | 21 ++--- src/mame/video/wiping.c | 72 +++++++---------- src/mame/video/wiz.c | 45 ++--------- src/mame/video/xxmissio.c | 44 +++------- 59 files changed, 578 insertions(+), 1268 deletions(-) diff --git a/src/emu/video/generic.c b/src/emu/video/generic.c index 714cd6e2d19..1f9c97b73e1 100644 --- a/src/emu/video/generic.c +++ b/src/emu/video/generic.c @@ -51,10 +51,6 @@ size_t spriteram_size; /* ... here just for convenience */ size_t spriteram_2_size; size_t spriteram_3_size; -UINT8 *dirtybuffer; -UINT16 *dirtybuffer16; -UINT32 *dirtybuffer32; - UINT8 *paletteram; UINT16 *paletteram16; UINT32 *paletteram32; @@ -296,9 +292,6 @@ void generic_video_init(running_machine *machine) spriteram_size = 0; /* ... here just for convenience */ spriteram_2_size = 0; spriteram_3_size = 0; - dirtybuffer = NULL; - dirtybuffer16 = NULL; - dirtybuffer32 = NULL; tmpbitmap = NULL; flip_screen_x = flip_screen_y = 0; } @@ -309,35 +302,16 @@ void generic_video_init(running_machine *machine) GENERIC VIDEO START/UPDATE ***************************************************************************/ -/*------------------------------------------------- - video_generic_postload - post-load callback - that marks all videoram as dirty --------------------------------------------------*/ - -static void video_generic_postload(void) -{ - memset(dirtybuffer, 1, videoram_size); -} - - /*------------------------------------------------- video_start_generic - general video system - with dirty buffer support -------------------------------------------------*/ VIDEO_START( generic ) { assert_always(videoram_size != 0, "VIDEO_START(generic) requires non-zero videoram_size"); - /* allocate memory for the dirty buffer */ - dirtybuffer = auto_malloc(videoram_size); - memset(dirtybuffer, 1, videoram_size); - /* allocate the temporary bitmap */ tmpbitmap = auto_bitmap_alloc(machine->screen[0].width, machine->screen[0].height, machine->screen[0].format); - - /* on a restore, we automatically zap the dirty buffer */ - state_save_register_func_postload(video_generic_postload); } @@ -374,8 +348,7 @@ VIDEO_UPDATE( generic_bitmapped ) ***************************************************************************/ /*------------------------------------------------- - videoram_r/w - 8-bit access to videoram with - dirty buffer marking + videoram_r - 8-bit read access to videoram -------------------------------------------------*/ READ8_HANDLER( videoram_r ) @@ -383,16 +356,9 @@ READ8_HANDLER( videoram_r ) return videoram[offset]; } -WRITE8_HANDLER( videoram_w ) -{ - dirtybuffer[offset] = 1; - videoram[offset] = data; -} - /*------------------------------------------------- - colorram_r/w - 8-bit access to colorram with - dirty buffer marking + colorram_r - 8-bit read access to colorram -------------------------------------------------*/ READ8_HANDLER( colorram_r ) @@ -400,15 +366,9 @@ READ8_HANDLER( colorram_r ) return colorram[offset]; } -WRITE8_HANDLER( colorram_w ) -{ - dirtybuffer[offset] = 1; - colorram[offset] = data; -} - /*------------------------------------------------- - spriteram_r/w - 8-bit access to spriteram + spriteram_r - 8-bit read access to spriteram -------------------------------------------------*/ READ8_HANDLER( spriteram_r ) @@ -416,11 +376,6 @@ READ8_HANDLER( spriteram_r ) return spriteram[offset]; } -WRITE8_HANDLER( spriteram_w ) -{ - spriteram[offset] = data; -} - /*------------------------------------------------- spriteram16_r/w - 16-bit access to spriteram16 @@ -437,21 +392,6 @@ WRITE16_HANDLER( spriteram16_w ) } -/*------------------------------------------------- - spriteram_r/w - 8-bit access to spriteram2 --------------------------------------------------*/ - -READ8_HANDLER( spriteram_2_r ) -{ - return spriteram_2[offset]; -} - -WRITE8_HANDLER( spriteram_2_w ) -{ - spriteram_2[offset] = data; -} - - /*************************************************************************** GENERIC SPRITE BUFFERING diff --git a/src/emu/video/generic.h b/src/emu/video/generic.h index a3b3512d729..85b5c417bd6 100644 --- a/src/emu/video/generic.h +++ b/src/emu/video/generic.h @@ -95,7 +95,7 @@ extern const gfx_layout gfx_16x16x4_planar; /* set up all the common systems */ void generic_video_init(running_machine *machine); -/* generic video start with dirty buffers */ +/* generic video start */ VIDEO_START( generic ); /* generic video start with a temporary bitmap */ @@ -108,21 +108,16 @@ VIDEO_UPDATE( generic_bitmapped ); /* ----- core video/color/spriteram access ----- */ -/* video RAM read/write handlers */ +/* video RAM read handlers */ READ8_HANDLER( videoram_r ); -WRITE8_HANDLER( videoram_w ); -/* color RAM read/write handlers */ +/* color RAM read handlers */ READ8_HANDLER( colorram_r ); -WRITE8_HANDLER( colorram_w ); /* sprite RAM read/write handlers */ READ8_HANDLER( spriteram_r ); -WRITE8_HANDLER( spriteram_w ); READ16_HANDLER( spriteram16_r ); WRITE16_HANDLER( spriteram16_w ); -READ8_HANDLER( spriteram_2_r ); -WRITE8_HANDLER( spriteram_2_w ); diff --git a/src/mame/drivers/bagman.c b/src/mame/drivers/bagman.c index 28dda17b01c..e5ec6fa74d6 100644 --- a/src/mame/drivers/bagman.c +++ b/src/mame/drivers/bagman.c @@ -212,7 +212,7 @@ static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0xc000, 0xffff) AM_WRITE(MWA8_ROM) /* Super Bagman only */ AM_RANGE(0x9800, 0x981f) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) /* hidden portion of color RAM */ /* here only to initialize the pointer, */ - /* writes are handled by colorram_w */ + /* writes are handled by bagman_colorram_w */ AM_RANGE(0xa800, 0xa805) AM_WRITE(bagman_ls259_w) /* TMS5110 driving state machine */ AM_RANGE(0x9c00, 0x9fff) AM_WRITE(MWA8_NOP) /* written to, but unused */ AM_RANGE(0xa004, 0xa004) AM_WRITE(bagman_coin_counter_w) @@ -243,7 +243,7 @@ static ADDRESS_MAP_START( pickin_writemem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0xa003, 0xa003) AM_WRITE(MWA8_RAM) AM_BASE(&bagman_video_enable) AM_RANGE(0x9800, 0x981f) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) /* hidden portion of color RAM */ /* here only to initialize the pointer, */ - /* writes are handled by colorram_w */ + /* writes are handled by bagman_colorram_w */ AM_RANGE(0x9c00, 0x9fff) AM_WRITE(MWA8_NOP) /* written to, but unused */ AM_RANGE(0xa004, 0xa004) AM_WRITE(bagman_coin_counter_w) #if 0 diff --git a/src/mame/drivers/buggychl.c b/src/mame/drivers/buggychl.c index ba1e689c319..6657d1d393f 100644 --- a/src/mame/drivers/buggychl.c +++ b/src/mame/drivers/buggychl.c @@ -164,7 +164,7 @@ static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x8000, 0x87ff) AM_READ(MRA8_RAM) /* 6116 SRAM (36) */ AM_RANGE(0x8800, 0x8fff) AM_READ(MRA8_RAM) /* 6116 SRAM (35) */ AM_RANGE(0xa000, 0xbfff) AM_READ(MRA8_BANK1) - AM_RANGE(0xc800, 0xcfff) AM_READ(videoram_r) + AM_RANGE(0xc800, 0xcfff) AM_READ(MRA8_RAM) AM_RANGE(0xd400, 0xd400) AM_READ(buggychl_mcu_r) AM_RANGE(0xd401, 0xd401) AM_READ(buggychl_mcu_status_r) AM_RANGE(0xd600, 0xd600) AM_READ(input_port_0_r) /* dsw */ @@ -184,7 +184,7 @@ static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x8800, 0x8fff) AM_WRITE(MWA8_RAM) /* 6116 SRAM (35) */ AM_RANGE(0x9000, 0x9fff) AM_WRITE(buggychl_sprite_lookup_w) AM_RANGE(0xa000, 0xbfff) AM_WRITE(buggychl_chargen_w) AM_BASE(&buggychl_character_ram) - AM_RANGE(0xc800, 0xcfff) AM_WRITE(videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) + AM_RANGE(0xc800, 0xcfff) AM_WRITE(MWA8_RAM) AM_BASE(&videoram) AM_SIZE(&videoram_size) // { 0xd000, 0xd000, horizon AM_RANGE(0xd100, 0xd100) AM_WRITE(buggychl_ctrl_w) AM_RANGE(0xd200, 0xd200) AM_WRITE(bankswitch_w) diff --git a/src/mame/drivers/carjmbre.c b/src/mame/drivers/carjmbre.c index fcf3f1de91b..9a875092328 100644 --- a/src/mame/drivers/carjmbre.c +++ b/src/mame/drivers/carjmbre.c @@ -71,7 +71,7 @@ static ADDRESS_MAP_START( carjmbre_writemem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x8fc1, 0x8fc1) AM_WRITE(MWA8_NOP) //overrun during initial screen clear AM_RANGE(0x8fe1, 0x8fe1) AM_WRITE(MWA8_NOP) //overrun during initial screen clear AM_RANGE(0x9000, 0x97ff) AM_WRITE(carjmbre_videoram_w) AM_BASE(&videoram) - AM_RANGE(0x9800, 0x985f) AM_WRITE(spriteram_w) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) + AM_RANGE(0x9800, 0x985f) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) AM_RANGE(0x9880, 0x98df) AM_WRITE(MWA8_RAM) //spriteram mirror AM_RANGE(0xb800, 0xb800) AM_WRITE(soundlatch_w) ADDRESS_MAP_END diff --git a/src/mame/drivers/cclimber.c b/src/mame/drivers/cclimber.c index eba1648ab98..dad8da0b936 100644 --- a/src/mame/drivers/cclimber.c +++ b/src/mame/drivers/cclimber.c @@ -195,8 +195,8 @@ static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x8000, 0x83ff) AM_WRITE(MWA8_RAM) AM_RANGE(0x8800, 0x88ff) AM_WRITE(cclimber_bigsprite_videoram_w) AM_BASE(&cclimber_bsvideoram) AM_SIZE(&cclimber_bsvideoram_size) AM_RANGE(0x8900, 0x8bff) AM_WRITE(MWA8_RAM) /* not used, but initialized */ - AM_RANGE(0x9000, 0x93ff) AM_WRITE(videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0x9400, 0x97ff) AM_WRITE(videoram_w) /* mirror address, used by Crazy Climber to draw windows */ + AM_RANGE(0x9000, 0x93ff) AM_WRITE(MWA8_RAM) AM_BASE(&videoram) AM_SIZE(&videoram_size) + AM_RANGE(0x9400, 0x97ff) AM_WRITE(MWA8_RAM) /* mirror address, used by Crazy Climber to draw windows */ /* 9800-9bff and 9c00-9fff share the same RAM, interleaved */ /* (9800-981f for scroll, 9c20-9c3f for color RAM, and so on) */ AM_RANGE(0x9800, 0x981f) AM_WRITE(MWA8_RAM) AM_BASE(&cclimber_column_scroll) @@ -237,8 +237,8 @@ static ADDRESS_MAP_START( cannonb_writemem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x8000, 0x83ff) AM_WRITE(MWA8_RAM) AM_RANGE(0x8800, 0x88ff) AM_WRITE(cclimber_bigsprite_videoram_w) AM_BASE(&cclimber_bsvideoram) AM_SIZE(&cclimber_bsvideoram_size) //AM_RANGE(0x8900, 0x8bff) AM_WRITE(MWA8_RAM) /* not used, but initialized */ - AM_RANGE(0x9000, 0x93ff) AM_WRITE(videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0x9400, 0x97ff) AM_WRITE(videoram_w) /* mirror address, used by Crazy Climber to draw windows */ + AM_RANGE(0x9000, 0x93ff) AM_WRITE(MWA8_RAM) AM_BASE(&videoram) AM_SIZE(&videoram_size) + AM_RANGE(0x9400, 0x97ff) AM_WRITE(MWA8_RAM) /* mirror address, used by Crazy Climber to draw windows */ /* 9800-9bff and 9c00-9fff share the same RAM, interleaved */ /* (9800-981f for scroll, 9c20-9c3f for color RAM, and so on) */ AM_RANGE(0x9800, 0x981f) AM_WRITE(MWA8_RAM) AM_BASE(&cclimber_column_scroll) @@ -273,8 +273,8 @@ static ADDRESS_MAP_START( swimmer_writemem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM) AM_RANGE(0x8800, 0x88ff) AM_WRITE(cclimber_bigsprite_videoram_w) AM_BASE(&cclimber_bsvideoram) AM_SIZE(&cclimber_bsvideoram_size) AM_RANGE(0x8900, 0x89ff) AM_WRITE(cclimber_bigsprite_videoram_w) /* mirror for the above (Guzzler writes to both) */ - AM_RANGE(0x9000, 0x93ff) AM_WRITE(videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0x9400, 0x97ff) AM_WRITE(videoram_w) /* mirror address (used by Guzzler) */ + AM_RANGE(0x9000, 0x93ff) AM_WRITE(MWA8_RAM) AM_BASE(&videoram) AM_SIZE(&videoram_size) + AM_RANGE(0x9400, 0x97ff) AM_WRITE(MWA8_RAM) /* mirror address (used by Guzzler) */ AM_RANGE(0x9800, 0x981f) AM_WRITE(MWA8_RAM) AM_BASE(&cclimber_column_scroll) AM_RANGE(0x9880, 0x989f) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) AM_RANGE(0x98fc, 0x98ff) AM_WRITE(MWA8_RAM) AM_BASE(&cclimber_bigspriteram) diff --git a/src/mame/drivers/csk.c b/src/mame/drivers/csk.c index 777f0b68c32..199c6fd230c 100644 --- a/src/mame/drivers/csk.c +++ b/src/mame/drivers/csk.c @@ -134,8 +134,6 @@ Palette3*: 585D (low), 5899 (high), len = 60 (used alternatively with pal3) extern UINT8 * cpk_colorram; extern UINT8 * cpk_videoram; -extern UINT8 * cpk_palette; -extern UINT8 * cpk_palette2; extern UINT8 * cpk_expram; @@ -146,12 +144,7 @@ VIDEO_START( cska ); WRITE8_HANDLER( cpk_palette_w ); WRITE8_HANDLER( cpk_palette2_w ); -READ8_HANDLER( cpk_videoram_r ); -WRITE8_HANDLER( cpk_videoram_w ); -READ8_HANDLER( cpk_colorram_r ); -WRITE8_HANDLER( cpk_colorram_w ); READ8_HANDLER( cpk_expansion_r ); -WRITE8_HANDLER( cpk_expansion_w ); @@ -207,9 +200,9 @@ static ADDRESS_MAP_START( csk227_map, ADDRESS_SPACE_IO, 8 ) AM_RANGE(0x5082, 0x5082) AM_READ(input_port_6_r) /* Coing & Kbd */ AM_RANGE(0x5091, 0x5091) AM_READ(input_port_7_r) /* Keyboard */ AM_RANGE(0x50a0, 0x50a0) AM_READ(input_port_8_r) /* Not connected */ - AM_RANGE(0x6800, 0x6fff) AM_WRITE(cpk_expansion_w) - AM_RANGE(0x7000, 0x77ff) AM_READWRITE(cpk_videoram_r,cpk_videoram_w) - AM_RANGE(0x7800, 0x7fff) AM_READWRITE(cpk_colorram_r,cpk_colorram_w) + AM_RANGE(0x6800, 0x6fff) AM_WRITE(MWA8_RAM) AM_BASE(&cpk_expram) + AM_RANGE(0x7000, 0x77ff) AM_RAM AM_BASE(&cpk_videoram) + AM_RANGE(0x7800, 0x7fff) AM_RAM AM_BASE(&cpk_colorram) AM_RANGE(0x8000, 0xffff) AM_READ(cpk_expansion_r) ADDRESS_MAP_END @@ -226,9 +219,9 @@ static ADDRESS_MAP_START( csk234_map, ADDRESS_SPACE_IO, 8 ) AM_RANGE(0x5090, 0x5090) AM_WRITE(custom_io_w) AM_RANGE(0x5091, 0x5091) AM_READ(custom_io_r) /* used for protection and other */ AM_RANGE(0x50a0, 0x50a0) AM_READ(input_port_8_r) /* Not connected */ - AM_RANGE(0x6800, 0x6fff) AM_WRITE(cpk_expansion_w) - AM_RANGE(0x7000, 0x77ff) AM_READWRITE(cpk_videoram_r,cpk_videoram_w) - AM_RANGE(0x7800, 0x7fff) AM_READWRITE(cpk_colorram_r,cpk_colorram_w) + AM_RANGE(0x6800, 0x6fff) AM_WRITE(MWA8_RAM) AM_BASE(&cpk_expram) + AM_RANGE(0x7000, 0x77ff) AM_RAM AM_BASE(&cpk_videoram) + AM_RANGE(0x7800, 0x7fff) AM_RAM AM_BASE(&cpk_colorram) AM_RANGE(0x8000, 0xffff) AM_READ(cpk_expansion_r) ADDRESS_MAP_END diff --git a/src/mame/drivers/exerion.c b/src/mame/drivers/exerion.c index 77d6e7c0527..e7d7132cce1 100644 --- a/src/mame/drivers/exerion.c +++ b/src/mame/drivers/exerion.c @@ -89,7 +89,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x5fff) AM_ROM AM_RANGE(0x6008, 0x600b) AM_READ(exerion_protection_r) AM_RANGE(0x6000, 0x67ff) AM_RAM AM_BASE(&exerion_ram) - AM_RANGE(0x8000, 0x87ff) AM_READWRITE(MRA8_RAM, videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) + AM_RANGE(0x8000, 0x87ff) AM_RAM AM_BASE(&videoram) AM_SIZE(&videoram_size) AM_RANGE(0x8800, 0x887f) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) AM_RANGE(0x8800, 0x8bff) AM_RAM AM_RANGE(0xa000, 0xa000) AM_READ(exerion_port01_r) diff --git a/src/mame/drivers/fcombat.c b/src/mame/drivers/fcombat.c index 81df4b71e76..27d2e1a0c90 100644 --- a/src/mame/drivers/fcombat.c +++ b/src/mame/drivers/fcombat.c @@ -207,7 +207,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( fcombat_writemem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) AM_RANGE(0xc000, 0xc7ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0xd000, 0xd7ff) AM_WRITE(videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) + AM_RANGE(0xd000, 0xd7ff) AM_WRITE(MWA8_RAM) AM_BASE(&videoram) AM_SIZE(&videoram_size) AM_RANGE(0xd800, 0xd8ff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) AM_RANGE(0xe800, 0xe800) AM_WRITE(fcombat_videoreg_w) // at least bit 0 for flip screen and joystick input multiplexor diff --git a/src/mame/drivers/finalizr.c b/src/mame/drivers/finalizr.c index 4d4319af79c..dc7f526f2d4 100644 --- a/src/mame/drivers/finalizr.c +++ b/src/mame/drivers/finalizr.c @@ -122,8 +122,8 @@ static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x081b, 0x081b) AM_WRITE(MWA8_NOP) /* Loads the snd command into the snd latch */ AM_RANGE(0x081c, 0x081c) AM_WRITE(finalizr_i8039_irq_w) /* custom sound chip */ AM_RANGE(0x081d, 0x081d) AM_WRITE(soundlatch_w) /* custom sound chip */ - AM_RANGE(0x2000, 0x23ff) AM_WRITE(colorram_w) AM_BASE(&colorram) - AM_RANGE(0x2400, 0x27ff) AM_WRITE(videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) + AM_RANGE(0x2000, 0x23ff) AM_WRITE(MWA8_RAM) AM_BASE(&colorram) + AM_RANGE(0x2400, 0x27ff) AM_WRITE(MWA8_RAM) AM_BASE(&videoram) AM_SIZE(&videoram_size) AM_RANGE(0x2800, 0x2bff) AM_WRITE(MWA8_RAM) AM_BASE(&finalizr_colorram2) AM_RANGE(0x2c00, 0x2fff) AM_WRITE(MWA8_RAM) AM_BASE(&finalizr_videoram2) AM_RANGE(0x3000, 0x31ff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) diff --git a/src/mame/drivers/goldstar.c b/src/mame/drivers/goldstar.c index d4cddc63f24..1e9c203f7ae 100644 --- a/src/mame/drivers/goldstar.c +++ b/src/mame/drivers/goldstar.c @@ -16,9 +16,6 @@ extern UINT8 *goldstar_video1, *goldstar_video2, *goldstar_video3; extern size_t goldstar_video_size; extern UINT8 *goldstar_scroll1, *goldstar_scroll2, *goldstar_scroll3; -WRITE8_HANDLER( goldstar_video1_w ); -WRITE8_HANDLER( goldstar_video2_w ); -WRITE8_HANDLER( goldstar_video3_w ); WRITE8_HANDLER( goldstar_fa00_w ); VIDEO_START( goldstar ); VIDEO_UPDATE( goldstar ); @@ -59,13 +56,12 @@ static READ8_HANDLER( protection_r ) static ADDRESS_MAP_START( map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0xb7ff) AM_ROM AM_RANGE(0xb800, 0xbfff) AM_RAM AM_BASE(&nvram) AM_SIZE(&nvram_size) - AM_RANGE(0xc000, 0xc7ff) AM_READ(MRA8_ROM) - AM_RANGE(0xc800, 0xd9ff) AM_READ(MRA8_RAM) - AM_RANGE(0xc800, 0xcfff) AM_WRITE(videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0xd000, 0xd7ff) AM_WRITE(colorram_w) AM_BASE(&colorram) - AM_RANGE(0xe000, 0xe1ff) AM_READWRITE(MRA8_RAM,goldstar_video2_w) AM_BASE(&goldstar_video2) - AM_RANGE(0xd800, 0xd9ff) AM_READWRITE(MRA8_RAM,goldstar_video1_w) AM_BASE(&goldstar_video1) AM_SIZE(&goldstar_video_size) - AM_RANGE(0xe800, 0xe9ff) AM_WRITE(goldstar_video3_w) AM_BASE(&goldstar_video3) + AM_RANGE(0xc000, 0xc7ff) AM_ROM + AM_RANGE(0xc800, 0xcfff) AM_RAM AM_BASE(&videoram) AM_SIZE(&videoram_size) + AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_BASE(&colorram) + AM_RANGE(0xd800, 0xd9ff) AM_RAM AM_BASE(&goldstar_video1) AM_SIZE(&goldstar_video_size) + AM_RANGE(0xe000, 0xe1ff) AM_RAM AM_BASE(&goldstar_video2) + AM_RANGE(0xe800, 0xe9ff) AM_WRITE(MWA8_RAM) AM_BASE(&goldstar_video3) AM_RANGE(0xf040, 0xf07f) AM_WRITE(MWA8_RAM) AM_BASE(&goldstar_scroll1) AM_RANGE(0xf800, 0xf800) AM_READ(input_port_0_r) AM_RANGE(0xf801, 0xf801) AM_READ(input_port_1_r) /* Test Mode */ diff --git a/src/mame/drivers/ikki.c b/src/mame/drivers/ikki.c index 37ac881dea0..9756aba3d4c 100644 --- a/src/mame/drivers/ikki.c +++ b/src/mame/drivers/ikki.c @@ -40,7 +40,7 @@ static ADDRESS_MAP_START( ikki_cpu1, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x9fff) AM_ROM AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_RANGE(0xc800, 0xcfff) AM_RAM AM_SHARE(1) - AM_RANGE(0xd000, 0xd7ff) AM_READWRITE(videoram_r, videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) + AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_BASE(&videoram) AM_SIZE(&videoram_size) AM_RANGE(0xe000, 0xe000) AM_READ(ikki_e000_r) AM_RANGE(0xe001, 0xe001) AM_READ(input_port_0_r) /* dsw 1 */ AM_RANGE(0xe002, 0xe002) AM_READ(input_port_1_r) /* dsw 2 */ diff --git a/src/mame/drivers/jedi.c b/src/mame/drivers/jedi.c index c8f28cf79ac..2505f44d821 100644 --- a/src/mame/drivers/jedi.c +++ b/src/mame/drivers/jedi.c @@ -386,13 +386,13 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x1e87, 0x1e87) AM_WRITE(jedi_video_off_w) AM_RANGE(0x1f00, 0x1f00) AM_WRITE(sound_latch_w) AM_RANGE(0x1f80, 0x1f80) AM_WRITE(rom_banksel_w) - AM_RANGE(0x2000, 0x27ff) AM_READWRITE(MRA8_RAM, jedi_backgroundram_w) AM_BASE(&jedi_backgroundram) AM_SIZE(&jedi_backgroundram_size) + AM_RANGE(0x2000, 0x27ff) AM_RAM AM_BASE(&jedi_backgroundram) AM_SIZE(&jedi_backgroundram_size) AM_RANGE(0x2800, 0x2fff) AM_READWRITE(MRA8_RAM, jedi_paletteram_w) AM_BASE(&paletteram) - AM_RANGE(0x3000, 0x37bf) AM_READWRITE(MRA8_RAM, videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0x37c0, 0x3bff) AM_READWRITE(MRA8_RAM, MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) + AM_RANGE(0x3000, 0x37bf) AM_RAM AM_BASE(&videoram) AM_SIZE(&videoram_size) + AM_RANGE(0x37c0, 0x3bff) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) AM_RANGE(0x3c00, 0x3c01) AM_WRITE(jedi_vscroll_w) AM_RANGE(0x3d00, 0x3d01) AM_WRITE(jedi_hscroll_w) - AM_RANGE(0x3e00, 0x3fff) AM_WRITE(jedi_PIXIRAM_w) AM_BASE(&jedi_PIXIRAM) + AM_RANGE(0x3e00, 0x3fff) AM_WRITE(jedi_PIXIRAM_w) AM_RANGE(0x4000, 0x7fff) AM_ROMBANK(1) AM_RANGE(0x8000, 0xffff) AM_ROM ADDRESS_MAP_END diff --git a/src/mame/drivers/kchamp.c b/src/mame/drivers/kchamp.c index f01003a9255..25c97a58d4b 100644 --- a/src/mame/drivers/kchamp.c +++ b/src/mame/drivers/kchamp.c @@ -97,7 +97,7 @@ static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0xc000, 0xcfff) AM_WRITE(MWA8_RAM) AM_RANGE(0xd000, 0xd3ff) AM_WRITE(kchamp_videoram_w) AM_BASE(&videoram) AM_RANGE(0xd400, 0xd7ff) AM_WRITE(kchamp_colorram_w) AM_BASE(&colorram) - AM_RANGE(0xd800, 0xd8ff) AM_WRITE(spriteram_w) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) + AM_RANGE(0xd800, 0xd8ff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) AM_RANGE(0xd900, 0xdfff) AM_WRITE(MWA8_RAM) AM_RANGE(0xe000, 0xffff) AM_WRITE(MWA8_ROM) ADDRESS_MAP_END @@ -188,7 +188,7 @@ static ADDRESS_MAP_START( kc_writemem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0xc000, 0xdfff) AM_WRITE(MWA8_RAM) AM_RANGE(0xe000, 0xe3ff) AM_WRITE(kchamp_videoram_w) AM_BASE(&videoram) AM_RANGE(0xe400, 0xe7ff) AM_WRITE(kchamp_colorram_w) AM_BASE(&colorram) - AM_RANGE(0xea00, 0xeaff) AM_WRITE(spriteram_w) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) + AM_RANGE(0xea00, 0xeaff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) AM_RANGE(0xeb00, 0xffff) AM_WRITE(MWA8_RAM) ADDRESS_MAP_END diff --git a/src/mame/drivers/kingobox.c b/src/mame/drivers/kingobox.c index f4e73dddccb..c1dec7faa58 100644 --- a/src/mame/drivers/kingobox.c +++ b/src/mame/drivers/kingobox.c @@ -138,7 +138,7 @@ static ADDRESS_MAP_START( sprite_writemem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x1fff) AM_WRITE(MWA8_ROM) AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM) /* work ram */ AM_RANGE(0xa000, 0xa7ff) AM_WRITE(sprite_shared_w) AM_BASE(&sprite_shared) /* shared with main */ - AM_RANGE(0xc000, 0xc3ff) AM_WRITE(spriteram_w) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) /* sprite ram */ + AM_RANGE(0xc000, 0xc3ff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) /* sprite ram */ AM_RANGE(0xc400, 0xc43f) AM_WRITE(MWA8_RAM) /* something related to scroll? */ ADDRESS_MAP_END @@ -225,7 +225,7 @@ static ADDRESS_MAP_START( rk_sprite_writemem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x1fff) AM_WRITE(MWA8_ROM) AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM) /* work ram */ AM_RANGE(0xc800, 0xcfff) AM_WRITE(sprite_shared_w) AM_BASE(&sprite_shared) /* shared with main */ - AM_RANGE(0xa000, 0xa3ff) AM_WRITE(spriteram_w) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) /* sprite ram */ + AM_RANGE(0xa000, 0xa3ff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) /* sprite ram */ AM_RANGE(0xa400, 0xa43f) AM_WRITE(MWA8_RAM) /* something related to scroll? */ ADDRESS_MAP_END diff --git a/src/mame/drivers/matmania.c b/src/mame/drivers/matmania.c index 6e63e2d7f06..75eda63e554 100644 --- a/src/mame/drivers/matmania.c +++ b/src/mame/drivers/matmania.c @@ -39,8 +39,6 @@ WRITE8_HANDLER( matmania_paletteram_w ); PALETTE_INIT( matmania ); VIDEO_UPDATE( matmania ); VIDEO_UPDATE( maniach ); -WRITE8_HANDLER( matmania_videoram3_w ); -WRITE8_HANDLER( matmania_colorram3_w ); VIDEO_START( matmania ); VIDEO_UPDATE( matmania ); @@ -95,10 +93,10 @@ static ADDRESS_MAP_START( matmania_writemem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0780, 0x07df) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) AM_RANGE(0x1000, 0x13ff) AM_WRITE(MWA8_RAM) AM_BASE(&matmania_videoram2) AM_SIZE(&matmania_videoram2_size) AM_RANGE(0x1400, 0x17ff) AM_WRITE(MWA8_RAM) AM_BASE(&matmania_colorram2) - AM_RANGE(0x2000, 0x21ff) AM_WRITE(videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0x2200, 0x23ff) AM_WRITE(colorram_w) AM_BASE(&colorram) - AM_RANGE(0x2400, 0x25ff) AM_WRITE(matmania_videoram3_w) AM_BASE(&matmania_videoram3) AM_SIZE(&matmania_videoram3_size) - AM_RANGE(0x2600, 0x27ff) AM_WRITE(matmania_colorram3_w) AM_BASE(&matmania_colorram3) + AM_RANGE(0x2000, 0x21ff) AM_WRITE(MWA8_RAM) AM_BASE(&videoram) AM_SIZE(&videoram_size) + AM_RANGE(0x2200, 0x23ff) AM_WRITE(MWA8_RAM) AM_BASE(&colorram) + AM_RANGE(0x2400, 0x25ff) AM_WRITE(MWA8_RAM) AM_BASE(&matmania_videoram3) AM_SIZE(&matmania_videoram3_size) + AM_RANGE(0x2600, 0x27ff) AM_WRITE(MWA8_RAM) AM_BASE(&matmania_colorram3) AM_RANGE(0x3000, 0x3000) AM_WRITE(MWA8_RAM) AM_BASE(&matmania_pageselect) AM_RANGE(0x3010, 0x3010) AM_WRITE(matmania_sh_command_w) AM_RANGE(0x3020, 0x3020) AM_WRITE(MWA8_RAM) AM_BASE(&matmania_scroll) @@ -125,10 +123,10 @@ static ADDRESS_MAP_START( maniach_writemem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0780, 0x07df) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) AM_RANGE(0x1000, 0x13ff) AM_WRITE(MWA8_RAM) AM_BASE(&matmania_videoram2) AM_SIZE(&matmania_videoram2_size) AM_RANGE(0x1400, 0x17ff) AM_WRITE(MWA8_RAM) AM_BASE(&matmania_colorram2) - AM_RANGE(0x2000, 0x21ff) AM_WRITE(videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0x2200, 0x23ff) AM_WRITE(colorram_w) AM_BASE(&colorram) - AM_RANGE(0x2400, 0x25ff) AM_WRITE(matmania_videoram3_w) AM_BASE(&matmania_videoram3) AM_SIZE(&matmania_videoram3_size) - AM_RANGE(0x2600, 0x27ff) AM_WRITE(matmania_colorram3_w) AM_BASE(&matmania_colorram3) + AM_RANGE(0x2000, 0x21ff) AM_WRITE(MWA8_RAM) AM_BASE(&videoram) AM_SIZE(&videoram_size) + AM_RANGE(0x2200, 0x23ff) AM_WRITE(MWA8_RAM) AM_BASE(&colorram) + AM_RANGE(0x2400, 0x25ff) AM_WRITE(MWA8_RAM) AM_BASE(&matmania_videoram3) AM_SIZE(&matmania_videoram3_size) + AM_RANGE(0x2600, 0x27ff) AM_WRITE(MWA8_RAM) AM_BASE(&matmania_colorram3) AM_RANGE(0x3000, 0x3000) AM_WRITE(MWA8_RAM) AM_BASE(&matmania_pageselect) AM_RANGE(0x3010, 0x3010) AM_WRITE(maniach_sh_command_w) AM_RANGE(0x3020, 0x3020) AM_WRITE(MWA8_RAM) AM_BASE(&matmania_scroll) diff --git a/src/mame/drivers/megazone.c b/src/mame/drivers/megazone.c index ecc9934da0a..95be0600b2e 100644 --- a/src/mame/drivers/megazone.c +++ b/src/mame/drivers/megazone.c @@ -20,8 +20,6 @@ void konami1_decode(void); extern UINT8 *megazone_scrollx; extern UINT8 *megazone_scrolly; -static UINT8 *megazone_sharedram; - extern UINT8 *megazone_videoram2; extern UINT8 *megazone_colorram2; extern size_t megazone_videoram2_size; @@ -75,32 +73,6 @@ static WRITE8_HANDLER( megazone_portB_w ) } } -static WRITE8_HANDLER( megazone_videoram2_w ) -{ - if (megazone_videoram2[offset] != data) - { - megazone_videoram2[offset] = data; - } -} - -static WRITE8_HANDLER( megazone_colorram2_w ) -{ - if (megazone_colorram2[offset] != data) - { - megazone_colorram2[offset] = data; - } -} - -static READ8_HANDLER( megazone_sharedram_r ) -{ - return(megazone_sharedram[offset]); -} - -static WRITE8_HANDLER( megazone_sharedram_w ) -{ - megazone_sharedram[offset] = data; -} - static WRITE8_HANDLER( megazone_i8039_irq_w ) { cpunum_set_input_line(2, 0, ASSERT_LINE); @@ -123,7 +95,7 @@ static WRITE8_HANDLER( megazone_coin_counter_w ) static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x2000, 0x2fff) AM_READ(MRA8_RAM) AM_RANGE(0x3000, 0x33ff) AM_READ(MRA8_RAM) - AM_RANGE(0x3800, 0x3fff) AM_READ(megazone_sharedram_r) + AM_RANGE(0x3800, 0x3fff) AM_RAM AM_SHARE(1) AM_RANGE(0x4000, 0xffff) AM_READ(MRA8_ROM) /* 4000->5FFF is a debug rom */ ADDRESS_MAP_END @@ -134,12 +106,11 @@ static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0800, 0x0800) AM_WRITE(watchdog_reset_w) AM_RANGE(0x1800, 0x1800) AM_WRITE(MWA8_RAM) AM_BASE(&megazone_scrollx) AM_RANGE(0x1000, 0x1000) AM_WRITE(MWA8_RAM) AM_BASE(&megazone_scrolly) - AM_RANGE(0x2000, 0x23ff) AM_WRITE(videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0x2400, 0x27ff) AM_WRITE(megazone_videoram2_w) AM_BASE(&megazone_videoram2) AM_SIZE(&megazone_videoram2_size) - AM_RANGE(0x2800, 0x2bff) AM_WRITE(colorram_w) AM_BASE(&colorram) - AM_RANGE(0x2c00, 0x2fff) AM_WRITE(megazone_colorram2_w) AM_BASE(&megazone_colorram2) + AM_RANGE(0x2000, 0x23ff) AM_WRITE(MWA8_RAM) AM_BASE(&videoram) AM_SIZE(&videoram_size) + AM_RANGE(0x2400, 0x27ff) AM_WRITE(MWA8_RAM) AM_BASE(&megazone_videoram2) AM_SIZE(&megazone_videoram2_size) + AM_RANGE(0x2800, 0x2bff) AM_WRITE(MWA8_RAM) AM_BASE(&colorram) + AM_RANGE(0x2c00, 0x2fff) AM_WRITE(MWA8_RAM) AM_BASE(&megazone_colorram2) AM_RANGE(0x3000, 0x33ff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0x3800, 0x3fff) AM_WRITE(megazone_sharedram_w) AM_BASE(&megazone_sharedram) AM_RANGE(0x4000, 0xffff) AM_WRITE(MWA8_ROM) ADDRESS_MAP_END @@ -150,7 +121,7 @@ static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x6002, 0x6002) AM_READ(input_port_2_r) /* P2 IO */ AM_RANGE(0x8000, 0x8000) AM_READ(input_port_3_r) /* DIP 1 */ AM_RANGE(0x8001, 0x8001) AM_READ(input_port_4_r) /* DIP 2 */ - AM_RANGE(0xe000, 0xe7ff) AM_READ(megazone_sharedram_r) /* Shared with $3800->3fff of main CPU */ + AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE(1) ADDRESS_MAP_END static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) @@ -160,7 +131,6 @@ static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0xa000, 0xa000) AM_WRITE(MWA8_RAM) /* INTMAIN - Interrupts main CPU (unused) */ AM_RANGE(0xc000, 0xc000) AM_WRITE(MWA8_RAM) /* INT (Actually is NMI) enable/disable (unused)*/ AM_RANGE(0xc001, 0xc001) AM_WRITE(watchdog_reset_w) - AM_RANGE(0xe000, 0xe7ff) AM_WRITE(megazone_sharedram_w) /* Shared with $3800->3fff of main CPU */ ADDRESS_MAP_END static ADDRESS_MAP_START( sound_readport, ADDRESS_SPACE_IO, 8 ) diff --git a/src/mame/drivers/momoko.c b/src/mame/drivers/momoko.c index eb576cfca06..1bf38374987 100644 --- a/src/mame/drivers/momoko.c +++ b/src/mame/drivers/momoko.c @@ -78,7 +78,7 @@ static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0xdc01, 0xdc01) AM_WRITE(momoko_fg_scrollx_w) AM_RANGE(0xdc02, 0xdc02) AM_WRITE(momoko_fg_select_w) - AM_RANGE(0xe000, 0xe3ff) AM_WRITE(videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) + AM_RANGE(0xe000, 0xe3ff) AM_WRITE(MWA8_RAM) AM_BASE(&videoram) AM_SIZE(&videoram_size) AM_RANGE(0xe800, 0xe800) AM_WRITE(momoko_text_scrolly_w) AM_RANGE(0xe801, 0xe801) AM_WRITE(momoko_text_mode_w) diff --git a/src/mame/drivers/mouser.c b/src/mame/drivers/mouser.c index 4a6dd6bc629..7bd2272b0f2 100644 --- a/src/mame/drivers/mouser.c +++ b/src/mame/drivers/mouser.c @@ -68,9 +68,9 @@ static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x5fff) AM_WRITE(MWA8_ROM) AM_RANGE(0x6000, 0x6bff) AM_WRITE(MWA8_RAM) AM_RANGE(0x8800, 0x88ff) AM_WRITE(MWA8_NOP) /* unknown */ - AM_RANGE(0x9000, 0x93ff) AM_WRITE(videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0x9800, 0x9cff) AM_WRITE(mouser_spriteram_w) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0x9c00, 0x9fff) AM_WRITE(mouser_colorram_w) AM_BASE(&colorram) + AM_RANGE(0x9000, 0x93ff) AM_WRITE(MWA8_RAM) AM_BASE(&videoram) AM_SIZE(&videoram_size) + AM_RANGE(0x9800, 0x9cff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) + AM_RANGE(0x9c00, 0x9fff) AM_WRITE(MWA8_RAM) AM_BASE(&colorram) AM_RANGE(0xa000, 0xa000) AM_WRITE(mouser_nmi_enable_w) /* bit 0 = NMI Enable */ AM_RANGE(0xa001, 0xa001) AM_WRITE(mouser_flip_screen_x_w) AM_RANGE(0xa002, 0xa002) AM_WRITE(mouser_flip_screen_y_w) @@ -221,7 +221,6 @@ static MACHINE_DRIVER_START( mouser ) MDRV_PALETTE_LENGTH(64) MDRV_PALETTE_INIT(mouser) - MDRV_VIDEO_START(generic) MDRV_VIDEO_UPDATE(mouser) /* sound hardware */ diff --git a/src/mame/drivers/munchmo.c b/src/mame/drivers/munchmo.c index 63483810dfd..9df973878c8 100644 --- a/src/mame/drivers/munchmo.c +++ b/src/mame/drivers/munchmo.c @@ -35,8 +35,6 @@ READ8_HANDLER( mnchmobl_sprite_attr_r ); WRITE8_HANDLER( mnchmobl_sprite_attr_w ); READ8_HANDLER( mnchmobl_sprite_tile_r ); WRITE8_HANDLER( mnchmobl_sprite_tile_w ); -READ8_HANDLER( mnchmobl_videoram_r ); -WRITE8_HANDLER( mnchmobl_videoram_w ); VIDEO_UPDATE( mnchmobl ); @@ -77,8 +75,7 @@ static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0xac00, 0xafff) AM_READ(mnchmobl_sprite_tile_r) /* mirrored */ AM_RANGE(0xb000, 0xb3ff) AM_READ(MRA8_RAM) AM_RANGE(0xb400, 0xb7ff) AM_READ(mnchmobl_sprite_attr_r) /* mirrored */ - AM_RANGE(0xb800, 0xb8ff) AM_READ(MRA8_RAM) - AM_RANGE(0xb900, 0xb9ff) AM_READ(mnchmobl_videoram_r) /* mirrored */ + AM_RANGE(0xb800, 0xb8ff) AM_MIRROR(0x0100) AM_READ(MRA8_RAM) AM_RANGE(0xbe02, 0xbe02) AM_READ(input_port_3_r) /* DSW1 */ AM_RANGE(0xbe03, 0xbe03) AM_READ(input_port_4_r) /* DSW2 */ AM_RANGE(0xbf01, 0xbf01) AM_READ(input_port_0_r) /* coin, start */ @@ -95,7 +92,7 @@ static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0xac00, 0xafff) AM_WRITE(mnchmobl_sprite_tile_w) AM_RANGE(0xb000, 0xb3ff) AM_WRITE(MWA8_RAM) AM_BASE(&mnchmobl_sprite_attr) AM_RANGE(0xb400, 0xb7ff) AM_WRITE(mnchmobl_sprite_attr_w) - AM_RANGE(0xb800, 0xb9ff) AM_WRITE(mnchmobl_videoram_w) AM_BASE(&videoram) + AM_RANGE(0xb800, 0xb8ff) AM_MIRROR(0x0100) AM_WRITE(MWA8_RAM) AM_BASE(&videoram) AM_RANGE(0xba00, 0xbbff) AM_WRITE(MWA8_RAM) AM_RANGE(0xbc00, 0xbc7f) AM_WRITE(MWA8_RAM) AM_BASE(&mnchmobl_status_vram) AM_RANGE(0xbe00, 0xbe00) AM_WRITE(mnchmobl_soundlatch_w) diff --git a/src/mame/drivers/naughtyb.c b/src/mame/drivers/naughtyb.c index 0b1f4654a8c..e434506a649 100644 --- a/src/mame/drivers/naughtyb.c +++ b/src/mame/drivers/naughtyb.c @@ -186,8 +186,8 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x3fff) AM_WRITE(MWA8_ROM) AM_RANGE(0x4000, 0x7fff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x8000, 0x87ff) AM_WRITE(videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0x8800, 0x8fff) AM_WRITE(naughtyb_videoram2_w) AM_BASE(&naughtyb_videoram2) + AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM) AM_BASE(&videoram) AM_SIZE(&videoram_size) + AM_RANGE(0x8800, 0x8fff) AM_WRITE(MWA8_RAM) AM_BASE(&naughtyb_videoram2) AM_RANGE(0x9000, 0x97ff) AM_WRITE(naughtyb_videoreg_w) AM_RANGE(0x9800, 0x9fff) AM_WRITE(MWA8_RAM) AM_BASE(&naughtyb_scrollreg) AM_RANGE(0xa000, 0xa7ff) AM_WRITE(pleiads_sound_control_a_w) @@ -197,8 +197,8 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( popflame_writemem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x3fff) AM_WRITE(MWA8_ROM) AM_RANGE(0x4000, 0x7fff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x8000, 0x87ff) AM_WRITE(videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0x8800, 0x8fff) AM_WRITE(naughtyb_videoram2_w) AM_BASE(&naughtyb_videoram2) + AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM) AM_BASE(&videoram) AM_SIZE(&videoram_size) + AM_RANGE(0x8800, 0x8fff) AM_WRITE(MWA8_RAM) AM_BASE(&naughtyb_videoram2) AM_RANGE(0x9000, 0x97ff) AM_WRITE(popflame_videoreg_w) AM_RANGE(0x9800, 0x9fff) AM_WRITE(MWA8_RAM) AM_BASE(&naughtyb_scrollreg) AM_RANGE(0xa000, 0xa7ff) AM_WRITE(pleiads_sound_control_a_w) diff --git a/src/mame/drivers/ninjakid.c b/src/mame/drivers/ninjakid.c index 96fb981d15f..36edf32c556 100644 --- a/src/mame/drivers/ninjakid.c +++ b/src/mame/drivers/ninjakid.c @@ -96,7 +96,6 @@ static ADDRESS_MAP_START( ninjakid_primary_readmem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0xa002, 0xa002) AM_READ(ninjakun_io_A002_r) AM_RANGE(0xc000, 0xc7ff) AM_READ(MRA8_RAM) /* tilemaps */ AM_RANGE(0xc800, 0xcfff) AM_READ(ninjakid_bg_videoram_r) - AM_RANGE(0xd000, 0xd7ff) AM_READ(MRA8_RAM) /* spriteram */ AM_RANGE(0xd800, 0xd9ff) AM_READ(paletteram_r) AM_RANGE(0xe000, 0xe7ff) AM_READ(MRA8_RAM) ADDRESS_MAP_END @@ -109,7 +108,7 @@ static ADDRESS_MAP_START( ninjakid_primary_writemem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0xa003, 0xa003) AM_WRITE(ninjakun_flipscreen_w) AM_RANGE(0xc000, 0xc7ff) AM_WRITE(ninjakid_fg_videoram_w) AM_BASE(&videoram) AM_RANGE(0xc800, 0xcfff) AM_WRITE(ninjakid_bg_videoram_w) - AM_RANGE(0xd000, 0xd7ff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) + AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_BASE(&spriteram) AM_SHARE(1) AM_RANGE(0xd800, 0xd9ff) AM_WRITE(ninjakun_paletteram_w) AM_BASE(&paletteram) AM_RANGE(0xe000, 0xe7ff) AM_WRITE(MWA8_RAM) AM_BASE(&shareram) ADDRESS_MAP_END @@ -123,7 +122,6 @@ static ADDRESS_MAP_START( ninjakid_secondary_readmem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0xa002, 0xa002) AM_READ(ninjakun_io_A002_r) AM_RANGE(0xc000, 0xc7ff) AM_READ(videoram_r) /* tilemaps */ AM_RANGE(0xc800, 0xcfff) AM_READ(ninjakid_bg_videoram_r) - AM_RANGE(0xd000, 0xd7ff) AM_READ(spriteram_r) /* shareram */ AM_RANGE(0xd800, 0xd9ff) AM_READ(paletteram_r) AM_RANGE(0xe000, 0xe7ff) AM_READ(shareram_r) ADDRESS_MAP_END @@ -135,7 +133,7 @@ static ADDRESS_MAP_START( ninjakid_secondary_writemem, ADDRESS_SPACE_PROGRAM, 8 AM_RANGE(0xa003, 0xa003) AM_WRITE(ninjakun_flipscreen_w) AM_RANGE(0xc000, 0xc7ff) AM_WRITE(ninjakid_fg_videoram_w) AM_RANGE(0xc800, 0xcfff) AM_WRITE(ninjakid_bg_videoram_w) - AM_RANGE(0xd000, 0xd7ff) AM_WRITE(spriteram_w) /* shareram */ + AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_SHARE(1) AM_RANGE(0xd800, 0xd9ff) AM_WRITE(ninjakun_paletteram_w) AM_RANGE(0xe000, 0xe7ff) AM_WRITE(shareram_w) ADDRESS_MAP_END diff --git a/src/mame/drivers/pitnrun.c b/src/mame/drivers/pitnrun.c index 3bc13e4fda1..cda26c6d4e1 100644 --- a/src/mame/drivers/pitnrun.c +++ b/src/mame/drivers/pitnrun.c @@ -138,7 +138,7 @@ static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM) AM_RANGE(0x8800, 0x8fff) AM_WRITE(pitnrun_videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) AM_RANGE(0x9000, 0x9fff) AM_WRITE(pitnrun_videoram2_w) AM_BASE(&pitnrun_videoram2) - AM_RANGE(0xa000, 0xa0ff) AM_WRITE(spriteram_w) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) + AM_RANGE(0xa000, 0xa0ff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) AM_RANGE(0xa800, 0xa807) AM_WRITE(MWA8_NOP) /* Analog Sound */ AM_RANGE(0xb000, 0xb000) AM_WRITE(nmi_enable_w) AM_RANGE(0xb001, 0xb001) AM_WRITE(pitnrun_color_select_w) diff --git a/src/mame/drivers/pkunwar.c b/src/mame/drivers/pkunwar.c index 5d7a471cc0f..0582088bf36 100644 --- a/src/mame/drivers/pkunwar.c +++ b/src/mame/drivers/pkunwar.c @@ -29,8 +29,8 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0x8800, 0x8bff) AM_WRITE(videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0x8c00, 0x8fff) AM_WRITE(colorram_w) AM_BASE(&colorram) + AM_RANGE(0x8800, 0x8bff) AM_WRITE(MWA8_RAM) AM_BASE(&videoram) AM_SIZE(&videoram_size) + AM_RANGE(0x8c00, 0x8fff) AM_WRITE(MWA8_RAM) AM_BASE(&colorram) AM_RANGE(0xa000, 0xa000) AM_WRITE(&AY8910_control_port_0_w) AM_RANGE(0xa001, 0xa001) AM_WRITE(&AY8910_write_port_0_w) AM_RANGE(0xa002, 0xa002) AM_WRITE(&AY8910_control_port_1_w) @@ -184,7 +184,6 @@ static MACHINE_DRIVER_START( pkunwar ) MDRV_COLORTABLE_LENGTH(32*16) MDRV_PALETTE_INIT(nova2001) - MDRV_VIDEO_START(generic) MDRV_VIDEO_UPDATE(pkunwar) /* sound hardware */ diff --git a/src/mame/drivers/redalert.c b/src/mame/drivers/redalert.c index 5615020306e..7cae0a34a89 100644 --- a/src/mame/drivers/redalert.c +++ b/src/mame/drivers/redalert.c @@ -62,7 +62,7 @@ static ADDRESS_MAP_START( redalert_writemem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0200, 0x0fff) AM_WRITE(MWA8_RAM) /* ? */ AM_RANGE(0x1000, 0x1fff) AM_WRITE(MWA8_RAM) /* Scratchpad video RAM */ AM_RANGE(0x2000, 0x3fff) AM_WRITE(redalert_backram_w) AM_BASE(&redalert_backram) - AM_RANGE(0x4000, 0x43ff) AM_WRITE(videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) + AM_RANGE(0x4000, 0x43ff) AM_WRITE(MWA8_RAM) AM_BASE(&videoram) AM_SIZE(&videoram_size) AM_RANGE(0x4400, 0x47ff) AM_WRITE(redalert_spriteram1_w) AM_BASE(&redalert_spriteram1) AM_RANGE(0x4800, 0x4bff) AM_WRITE(redalert_characterram_w) AM_BASE(&redalert_characterram) AM_RANGE(0x4c00, 0x4fff) AM_WRITE(redalert_spriteram2_w) AM_BASE(&redalert_spriteram2) @@ -123,7 +123,7 @@ static ADDRESS_MAP_START( demoneye_writemem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x4400, 0x47ff) AM_WRITE(redalert_spriteram1_w) AM_BASE(&redalert_spriteram1) AM_RANGE(0x4800, 0x4bff) AM_WRITE(redalert_characterram2_w) AM_BASE(&redalert_characterram2) AM_RANGE(0x4c00, 0x4fff) AM_WRITE(redalert_spriteram2_w) AM_BASE(&redalert_spriteram2) - AM_RANGE(0x5000, 0x53ff) AM_WRITE(videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) + AM_RANGE(0x5000, 0x53ff) AM_WRITE(MWA8_RAM) AM_BASE(&videoram) AM_SIZE(&videoram_size) AM_RANGE(0x5400, 0x57ff) AM_WRITE(redalert_spriteram3_w) AM_BASE(&redalert_spriteram3) AM_RANGE(0x5800, 0x5bff) AM_WRITE(MWA8_RAM) //??? AM_RANGE(0x5c00, 0x5fff) AM_WRITE(MWA8_RAM) //??? diff --git a/src/mame/drivers/rollrace.c b/src/mame/drivers/rollrace.c index d980803faad..147ea45ada4 100644 --- a/src/mame/drivers/rollrace.c +++ b/src/mame/drivers/rollrace.c @@ -56,8 +56,8 @@ static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x8000, 0x9fff) AM_WRITE(MWA8_ROM) AM_RANGE(0xc000, 0xcfff) AM_WRITE(MWA8_RAM) AM_RANGE(0xd900, 0xd900) AM_WRITE(ra_fake_d800_w) /* protection ?? */ - AM_RANGE(0xe000, 0xe3ff) AM_WRITE(videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0xe400, 0xe47f) AM_WRITE(colorram_w) AM_BASE(&colorram) + AM_RANGE(0xe000, 0xe3ff) AM_WRITE(MWA8_RAM) AM_BASE(&videoram) AM_SIZE(&videoram_size) + AM_RANGE(0xe400, 0xe47f) AM_WRITE(MWA8_RAM) AM_BASE(&colorram) AM_RANGE(0xe800, 0xe800) AM_WRITE(soundlatch_w) AM_RANGE(0xec00, 0xec0f) AM_WRITE(MWA8_NOP) /* Analog sound effects ?? ec00 sound enable ?*/ AM_RANGE(0xf000, 0xf0ff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) diff --git a/src/mame/drivers/shougi.c b/src/mame/drivers/shougi.c index 27dec58e21a..35374090ffd 100644 --- a/src/mame/drivers/shougi.c +++ b/src/mame/drivers/shougi.c @@ -162,27 +162,22 @@ int offs; for (offs = 0;offs <0x4000; offs++) { - // if (dirtybuffer[offs]) + int sx, sy, x, data1, data2, color, data; + + sx = offs >> 8; /*00..0x3f (64*4=256)*/ + sy = offs & 0xff; /*00..0xff*/ +// if (flipscreen[0]) sx = 31 - sx; +// if (flipscreen[1]) sy = 31 - sy; + + data1 = videoram[offs]; /* color */ + data2 = videoram[0x4000 + offs]; /* pixel data */ + + for (x=0; x<4; x++) /*4 pixels per byte (2 bitplanes in 2 nibbles: 1st=bits 7-4, 2nd=bits 3-0)*/ { - int sx, sy, x, data1, data2, color, data; + color= ((data1>>x) & 1) | (((data1>>(4+x)) & 1)<<1); + data = ((data2>>x) & 1) | (((data2>>(4+x)) & 1)<<1); - // dirtybuffer[offs] = 0; - - sx = offs >> 8; /*00..0x3f (64*4=256)*/ - sy = offs & 0xff; /*00..0xff*/ - // if (flipscreen[0]) sx = 31 - sx; - // if (flipscreen[1]) sy = 31 - sy; - - data1 = videoram[offs]; /* color */ - data2 = videoram[0x4000 + offs]; /* pixel data */ - - for (x=0; x<4; x++) /*4 pixels per byte (2 bitplanes in 2 nibbles: 1st=bits 7-4, 2nd=bits 3-0)*/ - { - color= ((data1>>x) & 1) | (((data1>>(4+x)) & 1)<<1); - data = ((data2>>x) & 1) | (((data2>>(4+x)) & 1)<<1); - - *BITMAP_ADDR16(bitmap, 255-sy, 255-(sx*4 + x)) = color*4 + data; - } + *BITMAP_ADDR16(bitmap, 255-sy, 255-(sx*4 + x)) = color*4 + data; } } /* copy the character mapped graphics */ @@ -301,7 +296,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) // AM_RANGE(0x7800, 0x78ff) AM_WRITE(cpu_sharedram_main_w) AM_BASE(&cpu_sharedram)/* sharedram main/sub */ // AM_RANGE(0x7800, 0x7bff) AM_READ(cpu_sharedram_r)/* 2114 x 2 (0x400 x 4bit each) */ - AM_RANGE(0x8000, 0xffff) AM_WRITE(videoram_w) AM_READ(MRA8_RAM) AM_BASE(&videoram) AM_SIZE(&videoram_size) /* 4116 x 16 (32K) */ + AM_RANGE(0x8000, 0xffff) AM_RAM AM_BASE(&videoram) AM_SIZE(&videoram_size) /* 4116 x 16 (32K) */ ADDRESS_MAP_END /* sub */ diff --git a/src/mame/drivers/skyarmy.c b/src/mame/drivers/skyarmy.c index 1da31536e7f..3e6d3b91d3a 100644 --- a/src/mame/drivers/skyarmy.c +++ b/src/mame/drivers/skyarmy.c @@ -170,7 +170,7 @@ static ADDRESS_MAP_START( skyarmy_writemem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x8000, 0x87FF) AM_WRITE(MWA8_RAM) AM_RANGE(0x8800, 0x8BFF) AM_WRITE(skyarmy_videoram_w) AM_BASE(&skyarmy_videoram) /* Video RAM */ AM_RANGE(0x9000, 0x93FF) AM_WRITE(skyarmy_colorram_w) AM_BASE(&skyarmy_colorram) /* Color RAM */ - AM_RANGE(0x9800, 0x983F) AM_WRITE(spriteram_w) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) /* Sprites */ + AM_RANGE(0x9800, 0x983F) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) /* Sprites */ AM_RANGE(0x9840, 0x985F) AM_WRITE(skyarmy_scrollram_w) AM_BASE(&skyarmy_scrollram) /* Sprites */ AM_RANGE(0xa004, 0xa004) AM_WRITE(nmi_enable_w) // ??? AM_RANGE(0xa005, 0xa005) AM_WRITE(MWA8_NOP) diff --git a/src/mame/drivers/skychut.c b/src/mame/drivers/skychut.c index 65525fd5a08..3dc24fa3c46 100644 --- a/src/mame/drivers/skychut.c +++ b/src/mame/drivers/skychut.c @@ -486,7 +486,7 @@ INTERRUPT_GEN( iremm15_interrupt ) static ADDRESS_MAP_START( iremm10_main, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x02ff) AM_RAM AM_BASE_MEMBER(irem_state, memory) /* scratch ram */ AM_RANGE(0x1000, 0x2fff) AM_READ(MRA8_ROM) AM_BASE_MEMBER(irem_state, rom) - AM_RANGE(0x4000, 0x43ff) AM_READWRITE(MRA8_RAM, videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) + AM_RANGE(0x4000, 0x43ff) AM_RAM AM_BASE(&videoram) AM_SIZE(&videoram_size) AM_RANGE(0x4800, 0x4bff) AM_READWRITE(MRA8_RAM, skychut_colorram_w) AM_BASE(&colorram) /* foreground colour */ AM_RANGE(0x5000, 0x53ff) AM_RAM AM_BASE_MEMBER(irem_state, chargen) /* background ????? */ AM_RANGE(0xa200, 0xa200) AM_READ(input_port_1_r) @@ -500,7 +500,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( iremm11_main, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x02ff) AM_RAM AM_BASE_MEMBER(irem_state, memory) /* scratch ram */ AM_RANGE(0x1000, 0x2fff) AM_READ(MRA8_ROM) AM_BASE_MEMBER(irem_state, rom) - AM_RANGE(0x4000, 0x43ff) AM_READWRITE(MRA8_RAM, videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) + AM_RANGE(0x4000, 0x43ff) AM_RAM AM_BASE(&videoram) AM_SIZE(&videoram_size) AM_RANGE(0x4800, 0x4bff) AM_READWRITE(MRA8_RAM, skychut_colorram_w) AM_BASE(&colorram) /* foreground colour */ AM_RANGE(0x5000, 0x53ff) AM_RAM AM_BASE_MEMBER(irem_state, chargen) /* background ????? */ AM_RANGE(0xa100, 0xa100) AM_WRITE(iremm11_a100_w) /* sound writes ???? */ @@ -514,7 +514,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( iremm15_main, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x02ff) AM_RAM AM_BASE_MEMBER(irem_state, memory) /* scratch ram */ AM_RANGE(0x1000, 0x33ff) AM_READ(MRA8_ROM) AM_BASE_MEMBER(irem_state, rom) - AM_RANGE(0x4000, 0x43ff) AM_READWRITE(MRA8_RAM, videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) + AM_RANGE(0x4000, 0x43ff) AM_RAM AM_BASE(&videoram) AM_SIZE(&videoram_size) AM_RANGE(0x4800, 0x4bff) AM_READWRITE(MRA8_RAM, skychut_colorram_w) AM_BASE(&colorram) /* foreground colour */ AM_RANGE(0x5000, 0x57ff) AM_READWRITE(MRA8_RAM, iremm15_chargen_w) AM_BASE_MEMBER(irem_state, chargen) /* background ????? */ AM_RANGE(0xa000, 0xa000) AM_READ(input_port_3_r) diff --git a/src/mame/drivers/subs.c b/src/mame/drivers/subs.c index 485999d85bd..8a9a587bb4b 100644 --- a/src/mame/drivers/subs.c +++ b/src/mame/drivers/subs.c @@ -68,9 +68,9 @@ static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x006a, 0x006b) AM_WRITE(subs_crash_w) AM_RANGE(0x006c, 0x006d) AM_WRITE(subs_invert1_w) AM_RANGE(0x006e, 0x006f) AM_WRITE(subs_invert2_w) - AM_RANGE(0x0090, 0x009f) AM_WRITE(spriteram_w) AM_BASE(&spriteram) + AM_RANGE(0x0090, 0x009f) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_RANGE(0x0000, 0x07ff) AM_WRITE(MWA8_RAM) - AM_RANGE(0x0800, 0x0bff) AM_WRITE(videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) + AM_RANGE(0x0800, 0x0bff) AM_WRITE(MWA8_RAM) AM_BASE(&videoram) AM_SIZE(&videoram_size) AM_RANGE(0x2000, 0x3fff) AM_WRITE(MWA8_ROM) ADDRESS_MAP_END diff --git a/src/mame/drivers/troangel.c b/src/mame/drivers/troangel.c index 841d37ca324..3fa0c0f5959 100644 --- a/src/mame/drivers/troangel.c +++ b/src/mame/drivers/troangel.c @@ -62,7 +62,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( troangel_writemem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0x87ff) AM_WRITE(videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) + AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM) AM_BASE(&videoram) AM_SIZE(&videoram_size) // AM_RANGE(0x8800, 0x8fff) AM_WRITE(MWA8_RAM) AM_RANGE(0x9000, 0x91ff) AM_WRITE(MWA8_RAM) AM_BASE(&troangel_scroll) AM_RANGE(0xc820, 0xc8ff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) diff --git a/src/mame/drivers/tunhunt.c b/src/mame/drivers/tunhunt.c index ebcdbd29db4..f2dca9d5050 100644 --- a/src/mame/drivers/tunhunt.c +++ b/src/mame/drivers/tunhunt.c @@ -55,7 +55,6 @@ UINT8 *tunhunt_ram; extern WRITE8_HANDLER( tunhunt_videoram_w ); -extern WRITE8_HANDLER( tunhunt_mott_w ); extern PALETTE_INIT( tunhunt ); extern VIDEO_START( tunhunt ); @@ -165,7 +164,7 @@ static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x1a00, 0x1a00) AM_WRITE(MWA8_RAM) /* SHEL1H */ AM_RANGE(0x1c00, 0x1c00) AM_WRITE(MWA8_RAM) /* MOBJV */ AM_RANGE(0x1e00, 0x1eff) AM_WRITE(tunhunt_videoram_w) AM_BASE(&videoram) /* ALPHA */ - AM_RANGE(0x2c00, 0x2fff) AM_WRITE(tunhunt_mott_w) AM_BASE(&spriteram) + AM_RANGE(0x2c00, 0x2fff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_RANGE(0x2000, 0x2000) AM_WRITE(MWA8_NOP) /* watchdog */ AM_RANGE(0x2400, 0x2400) AM_WRITE(MWA8_NOP) /* INT ACK */ AM_RANGE(0x2800, 0x2800) AM_WRITE(tunhunt_control_w) diff --git a/src/mame/drivers/vigilant.c b/src/mame/drivers/vigilant.c index 5c3a05dbe0e..69c7a729e57 100644 --- a/src/mame/drivers/vigilant.c +++ b/src/mame/drivers/vigilant.c @@ -82,7 +82,7 @@ static ADDRESS_MAP_START( vigilant_writemem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0xbfff) AM_WRITE(MWA8_ROM) AM_RANGE(0xc020, 0xc0df) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) AM_RANGE(0xc800, 0xcfff) AM_WRITE(vigilant_paletteram_w) AM_BASE(&paletteram) - AM_RANGE(0xd000, 0xdfff) AM_WRITE(videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) + AM_RANGE(0xd000, 0xdfff) AM_WRITE(MWA8_RAM) AM_BASE(&videoram) AM_SIZE(&videoram_size) AM_RANGE(0xe000, 0xefff) AM_WRITE(MWA8_RAM) ADDRESS_MAP_END @@ -118,7 +118,7 @@ static ADDRESS_MAP_START( kikcubic_writemem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0xbfff) AM_WRITE(MWA8_ROM) AM_RANGE(0xc000, 0xc0ff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) AM_RANGE(0xc800, 0xcaff) AM_WRITE(vigilant_paletteram_w) AM_BASE(&paletteram) - AM_RANGE(0xd000, 0xdfff) AM_WRITE(videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) + AM_RANGE(0xd000, 0xdfff) AM_WRITE(MWA8_RAM) AM_BASE(&videoram) AM_SIZE(&videoram_size) AM_RANGE(0xe000, 0xffff) AM_WRITE(MWA8_RAM) ADDRESS_MAP_END diff --git a/src/mame/drivers/wiping.c b/src/mame/drivers/wiping.c index 9ee7f2d294c..f80698d2d88 100644 --- a/src/mame/drivers/wiping.c +++ b/src/mame/drivers/wiping.c @@ -104,8 +104,8 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x5fff) AM_WRITE(MWA8_ROM) - AM_RANGE(0x8000, 0x83ff) AM_WRITE(videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0x8400, 0x87ff) AM_WRITE(colorram_w) AM_BASE(&colorram) + AM_RANGE(0x8000, 0x83ff) AM_WRITE(MWA8_RAM) AM_BASE(&videoram) AM_SIZE(&videoram_size) + AM_RANGE(0x8400, 0x87ff) AM_WRITE(MWA8_RAM) AM_BASE(&colorram) AM_RANGE(0x8800, 0x88ff) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) AM_RANGE(0x8900, 0x8bff) AM_WRITE(MWA8_RAM) AM_RANGE(0x9000, 0x93ff) AM_WRITE(shared1_w) AM_BASE(&sharedram1) @@ -329,7 +329,6 @@ static MACHINE_DRIVER_START( wiping ) MDRV_COLORTABLE_LENGTH(64*4+64*4) MDRV_PALETTE_INIT(wiping) - MDRV_VIDEO_START(generic) MDRV_VIDEO_UPDATE(wiping) /* sound hardware */ diff --git a/src/mame/drivers/wiz.c b/src/mame/drivers/wiz.c index b408cd9d352..13feae3c400 100644 --- a/src/mame/drivers/wiz.c +++ b/src/mame/drivers/wiz.c @@ -168,7 +168,6 @@ extern UINT8 *wiz_attributesram2; extern UINT8 *wiz_sprite_bank; WRITE8_HANDLER( wiz_char_bank_select_w ); -WRITE8_HANDLER( wiz_attributes_w ); WRITE8_HANDLER( wiz_palettebank_w ); WRITE8_HANDLER( wiz_bgcolor_w ); WRITE8_HANDLER( wiz_flipx_w ); @@ -246,9 +245,9 @@ static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0xd400, 0xd7ff) AM_WRITE(MWA8_RAM) AM_BASE(&wiz_colorram2) AM_RANGE(0xd800, 0xd83f) AM_WRITE(MWA8_RAM) AM_BASE(&wiz_attributesram2) AM_RANGE(0xd840, 0xd85f) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram_2) AM_SIZE(&spriteram_size) - AM_RANGE(0xe000, 0xe3ff) AM_WRITE(videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0xe400, 0xe7ff) AM_WRITE(colorram_w) AM_BASE(&colorram) - AM_RANGE(0xe800, 0xe83f) AM_WRITE(wiz_attributes_w) AM_BASE(&wiz_attributesram) + AM_RANGE(0xe000, 0xe3ff) AM_WRITE(MWA8_RAM) AM_BASE(&videoram) AM_SIZE(&videoram_size) + AM_RANGE(0xe400, 0xe7ff) AM_WRITE(MWA8_RAM) AM_BASE(&colorram) + AM_RANGE(0xe800, 0xe83f) AM_WRITE(MWA8_RAM) AM_BASE(&wiz_attributesram) AM_RANGE(0xe840, 0xe85f) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_RANGE(0xf000, 0xf000) AM_WRITE(MWA8_RAM) AM_BASE(&wiz_sprite_bank) AM_RANGE(0xf001, 0xf001) AM_WRITE(interrupt_enable_w) diff --git a/src/mame/drivers/yamato.c b/src/mame/drivers/yamato.c index 06487ca9982..2ce7780af70 100644 --- a/src/mame/drivers/yamato.c +++ b/src/mame/drivers/yamato.c @@ -246,8 +246,8 @@ static ADDRESS_MAP_START( yamato_writemem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x7000, 0x7fff) AM_WRITE(MWA8_ROM) AM_RANGE(0x8800, 0x88ff) AM_WRITE(cclimber_bigsprite_videoram_w) AM_BASE(&cclimber_bsvideoram) AM_SIZE(&cclimber_bsvideoram_size) AM_RANGE(0x8900, 0x8bff) AM_WRITE(MWA8_RAM) /* not used, but initialized */ - AM_RANGE(0x9000, 0x93ff) AM_WRITE(videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size) -//AM_RANGE(0x9400, 0x97ff) AM_WRITE(videoram_w) /* mirror address, used by Crazy Climber to draw windows */ + AM_RANGE(0x9000, 0x93ff) AM_WRITE(MWA8_RAM) AM_BASE(&videoram) AM_SIZE(&videoram_size) +//AM_RANGE(0x9400, 0x97ff) AM_WRITE(MWA8_RAM) /* mirror address, used by Crazy Climber to draw windows */ /* 9800-9bff and 9c00-9fff share the same RAM, interleaved */ /* (9800-981f for scroll, 9c20-9c3f for color RAM, and so on) */ AM_RANGE(0x9800, 0x981f) AM_WRITE(MWA8_RAM) AM_BASE(&cclimber_column_scroll) diff --git a/src/mame/includes/jedi.h b/src/mame/includes/jedi.h index 7471be46943..80ba0bf018a 100644 --- a/src/mame/includes/jedi.h +++ b/src/mame/includes/jedi.h @@ -6,7 +6,6 @@ /*----------- defined in video/jedi.c -----------*/ -extern UINT8 *jedi_PIXIRAM; extern UINT8 *jedi_backgroundram; extern size_t jedi_backgroundram_size; @@ -15,7 +14,6 @@ VIDEO_UPDATE( jedi ); WRITE8_HANDLER( jedi_alpha_banksel_w ); WRITE8_HANDLER( jedi_paletteram_w ); -WRITE8_HANDLER( jedi_backgroundram_w ); WRITE8_HANDLER( jedi_vscroll_w ); WRITE8_HANDLER( jedi_hscroll_w ); WRITE8_HANDLER( jedi_video_off_w ); diff --git a/src/mame/includes/phoenix.h b/src/mame/includes/phoenix.h index 42d1bc08905..94ebcdba5e8 100644 --- a/src/mame/includes/phoenix.h +++ b/src/mame/includes/phoenix.h @@ -27,7 +27,6 @@ extern UINT8 *naughtyb_videoram2; extern UINT8 *naughtyb_scrollreg; extern int naughtyb_cocktail; -WRITE8_HANDLER( naughtyb_videoram2_w ); WRITE8_HANDLER( naughtyb_videoreg_w ); WRITE8_HANDLER( popflame_videoreg_w ); diff --git a/src/mame/video/buggychl.c b/src/mame/video/buggychl.c index 99a42c9a145..a5576ad645b 100644 --- a/src/mame/video/buggychl.c +++ b/src/mame/video/buggychl.c @@ -28,12 +28,10 @@ PALETTE_INIT( buggychl ) VIDEO_START( buggychl ) { - dirtybuffer = auto_malloc(videoram_size); dirtychar = auto_malloc(256 * sizeof(*dirtychar)); tmpbitmap1 = auto_bitmap_alloc(256,256,machine->screen[0].format); tmpbitmap2 = auto_bitmap_alloc(256,256,machine->screen[0].format); - memset(dirtybuffer,1,videoram_size); memset(dirtychar,0xff,256 * sizeof(*dirtychar)); } @@ -114,23 +112,18 @@ static void draw_bg(running_machine *machine, mame_bitmap *bitmap, const rectang { int code = videoram[0x400+offs]; - if (dirtybuffer[0x400+offs] || dirtychar[code]) - { - int sx = offs % 32; - int sy = offs / 32; + int sx = offs % 32; + int sy = offs / 32; - dirtybuffer[0x400+offs] = 0; + if (flip_screen_x) sx = 31 - sx; + if (flip_screen_y) sy = 31 - sy; - if (flip_screen_x) sx = 31 - sx; - if (flip_screen_y) sy = 31 - sy; - - drawgfx(tmpbitmap1,machine->gfx[0], - code, - 2, - flip_screen_x,flip_screen_y, - 8*sx,8*sy, - NULL,TRANSPARENCY_NONE,0); - } + drawgfx(tmpbitmap1,machine->gfx[0], + code, + 2, + flip_screen_x,flip_screen_y, + 8*sx,8*sy, + NULL,TRANSPARENCY_NONE,0); } /* first copy to a temp bitmap doing column scroll */ diff --git a/src/mame/video/carjmbre.c b/src/mame/video/carjmbre.c index db939fcc791..a39f039dabc 100644 --- a/src/mame/video/carjmbre.c +++ b/src/mame/video/carjmbre.c @@ -54,8 +54,6 @@ WRITE8_HANDLER( carjmbre_bgcolor_w ) if(oldbg!=carjmbre_bgcolor) { - memset(dirtybuffer,1,videoram_size); - for (i=0;i<64;i+=4) palette_set_color_rgb(Machine, i, (carjmbre_bgcolor&0xff)*0x50, (carjmbre_bgcolor&0xff)*0x50, (carjmbre_bgcolor&0xff)!=0?0x50:0); } diff --git a/src/mame/video/csk.c b/src/mame/video/csk.c index 85600183865..beda95c4478 100644 --- a/src/mame/video/csk.c +++ b/src/mame/video/csk.c @@ -10,14 +10,11 @@ #define CPK_VIDEO_SIZE 0x800 -static UINT8 * cpk_colorram; -static UINT8 * cpk_videoram; +UINT8 * cpk_colorram; +UINT8 * cpk_videoram; +UINT8 * cpk_expram; static UINT8 * cpk_palette; static UINT8 * cpk_palette2; -static UINT8 * cpk_expram; - -static UINT8 * dirtybuffer1; -static mame_bitmap *tmpbitmap2; static int hopperOK = 0; static int intstate1 = 0; /* unknown */ @@ -48,34 +45,6 @@ WRITE8_HANDLER( cpk_palette2_w ) /* Video handling */ -READ8_HANDLER( cpk_videoram_r ) -{ - return cpk_videoram[offset]; -} - -WRITE8_HANDLER( cpk_videoram_w ) -{ - if (cpk_videoram[offset] != data) - { - cpk_videoram[offset] = data; - dirtybuffer[offset] = 1; - } -} - -READ8_HANDLER( cpk_colorram_r ) -{ - return cpk_colorram[offset]; -} - -WRITE8_HANDLER( cpk_colorram_w ) -{ - if (cpk_colorram[offset] != data) - { - cpk_colorram[offset] = data; - dirtybuffer[offset] = 1; - } -} - READ8_HANDLER( cpk_expansion_r ) { UINT8 * RAM = memory_region(REGION_GFX3); @@ -83,33 +52,15 @@ READ8_HANDLER( cpk_expansion_r ) } -WRITE8_HANDLER( cpk_expansion_w ) -{ - if (cpk_expram[offset] != data) - { - cpk_expram[offset] = data; - dirtybuffer1[offset] = 1; - } -} - /* Machine init/deinit */ VIDEO_START( cska ) { int i; - dirtybuffer = auto_malloc(CPK_VIDEO_SIZE * sizeof(UINT8)); - dirtybuffer1 = auto_malloc(CPK_VIDEO_SIZE * sizeof(UINT8)); - cpk_colorram = auto_malloc(CPK_VIDEO_SIZE * sizeof(UINT8)); - cpk_videoram = auto_malloc(CPK_VIDEO_SIZE * sizeof(UINT8)); - cpk_expram = auto_malloc(CPK_VIDEO_SIZE * sizeof(UINT8)); - cpk_palette = auto_malloc(0x800 * sizeof(UINT8)); cpk_palette2 = auto_malloc(0x800 * sizeof(UINT8)); - tmpbitmap = auto_bitmap_alloc(machine->screen[0].width,machine->screen[0].height,machine->screen[0].format); - tmpbitmap2 = auto_bitmap_alloc(machine->screen[0].width,machine->screen[0].height,machine->screen[0].format); - /* leave everything at the default, but map all foreground 0 pens as transparent */ for (i = 0;i < 16;i++) { @@ -144,8 +95,6 @@ MACHINE_RESET (cpk) memset(cpk_videoram, 0, CPK_VIDEO_SIZE); memset(cpk_colorram, 0, CPK_VIDEO_SIZE); memset(cpk_expram, 0, CPK_VIDEO_SIZE); - memset(dirtybuffer, 1, CPK_VIDEO_SIZE); - memset(dirtybuffer1, 0, CPK_VIDEO_SIZE); memset(cpk_palette, 0, 0x800); memset(cpk_palette2, 0, 0x800); @@ -198,14 +147,6 @@ VIDEO_UPDATE( cska ) // memset(&palette_used_colors[64 * color + 1],PALETTE_COLOR_USED,63); } - if (abilityflag) -// memset(&palette_used_colors[0], PALETTE_COLOR_USED, 64); - -// if (palette_recalc()) - { - memset(dirtybuffer, 1, CPK_VIDEO_SIZE); - } - #if 0 if (keyboard_pressed(KEYCODE_9)) { @@ -223,25 +164,19 @@ VIDEO_UPDATE( cska ) { for (offs = (CPK_VIDEO_SIZE)-1; offs >= 0; offs--) { - if (dirtybuffer1[offs] || dirtybuffer[offs]) - { - int sx,sy; + int sx,sy; - dirtybuffer1[offs] = 0; + sx = offs % 64; + sy = offs / 64; - sx = offs % 64; - sy = offs / 64; - - drawgfx(tmpbitmap2,machine->gfx[1+(offs % 4)], - cpk_expram[offs], - 0, - 0,0, - 8*sx,32*sy, - 0,TRANSPARENCY_NONE,0); - } + drawgfx(bitmap,machine->gfx[1+(offs % 4)], + cpk_expram[offs], + 0, + 0,0, + 8*sx,32*sy, + cliprect,TRANSPARENCY_NONE,0); } - copybitmap(bitmap,tmpbitmap2,0,0,0,0,cliprect,TRANSPARENCY_NONE,0); } for (offs = CPK_VIDEO_SIZE-1; offs >= 0; offs--) @@ -249,25 +184,20 @@ VIDEO_UPDATE( cska ) int tile = cpk_videoram[offs] + ((cpk_colorram[offs] & 0x1f) << 8); int color = (tile != 0x1fff) ? (((cpk_colorram[offs] & 0xe0) >> 4) + 1) : 0; - if (dirtybuffer[offs]) - { - int sx,sy; + int sx,sy; - dirtybuffer[offs] = 0; + sx = offs % 64; + sy = offs / 64; - sx = offs % 64; - sy = offs / 64; - - drawgfx(tmpbitmap,machine->gfx[0], - tile, - color, - 0,0, - 8*sx,8*sy, - 0, TRANSPARENCY_NONE, 0); - } + drawgfx(bitmap,machine->gfx[0], + tile, + color, + 0,0, + 8*sx,8*sy, + cliprect, + (abilityflag) ? TRANSPARENCY_COLOR : TRANSPARENCY_NONE, 0); } - copybitmap(bitmap,tmpbitmap,0,0,0,0,cliprect, (abilityflag) ? TRANSPARENCY_COLOR : TRANSPARENCY_NONE, 0); return 0; } diff --git a/src/mame/video/finalizr.c b/src/mame/video/finalizr.c index 216748826cf..b6449965a0e 100644 --- a/src/mame/video/finalizr.c +++ b/src/mame/video/finalizr.c @@ -68,12 +68,6 @@ PALETTE_INIT( finalizr ) VIDEO_START( finalizr ) { - dirtybuffer = 0; - tmpbitmap = 0; - - dirtybuffer = auto_malloc(videoram_size); - memset(dirtybuffer,1,videoram_size); - tmpbitmap = auto_bitmap_alloc(256,256,machine->screen[0].format); } @@ -81,11 +75,7 @@ VIDEO_START( finalizr ) WRITE8_HANDLER( finalizr_videoctrl_w ) { - if (charbank != (data & 3)) - { - charbank = data & 3; - memset(dirtybuffer,1,videoram_size); - } + charbank = data & 3; spriterambank = data & 8; @@ -99,27 +89,21 @@ VIDEO_UPDATE( finalizr ) int offs; - /* for every character in the Video RAM, check if it has been modified */ - /* since last time and update it accordingly. */ + /* for every character in the Video RAM */ for (offs = videoram_size - 1;offs >= 0;offs--) { - if (dirtybuffer[offs]) - { - int sx,sy; + int sx,sy; - dirtybuffer[offs] = 0; + sx = offs % 32; + sy = offs / 32; - sx = offs % 32; - sy = offs / 32; - - drawgfx(tmpbitmap,machine->gfx[0], - videoram[offs] + ((colorram[offs] & 0xc0) << 2) + (charbank<<10), - (colorram[offs] & 0x0f), - colorram[offs] & 0x10,colorram[offs] & 0x20, - 8*sx,8*sy, - 0,TRANSPARENCY_NONE,0); - } + drawgfx(tmpbitmap,machine->gfx[0], + videoram[offs] + ((colorram[offs] & 0xc0) << 2) + (charbank<<10), + (colorram[offs] & 0x0f), + colorram[offs] & 0x10,colorram[offs] & 0x20, + 8*sx,8*sy, + 0,TRANSPARENCY_NONE,0); } diff --git a/src/mame/video/goldstar.c b/src/mame/video/goldstar.c index ee0017d4ff8..e6cd65beaaa 100644 --- a/src/mame/video/goldstar.c +++ b/src/mame/video/goldstar.c @@ -14,7 +14,6 @@ UINT8 *goldstar_video1, *goldstar_video2, *goldstar_video3; size_t goldstar_video_size; UINT8 *goldstar_scroll1, *goldstar_scroll2, *goldstar_scroll3; -static UINT8 *dirtybuffer1, *dirtybuffer2, *dirtybuffer3; static mame_bitmap *tmpbitmap1, *tmpbitmap2, *tmpbitmap3; static int bgcolor; @@ -31,10 +30,6 @@ VIDEO_START( goldstar ) video_start_generic(machine); - dirtybuffer1 = auto_malloc(3 * goldstar_video_size * sizeof(UINT8)); - dirtybuffer2 = dirtybuffer1 + goldstar_video_size; - dirtybuffer3 = dirtybuffer2 + goldstar_video_size; - /* the background area is half as high as the screen */ tmpbitmap1 = auto_bitmap_alloc(machine->screen[0].width,machine->screen[0].height,machine->screen[0].format); tmpbitmap2 = auto_bitmap_alloc(machine->screen[0].width,machine->screen[0].height,machine->screen[0].format); @@ -47,45 +42,12 @@ VIDEO_START( goldstar ) -WRITE8_HANDLER( goldstar_video1_w ) -{ - if (goldstar_video1[offset] != data) - { - dirtybuffer1[offset] = 1; - goldstar_video1[offset] = data; - } -} -WRITE8_HANDLER( goldstar_video2_w ) -{ - if (goldstar_video2[offset] != data) - { - dirtybuffer2[offset] = 1; - goldstar_video2[offset] = data; - } -} -WRITE8_HANDLER( goldstar_video3_w ) -{ - if (goldstar_video3[offset] != data) - { - dirtybuffer3[offset] = 1; - goldstar_video3[offset] = data; - } -} - - - WRITE8_HANDLER( goldstar_fa00_w ) { /* bit 1 toggles continuously - might be irq enable or watchdog reset */ /* bit 2 selects background gfx color (I think) */ - if (bgcolor != ((data & 0x04) >> 2)) - { - bgcolor = (data & 0x04) >> 2; - memset(dirtybuffer1,1,goldstar_video_size); - memset(dirtybuffer2,1,goldstar_video_size); - memset(dirtybuffer3,1,goldstar_video_size); - } + bgcolor = (data & 0x04) >> 2; } @@ -100,33 +62,20 @@ VIDEO_UPDATE( goldstar ) int offs; -// if (palette_recalc()) - { - memset(dirtybuffer,1,videoram_size); - memset(dirtybuffer1,1,goldstar_video_size); - memset(dirtybuffer2,1,goldstar_video_size); - memset(dirtybuffer3,1,goldstar_video_size); - } - for (offs = videoram_size - 1;offs >= 0;offs--) { - if (dirtybuffer[offs]) - { - int sx,sy; + int sx,sy; - dirtybuffer[offs] = 0; + sx = offs % 64; + sy = offs / 64; - sx = offs % 64; - sy = offs / 64; - - drawgfx(tmpbitmap,machine->gfx[0], - videoram[offs] + ((colorram[offs] & 0xf0) << 4), - colorram[offs] & 0x0f, - 0,0, - 8*sx,8*sy, - 0,TRANSPARENCY_NONE,0); - } + drawgfx(tmpbitmap,machine->gfx[0], + videoram[offs] + ((colorram[offs] & 0xf0) << 4), + colorram[offs] & 0x0f, + 0,0, + 8*sx,8*sy, + 0,TRANSPARENCY_NONE,0); } copybitmap(bitmap,tmpbitmap,0,0,0,0,cliprect,TRANSPARENCY_NONE,0); @@ -138,41 +87,26 @@ VIDEO_UPDATE( goldstar ) int sy = offs / 64; - if (dirtybuffer1[offs]) - { - dirtybuffer1[offs] = 0; + drawgfx(tmpbitmap1,machine->gfx[1], + goldstar_video1[offs], + bgcolor, + 0,0, + sx*8,sy*32, + 0,TRANSPARENCY_NONE,0); - drawgfx(tmpbitmap1,machine->gfx[1], - goldstar_video1[offs], - bgcolor, - 0,0, - sx*8,sy*32, - 0,TRANSPARENCY_NONE,0); - } + drawgfx(tmpbitmap2,machine->gfx[1], + goldstar_video2[offs], + bgcolor, + 0,0, + sx*8,sy*32, + 0,TRANSPARENCY_NONE,0); - if (dirtybuffer2[offs]) - { - dirtybuffer2[offs] = 0; - - drawgfx(tmpbitmap2,machine->gfx[1], - goldstar_video2[offs], - bgcolor, - 0,0, - sx*8,sy*32, - 0,TRANSPARENCY_NONE,0); - } - - if (dirtybuffer3[offs]) - { - dirtybuffer3[offs] = 0; - - drawgfx(tmpbitmap3,machine->gfx[1], - goldstar_video3[offs], - bgcolor, - 0,0, - sx*8,sy*32, - 0,TRANSPARENCY_NONE,0); - } + drawgfx(tmpbitmap3,machine->gfx[1], + goldstar_video3[offs], + bgcolor, + 0,0, + sx*8,sy*32, + 0,TRANSPARENCY_NONE,0); } { diff --git a/src/mame/video/jedi.c b/src/mame/video/jedi.c index b50fa026c06..d1003ad7328 100644 --- a/src/mame/video/jedi.c +++ b/src/mame/video/jedi.c @@ -11,7 +11,6 @@ /* globals */ UINT8 *jedi_backgroundram; size_t jedi_backgroundram_size; -UINT8 *jedi_PIXIRAM; /* local variables */ @@ -19,7 +18,6 @@ static UINT32 jedi_vscroll; static UINT32 jedi_hscroll; static UINT32 jedi_alpha_bank; static UINT8 video_off, smooth_table; -static UINT8 *fgdirty, *bgdirty; static mame_bitmap *fgbitmap, *mobitmap, *bgbitmap, *bgexbitmap; @@ -30,19 +28,8 @@ static mame_bitmap *fgbitmap, *mobitmap, *bgbitmap, *bgexbitmap; * *************************************/ -static void jedi_postload(void) -{ - memset(fgdirty, 1, videoram_size); - memset(bgdirty, 1, jedi_backgroundram_size); -} - - VIDEO_START( jedi ) { - /* allocate dirty buffer for the foreground characters */ - fgdirty = dirtybuffer = auto_malloc(videoram_size); - memset(fgdirty, 1, videoram_size); - /* allocate an 8bpp bitmap for the raw foreground characters */ fgbitmap = auto_bitmap_alloc(machine->screen[0].width, machine->screen[0].height, machine->screen[0].format); @@ -50,10 +37,6 @@ VIDEO_START( jedi ) mobitmap = auto_bitmap_alloc(machine->screen[0].width, machine->screen[0].height, machine->screen[0].format); fillbitmap(mobitmap, 0, &machine->screen[0].visarea); - /* allocate dirty buffer for the background characters */ - bgdirty = auto_malloc(jedi_backgroundram_size); - memset(bgdirty, 1, jedi_backgroundram_size); - /* the background area is 256x256, doubled by the hardware*/ bgbitmap = auto_bitmap_alloc(256, 256, machine->screen[0].format); @@ -69,7 +52,6 @@ VIDEO_START( jedi ) state_save_register_global(jedi_alpha_bank); state_save_register_global(video_off); state_save_register_global(smooth_table); - state_save_register_func_postload(jedi_postload); } @@ -121,23 +103,6 @@ WRITE8_HANDLER( jedi_paletteram_w ) -/************************************* - * - * Background access - * - *************************************/ - -WRITE8_HANDLER( jedi_backgroundram_w ) -{ - if (jedi_backgroundram[offset] != data) - { - bgdirty[offset] = 1; - jedi_backgroundram[offset] = data; - } -} - - - /************************************* * * Foreground banking @@ -146,11 +111,7 @@ WRITE8_HANDLER( jedi_backgroundram_w ) WRITE8_HANDLER( jedi_alpha_banksel_w ) { - if (jedi_alpha_bank != 2 * (data & 0x80)) - { - jedi_alpha_bank = 2 * (data & 0x80); - memset(fgdirty, 1, videoram_size); - } + jedi_alpha_bank = 2 * (data & 0x80); } @@ -189,7 +150,6 @@ WRITE8_HANDLER( jedi_video_off_w ) WRITE8_HANDLER( jedi_PIXIRAM_w ) { smooth_table = data & 0x03; - memset(bgdirty, 1, jedi_backgroundram_size); } @@ -200,12 +160,12 @@ WRITE8_HANDLER( jedi_PIXIRAM_w ) * *************************************/ -static void update_smoothing(int bgtilerow, int first, int last) +static void update_smoothing(int bgtilerow) { UINT8 *prom = memory_region(REGION_PROMS) + smooth_table * 0x100; UINT8 bgscan[2][256]; UINT8 *bgcurr = bgscan[0], *bglast = bgscan[1]; - int xstart, xstop, x, y; + int x, y; /* smoothing notes: @@ -218,10 +178,6 @@ static void update_smoothing(int bgtilerow, int first, int last) * therefore, if we modify source pixels 8-15, we must update dest pixels 15-31 */ - /* compute x start/stop in destination coordinates */ - xstart = first * 16 - 1; - xstop = last * 16 + 15; - /* extract the previous bg scanline */ extract_scanline8(bgbitmap, 0, ((bgtilerow * 16 - 1) & 0x1ff) / 2, 256, bgcurr); @@ -239,7 +195,7 @@ static void update_smoothing(int bgtilerow, int first, int last) extract_scanline8(bgbitmap, 0, curry / 2, 256, bgcurr); /* loop over columns */ - for (x = xstart; x <= xstop; x++) + for (x = -1; x <= 511; x++) { int tr = bglast[((x + 1) & 0x1ff) / 2]; int br = bgcurr[((x + 1) & 0x1ff) / 2]; @@ -269,7 +225,6 @@ static void update_smoothing(int bgtilerow, int first, int last) VIDEO_UPDATE( jedi ) { - int bgexdirty[32][2]; int offs; @@ -289,50 +244,34 @@ VIDEO_UPDATE( jedi ) /* update foreground bitmap as a raw bitmap*/ for (offs = videoram_size - 1; offs >= 0; offs--) - if (fgdirty[offs]) - { - int sx = offs % 64; - int sy = offs / 64; + { + int sx = offs % 64; + int sy = offs / 64; - fgdirty[offs] = 0; - - drawgfx(fgbitmap, machine->gfx[0], videoram[offs] + jedi_alpha_bank, - 0, 0, 0, 8*sx, 8*sy, &machine->screen[0].visarea, TRANSPARENCY_NONE_RAW, 0); - } - - /* reset the expanded dirty array */ - for (offs = 0; offs < 32; offs++) - bgexdirty[offs][0] = bgexdirty[offs][1] = -1; + drawgfx(fgbitmap, machine->gfx[0], videoram[offs] + jedi_alpha_bank, + 0, 0, 0, 8*sx, 8*sy, &machine->screen[0].visarea, TRANSPARENCY_NONE_RAW, 0); + } /* update background bitmap as a raw bitmap */ for (offs = jedi_backgroundram_size / 2 - 1; offs >= 0; offs--) - if (bgdirty[offs] || bgdirty[offs + 0x400]) - { - int sx = offs % 32; - int sy = offs / 32; - int code = (jedi_backgroundram[offs] & 0xFF); - int bank = (jedi_backgroundram[offs + 0x400] & 0x0F); + { + int sx = offs % 32; + int sy = offs / 32; + int code = (jedi_backgroundram[offs] & 0xFF); + int bank = (jedi_backgroundram[offs + 0x400] & 0x0F); - /* shuffle the bank bits in */ - code |= (bank & 0x01) << 8; - code |= (bank & 0x08) << 6; - code |= (bank & 0x02) << 9; + /* shuffle the bank bits in */ + code |= (bank & 0x01) << 8; + code |= (bank & 0x08) << 6; + code |= (bank & 0x02) << 9; - bgdirty[offs] = bgdirty[offs + 0x400] = 0; - - /* update expanded dirty status (assumes we go right-to-left) */ - if (bgexdirty[sy][1] == -1) - bgexdirty[sy][1] = sx; - bgexdirty[sy][0] = sx; - - drawgfx(bgbitmap, machine->gfx[1], code, - 0, bank & 0x04, 0, 8*sx, 8*sy, 0, TRANSPARENCY_NONE_RAW, 0); - } + drawgfx(bgbitmap, machine->gfx[1], code, + 0, bank & 0x04, 0, 8*sx, 8*sy, 0, TRANSPARENCY_NONE_RAW, 0); + } /* update smoothed version of background */ for (offs = 0; offs < 32; offs++) - if (bgexdirty[offs][1] != -1) - update_smoothing(offs, bgexdirty[offs][0], bgexdirty[offs][1]); + update_smoothing(offs); /* draw the motion objects */ for (offs = 0; offs < 0x30; offs++) diff --git a/src/mame/video/matmania.c b/src/mame/video/matmania.c index c39680567ae..305445cac5b 100644 --- a/src/mame/video/matmania.c +++ b/src/mame/video/matmania.c @@ -22,7 +22,6 @@ UINT8 *matmania_videoram3,*matmania_colorram3; size_t matmania_videoram3_size; UINT8 *matmania_scroll; static mame_bitmap *tmpbitmap2; -static UINT8 *dirtybuffer2; UINT8 *matmania_pageselect; @@ -125,12 +124,6 @@ WRITE8_HANDLER( matmania_paletteram_w ) ***************************************************************************/ VIDEO_START( matmania ) { - dirtybuffer = auto_malloc(videoram_size); - memset(dirtybuffer,1,videoram_size); - - dirtybuffer2 = auto_malloc(matmania_videoram3_size); - memset(dirtybuffer2,1,matmania_videoram3_size); - /* Mat Mania has a virtual screen twice as large as the visible screen */ tmpbitmap = auto_bitmap_alloc(machine->screen[0].width,2* machine->screen[0].height,machine->screen[0].format); @@ -140,29 +133,6 @@ VIDEO_START( matmania ) -WRITE8_HANDLER( matmania_videoram3_w ) -{ - if (matmania_videoram3[offset] != data) - { - dirtybuffer2[offset] = 1; - - matmania_videoram3[offset] = data; - } -} - - - -WRITE8_HANDLER( matmania_colorram3_w ) -{ - if (matmania_colorram3[offset] != data) - { - dirtybuffer2[offset] = 1; - - matmania_colorram3[offset] = data; - } -} - - VIDEO_UPDATE( matmania ) { int offs; @@ -171,45 +141,35 @@ VIDEO_UPDATE( matmania ) /* Update the tiles in the left tile ram bank */ for (offs = videoram_size - 1;offs >= 0;offs--) { - if (dirtybuffer[offs]) - { - int sx,sy; + int sx,sy; - dirtybuffer[offs] = 0; + sx = 15 - offs / 32; + sy = offs % 32; - sx = 15 - offs / 32; - sy = offs % 32; - - drawgfx(tmpbitmap,machine->gfx[1], - videoram[offs] + ((colorram[offs] & 0x08) << 5), - (colorram[offs] & 0x30) >> 4, - 0,sy >= 16, /* flip horizontally tiles on the right half of the bitmap */ - 16*sx,16*sy, - 0,TRANSPARENCY_NONE,0); - } + drawgfx(tmpbitmap,machine->gfx[1], + videoram[offs] + ((colorram[offs] & 0x08) << 5), + (colorram[offs] & 0x30) >> 4, + 0,sy >= 16, /* flip horizontally tiles on the right half of the bitmap */ + 16*sx,16*sy, + 0,TRANSPARENCY_NONE,0); } /* Update the tiles in the right tile ram bank */ for (offs = matmania_videoram3_size - 1;offs >= 0;offs--) { - if (dirtybuffer2[offs]) - { int sx,sy; - dirtybuffer2[offs] = 0; + sx = 15 - offs / 32; + sy = offs % 32; - sx = 15 - offs / 32; - sy = offs % 32; - - drawgfx(tmpbitmap2,machine->gfx[1], - matmania_videoram3[offs] + ((matmania_colorram3[offs] & 0x08) << 5), - (matmania_colorram3[offs] & 0x30) >> 4, - 0,sy >= 16, /* flip horizontally tiles on the right half of the bitmap */ - 16*sx,16*sy, - 0,TRANSPARENCY_NONE,0); - } + drawgfx(tmpbitmap2,machine->gfx[1], + matmania_videoram3[offs] + ((matmania_colorram3[offs] & 0x08) << 5), + (matmania_colorram3[offs] & 0x30) >> 4, + 0,sy >= 16, /* flip horizontally tiles on the right half of the bitmap */ + 16*sx,16*sy, + 0,TRANSPARENCY_NONE,0); } @@ -268,45 +228,35 @@ VIDEO_UPDATE( maniach ) /* Update the tiles in the left tile ram bank */ for (offs = videoram_size - 1;offs >= 0;offs--) { - if (dirtybuffer[offs]) - { - int sx,sy; + int sx,sy; - dirtybuffer[offs] = 0; + sx = 15 - offs / 32; + sy = offs % 32; - sx = 15 - offs / 32; - sy = offs % 32; - - drawgfx(tmpbitmap,machine->gfx[1], - videoram[offs] + ((colorram[offs] & 0x03) << 8), - (colorram[offs] & 0x30) >> 4, - 0,sy >= 16, /* flip horizontally tiles on the right half of the bitmap */ - 16*sx,16*sy, - 0,TRANSPARENCY_NONE,0); - } + drawgfx(tmpbitmap,machine->gfx[1], + videoram[offs] + ((colorram[offs] & 0x03) << 8), + (colorram[offs] & 0x30) >> 4, + 0,sy >= 16, /* flip horizontally tiles on the right half of the bitmap */ + 16*sx,16*sy, + 0,TRANSPARENCY_NONE,0); } /* Update the tiles in the right tile ram bank */ for (offs = matmania_videoram3_size - 1;offs >= 0;offs--) { - if (dirtybuffer2[offs]) - { - int sx,sy; + int sx,sy; - dirtybuffer2[offs] = 0; + sx = 15 - offs / 32; + sy = offs % 32; - sx = 15 - offs / 32; - sy = offs % 32; - - drawgfx(tmpbitmap2,machine->gfx[1], - matmania_videoram3[offs] + ((matmania_colorram3[offs] & 0x03) << 8), - (matmania_colorram3[offs] & 0x30) >> 4, - 0,sy >= 16, /* flip horizontally tiles on the right half of the bitmap */ - 16*sx,16*sy, - 0,TRANSPARENCY_NONE,0); - } + drawgfx(tmpbitmap2,machine->gfx[1], + matmania_videoram3[offs] + ((matmania_colorram3[offs] & 0x03) << 8), + (matmania_colorram3[offs] & 0x30) >> 4, + 0,sy >= 16, /* flip horizontally tiles on the right half of the bitmap */ + 16*sx,16*sy, + 0,TRANSPARENCY_NONE,0); } diff --git a/src/mame/video/megazone.c b/src/mame/video/megazone.c index f85a7b5a5c6..b416bb5cefa 100644 --- a/src/mame/video/megazone.c +++ b/src/mame/video/megazone.c @@ -85,21 +85,11 @@ PALETTE_INIT( megazone ) WRITE8_HANDLER( megazone_flipscreen_w ) { - if (flipscreen != (data & 1)) - { - flipscreen = data & 1; - memset(dirtybuffer,1,videoram_size); - } + flipscreen = data & 1; } VIDEO_START( megazone ) { - dirtybuffer = 0; - tmpbitmap = 0; - - dirtybuffer = auto_malloc(videoram_size); - memset(dirtybuffer,1,videoram_size); - tmpbitmap = auto_bitmap_alloc(256,256,machine->screen[0].format); } @@ -109,35 +99,29 @@ VIDEO_UPDATE( megazone ) int offs; int x,y; - /* for every character in the Video RAM, check if it has been modified */ - /* since last time and update it accordingly. */ + /* for every character in the Video RAM */ for (offs = videoram_size - 1;offs >= 0;offs--) { - if (dirtybuffer[offs]) + int sx,sy,flipx,flipy; + + sx = offs % 32; + sy = offs / 32; + flipx = colorram[offs] & (1<<6); + flipy = colorram[offs] & (1<<5); + if (flipscreen) { - int sx,sy,flipx,flipy; - - dirtybuffer[offs] = 0; - - sx = offs % 32; - sy = offs / 32; - flipx = colorram[offs] & (1<<6); - flipy = colorram[offs] & (1<<5); - if (flipscreen) - { - sx = 31 - sx; - sy = 31 - sy; - flipx = !flipx; - flipy = !flipy; - } - - drawgfx(tmpbitmap,machine->gfx[0], - ((int)videoram[offs]) + ((colorram[offs] & (1<<7) ? 256 : 0) ), - (colorram[offs] & 0x0f) + 0x10, - flipx,flipy, - 8*sx,8*sy, - 0,TRANSPARENCY_NONE,0); + sx = 31 - sx; + sy = 31 - sy; + flipx = !flipx; + flipy = !flipy; } + + drawgfx(tmpbitmap,machine->gfx[0], + ((int)videoram[offs]) + ((colorram[offs] & (1<<7) ? 256 : 0) ), + (colorram[offs] & 0x0f) + 0x10, + flipx,flipy, + 8*sx,8*sy, + 0,TRANSPARENCY_NONE,0); } /* copy the temporary bitmap to the screen */ diff --git a/src/mame/video/mouser.c b/src/mame/video/mouser.c index c45ccec98e8..85a03da0be9 100644 --- a/src/mame/video/mouser.c +++ b/src/mame/video/mouser.c @@ -53,76 +53,47 @@ WRITE8_HANDLER( mouser_flip_screen_y_w ) flip_screen_y_set(~data & 1); } -WRITE8_HANDLER( mouser_spriteram_w ) -{ - /* Mark the entire row as dirty if row scrollram is written */ - /* Only used by the MOUSER logo */ - - int i; - - if (offset < 32) - { - for(i=0;i<32;i++) - dirtybuffer[offset+i*32] = 1; - } - spriteram_w(offset, data); -} - -WRITE8_HANDLER( mouser_colorram_w ) -{ - dirtybuffer[offset] = 1; - colorram_w(offset, data); -} - VIDEO_UPDATE( mouser ) { int offs; int sx,sy; int flipx,flipy; - /* for every character in the Video RAM, check if it has been modified */ - /* since last time and update it accordingly. */ + /* for every character in the Video RAM */ for (offs = videoram_size - 1;offs >= 0;offs--) { int scrolled_y_position; int color_offs; - if (dirtybuffer[offs]) + sx = offs % 32; + sy = offs / 32; + + if (flip_screen_x) { - dirtybuffer[offs] = 0; - - sx = offs % 32; - sy = offs / 32; - - if (flip_screen_x) - { - sx = 31 - sx; - } - - if (flip_screen_y) - { - sy = 31 - sy; - } - - /* This bit of spriteram appears to be for row scrolling */ - /* Note: this is dependant on flipping in y */ - scrolled_y_position = (256 + 8*sy - spriteram[offs%32])%256; - /* I think we still need to fetch the colorram bits to from the ram underneath, which is not scrolled */ - /* Ideally we would merge these on a pixel-by-pixel basis, but it's ok to do this char-by-char, */ - /* Since it's only for the MOUSER logo and it looks fine */ - /* Note: this is _not_ dependant on flipping */ - color_offs = offs%32 + ((256 + 8*(offs/32) - spriteram[offs%32])%256)/8*32; - - drawgfx(tmpbitmap,machine->gfx[0], - videoram[offs] | (colorram[color_offs]>>5)*256 | ((colorram[color_offs]>>4)&1)*512, - colorram[color_offs]%16, - flip_screen_x,flip_screen_y, - 8*sx,scrolled_y_position, - 0,TRANSPARENCY_NONE,0); + sx = 31 - sx; } - } - copyscrollbitmap(bitmap,tmpbitmap,0,0,0,0,&machine->screen[0].visarea,TRANSPARENCY_NONE,0); + if (flip_screen_y) + { + sy = 31 - sy; + } + + /* This bit of spriteram appears to be for row scrolling */ + /* Note: this is dependant on flipping in y */ + scrolled_y_position = (256 + 8*sy - spriteram[offs%32])%256; + /* I think we still need to fetch the colorram bits to from the ram underneath, which is not scrolled */ + /* Ideally we would merge these on a pixel-by-pixel basis, but it's ok to do this char-by-char, */ + /* Since it's only for the MOUSER logo and it looks fine */ + /* Note: this is _not_ dependant on flipping */ + color_offs = offs%32 + ((256 + 8*(offs/32) - spriteram[offs%32])%256)/8*32; + + drawgfx(bitmap,machine->gfx[0], + videoram[offs] | (colorram[color_offs]>>5)*256 | ((colorram[color_offs]>>4)&1)*512, + colorram[color_offs]%16, + flip_screen_x,flip_screen_y, + 8*sx,scrolled_y_position, + cliprect,TRANSPARENCY_NONE,0); + } /* There seem to be two sets of sprites, each decoded identically */ @@ -153,7 +124,7 @@ VIDEO_UPDATE( mouser ) spriteram[offs+1]%16, flipx,flipy, sx,sy, - &machine->screen[0].visarea,TRANSPARENCY_PEN,0); + cliprect,TRANSPARENCY_PEN,0); } /* This is the second set of 8 sprites */ @@ -183,7 +154,7 @@ VIDEO_UPDATE( mouser ) spriteram[offs+1]%16, flipx,flipy, sx,sy, - &machine->screen[0].visarea,TRANSPARENCY_PEN,0); + cliprect,TRANSPARENCY_PEN,0); } return 0; diff --git a/src/mame/video/munchmo.c b/src/mame/video/munchmo.c index c95bf5bd3f2..696a0a5ee03 100644 --- a/src/mame/video/munchmo.c +++ b/src/mame/video/munchmo.c @@ -39,20 +39,12 @@ PALETTE_INIT( mnchmobl ) WRITE8_HANDLER( mnchmobl_palette_bank_w ) { - if( mnchmobl_palette_bank!=(data&0x3) ) - { - memset( dirtybuffer, 1, 0x100 ); - mnchmobl_palette_bank = data&0x3; - } + mnchmobl_palette_bank = data&0x3; } WRITE8_HANDLER( mnchmobl_flipscreen_w ) { - if( flipscreen!=data ) - { - memset( dirtybuffer, 1, 0x100 ); - flipscreen = data; - } + flipscreen = data; } @@ -67,26 +59,9 @@ WRITE8_HANDLER( mnchmobl_sprite_tile_w ){ mnchmobl_sprite_tile[offset] = data; } VIDEO_START( mnchmobl ) { - dirtybuffer = auto_malloc(0x100); - memset( dirtybuffer, 1, 0x100 ); tmpbitmap = auto_bitmap_alloc(512,512,machine->screen[0].format); } -READ8_HANDLER( mnchmobl_videoram_r ) -{ - return videoram[offset]; -} - -WRITE8_HANDLER( mnchmobl_videoram_w ) -{ - offset = offset&0xff; /* mirror the two banks? */ - if( videoram[offset]!=data ) - { - videoram[offset] = data; - dirtybuffer[offset] = 1; - } -} - static void draw_status(running_machine *machine, mame_bitmap *bitmap, const rectangle *cliprect) { const gfx_element *gfx = machine->gfx[0]; @@ -126,24 +101,21 @@ static void draw_background(running_machine *machine, mame_bitmap *bitmap, const for( offs=0; offs<0x100; offs++ ) { - if( dirtybuffer[offs] ) + int sy = (offs%16)*32; + int sx = (offs/16)*32; + int tile_number = videoram[offs]; + int row,col; + + for( row=0; row<4; row++ ) { - int sy = (offs%16)*32; - int sx = (offs/16)*32; - int tile_number = videoram[offs]; - int row,col; - dirtybuffer[offs] = 0; - for( row=0; row<4; row++ ) + for( col=0; col<4; col++ ) { - for( col=0; col<4; col++ ) - { - drawgfx( tmpbitmap,gfx, - rom[col+tile_number*4+row*0x400], - mnchmobl_palette_bank, - 0,0, /* flip */ - sx+col*8, sy+row*8, - 0, TRANSPARENCY_NONE, 0 ); - } + drawgfx( tmpbitmap,gfx, + rom[col+tile_number*4+row*0x400], + mnchmobl_palette_bank, + 0,0, /* flip */ + sx+col*8, sy+row*8, + 0, TRANSPARENCY_NONE, 0 ); } } } diff --git a/src/mame/video/naughtyb.c b/src/mame/video/naughtyb.c index d2cb7c1f86d..a963faeef12 100644 --- a/src/mame/video/naughtyb.c +++ b/src/mame/video/naughtyb.c @@ -12,8 +12,6 @@ UINT8 *naughtyb_videoram2; -static int videoreg; - /* use these to draw charset B */ UINT8 *naughtyb_scrollreg; @@ -150,48 +148,26 @@ PALETTE_INIT( naughtyb ) ***************************************************************************/ VIDEO_START( naughtyb ) { - videoreg = palreg = bankreg = 0; + palreg = bankreg = 0; /* Naughty Boy has a virtual screen twice as large as the visible screen */ - dirtybuffer = auto_malloc(videoram_size); - memset(dirtybuffer, 1, videoram_size); - tmpbitmap = auto_bitmap_alloc(68*8,28*8,machine->screen[0].format); } -WRITE8_HANDLER( naughtyb_videoram2_w ) -{ - if (naughtyb_videoram2[offset] != data) - { - dirtybuffer[offset] = 1; - - naughtyb_videoram2[offset] = data; - } -} - - - WRITE8_HANDLER( naughtyb_videoreg_w ) { // bits 4+5 control the sound circuit pleiads_sound_control_c_w(offset,data); - if ((videoreg & 0x0f) != (data & 0x0f)) - { - videoreg = data; - - naughtyb_cocktail = - ( ( input_port_2_r(0) & 0x80 ) && // cabinet == cocktail - ( data & 0x01 ) ); // handling player 2 - palreg = (data >> 1) & 0x03; // pallette sel is bit 1 & 2 - bankreg = (data >> 2) & 0x01; // banksel is just bit 2 - - memset (dirtybuffer, 1, videoram_size); - } + naughtyb_cocktail = + ( ( input_port_2_r(0) & 0x80 ) && // cabinet == cocktail + ( data & 0x01 ) ); // handling player 2 + palreg = (data >> 1) & 0x03; // pallette sel is bit 1 & 2 + bankreg = (data >> 2) & 0x01; // banksel is just bit 2 } WRITE8_HANDLER( popflame_videoreg_w ) @@ -200,18 +176,11 @@ WRITE8_HANDLER( popflame_videoreg_w ) pleiads_sound_control_c_w(offset,data); - if ((videoreg & 0x0f) != (data & 0x0f)) - { - videoreg = data; - - naughtyb_cocktail = - ( ( input_port_2_r(0) & 0x80 ) && // cabinet == cocktail - ( data & 0x01 ) ); // handling player 2 - palreg = (data >> 1) & 0x03; // pallette sel is bit 1 & 2 - bankreg = (data >> 3) & 0x01; // banksel is just bit 3 - - memset (dirtybuffer, 1, videoram_size); - } + naughtyb_cocktail = + ( ( input_port_2_r(0) & 0x80 ) && // cabinet == cocktail + ( data & 0x01 ) ); // handling player 2 + palreg = (data >> 1) & 0x03; // pallette sel is bit 1 & 2 + bankreg = (data >> 3) & 0x01; // banksel is just bit 3 } @@ -264,58 +233,52 @@ VIDEO_UPDATE( naughtyb ) { int offs; - // for every character in the Video RAM, check if it has been modified - // since last time and update it accordingly. + // for every character in the Video RAM for (offs = videoram_size - 1;offs >= 0;offs--) { - if (dirtybuffer[offs]) + int sx,sy; + + if ( naughtyb_cocktail ) { - int sx,sy; - - dirtybuffer[offs] = 0; - - if ( naughtyb_cocktail ) + if (offs < 0x700) { - if (offs < 0x700) - { - sx = 63 - offs % 64; - sy = 27 - offs / 64; - } - else - { - sx = 64 + ( 3 - (offs - 0x700) % 4 ); - sy = 27 - (offs - 0x700) / 4; - } + sx = 63 - offs % 64; + sy = 27 - offs / 64; } else { - if (offs < 0x700) - { - sx = offs % 64; - sy = offs / 64; - } - else - { - sx = 64 + (offs - 0x700) % 4; - sy = (offs - 0x700) / 4; - } + sx = 64 + ( 3 - (offs - 0x700) % 4 ); + sy = 27 - (offs - 0x700) / 4; } - - drawgfx(tmpbitmap,machine->gfx[0], - naughtyb_videoram2[offs] + 256 * bankreg, - (naughtyb_videoram2[offs] >> 5) + 8 * palreg, - naughtyb_cocktail,naughtyb_cocktail, - 8*sx,8*sy, - 0,TRANSPARENCY_NONE,0); - - drawgfx(tmpbitmap,machine->gfx[1], - videoram[offs] + 256*bankreg, - (videoram[offs] >> 5) + 8 * palreg, - naughtyb_cocktail,naughtyb_cocktail, - 8*sx,8*sy, - 0,TRANSPARENCY_PEN,0); } + else + { + if (offs < 0x700) + { + sx = offs % 64; + sy = offs / 64; + } + else + { + sx = 64 + (offs - 0x700) % 4; + sy = (offs - 0x700) / 4; + } + } + + drawgfx(tmpbitmap,machine->gfx[0], + naughtyb_videoram2[offs] + 256 * bankreg, + (naughtyb_videoram2[offs] >> 5) + 8 * palreg, + naughtyb_cocktail,naughtyb_cocktail, + 8*sx,8*sy, + 0,TRANSPARENCY_NONE,0); + + drawgfx(tmpbitmap,machine->gfx[1], + videoram[offs] + 256*bankreg, + (videoram[offs] >> 5) + 8 * palreg, + naughtyb_cocktail,naughtyb_cocktail, + 8*sx,8*sy, + 0,TRANSPARENCY_PEN,0); } // copy the temporary bitmap to the screen diff --git a/src/mame/video/pkunwar.c b/src/mame/video/pkunwar.c index 776e5732567..fae2a3ac3d6 100644 --- a/src/mame/video/pkunwar.c +++ b/src/mame/video/pkunwar.c @@ -14,16 +14,8 @@ static int flipscreen[2]; WRITE8_HANDLER( pkunwar_flipscreen_w ) { - if (flipscreen[0] != (data & 1)) - { - flipscreen[0] = data & 1; - memset(dirtybuffer,1,videoram_size); - } - if (flipscreen[1] != (data & 2)) - { - flipscreen[1] = data & 2; - memset(dirtybuffer,1,videoram_size); - } + flipscreen[0] = data & 1; + flipscreen[1] = data & 2; } @@ -33,34 +25,25 @@ VIDEO_UPDATE( pkunwar ) int offs; - /* for every character in the Video RAM, check if it has been modified */ - /* since last time and update it accordingly. */ + /* for every character in the Video RAM */ for (offs = videoram_size - 1;offs >= 0;offs--) { - if (dirtybuffer[offs]) - { - int sx,sy; + int sx,sy; - dirtybuffer[offs] = 0; + sx = offs % 32; + sy = offs / 32; + if (flipscreen[0]) sx = 31 - sx; + if (flipscreen[1]) sy = 31 - sy; - sx = offs % 32; - sy = offs / 32; - if (flipscreen[0]) sx = 31 - sx; - if (flipscreen[1]) sy = 31 - sy; - - drawgfx(tmpbitmap,machine->gfx[0], - videoram[offs] + ((colorram[offs] & 0x07) << 8), - (colorram[offs] & 0xf0) >> 4, - flipscreen[0],flipscreen[1], - 8*sx,8*sy, - &machine->screen[0].visarea,TRANSPARENCY_NONE,0); - } + drawgfx(bitmap,machine->gfx[0], + videoram[offs] + ((colorram[offs] & 0x07) << 8), + (colorram[offs] & 0xf0) >> 4, + flipscreen[0],flipscreen[1], + 8*sx,8*sy, + cliprect,TRANSPARENCY_NONE,0); } - /* copy the character mapped graphics */ - copybitmap(bitmap,tmpbitmap,0,0,0,0,&machine->screen[0].visarea,TRANSPARENCY_NONE,0); - /* Draw the sprites. */ for (offs = 0;offs < spriteram_size;offs += 32) diff --git a/src/mame/video/redalert.c b/src/mame/video/redalert.c index 90e47d7af5e..d7770f3c444 100644 --- a/src/mame/video/redalert.c +++ b/src/mame/video/redalert.c @@ -90,7 +90,6 @@ WRITE8_HANDLER( redalert_backram_w ) (redalert_backcolor[charnum] != backcolor)) { redalert_dirtyback[charnum] = 1; - dirtybuffer[charnum] = 1; redalert_backcolor[charnum] = backcolor; redalert_backram[offset] = data; @@ -166,114 +165,104 @@ VIDEO_UPDATE( redalert ) { int offs,i; - /* for every character in the Video RAM, check if it has been modified */ - /* since last time and update it accordingly. */ + /* for every character in the Video RAM */ for (offs = videoram_size - 1;offs >= 0;offs--) { int charcode; int stat_transparent; - + int sx,sy,color; charcode = videoram[offs]; - if (dirtybuffer[offs] || redalert_dirtycharacter[charcode] || redalert_dirtycharacter2[charcode]) + /* decode modified background */ + if (redalert_dirtyback[offs] == 1) { - int sx,sy,color; + decodechar(machine->gfx[0],offs,redalert_backram); + redalert_dirtyback[offs] = 2; + } + /* decode modified characters */ + if (redalert_dirtycharacter[charcode] == 1) + { + if (charcode < 0x80) + decodechar(machine->gfx[1],charcode,redalert_characterram); + else + decodechar(machine->gfx[2],charcode-0x80,redalert_spriteram1); + redalert_dirtycharacter[charcode] = 2; + } - /* decode modified background */ - if (redalert_dirtyback[offs] == 1) - { - decodechar(machine->gfx[0],offs,redalert_backram); - redalert_dirtyback[offs] = 2; - } + if (redalert_dirtycharacter2[charcode] == 1) + { + decodechar(machine->gfx[3],charcode-0x80,redalert_spriteram3); + redalert_dirtycharacter2[charcode] = 2; + } - /* decode modified characters */ - if (redalert_dirtycharacter[charcode] == 1) - { - if (charcode < 0x80) - decodechar(machine->gfx[1],charcode,redalert_characterram); - else - decodechar(machine->gfx[2],charcode-0x80,redalert_spriteram1); - redalert_dirtycharacter[charcode] = 2; - } + sx = 31 - offs / 32; + sy = offs % 32; - if (redalert_dirtycharacter2[charcode] == 1) - { - decodechar(machine->gfx[3],charcode-0x80,redalert_spriteram3); - redalert_dirtycharacter2[charcode] = 2; - } + stat_transparent = TRANSPARENCY_NONE; - dirtybuffer[offs] = 0; + /* First layer of color */ + if (charcode >= 0xC0) + { + stat_transparent = TRANSPARENCY_COLOR; - sx = 31 - offs / 32; - sy = offs % 32; + color = color_lookup[charcode]; - stat_transparent = TRANSPARENCY_NONE; - - /* First layer of color */ - if (charcode >= 0xC0) - { - stat_transparent = TRANSPARENCY_COLOR; - - color = color_lookup[charcode]; - - drawgfx(tmpbitmap,machine->gfx[2], - charcode-0x80, - color, - 0,0, - 8*sx,8*sy, - &machine->screen[0].visarea,TRANSPARENCY_NONE,0); - - if( redalert_dirtycharacter2[charcode] != 0 ) - drawgfx(tmpbitmap,machine->gfx[3], - charcode-0x80, - color, - 0,0, - 8*sx,8*sy, - &machine->screen[0].visarea,TRANSPARENCY_COLOR,0); - - } - - /* Second layer - background */ - color = redalert_backcolor[offs]; - drawgfx(tmpbitmap,machine->gfx[0], - offs, + drawgfx(tmpbitmap,machine->gfx[2], + charcode-0x80, color, 0,0, 8*sx,8*sy, - &machine->screen[0].visarea,stat_transparent,0); + &machine->screen[0].visarea,TRANSPARENCY_NONE,0); - /* Third layer - alphanumerics & sprites */ - if (charcode < 0x80) - { - color = color_lookup[charcode]; - drawgfx(tmpbitmap,machine->gfx[1], - charcode, - color, - 0,0, - 8*sx,8*sy, - &machine->screen[0].visarea,TRANSPARENCY_COLOR,0); - } - else if (charcode < 0xC0) - { - color = color_lookup[charcode]; - drawgfx(tmpbitmap,machine->gfx[2], + if( redalert_dirtycharacter2[charcode] != 0 ) + drawgfx(tmpbitmap,machine->gfx[3], charcode-0x80, color, 0,0, 8*sx,8*sy, &machine->screen[0].visarea,TRANSPARENCY_COLOR,0); - if( redalert_dirtycharacter2[charcode] != 0 ) - drawgfx(tmpbitmap,machine->gfx[3], - charcode-0x80, - color, - 0,0, - 8*sx,8*sy, - &machine->screen[0].visarea,TRANSPARENCY_COLOR,0); + } - } + /* Second layer - background */ + color = redalert_backcolor[offs]; + drawgfx(tmpbitmap,machine->gfx[0], + offs, + color, + 0,0, + 8*sx,8*sy, + &machine->screen[0].visarea,stat_transparent,0); + + /* Third layer - alphanumerics & sprites */ + if (charcode < 0x80) + { + color = color_lookup[charcode]; + drawgfx(tmpbitmap,machine->gfx[1], + charcode, + color, + 0,0, + 8*sx,8*sy, + &machine->screen[0].visarea,TRANSPARENCY_COLOR,0); + } + else if (charcode < 0xC0) + { + color = color_lookup[charcode]; + drawgfx(tmpbitmap,machine->gfx[2], + charcode-0x80, + color, + 0,0, + 8*sx,8*sy, + &machine->screen[0].visarea,TRANSPARENCY_COLOR,0); + + if( redalert_dirtycharacter2[charcode] != 0 ) + drawgfx(tmpbitmap,machine->gfx[3], + charcode-0x80, + color, + 0,0, + 8*sx,8*sy, + &machine->screen[0].visarea,TRANSPARENCY_COLOR,0); } } @@ -294,7 +283,7 @@ VIDEO_UPDATE( redalert ) } /* copy the character mapped graphics */ - copybitmap(bitmap,tmpbitmap,flip,flip,0,0,&machine->screen[0].visarea,TRANSPARENCY_NONE,0); + copybitmap(bitmap,tmpbitmap,flip,flip,0,0,cliprect,TRANSPARENCY_NONE,0); return 0; } diff --git a/src/mame/video/snk.c b/src/mame/video/snk.c index dcb909459a6..d2fce2723ac 100644 --- a/src/mame/video/snk.c +++ b/src/mame/video/snk.c @@ -67,11 +67,7 @@ VIDEO_START( snk ) { snk_blink_parity = 0; - dirtybuffer = auto_malloc( MAX_VRAM_SIZE ); - tmpbitmap = auto_bitmap_alloc( 512, 512, machine->screen[0].format ); - - memset( dirtybuffer, 0xff, MAX_VRAM_SIZE ); } /**************************************************************************************/ @@ -91,29 +87,23 @@ static void tnk3_draw_background(running_machine *machine, mame_bitmap *bitmap, tile_number = videoram[offs]; attributes = videoram[offs+1]; - if(tile_number != dirtybuffer[offs] || attributes != dirtybuffer[offs+1]) + if(bg_type == 0) { - dirtybuffer[offs] = tile_number; - dirtybuffer[offs+1] = attributes; - - if(bg_type == 0) - { - /* type tnk3 */ - tile_number |= (attributes & 0x30) << 4; - color = (attributes & 0xf) ^ 8; - } - else - { - /* type ikari */ - tile_number |= (attributes & 0x03) << 8; - color = attributes >> 4; - } - - sx = x * 512 / x_size; - sy = y * 512 / y_size; - - drawgfx(tmpbitmap,gfx,tile_number,color,0,0,sx,sy,0,TRANSPARENCY_NONE,0); + /* type tnk3 */ + tile_number |= (attributes & 0x30) << 4; + color = (attributes & 0xf) ^ 8; } + else + { + /* type ikari */ + tile_number |= (attributes & 0x03) << 8; + color = attributes >> 4; + } + + sx = x * 512 / x_size; + sy = y * 512 / y_size; + + drawgfx(tmpbitmap,gfx,tile_number,color,0,0,sx,sy,0,TRANSPARENCY_NONE,0); } copyscrollbitmap(bitmap,tmpbitmap,1,&scrollx,1,&scrolly,cliprect,TRANSPARENCY_NONE,0); } @@ -251,9 +241,7 @@ VIDEO_UPDATE( tnk3 ) VIDEO_START( sgladiat ) { - dirtybuffer = auto_malloc( MAX_VRAM_SIZE ); tmpbitmap = auto_bitmap_alloc( 512, 256, machine->screen[0].format ); - memset( dirtybuffer, 0xff, MAX_VRAM_SIZE ); } static void sgladiat_draw_background(running_machine *machine, mame_bitmap *bitmap, const rectangle *cliprect, int scrollx, int scrolly ) @@ -268,16 +256,11 @@ static void sgladiat_draw_background(running_machine *machine, mame_bitmap *bitm offs = (x<<5)+y; tile_number = videoram[offs]; - if(tile_number != dirtybuffer[offs]) - { - dirtybuffer[offs] = tile_number; + color = 0; + sx = x << 3; + sy = y << 3; - color = 0; - sx = x << 3; - sy = y << 3; - - drawgfx(tmpbitmap,gfx,tile_number,color,0,0,sx,sy,0,TRANSPARENCY_NONE,0); - } + drawgfx(tmpbitmap,gfx,tile_number,color,0,0,sx,sy,0,TRANSPARENCY_NONE,0); } copyscrollbitmap(bitmap,tmpbitmap,1,&scrollx,1,&scrolly,cliprect,TRANSPARENCY_NONE,0); } @@ -391,22 +374,17 @@ static void tdfever_draw_bg(running_machine *machine, mame_bitmap *bitmap, const tile_number = source[offs]; attributes = source[offs+1]; - if(tile_number != dirtybuffer[offs] || attributes != dirtybuffer[offs+1]) - { - dirtybuffer[offs] = tile_number; - dirtybuffer[offs+1] = attributes; - tile_number |= (attributes & 0xf) << 8; + tile_number |= (attributes & 0xf) << 8; - color = attributes >> 4; - sx = x << 4; - sy = y << 4; + color = attributes >> 4; + sx = x << 4; + sy = y << 4; - // intercept overflown tile indices - if(tile_number >= gfx->total_elements) - plot_box(tmpbitmap, sx, sy, gfx->width, gfx->height, get_black_pen(machine)); - else - drawgfx(tmpbitmap,gfx,tile_number,color,0,0,sx,sy,0,TRANSPARENCY_NONE,0); - } + // intercept overflown tile indices + if(tile_number >= gfx->total_elements) + plot_box(tmpbitmap, sx, sy, gfx->width, gfx->height, get_black_pen(machine)); + else + drawgfx(tmpbitmap,gfx,tile_number,color,0,0,sx,sy,0,TRANSPARENCY_NONE,0); } copyscrollbitmap(bitmap,tmpbitmap,1,&xscroll,1,&yscroll,cliprect,TRANSPARENCY_NONE,0); } diff --git a/src/mame/video/thief.c b/src/mame/video/thief.c index 248204f13bf..a52c733d74a 100644 --- a/src/mame/video/thief.c +++ b/src/mame/video/thief.c @@ -4,9 +4,6 @@ #include "driver.h" -static mame_bitmap *thief_page0; -static mame_bitmap *thief_page1; - static UINT8 thief_read_mask, thief_write_mask; static UINT8 thief_video_control; @@ -46,11 +43,6 @@ WRITE8_HANDLER( thief_context_bank_w ){ /***************************************************************************/ WRITE8_HANDLER( thief_video_control_w ){ - if( (data^thief_video_control)&1 ){ - /* screen flipped */ - memset( dirtybuffer, 0x00, 0x2000*2 ); - } - thief_video_control = data; /* bit 0: screen flip @@ -97,13 +89,8 @@ READ8_HANDLER( thief_videoram_r ){ WRITE8_HANDLER( thief_videoram_w ){ UINT8 *dest = &videoram[offset]; - if( thief_video_control&0x02 ){ + if( thief_video_control&0x02 ) dest+=0x2000*4; /* foreground/background */ - dirtybuffer[offset+0x2000] = 1; - } - else { - dirtybuffer[offset] = 1; - } if( thief_write_mask&0x1 ) dest[0x2000*0] = data; if( thief_write_mask&0x2 ) dest[0x2000*1] = data; if( thief_write_mask&0x4 ) dest[0x2000*2] = data; @@ -115,15 +102,9 @@ WRITE8_HANDLER( thief_videoram_w ){ VIDEO_START( thief ){ memset( &thief_coprocessor, 0x00, sizeof(thief_coprocessor) ); - thief_page0 = auto_bitmap_alloc( 256,256,machine->screen[0].format ); - thief_page1 = auto_bitmap_alloc( 256,256,machine->screen[0].format ); - videoram = auto_malloc( 0x2000*4*2 ); memset( videoram, 0, 0x2000*4*2 ); - dirtybuffer = auto_malloc( 0x2000*2 ); - memset( dirtybuffer, 1, 0x2000*2 ); - thief_coprocessor.image_ram = auto_malloc( 0x2000 ); thief_coprocessor.context_ram = auto_malloc( 0x400 ); } @@ -132,52 +113,40 @@ VIDEO_UPDATE( thief ){ UINT32 offs; int flipscreen = thief_video_control&1; const pen_t *pal_data = machine->pens; - UINT8 *dirty = dirtybuffer; const UINT8 *source = videoram; - mame_bitmap *page; - if( thief_video_control&4 ){ /* visible page */ - dirty += 0x2000; + if( thief_video_control&4 ) /* visible page */ source += 0x2000*4; - page = thief_page1; - } - else { - page = thief_page0; - } for( offs=0; offs<0x2000; offs++ ){ - if( dirty[offs] ){ - int ypos = offs/32; - int xpos = (offs%32)*8; - int plane0 = source[0x2000*0+offs]; - int plane1 = source[0x2000*1+offs]; - int plane2 = source[0x2000*2+offs]; - int plane3 = source[0x2000*3+offs]; - int bit; - if( flipscreen ){ - for( bit=0; bit<8; bit++ ){ - *BITMAP_ADDR16(page, 0xff - ypos, 0xff - (xpos+bit)) = - pal_data[ - (((plane0<>7) | - (((plane1<>6) | - (((plane2<>5) | - (((plane3<>4)]; - } + int ypos = offs/32; + int xpos = (offs%32)*8; + int plane0 = source[0x2000*0+offs]; + int plane1 = source[0x2000*1+offs]; + int plane2 = source[0x2000*2+offs]; + int plane3 = source[0x2000*3+offs]; + int bit; + if( flipscreen ){ + for( bit=0; bit<8; bit++ ){ + *BITMAP_ADDR16(bitmap, 0xff - ypos, 0xff - (xpos+bit)) = + pal_data[ + (((plane0<>7) | + (((plane1<>6) | + (((plane2<>5) | + (((plane3<>4)]; } - else { - for( bit=0; bit<8; bit++ ){ - *BITMAP_ADDR16(page, ypos, xpos+bit) = - pal_data[ - (((plane0<>7) | - (((plane1<>6) | - (((plane2<>5) | - (((plane3<>4)]; - } + } + else { + for( bit=0; bit<8; bit++ ){ + *BITMAP_ADDR16(bitmap, ypos, xpos+bit) = + pal_data[ + (((plane0<>7) | + (((plane1<>6) | + (((plane2<>5) | + (((plane3<>4)]; } - dirty[offs] = 0; } } - copybitmap(bitmap,page,0,0,0,0,&machine->screen[0].visarea,TRANSPARENCY_NONE,0); return 0; } diff --git a/src/mame/video/troangel.c b/src/mame/video/troangel.c index b47d2a1350d..d657c2bdbae 100644 --- a/src/mame/video/troangel.c +++ b/src/mame/video/troangel.c @@ -110,11 +110,7 @@ WRITE8_HANDLER( troangel_flipscreen_w ) /* screen flip is handled both by software and hardware */ data ^= ~readinputport(4) & 1; - if (flipscreen != (data & 1)) - { - flipscreen = data & 1; - memset(dirtybuffer,1,videoram_size); - } + flipscreen = data & 1; coin_counter_w(0,data & 0x02); coin_counter_w(1,data & 0x20); @@ -130,35 +126,30 @@ static void draw_background(running_machine *machine, mame_bitmap *bitmap, const for (offs = videoram_size - 2;offs >= 0;offs -= 2) { - if (dirtybuffer[offs] || dirtybuffer[offs+1]) + int sx,sy,code,attr,flipx,flipy; + + + sx = (offs/2) % 32; + sy = (offs/2) / 32; + + attr = videoram[offs+0]; + code = videoram[offs+1] | ((attr & 0xc0) << 2); + flipx = attr & 0x20; + flipy = (attr & 0x10) >> 4; + + if (flipscreen) { - int sx,sy,code,attr,flipx,flipy; - - - dirtybuffer[offs] = dirtybuffer[offs+1] = 0; - - sx = (offs/2) % 32; - sy = (offs/2) / 32; - - attr = videoram[offs+0]; - code = videoram[offs+1] | ((attr & 0xc0) << 2); - flipx = attr & 0x20; - flipy = (attr & 0x10) >> 4; - - if (flipscreen) - { - sx = 31 - sx; - sy = 31 - sy; - flipx = !flipx; - } - - drawgfx(tmpbitmap,gfx, - code, - attr & 0x0f, - flipx,flipy ^ flipscreen, - 8*sx,8*sy, - 0,TRANSPARENCY_NONE,0); + sx = 31 - sx; + sy = 31 - sy; + flipx = !flipx; } + + drawgfx(tmpbitmap,gfx, + code, + attr & 0x0f, + flipx,flipy ^ flipscreen, + 8*sx,8*sy, + 0,TRANSPARENCY_NONE,0); } { diff --git a/src/mame/video/tunhunt.c b/src/mame/video/tunhunt.c index 934451be5d1..a4ce3ca0ac1 100644 --- a/src/mame/video/tunhunt.c +++ b/src/mame/video/tunhunt.c @@ -55,15 +55,6 @@ WRITE8_HANDLER( tunhunt_videoram_w ) tilemap_mark_tile_dirty(fg_tilemap, offset); } -WRITE8_HANDLER( tunhunt_mott_w ) -{ - if( spriteram[offset]!=data ) - { - spriteram[offset] = data; - dirtybuffer[offset>>4] = 1; - } -} - static TILE_GET_INFO( get_fg_tile_info ) { int attr = videoram[tile_index]; @@ -81,9 +72,6 @@ VIDEO_START( tunhunt ) We keep track of dirty lines and cache the expanded bitmap. With max RLE expansion, bitmap size is 256x64. */ - dirtybuffer = auto_malloc(64); - - memset( dirtybuffer, 1, 64 ); tmpbitmap = auto_bitmap_alloc( 256, 64, machine->screen[0].format ); fg_tilemap = tilemap_create(get_fg_tile_info, tilemap_scan_cols, @@ -226,27 +214,19 @@ static void draw_motion_object(running_machine *machine, mame_bitmap *bitmap, co for( line=0; line<64; line++ ) { - if( dirtybuffer[line] ) + x = 0; + source = &spriteram[line*0x10]; + for( span=0; span<0x10; span++ ) { - dirtybuffer[line] = 0; - x = 0; - source = &spriteram[line*0x10]; - for( span=0; span<0x10; span++ ) - { - span_data = source[span]; - if( span_data == 0xff ) break; - color = ((span_data>>6)&0x3)^0x3; - count = (span_data&0x1f)+1; - while( count-- && x < 256 ) - { - *BITMAP_ADDR16(tmpbitmap, line, x++) = machine->pens[color]; - } - } - while( x<256 ) - { - *BITMAP_ADDR16(tmpbitmap, line, x++) = machine->pens[0]; - } - } /* dirty line */ + span_data = source[span]; + if( span_data == 0xff ) break; + color = ((span_data>>6)&0x3)^0x3; + count = (span_data&0x1f)+1; + while( count-- && x < 256 ) + *BITMAP_ADDR16(tmpbitmap, line, x++) = machine->pens[color]; + } + while( x<256 ) + *BITMAP_ADDR16(tmpbitmap, line, x++) = machine->pens[0]; } /* next line */ switch( tunhunt_ram[VSTRLO] ) diff --git a/src/mame/video/vigilant.c b/src/mame/video/vigilant.c index 3d4d76064d6..4088bf47fac 100644 --- a/src/mame/video/vigilant.c +++ b/src/mame/video/vigilant.c @@ -40,8 +40,6 @@ static mame_bitmap *bg_bitmap; VIDEO_START( vigilant ) { - video_start_generic(machine); - bg_bitmap = auto_bitmap_alloc(512*4,256,machine->screen[0].format); } @@ -322,21 +320,14 @@ VIDEO_UPDATE( kikcubic ) int color = (attributes & 0xF0) >> 4; int tile_number = videoram[offs] | ((attributes & 0x0F) << 8); - if (dirtybuffer[offs] || dirtybuffer[offs+1]) - { - dirtybuffer[offs] = dirtybuffer[offs+1] = 0; - - drawgfx(tmpbitmap,machine->gfx[0], - tile_number, - color, - 0,0, - sx,sy, - 0,TRANSPARENCY_NONE,0); - } + drawgfx(bitmap,machine->gfx[0], + tile_number, + color, + 0,0, + sx,sy, + cliprect,TRANSPARENCY_NONE,0); } - copybitmap(bitmap,tmpbitmap,0,0,0,0,cliprect,TRANSPARENCY_NONE,0); - draw_sprites(machine,bitmap,cliprect); return 0; } diff --git a/src/mame/video/wiping.c b/src/mame/video/wiping.c index 125b1f8e697..7ab46bc7100 100644 --- a/src/mame/video/wiping.c +++ b/src/mame/video/wiping.c @@ -64,11 +64,7 @@ PALETTE_INIT( wiping ) WRITE8_HANDLER( wiping_flipscreen_w ) { - if (flipscreen != (data & 1)) - { - flipscreen = (data & 1); - memset(dirtybuffer,1,videoram_size); - } + flipscreen = (data & 1); } @@ -78,46 +74,40 @@ VIDEO_UPDATE( wiping ) for (offs = videoram_size - 1; offs > 0; offs--) { - if (dirtybuffer[offs]) + int mx,my,sx,sy; + + mx = offs % 32; + my = offs / 32; + + if (my < 2) { - int mx,my,sx,sy; + sx = my + 34; + sy = mx - 2; + } + else if (my >= 30) + { + sx = my - 30; + sy = mx - 2; + } + else + { + sx = mx + 2; + sy = my - 2; + } - dirtybuffer[offs] = 0; + if (flipscreen) + { + sx = 35 - sx; + sy = 27 - sy; + } - mx = offs % 32; - my = offs / 32; - - if (my < 2) - { - sx = my + 34; - sy = mx - 2; - } - else if (my >= 30) - { - sx = my - 30; - sy = mx - 2; - } - else - { - sx = mx + 2; - sy = my - 2; - } - - if (flipscreen) - { - sx = 35 - sx; - sy = 27 - sy; - } - - drawgfx(tmpbitmap,machine->gfx[0], - videoram[offs], - colorram[offs] & 0x3f, - flipscreen,flipscreen, - sx*8,sy*8, - &machine->screen[0].visarea,TRANSPARENCY_NONE,0); - } + drawgfx(bitmap,machine->gfx[0], + videoram[offs], + colorram[offs] & 0x3f, + flipscreen,flipscreen, + sx*8,sy*8, + cliprect,TRANSPARENCY_NONE,0); } - copybitmap(bitmap,tmpbitmap,0,0,0,0,&machine->screen[0].visarea,TRANSPARENCY_NONE,0); /* Note, we're counting up on purpose ! */ /* This way the vacuum cleaner is always on top */ diff --git a/src/mame/video/wiz.c b/src/mame/video/wiz.c index 12ce15ce2a5..63b73be709a 100644 --- a/src/mame/video/wiz.c +++ b/src/mame/video/wiz.c @@ -91,31 +91,10 @@ PALETTE_INIT( wiz ) } } -WRITE8_HANDLER( wiz_attributes_w ) -{ - if ((offset & 1) && wiz_attributesram[offset] != data) - { - int i; - - - for (i = offset / 2;i < videoram_size;i += 32) - { - dirtybuffer[i] = 1; - } - } - - wiz_attributesram[offset] = data; -} - WRITE8_HANDLER( wiz_palettebank_w ) { - if (palbank[offset] != (data & 1)) - { - palbank[offset] = data & 1; - palette_bank = palbank[0] + 2 * palbank[1]; - - memset(dirtybuffer,1,videoram_size); - } + palbank[offset] = data & 1; + palette_bank = palbank[0] + 2 * palbank[1]; } WRITE8_HANDLER( wiz_bgcolor_w ) @@ -125,32 +104,18 @@ WRITE8_HANDLER( wiz_bgcolor_w ) WRITE8_HANDLER( wiz_char_bank_select_w ) { - if (char_bank[offset] != (data & 1)) - { - char_bank[offset] = data & 1; - memset(dirtybuffer,1,videoram_size); - } + char_bank[offset] = data & 1; } WRITE8_HANDLER( wiz_flipx_w ) { - if (flipx != data) - { - flipx = data; - - memset(dirtybuffer, 1, videoram_size); - } + flipx = data; } WRITE8_HANDLER( wiz_flipy_w ) { - if (flipy != data) - { - flipy = data; - - memset(dirtybuffer, 1, videoram_size); - } + flipy = data; } static void draw_background(running_machine *machine, mame_bitmap *bitmap, const rectangle *cliprect, int bank, int colortype) diff --git a/src/mame/video/xxmissio.c b/src/mame/video/xxmissio.c index 3ded80d1310..03fdb3ef760 100644 --- a/src/mame/video/xxmissio.c +++ b/src/mame/video/xxmissio.c @@ -14,7 +14,6 @@ UINT8 *xxmissio_fgram; static UINT8 xxmissio_xscroll,xxmissio_yscroll; static UINT8 flipscreen; -static UINT8 xxmissio_bg_redraw; WRITE8_HANDLER( xxmissio_scroll_x_w ) @@ -28,11 +27,7 @@ WRITE8_HANDLER( xxmissio_scroll_y_w ) WRITE8_HANDLER( xxmissio_flipscreen_w ) { - if ((data & 0x01) != flipscreen) - { - flipscreen = data & 0x01; - xxmissio_bg_redraw = 1; - } + flipscreen = data & 0x01; } WRITE8_HANDLER( xxmissio_videoram_w ) @@ -42,7 +37,6 @@ WRITE8_HANDLER( xxmissio_videoram_w ) offs |= x; videoram[offs] = data; - dirtybuffer[offs & 0x3ff] = 1; } READ8_HANDLER( xxmissio_videoram_r ) { @@ -56,9 +50,6 @@ READ8_HANDLER( xxmissio_videoram_r ) WRITE8_HANDLER( xxmissio_paletteram_w ) { paletteram_BBGGRRII_w(offset,data); - - if (offset >= 0x200) - xxmissio_bg_redraw = 1; } /****************************************************************************/ @@ -71,9 +62,6 @@ VIDEO_UPDATE( xxmissio ) int size = videoram_size/2; - if (xxmissio_bg_redraw==1) - memset(dirtybuffer,1,size); - /* draw BG layer */ for (y=0; y<32; y++) @@ -85,25 +73,20 @@ VIDEO_UPDATE( xxmissio ) if (flipscreen!=0) offs = (size-1)-offs; - if (dirtybuffer[offs] != 0) - { - dirtybuffer[offs]=0; + px = x*16; + py = y*8; - px = x*16; - py = y*8; + chr = videoram[ offs ] ; + col = videoram[ offs + size]; + chr = chr + ((col & 0xc0) << 2 ); + col = col & 0x0f; - chr = videoram[ offs ] ; - col = videoram[ offs + size]; - chr = chr + ((col & 0xc0) << 2 ); - col = col & 0x0f; - - drawgfx(tmpbitmap,machine->gfx[2], - chr, - col, - flipscreen,flipscreen, - px,py, - &machine->screen[0].visarea,TRANSPARENCY_NONE,0); - } + drawgfx(tmpbitmap,machine->gfx[2], + chr, + col, + flipscreen,flipscreen, + px,py, + &machine->screen[0].visarea,TRANSPARENCY_NONE,0); } } @@ -119,7 +102,6 @@ VIDEO_UPDATE( xxmissio ) } copyscrollbitmap(bitmap,tmpbitmap,1,&sx,1,&sy,&machine->screen[0].visarea,TRANSPARENCY_NONE,0); - xxmissio_bg_redraw = 0; /* draw sprites */