summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author mariuszw1 <mariuszw1@users.noreply.github.com>2011-06-21 20:22:57 +0000
committer mariuszw1 <mariuszw1@users.noreply.github.com>2011-06-21 20:22:57 +0000
commit6083cc48f15acdb5e8e1e39ecf6b0b6c76366965 (patch)
tree7dcaa598d12b18bc47ddfced0bc020b3e7e40859
parentfc82c0f03f04637dd3dfb2689a341453bacc90a2 (diff)
Added analog controls to Warp Speed [Mariusz Wojcieszek]
New games promoted from NOT_WORKING ----------------------------------- Warp Speed (prototype) [Mariusz Wojcieszek]
-rw-r--r--src/mame/drivers/warpsped.c44
1 files changed, 24 insertions, 20 deletions
diff --git a/src/mame/drivers/warpsped.c b/src/mame/drivers/warpsped.c
index 2ed14cd2ded..5a5b4612c68 100644
--- a/src/mame/drivers/warpsped.c
+++ b/src/mame/drivers/warpsped.c
@@ -2,7 +2,16 @@
Meadows Warp Speed
-Preliminary driver by Mariusz Wojcieszek
+Driver by Mariusz Wojcieszek
+
+Notes:
+- Circles drawing does not follow the hardware. Roms which come in pairs four times
+ on the board are used by circle generators. These roms are thought to contain cosine tables,
+ 16 bits wide, with g17 being the MSB and g18 being the LSB
+- Circles colors are probably not correct
+- Starfield is wrong. It is done with tilemap fixed in rom, but rom mapping is not correct.
+ Starfield scrolling is missing too
+- What are unknown roms used for?
Hardware registers:
0x00 - 0x1f control register for circles generator (8 bytes each)
@@ -90,18 +99,6 @@ public:
UINT8 m_regs[0x28];
};
-static READ8_HANDLER( warpspeed_hardware_r )
-{
-// warpspeed_state *state = space->machine().driver_data<warpspeed_state>();
-
- switch( offset )
- {
- case 0: return input_port_read(space->machine(), "IN1" );
- case 2: return input_port_read(space->machine(), "DSW" ); case 3: return input_port_read(space->machine(), "IN0" );
- }
- return 0;
-}
-
static WRITE8_HANDLER( warpspeed_hardware_w )
{
warpspeed_state *state = space->machine().driver_data<warpspeed_state>();
@@ -224,21 +221,28 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START ( warpspeed_io_map, AS_IO, 8)
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x03) AM_READ( warpspeed_hardware_r )
+ AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
+ AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
+ AM_RANGE(0x02, 0x02) AM_READ_PORT("DSW")
+ AM_RANGE(0x03, 0x03) AM_READ_PORT("IN2")
AM_RANGE(0x00, 0x27) AM_WRITE( warpspeed_hardware_w )
ADDRESS_MAP_END
static INPUT_PORTS_START( warpspeed )
PORT_START("IN0")
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME( "Accelerate" )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME( "Brake" )
+ PORT_BIT( 0x3f, 0x20, IPT_AD_STICK_X ) PORT_MINMAX(0x00,0x3f) PORT_SENSITIVITY(20) PORT_KEYDELTA(5) PORT_CENTERDELTA(0) PORT_REVERSE
+
+ PORT_START("IN1")
+ PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x3f, 0x20, IPT_AD_STICK_Y ) PORT_MINMAX(0x00,0x3f) PORT_SENSITIVITY(20) PORT_KEYDELTA(5) PORT_CENTERDELTA(0) PORT_REVERSE
+
+ PORT_START("IN2")
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 )
PORT_BIT( 0x7e, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_VBLANK )
- PORT_START("IN1")
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME( "Accelerate" )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME( "Brake" )
- PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
PORT_START("DSW")
PORT_DIPNAME( 0x07, 0x00, "Coin/Time" )
PORT_DIPSETTING( 0x00, "50 sec" )
@@ -358,4 +362,4 @@ static DRIVER_INIT( warpspeed )
{
}
-GAME( 197?, warpsped, 0, warpspeed, warpspeed, warpspeed, ROT0, "Meadows Games, Inc.", "Warp Speed (prototype)", GAME_NO_SOUND | GAME_NOT_WORKING )
+GAME( 197?, warpsped, 0, warpspeed, warpspeed, warpspeed, ROT0, "Meadows Games, Inc.", "Warp Speed (prototype)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_COLORS | GAME_NO_SOUND )