Previous 199869 Revisions Next

r26583 Wednesday 11th December, 2013 at 03:16:01 UTC by Angelo Salese
Added inputs for racing games
[src/mame/drivers]hng64.c
[src/mame/includes]hng64.h
[src/mame/video]hng64.c

trunk/src/mame/drivers/hng64.c
r26582r26583
748748            return 0x000;
749749      }
750750      case 0x004: return ioport("SYSTEM")->read();
751      case 0x008: return ioport("P1_P2")->read();
751      case 0x008: return ioport("IN0")->read();
752      case 0x014: return ioport("VIEW")->read();
753      case 0x018:
754      {
755         UINT8 handle, acc, brake;
756         handle = ioport("HANDLE")->read() & 0xff;
757         acc = ioport("ACCELERATOR")->read() & 0xff;
758         brake = ioport("BRAKE")->read() & 0xff;
759
760         return (handle<<24) | (acc<<16) | (brake<<8) | (0xff<<0);
761      }
762
752763      case 0x600: return m_no_machine_error_code;
753764   }
754765
r26582r26583
13251336
13261337static ADDRESS_MAP_START( hng_sound_map, AS_PROGRAM, 16, hng64_state )
13271338   AM_RANGE(0x00000, 0x0ffff) AM_RAMBANK("bank2")
1339   AM_RANGE(0x10000, 0x1ffff) AM_RAM // tmp, roadedge
13281340   AM_RANGE(0xf0000, 0xfffff) AM_RAMBANK("bank1")
13291341ADDRESS_MAP_END
13301342
r26582r26583
14081420   PORT_BIT( 0x80000000, IP_ACTIVE_HIGH, IPT_UNKNOWN )
14091421INPUT_PORTS_END
14101422
1423
1424CUSTOM_INPUT_MEMBER(hng64_state::left_handle_r)
1425{
1426   return (ioport("HANDLE")->read() == 0);
1427}
1428
1429CUSTOM_INPUT_MEMBER(hng64_state::right_handle_r)
1430{
1431   return (ioport("HANDLE")->read() == 0xff);
1432}
1433
1434CUSTOM_INPUT_MEMBER(hng64_state::acc_down_r)
1435{
1436   return (ioport("ACCELERATOR")->read() == 0);
1437}
1438
1439CUSTOM_INPUT_MEMBER(hng64_state::brake_down_r)
1440{
1441   return (ioport("BRAKE")->read() == 0);
1442}
1443
1444static INPUT_PORTS_START( roadedge )
1445   PORT_START("VBLANK")
1446   PORT_BIT( 0xffffffff, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen")
1447
1448   PORT_START("SYSTEM")
1449   PORT_DIPNAME( 0x01, 0x00, "SYSA" )
1450   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1451   PORT_DIPSETTING(    0x01, DEF_STR( On ) )
1452   PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) )
1453   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1454   PORT_DIPSETTING(    0x02, DEF_STR( On ) )
1455   PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) )
1456   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1457   PORT_DIPSETTING(    0x04, DEF_STR( On ) )
1458   PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) )
1459   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1460   PORT_DIPSETTING(    0x08, DEF_STR( On ) )
1461   PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) )
1462   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1463   PORT_DIPSETTING(    0x10, DEF_STR( On ) )
1464   PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) )
1465   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1466   PORT_DIPSETTING(    0x20, DEF_STR( On ) )
1467   PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) )
1468   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1469   PORT_DIPSETTING(    0x40, DEF_STR( On ) )
1470   PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
1471   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1472   PORT_DIPSETTING(    0x80, DEF_STR( On ) )
1473   PORT_BIT( 0x00000100, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_NAME("Shift Up")
1474   PORT_BIT( 0x00000200, IP_ACTIVE_HIGH, IPT_BUTTON8 ) PORT_NAME("Shift Down")
1475   PORT_BIT( 0x00000400, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, hng64_state, left_handle_r, NULL)
1476   PORT_BIT( 0x00000800, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, hng64_state, right_handle_r, NULL)
1477   PORT_BIT( 0x00001000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, hng64_state, acc_down_r, NULL)
1478   PORT_BIT( 0x00002000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, hng64_state, brake_down_r, NULL)
1479
1480   PORT_DIPNAME( 0x4000, 0x0000, DEF_STR( Unknown ) )
1481   PORT_DIPSETTING(    0x0000, DEF_STR( Off ) )
1482   PORT_DIPSETTING(    0x4000, DEF_STR( On ) )
1483   PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Unknown ) )
1484   PORT_DIPSETTING(    0x0000, DEF_STR( Off ) )
1485   PORT_DIPSETTING(    0x8000, DEF_STR( On ) )
1486   PORT_DIPNAME( 0x010000, 0x000000, "SYSA" )
1487   PORT_DIPSETTING(    0x000000, DEF_STR( Off ) )
1488   PORT_DIPSETTING(    0x010000, DEF_STR( On ) )
1489   PORT_DIPNAME( 0x020000, 0x000000, DEF_STR( Unknown ) )
1490   PORT_DIPSETTING(    0x000000, DEF_STR( Off ) )
1491   PORT_DIPSETTING(    0x020000, DEF_STR( On ) )
1492   PORT_DIPNAME( 0x040000, 0x000000, DEF_STR( Unknown ) )
1493   PORT_DIPSETTING(    0x000000, DEF_STR( Off ) )
1494   PORT_DIPSETTING(    0x040000, DEF_STR( On ) )
1495   PORT_DIPNAME( 0x080000, 0x000000, DEF_STR( Unknown ) )
1496   PORT_DIPSETTING(    0x000000, DEF_STR( Off ) )
1497   PORT_DIPSETTING(    0x080000, DEF_STR( On ) )
1498   PORT_DIPNAME( 0x100000, 0x000000, DEF_STR( Unknown ) )
1499   PORT_DIPSETTING(    0x000000, DEF_STR( Off ) )
1500   PORT_DIPSETTING(    0x100000, DEF_STR( On ) )
1501   PORT_DIPNAME( 0x200000, 0x000000, DEF_STR( Unknown ) )
1502   PORT_DIPSETTING(    0x000000, DEF_STR( Off ) )
1503   PORT_DIPSETTING(    0x200000, DEF_STR( On ) )
1504   PORT_DIPNAME( 0x400000, 0x000000, DEF_STR( Unknown ) )
1505   PORT_DIPSETTING(    0x000000, DEF_STR( Off ) )
1506   PORT_DIPSETTING(    0x400000, DEF_STR( On ) )
1507   PORT_DIPNAME( 0x800000, 0x000000, DEF_STR( Unknown ) )
1508   PORT_DIPSETTING(    0x000000, DEF_STR( Off ) )
1509   PORT_DIPSETTING(    0x800000, DEF_STR( On ) )
1510   PORT_DIPNAME( 0x01000000, 0x00000000, "SYSA" )
1511   PORT_DIPSETTING(    0x00000000, DEF_STR( Off ) )
1512   PORT_DIPSETTING(    0x01000000, DEF_STR( On ) )
1513   PORT_DIPNAME( 0x02000000, 0x00000000, DEF_STR( Unknown ) )
1514   PORT_DIPSETTING(    0x00000000, DEF_STR( Off ) )
1515   PORT_DIPSETTING(    0x02000000, DEF_STR( On ) )
1516   PORT_DIPNAME( 0x04000000, 0x00000000, DEF_STR( Unknown ) )
1517   PORT_DIPSETTING(    0x00000000, DEF_STR( Off ) )
1518   PORT_DIPSETTING(    0x04000000, DEF_STR( On ) )
1519   PORT_DIPNAME( 0x08000000, 0x00000000, DEF_STR( Unknown ) )
1520   PORT_DIPSETTING(    0x00000000, DEF_STR( Off ) )
1521   PORT_DIPSETTING(    0x08000000, DEF_STR( On ) )
1522   PORT_DIPNAME( 0x10000000, 0x00000000, DEF_STR( Unknown ) )
1523   PORT_DIPSETTING(    0x00000000, DEF_STR( Off ) )
1524   PORT_DIPSETTING(    0x10000000, DEF_STR( On ) )
1525   PORT_DIPNAME( 0x20000000, 0x00000000, DEF_STR( Unknown ) )
1526   PORT_DIPSETTING(    0x00000000, DEF_STR( Off ) )
1527   PORT_DIPSETTING(    0x20000000, DEF_STR( On ) )
1528   PORT_DIPNAME( 0x40000000, 0x00000000, DEF_STR( Unknown ) )
1529   PORT_DIPSETTING(    0x00000000, DEF_STR( Off ) )
1530   PORT_DIPSETTING(    0x40000000, DEF_STR( On ) )
1531   PORT_DIPNAME( 0x80000000, 0x00000000, DEF_STR( Unknown ) )
1532   PORT_DIPSETTING(    0x00000000, DEF_STR( Off ) )
1533   PORT_DIPSETTING(    0x80000000, DEF_STR( On ) )
1534
1535
1536   PORT_START("IN0")
1537
1538   PORT_BIT( 0x00000010, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("BGM 1")
1539   PORT_BIT( 0x00000020, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("BGM 2")
1540   PORT_BIT( 0x00000040, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("BGM 3")
1541   PORT_BIT( 0x00000080, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("BGM 4")
1542   PORT_BIT( 0x40000000, IP_ACTIVE_HIGH, IPT_START1 )
1543
1544   PORT_START("VIEW")
1545   PORT_BIT( 0x00000800, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("View 1")
1546   PORT_BIT( 0x00001000, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_NAME("View 2")
1547
1548   PORT_START("HANDLE")
1549   PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(60) PORT_PLAYER(1) PORT_NAME("Handle")
1550
1551   PORT_START("ACCELERATOR")
1552   PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(50) PORT_KEYDELTA(60) PORT_PLAYER(1) PORT_REVERSE PORT_NAME("Accelerator")
1553
1554   PORT_START("BRAKE")
1555   PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(50) PORT_KEYDELTA(60) PORT_PLAYER(1) PORT_REVERSE PORT_NAME("Brake")
1556INPUT_PORTS_END
1557
1558
14111559static INPUT_PORTS_START( bbust2 )
14121560   PORT_START("VBLANK")
14131561   PORT_BIT( 0xffffffff, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen")
r26582r26583
22742422GAME( 1997, hng64,    0,      hng64, hng64, hng64_state,  hng64,       ROT0, "SNK", "Hyper NeoGeo 64 Bios", GAME_NOT_WORKING|GAME_NO_SOUND|GAME_IS_BIOS_ROOT )
22752423
22762424/* Games */
2277GAME( 1997, roadedge, hng64,  hng64, hng64, hng64_state,  hng64_race,  ROT0, "SNK", "Roads Edge / Round Trip (rev.B)",        GAME_NOT_WORKING|GAME_NO_SOUND )  /* 001 */
2425GAME( 1997, roadedge, hng64,  hng64, roadedge, hng64_state,  hng64_race,  ROT0, "SNK", "Roads Edge / Round Trip (rev.B)",        GAME_NOT_WORKING|GAME_NO_SOUND )  /* 001 */
22782426GAME( 1998, sams64,   hng64,  hng64, hng64, hng64_state,  ss64,        ROT0, "SNK", "Samurai Shodown 64 / Samurai Spirits 64", GAME_NOT_WORKING|GAME_NO_SOUND ) /* 002 */
2279GAME( 1998, xrally,   hng64,  hng64, hng64, hng64_state,  hng64_race,  ROT0, "SNK", "Xtreme Rally / Off Beat Racer!",         GAME_NOT_WORKING|GAME_NO_SOUND )  /* 003 */
2427GAME( 1998, xrally,   hng64,  hng64, roadedge, hng64_state,  hng64_race,  ROT0, "SNK", "Xtreme Rally / Off Beat Racer!",         GAME_NOT_WORKING|GAME_NO_SOUND )  /* 003 */
22802428GAME( 1998, bbust2,   hng64,  hng64, bbust2, hng64_state, hng64_shoot, ROT0, "SNK", "Beast Busters 2nd Nightmare",            GAME_NOT_WORKING|GAME_NO_SOUND )  /* 004 */
22812429GAME( 1998, sams64_2, hng64,  hng64, hng64, hng64_state,  ss64,        ROT0, "SNK", "Samurai Shodown: Warrior's Rage / Samurai Spirits 2: Asura Zanmaden", GAME_NOT_WORKING|GAME_NO_SOUND ) /* 005 */
22822430GAME( 1998, fatfurwa, hng64,  hng64, hng64, hng64_state,  fatfurwa,    ROT0, "SNK", "Fatal Fury: Wild Ambition (rev.A)",          GAME_NOT_WORKING|GAME_NO_SOUND )  /* 006 */
trunk/src/mame/includes/hng64.h
r26582r26583
209209   void screen_eof_hng64(screen_device &screen, bool state);
210210   TIMER_DEVICE_CALLBACK_MEMBER(hng64_irq);
211211
212
213   DECLARE_CUSTOM_INPUT_MEMBER(left_handle_r);
214   DECLARE_CUSTOM_INPUT_MEMBER(right_handle_r);
215   DECLARE_CUSTOM_INPUT_MEMBER(acc_down_r);
216   DECLARE_CUSTOM_INPUT_MEMBER(brake_down_r);
212217   void clear3d();
213
214218};
215219
216220/*----------- defined in video/hng64.c -----------*/
trunk/src/mame/video/hng64.c
r26582r26583
15211521   hng64_drawtilemap(screen,bitmap,cliprect, 0);
15221522
15231523   // 3d really shouldn't be last, but you don't see some cool stuff right now if it's put before sprites.
1524   if(!(m_3dregs[0] & 0x1000000))
15241525   {
15251526      int x, y;
15261527
r26582r26583
26332634 *        | 3322 2222 2222 1111 1111 11             |
26342635 * -------+-1098-7654-3210-9876-5432-1098-7654-3210-+----------------
26352636 *      0 | ---- --x- ---- ---- ---- ---- ---- ---- | Reads in Fatal Fury WA, if on then there isn't a 3d refresh (busy flag?).
2636 *      0 | ---- ---x ---- ---- ---- ---- ---- ---- | set at POST, probably 3d disable
2637 *      0 | ---- ---x ---- ---- ---- ---- ---- ---- | set at POST/service modes, almost likely fb disable
26372638 *      0 | ???? ???? ???? ???? ccc? ???? ???? ???? | framebuffer color base, 0x311800 in Fatal Fury WA, 0x313800 in Buriki One
26382639 *      1 |                                         |
26392640 *      2 | ???? ???? ???? ???? ???? ???? ???? ???? | camera / framebuffer global x/y? Actively used by Samurai Shodown 64 2

Previous 199869 Revisions Next


© 1997-2024 The MAME Team