diff options
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 |
commit | 210af56aa824b28695903dfe6ec876fbbf955d1e (patch) | |
tree | 2a05eb70ede46ebbee6f5065228d9ab77fb68968 | |
parent | e65c8bd5c60b32711211ce9388c90e43f5d88bc1 (diff) |
Support for original Omega Race state PROM
-rw-r--r-- | src/mame/drivers/omegrace.c | 6 | ||||
-rw-r--r-- | src/mame/video/avgdvg.c | 17 | ||||
-rw-r--r-- | src/mame/video/avgdvg.h | 1 |
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 ); |