summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Angelo Salese <angelosa@users.noreply.github.com>2010-03-02 17:20:32 +0000
committer Angelo Salese <angelosa@users.noreply.github.com>2010-03-02 17:20:32 +0000
commit7105673197fec4c5ddfccbf9f09078098c942b0a (patch)
tree7ba5534545cd3b90c192dd23f3a1912ceab206dc
parentfa7c955940668f40e264b0c92a3f00bd6dc7ab45 (diff)
new WORKING game
--------------- Champion Number [f205v, David Haywood, Angelo Salese]
-rw-r--r--src/mame/drivers/chsuper.c72
1 files changed, 66 insertions, 6 deletions
diff --git a/src/mame/drivers/chsuper.c b/src/mame/drivers/chsuper.c
index a4e45ed3b64..ec8e89bc4a8 100644
--- a/src/mame/drivers/chsuper.c
+++ b/src/mame/drivers/chsuper.c
@@ -33,8 +33,7 @@ static VIDEO_UPDATE(chsuper)
{
int tile = ((vram[count+1]<<8) | vram[count]) & 0xffff;
- tile ^=chsuper_tilexor;
- //int colour = tile>>12;
+ //tile ^=chsuper_tilexor;
drawgfx_opaque(bitmap,cliprect,gfx,tile,0,0,0,x*4,y*8);
count+=2;
@@ -269,20 +268,81 @@ ROM_END
static DRIVER_INIT( chsuper2 )
{
+ UINT8 *buffer;
+ UINT8 *rom = memory_region(machine,"gfx1");
+ int i;
+
chsuper_tilexor = 0x7f00;
+
+ buffer = auto_alloc_array(machine, UINT8, 0x100000);
+
+ for (i=0;i<0x100000;i++)
+ {
+ int j;
+
+ j = i ^ (chsuper_tilexor << 5);
+
+ buffer[j] = rom[i];
+ }
+
+ memcpy(rom,buffer,0x100000);
+
+ chsuper_tilexor = 0x0000;
}
static DRIVER_INIT( chsuper3 )
{
+ UINT8 *buffer;
+ UINT8 *rom = memory_region(machine,"gfx1");
+ int i;
+
chsuper_tilexor = 0x0e00;
+
+ buffer = auto_alloc_array(machine, UINT8, 0x100000);
+
+ for (i=0;i<0x100000;i++)
+ {
+ int j;
+
+ j = i ^ (chsuper_tilexor << 5);
+
+ buffer[j] = rom[i];
+ }
+
+ memcpy(rom,buffer,0x100000);
+
+ chsuper_tilexor = 0x0000;
}
static DRIVER_INIT( chmpnum )
{
- chsuper_tilexor = 0x0000; // TODO
+ UINT8 *buffer;
+ UINT8 *rom = memory_region(machine,"gfx1");
+ int i;
+
+ chsuper_tilexor = 0x1800;
+
+ buffer = auto_alloc_array(machine, UINT8, 0x100000);
+
+ for (i=0;i<0x100000;i++)
+ {
+ int j;
+
+ j = i ^ (chsuper_tilexor << 5);
+
+ j = BITSWAP24(j,23,22,21,20,19,18,17,13, 15,14,16,12, 11,10,9,8, 7,6,5,4, 3,2,1,0);
+ j = BITSWAP24(j,23,22,21,20,19,18,17,14, 15,16,13,12, 11,10,9,8, 7,6,5,4, 3,2,1,0);
+ j = BITSWAP24(j,23,22,21,20,19,18,17,15, 16,14,13,12, 11,10,9,8, 7,6,5,4, 3,2,1,0);
+
+ buffer[j] = rom[i];
+ }
+
+ memcpy(rom,buffer,0x100000);
+
+ chsuper_tilexor = 0x0000;
}
-GAME( 1999, chsuper3, 0, chsuper, chsuper, chsuper3, ROT0, "<unknown>", "Champion Super 3 (V0.35)", GAME_NO_SOUND ) //24/02/99
-GAME( 1999, chsuper2, chsuper3, chsuper, chsuper, chsuper2, ROT0, "<unknown>", "Champion Super 2 (V0.13)", GAME_NO_SOUND ) //26/01/99
-GAME( 199?, chmpnum, 0, chsuper, chsuper, chmpnum, ROT0, "Italy", "Champion Number (v0.74)", GAME_NO_SOUND|GAME_NOT_WORKING )
+GAME( 1999, chsuper3, 0, chsuper, chsuper, chsuper3, ROT0, "<unknown>", "Champion Super 3 (V0.35)", GAME_IMPERFECT_SOUND ) //24/02/99
+GAME( 1999, chsuper2, chsuper3, chsuper, chsuper, chsuper2, ROT0, "<unknown>", "Champion Super 2 (V0.13)", GAME_IMPERFECT_SOUND ) //26/01/99
+GAME( 1999, chmpnum, chsuper3, chsuper, chsuper, chmpnum, ROT0, "<unknown>", "Champion Number (V0.74)", GAME_IMPERFECT_SOUND ) //10/11/99