summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author Angelo Salese <angelosa@users.noreply.github.com>2009-06-11 21:32:54 +0000
committer Angelo Salese <angelosa@users.noreply.github.com>2009-06-11 21:32:54 +0000
commit7239f70508687e25a34d6165a0fcab33d9d76e5f (patch)
treeecb8921c37f376cb66e6e03311df22bf8d1251dd /src
parentfa32401fe6fa031d133eeaadac292c9928256339 (diff)
Fixed background colors in Pro Soccer [Angelo Salese]
Diffstat (limited to 'src')
-rw-r--r--src/mame/drivers/liberate.c60
1 files changed, 57 insertions, 3 deletions
diff --git a/src/mame/drivers/liberate.c b/src/mame/drivers/liberate.c
index 5426f028776..41900991b06 100644
--- a/src/mame/drivers/liberate.c
+++ b/src/mame/drivers/liberate.c
@@ -440,6 +440,20 @@ static const gfx_layout tiles2 =
64*8
};
+static const gfx_layout prosoccr_bg_gfx =
+{
+ 16,16,
+ 128,
+ 4,
+ { 0x2000*8+0, 0x2000*8+4, 0x0000*8+0 , 0x0000*8+4 },
+ {
+ 24,25,26,27, 16,17,18,19, 8,9,10,11, 0,1,2,3
+ },
+ { 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 },
+ 64*8
+};
+
static GFXDECODE_START( liberate )
GFXDECODE_ENTRY( "gfx1", 0x00000, charlayout, 0, 4 )
GFXDECODE_ENTRY( "gfx1", 0x00000, sprites, 0, 4 )
@@ -454,6 +468,12 @@ static GFXDECODE_START( prosport )
GFXDECODE_ENTRY( "gfx2", 0x00800, pro_tiles, 0, 4 )
GFXDECODE_END
+static GFXDECODE_START( prosoccr )
+ GFXDECODE_ENTRY( "fg_gfx", 0x00000, charlayout, 0, 4 )
+ GFXDECODE_ENTRY( "sp_gfx", 0x00000, sprites, 0, 4 )
+ GFXDECODE_ENTRY( "bg_gfx", 0x00000, prosoccr_bg_gfx, 0, 1 )
+GFXDECODE_END
+
/*************************************
*
* Deco16 interrupts
@@ -549,6 +569,8 @@ static MACHINE_DRIVER_START( prosoccr )
MDRV_CPU_PROGRAM_MAP(liberate_map)
MDRV_CPU_IO_MAP(deco16_io_map)
+ MDRV_GFXDECODE(prosoccr)
+
MDRV_VIDEO_START(prosoccr)
MDRV_VIDEO_UPDATE(prosoccr)
MACHINE_DRIVER_END
@@ -607,17 +629,32 @@ ROM_START( prosoccr )
ROM_REGION( 0x10000, "audiocpu", 0 )
ROM_LOAD( "am06.10a", 0xe000, 0x2000, CRC(37a0c74f) SHA1(5757b9eaf5b1129ee2d03b0ab6c3b15c120cf43c) )
- ROM_REGION( 0x6000, "gfx1", ROMREGION_DISPOSE )
+ ROM_REGION( 0x6000, "shared_gfx", 0 ) // gfxs for foreground and sprites
ROM_LOAD( "am00.2b", 0x0000, 0x2000, CRC(f3c8b649) SHA1(d2d42484e80d9241dac77a78c68314f88e0cbe5d) )
ROM_LOAD( "am01.5b", 0x2000, 0x2000, CRC(24785bda) SHA1(536bdda766b46771223f01e463fa4c61e0dd545c) )
ROM_LOAD( "am02.7b", 0x4000, 0x2000, CRC(c5af58ea) SHA1(a73d537b88befb76d67cc17d241e78c572c5b737) )
- ROM_REGION( 0x8000, "gfx2", ROMREGION_DISPOSE )
+ ROM_REGION( 0x6000, "fg_gfx", ROMREGION_ERASE00 ) // filled in DRIVER_INIT
+ //ROM_COPY( "shared_gfx", 0x0000, 0x0000, 0x2000 )
+ //ROM_COPY( "shared_gfx", 0x2000, 0x2000, 0x2000 )
+ //ROM_COPY( "shared_gfx", 0x4000, 0x4000, 0x2000 )
+
+ //ROM_FILL( 0x0000, 0x0800, 0x00 )
+ //ROM_FILL( 0x2000, 0x0800, 0x00 )
+ //ROM_FILL( 0x4000, 0x0800, 0x00 )
+
+ ROM_REGION( 0x6000, "sp_gfx", 0 )
+ ROM_COPY( "shared_gfx", 0x0000, 0x0000, 0x2000 )
+ ROM_COPY( "shared_gfx", 0x2000, 0x2000, 0x2000 )
+ ROM_COPY( "shared_gfx", 0x4000, 0x4000, 0x2000 )
+
+ ROM_REGION( 0x4000, "bg_gfx", ROMREGION_DISPOSE )
ROM_LOAD( "am03.10b", 0x0000, 0x2000, CRC(47dc31dc) SHA1(7f492477e30a0353251a43e7e726551c3861b63f) )
ROM_LOAD( "am04.c10", 0x2000, 0x2000, CRC(e057d827) SHA1(81ca4351777de5c32f4cf65547287c8169ba1494) )
ROM_REGION(0x04000, "user1", 0 )
ROM_LOAD( "am05.d12", 0x0000, 0x2000, CRC(f63e5a73) SHA1(50e7a1a0eb3bf8df3264bcba441c5fbd7dec52f4) )
+ //ROM_RELOAD( 0x2000, 0x2000 )
ROM_REGION( 64, "proms", 0 )
ROM_LOAD( "k1", 0, 32, CRC(ebdc8343) SHA1(c9ae04da662f40237de24f5f01e97051e99e8c15) ) /* Colour */
@@ -952,6 +989,23 @@ static DRIVER_INIT( prosport )
sound_cpu_decrypt(machine);
}
+static DRIVER_INIT( prosoccr )
+{
+ UINT8 *FG_ROM = memory_region(machine, "fg_gfx");
+ UINT8 *GFX_ROM = memory_region(machine, "shared_gfx");
+ int i;
+
+ DRIVER_INIT_CALL(prosport);
+
+ /* TODO: address lines are scrambled on the foreground gfxs, understand how. */
+ for(i=0x0000;i<0x2000;i++)
+ {
+ FG_ROM[BITSWAP16(i+0x0000, 15,14,13, 12,11,10,9, 8,7,6,5,4,3,2,1,0)] = GFX_ROM[i+0x0000];
+ FG_ROM[BITSWAP16(i+0x2000, 15,14,13, 12,11,10,9, 8,7,6,5,4,3,2,1,0)] = GFX_ROM[i+0x2000];
+ FG_ROM[BITSWAP16(i+0x4000, 15,14,13, 12,11,10,9, 8,7,6,5,4,3,2,1,0)] = GFX_ROM[i+0x4000];
+ }
+}
+
static DRIVER_INIT( yellowcb )
{
DRIVER_INIT_CALL(prosport);
@@ -986,7 +1040,7 @@ static DRIVER_INIT( liberate )
*
*************************************/
-GAME( 1983, prosoccr, 0, prosoccr, liberate, prosport, ROT270, "Data East Corporation", "Pro Soccer", GAME_NOT_WORKING )
+GAME( 1983, prosoccr, 0, prosoccr, liberate, prosoccr, ROT270, "Data East Corporation", "Pro Soccer", GAME_NOT_WORKING )
GAME( 1983, prosport, 0, prosport, liberate, prosport, ROT270, "Data East Corporation", "Pro. Sports", GAME_NOT_WORKING )
GAME( 1983, prosporta, prosport, prosport, liberate, prosport, ROT270, "Data East Corporation", "Pro. Sports (alternate)", GAME_NOT_WORKING )
GAME( 1983, boomrang, 0, boomrang, boomrang, prosport, ROT270, "Data East Corporation", "Boomer Rang'r / Genesis (set 1)", 0 )