summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--src/devices/bus/sms_ctrl/paddle.cpp2
-rw-r--r--src/devices/bus/sms_ctrl/sports.cpp8
-rw-r--r--src/mame/drivers/sms.cpp6
-rw-r--r--src/mame/machine/sms.cpp24
4 files changed, 29 insertions, 11 deletions
diff --git a/src/devices/bus/sms_ctrl/paddle.cpp b/src/devices/bus/sms_ctrl/paddle.cpp
index 964a00f5133..805e0827533 100644
--- a/src/devices/bus/sms_ctrl/paddle.cpp
+++ b/src/devices/bus/sms_ctrl/paddle.cpp
@@ -35,7 +35,7 @@ const device_type SMS_PADDLE = &device_creator<sms_paddle_device>;
// time interval not verified
// Player 2 of Galactic Protector is the most sensible to this timming.
-#define PADDLE_INTERVAL attotime::from_hz(XTAL_53_693175MHz/15/100)
+#define PADDLE_INTERVAL attotime::from_hz(XTAL_10_738635MHz/3/100)
CUSTOM_INPUT_MEMBER( sms_paddle_device::rldu_pins_r )
diff --git a/src/devices/bus/sms_ctrl/sports.cpp b/src/devices/bus/sms_ctrl/sports.cpp
index 54fa867a8c1..d2a5647e965 100644
--- a/src/devices/bus/sms_ctrl/sports.cpp
+++ b/src/devices/bus/sms_ctrl/sports.cpp
@@ -24,12 +24,6 @@ Notes:
uses a different mode, because the Sega Mark III lacks the TH line, so
there is a different Sports Pad model released in Japan (see sportsjp.c).
- The Japanese SMS has the TH line connected, but doesn't report TH input
- on port 0xDD. However, a magazine raffled the US Sports Pad along with a
- Great Ice Hockey cartridge, in Japanese format, to owners of that console.
- So, Great Ice Hockey seems to just need TH pin as output to work, while
- other games designed for the US Sports Pad don't work on the Japanese SMS.
-
It was discovered that games designed for the Paddle Controller, released
in Japan, switch to a mode incompatible with the original Paddle when
detect the system region as Export. Similar to how the US model of the
@@ -53,7 +47,7 @@ Notes:
const device_type SMS_SPORTS_PAD = &device_creator<sms_sports_pad_device>;
// time interval not verified
-#define SPORTS_PAD_INTERVAL attotime::from_hz(XTAL_53_693175MHz/15/512)
+#define SPORTS_PAD_INTERVAL attotime::from_hz(XTAL_10_738635MHz/3/512)
void sms_sports_pad_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
diff --git a/src/mame/drivers/sms.cpp b/src/mame/drivers/sms.cpp
index b44ee882e58..1144faedcf0 100644
--- a/src/mame/drivers/sms.cpp
+++ b/src/mame/drivers/sms.cpp
@@ -25,9 +25,9 @@
- SMS drivers for other versions (one has a 10.746168MHz XTAL)
- Software compatibility flags, by region and/or BIOS
- Samsung modem for Gam*Boy Securities Information Service System
- - Sega Demo Unit II (kiosk expansion device)
- - SMS 8 slot game changer (kiosk expansion device)
- - SMS Disk System (floppy disk drive expansion device) - unreleased
+ - Sega Demo Unit II (SMS kiosk-like expansion device)
+ - SMS 8 slot game changer (kiosk-like expansion device)
+ - Sega Floppy Disc Unit (SMS expansion device) - unreleased
- Emulate SRAM cartridges? (for use with Bock's dump tool)
The Game Gear SIO hardware is not emulated but has some
diff --git a/src/mame/machine/sms.cpp b/src/mame/machine/sms.cpp
index 9d38ac436fa..8244b542759 100644
--- a/src/mame/machine/sms.cpp
+++ b/src/mame/machine/sms.cpp
@@ -387,7 +387,25 @@ READ8_MEMBER(sms_state::sms_audio_control_r)
if (m_has_fm)
{
if (m_is_smsj)
+ {
+ /* Charles MacDonald discovered an internal 12-bit counter that is
+ incremented on each pulse of the C-Sync line that connects the VDP
+ with the 315-5297. Only 3 bits of the counter are returned when
+ read this port:
+
+ D7 : Counter bit 11
+ D6 : Counter bit 7
+ D5 : Counter bit 3
+ D4 : Always zero
+ D3 : Always zero
+ D2 : Always zero
+ D1 : Mute control bit 1
+ D0 : Mute control bit 0
+
+ For the moment, only the mute bits are handled by this code.
+ */
return m_audio_control & 0x03;
+ }
else
return m_audio_control & 0x01;
}
@@ -452,8 +470,14 @@ READ8_MEMBER(sms_state::gg_input_port_00_r)
return 0xff;
else
{
+ // bit 6 is NJAP (0=domestic/1=overseas); bit 7 is STT (START button)
UINT8 data = (m_is_gg_region_japan ? 0x00 : 0x40) | (m_port_start->read() & 0x80);
+ // According to GG official docs, bits 0-4 are meaningless and bit 5
+ // is NNTS (0=NTSC, 1=PAL). All games run in NTSC and no original GG
+ // allows the user to change that mode, but there are NTSC and PAL
+ // versions of the TV Tuner.
+
//logerror("port $00 read, val: %02x, pc: %04x\n", data, activecpu_get_pc());
return data;
}