summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author Aaron Giles <aaron@aarongiles.com>2009-09-06 21:50:18 +0000
committer Aaron Giles <aaron@aarongiles.com>2009-09-06 21:50:18 +0000
commit34b73aeace36c3240e00a6e14abbbef8c3251663 (patch)
tree539faf46ce4d6aa36c5f1b543e80f25fd49e53a0 /src
parenta455f4e1730730f817d27be7a4824549f364f3f6 (diff)
From: David Haywood [mailto:hazemamewip@hotmail.com]
Sent: Thursday, September 03, 2009 4:50 AM To: Mamedev Submission Subject: gfxdecode fixes This fixes the plane order in the gfx deodes for Black Touch '96 sprites, and Poke Champ sprites. The Poke Champ backgrounds make absolutely no sense to me tho, it seems impossible to get the colours in palette ram to align with the planes of the tile data, see the Korean flag ingame with the obvious R/B colours in the palette which can't be achieved through any combination of order swapping.
Diffstat (limited to 'src')
-rw-r--r--src/mame/drivers/blackt96.c14
-rw-r--r--src/mame/drivers/pokechmp.c27
-rw-r--r--src/mame/video/pokechmp.c2
3 files changed, 22 insertions, 21 deletions
diff --git a/src/mame/drivers/blackt96.c b/src/mame/drivers/blackt96.c
index b9b311b949f..974ca9e8937 100644
--- a/src/mame/drivers/blackt96.c
+++ b/src/mame/drivers/blackt96.c
@@ -86,7 +86,7 @@ static VIDEO_UPDATE( blackt96 )
{
UINT16 tile = (blackt96_tilemapram2[count*2 + (base/2)+1]&0x1fff);
UINT16 flipx = (blackt96_tilemapram2[count*2 + (base/2)+1]&0x4000);
- UINT16 colour = (blackt96_tilemapram2[count*2 + (base/2)]&0x000f)+0x10;
+ UINT16 colour = (blackt96_tilemapram2[count*2 + (base/2)]&0x00ff);
drawgfx_transpen(bitmap,cliprect,gfxspr,tile,colour,flipx,0,x*16,y*16,0);
count++;
@@ -100,7 +100,7 @@ static VIDEO_UPDATE( blackt96 )
{
UINT16 tile = (blackt96_tilemapram2[count*2 + (base/2)+1]&0x1fff);
UINT16 flipx = (blackt96_tilemapram2[count*2 + (base/2)+1]&0x4000);
- UINT16 colour = (blackt96_tilemapram2[count*2 + (base/2)]&0x000f)+0x10;
+ UINT16 colour = (blackt96_tilemapram2[count*2 + (base/2)]&0x00ff);
drawgfx_transpen(bitmap,cliprect,gfxspr,tile,colour,flipx,0,x*16,y*16,0);
count++;
@@ -114,7 +114,7 @@ static VIDEO_UPDATE( blackt96 )
{
UINT16 tile = (blackt96_tilemapram2[count*2 + (base/2)+1]&0x1fff);
UINT16 flipx = (blackt96_tilemapram2[count*2 + (base/2)+1]&0x4000);
- UINT16 colour = (blackt96_tilemapram2[count*2 + (base/2)]&0x000f)+0x10;
+ UINT16 colour = (blackt96_tilemapram2[count*2 + (base/2)]&0x00ff);
drawgfx_transpen(bitmap,cliprect,gfxspr,tile,colour,flipx,0,x*16,y*16,0);
count++;
@@ -128,7 +128,7 @@ static VIDEO_UPDATE( blackt96 )
{
UINT16 tile = (blackt96_tilemapram2[count*2 + (base/2)+1]&0x1fff);
UINT16 flipx = (blackt96_tilemapram2[count*2 + (base/2)+1]&0x4000);
- UINT16 colour = (blackt96_tilemapram2[count*2 + (base/2)]&0x000f)+0x10;
+ UINT16 colour = (blackt96_tilemapram2[count*2 + (base/2)]&0x00ff);
drawgfx_transpen(bitmap,cliprect,gfxspr,tile,colour,flipx,0,x*16,y*16,0);
count++;
@@ -141,7 +141,7 @@ static VIDEO_UPDATE( blackt96 )
{
UINT16 tile = (blackt96_tilemapram2[count*2 + (base/2)+1]&0x1fff);
UINT16 flipx = (blackt96_tilemapram2[count*2 + (base/2)+1]&0x4000);
- UINT16 colour = (blackt96_tilemapram2[count*2 + (base/2)]&0x000f)+0x10;
+ UINT16 colour = (blackt96_tilemapram2[count*2 + (base/2)]&0x00ff);
drawgfx_transpen(bitmap,cliprect,gfxspr,tile,colour,flipx,0,x*16,y*16,0);
count++;
@@ -154,7 +154,7 @@ static VIDEO_UPDATE( blackt96 )
{
UINT16 tile = (blackt96_tilemapram2[count*2 + (base/2)+1]&0x1fff);
UINT16 flipx = (blackt96_tilemapram2[count*2 + (base/2)+1]&0x4000);
- UINT16 colour = (blackt96_tilemapram2[count*2 + (base/2)]&0x000f)+0x10;
+ UINT16 colour = (blackt96_tilemapram2[count*2 + (base/2)]&0x00ff);
drawgfx_transpen(bitmap,cliprect,gfxspr,tile,colour,flipx,0,x*16,y*16,0);
count++;
@@ -443,7 +443,7 @@ static const gfx_layout blackt962_layout =
16,16,
RGN_FRAC(1,1),
4,
- { 0,16,8, 24 },
+ { 0, 24, 8, 16 },
{ 519, 515, 518, 514, 517,513, 516,512, 7,3,6,2,5,1,4,0 },
{ 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32,8*32,9*32,10*32,11*32,12*32,13*32,14*32,15*32 },
32*32
diff --git a/src/mame/drivers/pokechmp.c b/src/mame/drivers/pokechmp.c
index 858b4a9e6d0..4693d4e3719 100644
--- a/src/mame/drivers/pokechmp.c
+++ b/src/mame/drivers/pokechmp.c
@@ -196,7 +196,7 @@ static INPUT_PORTS_START( pokechmp )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
-
+/* this makes no sense at all! it seems impossible to get the colours to align up in the korean flag ingame and everything else is slightly broken too */
static const gfx_layout pokechmp_charlayout =
{
8,8, /* 8*8 characters */
@@ -209,15 +209,16 @@ static const gfx_layout pokechmp_charlayout =
};
+/* should be ok.. */
static const gfx_layout pokechmp_spritelayout =
{
- 16,16, /* 16*16 sprites */
- RGN_FRAC(1,8), /* 1024 sprites */
- 4,
- { RGN_FRAC(1,8),RGN_FRAC(5,8), RGN_FRAC(3,8),RGN_FRAC(7,8) },
- { 128+7, 128+6, 128+5, 128+4, 128+3, 128+2, 128+1, 128+0, 7, 6, 5, 4, 3, 2, 1, 0 },
- { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 },
- 32*8 /* every char takes 8 consecutive bytes */
+16,16, /* 16*16 sprites */
+RGN_FRAC(1,8), /* 1024 sprites */
+4,
+{RGN_FRAC(1,8),RGN_FRAC(3,8),RGN_FRAC(5,8),RGN_FRAC(7,8)},
+{ 128+7, 128+6, 128+5, 128+4, 128+3, 128+2, 128+1, 128+0, 7, 6, 5, 4, 3, 2, 1, 0 },
+{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 },
+32*8 /* every char takes 8 consecutive bytes */
};
@@ -290,11 +291,11 @@ ROM_START( pokechmp )
ROM_LOAD( "pokechamp_08_27c020.bin", 0xc0000, 0x40000, CRC(e9db54d6) SHA1(ac3b7c06d0f61847bf9bc6147f2f88d712f2b4b3) )
ROM_REGION( 0x40000, "gfx2", 0 )
- /* the first half of all these roms is identical... for rom 3 both halves match, is the first half unused? 4bpp gfx? */
- ROM_LOAD( "pokechamp_01_27c512.bin", 0x00000, 0x10000, CRC(338fc412) SHA1(bb8ae99ee6a399a8c67bedb88d0837fd0a4a426c) )
- ROM_LOAD( "pokechamp_02_27c512.bin", 0x10000, 0x10000, CRC(1ff44545) SHA1(2eee44484accce7b0ba21babf6e8344b234a4e87) )
- ROM_LOAD( "pokechamp_03_27c512.bin", 0x20000, 0x10000, CRC(99f9884a) SHA1(096d6ce70dc51fb9142e80e1ec45d6d7225481f5) )
- ROM_LOAD( "pokechamp_04_27c512.bin", 0x30000, 0x10000, CRC(ee6991af) SHA1(8eca3cdfd2eb74257253957a87b245b7f85bd038) )
+ /* the first half of all these roms is identical. For rom 3 both halves match. Correct decode is to ignore the first half */
+ ROM_LOAD( "pokechamp_02_27c512.bin", 0x00000, 0x10000, CRC(1ff44545) SHA1(2eee44484accce7b0ba21babf6e8344b234a4e87) )
+ ROM_LOAD( "pokechamp_01_27c512.bin", 0x10000, 0x10000, CRC(338fc412) SHA1(bb8ae99ee6a399a8c67bedb88d0837fd0a4a426c) )
+ ROM_LOAD( "pokechamp_04_27c512.bin", 0x20000, 0x10000, CRC(ee6991af) SHA1(8eca3cdfd2eb74257253957a87b245b7f85bd038) )
+ ROM_LOAD( "pokechamp_03_27c512.bin", 0x30000, 0x10000, CRC(99f9884a) SHA1(096d6ce70dc51fb9142e80e1ec45d6d7225481f5) )
ROM_REGION( 0x80000, "oki", 0 )
ROM_LOAD( "pokechamp_10_27c040.bin", 0x00000, 0x80000, CRC(b54806ed) SHA1(c6e1485c263ebd9102ff1e8c09b4c4ca5f63c3da) )
diff --git a/src/mame/video/pokechmp.c b/src/mame/video/pokechmp.c
index c3f352b50c8..8c8a6c8f38d 100644
--- a/src/mame/video/pokechmp.c
+++ b/src/mame/video/pokechmp.c
@@ -58,7 +58,7 @@ static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const recta
drawgfx_transpen(bitmap,cliprect,machine->gfx[1],
spriteram[offs+3] + ((spriteram[offs+1] & 1) << 8),
- (spriteram[offs+1] & 0x70) >> 4,
+ (spriteram[offs+1] & 0xf0) >> 4,
flipx,flipy,
sx,sy,0);
}