trunk/src/mame/drivers/ssv.c
| r244648 | r244649 | |
| 179 | 179 | m_maincpu->set_input_line(0, (m_requested_int & m_irq_enable)? ASSERT_LINE : CLEAR_LINE); |
| 180 | 180 | } |
| 181 | 181 | |
| 182 | | IRQ_CALLBACK_MEMBER(ssv_state::ssv_irq_callback) |
| 182 | IRQ_CALLBACK_MEMBER(ssv_state::irq_callback) |
| 183 | 183 | { |
| 184 | 184 | int i; |
| 185 | 185 | for ( i = 0; i <= 7; i++ ) |
| r244648 | r244649 | |
| 193 | 193 | return 0; |
| 194 | 194 | } |
| 195 | 195 | |
| 196 | | WRITE16_MEMBER(ssv_state::ssv_irq_ack_w) |
| 196 | WRITE16_MEMBER(ssv_state::irq_ack_w) |
| 197 | 197 | { |
| 198 | 198 | int level = ((offset * 2) & 0x70) >> 4; |
| 199 | 199 | |
| r244648 | r244649 | |
| 220 | 220 | ultrax: 40,00 at the start then 42,4a |
| 221 | 221 | twineag2: 40,00 at the start then 42,4a |
| 222 | 222 | */ |
| 223 | | WRITE16_MEMBER(ssv_state::ssv_irq_enable_w) |
| 223 | WRITE16_MEMBER(ssv_state::irq_enable_w) |
| 224 | 224 | { |
| 225 | 225 | COMBINE_DATA(&m_irq_enable); |
| 226 | 226 | } |
| 227 | 227 | |
| 228 | | TIMER_DEVICE_CALLBACK_MEMBER(ssv_state::ssv_interrupt) |
| 228 | TIMER_DEVICE_CALLBACK_MEMBER(ssv_state::interrupt) |
| 229 | 229 | { |
| 230 | 230 | int scanline = param; |
| 231 | 231 | |
| r244648 | r244649 | |
| 283 | 283 | survarts: 83 |
| 284 | 284 | sxyreact: 80 |
| 285 | 285 | */ |
| 286 | | WRITE16_MEMBER(ssv_state::ssv_lockout_w) |
| 286 | WRITE16_MEMBER(ssv_state::lockout_w) |
| 287 | 287 | { |
| 288 | 288 | // popmessage("%02X",data & 0xff); |
| 289 | 289 | if (ACCESSING_BITS_0_7) |
| r244648 | r244649 | |
| 293 | 293 | coin_counter_w(machine(), 1, data & 0x04); |
| 294 | 294 | coin_counter_w(machine(), 0, data & 0x08); |
| 295 | 295 | // data & 0x40? |
| 296 | | ssv_enable_video(data & 0x80); |
| 296 | enable_video(data & 0x80); |
| 297 | 297 | } |
| 298 | 298 | } |
| 299 | 299 | |
| 300 | 300 | /* Same as above but with inverted lockout lines */ |
| 301 | | WRITE16_MEMBER(ssv_state::ssv_lockout_inv_w) |
| 301 | WRITE16_MEMBER(ssv_state::lockout_inv_w) |
| 302 | 302 | { |
| 303 | 303 | // popmessage("%02X",data & 0xff); |
| 304 | 304 | if (ACCESSING_BITS_0_7) |
| r244648 | r244649 | |
| 308 | 308 | coin_counter_w(machine(), 1, data & 0x04); |
| 309 | 309 | coin_counter_w(machine(), 0, data & 0x08); |
| 310 | 310 | // data & 0x40? |
| 311 | | ssv_enable_video(data & 0x80); |
| 311 | enable_video(data & 0x80); |
| 312 | 312 | } |
| 313 | 313 | } |
| 314 | 314 | |
| r244648 | r244649 | |
| 396 | 396 | AM_RANGE(0x100000, 0x13ffff) AM_RAM AM_SHARE("spriteram") /* Sprites */ \ |
| 397 | 397 | AM_RANGE(0x140000, 0x15ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /* Palette */\ |
| 398 | 398 | AM_RANGE(0x160000, 0x17ffff) AM_RAM /* */ \ |
| 399 | | AM_RANGE(0x1c0000, 0x1c0001) AM_READ(ssv_vblank_r ) /* Vblank? */ \ |
| 399 | AM_RANGE(0x1c0000, 0x1c0001) AM_READ(vblank_r ) /* Vblank? */ \ |
| 400 | 400 | /**/AM_RANGE(0x1c0002, 0x1c007f) AM_READONLY /* Scroll */ \ |
| 401 | | AM_RANGE(0x1c0000, 0x1c007f) AM_WRITE(ssv_scroll_w) AM_SHARE("scroll") /* Scroll */ \ |
| 401 | AM_RANGE(0x1c0000, 0x1c007f) AM_WRITE(scroll_w) AM_SHARE("scroll") /* Scroll */ \ |
| 402 | 402 | AM_RANGE(0x210002, 0x210003) AM_READ_PORT("DSW1") \ |
| 403 | 403 | AM_RANGE(0x210004, 0x210005) AM_READ_PORT("DSW2") \ |
| 404 | 404 | AM_RANGE(0x210008, 0x210009) AM_READ_PORT("P1") \ |
| 405 | 405 | AM_RANGE(0x21000a, 0x21000b) AM_READ_PORT("P2") \ |
| 406 | 406 | AM_RANGE(0x21000c, 0x21000d) AM_READ_PORT("SYSTEM") \ |
| 407 | | AM_RANGE(0x21000e, 0x21000f) AM_READNOP AM_WRITE(ssv_lockout_w) /* Lockout */ \ |
| 407 | AM_RANGE(0x21000e, 0x21000f) AM_READNOP AM_WRITE(lockout_w) /* Lockout */ \ |
| 408 | 408 | AM_RANGE(0x210010, 0x210011) AM_WRITENOP \ |
| 409 | 409 | AM_RANGE(0x230000, 0x230071) AM_WRITEONLY AM_SHARE("irq_vectors") /* IRQ Vec */ \ |
| 410 | | AM_RANGE(0x240000, 0x240071) AM_WRITE(ssv_irq_ack_w ) /* IRQ Ack */ \ |
| 411 | | AM_RANGE(0x260000, 0x260001) AM_WRITE(ssv_irq_enable_w) /* IRQ En */ \ |
| 410 | AM_RANGE(0x240000, 0x240071) AM_WRITE(irq_ack_w ) /* IRQ Ack */ \ |
| 411 | AM_RANGE(0x260000, 0x260001) AM_WRITE(irq_enable_w) /* IRQ En */ \ |
| 412 | 412 | AM_RANGE(0x300000, 0x30007f) AM_DEVREADWRITE8("ensoniq", es5506_device, read, write, 0x00ff) /* Sound */ \ |
| 413 | 413 | AM_RANGE(_ROM, 0xffffff) AM_ROM AM_REGION("maincpu", 0) /* ROM */ |
| 414 | 414 | /*************************************************************************** |
| r244648 | r244649 | |
| 513 | 513 | static ADDRESS_MAP_START( hypreact_map, AS_PROGRAM, 16, ssv_state ) |
| 514 | 514 | AM_RANGE(0x210000, 0x210001) AM_READ(watchdog_reset16_r) // Watchdog |
| 515 | 515 | // AM_RANGE(0x210002, 0x210003) AM_WRITENOP // ? 5 at the start |
| 516 | | AM_RANGE(0x21000e, 0x21000f) AM_WRITE(ssv_lockout_inv_w) // Inverted lockout lines |
| 516 | AM_RANGE(0x21000e, 0x21000f) AM_WRITE(lockout_inv_w) // Inverted lockout lines |
| 517 | 517 | // AM_RANGE(0x280000, 0x280001) AM_READNOP // ? read at the start, value not used |
| 518 | 518 | AM_RANGE(0xc00000, 0xc00001) AM_READ(hypreact_input_r) // Inputs |
| 519 | 519 | AM_RANGE(0xc00006, 0xc00007) AM_RAM AM_SHARE("input_sel") // |
| r244648 | r244649 | |
| 529 | 529 | static ADDRESS_MAP_START( hypreac2_map, AS_PROGRAM, 16, ssv_state ) |
| 530 | 530 | AM_RANGE(0x210000, 0x210001) AM_READ(watchdog_reset16_r) // Watchdog |
| 531 | 531 | // AM_RANGE(0x210002, 0x210003) AM_WRITENOP // ? 5 at the start |
| 532 | | AM_RANGE(0x21000e, 0x21000f) AM_WRITE(ssv_lockout_inv_w) // Inverted lockout lines |
| 532 | AM_RANGE(0x21000e, 0x21000f) AM_WRITE(lockout_inv_w) // Inverted lockout lines |
| 533 | 533 | // AM_RANGE(0x280000, 0x280001) AM_READNOP // ? read at the start, value not used |
| 534 | 534 | AM_RANGE(0x500000, 0x500001) AM_READ(hypreact_input_r) // Inputs |
| 535 | 535 | AM_RANGE(0x500002, 0x500003) AM_READ(hypreact_input_r) // (again?) |
| r244648 | r244649 | |
| 587 | 587 | |
| 588 | 588 | /* Monster Slider needs the RAM mirrored for the gameplay logic to work correctly */ |
| 589 | 589 | |
| 590 | | READ16_MEMBER(ssv_state::ssv_mainram_r) |
| 590 | READ16_MEMBER(ssv_state::mainram_r) |
| 591 | 591 | { |
| 592 | 592 | return m_mainram[offset]; |
| 593 | 593 | } |
| 594 | 594 | |
| 595 | | WRITE16_MEMBER(ssv_state::ssv_mainram_w) |
| 595 | WRITE16_MEMBER(ssv_state::mainram_w) |
| 596 | 596 | { |
| 597 | 597 | COMBINE_DATA(&m_mainram[offset]); |
| 598 | 598 | } |
| 599 | 599 | |
| 600 | 600 | static ADDRESS_MAP_START( mslider_map, AS_PROGRAM, 16, ssv_state ) |
| 601 | | AM_RANGE(0x010000, 0x01ffff) AM_READWRITE(ssv_mainram_r, ssv_mainram_w) // RAM Mirror |
| 601 | AM_RANGE(0x010000, 0x01ffff) AM_READWRITE(mainram_r, mainram_w) // RAM Mirror |
| 602 | 602 | // AM_RANGE(0x210002, 0x210003) AM_WRITENOP // ? 1 at the start |
| 603 | 603 | AM_RANGE(0x400000, 0x47ffff) AM_WRITEONLY // ? |
| 604 | 604 | // AM_RANGE(0x500000, 0x500001) AM_WRITENOP // ? ff at the start |
| r244648 | r244649 | |
| 684 | 684 | AM_RANGE(0x010000, 0x050faf) AM_RAM // More RAM |
| 685 | 685 | AM_RANGE(0x210000, 0x210001) AM_READ(watchdog_reset16_r) // Watchdog |
| 686 | 686 | // AM_RANGE(0x210002, 0x210003) AM_WRITENOP // ? 0,4 at the start |
| 687 | | AM_RANGE(0x21000e, 0x21000f) AM_WRITE(ssv_lockout_inv_w) // Coin Counters / Lockouts |
| 687 | AM_RANGE(0x21000e, 0x21000f) AM_WRITE(lockout_inv_w) // Coin Counters / Lockouts |
| 688 | 688 | AM_RANGE(0x300076, 0x300077) AM_READ(srmp7_irqv_r) // Sound |
| 689 | 689 | // 0x540000, 0x540003, related to lev 5 irq? |
| 690 | 690 | AM_RANGE(0x580000, 0x580001) AM_WRITE(srmp7_sound_bank_w) // Sound Bank |
| r244648 | r244649 | |
| 751 | 751 | } |
| 752 | 752 | |
| 753 | 753 | static ADDRESS_MAP_START( sxyreact_map, AS_PROGRAM, 16, ssv_state ) |
| 754 | | // AM_RANGE(0x020000, 0x03ffff) AM_READWRITE(ssv_mainram_r, ssv_mainram_w) // sxyreac2 reads / writes here, why? |
| 754 | // AM_RANGE(0x020000, 0x03ffff) AM_READWRITE(mainram_r, mainram_w) // sxyreac2 reads / writes here, why? |
| 755 | 755 | AM_RANGE(0x210000, 0x210001) AM_READ(watchdog_reset16_r) // Watchdog |
| 756 | 756 | // AM_RANGE(0x210002, 0x210003) AM_WRITENOP // ? 1 at the start |
| 757 | | AM_RANGE(0x21000e, 0x21000f) AM_WRITE(ssv_lockout_inv_w) // Inverted lockout lines |
| 757 | AM_RANGE(0x21000e, 0x21000f) AM_WRITE(lockout_inv_w) // Inverted lockout lines |
| 758 | 758 | AM_RANGE(0x500002, 0x500003) AM_READ(sxyreact_ballswitch_r) // ? |
| 759 | 759 | AM_RANGE(0x500004, 0x500005) AM_READWRITE(sxyreact_dial_r, sxyreact_motor_w) // Dial Value (serial) |
| 760 | 760 | AM_RANGE(0x520000, 0x520001) AM_WRITE(sxyreact_dial_w) // Dial Value (advance 1 bit) |
| r244648 | r244649 | |
| 828 | 828 | } |
| 829 | 829 | |
| 830 | 830 | static ADDRESS_MAP_START( jsk_map, AS_PROGRAM, 16, ssv_state ) |
| 831 | | AM_RANGE(0x050000, 0x05ffff) AM_READWRITE(ssv_mainram_r, ssv_mainram_w) // RAM Mirror? |
| 831 | AM_RANGE(0x050000, 0x05ffff) AM_READWRITE(mainram_r, mainram_w) // RAM Mirror? |
| 832 | 832 | AM_RANGE(0x210000, 0x210001) AM_WRITE(watchdog_reset16_w) // Watchdog |
| 833 | 833 | AM_RANGE(0x400000, 0x47ffff) AM_RAM // RAM? |
| 834 | 834 | AM_RANGE(0x900000, 0x900007) AM_READWRITE(latch16_r, latch16_w) |
| r244648 | r244649 | |
| 898 | 898 | AM_RANGE(0x180000, 0x1bffff) AM_READWRITE(eaglshot_gfxram_r, eaglshot_gfxram_w) |
| 899 | 899 | AM_RANGE(0x210000, 0x210001) AM_READNOP /*AM_READ(watchdog_reset16_r)*/ // Watchdog |
| 900 | 900 | // AM_RANGE(0x210002, 0x210003) AM_WRITENOP // ? 0,4 at the start |
| 901 | | AM_RANGE(0x21000e, 0x21000f) AM_WRITE(ssv_lockout_inv_w) // Inverted lockout lines |
| 901 | AM_RANGE(0x21000e, 0x21000f) AM_WRITE(lockout_inv_w) // Inverted lockout lines |
| 902 | 902 | AM_RANGE(0x800000, 0x800001) AM_WRITE(eaglshot_gfxrom_bank_w) |
| 903 | 903 | AM_RANGE(0x900000, 0x900001) AM_WRITE(eaglshot_trackball_w) |
| 904 | 904 | AM_RANGE(0xa00000, 0xbfffff) AM_ROMBANK("gfxrom") |
| r244648 | r244649 | |
| 2481 | 2481 | |
| 2482 | 2482 | ***************************************************************************/ |
| 2483 | 2483 | |
| 2484 | | void ssv_state::init_ssv(int interrupt_ultrax) |
| 2484 | void ssv_state::init(int interrupt_ultrax) |
| 2485 | 2485 | { |
| 2486 | 2486 | int i; |
| 2487 | 2487 | for (i = 0; i < 16; i++) |
| r244648 | r244649 | |
| 2489 | 2489 | ( (i & 4) ? (2 << 16) : 0 ) + |
| 2490 | 2490 | ( (i & 2) ? (4 << 16) : 0 ) + |
| 2491 | 2491 | ( (i & 1) ? (8 << 16) : 0 ) ; |
| 2492 | | ssv_enable_video(1); |
| 2492 | enable_video(1); |
| 2493 | 2493 | m_interrupt_ultrax = interrupt_ultrax; |
| 2494 | |
| 2495 | save_item(NAME(m_requested_int)); |
| 2496 | save_item(NAME(m_irq_enable)); |
| 2494 | 2497 | } |
| 2495 | 2498 | |
| 2496 | 2499 | void ssv_state::init_hypreac2_common() |
| r244648 | r244649 | |
| 2528 | 2531 | } |
| 2529 | 2532 | } |
| 2530 | 2533 | |
| 2531 | | DRIVER_INIT_MEMBER(ssv_state,drifto94) { init_ssv(0); init_st010(); } |
| 2532 | | DRIVER_INIT_MEMBER(ssv_state,eaglshot) { init_ssv(0); init_eaglshot_banking(); } |
| 2533 | | DRIVER_INIT_MEMBER(ssv_state,gdfs) { init_ssv(0); } |
| 2534 | | DRIVER_INIT_MEMBER(ssv_state,hypreact) { init_ssv(0); } |
| 2535 | | DRIVER_INIT_MEMBER(ssv_state,hypreac2) { init_ssv(0); init_hypreac2_common(); } |
| 2536 | | DRIVER_INIT_MEMBER(ssv_state,janjans1) { init_ssv(0); } |
| 2537 | | DRIVER_INIT_MEMBER(ssv_state,keithlcy) { init_ssv(0); } |
| 2538 | | DRIVER_INIT_MEMBER(ssv_state,meosism) { init_ssv(0); } |
| 2539 | | DRIVER_INIT_MEMBER(ssv_state,mslider) { init_ssv(0); } |
| 2540 | | DRIVER_INIT_MEMBER(ssv_state,ryorioh) { init_ssv(0); } |
| 2541 | | DRIVER_INIT_MEMBER(ssv_state,srmp4) { init_ssv(0); |
| 2534 | DRIVER_INIT_MEMBER(ssv_state,drifto94) { init(0); init_st010(); } |
| 2535 | DRIVER_INIT_MEMBER(ssv_state,eaglshot) { init(0); init_eaglshot_banking(); save_item(NAME(m_trackball_select)); } |
| 2536 | DRIVER_INIT_MEMBER(ssv_state,gdfs) { init(0); save_item(NAME(m_gdfs_lightgun_select)); save_item(NAME(m_gdfs_eeprom_old)); } |
| 2537 | DRIVER_INIT_MEMBER(ssv_state,hypreact) { init(0); } |
| 2538 | DRIVER_INIT_MEMBER(ssv_state,hypreac2) { init(0); init_hypreac2_common(); } |
| 2539 | DRIVER_INIT_MEMBER(ssv_state,janjans1) { init(0); } |
| 2540 | DRIVER_INIT_MEMBER(ssv_state,keithlcy) { init(0); } |
| 2541 | DRIVER_INIT_MEMBER(ssv_state,meosism) { init(0); } |
| 2542 | DRIVER_INIT_MEMBER(ssv_state,mslider) { init(0); } |
| 2543 | DRIVER_INIT_MEMBER(ssv_state,ryorioh) { init(0); } |
| 2544 | DRIVER_INIT_MEMBER(ssv_state,srmp4) { init(0); |
| 2542 | 2545 | // ((UINT16 *)memregion("maincpu")->base())[0x2b38/2] = 0x037a; /* patch to see gal test mode */ |
| 2543 | 2546 | } |
| 2544 | | DRIVER_INIT_MEMBER(ssv_state,srmp7) { init_ssv(0); } |
| 2545 | | DRIVER_INIT_MEMBER(ssv_state,stmblade) { init_ssv(0); init_st010(); } |
| 2546 | | DRIVER_INIT_MEMBER(ssv_state,survarts) { init_ssv(0); } |
| 2547 | | DRIVER_INIT_MEMBER(ssv_state,dynagear) { init_ssv(0); } |
| 2548 | | DRIVER_INIT_MEMBER(ssv_state,sxyreact) { init_ssv(0); init_hypreac2_common(); } |
| 2549 | | DRIVER_INIT_MEMBER(ssv_state,cairblad) { init_ssv(0); init_hypreac2_common(); } |
| 2550 | | DRIVER_INIT_MEMBER(ssv_state,sxyreac2) { init_ssv(0); init_hypreac2_common(); } |
| 2551 | | DRIVER_INIT_MEMBER(ssv_state,twineag2) { init_ssv(1); init_st010(); } |
| 2552 | | DRIVER_INIT_MEMBER(ssv_state,ultrax) { init_ssv(1); } |
| 2553 | | DRIVER_INIT_MEMBER(ssv_state,vasara) { init_ssv(0); } |
| 2554 | | DRIVER_INIT_MEMBER(ssv_state,jsk) { init_ssv(0); } |
| 2547 | DRIVER_INIT_MEMBER(ssv_state,srmp7) { init(0); } |
| 2548 | DRIVER_INIT_MEMBER(ssv_state,stmblade) { init(0); init_st010(); } |
| 2549 | DRIVER_INIT_MEMBER(ssv_state,survarts) { init(0); } |
| 2550 | DRIVER_INIT_MEMBER(ssv_state,dynagear) { init(0); } |
| 2551 | DRIVER_INIT_MEMBER(ssv_state,sxyreact) { init(0); init_hypreac2_common(); save_item(NAME(m_sxyreact_serial)); save_item(NAME(m_sxyreact_dial)); } |
| 2552 | DRIVER_INIT_MEMBER(ssv_state,cairblad) { init(0); init_hypreac2_common(); } |
| 2553 | DRIVER_INIT_MEMBER(ssv_state,sxyreac2) { init(0); init_hypreac2_common(); save_item(NAME(m_sxyreact_serial)); save_item(NAME(m_sxyreact_dial)); } |
| 2554 | DRIVER_INIT_MEMBER(ssv_state,twineag2) { init(1); init_st010(); } |
| 2555 | DRIVER_INIT_MEMBER(ssv_state,ultrax) { init(1); } |
| 2556 | DRIVER_INIT_MEMBER(ssv_state,vasara) { init(0); } |
| 2557 | DRIVER_INIT_MEMBER(ssv_state,jsk) { init(0); save_item(NAME(m_latches)); } |
| 2555 | 2558 | |
| 2556 | 2559 | #define SSV_MASTER_CLOCK XTAL_48MHz/3 |
| 2557 | 2560 | |
| r244648 | r244649 | |
| 2567 | 2570 | |
| 2568 | 2571 | /* basic machine hardware */ |
| 2569 | 2572 | MCFG_CPU_ADD("maincpu", V60, SSV_MASTER_CLOCK) /* Based on STA-0001 & STA-0001B System boards */ |
| 2570 | | MCFG_CPU_IRQ_ACKNOWLEDGE_DRIVER(ssv_state,ssv_irq_callback) |
| 2573 | MCFG_CPU_IRQ_ACKNOWLEDGE_DRIVER(ssv_state,irq_callback) |
| 2571 | 2574 | |
| 2572 | | MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", ssv_state, ssv_interrupt, "screen", 0, 1) |
| 2575 | MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", ssv_state, interrupt, "screen", 0, 1) |
| 2573 | 2576 | |
| 2574 | 2577 | /* video hardware */ |
| 2575 | 2578 | MCFG_SCREEN_ADD("screen", RASTER) |
| 2576 | 2579 | MCFG_SCREEN_RAW_PARAMS(SSV_PIXEL_CLOCK,SSV_HTOTAL,SSV_HBEND,SSV_HBSTART,SSV_VTOTAL,SSV_VBEND,SSV_VBSTART) |
| 2577 | | MCFG_SCREEN_UPDATE_DRIVER(ssv_state, screen_update_ssv) |
| 2580 | MCFG_SCREEN_UPDATE_DRIVER(ssv_state, screen_update) |
| 2578 | 2581 | MCFG_SCREEN_PALETTE("palette") |
| 2579 | 2582 | |
| 2580 | 2583 | MCFG_GFXDECODE_ADD("gfxdecode", "palette", ssv) |
| r244648 | r244649 | |
| 4706 | 4709 | |
| 4707 | 4710 | // year rom clone machine inputs init monitor manufacturer title flags |
| 4708 | 4711 | |
| 4709 | | GAME( 1993, dynagear, 0, dynagear, dynagear, ssv_state, dynagear, ROT0, "Sammy", "Dyna Gear", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS ) |
| 4712 | GAME( 1993, dynagear, 0, dynagear, dynagear, ssv_state, dynagear, ROT0, "Sammy", "Dyna Gear", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) |
| 4710 | 4713 | |
| 4711 | | GAME( 1993, keithlcy, 0, keithlcy, keithlcy, ssv_state, keithlcy, ROT0, "Visco", "Dramatic Adventure Quiz Keith & Lucy (Japan)", GAME_NO_COCKTAIL ) |
| 4714 | GAME( 1993, keithlcy, 0, keithlcy, keithlcy, ssv_state, keithlcy, ROT0, "Visco", "Dramatic Adventure Quiz Keith & Lucy (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) |
| 4712 | 4715 | |
| 4713 | | GAME( 1993, srmp4, 0, srmp4, srmp4, ssv_state, srmp4, ROT0, "Seta", "Super Real Mahjong PIV (Japan)", GAME_NO_COCKTAIL ) |
| 4714 | | GAME( 1993, srmp4o, srmp4, srmp4, srmp4, ssv_state, srmp4, ROT0, "Seta", "Super Real Mahjong PIV (Japan, older set)", GAME_NO_COCKTAIL ) // by the numbering of the program roms this should be older |
| 4716 | GAME( 1993, srmp4, 0, srmp4, srmp4, ssv_state, srmp4, ROT0, "Seta", "Super Real Mahjong PIV (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) |
| 4717 | GAME( 1993, srmp4o, srmp4, srmp4, srmp4, ssv_state, srmp4, ROT0, "Seta", "Super Real Mahjong PIV (Japan, older set)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) // by the numbering of the program roms this should be older |
| 4715 | 4718 | |
| 4716 | | GAME( 1993, survarts, 0, survarts, survarts, ssv_state, survarts, ROT0, "Sammy", "Survival Arts (World)", GAME_NO_COCKTAIL ) |
| 4717 | | GAME( 1993, survartsu, survarts, survarts, survarts, ssv_state, survarts, ROT0, "American Sammy", "Survival Arts (USA)", GAME_NO_COCKTAIL ) |
| 4718 | | GAME( 1993, survartsj, survarts, survarts, survarts, ssv_state, survarts, ROT0, "Sammy", "Survival Arts (Japan)", GAME_NO_COCKTAIL ) |
| 4719 | GAME( 1993, survarts, 0, survarts, survarts, ssv_state, survarts, ROT0, "Sammy", "Survival Arts (World)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) |
| 4720 | GAME( 1993, survartsu, survarts, survarts, survarts, ssv_state, survarts, ROT0, "American Sammy", "Survival Arts (USA)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) |
| 4721 | GAME( 1993, survartsj, survarts, survarts, survarts, ssv_state, survarts, ROT0, "Sammy", "Survival Arts (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) |
| 4719 | 4722 | |
| 4720 | | GAME( 1994, drifto94, 0, drifto94, drifto94, ssv_state, drifto94, ROT0, "Visco", "Drift Out '94 - The Hard Order (Japan)", GAME_NO_COCKTAIL ) |
| 4723 | GAME( 1994, drifto94, 0, drifto94, drifto94, ssv_state, drifto94, ROT0, "Visco", "Drift Out '94 - The Hard Order (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) |
| 4721 | 4724 | |
| 4722 | | GAME( 1994, eaglshot, 0, eaglshot, eaglshot, ssv_state, eaglshot, ROT0, "Sammy", "Eagle Shot Golf", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS ) |
| 4725 | GAME( 1994, eaglshot, 0, eaglshot, eaglshot, ssv_state, eaglshot, ROT0, "Sammy", "Eagle Shot Golf", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) |
| 4723 | 4726 | |
| 4724 | | GAME( 1995, hypreact, 0, hypreact, hypreact, ssv_state, hypreact, ROT0, "Sammy", "Mahjong Hyper Reaction (Japan)", GAME_NO_COCKTAIL ) |
| 4727 | GAME( 1995, hypreact, 0, hypreact, hypreact, ssv_state, hypreact, ROT0, "Sammy", "Mahjong Hyper Reaction (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) |
| 4725 | 4728 | |
| 4726 | | GAME( 1994, twineag2, 0, twineag2, twineag2, ssv_state, twineag2, ROT270, "Seta", "Twin Eagle II - The Rescue Mission", GAME_NO_COCKTAIL ) |
| 4729 | GAME( 1994, twineag2, 0, twineag2, twineag2, ssv_state, twineag2, ROT270, "Seta", "Twin Eagle II - The Rescue Mission", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) |
| 4727 | 4730 | |
| 4728 | | GAME( 1995, gdfs, 0, gdfs, gdfs, ssv_state, gdfs, ROT0, "Banpresto", "Mobil Suit Gundam Final Shooting (Japan)", GAME_NO_COCKTAIL ) |
| 4731 | GAME( 1995, gdfs, 0, gdfs, gdfs, ssv_state, gdfs, ROT0, "Banpresto", "Mobil Suit Gundam Final Shooting (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) |
| 4729 | 4732 | |
| 4730 | | GAME( 1995, ultrax, 0, ultrax, ultrax, ssv_state, ultrax, ROT270, "Banpresto / Tsuburaya Productions", "Ultra X Weapons / Ultra Keibitai", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS ) // 95-01-30 13:27:15 on startup |
| 4731 | | GAME( 1995, ultraxg, ultrax, ultrax, ultrax, ssv_state, ultrax, ROT270, "Banpresto / Tsuburaya Productions", "Ultra X Weapons / Ultra Keibitai (GAMEST review build)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS ) // 95-02-16 15:30:24 on startup (newer, but could have pause functionality due to being a review build so left as clone) |
| 4733 | GAME( 1995, ultrax, 0, ultrax, ultrax, ssv_state, ultrax, ROT270, "Banpresto / Tsuburaya Productions", "Ultra X Weapons / Ultra Keibitai", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) // 95-01-30 13:27:15 on startup |
| 4734 | GAME( 1995, ultraxg, ultrax, ultrax, ultrax, ssv_state, ultrax, ROT270, "Banpresto / Tsuburaya Productions", "Ultra X Weapons / Ultra Keibitai (GAMEST review build)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) // 95-02-16 15:30:24 on startup (newer, but could have pause functionality due to being a review build so left as clone) |
| 4732 | 4735 | |
| 4733 | | GAME( 1996, janjans1, 0, janjans1, janjans1, ssv_state, janjans1, ROT0, "Visco", "Lovely Pop Mahjong JangJang Shimasho (Japan)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS ) |
| 4736 | GAME( 1996, janjans1, 0, janjans1, janjans1, ssv_state, janjans1, ROT0, "Visco", "Lovely Pop Mahjong JangJang Shimasho (Japan)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) |
| 4734 | 4737 | |
| 4735 | | GAME( 1996?, meosism, 0, meosism, meosism, ssv_state, meosism, ROT0, "Sammy", "Meosis Magic (Japan)", GAME_NO_COCKTAIL ) |
| 4738 | GAME( 1996?, meosism, 0, meosism, meosism, ssv_state, meosism, ROT0, "Sammy", "Meosis Magic (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) |
| 4736 | 4739 | |
| 4737 | | GAME( 1996, stmblade, 0, stmblade, stmblade, ssv_state, stmblade, ROT270, "Visco", "Storm Blade (US)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS ) |
| 4738 | | GAME( 1996, stmbladej, stmblade, stmblade, stmblade, ssv_state, stmblade, ROT270, "Visco", "Storm Blade (Japan)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS ) |
| 4740 | GAME( 1996, stmblade, 0, stmblade, stmblade, ssv_state, stmblade, ROT270, "Visco", "Storm Blade (US)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) |
| 4741 | GAME( 1996, stmbladej, stmblade, stmblade, stmblade, ssv_state, stmblade, ROT270, "Visco", "Storm Blade (Japan)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) |
| 4739 | 4742 | |
| 4740 | | GAME( 1997, hypreac2, 0, hypreac2, hypreac2, ssv_state, hypreac2, ROT0, "Sammy", "Mahjong Hyper Reaction 2 (Japan)", GAME_NO_COCKTAIL ) |
| 4743 | GAME( 1997, hypreac2, 0, hypreac2, hypreac2, ssv_state, hypreac2, ROT0, "Sammy", "Mahjong Hyper Reaction 2 (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) |
| 4741 | 4744 | |
| 4742 | | GAME( 1997, jsk, 0, jsk, jsk, ssv_state, jsk, ROT0, "Visco", "Joryuu Syougi Kyoushitsu (Japan)", GAME_NO_COCKTAIL ) |
| 4745 | GAME( 1997, jsk, 0, jsk, jsk, ssv_state, jsk, ROT0, "Visco", "Joryuu Syougi Kyoushitsu (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) |
| 4743 | 4746 | |
| 4744 | | GAME( 1997, koikois2, 0, janjans1, koikois2, ssv_state, janjans1, ROT0, "Visco", "Koi Koi Shimasho 2 - Super Real Hanafuda (Japan)", GAME_NO_COCKTAIL ) |
| 4747 | GAME( 1997, koikois2, 0, janjans1, koikois2, ssv_state, janjans1, ROT0, "Visco", "Koi Koi Shimasho 2 - Super Real Hanafuda (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) |
| 4745 | 4748 | |
| 4746 | | GAME( 1997, mslider, 0, mslider, mslider, ssv_state, mslider, ROT0, "Visco / Datt Japan", "Monster Slider (Japan)", GAME_NO_COCKTAIL ) |
| 4749 | GAME( 1997, mslider, 0, mslider, mslider, ssv_state, mslider, ROT0, "Visco / Datt Japan", "Monster Slider (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) |
| 4747 | 4750 | |
| 4748 | | GAME( 1997, srmp7, 0, srmp7, srmp7, ssv_state, srmp7, ROT0, "Seta", "Super Real Mahjong P7 (Japan)", GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND ) |
| 4751 | GAME( 1997, srmp7, 0, srmp7, srmp7, ssv_state, srmp7, ROT0, "Seta", "Super Real Mahjong P7 (Japan)", GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) |
| 4749 | 4752 | |
| 4750 | | GAME( 1998, ryorioh, 0, ryorioh, ryorioh, ssv_state, ryorioh, ROT0, "Visco", "Gourmet Battle Quiz Ryohrioh CooKing (Japan)", GAME_NO_COCKTAIL ) |
| 4753 | GAME( 1998, ryorioh, 0, ryorioh, ryorioh, ssv_state, ryorioh, ROT0, "Visco", "Gourmet Battle Quiz Ryohrioh CooKing (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) |
| 4751 | 4754 | |
| 4752 | | GAME( 1998, sxyreact, 0, sxyreact, sxyreact, ssv_state, sxyreact, ROT0, "Sammy", "Pachinko Sexy Reaction (Japan)", GAME_NO_COCKTAIL ) |
| 4755 | GAME( 1998, sxyreact, 0, sxyreact, sxyreact, ssv_state, sxyreact, ROT0, "Sammy", "Pachinko Sexy Reaction (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) |
| 4753 | 4756 | |
| 4754 | | GAME( 1999, sxyreac2, 0, sxyreac2, sxyreact, ssv_state, sxyreac2, ROT0, "Sammy", "Pachinko Sexy Reaction 2 (Japan)", GAME_NO_COCKTAIL ) |
| 4757 | GAME( 1999, sxyreac2, 0, sxyreac2, sxyreact, ssv_state, sxyreac2, ROT0, "Sammy", "Pachinko Sexy Reaction 2 (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) |
| 4755 | 4758 | |
| 4756 | | GAME( 1999, cairblad, 0, cairblad, cairblad, ssv_state, cairblad, ROT270, "Sammy", "Change Air Blade (Japan)", GAME_NO_COCKTAIL ) |
| 4759 | GAME( 1999, cairblad, 0, cairblad, cairblad, ssv_state, cairblad, ROT270, "Sammy", "Change Air Blade (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) |
| 4757 | 4760 | |
| 4758 | | GAME( 2000, janjans2, 0, janjans1, janjans2, ssv_state, janjans1, ROT0, "Visco", "Lovely Pop Mahjong JangJang Shimasho 2 (Japan)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS ) |
| 4761 | GAME( 2000, janjans2, 0, janjans1, janjans2, ssv_state, janjans1, ROT0, "Visco", "Lovely Pop Mahjong JangJang Shimasho 2 (Japan)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) |
| 4759 | 4762 | |
| 4760 | | GAME( 2000, vasara, 0, vasara, vasara, ssv_state, vasara, ROT270, "Visco", "Vasara", GAME_NO_COCKTAIL ) |
| 4763 | GAME( 2000, vasara, 0, vasara, vasara, ssv_state, vasara, ROT270, "Visco", "Vasara", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) |
| 4761 | 4764 | |
| 4762 | | GAME( 2001, vasara2, 0, vasara, vasara2, ssv_state, vasara, ROT270, "Visco", "Vasara 2 (set 1)", GAME_NO_COCKTAIL ) |
| 4763 | | GAME( 2001, vasara2a, vasara2, vasara, vasara2, ssv_state, vasara, ROT270, "Visco", "Vasara 2 (set 2)", GAME_NO_COCKTAIL ) |
| 4765 | GAME( 2001, vasara2, 0, vasara, vasara2, ssv_state, vasara, ROT270, "Visco", "Vasara 2 (set 1)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) |
| 4766 | GAME( 2001, vasara2a, vasara2, vasara, vasara2, ssv_state, vasara, ROT270, "Visco", "Vasara 2 (set 2)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) |