Fix mametesters bug #3041 (#2359)

* starshp1: Fast/Slow control from toggled to momentary, as in real game

* Update clocks per latest information

* Add note about Throttle Level behaviour

* Change format of comments
This commit is contained in:
Frank Palazzolo 2017-06-06 00:38:10 -04:00 committed by Vas Crabb
parent a29e43a74c
commit 101cc67202
3 changed files with 17 additions and 6 deletions

View File

@ -26,7 +26,7 @@
#define STARSHP1_SL2_SND NODE_17
/* Timing signals */
#define STARSHP1_HSYNC 15750 /* per manual */
#define STARSHP1_HSYNC (STARSHP1_PIXEL_CLOCK / STARSHP1_HTOTAL)
#define STARSHP1_S1V STARSHP1_HSYNC / 2
#define STARSHP1_S128V STARSHP1_S1V / 128

View File

@ -197,7 +197,10 @@ static INPUT_PORTS_START( starshp1 )
PORT_DIPNAME( 0x20, 0x20, "Extended Play" )
PORT_DIPSETTING( 0x00, DEF_STR( No ) )
PORT_DIPSETTING( 0x20, DEF_STR( Yes ) )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_TOGGLE
// IPT_BUTTON3 is the Speed lever (Throttle)
// This is _not_ IPT_TOGGLE, even though it looks like one.
// It returns to SLOW unless you hold it down (FAST)
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
PORT_START("VBLANK")

View File

@ -14,8 +14,16 @@
* probably too low. I suspect that screen is not really
* 512 pixels wide -- most likely 384, which would give 60Hz
*
* Some of the graphics, like the starfield, is clocked with the
* 12MHz signal, effectively doubling the horizontal resolution
* Based on photographs of the PCB, and analysis of videos of
* actual gameplay, the horizontal screen really is 384 clocks.
*
* However, some of the graphics, like the starfield, are
* clocked with the 12MHz signal. This effectively doubles
* the horizontal resolution:
*
* 6.048Mhz clocks 12.096Mhz clocks
* Horizontal Visible Area 384 (0x180) 768 (0x300)
* Horizontal Blanking Time 128 (0x080) 256 (0x100)
*/
#include "sound/discrete.h"
@ -24,8 +32,8 @@
#define STARSHP1_MASTER_CLOCK (12096000)
#define STARSHP1_CPU_CLOCK (STARSHP1_MASTER_CLOCK / 16)
#define STARSHP1_PIXEL_CLOCK (STARSHP1_MASTER_CLOCK / 2)
#define STARSHP1_HTOTAL (0x200)
#define STARSHP1_PIXEL_CLOCK (STARSHP1_MASTER_CLOCK)
#define STARSHP1_HTOTAL (0x300)
#define STARSHP1_HBEND (0x000)
#define STARSHP1_HBSTART (0x200)
#define STARSHP1_VTOTAL (0x106)