summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/funworld.cpp
diff options
context:
space:
mode:
authorGravatarGravatar Firehawke <Firehawke@users.noreply.github.com>2017-12-13 21:31:27 -0700
committerGravatarGravatar Firehawke <Firehawke@users.noreply.github.com>2017-12-13 21:31:27 -0700
commit9ece34eb218c5c1960468294c733fd00ac7fa696 (patch) (github)
tree7160ed8d2cbe2127aaaef0a21f8736403b0f8a7c /src/mame/drivers/funworld.cpp
parent54155441e9ba9941e85d80c4834a66376a11e791 (diff)
downloadmame-9ece34eb218c5c1960468294c733fd00ac7fa696.tar.bz2
mame-9ece34eb218c5c1960468294c733fd00ac7fa696.zip
Revert "Revert "Merge branch 'master' of https://github.com/mamedev/mame""
Diffstat (limited to 'src/mame/drivers/funworld.cpp')
-rw-r--r--src/mame/drivers/funworld.cpp57
1 files changed, 41 insertions, 16 deletions
diff --git a/src/mame/drivers/funworld.cpp b/src/mame/drivers/funworld.cpp
index a31afd756f2..23418f8fb80 100644
--- a/src/mame/drivers/funworld.cpp
+++ b/src/mame/drivers/funworld.cpp
@@ -3712,6 +3712,30 @@ ROM_START( jolycdie ) /* Bootleg PCB, NON encrypted graphics */
ROM_LOAD( "82s147.bin", 0x0000, 0x0200, CRC(fc9a8aa3) SHA1(6f0a98bd0c7a64281bb1cce35de11b76978d7123) ) // sldh
ROM_END
+/* Jolly Card Italian bootleg...
+
+ This PCB has an Altera EP910PC CPLD on board
+
+ This set doesn't need any NVRAM initialization.
+
+ 5 & 6 are coins.
+ W is payout.
+*/
+ROM_START( jolycdif ) /* Altera EP910PC CPLD */
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "1.bin", 0x8000, 0x8000, CRC(80983f6a) SHA1(222ce5d4800887de92a73decbad31e96f8da3b4a) )
+
+ ROM_REGION( 0x10000, "gfx1", 0 )
+ ROM_LOAD( "2.bin", 0x0000, 0x8000, CRC(a4452751) SHA1(a0b32a8801ebaee7ede7873b244f1a424433fe94) )
+ ROM_CONTINUE( 0x0000, 0x8000) /* Discarding 1nd half 1ST AND 2ND HALF IDENTICAL*/
+ ROM_LOAD( "3.bin", 0x8000, 0x8000, CRC(2856c82d) SHA1(7ce835bc2246ffede180cff0d8d0d4528afcc297) )
+ ROM_CONTINUE( 0x8000, 0x8000) /* Discarding 1nd half 1ST AND 2ND HALF IDENTICAL*/
+
+ ROM_REGION( 0x0200, "proms", 0 )
+ ROM_LOAD( "82s147.bin", 0x0000, 0x0200, CRC(5ebc5659) SHA1(8d59011a181399682ab6e8ed14f83101e9bfa0c6) ) // proper dump
+ROM_END
+
+
ROM_START( sjcd2kx3 ) /* Super Joly 2000 3x */
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "sj3.bin", 0x8000, 0x8000, CRC(c530b518) SHA1(36934d8e1e2cb2f71eb44a05b86ec970c9f398cd) )
@@ -6439,7 +6463,7 @@ DRIVER_INIT_MEMBER(funworld_state, saloon)
for (i = start; i < size; i++)
{
- rom[i] = BITSWAP8(rom[i], 7, 6, 5, 4, 3, 0, 1, 2);
+ rom[i] = bitswap<8>(rom[i], 7, 6, 5, 4, 3, 0, 1, 2);
}
{
@@ -6451,7 +6475,7 @@ DRIVER_INIT_MEMBER(funworld_state, saloon)
for (i = start; i < size; i++)
{
- a = ((i & 0xff00) | BITSWAP8(i & 0xff, 2, 0, 1, 3, 4, 5, 6, 7));
+ a = ((i & 0xff00) | bitswap<8>(i & 0xff, 2, 0, 1, 3, 4, 5, 6, 7));
rom[a] = buffer[i];
}
}
@@ -6469,7 +6493,7 @@ DRIVER_INIT_MEMBER(funworld_state, saloon)
for (i = startg; i < sizeg; i++)
{
- a = BITSWAP16(i, 15, 14, 13, 12, 11, 6, 7, 5, 8, 4, 10, 3, 9, 0, 1, 2);
+ a = bitswap<16>(i, 15, 14, 13, 12, 11, 6, 7, 5, 8, 4, 10, 3, 9, 0, 1, 2);
gfxrom[a] = buffer[i];
}
}
@@ -6483,7 +6507,7 @@ DRIVER_INIT_MEMBER(funworld_state, saloon)
for (i = startp; i < sizep; i++)
{
- prom[i] = BITSWAP8(prom[i], 2, 3, 5, 4, 6, 7, 1, 0);
+ prom[i] = bitswap<8>(prom[i], 2, 3, 5, 4, 6, 7, 1, 0);
}
{
@@ -6495,7 +6519,7 @@ DRIVER_INIT_MEMBER(funworld_state, saloon)
for (i = startp; i < sizep; i++)
{
- a = BITSWAP16(i, 15, 14, 13, 12, 11, 10, 9, 4, 8, 7, 6, 5, 2, 0, 1, 3);
+ a = bitswap<16>(i, 15, 14, 13, 12, 11, 10, 9, 4, 8, 7, 6, 5, 2, 0, 1, 3);
prom[a] = buffer[i];
}
}
@@ -6521,7 +6545,7 @@ DRIVER_INIT_MEMBER(funworld_state, multiwin)
ROM[x] = ROM[x] ^ 0x91;
uint8_t code;
- ROM[x] = BITSWAP8(ROM[x],5,6,7,2,3,0,1,4);
+ ROM[x] = bitswap<8>(ROM[x],5,6,7,2,3,0,1,4);
code = ROM[x];
@@ -6553,7 +6577,7 @@ DRIVER_INIT_MEMBER(funworld_state, royalcdc)
uint8_t code;
// this seems correct for the data, plaintext decrypts fine
- ROM[x] = BITSWAP8(ROM[x],2,6,7,4,3,1,5,0);
+ ROM[x] = bitswap<8>(ROM[x],2,6,7,4,3,1,5,0);
// the code uses different encryption, there are conflicts here
// so it's probably address based
@@ -6618,7 +6642,7 @@ DRIVER_INIT_MEMBER(funworld_state, dino4)
for (i = start; i < size; i++)
{
- rom[i] = BITSWAP8(rom[i], 7, 6, 5, 4, 3, 1, 2, 0);
+ rom[i] = bitswap<8>(rom[i], 7, 6, 5, 4, 3, 1, 2, 0);
}
{
@@ -6630,7 +6654,7 @@ DRIVER_INIT_MEMBER(funworld_state, dino4)
for (i = start; i < size; i++)
{
- a = BITSWAP16(i, 15, 13, 14, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+ a = bitswap<16>(i, 15, 13, 14, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
rom[a] = buffer[i];
}
}
@@ -6648,7 +6672,7 @@ DRIVER_INIT_MEMBER(funworld_state, dino4)
for (i = startg; i < sizeg; i++)
{
- a = BITSWAP16(i, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 4, 5, 3, 2, 1, 0);
+ a = bitswap<16>(i, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 4, 5, 3, 2, 1, 0);
gfxrom[a] = buffer[i];
}
}
@@ -6678,7 +6702,7 @@ DRIVER_INIT_MEMBER(funworld_state, ctunk)
for (i = start; i < size; i++)
{
- rom[i] = BITSWAP8(rom[i], 5, 6, 7, 3, 4, 0, 1, 2);
+ rom[i] = bitswap<8>(rom[i], 5, 6, 7, 3, 4, 0, 1, 2);
}
//buffer = std::make_unique<uint8_t[]>(size);
@@ -6722,7 +6746,7 @@ static void decrypt_rcdino4(uint8_t *rom, int size, uint8_t *gfxrom, int sizeg,
for (i = start; i < size; i++)
{
- rom[i] = BITSWAP8(rom[i], 7, 6, 5, 4, 3, 1, 2, 0);
+ rom[i] = bitswap<8>(rom[i], 7, 6, 5, 4, 3, 1, 2, 0);
}
{
@@ -6734,7 +6758,7 @@ static void decrypt_rcdino4(uint8_t *rom, int size, uint8_t *gfxrom, int sizeg,
for (i = start; i < size; i++)
{
- a = BITSWAP16(i, 15, 13, 14, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+ a = bitswap<16>(i, 15, 13, 14, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
rom[a] = buffer[i];
}
@@ -6752,7 +6776,7 @@ static void decrypt_rcdino4(uint8_t *rom, int size, uint8_t *gfxrom, int sizeg,
for (i = startg; i < sizeg; i++)
{
- a = BITSWAP16(i, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 4, 5, 3, 2, 1, 0);
+ a = bitswap<16>(i, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 4, 5, 3, 2, 1, 0);
gfxrom[a] = buffer[i];
}
}
@@ -6763,7 +6787,7 @@ static void decrypt_rcdino4(uint8_t *rom, int size, uint8_t *gfxrom, int sizeg,
for (x = 0x0000; x < 0x10000; x++)
{
- src[x] = BITSWAP8(src[x], 7, 6, 4, 5, 3, 2, 1, 0);
+ src[x] = bitswap<8>(src[x], 7, 6, 4, 5, 3, 2, 1, 0);
src[x] = src[x] ^ 0x81;
}
@@ -7025,7 +7049,8 @@ GAMEL( 1985, sjcd2kx3, jollycrd, fw1stpal, funworld, funworld_state, 0,
GAME( 1986, jolycdab, jollycrd, fw1stpal, funworld, funworld_state, 0, ROT0, "Inter Games", "Jolly Card (Austrian, Fun World, bootleg)", MACHINE_NOT_WORKING )
GAMEL( 1992, jolycdsp, jollycrd, cuoreuno, jolycdit, funworld_state, ctunk, ROT0, "TAB Austria", "Jolly Card (Spanish, blue TAB board, encrypted)", 0, layout_royalcrd )
GAMEL( 1990, jolycdid, jollycrd, cuoreuno, jolycdcr, funworld_state, 0, ROT0, "bootleg", "Jolly Card (Italian, different colors, set 1)", 0, layout_jollycrd ) // italian, CPLD, different colors.
-GAMEL( 1990, jolycdie, jollycrd, cuoreuno, jolycdib, funworld_state, 0, ROT0, "bootleg", "Jolly Card (Italian, different colors, set 2)", 0, layout_jollycrd ) // not from TAB blue PCB
+GAMEL( 1990, jolycdie, jollycrd, cuoreuno, jolycdib, funworld_state, 0, ROT0, "bootleg", "Jolly Card (Italian, different colors, set 2)", 0, layout_jollycrd ) // not from TAB blue PCB.
+GAMEL( 1990, jolycdif, jollycrd, cuoreuno, jolycdib, funworld_state, 0, ROT0, "bootleg", "Jolly Card (Italian, bootleg)", 0, layout_jollycrd ) // italian, CPLD. doesn't need nvram init.
// Bonus Card based...
GAMEL( 1986, bonuscrd, 0, fw2ndpal, bonuscrd, funworld_state, 0, ROT0, "Fun World", "Bonus Card (Austrian)", MACHINE_IMPERFECT_COLORS, layout_bonuscrd ) // use fw1stpal machine for green background