diff options
author | David Haywood <28625134+DavidHaywood@users.noreply.github.com> | 2020-01-09 23:01:04 +0000 |
---|---|---|
committer | ajrhacker <ajrhacker@users.noreply.github.com> | 2020-01-09 18:01:04 -0500 |
commit | 77de7cba8939b2d4756796f944c1739dc0aa24f8 (patch) | |
tree | 47c55128d5cf1cb4c71f4013be75929bb5ae6297 /src/mame/drivers/vii.cpp | |
parent | a952a2fa89aba071a12b136ef6797eb1447ac5a5 (diff) |
telestory - document more buttons (nw) (#6152)
* telestory - document more buttons (nw)
* comment that it looks like voice is hooked up tro the SIO
* some button info based on test mode (nw)
* update note (nw)
* jak_s500 notes and observations (nw)
Diffstat (limited to 'src/mame/drivers/vii.cpp')
-rw-r--r-- | src/mame/drivers/vii.cpp | 74 |
1 files changed, 45 insertions, 29 deletions
diff --git a/src/mame/drivers/vii.cpp b/src/mame/drivers/vii.cpp index 7e29690a962..27dfeca5575 100644 --- a/src/mame/drivers/vii.cpp +++ b/src/mame/drivers/vii.cpp @@ -2317,8 +2317,8 @@ static INPUT_PORTS_START( sentx6p ) INPUT_PORTS_END -static INPUT_PORTS_START( telestory ) - PORT_START("P1") +static INPUT_PORTS_START( telestory ) // there is a hidden test mode, if you return rand() on this port you get it, TODO: figure out button combination + PORT_START("P1") // I/O test also lists 'Headphone 1' but it isn't mapped to any of these ports? PORT_DIPNAME( 0x0001, 0x0001, "Port 1" ) PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) @@ -2334,27 +2334,24 @@ static INPUT_PORTS_START( telestory ) PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("Pause / Menu") - PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_NAME("Pause / Menu") + PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_BUTTON8 ) PORT_NAME("Read To Me") PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) ) PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Red / Triangle") - PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Blue / Square") - PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Yellow / Star") - PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Green / Circle") - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("Next Page") - PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) ) + PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Red / Triangle") + PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Blue / Square") + PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Yellow / Star") + PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Green / Circle") + PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("Right Arrow / Next Page") // Test mode calls this Right Arrow / LED (so probalby LED output too) + PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) ) // port changes on these bits advance the word in manual mode (scroll wheel) PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) ) + PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) ) // port changes on these bits advance the word in manual mode (scroll wheel) 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_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_NAME("Left Arrow / Previous Page") + PORT_START("P2") PORT_DIPNAME( 0x0001, 0x0001, "Port 2" ) @@ -2907,33 +2904,43 @@ void icanpian_state::icanpian(machine_config &config) READ16_MEMBER(telestory_state::porta_r) { uint16_t data = m_io_p1->read(); - //logerror("Port B Read: %04x\n", data); + //logerror("%s: porta_r: %04x\n", machine().describe_context(), data); return data; } -READ16_MEMBER(telestory_state::portb_r) +WRITE16_MEMBER(telestory_state::porta_w) { - uint16_t data = m_io_p2->read(); - //logerror("Port B Read: %04x\n", data); - return data; -} + /* + not used as an output very often -READ16_MEMBER(telestory_state::portc_r) -{ - //logerror("%s: portc_r\n", machine().describe_context()); - return machine().rand() & 0x0c00; + ':maincpu' (0145D5): porta_w (0000) + ':maincpu' (0145DC): porta_w (0000) + ':maincpu' (0145F4): porta_w (0000) + ':maincpu' (0145F4): porta_w (6000) + */ + logerror("%s: porta_w (%04x)\n", machine().describe_context(), data); } -WRITE16_MEMBER(telestory_state::porta_w) +READ16_MEMBER(telestory_state::portb_r) { - //logerror("%s: porta_w (%04x)\n", machine().describe_context(), data); + // not used? + uint16_t data = m_io_p2->read(); + logerror("%s: portb_r %04x\n", machine().describe_context(), data); + return data; } WRITE16_MEMBER(telestory_state::portb_w) { - //logerror("%s: portb_w (%04x)\n", machine().describe_context(), data); + // not used? + logerror("%s: portb_w (%04x)\n", machine().describe_context(), data); } +// What is here? accessed using serial protocol with clocked bits +READ16_MEMBER(telestory_state::portc_r) +{ + //logerror("%s: portc_r\n", machine().describe_context()); + return machine().rand() & 0x0c00; // bits need to change state or it doesn't boot +} WRITE16_MEMBER(telestory_state::portc_w) { @@ -4214,6 +4221,15 @@ CONS( 2006, icanpian, 0, 0, icanpian, icanpian, icanpian_state, empty_ CONS( 2005, tvgogo, 0, 0, tvgogo, tvgogo, tvgogo_state, empty_init, "Toyquest", "GoGo TV Video Vision", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // or TV Go Go - the game addons call it the 'Video Vision console' // JAKKS Pacific / Toymax + +/* Sound data for the narrator is written to the SIO data port + 013127: D319 3D54 [3d54] = r1 (Cinderella) - 4-bit data? + The hidden test mode calls the speech test 'CELP' (possibly "Code-excited linear prediction" based?) + https://en.wikipedia.org/wiki/Code-excited_linear_prediction + + TODO: check if it's a common implementation eg. Speex + SIO port is not currently implemented in spg2xx_io.cpp however +*/ CONS( 2006, telestry, 0, 0, telestory, telestory, telestory_state, empty_init, "JAKKS Pacific Inc / Toymax", "Telestory", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) |