Skip to content

Commit

Permalink
d_rallyx : New working clones [Osso13]
Browse files Browse the repository at this point in the history
reordered gutangtn sets [Brian Troha]
  • Loading branch information
taoenwen committed Jul 16, 2024
1 parent be00260 commit 313f18c
Showing 1 changed file with 111 additions and 92 deletions.
203 changes: 111 additions & 92 deletions src/burn/drv/pre90s/d_rallyx.cpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// FinalBurn Alpha driver module for Rally-X, based on the MAME driver by Nicola Salmoria.
// FinalBurn Neo driver module for Rally-X, based on the MAME driver by Nicola Salmoria.
// Emulates Rally-X variants, Jungler, Tactician, Loco-Motion & Commando (Sega)
// Oddities: Jungler has flipped-mode on by default, but it only affects sprites
// and bullets.
Expand All @@ -17,7 +17,7 @@ static UINT8 DrvDip[2] = {0, 0};
static UINT8 DrvInput[3] = {0, 0, 0};
static UINT8 DrvReset = 0;

static UINT8 *Mem = NULL;
static UINT8 *AllMem = NULL;
static UINT8 *MemEnd = NULL;
static UINT8 *RamStart = NULL;
static UINT8 *RamEnd = NULL;
Expand Down Expand Up @@ -765,7 +765,7 @@ STD_SAMPLE_FN(Rallyx)

