From dc01a6b148833527f5c16c2d69f881aa992e33a4 Mon Sep 17 00:00:00 2001 From: Zsolt Vasvari Date: Sun, 23 Mar 2008 02:41:49 +0000 Subject: [PATCH] - Converted crystal.c from RGB32 to INDEXED16 - Added PALETTE_INIT( RRRRR_GGGGGG_BBBBB ) --- src/emu/video/generic.c | 16 ++++++++++++++++ src/emu/video/generic.h | 1 + src/mame/drivers/crystal.c | 20 ++++++++++---------- 3 files changed, 27 insertions(+), 10 deletions(-) diff --git a/src/emu/video/generic.c b/src/emu/video/generic.c index d2eeb4e49da..ca282b844be 100644 --- a/src/emu/video/generic.c +++ b/src/emu/video/generic.c @@ -650,6 +650,22 @@ PALETTE_INIT( BBBBB_GGGGG_RRRRR ) +/*------------------------------------------------- + RRRRR_GGGGGG_BBBBB - + standard 5-6-5 palette for games using a + 16-bit color space +-------------------------------------------------*/ + +PALETTE_INIT( RRRRR_GGGGGG_BBBBB ) +{ + int i; + + for (i = 0; i < 0x10000; i++) + palette_set_color(machine, i, MAKE_RGB(pal5bit(i >> 11), pal6bit(i >> 5), pal5bit(i >> 0))); +} + + + /*************************************************************************** 3-3-2 RGB PALETTE WRITE HANDLERS ***************************************************************************/ diff --git a/src/emu/video/generic.h b/src/emu/video/generic.h index b2dbae26d63..829ef3ec465 100644 --- a/src/emu/video/generic.h +++ b/src/emu/video/generic.h @@ -135,6 +135,7 @@ PALETTE_INIT( black_and_white ); PALETTE_INIT( RRRR_GGGG_BBBB ); PALETTE_INIT( RRRRR_GGGGG_BBBBB ); PALETTE_INIT( BBBBB_GGGGG_RRRRR ); +PALETTE_INIT( RRRRR_GGGGGG_BBBBB ); diff --git a/src/mame/drivers/crystal.c b/src/mame/drivers/crystal.c index 52198bcda82..931255d23c6 100644 --- a/src/mame/drivers/crystal.c +++ b/src/mame/drivers/crystal.c @@ -637,7 +637,7 @@ static VIDEO_UPDATE(crystal) UINT16 *Front,*Back; UINT16 *Visible,*DrawDest; UINT16 *srcline; - int x,y; + int y; UINT16 head,tail; if(GetVidReg(0x8e)&1) @@ -681,11 +681,8 @@ static VIDEO_UPDATE(crystal) srcline=(UINT16 *) Visible; for(y=0;y<240;y++) - for(x=0;x<320;x++) - { - UINT16 color= srcline[y*512+x]; - *BITMAP_ADDR32(bitmap, y, x) = MAKE_RGB(pal5bit(color >> 11), pal6bit(color >> 5), pal5bit(color >> 0)); - } + memcpy(BITMAP_ADDR16(bitmap, y, 0), &srcline[y*512], 320*2); + return 0; } @@ -817,7 +814,7 @@ static MACHINE_DRIVER_START( crystal ) MDRV_SCREEN_ADD("main", RASTER) MDRV_SCREEN_REFRESH_RATE(60) MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) + MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) MDRV_SCREEN_SIZE(320, 240) MDRV_SCREEN_VISIBLE_AREA(0, 319, 0, 239) @@ -825,6 +822,9 @@ static MACHINE_DRIVER_START( crystal ) MDRV_VIDEO_UPDATE(crystal) MDRV_VIDEO_EOF(crystal) + MDRV_PALETTE_INIT(RRRRR_GGGGGG_BBBBB) + MDRV_PALETTE_LENGTH(65536) + MDRV_SPEAKER_STANDARD_STEREO("left", "right") MDRV_SOUND_ADD(VRENDER0, 0) @@ -904,6 +904,6 @@ static DRIVER_INIT(evosocc) Rom[WORD_XOR_LE(0x974ED2/2)]=0x9001; //PUSH R0 } -GAME( 2001, crysbios, 0, crystal, crystal, 0, ROT0, "Brezzasoft", "Crystal System BIOS", GAME_IS_BIOS_ROOT ) -GAME( 2001, crysking, crysbios, crystal, crystal, crysking, ROT0, "Brezzasoft", "The Crystal of Kings", 0 ) -GAME( 2001, evosocc, crysbios, crystal, crystal, evosocc, ROT0, "Evoga", "Evolution Soccer", 0 ) +GAME( 2001, crysbios, 0, crystal, crystal, 0, ROT0, "Brezzasoft", "Crystal System BIOS", GAME_IS_BIOS_ROOT ) +GAME( 2001, crysking, crysbios, crystal, crystal, crysking, ROT0, "Brezzasoft", "The Crystal of Kings", 0 ) +GAME( 2001, evosocc, crysbios, crystal, crystal, evosocc, ROT0, "Evoga", "Evolution Soccer", 0 )