trunk/src/mame/drivers/hornet.c
| r243455 | r243456 | |
| 338 | 338 | m_gn680(*this, "gn680"), |
| 339 | 339 | m_dsp(*this, "dsp"), |
| 340 | 340 | m_dsp2(*this, "dsp2"), |
| 341 | | m_eeprom(*this, "eeprom"), |
| 342 | 341 | m_k037122_1(*this, "k037122_1"), |
| 343 | 342 | m_k037122_2(*this, "k037122_2" ), |
| 344 | 343 | m_adc12138(*this, "adc12138"), |
| 344 | m_konppc(*this, "konppc"), |
| 345 | m_lan_eeprom(*this, "lan_eeprom"), |
| 345 | 346 | m_in0(*this, "IN0"), |
| 346 | 347 | m_in1(*this, "IN1"), |
| 347 | 348 | m_in2(*this, "IN2"), |
| 348 | 349 | m_dsw(*this, "DSW"), |
| 349 | 350 | m_eepromout(*this, "EEPROMOUT"), |
| 350 | 351 | m_analog1(*this, "ANALOG1"), |
| 351 | | m_analog2(*this, "ANALOG2"), |
| 352 | | m_konppc(*this, "konppc"){ } |
| 352 | m_analog2(*this, "ANALOG2") |
| 353 | { } |
| 353 | 354 | |
| 354 | 355 | // TODO: Needs verification on real hardware |
| 355 | 356 | static const int m_sound_timer_usec = 2800; |
| r243455 | r243456 | |
| 363 | 364 | optional_device<cpu_device> m_gn680; |
| 364 | 365 | required_device<cpu_device> m_dsp; |
| 365 | 366 | optional_device<cpu_device> m_dsp2; |
| 366 | | required_device<eeprom_serial_93cxx_device> m_eeprom; |
| 367 | 367 | optional_device<k037122_device> m_k037122_1; |
| 368 | 368 | optional_device<k037122_device> m_k037122_2; |
| 369 | 369 | required_device<adc12138_device> m_adc12138; |
| 370 | | required_ioport m_in0, m_in1, m_in2, m_dsw, m_eepromout; |
| 371 | | optional_ioport m_analog1, m_analog2; |
| 372 | 370 | required_device<konppc_device> m_konppc; |
| 371 | optional_device<eeprom_serial_93cxx_device> m_lan_eeprom; |
| 372 | required_ioport m_in0, m_in1, m_in2, m_dsw; |
| 373 | optional_ioport m_eepromout, m_analog1, m_analog2; |
| 373 | 374 | |
| 374 | 375 | emu_timer *m_sound_irq_timer; |
| 375 | 376 | UINT8 m_led_reg0; |
| r243455 | r243456 | |
| 534 | 535 | 0x02 = ADDOR (ADC DOR) |
| 535 | 536 | 0x01 = ADDO (ADC DO) |
| 536 | 537 | */ |
| 537 | | r = 0xf0; m_eeprom->do_read(); |
| 538 | r = 0xf0; |
| 539 | if (m_lan_eeprom) |
| 540 | r |= m_lan_eeprom->do_read() << 3; |
| 538 | 541 | r |= m_adc12138->do_r(space, 0) | (m_adc12138->eoc_r(space, 0) << 2); |
| 539 | 542 | break; |
| 540 | 543 | |
| r243455 | r243456 | |
| 572 | 575 | 0x02 = LAMP1 |
| 573 | 576 | 0x01 = LAMP0 |
| 574 | 577 | */ |
| 575 | | m_eepromout->write(data, 0xff); |
| 578 | if (m_eepromout) |
| 579 | m_eepromout->write(data, 0xff); |
| 576 | 580 | osd_printf_debug("System register 0 = %02X\n", data); |
| 577 | 581 | break; |
| 578 | 582 | |
| r243455 | r243456 | |
| 877 | 881 | PORT_DIPNAME( 0x01, 0x01, "Monitor Type" ) PORT_DIPLOCATION("SW:8") |
| 878 | 882 | PORT_DIPSETTING( 0x01, "24KHz" ) |
| 879 | 883 | PORT_DIPSETTING( 0x00, "15KHz" ) |
| 880 | | |
| 881 | | PORT_START( "EEPROMOUT" ) |
| 882 | | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, di_write) |
| 883 | | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, clk_write) |
| 884 | | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, cs_write) |
| 885 | 884 | INPUT_PORTS_END |
| 886 | 885 | |
| 887 | 886 | static INPUT_PORTS_START( sscope ) |
| r243455 | r243456 | |
| 902 | 901 | PORT_BIT( 0x7ff, 0x3ff, IPT_AD_STICK_Y ) PORT_MINMAX(0x000, 0x7ff) PORT_SENSITIVITY(35) PORT_KEYDELTA(5) PORT_INVERT |
| 903 | 902 | INPUT_PORTS_END |
| 904 | 903 | |
| 904 | static INPUT_PORTS_START( sscope2 ) |
| 905 | PORT_INCLUDE( sscope ) |
| 905 | 906 | |
| 907 | // LAN board EEPROM |
| 908 | PORT_START( "EEPROMOUT" ) |
| 909 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("lan_eeprom", eeprom_serial_93cxx_device, di_write) |
| 910 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("lan_eeprom", eeprom_serial_93cxx_device, clk_write) |
| 911 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("lan_eeprom", eeprom_serial_93cxx_device, cs_write) |
| 912 | INPUT_PORTS_END |
| 913 | |
| 914 | |
| 906 | 915 | /* PowerPC interrupts |
| 907 | 916 | |
| 908 | 917 | IRQ0: Vblank CG Board 0 |
| r243455 | r243456 | |
| 977 | 986 | |
| 978 | 987 | MCFG_QUANTUM_TIME(attotime::from_hz(6000)) |
| 979 | 988 | |
| 989 | // PCB description at top doesn't mention any EEPROM on the base board... |
| 990 | // MCFG_EEPROM_SERIAL_93C46_ADD("eeprom") |
| 980 | 991 | |
| 981 | | MCFG_EEPROM_SERIAL_93C46_ADD("eeprom") |
| 982 | | |
| 983 | 992 | MCFG_DEVICE_ADD("voodoo0", VOODOO_1, STD_VOODOO_1_CLOCK) |
| 984 | 993 | MCFG_VOODOO_FBMEM(2) |
| 985 | 994 | MCFG_VOODOO_TMUMEM(4,0) |
| r243455 | r243456 | |
| 1528 | 1537 | |
| 1529 | 1538 | /*************************************************************************/ |
| 1530 | 1539 | |
| 1531 | | GAME( 1998, gradius4, 0, hornet, hornet, hornet_state, hornet, ROT0, "Konami", "Gradius 4: Fukkatsu", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) |
| 1532 | | GAME( 1998, nbapbp, 0, hornet, hornet, hornet_state, hornet, ROT0, "Konami", "NBA Play By Play", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) |
| 1533 | | GAMEL( 1998, terabrst, 0, terabrst, hornet, hornet_state, hornet_2board, ROT0, "Konami", "Teraburst (1998/07/17 ver UEL)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_dualhsxs ) |
| 1534 | | GAMEL( 1998, terabrsta, terabrst, terabrst, hornet, hornet_state, hornet_2board, ROT0, "Konami", "Teraburst (1998/02/25 ver AAA)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_dualhsxs ) |
| 1540 | GAME( 1998, gradius4, 0, hornet, hornet, hornet_state, hornet, ROT0, "Konami", "Gradius 4: Fukkatsu", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) |
| 1541 | GAME( 1998, nbapbp, 0, hornet, hornet, hornet_state, hornet, ROT0, "Konami", "NBA Play By Play", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) |
| 1542 | GAMEL( 1998, terabrst, 0, terabrst, hornet, hornet_state, hornet_2board, ROT0, "Konami", "Teraburst (1998/07/17 ver UEL)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_dualhsxs ) |
| 1543 | GAMEL( 1998, terabrsta, terabrst, terabrst, hornet, hornet_state, hornet_2board, ROT0, "Konami", "Teraburst (1998/02/25 ver AAA)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_dualhsxs ) |
| 1535 | 1544 | |
| 1536 | 1545 | // The region comes from the Timekeeper NVRAM, without a valid default all sets except 'xxD, Ver 1.33' will init their NVRAM to UAx versions, the xxD set seems to incorrectly init it to JXD, which isn't a valid |
| 1537 | 1546 | // version, and thus can't be booted. If you copy the NVRAM from another already initialized set, it will boot as UAD. |
| 1538 | 1547 | // to get the actual game to boot you must calibrate the guns etc. |
| 1539 | | GAMEL( 2000, sscope, 0, hornet_2board, sscope, hornet_state, hornet_2board, ROT0, "Konami", "Silent Scope (ver xxD, Ver 1.33)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE, layout_dualhsxs ) |
| 1540 | | GAMEL( 2000, sscopec, sscope, hornet_2board, sscope, hornet_state, hornet_2board, ROT0, "Konami", "Silent Scope (ver xxC, Ver 1.30)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE, layout_dualhsxs ) |
| 1541 | | GAMEL( 2000, sscopeb, sscope, hornet_2board, sscope, hornet_state, hornet_2board, ROT0, "Konami", "Silent Scope (ver xxB, Ver 1.20)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE, layout_dualhsxs ) |
| 1542 | | GAMEL( 2000, sscopea, sscope, hornet_2board, sscope, hornet_state, hornet_2board, ROT0, "Konami", "Silent Scope (ver xxA, Ver 1.00)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE, layout_dualhsxs ) |
| 1548 | GAMEL( 2000, sscope, 0, hornet_2board, sscope, hornet_state, hornet_2board, ROT0, "Konami", "Silent Scope (ver xxD, Ver 1.33)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE, layout_dualhsxs ) |
| 1549 | GAMEL( 2000, sscopec, sscope, hornet_2board, sscope, hornet_state, hornet_2board, ROT0, "Konami", "Silent Scope (ver xxC, Ver 1.30)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE, layout_dualhsxs ) |
| 1550 | GAMEL( 2000, sscopeb, sscope, hornet_2board, sscope, hornet_state, hornet_2board, ROT0, "Konami", "Silent Scope (ver xxB, Ver 1.20)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE, layout_dualhsxs ) |
| 1551 | GAMEL( 2000, sscopea, sscope, hornet_2board, sscope, hornet_state, hornet_2board, ROT0, "Konami", "Silent Scope (ver xxA, Ver 1.00)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE, layout_dualhsxs ) |
| 1543 | 1552 | |
| 1544 | | GAMEL( 2000, sscope2, 0, sscope2, sscope, hornet_state, hornet_2board, ROT0, "Konami", "Silent Scope 2", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE, layout_dualhsxs ) |
| 1553 | GAMEL( 2000, sscope2, 0, sscope2, sscope2, hornet_state, hornet_2board, ROT0, "Konami", "Silent Scope 2", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE, layout_dualhsxs ) |