summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author Mathis Rosenhauer <mathisro@mamedev.org>2008-02-27 15:51:37 +0000
committer Mathis Rosenhauer <mathisro@mamedev.org>2008-02-27 15:51:37 +0000
commit210af56aa824b28695903dfe6ec876fbbf955d1e (patch)
tree2a05eb70ede46ebbee6f5065228d9ab77fb68968 /src
parente65c8bd5c60b32711211ce9388c90e43f5d88bc1 (diff)
Support for original Omega Race state PROM
Diffstat (limited to 'src')
-rw-r--r--src/mame/drivers/omegrace.c6
-rw-r--r--src/mame/video/avgdvg.c17
-rw-r--r--src/mame/video/avgdvg.h1
3 files changed, 21 insertions, 3 deletions
diff --git a/src/mame/drivers/omegrace.c b/src/mame/drivers/omegrace.c
index 0b8f7284775..33a2fed7754 100644
--- a/src/mame/drivers/omegrace.c
+++ b/src/mame/drivers/omegrace.c
@@ -503,7 +503,7 @@ static MACHINE_DRIVER_START( omegrace )
MDRV_SCREEN_SIZE(400, 300)
MDRV_SCREEN_VISIBLE_AREA(522, 1566, 522, 1566)
- MDRV_VIDEO_START(dvg)
+ MDRV_VIDEO_START(dvg_omegrace)
MDRV_VIDEO_UPDATE(vector)
/* sound hardware */
@@ -540,7 +540,7 @@ ROM_START( omegrace )
/* DVG PROM */
ROM_REGION( 0x100, REGION_USER1, 0 )
- ROM_LOAD( "01-34602.bin", 0x0000, 0x0100, BAD_DUMP CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) )
+ ROM_LOAD( "dvgprom.bin", 0x0000, 0x0100, CRC(d481e958) SHA1(d8790547dc539e25984807573097b61ec3ffe614) )
ROM_END
ROM_START( deltrace )
@@ -557,7 +557,7 @@ ROM_START( deltrace )
/* DVG PROM */
ROM_REGION( 0x100, REGION_USER1, 0 )
- ROM_LOAD( "01-34602.bin", 0x0000, 0x0100, BAD_DUMP CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) )
+ ROM_LOAD( "dvgprom.bin", 0x0000, 0x0100, CRC(d481e958) SHA1(d8790547dc539e25984807573097b61ec3ffe614) )
ROM_END
diff --git a/src/mame/video/avgdvg.c b/src/mame/video/avgdvg.c
index 275eb0151ec..67ce48d280d 100644
--- a/src/mame/video/avgdvg.c
+++ b/src/mame/video/avgdvg.c
@@ -1485,6 +1485,23 @@ VIDEO_START( dvg )
VIDEO_START_CALL(vector);
}
+VIDEO_START( dvg_omegrace )
+{
+ int i;
+ UINT8 *prom = memory_region(REGION_USER1);
+
+ /* Omega Race has two pairs of the state PROM output
+ * lines swapped before going into the decoder.
+ * Since all other avg/dvg games connect the PROM
+ * in a consistent way to the decoder, we swap the bits
+ * here. */
+ for (i=0; i < 256; i++)
+ prom[i] = ((prom[i] & 0x3) << 2) |
+ ((prom[i] & 0xc) >> 2);
+
+ VIDEO_START_CALL(dvg);
+}
+
VIDEO_START( avg )
{
vgc = &avg_default;
diff --git a/src/mame/video/avgdvg.h b/src/mame/video/avgdvg.h
index 065c0cd28d1..2074f34e105 100644
--- a/src/mame/video/avgdvg.h
+++ b/src/mame/video/avgdvg.h
@@ -17,6 +17,7 @@ void avg_set_flip_x(int flip);
void avg_set_flip_y(int flip);
VIDEO_START( dvg );
+VIDEO_START( dvg_omegrace );
VIDEO_START( avg );
VIDEO_START( avg_tempest );
VIDEO_START( avg_mhavoc );