diff --git a/src/burn/drv/midway/d_wunit.cpp b/src/burn/drv/midway/d_wunit.cpp index d7810a3f4..d8009afd2 100644 --- a/src/burn/drv/midway/d_wunit.cpp +++ b/src/burn/drv/midway/d_wunit.cpp @@ -33,12 +33,10 @@ static struct BurnInputInfo Mk3InputList[] = { {"Reset", BIT_DIGITAL, &nWolfReset, "reset"}, {"Service", BIT_DIGITAL, nWolfUnitJoy3 + 6, "service"}, + {"Service Mode", BIT_DIGITAL, nWolfUnitJoy3 + 4, "diag"}, {"Tilt", BIT_DIGITAL, nWolfUnitJoy3 + 3, "tilt"}, {"Dip A", BIT_DIPSWITCH, nWolfUnitDSW + 0, "dip"}, {"Dip B", BIT_DIPSWITCH, nWolfUnitDSW + 1, "dip"}, - {"Dip C", BIT_DIPSWITCH, nWolfUnitDSW + 2, "dip"}, - {"Dip D", BIT_DIPSWITCH, nWolfUnitDSW + 3, "dip"}, - {"Dip E", BIT_DIPSWITCH, nWolfUnitDSW + 4, "dip"}, }; STDINPUTINFO(Mk3) @@ -46,67 +44,61 @@ STDINPUTINFO(Mk3) static struct BurnDIPInfo Mk3DIPList[]= { - {0x1b, 0xff, 0xff, 0x7d, NULL }, - {0x1c, 0xff, 0xff, 0x04, NULL }, - {0x1d, 0xff, 0xff, 0x10, NULL }, - {0x1e, 0xff, 0xff, 0xc0, NULL }, - {0x1f, 0xff, 0xff, 0x10, NULL }, + {0x1c, 0xff, 0xff, 0x7d, NULL }, + {0x1d, 0xff, 0xff, 0xd4, NULL }, {0 , 0xfe, 0 , 2, "Test Switch" }, - {0x1b, 0x01, 0x01, 0x01, "Off" }, - {0x1b, 0x01, 0x01, 0x00, "On" }, + {0x1c, 0x01, 0x01, 0x01, "Off" }, + {0x1c, 0x01, 0x01, 0x00, "On" }, {0 , 0xfe, 0 , 2, "Counters" }, - {0x1b, 0x01, 0x02, 0x02, "One" }, - {0x1b, 0x01, 0x02, 0x00, "Two" }, + {0x1c, 0x01, 0x02, 0x02, "One" }, + {0x1c, 0x01, 0x02, 0x00, "Two" }, {0 , 0xfe, 0 , 19, "Coinage" }, - {0x1b, 0x01, 0x7c, 0x7c, "USA-1" }, - {0x1b, 0x01, 0x7c, 0x3c, "USA-2" }, - {0x1b, 0x01, 0x7c, 0x5c, "USA-3" }, - {0x1b, 0x01, 0x7c, 0x1c, "USA-4" }, - {0x1b, 0x01, 0x7c, 0x6c, "USA-ECA" }, - {0x1b, 0x01, 0x7c, 0x0c, "USA-Free Play" }, - {0x1b, 0x01, 0x7c, 0x74, "German-1" }, - {0x1b, 0x01, 0x7c, 0x34, "German-2" }, - {0x1b, 0x01, 0x7c, 0x54, "German-3" }, - {0x1b, 0x01, 0x7c, 0x14, "German-4" }, - {0x1b, 0x01, 0x7c, 0x64, "German-5" }, - {0x1b, 0x01, 0x7c, 0x24, "German-ECA" }, - {0x1b, 0x01, 0x7c, 0x04, "German-Free Play" }, - {0x1b, 0x01, 0x7c, 0x78, "French-1" }, - {0x1b, 0x01, 0x7c, 0x38, "French-2" }, - {0x1b, 0x01, 0x7c, 0x58, "French-3" }, - {0x1b, 0x01, 0x7c, 0x18, "French-4" }, - {0x1b, 0x01, 0x7c, 0x68, "French-ECA" }, - {0x1b, 0x01, 0x7c, 0x08, "French-Free Play" }, + {0x1c, 0x01, 0x7c, 0x7c, "USA-1" }, + {0x1c, 0x01, 0x7c, 0x3c, "USA-2" }, + {0x1c, 0x01, 0x7c, 0x5c, "USA-3" }, + {0x1c, 0x01, 0x7c, 0x1c, "USA-4" }, + {0x1c, 0x01, 0x7c, 0x6c, "USA-ECA" }, + {0x1c, 0x01, 0x7c, 0x0c, "USA-Free Play" }, + {0x1c, 0x01, 0x7c, 0x74, "German-1" }, + {0x1c, 0x01, 0x7c, 0x34, "German-2" }, + {0x1c, 0x01, 0x7c, 0x54, "German-3" }, + {0x1c, 0x01, 0x7c, 0x14, "German-4" }, + {0x1c, 0x01, 0x7c, 0x64, "German-5" }, + {0x1c, 0x01, 0x7c, 0x24, "German-ECA" }, + {0x1c, 0x01, 0x7c, 0x04, "German-Free Play" }, + {0x1c, 0x01, 0x7c, 0x78, "French-1" }, + {0x1c, 0x01, 0x7c, 0x38, "French-2" }, + {0x1c, 0x01, 0x7c, 0x58, "French-3" }, + {0x1c, 0x01, 0x7c, 0x18, "French-4" }, + {0x1c, 0x01, 0x7c, 0x68, "French-ECA" }, + {0x1c, 0x01, 0x7c, 0x08, "French-Free Play" }, {0 , 0xfe, 0 , 2, "Coinage Source" }, - {0x1b, 0x01, 0x80, 0x80, "Dipswitch" }, - {0x1b, 0x01, 0x80, 0x00, "CMOS" }, + {0x1c, 0x01, 0x80, 0x80, "Dipswitch" }, + {0x1c, 0x01, 0x80, 0x00, "CMOS" }, {0 , 0xfe, 0 , 2, "Powerup Test" }, - {0x1c, 0x01, 0x02, 0x00, "Off" }, - {0x1c, 0x01, 0x02, 0x02, "On" }, + {0x1d, 0x01, 0x02, 0x00, "Off" }, + {0x1d, 0x01, 0x02, 0x02, "On" }, {0 , 0xfe, 0 , 2, "Bill Validator" }, - {0x1c, 0x01, 0x04, 0x04, "Off" }, - {0x1c, 0x01, 0x04, 0x00, "On" }, + {0x1d, 0x01, 0x04, 0x04, "Off" }, + {0x1d, 0x01, 0x04, 0x00, "On" }, {0 , 0xfe, 0 , 2, "Attract Sound" }, - {0x1c, 0x01, 0x10, 0x00, "Off" }, - {0x1c, 0x01, 0x10, 0x10, "On" }, + {0x1d, 0x01, 0x10, 0x00, "Off" }, + {0x1d, 0x01, 0x10, 0x10, "On" }, {0 , 0xfe, 0 , 2, "Blood" }, - {0x1c, 0x01, 0x40, 0x00, "Off" }, - {0x1c, 0x01, 0x40, 0x40, "On" }, + {0x1d, 0x01, 0x40, 0x00, "Off" }, + {0x1d, 0x01, 0x40, 0x40, "On" }, {0 , 0xfe, 0 , 2, "Violence" }, - {0x1c, 0x01, 0x80, 0x00, "Off" }, - {0x1c, 0x01, 0x80, 0x80, "On" }, - - {0 , 0xfe, 0 , 1, "Service Mode (No Toggle)" }, - {0x1d, 0x01, 0x10, 0x10, "Off" }, + {0x1d, 0x01, 0x80, 0x00, "Off" }, + {0x1d, 0x01, 0x80, 0x80, "On" }, }; STDDIPINFO(Mk3) @@ -154,11 +146,10 @@ static struct BurnInputInfo OpeniceInputList[] = { {"Reset", BIT_DIGITAL, &nWolfReset, "reset"}, {"Service", BIT_DIGITAL, nWolfUnitJoy3 + 6, "service"}, + {"Service Mode", BIT_DIGITAL, nWolfUnitJoy3 + 4, "diag"}, {"Tilt", BIT_DIGITAL, nWolfUnitJoy3 + 3, "tilt"}, {"Dip A", BIT_DIPSWITCH, nWolfUnitDSW + 0, "dip"}, {"Dip B", BIT_DIPSWITCH, nWolfUnitDSW + 1, "dip"}, - {"Dip C", BIT_DIPSWITCH, nWolfUnitDSW + 2, "dip"}, - {"Dip D", BIT_DIPSWITCH, nWolfUnitDSW + 3, "dip"}, }; STDINPUTINFO(Openice) @@ -166,70 +157,66 @@ STDINPUTINFO(Openice) static struct BurnDIPInfo OpeniceDIPList[]= { - {0x27, 0xff, 0xff, 0xbe, NULL }, - {0x28, 0xff, 0xff, 0x0b, NULL }, - {0x29, 0xff, 0xff, 0x80, NULL }, - {0x2a, 0xff, 0xff, 0x10, NULL }, + {0x28, 0xff, 0xff, 0xbe, NULL }, + {0x29, 0xff, 0xff, 0x8b, NULL }, {0 , 0xfe, 0 , 2, "Coinage Source" }, - {0x27, 0x01, 0x01, 0x01, "Dipswitch" }, - {0x27, 0x01, 0x01, 0x00, "CMOS" }, + {0x28, 0x01, 0x01, 0x01, "Dipswitch" }, + {0x28, 0x01, 0x01, 0x00, "CMOS" }, {0 , 0xfe, 0 , 23, "Coinage" }, - {0x27, 0x01, 0x3e, 0x3e, "USA-1" }, - {0x27, 0x01, 0x3e, 0x3c, "USA-2" }, - {0x27, 0x01, 0x3e, 0x3a, "USA-3" }, - {0x27, 0x01, 0x3e, 0x38, "USA-4" }, - {0x27, 0x01, 0x3e, 0x34, "USA-9" }, - {0x27, 0x01, 0x3e, 0x32, "USA-10" }, - {0x27, 0x01, 0x3e, 0x36, "USA-ECA" }, - {0x27, 0x01, 0x3e, 0x30, "USA-Free Play" }, - {0x27, 0x01, 0x3e, 0x2e, "German-1" }, - {0x27, 0x01, 0x3e, 0x2c, "German-2" }, - {0x27, 0x01, 0x3e, 0x2a, "German-3" }, - {0x27, 0x01, 0x3e, 0x28, "German-4" }, - {0x27, 0x01, 0x3e, 0x24, "German-5" }, - {0x27, 0x01, 0x3e, 0x26, "German-ECA" }, - {0x27, 0x01, 0x3e, 0x20, "German-Free Play" }, - {0x27, 0x01, 0x3e, 0x1e, "French-1" }, - {0x27, 0x01, 0x3e, 0x1c, "French-2" }, - {0x27, 0x01, 0x3e, 0x1a, "French-3" }, - {0x27, 0x01, 0x3e, 0x18, "French-4" }, - {0x27, 0x01, 0x3e, 0x14, "French-11" }, - {0x27, 0x01, 0x3e, 0x12, "French-12" }, - {0x27, 0x01, 0x3e, 0x16, "French-ECA" }, - {0x27, 0x01, 0x3e, 0x10, "French-Free Play" }, + {0x28, 0x01, 0x3e, 0x3e, "USA-1" }, + {0x28, 0x01, 0x3e, 0x3c, "USA-2" }, + {0x28, 0x01, 0x3e, 0x3a, "USA-3" }, + {0x28, 0x01, 0x3e, 0x38, "USA-4" }, + {0x28, 0x01, 0x3e, 0x34, "USA-9" }, + {0x28, 0x01, 0x3e, 0x32, "USA-10" }, + {0x28, 0x01, 0x3e, 0x36, "USA-ECA" }, + {0x28, 0x01, 0x3e, 0x30, "USA-Free Play" }, + {0x28, 0x01, 0x3e, 0x2e, "German-1" }, + {0x28, 0x01, 0x3e, 0x2c, "German-2" }, + {0x28, 0x01, 0x3e, 0x2a, "German-3" }, + {0x28, 0x01, 0x3e, 0x28, "German-4" }, + {0x28, 0x01, 0x3e, 0x24, "German-5" }, + {0x28, 0x01, 0x3e, 0x26, "German-ECA" }, + {0x28, 0x01, 0x3e, 0x20, "German-Free Play" }, + {0x28, 0x01, 0x3e, 0x1e, "French-1" }, + {0x28, 0x01, 0x3e, 0x1c, "French-2" }, + {0x28, 0x01, 0x3e, 0x1a, "French-3" }, + {0x28, 0x01, 0x3e, 0x18, "French-4" }, + {0x28, 0x01, 0x3e, 0x14, "French-11" }, + {0x28, 0x01, 0x3e, 0x12, "French-12" }, + {0x28, 0x01, 0x3e, 0x16, "French-ECA" }, + {0x28, 0x01, 0x3e, 0x10, "French-Free Play" }, {0 , 0xfe, 0 , 2, "Counters" }, - {0x27, 0x01, 0x40, 0x40, "One" }, - {0x27, 0x01, 0x40, 0x00, "Two" }, + {0x28, 0x01, 0x40, 0x40, "One" }, + {0x28, 0x01, 0x40, 0x00, "Two" }, {0 , 0xfe, 0 , 2, "Bill Validator" }, - {0x28, 0x01, 0x01, 0x01, "Off" }, - {0x28, 0x01, 0x01, 0x00, "On" }, + {0x29, 0x01, 0x01, 0x01, "Off" }, + {0x29, 0x01, 0x01, 0x00, "On" }, {0 , 0xfe, 0 , 2, "Attract Sound" }, - {0x28, 0x01, 0x02, 0x00, "Off" }, - {0x28, 0x01, 0x02, 0x02, "On" }, + {0x29, 0x01, 0x02, 0x00, "Off" }, + {0x29, 0x01, 0x02, 0x02, "On" }, {0 , 0xfe, 0 , 2, "Powerup Test" }, - {0x28, 0x01, 0x04, 0x00, "Off" }, - {0x28, 0x01, 0x04, 0x04, "On" }, + {0x29, 0x01, 0x04, 0x00, "Off" }, + {0x29, 0x01, 0x04, 0x04, "On" }, {0 , 0xfe, 0 , 2, "Head Size" }, - {0x28, 0x01, 0x08, 0x08, "Normal" }, - {0x28, 0x01, 0x08, 0x00, "Large" }, + {0x29, 0x01, 0x08, 0x08, "Normal" }, + {0x29, 0x01, 0x08, 0x00, "Large" }, {0 , 0xfe, 0 , 2, "Cabinet" }, - {0x28, 0x01, 0x10, 0x00, "2-player" }, - {0x28, 0x01, 0x10, 0x10, "4-player" }, + {0x29, 0x01, 0x10, 0x00, "2-player" }, + {0x29, 0x01, 0x10, 0x10, "4-player" }, {0 , 0xfe, 0 , 2, "Test Switch" }, - {0x28, 0x01, 0x80, 0x80, "Off" }, - {0x28, 0x01, 0x80, 0x00, "On" }, + {0x29, 0x01, 0x80, 0x80, "Off" }, + {0x29, 0x01, 0x80, 0x00, "On" }, - {0 , 0xfe, 0 , 1, "Service Mode (No Toggle)" }, - {0x29, 0x01, 0x10, 0x10, "Off" }, }; STDDIPINFO(Openice) @@ -277,10 +264,10 @@ static struct BurnInputInfo NbahangtInputList[] = { {"Reset", BIT_DIGITAL, &nWolfReset, "reset"}, {"Service", BIT_DIGITAL, nWolfUnitJoy3 + 6, "service"}, + {"Service Mode", BIT_DIGITAL, nWolfUnitJoy3 + 4, "diag"}, {"Tilt", BIT_DIGITAL, nWolfUnitJoy3 + 3, "tilt"}, {"Dip A", BIT_DIPSWITCH, nWolfUnitDSW + 0, "dip"}, {"Dip B", BIT_DIPSWITCH, nWolfUnitDSW + 1, "dip"}, - {"Dip C", BIT_DIPSWITCH, nWolfUnitDSW + 2, "dip"}, }; STDINPUTINFO(Nbahangt) @@ -288,50 +275,46 @@ STDINPUTINFO(Nbahangt) static struct BurnDIPInfo NbahangtDIPList[]= { - {0x27, 0xff, 0xff, 0x7d, NULL }, - {0x28, 0xff, 0xff, 0x7f, NULL }, - {0x29, 0xff, 0xff, 0x10, NULL }, + {0x28, 0xff, 0xff, 0x7d, NULL }, + {0x29, 0xff, 0xff, 0x7f, NULL }, {0 , 0xfe, 0 , 2, "Test Switch" }, - {0x27, 0x01, 0x01, 0x01, "Off" }, - {0x27, 0x01, 0x01, 0x00, "On" }, + {0x28, 0x01, 0x01, 0x01, "Off" }, + {0x28, 0x01, 0x01, 0x00, "On" }, {0 , 0xfe, 0 , 2, "Powerup Test" }, - {0x27, 0x01, 0x02, 0x00, "Off" }, - {0x27, 0x01, 0x02, 0x02, "On" }, + {0x28, 0x01, 0x02, 0x00, "Off" }, + {0x28, 0x01, 0x02, 0x02, "On" }, {0 , 0xfe, 0 , 2, "Bill Validator" }, - {0x27, 0x01, 0x40, 0x40, "Off" }, - {0x27, 0x01, 0x40, 0x00, "On" }, + {0x28, 0x01, 0x40, 0x40, "Off" }, + {0x28, 0x01, 0x40, 0x00, "On" }, {0 , 0xfe, 0 , 2, "Cabinet" }, - {0x27, 0x01, 0x80, 0x00, "2-player" }, - {0x27, 0x01, 0x80, 0x80, "4-player" }, + {0x28, 0x01, 0x80, 0x00, "2-player" }, + {0x28, 0x01, 0x80, 0x80, "4-player" }, {0 , 0xfe, 0 , 3, "Counters" }, - {0x28, 0x01, 0x03, 0x03, "One, 1/1" }, - {0x28, 0x01, 0x03, 0x02, "One, Totalizing" }, - {0x28, 0x01, 0x03, 0x01, "Two, 1/1" }, + {0x29, 0x01, 0x03, 0x03, "One, 1/1" }, + {0x29, 0x01, 0x03, 0x02, "One, Totalizing" }, + {0x29, 0x01, 0x03, 0x01, "Two, 1/1" }, {0 , 0xfe, 0 , 3, "Country" }, - {0x28, 0x01, 0x0c, 0x0c, "USA" }, - {0x28, 0x01, 0x0c, 0x08, "French" }, - {0x28, 0x01, 0x0c, 0x04, "German" }, + {0x29, 0x01, 0x0c, 0x0c, "USA" }, + {0x29, 0x01, 0x0c, 0x08, "French" }, + {0x29, 0x01, 0x0c, 0x04, "German" }, {0 , 0xfe, 0 , 6, "Coinage" }, - {0x28, 0x01, 0x70, 0x70, "1" }, - {0x28, 0x01, 0x70, 0x30, "2" }, - {0x28, 0x01, 0x70, 0x50, "3" }, - {0x28, 0x01, 0x70, 0x10, "4" }, - {0x28, 0x01, 0x70, 0x60, "ECA" }, - {0x28, 0x01, 0x70, 0x00, "Free Play" }, + {0x29, 0x01, 0x70, 0x70, "1" }, + {0x29, 0x01, 0x70, 0x30, "2" }, + {0x29, 0x01, 0x70, 0x50, "3" }, + {0x29, 0x01, 0x70, 0x10, "4" }, + {0x29, 0x01, 0x70, 0x60, "ECA" }, + {0x29, 0x01, 0x70, 0x00, "Free Play" }, {0 , 0xfe, 0 , 2, "Coinage Source" }, - {0x28, 0x01, 0x80, 0x80, "Dipswitch" }, - {0x28, 0x01, 0x80, 0x00, "CMOS" }, - - {0 , 0xfe, 0 , 1, "Service Mode (No Toggle)" }, - {0x29, 0x01, 0x10, 0x10, "Off" }, + {0x29, 0x01, 0x80, 0x80, "Dipswitch" }, + {0x29, 0x01, 0x80, 0x00, "CMOS" }, }; STDDIPINFO(Nbahangt) @@ -369,12 +352,10 @@ static struct BurnInputInfo RmpgwtInputList[] = { {"Reset", BIT_DIGITAL, &nWolfReset, "reset"}, {"Service", BIT_DIGITAL, nWolfUnitJoy3 + 6, "service"}, + {"Service Mode", BIT_DIGITAL, nWolfUnitJoy3 + 4, "diag"}, {"Tilt", BIT_DIGITAL, nWolfUnitJoy3 + 3, "tilt"}, {"Dip A", BIT_DIPSWITCH, nWolfUnitDSW + 0, "dip"}, {"Dip B", BIT_DIPSWITCH, nWolfUnitDSW + 1, "dip"}, - {"Dip C", BIT_DIPSWITCH, nWolfUnitDSW + 2, "dip"}, - {"Dip D", BIT_DIPSWITCH, nWolfUnitDSW + 3, "dip"}, - {"Dip E", BIT_DIPSWITCH, nWolfUnitDSW + 4, "dip"}, }; STDINPUTINFO(Rmpgwt) @@ -382,59 +363,53 @@ STDINPUTINFO(Rmpgwt) static struct BurnDIPInfo RmpgwtDIPList[]= { - {0x1e, 0xff, 0xff, 0xbe, NULL }, - {0x1f, 0xff, 0xff, 0x01, NULL }, - {0x20, 0xff, 0xff, 0x00, NULL }, - {0x21, 0xff, 0xff, 0x80, NULL }, - {0x22, 0xff, 0xff, 0x10, NULL }, + {0x1f, 0xff, 0xff, 0xbe, NULL }, + {0x20, 0xff, 0xff, 0x81, NULL }, {0 , 0xfe, 0 , 2, "Coinage Source" }, - {0x1e, 0x01, 0x01, 0x01, "Dipswitch" }, - {0x1e, 0x01, 0x01, 0x00, "CMOS" }, + {0x1f, 0x01, 0x01, 0x01, "Dipswitch" }, + {0x1f, 0x01, 0x01, 0x00, "CMOS" }, {0 , 0xfe, 0 , 23, "Coinage" }, - {0x1e, 0x01, 0x3e, 0x3e, "USA-1" }, - {0x1e, 0x01, 0x3e, 0x3c, "USA-2" }, - {0x1e, 0x01, 0x3e, 0x3a, "USA-3" }, - {0x1e, 0x01, 0x3e, 0x38, "USA-4" }, - {0x1e, 0x01, 0x3e, 0x34, "USA-9" }, - {0x1e, 0x01, 0x3e, 0x32, "USA-10" }, - {0x1e, 0x01, 0x3e, 0x36, "USA-ECA" }, - {0x1e, 0x01, 0x3e, 0x30, "USA-Free Play" }, - {0x1e, 0x01, 0x3e, 0x2e, "German-1" }, - {0x1e, 0x01, 0x3e, 0x2c, "German-2" }, - {0x1e, 0x01, 0x3e, 0x2a, "German-3" }, - {0x1e, 0x01, 0x3e, 0x28, "German-4" }, - {0x1e, 0x01, 0x3e, 0x24, "German-5" }, - {0x1e, 0x01, 0x3e, 0x26, "German-ECA" }, - {0x1e, 0x01, 0x3e, 0x20, "German-Free Play" }, - {0x1e, 0x01, 0x3e, 0x1e, "French-1" }, - {0x1e, 0x01, 0x3e, 0x1c, "French-2" }, - {0x1e, 0x01, 0x3e, 0x1a, "French-3" }, - {0x1e, 0x01, 0x3e, 0x18, "French-4" }, - {0x1e, 0x01, 0x3e, 0x14, "French-11" }, - {0x1e, 0x01, 0x3e, 0x12, "French-12" }, - {0x1e, 0x01, 0x3e, 0x16, "French-ECA" }, - {0x1e, 0x01, 0x3e, 0x10, "French-Free Play" }, + {0x1f, 0x01, 0x3e, 0x3e, "USA-1" }, + {0x1f, 0x01, 0x3e, 0x3c, "USA-2" }, + {0x1f, 0x01, 0x3e, 0x3a, "USA-3" }, + {0x1f, 0x01, 0x3e, 0x38, "USA-4" }, + {0x1f, 0x01, 0x3e, 0x34, "USA-9" }, + {0x1f, 0x01, 0x3e, 0x32, "USA-10" }, + {0x1f, 0x01, 0x3e, 0x36, "USA-ECA" }, + {0x1f, 0x01, 0x3e, 0x30, "USA-Free Play" }, + {0x1f, 0x01, 0x3e, 0x2e, "German-1" }, + {0x1f, 0x01, 0x3e, 0x2c, "German-2" }, + {0x1f, 0x01, 0x3e, 0x2a, "German-3" }, + {0x1f, 0x01, 0x3e, 0x28, "German-4" }, + {0x1f, 0x01, 0x3e, 0x24, "German-5" }, + {0x1f, 0x01, 0x3e, 0x26, "German-ECA" }, + {0x1f, 0x01, 0x3e, 0x20, "German-Free Play" }, + {0x1f, 0x01, 0x3e, 0x1e, "French-1" }, + {0x1f, 0x01, 0x3e, 0x1c, "French-2" }, + {0x1f, 0x01, 0x3e, 0x1a, "French-3" }, + {0x1f, 0x01, 0x3e, 0x18, "French-4" }, + {0x1f, 0x01, 0x3e, 0x14, "French-11" }, + {0x1f, 0x01, 0x3e, 0x12, "French-12" }, + {0x1f, 0x01, 0x3e, 0x16, "French-ECA" }, + {0x1f, 0x01, 0x3e, 0x10, "French-Free Play" }, {0 , 0xfe, 0 , 2, "Counters" }, - {0x1e, 0x01, 0x40, 0x40, "One" }, - {0x1e, 0x01, 0x40, 0x00, "Two" }, + {0x1f, 0x01, 0x40, 0x40, "One" }, + {0x1f, 0x01, 0x40, 0x00, "Two" }, {0 , 0xfe, 0 , 2, "Bill Validator" }, - {0x1f, 0x01, 0x01, 0x01, "Off" }, - {0x1f, 0x01, 0x01, 0x00, "On" }, + {0x20, 0x01, 0x01, 0x01, "Off" }, + {0x20, 0x01, 0x01, 0x00, "On" }, {0 , 0xfe, 0 , 2, "Powerup Test" }, - {0x1f, 0x01, 0x04, 0x00, "Off" }, - {0x1f, 0x01, 0x04, 0x04, "On" }, + {0x20, 0x01, 0x04, 0x00, "Off" }, + {0x20, 0x01, 0x04, 0x04, "On" }, {0 , 0xfe, 0 , 2, "Test Switch" }, - {0x1f, 0x01, 0x80, 0x80, "Off" }, - {0x1f, 0x01, 0x80, 0x00, "On" }, - - {0 , 0xfe, 0 , 2, "Service Mode (No Toggle)" }, - {0x20, 0x01, 0x10, 0x10, "Off" }, + {0x20, 0x01, 0x80, 0x80, "Off" }, + {0x20, 0x01, 0x80, 0x00, "On" }, }; STDDIPINFO(Rmpgwt) @@ -466,10 +441,10 @@ static struct BurnInputInfo WwfmaniaInputList[] = { {"Reset", BIT_DIGITAL, &nWolfReset, "reset"}, {"Service", BIT_DIGITAL, nWolfUnitJoy3 + 6, "service"}, + {"Service Mode", BIT_DIGITAL, nWolfUnitJoy3 + 4, "diag"}, {"Tilt", BIT_DIGITAL, nWolfUnitJoy3 + 3, "tilt"}, {"Dip A", BIT_DIPSWITCH, nWolfUnitDSW + 0, "dip"}, {"Dip B", BIT_DIPSWITCH, nWolfUnitDSW + 1, "dip"}, - {"Dip C", BIT_DIPSWITCH, nWolfUnitDSW + 2, "dip"}, }; STDINPUTINFO(Wwfmania) @@ -477,50 +452,46 @@ STDINPUTINFO(Wwfmania) static struct BurnDIPInfo WwfmaniaDIPList[]= { - {0x19, 0xff, 0xff, 0xfd, NULL }, - {0x1a, 0xff, 0xff, 0x7f, NULL }, - {0x1b, 0xff, 0xff, 0x10, NULL }, + {0x1a, 0xff, 0xff, 0xfd, NULL }, + {0x1b, 0xff, 0xff, 0xff, NULL }, {0 , 0xfe, 0 , 2, "Test Switch" }, - {0x19, 0x01, 0x01, 0x01, "Off" }, - {0x19, 0x01, 0x01, 0x00, "On" }, + {0x1a, 0x01, 0x01, 0x01, "Off" }, + {0x1a, 0x01, 0x01, 0x00, "On" }, {0 , 0xfe, 0 , 2, "Powerup Test" }, - {0x19, 0x01, 0x02, 0x00, "Off" }, - {0x19, 0x01, 0x02, 0x02, "On" }, + {0x1a, 0x01, 0x02, 0x00, "Off" }, + {0x1a, 0x01, 0x02, 0x02, "On" }, {0 , 0xfe, 0 , 2, "Realtime Clock" }, - {0x19, 0x01, 0x08, 0x08, "No" }, - {0x19, 0x01, 0x08, 0x00, "Yes" }, + {0x1a, 0x01, 0x08, 0x08, "No" }, + {0x1a, 0x01, 0x08, 0x00, "Yes" }, {0 , 0xfe, 0 , 2, "Bill Validator" }, - {0x19, 0x01, 0x40, 0x40, "Off" }, - {0x19, 0x01, 0x40, 0x00, "On" }, + {0x1a, 0x01, 0x40, 0x40, "Off" }, + {0x1a, 0x01, 0x40, 0x00, "On" }, {0 , 0xfe, 0 , 3, "Counters" }, - {0x1a, 0x01, 0x03, 0x03, "One, 1/1" }, - {0x1a, 0x01, 0x03, 0x02, "One, Totalizing" }, - {0x1a, 0x01, 0x03, 0x01, "Two, 1/1" }, + {0x1b, 0x01, 0x03, 0x03, "One, 1/1" }, + {0x1b, 0x01, 0x03, 0x02, "One, Totalizing" }, + {0x1b, 0x01, 0x03, 0x01, "Two, 1/1" }, {0 , 0xfe, 0 , 3, "Country" }, - {0x1a, 0x01, 0x0c, 0x0c, "USA" }, - {0x1a, 0x01, 0x0c, 0x08, "French" }, - {0x1a, 0x01, 0x0c, 0x04, "German" }, + {0x1b, 0x01, 0x0c, 0x0c, "USA" }, + {0x1b, 0x01, 0x0c, 0x08, "French" }, + {0x1b, 0x01, 0x0c, 0x04, "German" }, {0 , 0xfe, 0 , 6, "Coinage" }, - {0x1a, 0x01, 0x70, 0x70, "1" }, - {0x1a, 0x01, 0x70, 0x30, "2" }, - {0x1a, 0x01, 0x70, 0x50, "3" }, - {0x1a, 0x01, 0x70, 0x10, "4" }, - {0x1a, 0x01, 0x70, 0x60, "ECA" }, - {0x1a, 0x01, 0x70, 0x00, "Free Play" }, + {0x1b, 0x01, 0x70, 0x70, "1" }, + {0x1b, 0x01, 0x70, 0x30, "2" }, + {0x1b, 0x01, 0x70, 0x50, "3" }, + {0x1b, 0x01, 0x70, 0x10, "4" }, + {0x1b, 0x01, 0x70, 0x60, "ECA" }, + {0x1b, 0x01, 0x70, 0x00, "Free Play" }, {0 , 0xfe, 0 , 2, "Coinage Source" }, - {0x1a, 0x01, 0x80, 0x80, "Dipswitch" }, - {0x1a, 0x01, 0x80, 0x00, "CMOS" }, - - {0 , 0xfe, 0 , 1, "Service Mode (No Toggle)" }, - {0x1b, 0x01, 0x10, 0x10, "Off" }, + {0x1b, 0x01, 0x80, 0x80, "Dipswitch" }, + {0x1b, 0x01, 0x80, 0x00, "CMOS" }, }; STDDIPINFO(Wwfmania) diff --git a/src/burn/drv/midway/midwunit.cpp b/src/burn/drv/midway/midwunit.cpp index 8ce054c8c..607aaae1e 100644 --- a/src/burn/drv/midway/midwunit.cpp +++ b/src/burn/drv/midway/midwunit.cpp @@ -1,7 +1,9 @@ // midway wolf unit // todo: -// 1: fix dips (f.ex, service mode is "Coinage Source" for Rampage W.T.) +// 1: wwfmania crashes +// 2: openice goes bonkers on game start, cpu players wont move +// 1 + 2 is probably due to cmos issues // 3: figure out why last line doesn't always render in rampgwt #include "tiles_generic.h" @@ -32,9 +34,6 @@ UINT8 nWolfUnitJoy3[32]; UINT8 nWolfUnitDSW[8]; UINT8 nWolfReset = 0; static UINT32 DrvInputs[4]; -static INT32 nIOShuffle[16]; - - static bool bGfxRomLarge = true; static UINT32 nGfxBankOffset[2] = { 0x000000, 0x400000 }; @@ -43,7 +42,9 @@ static bool bCMOSWriteEnable = false; static UINT32 nVideoBank = 1; static UINT16 nDMA[32]; static UINT16 nWolfUnitCtrl = 0; +static INT32 nIOShuffle[16]; +static INT32 wwfmania = 0; #define RGB888(r,g,b) ((r) | ((g) << 8) | ((b) << 16)) #define RGB888_r(x) ((x) & 0xFF) @@ -105,27 +106,69 @@ static UINT16 WolfUnitIoRead(UINT32 address) UINT32 offset = (address >> 4); offset = nIOShuffle[offset % 16]; switch (offset) { - case 0: return ~DrvInputs[0]; - case 1: return ~DrvInputs[1]; - case 2: return DrvInputs[2]; - case 3: return ~DrvInputs[3]; - case 4: { - sound_sync(); - return ((MidwaySerialPicStatus() << 12) | (Dcs2kControlRead() & 0xfff)); + case 0: return ~DrvInputs[0]; + case 1: return ~DrvInputs[1]; + case 2: return nWolfUnitDSW[0] | (nWolfUnitDSW[1] << 8); + case 3: return ~DrvInputs[3]; + case 4: { + sound_sync(); + return ((MidwaySerialPicStatus() << 12) | (Dcs2kControlRead() & 0xfff)); + } + default: + return ~0; } - default: - return ~0; - } } void WolfUnitIoWrite(UINT32 address, UINT16 value) { + // if (wwfmania) bprintf(0, _T("addy %X %x.\n"), address, value); + if (wwfmania && address <= 0x180000f) { + for (INT32 i = 0; i < 16; i++) nIOShuffle[i] = i % 8; + + switch (value) { + case 1: { + nIOShuffle[0x04] = 0; + nIOShuffle[0x08] = 1; + nIOShuffle[0x01] = 2; + nIOShuffle[0x09] = 3; + nIOShuffle[0x02] = 4; + break; + } + case 2: { + nIOShuffle[0x08] = 0; + nIOShuffle[0x02] = 1; + nIOShuffle[0x04] = 2; + nIOShuffle[0x06] = 3; + nIOShuffle[0x01] = 4; + break; + } + case 3: { + nIOShuffle[0x01] = 0; + nIOShuffle[0x08] = 1; + nIOShuffle[0x02] = 2; + nIOShuffle[0x0A] = 3; + nIOShuffle[0x05] = 4; + break; + } + case 4: { + nIOShuffle[0x02] = 0; + nIOShuffle[0x04] = 1; + nIOShuffle[0x01] = 2; + nIOShuffle[0x07] = 3; + nIOShuffle[0x08] = 4; + break; + } + } + + return; + } + UINT32 offset = (address >> 4) % 8; switch(offset) { case 1: sound_sync(); Dcs2kResetWrite(value & 0x10); - MidwaySerialPicReset(); + MidwaySerialPicReset(); break; } } @@ -149,8 +192,8 @@ UINT16 WolfUnitSecurityRead(UINT32 address) void WolfUnitSecurityWrite(UINT32 address, UINT16 value) { - if (address == 0x01600000) { - MidwaySerialPicWrite(value); + if (address == 0x01600000) { + MidwaySerialPicWrite(value); } } @@ -326,7 +369,6 @@ static void WolfDoReset() INT32 WolfUnitInit() { - MemIndex(); INT32 nLen = MemEnd - (UINT8 *)0; @@ -354,6 +396,8 @@ INT32 WolfUnitInit() for (INT32 i = 0; i < 16; i++) nIOShuffle[i] = i % 8; + wwfmania = (strstr(BurnDrvGetTextA(DRV_NAME), "wwfmania") ? 1 : 0); + Dcs2kInit(DCS_8K, MHz(10)); Dcs2kMapSoundROM(DrvSoundROM, 0x1000000); Dcs2kSetVolume(2.50); @@ -423,7 +467,7 @@ static void MakeInputs() { DrvInputs[0] = 0; DrvInputs[1] = 0; - DrvInputs[2] = 0xFD7D | 0x0200; + DrvInputs[2] = 0; // not used DrvInputs[3] = 0; for (INT32 i = 0; i < 16; i++) { @@ -431,8 +475,6 @@ static void MakeInputs() if (nWolfUnitJoy2[i] & 1) DrvInputs[1] |= (1 << i); if (nWolfUnitJoy3[i] & 1) DrvInputs[3] |= (1 << i); } - - if (nWolfUnitDSW[0] & 1) DrvInputs[2] ^= 0x08000; } static void HandleDCSIRQ(INT32 line) @@ -492,7 +534,9 @@ INT32 WolfUnitExit() BurnFree(AllMem); GenericTilesExit(); - + + wwfmania = 0; + return 0; }