- Added proper inputs to jolyc980.
- Added temporary patch to allow bypass the "code" screen in jolyc980. - Updated technical notes.
This commit is contained in:
parent
c66bb0adc5
commit
caf9dbdef3
@ -184,6 +184,11 @@
|
|||||||
get the input codes necessary to allow boot the game.
|
get the input codes necessary to allow boot the game.
|
||||||
|
|
||||||
|
|
||||||
|
- Jolly Card (croatian sets) and Jolly Card Professional 2.0
|
||||||
|
|
||||||
|
These games don't operate with regular coins/tokens. Only remote credits are allowed.
|
||||||
|
|
||||||
|
|
||||||
- Magic Card II (Impera)
|
- Magic Card II (Impera)
|
||||||
|
|
||||||
Impera made 2 graphics sets for this game. One of them is encrypted, and meant for the TAB blue board.
|
Impera made 2 graphics sets for this game. One of them is encrypted, and meant for the TAB blue board.
|
||||||
@ -813,12 +818,17 @@
|
|||||||
- Added minor corrections.
|
- Added minor corrections.
|
||||||
- Updated technical notes.
|
- Updated technical notes.
|
||||||
|
|
||||||
|
2008/03/14
|
||||||
|
- Added proper inputs to jolyc980.
|
||||||
|
- Added temporary patch to allow bypass the "code" screen in jolyc980.
|
||||||
|
- Updated technical notes.
|
||||||
|
|
||||||
|
|
||||||
*** TO DO ***
|
*** TO DO ***
|
||||||
|
|
||||||
- Figure out the royalcdc, jokercrd and saloon encryption.
|
- Figure out the royalcdc, jokercrd and saloon encryption.
|
||||||
- Fix the imperfect sound in Magic Card II.
|
- Fix the imperfect sound in Magic Card II.
|
||||||
- Reverse-engineering the boot code of Jolly Card Professional 2.0 to get the proper input codes to boot.
|
- Reverse-engineering the boot code of Jolly Card Professional 2.0 to get the proper codes to boot.
|
||||||
- Analyze the unknown writes to $2000/$4000 in some games.
|
- Analyze the unknown writes to $2000/$4000 in some games.
|
||||||
- Check for the reads to the ay8910 output ports in some games.
|
- Check for the reads to the ay8910 output ports in some games.
|
||||||
- Figure out the MCU in monglfir and soccernw.
|
- Figure out the MCU in monglfir and soccernw.
|
||||||
@ -1133,6 +1143,64 @@ static INPUT_PORTS_START( jolycdit )
|
|||||||
PORT_DIPSETTING( 0x80, "Manual Payout SW" )
|
PORT_DIPSETTING( 0x80, "Manual Payout SW" )
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
|
static INPUT_PORTS_START( jolyc980 )
|
||||||
|
PORT_START_TAG("IN0")
|
||||||
|
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Navijanje (Remote)") PORT_CODE(KEYCODE_Q)
|
||||||
|
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Stop (Hold) 1") PORT_CODE(KEYCODE_Z)
|
||||||
|
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("Ponistavange (Cancel) / Kasiranje (Take) / Autohold") PORT_CODE(KEYCODE_N)
|
||||||
|
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Djelenje (Start) / Gamble (Play)")
|
||||||
|
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("Stop (Hold) 5 / Ulog (Bet) / Half Gamble") PORT_CODE(KEYCODE_B)
|
||||||
|
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Konobar (Service1)")
|
||||||
|
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Namjestit (Service2)")
|
||||||
|
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Stop (Hold) 4 / Veca (High)") PORT_CODE(KEYCODE_V)
|
||||||
|
|
||||||
|
PORT_START_TAG("IN1")
|
||||||
|
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Stop (Hold) 2 / Manja (Low)") PORT_CODE(KEYCODE_X)
|
||||||
|
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Stop (Hold) 3") PORT_CODE(KEYCODE_C)
|
||||||
|
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||||
|
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||||
|
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||||
|
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||||
|
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||||
|
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_NAME("Vratiti Nazad (Payout)") PORT_CODE(KEYCODE_M) // Payout? Need to check with hopper filled.
|
||||||
|
|
||||||
|
PORT_START_TAG("IN2")
|
||||||
|
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||||
|
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||||
|
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||||
|
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||||
|
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||||
|
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||||
|
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||||
|
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||||
|
|
||||||
|
PORT_START_TAG("DSW")
|
||||||
|
PORT_DIPNAME( 0x01, 0x01, "State" ) PORT_DIPLOCATION("SW1:8")
|
||||||
|
PORT_DIPSETTING( 0x01, "Play" )
|
||||||
|
PORT_DIPSETTING( 0x00, "Keyboard Test" )
|
||||||
|
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:7")
|
||||||
|
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:6")
|
||||||
|
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:5")
|
||||||
|
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:4")
|
||||||
|
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_DIPNAME( 0x20, 0x00, "Joker" ) PORT_DIPLOCATION("SW1:3")
|
||||||
|
PORT_DIPSETTING( 0x00, "With Joker" ) // also enable Five of a Kind.
|
||||||
|
PORT_DIPSETTING( 0x20, "Without Joker" )
|
||||||
|
PORT_DIPNAME( 0x40, 0x00, "Hold" ) PORT_DIPLOCATION("SW1:2")
|
||||||
|
PORT_DIPSETTING( 0x00, "Auto Hold" )
|
||||||
|
PORT_DIPSETTING( 0x40, "No Auto Hold" )
|
||||||
|
PORT_DIPNAME( 0x80, 0x80, "Payout" ) PORT_DIPLOCATION("SW1:1")
|
||||||
|
PORT_DIPSETTING( 0x00, "Hopper" )
|
||||||
|
PORT_DIPSETTING( 0x80, "Manual Payout SW" )
|
||||||
|
INPUT_PORTS_END
|
||||||
|
|
||||||
static INPUT_PORTS_START( bigdeal )
|
static INPUT_PORTS_START( bigdeal )
|
||||||
PORT_START_TAG("IN0")
|
PORT_START_TAG("IN0")
|
||||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Remote") PORT_CODE(KEYCODE_Q)
|
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Remote") PORT_CODE(KEYCODE_Q)
|
||||||
@ -2202,8 +2270,6 @@ ROM_START( saloon )
|
|||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**************************
|
/**************************
|
||||||
* Driver Initialization *
|
* Driver Initialization *
|
||||||
**************************/
|
**************************/
|
||||||
@ -2217,7 +2283,8 @@ static DRIVER_INIT( funworld )
|
|||||||
|
|
||||||
static DRIVER_INIT( tabblue )
|
static DRIVER_INIT( tabblue )
|
||||||
{
|
{
|
||||||
/* +----------------------------------------------------------------------+
|
/*****************************************************************************
|
||||||
|
+----------------------------------------------------------------------+
|
||||||
| For TAB blue colored PCB with 2 HY18CV85 (electrically-erasable PLD) |
|
| For TAB blue colored PCB with 2 HY18CV85 (electrically-erasable PLD) |
|
||||||
+----------------------------------------------------------------------+
|
+----------------------------------------------------------------------+
|
||||||
|
|
||||||
@ -2235,7 +2302,8 @@ static DRIVER_INIT( tabblue )
|
|||||||
to get the same result.
|
to get the same result.
|
||||||
|
|
||||||
Since the table is very short, we will substitute each nibble.
|
Since the table is very short, we will substitute each nibble.
|
||||||
*/
|
|
||||||
|
*****************************************************************************/
|
||||||
|
|
||||||
int x, na, nb, nad, nbd;
|
int x, na, nb, nad, nbd;
|
||||||
UINT8 *src = memory_region( REGION_GFX1 );
|
UINT8 *src = memory_region( REGION_GFX1 );
|
||||||
@ -2314,6 +2382,32 @@ static DRIVER_INIT( jolycdae )
|
|||||||
pia_config(1, &pia1_intf);
|
pia_config(1, &pia1_intf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static DRIVER_INIT( jolyc980 )
|
||||||
|
{
|
||||||
|
/************************************************************************************************
|
||||||
|
|
||||||
|
The game need the vector $07F0/$07F1 pointing to $801C to proper boot.
|
||||||
|
|
||||||
|
Vector $07F0/$07F1 is copied to $0006/$0007 (multipurpose)
|
||||||
|
and then accessed through indirect JMP ($0006).
|
||||||
|
|
||||||
|
This is a temporary patch to allow boot the game since vector $07F0/$07F1 is normally empty,
|
||||||
|
pointing to $0000 and therefore jumping to $C210 constantly where starts producing unexpected
|
||||||
|
things, like stack overflow.
|
||||||
|
|
||||||
|
*************************************************************************************************/
|
||||||
|
|
||||||
|
UINT8 *ROM = memory_region(REGION_CPU1);
|
||||||
|
|
||||||
|
ROM[0xc1fc] = 0x4c;
|
||||||
|
ROM[0xc1fd] = 0x1c;
|
||||||
|
ROM[0xc1fe] = 0x80;
|
||||||
|
|
||||||
|
/* Initializing PIAs... */
|
||||||
|
pia_config(0, &pia0_intf);
|
||||||
|
pia_config(1, &pia1_intf);
|
||||||
|
}
|
||||||
|
|
||||||
static DRIVER_INIT( soccernw )
|
static DRIVER_INIT( soccernw )
|
||||||
{
|
{
|
||||||
/* temporary patch to avoid hardware errors for debug purposes */
|
/* temporary patch to avoid hardware errors for debug purposes */
|
||||||
@ -2343,7 +2437,7 @@ static DRIVER_INIT( soccernw )
|
|||||||
GAME( 1985, jollycrd, 0, funworld, funworld, funworld, ROT0, "TAB-Austria", "Jolly Card (austrian)", 0 )
|
GAME( 1985, jollycrd, 0, funworld, funworld, funworld, ROT0, "TAB-Austria", "Jolly Card (austrian)", 0 )
|
||||||
GAME( 1985, jolycdae, jollycrd, funworld, funworld, jolycdae, ROT0, "TAB-Austria", "Jolly Card (austrian, encrypted)", 0 )
|
GAME( 1985, jolycdae, jollycrd, funworld, funworld, jolycdae, ROT0, "TAB-Austria", "Jolly Card (austrian, encrypted)", 0 )
|
||||||
GAME( 1985, jolyc3x3, jollycrd, funworld, funworld, funworld, ROT0, "TAB-Austria", "Jolly Card (3x3 deal)", 0 )
|
GAME( 1985, jolyc3x3, jollycrd, funworld, funworld, funworld, ROT0, "TAB-Austria", "Jolly Card (3x3 deal)", 0 )
|
||||||
GAME( 2000, jolyc980, jollycrd, cuoreuno, funworld, funworld, ROT0, "Spale-Soft", "Jolly Card Professional 2.0", 0 )
|
GAME( 2000, jolyc980, jollycrd, cuoreuno, jolyc980, jolyc980, ROT0, "Spale-Soft", "Jolly Card Professional 2.0", 0 )
|
||||||
GAME( 1998, jolycdev, jollycrd, funworld, funworld, funworld, ROT0, "TAB/Evona", "Jolly Card (Evona Electronic)", 0 )
|
GAME( 1998, jolycdev, jollycrd, funworld, funworld, funworld, ROT0, "TAB/Evona", "Jolly Card (Evona Electronic)", 0 )
|
||||||
GAME( 1985, jolyccra, jollycrd, cuoreuno, jolycdcr, funworld, ROT0, "TAB-Austria", "Jolly Card (croatian, set 1)", 0 )
|
GAME( 1985, jolyccra, jollycrd, cuoreuno, jolycdcr, funworld, ROT0, "TAB-Austria", "Jolly Card (croatian, set 1)", 0 )
|
||||||
GAME( 1993, jolyccrb, jollycrd, cuoreuno, jolycdcr, funworld, ROT0, "Soft Design", "Jolly Card (croatian, set 2)", 0 )
|
GAME( 1993, jolyccrb, jollycrd, cuoreuno, jolycdcr, funworld, ROT0, "Soft Design", "Jolly Card (croatian, set 2)", 0 )
|
||||||
|
Loading…
Reference in New Issue
Block a user