mirror of
https://github.com/holub/mame
synced 2025-05-10 16:21:42 +03:00
some improvements to kothello:
- hooked up inputs - promoted to working dipswitcha are not implemented; for this reason are necessary 5 coins for 1 credit
This commit is contained in:
parent
6ddfa127af
commit
6a2eccda3a
@ -14,6 +14,15 @@ I'm not sure about the refresh rate, 60Hz makes time match the dip switch
|
||||
settings, but music runs too fast.
|
||||
|
||||
|
||||
* kothello
|
||||
|
||||
To Do: Find Dip Switches
|
||||
|
||||
Notes: Currently, the game needs 5 coins to give 1 credit. If you use the
|
||||
Service Coin you can start the game after a single coin, but the credits
|
||||
are updated on screen only once every 5 coins. Both these issues are
|
||||
probably due to the game code reading some Coinage bit from Dips.
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#include "driver.h"
|
||||
@ -759,17 +768,17 @@ static ADDRESS_MAP_START( shanghai_portmap, ADDRESS_SPACE_IO, 16 )
|
||||
AM_RANGE(0x02, 0x03) AM_READWRITE(HD63484_data_r, HD63484_data_w)
|
||||
AM_RANGE(0x20, 0x21) AM_READWRITE(YM2203_status_port_0_lsb_r, YM2203_control_port_0_lsb_w)
|
||||
AM_RANGE(0x22, 0x23) AM_READWRITE(YM2203_read_port_0_lsb_r, YM2203_write_port_0_lsb_w)
|
||||
AM_RANGE(0x40, 0x41) AM_READ(input_port_0_word_r)
|
||||
AM_RANGE(0x44, 0x45) AM_READ(input_port_1_word_r)
|
||||
AM_RANGE(0x48, 0x49) AM_READ(input_port_2_word_r)
|
||||
AM_RANGE(0x40, 0x41) AM_READ_PORT("P1")
|
||||
AM_RANGE(0x44, 0x45) AM_READ_PORT("P2")
|
||||
AM_RANGE(0x48, 0x49) AM_READ_PORT("SYSTEM")
|
||||
AM_RANGE(0x4c, 0x4d) AM_WRITE(shanghai_coin_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( shangha2_portmap, ADDRESS_SPACE_IO, 16 )
|
||||
AM_RANGE(0x00, 0x01) AM_READ(input_port_0_word_r)
|
||||
AM_RANGE(0x10, 0x11) AM_READ(input_port_1_word_r)
|
||||
AM_RANGE(0x20, 0x21) AM_READ(input_port_2_word_r)
|
||||
AM_RANGE(0x00, 0x01) AM_READ_PORT("P1")
|
||||
AM_RANGE(0x10, 0x11) AM_READ_PORT("P2")
|
||||
AM_RANGE(0x20, 0x21) AM_READ_PORT("SYSTEM")
|
||||
AM_RANGE(0x30, 0x31) AM_READWRITE(HD63484_status_r, HD63484_address_w)
|
||||
AM_RANGE(0x32, 0x33) AM_READWRITE(HD63484_data_r, HD63484_data_w)
|
||||
AM_RANGE(0x40, 0x41) AM_READWRITE(YM2203_status_port_0_lsb_r, YM2203_control_port_0_lsb_w)
|
||||
@ -777,25 +786,19 @@ static ADDRESS_MAP_START( shangha2_portmap, ADDRESS_SPACE_IO, 16 )
|
||||
AM_RANGE(0x50, 0x51) AM_WRITE(shanghai_coin_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
static READ16_HANDLER(shanghai_rand_r)
|
||||
{
|
||||
return mame_rand(machine);
|
||||
}
|
||||
|
||||
static READ16_HANDLER( kothello_HD63484_status_r )
|
||||
{
|
||||
return 0xff22; /* write FIFO ready + command end + read FIFO ready */
|
||||
return 0xff22; /* write FIFO ready + command end + read FIFO ready */
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( kothello_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x00000, 0x07fff) AM_RAM
|
||||
AM_RANGE(0x08010, 0x08011) AM_READWRITE(kothello_HD63484_status_r, HD63484_address_w)
|
||||
AM_RANGE(0x08012, 0x08013) AM_READWRITE(HD63484_data_r, HD63484_data_w)
|
||||
AM_RANGE(0x09010, 0x0901f) AM_READWRITE(shanghai_rand_r, SMH_NOP) // unknown, sub cpu communication ?
|
||||
AM_RANGE(0x09010, 0x09011) AM_READ_PORT("P1")
|
||||
AM_RANGE(0x09012, 0x09013) AM_READ_PORT("P2")
|
||||
AM_RANGE(0x09014, 0x09015) AM_READ_PORT("SYSTEM")
|
||||
AM_RANGE(0x09016, 0x0901f) AM_WRITENOP // 0x9016 is set to 0 at the boot
|
||||
AM_RANGE(0x0a000, 0x0a1ff) AM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16)
|
||||
AM_RANGE(0x0b010, 0x0b01f) AM_READWRITE(seibu_main_word_r, seibu_main_word_w)
|
||||
AM_RANGE(0x80000, 0xfffff) AM_ROM
|
||||
@ -803,11 +806,44 @@ ADDRESS_MAP_END
|
||||
|
||||
static INPUT_PORTS_START( kothello )
|
||||
SEIBU_COIN_INPUTS /* coin inputs read through sound cpu */
|
||||
|
||||
PORT_START_TAG("P1")
|
||||
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
|
||||
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
|
||||
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
|
||||
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
|
||||
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 )
|
||||
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 )
|
||||
PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
|
||||
PORT_START_TAG("P2")
|
||||
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
|
||||
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
|
||||
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
|
||||
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
|
||||
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
|
||||
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
|
||||
PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
|
||||
PORT_START_TAG("SYSTEM")
|
||||
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START1 )
|
||||
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START2 )
|
||||
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
|
||||
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
static INPUT_PORTS_START( shanghai )
|
||||
PORT_START /* IN0 */
|
||||
PORT_START_TAG("P1")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
|
||||
@ -817,7 +853,7 @@ static INPUT_PORTS_START( shanghai )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
|
||||
PORT_START /* IN1 */
|
||||
PORT_START_TAG("P2")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
|
||||
@ -827,7 +863,7 @@ static INPUT_PORTS_START( shanghai )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
|
||||
PORT_START /* IN2 */
|
||||
PORT_START_TAG("SYSTEM")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 )
|
||||
@ -837,7 +873,7 @@ static INPUT_PORTS_START( shanghai )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
|
||||
PORT_START /* DSW0 */
|
||||
PORT_START_TAG("DSW1")
|
||||
PORT_SERVICE( 0x01, IP_ACTIVE_LOW )
|
||||
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Allow_Continue ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( No ) )
|
||||
@ -861,7 +897,7 @@ static INPUT_PORTS_START( shanghai )
|
||||
PORT_DIPSETTING( 0xa0, DEF_STR( 1C_3C ) )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( 1C_4C ) )
|
||||
|
||||
PORT_START /* DSW1 */
|
||||
PORT_START_TAG("DSW2")
|
||||
PORT_DIPNAME( 0x01, 0x01, "Confirmation" )
|
||||
PORT_DIPSETTING( 0x01, DEF_STR( No ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
|
||||
@ -886,7 +922,7 @@ static INPUT_PORTS_START( shanghai )
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( shangha2 )
|
||||
PORT_START /* IN0 */
|
||||
PORT_START_TAG("P1")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
|
||||
@ -896,7 +932,7 @@ static INPUT_PORTS_START( shangha2 )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
|
||||
PORT_START /* IN1 */
|
||||
PORT_START_TAG("P2")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
|
||||
@ -906,7 +942,7 @@ static INPUT_PORTS_START( shangha2 )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
|
||||
PORT_START /* IN2 */
|
||||
PORT_START_TAG("SYSTEM")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 )
|
||||
@ -916,7 +952,7 @@ static INPUT_PORTS_START( shangha2 )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
|
||||
PORT_START /* DSW0 */
|
||||
PORT_START_TAG("DSW1")
|
||||
PORT_SERVICE( 0x01, IP_ACTIVE_LOW )
|
||||
PORT_DIPNAME( 0x06, 0x06, DEF_STR( Difficulty ) )
|
||||
PORT_DIPSETTING( 0x06, DEF_STR( Easy ) )
|
||||
@ -937,7 +973,7 @@ static INPUT_PORTS_START( shangha2 )
|
||||
PORT_DIPSETTING( 0x40, "90" )
|
||||
PORT_DIPSETTING( 0x00, "120" )
|
||||
|
||||
PORT_START /* DSW1 */
|
||||
PORT_START_TAG("DSW2")
|
||||
PORT_DIPNAME( 0x03, 0x03, "Mystery Tiles" )
|
||||
PORT_DIPSETTING( 0x03, "0" )
|
||||
PORT_DIPSETTING( 0x02, "4" )
|
||||
@ -1172,4 +1208,4 @@ ROM_END
|
||||
|
||||
GAME( 1988, shanghai, 0, shanghai, shanghai, 0, ROT0, "Sunsoft", "Shanghai (Japan)", GAME_IMPERFECT_GRAPHICS )
|
||||
GAME( 1989, shangha2, 0, shangha2, shangha2, 0, ROT0, "Sunsoft", "Shanghai II (Japan)", 0 )
|
||||
GAME( 1990, kothello, 0, kothello, kothello, 0, ROT0, "Success", "Kyuukyoku no Othello", GAME_NOT_WORKING )
|
||||
GAME( 1990, kothello, 0, kothello, kothello, 0, ROT0, "Success", "Kyuukyoku no Othello", GAME_IMPERFECT_GRAPHICS )
|
||||
|
Loading…
Reference in New Issue
Block a user