From 92a7050cc9dc5abfc2bd8b78246f17589129d523 Mon Sep 17 00:00:00 2001 From: dinkc64 Date: Thu, 30 May 2019 23:15:04 -0400 Subject: [PATCH] fix matchit / shisen sho dips and oob memory issue. also fix an oob ish in supcrash --- src/burn/drv/pre90s/d_shisen.cpp | 50 ++++++++++--------------------- src/burn/drv/pre90s/d_vicdual.cpp | 21 ++++++------- 2 files changed, 27 insertions(+), 44 deletions(-) diff --git a/src/burn/drv/pre90s/d_shisen.cpp b/src/burn/drv/pre90s/d_shisen.cpp index 3d3e2667d..f5fcfc2ae 100644 --- a/src/burn/drv/pre90s/d_shisen.cpp +++ b/src/burn/drv/pre90s/d_shisen.cpp @@ -62,7 +62,6 @@ static struct BurnInputInfo ShisenInputList[] = { {"Service", BIT_DIGITAL, DrvJoy3 + 4, "service" }, {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" }, {"Dip B", BIT_DIPSWITCH, DrvDips + 1, "dip" }, - {"Dip C", BIT_DIPSWITCH, DrvDips + 2, "dip" }, }; STDINPUTINFO(Shisen) @@ -70,8 +69,7 @@ STDINPUTINFO(Shisen) static struct BurnDIPInfo ShisenDIPList[]= { {0x14, 0xff, 0xff, 0xff, NULL }, - {0x15, 0xff, 0xff, 0xf0, NULL }, - {0x16, 0xff, 0xff, 0x79, NULL }, + {0x15, 0xff, 0xff, 0xfd, NULL }, {0 , 0xfe, 0 , 4, "Timer" }, {0x14, 0x01, 0x03, 0x03, "Easy" }, @@ -103,49 +101,33 @@ static struct BurnDIPInfo ShisenDIPList[]= {0x14, 0x01, 0xf0, 0x50, "1 Coin 6 Credits" }, {0x14, 0x01, 0xf0, 0x00, "Free Play" }, - {0 , 0xfe, 0 , 4, "Coin A" }, - {0x15, 0x01, 0x30, 0x00, "5 Coins 1 Credits" }, - {0x15, 0x01, 0x30, 0x10, "3 Coins 1 Credits" }, - {0x15, 0x01, 0x30, 0x20, "2 Coins 1 Credits" }, - {0x15, 0x01, 0x30, 0x30, "1 Coin 1 Credits" }, - - {0 , 0xfe, 0 , 4, "Coin B" }, - {0x15, 0x01, 0xc0, 0xc0, "1 Coin 2 Credits" }, - {0x15, 0x01, 0xc0, 0x80, "1 Coin 3 Credits" }, - {0x15, 0x01, 0xc0, 0x40, "1 Coin 5 Credits" }, - {0x15, 0x01, 0xc0, 0x00, "1 Coin 6 Credits" }, - {0 , 0xfe, 0 , 2, "Flip Screen" }, - {0x16, 0x01, 0x01, 0x01, "Off" }, - {0x16, 0x01, 0x01, 0x00, "On" }, + {0x15, 0x01, 0x01, 0x01, "Off" }, + {0x15, 0x01, 0x01, 0x00, "On" }, {0 , 0xfe, 0 , 2, "Demo Sounds" }, - {0x16, 0x01, 0x02, 0x02, "Off" }, - {0x16, 0x01, 0x02, 0x00, "On" }, - - {0 , 0xfe, 0 , 2, "Coin Chute" }, - {0x16, 0x01, 0x04, 0x04, "Common" }, - {0x16, 0x01, 0x04, 0x00, "Separate" }, + {0x15, 0x01, 0x02, 0x02, "Off" }, + {0x15, 0x01, 0x02, 0x00, "On" }, {0 , 0xfe, 0 , 2, "Nude Pictures" }, - {0x16, 0x01, 0x08, 0x00, "Off" }, - {0x16, 0x01, 0x08, 0x08, "On" }, + {0x15, 0x01, 0x08, 0x00, "Off" }, + {0x15, 0x01, 0x08, 0x08, "On" }, {0 , 0xfe, 0 , 2, "Women Select" }, - {0x16, 0x01, 0x10, 0x00, "No" }, - {0x16, 0x01, 0x10, 0x10, "Yes" }, + {0x15, 0x01, 0x10, 0x00, "No" }, + {0x15, 0x01, 0x10, 0x10, "Yes" }, {0 , 0xfe, 0 , 2, "Stop Mode (Cheat)" }, - {0x16, 0x01, 0x20, 0x20, "Off" }, - {0x16, 0x01, 0x20, 0x00, "On" }, + {0x15, 0x01, 0x20, 0x20, "Off" }, + {0x15, 0x01, 0x20, 0x00, "On" }, {0 , 0xfe, 0 , 2, "Play Mode" }, - {0x16, 0x01, 0x40, 0x00, "1 Player" }, - {0x16, 0x01, 0x40, 0x40, "2 Player" }, + {0x15, 0x01, 0x40, 0x00, "1 Player" }, + {0x15, 0x01, 0x40, 0x40, "2 Player" }, {0 , 0xfe, 0 , 2, "Service Mode" }, - {0x16, 0x01, 0x80, 0x00, "Off" }, - {0x16, 0x01, 0x80, 0x80, "On" }, + {0x15, 0x01, 0x80, 0x80, "Off" }, + {0x15, 0x01, 0x80, 0x00, "On" }, }; STDDIPINFO(Shisen) @@ -213,7 +195,7 @@ static UINT8 __fastcall shisen_main_read_port(UINT16 port) switch (port & 0xff) { case 0x00: - return ((DrvDips[0] << (DrvDips[1] & 4)) & 0xf0); + return DrvDips[0]; case 0x01: return DrvDips[1]; diff --git a/src/burn/drv/pre90s/d_vicdual.cpp b/src/burn/drv/pre90s/d_vicdual.cpp index bebe64e88..b8aa151c3 100644 --- a/src/burn/drv/pre90s/d_vicdual.cpp +++ b/src/burn/drv/pre90s/d_vicdual.cpp @@ -486,11 +486,12 @@ static struct BurnInputInfo HeadonnInputList[] = { STDINPUTINFO(Headonn) static struct BurnInputInfo SupcrashInputList[] = { - {"P1 Up", BIT_DIGITAL, DrvJoy1 + 1, "p1 up" }, - {"P1 Down", BIT_DIGITAL, DrvJoy1 + 7, "p1 down" }, - {"P1 Left", BIT_DIGITAL, DrvJoy1 + 2, "p1 left" }, - {"P1 Right", BIT_DIGITAL, DrvJoy1 + 0, "p1 right" }, - {"P1 Button 1", BIT_DIGITAL, DrvJoy1 + 3, "p1 fire 1" }, + {"P1 Coin", BIT_DIGITAL, DrvJoy1 + 0, "p1 coin" }, + {"P1 Up", BIT_DIGITAL, DrvJoy2 + 1, "p1 up" }, + {"P1 Down", BIT_DIGITAL, DrvJoy2 + 7, "p1 down" }, + {"P1 Left", BIT_DIGITAL, DrvJoy2 + 2, "p1 left" }, + {"P1 Right", BIT_DIGITAL, DrvJoy2 + 0, "p1 right" }, + {"P1 Button 1", BIT_DIGITAL, DrvJoy2 + 3, "p1 fire 1" }, {"Reset", BIT_DIGITAL, &DrvReset, "reset" }, {"Dip A", BIT_DIPSWITCH, DrvDips + 0, "dip" }, @@ -892,15 +893,15 @@ STDDIPINFO(Headonn) static struct BurnDIPInfo SupcrashDIPList[]= { - {0x06, 0xff, 0xff, 0x04, NULL }, + {0x07, 0xff, 0xff, 0x04, NULL }, {0 , 0xfe, 0 , 2, "Demo Sounds" }, - {0x06, 0x01, 0x40, 0x40, "Off" }, - {0x06, 0x01, 0x40, 0x00, "On" }, + {0x07, 0x01, 0x40, 0x40, "Off" }, + {0x07, 0x01, 0x40, 0x00, "On" }, {0 , 0xfe, 0 , 2, "Rom Test" }, - {0x06, 0x01, 0x04, 0x04, "Off" }, - {0x06, 0x01, 0x04, 0x00, "On" }, + {0x07, 0x01, 0x04, 0x04, "Off" }, + {0x07, 0x01, 0x04, 0x00, "On" }, }; STDDIPINFO(Supcrash)