diff options
-rw-r--r-- | src/devices/bus/sms_ctrl/paddle.cpp | 2 | ||||
-rw-r--r-- | src/devices/bus/sms_ctrl/sports.cpp | 8 | ||||
-rw-r--r-- | src/mame/drivers/sms.cpp | 6 | ||||
-rw-r--r-- | src/mame/machine/sms.cpp | 24 |
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; } |