summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author MooglyGuy <MooglyGuy@users.noreply.github.com>2021-08-20 16:28:49 +0200
committer GitHub <noreply@github.com>2021-08-20 10:28:49 -0400
commitd64f928c36856a908608997b09b81aa6ed2b6bda (patch)
treee47a10cce920e8188661248e61d61f91c969b5e5
parentd9d16cc0e8a8c3dcca8d2f82ea71b9d27142dca1 (diff)
-vsmileb: Added default input mappings for the slider window, and demoted to MNW due to bad audio. [Ryan Holtz] (#8473)
-rw-r--r--src/mame/drivers/vsmileb.cpp36
1 files changed, 26 insertions, 10 deletions
diff --git a/src/mame/drivers/vsmileb.cpp b/src/mame/drivers/vsmileb.cpp
index 96c5f6af26f..a02d265063c 100644
--- a/src/mame/drivers/vsmileb.cpp
+++ b/src/mame/drivers/vsmileb.cpp
@@ -4,6 +4,22 @@
V-Tech V.Smile Baby console emulation
+ System is currently marked as not-working due to severe audio issues, as
+ narration-related voice clips are all cut off too early in every game.
+
+ The issue appears to be due to improper handling of the "Fast Rampdown"
+ feature in the SPG2xx audio device, but due to the poor quality of SunPlus
+ developer documentation, it's unclear as to what part of the implementation
+ is wrong.
+
+ If the Fast Rampdown feature is disabled in the audio device entirely,
+ voice clips play out without issue.
+
+ Although bad audio is not usually a reason for marking a driver as
+ non-working, due to the nature of the V.Smile Baby and its target users,
+ having properly-narrated voices is critical to the overall experience of
+ the system.
+
*******************************************************************************/
#include "emu.h"
@@ -103,9 +119,9 @@ static INPUT_PORTS_START( vsmileb )
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON8 ) PORT_CHANGED_MEMBER(DEVICE_SELF, vsmileb_state, pad_button_changed, vsmileb_state::BUTTON_EXIT) PORT_NAME("Exit")
PORT_START("MODE")
- PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Play Time") PORT_CHANGED_MEMBER(DEVICE_SELF, vsmileb_state, sw_mode<0x0400>, 0) // three-position function switch
- PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Watch & Learn") PORT_CHANGED_MEMBER(DEVICE_SELF, vsmileb_state, sw_mode<0x0800>, 0)
- PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Learn & Explore") PORT_CHANGED_MEMBER(DEVICE_SELF, vsmileb_state, sw_mode<0x0c00>, 0)
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_1) PORT_NAME("Play Time") PORT_CHANGED_MEMBER(DEVICE_SELF, vsmileb_state, sw_mode<0x0400>, 0) // three-position function switch
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_2) PORT_NAME("Watch & Learn") PORT_CHANGED_MEMBER(DEVICE_SELF, vsmileb_state, sw_mode<0x0800>, 0)
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_3) PORT_NAME("Learn & Explore") PORT_CHANGED_MEMBER(DEVICE_SELF, vsmileb_state, sw_mode<0x0c00>, 0)
PORT_START("LOGO")
PORT_DIPNAME( 0x10, 0x10, "VTech Intro" )
@@ -180,12 +196,12 @@ ROM_START( vsmilebfp )
ROM_LOAD16_WORD_SWAP( "vsmilebabybios_france_patoune.bin", 0x000000, 0x800000, CRC(57757602) SHA1(a7495e1c6b2edaeb63bf1c658575689304f15804) )
ROM_END
-// year, name, parent, compat, machine, input, class, init, company, fullname, flags
-CONS( 2005, vsmileb, 0, 0, vsmileb, vsmileb, vsmileb_state, empty_init, "VTech", "V.Smile Baby (USA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
-CONS( 2005, vsmilebsw ,vsmileb, 0, vsmilebp,vsmileb, vsmileb_state, empty_init, "VTech", "V.Smile Baby (Sweden)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
+// year, name, parent, compat, machine, input, class, init, company, fullname, flags
+CONS( 2005, vsmileb, 0, 0, vsmileb, vsmileb, vsmileb_state, empty_init, "VTech", "V.Smile Baby (USA)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING )
+CONS( 2005, vsmilebsw, vsmileb, 0, vsmilebp, vsmileb, vsmileb_state, empty_init, "VTech", "V.Smile Baby (Sweden)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING )
// These have a game in the BIOS ROM, supplied as a 'Romless cart' with the device, so probably triggers a switch. Currently always banked in.
-CONS( 2005, vsmilebs, vsmileb, 0, vsmileb, vsmileb, vsmileb_state, empty_init, "VTech", "V.Smile Baby (Spain, with 'Aventuras en el Bosque de los Cien Acres')", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
-CONS( 2005, vsmilebg, vsmileb, 0, vsmileb, vsmileb, vsmileb_state, empty_init, "VTech", "V.Smile Baby (Germany, with 'Puuhs Hundert-Morgen-Wald')", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
-CONS( 2005, vsmilebf, vsmileb, 0, vsmileb, vsmileb, vsmileb_state, empty_init, "VTech", "V.Smile Baby (France, with 'Winnie et ses amis dans la Foret des Reves Bleus')", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
-CONS( 2005, vsmilebfp, vsmileb, 0, vsmileb, vsmileb, vsmileb_state, empty_init, "VTech", "V.Smile Baby (France, with 'En Ville avec l'ourson Patoune')", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
+CONS( 2005, vsmilebs, vsmileb, 0, vsmileb, vsmileb, vsmileb_state, empty_init, "VTech", "V.Smile Baby (Spain, with 'Aventuras en el Bosque de los Cien Acres')", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING )
+CONS( 2005, vsmilebg, vsmileb, 0, vsmileb, vsmileb, vsmileb_state, empty_init, "VTech", "V.Smile Baby (Germany, with 'Puuhs Hundert-Morgen-Wald')", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING )
+CONS( 2005, vsmilebf, vsmileb, 0, vsmileb, vsmileb, vsmileb_state, empty_init, "VTech", "V.Smile Baby (France, with 'Winnie et ses amis dans la Foret des Reves Bleus')", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING )
+CONS( 2005, vsmilebfp, vsmileb, 0, vsmileb, vsmileb, vsmileb_state, empty_init, "VTech", "V.Smile Baby (France, with 'En Ville avec l'ourson Patoune')", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING )