This commit is contained in:
dinkc64 2024-07-05 09:38:19 -04:00
commit 1150543952
8 changed files with 1041 additions and 799 deletions

View File

@ -272,7 +272,6 @@ extern INT32 Forgottn;
extern INT32 Cps1QsHack;
extern INT32 Kodh;
extern INT32 Cawingb;
extern INT32 Wofh;
extern INT32 Sf2thndr;
extern INT32 Pzloop2;
extern INT32 Hkittymp;
@ -282,6 +281,12 @@ extern INT32 Dinohunt;
extern INT32 Port6SoundWrite;
extern INT32 CpsBootlegEEPROM;
extern INT32 Cps2Turbo;
extern INT32 Jurassic99;
extern INT32 Dinoh;
extern INT32 Wofhfh;
extern INT32 Wofsgzb;
extern INT32 Wof3js;
extern INT32 Knightsh;
extern ClearOpposite<4, UINT8> clear_opposite;

View File

@ -38,7 +38,6 @@ INT32 Forgottn = 0;
INT32 Cps1QsHack = 0;
INT32 Kodh = 0;
INT32 Cawingb = 0;
INT32 Wofh = 0;
INT32 Sf2thndr = 0;
INT32 Pzloop2 = 0;
INT32 Hkittymp = 0;
@ -47,6 +46,12 @@ INT32 Dinohunt = 0;
INT32 Port6SoundWrite = 0;
INT32 CpsBootlegEEPROM = 0;
INT32 Cps2Turbo = 0;
INT32 Jurassic99 = 0;
INT32 Dinoh = 0;
INT32 Wofhfh = 0;
INT32 Wofsgzb = 0;
INT32 Wof3js = 0;
INT32 Knightsh = 0;
ClearOpposite<4, UINT8> clear_opposite;
@ -579,6 +584,15 @@ INT32 CpsRwGetInp()
CPSINPEX
#undef INP
if (Jurassic99)
Inpc001 |= (CpsInp179[0] & 1) << 7;
if (Wofsgzb)
Inpc001 |= (CpsInp179[0] & 1) << 6;
if (Dinoh)
Inp177 |= (CpsInp179[0] & 1) << 7;
if (Wofhfh || Wof3js || Knightsh)
Inp177 |= (CpsInp179[0] & 1) << 6;
if (Forgottn) {
// Handle analog controls
if (fFakeDip & 0x80) {

View File

@ -225,6 +225,44 @@ static struct BurnInputInfo DinoInputList[] =
STDINPUTINFO(Dino)
static struct BurnInputInfo Jurassic99InputList[] =
{
{"P1 Coin" , BIT_DIGITAL , CpsInp018+0 , "p1 coin" },
{"P1 Start" , BIT_DIGITAL , CpsInp018+4 , "p1 start" },
{"P1 Up" , BIT_DIGITAL , CpsInp001+3 , "p1 up" },
{"P1 Down" , BIT_DIGITAL , CpsInp001+2 , "p1 down" },
{"P1 Left" , BIT_DIGITAL , CpsInp001+1 , "p1 left" },
{"P1 Right" , BIT_DIGITAL , CpsInp001+0 , "p1 right" },
{"P1 Attack" , BIT_DIGITAL , CpsInp001+4 , "p1 fire 1"},
{"P1 Jump" , BIT_DIGITAL , CpsInp001+5 , "p1 fire 2"},
{"P1 Bomb" , BIT_DIGITAL , CpsInp001+6 , "p1 fire 3"},
{"P2 Coin" , BIT_DIGITAL , CpsInp018+1 , "p2 coin" },
{"P2 Start" , BIT_DIGITAL , CpsInp018+5 , "p2 start" },
{"P2 Up" , BIT_DIGITAL , CpsInp000+3 , "p2 up" },
{"P2 Down" , BIT_DIGITAL , CpsInp000+2 , "p2 down" },
{"P2 Left" , BIT_DIGITAL , CpsInp000+1 , "p2 left" },
{"P2 Right" , BIT_DIGITAL , CpsInp000+0 , "p2 right" },
{"P2 Attack" , BIT_DIGITAL , CpsInp000+4 , "p2 fire 1"},
{"P2 Jump" , BIT_DIGITAL , CpsInp000+5 , "p2 fire 2"},
{"P2 Bomb" , BIT_DIGITAL , CpsInp000+6 , "p2 fire 3"},
{"P3 Coin" , BIT_DIGITAL , CpsInpc001+6, "p3 coin" },
{"P3 Start" , BIT_DIGITAL , CpsInpc001+7, "p3 start" },
{"P3 Up" , BIT_DIGITAL , CpsInpc001+3, "p3 up" },
{"P3 Down" , BIT_DIGITAL , CpsInpc001+2, "p3 down" },
{"P3 Left" , BIT_DIGITAL , CpsInpc001+1, "p3 left" },
{"P3 Right" , BIT_DIGITAL , CpsInpc001+0, "p3 right" },
{"P3 Attack" , BIT_DIGITAL , CpsInpc001+4, "p3 fire 1"},
{"P3 Jump" , BIT_DIGITAL , CpsInpc001+5, "p3 fire 2"},
{"P3 Bomb" , BIT_DIGITAL , CpsInp179 +0, "p3 fire 3"}, // same as "P3 Start"
{"Reset" , BIT_DIGITAL , &CpsReset , "reset" },
{"Diagnostic" , BIT_DIGITAL , CpsInp018+6 , "diag" },
{"Service" , BIT_DIGITAL , CpsInp018+2 , "service" },
{"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
};
static struct BurnInputInfo DinohInputList[] =
{
{"P1 Coin" , BIT_DIGITAL , CpsInp018+0 , "p1 coin" },
@ -247,14 +285,15 @@ static struct BurnInputInfo DinohInputList[] =
{"P2 Jump" , BIT_DIGITAL , CpsInp000+5 , "p2 fire 2"},
{"P2 Bomb" , BIT_DIGITAL , CpsInp000+6 , "p2 fire 3"},
{"P3 Coin" , BIT_DIGITAL , CpsInp177+6, "p3 coin" },
{"P3 Start" , BIT_DIGITAL , CpsInp177+7, "p3 start" },
{"P3 Up" , BIT_DIGITAL , CpsInp177+3, "p3 up" },
{"P3 Down" , BIT_DIGITAL , CpsInp177+2, "p3 down" },
{"P3 Left" , BIT_DIGITAL , CpsInp177+1, "p3 left" },
{"P3 Right" , BIT_DIGITAL , CpsInp177+0, "p3 right" },
{"P3 Attack" , BIT_DIGITAL , CpsInp177+4, "p3 fire 1" },
{"P3 Jump" , BIT_DIGITAL , CpsInp177+5, "p3 fire 2" },
{"P3 Coin" , BIT_DIGITAL , CpsInp177+6 , "p3 coin" },
{"P3 Start" , BIT_DIGITAL , CpsInp177+7 , "p3 start" },
{"P3 Up" , BIT_DIGITAL , CpsInp177+3 , "p3 up" },
{"P3 Down" , BIT_DIGITAL , CpsInp177+2 , "p3 down" },
{"P3 Left" , BIT_DIGITAL , CpsInp177+1 , "p3 left" },
{"P3 Right" , BIT_DIGITAL , CpsInp177+0 , "p3 right" },
{"P3 Attack" , BIT_DIGITAL , CpsInp177+4 , "p3 fire 1"},
{"P3 Jump" , BIT_DIGITAL , CpsInp177+5 , "p3 fire 2"},
{"P3 Bomb" , BIT_DIGITAL , CpsInp179+0 , "p3 fire 3"}, // same as "P3 Start"
{"Reset" , BIT_DIGITAL , &CpsReset , "reset" },
{"Diagnostic" , BIT_DIGITAL , CpsInp018+6 , "diag" },
@ -264,6 +303,43 @@ static struct BurnInputInfo DinohInputList[] =
STDINPUTINFO(Dinoh)
static struct BurnInputInfo DinopicInputList[] =
{
{"P1 Coin" , BIT_DIGITAL , CpsInp018+0 , "p1 coin" },
{"P1 Start" , BIT_DIGITAL , CpsInp018+4 , "p1 start" },
{"P1 Up" , BIT_DIGITAL , CpsInp001+3 , "p1 up" },
{"P1 Down" , BIT_DIGITAL , CpsInp001+2 , "p1 down" },
{"P1 Left" , BIT_DIGITAL , CpsInp001+1 , "p1 left" },
{"P1 Right" , BIT_DIGITAL , CpsInp001+0 , "p1 right" },
{"P1 Attack" , BIT_DIGITAL , CpsInp001+4 , "p1 fire 1"},
{"P1 Jump" , BIT_DIGITAL , CpsInp001+5 , "p1 fire 2"},
{"P2 Coin" , BIT_DIGITAL , CpsInp018+1 , "p2 coin" },
{"P2 Start" , BIT_DIGITAL , CpsInp018+5 , "p2 start" },
{"P2 Up" , BIT_DIGITAL , CpsInp000+3 , "p2 up" },
{"P2 Down" , BIT_DIGITAL , CpsInp000+2 , "p2 down" },
{"P2 Left" , BIT_DIGITAL , CpsInp000+1 , "p2 left" },
{"P2 Right" , BIT_DIGITAL , CpsInp000+0 , "p2 right" },
{"P2 Attack" , BIT_DIGITAL , CpsInp000+4 , "p2 fire 1"},
{"P2 Jump" , BIT_DIGITAL , CpsInp000+5 , "p2 fire 2"},
{"P3 Coin" , BIT_DIGITAL , CpsInp177+6 , "p3 coin" },
{"P3 Start" , BIT_DIGITAL , CpsInp177+7 , "p3 start" },
{"P3 Up" , BIT_DIGITAL , CpsInp177+3 , "p3 up" },
{"P3 Down" , BIT_DIGITAL , CpsInp177+2 , "p3 down" },
{"P3 Left" , BIT_DIGITAL , CpsInp177+1 , "p3 left" },
{"P3 Right" , BIT_DIGITAL , CpsInp177+0 , "p3 right" },
{"P3 Attack" , BIT_DIGITAL , CpsInp177+4 , "p3 fire 1"},
{"P3 Jump" , BIT_DIGITAL , CpsInp177+5 , "p3 fire 2"},
{"Reset" , BIT_DIGITAL , &CpsReset , "reset" },
{"Diagnostic" , BIT_DIGITAL , CpsInp018+6 , "diag" },
{"Service" , BIT_DIGITAL , CpsInp018+2 , "service" },
{"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
};
STDINPUTINFO(Dinopic)
static struct BurnInputInfo DynwarInputList[] =
{
{"P1 Coin" , BIT_DIGITAL , CpsInp018+0, "p1 coin" },
@ -802,6 +878,7 @@ static struct BurnInputInfo KnightshInputList[] =
{"P3 Right" , BIT_DIGITAL , CpsInp177+0, "p3 right" },
{"P3 Attack" , BIT_DIGITAL , CpsInp177+4, "p3 fire 1" },
{"P3 Jump" , BIT_DIGITAL , CpsInp177+5, "p3 fire 2" },
{"P3 Special" , BIT_DIGITAL , CpsInp179+0, "p3 fire 3" }, // same as "P3 Coin"
{"Reset" , BIT_DIGITAL , &CpsReset, "reset" },
{"Diagnostic" , BIT_DIGITAL , CpsInp018+6, "diag" },
@ -1868,7 +1945,7 @@ static struct BurnInputInfo WofhfhInputList[] =
{"P3 Right" , BIT_DIGITAL , CpsInp177 + 0, "p3 right" },
{"P3 Attack" , BIT_DIGITAL , CpsInp177 + 4, "p3 fire 1" },
{"P3 Jump" , BIT_DIGITAL , CpsInp177 + 5, "p3 fire 2" },
{"P3 Fire 3" , BIT_DIGITAL , CpsInp177 + 6, "p3 fire 3" },
{"P3 Fire 3" , BIT_DIGITAL , CpsInp179 + 0, "p3 fire 3" }, // same as "P3 Coin"
{"Reset" , BIT_DIGITAL , &CpsReset , "reset" },
{"Diagnostic" , BIT_DIGITAL , CpsInp018 + 6, "diag" },
@ -1911,7 +1988,7 @@ static struct BurnInputInfo WofsgzbInputList[] =
{"P3 Right" , BIT_DIGITAL , CpsInpc001+ 0, "p3 right" }, // 17
{"P3 Attack" , BIT_DIGITAL , CpsInpc001+ 4, "p3 fire 1" }, // 18
{"P3 Jump" , BIT_DIGITAL , CpsInpc001+ 5, "p3 fire 2" }, // 19
{"P3 Fire 3" , BIT_DIGITAL , CpsInpc001+ 6, "p3 fire 3" }, // 1a same as P3 Coin
{"P3 Fire 3" , BIT_DIGITAL , CpsInp179 + 0, "p3 fire 3" }, // 1a same as "P3 Coin"
{"Reset" , BIT_DIGITAL , &CpsReset , "reset" }, // 1b
{"Diagnostic" , BIT_DIGITAL , CpsInp018 + 6, "diag" }, // 1c
@ -1947,7 +2024,47 @@ static struct BurnInputInfo WofhInputList[] =
{"P2 Jump" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" }, // 10
{"P2 Fire 3" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" }, // 11
{"P3 Coin" , BIT_DIGITAL , CpsInp177+6, "p3 coin" }, // 12 doesn't work in some sets?
{"P3 Start" , BIT_DIGITAL , CpsInp177+7, "p3 start" }, // 12
{"P3 Up" , BIT_DIGITAL , CpsInp177+3, "p3 up" }, // 13
{"P3 Down" , BIT_DIGITAL , CpsInp177+2, "p3 down" }, // 14
{"P3 Left" , BIT_DIGITAL , CpsInp177+1, "p3 left" }, // 15
{"P3 Right" , BIT_DIGITAL , CpsInp177+0, "p3 right" }, // 16
{"P3 Attack" , BIT_DIGITAL , CpsInp177+4, "p3 fire 1" }, // 17
{"P3 Jump" , BIT_DIGITAL , CpsInp177+5, "p3 fire 2" }, // 18
{"P3 Fire 3" , BIT_DIGITAL , CpsInp177+6, "p3 fire 3" }, // 19
{"Reset" , BIT_DIGITAL , &CpsReset, "reset" }, // 1a
{"Service" , BIT_DIGITAL , CpsInp018+2, "service" }, // 1b
{"Dip A" , BIT_DIPSWITCH, &Cpi01A , "dip" }, // 1c
{"Dip B" , BIT_DIPSWITCH, &Cpi01C , "dip" }, // 1d
{"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" }, // 1e
};
STDINPUTINFO(Wofh)
static struct BurnInputInfo Wof3jsInputList[] =
{
{"P1 Coin" , BIT_DIGITAL , CpsInp018+0, "p1 coin" }, // 0
{"P1 Start" , BIT_DIGITAL , CpsInp018+4, "p1 start" }, // 1
{"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" }, // 2
{"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" }, // 3
{"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" }, // 4
{"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" }, // 5
{"P1 Attack" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" }, // 6
{"P1 Jump" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" }, // 7
{"P1 Fire 3" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" }, // 8
{"P2 Coin" , BIT_DIGITAL , CpsInp018+1, "p2 coin" }, // 9
{"P2 Start" , BIT_DIGITAL , CpsInp018+5, "p2 start" }, // a
{"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" }, // b
{"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" }, // c
{"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" }, // d
{"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" }, // e
{"P2 Attack" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" }, // f
{"P2 Jump" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" }, // 10
{"P2 Fire 3" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" }, // 11
{"P3 Coin" , BIT_DIGITAL , CpsInp177+6, "p3 coin" }, // 12
{"P3 Start" , BIT_DIGITAL , CpsInp177+7, "p3 start" }, // 13
{"P3 Up" , BIT_DIGITAL , CpsInp177+3, "p3 up" }, // 14
{"P3 Down" , BIT_DIGITAL , CpsInp177+2, "p3 down" }, // 15
@ -1955,58 +2072,59 @@ static struct BurnInputInfo WofhInputList[] =
{"P3 Right" , BIT_DIGITAL , CpsInp177+0, "p3 right" }, // 17
{"P3 Attack" , BIT_DIGITAL , CpsInp177+4, "p3 fire 1" }, // 18
{"P3 Jump" , BIT_DIGITAL , CpsInp177+5, "p3 fire 2" }, // 19
{"P3 Fire 3" , BIT_DIGITAL , CpsInp177+6, "p3 fire 3" }, // 1a
{"P3 Fire 3" , BIT_DIGITAL , CpsInp179+0, "p3 fire 3" }, // 1a same as "P3 Coin"
{"Reset" , BIT_DIGITAL , &CpsReset, "reset" }, // 1b
// {"Diagnostic" , BIT_DIGITAL , CpsInp018+6, "diag" }, // Black screen/disable
{"Service" , BIT_DIGITAL , CpsInp018+2, "service" }, // 1c
{"Dip A" , BIT_DIPSWITCH, &Cpi01A , "dip" }, // 1d
{"Dip B" , BIT_DIPSWITCH, &Cpi01C , "dip" }, // 1e
{"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" }, // 1f
};
STDINPUTINFO(Wofh)
static struct BurnInputInfo Wof3jsInputList[] =
{
{"P1 Coin" , BIT_DIGITAL , CpsInp018+0, "p1 coin" },
{"P1 Start" , BIT_DIGITAL , CpsInp018+4, "p1 start" },
{"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
{"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
{"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
{"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
{"P1 Attack" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
{"P1 Jump" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
{"P1 Fire 3" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" },
{"P2 Coin" , BIT_DIGITAL , CpsInp018+1, "p2 coin" },
{"P2 Start" , BIT_DIGITAL , CpsInp018+5, "p2 start" },
{"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
{"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
{"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
{"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
{"P2 Attack" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
{"P2 Jump" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
{"P2 Fire 3" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" },
{"P3 Start" , BIT_DIGITAL , CpsInp177+7, "p3 start" },
{"P3 Up" , BIT_DIGITAL , CpsInp177+3, "p3 up" },
{"P3 Down" , BIT_DIGITAL , CpsInp177+2, "p3 down" },
{"P3 Left" , BIT_DIGITAL , CpsInp177+1, "p3 left" },
{"P3 Right" , BIT_DIGITAL , CpsInp177+0, "p3 right" },
{"P3 Attack" , BIT_DIGITAL , CpsInp177+4, "p3 fire 1" },
{"P3 Jump" , BIT_DIGITAL , CpsInp177+5, "p3 fire 2" },
{"P3 Fire 3" , BIT_DIGITAL , CpsInp177+6, "p3 fire 3" },
{"Reset" , BIT_DIGITAL , &CpsReset, "reset" },
{"Service" , BIT_DIGITAL , CpsInp018+2, "service" },
{"Dip A" , BIT_DIPSWITCH, &Cpi01A , "dip" },
{"Dip B" , BIT_DIPSWITCH, &Cpi01C , "dip" },
{"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
{"Diagnostic" , BIT_DIGITAL , CpsInp018+6, "diag" }, // 1c
{"Service" , BIT_DIGITAL , CpsInp018+2, "service" }, // 1d
{"Dip A" , BIT_DIPSWITCH, &Cpi01A , "dip" }, // 1e
{"Dip B" , BIT_DIPSWITCH, &Cpi01C , "dip" }, // 1f
{"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" }, // 20
};
STDINPUTINFO(Wof3js)
static struct BurnInputInfo Wof3sjInputList[] =
{
{"P1 Coin" , BIT_DIGITAL , CpsInp018+0, "p1 coin" }, // 0
{"P1 Start" , BIT_DIGITAL , CpsInp018+4, "p1 start" }, // 1
{"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" }, // 2
{"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" }, // 3
{"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" }, // 4
{"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" }, // 5
{"P1 Attack" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" }, // 6
{"P1 Jump" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" }, // 7
{"P1 Fire 3" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" }, // 8
{"P2 Coin" , BIT_DIGITAL , CpsInp018+1, "p2 coin" }, // 9
{"P2 Start" , BIT_DIGITAL , CpsInp018+5, "p2 start" }, // a
{"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" }, // b
{"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" }, // c
{"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" }, // d
{"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" }, // e
{"P2 Attack" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" }, // f
{"P2 Jump" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" }, // 10
{"P2 Fire 3" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" }, // 11
{"P3 Coin" , BIT_DIGITAL , CpsInp177+6, "p3 coin" }, // 12
{"P3 Start" , BIT_DIGITAL , CpsInp177+7, "p3 start" }, // 13
{"P3 Up" , BIT_DIGITAL , CpsInp177+3, "p3 up" }, // 14
{"P3 Down" , BIT_DIGITAL , CpsInp177+2, "p3 down" }, // 15
{"P3 Left" , BIT_DIGITAL , CpsInp177+1, "p3 left" }, // 16
{"P3 Right" , BIT_DIGITAL , CpsInp177+0, "p3 right" }, // 17
{"P3 Attack" , BIT_DIGITAL , CpsInp177+4, "p3 fire 1" }, // 18
{"P3 Jump" , BIT_DIGITAL , CpsInp177+5, "p3 fire 2" }, // 19
{"P3 Fire 3" , BIT_DIGITAL , CpsInp179+0, "p3 fire 3" }, // 1a same as "P3 Coin"
{"Reset" , BIT_DIGITAL , &CpsReset, "reset" }, // 1b
{"Service" , BIT_DIGITAL , CpsInp018+2, "service" }, // 1c
{"Dip A" , BIT_DIPSWITCH, &Cpi01A , "dip" }, // 1d
{"Dip B" , BIT_DIPSWITCH, &Cpi01C , "dip" }, // 1e
{"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" }, // if
};
STDINPUTINFO(Wof3sj)
// don't know where this one reads config data from (if at all), reads values at 0x80001a, 0x80001e, 0x80001f (but values make no difference)
// if I force it to use EEPROM, the config data gets forgotten
static struct BurnInputInfo WofsjbInputList[] =
@ -2019,7 +2137,6 @@ static struct BurnInputInfo WofsjbInputList[] =
{"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
{"P1 Attack" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
{"P1 Jump" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
{"P1 Fire 3" , BIT_DIGITAL , CpsInp001+6, "p1 fire 3" },
{"P2 Coin" , BIT_DIGITAL , CpsInp018+1, "p2 coin" },
{"P2 Start" , BIT_DIGITAL , CpsInp018+5, "p2 start" },
@ -2029,7 +2146,6 @@ static struct BurnInputInfo WofsjbInputList[] =
{"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
{"P2 Attack" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
{"P2 Jump" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
{"P2 Fire 3" , BIT_DIGITAL , CpsInp000+6, "p2 fire 3" },
{"P3 Coin" , BIT_DIGITAL , CpsInp01B+6, "p3 coin" },
{"P3 Start" , BIT_DIGITAL , CpsInp01B+7, "p3 start" },
@ -2039,11 +2155,12 @@ static struct BurnInputInfo WofsjbInputList[] =
{"P3 Right" , BIT_DIGITAL , CpsInp01B+0, "p3 right" },
{"P3 Attack" , BIT_DIGITAL , CpsInp01B+4, "p3 fire 1" },
{"P3 Jump" , BIT_DIGITAL , CpsInp01B+5, "p3 fire 2" },
{"P3 Fire 3" , BIT_DIGITAL , CpsInp01B+6, "p3 fire 3" },
{"Reset" , BIT_DIGITAL , &CpsReset, "reset" },
{"Diagnostic" , BIT_DIGITAL , CpsInp018+6, "diag" },
{"Service" , BIT_DIGITAL , CpsInp018+2, "service" },
{"Dip A" , BIT_DIPSWITCH, &Cpi01A , "dip" }, // 1b
{"Dip B" , BIT_DIPSWITCH, &Cpi01C , "dip" }, // 1c
{"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
{"Dip D" , BIT_DIPSWITCH, &Cps1QSDip , "dip" },
};
@ -2099,7 +2216,7 @@ static struct BurnInputInfo VerSwitchInputList[] = {
};
STDINPUTINFOEXT(DinoQS, Dino, QSoundPatch)
STDINPUTINFOEXT(DinohQS, Dinoh, QSoundPatch)
STDINPUTINFOEXT(Jurassic99QS, Jurassic99, QSoundPatch)
STDINPUTINFOEXT(PunisherQS, Punisher, QSoundPatch)
STDINPUTINFOEXT(SlammastQS, Slammast, QSoundPatch)
STDINPUTINFOEXT(WofQS, Wof, QSoundPatch)
@ -2533,16 +2650,29 @@ STDDIPINFO(Dino)
static struct BurnDIPInfo DinohDIPList[]=
{
// Defaults
{0x1d, 0xff, 0xff, 0x00, NULL },
{0x1e, 0xff, 0xff, 0x00, NULL },
// Dip C
{0 , 0xfe, 0 , 2 , "Freeze" },
{0x1d, 0x01, 0x08, 0x00, "Off" },
{0x1d, 0x01, 0x08, 0x08, "On" },
{0x1e, 0x01, 0x08, 0x00, "Off" },
{0x1e, 0x01, 0x08, 0x08, "On" },
};
STDDIPINFO(Dinoh)
static struct BurnDIPInfo DinopicDIPList[] =
{
// Defaults
{0x1b, 0xff, 0xff, 0x00, NULL },
// Dip C
{0 , 0xfe, 0 , 2 , "Freeze" },
{0x1b, 0x01, 0x08, 0x00, "Off" },
{0x1b, 0x01, 0x08, 0x08, "On" },
};
STDDIPINFO(Dinopic)
static struct BurnDIPInfo DynwarDIPList[]=
{
// Defaults
@ -3164,7 +3294,7 @@ STDDIPINFO(Knights)
static struct BurnDIPInfo KnightshDIPList[]=
{
DIP_OFFSET(0x1d)
DIP_OFFSET(0x1e)
// Defaults
{0x00, 0xff, 0xff, 0x00, NULL },
@ -5085,7 +5215,6 @@ static struct BurnDIPInfo WofhfhDIPList[]=
{0x00, 0xff, 0xff, 0x00, NULL },
{0x01, 0xff, 0xff, 0x13, NULL },
{0x02, 0xff, 0xff, 0x00, NULL },
{0x03, 0xff, 0xff, 0x00, NULL },
// Dip A
{0 , 0xfe, 0 , 4 , "Coinage" },
@ -5120,15 +5249,8 @@ static struct BurnDIPInfo WofhfhDIPList[]=
{0x02, 0x01, 0x03, 0x02, "2 Players 1 Shooter" },
{0x02, 0x01, 0x03, 0x01, "3 Players 1 Shooter" },
{0x02, 0x01, 0x03, 0x00, "3 Players 3 Shooters" },
// Dip Ex
{0 , 0xfe, 0 , 2 , "Scenario Selection" },
{0x03, 0x01, 0x01, 0x00, "Original" },
{0x03, 0x01, 0x01, 0x01, "Wof" },
};
STDDIPINFO(Wofhfh)
static struct BurnDIPInfo WofsgzbDIPList[] =
{
DIP_OFFSET(0x1e)
@ -5195,10 +5317,10 @@ STDDIPINFO(Wofsgzb)
static struct BurnDIPInfo WofhDIPList[]=
{
DIP_OFFSET(0x1d)
DIP_OFFSET(0x1c)
// Defaults
{0x00, 0xff, 0xff, 0x00, NULL },
{0x00, 0xff, 0xff, 0x01, NULL }, // "3 Players 1 Shooter" (No P3 Coin)
{0x01, 0xff, 0xff, 0x00, NULL },
{0x02, 0xff, 0xff, 0x13, NULL },
@ -5241,93 +5363,49 @@ STDDIPINFO(Wofh)
static struct BurnDIPInfo Wof3jsDIPList[]=
{
DIP_OFFSET(0x1e)
// Defaults
{0x1c, 0xff, 0xff, 0x00, NULL },
{0x1d, 0xff, 0xff, 0x00, NULL },
{0x1e, 0xff, 0xff, 0x00, NULL },
{0x00, 0xff, 0xff, 0x00, NULL },
{0x01, 0xff, 0xff, 0x00, NULL },
{0x02, 0xff, 0xff, 0x00, NULL },
// Dip A
{0 , 0xfe, 0 , 4 , "Coinage" },
{0x1c, 0x01, 0x03, 0x01, "2 Coins 1 Credit" },
{0x1c, 0x01, 0x03, 0x00, "1 Coin 1 Credit" },
{0x1c, 0x01, 0x03, 0x02, "1 Coin 2 Credits" },
{0x1c, 0x01, 0x03, 0x03, "1 Coin 3 Credits" },
{0x00, 0x01, 0x03, 0x01, "2 Coins 1 Credit" },
{0x00, 0x01, 0x03, 0x00, "1 Coin 1 Credit" },
{0x00, 0x01, 0x03, 0x02, "1 Coin 2 Credits" },
{0x00, 0x01, 0x03, 0x03, "1 Coin 3 Credits" },
// Dip B
{0 , 0xfe, 0 , 2 , "Coin Slots" },
{0x1d, 0x01, 0x01, 0x01, "3 Players 1 Shooter" },
{0x1d, 0x01, 0x01, 0x00, "3 Players 3 Shooters" },
{0x01, 0x01, 0x01, 0x01, "3 Players 1 Shooter" },
{0x01, 0x01, 0x01, 0x00, "3 Players 3 Shooters" },
// Dip C
// not sure about difficulty (no way to test)
{0 , 0xfe, 0 , 8 , "Difficulty" },
{0x1e, 0x01, 0x07, 0x00, "Value 0" },
{0x1e, 0x01, 0x07, 0x01, "Value 1" },
{0x1e, 0x01, 0x07, 0x02, "Value 2" },
{0x1e, 0x01, 0x07, 0x03, "Value 3" },
{0x1e, 0x01, 0x07, 0x04, "Value 4" },
{0x1e, 0x01, 0x07, 0x05, "Value 5" },
{0x1e, 0x01, 0x07, 0x06, "Value 6" },
{0x1e, 0x01, 0x07, 0x07, "Value 7" },
{0x02, 0x01, 0x07, 0x00, "Value 0" },
{0x02, 0x01, 0x07, 0x01, "Value 1" },
{0x02, 0x01, 0x07, 0x02, "Value 2" },
{0x02, 0x01, 0x07, 0x03, "Value 3" },
{0x02, 0x01, 0x07, 0x04, "Value 4" },
{0x02, 0x01, 0x07, 0x05, "Value 5" },
{0x02, 0x01, 0x07, 0x06, "Value 6" },
{0x02, 0x01, 0x07, 0x07, "Value 7" },
{0 , 0xfe, 0 , 5 , "Lives" },
{0x1e, 0x01, 0x70, 0x40, "Start 1 Continue 1" },
{0x1e, 0x01, 0x70, 0x30, "Start 4 Continue 3" },
{0x1e, 0x01, 0x70, 0x20, "Start 4 Continue 4" },
{0x1e, 0x01, 0x70, 0x10, "Start 3 Continue 3" },
{0x1e, 0x01, 0x70, 0x00, "Start 2 Continue 2" },
{0x02, 0x01, 0x70, 0x40, "Start 1 Continue 1" },
{0x02, 0x01, 0x70, 0x30, "Start 4 Continue 3" },
{0x02, 0x01, 0x70, 0x20, "Start 4 Continue 4" },
{0x02, 0x01, 0x70, 0x10, "Start 3 Continue 3" },
{0x02, 0x01, 0x70, 0x00, "Start 2 Continue 2" },
};
STDDIPINFO(Wof3js)
static struct BurnDIPInfo Wof3jsaDIPList[]=
static struct BurnDIPInfo Wof3sjComDIPList[]=
{
// Defaults
{0x1c, 0xff, 0xff, 0x00, NULL },
{0x1d, 0xff, 0xff, 0x00, NULL },
{0x1e, 0xff, 0xff, 0x13, NULL },
// Dip A
{0 , 0xfe, 0 , 3 , "Coin Slots" },
{0x1c, 0x01, 0x03, 0x02, "2 Players 1 Shooter" },
{0x1c, 0x01, 0x03, 0x01, "3 Players 1 Shooter" },
{0x1c, 0x01, 0x03, 0x00, "3 Players 3 Shooters" },
// Dip B
{0 , 0xfe, 0 , 4 , "Coinage" },
{0x1d, 0x01, 0x03, 0x00, "1 Coin 1 Credit" },
{0x1d, 0x01, 0x03, 0x01, "1 Coin 2 Credits" },
{0x1d, 0x01, 0x03, 0x02, "1 Coin 3 Credits" },
{0x1d, 0x01, 0x03, 0x03, "1 Coin 4 Credits" },
// Dip C
{0 , 0xfe, 0 , 8 , "Difficulty" },
{0x1e, 0x01, 0x07, 0x00, "Extra Easy" },
{0x1e, 0x01, 0x07, 0x01, "Very Easy" },
{0x1e, 0x01, 0x07, 0x02, "Easy" },
{0x1e, 0x01, 0x07, 0x03, "Normal" },
{0x1e, 0x01, 0x07, 0x04, "Hard" },
{0x1e, 0x01, 0x07, 0x05, "Very Hard" },
{0x1e, 0x01, 0x07, 0x06, "Extra Hard" },
{0x1e, 0x01, 0x07, 0x07, "Hardest" },
{0 , 0xfe, 0 , 8 , "Lives" },
{0x1e, 0x01, 0x70, 0x70, "Start 4 Continue 5" },
{0x1e, 0x01, 0x70, 0x60, "Start 3 Continue 4" },
{0x1e, 0x01, 0x70, 0x50, "Start 2 Continue 3" },
{0x1e, 0x01, 0x70, 0x40, "Start 1 Continue 2" },
{0x1e, 0x01, 0x70, 0x30, "Start 4 Continue 4" },
{0x1e, 0x01, 0x70, 0x20, "Start 3 Continue 3" },
{0x1e, 0x01, 0x70, 0x10, "Start 2 Continue 2" },
{0x1e, 0x01, 0x70, 0x00, "Start 1 Continue 1" },
};
STDDIPINFO(Wof3jsa)
static struct BurnDIPInfo Wof3sjDIPList[]=
{
DIP_OFFSET(0x1d)
// Defaults
{0x00, 0xff, 0xff, 0x00, NULL },
{0x01, 0xff, 0xff, 0x13, NULL },
@ -5368,14 +5446,12 @@ static struct BurnDIPInfo Wof3sjDIPList[]=
{0x02, 0x01, 0x03, 0x00, "3 Players 3 Shooters" },
{0 , 0xfe, 0 , 4 , "Extend" },
{0x02, 0x01, 0x30, 0x30, "100k, 300k, 500k, 1000k" },
{0x02, 0x01, 0x30, 0x30, "100k, 300k, 500k, 1000k"},
{0x02, 0x01, 0x30, 0x20, "300k" },
{0x02, 0x01, 0x30, 0x10, "100k" },
{0x02, 0x01, 0x30, 0x00, "None" },
};
STDDIPINFO(Wof3sj)
static struct BurnDIPInfo WofablaDIPList[] =
{
// Defaults
@ -5432,17 +5508,82 @@ static struct BurnDIPInfo WofablaDIPList[] =
STDDIPINFO(Wofabla)
static struct BurnDIPInfo WofsjbQSoundDIPList[] =
static struct BurnDIPInfo WofsjbQSDIPList[] =
{
DIP_OFFSET(0x1f)
DIP_OFFSET(0x1b)
// Defaults
{0x00, 0xff, 0xff, 0x01, NULL },
{0x00, 0xff, 0xff, 0x00, NULL },
{0x01, 0xff, 0xff, 0x13, NULL },
{0x02, 0xff, 0xff, 0x20, NULL },
{0x03, 0xff, 0xff, 0x01, NULL },
// Dip A
{0 , 0xfe, 0 , 4 , "Coinage" },
{0x00, 0x01, 0x03, 0x00, "1 Coin 1 Credit" },
{0x00, 0x01, 0x03, 0x01, "1 Coin 2 Credits" },
{0x00, 0x01, 0x03, 0x02, "1 Coin 3 Credits" },
{0x00, 0x01, 0x03, 0x03, "1 Coin 4 Credits" },
// Dip B
{0 , 0xfe, 0 , 8 , "Difficulty" },
{0x01, 0x01, 0x07, 0x00, "Extra Easy" },
{0x01, 0x01, 0x07, 0x01, "Very Easy" },
{0x01, 0x01, 0x07, 0x02, "Easy" },
{0x01, 0x01, 0x07, 0x03, "Normal" },
{0x01, 0x01, 0x07, 0x04, "Hard" },
{0x01, 0x01, 0x07, 0x05, "Very Hard" },
{0x01, 0x01, 0x07, 0x06, "Extra Hard" },
{0x01, 0x01, 0x07, 0x07, "Hardest" },
{0 , 0xfe, 0 , 8 , "Lives" },
{0x01, 0x01, 0x70, 0x70, "Start 4 Continue 5" },
{0x01, 0x01, 0x70, 0x60, "Start 3 Continue 4" },
{0x01, 0x01, 0x70, 0x50, "Start 2 Continue 3" },
{0x01, 0x01, 0x70, 0x40, "Start 1 Continue 2" },
{0x01, 0x01, 0x70, 0x30, "Start 4 Continue 4" },
{0x01, 0x01, 0x70, 0x20, "Start 3 Continue 3" },
{0x01, 0x01, 0x70, 0x10, "Start 2 Continue 2" },
{0x01, 0x01, 0x70, 0x00, "Start 1 Continue 1" },
// Dip C
{0 , 0xfe, 0 , 3 , "Coin Slots" },
{0x02, 0x01, 0x03, 0x02, "2 Players 1 Shooter" },
{0x02, 0x01, 0x03, 0x01, "3 Players 1 Shooter" },
{0x02, 0x01, 0x03, 0x00, "3 Players 3 Shooters" },
{0 , 0xfe, 0 , 4 , "Extend" },
{0x02, 0x01, 0x30, 0x30, "100k, 300k, 500k, 1000k"},
{0x02, 0x01, 0x30, 0x20, "300k" },
{0x02, 0x01, 0x30, 0x10, "100k" },
{0x02, 0x01, 0x30, 0x00, "None" },
// Fake Dip
{0 , 0xfe, 0 , 2 , "Q Sound (Must reload)" },
{0x00, 0x01, 0x01, 0x00, "Off" },
{0x00, 0x01, 0x01, 0x01, "On" },
{0x03, 0x01, 0x01, 0x00, "Off" },
{0x03, 0x01, 0x01, 0x01, "On" },
};
STDDIPINFO(WofsjbQS)
static struct BurnDIPInfo WofhfhSDIPList[]=
{
{0x03, 0xff, 0xff, 0x00, NULL },
// Dip Ex
{0 , 0xfe, 0 , 2 , "Scenario Selection" },
{0x03, 0x01, 0x01, 0x00, "Original" },
{0x03, 0x01, 0x01, 0x01, "Wof" },
};
static struct BurnDIPInfo Wof3sjDIPList[]=
{
DIP_OFFSET(0x1d)
};
static struct BurnDIPInfo WofsjDIPList[] =
{
DIP_OFFSET(0x1a)
};
static struct BurnDIPInfo DinoQSoundDIPList[] =
@ -5459,12 +5600,12 @@ static struct BurnDIPInfo DinoQSoundDIPList[] =
static struct BurnDIPInfo DinohQSoundDIPList[] =
{
// Defaults
{0x1e, 0xff, 0xff, 0x01, NULL },
{0x1f, 0xff, 0xff, 0x01, NULL },
// Fake Dip
{0 , 0xfe, 0 , 2 , "Q Sound (Must reload)" },
{0x1e, 0x01, 0x01, 0x00, "Off" },
{0x1e, 0x01, 0x01, 0x01, "On" },
{0x1f, 0x01, 0x01, 0x00, "Off" },
{0x1f, 0x01, 0x01, 0x01, "On" },
};
static struct BurnDIPInfo PunisherQSoundDIPList[] =
@ -5526,11 +5667,13 @@ static struct BurnDIPInfo ffightdwDIPList[] =
{0x17, 0x01, 0x01, 0x01, "Original" },
};
STDDIPINFOEXT(WofsjbQS, Dino, WofsjbQSound )
STDDIPINFOEXT(Wofhfh, Wofhfh, WofhfhS )
STDDIPINFOEXT(Wof3sj, Wof3sj, Wof3sjCom )
STDDIPINFOEXT(Wofsj, Wofsj, Wof3sjCom )
STDDIPINFOEXT(DinoQS, Dino, DinoQSound )
STDDIPINFOEXT(DinohQS, Dinoh, DinohQSound )
STDDIPINFOEXT(PunisherQS, Punisher, PunisherQSound)
STDDIPINFOEXT(SlammastQS, Slammast, SlammastQSound)
STDDIPINFOEXT(PunisherQS, Punisher, PunisherQSound )
STDDIPINFOEXT(SlammastQS, Slammast, SlammastQSound )
STDDIPINFOEXT(Captcm3p, Captcomm, Captcm3p )
STDDIPINFOEXT(Dinofw, Dino, Dinofw )
STDDIPINFOEXT(DinoScen, Dino, DinoScenario )
@ -16262,27 +16405,6 @@ static struct BurnRomInfo WofsjbRomDesc[] = {
STD_ROM_PICK(Wofsjb)
STD_ROM_FN(Wofsjb)
static struct BurnRomInfo WofsjcRomDesc[] = {
{ "2223.bin", 0x100000, 0xcb28807e, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
{ "1.bin", 0x080000, 0x0d9cb9bf, BRF_GRA | CPS1_TILES },
{ "2.bin", 0x080000, 0x45227027, BRF_GRA | CPS1_TILES },
{ "3.bin", 0x080000, 0xc5ca2460, BRF_GRA | CPS1_TILES },
{ "4.bin", 0x080000, 0xe349551c, BRF_GRA | CPS1_TILES },
{ "5.bin", 0x080000, 0x291f0f0b, BRF_GRA | CPS1_TILES },
{ "6.bin", 0x080000, 0x3edeb949, BRF_GRA | CPS1_TILES },
{ "7.bin", 0x080000, 0x1abd14d6, BRF_GRA | CPS1_TILES },
{ "8.bin", 0x080000, 0xb27948e3, BRF_GRA | CPS1_TILES },
{ "9.bin", 0x010000, 0x210c376f, BRF_PRG | CPS1_Z80_PROGRAM },
{ "18.bin", 0x020000, 0xc04be720, BRF_SND | CPS1_OKIM6295_SAMPLES },
{ "19.bin", 0x020000, 0xfbb8d8c1, BRF_SND | CPS1_OKIM6295_SAMPLES },
};
STD_ROM_PICK(Wofsjc)
STD_ROM_FN(Wofsjc)
static struct BurnRomInfo Wofr1blRomDesc[] = {
{ "3-f2ab.040", 0x080000, 0x61fd0a01, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
{ "1-9207.040", 0x080000, 0x7f59e24c, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
@ -16890,7 +17012,6 @@ static const struct GameConfig ConfigTable[] =
{ "wofsj" , HACK_B_6 , mapper_TK263B, 0, NULL },
{ "wofsja" , HACK_B_6 , mapper_TK263B, 0, NULL },
{ "wofsjb" , CPS_B_21_DEF, mapper_TK263B, 0, wof_patch },
{ "wofsjc" , HACK_B_6 , mapper_TK263B, 0, NULL },
{ "wofr1bl" , CPS_B_21_DEF, mapper_TK263B, 0, NULL }, // game controls layers at 0x98000c
{ "wofpic" , CPS_B_21_DEF, mapper_TK263B, 0, wof_patch }, // game controls layers at 0x98000c
{ "wofjh" , CPS_B_21_QS1, mapper_TK263B, 0, wof_decode },
@ -17343,6 +17464,12 @@ static INT32 DrvExit()
Sf2thndr = 0;
Hkittymp = 0;
Port6SoundWrite = 0;
Jurassic99 = 0;
Dinoh = 0;
Wofhfh = 0;
Wofsgzb = 0;
Wof3js = 0;
Knightsh = 0;
Cps1QsHack = 0;
@ -17394,6 +17521,13 @@ static INT32 CpsBootlegSpriteRamScanCallback(INT32 nAction, INT32*)
return 0;
}
static INT32 KnightshInit()
{
Knightsh = 1;
return DrvInit();
}
static INT32 Cps1RasterInit()
{
Cps1DrawAtVblank = 1;
@ -17791,6 +17925,7 @@ static INT32 DinohInit()
{
INT32 nRet = 0;
Dinoh = 1;
Cps1QsHack = 1;
nRet = TwelveMhzInit();
@ -17867,6 +18002,7 @@ static INT32 DinotInit()
{
INT32 nRet = 0;
Dinoh = 1;
Cps1QsHack = 1;
AmendProgRomCallback = DinotCallback;
Cps1GfxLoadCallbackFunction = CpsLoadTilesHack160;
@ -17890,6 +18026,7 @@ static INT32 DinotpicInit()
Cps1DisablePSnd = 1;
}
Jurassic99 = 1;
CpsBootlegEEPROM = 1;
Cps1GfxLoadCallbackFunction = CpsLoadTilesHack160;
if (Cps1Qs) {
@ -21122,6 +21259,8 @@ static INT32 WofhfhScenarioPatch()
static INT32 WofhfhInit()
{
Wofhfh = 1;
if (!bDoIpsPatch) {
CpsRunResetCallbackFunction = WofhfhScenarioPatch;
}
@ -21379,6 +21518,7 @@ static void Wof3jsCallback()
static INT32 Wof3jsInit()
{
Wof3js = 1;
AmendProgRomCallback = Wof3jsCallback;
return TwelveMhzInit();
@ -21501,6 +21641,7 @@ void __fastcall Wof3sjInputWriteWord(UINT32 a, UINT16 d)
static INT32 Wof3sjInit()
{
Wof3js = 1;
bCpsUpdatePalEveryFrame = 1;
CpsLayer1XOffs = 0xffc0;
CpsLayer2XOffs = 0xffc0;
@ -21911,6 +22052,7 @@ static INT32 WofsgzbScenarioPatch()
static INT32 WofsgzbInit()
{
Wofsgzb = 1;
Cps1DrawAtVblank = 1;
// CpsBootlegEEPROM = 1;
@ -22317,7 +22459,7 @@ struct BurnDriver BurnDrvCpsDinopic5 = {
"Cadillacs and Dinosaurs (bootleg with PIC16C57, set 5)\0", NULL, "Capcom", "CPS1",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
NULL, Dinopic5RomInfo, Dinopic5RomName, NULL, NULL, NULL, NULL, DinohInputInfo, DinohDIPInfo,
NULL, Dinopic5RomInfo, Dinopic5RomName, NULL, NULL, NULL, NULL, DinopicInputInfo, DinopicDIPInfo,
Dinopic5Init, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
&CpsRecalcPal, 0x1000, 384, 224, 4, 3
};
@ -22327,7 +22469,7 @@ struct BurnDriver BurnDrvCpsJurassic99 = {
"Jurassic 99 (Cadillacs and Dinosaurs bootleg with EM78P447AP)\0", "No sound", "bootleg", "CPS1",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG | BDF_HISCORE_SUPPORTED, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
NULL, Jurassic99RomInfo, Jurassic99RomName, NULL, NULL, NULL, NULL, DinohQSInputInfo, DinohQSDIPInfo,
NULL, Jurassic99RomInfo, Jurassic99RomName, NULL, NULL, NULL, NULL, Jurassic99QSInputInfo, DinohQSDIPInfo,
DinotpicInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
&CpsRecalcPal, 0x1000, 384, 224, 4, 3
};
@ -22357,7 +22499,7 @@ struct BurnDriver BurnDrvCpsDinotpic = {
"Cadillacs and Dinosaurs Turbo (bootleg set 2 (with PIC16c57), 930201 etc)\0", "No sound", "bootleg", "CPS1",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
NULL, DinotpicRomInfo, DinotpicRomName, NULL, NULL, NULL, NULL, DinohQSInputInfo, DinohQSDIPInfo,
NULL, DinotpicRomInfo, DinotpicRomName, NULL, NULL, NULL, NULL, Jurassic99QSInputInfo, DinohQSDIPInfo,
DinotpicInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
&CpsRecalcPal, 0x1000, 384, 224, 4, 3
};
@ -22888,7 +23030,7 @@ struct BurnDriver BurnDrvCpsKnightsh = {
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE | BDF_HACK, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
NULL, KnightshRomInfo, KnightshRomName, NULL, NULL, NULL, NULL, KnightshInputInfo, KnightshDIPInfo,
DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
KnightshInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
&CpsRecalcPal, 0x1000, 384, 224, 4, 3
};
@ -22898,7 +23040,7 @@ struct BurnDriver BurnDrvCpsKnightsh2 = {
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE | BDF_HACK, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
NULL, Knightsh2RomInfo, Knightsh2RomName, NULL, NULL, NULL, NULL, KnightshInputInfo, KnightshDIPInfo,
DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
KnightshInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
&CpsRecalcPal, 0x1000, 384, 224, 4, 3
};
@ -25137,7 +25279,7 @@ struct BurnDriver BurnDrvCpsWof3jsa = {
"Sangokushi II: San Jian Sheng (Chinese bootleg set 2)\0", NULL, "bootleg", "CPS1",
L"\u4E09\u56FD\u5FD7 II: \u4E09\u528D\u8056\0Sangokushi II: San Jian Sheng (Chinese bootleg set 2)\0", NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
NULL, Wof3jsaRomInfo, Wof3jsaRomName, NULL, NULL, NULL, NULL, Wof3jsInputInfo, Wof3jsaDIPInfo,
NULL, Wof3jsaRomInfo, Wof3jsaRomName, NULL, NULL, NULL, NULL, WofhInputInfo, WofhDIPInfo,
Wof3jsaInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
&CpsRecalcPal, 0x1000, 384, 224, 4, 3
};
@ -25147,7 +25289,7 @@ struct BurnDriver BurnDrvCpsWof3sj = {
"Sangokushi II: San Sheng Jian (Chinese bootleg set 1)\0", NULL, "bootleg", "CPS1",
L"\u4E09\u56FD\u5FD7 II: \u4E09\u5723\u5251\0Sangokushi II: San Sheng Jian (Chinese bootleg set 1)\0", NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
NULL, Wof3sjRomInfo, Wof3sjRomName, NULL, NULL, NULL, NULL, WofhInputInfo, Wof3sjDIPInfo,
NULL, Wof3sjRomInfo, Wof3sjRomName, NULL, NULL, NULL, NULL, Wof3sjInputInfo, Wof3sjDIPInfo,
Wof3sjInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
&CpsRecalcPal, 0x1000, 384, 224, 4, 3
};
@ -25157,7 +25299,7 @@ struct BurnDriver BurnDrvCpsWof3sja = {
"Sangokushi II: San Sheng Jian (Chinese bootleg set 2)\0", NULL, "bootleg", "CPS1",
L"\u4E09\u56FD\u5FD7 II: \u4E09\u5723\u5251\0Sangokushi II: San Sheng Jian (Chinese bootleg set 2)\0", NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
NULL, Wof3sjaRomInfo, Wof3sjaRomName, NULL, NULL, NULL, NULL, WofhInputInfo, Wof3sjDIPInfo,
NULL, Wof3sjaRomInfo, Wof3sjaRomName, NULL, NULL, NULL, NULL, Wof3sjInputInfo, Wof3sjDIPInfo,
Wof3sjInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
&CpsRecalcPal, 0x1000, 384, 224, 4, 3
};
@ -25167,7 +25309,7 @@ struct BurnDriver BurnDrvCpsWofsj = {
"Sangokushi II: Sheng Jian Sanguo (Chinese bootleg set 1)\0", "Imperfect Graphics", "bootleg", "CPS1",
L"\u4E09\u56FD\u5FD7 II: \u5723\u5251\u4E09\0Sangokushi II: Sheng Jian Sanguo (Chinese bootleg set 1)\0", NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
NULL, WofsjRomInfo, WofsjRomName, NULL, NULL, NULL, NULL, WofhInputInfo, Wof3sjDIPInfo,
NULL, WofsjRomInfo, WofsjRomName, NULL, NULL, NULL, NULL, WofablaInputInfo, WofsjDIPInfo,
WofsjInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
&CpsRecalcPal, 0x1000, 384, 224, 4, 3
};
@ -25177,7 +25319,7 @@ struct BurnDriver BurnDrvCpsWofsja = {
"Sangokushi II: Sheng Jian Sanguo (Chinese bootleg set 2)\0", "Imperfect Graphics", "bootleg", "CPS1",
L"\u4E09\u56FD\u5FD7 II: \u5723\u5251\u4E09\0Sangokushi II: Sheng Jian Sanguo (Chinese bootleg set 2)\0", NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
NULL, WofsjaRomInfo, WofsjaRomName, NULL, NULL, NULL, NULL, WofhInputInfo, Wof3sjDIPInfo,
NULL, WofsjaRomInfo, WofsjaRomName, NULL, NULL, NULL, NULL, WofablaInputInfo, WofsjDIPInfo,
WofsjInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
&CpsRecalcPal, 0x1000, 384, 224, 4, 3
};
@ -25192,16 +25334,6 @@ struct BurnDriver BurnDrvCpsWofsjb = {
&CpsRecalcPal, 0x1000, 384, 224, 4, 3
};
struct BurnDriver BurnDrvCpsWofsjc = {
"wofsjc", "wof", NULL, NULL, "1992",
"Sangokushi II: Sheng Jian Sanguo (Chinese bootleg set 4)\0", "Imperfect graphics", "bootleg", "CPS1",
L"\u4E09\u56FD\u5FD7 II: \u5723\u5251\u4E09\0Sangokushi II: Sheng Jian Sanguo (Chinese bootleg set 4)\0", NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
NULL, WofsjcRomInfo, WofsjcRomName, NULL, NULL, NULL, NULL, WofhInputInfo, Wof3sjDIPInfo,
WofsjInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
&CpsRecalcPal, 0x1000, 384, 224, 4, 3
};
struct BurnDriver BurnDrvCpsWofr1bl = {
"wofr1bl", "wof", NULL, NULL, "1992",
"Warriors of Fate (bootleg, 921002 etc)\0", NULL, "bootleg", "CPS1",
@ -26889,13 +27021,13 @@ struct BurnDriver BurnDrvCpsCaptcmjy = {
// Captain Commando (Incubus, Hack)
// Modified by Jinggai
// GOTVG 20240622
// GOTVG 20240705
static struct BurnRomInfo captcmmyRomDesc[] = {
{ "ccmy_23d.8f", 0x080000, 0x90526683, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
{ "ccmy_22d.7f", 0x080000, 0xc9aab482, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
{ "ccmy_24d.9e", 0x100000, 0xc44af9c3, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
{ "ccmy_28d.9f", 0x100000, 0x607db958, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
{ "ccmy_22d.7f", 0x080000, 0xe610b61c, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_NO_BYTESWAP },
{ "ccmy_24d.9e", 0x100000, 0xb3e611ac, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
{ "ccmy_28d.9f", 0x100000, 0x6f158e7b, BRF_ESS | BRF_PRG | CPS1_68K_PROGRAM_BYTESWAP },
CAPTCOMM_COMPONENTS
};

View File

@ -9204,36 +9204,6 @@ static struct BurnRomInfo Xmvsfur2RomDesc[] = {
STD_ROM_PICK(Xmvsfur2)
STD_ROM_FN(Xmvsfur2)
static struct BurnRomInfo XmvsfcphRomDesc[] = {
{ "xvse.03f", 0x080000, 0xd0d03ddf, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
{ "xvse.04f", 0x080000, 0xef015aef, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
{ "xvs.05a", 0x080000, 0x7db6025d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
{ "xvs.06a", 0x080000, 0xe8e2c75c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
{ "xvs.07", 0x080000, 0x08f0abed, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
{ "xvs.08", 0x080000, 0x81929675, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
{ "xvs.09", 0x080000, 0x9641f36b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
{ "xvs.13m", 0x400000, 0xf6684efd, CPS2_GFX | BRF_GRA },
{ "xvs.15m", 0x400000, 0x29109221, CPS2_GFX | BRF_GRA },
{ "xvs.17m", 0x400000, 0x92db3474, CPS2_GFX | BRF_GRA },
{ "xvs.19m", 0x400000, 0x3733473c, CPS2_GFX | BRF_GRA },
{ "xvs.14m", 0x400000, 0xbcac2e41, CPS2_GFX | BRF_GRA },
{ "xvs.16m", 0x400000, 0xea04a272, CPS2_GFX | BRF_GRA },
{ "xvs.18m", 0x400000, 0xb0def86a, CPS2_GFX | BRF_GRA },
{ "xvs.20m", 0x400000, 0x4b40ff9f, CPS2_GFX | BRF_GRA },
{ "xvs.01", 0x020000, 0x3999e93a, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
{ "xvs.02", 0x020000, 0x101bdee9, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
{ "xvs.11m", 0x200000, 0x9cadcdbc, CPS2_QSND | BRF_SND },
{ "xvs.12m", 0x200000, 0x7b11e460, CPS2_QSND | BRF_SND },
{ "xmvsf.key", 0x000014, 0xd5c07311, CPS2_ENCRYPTION_KEY },
};
STD_ROM_PICK(Xmvsfcph)
STD_ROM_FN(Xmvsfcph)
// Driver functions
static INT32 MvscjsingInit()
@ -12152,16 +12122,6 @@ struct BurnDriver BurnDrvCpsXmvsfur2 = {
&CpsRecalcPal, 0x1000, 384, 224, 4, 3
};
struct BurnDriver BurnDrvCpsXmvsfcph = {
"xmvsfcph", "xmvsf", NULL, NULL, "2022",
"X-Men Vs. Street Fighter (Hack, 961004 Coop)\0", NULL, "Bank Bank", "CPS2",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE | BDF_HISCORE_SUPPORTED | BDF_HACK, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
NULL, XmvsfcphRomInfo, XmvsfcphRomName, NULL, NULL, NULL, NULL, Cps2FightingInputInfo, NULL,
Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
&CpsRecalcPal, 0x1000, 384, 224, 4, 3
};
// Phoenix sets
static struct BurnRomInfo NinexxdRomDesc[] = {
@ -13275,7 +13235,7 @@ static struct BurnSampleInfo Sfz3mixSampleDesc[] = {
{ "L18", SAMPLE_NOLOOP },
{ "L19", SAMPLE_NOLOOP },
{ "L1A", SAMPLE_NOLOOP | SAMPLE_NODUMP },
{ "L1B", SAMPLE_NOLOOP | SAMPLE_NODUMP },
{ "L1B", SAMPLE_NOLOOP },
{ "L1C", SAMPLE_NOLOOP },
{ "L1D", SAMPLE_NOLOOP | SAMPLE_NODUMP },
{ "L1E", SAMPLE_NOLOOP },
@ -13339,7 +13299,7 @@ static struct BurnSampleInfo Sfz3mixSampleDesc[] = {
{ "R18", SAMPLE_NOLOOP },
{ "R19", SAMPLE_NOLOOP },
{ "R1A", SAMPLE_NOLOOP | SAMPLE_NODUMP },
{ "R1B", SAMPLE_NOLOOP | SAMPLE_NODUMP },
{ "R1B", SAMPLE_NOLOOP },
{ "R1C", SAMPLE_NOLOOP },
{ "R1D", SAMPLE_NOLOOP | SAMPLE_NODUMP },
{ "R1E", SAMPLE_NOLOOP },
@ -15240,7 +15200,7 @@ STD_ROM_FN(Hsf2df)
struct BurnDriver BurnDrvCpsHsf2df = {
"hsf2df", "hsf2", NULL, NULL, "2023",
"Hyper Street Fighter II: The Anniversary Edition (Difficulty Fix, Hack)\0", NULL, "hack", "CPS2",
"Hyper Street Fighter II: The Anniversary Edition (Difficulty Fix, Hack)\0", NULL, "hack (bankbank)", "CPS2",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE | BDF_HACK | BDF_HISCORE_SUPPORTED, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
NULL, Hsf2dfRomInfo, Hsf2dfRomName, NULL, NULL, NULL, NULL, Cps2FightingInputInfo, NULL,
@ -15298,10 +15258,99 @@ STD_ROM_FN(Sfa2ultra)
struct BurnDriver BurnDrvCpsSfa2ultra = {
"sfa2ultra", "sfa2", NULL, NULL, "2023",
"Street Fighter Alpha 2 Ultra (Beta)\0", NULL, "hack", "CPS2",
"Street Fighter Alpha 2 Ultra (Beta)\0", NULL, "hack (bankbank)", "CPS2",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE | BDF_HACK | BDF_HISCORE_SUPPORTED, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
NULL, Sfa2ultraRomInfo, Sfa2ultraRomName, NULL, NULL, NULL, NULL, Cps2FightingInputInfo, NULL,
Sfa2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
&CpsRecalcPal, 0x1000, 384, 224, 4, 3
};
// X-Men Vs. Street Fighter (Coop, Hack)
// Modified by bankbank
// 202205
static struct BurnRomInfo XmvsfcphRomDesc[] = {
{ "xmvsfcph.03f", 0x080000, 0xd0d03ddf, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
{ "xvse.04f", 0x080000, 0xef015aef, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
{ "xvs.05a", 0x080000, 0x7db6025d, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
{ "xvs.06a", 0x080000, 0xe8e2c75c, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
{ "xvs.07", 0x080000, 0x08f0abed, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
{ "xvs.08", 0x080000, 0x81929675, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
{ "xvs.09", 0x080000, 0x9641f36b, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
{ "xvs.13m", 0x400000, 0xf6684efd, CPS2_GFX | BRF_GRA },
{ "xvs.15m", 0x400000, 0x29109221, CPS2_GFX | BRF_GRA },
{ "xvs.17m", 0x400000, 0x92db3474, CPS2_GFX | BRF_GRA },
{ "xvs.19m", 0x400000, 0x3733473c, CPS2_GFX | BRF_GRA },
{ "xvs.14m", 0x400000, 0xbcac2e41, CPS2_GFX | BRF_GRA },
{ "xvs.16m", 0x400000, 0xea04a272, CPS2_GFX | BRF_GRA },
{ "xvs.18m", 0x400000, 0xb0def86a, CPS2_GFX | BRF_GRA },
{ "xvs.20m", 0x400000, 0x4b40ff9f, CPS2_GFX | BRF_GRA },
{ "xvs.01", 0x020000, 0x3999e93a, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
{ "xvs.02", 0x020000, 0x101bdee9, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
{ "xvs.11m", 0x200000, 0x9cadcdbc, CPS2_QSND | BRF_SND },
{ "xvs.12m", 0x200000, 0x7b11e460, CPS2_QSND | BRF_SND },
{ "xmvsf.key", 0x000014, 0xd5c07311, CPS2_ENCRYPTION_KEY },
};
STD_ROM_PICK(Xmvsfcph)
STD_ROM_FN(Xmvsfcph)
struct BurnDriver BurnDrvCpsXmvsfcph = {
"xmvsfcph", "xmvsf", NULL, NULL, "2022",
"X-Men Vs. Street Fighter (Coop, Hack)\0", NULL, "hack (bankbank)", "CPS2",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE | BDF_HISCORE_SUPPORTED | BDF_HACK, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
NULL, XmvsfcphRomInfo, XmvsfcphRomName, NULL, NULL, NULL, NULL, Cps2FightingInputInfo, NULL,
Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
&CpsRecalcPal, 0x1000, 384, 224, 4, 3
};
// Marvel Super Heroes Vs. Street Fighter (Coop, Hack)
// Modified by bankbank
// 20240628
static struct BurnRomInfo MshvsfcphRomDesc[] = {
{ "mshvsfcph.03f", 0x080000, 0x086f345a, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
{ "mvse.04f", 0x080000, 0x6ef799f9, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
{ "mvs.05a", 0x080000, 0x1a5de0cb, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
{ "mvs.06a", 0x080000, 0x959f3030, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
{ "mvs.07b", 0x080000, 0x7f915bdb, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
{ "mvs.08a", 0x080000, 0xc2813884, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
{ "mvs.09b", 0x080000, 0x3ba08818, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
{ "mvs.10b", 0x080000, 0xcf0dba98, CPS2_PRG_68K | BRF_ESS | BRF_PRG },
{ "mvs.13m", 0x400000, 0x29b05fd9, CPS2_GFX | BRF_GRA },
{ "mvs.15m", 0x400000, 0xfaddccf1, CPS2_GFX | BRF_GRA },
{ "mvs.17m", 0x400000, 0x97aaf4c7, CPS2_GFX | BRF_GRA },
{ "mvs.19m", 0x400000, 0xcb70e915, CPS2_GFX | BRF_GRA },
{ "mvs.14m", 0x400000, 0xb3b1972d, CPS2_GFX | BRF_GRA },
{ "mvs.16m", 0x400000, 0x08aadb5d, CPS2_GFX | BRF_GRA },
{ "mvs.18m", 0x400000, 0xc1228b35, CPS2_GFX | BRF_GRA },
{ "mvs.20m", 0x400000, 0x366cc6c2, CPS2_GFX | BRF_GRA },
{ "mvs.01", 0x020000, 0x68252324, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
{ "mvs.02", 0x020000, 0xb34e773d, CPS2_PRG_Z80 | BRF_ESS | BRF_PRG },
{ "mvs.11m", 0x400000, 0x86219770, CPS2_QSND | BRF_SND },
{ "mvs.12m", 0x400000, 0xf2fd7f68, CPS2_QSND | BRF_SND },
{ "mshvsf.key", 0x000014, 0x64660867, CPS2_ENCRYPTION_KEY },
};
STD_ROM_PICK(Mshvsfcph)
STD_ROM_FN(Mshvsfcph)
struct BurnDriver BurnDrvCpsMshvsfcph = {
"mshvsfcph", "mshvsf", NULL, NULL, "2024",
"Marvel Super Heroes Vs. Street Fighter (Coop, Hack)\0", NULL, "hack (bankbank)", "CPS2",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE | BDF_HACK | BDF_HISCORE_SUPPORTED, 2, HARDWARE_CAPCOM_CPS2, GBF_VSFIGHT, FBF_SF,
NULL, MshvsfcphRomInfo, MshvsfcphRomName, NULL, NULL, NULL, NULL, Cps2FightingInputInfo, NULL,
Cps2Init, DrvExit, Cps2Frame, CpsRedraw, CpsAreaScan,
&CpsRecalcPal, 0x1000, 384, 224, 4, 3
};

View File

@ -1,4 +1,4 @@
// FB Alpha Jackal driver module
// FB Neo Jackal driver module
// Based on MAME driver by Kenneth Lin
#include "tiles_generic.h"
@ -44,6 +44,7 @@ static INT32 layer_offset_x = 8;
static INT32 layer_offset_y = 16;
static INT32 bootleg = 0;
static INT32 jackalr = 0;
//static INT32 nRotate[2] = { 0, 0 };
//static UINT32 nRotateTime[2] = { 0, 0 };
@ -713,27 +714,27 @@ static void DrvPaletteInit()
static INT32 DrvInit()
{
AllMem = NULL;
MemIndex();
INT32 nLen = MemEnd - (UINT8 *)0;
if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
memset(AllMem, 0, nLen);
MemIndex();
BurnAllocMemIndex();
if (!bootleg) {
// Jackal
if (BurnLoadRom(DrvM6809ROM0 + 0x10000, 0, 1)) return 1;
if (BurnLoadRom(DrvM6809ROM0 + 0x0c000, 1, 1)) return 1;
if (BurnLoadRom(DrvM6809ROM1 + 0x08000, 2, 1)) return 1;
INT32 nIndex = 0;
INT32 nLen = (jackalr) ? 0x20000 : 0x40000;
INT32 nLoop = (jackalr) ? 4 : 2;
if (BurnLoadRom(DrvGfxROM2 + 0x00000, 3, 2)) return 1;
if (BurnLoadRom(DrvGfxROM2 + 0x00001, 4, 2)) return 1;
if (BurnLoadRom(DrvGfxROM2 + 0x40000, 5, 2)) return 1;
if (BurnLoadRom(DrvGfxROM2 + 0x40001, 6, 2)) return 1;
if (BurnLoadRom(DrvM6809ROM0 + 0x10000, nIndex++, 1)) return 1;
if (BurnLoadRom(DrvM6809ROM0 + 0x0c000, nIndex++, 1)) return 1;
if (BurnLoadRom(DrvColPROM + 0x00000, 7, 1)) return 1;
if (BurnLoadRom(DrvColPROM + 0x00100, 8, 1)) return 1;
if (BurnLoadRom(DrvM6809ROM1 + 0x08000, nIndex++, 1)) return 1;
for (INT32 i = 0; i < nLoop; i++) {
if (BurnLoadRom(DrvGfxROM2 + 0x00000 + i * nLen, nIndex++, 2)) return 1;
if (BurnLoadRom(DrvGfxROM2 + 0x00001 + i * nLen, nIndex++, 2)) return 1;
}
if (BurnLoadRom(DrvColPROM + 0x00000, nIndex++, 1)) return 1;
if (BurnLoadRom(DrvColPROM + 0x00100, nIndex++, 1)) return 1;
} else {
// Bootleg
if (BurnLoadRom(DrvM6809ROM0 + 0x10000, 0, 1)) return 1;
@ -807,9 +808,10 @@ static INT32 DrvExit()
GenericTilesExit();
BurnFree(AllMem);
BurnFreeMemIndex();
bootleg = 0;
jackalr = 0;
game_rotates = 1;
return 0;
@ -1119,13 +1121,17 @@ static struct BurnRomInfo jackalrRomDesc[] = {
{ "631_q01.11d", 0x08000, 0x54aa2d29, 1 | BRF_PRG | BRF_ESS }, // 2 - M6809 #1 Code
{ "631t04.7h", 0x20000, 0x457f42f0, 2 | BRF_GRA }, // 3 - Graphics Tiles
{ "631t05.8h", 0x20000, 0x732b3fc1, 2 | BRF_GRA }, // 4
{ "631t06.12h", 0x20000, 0x2d10e56e, 2 | BRF_GRA }, // 5
{ "631t07.13h", 0x20000, 0x4961c397, 2 | BRF_GRA }, // 6
{ "631_q05.7h", 0x10000, 0xbcf5d0a8, 2 | BRF_GRA }, // 3 - Graphics Tiles
{ "631_q06.8h", 0x10000, 0x4cb5df22, 2 | BRF_GRA }, // 4
{ "631_q04.7h", 0x10000, 0xe1e9aa42, 2 | BRF_GRA }, // 5
{ "631_q07.8h", 0x10000, 0xcc68c5b8, 2 | BRF_GRA }, // 6
{ "631_q09.12h", 0x10000, 0x55ea6852, 2 | BRF_GRA }, // 7
{ "631_q10.13h", 0x10000, 0xfe93e217, 2 | BRF_GRA }, // 8
{ "631_q08.12h", 0x10000, 0xd2492b8b, 2 | BRF_GRA }, // 9
{ "631_q11.13h", 0x10000, 0x563ae24c, 2 | BRF_GRA }, // 10
{ "631r08.9h", 0x00100, 0x7553a172, 3 | BRF_GRA }, // 7 - Color PROMs
{ "631r09.14h", 0x00100, 0xa74dd86c, 3 | BRF_GRA }, // 7 - Color PROMs
{ "631r08.9h", 0x00100, 0x7553a172, 3 | BRF_GRA }, // 11 - Color PROMs
{ "631r09.14h", 0x00100, 0xa74dd86c, 3 | BRF_GRA }, // 12
};
STD_ROM_PICK(jackalr)
@ -1256,9 +1262,10 @@ INT32 DrvInitbl()
return DrvInit();
}
INT32 DrvInitRo()
INT32 JackalrInit()
{
game_rotates = 1;
jackalr = 1;
return DrvInit();
}
@ -1279,7 +1286,7 @@ struct BurnDriver BurnDrvJackalr = {
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_ORIENTATION_FLIPPED | BDF_HISCORE_SUPPORTED, 2, HARDWARE_PREFIX_KONAMI, GBF_RUNGUN, 0,
NULL, jackalrRomInfo, jackalrRomName, NULL, NULL, NULL, NULL, DrvrotateInputInfo, DrvrotateDIPInfo,
DrvInitRo, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x300,
JackalrInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x300,
224, 240, 3, 4
};

View File

@ -21566,15 +21566,15 @@ struct BurnDriver BurnDrvKof94rz = {
0x1000, 304, 224, 4, 3
};
// King of Fighters '94 (Team Edit Edition v1.4.0, Hack)
// King of Fighters '94 (Team Edit Edition v1.4.1, Hack)
// https://neorh.mattgreer.dev/
static struct BurnRomInfo kof94teRomDesc[] = {
{ "055-p1te.p1", 0x200000, 0xc597d83c, 1 | BRF_ESS | BRF_PRG },
{ "055-p1te.p1", 0x200000, 0x0fea9cd0, 1 | BRF_ESS | BRF_PRG },
{ "055-s1te.s1", 0x020000, 0xdcd024d2, 2 | BRF_GRA },
{ "055-c1te.c1", 0x200000, 0xab83690c, 3 | BRF_GRA },
{ "055-c1te.c1", 0x200000, 0xe99676e7, 3 | BRF_GRA },
{ "055-c2te.c2", 0x200000, 0x849bdfba, 3 | BRF_GRA },
KOF94_SPR2
KOF94_SPR3
@ -21591,7 +21591,7 @@ STD_ROM_FN(kof94te)
struct BurnDriver BurnDrvKof94te = {
"kof94te", "kof94", "neogeo", NULL, "2024",
"The King of Fighters '94 (Team Edit Edition v1.4.0, Hack)\0", NULL, "hack (Matt Greer)", "Neo Geo MVS",
"The King of Fighters '94 (Team Edit Edition v1.4.1, Hack)\0", NULL, "hack (Matt Greer)", "Neo Geo MVS",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE | BDF_HACK, 2, HARDWARE_PREFIX_CARTRIDGE | HARDWARE_SNK_NEOGEO | HARDWARE_SNK_SWAPP, GBF_VSFIGHT, FBF_KOF,
NULL, kof94teRomInfo, kof94teRomName, NULL, NULL, NULL, NULL, neogeoInputInfo, neogeoDIPInfo,

View File

@ -1,4 +1,4 @@
// FB Alpha Kaneko 16-bit driver module
// FB Neo Kaneko 16-bit driver module
// Based on MAME driver by Luca Elia
#include "tiles_generic.h"
@ -1552,8 +1552,8 @@ STD_ROM_PICK(Gtmr2a)
STD_ROM_FN(Gtmr2a)
static struct BurnRomInfo Gtmr2uRomDesc[] = {
{ "m2p0a1.u8", 0x080000, 0x813e1d5e, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
{ "m2p1a1.u7", 0x080000, 0xbee63666, BRF_ESS | BRF_PRG }, // 1
{ "m2p0a2.u8", 0x080000, 0x1a008ea4, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
{ "m2p1a2.u7", 0x080000, 0xbbf8b43e, BRF_ESS | BRF_PRG }, // 1
{ "m2d0x0.u31", 0x020000, 0x2e1a06ff, BRF_PRG | BRF_OPT }, // 2 MCU Code
@ -1577,6 +1577,32 @@ static struct BurnRomInfo Gtmr2uRomDesc[] = {
STD_ROM_PICK(Gtmr2u)
STD_ROM_FN(Gtmr2u)
static struct BurnRomInfo Gtmr2uaRomDesc[] = {
{ "m2p0a1.u8", 0x080000, 0x813e1d5e, BRF_ESS | BRF_PRG }, // 0 68000 Program Code
{ "m2p1a1.u7", 0x080000, 0xbee63666, BRF_ESS | BRF_PRG }, // 1
{ "m2d0x0.u31", 0x020000, 0x2e1a06ff, BRF_PRG | BRF_OPT }, // 2 MCU Code
{ "m2-200-0.u49", 0x400000, 0x93aafc53, BRF_GRA }, // 3 Sprites
{ "m2-201-0.u50", 0x200000, 0x39b60a83, BRF_GRA }, // 4
{ "m2-202-0.u51", 0x200000, 0xfd06b339, BRF_GRA }, // 5
{ "m2s0a1.u32", 0x080000, 0x98977171, BRF_GRA }, // 6
{ "m2s1a1.u33", 0x080000, 0xc69a732e, BRF_GRA }, // 7
{ "m2-300-0.u89", 0x200000, 0x4dc42fbb, BRF_GRA }, // 8 Tiles
{ "m2-301-0.u90", 0x200000, 0xf4e894f2, BRF_GRA }, // 9
{ "m2b0x0.u93", 0x020000, 0xe023d51b, BRF_GRA }, // 10
{ "m2b1x0.u94", 0x020000, 0x03c48bdb, BRF_GRA }, // 11
{ "m2-100-0.u48", 0x100000, 0x5250fa45, BRF_SND }, // 12 Samples, plus room for expansion
{ "m2w1a1.u47", 0x080000, 0x15f25342, BRF_SND }, // 13 Samples
};
STD_ROM_PICK(Gtmr2ua)
STD_ROM_FN(Gtmr2ua)
static struct BurnRomInfo MgcrystlRomDesc[] = {
{ "mc100e02.u18", 0x020000, 0x246a1335, BRF_ESS | BRF_PRG }, // 0 68000 Program Code /* Labeled as MC100E/U18-02 */
{ "mc101e02.u19", 0x040000, 0x708ea1dc, BRF_ESS | BRF_PRG }, // 1 /* Labeled as MC101E/U19-02 */
@ -7977,7 +8003,7 @@ struct BurnDriver BurnDrvGtmr2a = {
struct BurnDriver BurnDrvGtmr2u = {
"gtmr2u", "gtmr2", NULL, NULL, "1995",
"Great 1000 Miles Rally 2 USA (95/05/18)\0", NULL, "Kaneko", "Kaneko16",
"Great 1000 Miles Rally 2 USA (95/07/11)\0", NULL, "Kaneko", "Kaneko16",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE | BDF_HISCORE_SUPPORTED, 2, HARDWARE_KANEKO16, GBF_RACING, 0,
NULL, Gtmr2uRomInfo, Gtmr2uRomName, NULL, NULL, NULL, NULL, GtmrInputInfo, Gtmr2DIPInfo,
@ -7985,6 +8011,16 @@ struct BurnDriver BurnDrvGtmr2u = {
NULL, 0x10000, 320, 240, 4, 3
};
struct BurnDriver BurnDrvGtmr2ua = {
"gtmr2ua", "gtmr2", NULL, NULL, "1995",
"Great 1000 Miles Rally 2 USA (95/05/18)\0", NULL, "Kaneko", "Kaneko16",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE | BDF_HISCORE_SUPPORTED, 2, HARDWARE_KANEKO16, GBF_RACING, 0,
NULL, Gtmr2uaRomInfo, Gtmr2uaRomName, NULL, NULL, NULL, NULL, GtmrInputInfo, Gtmr2DIPInfo,
Gtmr2uInit, GtmrMachineExit, GtmrFrame, GtmrFrameRender, GtmrScan,
NULL, 0x10000, 320, 240, 4, 3
};
struct BurnDriver BurnDrvMgcrsytl = {
"mgcrystl", NULL, NULL, NULL, "1991",
"Magical Crystals (World, 92/01/10)\0", NULL, "Kaneko", "Kaneko16",

View File

@ -1180,7 +1180,6 @@ void IpsApplyPatches(UINT8* base, char* rom_name, UINT32 crc, bool readonly)
void IpsPatchInit()
{
bDoIpsPatch = true;
GetIpsDrvDefine();
}