trunk/src/mame/drivers/jack.c
| r18126 | r18127 | |
| 34 | 34 | |
| 35 | 35 | The 2 ay-8910 read ports are responsible for reading the sound commands. |
| 36 | 36 | |
| 37 | | Notes: |
| 38 | | * "Jack to Mame no Ki (Jack the Giant Killer)" and |
| 39 | | "Pro Billiard (Tri Pool)" is developed by Noma Trading |
| 40 | | (distributed via SNK). Hara Industries probably a bootlegger. |
| 41 | 37 | |
| 38 | Notes: |
| 39 | - "Jack to Mame no Ki (Jack the Giant Killer)" and |
| 40 | "Pro Billiard (Tri Pool)" is developed by Noma Trading |
| 41 | (distributed via SNK). Hara Industries probably a bootlegger. |
| 42 | |
| 43 | Todo: |
| 44 | - fix striv hanging notes |
| 45 | - fix tripool palette problems (see attract) |
| 46 | The tripool driver used to have a hack making the vblank interrupt go off |
| 47 | twice per frame, this made the game run way too fast, but no palette bug. |
| 48 | - what's the correct irq0 frequency of joinem/unclepoo/loverboy? |
| 49 | |
| 42 | 50 | ***************************************************************************/ |
| 43 | 51 | |
| 44 | 52 | #include "emu.h" |
| r18126 | r18127 | |
| 47 | 55 | #include "includes/jack.h" |
| 48 | 56 | |
| 49 | 57 | |
| 58 | |
| 50 | 59 | /************************************* |
| 51 | 60 | * |
| 52 | 61 | * Memory handlers |
| r18126 | r18127 | |
| 60 | 69 | return m_audiocpu->total_cycles() / m_timer_rate; |
| 61 | 70 | } |
| 62 | 71 | |
| 63 | | |
| 64 | 72 | WRITE8_MEMBER(jack_state::jack_sh_command_w) |
| 65 | 73 | { |
| 66 | 74 | soundlatch_byte_w(space, 0, data); |
| r18126 | r18127 | |
| 68 | 76 | } |
| 69 | 77 | |
| 70 | 78 | |
| 79 | /***************************************************************/ |
| 71 | 80 | |
| 72 | | |
| 73 | | WRITE8_MEMBER(jack_state::joinem_control_w) |
| 74 | | { |
| 75 | | // d0: related to test mode? |
| 76 | | // d1: unused? |
| 77 | | // d2: ? |
| 78 | | |
| 79 | | // d3-d4: palette bank |
| 80 | | int palette_bank = data & (machine().total_colors() - 1) >> 3 & 0x18; |
| 81 | | if (m_joinem_palette_bank != palette_bank) |
| 82 | | { |
| 83 | | m_joinem_palette_bank = palette_bank; |
| 84 | | m_bg_tilemap->mark_all_dirty(); |
| 85 | | } |
| 86 | | |
| 87 | | // d5: assume nmi enable |
| 88 | | m_joinem_nmi_enable = data & 0x20; |
| 89 | | |
| 90 | | // d6: unused? |
| 91 | | |
| 92 | | // d7: flip screen |
| 93 | | flip_screen_set(data & 0x80); |
| 94 | | } |
| 95 | | |
| 96 | | |
| 97 | | /* |
| 98 | | Super Triv questions read handler |
| 99 | | */ |
| 100 | | |
| 101 | 81 | READ8_MEMBER(jack_state::striv_question_r) |
| 102 | 82 | { |
| 103 | 83 | // Set-up the remap table for every 16 bytes |
| r18126 | r18127 | |
| 131 | 111 | return 0; // the value read from the configuration reads is discarded |
| 132 | 112 | } |
| 133 | 113 | |
| 114 | |
| 115 | WRITE8_MEMBER(jack_state::joinem_control_w) |
| 116 | { |
| 117 | // d0: related to test mode? |
| 118 | // d1: unused? |
| 119 | // d2: ? |
| 120 | |
| 121 | // d3-d4: palette bank |
| 122 | int palette_bank = data & (machine().total_colors() - 1) >> 3 & 0x18; |
| 123 | if (m_joinem_palette_bank != palette_bank) |
| 124 | { |
| 125 | m_joinem_palette_bank = palette_bank; |
| 126 | m_bg_tilemap->mark_all_dirty(); |
| 127 | } |
| 128 | |
| 129 | // d5: assume nmi enable |
| 130 | m_joinem_nmi_enable = data & 0x20; |
| 131 | |
| 132 | // d6: unused? |
| 133 | |
| 134 | // d7: flip screen |
| 135 | flip_screen_set(data & 0x80); |
| 136 | } |
| 137 | |
| 138 | |
| 139 | |
| 134 | 140 | /************************************* |
| 135 | 141 | * |
| 136 | 142 | * Address maps |
| r18126 | r18127 | |
| 155 | 161 | AM_RANGE(0xc000, 0xffff) AM_ROM |
| 156 | 162 | ADDRESS_MAP_END |
| 157 | 163 | |
| 164 | static ADDRESS_MAP_START( striv_map, AS_PROGRAM, 8, jack_state ) |
| 165 | AM_RANGE(0xb000, 0xb0ff) AM_WRITENOP |
| 166 | AM_RANGE(0xc000, 0xcfff) AM_READ(striv_question_r) |
| 167 | AM_IMPORT_FROM( jack_map ) |
| 168 | ADDRESS_MAP_END |
| 169 | |
| 170 | |
| 158 | 171 | static ADDRESS_MAP_START( joinem_map, AS_PROGRAM, 8, jack_state ) |
| 159 | 172 | AM_RANGE(0x0000, 0x7fff) AM_ROM |
| 160 | 173 | AM_RANGE(0x8000, 0x8fff) AM_RAM |
| r18126 | r18127 | |
| 191 | 204 | ADDRESS_MAP_END |
| 192 | 205 | |
| 193 | 206 | |
| 207 | |
| 194 | 208 | /************************************* |
| 195 | 209 | * |
| 196 | 210 | * Input ports |
| r18126 | r18127 | |
| 230 | 244 | PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x00, "SW2:!3" ) |
| 231 | 245 | PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x00, "SW2:!4" ) |
| 232 | 246 | PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x00, "SW2:!5" ) |
| 233 | | PORT_SERVICE( 0x20, IP_ACTIVE_HIGH ) PORT_DIPLOCATION("SW2:!6") |
| 247 | PORT_SERVICE( 0x20, IP_ACTIVE_HIGH ) PORT_DIPLOCATION("SW2:!6") |
| 234 | 248 | PORT_DIPNAME( 0x40, 0x00, "Invulnerability (Cheat)") PORT_DIPLOCATION("SW2:!7") |
| 235 | 249 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 236 | 250 | PORT_DIPSETTING( 0x40, DEF_STR( On ) ) |
| r18126 | r18127 | |
| 247 | 261 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 248 | 262 | |
| 249 | 263 | PORT_START("IN1") |
| 250 | | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY |
| 251 | | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY |
| 264 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY |
| 265 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY |
| 252 | 266 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY |
| 253 | | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY |
| 254 | | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL |
| 255 | | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL |
| 267 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY |
| 268 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL |
| 269 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL |
| 256 | 270 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL |
| 257 | | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL |
| 271 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL |
| 258 | 272 | |
| 259 | 273 | PORT_START("IN2") |
| 260 | 274 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) |
| r18126 | r18127 | |
| 267 | 281 | PORT_BIT( 0xfc, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 268 | 282 | INPUT_PORTS_END |
| 269 | 283 | |
| 284 | |
| 270 | 285 | /* Same as 'jack', but different coinage */ |
| 271 | 286 | static INPUT_PORTS_START( jack2 ) |
| 272 | 287 | PORT_INCLUDE( jack ) |
| r18126 | r18127 | |
| 284 | 299 | PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) |
| 285 | 300 | INPUT_PORTS_END |
| 286 | 301 | |
| 302 | |
| 287 | 303 | /* Same as 'jack', but another different coinage */ |
| 288 | 304 | static INPUT_PORTS_START( jack3 ) |
| 289 | 305 | PORT_INCLUDE( jack ) |
| r18126 | r18127 | |
| 301 | 317 | PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) |
| 302 | 318 | INPUT_PORTS_END |
| 303 | 319 | |
| 320 | |
| 304 | 321 | /* Same as 'jack', but different "Bullets per Bean Collected" and "Difficulty" Dip Switches */ |
| 305 | 322 | static INPUT_PORTS_START( treahunt ) |
| 306 | 323 | PORT_INCLUDE( jack ) |
| r18126 | r18127 | |
| 314 | 331 | PORT_DIPSETTING( 0x80, "20" ) |
| 315 | 332 | INPUT_PORTS_END |
| 316 | 333 | |
| 334 | |
| 317 | 335 | static INPUT_PORTS_START( zzyzzyxx ) |
| 318 | 336 | PORT_START("DSW1") |
| 319 | 337 | PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:!1,!2") |
| r18126 | r18127 | |
| 333 | 351 | PORT_DIPNAME( 0x20, 0x20, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:!6") |
| 334 | 352 | PORT_DIPSETTING( 0x20, DEF_STR( Upright ) ) |
| 335 | 353 | PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) |
| 336 | | PORT_SERVICE( 0x40, IP_ACTIVE_HIGH ) PORT_DIPLOCATION("SW1:!7") |
| 354 | PORT_SERVICE( 0x40, IP_ACTIVE_HIGH ) PORT_DIPLOCATION("SW1:!7") |
| 337 | 355 | PORT_DIPNAME( 0x80, 0x00, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW1:!8") |
| 338 | 356 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 339 | 357 | PORT_DIPSETTING( 0x80, DEF_STR( On ) ) |
| r18126 | r18127 | |
| 347 | 365 | PORT_DIPNAME( 0x04, 0x04, "2nd Bonus Given" ) PORT_DIPLOCATION("SW2:!3") |
| 348 | 366 | PORT_DIPSETTING( 0x00, DEF_STR( No ) ) |
| 349 | 367 | PORT_DIPSETTING( 0x04, DEF_STR( Yes ) ) |
| 350 | | PORT_DIPNAME( 0x08, 0x00, "Starting Laps" ) PORT_DIPLOCATION("SW2:!4") |
| 368 | PORT_DIPNAME( 0x08, 0x00, "Starting Laps" ) PORT_DIPLOCATION("SW2:!4") |
| 351 | 369 | PORT_DIPSETTING( 0x00, "2" ) |
| 352 | 370 | PORT_DIPSETTING( 0x08, "3" ) |
| 353 | 371 | PORT_DIPNAME( 0x10, 0x00, "Difficulty of Pleasing Lola" ) PORT_DIPLOCATION("SW2:!5") |
| r18126 | r18127 | |
| 356 | 374 | PORT_DIPNAME( 0x20, 0x00, "Show Intermissions" ) PORT_DIPLOCATION("SW2:!6") |
| 357 | 375 | PORT_DIPSETTING( 0x00, DEF_STR( No ) ) |
| 358 | 376 | PORT_DIPSETTING( 0x20, DEF_STR( Yes ) ) |
| 359 | | PORT_DIPNAME( 0xc0, 0x40, "Extra Lives" ) PORT_DIPLOCATION("SW2:!7,!8") |
| 377 | PORT_DIPNAME( 0xc0, 0x40, "Extra Lives" ) PORT_DIPLOCATION("SW2:!7,!8") |
| 360 | 378 | PORT_DIPSETTING( 0x00, "3 under 4000 pts" ) |
| 361 | 379 | PORT_DIPSETTING( 0x80, "5 under 4000 pts" ) |
| 362 | 380 | PORT_DIPSETTING( 0x40, DEF_STR( None ) ) // 3 under 0 pts |
| r18126 | r18127 | |
| 370 | 388 | PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 371 | 389 | |
| 372 | 390 | PORT_START("IN1") |
| 373 | | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_2WAY |
| 391 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_2WAY |
| 374 | 392 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_2WAY |
| 375 | 393 | PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 376 | | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_2WAY PORT_COCKTAIL |
| 394 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_2WAY PORT_COCKTAIL |
| 377 | 395 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_2WAY PORT_COCKTAIL |
| 378 | 396 | PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 379 | 397 | |
| r18126 | r18127 | |
| 386 | 404 | PORT_BIT( 0xfe, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 387 | 405 | INPUT_PORTS_END |
| 388 | 406 | |
| 407 | |
| 389 | 408 | static INPUT_PORTS_START( freeze ) |
| 390 | 409 | PORT_START("DSW1") |
| 391 | 410 | PORT_DIPNAME( 0x01, 0x00, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:!1") |
| 392 | 411 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 393 | 412 | PORT_DIPSETTING( 0x01, DEF_STR( On ) ) |
| 394 | | PORT_SERVICE( 0x02, IP_ACTIVE_HIGH ) PORT_DIPLOCATION("SW1:!2") |
| 413 | PORT_SERVICE( 0x02, IP_ACTIVE_HIGH ) PORT_DIPLOCATION("SW1:!2") |
| 395 | 414 | PORT_DIPNAME( 0x04, 0x00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:!3") |
| 396 | 415 | PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) |
| 397 | 416 | PORT_DIPSETTING( 0x04, DEF_STR( Hard ) ) |
| r18126 | r18127 | |
| 425 | 444 | |
| 426 | 445 | PORT_START("IN1") |
| 427 | 446 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY |
| 428 | | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY |
| 447 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY |
| 429 | 448 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) |
| 430 | 449 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) |
| 431 | 450 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) |
| r18126 | r18127 | |
| 454 | 473 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) |
| 455 | 474 | INPUT_PORTS_END |
| 456 | 475 | |
| 476 | |
| 457 | 477 | static INPUT_PORTS_START( sucasino ) |
| 458 | 478 | PORT_START("DSW1") |
| 459 | 479 | PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:!1,!2") |
| r18126 | r18127 | |
| 485 | 505 | PORT_START("IN1") |
| 486 | 506 | PORT_BIT( 0x03, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 487 | 507 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY |
| 488 | | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY |
| 508 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY |
| 489 | 509 | PORT_BIT( 0x30, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 490 | 510 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL |
| 491 | | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL |
| 511 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL |
| 492 | 512 | |
| 493 | 513 | PORT_START("IN2") |
| 494 | 514 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) |
| r18126 | r18127 | |
| 499 | 519 | PORT_BIT( 0xfe, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 500 | 520 | INPUT_PORTS_END |
| 501 | 521 | |
| 522 | |
| 502 | 523 | static INPUT_PORTS_START( tripool ) |
| 503 | 524 | PORT_START("DSW1") |
| 504 | 525 | PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:!1,!2") |
| r18126 | r18127 | |
| 537 | 558 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 538 | 559 | |
| 539 | 560 | PORT_START("IN1") |
| 540 | | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY |
| 541 | | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY |
| 561 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY |
| 562 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY |
| 542 | 563 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY |
| 543 | | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY |
| 544 | | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL |
| 545 | | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL |
| 564 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY |
| 565 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL |
| 566 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL |
| 546 | 567 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL |
| 547 | | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL |
| 568 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL |
| 548 | 569 | |
| 549 | 570 | PORT_START("IN2") |
| 550 | 571 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) |
| r18126 | r18127 | |
| 557 | 578 | PORT_BIT( 0xfc, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 558 | 579 | INPUT_PORTS_END |
| 559 | 580 | |
| 581 | |
| 582 | static INPUT_PORTS_START( striv ) |
| 583 | PORT_START("DSW1") |
| 584 | PORT_DIPNAME( 0x02, 0x00, "Monitor" ) PORT_DIPLOCATION("SW1:!2") |
| 585 | PORT_DIPSETTING( 0x02, "Horizontal" ) |
| 586 | PORT_DIPSETTING( 0x00, "Vertical" ) |
| 587 | PORT_DIPNAME( 0x05, 0x05, "Gaming Option Number" ) PORT_DIPLOCATION("SW1:!1,!3") |
| 588 | PORT_DIPSETTING( 0x01, "2" ) PORT_CONDITION("DSW1", 0x20, EQUALS, 0x20) |
| 589 | PORT_DIPSETTING( 0x05, "3" ) PORT_CONDITION("DSW1", 0x20, EQUALS, 0x20) |
| 590 | PORT_DIPSETTING( 0x00, "4" ) PORT_CONDITION("DSW1", 0x20, EQUALS, 0x20) |
| 591 | PORT_DIPSETTING( 0x04, "5" ) PORT_CONDITION("DSW1", 0x20, EQUALS, 0x20) |
| 592 | PORT_DIPSETTING( 0x01, "4" ) PORT_CONDITION("DSW1", 0x20, NOTEQUALS, 0x20) |
| 593 | PORT_DIPSETTING( 0x05, "5" ) PORT_CONDITION("DSW1", 0x20, NOTEQUALS, 0x20) |
| 594 | PORT_DIPSETTING( 0x00, "6" ) PORT_CONDITION("DSW1", 0x20, NOTEQUALS, 0x20) |
| 595 | PORT_DIPSETTING( 0x04, "7" ) PORT_CONDITION("DSW1", 0x20, NOTEQUALS, 0x20) |
| 596 | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:!4") |
| 597 | PORT_DIPSETTING( 0x08, DEF_STR( Upright ) ) |
| 598 | PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) |
| 599 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:!5") |
| 600 | PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) |
| 601 | PORT_DIPSETTING( 0x10, DEF_STR( 1C_1C ) ) |
| 602 | PORT_DIPNAME( 0x20, 0x20, "Gaming Option" ) PORT_DIPLOCATION("SW1:!6") |
| 603 | PORT_DIPSETTING( 0x20, "Number of Wrong Answer" ) |
| 604 | PORT_DIPSETTING( 0x00, "Number of Questions" ) |
| 605 | PORT_DIPNAME( 0x40, 0x40, "Show Correct Answer" ) PORT_DIPLOCATION("SW1:!7") |
| 606 | PORT_DIPSETTING( 0x00, DEF_STR( No ) ) |
| 607 | PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) |
| 608 | PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) PORT_DIPLOCATION("SW1:!8") |
| 609 | |
| 610 | PORT_START("DSW2") |
| 611 | PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x00, "SW2:!1" ) |
| 612 | PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x00, "SW2:!2" ) |
| 613 | PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x00, "SW2:!3" ) |
| 614 | PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x00, "SW2:!4" ) |
| 615 | PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x00, "SW2:!5" ) |
| 616 | PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x00, "SW2:!6" ) |
| 617 | PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x00, "SW2:!7" ) |
| 618 | PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x00, "SW2:!8" ) |
| 619 | // PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) //? |
| 620 | |
| 621 | PORT_START("IN0") |
| 622 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 623 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) |
| 624 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) |
| 625 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON3 ) |
| 626 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON4 ) |
| 627 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 628 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 629 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 630 | |
| 631 | PORT_START("IN1") |
| 632 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 633 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) |
| 634 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) |
| 635 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2) |
| 636 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_PLAYER(2) |
| 637 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 638 | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 639 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 640 | |
| 641 | PORT_START("IN2") |
| 642 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(2) |
| 643 | PORT_BIT( 0xfd, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 644 | |
| 645 | PORT_START("IN3") |
| 646 | PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) //? |
| 647 | INPUT_PORTS_END |
| 648 | |
| 649 | |
| 560 | 650 | static INPUT_PORTS_START( joinem ) |
| 561 | 651 | PORT_START("DSW1") |
| 562 | 652 | PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:!1,!2") |
| r18126 | r18127 | |
| 586 | 676 | PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x00, "SW2:!5" ) |
| 587 | 677 | PORT_SERVICE_DIPLOC( 0x20, IP_ACTIVE_HIGH, "SW2:!6" ) |
| 588 | 678 | PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x00, "SW2:!7" ) |
| 589 | | PORT_DIPNAME( 0x80, 0x00, "Infinite Lives (Cheat)" ) PORT_DIPLOCATION("SW2:!8") |
| 679 | PORT_DIPNAME( 0x80, 0x00, "Infinite Lives (Cheat)" ) PORT_DIPLOCATION("SW2:!8") |
| 590 | 680 | PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) |
| 591 | 681 | PORT_DIPSETTING( 0x80, DEF_STR( On ) ) |
| 592 | 682 | |
| r18126 | r18127 | |
| 621 | 711 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // ? |
| 622 | 712 | INPUT_PORTS_END |
| 623 | 713 | |
| 714 | |
| 624 | 715 | static INPUT_PORTS_START( unclepoo ) |
| 625 | 716 | PORT_INCLUDE( joinem ) |
| 626 | 717 | |
| r18126 | r18127 | |
| 633 | 724 | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL |
| 634 | 725 | INPUT_PORTS_END |
| 635 | 726 | |
| 727 | |
| 636 | 728 | static INPUT_PORTS_START( loverboy ) |
| 637 | | PORT_START("DSW1") |
| 729 | PORT_INCLUDE( joinem ) |
| 730 | |
| 731 | PORT_MODIFY("DSW1") |
| 638 | 732 | PORT_DIPNAME( 0x0f, 0x00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:!1,!2,!3,!4") |
| 639 | 733 | PORT_DIPSETTING( 0x0c, DEF_STR( 4C_1C ) ) |
| 640 | 734 | PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) ) |
| r18126 | r18127 | |
| 653 | 747 | PORT_DIPSETTING( 0x02, DEF_STR( 1C_3C ) ) |
| 654 | 748 | PORT_DIPSETTING( 0x03, DEF_STR( 1C_4C ) ) |
| 655 | 749 | PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x00, "SW1:!5" ) |
| 656 | | PORT_DIPNAME( 0x20, 0x00, "Bonus" ) PORT_DIPLOCATION("SW1:!6") |
| 750 | PORT_DIPNAME( 0x20, 0x00, "Bonus" ) PORT_DIPLOCATION("SW1:!6") |
| 657 | 751 | PORT_DIPSETTING( 0x00, "20000" ) |
| 658 | 752 | PORT_DIPSETTING( 0x20, "30000" ) |
| 659 | 753 | PORT_DIPNAME( 0x40, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:!7") |
| r18126 | r18127 | |
| 663 | 757 | PORT_DIPSETTING( 0x80, DEF_STR( Upright ) ) |
| 664 | 758 | PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) |
| 665 | 759 | |
| 666 | | PORT_START("DSW2") |
| 760 | PORT_MODIFY("DSW2") |
| 667 | 761 | PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x00, "SW2:!1" ) |
| 668 | 762 | PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x00, "SW2:!2" ) |
| 669 | 763 | PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x00, "SW2:!3" ) |
| r18126 | r18127 | |
| 673 | 767 | PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x00, "SW2:!7" ) |
| 674 | 768 | PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x00, "SW2:!8" ) |
| 675 | 769 | |
| 676 | | PORT_START("IN0") |
| 677 | | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY |
| 678 | | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY |
| 679 | | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY |
| 680 | | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY |
| 770 | PORT_MODIFY("IN0") |
| 681 | 771 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) |
| 682 | | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) |
| 683 | | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) |
| 684 | | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) |
| 685 | 772 | |
| 686 | | PORT_START("IN1") |
| 687 | | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL |
| 688 | | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL |
| 689 | | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL |
| 690 | | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL |
| 773 | PORT_MODIFY("IN1") |
| 691 | 774 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL |
| 692 | | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) |
| 693 | | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN ) |
| 694 | | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) |
| 695 | | |
| 696 | | PORT_START("IN2") |
| 697 | | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) |
| 698 | | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) |
| 699 | | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) |
| 700 | | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START2 ) |
| 701 | | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) |
| 702 | | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) |
| 703 | | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SPECIAL ) // otherwise it doesn't boot because the code is buggy |
| 704 | | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) |
| 705 | 775 | INPUT_PORTS_END |
| 706 | 776 | |
| 707 | | static INPUT_PORTS_START( striv ) |
| 708 | | PORT_START("DSW1") |
| 709 | | PORT_DIPNAME( 0x02, 0x00, "Monitor" ) PORT_DIPLOCATION("SW1:!2") |
| 710 | | PORT_DIPSETTING( 0x02, "Horizontal" ) |
| 711 | | PORT_DIPSETTING( 0x00, "Vertical" ) |
| 712 | | PORT_DIPNAME( 0x05, 0x05, "Gaming Option Number" ) PORT_DIPLOCATION("SW1:!1,!3") |
| 713 | | PORT_DIPSETTING( 0x01, "2" ) PORT_CONDITION("DSW1", 0x20, EQUALS, 0x20) |
| 714 | | PORT_DIPSETTING( 0x05, "3" ) PORT_CONDITION("DSW1", 0x20, EQUALS, 0x20) |
| 715 | | PORT_DIPSETTING( 0x00, "4" ) PORT_CONDITION("DSW1", 0x20, EQUALS, 0x20) |
| 716 | | PORT_DIPSETTING( 0x04, "5" ) PORT_CONDITION("DSW1", 0x20, EQUALS, 0x20) |
| 717 | | PORT_DIPSETTING( 0x01, "4" ) PORT_CONDITION("DSW1", 0x20, NOTEQUALS, 0x20) |
| 718 | | PORT_DIPSETTING( 0x05, "5" ) PORT_CONDITION("DSW1", 0x20, NOTEQUALS, 0x20) |
| 719 | | PORT_DIPSETTING( 0x00, "6" ) PORT_CONDITION("DSW1", 0x20, NOTEQUALS, 0x20) |
| 720 | | PORT_DIPSETTING( 0x04, "7" ) PORT_CONDITION("DSW1", 0x20, NOTEQUALS, 0x20) |
| 721 | | PORT_DIPNAME( 0x08, 0x08, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:!4") |
| 722 | | PORT_DIPSETTING( 0x08, DEF_STR( Upright ) ) |
| 723 | | PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) |
| 724 | | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:!5") |
| 725 | | PORT_DIPSETTING( 0x00, DEF_STR( 2C_1C ) ) |
| 726 | | PORT_DIPSETTING( 0x10, DEF_STR( 1C_1C ) ) |
| 727 | | PORT_DIPNAME( 0x20, 0x20, "Gaming Option" ) PORT_DIPLOCATION("SW1:!6") |
| 728 | | PORT_DIPSETTING( 0x20, "Number of Wrong Answer" ) |
| 729 | | PORT_DIPSETTING( 0x00, "Number of Questions" ) |
| 730 | | PORT_DIPNAME( 0x40, 0x40, "Show Correct Answer" ) PORT_DIPLOCATION("SW1:!7") |
| 731 | | PORT_DIPSETTING( 0x00, DEF_STR( No ) ) |
| 732 | | PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) |
| 733 | | PORT_SERVICE( 0x80, IP_ACTIVE_LOW ) PORT_DIPLOCATION("SW1:!8") |
| 734 | 777 | |
| 735 | | PORT_START("DSW2") |
| 736 | | PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) //? |
| 737 | 778 | |
| 738 | | PORT_START("IN0") |
| 739 | | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 740 | | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) |
| 741 | | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) |
| 742 | | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON3 ) |
| 743 | | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON4 ) |
| 744 | | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 745 | | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 746 | | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 747 | | |
| 748 | | PORT_START("IN1") |
| 749 | | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 750 | | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) |
| 751 | | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) |
| 752 | | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2) |
| 753 | | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_PLAYER(2) |
| 754 | | PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 755 | | PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 756 | | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 757 | | |
| 758 | | PORT_START("IN2") |
| 759 | | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(2) |
| 760 | | PORT_BIT( 0xfd, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 761 | | |
| 762 | | PORT_START("IN3") |
| 763 | | PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) //? |
| 764 | | INPUT_PORTS_END |
| 765 | | |
| 766 | | |
| 767 | 779 | /************************************* |
| 768 | 780 | * |
| 769 | | * Graphics definitions |
| 781 | * Machine configs |
| 770 | 782 | * |
| 771 | 783 | *************************************/ |
| 772 | 784 | |
| 773 | 785 | static const gfx_layout charlayout = |
| 774 | 786 | { |
| 775 | | 8,8, /* 8*8 characters */ |
| 776 | | RGN_FRAC(1,2), /* 1024 characters */ |
| 777 | | 2, /* 2 bits per pixel */ |
| 778 | | { RGN_FRAC(0,2), RGN_FRAC(1,2) }, /* the two bitplanes are separated */ |
| 787 | 8,8, |
| 788 | RGN_FRAC(1,2), |
| 789 | 2, |
| 790 | { RGN_FRAC(0,2), RGN_FRAC(1,2) }, |
| 779 | 791 | { 0, 1, 2, 3, 4, 5, 6, 7 }, |
| 780 | 792 | { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, |
| 781 | | 8*8 /* every char takes 16 bytes */ |
| 793 | 8*8 |
| 782 | 794 | }; |
| 783 | 795 | |
| 784 | 796 | static GFXDECODE_START( jack ) |
| 785 | 797 | GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 8 ) |
| 786 | 798 | GFXDECODE_END |
| 787 | 799 | |
| 800 | |
| 788 | 801 | static const gfx_layout joinem_charlayout = |
| 789 | 802 | { |
| 790 | 803 | 8,8, |
| r18126 | r18127 | |
| 800 | 813 | GFXDECODE_ENTRY( "gfx1", 0, joinem_charlayout, 0, 32 ) |
| 801 | 814 | GFXDECODE_END |
| 802 | 815 | |
| 816 | |
| 803 | 817 | static const ay8910_interface ay8910_config = |
| 804 | 818 | { |
| 805 | 819 | AY8910_LEGACY_OUTPUT, |
| 806 | 820 | AY8910_DEFAULT_LOADS, |
| 807 | 821 | DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r), |
| 808 | | DEVCB_DRIVER_MEMBER(jack_state,timer_r) |
| 822 | DEVCB_DRIVER_MEMBER(jack_state, timer_r) |
| 809 | 823 | }; |
| 810 | 824 | |
| 811 | 825 | |
| 812 | | /************************************* |
| 813 | | * |
| 814 | | * Machine driver |
| 815 | | * |
| 816 | | *************************************/ |
| 826 | /***************************************************************/ |
| 817 | 827 | |
| 818 | 828 | void jack_state::machine_start() |
| 819 | 829 | { |
| 830 | } |
| 831 | |
| 832 | void jack_state::machine_reset() |
| 833 | { |
| 834 | } |
| 835 | |
| 836 | |
| 837 | MACHINE_START_MEMBER(jack_state,striv) |
| 838 | { |
| 820 | 839 | save_item(NAME(m_question_address)); |
| 821 | 840 | save_item(NAME(m_question_rom)); |
| 822 | 841 | save_item(NAME(m_remap_address)); |
| 823 | 842 | } |
| 824 | 843 | |
| 825 | | void jack_state::machine_reset() |
| 844 | MACHINE_RESET_MEMBER(jack_state,striv) |
| 826 | 845 | { |
| 827 | | joinem_control_w(m_maincpu->space(AS_PROGRAM), 0, 0, 0xff); |
| 828 | | int i; |
| 829 | | |
| 830 | 846 | m_question_address = 0; |
| 831 | 847 | m_question_rom = 0; |
| 832 | 848 | |
| 833 | | for (i = 0; i < 16; i++) |
| 849 | for (int i = 0; i < 16; i++) |
| 834 | 850 | m_remap_address[i] = 0; |
| 835 | 851 | } |
| 836 | 852 | |
| 853 | |
| 854 | MACHINE_START_MEMBER(jack_state,joinem) |
| 855 | { |
| 856 | save_item(NAME(m_joinem_nmi_enable)); |
| 857 | save_item(NAME(m_joinem_palette_bank)); |
| 858 | } |
| 859 | |
| 860 | MACHINE_RESET_MEMBER(jack_state,joinem) |
| 861 | { |
| 862 | joinem_control_w(m_maincpu->space(AS_PROGRAM), 0, 0, 0xff); |
| 863 | } |
| 864 | |
| 865 | |
| 866 | /***************************************************************/ |
| 867 | |
| 837 | 868 | static MACHINE_CONFIG_START( jack, jack_state ) |
| 838 | 869 | |
| 839 | 870 | /* basic machine hardware */ |
| 840 | | MCFG_CPU_ADD("maincpu", Z80, 18000000/6) /* 3 MHz */ |
| 871 | MCFG_CPU_ADD("maincpu", Z80, XTAL_18MHz/6) |
| 841 | 872 | MCFG_CPU_PROGRAM_MAP(jack_map) |
| 842 | 873 | MCFG_CPU_VBLANK_INT_DRIVER("screen", jack_state, irq0_line_hold) |
| 843 | 874 | |
| 844 | | MCFG_CPU_ADD("audiocpu", Z80,18000000/12) /* 1.5 MHz */ |
| 875 | MCFG_CPU_ADD("audiocpu", Z80, XTAL_18MHz/6) |
| 845 | 876 | MCFG_CPU_PROGRAM_MAP(sound_map) |
| 846 | 877 | MCFG_CPU_IO_MAP(sound_io_map) |
| 847 | 878 | |
| r18126 | r18127 | |
| 859 | 890 | /* sound hardware */ |
| 860 | 891 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| 861 | 892 | |
| 862 | | MCFG_SOUND_ADD("aysnd", AY8910, 18000000/12) |
| 893 | MCFG_SOUND_ADD("aysnd", AY8910, XTAL_18MHz/12) |
| 863 | 894 | MCFG_SOUND_CONFIG(ay8910_config) |
| 864 | 895 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) |
| 865 | 896 | MACHINE_CONFIG_END |
| 866 | 897 | |
| 867 | | static MACHINE_CONFIG_DERIVED( tripool, jack ) |
| 868 | 898 | |
| 899 | static MACHINE_CONFIG_DERIVED( striv, jack ) |
| 900 | |
| 869 | 901 | /* basic machine hardware */ |
| 870 | 902 | MCFG_CPU_MODIFY("maincpu") |
| 871 | | MCFG_CPU_PERIODIC_INT_DRIVER(jack_state, irq0_line_hold, 2*60) /* tripool needs 2 or the palette is broken */ |
| 903 | MCFG_CPU_PROGRAM_MAP(striv_map) |
| 904 | |
| 905 | MCFG_MACHINE_START_OVERRIDE(jack_state,striv) |
| 906 | MCFG_MACHINE_RESET_OVERRIDE(jack_state,striv) |
| 907 | |
| 908 | /* video hardware */ |
| 909 | MCFG_SCREEN_MODIFY("screen") |
| 910 | MCFG_SCREEN_UPDATE_DRIVER(jack_state, screen_update_striv) |
| 872 | 911 | MACHINE_CONFIG_END |
| 873 | 912 | |
| 913 | |
| 914 | /***************************************************************/ |
| 915 | |
| 874 | 916 | INTERRUPT_GEN_MEMBER(jack_state::joinem_vblank_irq) |
| 875 | 917 | { |
| 876 | 918 | if (m_joinem_nmi_enable) |
| r18126 | r18127 | |
| 883 | 925 | MCFG_CPU_MODIFY("maincpu") |
| 884 | 926 | MCFG_CPU_PROGRAM_MAP(joinem_map) |
| 885 | 927 | MCFG_CPU_VBLANK_INT_DRIVER("screen", jack_state, joinem_vblank_irq) |
| 886 | | MCFG_CPU_PERIODIC_INT_DRIVER(jack_state, irq0_line_hold, 2*60) |
| 928 | MCFG_CPU_PERIODIC_INT_DRIVER(jack_state, irq0_line_hold, 250) // ??? controls game speed |
| 887 | 929 | |
| 930 | MCFG_MACHINE_START_OVERRIDE(jack_state,joinem) |
| 931 | MCFG_MACHINE_RESET_OVERRIDE(jack_state,joinem) |
| 932 | |
| 888 | 933 | /* video hardware */ |
| 889 | 934 | MCFG_SCREEN_MODIFY("screen") |
| 890 | 935 | MCFG_SCREEN_UPDATE_DRIVER(jack_state, screen_update_joinem) |
| r18126 | r18127 | |
| 892 | 937 | MCFG_GFXDECODE(joinem) |
| 893 | 938 | MCFG_PALETTE_LENGTH(0x40) |
| 894 | 939 | |
| 895 | | MCFG_PALETTE_INIT_OVERRIDE(jack_state, joinem) |
| 896 | | MCFG_VIDEO_START_OVERRIDE(jack_state, joinem) |
| 940 | MCFG_PALETTE_INIT_OVERRIDE(jack_state,joinem) |
| 941 | MCFG_VIDEO_START_OVERRIDE(jack_state,joinem) |
| 897 | 942 | MACHINE_CONFIG_END |
| 898 | 943 | |
| 899 | 944 | |
| r18126 | r18127 | |
| 911 | 956 | MACHINE_CONFIG_END |
| 912 | 957 | |
| 913 | 958 | |
| 959 | |
| 914 | 960 | /************************************* |
| 915 | 961 | * |
| 916 | 962 | * ROM definition(s) |
| r18126 | r18127 | |
| 938 | 984 | ROM_LOAD( "jgk.j10", 0x3000, 0x1000, CRC(eab890b2) SHA1(a5b83dff6bc6fd51f80db136fad8075262720f01) ) |
| 939 | 985 | ROM_END |
| 940 | 986 | |
| 987 | |
| 941 | 988 | ROM_START( jack2 ) |
| 942 | 989 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 943 | 990 | ROM_LOAD( "jgk.j8", 0x0000, 0x1000, CRC(fe229e20) SHA1(191cfb7bb08d46cab713e23abd69f27db1685346) ) |
| r18126 | r18127 | |
| 959 | 1006 | ROM_LOAD( "jgk.j10", 0x3000, 0x1000, CRC(eab890b2) SHA1(a5b83dff6bc6fd51f80db136fad8075262720f01) ) |
| 960 | 1007 | ROM_END |
| 961 | 1008 | |
| 1009 | |
| 962 | 1010 | ROM_START( jack3 ) |
| 963 | 1011 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 964 | 1012 | ROM_LOAD( "jack8", 0x0000, 0x1000, CRC(632151d2) SHA1(080f29818d537474c821b9920427bda47f5a7254) ) |
| r18126 | r18127 | |
| 980 | 1028 | ROM_LOAD( "jgk.j10", 0x3000, 0x1000, CRC(eab890b2) SHA1(a5b83dff6bc6fd51f80db136fad8075262720f01) ) |
| 981 | 1029 | ROM_END |
| 982 | 1030 | |
| 1031 | |
| 983 | 1032 | ROM_START( treahunt ) |
| 984 | 1033 | ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code + 64k for decrypted opcodes */ |
| 985 | 1034 | ROM_LOAD( "thunt-1.f2", 0x0000, 0x1000, CRC(0b35858c) SHA1(b8f80c69fcbce71e1b85c8f39599f8bebfeb2585) ) |
| r18126 | r18127 | |
| 1001 | 1050 | ROM_LOAD( "thunt-11.a2", 0x3000, 0x1000, CRC(f9781143) SHA1(f168648a78240fdf02063d39f324838f4dfe9a56) ) |
| 1002 | 1051 | ROM_END |
| 1003 | 1052 | |
| 1053 | |
| 1004 | 1054 | ROM_START( zzyzzyxx ) |
| 1005 | 1055 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 1006 | 1056 | ROM_LOAD( "a.2f", 0x0000, 0x1000, CRC(a9102e34) SHA1(80d71df7d235980603f35aa3f474aaf58fb39946) ) |
| r18126 | r18127 | |
| 1023 | 1073 | ROM_LOAD( "l.1a", 0x3000, 0x1000, CRC(ab421a83) SHA1(1cc3e1bcf9e90ffbf7bfeeb0caa8a4f63b34146a) ) |
| 1024 | 1074 | ROM_END |
| 1025 | 1075 | |
| 1076 | |
| 1026 | 1077 | ROM_START( zzyzzyxx2 ) |
| 1027 | 1078 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 1028 | 1079 | ROM_LOAD( "a.2f", 0x0000, 0x1000, CRC(a9102e34) SHA1(80d71df7d235980603f35aa3f474aaf58fb39946) ) |
| r18126 | r18127 | |
| 1045 | 1096 | ROM_LOAD( "l.1a", 0x3000, 0x1000, CRC(ab421a83) SHA1(1cc3e1bcf9e90ffbf7bfeeb0caa8a4f63b34146a) ) |
| 1046 | 1097 | ROM_END |
| 1047 | 1098 | |
| 1099 | |
| 1048 | 1100 | ROM_START( brix ) |
| 1049 | 1101 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 1050 | 1102 | ROM_LOAD( "a", 0x0000, 0x1000, CRC(050e0d70) SHA1(f5e0ed0845443701233de194d9ce24ec35e03a27) ) |
| r18126 | r18127 | |
| 1067 | 1119 | ROM_LOAD( "l.1a", 0x3000, 0x1000, CRC(ab421a83) SHA1(1cc3e1bcf9e90ffbf7bfeeb0caa8a4f63b34146a) ) |
| 1068 | 1120 | ROM_END |
| 1069 | 1121 | |
| 1122 | |
| 1070 | 1123 | ROM_START( freeze ) |
| 1071 | 1124 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 1072 | 1125 | ROM_LOAD( "freeze.f2", 0x0000, 0x1000, CRC(0a431665) SHA1(57b7fc72c7e3b0d09b4a0676a4e7094657e2b742) ) |
| r18126 | r18127 | |
| 1088 | 1141 | ROM_LOAD( "freeze.2a", 0x3000, 0x1000, CRC(dd70ddd6) SHA1(d03cac0b4248da5d49ffac6ee57a3f8dd368731b) ) |
| 1089 | 1142 | ROM_END |
| 1090 | 1143 | |
| 1144 | |
| 1091 | 1145 | ROM_START( sucasino ) |
| 1092 | 1146 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 1093 | 1147 | ROM_LOAD( "1", 0x0000, 0x1000, CRC(e116e979) SHA1(99b0c783ace93e643738a1a924cafb690d2c1127) ) |
| r18126 | r18127 | |
| 1109 | 1163 | /* 3000-3fff empty */ |
| 1110 | 1164 | ROM_END |
| 1111 | 1165 | |
| 1166 | |
| 1112 | 1167 | ROM_START( tripool ) |
| 1113 | 1168 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 1114 | 1169 | ROM_LOAD( "tri73a.bin", 0x0000, 0x1000, CRC(96893aa7) SHA1(ea1dc5824d89c1bb131850625a65d018a9127179) ) |
| r18126 | r18127 | |
| 1120 | 1175 | ROM_LOAD( "tri13d.bin", 0xf000, 0x1000, CRC(ad268e9b) SHA1(5d8d9b1c57b332b5a28b01d6a4f4885239d80b00) ) |
| 1121 | 1176 | |
| 1122 | 1177 | ROM_REGION( 0x10000, "audiocpu", 0 ) |
| 1123 | | ROM_LOAD( "trisnd.bin", 0x0000, 0x1000, CRC(945c4b8b) SHA1(f574de1633e7dd71d29c0bcdbc6fa675d1a3f7d1) ) |
| 1178 | ROM_LOAD( "trisnd.bin", 0x0000, 0x1000, CRC(945c4b8b) SHA1(f574de1633e7dd71d29c0bcdbc6fa675d1a3f7d1) ) |
| 1124 | 1179 | |
| 1125 | 1180 | ROM_REGION( 0x4000, "gfx1", 0 ) |
| 1126 | 1181 | ROM_LOAD( "tri93a.bin", 0x2000, 0x1000, CRC(35213782) SHA1(05d5a67ffa3d26377c54777917d3ba51677ebd28) ) |
| 1127 | 1182 | ROM_LOAD( "tri105a.bin", 0x0000, 0x1000, CRC(366a753c) SHA1(30fa8d80e42287e3e8677aefd15beab384265728) ) |
| 1128 | 1183 | ROM_END |
| 1129 | 1184 | |
| 1185 | |
| 1130 | 1186 | ROM_START( tripoola ) |
| 1131 | 1187 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 1132 | 1188 | ROM_LOAD( "tri73a.bin", 0x0000, 0x1000, CRC(96893aa7) SHA1(ea1dc5824d89c1bb131850625a65d018a9127179) ) |
| r18126 | r18127 | |
| 1138 | 1194 | ROM_LOAD( "tp1ckt", 0xf000, 0x1000, CRC(72ec43a3) SHA1(a4f5b20872e41845340db627321e0dbcad4b964e) ) |
| 1139 | 1195 | |
| 1140 | 1196 | ROM_REGION( 0x10000, "audiocpu", 0 ) |
| 1141 | | ROM_LOAD( "trisnd.bin", 0x0000, 0x1000, CRC(945c4b8b) SHA1(f574de1633e7dd71d29c0bcdbc6fa675d1a3f7d1) ) |
| 1197 | ROM_LOAD( "trisnd.bin", 0x0000, 0x1000, CRC(945c4b8b) SHA1(f574de1633e7dd71d29c0bcdbc6fa675d1a3f7d1) ) |
| 1142 | 1198 | |
| 1143 | 1199 | ROM_REGION( 0x4000, "gfx1", 0 ) |
| 1144 | 1200 | ROM_LOAD( "tri93a.bin", 0x2000, 0x1000, CRC(35213782) SHA1(05d5a67ffa3d26377c54777917d3ba51677ebd28) ) |
| 1145 | 1201 | ROM_LOAD( "tri105a.bin", 0x0000, 0x1000, CRC(366a753c) SHA1(30fa8d80e42287e3e8677aefd15beab384265728) ) |
| 1146 | 1202 | ROM_END |
| 1147 | 1203 | |
| 1148 | | ROM_START( joinem ) |
| 1149 | | ROM_REGION( 0x10000, "maincpu", 0 ) /* main z80 cpu */ |
| 1150 | | ROM_LOAD( "join1.r0", 0x0000, 0x2000, CRC(b5b2e2cc) SHA1(e939478d19ac27807ba4180835c512b5fcb8d0c5) ) |
| 1151 | | ROM_LOAD( "join2.r2", 0x2000, 0x2000, CRC(bcf140e6) SHA1(3fb4fbb758518d8ae26abbe76f12678cf988bd0e) ) |
| 1152 | | ROM_LOAD( "join3.r4", 0x4000, 0x2000, CRC(fe04e4d4) SHA1(9b34cc5915dd78340d1cedb34f5d397d3b39ca14) ) |
| 1153 | 1204 | |
| 1154 | | ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound z80 cpu */ |
| 1155 | | ROM_LOAD( "join7.s0", 0x0000, 0x1000, CRC(bb8a7814) SHA1(cfb85408827b96a81401223256e23082b7e9598f) ) |
| 1156 | | |
| 1157 | | ROM_REGION( 0x3000, "gfx1", 0 ) /* gfx - 8x8x3bpp */ |
| 1158 | | ROM_LOAD( "join4.p3", 0x0000, 0x1000, CRC(4964c82c) SHA1(7a45399db20f9bbdb2de58243732e3951ffe358c) ) |
| 1159 | | ROM_LOAD( "join5.p2", 0x1000, 0x1000, CRC(ae78fa89) SHA1(8f43fd2ec037185a1b9bd9c61c49ad891c504d4d) ) |
| 1160 | | ROM_LOAD( "join6.p1", 0x2000, 0x1000, CRC(2b533261) SHA1(ce6c1fa833b34aeb401f430d212415c33beb2922) ) |
| 1161 | | |
| 1162 | | ROM_REGION( 0x100, "proms", 0 ) /* colours */ |
| 1163 | | ROM_LOAD_NIB_LOW( "l82s129.11n", 0x000, 0x100, CRC(7b724211) SHA1(7396c773e8d48dea856d9482d6c48de966616c83) ) |
| 1164 | | ROM_LOAD_NIB_HIGH( "h82s129.12n", 0x000, 0x100, CRC(2e81c5ff) SHA1(e103c8813af704d5de11fe705de5105ff3a691c3) ) |
| 1165 | | ROM_END |
| 1166 | | |
| 1167 | | |
| 1168 | | ROM_START( unclepoop ) |
| 1169 | | ROM_REGION( 0x10000, "maincpu", 0 ) /* main z80 cpu */ |
| 1170 | | ROM_LOAD( "01.f17", 0x00000, 0x2000, CRC(92fb238c) SHA1(e9476c5c1a0bf9e8c6c364ac022ed1d97ae66d2e) ) |
| 1171 | | ROM_LOAD( "02.f14", 0x02000, 0x2000, CRC(b99214ef) SHA1(c8e4af0efbc5ea543277b2764dc6f119aae477ca) ) |
| 1172 | | ROM_LOAD( "03.f11", 0x04000, 0x2000, CRC(a136af97) SHA1(cfa610bf357870053617fed8aef6bb30bd996422) ) |
| 1173 | | ROM_LOAD( "04.f09", 0x06000, 0x2000, CRC(c4bcd414) SHA1(df3125358530f5fb8d202bddcb0ef5e322fabb7b) ) |
| 1174 | | |
| 1175 | | ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound z80 cpu */ |
| 1176 | | ROM_LOAD( "08.c15", 0x00000, 0x1000, CRC(fd84106b) SHA1(891853d2b39850a981016108b74ca20337d2cdd8) ) |
| 1177 | | |
| 1178 | | ROM_REGION( 0x6000, "gfx1", 0 ) /* gfx - 8x8x3bpp */ |
| 1179 | | ROM_LOAD( "07.h04", 0x0000, 0x2000, CRC(e2f73e99) SHA1(61cb09ff424ba63b892b4822e7ed916af73412f1) ) |
| 1180 | | ROM_LOAD( "06.j04", 0x2000, 0x2000, CRC(94b5f676) SHA1(32c27854726636c4ce03bb6a83b32d04ed6c42af) ) |
| 1181 | | ROM_LOAD( "05.k04", 0x4000, 0x2000, CRC(64026934) SHA1(a5342335d02d34fa6ba2b29484ed71ecc96292f2) ) |
| 1182 | | |
| 1183 | | ROM_REGION( 0x200, "proms", 0 ) /* colours */ |
| 1184 | | ROM_LOAD_NIB_LOW( "diatec_l.bin", 0x000, 0x100, CRC(b04d466a) SHA1(1438abeae76ef807ba34bd6d3e4c44f707dbde6e) ) |
| 1185 | | ROM_LOAD_NIB_HIGH( "diatec_h.bin", 0x000, 0x100, CRC(938601b1) SHA1(8213284989bebb5f7375878181840de8079dc1f3) ) |
| 1186 | | ROM_END |
| 1187 | | |
| 1188 | | |
| 1189 | | ROM_START( loverboy ) |
| 1190 | | ROM_REGION( 0x10000, "maincpu", 0 ) /* main z80 cpu */ |
| 1191 | | ROM_LOAD( "lover.r0", 0x0000, 0x2000, CRC(ffec4e41) SHA1(65428ebcb3af47071fef70a35388e070a019f692) ) |
| 1192 | | ROM_LOAD( "lover.r2", 0x2000, 0x2000, CRC(04052262) SHA1(056a225c8625e53881753b0b0330f9b277d14a7d) ) |
| 1193 | | ROM_LOAD( "lover.r4", 0x4000, 0x2000, CRC(ce5f3b49) SHA1(cb55e1f7c3df59389ac14b7da4f584ae054abca3) ) |
| 1194 | | ROM_LOAD( "lover.r6", 0x6000, 0x1000, CRC(839d79b7) SHA1(ac1c0fbf23e7d1a53b47dae16170857c55e6ae48) ) |
| 1195 | | |
| 1196 | | ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound z80 cpu */ |
| 1197 | | ROM_LOAD( "lover.s0", 0x0000, 0x1000, CRC(ec38111c) SHA1(09efded9e905658bdbcde4ad4f0b4cb9585bdb33) ) |
| 1198 | | |
| 1199 | | ROM_REGION( 0x6000, "gfx1", 0 ) /* gfx - 8x8x3bpp */ |
| 1200 | | ROM_LOAD( "lover.p3", 0x0000, 0x2000, CRC(1a519c8f) SHA1(36f546deaf36e8cd3bd113d84fd5e5f6e98d5de5) ) |
| 1201 | | ROM_LOAD( "lover.p2", 0x2000, 0x2000, CRC(e465372f) SHA1(345b769ebc33f60daa9692b64e8ef43062552a33) ) |
| 1202 | | ROM_LOAD( "lover.p1", 0x4000, 0x2000, CRC(cda0d87e) SHA1(efff230e994e21705902f252e50ee40a20444c0f) ) |
| 1203 | | |
| 1204 | | ROM_REGION( 0x200, "proms", 0 ) |
| 1205 | | ROM_LOAD_NIB_LOW( "color.n11", 0x000, 0x200, CRC(cf4a16ae) SHA1(e17c5dfd73c5bc55c0a929cf65ee5b516c9776a5) ) |
| 1206 | | ROM_LOAD_NIB_HIGH( "color.n12", 0x000, 0x200, CRC(4b11ac21) SHA1(d9e7cecfb7237335288ab6f94bb35696d8291bdf) ) |
| 1207 | | ROM_END |
| 1208 | | |
| 1209 | | |
| 1210 | 1205 | /* |
| 1211 | 1206 | |
| 1212 | 1207 | Super Triv |
| r18126 | r18127 | |
| 1280 | 1275 | |PR1.F2 TBFD2.U8 TBFD1.U15 | |
| 1281 | 1276 | |-----------------------------| |
| 1282 | 1277 | |
| 1283 | | |
| 1284 | 1278 | */ |
| 1285 | 1279 | |
| 1286 | 1280 | ROM_START( striv ) |
| r18126 | r18127 | |
| 1321 | 1315 | ROM_END |
| 1322 | 1316 | |
| 1323 | 1317 | |
| 1318 | ROM_START( joinem ) |
| 1319 | ROM_REGION( 0x10000, "maincpu", 0 ) /* main z80 cpu */ |
| 1320 | ROM_LOAD( "join1.r0", 0x0000, 0x2000, CRC(b5b2e2cc) SHA1(e939478d19ac27807ba4180835c512b5fcb8d0c5) ) |
| 1321 | ROM_LOAD( "join2.r2", 0x2000, 0x2000, CRC(bcf140e6) SHA1(3fb4fbb758518d8ae26abbe76f12678cf988bd0e) ) |
| 1322 | ROM_LOAD( "join3.r4", 0x4000, 0x2000, CRC(fe04e4d4) SHA1(9b34cc5915dd78340d1cedb34f5d397d3b39ca14) ) |
| 1323 | |
| 1324 | ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound z80 cpu */ |
| 1325 | ROM_LOAD( "join7.s0", 0x0000, 0x1000, CRC(bb8a7814) SHA1(cfb85408827b96a81401223256e23082b7e9598f) ) |
| 1326 | |
| 1327 | ROM_REGION( 0x3000, "gfx1", 0 ) /* gfx - 8x8x3bpp */ |
| 1328 | ROM_LOAD( "join4.p3", 0x0000, 0x1000, CRC(4964c82c) SHA1(7a45399db20f9bbdb2de58243732e3951ffe358c) ) |
| 1329 | ROM_LOAD( "join5.p2", 0x1000, 0x1000, CRC(ae78fa89) SHA1(8f43fd2ec037185a1b9bd9c61c49ad891c504d4d) ) |
| 1330 | ROM_LOAD( "join6.p1", 0x2000, 0x1000, CRC(2b533261) SHA1(ce6c1fa833b34aeb401f430d212415c33beb2922) ) |
| 1331 | |
| 1332 | ROM_REGION( 0x100, "proms", 0 ) /* colours */ |
| 1333 | ROM_LOAD_NIB_LOW( "l82s129.11n", 0x000, 0x100, CRC(7b724211) SHA1(7396c773e8d48dea856d9482d6c48de966616c83) ) |
| 1334 | ROM_LOAD_NIB_HIGH( "h82s129.12n", 0x000, 0x100, CRC(2e81c5ff) SHA1(e103c8813af704d5de11fe705de5105ff3a691c3) ) |
| 1335 | ROM_END |
| 1336 | |
| 1337 | |
| 1338 | ROM_START( unclepoop ) |
| 1339 | ROM_REGION( 0x10000, "maincpu", 0 ) /* main z80 cpu */ |
| 1340 | ROM_LOAD( "01.f17", 0x0000, 0x2000, CRC(92fb238c) SHA1(e9476c5c1a0bf9e8c6c364ac022ed1d97ae66d2e) ) |
| 1341 | ROM_LOAD( "02.f14", 0x2000, 0x2000, CRC(b99214ef) SHA1(c8e4af0efbc5ea543277b2764dc6f119aae477ca) ) |
| 1342 | ROM_LOAD( "03.f11", 0x4000, 0x2000, CRC(a136af97) SHA1(cfa610bf357870053617fed8aef6bb30bd996422) ) |
| 1343 | ROM_LOAD( "04.f09", 0x6000, 0x2000, CRC(c4bcd414) SHA1(df3125358530f5fb8d202bddcb0ef5e322fabb7b) ) |
| 1344 | |
| 1345 | ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound z80 cpu */ |
| 1346 | ROM_LOAD( "08.c15", 0x0000, 0x1000, CRC(fd84106b) SHA1(891853d2b39850a981016108b74ca20337d2cdd8) ) |
| 1347 | |
| 1348 | ROM_REGION( 0x6000, "gfx1", 0 ) /* gfx - 8x8x3bpp */ |
| 1349 | ROM_LOAD( "07.h04", 0x0000, 0x2000, CRC(e2f73e99) SHA1(61cb09ff424ba63b892b4822e7ed916af73412f1) ) |
| 1350 | ROM_LOAD( "06.j04", 0x2000, 0x2000, CRC(94b5f676) SHA1(32c27854726636c4ce03bb6a83b32d04ed6c42af) ) |
| 1351 | ROM_LOAD( "05.k04", 0x4000, 0x2000, CRC(64026934) SHA1(a5342335d02d34fa6ba2b29484ed71ecc96292f2) ) |
| 1352 | |
| 1353 | ROM_REGION( 0x200, "proms", 0 ) /* colours */ |
| 1354 | ROM_LOAD_NIB_LOW( "diatec_l.bin", 0x000, 0x100, CRC(b04d466a) SHA1(1438abeae76ef807ba34bd6d3e4c44f707dbde6e) ) |
| 1355 | ROM_LOAD_NIB_HIGH( "diatec_h.bin", 0x000, 0x100, CRC(938601b1) SHA1(8213284989bebb5f7375878181840de8079dc1f3) ) |
| 1356 | ROM_END |
| 1357 | |
| 1358 | |
| 1359 | ROM_START( loverboy ) |
| 1360 | ROM_REGION( 0x10000, "maincpu", 0 ) /* main z80 cpu */ |
| 1361 | ROM_LOAD( "lover.r0", 0x0000, 0x2000, CRC(ffec4e41) SHA1(65428ebcb3af47071fef70a35388e070a019f692) ) |
| 1362 | ROM_LOAD( "lover.r2", 0x2000, 0x2000, CRC(04052262) SHA1(056a225c8625e53881753b0b0330f9b277d14a7d) ) |
| 1363 | ROM_LOAD( "lover.r4", 0x4000, 0x2000, CRC(ce5f3b49) SHA1(cb55e1f7c3df59389ac14b7da4f584ae054abca3) ) |
| 1364 | ROM_LOAD( "lover.r6", 0x6000, 0x1000, CRC(839d79b7) SHA1(ac1c0fbf23e7d1a53b47dae16170857c55e6ae48) ) |
| 1365 | |
| 1366 | ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound z80 cpu */ |
| 1367 | ROM_LOAD( "lover.s0", 0x0000, 0x1000, CRC(ec38111c) SHA1(09efded9e905658bdbcde4ad4f0b4cb9585bdb33) ) |
| 1368 | |
| 1369 | ROM_REGION( 0x6000, "gfx1", 0 ) /* gfx - 8x8x3bpp */ |
| 1370 | ROM_LOAD( "lover.p3", 0x0000, 0x2000, CRC(1a519c8f) SHA1(36f546deaf36e8cd3bd113d84fd5e5f6e98d5de5) ) |
| 1371 | ROM_LOAD( "lover.p2", 0x2000, 0x2000, CRC(e465372f) SHA1(345b769ebc33f60daa9692b64e8ef43062552a33) ) |
| 1372 | ROM_LOAD( "lover.p1", 0x4000, 0x2000, CRC(cda0d87e) SHA1(efff230e994e21705902f252e50ee40a20444c0f) ) |
| 1373 | |
| 1374 | ROM_REGION( 0x200, "proms", 0 ) |
| 1375 | ROM_LOAD_NIB_LOW( "color.n11", 0x000, 0x200, CRC(cf4a16ae) SHA1(e17c5dfd73c5bc55c0a929cf65ee5b516c9776a5) ) |
| 1376 | ROM_LOAD_NIB_HIGH( "color.n12", 0x000, 0x200, CRC(4b11ac21) SHA1(d9e7cecfb7237335288ab6f94bb35696d8291bdf) ) |
| 1377 | ROM_END |
| 1378 | |
| 1379 | |
| 1380 | |
| 1324 | 1381 | /************************************* |
| 1325 | 1382 | * |
| 1326 | 1383 | * Driver initialization |
| 1327 | 1384 | * |
| 1328 | 1385 | *************************************/ |
| 1329 | 1386 | |
| 1387 | DRIVER_INIT_MEMBER(jack_state,jack) |
| 1388 | { |
| 1389 | m_timer_rate = 256; |
| 1390 | } |
| 1391 | |
| 1392 | |
| 1393 | DRIVER_INIT_MEMBER(jack_state,zzyzzyxx) |
| 1394 | { |
| 1395 | m_timer_rate = 32; |
| 1396 | } |
| 1397 | |
| 1398 | |
| 1330 | 1399 | static void treahunt_decode( running_machine &machine ) |
| 1331 | 1400 | { |
| 1332 | 1401 | int A; |
| r18126 | r18127 | |
| 1372 | 1441 | } |
| 1373 | 1442 | } |
| 1374 | 1443 | |
| 1375 | | DRIVER_INIT_MEMBER(jack_state,jack) |
| 1376 | | { |
| 1377 | | m_timer_rate = 128; |
| 1378 | | } |
| 1379 | | |
| 1380 | 1444 | DRIVER_INIT_MEMBER(jack_state,treahunt) |
| 1381 | 1445 | { |
| 1382 | | m_timer_rate = 128; |
| 1446 | m_timer_rate = 256; |
| 1383 | 1447 | treahunt_decode(machine()); |
| 1384 | 1448 | } |
| 1385 | 1449 | |
| 1386 | | DRIVER_INIT_MEMBER(jack_state,zzyzzyxx) |
| 1387 | | { |
| 1388 | | m_timer_rate = 16; |
| 1389 | | } |
| 1390 | 1450 | |
| 1391 | 1451 | DRIVER_INIT_MEMBER(jack_state,loverboy) |
| 1392 | 1452 | { |
| r18126 | r18127 | |
| 1400 | 1460 | sends a custom irq (either ld hl,$019d or jp $019d). After the initial |
| 1401 | 1461 | code, the protection device is disabled or changes behaviour via |
| 1402 | 1462 | writes at 0xf000 and 0xf008. -AS |
| 1403 | | */ |
| 1463 | */ |
| 1404 | 1464 | UINT8 *ROM = memregion("maincpu")->base(); |
| 1405 | 1465 | ROM[0x13] = 0x01; |
| 1406 | 1466 | ROM[0x12] = 0x9d; |
| 1407 | 1467 | |
| 1408 | | m_timer_rate = 16; |
| 1468 | m_timer_rate = 32; |
| 1409 | 1469 | } |
| 1410 | 1470 | |
| 1411 | 1471 | |
| r18126 | r18127 | |
| 1437 | 1497 | } |
| 1438 | 1498 | } |
| 1439 | 1499 | |
| 1440 | | // Set-up the weirdest questions read ever done |
| 1441 | | machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0xc000, 0xcfff, read8_delegate(FUNC(jack_state::striv_question_r),this)); |
| 1500 | m_timer_rate = 256; |
| 1501 | } |
| 1442 | 1502 | |
| 1443 | | // Nop out unused sprites writes |
| 1444 | | machine().device("maincpu")->memory().space(AS_PROGRAM).nop_write(0xb000, 0xb0ff); |
| 1445 | 1503 | |
| 1446 | | m_timer_rate = 128; |
| 1447 | | } |
| 1448 | 1504 | |
| 1449 | 1505 | /************************************* |
| 1450 | 1506 | * |
| r18126 | r18127 | |
| 1452 | 1508 | * |
| 1453 | 1509 | *************************************/ |
| 1454 | 1510 | |
| 1455 | | GAME( 1982, jack, 0, jack, jack, jack_state, jack, ROT90, "Cinematronics", "Jack the Giantkiller (set 1)", GAME_SUPPORTS_SAVE ) |
| 1456 | | GAME( 1982, jack2, jack, jack, jack2, jack_state, jack, ROT90, "Cinematronics", "Jack the Giantkiller (set 2)", GAME_SUPPORTS_SAVE ) |
| 1457 | | GAME( 1982, jack3, jack, jack, jack3, jack_state, jack, ROT90, "Cinematronics", "Jack the Giantkiller (set 3)", GAME_SUPPORTS_SAVE ) |
| 1458 | | GAME( 1982, treahunt, jack, jack, treahunt, jack_state, treahunt, ROT90, "bootleg? (Hara Industries)", "Treasure Hunt (bootleg?)", GAME_SUPPORTS_SAVE ) |
| 1459 | | GAME( 1982, zzyzzyxx, 0, jack, zzyzzyxx, jack_state, zzyzzyxx, ROT90, "Cinematronics / Advanced Microcomputer Systems", "Zzyzzyxx (set 1)", GAME_SUPPORTS_SAVE ) |
| 1460 | | GAME( 1982, zzyzzyxx2,zzyzzyxx, jack, zzyzzyxx, jack_state, zzyzzyxx, ROT90, "Cinematronics / Advanced Microcomputer Systems", "Zzyzzyxx (set 2)", GAME_SUPPORTS_SAVE ) |
| 1461 | | GAME( 1982, brix, zzyzzyxx, jack, zzyzzyxx, jack_state, zzyzzyxx, ROT90, "Cinematronics / Advanced Microcomputer Systems", "Brix", GAME_SUPPORTS_SAVE ) |
| 1462 | | GAME( 1984, freeze, 0, jack, freeze, jack_state, jack, ROT90, "Cinematronics", "Freeze", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL ) |
| 1463 | | GAME( 1984, sucasino, 0, jack, sucasino, jack_state, jack, ROT90, "Data Amusement", "Super Casino", GAME_SUPPORTS_SAVE ) |
| 1464 | | GAME( 1981, tripool, 0, tripool, tripool, jack_state, jack, ROT90, "Noma (Casino Tech license)", "Tri-Pool (Casino Tech)", GAME_SUPPORTS_SAVE ) |
| 1465 | | GAME( 1981, tripoola, tripool, tripool, tripool, jack_state, jack, ROT90, "Noma (Costal Games license)", "Tri-Pool (Costal Games)", GAME_SUPPORTS_SAVE ) |
| 1466 | | GAME( 1983, joinem, 0, joinem, joinem, jack_state, zzyzzyxx, ROT90, "Global Corporation", "Joinem", GAME_SUPPORTS_SAVE ) |
| 1467 | | GAME( 1983, unclepoop, unclepoo, unclepoo, unclepoo, jack_state, zzyzzyxx, ROT90, "Diatec", "Uncle Poo (nincompoop version)", GAME_NOT_WORKING ) |
| 1468 | | GAME( 1983, loverboy, 0, joinem,loverboy, jack_state, loverboy, ROT90, "G.T Enterprise Inc", "Lover Boy", GAME_SUPPORTS_SAVE ) |
| 1469 | | GAME( 1985, striv, 0, jack, striv, jack_state, striv, ROT270, "Hara Industries", "Super Triv", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) |
| 1511 | GAME( 1982, jack, 0, jack, jack, jack_state, jack, ROT90, "Cinematronics", "Jack the Giantkiller (set 1)", GAME_SUPPORTS_SAVE ) |
| 1512 | GAME( 1982, jack2, jack, jack, jack2, jack_state, jack, ROT90, "Cinematronics", "Jack the Giantkiller (set 2)", GAME_SUPPORTS_SAVE ) |
| 1513 | GAME( 1982, jack3, jack, jack, jack3, jack_state, jack, ROT90, "Cinematronics", "Jack the Giantkiller (set 3)", GAME_SUPPORTS_SAVE ) |
| 1514 | GAME( 1982, treahunt, jack, jack, treahunt, jack_state, treahunt, ROT90, "bootleg? (Hara Industries)", "Treasure Hunt (bootleg?)", GAME_SUPPORTS_SAVE ) |
| 1515 | GAME( 1982, zzyzzyxx, 0, jack, zzyzzyxx, jack_state, zzyzzyxx, ROT90, "Cinematronics / Advanced Microcomputer Systems", "Zzyzzyxx (set 1)", GAME_SUPPORTS_SAVE ) |
| 1516 | GAME( 1982, zzyzzyxx2, zzyzzyxx, jack, zzyzzyxx, jack_state, zzyzzyxx, ROT90, "Cinematronics / Advanced Microcomputer Systems", "Zzyzzyxx (set 2)", GAME_SUPPORTS_SAVE ) |
| 1517 | GAME( 1982, brix, zzyzzyxx, jack, zzyzzyxx, jack_state, zzyzzyxx, ROT90, "Cinematronics / Advanced Microcomputer Systems", "Brix", GAME_SUPPORTS_SAVE ) |
| 1518 | GAME( 1984, freeze, 0, jack, freeze, jack_state, jack, ROT90, "Cinematronics", "Freeze", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL ) |
| 1519 | GAME( 1981, tripool, 0, jack, tripool, jack_state, jack, ROT90, "Noma (Casino Tech license)", "Tri-Pool (Casino Tech)", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE ) |
| 1520 | GAME( 1981, tripoola, tripool, jack, tripool, jack_state, jack, ROT90, "Noma (Costal Games license)", "Tri-Pool (Costal Games)", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE ) |
| 1521 | GAME( 1984, sucasino, 0, jack, sucasino, jack_state, jack, ROT90, "Data Amusement", "Super Casino", GAME_SUPPORTS_SAVE ) |
| 1522 | GAME( 1985, striv, 0, striv, striv, jack_state, striv, ROT270, "Nova du Canada", "Super Triv", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // Hara Industries PCB |
| 1523 | GAME( 1983, joinem, 0, joinem, joinem, jack_state, zzyzzyxx, ROT90, "Global Corporation", "Joinem", GAME_SUPPORTS_SAVE ) |
| 1524 | GAME( 1983, unclepoop, unclepoo, unclepoo, unclepoo, jack_state, zzyzzyxx, ROT90, "Diatec", "Uncle Poo (nincompoop version)", GAME_NOT_WORKING ) // based on Joinem? |
| 1525 | GAME( 1983, loverboy, 0, joinem, loverboy, jack_state, loverboy, ROT90, "G.T Enterprise Inc.", "Lover Boy", GAME_SUPPORTS_SAVE ) |