Implemented 15/31 kHz selector in the Naomi driver, makes Strike Fighter and Shootout Pool Prize to be bootable by the common user [Angelo Salese]

This commit is contained in:
Angelo Salese 2010-04-18 19:52:14 +00:00
parent 434b5dd754
commit 4800ffe749
2 changed files with 74 additions and 51 deletions

View File

@ -1515,9 +1515,25 @@ ADDRESS_MAP_END
PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) \
PORT_DIPSETTING( 0x01, DEF_STR( On ) ) \
#define NAOMI_DIP_SW \
PORT_START("DSW") \
PORT_DIPNAME( 0x01, 0x00, "Monitor" ) PORT_DIPLOCATION("SW1:1") \
PORT_DIPSETTING( 0x01, "31 kHz" ) \
PORT_DIPSETTING( 0x00, "15 kHz" ) \
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:2") \
PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) \
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) \
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:3") \
PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) \
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) \
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:4") \
PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) \
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) \
/* for now we hardwire a joystick + 6 buttons for every game.*/
static INPUT_PORTS_START( naomi )
NAOMI_DIP_SW
PORT_START("IN0")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Service")
PORT_SERVICE_NO_TOGGLE( 0x01, IP_ACTIVE_LOW )
@ -1557,6 +1573,8 @@ INPUT_PORTS_END
/* JVS mahjong panel */
static INPUT_PORTS_START( naomi_mp )
NAOMI_DIP_SW
PORT_START("IN0")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Service")
PORT_SERVICE_NO_TOGGLE( 0x01, IP_ACTIVE_LOW )
@ -1686,6 +1704,8 @@ INPUT_PORTS_END
// COIN (1<<15)
static INPUT_PORTS_START( aw )
NAOMI_DIP_SW //FIXME: check if it's the same.
PORT_START("P1L")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)

View File

@ -153,10 +153,15 @@ UINT8 maple0x86data1[0x80];
static UINT8 maple0x86data2[0x400];
static emu_timer *dc_rtc_timer;
static const UINT32 maple0x82answer[]=
static const UINT32 maple0x82answer_15kHz[]=
{
0x07200083,0x2d353133,0x39343136,0x20202020,0x59504f43,0x48474952,0x45532054,0x45204147, // 15 kHz
// 0x07200083,0x2d353133,0x39313136,0x20202020,0x59504f43,0x48474952,0x45532054,0x45204147, // 31 kHz (req. for Strike Fighter)
0x05200083,0x5245544e,0x53495250,0x43205345,0x544c2c4f,0x20202e44,0x38393931,0x5c525043
};
static const UINT32 maple0x82answer_31kHz[]=
{
0x07200083,0x2d353133,0x39313136,0x20202020,0x59504f43,0x48474952,0x45532054,0x45204147, // 31 kHz (req. for Strike Fighter)
0x05200083,0x5245544e,0x53495250,0x43205345,0x544c2c4f,0x20202e44,0x38393931,0x5c525043
};
@ -654,9 +659,7 @@ WRITE64_HANDLER( naomi_maple_w )
break;
case 0x82: // get license string
for (a=0;a < 16;a++)
{
buff[a]=maple0x82answer[a];
}
buff[a] = (input_port_read(space->machine, "DSW") & 1) ? maple0x82answer_31kHz[a] : maple0x82answer_15kHz[a];
ddtdata.length=16;
break;
case 0x86: