diff options
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 |
commit | 6083cc48f15acdb5e8e1e39ecf6b0b6c76366965 (patch) | |
tree | 7dcaa598d12b18bc47ddfced0bc020b3e7e40859 | |
parent | fc82c0f03f04637dd3dfb2689a341453bacc90a2 (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.c | 44 |
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 ) |