mirror of
https://github.com/holub/mame
synced 2025-07-04 01:18:59 +03:00
Plug and Play work (#6334)
* swclone input tweaking (nw) * new WORKING machine ---- Star Wars - The Clone Wars [Sean Riddle, David Haywood] * (nw) * (nw) * (nw) * new WORKING machine ---- Teenage Mutant Ninja Turtles: Mutant and Monster Mayhem [Sean Riddle, David Haywood] * force DRC off for Pooh to improve stability machines promoted to WORKING ---- Winnie the Pooh - Piglet's Special Day (JAKKS Pacific TV Game, Game-Key Ready) [Ryan Holtz, Sean Riddle, David Haywood]
This commit is contained in:
parent
3770a71547
commit
16d64f3208
@ -641,11 +641,11 @@ READ16_MEMBER(spg2xx_video_device::video_r)
|
|||||||
return m_screen->vpos();
|
return m_screen->vpos();
|
||||||
|
|
||||||
case 0x3e: // Light Pen Y Position
|
case 0x3e: // Light Pen Y Position
|
||||||
LOGMASKED(LOG_PPU_READS, "video_r: Light Pen Y / Lightgun Y = %04x\n");
|
LOGMASKED(LOG_PPU_READS, "video_r: Light Pen Y / Lightgun Y\n");
|
||||||
return m_guny_in();
|
return m_guny_in();
|
||||||
|
|
||||||
case 0x3f: // Light Pen X Position
|
case 0x3f: // Light Pen X Position
|
||||||
LOGMASKED(LOG_PPU_READS, "video_r: Light Pen X / Lightgun X = %04x\n");
|
LOGMASKED(LOG_PPU_READS, "video_r: Light Pen X / Lightgun X\n");
|
||||||
return m_gunx_in();
|
return m_gunx_in();
|
||||||
|
|
||||||
case 0x62: // Video IRQ Enable
|
case 0x62: // Video IRQ Enable
|
||||||
|
@ -102,11 +102,6 @@
|
|||||||
|
|
||||||
jak_wall, jak_sdoo:
|
jak_wall, jak_sdoo:
|
||||||
Game seems unhappy with NVRAM, clears contents on each boot.
|
Game seems unhappy with NVRAM, clears contents on each boot.
|
||||||
jak_pooh:
|
|
||||||
In the 'Light Tag' minigame (select the rock) the game usually softlocks when you find a friend (with or without DRC)
|
|
||||||
jak_care:
|
|
||||||
All but one mini-game waits on RAM address 0x0165 changing from 0x00f9 to 0x00f8
|
|
||||||
The bottom left game "Wish Bear's Wishing Tree" appears to fail for more complex reasons.
|
|
||||||
jak_disf:
|
jak_disf:
|
||||||
Shows corrupt logo on first boot with no valid nvram (possibly hardware does too - verify if possible to invalidate EEPROM on device)
|
Shows corrupt logo on first boot with no valid nvram (possibly hardware does too - verify if possible to invalidate EEPROM on device)
|
||||||
lexizeus:
|
lexizeus:
|
||||||
@ -788,15 +783,16 @@ static INPUT_PORTS_START( pballpup )
|
|||||||
PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNUSED )
|
PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
static INPUT_PORTS_START( swclone ) // TODO
|
static INPUT_PORTS_START( swclone )
|
||||||
PORT_START("GUNY")
|
PORT_START("GUNY")
|
||||||
PORT_BIT(0x0ff, 0x80, IPT_LIGHTGUN_Y) PORT_CROSSHAIR(Y, 256.0f / 240.0f, 0.0, 0) PORT_MINMAX(0x000, 0x0ff) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(1)
|
PORT_BIT(0x0ff, 0x80, IPT_LIGHTGUN_Y) PORT_CROSSHAIR(Y, 1.0f, 0.0, 0) PORT_MINMAX(0x000, 0x0ff) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(1)
|
||||||
|
|
||||||
PORT_START("GUNX")
|
PORT_START("GUNX")
|
||||||
PORT_BIT(0x1ff, 0x100, IPT_LIGHTGUN_X) PORT_CROSSHAIR(X, 512.0f / 320.0f, -0.03f, 0) PORT_MINMAX(0x000, 0x1ff) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(1)
|
PORT_BIT(0x1ff, 0x100, IPT_LIGHTGUN_X) PORT_CROSSHAIR(X, 512.0f / 320.0f, -0.105f, 0) PORT_MINMAX(0x000, 0x1ff) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(1)
|
||||||
|
|
||||||
PORT_START("P1")
|
PORT_START("P1")
|
||||||
PORT_BIT( 0x003f, IP_ACTIVE_HIGH, IPT_UNUSED )
|
PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_UNUSED ) // i2cmem here
|
||||||
|
PORT_BIT( 0x003e, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||||
PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP )
|
PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP )
|
||||||
PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN )
|
PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN )
|
||||||
PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT )
|
PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT )
|
||||||
@ -810,165 +806,27 @@ static INPUT_PORTS_START( swclone ) // TODO
|
|||||||
PORT_BIT( 0x000f, IP_ACTIVE_HIGH, IPT_UNUSED )
|
PORT_BIT( 0x000f, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||||
PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_BUTTON4 ) // pause
|
PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_BUTTON4 ) // pause
|
||||||
PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON1 ) // trigger
|
PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON1 ) // trigger
|
||||||
PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_BUTTON2 ) // hide
|
PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_BUTTON2 ) // grenade
|
||||||
PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_BUTTON3 ) // reload
|
PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_BUTTON3 ) // reload (doesn't exist here?)
|
||||||
PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNUSED )
|
PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
static INPUT_PORTS_START( tmntmutm )
|
static INPUT_PORTS_START( tmntmutm )
|
||||||
PORT_START("GUNY")
|
PORT_START("GUNY")
|
||||||
PORT_BIT(0x0ff, 0x80, IPT_LIGHTGUN_Y) PORT_CROSSHAIR(Y, 256.0f / 240.0f, 0.0, 0) PORT_MINMAX(0x000, 0x0ff) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(1)
|
PORT_BIT(0x0ff, 0x80, IPT_LIGHTGUN_Y) PORT_CROSSHAIR(Y, 256.0f / 240.0f, -0.032f, 0) PORT_MINMAX(0x000, 0x0ff) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(1)
|
||||||
|
|
||||||
PORT_START("GUNX")
|
PORT_START("GUNX")
|
||||||
PORT_BIT(0x1ff, 0x100, IPT_LIGHTGUN_X) PORT_CROSSHAIR(X, 512.0f / 320.0f, -0.03f, 0) PORT_MINMAX(0x000, 0x1ff) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(1)
|
PORT_BIT(0x1ff, 0x100, IPT_LIGHTGUN_X) PORT_CROSSHAIR(X, 512.0f / 320.0f, -0.127f, 0) PORT_MINMAX(0x000, 0x1ff) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(1)
|
||||||
|
|
||||||
PORT_START("P1")
|
PORT_START("P1")
|
||||||
PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_BUTTON1 ) // trigger
|
PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_BUTTON1 ) // trigger
|
||||||
PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) )
|
PORT_BIT( 0xfffe, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||||
PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) )
|
|
||||||
PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) )
|
|
||||||
PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
|
|
||||||
PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )
|
|
||||||
PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )
|
|
||||||
PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )
|
|
||||||
PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) )
|
|
||||||
PORT_DIPSETTING( 0x0100, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) )
|
|
||||||
PORT_DIPSETTING( 0x0200, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) )
|
|
||||||
PORT_DIPSETTING( 0x0400, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) )
|
|
||||||
PORT_DIPSETTING( 0x0800, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) )
|
|
||||||
PORT_DIPSETTING( 0x1000, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) )
|
|
||||||
PORT_DIPSETTING( 0x2000, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) )
|
|
||||||
PORT_DIPSETTING( 0x4000, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) )
|
|
||||||
PORT_DIPSETTING( 0x8000, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
|
|
||||||
PORT_START("P2")
|
PORT_START("P2")
|
||||||
PORT_DIPNAME( 0x0001, 0x0001, "P2" )
|
PORT_BIT( 0xffff, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||||
PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) )
|
|
||||||
PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) )
|
|
||||||
PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) )
|
|
||||||
PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
|
|
||||||
PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )
|
|
||||||
PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )
|
|
||||||
PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )
|
|
||||||
PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) )
|
|
||||||
PORT_DIPSETTING( 0x0100, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) )
|
|
||||||
PORT_DIPSETTING( 0x0200, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) )
|
|
||||||
PORT_DIPSETTING( 0x0400, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) )
|
|
||||||
PORT_DIPSETTING( 0x0800, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) )
|
|
||||||
PORT_DIPSETTING( 0x1000, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) )
|
|
||||||
PORT_DIPSETTING( 0x2000, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) )
|
|
||||||
PORT_DIPSETTING( 0x4000, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) )
|
|
||||||
PORT_DIPSETTING( 0x8000, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
|
|
||||||
PORT_START("P3")
|
PORT_START("P3")
|
||||||
PORT_DIPNAME( 0x0001, 0x0001, "P3" )
|
PORT_BIT( 0xffff, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||||
PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) )
|
|
||||||
PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) )
|
|
||||||
PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) )
|
|
||||||
PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
|
|
||||||
PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )
|
|
||||||
PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )
|
|
||||||
PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )
|
|
||||||
PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) )
|
|
||||||
PORT_DIPSETTING( 0x0100, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) )
|
|
||||||
PORT_DIPSETTING( 0x0200, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) )
|
|
||||||
PORT_DIPSETTING( 0x0400, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) )
|
|
||||||
PORT_DIPSETTING( 0x0800, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) )
|
|
||||||
PORT_DIPSETTING( 0x1000, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) )
|
|
||||||
PORT_DIPSETTING( 0x2000, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) )
|
|
||||||
PORT_DIPSETTING( 0x4000, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) )
|
|
||||||
PORT_DIPSETTING( 0x8000, DEF_STR( Off ) )
|
|
||||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
static INPUT_PORTS_START( dreamlss )
|
static INPUT_PORTS_START( dreamlss )
|
||||||
@ -1091,20 +949,39 @@ void spg2xx_game_state::tvsprt10(machine_config &config)
|
|||||||
m_maincpu->portc_in().set(FUNC(spg2xx_game_state::base_portc_r));
|
m_maincpu->portc_in().set(FUNC(spg2xx_game_state::base_portc_r));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
READ16_MEMBER(spg2xx_game_tmntmutm_state::guny_r)
|
||||||
|
{
|
||||||
|
int frame = m_screen->frame_number() & 1; // game will not register shots if the co-ordinates are exactly the same as previous shot
|
||||||
|
uint16_t data = m_io_guny->read() ^ frame;
|
||||||
|
logerror("%s: Gun Y Read: %04x\n", machine().describe_context(), data);
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
void spg2xx_game_state::tmntmutm(machine_config &config)
|
READ16_MEMBER(spg2xx_game_tmntmutm_state::gunx_r)
|
||||||
|
{
|
||||||
|
int frame = (m_screen->frame_number() >> 1) & 1;
|
||||||
|
uint16_t data = m_io_gunx->read() ^ frame;
|
||||||
|
logerror("%s: Gun X Read: %04x\n", machine().describe_context(), data);
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void spg2xx_game_tmntmutm_state::tmntmutm(machine_config &config)
|
||||||
{
|
{
|
||||||
SPG24X(config, m_maincpu, XTAL(27'000'000), m_screen);
|
SPG24X(config, m_maincpu, XTAL(27'000'000), m_screen);
|
||||||
m_maincpu->set_addrmap(AS_PROGRAM, &spg2xx_game_state::mem_map_4m);
|
m_maincpu->set_addrmap(AS_PROGRAM, &spg2xx_game_tmntmutm_state::mem_map_4m);
|
||||||
|
|
||||||
spg2xx_base(config);
|
spg2xx_base(config);
|
||||||
|
|
||||||
m_maincpu->porta_in().set(FUNC(spg2xx_game_state::base_porta_r));
|
m_maincpu->porta_in().set(FUNC(spg2xx_game_tmntmutm_state::base_porta_r));
|
||||||
m_maincpu->portb_in().set(FUNC(spg2xx_game_state::base_portb_r));
|
m_maincpu->portb_in().set(FUNC(spg2xx_game_tmntmutm_state::base_portb_r));
|
||||||
m_maincpu->portc_in().set(FUNC(spg2xx_game_state::base_portc_r));
|
m_maincpu->portc_in().set(FUNC(spg2xx_game_tmntmutm_state::base_portc_r));
|
||||||
|
|
||||||
m_maincpu->guny_in().set(FUNC(spg2xx_game_state::base_guny_r));
|
m_maincpu->guny_in().set(FUNC(spg2xx_game_tmntmutm_state::guny_r));
|
||||||
m_maincpu->gunx_in().set(FUNC(spg2xx_game_state::base_gunx_r));
|
m_maincpu->gunx_in().set(FUNC(spg2xx_game_tmntmutm_state::gunx_r));
|
||||||
|
|
||||||
|
I2C_24C08(config, "i2cmem", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
READ16_MEMBER(spg2xx_game_pballpup_state::porta_r)
|
READ16_MEMBER(spg2xx_game_pballpup_state::porta_r)
|
||||||
@ -1148,6 +1025,28 @@ void spg2xx_game_pballpup_state::pballpup(machine_config &config)
|
|||||||
EEPROM_93C66_16BIT(config, m_eeprom); // type?
|
EEPROM_93C66_16BIT(config, m_eeprom); // type?
|
||||||
}
|
}
|
||||||
|
|
||||||
|
READ16_MEMBER(spg2xx_game_swclone_state::porta_r)
|
||||||
|
{
|
||||||
|
uint16_t ret = m_io_p1->read() & 0xfffe;
|
||||||
|
ret |= m_i2cmem->read_sda() ? 0x1: 0x0;
|
||||||
|
|
||||||
|
//logerror("%s: spg2xx_game_swclone_state::porta_r (%04x)\n", machine().describe_context(), ret);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
WRITE16_MEMBER(spg2xx_game_swclone_state::porta_w)
|
||||||
|
{
|
||||||
|
//logerror("%s: spg2xx_game_swclone_state::porta_w (%04x & %04x)\n", machine().describe_context(), data, mem_mask);
|
||||||
|
|
||||||
|
if (BIT(mem_mask, 1))
|
||||||
|
m_i2cmem->write_scl(BIT(data, 1));
|
||||||
|
if (BIT(mem_mask, 0))
|
||||||
|
m_i2cmem->write_sda(BIT(data, 0));
|
||||||
|
|
||||||
|
m_porta_data = data;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void spg2xx_game_swclone_state::swclone(machine_config &config)
|
void spg2xx_game_swclone_state::swclone(machine_config &config)
|
||||||
{
|
{
|
||||||
SPG2XX_128(config, m_maincpu, XTAL(27'000'000), m_screen);
|
SPG2XX_128(config, m_maincpu, XTAL(27'000'000), m_screen);
|
||||||
@ -1155,7 +1054,7 @@ void spg2xx_game_swclone_state::swclone(machine_config &config)
|
|||||||
|
|
||||||
spg2xx_base(config);
|
spg2xx_base(config);
|
||||||
|
|
||||||
m_maincpu->porta_in().set(FUNC(spg2xx_game_swclone_state::base_porta_r));
|
m_maincpu->porta_in().set(FUNC(spg2xx_game_swclone_state::porta_r));
|
||||||
m_maincpu->portb_in().set(FUNC(spg2xx_game_swclone_state::base_portb_r));
|
m_maincpu->portb_in().set(FUNC(spg2xx_game_swclone_state::base_portb_r));
|
||||||
m_maincpu->portc_in().set(FUNC(spg2xx_game_swclone_state::base_portc_r));
|
m_maincpu->portc_in().set(FUNC(spg2xx_game_swclone_state::base_portc_r));
|
||||||
|
|
||||||
@ -1362,6 +1261,9 @@ ROM_END
|
|||||||
ROM_START( swclone )
|
ROM_START( swclone )
|
||||||
ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 )
|
ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 )
|
||||||
ROM_LOAD16_WORD_SWAP( "swclone.bin", 0x000000, 0x800000, CRC(2c983509) SHA1(6138f21fe0b82a7121c4639b6833d4014d5aeb74) )
|
ROM_LOAD16_WORD_SWAP( "swclone.bin", 0x000000, 0x800000, CRC(2c983509) SHA1(6138f21fe0b82a7121c4639b6833d4014d5aeb74) )
|
||||||
|
|
||||||
|
ROM_REGION( 0x400, "i2cmem", ROMREGION_ERASE00 )
|
||||||
|
// ensure eeprom defaults to 00 or there are unwanted invalid entries already saved
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
|
|
||||||
@ -1433,7 +1335,7 @@ CONS( 200?, guitarss, 0, 0, abltenni, guitarss, spg2xx_ga
|
|||||||
|
|
||||||
CONS( 200?, jjstrip, 0, 0, tvsprt10, jjstrip, spg2xx_game_state, empty_init, "Shiggles Inc.", "Club Jenna Presents: Jenna Jameson's Strip Poker", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
|
CONS( 200?, jjstrip, 0, 0, tvsprt10, jjstrip, spg2xx_game_state, empty_init, "Shiggles Inc.", "Club Jenna Presents: Jenna Jameson's Strip Poker", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
|
||||||
|
|
||||||
CONS( 2005, tmntmutm, 0, 0, tmntmutm, tmntmutm, spg2xx_game_state, empty_init, "Tech2Go / WayForward", "Teenage Mutant Ninja Turtles: Mutant and Monster Mayhem", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
|
CONS( 2005, tmntmutm, 0, 0, tmntmutm, tmntmutm, spg2xx_game_tmntmutm_state, empty_init, "Tech2Go / WayForward", "Teenage Mutant Ninja Turtles: Mutant and Monster Mayhem", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
|
||||||
|
|
||||||
CONS( 2006, pballpup, 0, 0, pballpup, pballpup, spg2xx_game_pballpup_state, empty_init, "Hasbro / Tiger Electronics", "Mission: Paintball Powered Up", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
|
CONS( 2006, pballpup, 0, 0, pballpup, pballpup, spg2xx_game_pballpup_state, empty_init, "Hasbro / Tiger Electronics", "Mission: Paintball Powered Up", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
|
||||||
|
|
||||||
@ -1441,7 +1343,7 @@ CONS( 2007, dreamlss, 0, 0, dreamlss, dreamlss, spg2xx_gam
|
|||||||
|
|
||||||
|
|
||||||
// meeds a hack to not show garbage sprite on startup, seeprom hookup (24LC08), gun fine-tuning etc.
|
// meeds a hack to not show garbage sprite on startup, seeprom hookup (24LC08), gun fine-tuning etc.
|
||||||
CONS( 2008, swclone, 0, 0, swclone, swclone, spg2xx_game_swclone_state, init_swclone, "Hasbro / Tiger Electronics", "Star Wars - The Clone Wars", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
|
CONS( 2008, swclone, 0, 0, swclone, swclone, spg2xx_game_swclone_state, init_swclone, "Hasbro / Tiger Electronics", "Star Wars - The Clone Wars", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
|
||||||
|
|
||||||
// Mattel games
|
// Mattel games
|
||||||
CONS( 2005, mattelcs, 0, 0, rad_skat, mattelcs, spg2xx_game_state, empty_init, "Mattel", "Mattel Classic Sports", MACHINE_IMPERFECT_SOUND )
|
CONS( 2005, mattelcs, 0, 0, rad_skat, mattelcs, spg2xx_game_state, empty_init, "Mattel", "Mattel Classic Sports", MACHINE_IMPERFECT_SOUND )
|
||||||
|
@ -522,6 +522,8 @@ void jakks_gkr_state::jakks_gkr_wp(machine_config &config)
|
|||||||
m_maincpu->adc_in<0>().set_ioport("JOYX");
|
m_maincpu->adc_in<0>().set_ioport("JOYX");
|
||||||
m_maincpu->adc_in<1>().set_ioport("JOYY");
|
m_maincpu->adc_in<1>().set_ioport("JOYY");
|
||||||
//SOFTWARE_LIST(config, "jakks_gamekey_wp").set_original("jakks_gamekey_wp"); // NO KEYS RELEASED
|
//SOFTWARE_LIST(config, "jakks_gamekey_wp").set_original("jakks_gamekey_wp"); // NO KEYS RELEASED
|
||||||
|
|
||||||
|
m_maincpu->set_force_no_drc(true); // the Light Tag game seems to hang maybe once every 7 times with the DRC, appears more stable without (could just be chance tho)
|
||||||
}
|
}
|
||||||
|
|
||||||
void jakks_gkr_state::jakks_gkr_cb(machine_config &config)
|
void jakks_gkr_state::jakks_gkr_cb(machine_config &config)
|
||||||
@ -684,7 +686,7 @@ CONS( 2005, jak_capc, 0, 0, jakks_gkr_cc_i2c, jak_cc_i2c, jakks_gkr_state, emp
|
|||||||
CONS( 2005, jak_wof, 0, 0, jakks_gkr_wf_i2c, jak_wf_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / HotGen Ltd", "Wheel of Fortune (JAKKS Pacific TV Game, Game-Key Ready) (Jul 11 2005 ORIG)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses WF keys (no game-keys released) analog wheel not emulated
|
CONS( 2005, jak_wof, 0, 0, jakks_gkr_wf_i2c, jak_wf_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / HotGen Ltd", "Wheel of Fortune (JAKKS Pacific TV Game, Game-Key Ready) (Jul 11 2005 ORIG)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses WF keys (no game-keys released) analog wheel not emulated
|
||||||
// There is a 'Second Edition' version of Wheel of Fortune with a Gold case, GameKey port removed, and a '2' over the usual Game Key Ready logo, internals are different too, not Game-Key Ready
|
// There is a 'Second Edition' version of Wheel of Fortune with a Gold case, GameKey port removed, and a '2' over the usual Game Key Ready logo, internals are different too, not Game-Key Ready
|
||||||
CONS( 2004, jak_spdm, 0, 0, jakks_gkr_mv_i2c, jak_gkr_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Digital Eclipse", "Spider-Man (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // MV (1 key available)
|
CONS( 2004, jak_spdm, 0, 0, jakks_gkr_mv_i2c, jak_gkr_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Digital Eclipse", "Spider-Man (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // MV (1 key available)
|
||||||
CONS( 2005, jak_pooh, 0, 0, jakks_gkr_wp, jak_pooh, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Backbone Entertainment", "Winnie the Pooh - Piglet's Special Day (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // WP (no game-keys released)
|
CONS( 2005, jak_pooh, 0, 0, jakks_gkr_wp, jak_pooh, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Backbone Entertainment", "Winnie the Pooh - Piglet's Special Day (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // WP (no game-keys released)
|
||||||
CONS( 2005, jak_care, 0, 0, jakks_gkr_cb, jak_care, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Backbone Entertainment", "Care Bears TV Games (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // CB (no game-keys released)
|
CONS( 2005, jak_care, 0, 0, jakks_gkr_cb, jak_care, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Backbone Entertainment", "Care Bears TV Games (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // CB (no game-keys released)
|
||||||
|
|
||||||
// Some versions of the Shrek - Over the Hedge unit show the GameKey logo on startup (others don't) there is no evidence to suggest it was ever released with a GameKey port tho, and the internal PCB has no place for one on the versions we've seen (which show the logo)
|
// Some versions of the Shrek - Over the Hedge unit show the GameKey logo on startup (others don't) there is no evidence to suggest it was ever released with a GameKey port tho, and the internal PCB has no place for one on the versions we've seen (which show the logo)
|
||||||
|
@ -110,6 +110,7 @@ class spg2xx_game_swclone_state : public spg2xx_game_state
|
|||||||
public:
|
public:
|
||||||
spg2xx_game_swclone_state(const machine_config &mconfig, device_type type, const char *tag) :
|
spg2xx_game_swclone_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||||
spg2xx_game_state(mconfig, type, tag),
|
spg2xx_game_state(mconfig, type, tag),
|
||||||
|
m_porta_data(0),
|
||||||
m_i2cmem(*this, "i2cmem")
|
m_i2cmem(*this, "i2cmem")
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
@ -117,15 +118,39 @@ public:
|
|||||||
void init_swclone();
|
void init_swclone();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
DECLARE_READ16_MEMBER(porta_r);
|
||||||
|
DECLARE_WRITE16_MEMBER(porta_w) override;
|
||||||
|
uint16_t m_porta_data;
|
||||||
|
|
||||||
required_device<i2cmem_device> m_i2cmem;
|
required_device<i2cmem_device> m_i2cmem;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class spg2xx_game_tmntmutm_state : public spg2xx_game_state
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
spg2xx_game_tmntmutm_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||||
|
spg2xx_game_state(mconfig, type, tag),
|
||||||
|
m_i2cmem(*this, "i2cmem")
|
||||||
|
{ }
|
||||||
|
|
||||||
|
void tmntmutm(machine_config &config);
|
||||||
|
|
||||||
|
private:
|
||||||
|
DECLARE_READ16_MEMBER(guny_r);
|
||||||
|
DECLARE_READ16_MEMBER(gunx_r);
|
||||||
|
|
||||||
|
required_device<i2cmem_device> m_i2cmem;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class spg2xx_game_dreamlss_state : public spg2xx_game_state
|
class spg2xx_game_dreamlss_state : public spg2xx_game_state
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
spg2xx_game_dreamlss_state(const machine_config &mconfig, device_type type, const char *tag) :
|
spg2xx_game_dreamlss_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||||
spg2xx_game_state(mconfig, type, tag),
|
spg2xx_game_state(mconfig, type, tag),
|
||||||
|
m_porta_data(0),
|
||||||
|
m_portb_data(0),
|
||||||
m_i2cmem(*this, "i2cmem")
|
m_i2cmem(*this, "i2cmem")
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user