static INT32 MemIndex()
{
UINT8 *Next; Next = Mem;
UINT8 *Next; Next = AllMem;

DrvZ80Rom1 = Next; Next += 0x04000;
DrvPromPalette = Next; Next += 0x00020;
Expand Down Expand Up @@ -794,7 +794,7 @@ static INT32 MemIndex()

static INT32 JunglerMemIndex()
{
UINT8 *Next; Next = Mem;
UINT8 *Next; Next = AllMem;

DrvZ80Rom1 = Next; Next += 0x08000;
DrvZ80Rom2 = Next; Next += 0x02000;
Expand Down Expand Up @@ -1236,15 +1236,10 @@ static void JunglerMachineInit()

static INT32 DrvInit()
{
INT32 nRet = 0, nLen;
INT32 nRet = 0;

// Allocate and Blank all required memory
Mem = NULL;
MemIndex();
nLen = MemEnd - (UINT8 *)0;
if ((Mem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
memset(Mem, 0, nLen);
MemIndex();
BurnAllocMemIndex();

DrvTempRom = (UINT8 *)BurnMalloc(0x01000);

Expand Down Expand Up @@ -1282,15 +1277,10 @@ static INT32 DrvInit()

static INT32 DrvaInit()
{
INT32 nRet = 0, nLen;
INT32 nRet = 0;

// Allocate and Blank all required memory
Mem = NULL;
MemIndex();
nLen = MemEnd - (UINT8 *)0;
if ((Mem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
memset(Mem, 0, nLen);
MemIndex();
BurnAllocMemIndex();

DrvTempRom = (UINT8 *)BurnMalloc(0x01000);

Expand Down Expand Up @@ -1333,15 +1323,10 @@ static INT32 DrvaInit()

static INT32 NrallyxInit()
{
INT32 nRet = 0, nLen;
INT32 nRet = 0;

// Allocate and Blank all required memory
Mem = NULL;
MemIndex();
nLen = MemEnd - (UINT8 *)0;
if ((Mem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
memset(Mem, 0, nLen);
MemIndex();
BurnAllocMemIndex();

DrvTempRom = (UINT8 *)BurnMalloc(0x01000);

Expand Down Expand Up @@ -1392,11 +1377,11 @@ static INT32 JunglerInit()
INT32 nRet = 0, nLen;

// Allocate and Blank all required memory
Mem = NULL;
AllMem = NULL;
JunglerMemIndex();
nLen = MemEnd - (UINT8 *)0;
if ((Mem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
memset(Mem, 0, nLen);
if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
memset(AllMem, 0, nLen);
JunglerMemIndex();

DrvTempRom = (UINT8 *)BurnMalloc(0x01000);
Expand Down Expand Up @@ -1442,11 +1427,11 @@ static INT32 LococommonDrvInit(INT32 prgroms, INT32 soundroms)
INT32 nRet = 0, nLen;

// Allocate and Blank all required memory
Mem = NULL;
AllMem = NULL;
JunglerMemIndex();
nLen = MemEnd - (UINT8 *)0;
if ((Mem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
memset(Mem, 0, nLen);
if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == NULL) return 1;
memset(AllMem, 0, nLen);
JunglerMemIndex();

DrvTempRom = (UINT8 *)BurnMalloc(0x04000);
Expand Down Expand Up @@ -1501,7 +1486,7 @@ static INT32 DrvExit()

ZetExit();

BurnFree(Mem);
BurnFreeMemIndex();

DrvCPUFireIRQ = 0;
DrvCPUIRQVector = 0;
Expand Down Expand Up @@ -2197,18 +2182,18 @@ struct BurnDriver BurnDrvTactcian = {
// Tactician (set 2)

static struct BurnRomInfo tactcian2RomDesc[] = {
{ "tan1", 0x1000, 0xddf38b75, 1 }, // 0 maincpu
{ "tan2", 0x1000, 0xf065ee2e, 1 }, // 1
{ "tan3", 0x1000, 0x2dba64fe, 1 }, // 2
{ "tan4", 0x1000, 0x2ba07847, 1 }, // 3
{ "tan5", 0x1000, 0x1dae4c61, 1 }, // 4
{ "tan6", 0x1000, 0x2b36a18d, 1 }, // 5
{ "tan1", 0x1000, 0xddf38b75, 1 }, // 0 maincpu
{ "tan2", 0x1000, 0xf065ee2e, 1 }, // 1
{ "tan3", 0x1000, 0x2dba64fe, 1 }, // 2
{ "tan4", 0x1000, 0x2ba07847, 1 }, // 3
{ "tan5", 0x1000, 0x1dae4c61, 1 }, // 4
{ "tan6", 0x1000, 0x2b36a18d, 1 }, // 5

{ "tacticia.s2", 0x1000, 0x97d145a7, 2 }, // 6 tpsound
{ "tacticia.s1", 0x1000, 0x067f781b, 2 }, // 7

{ "c1", 0x1000, 0x5399471f, 3 }, // 8 gfx1
{ "c2", 0x1000, 0x8e8861e8, 3 }, // 9
{ "c1", 0x1000, 0x5399471f, 3 }, // 8 gfx1
{ "c2", 0x1000, 0x8e8861e8, 3 }, // 9

{ "tact6301.004", 0x0100, 0x88b0b511, 4 }, // 10 gfx2

Expand Down Expand Up @@ -2238,22 +2223,22 @@ INT32 LocomotnDrvInit()
// Loco-Motion

static struct BurnRomInfo locomotnRomDesc[] = {
{ "1a.cpu", 0x1000, 0xb43e689a, 1 }, // 0 maincpu
{ "2a.cpu", 0x1000, 0x529c823d, 1 }, // 1
{ "3.cpu", 0x1000, 0xc9dbfbd1, 1 }, // 2
{ "4.cpu", 0x1000, 0xcaf6431c, 1 }, // 3
{ "5.cpu", 0x1000, 0x64cf8dd6, 1 }, // 4
{ "1a.cpu", 0x1000, 0xb43e689a, 1 }, // 0 maincpu
{ "2a.cpu", 0x1000, 0x529c823d, 1 }, // 1
{ "3.cpu", 0x1000, 0xc9dbfbd1, 1 }, // 2
{ "4.cpu", 0x1000, 0xcaf6431c, 1 }, // 3
{ "5.cpu", 0x1000, 0x64cf8dd6, 1 }, // 4

{ "1b_s1.bin", 0x1000, 0xa1105714, 2 }, // 5 tpsound

{ "5l_c1.bin", 0x1000, 0x5732eda9, 3 }, // 6 gfx1
{ "c2.cpu", 0x1000, 0xc3035300, 3 }, // 7
{ "c2.cpu", 0x1000, 0xc3035300, 3 }, // 7

{ "10g.bpr", 0x0100, 0x2ef89356, 4 }, // 8 gfx2

{ "8b.bpr", 0x0020, 0x75b05da0, 5 }, // 9 proms
{ "9d.bpr", 0x0100, 0xaa6cf063, 5 }, // 10
{ "7a.bpr", 0x0020, 0x48c8f094, 5 }, // 11
{ "8b.bpr", 0x0020, 0x75b05da0, 5 }, // 9 proms
{ "9d.bpr", 0x0100, 0xaa6cf063, 5 }, // 10
{ "7a.bpr", 0x0020, 0x48c8f094, 5 }, // 11
{ "10a.bpr", 0x0020, 0xb8861096, 5 }, // 12
};

Expand All @@ -2275,9 +2260,9 @@ INT32 GutangtnDrvInit()
return LococommonDrvInit(5, 1);
}

// Guttang Gottong
// Guttang Gottong (Sega license)

static struct BurnRomInfo gutangtnRomDesc[] = {
static struct BurnRomInfo gutangtnsRomDesc[] = {
{ "3d_1.bin", 0x1000, 0xe9757395, 1 }, // 0 maincpu
{ "3e_2.bin", 0x1000, 0x11d21d2e, 1 }, // 1
{ "3f_3.bin", 0x1000, 0x4d80f895, 1 }, // 2
Expand All @@ -2291,50 +2276,84 @@ static struct BurnRomInfo gutangtnRomDesc[] = {

{ "10g.bpr", 0x0100, 0x2ef89356, 4 }, // 8 gfx2

{ "8b.bpr", 0x0020, 0x75b05da0, 5 }, // 9 proms
{ "9d.bpr", 0x0100, 0xaa6cf063, 5 }, // 10
{ "7a.bpr", 0x0020, 0x48c8f094, 5 }, // 11
{ "8b.bpr", 0x0020, 0x75b05da0, 5 }, // 9 proms
{ "9d.bpr", 0x0100, 0xaa6cf063, 5 }, // 10
{ "7a.bpr", 0x0020, 0x48c8f094, 5 }, // 11
{ "10a.bpr", 0x0020, 0xb8861096, 5 }, // 12
};

STD_ROM_PICK(gutangtn)
STD_ROM_FN(gutangtn)
STD_ROM_PICK(gutangtns)
STD_ROM_FN(gutangtns)

struct BurnDriver BurnDrvGutangtn = {
"gutangtn", "locomotn", NULL, NULL, "1982",
"Guttang Gottong\0", NULL, "Konami (Sega license)", "Miscellaneous",
struct BurnDriver BurnDrvGutangtns = {
"gutangtns", "locomotn", NULL, NULL, "1982",
"Guttang Gottong (Sega license)\0", NULL, "Konami (Sega license)", "Miscellaneous",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_HISCORE_SUPPORTED, 2, HARDWARE_MISC_PRE90S, GBF_PUZZLE, 0,
NULL, gutangtnRomInfo, gutangtnRomName, NULL, NULL, NULL, NULL, LocomotnInputInfo, LocomotnDIPInfo,
NULL, gutangtnsRomInfo, gutangtnsRomName, NULL, NULL, NULL, NULL, LocomotnInputInfo, LocomotnDIPInfo,
GutangtnDrvInit, DrvExit, JunglerFrame, DrvDrawJungler, DrvScan,
NULL, 324, 224, 256, 3, 4
};

// Guttang Gottong

static struct BurnRomInfo gutangtnRomDesc[] = {
{ "bimm_001.r1", 0x1000, 0xdfa2089c, 1 }, // 0 maincpu
{ "bimm_002.r2", 0x1000, 0x1de5e6a0, 1 }, // 1
{ "bimm_003.r3", 0x1000, 0x01f909fe, 1 }, // 2
{ "bimm_004.r4", 0x1000, 0xa89eb3e3, 1 }, // 3

{ "bimm_007.b1", 0x1000, 0x3d83f6d3, 2 }, // 4 tpsound
{ "bimm_008.c1", 0x1000, 0x323e1937, 2 }, // 5

{ "bimm_005.r9", 0x1000, 0x992d079c, 3 }, // 6 gfx1
{ "bimm_006.r10", 0x1000, 0xf0414f1d, 3 }, // 7

{ "5.bpr", 0x0100, 0x21fb583f, 4 }, // 8 gfx2

{ "2.bpr", 0x0020, 0x26f42e6f, 5 }, // 9 proms
{ "3.bpr", 0x0100, 0x4aecc0c8, 5 }, // 10
{ "7a.bpr", 0x0020, 0x48c8f094, 5 }, // 11
{ "10a.bpr", 0x0020, 0xb8861096, 5 }, // 12
};

STD_ROM_PICK(gutangtn)
STD_ROM_FN(gutangtn)

INT32 CottongDrvInit()
{
return LococommonDrvInit(4, 2);
}

struct BurnDriver BurnDrvGutangtn = {
"gutangtn", "locomotn", NULL, NULL, "1982",
"Guttang Gottong\0", NULL, "Konami", "Miscellaneous",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL | BDF_HISCORE_SUPPORTED, 2, HARDWARE_MISC_PRE90S, GBF_PUZZLE, 0,
NULL, gutangtnRomInfo, gutangtnRomName, NULL, NULL, NULL, NULL, LocomotnInputInfo, LocomotnDIPInfo,
CottongDrvInit, DrvExit, JunglerFrame, DrvDrawJungler, DrvScan,
NULL, 324, 224, 256, 3, 4
};

// Cotocoto Cottong

static struct BurnRomInfo cottongRomDesc[] = {
{ "c1", 0x1000, 0x2c256fe6, 1 }, // 0 maincpu
{ "c2", 0x1000, 0x1de5e6a0, 1 }, // 1
{ "c3", 0x1000, 0x01f909fe, 1 }, // 2
{ "c4", 0x1000, 0xa89eb3e3, 1 }, // 3
{ "c1", 0x1000, 0x2c256fe6, 1 }, // 0 maincpu
{ "c2", 0x1000, 0x1de5e6a0, 1 }, // 1
{ "c3", 0x1000, 0x01f909fe, 1 }, // 2
{ "c4", 0x1000, 0xa89eb3e3, 1 }, // 3

{ "c7", 0x1000, 0x3d83f6d3, 2 }, // 4 tpsound
{ "c8", 0x1000, 0x323e1937, 2 }, // 5
{ "c7", 0x1000, 0x3d83f6d3, 2 }, // 4 tpsound
{ "c8", 0x1000, 0x323e1937, 2 }, // 5

{ "c5", 0x1000, 0x992d079c, 3 }, // 6 gfx1
{ "c6", 0x1000, 0x0149ef46, 3 }, // 7
{ "c5", 0x1000, 0x992d079c, 3 }, // 6 gfx1
{ "c6", 0x1000, 0x0149ef46, 3 }, // 7

{ "5.bpr", 0x0100, 0x21fb583f, 4 }, // 8 gfx2
{ "5.bpr", 0x0100, 0x21fb583f, 4 }, // 8 gfx2

{ "2.bpr", 0x0020, 0x26f42e6f, 5 }, // 9 proms
{ "3.bpr", 0x0100, 0x4aecc0c8, 5 }, // 10
{ "7a.bpr", 0x0020, 0x48c8f094, 5 }, // 11
{ "2.bpr", 0x0020, 0x26f42e6f, 5 }, // 9 proms
{ "3.bpr", 0x0100, 0x4aecc0c8, 5 }, // 10
{ "7a.bpr", 0x0020, 0x48c8f094, 5 }, // 11
{ "10a.bpr", 0x0020, 0xb8861096, 5 }, // 12
};

Expand All @@ -2359,22 +2378,22 @@ INT32 LocobootDrvInit()
// Loco-Motion (bootleg)

static struct BurnRomInfo locobootRomDesc[] = {
{ "g.116", 0x1000, 0x1248799c, 1 }, // 0 maincpu
{ "g.117", 0x1000, 0x5b5b5753, 1 }, // 1
{ "g.118", 0x1000, 0x6bc269e1, 1 }, // 2
{ "g.119", 0x1000, 0x3feb762e, 1 }, // 3
{ "g.116", 0x1000, 0x1248799c, 1 }, // 0 maincpu
{ "g.117", 0x1000, 0x5b5b5753, 1 }, // 1
{ "g.118", 0x1000, 0x6bc269e1, 1 }, // 2
{ "g.119", 0x1000, 0x3feb762e, 1 }, // 3

{ "c7", 0x1000, 0x3d83f6d3, 2 }, // 4 tpsound
{ "c8", 0x1000, 0x323e1937, 2 }, // 5
{ "c7", 0x1000, 0x3d83f6d3, 2 }, // 4 tpsound
{ "c8", 0x1000, 0x323e1937, 2 }, // 5

{ "c5", 0x1000, 0x992d079c, 3 }, // 6 gfx1
{ "c6", 0x1000, 0x0149ef46, 3 }, // 7
{ "c5", 0x1000, 0x992d079c, 3 }, // 6 gfx1
{ "c6", 0x1000, 0x0149ef46, 3 }, // 7

{ "5.bpr", 0x0100, 0x21fb583f, 4 }, // 8 gfx2
{ "5.bpr", 0x0100, 0x21fb583f, 4 }, // 8 gfx2

{ "2.bpr", 0x0020, 0x26f42e6f, 5 }, // 9 proms
{ "3.bpr", 0x0100, 0x4aecc0c8, 5 }, // 10
{ "7a.bpr", 0x0020, 0x48c8f094, 5 }, // 11
{ "2.bpr", 0x0020, 0x26f42e6f, 5 }, // 9 proms
{ "3.bpr", 0x0100, 0x4aecc0c8, 5 }, // 10
{ "7a.bpr", 0x0020, 0x48c8f094, 5 }, // 11
{ "10a.bpr", 0x0020, 0xb8861096, 5 }, // 12
};

Expand All @@ -2401,16 +2420,16 @@ INT32 CommsegaDrvInit()
// Commando (Sega)

static struct BurnRomInfo commsegaRomDesc[] = {
{ "csega1", 0x1000, 0x92de3405, 1 }, // 0 maincpu
{ "csega2", 0x1000, 0xf14e2f9a, 1 }, // 1
{ "csega3", 0x1000, 0x941dbf48, 1 }, // 2
{ "csega4", 0x1000, 0xe0ac69b4, 1 }, // 3
{ "csega5", 0x1000, 0xbc56ebd0, 1 }, // 4
{ "csega1", 0x1000, 0x92de3405, 1 }, // 0 maincpu
{ "csega2", 0x1000, 0xf14e2f9a, 1 }, // 1
{ "csega3", 0x1000, 0x941dbf48, 1 }, // 2
{ "csega4", 0x1000, 0xe0ac69b4, 1 }, // 3
{ "csega5", 0x1000, 0xbc56ebd0, 1 }, // 4

{ "csega8", 0x1000, 0x588b4210, 2 }, // 5 tpsound
{ "csega8", 0x1000, 0x588b4210, 2 }, // 5 tpsound

{ "csega7", 0x1000, 0xe8e374f9, 3 }, // 6 gfx1
{ "csega6", 0x1000, 0xcf07fd5e, 3 }, // 7
{ "csega7", 0x1000, 0xe8e374f9, 3 }, // 6 gfx1
{ "csega6", 0x1000, 0xcf07fd5e, 3 }, // 7

{ "gg3.bpr", 0x0100, 0xae7fd962, 4 }, // 8 gfx2

Expand Down

0 comments on commit 313f18c

Please sign in to comment.