From f4e0931b93f6f06b29d8e7667c02a3993ddd402d Mon Sep 17 00:00:00 2001 From: Angelo Salese Date: Tue, 14 Oct 2008 18:31:05 +0000 Subject: [PATCH] Fixed the colors of Yumefuda. Added two new palette functions in generic.c: paletteram_xRRRRRGGGGGBBBBB_split1_w() and paletteram_xRRRRRGGGGGBBBBB_split2_w() (used by Yumefuda) --- src/emu/video/generic.c | 12 ++++++++++++ src/emu/video/generic.h | 2 ++ src/mame/drivers/yumefuda.c | 15 ++++++--------- 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/src/emu/video/generic.c b/src/emu/video/generic.c index 5c89c0de3fb..0fd4d44f23e 100644 --- a/src/emu/video/generic.c +++ b/src/emu/video/generic.c @@ -918,6 +918,18 @@ WRITE8_HANDLER( paletteram_xRRRRRGGGGGBBBBB_le_w ) set_color_555(machine, offset / 2, 10, 5, 0, paletteram16_le(offset)); } +WRITE8_HANDLER( paletteram_xRRRRRGGGGGBBBBB_split1_w ) +{ + paletteram[offset] = data; + set_color_555(machine, offset, 10, 5, 0, paletteram16_split(offset)); +} + +WRITE8_HANDLER( paletteram_xRRRRRGGGGGBBBBB_split2_w ) +{ + paletteram_2[offset] = data; + set_color_555(machine, offset, 10, 5, 0, paletteram16_split(offset)); +} + WRITE16_HANDLER( paletteram16_xRRRRRGGGGGBBBBB_word_w ) { COMBINE_DATA(&paletteram16[offset]); diff --git a/src/emu/video/generic.h b/src/emu/video/generic.h index ac8eb25126b..30e6cdd5527 100644 --- a/src/emu/video/generic.h +++ b/src/emu/video/generic.h @@ -186,6 +186,8 @@ WRITE8_HANDLER( paletteram_xBBBBBRRRRRGGGGG_split1_w ); /* uses paletteram[] */ WRITE8_HANDLER( paletteram_xBBBBBRRRRRGGGGG_split2_w ); /* uses paletteram_2[] */ WRITE8_HANDLER( paletteram_xRRRRRGGGGGBBBBB_le_w ); +WRITE8_HANDLER( paletteram_xRRRRRGGGGGBBBBB_split1_w ); +WRITE8_HANDLER( paletteram_xRRRRRGGGGGBBBBB_split2_w ); WRITE16_HANDLER( paletteram16_xRRRRRGGGGGBBBBB_word_w ); WRITE16_HANDLER( paletteram16_xGGGGGRRRRRBBBBB_word_w ); diff --git a/src/mame/drivers/yumefuda.c b/src/mame/drivers/yumefuda.c index ac6e2442b68..bdd5d66562b 100644 --- a/src/mame/drivers/yumefuda.c +++ b/src/mame/drivers/yumefuda.c @@ -11,12 +11,9 @@ Notes: TODO: -Correct Bankswitch emulation.Obviously I'm not happy with the current implementation... - -Finish controls. - --Custom RAM emulation. - --Fix the colors. +-"Custom RAM" emulation might be a simple protection issue. +-Need a proper screenshot of the real thing for the colors but I think they are accurate. ============================================================================================ Code disassembling @@ -194,7 +191,6 @@ static WRITE8_HANDLER( mux_w ) mux_data = data & ~0xc0; } - /***************************************************************************************/ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) @@ -203,7 +199,8 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0xa7fc, 0xa7fc) AM_WRITE(prot_lock_w) AM_RANGE(0xa7ff, 0xa7ff) AM_WRITE(eeprom_w) AM_RANGE(0xaf80, 0xafff) AM_READWRITE(custom_ram_r, custom_ram_w) AM_BASE(&cus_ram) /*260d - 2626*/ - AM_RANGE(0xb000, 0xb0ff) AM_RAM_WRITE(paletteram_RRRGGGBB_w) AM_BASE(&paletteram) /*Wrong format*/ + AM_RANGE(0xb000, 0xb07f) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_split1_w) AM_BASE(&paletteram) /*Custom Format*/ + AM_RANGE(0xb080, 0xb0ff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_split2_w) AM_BASE(&paletteram_2) /*Custom Format*/ AM_RANGE(0xc000, 0xc3ff) AM_RAM_WRITE(yumefuda_vram_w) AM_BASE(&videoram) AM_RANGE(0xd000, 0xd3ff) AM_RAM_WRITE(yumefuda_cram_w) AM_BASE(&colorram) AM_RANGE(0xe000, 0xffff) AM_RAM @@ -246,7 +243,7 @@ static MACHINE_DRIVER_START( yumefuda ) MDRV_SCREEN_VISIBLE_AREA(0, 32*8-1, 0, 32*8-1) MDRV_GFXDECODE( yumefuda ) - MDRV_PALETTE_LENGTH(0x100) + MDRV_PALETTE_LENGTH(0x80) MDRV_VIDEO_START( yumefuda ) MDRV_VIDEO_UPDATE( yumefuda ) @@ -439,4 +436,4 @@ ROM_START( yumefuda ) ROM_LOAD("zg001003.u3", 0xc000, 0x4000, CRC(5822ff27) SHA1(d40fa0790de3c912f770ef8f610bd8c42bc3500f)) ROM_END -GAME( 198?, yumefuda, 0, yumefuda, yumefuda, 0, ROT0, "Alba", "(Medal) Yumefuda [BET]", GAME_NOT_WORKING | GAME_WRONG_COLORS ) +GAME( 198?, yumefuda, 0, yumefuda, yumefuda, 0, ROT0, "Alba", "(Medal) Yumefuda [BET]", GAME_NOT_WORKING )