mirror of
https://github.com/holub/mame
synced 2025-05-23 14:19:01 +03:00
Fixed colors in Cultures (Jibun wo Migaku Culture School Mahjong Hen) [Tomasz Slanina]
This commit is contained in:
parent
4db6733054
commit
5d67007d0b
@ -18,7 +18,7 @@ static UINT8 *bg0_videoram;
|
||||
static UINT8 *bg0_regs_x, *bg0_regs_y, *bg1_regs_x, *bg1_regs_y, *bg2_regs_x, *bg2_regs_y;
|
||||
static tilemap *bg0_tilemap, *bg1_tilemap, *bg2_tilemap;
|
||||
|
||||
static int video_enable = 0;
|
||||
static int video_bank = 0;
|
||||
static int irq_enable = 0;
|
||||
static int bg1_bank = 0, bg2_bank = 0;
|
||||
static int old_bank;
|
||||
@ -27,20 +27,20 @@ static TILE_GET_INFO( get_bg1_tile_info )
|
||||
{
|
||||
UINT8 *region = memory_region(machine, "gfx3") + 0x200000 + 0x80000 * bg1_bank;
|
||||
int code = region[tile_index*2] + (region[tile_index*2+1] << 8);
|
||||
SET_TILE_INFO(2, code, 0, 0);
|
||||
SET_TILE_INFO(2, code, code>>12, 0);
|
||||
}
|
||||
|
||||
static TILE_GET_INFO( get_bg2_tile_info )
|
||||
{
|
||||
UINT8 *region = memory_region(machine, "gfx2") + 0x200000 + 0x80000 * bg2_bank;
|
||||
int code = region[tile_index*2] + (region[tile_index*2+1] << 8);
|
||||
SET_TILE_INFO(1, code, 0, 0);
|
||||
SET_TILE_INFO(1, code, code>>12, 0);
|
||||
}
|
||||
|
||||
static TILE_GET_INFO( get_bg0_tile_info )
|
||||
{
|
||||
int code = bg0_videoram[tile_index*2] + (bg0_videoram[tile_index*2+1] << 8);
|
||||
SET_TILE_INFO(0, code, 0, 0);
|
||||
SET_TILE_INFO(0, code, code>>12, 0);
|
||||
}
|
||||
|
||||
static VIDEO_START( cultures )
|
||||
@ -86,14 +86,9 @@ static VIDEO_UPDATE( cultures )
|
||||
tilemap_set_scrolly(bg1_tilemap, 0, (bg1_regs_y[2] << 8) + bg1_regs_y[0]);
|
||||
tilemap_set_scrolly(bg2_tilemap, 0, (bg2_regs_y[2] << 8) + bg2_regs_y[0]);
|
||||
|
||||
if (video_enable)
|
||||
{
|
||||
tilemap_draw(bitmap, cliprect, bg2_tilemap, 0, 0);
|
||||
tilemap_draw(bitmap, cliprect, bg0_tilemap, 0, 0);
|
||||
tilemap_draw(bitmap, cliprect, bg1_tilemap, 0, 0);
|
||||
}
|
||||
else
|
||||
bitmap_fill(bitmap, cliprect, get_black_pen(screen->machine));
|
||||
tilemap_draw(bitmap, cliprect, bg2_tilemap, 0, 0);
|
||||
tilemap_draw(bitmap, cliprect, bg0_tilemap, 0, 0);
|
||||
tilemap_draw(bitmap, cliprect, bg1_tilemap, 0, 0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -101,13 +96,30 @@ static VIDEO_UPDATE( cultures )
|
||||
static WRITE8_HANDLER( cpu_bankswitch_w )
|
||||
{
|
||||
memory_set_bankptr(space->machine, 1, memory_region(space->machine, "maincpu") + 0x4000 * (data & 0xf));
|
||||
video_enable = ~data & 0x20;
|
||||
video_bank = ~data & 0x20;
|
||||
}
|
||||
|
||||
static WRITE8_HANDLER( bg0_videoram_w )
|
||||
{
|
||||
bg0_videoram[offset] = data;
|
||||
tilemap_mark_tile_dirty(bg0_tilemap, offset >> 1);
|
||||
|
||||
if(video_bank==0)
|
||||
{
|
||||
int r,g,b,datax;
|
||||
paletteram[offset] = data;
|
||||
offset>>=1;
|
||||
datax=paletteram[offset*2]+256*paletteram[offset*2+1];
|
||||
|
||||
r=((datax>>7)&0x1e)|((datax&0x4000)?0x1:0);
|
||||
g=((datax>>3)&0x1e)|((datax&0x2000)?0x1:0);
|
||||
b=((datax<<1)&0x1e)|((datax&0x1000)?0x1:0);
|
||||
|
||||
palette_set_color_rgb(space->machine, offset, pal5bit(r), pal5bit(g), pal5bit(b));
|
||||
}
|
||||
else
|
||||
{
|
||||
bg0_videoram[offset] = data;
|
||||
tilemap_mark_tile_dirty(bg0_tilemap, offset >> 1);
|
||||
}
|
||||
}
|
||||
|
||||
static WRITE8_HANDLER( misc_w )
|
||||
@ -140,7 +152,6 @@ static WRITE8_HANDLER( bg_bank_w )
|
||||
bg2_bank = (data & 0xc) >> 2;
|
||||
tilemap_mark_all_tiles_dirty(bg2_tilemap);
|
||||
}
|
||||
|
||||
coin_counter_w(0,data & 0x10);
|
||||
}
|
||||
|
||||
@ -154,8 +165,8 @@ ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( cultures_io_map, ADDRESS_SPACE_IO, 8 )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
AM_RANGE(0x00, 0x03) AM_RAM //?
|
||||
AM_RANGE(0x10, 0x13) AM_RAM //?
|
||||
AM_RANGE(0x00, 0x03) AM_RAM
|
||||
AM_RANGE(0x10, 0x13) AM_RAM
|
||||
AM_RANGE(0x20, 0x23) AM_RAM AM_BASE(&bg0_regs_x)
|
||||
AM_RANGE(0x30, 0x33) AM_RAM AM_BASE(&bg0_regs_y)
|
||||
AM_RANGE(0x40, 0x43) AM_RAM AM_BASE(&bg1_regs_x)
|
||||
@ -312,42 +323,16 @@ static const gfx_layout gfxlayout =
|
||||
};
|
||||
|
||||
static GFXDECODE_START( culture )
|
||||
GFXDECODE_ENTRY("gfx1", 0, gfxlayout, 0x000, 1 )
|
||||
GFXDECODE_ENTRY("gfx2", 0, gfxlayout, 0x100, 1 )
|
||||
GFXDECODE_ENTRY("gfx3", 0, gfxlayout, 0x200, 1 )
|
||||
GFXDECODE_ENTRY("gfx1", 0, gfxlayout, 0x0000, 0x10 )
|
||||
GFXDECODE_ENTRY("gfx2", 0, gfxlayout, 0x1000, 0x10 )
|
||||
GFXDECODE_ENTRY("gfx3", 0, gfxlayout, 0x1000, 0x10 )
|
||||
GFXDECODE_END
|
||||
|
||||
|
||||
//WRONG!
|
||||
static PALETTE_INIT( cultures )
|
||||
{
|
||||
int c,x,plane;
|
||||
|
||||
/*every plane appears to use his dedicated color table*/
|
||||
for(plane = 0;plane < 0x300;plane+=0x100)
|
||||
{
|
||||
for (c = 0; c < 256; c++)
|
||||
{
|
||||
int r,g,b,i;
|
||||
|
||||
i = c & 0x03;
|
||||
r = ((c & 0x04) >> 0) | ((c & 0x10) >> 1) | i;
|
||||
g = ((c & 0x20) >> 3) | ((c & 0x40) >> 3) | i;
|
||||
b = ((c & 0x08) >> 1) | ((c & 0x80) >> 4) | i;
|
||||
|
||||
/*
|
||||
r = ((c & 0x0c) >> 0) | i;
|
||||
g = ((c & 0x30) >> 2) | i;
|
||||
b = ((c & 0xc0) >> 4) | i;
|
||||
*/
|
||||
|
||||
x = ((c >> 4) & 0x0f);
|
||||
|
||||
x = ((x & 4) << 1) | ((x & 8) >> 1) | (x & 1);
|
||||
|
||||
palette_set_color_rgb(machine, plane+(x | (((c << 4) & 0xf0) ^ 0)), pal4bit(r), pal4bit(g), pal4bit(b));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -382,7 +367,7 @@ static MACHINE_DRIVER_START( cultures )
|
||||
MDRV_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 30*8-1)
|
||||
|
||||
MDRV_GFXDECODE(culture)
|
||||
MDRV_PALETTE_LENGTH(0x300)
|
||||
MDRV_PALETTE_LENGTH(0x2000)
|
||||
|
||||
MDRV_PALETTE_INIT(cultures)
|
||||
|
||||
@ -460,4 +445,9 @@ ROM_START( cultures )
|
||||
ROM_RELOAD( 0x000000, 0x020000 )
|
||||
ROM_END
|
||||
|
||||
GAME( 1994, cultures, 0, cultures, cultures, 0, ROT0, "Face", "Jibun wo Migaku Culture School Mahjong Hen", GAME_WRONG_COLORS )
|
||||
static DRIVER_INIT(cultures)
|
||||
{
|
||||
paletteram=auto_malloc(0x4000);
|
||||
}
|
||||
|
||||
GAME( 1994, cultures, 0, cultures, cultures, cultures, ROT0, "Face", "Jibun wo Migaku Culture School Mahjong Hen", 0 )
|
||||
|
Loading…
Reference in New Issue
Block a user