Found some inputs in PT Mahjong

This commit is contained in:
Angelo Salese 2009-05-03 16:36:41 +00:00
parent eafc1367bf
commit cae3430d26
2 changed files with 107 additions and 14 deletions

View File

@ -711,7 +711,7 @@ static WRITE32_HANDLER( hng64_sysregs_w )
hng64_do_dma(space);
break;
default:
logerror("HNG64 reading from SYSTEM Registers 0x%08x == 0x%08x. (PC=%08x)\n", offset*4, hng64_sysregs[offset], cpu_get_pc(space->cpu));
logerror("HNG64 writing to SYSTEM Registers 0x%08x == 0x%08x. (PC=%08x)\n", offset*4, hng64_sysregs[offset], cpu_get_pc(space->cpu));
}
}

View File

@ -70,9 +70,19 @@ VIDEO_UPDATE( m14 )
return 0;
}
static READ8_HANDLER( test_r )
static READ8_HANDLER( m14_rng_r )
{
return mame_rand(space->machine);
/* graphic artifacts happens if this doesn't return random values. */
return (mame_rand(space->machine) & 0x3f) | (input_port_read(space->machine, "IN2") & 0xc0);
}
static WRITE8_HANDLER( test_w )
{
static UINT8 x[5];
x[offset] = data;
popmessage("%02x %02x %02x %02x %02x",x[0],x[1],x[2],x[3],x[4]);
}
static ADDRESS_MAP_START( m14_map, ADDRESS_SPACE_PROGRAM, 8 )
@ -84,13 +94,99 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( m14_io_map, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0xf8, 0xf8) AM_READ(test_r)
AM_RANGE(0xf9, 0xf9) AM_READ(test_r)
AM_RANGE(0xfa, 0xfa) AM_READ(test_r)
AM_RANGE(0xfb, 0xfb) AM_READ(test_r)
AM_RANGE(0xf8, 0xf8) AM_READ_PORT("IN0")
AM_RANGE(0xf9, 0xf9) AM_READ_PORT("IN1")
AM_RANGE(0xfa, 0xfa) AM_READ(m14_rng_r)
AM_RANGE(0xfb, 0xfb) AM_READ_PORT("IN3")
AM_RANGE(0xf8, 0xfc) AM_WRITE(test_w)
ADDRESS_MAP_END
static INPUT_PORTS_START( m14 )
PORT_START("IN0")
PORT_DIPNAME( 0x01, 0x00, "IN0" )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x01, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x02, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x04, DEF_STR( On ) )
PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x08, DEF_STR( On ) )
PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x10, DEF_STR( On ) )
PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x20, DEF_STR( On ) )
PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x40, DEF_STR( On ) )
PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
PORT_START("IN1")
PORT_DIPNAME( 0x01, 0x00, "IN1" )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x01, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x02, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) //affects the medal settings
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x04, DEF_STR( On ) )
PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x08, DEF_STR( On ) )
PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x10, DEF_STR( On ) )
PORT_DIPNAME( 0x20, 0x20, "Freeze" )
PORT_DIPSETTING( 0x20, DEF_STR( No ) )
PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x40, DEF_STR( On ) )
PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
PORT_START("IN2")
PORT_DIPNAME( 0x40, 0x00, "IN2" )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x40, DEF_STR( On ) )
PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
PORT_START("IN3")
PORT_DIPNAME( 0x01, 0x00, "Show available tiles" ) // interpret it as a difficulty setting
PORT_DIPSETTING( 0x00, DEF_STR( No ) )
PORT_DIPSETTING( 0x01, DEF_STR( Yes ) )
PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x02, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x04, DEF_STR( On ) )
PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x08, DEF_STR( On ) )
PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x10, DEF_STR( On ) )
PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x20, DEF_STR( On ) )
PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x40, DEF_STR( On ) )
PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
INPUT_PORTS_END
static const gfx_layout charlayout =
@ -118,11 +214,8 @@ static PALETTE_INIT( m14 )
if (i & 0x01)
color = MAKE_RGB(pal1bit(i >> 1), pal1bit(i >> 2), pal1bit(i >> 3));
else if(i & 0x10)
color = RGB_WHITE;
else
color = RGB_BLACK;
color = (i & 0x10) ? RGB_WHITE : RGB_BLACK;
palette_set_color(machine, i, color);
}
@ -137,7 +230,7 @@ static INTERRUPT_GEN( m14_irq )
static MACHINE_DRIVER_START( m14 )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu",8085A,8000000)
MDRV_CPU_ADD("maincpu",8085A,6000000)
MDRV_CPU_PROGRAM_MAP(m14_map,0)
MDRV_CPU_IO_MAP(m14_io_map,0)
MDRV_CPU_VBLANK_INT("screen",m14_irq)
@ -145,7 +238,7 @@ static MACHINE_DRIVER_START( m14 )
/* video hardware */
MDRV_SCREEN_ADD("screen", RASTER)
MDRV_SCREEN_REFRESH_RATE(60)
MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) //not accurate
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
MDRV_SCREEN_SIZE(32*8, 32*8)
MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1)
@ -185,4 +278,4 @@ ROM_START( ptmj )
ROM_LOAD( "mgpa10.bin", 0x0400, 0x0400, CRC(e1a4ebdc) SHA1(d9df42424ede17f0634d8d0a56c0374a33c55333) )
ROM_END
GAME( 1979, ptmj, 0, m14, m14, 0, ROT0, "Irem", "PT Mahjong Game (Japan)", GAME_NO_SOUND|GAME_NOT_WORKING )
GAME( 1979, ptmj, 0, m14, m14, 0, ROT0, "Irem", "PT Reach Mahjong Tsumo (Japan)", GAME_NO_SOUND|GAME_NOT_WORKING )