trunk/src/mame/includes/gottlieb.h
| r18491 | r18492 | |
| 239 | 239 | m_laserdisc(*this, "laserdisc"), |
| 240 | 240 | m_r1_sound(*this, "r1sound"), |
| 241 | 241 | m_r2_sound(*this, "r2sound"), |
| 242 | m_knocker_sample(*this, "knocker"), |
| 242 | 243 | m_videoram(*this, "videoram"), |
| 243 | 244 | m_charram(*this, "charram"), |
| 244 | 245 | m_spriteram(*this, "spriteram") |
| r18491 | r18492 | |
| 249 | 250 | optional_device<pioneer_pr8210_device> m_laserdisc; |
| 250 | 251 | optional_device<gottlieb_sound_r1_device> m_r1_sound; |
| 251 | 252 | optional_device<gottlieb_sound_r2_device> m_r2_sound; |
| 253 | optional_device<samples_device> m_knocker_sample; |
| 252 | 254 | |
| 253 | 255 | required_shared_ptr<UINT8> m_videoram; |
| 254 | 256 | required_shared_ptr<UINT8> m_charram; |
| 255 | 257 | required_shared_ptr<UINT8> m_spriteram; |
| 256 | 258 | |
| 259 | UINT8 m_knocker_prev; |
| 257 | 260 | UINT8 m_joystick_select; |
| 258 | 261 | UINT8 m_track[2]; |
| 259 | 262 | emu_timer *m_laserdisc_bit_timer; |
| r18491 | r18492 | |
| 277 | 280 | tilemap_t *m_bg_tilemap; |
| 278 | 281 | double m_weights[4]; |
| 279 | 282 | |
| 283 | void qbert_knocker(UINT8 knock); |
| 284 | |
| 280 | 285 | DECLARE_WRITE8_MEMBER(gottlieb_analog_reset_w); |
| 281 | 286 | DECLARE_WRITE8_MEMBER(general_output_w); |
| 282 | 287 | DECLARE_WRITE8_MEMBER(reactor_output_w); |
| 283 | 288 | DECLARE_WRITE8_MEMBER(stooges_output_w); |
| 284 | 289 | DECLARE_WRITE8_MEMBER(qbertqub_output_w); |
| 290 | DECLARE_WRITE8_MEMBER(qbert_output_w); |
| 285 | 291 | DECLARE_READ8_MEMBER(laserdisc_status_r); |
| 286 | 292 | DECLARE_WRITE8_MEMBER(laserdisc_select_w); |
| 287 | 293 | DECLARE_WRITE8_MEMBER(laserdisc_command_w); |
| r18491 | r18492 | |
| 298 | 304 | DECLARE_DRIVER_INIT(vidvince); |
| 299 | 305 | DECLARE_DRIVER_INIT(ramtiles); |
| 300 | 306 | DECLARE_DRIVER_INIT(stooges); |
| 307 | DECLARE_DRIVER_INIT(qbert); |
| 301 | 308 | DECLARE_DRIVER_INIT(qbertqub); |
| 302 | 309 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
| 303 | 310 | TILE_GET_INFO_MEMBER(get_screwloo_bg_tile_info); |
| r18491 | r18492 | |
| 313 | 320 | TIMER_CALLBACK_MEMBER(nmi_clear); |
| 314 | 321 | }; |
| 315 | 322 | |
| 316 | | /*----------- defined in video/gottlieb.c -----------*/ |
| 323 | /*----------- defined in audio/gottlieb.c -----------*/ |
| 317 | 324 | |
| 325 | MACHINE_CONFIG_EXTERN( qbert_knocker ); |
| 326 | |
| 318 | 327 | #if USE_FAKE_VOTRAX |
| 319 | 328 | MACHINE_CONFIG_EXTERN( reactor_samples ); |
| 320 | 329 | MACHINE_CONFIG_EXTERN( qbert_samples ); |
trunk/src/mame/drivers/gottlieb.c
| r18491 | r18492 | |
| 313 | 313 | else |
| 314 | 314 | gottlieb_laserdisc_video_control_w(space, offset, data); |
| 315 | 315 | |
| 316 | | /* bit 4 controls the coin meter */ |
| 316 | /* bit 4 normally controls the coin meter */ |
| 317 | 317 | coin_counter_w(machine(), 0, data & 0x10); |
| 318 | 318 | |
| 319 | | /* bit 5 controls the knocker */ |
| 320 | | output_set_value("knocker0", (data >> 5) & 1); |
| 321 | | |
| 319 | /* bit 5 doesn't have a generic function */ |
| 322 | 320 | /* bit 6 controls "COIN1"; it appears that no games used this */ |
| 323 | | |
| 324 | 321 | /* bit 7 controls the optional coin lockout; it appears that no games used this */ |
| 325 | 322 | } |
| 326 | 323 | |
| r18491 | r18492 | |
| 334 | 331 | set_led_status(machine(), 2, data & 0x80); |
| 335 | 332 | } |
| 336 | 333 | |
| 334 | WRITE8_MEMBER(gottlieb_state::qbert_output_w) |
| 335 | { |
| 336 | general_output_w(space, offset, data & ~0x20); |
| 337 | |
| 338 | // bit 5 controls the knocker |
| 339 | qbert_knocker(data >> 5 & 1); |
| 340 | } |
| 341 | |
| 337 | 342 | WRITE8_MEMBER(gottlieb_state::qbertqub_output_w) |
| 338 | 343 | { |
| 339 | 344 | // coincounter is on bit 5 instead |
| r18491 | r18492 | |
| 1766 | 1771 | MCFG_CPU_PROGRAM_MAP(reactor_map) |
| 1767 | 1772 | |
| 1768 | 1773 | MCFG_DEVICE_REMOVE("nvram") |
| 1774 | |
| 1775 | /* sound hardware */ |
| 1769 | 1776 | MCFG_FRAGMENT_ADD(reactor_samples) |
| 1770 | 1777 | MACHINE_CONFIG_END |
| 1771 | 1778 | |
| 1772 | 1779 | |
| 1773 | 1780 | static MACHINE_CONFIG_DERIVED( qbert, gottlieb1 ) |
| 1781 | |
| 1782 | /* sound hardware */ |
| 1783 | MCFG_FRAGMENT_ADD(qbert_knocker) |
| 1774 | 1784 | MCFG_FRAGMENT_ADD(qbert_samples) |
| 1775 | 1785 | MACHINE_CONFIG_END |
| 1776 | 1786 | |
| 1777 | 1787 | |
| 1778 | 1788 | static MACHINE_CONFIG_DERIVED( tylz, gottlieb1 ) |
| 1789 | |
| 1790 | /* sound hardware */ |
| 1779 | 1791 | MCFG_FRAGMENT_ADD(qbert_samples) |
| 1780 | 1792 | MACHINE_CONFIG_END |
| 1781 | 1793 | |
| r18491 | r18492 | |
| 1800 | 1812 | |
| 1801 | 1813 | |
| 1802 | 1814 | static MACHINE_CONFIG_DERIVED( qbert, gottlieb1_votrax ) |
| 1815 | |
| 1816 | /* sound hardware */ |
| 1817 | MCFG_FRAGMENT_ADD(qbert_knocker) |
| 1803 | 1818 | MACHINE_CONFIG_END |
| 1804 | 1819 | |
| 1805 | 1820 | |
| r18491 | r18492 | |
| 2441 | 2456 | } |
| 2442 | 2457 | |
| 2443 | 2458 | |
| 2459 | DRIVER_INIT_MEMBER(gottlieb_state,qbert) |
| 2460 | { |
| 2461 | DRIVER_INIT_CALL(romtiles); |
| 2462 | machine().device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0x5803, 0x5803, 0, 0x07f8, write8_delegate(FUNC(gottlieb_state::qbert_output_w),this)); |
| 2463 | } |
| 2464 | |
| 2465 | |
| 2444 | 2466 | DRIVER_INIT_MEMBER(gottlieb_state,qbertqub) |
| 2445 | 2467 | { |
| 2446 | 2468 | DRIVER_INIT_CALL(romtiles); |
| r18491 | r18492 | |
| 2478 | 2500 | |
| 2479 | 2501 | /* games using rev 1 sound board */ |
| 2480 | 2502 | GAME( 1982, reactor, 0, reactor, reactor, gottlieb_state, ramtiles, ROT0, "Gottlieb", "Reactor", GAME_IMPERFECT_SOUND ) |
| 2481 | | GAME( 1982, qbert, 0, qbert, qbert, gottlieb_state, romtiles, ROT270, "Gottlieb", "Q*bert (US set 1)", GAME_IMPERFECT_SOUND ) |
| 2482 | | GAME( 1982, qberta, qbert, qbert, qbert, gottlieb_state, romtiles, ROT270, "Gottlieb", "Q*bert (US set 2)", GAME_IMPERFECT_SOUND ) |
| 2483 | | GAME( 1982, qbertj, qbert, qbert, qbert, gottlieb_state, romtiles, ROT270, "Gottlieb (Konami license)", "Q*bert (Japan)", GAME_IMPERFECT_SOUND ) |
| 2484 | | GAME( 1982, myqbert, qbert, qbert, qbert, gottlieb_state, romtiles, ROT270, "Gottlieb", "Mello Yello Q*bert", GAME_IMPERFECT_SOUND ) |
| 2485 | | GAME( 1982, qberttst, qbert, qbert, qbert, gottlieb_state, romtiles, ROT270, "Gottlieb", "Q*bert (early test version)", GAME_IMPERFECT_SOUND ) |
| 2486 | | GAME( 1982, qbtrktst, qbert, qbert, qbert, gottlieb_state, romtiles, ROT270, "Gottlieb", "Q*bert Board Input Test Rom", GAME_IMPERFECT_SOUND ) |
| 2503 | GAME( 1982, qbert, 0, qbert, qbert, gottlieb_state, qbert, ROT270, "Gottlieb", "Q*bert (US set 1)", GAME_IMPERFECT_SOUND ) |
| 2504 | GAME( 1982, qberta, qbert, qbert, qbert, gottlieb_state, qbert, ROT270, "Gottlieb", "Q*bert (US set 2)", GAME_IMPERFECT_SOUND ) |
| 2505 | GAME( 1982, qbertj, qbert, qbert, qbert, gottlieb_state, qbert, ROT270, "Gottlieb (Konami license)", "Q*bert (Japan)", GAME_IMPERFECT_SOUND ) |
| 2506 | GAME( 1982, myqbert, qbert, qbert, qbert, gottlieb_state, qbert, ROT270, "Gottlieb", "Mello Yello Q*bert", GAME_IMPERFECT_SOUND ) |
| 2507 | GAME( 1982, qberttst, qbert, qbert, qbert, gottlieb_state, qbert, ROT270, "Gottlieb", "Q*bert (early test version)", GAME_IMPERFECT_SOUND ) |
| 2508 | GAME( 1982, qbtrktst, qbert, qbert, qbert, gottlieb_state, qbert, ROT270, "Gottlieb", "Q*bert Board Input Test Rom", GAME_IMPERFECT_SOUND ) |
| 2487 | 2509 | GAME( 1982, insector, 0, gottlieb1, insector, gottlieb_state, romtiles, ROT0, "Gottlieb", "Insector (prototype)", 0 ) |
| 2488 | 2510 | GAME( 1982, tylz, 0, tylz, tylz, gottlieb_state, romtiles, ROT0, "Mylstar", "Tylz (prototype)", GAME_IMPERFECT_SOUND ) // modified sound hw? |
| 2489 | 2511 | GAME( 1984, argusg, 0, gottlieb1, argusg, gottlieb_state, ramtiles, ROT0, "Gottlieb", "Argus (Gottlieb, prototype)" , 0) // aka Guardian / Protector? |
| r18491 | r18492 | |
| 2491 | 2513 | GAME( 1983, mplanetsuk,mplanets, gottlieb1, mplanets, gottlieb_state, romtiles, ROT270, "Gottlieb (Taitel license)", "Mad Planets (UK)", 0 ) |
| 2492 | 2514 | GAME( 1983, krull, 0, gottlieb1, krull, gottlieb_state, ramtiles, ROT270, "Gottlieb", "Krull", 0 ) |
| 2493 | 2515 | GAME( 1983, kngtmare, 0, gottlieb1, kngtmare, gottlieb_state, romtiles, ROT0, "Gottlieb", "Knightmare (prototype)", GAME_NO_SOUND ) |
| 2494 | | GAME( 1983, sqbert, 0, qbert, qbert, gottlieb_state, romtiles, ROT270, "Mylstar", "Faster, Harder, More Challenging Q*bert (prototype)", GAME_IMPERFECT_SOUND ) |
| 2516 | GAME( 1983, sqbert, 0, qbert, qbert, gottlieb_state, qbert, ROT270, "Mylstar", "Faster, Harder, More Challenging Q*bert (prototype)", GAME_IMPERFECT_SOUND ) |
| 2495 | 2517 | GAME( 1983, qbertqub, 0, qbert, qbertqub, gottlieb_state, qbertqub, ROT270, "Mylstar", "Q*bert's Qubes", GAME_IMPERFECT_SOUND ) |
| 2496 | 2518 | GAME( 1984, curvebal, 0, gottlieb1, curvebal, gottlieb_state, romtiles, ROT270, "Mylstar", "Curve Ball", 0 ) |
| 2497 | 2519 | |