diff options
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 |
commit | 7105673197fec4c5ddfccbf9f09078098c942b0a (patch) | |
tree | 7ba5534545cd3b90c192dd23f3a1912ceab206dc | |
parent | fa7c955940668f40e264b0c92a3f00bd6dc7ab45 (diff) |
new WORKING game
---------------
Champion Number [f205v, David Haywood, Angelo Salese]
-rw-r--r-- | src/mame/drivers/chsuper.c | 72 |
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 |