mirror of
https://github.com/holub/mame
synced 2025-05-22 13:48:55 +03:00
adp: implemented p1 inputs in skattv and fashiong (service mode is working)
This commit is contained in:
parent
2ebb3d3d86
commit
7a5cda5e0c
@ -151,6 +151,8 @@ Video board has additional chips:
|
|||||||
#include "machine/68681.h"
|
#include "machine/68681.h"
|
||||||
|
|
||||||
static UINT8 register_active;
|
static UINT8 register_active;
|
||||||
|
static UINT8 mux_data;
|
||||||
|
|
||||||
static struct
|
static struct
|
||||||
{
|
{
|
||||||
const device_config *duart68681;
|
const device_config *duart68681;
|
||||||
@ -193,6 +195,7 @@ static MACHINE_START( skattv )
|
|||||||
static MACHINE_RESET( skattv )
|
static MACHINE_RESET( skattv )
|
||||||
{
|
{
|
||||||
skattv_devices.duart68681 = device_list_find_by_tag( machine->config->devicelist, DUART68681, "duart68681" );
|
skattv_devices.duart68681 = device_list_find_by_tag( machine->config->devicelist, DUART68681, "duart68681" );
|
||||||
|
mux_data = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const duart68681_config skattv_duart68681_config =
|
static const duart68681_config skattv_duart68681_config =
|
||||||
@ -320,32 +323,34 @@ if (!input_code_pressed(KEYCODE_O))
|
|||||||
|
|
||||||
static READ16_HANDLER(test_r)
|
static READ16_HANDLER(test_r)
|
||||||
{
|
{
|
||||||
static int counter = 0;
|
|
||||||
int value = 0xffff;
|
int value = 0xffff;
|
||||||
|
|
||||||
if (counter==0x0) if (input_code_pressed(KEYCODE_1)) value = 0x0004 ^ 0xffff;
|
switch(mux_data)
|
||||||
if (counter==0x1) if (input_code_pressed(KEYCODE_2)) value = 0x0004 ^ 0xffff;
|
{
|
||||||
if (counter==0x2) if (input_code_pressed(KEYCODE_3)) value = 0x0004 ^ 0xffff;
|
case 0x00: value = input_port_read(space->machine, "x0"); break;
|
||||||
if (counter==0x3) if (input_code_pressed(KEYCODE_4)) value = 0x0004 ^ 0xffff;
|
case 0x01: value = input_port_read(space->machine, "x1"); break;
|
||||||
if (counter==0x4) if (input_code_pressed(KEYCODE_5)) value = 0x0004 ^ 0xffff;
|
case 0x02: value = input_port_read(space->machine, "x2"); break;
|
||||||
if (counter==0x5) if (input_code_pressed(KEYCODE_6)) value = 0x0004 ^ 0xffff;
|
case 0x03: value = input_port_read(space->machine, "1P_UP"); break;
|
||||||
if (counter==0x6) if (input_code_pressed(KEYCODE_7)) value = 0x0004 ^ 0xffff;
|
case 0x04: value = input_port_read(space->machine, "1P_B1"); break;
|
||||||
if (counter==0x7) if (input_code_pressed(KEYCODE_8)) value = 0x0004 ^ 0xffff;
|
case 0x05: value = input_port_read(space->machine, "x5"); break;
|
||||||
if (counter==0x8) if (input_code_pressed(KEYCODE_Q)) value = 0x0004 ^ 0xffff;
|
case 0x06: value = input_port_read(space->machine, "1P_RIGHT"); break;
|
||||||
if (counter==0x9) if (input_code_pressed(KEYCODE_W)) value = 0x0004 ^ 0xffff;
|
case 0x07: value = input_port_read(space->machine, "1P_DOWN"); break;
|
||||||
if (counter==0xa) if (input_code_pressed(KEYCODE_E)) value = 0x0004 ^ 0xffff;
|
case 0x08: value = input_port_read(space->machine, "1P_LEFT"); break;
|
||||||
if (counter==0xb) if (input_code_pressed(KEYCODE_R)) value = 0x0004 ^ 0xffff;
|
case 0x09: value = input_port_read(space->machine, "x9"); break;
|
||||||
if (counter==0xc) if (input_code_pressed(KEYCODE_T)) value = 0x0004 ^ 0xffff;
|
case 0x0a: value = input_port_read(space->machine, "x10"); break;
|
||||||
if (counter==0xd) if (input_code_pressed(KEYCODE_Y)) value = 0x0004 ^ 0xffff;
|
case 0x0b: value = input_port_read(space->machine, "x11"); break;
|
||||||
if (counter==0xe) if (input_code_pressed(KEYCODE_U)) value = 0x0004 ^ 0xffff;
|
case 0x0c: value = input_port_read(space->machine, "x12"); break;
|
||||||
if (counter==0xf) if (input_code_pressed(KEYCODE_I)) value = 0x0004 ^ 0xffff;
|
case 0x0d: value = input_port_read(space->machine, "x13"); break;
|
||||||
|
case 0x0e: value = input_port_read(space->machine, "x14"); break;
|
||||||
counter += 1;
|
case 0x0f: value = input_port_read(space->machine, "x15"); break;
|
||||||
if (counter == 16) counter = 0;
|
}
|
||||||
|
mux_data++;
|
||||||
|
mux_data&=0xf;
|
||||||
|
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*???*/
|
||||||
static WRITE16_HANDLER(wh2_w)
|
static WRITE16_HANDLER(wh2_w)
|
||||||
{
|
{
|
||||||
register_active = data;
|
register_active = data;
|
||||||
@ -358,9 +363,9 @@ static READ16_HANDLER(t2_r)
|
|||||||
vblank ^=0x40;
|
vblank ^=0x40;
|
||||||
hblank ^=0x20;
|
hblank ^=0x20;
|
||||||
|
|
||||||
// return mame_rand(space->machine) & 0x00f0;
|
return mame_rand(space->machine) & 0x00f0;
|
||||||
|
|
||||||
popmessage("%08x",cpu_get_pc(space->cpu));
|
// popmessage("%08x",cpu_get_pc(space->cpu));
|
||||||
// return 0x0000;
|
// return 0x0000;
|
||||||
return 0xff9f | vblank | hblank;
|
return 0xff9f | vblank | hblank;
|
||||||
}
|
}
|
||||||
@ -396,6 +401,19 @@ static ADDRESS_MAP_START( backgamn_mem, ADDRESS_SPACE_PROGRAM, 16 )
|
|||||||
AM_RANGE(0x800084, 0xffbfff) AM_RAM // used?
|
AM_RANGE(0x800084, 0xffbfff) AM_RAM // used?
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
|
static ADDRESS_MAP_START( funland_mem, ADDRESS_SPACE_PROGRAM, 16 )
|
||||||
|
AM_RANGE(0x000000, 0x0fffff) AM_ROM
|
||||||
|
//400000-40001f?
|
||||||
|
AM_RANGE(0x800080, 0x800081) AM_READWRITE(HD63484_status_r, HD63484_address_w)
|
||||||
|
AM_RANGE(0x800082, 0x800083) AM_READWRITE(HD63484_data_r, HD63484_data_w)
|
||||||
|
// AM_RANGE(0x800100, 0x8001ff) AM_READ(test_r) //18b too
|
||||||
|
AM_RANGE(0x800140, 0x800141) AM_READWRITE(t2_r,ay8910_control_port_0_lsb_w) //18b too
|
||||||
|
AM_RANGE(0x800142, 0x800143) AM_READWRITE(ay8910_read_port_0_lsb_r,ay8910_write_port_0_lsb_w) //18b too
|
||||||
|
AM_RANGE(0x800180, 0x80019f) AM_DEVREADWRITE8( DUART68681, "duart68681", duart68681_r, duart68681_w, 0xff )
|
||||||
|
AM_RANGE(0xfc0000, 0xffffff) AM_RAM
|
||||||
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
|
|
||||||
static INPUT_PORTS_START( adp )
|
static INPUT_PORTS_START( adp )
|
||||||
|
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
@ -412,6 +430,79 @@ static INPUT_PORTS_START( skattv )
|
|||||||
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||||
PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||||
PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||||
|
|
||||||
|
PORT_START("x0") //vblank status?
|
||||||
|
PORT_DIPNAME( 0x0004,0x0004, "SW0" )
|
||||||
|
PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||||
|
PORT_BIT( 0xfffb, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||||
|
|
||||||
|
PORT_START("x1")
|
||||||
|
PORT_DIPNAME( 0x0004,0x0004, "SW1" ) //another up button
|
||||||
|
PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||||
|
PORT_BIT( 0xfffb, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||||
|
|
||||||
|
PORT_START("x2")
|
||||||
|
PORT_DIPNAME( 0x0004,0x0004, "SW2" )
|
||||||
|
PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||||
|
PORT_BIT( 0xfffb, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||||
|
PORT_START("1P_UP")
|
||||||
|
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP )
|
||||||
|
PORT_BIT( 0xfffb, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||||
|
PORT_START("1P_B1")
|
||||||
|
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON1 )
|
||||||
|
PORT_BIT( 0xfffb, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||||
|
PORT_START("x5")
|
||||||
|
PORT_DIPNAME( 0x0004,0x0004, "SW5" )
|
||||||
|
PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||||
|
PORT_BIT( 0xfffb, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||||
|
PORT_START("1P_RIGHT")
|
||||||
|
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT )
|
||||||
|
PORT_BIT( 0xfffb, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||||
|
PORT_START("1P_DOWN")
|
||||||
|
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN )
|
||||||
|
PORT_BIT( 0xfffb, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||||
|
PORT_START("1P_LEFT")
|
||||||
|
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT )
|
||||||
|
PORT_BIT( 0xfffb, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||||
|
PORT_START("x9")
|
||||||
|
PORT_DIPNAME( 0x0004,0x0004, "SW9" )
|
||||||
|
PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||||
|
PORT_BIT( 0xfffb, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||||
|
PORT_START("x10") //button 2
|
||||||
|
PORT_DIPNAME( 0x0004,0x0004, "SW10" )
|
||||||
|
PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||||
|
PORT_BIT( 0xfffb, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||||
|
PORT_START("x11")
|
||||||
|
PORT_DIPNAME( 0x0004,0x0004, "SW11" )
|
||||||
|
PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||||
|
PORT_BIT( 0xfffb, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||||
|
PORT_START("x12") //button 3
|
||||||
|
PORT_DIPNAME( 0x0004,0x0004, "SW12" )
|
||||||
|
PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||||
|
PORT_BIT( 0xfffb, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||||
|
PORT_START("x13")
|
||||||
|
PORT_DIPNAME( 0x0004,0x0004, "SW13" )
|
||||||
|
PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||||
|
PORT_BIT( 0xfffb, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||||
|
PORT_START("x14") //button 4
|
||||||
|
PORT_DIPNAME( 0x0004,0x0004, "SW14" )
|
||||||
|
PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||||
|
PORT_BIT( 0xfffb, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||||
|
PORT_START("x15")
|
||||||
|
PORT_DIPNAME( 0x0004,0x0004, "SW15" )
|
||||||
|
PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||||
|
PORT_BIT( 0xfffb, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -499,6 +590,12 @@ static MACHINE_DRIVER_START( backgamn )
|
|||||||
|
|
||||||
MACHINE_DRIVER_END
|
MACHINE_DRIVER_END
|
||||||
|
|
||||||
|
static MACHINE_DRIVER_START( funland )
|
||||||
|
MDRV_IMPORT_FROM( skattv )
|
||||||
|
MDRV_CPU_MODIFY("main")
|
||||||
|
MDRV_CPU_PROGRAM_MAP(funland_mem, 0)
|
||||||
|
MACHINE_DRIVER_END
|
||||||
|
|
||||||
ROM_START( quickjac )
|
ROM_START( quickjac )
|
||||||
ROM_REGION( 0x100000, "main", 0 )
|
ROM_REGION( 0x100000, "main", 0 )
|
||||||
ROM_LOAD16_BYTE( "quick_jack_index_a.1.u2.bin", 0x00000, 0x10000, CRC(c2fba6fe) SHA1(f79e5913f9ded1e370cc54dd55860263b9c51d61) )
|
ROM_LOAD16_BYTE( "quick_jack_index_a.1.u2.bin", 0x00000, 0x10000, CRC(c2fba6fe) SHA1(f79e5913f9ded1e370cc54dd55860263b9c51d61) )
|
||||||
@ -569,4 +666,5 @@ GAME( 1993, quickjac, 0, quickjac, skattv, 0, ROT0, "ADP", "Quick
|
|||||||
GAME( 1994, skattv, 0, skattv, skattv, 0, ROT0, "ADP", "Skat TV", GAME_NOT_WORKING )
|
GAME( 1994, skattv, 0, skattv, skattv, 0, ROT0, "ADP", "Skat TV", GAME_NOT_WORKING )
|
||||||
GAME( 1995, skattva, skattv, skattv, skattv, 0, ROT0, "ADP", "Skat TV (version TS3)", GAME_NOT_WORKING )
|
GAME( 1995, skattva, skattv, skattv, skattv, 0, ROT0, "ADP", "Skat TV (version TS3)", GAME_NOT_WORKING )
|
||||||
GAME( 1997, fashiong, 0, skattv, skattv, 0, ROT0, "ADP", "Fashion Gambler", GAME_NOT_WORKING )
|
GAME( 1997, fashiong, 0, skattv, skattv, 0, ROT0, "ADP", "Fashion Gambler", GAME_NOT_WORKING )
|
||||||
GAME( 1999, funlddlx, 0, skattv, skattv, 0, ROT0, "Stella", "Funny Land de Luxe", GAME_NOT_WORKING )
|
GAME( 1999, funlddlx, 0, funland, skattv, 0, ROT0, "Stella", "Funny Land de Luxe", GAME_NOT_WORKING )
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user