trunk/src/emu/cpu/ucom4/ucom4op.inc
| r243483 | r243484 | |
| 31 | 31 | m_stack[0] = m_pc; |
| 32 | 32 | } |
| 33 | 33 | |
| 34 | | UINT8 ucom4_cpu_device::input_r(int index) |
| 35 | | { |
| 36 | | index &= 0xf; |
| 37 | | UINT8 inp = 0xf; |
| 38 | | |
| 39 | | switch (index) |
| 40 | | { |
| 41 | | case NEC_UCOM4_PORTA: inp = m_read_a(index, 0xff); break; |
| 42 | | case NEC_UCOM4_PORTB: inp = m_read_b(index, 0xff); break; |
| 43 | | case NEC_UCOM4_PORTC: inp = m_read_c(index, 0xff); break; |
| 44 | | case NEC_UCOM4_PORTD: inp = m_read_d(index, 0xff); break; |
| 45 | | |
| 46 | | default: |
| 47 | | logerror("%s read from unknown port %c at $%03X\n", tag(), 'A' + index, m_pc); |
| 48 | | break; |
| 49 | | } |
| 50 | | |
| 51 | | return inp & 0xf; |
| 52 | | } |
| 53 | | |
| 54 | | void ucom4_cpu_device::output_w(int index, UINT8 data) |
| 55 | | { |
| 56 | | index &= 0xf; |
| 57 | | data &= 0xf; |
| 58 | | |
| 59 | | switch (index) |
| 60 | | { |
| 61 | | case NEC_UCOM4_PORTC: m_write_c(index, data, 0xff); break; |
| 62 | | case NEC_UCOM4_PORTD: m_write_d(index, data, 0xff); break; |
| 63 | | case NEC_UCOM4_PORTE: m_write_e(index, data, 0xff); break; |
| 64 | | case NEC_UCOM4_PORTF: m_write_f(index, data, 0xff); break; |
| 65 | | case NEC_UCOM4_PORTG: m_write_g(index, data, 0xff); break; |
| 66 | | case NEC_UCOM4_PORTH: m_write_h(index, data, 0xff); break; |
| 67 | | case NEC_UCOM4_PORTI: m_write_i(index, data & 7, 0xff); break; |
| 68 | | |
| 69 | | default: |
| 70 | | logerror("%s write to unknown port %c = $%X at $%03X\n", tag(), 'A' + index, data & 0xf, m_pc); |
| 71 | | break; |
| 72 | | } |
| 73 | | |
| 74 | | m_port_out[index] = data; |
| 75 | | } |
| 76 | | |
| 77 | 34 | void ucom4_cpu_device::op_illegal() |
| 78 | 35 | { |
| 79 | 36 | logerror("%s unknown opcode $%02X at $%03X\n", tag(), m_op, m_pc); |
| r243483 | r243484 | |
| 180 | 137 | void ucom4_cpu_device::op_adc() |
| 181 | 138 | { |
| 182 | 139 | // ADC: Add RAM and carry to ACC, store Carry F/F |
| 183 | | m_acc += ram_r() + m_carry_f; |
| 184 | | m_carry_f = m_acc >> 4 & 1; |
| 185 | | m_acc &= 0xf; |
| 140 | op_illegal(); |
| 186 | 141 | } |
| 187 | 142 | |
| 188 | 143 | void ucom4_cpu_device::op_ads() |
| 189 | 144 | { |
| 190 | 145 | // ADS: Add RAM and carry to ACC, store Carry F/F, skip next on carry |
| 191 | | op_adc(); |
| 192 | | m_skip = (m_carry_f != 0); |
| 146 | op_illegal(); |
| 193 | 147 | } |
| 194 | 148 | |
| 195 | 149 | void ucom4_cpu_device::op_daa() |
| r243483 | r243484 | |
| 286 | 240 | void ucom4_cpu_device::op_rmb() |
| 287 | 241 | { |
| 288 | 242 | // RMB B: Reset a single bit of RAM |
| 289 | | ram_w(ram_r() & ~m_bitmask); |
| 243 | ram_w(ram_r() & ~(1 << (m_op & 0x03))); |
| 290 | 244 | } |
| 291 | 245 | |
| 292 | 246 | void ucom4_cpu_device::op_smb() |
| 293 | 247 | { |
| 294 | 248 | // SMB B: Set a single bit of RAM |
| 295 | | ram_w(ram_r() | m_bitmask); |
| 249 | ram_w(ram_r() | (1 << (m_op & 0x03))); |
| 296 | 250 | } |
| 297 | 251 | |
| 298 | 252 | void ucom4_cpu_device::op_reb() |
| 299 | 253 | { |
| 300 | 254 | // REB B: Reset a single bit of output port E |
| 301 | 255 | m_icount--; |
| 302 | | output_w(NEC_UCOM4_PORTE, m_port_out[NEC_UCOM4_PORTE] & ~m_bitmask); |
| 256 | op_illegal(); |
| 303 | 257 | } |
| 304 | 258 | |
| 305 | 259 | void ucom4_cpu_device::op_seb() |
| 306 | 260 | { |
| 307 | 261 | // SEB B: Set a single bit of output port E |
| 308 | 262 | m_icount--; |
| 309 | | output_w(NEC_UCOM4_PORTE, m_port_out[NEC_UCOM4_PORTE] | m_bitmask); |
| 263 | op_illegal(); |
| 310 | 264 | } |
| 311 | 265 | |
| 312 | 266 | void ucom4_cpu_device::op_rpb() |
| 313 | 267 | { |
| 314 | 268 | // RPB B: Reset a single bit of output port (DPl) |
| 315 | | output_w(m_dpl, m_port_out[m_dpl] & ~m_bitmask); |
| 269 | op_illegal(); |
| 316 | 270 | } |
| 317 | 271 | |
| 318 | 272 | void ucom4_cpu_device::op_spb() |
| 319 | 273 | { |
| 320 | 274 | // SPB B: Set a single bit of output port (DPl) |
| 321 | | output_w(m_dpl, m_port_out[m_dpl] | m_bitmask); |
| 275 | op_illegal(); |
| 322 | 276 | } |
| 323 | 277 | |
| 324 | 278 | |
| r243483 | r243484 | |
| 329 | 283 | // JMP A: Jump to Address / CAL A: Call Address |
| 330 | 284 | if (m_op & 0x08) |
| 331 | 285 | push_stack(); |
| 332 | | m_pc = ((m_op & 0x07) << 8 | m_arg) & m_prgmask; |
| 286 | m_pc = (m_op & 0x07) << 8 | m_arg; |
| 333 | 287 | } |
| 334 | 288 | |
| 335 | 289 | void ucom4_cpu_device::op_jcp() |
| r243483 | r243484 | |
| 341 | 295 | void ucom4_cpu_device::op_jpa() |
| 342 | 296 | { |
| 343 | 297 | // JPA: Jump to (ACC) in current page |
| 344 | | m_icount--; |
| 345 | 298 | m_pc = (m_pc & ~0x3f) | (m_acc << 2); |
| 346 | 299 | } |
| 347 | 300 | |
| r243483 | r243484 | |
| 362 | 315 | void ucom4_cpu_device::op_rts() |
| 363 | 316 | { |
| 364 | 317 | // RTS: Return from subroutine, skip next |
| 365 | | op_rt(); |
| 318 | pop_stack(); |
| 366 | 319 | m_skip = true; |
| 367 | 320 | } |
| 368 | 321 | |
| r243483 | r243484 | |
| 387 | 340 | void ucom4_cpu_device::op_cmb() |
| 388 | 341 | { |
| 389 | 342 | // CMB B: skip next on bit(ACC) equals bit(RAM) |
| 390 | | m_skip = ((m_acc & m_bitmask) == (ram_r() & m_bitmask)); |
| 343 | UINT8 mask = 1 << (m_op & 0x03); |
| 344 | m_skip = ((m_acc & mask) == (ram_r() & mask)); |
| 391 | 345 | } |
| 392 | 346 | |
| 393 | 347 | void ucom4_cpu_device::op_tab() |
| 394 | 348 | { |
| 395 | 349 | // TAB B: skip next on bit(ACC) |
| 396 | | m_skip = ((m_acc & m_bitmask) != 0); |
| 350 | m_skip = ((m_acc & (1 << (m_op & 0x03))) != 0); |
| 397 | 351 | } |
| 398 | 352 | |
| 399 | 353 | void ucom4_cpu_device::op_cli() |
| r243483 | r243484 | |
| 408 | 362 | void ucom4_cpu_device::op_tmb() |
| 409 | 363 | { |
| 410 | 364 | // TMB B: skip next on bit(RAM) |
| 411 | | m_skip = ((ram_r() & m_bitmask) != 0); |
| 365 | m_skip = ((ram_r() & (1 << (m_op & 0x03))) != 0); |
| 412 | 366 | } |
| 413 | 367 | |
| 414 | 368 | void ucom4_cpu_device::op_tpa() |
| 415 | 369 | { |
| 416 | 370 | // TPA B: skip next on bit(input port A) |
| 417 | | m_skip = ((input_r(NEC_UCOM4_PORTA) & m_bitmask) != 0); |
| 371 | op_illegal(); |
| 418 | 372 | } |
| 419 | 373 | |
| 420 | 374 | void ucom4_cpu_device::op_tpb() |
| 421 | 375 | { |
| 422 | 376 | // TPB B: skip next on bit(input port (DPl)) |
| 423 | | m_skip = ((input_r(m_dpl) & m_bitmask) != 0); |
| 377 | op_illegal(); |
| 424 | 378 | } |
| 425 | 379 | |
| 426 | 380 | |
| r243483 | r243484 | |
| 438 | 392 | void ucom4_cpu_device::op_ia() |
| 439 | 393 | { |
| 440 | 394 | // IA: Input port A to ACC |
| 441 | | m_icount--; |
| 442 | | m_acc = input_r(NEC_UCOM4_PORTA); |
| 395 | op_illegal(); |
| 443 | 396 | } |
| 444 | 397 | |
| 445 | 398 | void ucom4_cpu_device::op_ip() |
| 446 | 399 | { |
| 447 | 400 | // IP: Input port (DPl) to ACC |
| 448 | | m_acc = input_r(m_dpl); |
| 401 | op_illegal(); |
| 449 | 402 | } |
| 450 | 403 | |
| 451 | 404 | void ucom4_cpu_device::op_oe() |
| 452 | 405 | { |
| 453 | 406 | // OE: Output ACC to port E |
| 454 | | m_icount--; |
| 455 | | output_w(NEC_UCOM4_PORTE, m_acc); |
| 407 | m_write_e(0, m_acc, 0xff); |
| 456 | 408 | } |
| 457 | 409 | |
| 458 | 410 | void ucom4_cpu_device::op_op() |
| 459 | 411 | { |
| 460 | 412 | // OP: Output ACC to port (DPl) |
| 461 | | output_w(m_dpl, m_acc); |
| 413 | op_illegal(); |
| 462 | 414 | } |
| 463 | 415 | |
| 464 | 416 | void ucom4_cpu_device::op_ocd() |
| 465 | 417 | { |
| 466 | 418 | // OCD X: Output X to ports C and D |
| 467 | | output_w(NEC_UCOM4_PORTD, m_arg >> 4); |
| 468 | | output_w(NEC_UCOM4_PORTC, m_arg & 0xf); |
| 419 | op_illegal(); |
| 469 | 420 | } |
| 470 | 421 | |
| 471 | 422 | |
| r243483 | r243484 | |
| 489 | 440 | return (m_family == NEC_UCOM43); |
| 490 | 441 | } |
| 491 | 442 | |
| 492 | | // extra registers reside in RAM |
| 493 | | enum |
| 494 | | { |
| 495 | | UCOM43_X = 0, |
| 496 | | UCOM43_Y, |
| 497 | | UCOM43_R, |
| 498 | | UCOM43_S, |
| 499 | | UCOM43_W, |
| 500 | | UCOM43_Z, |
| 501 | | UCOM43_F |
| 502 | | }; |
| 503 | | |
| 504 | | inline UINT8 ucom4_cpu_device::ucom43_reg_r(int index) |
| 505 | | { |
| 506 | | return m_data->read_byte(m_datamask - index) & 0xf; |
| 507 | | } |
| 508 | | |
| 509 | | inline void ucom4_cpu_device::ucom43_reg_w(int index, UINT8 data) |
| 510 | | { |
| 511 | | m_data->write_byte(m_datamask - index, data & 0xf); |
| 512 | | } |
| 513 | | |
| 514 | | |
| 515 | 443 | // Transfer |
| 516 | 444 | |
| 517 | 445 | void ucom4_cpu_device::op_taw() |
| r243483 | r243484 | |
| 519 | 447 | if (!check_op_43()) return; |
| 520 | 448 | |
| 521 | 449 | // TAW: Transfer ACC to W |
| 522 | | m_icount--; |
| 523 | | ucom43_reg_w(UCOM43_W, m_acc); |
| 450 | op_illegal(); |
| 524 | 451 | } |
| 525 | 452 | |
| 526 | 453 | void ucom4_cpu_device::op_taz() |
| r243483 | r243484 | |
| 528 | 455 | if (!check_op_43()) return; |
| 529 | 456 | |
| 530 | 457 | // TAZ: Transfer ACC to Z |
| 531 | | m_icount--; |
| 532 | | ucom43_reg_w(UCOM43_Z, m_acc); |
| 458 | op_illegal(); |
| 533 | 459 | } |
| 534 | 460 | |
| 535 | 461 | void ucom4_cpu_device::op_thx() |
| r243483 | r243484 | |
| 537 | 463 | if (!check_op_43()) return; |
| 538 | 464 | |
| 539 | 465 | // THX: Transfer DPh to X |
| 540 | | m_icount--; |
| 541 | | ucom43_reg_w(UCOM43_X, m_dph); |
| 466 | op_illegal(); |
| 542 | 467 | } |
| 543 | 468 | |
| 544 | 469 | void ucom4_cpu_device::op_tly() |
| r243483 | r243484 | |
| 546 | 471 | if (!check_op_43()) return; |
| 547 | 472 | |
| 548 | 473 | // TLY: Transfer DPl to Y |
| 549 | | m_icount--; |
| 550 | | ucom43_reg_w(UCOM43_Y, m_dpl); |
| 474 | op_illegal(); |
| 551 | 475 | } |
| 552 | 476 | |
| 553 | 477 | |
| r243483 | r243484 | |
| 558 | 482 | if (!check_op_43()) return; |
| 559 | 483 | |
| 560 | 484 | // XAW: Exchange ACC with W |
| 561 | | m_icount--; |
| 562 | | UINT8 old_acc = m_acc; |
| 563 | | m_acc = ucom43_reg_r(UCOM43_W); |
| 564 | | ucom43_reg_w(UCOM43_W, old_acc); |
| 485 | op_illegal(); |
| 565 | 486 | } |
| 566 | 487 | |
| 567 | 488 | void ucom4_cpu_device::op_xaz() |
| r243483 | r243484 | |
| 569 | 490 | if (!check_op_43()) return; |
| 570 | 491 | |
| 571 | 492 | // XAZ: Exchange ACC with Z |
| 572 | | m_icount--; |
| 573 | | UINT8 old_acc = m_acc; |
| 574 | | m_acc = ucom43_reg_r(UCOM43_Z); |
| 575 | | ucom43_reg_w(UCOM43_Z, old_acc); |
| 493 | op_illegal(); |
| 576 | 494 | } |
| 577 | 495 | |
| 578 | 496 | void ucom4_cpu_device::op_xhr() |
| r243483 | r243484 | |
| 580 | 498 | if (!check_op_43()) return; |
| 581 | 499 | |
| 582 | 500 | // XHR: Exchange DPh with R |
| 583 | | m_icount--; |
| 584 | | UINT8 old_dph = m_dph; |
| 585 | | m_dph = ucom43_reg_r(UCOM43_R); |
| 586 | | ucom43_reg_w(UCOM43_R, old_dph); |
| 501 | op_illegal(); |
| 587 | 502 | } |
| 588 | 503 | |
| 589 | 504 | void ucom4_cpu_device::op_xhx() |
| r243483 | r243484 | |
| 591 | 506 | if (!check_op_43()) return; |
| 592 | 507 | |
| 593 | 508 | // XHX: Exchange DPh with X |
| 594 | | m_icount--; |
| 595 | | UINT8 old_dph = m_dph; |
| 596 | | m_dph = ucom43_reg_r(UCOM43_X); |
| 597 | | ucom43_reg_w(UCOM43_X, old_dph); |
| 509 | op_illegal(); |
| 598 | 510 | } |
| 599 | 511 | |
| 600 | 512 | void ucom4_cpu_device::op_xls() |
| r243483 | r243484 | |
| 602 | 514 | if (!check_op_43()) return; |
| 603 | 515 | |
| 604 | 516 | // XLS: Exchange DPl with S |
| 605 | | m_icount--; |
| 606 | | UINT8 old_dpl = m_dpl; |
| 607 | | m_dpl = ucom43_reg_r(UCOM43_S); |
| 608 | | ucom43_reg_w(UCOM43_S, old_dpl); |
| 517 | op_illegal(); |
| 609 | 518 | } |
| 610 | 519 | |
| 611 | 520 | void ucom4_cpu_device::op_xly() |
| r243483 | r243484 | |
| 613 | 522 | if (!check_op_43()) return; |
| 614 | 523 | |
| 615 | 524 | // XLY: Exchange DPl with Y |
| 616 | | m_icount--; |
| 617 | | UINT8 old_dpl = m_dpl; |
| 618 | | m_dpl = ucom43_reg_r(UCOM43_Y); |
| 619 | | ucom43_reg_w(UCOM43_Y, old_dpl); |
| 525 | op_illegal(); |
| 620 | 526 | } |
| 621 | 527 | |
| 622 | 528 | void ucom4_cpu_device::op_xc() |
| r243483 | r243484 | |
| 624 | 530 | if (!check_op_43()) return; |
| 625 | 531 | |
| 626 | 532 | // XC: Exchange Carry F/F with Carry Save F/F |
| 627 | | UINT8 c = m_carry_f; |
| 628 | | m_carry_f = m_carry_s_f; |
| 629 | | m_carry_s_f = c; |
| 533 | op_illegal(); |
| 630 | 534 | } |
| 631 | 535 | |
| 632 | 536 | |
| r243483 | r243484 | |
| 637 | 541 | if (!check_op_43()) return; |
| 638 | 542 | |
| 639 | 543 | // SFB B: Set a single bit of FLAG |
| 640 | | m_icount--; |
| 641 | | ucom43_reg_w(UCOM43_F, ucom43_reg_r(UCOM43_F) | m_bitmask); |
| 544 | op_illegal(); |
| 642 | 545 | } |
| 643 | 546 | |
| 644 | 547 | void ucom4_cpu_device::op_rfb() |
| r243483 | r243484 | |
| 646 | 549 | if (!check_op_43()) return; |
| 647 | 550 | |
| 648 | 551 | // RFB B: Reset a single bit of FLAG |
| 649 | | m_icount--; |
| 650 | | ucom43_reg_w(UCOM43_F, ucom43_reg_r(UCOM43_F) & ~m_bitmask); |
| 552 | op_illegal(); |
| 651 | 553 | } |
| 652 | 554 | |
| 653 | 555 | void ucom4_cpu_device::op_fbt() |
| r243483 | r243484 | |
| 655 | 557 | if (!check_op_43()) return; |
| 656 | 558 | |
| 657 | 559 | // FBT B: skip next on bit(FLAG) |
| 658 | | m_icount--; |
| 659 | | m_skip = ((ucom43_reg_r(UCOM43_F) & m_bitmask) != 0); |
| 560 | op_illegal(); |
| 660 | 561 | } |
| 661 | 562 | |
| 662 | 563 | void ucom4_cpu_device::op_fbf() |
| r243483 | r243484 | |
| 664 | 565 | if (!check_op_43()) return; |
| 665 | 566 | |
| 666 | 567 | // FBF B: skip next on not bit(FLAG) |
| 667 | | m_icount--; |
| 668 | | m_skip = ((ucom43_reg_r(UCOM43_F) & m_bitmask) == 0); |
| 568 | op_illegal(); |
| 669 | 569 | } |
| 670 | 570 | |
| 671 | 571 | |
| r243483 | r243484 | |
| 676 | 576 | if (!check_op_43()) return; |
| 677 | 577 | |
| 678 | 578 | // RAR: Rotate ACC Right through Carry F/F |
| 679 | | UINT8 c = m_acc & 1; |
| 680 | | m_acc = m_acc >> 1 | m_carry_f << 3; |
| 681 | | m_carry_f = c; |
| 579 | op_illegal(); |
| 682 | 580 | } |
| 683 | 581 | |
| 684 | 582 | |
| r243483 | r243484 | |
| 689 | 587 | if (!check_op_43()) return; |
| 690 | 588 | |
| 691 | 589 | // INM: Increment RAM, skip next on carry |
| 692 | | UINT8 val = (ram_r() + 1) & 0xf; |
| 693 | | ram_w(val); |
| 694 | | m_skip = (val == 0); |
| 590 | op_illegal(); |
| 695 | 591 | } |
| 696 | 592 | |
| 697 | 593 | void ucom4_cpu_device::op_dem() |
| r243483 | r243484 | |
| 699 | 595 | if (!check_op_43()) return; |
| 700 | 596 | |
| 701 | 597 | // DEM: Decrement RAM, skip next on carry |
| 702 | | UINT8 val = (ram_r() - 1) & 0xf; |
| 703 | | ram_w(val); |
| 704 | | m_skip = (val == 0xf); |
| 598 | op_illegal(); |
| 705 | 599 | } |
| 706 | 600 | |
| 707 | 601 | |
| r243483 | r243484 | |
| 713 | 607 | |
| 714 | 608 | // STM X: Reset Timer F/F, Start Timer with X |
| 715 | 609 | op_illegal(); |
| 716 | | |
| 717 | | if ((m_arg & 0xc0) != 0x80) |
| 718 | | logerror("%s STM opcode unexpected upper arg $%02X at $%03X\n", tag(), m_arg & 0xc0, m_pc); |
| 719 | 610 | } |
| 720 | 611 | |
| 721 | 612 | void ucom4_cpu_device::op_ttm() |
trunk/src/mame/drivers/gladiatr.c
| r243483 | r243484 | |
| 9 | 9 | input port patches, panning fix, sprite banking, |
| 10 | 10 | Golden Castle Rom Set Support |
| 11 | 11 | - Phil Stroffolino: palette, sprites, misc video driver fixes |
| 12 | | - Tatsuyuki Satoh: YM2203 sound improvements, NEC 8741 simulation, ADPCM with MC6809 |
| 12 | - Tatsuyuki Satoh: YM2203 sound improvements, NEC 8741 simulation,ADPCM with MC6809 |
| 13 | 13 | - Tomasz Slanina preliminary Ping Pong King driver |
| 14 | 14 | - Nicola Salmoria clean up |
| 15 | 15 | |
| r243483 | r243484 | |
| 17 | 17 | - Camilty for precious hardware information and screenshots |
| 18 | 18 | - Jason Richmond for hardware information and misc. notes |
| 19 | 19 | - Joe Rounceville for schematics |
| 20 | | - and everyone else who's offered support along the way! |
| 20 | - and everyone else who'se offered support along the way! |
| 21 | 21 | |
| 22 | 22 | |
| 23 | 23 | *************************************************************************** |
| r243483 | r243484 | |
| 268 | 268 | } |
| 269 | 269 | |
| 270 | 270 | /*Sound Functions*/ |
| 271 | | WRITE8_MEMBER(gladiatr_state::gladiator_adpcm_w) |
| 271 | WRITE8_MEMBER(gladiatr_state::glad_adpcm_w) |
| 272 | 272 | { |
| 273 | 273 | UINT8 *rom = memregion("audiocpu")->base() + 0x10000; |
| 274 | 274 | |
| r243483 | r243484 | |
| 280 | 280 | m_msm->vclk_w (BIT(data, 4)); /* bit4 */ |
| 281 | 281 | } |
| 282 | 282 | |
| 283 | | WRITE8_MEMBER(gladiatr_state::gladiator_cpu_sound_command_w) |
| 283 | WRITE8_MEMBER(gladiatr_state::glad_cpu_sound_command_w) |
| 284 | 284 | { |
| 285 | 285 | soundlatch_byte_w(space,0,data); |
| 286 | 286 | m_audiocpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE); |
| 287 | 287 | } |
| 288 | 288 | |
| 289 | | READ8_MEMBER(gladiatr_state::gladiator_cpu_sound_command_r) |
| 289 | READ8_MEMBER(gladiatr_state::glad_cpu_sound_command_r) |
| 290 | 290 | { |
| 291 | 291 | m_audiocpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE); |
| 292 | 292 | return soundlatch_byte_r(space,0); |
| r243483 | r243484 | |
| 299 | 299 | |
| 300 | 300 | |
| 301 | 301 | #if 1 |
| 302 | | /* !!!!! patch to IRQ timing for 2nd CPU !!!!! */ |
| 302 | /* !!!!! patch to IRQ timming for 2nd CPU !!!!! */ |
| 303 | 303 | WRITE8_MEMBER(gladiatr_state::gladiatr_irq_patch_w) |
| 304 | 304 | { |
| 305 | 305 | m_subcpu->set_input_line(0, HOLD_LINE); |
| r243483 | r243484 | |
| 312 | 312 | |
| 313 | 313 | |
| 314 | 314 | |
| 315 | | WRITE8_MEMBER(gladiatr_state::ppking_qx0_w) |
| 315 | WRITE8_MEMBER(gladiatr_state::qx0_w) |
| 316 | 316 | { |
| 317 | 317 | if(!offset) |
| 318 | 318 | { |
| r243483 | r243484 | |
| 321 | 321 | } |
| 322 | 322 | } |
| 323 | 323 | |
| 324 | | WRITE8_MEMBER(gladiatr_state::ppking_qx1_w) |
| 324 | WRITE8_MEMBER(gladiatr_state::qx1_w) |
| 325 | 325 | { |
| 326 | 326 | if(!offset) |
| 327 | 327 | { |
| r243483 | r243484 | |
| 330 | 330 | } |
| 331 | 331 | } |
| 332 | 332 | |
| 333 | | WRITE8_MEMBER(gladiatr_state::ppking_qx2_w){ } |
| 333 | WRITE8_MEMBER(gladiatr_state::qx2_w){ } |
| 334 | 334 | |
| 335 | | WRITE8_MEMBER(gladiatr_state::ppking_qx3_w){ } |
| 335 | WRITE8_MEMBER(gladiatr_state::qx3_w){ } |
| 336 | 336 | |
| 337 | | READ8_MEMBER(gladiatr_state::ppking_qx2_r){ return machine().rand(); } |
| 337 | READ8_MEMBER(gladiatr_state::qx2_r){ return machine().rand(); } |
| 338 | 338 | |
| 339 | | READ8_MEMBER(gladiatr_state::ppking_qx3_r){ return machine().rand()&0xf; } |
| 339 | READ8_MEMBER(gladiatr_state::qx3_r){ return machine().rand()&0xf; } |
| 340 | 340 | |
| 341 | | READ8_MEMBER(gladiatr_state::ppking_qx0_r) |
| 341 | READ8_MEMBER(gladiatr_state::qx0_r) |
| 342 | 342 | { |
| 343 | 343 | if(!offset) |
| 344 | 344 | return m_data1; |
| r243483 | r243484 | |
| 346 | 346 | return m_flag2; |
| 347 | 347 | } |
| 348 | 348 | |
| 349 | | READ8_MEMBER(gladiatr_state::ppking_qx1_r) |
| 349 | READ8_MEMBER(gladiatr_state::qx1_r) |
| 350 | 350 | { |
| 351 | 351 | if(!offset) |
| 352 | 352 | return m_data2; |
| r243483 | r243484 | |
| 364 | 364 | AM_RANGE(0x0000, 0xbfff) AM_ROM |
| 365 | 365 | AM_RANGE(0xc000, 0xcbff) AM_RAM AM_SHARE("spriteram") |
| 366 | 366 | AM_RANGE(0xcc00, 0xcfff) AM_WRITE(ppking_video_registers_w) |
| 367 | | AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(paletteram_w) AM_SHARE("paletteram") |
| 368 | | AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram") |
| 369 | | AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(colorram_w) AM_SHARE("colorram") |
| 370 | | AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(textram_w) AM_SHARE("textram") |
| 367 | AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(gladiatr_paletteram_w) AM_SHARE("paletteram") |
| 368 | AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(gladiatr_videoram_w) AM_SHARE("videoram") |
| 369 | AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(gladiatr_colorram_w) AM_SHARE("colorram") |
| 370 | AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(gladiatr_textram_w) AM_SHARE("textram") |
| 371 | 371 | AM_RANGE(0xf000, 0xf7ff) AM_RAM AM_SHARE("nvram") /* battery backed RAM */ |
| 372 | 372 | ADDRESS_MAP_END |
| 373 | 373 | |
| r243483 | r243484 | |
| 379 | 379 | |
| 380 | 380 | static ADDRESS_MAP_START( ppking_cpu1_io, AS_IO, 8, gladiatr_state ) |
| 381 | 381 | // ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 382 | | AM_RANGE(0xc000, 0xc000) AM_WRITE(spritebuffer_w) |
| 382 | AM_RANGE(0xc000, 0xc000) AM_WRITE(gladiatr_spritebuffer_w) |
| 383 | 383 | AM_RANGE(0xc004, 0xc004) AM_NOP // WRITE(ppking_irq_patch_w) |
| 384 | | AM_RANGE(0xc09e, 0xc09f) AM_READ(ppking_qx0_r) AM_WRITE(ppking_qx0_w) |
| 384 | AM_RANGE(0xc09e, 0xc09f) AM_READ(qx0_r) AM_WRITE(qx0_w) |
| 385 | 385 | AM_RANGE(0xc0bf, 0xc0bf) AM_NOP |
| 386 | 386 | ADDRESS_MAP_END |
| 387 | 387 | |
| 388 | 388 | static ADDRESS_MAP_START( ppking_cpu2_io, AS_IO, 8, gladiatr_state ) |
| 389 | 389 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 390 | 390 | AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ymsnd", ym2203_device, read, write) |
| 391 | | AM_RANGE(0x20, 0x21) AM_READ(ppking_qx1_r) AM_WRITE(ppking_qx1_w) |
| 391 | AM_RANGE(0x20, 0x21) AM_READ(qx1_r) AM_WRITE(qx1_w) |
| 392 | 392 | AM_RANGE(0x40, 0x40) AM_READNOP |
| 393 | | AM_RANGE(0x60, 0x61) AM_READWRITE(ppking_qx2_r,ppking_qx2_w) |
| 394 | | AM_RANGE(0x80, 0x81) AM_READWRITE(ppking_qx3_r,ppking_qx3_w) |
| 393 | AM_RANGE(0x60, 0x61) AM_READWRITE(qx2_r,qx2_w) |
| 394 | AM_RANGE(0x80, 0x81) AM_READWRITE(qx3_r,qx3_w) |
| 395 | 395 | ADDRESS_MAP_END |
| 396 | 396 | |
| 397 | 397 | |
| r243483 | r243484 | |
| 402 | 402 | AM_RANGE(0x6000, 0xbfff) AM_ROMBANK("bank1") |
| 403 | 403 | AM_RANGE(0xc000, 0xcbff) AM_RAM AM_SHARE("spriteram") |
| 404 | 404 | AM_RANGE(0xcc00, 0xcfff) AM_WRITE(gladiatr_video_registers_w) |
| 405 | | AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(paletteram_w) AM_SHARE("paletteram") |
| 406 | | AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram") |
| 407 | | AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(colorram_w) AM_SHARE("colorram") |
| 408 | | AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(textram_w) AM_SHARE("textram") |
| 405 | AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(gladiatr_paletteram_w) AM_SHARE("paletteram") |
| 406 | AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(gladiatr_videoram_w) AM_SHARE("videoram") |
| 407 | AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(gladiatr_colorram_w) AM_SHARE("colorram") |
| 408 | AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(gladiatr_textram_w) AM_SHARE("textram") |
| 409 | 409 | AM_RANGE(0xf000, 0xf7ff) AM_RAM AM_SHARE("nvram") /* battery backed RAM */ |
| 410 | 410 | ADDRESS_MAP_END |
| 411 | 411 | |
| r243483 | r243484 | |
| 415 | 415 | ADDRESS_MAP_END |
| 416 | 416 | |
| 417 | 417 | static ADDRESS_MAP_START( gladiatr_cpu3_map, AS_PROGRAM, 8, gladiatr_state ) |
| 418 | | AM_RANGE(0x1000, 0x1fff) AM_WRITE(gladiator_adpcm_w) |
| 419 | | AM_RANGE(0x2000, 0x2fff) AM_READ(gladiator_cpu_sound_command_r) |
| 418 | AM_RANGE(0x1000, 0x1fff) AM_WRITE(glad_adpcm_w) |
| 419 | AM_RANGE(0x2000, 0x2fff) AM_READ(glad_cpu_sound_command_r) |
| 420 | 420 | AM_RANGE(0x4000, 0xffff) AM_ROMBANK("bank2") |
| 421 | 421 | ADDRESS_MAP_END |
| 422 | 422 | |
| 423 | 423 | |
| 424 | 424 | static ADDRESS_MAP_START( gladiatr_cpu1_io, AS_IO, 8, gladiatr_state ) |
| 425 | 425 | // ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 426 | | AM_RANGE(0xc000, 0xc000) AM_WRITE(spritebuffer_w) |
| 426 | AM_RANGE(0xc000, 0xc000) AM_WRITE(gladiatr_spritebuffer_w) |
| 427 | 427 | AM_RANGE(0xc001, 0xc001) AM_WRITE(gladiatr_spritebank_w) |
| 428 | 428 | AM_RANGE(0xc002, 0xc002) AM_WRITE(gladiatr_bankswitch_w) |
| 429 | 429 | AM_RANGE(0xc004, 0xc004) AM_WRITE(gladiatr_irq_patch_w) /* !!! patch to 2nd CPU IRQ !!! */ |
| r243483 | r243484 | |
| 440 | 440 | AM_RANGE(0x60, 0x61) AM_DEVREADWRITE("taito8741", taito8741_4pack_device, read_2, write_2) |
| 441 | 441 | AM_RANGE(0x80, 0x81) AM_DEVREADWRITE("taito8741", taito8741_4pack_device, read_3, write_3) |
| 442 | 442 | AM_RANGE(0xa0, 0xa7) AM_NOP // filters on sound output |
| 443 | | AM_RANGE(0xe0, 0xe0) AM_WRITE(gladiator_cpu_sound_command_w) |
| 443 | AM_RANGE(0xe0, 0xe0) AM_WRITE(glad_cpu_sound_command_w) |
| 444 | 444 | ADDRESS_MAP_END |
| 445 | 445 | |
| 446 | 446 | |
| r243483 | r243484 | |
| 611 | 611 | |
| 612 | 612 | |
| 613 | 613 | |
| 614 | | READ8_MEMBER(gladiatr_state::ppking_f1_r) |
| 614 | READ8_MEMBER(gladiatr_state::f1_r) |
| 615 | 615 | { |
| 616 | 616 | return machine().rand(); |
| 617 | 617 | } |
| r243483 | r243484 | |
| 655 | 655 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| 656 | 656 | |
| 657 | 657 | MCFG_SOUND_ADD("ymsnd", YM2203, XTAL_12MHz/8) /* verified on pcb */ |
| 658 | | MCFG_AY8910_PORT_A_READ_CB(READ8(gladiatr_state, ppking_f1_r)) |
| 659 | | MCFG_AY8910_PORT_B_READ_CB(READ8(gladiatr_state, ppking_f1_r)) |
| 658 | MCFG_AY8910_PORT_A_READ_CB(READ8(gladiatr_state, f1_r)) |
| 659 | MCFG_AY8910_PORT_B_READ_CB(READ8(gladiatr_state, f1_r)) |
| 660 | 660 | MCFG_SOUND_ROUTE(0, "mono", 0.60) |
| 661 | 661 | MCFG_SOUND_ROUTE(1, "mono", 0.60) |
| 662 | 662 | MCFG_SOUND_ROUTE(2, "mono", 0.60) |
| r243483 | r243484 | |
| 1001 | 1001 | } |
| 1002 | 1002 | |
| 1003 | 1003 | |
| 1004 | | READ8_MEMBER(gladiatr_state::ppking_f6a3_r) |
| 1004 | READ8_MEMBER(gladiatr_state::f6a3_r) |
| 1005 | 1005 | { |
| 1006 | 1006 | if(space.device().safe_pcbase()==0x8e) |
| 1007 | 1007 | m_nvram[0x6a3]=1; |
| r243483 | r243484 | |
| 1031 | 1031 | rom[i+2*j*0x2000] = rom[i+j*0x2000]; |
| 1032 | 1032 | } |
| 1033 | 1033 | } |
| 1034 | | m_maincpu->space(AS_PROGRAM).install_read_handler(0xf6a3,0xf6a3,read8_delegate(FUNC(gladiatr_state::ppking_f6a3_r),this)); |
| 1035 | | |
| 1036 | | save_item(NAME(m_data1)); |
| 1037 | | save_item(NAME(m_data2)); |
| 1034 | m_maincpu->space(AS_PROGRAM).install_read_handler(0xf6a3,0xf6a3,read8_delegate(FUNC(gladiatr_state::f6a3_r),this)); |
| 1038 | 1035 | } |
| 1039 | 1036 | |
| 1040 | 1037 | |
| 1041 | 1038 | |
| 1042 | | GAME( 1985, ppking, 0, ppking, 0, gladiatr_state, ppking, ROT90, "Taito America Corporation", "Ping-Pong King", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) |
| 1043 | | GAME( 1986, gladiatr, 0, gladiatr, gladiatr, gladiatr_state, gladiatr, ROT0, "Allumer / Taito America Corporation", "Gladiator (US)", GAME_SUPPORTS_SAVE ) |
| 1044 | | GAME( 1986, ogonsiro, gladiatr, gladiatr, gladiatr, gladiatr_state, gladiatr, ROT0, "Allumer / Taito Corporation", "Ougon no Shiro (Japan)", GAME_SUPPORTS_SAVE ) |
| 1045 | | GAME( 1986, greatgur, gladiatr, gladiatr, gladiatr, gladiatr_state, gladiatr, ROT0, "Allumer / Taito Corporation", "Great Gurianos (Japan?)", GAME_SUPPORTS_SAVE ) |
| 1046 | | GAME( 1986, gcastle, gladiatr, gladiatr, gladiatr, gladiatr_state, gladiatr, ROT0, "Allumer / Taito Corporation", "Golden Castle (prototype?)", GAME_SUPPORTS_SAVE ) // incomplete dump |
| 1039 | GAME( 1985, ppking, 0, ppking, 0, gladiatr_state, ppking, ROT90, "Taito America Corporation", "Ping-Pong King", GAME_NOT_WORKING) |
| 1040 | GAME( 1986, gladiatr, 0, gladiatr, gladiatr, gladiatr_state, gladiatr, ROT0, "Allumer / Taito America Corporation", "Gladiator (US)", 0 ) |
| 1041 | GAME( 1986, ogonsiro, gladiatr, gladiatr, gladiatr, gladiatr_state, gladiatr, ROT0, "Allumer / Taito Corporation", "Ougon no Shiro (Japan)", 0 ) |
| 1042 | GAME( 1986, greatgur, gladiatr, gladiatr, gladiatr, gladiatr_state, gladiatr, ROT0, "Allumer / Taito Corporation", "Great Gurianos (Japan?)", 0 ) |
| 1043 | GAME( 1986, gcastle, gladiatr, gladiatr, gladiatr, gladiatr_state, gladiatr, ROT0, "Allumer / Taito Corporation", "Golden Castle (prototype?)", 0 ) // incomplete dump |
trunk/src/mame/drivers/gsword.c
| r243483 | r243484 | |
| 4 | 4 | |
| 5 | 5 | TODO: |
| 6 | 6 | |
| 7 | | -joshi volleyball |
| 7 | -joshi vollyball |
| 8 | 8 | -The incomplete graphic |
| 9 | 9 | -The implementation of DAC sound ? |
| 10 | 10 | -MCU code DUMP and emulation |
| r243483 | r243484 | |
| 14 | 14 | Credits: |
| 15 | 15 | - Steve Ellenoff: Original emulation and Mame driver |
| 16 | 16 | - Jarek Parchanski: Dip Switch Fixes, Color improvements, ADPCM Interface code |
| 17 | | - Tatsuyuki Satoh: sound improvements, NEC 8741 emulation, adpcm improvements, |
| 17 | - Tatsuyuki Satoh: sound improvements, NEC 8741 emulation,adpcm improvements, |
| 18 | 18 | josvollyvall 8741 emulation |
| 19 | 19 | - Charlie Miltenberger: sprite colors improvements & precious hardware |
| 20 | 20 | information and screenshots |
| r243483 | r243484 | |
| 144 | 144 | #include "emu.h" |
| 145 | 145 | #include "cpu/z80/z80.h" |
| 146 | 146 | #include "machine/tait8741.h" |
| 147 | #include "sound/ay8910.h" |
| 147 | 148 | #include "sound/msm5205.h" |
| 148 | 149 | #include "includes/gsword.h" |
| 149 | 150 | |
| 150 | 151 | |
| 151 | 152 | #if 0 |
| 152 | | int gsword_state::coins_in(void) |
| 153 | int gsword_state::gsword_coins_in(void) |
| 153 | 154 | { |
| 154 | 155 | /* emulate 8741 coin slot */ |
| 155 | 156 | if (ioport("IN4")->read() & 0xc0) |
| r243483 | r243484 | |
| 164 | 165 | |
| 165 | 166 | #include "cpu/z80/z80.h" |
| 166 | 167 | |
| 167 | | |
| 168 | 168 | /* CPU 2 memory hack */ |
| 169 | 169 | /* (402E) timeout upcount must be under 0AH */ |
| 170 | 170 | /* (4004,4005) clear down counter , if (4004,4005)==0 then (402E)=0 */ |
| r243483 | r243484 | |
| 174 | 174 | |
| 175 | 175 | /*if(offset==1)osd_printf_debug("CNT %02X%02X\n",m_cpu2_ram[5],m_cpu2_ram[4]); */ |
| 176 | 176 | |
| 177 | | /* speedup timeout count down */ |
| 177 | /* speedup timeout cound down */ |
| 178 | 178 | if(m_protect_hack) |
| 179 | 179 | { |
| 180 | 180 | switch(offset) |
| r243483 | r243484 | |
| 219 | 219 | return 0; |
| 220 | 220 | } |
| 221 | 221 | |
| 222 | | void gsword_state::machine_start() |
| 222 | MACHINE_RESET_MEMBER(gsword_state,gsword) |
| 223 | 223 | { |
| 224 | | save_item(NAME(m_fake8910_0)); |
| 225 | | save_item(NAME(m_fake8910_1)); |
| 226 | | save_item(NAME(m_nmi_enable)); |
| 227 | | save_item(NAME(m_protect_hack)); |
| 228 | | } |
| 229 | | |
| 230 | | void gsword_state::machine_reset() |
| 231 | | { |
| 232 | 224 | m_coins = 0; |
| 233 | 225 | |
| 234 | 226 | /* snd CPU mask NMI during reset phase */ |
| r243483 | r243484 | |
| 236 | 228 | m_protect_hack = 0; |
| 237 | 229 | } |
| 238 | 230 | |
| 231 | MACHINE_RESET_MEMBER(gsword_state,josvolly) |
| 232 | { |
| 233 | } |
| 234 | |
| 239 | 235 | INTERRUPT_GEN_MEMBER(gsword_state::gsword_snd_interrupt) |
| 240 | 236 | { |
| 241 | 237 | if(m_nmi_enable) |
| 242 | 238 | device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); |
| 243 | 239 | } |
| 244 | 240 | |
| 245 | | WRITE8_MEMBER(gsword_state::nmi_set_w) |
| 241 | WRITE8_MEMBER(gsword_state::gsword_nmi_set_w) |
| 246 | 242 | { |
| 247 | 243 | /* osd_printf_debug("AY write %02X\n",data);*/ |
| 248 | 244 | |
| r243483 | r243484 | |
| 257 | 253 | switch(data) |
| 258 | 254 | { |
| 259 | 255 | case 0xff: |
| 260 | | m_nmi_enable = 0; /* NMI must be disabled */ |
| 256 | m_nmi_enable = 0; /* NMI must be disable */ |
| 261 | 257 | break; |
| 262 | 258 | case 0x02: |
| 263 | 259 | m_nmi_enable = 0; /* ANY */ |
| r243483 | r243484 | |
| 266 | 262 | m_nmi_enable = 1; |
| 267 | 263 | break; |
| 268 | 264 | case 0x0f: |
| 269 | | m_nmi_enable = 1; /* NMI must be enabled */ |
| 265 | m_nmi_enable = 1; /* NMI must be enable */ |
| 270 | 266 | break; |
| 271 | 267 | case 0xfe: |
| 272 | | m_nmi_enable = 1; /* NMI must be enabled */ |
| 268 | m_nmi_enable = 1; /* NMI must be enable */ |
| 273 | 269 | break; |
| 274 | 270 | } |
| 275 | 271 | /* bit1= nmi disable , for ram check */ |
| r243483 | r243484 | |
| 277 | 273 | #endif |
| 278 | 274 | } |
| 279 | 275 | |
| 280 | | WRITE8_MEMBER(gsword_state::ay8910_control_port_0_w) |
| 276 | WRITE8_MEMBER(gsword_state::gsword_AY8910_control_port_0_w) |
| 281 | 277 | { |
| 282 | | m_ay0->address_w(space,offset,data); |
| 278 | ay8910_device *ay8910 = machine().device<ay8910_device>("ay1"); |
| 279 | ay8910->address_w(space,offset,data); |
| 283 | 280 | m_fake8910_0 = data; |
| 284 | 281 | } |
| 285 | | WRITE8_MEMBER(gsword_state::ay8910_control_port_1_w) |
| 282 | WRITE8_MEMBER(gsword_state::gsword_AY8910_control_port_1_w) |
| 286 | 283 | { |
| 287 | | m_ay1->address_w(space,offset,data); |
| 284 | ay8910_device *ay8910 = machine().device<ay8910_device>("ay2"); |
| 285 | ay8910->address_w(space,offset,data); |
| 288 | 286 | m_fake8910_1 = data; |
| 289 | 287 | } |
| 290 | 288 | |
| 291 | | READ8_MEMBER(gsword_state::fake_0_r) |
| 289 | READ8_MEMBER(gsword_state::gsword_fake_0_r) |
| 292 | 290 | { |
| 293 | 291 | return m_fake8910_0+1; |
| 294 | 292 | } |
| 295 | | READ8_MEMBER(gsword_state::fake_1_r) |
| 293 | READ8_MEMBER(gsword_state::gsword_fake_1_r) |
| 296 | 294 | { |
| 297 | 295 | return m_fake8910_1+1; |
| 298 | 296 | } |
| r243483 | r243484 | |
| 310 | 308 | m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE); |
| 311 | 309 | } |
| 312 | 310 | |
| 313 | | |
| 314 | 311 | static ADDRESS_MAP_START( cpu1_map, AS_PROGRAM , 8, gsword_state ) |
| 315 | 312 | AM_RANGE(0x0000, 0x8fff) AM_ROM |
| 316 | 313 | AM_RANGE(0x9000, 0x9fff) AM_RAM |
| r243483 | r243484 | |
| 318 | 315 | AM_RANGE(0xa380, 0xa3ff) AM_RAM AM_SHARE("spritetile_ram") |
| 319 | 316 | AM_RANGE(0xa400, 0xa77f) AM_RAM |
| 320 | 317 | AM_RANGE(0xa780, 0xa7ff) AM_RAM AM_SHARE("spritexy_ram") |
| 321 | | AM_RANGE(0xa980, 0xa980) AM_WRITE(charbank_w) |
| 322 | | AM_RANGE(0xaa80, 0xaa80) AM_WRITE(videoctrl_w) /* flip screen, char palette bank */ |
| 323 | | AM_RANGE(0xab00, 0xab00) AM_WRITE(scroll_w) |
| 318 | AM_RANGE(0xa980, 0xa980) AM_WRITE(gsword_charbank_w) |
| 319 | AM_RANGE(0xaa80, 0xaa80) AM_WRITE(gsword_videoctrl_w) /* flip screen, char palette bank */ |
| 320 | AM_RANGE(0xab00, 0xab00) AM_WRITE(gsword_scroll_w) |
| 324 | 321 | AM_RANGE(0xab80, 0xabff) AM_WRITEONLY AM_SHARE("spriteattram") |
| 325 | | AM_RANGE(0xb000, 0xb7ff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram") |
| 322 | AM_RANGE(0xb000, 0xb7ff) AM_RAM_WRITE(gsword_videoram_w) AM_SHARE("videoram") |
| 326 | 323 | ADDRESS_MAP_END |
| 327 | 324 | |
| 328 | 325 | static ADDRESS_MAP_START( cpu1_io_map, AS_IO, 8, gsword_state ) |
| r243483 | r243484 | |
| 347 | 344 | AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("taito8741", taito8741_4pack_device, read_2, write_2) |
| 348 | 345 | AM_RANGE(0x20, 0x21) AM_DEVREADWRITE("taito8741", taito8741_4pack_device, read_3, write_3) |
| 349 | 346 | AM_RANGE(0x40, 0x41) AM_DEVREADWRITE("taito8741", taito8741_4pack_device, read_1, write_1) |
| 350 | | AM_RANGE(0x60, 0x60) AM_READWRITE(fake_0_r, ay8910_control_port_0_w) |
| 347 | AM_RANGE(0x60, 0x60) AM_READWRITE(gsword_fake_0_r, gsword_AY8910_control_port_0_w) |
| 351 | 348 | AM_RANGE(0x61, 0x61) AM_DEVREADWRITE("ay1", ay8910_device, data_r, data_w) |
| 352 | | AM_RANGE(0x80, 0x80) AM_READWRITE(fake_1_r, ay8910_control_port_1_w) |
| 349 | AM_RANGE(0x80, 0x80) AM_READWRITE(gsword_fake_1_r, gsword_AY8910_control_port_1_w) |
| 353 | 350 | AM_RANGE(0x81, 0x81) AM_DEVREADWRITE("ay2", ay8910_device, data_r, data_w) |
| 354 | 351 | // |
| 355 | 352 | AM_RANGE(0xe0, 0xe0) AM_READNOP /* ?? */ |
| r243483 | r243484 | |
| 381 | 378 | |
| 382 | 379 | static ADDRESS_MAP_START( josvolly_cpu2_io_map, AS_IO, 8, gsword_state ) |
| 383 | 380 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 384 | | AM_RANGE(0x00, 0x00) AM_READWRITE(fake_0_r, ay8910_control_port_0_w) |
| 381 | AM_RANGE(0x00, 0x00) AM_READWRITE(gsword_fake_0_r, gsword_AY8910_control_port_0_w) |
| 385 | 382 | AM_RANGE(0x01, 0x01) AM_DEVREADWRITE("ay1", ay8910_device, data_r, data_w) |
| 386 | | AM_RANGE(0x40, 0x40) AM_READWRITE(fake_1_r, ay8910_control_port_1_w) |
| 383 | AM_RANGE(0x40, 0x40) AM_READWRITE(gsword_fake_1_r, gsword_AY8910_control_port_1_w) |
| 387 | 384 | AM_RANGE(0x41, 0x41) AM_DEVREADWRITE("ay2", ay8910_device, data_r, data_w) |
| 388 | 385 | |
| 389 | 386 | AM_RANGE(0x81, 0x81) AM_DEVWRITE("josvolly_8741", josvolly8741_4pack_device, nmi_enable_w) |
| r243483 | r243484 | |
| 641 | 638 | |
| 642 | 639 | MCFG_QUANTUM_TIME(attotime::from_hz(12000)) /* Allow time for 2nd cpu to interleave*/ |
| 643 | 640 | |
| 641 | MCFG_MACHINE_RESET_OVERRIDE(gsword_state,gsword) |
| 642 | |
| 644 | 643 | MCFG_TAITO8741_ADD("taito8741") |
| 645 | 644 | MCFG_TAITO8741_MODES(TAITO8741_MASTER,TAITO8741_SLAVE,TAITO8741_PORT,TAITO8741_PORT) |
| 646 | 645 | MCFG_TAITO8741_CONNECT(1,0,0,0) |
| r243483 | r243484 | |
| 671 | 670 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) |
| 672 | 671 | |
| 673 | 672 | MCFG_SOUND_ADD("ay2", AY8910, 1500000) |
| 674 | | MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(gsword_state, nmi_set_w)) /* portA write */ |
| 673 | MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(gsword_state, gsword_nmi_set_w)) /* portA write */ |
| 675 | 674 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) |
| 676 | 675 | |
| 677 | 676 | MCFG_SOUND_ADD("msm", MSM5205, XTAL_400kHz) /* verified on pcb */ |
| r243483 | r243484 | |
| 692 | 691 | MCFG_CPU_IO_MAP(josvolly_cpu2_io_map) |
| 693 | 692 | MCFG_CPU_VBLANK_INT_DRIVER("screen", gsword_state, irq0_line_hold) |
| 694 | 693 | |
| 694 | MCFG_MACHINE_RESET_OVERRIDE(gsword_state,josvolly) |
| 695 | |
| 695 | 696 | MCFG_JOSVOLLY8741_ADD("josvolly_8741") |
| 696 | 697 | MCFG_JOSVOLLY8741_CONNECT(1,0,0,0) |
| 697 | 698 | MCFG_JOSVOLLY8741_PORT_HANDLERS(IOPORT("DSW1"),IOPORT("DSW2"),IOPORT("DSW1"),IOPORT("DSW2")) |
| r243483 | r243484 | |
| 718 | 719 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) |
| 719 | 720 | |
| 720 | 721 | MCFG_SOUND_ADD("ay2", AY8910, 1500000) |
| 721 | | MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(gsword_state, nmi_set_w)) /* portA write */ |
| 722 | MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(gsword_state, gsword_nmi_set_w)) /* portA write */ |
| 722 | 723 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) |
| 723 | 724 | |
| 724 | 725 | #if 0 |
| r243483 | r243484 | |
| 900 | 901 | } |
| 901 | 902 | |
| 902 | 903 | |
| 903 | | GAME( 1983, josvolly, 0, josvolly, josvolly, driver_device, 0, ROT90, "Allumer / Taito Corporation", "Joshi Volleyball", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) |
| 904 | | GAME( 1984, gsword, 0, gsword, gsword, gsword_state, gsword, ROT0, "Allumer / Taito Corporation", "Great Swordsman (World?)", GAME_SUPPORTS_SAVE ) |
| 905 | | GAME( 1984, gsword2, gsword, gsword, gsword, gsword_state, gsword2, ROT0, "Allumer / Taito Corporation", "Great Swordsman (Japan?)", GAME_SUPPORTS_SAVE ) |
| 904 | GAME( 1983, josvolly, 0, josvolly, josvolly, driver_device, 0, ROT90, "Allumer / Taito Corporation", "Joshi Volleyball", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) |
| 905 | GAME( 1984, gsword, 0, gsword, gsword, gsword_state, gsword, ROT0, "Allumer / Taito Corporation", "Great Swordsman (World?)", 0 ) |
| 906 | GAME( 1984, gsword2, gsword, gsword, gsword, gsword_state, gsword2, ROT0, "Allumer / Taito Corporation", "Great Swordsman (Japan?)", 0 ) |
trunk/src/mame/drivers/hornet.c
| r243483 | r243484 | |
| 338 | 338 | m_gn680(*this, "gn680"), |
| 339 | 339 | m_dsp(*this, "dsp"), |
| 340 | 340 | m_dsp2(*this, "dsp2"), |
| 341 | m_eeprom(*this, "eeprom"), |
| 341 | 342 | m_k037122_1(*this, "k037122_1"), |
| 342 | 343 | m_k037122_2(*this, "k037122_2" ), |
| 343 | 344 | m_adc12138(*this, "adc12138"), |
| 344 | | m_konppc(*this, "konppc"), |
| 345 | | m_lan_eeprom(*this, "lan_eeprom"), |
| 346 | 345 | m_in0(*this, "IN0"), |
| 347 | 346 | m_in1(*this, "IN1"), |
| 348 | 347 | m_in2(*this, "IN2"), |
| 349 | 348 | m_dsw(*this, "DSW"), |
| 350 | 349 | m_eepromout(*this, "EEPROMOUT"), |
| 351 | 350 | m_analog1(*this, "ANALOG1"), |
| 352 | | m_analog2(*this, "ANALOG2") |
| 353 | | { } |
| 351 | m_analog2(*this, "ANALOG2"), |
| 352 | m_konppc(*this, "konppc"){ } |
| 354 | 353 | |
| 355 | 354 | // TODO: Needs verification on real hardware |
| 356 | 355 | static const int m_sound_timer_usec = 2800; |
| r243483 | r243484 | |
| 364 | 363 | optional_device<cpu_device> m_gn680; |
| 365 | 364 | required_device<cpu_device> m_dsp; |
| 366 | 365 | 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; |
| 370 | 372 | 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; |
| 374 | 373 | |
| 375 | 374 | emu_timer *m_sound_irq_timer; |
| 376 | 375 | UINT8 m_led_reg0; |
| r243483 | r243484 | |
| 535 | 534 | 0x02 = ADDOR (ADC DOR) |
| 536 | 535 | 0x01 = ADDO (ADC DO) |
| 537 | 536 | */ |
| 538 | | r = 0xf0; |
| 539 | | if (m_lan_eeprom) |
| 540 | | r |= m_lan_eeprom->do_read() << 3; |
| 537 | r = 0xf0 | (m_eeprom->do_read() << 3); |
| 541 | 538 | r |= m_adc12138->do_r(space, 0) | (m_adc12138->eoc_r(space, 0) << 2); |
| 542 | 539 | break; |
| 543 | 540 | |
| r243483 | r243484 | |
| 575 | 572 | 0x02 = LAMP1 |
| 576 | 573 | 0x01 = LAMP0 |
| 577 | 574 | */ |
| 578 | | if (m_eepromout) |
| 579 | | m_eepromout->write(data, 0xff); |
| 575 | m_eepromout->write(data, 0xff); |
| 580 | 576 | osd_printf_debug("System register 0 = %02X\n", data); |
| 581 | 577 | break; |
| 582 | 578 | |
| r243483 | r243484 | |
| 881 | 877 | PORT_DIPNAME( 0x01, 0x01, "Monitor Type" ) PORT_DIPLOCATION("SW:8") |
| 882 | 878 | PORT_DIPSETTING( 0x01, "24KHz" ) |
| 883 | 879 | 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) |
| 884 | 885 | INPUT_PORTS_END |
| 885 | 886 | |
| 886 | 887 | static INPUT_PORTS_START( sscope ) |
| r243483 | r243484 | |
| 901 | 902 | PORT_BIT( 0x7ff, 0x3ff, IPT_AD_STICK_Y ) PORT_MINMAX(0x000, 0x7ff) PORT_SENSITIVITY(35) PORT_KEYDELTA(5) PORT_INVERT |
| 902 | 903 | INPUT_PORTS_END |
| 903 | 904 | |
| 904 | | static INPUT_PORTS_START( sscope2 ) |
| 905 | | PORT_INCLUDE( sscope ) |
| 906 | 905 | |
| 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 | | |
| 915 | 906 | /* PowerPC interrupts |
| 916 | 907 | |
| 917 | 908 | IRQ0: Vblank CG Board 0 |
| r243483 | r243484 | |
| 986 | 977 | |
| 987 | 978 | MCFG_QUANTUM_TIME(attotime::from_hz(6000)) |
| 988 | 979 | |
| 989 | | // PCB description at top doesn't mention any EEPROM on the base board... |
| 990 | | // MCFG_EEPROM_SERIAL_93C46_ADD("eeprom") |
| 991 | 980 | |
| 981 | MCFG_EEPROM_SERIAL_93C46_ADD("eeprom") |
| 982 | |
| 992 | 983 | MCFG_DEVICE_ADD("voodoo0", VOODOO_1, STD_VOODOO_1_CLOCK) |
| 993 | 984 | MCFG_VOODOO_FBMEM(2) |
| 994 | 985 | MCFG_VOODOO_TMUMEM(4,0) |
| r243483 | r243484 | |
| 1537 | 1528 | |
| 1538 | 1529 | /*************************************************************************/ |
| 1539 | 1530 | |
| 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 ) |
| 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 ) |
| 1544 | 1535 | |
| 1545 | 1536 | // 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 |
| 1546 | 1537 | // version, and thus can't be booted. If you copy the NVRAM from another already initialized set, it will boot as UAD. |
| 1547 | 1538 | // to get the actual game to boot you must calibrate the guns etc. |
| 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 ) |
| 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 ) |
| 1552 | 1543 | |
| 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 ) |
| 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 ) |
trunk/src/mame/drivers/mastboy.c
| r243483 | r243484 | |
| 445 | 445 | public: |
| 446 | 446 | mastboy_state(const machine_config &mconfig, device_type type, const char *tag) |
| 447 | 447 | : driver_device(mconfig, type, tag), |
| 448 | m_nvram(*this, "nvram") , |
| 449 | m_workram(*this, "workram"), |
| 450 | m_tileram(*this, "tileram"), |
| 451 | m_colram(*this, "colram"), |
| 448 | 452 | m_maincpu(*this, "maincpu"), |
| 449 | 453 | m_msm(*this, "msm"), |
| 450 | 454 | m_gfxdecode(*this, "gfxdecode"), |
| 451 | | m_palette(*this, "palette"), |
| 452 | | m_nvram(*this, "nvram") , |
| 453 | | m_workram(*this, "workram"), |
| 454 | | m_tileram(*this, "tileram"), |
| 455 | | m_colram(*this, "colram") { } |
| 455 | m_palette(*this, "palette") { } |
| 456 | 456 | |
| 457 | | required_device<cpu_device> m_maincpu; |
| 458 | | required_device<msm5205_device> m_msm; |
| 459 | | required_device<gfxdecode_device> m_gfxdecode; |
| 460 | | required_device<palette_device> m_palette; |
| 461 | | |
| 462 | | required_shared_ptr<UINT8> m_nvram; |
| 457 | required_shared_ptr<UINT8> m_nvram; |
| 463 | 458 | required_shared_ptr<UINT8> m_workram; |
| 464 | 459 | required_shared_ptr<UINT8> m_tileram; |
| 465 | 460 | required_shared_ptr<UINT8> m_colram; |
| 466 | | |
| 467 | 461 | UINT8* m_vram; |
| 468 | 462 | UINT8 m_bank; |
| 469 | 463 | int m_irq0_ack; |
| r243483 | r243484 | |
| 472 | 466 | int m_m5205_part; |
| 473 | 467 | int m_m5205_sambit0; |
| 474 | 468 | int m_m5205_sambit1; |
| 475 | | |
| 476 | 469 | DECLARE_READ8_MEMBER(banked_ram_r); |
| 477 | 470 | DECLARE_WRITE8_MEMBER(banked_ram_w); |
| 478 | | DECLARE_WRITE8_MEMBER(bank_w); |
| 479 | | DECLARE_READ8_MEMBER(backupram_r); |
| 480 | | DECLARE_WRITE8_MEMBER(backupram_w); |
| 471 | DECLARE_WRITE8_MEMBER(mastboy_bank_w); |
| 472 | DECLARE_READ8_MEMBER(mastboy_backupram_r); |
| 473 | DECLARE_WRITE8_MEMBER(mastboy_backupram_w); |
| 481 | 474 | DECLARE_WRITE8_MEMBER(backupram_enable_w); |
| 482 | | DECLARE_WRITE8_MEMBER(msm5205_sambit0_w); |
| 483 | | DECLARE_WRITE8_MEMBER(msm5205_sambit1_w); |
| 484 | | DECLARE_WRITE8_MEMBER(msm5205_data_w); |
| 485 | | DECLARE_WRITE8_MEMBER(irq0_ack_w); |
| 486 | | DECLARE_READ8_MEMBER(port_38_read); |
| 487 | | DECLARE_READ8_MEMBER(nmi_read); |
| 488 | | DECLARE_WRITE8_MEMBER(msm5205_reset_w); |
| 489 | | DECLARE_WRITE_LINE_MEMBER(adpcm_int); |
| 490 | | |
| 491 | | virtual void machine_start(); |
| 475 | DECLARE_WRITE8_MEMBER(msm5205_mastboy_m5205_sambit0_w); |
| 476 | DECLARE_WRITE8_MEMBER(msm5205_mastboy_m5205_sambit1_w); |
| 477 | DECLARE_WRITE8_MEMBER(mastboy_msm5205_data_w); |
| 478 | DECLARE_WRITE8_MEMBER(mastboy_irq0_ack_w); |
| 479 | DECLARE_READ8_MEMBER(mastboy_port_38_read); |
| 480 | DECLARE_READ8_MEMBER(mastboy_nmi_read); |
| 481 | DECLARE_WRITE8_MEMBER(mastboy_msm5205_reset_w); |
| 482 | DECLARE_DRIVER_INIT(mastboy); |
| 492 | 483 | virtual void machine_reset(); |
| 493 | 484 | virtual void video_start(); |
| 494 | | |
| 495 | | UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 496 | | |
| 497 | | INTERRUPT_GEN_MEMBER(interrupt); |
| 485 | UINT32 screen_update_mastboy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 486 | INTERRUPT_GEN_MEMBER(mastboy_interrupt); |
| 487 | DECLARE_WRITE_LINE_MEMBER(mastboy_adpcm_int); |
| 488 | required_device<cpu_device> m_maincpu; |
| 489 | required_device<msm5205_device> m_msm; |
| 490 | required_device<gfxdecode_device> m_gfxdecode; |
| 491 | required_device<palette_device> m_palette; |
| 498 | 492 | }; |
| 499 | 493 | |
| 500 | 494 | |
| r243483 | r243484 | |
| 503 | 497 | void mastboy_state::video_start() |
| 504 | 498 | { |
| 505 | 499 | m_gfxdecode->gfx(0)->set_source(m_vram); |
| 506 | | |
| 507 | | save_pointer(NAME(m_vram), 0x10000); |
| 508 | 500 | } |
| 509 | 501 | |
| 510 | | UINT32 mastboy_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| 502 | UINT32 mastboy_state::screen_update_mastboy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| 511 | 503 | { |
| 512 | 504 | int y,x,i; |
| 513 | 505 | int count = 0x000; |
| r243483 | r243484 | |
| 617 | 609 | } |
| 618 | 610 | } |
| 619 | 611 | |
| 620 | | WRITE8_MEMBER(mastboy_state::bank_w) |
| 612 | WRITE8_MEMBER(mastboy_state::mastboy_bank_w) |
| 621 | 613 | { |
| 622 | 614 | // controls access to banked ram / rom |
| 623 | 615 | m_bank = data; |
| r243483 | r243484 | |
| 625 | 617 | |
| 626 | 618 | /* Backup RAM access */ |
| 627 | 619 | |
| 628 | | READ8_MEMBER(mastboy_state::backupram_r) |
| 620 | READ8_MEMBER(mastboy_state::mastboy_backupram_r) |
| 629 | 621 | { |
| 630 | 622 | return m_nvram[offset]; |
| 631 | 623 | } |
| 632 | 624 | |
| 633 | | WRITE8_MEMBER(mastboy_state::backupram_w) |
| 625 | WRITE8_MEMBER(mastboy_state::mastboy_backupram_w) |
| 634 | 626 | { |
| 635 | 627 | // if (m_backupram_enabled) |
| 636 | 628 | // { |
| r243483 | r243484 | |
| 651 | 643 | |
| 652 | 644 | /* MSM5205 Related */ |
| 653 | 645 | |
| 654 | | WRITE8_MEMBER(mastboy_state::msm5205_sambit0_w) |
| 646 | WRITE8_MEMBER(mastboy_state::msm5205_mastboy_m5205_sambit0_w) |
| 655 | 647 | { |
| 656 | 648 | m_m5205_sambit0 = data & 1; |
| 657 | 649 | m_msm->playmode_w((1 << 2) | (m_m5205_sambit1 << 1) | (m_m5205_sambit0) ); |
| r243483 | r243484 | |
| 659 | 651 | logerror("msm5205 samplerate bit 0, set to %02x\n",data); |
| 660 | 652 | } |
| 661 | 653 | |
| 662 | | WRITE8_MEMBER(mastboy_state::msm5205_sambit1_w) |
| 654 | WRITE8_MEMBER(mastboy_state::msm5205_mastboy_m5205_sambit1_w) |
| 663 | 655 | { |
| 664 | 656 | m_m5205_sambit1 = data & 1; |
| 665 | 657 | |
| r243483 | r243484 | |
| 668 | 660 | logerror("msm5205 samplerate bit 0, set to %02x\n",data); |
| 669 | 661 | } |
| 670 | 662 | |
| 671 | | WRITE8_MEMBER(mastboy_state::msm5205_reset_w) |
| 663 | WRITE8_MEMBER(mastboy_state::mastboy_msm5205_reset_w) |
| 672 | 664 | { |
| 673 | 665 | m_m5205_part = 0; |
| 674 | 666 | m_msm->reset_w(data & 1); |
| 675 | 667 | } |
| 676 | 668 | |
| 677 | | WRITE8_MEMBER(mastboy_state::msm5205_data_w) |
| 669 | WRITE8_MEMBER(mastboy_state::mastboy_msm5205_data_w) |
| 678 | 670 | { |
| 679 | 671 | m_m5205_next = data; |
| 680 | 672 | } |
| 681 | 673 | |
| 682 | | WRITE_LINE_MEMBER(mastboy_state::adpcm_int) |
| 674 | WRITE_LINE_MEMBER(mastboy_state::mastboy_adpcm_int) |
| 683 | 675 | { |
| 684 | 676 | m_msm->data_w(m_m5205_next); |
| 685 | 677 | m_m5205_next >>= 4; |
| r243483 | r243484 | |
| 692 | 684 | |
| 693 | 685 | /* Interrupt Handling */ |
| 694 | 686 | |
| 695 | | WRITE8_MEMBER(mastboy_state::irq0_ack_w) |
| 687 | WRITE8_MEMBER(mastboy_state::mastboy_irq0_ack_w) |
| 696 | 688 | { |
| 697 | 689 | m_irq0_ack = data; |
| 698 | 690 | if ((data & 1) == 1) |
| 699 | 691 | m_maincpu->set_input_line(0, CLEAR_LINE); |
| 700 | 692 | } |
| 701 | 693 | |
| 702 | | INTERRUPT_GEN_MEMBER(mastboy_state::interrupt) |
| 694 | INTERRUPT_GEN_MEMBER(mastboy_state::mastboy_interrupt) |
| 703 | 695 | { |
| 704 | 696 | if ((m_irq0_ack & 1) == 1) |
| 705 | 697 | { |
| r243483 | r243484 | |
| 719 | 711 | |
| 720 | 712 | AM_RANGE(0xc000, 0xffff) AM_READWRITE(banked_ram_r,banked_ram_w) // mastboy bank area read / write |
| 721 | 713 | |
| 722 | | AM_RANGE(0xff000, 0xff7ff) AM_READWRITE(backupram_r,backupram_w) AM_SHARE("nvram") |
| 714 | AM_RANGE(0xff000, 0xff7ff) AM_READWRITE(mastboy_backupram_r,mastboy_backupram_w) AM_SHARE("nvram") |
| 723 | 715 | |
| 724 | 716 | AM_RANGE(0xff800, 0xff807) AM_READ_PORT("P1") |
| 725 | 717 | AM_RANGE(0xff808, 0xff80f) AM_READ_PORT("P2") |
| 726 | 718 | AM_RANGE(0xff810, 0xff817) AM_READ_PORT("DSW1") |
| 727 | 719 | AM_RANGE(0xff818, 0xff81f) AM_READ_PORT("DSW2") |
| 728 | 720 | |
| 729 | | AM_RANGE(0xff820, 0xff827) AM_WRITE(bank_w) |
| 730 | | AM_RANGE(0xff828, 0xff828) AM_DEVWRITE("saa", saa1099_device, data_w) |
| 731 | | AM_RANGE(0xff829, 0xff829) AM_DEVWRITE("saa", saa1099_device, control_w) |
| 732 | | AM_RANGE(0xff830, 0xff830) AM_WRITE(msm5205_data_w) |
| 733 | | AM_RANGE(0xff838, 0xff838) AM_WRITE(irq0_ack_w) |
| 734 | | AM_RANGE(0xff839, 0xff839) AM_WRITE(msm5205_sambit0_w) |
| 735 | | AM_RANGE(0xff83a, 0xff83a) AM_WRITE(msm5205_sambit1_w) |
| 736 | | AM_RANGE(0xff83b, 0xff83b) AM_WRITE(msm5205_reset_w) |
| 721 | AM_RANGE(0xff820, 0xff827) AM_WRITE(mastboy_bank_w) |
| 722 | AM_RANGE(0xff828, 0xff828) AM_DEVWRITE("saa", saa1099_device, saa1099_data_w) |
| 723 | AM_RANGE(0xff829, 0xff829) AM_DEVWRITE("saa", saa1099_device, saa1099_control_w) |
| 724 | AM_RANGE(0xff830, 0xff830) AM_WRITE(mastboy_msm5205_data_w) |
| 725 | AM_RANGE(0xff838, 0xff838) AM_WRITE(mastboy_irq0_ack_w) |
| 726 | AM_RANGE(0xff839, 0xff839) AM_WRITE(msm5205_mastboy_m5205_sambit0_w) |
| 727 | AM_RANGE(0xff83a, 0xff83a) AM_WRITE(msm5205_mastboy_m5205_sambit1_w) |
| 728 | AM_RANGE(0xff83b, 0xff83b) AM_WRITE(mastboy_msm5205_reset_w) |
| 737 | 729 | AM_RANGE(0xff83c, 0xff83c) AM_WRITE(backupram_enable_w) |
| 738 | 730 | |
| 739 | 731 | AM_RANGE(0xffc00, 0xfffff) AM_RAM // Internal RAM |
| r243483 | r243484 | |
| 741 | 733 | |
| 742 | 734 | /* Ports */ |
| 743 | 735 | |
| 744 | | READ8_MEMBER(mastboy_state::port_38_read) |
| 736 | READ8_MEMBER(mastboy_state::mastboy_port_38_read) |
| 745 | 737 | { |
| 746 | 738 | return 0x00; |
| 747 | 739 | } |
| 748 | 740 | |
| 749 | | READ8_MEMBER(mastboy_state::nmi_read) |
| 741 | READ8_MEMBER(mastboy_state::mastboy_nmi_read) |
| 750 | 742 | { |
| 751 | 743 | // this is read in the NMI, it's related to the Z180 MMU I think, must return right value or game jumps to 0000 |
| 752 | 744 | return 0x00; |
| 753 | 745 | } |
| 754 | 746 | |
| 755 | 747 | static ADDRESS_MAP_START( mastboy_io_map, AS_IO, 8, mastboy_state ) |
| 756 | | AM_RANGE(0x38, 0x38) AM_READ(port_38_read) |
| 757 | | AM_RANGE(0x39, 0x39) AM_READ(nmi_read) |
| 748 | AM_RANGE(0x38, 0x38) AM_READ(mastboy_port_38_read) |
| 749 | AM_RANGE(0x39, 0x39) AM_READ(mastboy_nmi_read) |
| 758 | 750 | ADDRESS_MAP_END |
| 759 | 751 | |
| 760 | 752 | /* Input Ports */ |
| r243483 | r243484 | |
| 874 | 866 | |
| 875 | 867 | /* Machine Functions / Driver */ |
| 876 | 868 | |
| 877 | | void mastboy_state::machine_start() |
| 878 | | { |
| 879 | | m_vram = memregion( "gfx1" )->base(); // makes decoding the RAM based tiles easier this way |
| 880 | | |
| 881 | | save_item(NAME(m_bank)); |
| 882 | | save_item(NAME(m_irq0_ack)); |
| 883 | | save_item(NAME(m_backupram_enabled)); |
| 884 | | save_item(NAME(m_m5205_next)); |
| 885 | | save_item(NAME(m_m5205_part)); |
| 886 | | save_item(NAME(m_m5205_sambit0)); |
| 887 | | save_item(NAME(m_m5205_sambit1)); |
| 888 | | } |
| 889 | | |
| 890 | 869 | void mastboy_state::machine_reset() |
| 891 | 870 | { |
| 892 | 871 | /* clear some ram */ |
| r243483 | r243484 | |
| 906 | 885 | MCFG_CPU_ADD("maincpu", Z180, 12000000/2) /* HD647180X0CP6-1M1R */ |
| 907 | 886 | MCFG_CPU_PROGRAM_MAP(mastboy_map) |
| 908 | 887 | MCFG_CPU_IO_MAP(mastboy_io_map) |
| 909 | | MCFG_CPU_VBLANK_INT_DRIVER("screen", mastboy_state, interrupt) |
| 888 | MCFG_CPU_VBLANK_INT_DRIVER("screen", mastboy_state, mastboy_interrupt) |
| 910 | 889 | |
| 911 | 890 | MCFG_NVRAM_ADD_1FILL("nvram") |
| 912 | 891 | |
| r243483 | r243484 | |
| 917 | 896 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
| 918 | 897 | MCFG_SCREEN_SIZE(256, 256) |
| 919 | 898 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1) |
| 920 | | MCFG_SCREEN_UPDATE_DRIVER(mastboy_state, screen_update) |
| 899 | MCFG_SCREEN_UPDATE_DRIVER(mastboy_state, screen_update_mastboy) |
| 921 | 900 | MCFG_SCREEN_PALETTE("palette") |
| 922 | 901 | |
| 923 | 902 | MCFG_GFXDECODE_ADD("gfxdecode", "palette", mastboy) |
| r243483 | r243484 | |
| 930 | 909 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) |
| 931 | 910 | |
| 932 | 911 | MCFG_SOUND_ADD("msm", MSM5205, 384000) |
| 933 | | MCFG_MSM5205_VCLK_CB(WRITELINE(mastboy_state, adpcm_int)) /* interrupt function */ |
| 912 | MCFG_MSM5205_VCLK_CB(WRITELINE(mastboy_state, mastboy_adpcm_int)) /* interrupt function */ |
| 934 | 913 | MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_SEX_4B) /* 4KHz 4-bit */ |
| 935 | 914 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) |
| 936 | 915 | MACHINE_CONFIG_END |
| r243483 | r243484 | |
| 1014 | 993 | /* 0x1c0000 to 0x1fffff EMPTY */ |
| 1015 | 994 | ROM_END |
| 1016 | 995 | |
| 996 | DRIVER_INIT_MEMBER(mastboy_state,mastboy) |
| 997 | { |
| 998 | m_vram = memregion( "gfx1" )->base(); // makes decoding the RAM based tiles easier this way |
| 999 | } |
| 1017 | 1000 | |
| 1018 | | GAME( 1991, mastboy, 0, mastboy, mastboy, driver_device, 0, ROT0, "Gaelco", "Master Boy (Spanish, PCB Rev A)", GAME_SUPPORTS_SAVE ) |
| 1019 | | GAME( 1991, mastboyi, mastboy, mastboy, mastboy, driver_device, 0, ROT0, "Gaelco", "Master Boy (Italian, PCB Rev A)", GAME_SUPPORTS_SAVE ) |
| 1001 | GAME( 1991, mastboy, 0, mastboy, mastboy, mastboy_state, mastboy, ROT0, "Gaelco", "Master Boy (Spanish, PCB Rev A)", 0 ) |
| 1002 | GAME( 1991, mastboyi, mastboy, mastboy, mastboy, mastboy_state, mastboy, ROT0, "Gaelco", "Master Boy (Italian, PCB Rev A)", 0 ) |
trunk/src/mame/drivers/mitchell.c
| r243483 | r243484 | |
| 1459 | 1459 | ROM_LOAD( "pko-voi2.3d", 0x20000, 0x20000, CRC(18398bf6) SHA1(9e9ab85383350d01ba597951a48f18ecee1f46c6) ) |
| 1460 | 1460 | ROM_END |
| 1461 | 1461 | |
| 1462 | |
| 1462 | 1463 | ROM_START( pkladiesbl ) |
| 1463 | 1464 | ROM_REGION( 0x50000*2, "maincpu", 0 ) |
| 1464 | 1465 | // you would expect one half of this to be decrypted code, and the other half to be decrypted data |
| r243483 | r243484 | |
| 1518 | 1519 | |
| 1519 | 1520 | ROM_START( pang ) |
| 1520 | 1521 | ROM_REGION( 0x50000, "maincpu", 0 ) |
| 1521 | | ROM_LOAD( "pwe_06.11h", 0x00000, 0x08000, CRC(68be52cd) SHA1(67b9ac15f4cbd3959c417f979beae36ae17334c1) ) |
| 1522 | | ROM_LOAD( "pwe_07.13h", 0x10000, 0x20000, CRC(4a2e70f6) SHA1(039db1b51374e5637b5c2ba8e18ccd08816613a7) ) |
| 1522 | ROM_LOAD( "pang6.bin", 0x00000, 0x08000, CRC(68be52cd) SHA1(67b9ac15f4cbd3959c417f979beae36ae17334c1) ) |
| 1523 | ROM_LOAD( "pang7.bin", 0x10000, 0x20000, CRC(4a2e70f6) SHA1(039db1b51374e5637b5c2ba8e18ccd08816613a7) ) |
| 1523 | 1524 | |
| 1524 | 1525 | ROM_REGION( 0x100000, "gfx1", ROMREGION_ERASEFF ) |
| 1525 | | ROM_LOAD( "pwe_02.1e", 0x000000, 0x20000, CRC(3a5883f5) SHA1(a8a33071e10f5992e80afdb782c334829f9ae27f) ) /* chars */ |
| 1526 | | ROM_LOAD( "pw_03.2e", 0x020000, 0x20000, CRC(79a8ed08) SHA1(c1e43889e29b80c7fe2c09b11eecde24450a1ff5) ) /* also found as PWJ 03 */ |
| 1526 | ROM_LOAD( "pang_09.bin", 0x000000, 0x20000, CRC(3a5883f5) SHA1(a8a33071e10f5992e80afdb782c334829f9ae27f) ) /* chars */ |
| 1527 | ROM_LOAD( "bb3.bin", 0x020000, 0x20000, CRC(79a8ed08) SHA1(c1e43889e29b80c7fe2c09b11eecde24450a1ff5) ) |
| 1527 | 1528 | /* 40000-7ffff empty */ |
| 1528 | | ROM_LOAD( "pwe_04.1g", 0x080000, 0x20000, CRC(166a16ae) SHA1(7f907c78b7ac8c99e3d79761a6ae689c77e3a1f5) ) |
| 1529 | | ROM_LOAD( "pw_05.2g", 0x0a0000, 0x20000, CRC(2fb3db6c) SHA1(328814d28569fec763975a8ae4c2767517a680af) ) /* also found as PWJ 05 */ |
| 1529 | ROM_LOAD( "pang_11.bin", 0x080000, 0x20000, CRC(166a16ae) SHA1(7f907c78b7ac8c99e3d79761a6ae689c77e3a1f5) ) |
| 1530 | ROM_LOAD( "bb5.bin", 0x0a0000, 0x20000, CRC(2fb3db6c) SHA1(328814d28569fec763975a8ae4c2767517a680af) ) |
| 1530 | 1531 | /* c0000-fffff empty */ |
| 1531 | 1532 | |
| 1532 | 1533 | ROM_REGION( 0x040000, "gfx2", 0 ) |
| 1533 | | ROM_LOAD( "pw_10.2k", 0x000000, 0x20000, CRC(fdba4f6e) SHA1(9a2412a97682bbd25b8942520a0c02616bd59353) ) /* sprites */ |
| 1534 | | ROM_LOAD( "pw_9.1k", 0x020000, 0x20000, CRC(39f47a63) SHA1(05675ad45909a7d723acaf4d53b4e588d4e048b9) ) |
| 1534 | ROM_LOAD( "bb10.bin", 0x000000, 0x20000, CRC(fdba4f6e) SHA1(9a2412a97682bbd25b8942520a0c02616bd59353) ) /* sprites */ |
| 1535 | ROM_LOAD( "bb9.bin", 0x020000, 0x20000, CRC(39f47a63) SHA1(05675ad45909a7d723acaf4d53b4e588d4e048b9) ) |
| 1535 | 1536 | |
| 1536 | 1537 | ROM_REGION( 0x80000, "oki", 0 ) /* OKIM */ |
| 1537 | | ROM_LOAD( "pw_01.1d", 0x00000, 0x20000, CRC(c52e5b8e) SHA1(933b954bfdd2d67e28b032ffabde192531249c1f) ) |
| 1538 | ROM_LOAD( "bb1.bin", 0x00000, 0x20000, CRC(c52e5b8e) SHA1(933b954bfdd2d67e28b032ffabde192531249c1f) ) |
| 1538 | 1539 | ROM_END |
| 1539 | 1540 | |
| 1540 | | ROM_START( bbros ) |
| 1541 | | ROM_REGION( 0x50000, "maincpu", 0 ) |
| 1542 | | ROM_LOAD( "pwu_06.11h", 0x00000, 0x08000, CRC(a3041ca4) SHA1(2accb2151f621e4802211efe986969ebd3acb6d4) ) |
| 1543 | | ROM_LOAD( "pwu_07.13h", 0x10000, 0x20000, CRC(09231c68) SHA1(9e735487a99a5eb89a6abb81d5d9a20414ad75bf) ) |
| 1544 | 1541 | |
| 1545 | | ROM_REGION( 0x100000, "gfx1", ROMREGION_ERASEFF ) |
| 1546 | | ROM_LOAD( "pwu_02.1e", 0x000000, 0x20000, CRC(62f29992) SHA1(af4d43f76228e9908fbfbf83af2f577b84cc5e1d) ) /* chars */ |
| 1547 | | ROM_LOAD( "pw_03.2e", 0x020000, 0x20000, CRC(79a8ed08) SHA1(c1e43889e29b80c7fe2c09b11eecde24450a1ff5) ) |
| 1548 | | /* 40000-7ffff empty */ |
| 1549 | | ROM_LOAD( "pwu_04.1g", 0x080000, 0x20000, CRC(f705aa89) SHA1(cce2d90f7b767044e84bc22a16474a2f6496292e) ) |
| 1550 | | ROM_LOAD( "pw_05.2g", 0x0a0000, 0x20000, CRC(2fb3db6c) SHA1(328814d28569fec763975a8ae4c2767517a680af) ) |
| 1551 | | /* c0000-fffff empty */ |
| 1552 | 1542 | |
| 1553 | | ROM_REGION( 0x040000, "gfx2", 0 ) |
| 1554 | | ROM_LOAD( "pw_10.2k", 0x000000, 0x20000, CRC(fdba4f6e) SHA1(9a2412a97682bbd25b8942520a0c02616bd59353) ) /* sprites */ |
| 1555 | | ROM_LOAD( "pw_9.1k", 0x020000, 0x20000, CRC(39f47a63) SHA1(05675ad45909a7d723acaf4d53b4e588d4e048b9) ) |
| 1556 | | |
| 1557 | | ROM_REGION( 0x80000, "oki", 0 ) /* OKIM */ |
| 1558 | | ROM_LOAD( "pw_01.1d", 0x00000, 0x20000, CRC(c52e5b8e) SHA1(933b954bfdd2d67e28b032ffabde192531249c1f) ) |
| 1559 | | ROM_END |
| 1560 | | |
| 1561 | | ROM_START( pompingw ) |
| 1562 | | ROM_REGION( 0x50000, "maincpu", 0 ) |
| 1563 | | ROM_LOAD( "pwj_06.11h", 0x00000, 0x08000, CRC(4a0a6426) SHA1(c61346c5f80507bdf543e9ea32ee3f814be8e27f) ) |
| 1564 | | ROM_LOAD( "pwj_07.13h", 0x10000, 0x20000, CRC(a9402420) SHA1(2ca3aa59d561826477e3509fcaeeec753d64d419) ) |
| 1565 | | |
| 1566 | | ROM_REGION( 0x100000, "gfx1", ROMREGION_ERASEFF ) |
| 1567 | | ROM_LOAD( "pw_02.1e", 0x000000, 0x20000, CRC(4b5992e4) SHA1(2071a1fcfc739d7ca837c03133909101b462d5a6) ) /* chars */ |
| 1568 | | ROM_LOAD( "pw_03.2e", 0x020000, 0x20000, CRC(79a8ed08) SHA1(c1e43889e29b80c7fe2c09b11eecde24450a1ff5) ) |
| 1569 | | /* 40000-7ffff empty */ |
| 1570 | | ROM_LOAD( "pwj_04.1g", 0x080000, 0x20000, CRC(01e49081) SHA1(a29ffec199f196a2b3731e4863e863bdd04e2c58) ) |
| 1571 | | ROM_LOAD( "pw_05.2g", 0x0a0000, 0x20000, CRC(2fb3db6c) SHA1(328814d28569fec763975a8ae4c2767517a680af) ) |
| 1572 | | /* c0000-fffff empty */ |
| 1573 | | |
| 1574 | | ROM_REGION( 0x040000, "gfx2", 0 ) |
| 1575 | | ROM_LOAD( "pw_10.2k", 0x000000, 0x20000, CRC(fdba4f6e) SHA1(9a2412a97682bbd25b8942520a0c02616bd59353) ) /* sprites */ |
| 1576 | | ROM_LOAD( "pw_9.1k", 0x020000, 0x20000, CRC(39f47a63) SHA1(05675ad45909a7d723acaf4d53b4e588d4e048b9) ) |
| 1577 | | |
| 1578 | | ROM_REGION( 0x80000, "oki", 0 ) /* OKIM */ |
| 1579 | | ROM_LOAD( "pw_01.1d", 0x00000, 0x20000, CRC(c52e5b8e) SHA1(933b954bfdd2d67e28b032ffabde192531249c1f) ) |
| 1580 | | ROM_END |
| 1581 | | |
| 1582 | 1543 | ROM_START( pangb ) |
| 1583 | 1544 | ROM_REGION( 2*0x50000, "maincpu", 0 ) |
| 1584 | 1545 | ROM_LOAD( "pang_04.bin", 0x50000, 0x08000, CRC(f68f88a5) SHA1(6f57891d399a46d8d5a531771129552ed420d10a) ) /* Decrypted opcode + data */ |
| r243483 | r243484 | |
| 1587 | 1548 | ROM_LOAD( "pang_03.bin", 0x10000, 0x20000, CRC(0c8477ae) SHA1(a31a8c00407dfc3017d56e29fac6114b73248030) ) /* Decrypted data */ |
| 1588 | 1549 | |
| 1589 | 1550 | ROM_REGION( 0x100000, "gfx1", ROMREGION_ERASEFF ) |
| 1590 | | ROM_LOAD( "bb9.bin", 0x000000, 0x20000, CRC(3a5883f5) SHA1(a8a33071e10f5992e80afdb782c334829f9ae27f) ) /* chars */ |
| 1551 | ROM_LOAD( "pang_09.bin", 0x000000, 0x20000, CRC(3a5883f5) SHA1(a8a33071e10f5992e80afdb782c334829f9ae27f) ) /* chars */ |
| 1591 | 1552 | ROM_LOAD( "bb3.bin", 0x020000, 0x20000, CRC(79a8ed08) SHA1(c1e43889e29b80c7fe2c09b11eecde24450a1ff5) ) |
| 1592 | 1553 | /* 40000-7ffff empty */ |
| 1593 | | ROM_LOAD( "bb11.bin", 0x080000, 0x20000, CRC(166a16ae) SHA1(7f907c78b7ac8c99e3d79761a6ae689c77e3a1f5) ) |
| 1554 | ROM_LOAD( "pang_11.bin", 0x080000, 0x20000, CRC(166a16ae) SHA1(7f907c78b7ac8c99e3d79761a6ae689c77e3a1f5) ) |
| 1594 | 1555 | ROM_LOAD( "bb5.bin", 0x0a0000, 0x20000, CRC(2fb3db6c) SHA1(328814d28569fec763975a8ae4c2767517a680af) ) |
| 1595 | 1556 | /* c0000-fffff empty */ |
| 1596 | 1557 | |
| r243483 | r243484 | |
| 1610 | 1571 | ROM_CONTINUE(0x10000, 0x20000 ) /* Decrypted data */ |
| 1611 | 1572 | |
| 1612 | 1573 | ROM_REGION( 0x100000, "gfx1", ROMREGION_ERASEFF ) |
| 1613 | | ROM_LOAD( "bb9.bin", 0x000000, 0x20000, CRC(3a5883f5) SHA1(a8a33071e10f5992e80afdb782c334829f9ae27f) ) /* chars */ |
| 1574 | ROM_LOAD( "pang_09.bin", 0x000000, 0x20000, CRC(3a5883f5) SHA1(a8a33071e10f5992e80afdb782c334829f9ae27f) ) /* chars */ |
| 1614 | 1575 | ROM_LOAD( "bb3.bin", 0x020000, 0x20000, CRC(79a8ed08) SHA1(c1e43889e29b80c7fe2c09b11eecde24450a1ff5) ) |
| 1615 | 1576 | /* 40000-7ffff empty */ |
| 1616 | | ROM_LOAD( "bb11.bin", 0x080000, 0x20000, CRC(166a16ae) SHA1(7f907c78b7ac8c99e3d79761a6ae689c77e3a1f5) ) |
| 1577 | ROM_LOAD( "pang_11.bin", 0x080000, 0x20000, CRC(166a16ae) SHA1(7f907c78b7ac8c99e3d79761a6ae689c77e3a1f5) ) |
| 1617 | 1578 | ROM_LOAD( "bb5.bin", 0x0a0000, 0x20000, CRC(2fb3db6c) SHA1(328814d28569fec763975a8ae4c2767517a680af) ) |
| 1618 | 1579 | /* c0000-fffff empty */ |
| 1619 | 1580 | |
| r243483 | r243484 | |
| 1693 | 1654 | ROM_LOAD( "pang.10", 0x010000, 0x10000, CRC(082151ee) SHA1(0857b9f7430e0fc6217eafbaf008ff9da8e7a493) ) |
| 1694 | 1655 | ROM_END |
| 1695 | 1656 | |
| 1657 | |
| 1658 | ROM_START( bbros ) |
| 1659 | ROM_REGION( 0x50000, "maincpu", 0 ) |
| 1660 | ROM_LOAD( "bb6.bin", 0x00000, 0x08000, CRC(a3041ca4) SHA1(2accb2151f621e4802211efe986969ebd3acb6d4) ) |
| 1661 | ROM_LOAD( "bb7.bin", 0x10000, 0x20000, CRC(09231c68) SHA1(9e735487a99a5eb89a6abb81d5d9a20414ad75bf) ) |
| 1662 | |
| 1663 | ROM_REGION( 0x100000, "gfx1", ROMREGION_ERASEFF ) |
| 1664 | ROM_LOAD( "bb2.bin", 0x000000, 0x20000, CRC(62f29992) SHA1(af4d43f76228e9908fbfbf83af2f577b84cc5e1d) ) /* chars */ |
| 1665 | ROM_LOAD( "bb3.bin", 0x020000, 0x20000, CRC(79a8ed08) SHA1(c1e43889e29b80c7fe2c09b11eecde24450a1ff5) ) |
| 1666 | /* 40000-7ffff empty */ |
| 1667 | ROM_LOAD( "bb4.bin", 0x080000, 0x20000, CRC(f705aa89) SHA1(cce2d90f7b767044e84bc22a16474a2f6496292e) ) |
| 1668 | ROM_LOAD( "bb5.bin", 0x0a0000, 0x20000, CRC(2fb3db6c) SHA1(328814d28569fec763975a8ae4c2767517a680af) ) |
| 1669 | /* c0000-fffff empty */ |
| 1670 | |
| 1671 | ROM_REGION( 0x040000, "gfx2", 0 ) |
| 1672 | ROM_LOAD( "bb10.bin", 0x000000, 0x20000, CRC(fdba4f6e) SHA1(9a2412a97682bbd25b8942520a0c02616bd59353) ) /* sprites */ |
| 1673 | ROM_LOAD( "bb9.bin", 0x020000, 0x20000, CRC(39f47a63) SHA1(05675ad45909a7d723acaf4d53b4e588d4e048b9) ) |
| 1674 | |
| 1675 | ROM_REGION( 0x80000, "oki", 0 ) /* OKIM */ |
| 1676 | ROM_LOAD( "bb1.bin", 0x00000, 0x20000, CRC(c52e5b8e) SHA1(933b954bfdd2d67e28b032ffabde192531249c1f) ) |
| 1677 | ROM_END |
| 1678 | |
| 1679 | ROM_START( pompingw ) |
| 1680 | ROM_REGION( 0x50000, "maincpu", 0 ) |
| 1681 | ROM_LOAD( "pwj_06.11h", 0x00000, 0x08000, CRC(4a0a6426) SHA1(c61346c5f80507bdf543e9ea32ee3f814be8e27f) ) |
| 1682 | ROM_LOAD( "pwj_07.13h", 0x10000, 0x20000, CRC(a9402420) SHA1(2ca3aa59d561826477e3509fcaeeec753d64d419) ) |
| 1683 | |
| 1684 | ROM_REGION( 0x100000, "gfx1", ROMREGION_ERASEFF ) |
| 1685 | ROM_LOAD( "pw_02.1e", 0x000000, 0x20000, CRC(4b5992e4) SHA1(2071a1fcfc739d7ca837c03133909101b462d5a6) ) /* chars */ |
| 1686 | ROM_LOAD( "bb3.bin", 0x020000, 0x20000, CRC(79a8ed08) SHA1(c1e43889e29b80c7fe2c09b11eecde24450a1ff5) ) |
| 1687 | /* 40000-7ffff empty */ |
| 1688 | ROM_LOAD( "pwj_04.1g", 0x080000, 0x20000, CRC(01e49081) SHA1(a29ffec199f196a2b3731e4863e863bdd04e2c58) ) |
| 1689 | ROM_LOAD( "bb5.bin", 0x0a0000, 0x20000, CRC(2fb3db6c) SHA1(328814d28569fec763975a8ae4c2767517a680af) ) |
| 1690 | /* c0000-fffff empty */ |
| 1691 | |
| 1692 | ROM_REGION( 0x040000, "gfx2", 0 ) |
| 1693 | ROM_LOAD( "bb10.bin", 0x000000, 0x20000, CRC(fdba4f6e) SHA1(9a2412a97682bbd25b8942520a0c02616bd59353) ) /* sprites */ |
| 1694 | ROM_LOAD( "bb9.bin", 0x020000, 0x20000, CRC(39f47a63) SHA1(05675ad45909a7d723acaf4d53b4e588d4e048b9) ) |
| 1695 | |
| 1696 | ROM_REGION( 0x80000, "oki", 0 ) /* OKIM */ |
| 1697 | ROM_LOAD( "bb1.bin", 0x00000, 0x20000, CRC(c52e5b8e) SHA1(933b954bfdd2d67e28b032ffabde192531249c1f) ) |
| 1698 | ROM_END |
| 1699 | |
| 1696 | 1700 | ROM_START( cworld ) |
| 1697 | 1701 | ROM_REGION( 0x50000, "maincpu", 0 ) |
| 1698 | 1702 | ROM_LOAD( "cw05.bin", 0x00000, 0x08000, CRC(d3c1723d) SHA1(b67f63e39f4301909c967555222820b54e98a205) ) |
| r243483 | r243484 | |
| 1741 | 1745 | ROM_LOAD( "q2-01.rom", 0x00000, 0x20000, CRC(149e7a89) SHA1(103ab075b92c895e9991e7ef23df2b38d6a792c6) ) |
| 1742 | 1746 | ROM_END |
| 1743 | 1747 | |
| 1744 | | ROM_START( spang ) |
| 1745 | | ROM_REGION( 0x50000, "maincpu", 0 ) |
| 1746 | | ROM_LOAD( "spe_06.11h", 0x00000, 0x08000, CRC(1af106fb) SHA1(476ba5c95e090663a47d3f98451bf3b79bac7748) ) |
| 1747 | | ROM_LOAD( "spe_07.13h", 0x10000, 0x20000, CRC(208b5f54) SHA1(9d44f7240b56756dcb69d110036b1cb13b1bbc02) ) |
| 1748 | | ROM_LOAD( "spe_08.14h", 0x30000, 0x20000, CRC(2bc03ade) SHA1(3a8ee342b0556a8f6d5a417c98e5c3c43422713d) ) |
| 1749 | 1748 | |
| 1750 | | ROM_REGION( 0x100000, "gfx1", ROMREGION_ERASEFF ) |
| 1751 | | ROM_LOAD( "spe_02.1e", 0x000000, 0x20000, CRC(63c9dfd2) SHA1(ddc8ddee336855e857fb3124c8b64af33c2d0080) ) /* chars */ |
| 1752 | | ROM_LOAD( "spj_03.3e", 0x020000, 0x20000, CRC(3ae28bc1) SHA1(4f6d9a86f624598ebc0825b50941adfb7436e98a) ) |
| 1753 | | /* 40000-7ffff empty */ |
| 1754 | | ROM_LOAD( "spe_04.1g", 0x080000, 0x20000, CRC(9d7b225b) SHA1(d949c91da6ba6b82df0b3445499761a98c7e2703) ) |
| 1755 | | ROM_LOAD( "spj_05.2g", 0x0a0000, 0x20000, CRC(4a060884) SHA1(f83d713aee4230fc04a1d5f1d4d79c64a5bf2753) ) |
| 1756 | | /* c0000-fffff empty */ |
| 1757 | 1749 | |
| 1758 | | ROM_REGION( 0x040000, "gfx2", 0 ) |
| 1759 | | ROM_LOAD( "spj_10.2k", 0x000000, 0x20000, CRC(eedd0ade) SHA1(f2da2eb743c68c5c9a56a94709527110cef5d91d) ) /* sprites */ |
| 1760 | | ROM_LOAD( "spj_09.1k", 0x020000, 0x20000, CRC(04b41b75) SHA1(946ed04a17f1f71085143d43905aa310ce1e05f4) ) |
| 1750 | /* seems to be the same basic hardware, but the memory map and io map are different at least.. */ |
| 1751 | ROM_START( mstworld ) |
| 1752 | ROM_REGION( 0x50000*2, "maincpu", 0 ) /* CPU1 code */ |
| 1753 | ROM_LOAD( "mw-1.rom", 0x00000, 0x080000, CRC(c4e51fb4) SHA1(60ad4ff2cec3a4d13b4aa0319dfcdab941404b1a) ) /* fixed code */ |
| 1761 | 1754 | |
| 1762 | | ROM_REGION( 0x80000, "oki", 0 ) /* OKIM */ |
| 1763 | | ROM_LOAD( "spe_01.1d", 0x00000, 0x20000, CRC(2d19c133) SHA1(b3ec226f35494dfc259e910895cec8a49dd2f846) ) |
| 1755 | ROM_REGION( 0x10000, "audiocpu", 0 ) /* CPU2 code */ |
| 1756 | ROM_LOAD( "mw-2.rom", 0x00000, 0x08000, CRC(12c4fea9) SHA1(4616f2d70022abcf89f244f3f365b39b96973368) ) |
| 1764 | 1757 | |
| 1765 | | ROM_REGION16_BE( 0x80, "eeprom", 0 ) |
| 1766 | | ROM_LOAD( "eeprom-spang.bin", 0x0000, 0x0080, CRC(deae1291) SHA1(f62f2ad99852903f1cea3f8c1f69fc11e4e7b48b) ) |
| 1767 | | ROM_END |
| 1758 | ROM_REGION( 0x080000, "user2", 0 ) /* Samples */ |
| 1759 | ROM_LOAD( "mw-3.rom", 0x00000, 0x080000, CRC(110c6a68) SHA1(915758cd467fbcdfa18ca99df036dca40dfc4649) ) |
| 1768 | 1760 | |
| 1769 | | ROM_START( sbbros ) |
| 1770 | | ROM_REGION( 0x50000, "maincpu", 0 ) |
| 1771 | | ROM_LOAD( "spu_06.11h", 0x00000, 0x08000, CRC(292eee6a) SHA1(d33368d2373a1ee9e24ada6aa045e0675c8e8160) ) |
| 1772 | | ROM_LOAD( "spu_07.13h", 0x10000, 0x20000, CRC(f46b698d) SHA1(6a1867f591aa0fb9e02dd472699df93f9d018793) ) |
| 1773 | | ROM_LOAD( "spu_08.14h", 0x30000, 0x20000, CRC(a75e7fbe) SHA1(0331d1a3e888678909f3e6d21f97896a5350e585) ) |
| 1761 | /* $00000-$20000 stays the same in all sound banks, */ |
| 1762 | /* the second half of the bank is what gets switched */ |
| 1763 | ROM_REGION( 0x100000, "oki", 0 ) /* Samples */ |
| 1764 | ROM_COPY( "user2", 0x000000, 0x000000, 0x020000) |
| 1765 | ROM_COPY( "user2", 0x000000, 0x020000, 0x020000) |
| 1766 | ROM_COPY( "user2", 0x000000, 0x040000, 0x020000) |
| 1767 | ROM_COPY( "user2", 0x020000, 0x060000, 0x020000) |
| 1768 | ROM_COPY( "user2", 0x000000, 0x080000, 0x020000) |
| 1769 | ROM_COPY( "user2", 0x040000, 0x0a0000, 0x020000) |
| 1770 | ROM_COPY( "user2", 0x000000, 0x0c0000, 0x020000) |
| 1771 | ROM_COPY( "user2", 0x060000, 0x0e0000, 0x020000) |
| 1774 | 1772 | |
| 1775 | | ROM_REGION( 0x100000, "gfx1", ROMREGION_ERASEFF ) |
| 1776 | | ROM_LOAD( "spu_02.1e", 0x000000, 0x20000, CRC(0c22ffc6) SHA1(f95b50617ef5cd8cffffacab0b96b4bfe8dd3a1e) ) /* chars */ |
| 1777 | | ROM_LOAD( "spj_03.3e", 0x020000, 0x20000, CRC(3ae28bc1) SHA1(4f6d9a86f624598ebc0825b50941adfb7436e98a) ) |
| 1778 | | /* 40000-7ffff empty */ |
| 1779 | | ROM_LOAD( "spu_04.1g", 0x080000, 0x20000, CRC(bb3dee5b) SHA1(e81875b9d9a56e91daa66375b22a4fa6dcd14faa) ) |
| 1780 | | ROM_LOAD( "spj_05.2g", 0x0a0000, 0x20000, CRC(4a060884) SHA1(f83d713aee4230fc04a1d5f1d4d79c64a5bf2753) ) |
| 1781 | | /* c0000-fffff empty */ |
| 1773 | ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT ) /* GFX */ |
| 1774 | ROM_LOAD( "mw-4.rom", 0x00000, 0x020000, CRC(28a3af15) SHA1(99547966b2b5e06e097c55bbbb86a1c2809fa98c) ) |
| 1775 | ROM_LOAD( "mw-5.rom", 0x20000, 0x020000, CRC(ffdf7e9f) SHA1(b7732837cc5606d4a868eeaaff438b1a86bd72d7) ) |
| 1776 | ROM_LOAD( "mw-6.rom", 0x40000, 0x020000, CRC(1ed773a3) SHA1(0e8517a5c9bed57ecf3bb850152b8c1e1bd3faaa) ) |
| 1777 | ROM_LOAD( "mw-7.rom", 0x60000, 0x020000, CRC(8eb7525c) SHA1(9c3fa9373803e9534c1ad7063d660abe130f7b49) ) |
| 1782 | 1778 | |
| 1783 | | ROM_REGION( 0x040000, "gfx2", 0 ) |
| 1784 | | ROM_LOAD( "spu_10.2k", 0x000000, 0x20000, CRC(d6675d8f) SHA1(1c65803fcce2305841e74772ae6ffb6e39edf5c6) ) /* sprites */ |
| 1785 | | ROM_LOAD( "spu_09.1k", 0x020000, 0x20000, CRC(8f678bc8) SHA1(66dc7c14cc012ffa9320cd63bc84977fa76ad738) ) |
| 1779 | ROM_REGION( 0x40000, "gfx2", ROMREGION_INVERT ) /* GFX */ |
| 1780 | ROM_LOAD( "mw-8.rom", 0x00000, 0x020000, CRC(b9b92a3c) SHA1(97191958a539c6f2eacb3956e8371acbaaa43795) ) |
| 1781 | ROM_LOAD( "mw-9.rom", 0x20000, 0x020000, CRC(75fc3375) SHA1(b2e7551bdbe2b0f1c28f6e912a8efaa5645b2ff5)) |
| 1782 | ROM_END |
| 1786 | 1783 | |
| 1787 | | ROM_REGION( 0x80000, "oki", 0 ) /* OKIM */ |
| 1788 | | ROM_LOAD( "spj_01.1d", 0x00000, 0x20000, CRC(b96ea126) SHA1(83fa71994518d40b8938520faa8701c63b7f579e) ) |
| 1789 | 1784 | |
| 1790 | | ROM_REGION16_BE( 0x80, "eeprom", 0 ) |
| 1791 | | ROM_LOAD( "eeprom-sbbros.bin", 0x0000, 0x0080, CRC(ed69d3cd) SHA1(89eb0ca65ffe30f5cbe6427f767f1f0870c8a990) ) |
| 1792 | | ROM_END |
| 1793 | 1785 | |
| 1794 | | ROM_START( spangj ) |
| 1786 | ROM_START( spang ) |
| 1795 | 1787 | ROM_REGION( 0x50000, "maincpu", 0 ) |
| 1796 | | ROM_LOAD( "spj_06.11h", 0x00000, 0x08000, CRC(1a548b0b) SHA1(3aa65028876ab6e176f5b227366e65212c944888) ) |
| 1797 | | ROM_LOAD( "spj_07.13h", 0x10000, 0x20000, CRC(14c2b765) SHA1(af0f965dd13d878bae7850cf8419b26511090579) ) |
| 1798 | | ROM_LOAD( "spj_08.14h", 0x30000, 0x20000, CRC(4be4e5b7) SHA1(6273e8bf5d9f5b100ecda20001808dcf86411d83) ) |
| 1788 | ROM_LOAD( "spe_06.rom", 0x00000, 0x08000, CRC(1af106fb) SHA1(476ba5c95e090663a47d3f98451bf3b79bac7748) ) |
| 1789 | ROM_LOAD( "spe_07.rom", 0x10000, 0x20000, CRC(208b5f54) SHA1(9d44f7240b56756dcb69d110036b1cb13b1bbc02) ) |
| 1790 | ROM_LOAD( "spe_08.rom", 0x30000, 0x20000, CRC(2bc03ade) SHA1(3a8ee342b0556a8f6d5a417c98e5c3c43422713d) ) |
| 1799 | 1791 | |
| 1800 | 1792 | ROM_REGION( 0x100000, "gfx1", ROMREGION_ERASEFF ) |
| 1801 | | ROM_LOAD( "spj_02.1e", 0x000000, 0x20000, CRC(419f69d7) SHA1(e3431b5ce3e687ba9a45cb6e0e0a2dfa3a9e5b29) ) /* chars */ |
| 1802 | | ROM_LOAD( "spj_03.3e", 0x020000, 0x20000, CRC(3ae28bc1) SHA1(4f6d9a86f624598ebc0825b50941adfb7436e98a) ) |
| 1793 | ROM_LOAD( "spe_02.rom", 0x000000, 0x20000, CRC(63c9dfd2) SHA1(ddc8ddee336855e857fb3124c8b64af33c2d0080) ) /* chars */ |
| 1794 | ROM_LOAD( "03.f2", 0x020000, 0x20000, CRC(3ae28bc1) SHA1(4f6d9a86f624598ebc0825b50941adfb7436e98a) ) |
| 1803 | 1795 | /* 40000-7ffff empty */ |
| 1804 | | ROM_LOAD( "spj_04.1g", 0x080000, 0x20000, CRC(6870506f) SHA1(13a12c012ea2efb0c8cd9dcfb4b5757ac08ee912) ) |
| 1805 | | ROM_LOAD( "spj_05.2g", 0x0a0000, 0x20000, CRC(4a060884) SHA1(f83d713aee4230fc04a1d5f1d4d79c64a5bf2753) ) |
| 1796 | ROM_LOAD( "spe_04.rom", 0x080000, 0x20000, CRC(9d7b225b) SHA1(d949c91da6ba6b82df0b3445499761a98c7e2703) ) |
| 1797 | ROM_LOAD( "05.g2", 0x0a0000, 0x20000, CRC(4a060884) SHA1(f83d713aee4230fc04a1d5f1d4d79c64a5bf2753) ) |
| 1806 | 1798 | /* c0000-fffff empty */ |
| 1807 | 1799 | |
| 1808 | 1800 | ROM_REGION( 0x040000, "gfx2", 0 ) |
| 1809 | | ROM_LOAD( "spj_10.2k", 0x000000, 0x20000, CRC(eedd0ade) SHA1(f2da2eb743c68c5c9a56a94709527110cef5d91d) ) /* sprites */ |
| 1810 | | ROM_LOAD( "spj_09.1k", 0x020000, 0x20000, CRC(04b41b75) SHA1(946ed04a17f1f71085143d43905aa310ce1e05f4) ) |
| 1801 | ROM_LOAD( "spj10_2k.bin", 0x000000, 0x20000, CRC(eedd0ade) SHA1(f2da2eb743c68c5c9a56a94709527110cef5d91d) ) /* sprites */ |
| 1802 | ROM_LOAD( "spj09_1k.bin", 0x020000, 0x20000, CRC(04b41b75) SHA1(946ed04a17f1f71085143d43905aa310ce1e05f4) ) |
| 1811 | 1803 | |
| 1812 | 1804 | ROM_REGION( 0x80000, "oki", 0 ) /* OKIM */ |
| 1813 | | ROM_LOAD( "spj_01.1d", 0x00000, 0x20000, CRC(b96ea126) SHA1(83fa71994518d40b8938520faa8701c63b7f579e) ) |
| 1805 | ROM_LOAD( "spe_01.rom", 0x00000, 0x20000, CRC(2d19c133) SHA1(b3ec226f35494dfc259e910895cec8a49dd2f846) ) |
| 1814 | 1806 | |
| 1815 | 1807 | ROM_REGION16_BE( 0x80, "eeprom", 0 ) |
| 1816 | | ROM_LOAD( "eeprom-spangj.bin", 0x0000, 0x0080, CRC(237c00eb) SHA1(35a7fe793186e148c163adb04433b6a55ee21502) ) |
| 1808 | ROM_LOAD( "eeprom-spang.bin", 0x0000, 0x0080, CRC(deae1291) SHA1(f62f2ad99852903f1cea3f8c1f69fc11e4e7b48b) ) |
| 1817 | 1809 | ROM_END |
| 1818 | 1810 | |
| 1819 | 1811 | /* |
| r243483 | r243484 | |
| 1878 | 1870 | ROM_LOAD( "ic125.14", 0x030000, 0x10000, CRC(bd5c2f4b) SHA1(3c71d63637633a98ab513e4336e2954af3f964f4) ) |
| 1879 | 1871 | ROM_END |
| 1880 | 1872 | |
| 1881 | | /* seems to be the same basic hardware, but the memory map and io map are different at least.. */ |
| 1882 | | ROM_START( mstworld ) |
| 1883 | | ROM_REGION( 0x50000*2, "maincpu", 0 ) /* CPU1 code */ |
| 1884 | | ROM_LOAD( "mw-1.rom", 0x00000, 0x080000, CRC(c4e51fb4) SHA1(60ad4ff2cec3a4d13b4aa0319dfcdab941404b1a) ) /* fixed code */ |
| 1885 | 1873 | |
| 1886 | | ROM_REGION( 0x10000, "audiocpu", 0 ) /* CPU2 code */ |
| 1887 | | ROM_LOAD( "mw-2.rom", 0x00000, 0x08000, CRC(12c4fea9) SHA1(4616f2d70022abcf89f244f3f365b39b96973368) ) |
| 1874 | ROM_START( spangj ) |
| 1875 | ROM_REGION( 0x50000, "maincpu", 0 ) |
| 1876 | ROM_LOAD( "spj_11h.bin", 0x00000, 0x08000, CRC(1a548b0b) SHA1(3aa65028876ab6e176f5b227366e65212c944888) ) |
| 1877 | ROM_LOAD( "spj7_13h.bin", 0x10000, 0x20000, CRC(14c2b765) SHA1(af0f965dd13d878bae7850cf8419b26511090579) ) |
| 1878 | ROM_LOAD( "spj8_14h.bin", 0x30000, 0x20000, CRC(4be4e5b7) SHA1(6273e8bf5d9f5b100ecda20001808dcf86411d83) ) |
| 1888 | 1879 | |
| 1889 | | ROM_REGION( 0x080000, "user2", 0 ) /* Samples */ |
| 1890 | | ROM_LOAD( "mw-3.rom", 0x00000, 0x080000, CRC(110c6a68) SHA1(915758cd467fbcdfa18ca99df036dca40dfc4649) ) |
| 1880 | ROM_REGION( 0x100000, "gfx1", ROMREGION_ERASEFF ) |
| 1881 | ROM_LOAD( "spj02_1e.bin", 0x000000, 0x20000, CRC(419f69d7) SHA1(e3431b5ce3e687ba9a45cb6e0e0a2dfa3a9e5b29) ) /* chars */ |
| 1882 | ROM_LOAD( "03.f2", 0x020000, 0x20000, CRC(3ae28bc1) SHA1(4f6d9a86f624598ebc0825b50941adfb7436e98a) ) // spj03_3e.bin |
| 1883 | /* 40000-7ffff empty */ |
| 1884 | ROM_LOAD( "spj04_1g.bin", 0x080000, 0x20000, CRC(6870506f) SHA1(13a12c012ea2efb0c8cd9dcfb4b5757ac08ee912) ) |
| 1885 | ROM_LOAD( "05.g2", 0x0a0000, 0x20000, CRC(4a060884) SHA1(f83d713aee4230fc04a1d5f1d4d79c64a5bf2753) ) // spj05_2g.bin |
| 1886 | /* c0000-fffff empty */ |
| 1891 | 1887 | |
| 1892 | | /* $00000-$20000 stays the same in all sound banks, */ |
| 1893 | | /* the second half of the bank is what gets switched */ |
| 1894 | | ROM_REGION( 0x100000, "oki", 0 ) /* Samples */ |
| 1895 | | ROM_COPY( "user2", 0x000000, 0x000000, 0x020000) |
| 1896 | | ROM_COPY( "user2", 0x000000, 0x020000, 0x020000) |
| 1897 | | ROM_COPY( "user2", 0x000000, 0x040000, 0x020000) |
| 1898 | | ROM_COPY( "user2", 0x020000, 0x060000, 0x020000) |
| 1899 | | ROM_COPY( "user2", 0x000000, 0x080000, 0x020000) |
| 1900 | | ROM_COPY( "user2", 0x040000, 0x0a0000, 0x020000) |
| 1901 | | ROM_COPY( "user2", 0x000000, 0x0c0000, 0x020000) |
| 1902 | | ROM_COPY( "user2", 0x060000, 0x0e0000, 0x020000) |
| 1888 | ROM_REGION( 0x040000, "gfx2", 0 ) |
| 1889 | ROM_LOAD( "spj10_2k.bin", 0x000000, 0x20000, CRC(eedd0ade) SHA1(f2da2eb743c68c5c9a56a94709527110cef5d91d) ) /* sprites */ |
| 1890 | ROM_LOAD( "spj09_1k.bin", 0x020000, 0x20000, CRC(04b41b75) SHA1(946ed04a17f1f71085143d43905aa310ce1e05f4) ) |
| 1903 | 1891 | |
| 1904 | | ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT ) /* GFX */ |
| 1905 | | ROM_LOAD( "mw-4.rom", 0x00000, 0x020000, CRC(28a3af15) SHA1(99547966b2b5e06e097c55bbbb86a1c2809fa98c) ) |
| 1906 | | ROM_LOAD( "mw-5.rom", 0x20000, 0x020000, CRC(ffdf7e9f) SHA1(b7732837cc5606d4a868eeaaff438b1a86bd72d7) ) |
| 1907 | | ROM_LOAD( "mw-6.rom", 0x40000, 0x020000, CRC(1ed773a3) SHA1(0e8517a5c9bed57ecf3bb850152b8c1e1bd3faaa) ) |
| 1908 | | ROM_LOAD( "mw-7.rom", 0x60000, 0x020000, CRC(8eb7525c) SHA1(9c3fa9373803e9534c1ad7063d660abe130f7b49) ) |
| 1892 | ROM_REGION( 0x80000, "oki", 0 ) /* OKIM */ |
| 1893 | ROM_LOAD( "01.d1", 0x00000, 0x20000, CRC(b96ea126) SHA1(83fa71994518d40b8938520faa8701c63b7f579e) ) // spj01_1d.bin |
| 1909 | 1894 | |
| 1910 | | ROM_REGION( 0x40000, "gfx2", ROMREGION_INVERT ) /* GFX */ |
| 1911 | | ROM_LOAD( "mw-8.rom", 0x00000, 0x020000, CRC(b9b92a3c) SHA1(97191958a539c6f2eacb3956e8371acbaaa43795) ) |
| 1912 | | ROM_LOAD( "mw-9.rom", 0x20000, 0x020000, CRC(75fc3375) SHA1(b2e7551bdbe2b0f1c28f6e912a8efaa5645b2ff5)) |
| 1895 | ROM_REGION16_BE( 0x80, "eeprom", 0 ) |
| 1896 | ROM_LOAD( "eeprom-spangj.bin", 0x0000, 0x0080, CRC(237c00eb) SHA1(35a7fe793186e148c163adb04433b6a55ee21502) ) |
| 1913 | 1897 | ROM_END |
| 1914 | 1898 | |
| 1899 | ROM_START( sbbros ) |
| 1900 | ROM_REGION( 0x50000, "maincpu", 0 ) |
| 1901 | ROM_LOAD( "06.j12", 0x00000, 0x08000, CRC(292eee6a) SHA1(d33368d2373a1ee9e24ada6aa045e0675c8e8160) ) |
| 1902 | ROM_LOAD( "07.j13", 0x10000, 0x20000, CRC(f46b698d) SHA1(6a1867f591aa0fb9e02dd472699df93f9d018793) ) |
| 1903 | ROM_LOAD( "08.j14", 0x30000, 0x20000, CRC(a75e7fbe) SHA1(0331d1a3e888678909f3e6d21f97896a5350e585) ) |
| 1904 | |
| 1905 | ROM_REGION( 0x100000, "gfx1", ROMREGION_ERASEFF ) |
| 1906 | ROM_LOAD( "02.f1", 0x000000, 0x20000, CRC(0c22ffc6) SHA1(f95b50617ef5cd8cffffacab0b96b4bfe8dd3a1e) ) /* chars */ |
| 1907 | ROM_LOAD( "03.f2", 0x020000, 0x20000, CRC(3ae28bc1) SHA1(4f6d9a86f624598ebc0825b50941adfb7436e98a) ) |
| 1908 | /* 40000-7ffff empty */ |
| 1909 | ROM_LOAD( "04.g2", 0x080000, 0x20000, CRC(bb3dee5b) SHA1(e81875b9d9a56e91daa66375b22a4fa6dcd14faa) ) |
| 1910 | ROM_LOAD( "05.g2", 0x0a0000, 0x20000, CRC(4a060884) SHA1(f83d713aee4230fc04a1d5f1d4d79c64a5bf2753) ) |
| 1911 | /* c0000-fffff empty */ |
| 1912 | |
| 1913 | ROM_REGION( 0x040000, "gfx2", 0 ) |
| 1914 | ROM_LOAD( "10.l2", 0x000000, 0x20000, CRC(d6675d8f) SHA1(1c65803fcce2305841e74772ae6ffb6e39edf5c6) ) /* sprites */ |
| 1915 | ROM_LOAD( "09.l1", 0x020000, 0x20000, CRC(8f678bc8) SHA1(66dc7c14cc012ffa9320cd63bc84977fa76ad738) ) |
| 1916 | |
| 1917 | ROM_REGION( 0x80000, "oki", 0 ) /* OKIM */ |
| 1918 | ROM_LOAD( "01.d1", 0x00000, 0x20000, CRC(b96ea126) SHA1(83fa71994518d40b8938520faa8701c63b7f579e) ) |
| 1919 | |
| 1920 | ROM_REGION16_BE( 0x80, "eeprom", 0 ) |
| 1921 | ROM_LOAD( "eeprom-sbbros.bin", 0x0000, 0x0080, CRC(ed69d3cd) SHA1(89eb0ca65ffe30f5cbe6427f767f1f0870c8a990) ) |
| 1922 | ROM_END |
| 1923 | |
| 1915 | 1924 | ROM_START( marukin ) |
| 1916 | 1925 | ROM_REGION( 0x50000, "maincpu", 0 ) |
| 1917 | 1926 | ROM_LOAD( "mg3-01.9d", 0x00000, 0x08000, CRC(04357973) SHA1(61b0b347479126213c90ef6833c09537fab03093) ) |
| r243483 | r243484 | |
| 1979 | 1988 | ROM_LOAD( "q4-01.rom", 0x00000, 0x20000, CRC(5d0d07d8) SHA1(d36e42852dd1ec0955d19b16e7dfe157b3d48522) ) |
| 1980 | 1989 | ROM_END |
| 1981 | 1990 | |
| 1991 | |
| 1982 | 1992 | ROM_START( block ) |
| 1983 | 1993 | ROM_REGION( 0x50000, "maincpu", 0 ) |
| 1984 | 1994 | ROM_LOAD( "ble_05.rom", 0x00000, 0x08000, CRC(c12e7f4c) SHA1(335f4eab2323b942d5feeb3bab6f7286fabfffb4) ) |
| r243483 | r243484 | |
| 2279 | 2289 | GAME( 1989, pkladiesbl,pkladies, pkladiesbl,pkladies, mitchell_state,pkladiesbl,ROT0, "bootleg", "Poker Ladies (Censored bootleg)", GAME_NOT_WORKING ) // by Playmark? need to figure out CPU 'decryption' / ordering |
| 2280 | 2290 | GAME( 1989, dokaben, 0, pang, pang, mitchell_state, dokaben, ROT0, "Capcom", "Dokaben (Japan)", GAME_SUPPORTS_SAVE ) |
| 2281 | 2291 | GAME( 1989, pang, 0, pang, pang, mitchell_state, pang, ROT0, "Mitchell", "Pang (World)", GAME_SUPPORTS_SAVE ) |
| 2282 | | GAME( 1989, bbros, pang, pang, pang, mitchell_state, pang, ROT0, "Mitchell (Capcom license)", "Buster Bros. (USA)", GAME_SUPPORTS_SAVE ) |
| 2283 | | GAME( 1989, pompingw, pang, pang, pang, mitchell_state, pang, ROT0, "Mitchell", "Pomping World (Japan)", GAME_SUPPORTS_SAVE ) |
| 2284 | 2292 | GAME( 1989, pangb, pang, pang, pang, mitchell_state, pangb, ROT0, "bootleg", "Pang (bootleg, set 1)", GAME_SUPPORTS_SAVE ) |
| 2285 | 2293 | GAME( 1989, pangbold, pang, pang, pang, mitchell_state, pangb, ROT0, "bootleg", "Pang (bootleg, set 2)", GAME_SUPPORTS_SAVE ) |
| 2286 | 2294 | GAME( 1989, pangba, pang, spangbl, pang, mitchell_state, pangb, ROT0, "bootleg", "Pang (bootleg, set 3)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE ) |
| 2287 | 2295 | GAME( 1989, pangb2, pang, pang, pang, mitchell_state, pangb, ROT0, "bootleg", "Pang (bootleg, set 4)", GAME_SUPPORTS_SAVE ) |
| 2296 | GAME( 1989, bbros, pang, pang, pang, mitchell_state, pang, ROT0, "Mitchell (Capcom license)", "Buster Bros. (USA)", GAME_SUPPORTS_SAVE ) |
| 2297 | GAME( 1989, pompingw, pang, pang, pang, mitchell_state, pang, ROT0, "Mitchell", "Pomping World (Japan)", GAME_SUPPORTS_SAVE ) |
| 2288 | 2298 | GAME( 1989, cworld, 0, pang, qtono1, mitchell_state, cworld, ROT0, "Capcom", "Capcom World (Japan)", GAME_SUPPORTS_SAVE ) |
| 2289 | 2299 | GAME( 1990, hatena, 0, pang, qtono1, mitchell_state, hatena, ROT0, "Capcom", "Adventure Quiz 2 - Hatena? no Daibouken (Japan 900228)", GAME_SUPPORTS_SAVE ) |
| 2290 | 2300 | GAME( 1990, spang, 0, pangnv, pang, mitchell_state, spang, ROT0, "Mitchell", "Super Pang (World 900914)", GAME_SUPPORTS_SAVE ) |
| 2291 | | GAME( 1990, sbbros, spang, pangnv, pang, mitchell_state, sbbros, ROT0, "Mitchell (Capcom license)", "Super Buster Bros. (USA 901001)", GAME_SUPPORTS_SAVE ) |
| 2292 | 2301 | GAME( 1990, spangj, spang, pangnv, pang, mitchell_state, spangj, ROT0, "Mitchell", "Super Pang (Japan 901023)", GAME_SUPPORTS_SAVE ) |
| 2293 | 2302 | GAME( 1990, spangbl, spang, spangbl, spangbl, mitchell_state, spangbl, ROT0, "bootleg", "Super Pang (World 900914, bootleg)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE ) // different sound hardware |
| 2294 | 2303 | GAME( 1994, mstworld, 0, mstworld,mstworld, mitchell_state, mstworld, ROT0, "bootleg (TCH)", "Monsters World (bootleg of Super Pang)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) |
| 2304 | GAME( 1990, sbbros, spang, pangnv, pang, mitchell_state, sbbros, ROT0, "Mitchell (Capcom license)", "Super Buster Bros. (USA 901001)", GAME_SUPPORTS_SAVE ) |
| 2295 | 2305 | GAME( 1990, marukin, 0, marukin, marukin, mitchell_state, marukin, ROT0, "Yuga", "Super Marukin-Ban (Japan 901017)", GAME_SUPPORTS_SAVE ) |
| 2296 | 2306 | GAME( 1991, qtono1, 0, pang, qtono1, mitchell_state, qtono1, ROT0, "Capcom", "Quiz Tonosama no Yabou (Japan)", GAME_SUPPORTS_SAVE ) |
| 2297 | 2307 | GAME( 1991, qsangoku, 0, pang, qtono1, mitchell_state, qsangoku, ROT0, "Capcom", "Quiz Sangokushi (Japan)", GAME_SUPPORTS_SAVE ) |
trunk/src/mame/drivers/rabbit.c
| r243483 | r243484 | |
| 96 | 96 | |
| 97 | 97 | rabbit_state(const machine_config &mconfig, device_type type, const char *tag) |
| 98 | 98 | : driver_device(mconfig, type, tag), |
| 99 | | m_maincpu(*this, "maincpu"), |
| 100 | | m_eeprom(*this, "eeprom"), |
| 101 | | m_gfxdecode(*this, "gfxdecode"), |
| 102 | | m_palette(*this, "palette"), |
| 103 | 99 | m_viewregs0(*this, "viewregs0"), |
| 104 | 100 | m_viewregs6(*this, "viewregs6"), |
| 105 | 101 | m_viewregs7(*this, "viewregs7"), |
| r243483 | r243484 | |
| 108 | 104 | m_tilemap_regs(*this, "tilemap_regs"), |
| 109 | 105 | m_spriteregs(*this, "spriteregs"), |
| 110 | 106 | m_blitterregs(*this, "blitterregs"), |
| 111 | | m_spriteram(*this, "spriteram") { } |
| 107 | m_spriteram(*this, "spriteram"), |
| 108 | m_maincpu(*this, "maincpu"), |
| 109 | m_eeprom(*this, "eeprom"), |
| 110 | m_gfxdecode(*this, "gfxdecode"), |
| 111 | m_palette(*this, "palette") { } |
| 112 | 112 | |
| 113 | | required_device<cpu_device> m_maincpu; |
| 114 | | required_device<eeprom_serial_93cxx_device> m_eeprom; |
| 115 | | required_device<gfxdecode_device> m_gfxdecode; |
| 116 | | required_device<palette_device> m_palette; |
| 117 | | |
| 118 | 113 | required_shared_ptr<UINT32> m_viewregs0; |
| 119 | 114 | required_shared_ptr<UINT32> m_viewregs6; |
| 120 | 115 | required_shared_ptr<UINT32> m_viewregs7; |
| r243483 | r243484 | |
| 123 | 118 | required_shared_ptr_array<UINT32, 4> m_tilemap_regs; |
| 124 | 119 | required_shared_ptr<UINT32> m_spriteregs; |
| 125 | 120 | required_shared_ptr<UINT32> m_blitterregs; |
| 126 | | required_shared_ptr<UINT32> m_spriteram; |
| 127 | | |
| 128 | 121 | bitmap_ind16 *m_sprite_bitmap; |
| 129 | 122 | rectangle m_sprite_clip; |
| 130 | 123 | int m_vblirqlevel; |
| 131 | 124 | int m_bltirqlevel; |
| 132 | 125 | int m_banking; |
| 133 | 126 | UINT32 *m_tilemap_ram[4]; |
| 127 | required_shared_ptr<UINT32> m_spriteram; |
| 134 | 128 | tilemap_t *m_tilemap[4]; |
| 135 | | |
| 136 | | DECLARE_WRITE32_MEMBER(tilemap0_w); |
| 137 | | DECLARE_WRITE32_MEMBER(tilemap1_w); |
| 138 | | DECLARE_WRITE32_MEMBER(tilemap2_w); |
| 139 | | DECLARE_WRITE32_MEMBER(tilemap3_w); |
| 140 | | DECLARE_READ32_MEMBER(tilemap0_r); |
| 141 | | DECLARE_READ32_MEMBER(tilemap1_r); |
| 142 | | DECLARE_READ32_MEMBER(tilemap2_r); |
| 143 | | DECLARE_READ32_MEMBER(tilemap3_r); |
| 129 | DECLARE_WRITE32_MEMBER(rabbit_tilemap0_w); |
| 130 | DECLARE_WRITE32_MEMBER(rabbit_tilemap1_w); |
| 131 | DECLARE_WRITE32_MEMBER(rabbit_tilemap2_w); |
| 132 | DECLARE_WRITE32_MEMBER(rabbit_tilemap3_w); |
| 133 | DECLARE_READ32_MEMBER(rabbit_tilemap0_r); |
| 134 | DECLARE_READ32_MEMBER(rabbit_tilemap1_r); |
| 135 | DECLARE_READ32_MEMBER(rabbit_tilemap2_r); |
| 136 | DECLARE_READ32_MEMBER(rabbit_tilemap3_r); |
| 144 | 137 | DECLARE_READ32_MEMBER(randomrabbits); |
| 145 | | DECLARE_WRITE32_MEMBER(rombank_w); |
| 146 | | DECLARE_WRITE32_MEMBER(blitter_w); |
| 147 | | DECLARE_WRITE32_MEMBER(eeprom_write); |
| 148 | | |
| 138 | DECLARE_WRITE32_MEMBER(rabbit_rombank_w); |
| 139 | DECLARE_WRITE32_MEMBER(rabbit_blitter_w); |
| 140 | DECLARE_WRITE32_MEMBER(rabbit_eeprom_write); |
| 149 | 141 | DECLARE_DRIVER_INIT(rabbit); |
| 150 | | |
| 151 | | TILE_GET_INFO_MEMBER(get_tilemap0_tile_info); |
| 152 | | TILE_GET_INFO_MEMBER(get_tilemap1_tile_info); |
| 153 | | TILE_GET_INFO_MEMBER(get_tilemap2_tile_info); |
| 154 | | TILE_GET_INFO_MEMBER(get_tilemap3_tile_info); |
| 155 | | |
| 156 | | INTERRUPT_GEN_MEMBER(vblank_interrupt); |
| 157 | | |
| 142 | TILE_GET_INFO_MEMBER(get_rabbit_tilemap0_tile_info); |
| 143 | TILE_GET_INFO_MEMBER(get_rabbit_tilemap1_tile_info); |
| 144 | TILE_GET_INFO_MEMBER(get_rabbit_tilemap2_tile_info); |
| 145 | TILE_GET_INFO_MEMBER(get_rabbit_tilemap3_tile_info); |
| 158 | 146 | virtual void video_start(); |
| 159 | | |
| 160 | | UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 161 | | inline void get_tilemap_info(tile_data &tileinfo, int tile_index, int whichtilemap, int tilesize); |
| 147 | UINT32 screen_update_rabbit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 148 | INTERRUPT_GEN_MEMBER(rabbit_vblank_interrupt); |
| 149 | inline void get_rabbit_tilemap_info(tile_data &tileinfo, int tile_index, int whichtilemap, int tilesize); |
| 162 | 150 | void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect ); |
| 163 | | void clearspritebitmap( bitmap_ind16 &bitmap, const rectangle &cliprect ); |
| 151 | void rabbit_clearspritebitmap( bitmap_ind16 &bitmap, const rectangle &cliprect ); |
| 164 | 152 | void draw_sprite_bitmap( bitmap_ind16 &bitmap, const rectangle &cliprect ); |
| 165 | | void drawtilemap( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int whichtilemap ); |
| 166 | | void do_blit(); |
| 167 | | |
| 153 | void rabbit_drawtilemap( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int whichtilemap ); |
| 154 | void rabbit_do_blit(); |
| 155 | required_device<cpu_device> m_maincpu; |
| 156 | required_device<eeprom_serial_93cxx_device> m_eeprom; |
| 157 | required_device<gfxdecode_device> m_gfxdecode; |
| 158 | required_device<palette_device> m_palette; |
| 168 | 159 | protected: |
| 169 | 160 | virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr); |
| 170 | 161 | }; |
| 171 | 162 | |
| 172 | 163 | |
| 173 | 164 | /* call with tilesize = 0 for 8x8 or 1 for 16x16 */ |
| 174 | | void rabbit_state::get_tilemap_info(tile_data &tileinfo, int tile_index, int whichtilemap, int tilesize) |
| 165 | void rabbit_state::get_rabbit_tilemap_info(tile_data &tileinfo, int tile_index, int whichtilemap, int tilesize) |
| 175 | 166 | { |
| 176 | 167 | /* fedcba98 76543210 fedcba98 76543210 |
| 177 | 168 | x color mask? how exactly does it relate to color bits? |
| r243483 | r243484 | |
| 231 | 222 | } |
| 232 | 223 | } |
| 233 | 224 | |
| 234 | | TILE_GET_INFO_MEMBER(rabbit_state::get_tilemap0_tile_info) |
| 225 | TILE_GET_INFO_MEMBER(rabbit_state::get_rabbit_tilemap0_tile_info) |
| 235 | 226 | { |
| 236 | | get_tilemap_info(tileinfo,tile_index,0,1); |
| 227 | get_rabbit_tilemap_info(tileinfo,tile_index,0,1); |
| 237 | 228 | } |
| 238 | 229 | |
| 239 | | TILE_GET_INFO_MEMBER(rabbit_state::get_tilemap1_tile_info) |
| 230 | TILE_GET_INFO_MEMBER(rabbit_state::get_rabbit_tilemap1_tile_info) |
| 240 | 231 | { |
| 241 | | get_tilemap_info(tileinfo,tile_index,1,1); |
| 232 | get_rabbit_tilemap_info(tileinfo,tile_index,1,1); |
| 242 | 233 | } |
| 243 | 234 | |
| 244 | | TILE_GET_INFO_MEMBER(rabbit_state::get_tilemap2_tile_info) |
| 235 | TILE_GET_INFO_MEMBER(rabbit_state::get_rabbit_tilemap2_tile_info) |
| 245 | 236 | { |
| 246 | | get_tilemap_info(tileinfo,tile_index,2,1); |
| 237 | get_rabbit_tilemap_info(tileinfo,tile_index,2,1); |
| 247 | 238 | } |
| 248 | 239 | |
| 249 | | TILE_GET_INFO_MEMBER(rabbit_state::get_tilemap3_tile_info) |
| 240 | TILE_GET_INFO_MEMBER(rabbit_state::get_rabbit_tilemap3_tile_info) |
| 250 | 241 | { |
| 251 | | get_tilemap_info(tileinfo,tile_index,3,0); |
| 242 | get_rabbit_tilemap_info(tileinfo,tile_index,3,0); |
| 252 | 243 | } |
| 253 | 244 | |
| 254 | | WRITE32_MEMBER(rabbit_state::tilemap0_w) |
| 245 | WRITE32_MEMBER(rabbit_state::rabbit_tilemap0_w) |
| 255 | 246 | { |
| 256 | 247 | COMBINE_DATA(&m_tilemap_ram[0][offset]); |
| 257 | 248 | m_tilemap[0]->mark_tile_dirty(offset); |
| 258 | 249 | } |
| 259 | 250 | |
| 260 | | WRITE32_MEMBER(rabbit_state::tilemap1_w) |
| 251 | WRITE32_MEMBER(rabbit_state::rabbit_tilemap1_w) |
| 261 | 252 | { |
| 262 | 253 | COMBINE_DATA(&m_tilemap_ram[1][offset]); |
| 263 | 254 | m_tilemap[1]->mark_tile_dirty(offset); |
| 264 | 255 | } |
| 265 | 256 | |
| 266 | | WRITE32_MEMBER(rabbit_state::tilemap2_w) |
| 257 | WRITE32_MEMBER(rabbit_state::rabbit_tilemap2_w) |
| 267 | 258 | { |
| 268 | 259 | COMBINE_DATA(&m_tilemap_ram[2][offset]); |
| 269 | 260 | m_tilemap[2]->mark_tile_dirty(offset); |
| 270 | 261 | } |
| 271 | 262 | |
| 272 | 263 | |
| 273 | | WRITE32_MEMBER(rabbit_state::tilemap3_w) |
| 264 | WRITE32_MEMBER(rabbit_state::rabbit_tilemap3_w) |
| 274 | 265 | { |
| 275 | 266 | COMBINE_DATA(&m_tilemap_ram[3][offset]); |
| 276 | 267 | m_tilemap[3]->mark_tile_dirty(offset); |
| r243483 | r243484 | |
| 332 | 323 | } |
| 333 | 324 | |
| 334 | 325 | /* the sprite bitmap can probably be handled better than this ... */ |
| 335 | | void rabbit_state::clearspritebitmap( bitmap_ind16 &bitmap, const rectangle &cliprect ) |
| 326 | void rabbit_state::rabbit_clearspritebitmap( bitmap_ind16 &bitmap, const rectangle &cliprect ) |
| 336 | 327 | { |
| 337 | 328 | int startx, starty; |
| 338 | 329 | int y; |
| r243483 | r243484 | |
| 420 | 411 | m_tilemap_ram[2] = auto_alloc_array_clear(machine(), UINT32, 0x20000/4); |
| 421 | 412 | m_tilemap_ram[3] = auto_alloc_array_clear(machine(), UINT32, 0x20000/4); |
| 422 | 413 | |
| 423 | | m_tilemap[0] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(rabbit_state::get_tilemap0_tile_info),this),TILEMAP_SCAN_ROWS,16, 16, 128,32); |
| 424 | | m_tilemap[1] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(rabbit_state::get_tilemap1_tile_info),this),TILEMAP_SCAN_ROWS,16, 16, 128,32); |
| 425 | | m_tilemap[2] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(rabbit_state::get_tilemap2_tile_info),this),TILEMAP_SCAN_ROWS,16, 16, 128,32); |
| 426 | | m_tilemap[3] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(rabbit_state::get_tilemap3_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8, 128,32); |
| 414 | m_tilemap[0] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(rabbit_state::get_rabbit_tilemap0_tile_info),this),TILEMAP_SCAN_ROWS,16, 16, 128,32); |
| 415 | m_tilemap[1] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(rabbit_state::get_rabbit_tilemap1_tile_info),this),TILEMAP_SCAN_ROWS,16, 16, 128,32); |
| 416 | m_tilemap[2] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(rabbit_state::get_rabbit_tilemap2_tile_info),this),TILEMAP_SCAN_ROWS,16, 16, 128,32); |
| 417 | m_tilemap[3] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(rabbit_state::get_rabbit_tilemap3_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8, 128,32); |
| 427 | 418 | |
| 428 | 419 | /* the tilemaps mix 4bpp and 8bbp tiles, we split these into 2 groups, and set a different transpen for each group */ |
| 429 | 420 | m_tilemap[0]->map_pen_to_layer(0, 15, TILEMAP_PIXEL_TRANSPARENT); |
| r243483 | r243484 | |
| 437 | 428 | |
| 438 | 429 | m_sprite_bitmap = auto_bitmap_ind16_alloc(machine(),0x1000,0x1000); |
| 439 | 430 | m_sprite_clip.set(0, 0x1000-1, 0, 0x1000-1); |
| 440 | | |
| 441 | | save_pointer(NAME(m_tilemap_ram[0]), 0x20000/4); |
| 442 | | save_pointer(NAME(m_tilemap_ram[1]), 0x20000/4); |
| 443 | | save_pointer(NAME(m_tilemap_ram[2]), 0x20000/4); |
| 444 | | save_pointer(NAME(m_tilemap_ram[3]), 0x20000/4); |
| 445 | 431 | } |
| 446 | 432 | |
| 447 | 433 | /* |
| r243483 | r243484 | |
| 466 | 452 | |
| 467 | 453 | */ |
| 468 | 454 | |
| 469 | | void rabbit_state::drawtilemap( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int whichtilemap ) |
| 455 | void rabbit_state::rabbit_drawtilemap( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int whichtilemap ) |
| 470 | 456 | { |
| 471 | 457 | INT32 startx, starty, incxx, incxy, incyx, incyy, tran; |
| 472 | 458 | |
| r243483 | r243484 | |
| 489 | 475 | tran ? 0 : TILEMAP_DRAW_OPAQUE,0); |
| 490 | 476 | } |
| 491 | 477 | |
| 492 | | UINT32 rabbit_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| 478 | UINT32 rabbit_state::screen_update_rabbit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| 493 | 479 | { |
| 494 | 480 | int prilevel; |
| 495 | 481 | |
| r243483 | r243484 | |
| 511 | 497 | /* prio isnt certain but seems to work.. */ |
| 512 | 498 | for (prilevel = 0xf; prilevel >0; prilevel--) |
| 513 | 499 | { |
| 514 | | if (prilevel == ((m_tilemap_regs[3][0]&0x0f000000)>>24)) drawtilemap(screen,bitmap,cliprect, 3); |
| 515 | | if (prilevel == ((m_tilemap_regs[2][0]&0x0f000000)>>24)) drawtilemap(screen,bitmap,cliprect, 2); |
| 516 | | if (prilevel == ((m_tilemap_regs[1][0]&0x0f000000)>>24)) drawtilemap(screen,bitmap,cliprect, 1); |
| 517 | | if (prilevel == ((m_tilemap_regs[0][0]&0x0f000000)>>24)) drawtilemap(screen,bitmap,cliprect, 0); |
| 500 | if (prilevel == ((m_tilemap_regs[3][0]&0x0f000000)>>24)) rabbit_drawtilemap(screen,bitmap,cliprect, 3); |
| 501 | if (prilevel == ((m_tilemap_regs[2][0]&0x0f000000)>>24)) rabbit_drawtilemap(screen,bitmap,cliprect, 2); |
| 502 | if (prilevel == ((m_tilemap_regs[1][0]&0x0f000000)>>24)) rabbit_drawtilemap(screen,bitmap,cliprect, 1); |
| 503 | if (prilevel == ((m_tilemap_regs[0][0]&0x0f000000)>>24)) rabbit_drawtilemap(screen,bitmap,cliprect, 0); |
| 518 | 504 | |
| 519 | 505 | if (prilevel == 0x09) // should it be selectable? |
| 520 | 506 | { |
| 521 | | clearspritebitmap(bitmap,cliprect); |
| 507 | rabbit_clearspritebitmap(bitmap,cliprect); |
| 522 | 508 | draw_sprites(bitmap,cliprect); // render to bitmap |
| 523 | 509 | draw_sprite_bitmap(bitmap,cliprect); // copy bitmap to screen |
| 524 | 510 | } |
| r243483 | r243484 | |
| 529 | 515 | |
| 530 | 516 | |
| 531 | 517 | |
| 532 | | READ32_MEMBER(rabbit_state::tilemap0_r) |
| 518 | READ32_MEMBER(rabbit_state::rabbit_tilemap0_r) |
| 533 | 519 | { |
| 534 | 520 | return m_tilemap_ram[0][offset]; |
| 535 | 521 | } |
| 536 | 522 | |
| 537 | | READ32_MEMBER(rabbit_state::tilemap1_r) |
| 523 | READ32_MEMBER(rabbit_state::rabbit_tilemap1_r) |
| 538 | 524 | { |
| 539 | 525 | return m_tilemap_ram[1][offset]; |
| 540 | 526 | } |
| 541 | 527 | |
| 542 | | READ32_MEMBER(rabbit_state::tilemap2_r) |
| 528 | READ32_MEMBER(rabbit_state::rabbit_tilemap2_r) |
| 543 | 529 | { |
| 544 | 530 | return m_tilemap_ram[2][offset]; |
| 545 | 531 | } |
| 546 | 532 | |
| 547 | | READ32_MEMBER(rabbit_state::tilemap3_r) |
| 533 | READ32_MEMBER(rabbit_state::rabbit_tilemap3_r) |
| 548 | 534 | { |
| 549 | 535 | return m_tilemap_ram[3][offset]; |
| 550 | 536 | } |
| r243483 | r243484 | |
| 555 | 541 | } |
| 556 | 542 | |
| 557 | 543 | /* rom bank is used when testing roms, not currently hooked up */ |
| 558 | | WRITE32_MEMBER(rabbit_state::rombank_w) |
| 544 | WRITE32_MEMBER(rabbit_state::rabbit_rombank_w) |
| 559 | 545 | { |
| 560 | 546 | UINT8 *dataroms = memregion("gfx1")->base(); |
| 561 | 547 | #if 0 |
| r243483 | r243484 | |
| 586 | 572 | } |
| 587 | 573 | } |
| 588 | 574 | |
| 589 | | void rabbit_state::do_blit() |
| 575 | void rabbit_state::rabbit_do_blit() |
| 590 | 576 | { |
| 591 | 577 | UINT8 *blt_data = memregion("gfx1")->base(); |
| 592 | 578 | int blt_source = (m_blitterregs[0]&0x000fffff)>>0; |
| r243483 | r243484 | |
| 681 | 667 | |
| 682 | 668 | |
| 683 | 669 | |
| 684 | | WRITE32_MEMBER(rabbit_state::blitter_w) |
| 670 | WRITE32_MEMBER(rabbit_state::rabbit_blitter_w) |
| 685 | 671 | { |
| 686 | 672 | COMBINE_DATA(&m_blitterregs[offset]); |
| 687 | 673 | |
| 688 | 674 | if (offset == 0x0c/4) |
| 689 | 675 | { |
| 690 | | do_blit(); |
| 676 | rabbit_do_blit(); |
| 691 | 677 | } |
| 692 | 678 | } |
| 693 | 679 | |
| 694 | | WRITE32_MEMBER(rabbit_state::eeprom_write) |
| 680 | WRITE32_MEMBER(rabbit_state::rabbit_eeprom_write) |
| 695 | 681 | { |
| 696 | 682 | // don't disturb the EEPROM if we're not actually writing to it |
| 697 | 683 | // (in particular, data & 0x100 here with mask = ffff00ff looks to be the watchdog) |
| r243483 | r243484 | |
| 714 | 700 | AM_RANGE(0x000010, 0x000013) AM_WRITENOP // bug in code / emulation? |
| 715 | 701 | AM_RANGE(0x000024, 0x000027) AM_WRITENOP // bug in code / emulation? |
| 716 | 702 | AM_RANGE(0x00719c, 0x00719f) AM_WRITENOP // bug in code / emulation? |
| 717 | | AM_RANGE(0x200000, 0x200003) AM_READ_PORT("INPUTS") AM_WRITE(eeprom_write) |
| 703 | AM_RANGE(0x200000, 0x200003) AM_READ_PORT("INPUTS") AM_WRITE(rabbit_eeprom_write) |
| 718 | 704 | AM_RANGE(0x400010, 0x400013) AM_READ(randomrabbits) // gfx chip status? |
| 719 | 705 | /* this lot are probably gfxchip/blitter etc. related */ |
| 720 | 706 | AM_RANGE(0x400010, 0x400013) AM_WRITEONLY AM_SHARE("viewregs0" ) |
| r243483 | r243484 | |
| 723 | 709 | AM_RANGE(0x400140, 0x400157) AM_WRITEONLY AM_SHARE("tilemap_regs.2" ) // tilemap regs3 |
| 724 | 710 | AM_RANGE(0x400160, 0x400177) AM_WRITEONLY AM_SHARE("tilemap_regs.3" ) // tilemap regs4 |
| 725 | 711 | AM_RANGE(0x400200, 0x40021b) AM_WRITEONLY AM_SHARE("spriteregs" ) // sprregs? |
| 726 | | AM_RANGE(0x400300, 0x400303) AM_WRITE(rombank_w) // used during rom testing, rombank/area select + something else? |
| 712 | AM_RANGE(0x400300, 0x400303) AM_WRITE(rabbit_rombank_w) // used during rom testing, rombank/area select + something else? |
| 727 | 713 | AM_RANGE(0x400400, 0x400413) AM_WRITEONLY AM_SHARE("viewregs6" ) // some global controls? (brightness etc.?) |
| 728 | 714 | AM_RANGE(0x400500, 0x400503) AM_WRITEONLY AM_SHARE("viewregs7" ) |
| 729 | | AM_RANGE(0x400700, 0x40070f) AM_WRITE(blitter_w) AM_SHARE("blitterregs" ) |
| 715 | AM_RANGE(0x400700, 0x40070f) AM_WRITE(rabbit_blitter_w) AM_SHARE("blitterregs" ) |
| 730 | 716 | AM_RANGE(0x400800, 0x40080f) AM_WRITEONLY AM_SHARE("viewregs9" ) // never changes? |
| 731 | 717 | AM_RANGE(0x400900, 0x4009ff) AM_DEVREADWRITE16("i5000snd", i5000snd_device, read, write, 0xffffffff) |
| 732 | 718 | /* hmm */ |
| r243483 | r243484 | |
| 734 | 720 | |
| 735 | 721 | AM_RANGE(0x440000, 0x47ffff) AM_ROMBANK("bank1") // data (gfx / sound) rom readback for ROM testing |
| 736 | 722 | /* tilemaps */ |
| 737 | | AM_RANGE(0x480000, 0x483fff) AM_READWRITE(tilemap0_r,tilemap0_w) |
| 738 | | AM_RANGE(0x484000, 0x487fff) AM_READWRITE(tilemap1_r,tilemap1_w) |
| 739 | | AM_RANGE(0x488000, 0x48bfff) AM_READWRITE(tilemap2_r,tilemap2_w) |
| 740 | | AM_RANGE(0x48c000, 0x48ffff) AM_READWRITE(tilemap3_r,tilemap3_w) |
| 723 | AM_RANGE(0x480000, 0x483fff) AM_READWRITE(rabbit_tilemap0_r,rabbit_tilemap0_w) |
| 724 | AM_RANGE(0x484000, 0x487fff) AM_READWRITE(rabbit_tilemap1_r,rabbit_tilemap1_w) |
| 725 | AM_RANGE(0x488000, 0x48bfff) AM_READWRITE(rabbit_tilemap2_r,rabbit_tilemap2_w) |
| 726 | AM_RANGE(0x48c000, 0x48ffff) AM_READWRITE(rabbit_tilemap3_r,rabbit_tilemap3_w) |
| 741 | 727 | AM_RANGE(0x494000, 0x497fff) AM_RAM AM_SHARE("spriteram") // sprites? |
| 742 | 728 | AM_RANGE(0x4a0000, 0x4affff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") |
| 743 | 729 | AM_RANGE(0xff0000, 0xffffff) AM_RAM |
| r243483 | r243484 | |
| 775 | 761 | INPUT_PORTS_END |
| 776 | 762 | |
| 777 | 763 | |
| 778 | | static const gfx_layout sprite_8x8x4_layout = |
| 764 | static const gfx_layout rabbit_sprite_8x8x4_layout = |
| 779 | 765 | { |
| 780 | 766 | 8,8, |
| 781 | 767 | RGN_FRAC(1,1), |
| r243483 | r243484 | |
| 786 | 772 | 8*32 |
| 787 | 773 | }; |
| 788 | 774 | |
| 789 | | static const gfx_layout sprite_8x8x8_layout = |
| 775 | static const gfx_layout rabbit_sprite_8x8x8_layout = |
| 790 | 776 | { |
| 791 | 777 | 8,8, |
| 792 | 778 | RGN_FRAC(1,1), |
| r243483 | r243484 | |
| 799 | 785 | |
| 800 | 786 | |
| 801 | 787 | |
| 802 | | static const gfx_layout sprite_16x16x4_layout = |
| 788 | static const gfx_layout rabbit_sprite_16x16x4_layout = |
| 803 | 789 | { |
| 804 | 790 | 16,16, |
| 805 | 791 | RGN_FRAC(1,2), |
| r243483 | r243484 | |
| 810 | 796 | 16*32 |
| 811 | 797 | }; |
| 812 | 798 | |
| 813 | | static const gfx_layout sprite_16x16x8_layout = |
| 799 | static const gfx_layout rabbit_sprite_16x16x8_layout = |
| 814 | 800 | { |
| 815 | 801 | 16,16, |
| 816 | 802 | RGN_FRAC(1,2), |
| r243483 | r243484 | |
| 821 | 807 | 16*64 |
| 822 | 808 | }; |
| 823 | 809 | |
| 824 | | static const gfx_layout _8x8x4_layout = |
| 810 | static const gfx_layout rabbit_8x8x4_layout = |
| 825 | 811 | { |
| 826 | 812 | 8,8, |
| 827 | 813 | RGN_FRAC(1,1), |
| r243483 | r243484 | |
| 832 | 818 | 8*32 |
| 833 | 819 | }; |
| 834 | 820 | |
| 835 | | static const gfx_layout _16x16x4_layout = |
| 821 | static const gfx_layout rabbit_16x16x4_layout = |
| 836 | 822 | { |
| 837 | 823 | 16,16, |
| 838 | 824 | RGN_FRAC(1,1), |
| r243483 | r243484 | |
| 843 | 829 | 16*64 |
| 844 | 830 | }; |
| 845 | 831 | |
| 846 | | static const gfx_layout _8x8x8_layout = |
| 832 | static const gfx_layout rabbit_8x8x8_layout = |
| 847 | 833 | { |
| 848 | 834 | 8,8, |
| 849 | 835 | RGN_FRAC(1,1), |
| r243483 | r243484 | |
| 854 | 840 | 8*64 |
| 855 | 841 | }; |
| 856 | 842 | |
| 857 | | static const gfx_layout _16x16x8_layout = |
| 843 | static const gfx_layout rabbit_16x16x8_layout = |
| 858 | 844 | { |
| 859 | 845 | 16,16, |
| 860 | 846 | RGN_FRAC(1,1), |
| r243483 | r243484 | |
| 869 | 855 | |
| 870 | 856 | static GFXDECODE_START( rabbit ) |
| 871 | 857 | /* this seems to be sprites */ |
| 872 | | GFXDECODE_ENTRY( "gfx1", 0, sprite_8x8x4_layout, 0x0, 0x1000 ) |
| 873 | | GFXDECODE_ENTRY( "gfx1", 0, sprite_16x16x4_layout, 0x0, 0x1000 ) |
| 874 | | GFXDECODE_ENTRY( "gfx1", 0, sprite_8x8x8_layout, 0x0, 0x1000 ) // wrong |
| 875 | | GFXDECODE_ENTRY( "gfx1", 0, sprite_16x16x8_layout, 0x0, 0x1000 ) // wrong |
| 858 | GFXDECODE_ENTRY( "gfx1", 0, rabbit_sprite_8x8x4_layout, 0x0, 0x1000 ) |
| 859 | GFXDECODE_ENTRY( "gfx1", 0, rabbit_sprite_16x16x4_layout, 0x0, 0x1000 ) |
| 860 | GFXDECODE_ENTRY( "gfx1", 0, rabbit_sprite_8x8x8_layout, 0x0, 0x1000 ) // wrong |
| 861 | GFXDECODE_ENTRY( "gfx1", 0, rabbit_sprite_16x16x8_layout, 0x0, 0x1000 ) // wrong |
| 876 | 862 | |
| 877 | 863 | /* this seems to be backgrounds and tilemap gfx */ |
| 878 | | GFXDECODE_ENTRY( "gfx2", 0, _8x8x4_layout, 0x0, 0x1000 ) |
| 879 | | GFXDECODE_ENTRY( "gfx2", 0, _16x16x4_layout, 0x0, 0x1000 ) |
| 880 | | GFXDECODE_ENTRY( "gfx2", 0, _8x8x8_layout, 0x0, 0x1000 ) |
| 881 | | GFXDECODE_ENTRY( "gfx2", 0, _16x16x8_layout, 0x0, 0x1000 ) |
| 864 | GFXDECODE_ENTRY( "gfx2", 0, rabbit_8x8x4_layout, 0x0, 0x1000 ) |
| 865 | GFXDECODE_ENTRY( "gfx2", 0, rabbit_16x16x4_layout, 0x0, 0x1000 ) |
| 866 | GFXDECODE_ENTRY( "gfx2", 0, rabbit_8x8x8_layout, 0x0, 0x1000 ) |
| 867 | GFXDECODE_ENTRY( "gfx2", 0, rabbit_16x16x8_layout, 0x0, 0x1000 ) |
| 882 | 868 | |
| 883 | 869 | GFXDECODE_END |
| 884 | 870 | |
| r243483 | r243484 | |
| 889 | 875 | |
| 890 | 876 | */ |
| 891 | 877 | |
| 892 | | INTERRUPT_GEN_MEMBER(rabbit_state::vblank_interrupt) |
| 878 | INTERRUPT_GEN_MEMBER(rabbit_state::rabbit_vblank_interrupt) |
| 893 | 879 | { |
| 894 | 880 | m_maincpu->set_input_line(m_vblirqlevel, HOLD_LINE); |
| 895 | 881 | } |
| r243483 | r243484 | |
| 897 | 883 | static MACHINE_CONFIG_START( rabbit, rabbit_state ) |
| 898 | 884 | MCFG_CPU_ADD("maincpu", M68EC020, XTAL_24MHz) |
| 899 | 885 | MCFG_CPU_PROGRAM_MAP(rabbit_map) |
| 900 | | MCFG_CPU_VBLANK_INT_DRIVER("screen", rabbit_state, vblank_interrupt) |
| 886 | MCFG_CPU_VBLANK_INT_DRIVER("screen", rabbit_state, rabbit_vblank_interrupt) |
| 901 | 887 | |
| 902 | 888 | MCFG_EEPROM_SERIAL_93C46_ADD("eeprom") |
| 903 | 889 | |
| r243483 | r243484 | |
| 910 | 896 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) |
| 911 | 897 | // MCFG_SCREEN_VISIBLE_AREA(0*8, 64*16-1, 0*16, 64*16-1) |
| 912 | 898 | // MCFG_SCREEN_VISIBLE_AREA(0*8, 20*16-1, 32*16, 48*16-1) |
| 913 | | MCFG_SCREEN_UPDATE_DRIVER(rabbit_state, screen_update) |
| 899 | MCFG_SCREEN_UPDATE_DRIVER(rabbit_state, screen_update_rabbit) |
| 914 | 900 | MCFG_SCREEN_PALETTE("palette") |
| 915 | 901 | |
| 916 | 902 | MCFG_PALETTE_ADD_INIT_BLACK("palette", 0x4000) |
| r243483 | r243484 | |
| 980 | 966 | ROM_END |
| 981 | 967 | |
| 982 | 968 | |
| 983 | | GAME( 1997, rabbit, 0, rabbit, rabbit, rabbit_state, rabbit, ROT0, "Aorn / Electronic Arts", "Rabbit (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // somewhat playable |
| 969 | GAME( 1997, rabbit, 0, rabbit, rabbit, rabbit_state, rabbit, ROT0, "Aorn / Electronic Arts", "Rabbit (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) // somewhat playable |
trunk/src/mame/drivers/segas32.c
| r243483 | r243484 | |
| 3278 | 3278 | */ |
| 3279 | 3279 | ROM_START( harddunk ) |
| 3280 | 3280 | ROM_REGION( 0x200000, "maincpu", 0 ) /* v60 code */ |
| 3281 | | ROM_LOAD32_WORD_x2( "epr-16512.ic37", 0x000000, 0x40000, CRC(1a7de085) SHA1(2e0dac1f7715089b7f6b1035c859ffe2d674932f) ) |
| 3282 | | /* the following is the same as 16509.ic40 but with a different name, unusual for Sega */ |
| 3283 | | ROM_LOAD32_WORD_x2( "epr-16513.ic40", 0x000002, 0x40000, CRC(603dee75) SHA1(32ae964a4b57d470b4900cca6e06329f1a75a6e6) ) |
| 3281 | ROM_LOAD32_WORD_x2( "epr-16512.37", 0x000000, 0x40000, CRC(1a7de085) SHA1(2e0dac1f7715089b7f6b1035c859ffe2d674932f) ) |
| 3282 | /* the following is the same as 16509.40 but with a different name, unusual for Sega */ |
| 3283 | ROM_LOAD32_WORD_x2( "epr-16513.40", 0x000002, 0x40000, CRC(603dee75) SHA1(32ae964a4b57d470b4900cca6e06329f1a75a6e6) ) |
| 3284 | 3284 | |
| 3285 | 3285 | ROM_REGION( 0x180000, "soundcpu", 0 ) /* sound CPU */ |
| 3286 | | ROM_LOAD_x4( "epr-16505.ic31", 0x100000, 0x20000, CRC(eeb90a07) SHA1(d1c2132897994b2e85fd5a97222b9fcd61bc421e) ) |
| 3286 | ROM_LOAD_x4( "epr-16505", 0x100000, 0x20000, CRC(eeb90a07) SHA1(d1c2132897994b2e85fd5a97222b9fcd61bc421e) ) |
| 3287 | 3287 | |
| 3288 | 3288 | ROM_REGION( 0x100000, "gfx1", 0 ) /* tiles */ |
| 3289 | | ROM_LOAD16_BYTE( "mpr-16503.ic3", 0x000000, 0x080000, CRC(ac1b6f1a) SHA1(56482931adf7fe551acf796b74cd8af3773d4fef) ) |
| 3290 | | ROM_LOAD16_BYTE( "mpr-16504.ic11", 0x000001, 0x080000, CRC(7c61fcd8) SHA1(ca4354f90fada752bf11ee22a7798a8aa22b1c61) ) |
| 3289 | ROM_LOAD16_BYTE( "mpr-16503", 0x000000, 0x080000, CRC(ac1b6f1a) SHA1(56482931adf7fe551acf796b74cd8af3773d4fef) ) |
| 3290 | ROM_LOAD16_BYTE( "mpr-16504", 0x000001, 0x080000, CRC(7c61fcd8) SHA1(ca4354f90fada752bf11ee22a7798a8aa22b1c61) ) |
| 3291 | 3291 | |
| 3292 | 3292 | ROM_REGION32_BE( 0x1000000, "gfx2", 0 ) /* sprites */ |
| 3293 | | ROMX_LOAD( "mpr-16495.ic14", 0x000000, 0x200000, CRC(6e5f26be) SHA1(146761072bbed08f4a9df8a474b34fab61afaa4f) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3294 | | ROMX_LOAD( "mpr-16497.ic15", 0x000002, 0x200000, CRC(42ab5859) SHA1(f50c51eb81186aec5f747ecab4c5c928f8701afc) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3295 | | ROMX_LOAD( "mpr-16499.ic10", 0x000004, 0x200000, CRC(a290ea36) SHA1(2503b44174f23a9d323caab86553977d1d6d9c94) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3296 | | ROMX_LOAD( "mpr-16501.ic38", 0x000006, 0x200000, CRC(f1566620) SHA1(bcf31d11ee669d5afc7dc22c42fa59f4e48c1f50) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3297 | | ROMX_LOAD( "mpr-16496.ic22", 0x800000, 0x200000, CRC(d9d27247) SHA1(d211623478516ed1b89ab16a7fc7969954c5e353) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3298 | | ROMX_LOAD( "mpr-16498.ic23", 0x800002, 0x200000, CRC(c022a991) SHA1(a660a20692f4d9ba7be73577328f69f109be5e47) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3299 | | ROMX_LOAD( "mpr-16500.ic18", 0x800004, 0x200000, CRC(452c0be3) SHA1(af87ce4618bae2d791c1baed34ba7f853af664ff) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3300 | | ROMX_LOAD( "mpr-16502.ic41", 0x800006, 0x200000, CRC(ffc3147e) SHA1(12d882dec3098674d27058a8009e8778555f477a) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3293 | ROMX_LOAD( "mpr-16495", 0x000000, 0x200000, CRC(6e5f26be) SHA1(146761072bbed08f4a9df8a474b34fab61afaa4f) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3294 | ROMX_LOAD( "mpr-16497", 0x000002, 0x200000, CRC(42ab5859) SHA1(f50c51eb81186aec5f747ecab4c5c928f8701afc) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3295 | ROMX_LOAD( "mpr-16499", 0x000004, 0x200000, CRC(a290ea36) SHA1(2503b44174f23a9d323caab86553977d1d6d9c94) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3296 | ROMX_LOAD( "mpr-16501", 0x000006, 0x200000, CRC(f1566620) SHA1(bcf31d11ee669d5afc7dc22c42fa59f4e48c1f50) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3297 | ROMX_LOAD( "mpr-16496", 0x800000, 0x200000, CRC(d9d27247) SHA1(d211623478516ed1b89ab16a7fc7969954c5e353) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3298 | ROMX_LOAD( "mpr-16498", 0x800002, 0x200000, CRC(c022a991) SHA1(a660a20692f4d9ba7be73577328f69f109be5e47) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3299 | ROMX_LOAD( "mpr-16500", 0x800004, 0x200000, CRC(452c0be3) SHA1(af87ce4618bae2d791c1baed34ba7f853af664ff) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3300 | ROMX_LOAD( "mpr-16502", 0x800006, 0x200000, CRC(ffc3147e) SHA1(12d882dec3098674d27058a8009e8778555f477a) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3301 | 3301 | |
| 3302 | 3302 | ROM_REGION( 0x400000, "sega", 0 ) /* Sega PCM sound data */ |
| 3303 | 3303 | ROM_LOAD( "mpr-16506.1", 0x000000, 0x200000, CRC(e779f5ed) SHA1(462d1bbe8bb12a0c5a6d6c613c720b26ec21cb25) ) |
| r243483 | r243484 | |
| 3310 | 3310 | */ |
| 3311 | 3311 | ROM_START( harddunkj ) |
| 3312 | 3312 | ROM_REGION( 0x200000, "maincpu", 0 ) /* v60 code */ |
| 3313 | | ROM_LOAD32_WORD_x2( "epr-16508.ic37", 0x000000, 0x40000, CRC(b3713be5) SHA1(8123638a838e41fcc0d32e14382421b521eff94f) ) |
| 3314 | | ROM_LOAD32_WORD_x2( "epr-16509.ic40", 0x000002, 0x40000, CRC(603dee75) SHA1(32ae964a4b57d470b4900cca6e06329f1a75a6e6) ) |
| 3313 | ROM_LOAD32_WORD_x2( "epr-16508.37", 0x000000, 0x40000, CRC(b3713be5) SHA1(8123638a838e41fcc0d32e14382421b521eff94f) ) |
| 3314 | ROM_LOAD32_WORD_x2( "epr-16509.40", 0x000002, 0x40000, CRC(603dee75) SHA1(32ae964a4b57d470b4900cca6e06329f1a75a6e6) ) |
| 3315 | 3315 | |
| 3316 | 3316 | ROM_REGION( 0x180000, "soundcpu", 0 ) /* sound CPU */ |
| 3317 | | ROM_LOAD_x4( "epr-16505.ic31", 0x100000, 0x20000, CRC(eeb90a07) SHA1(d1c2132897994b2e85fd5a97222b9fcd61bc421e) ) |
| 3317 | ROM_LOAD_x4( "epr-16505", 0x100000, 0x20000, CRC(eeb90a07) SHA1(d1c2132897994b2e85fd5a97222b9fcd61bc421e) ) |
| 3318 | 3318 | |
| 3319 | 3319 | ROM_REGION( 0x100000, "gfx1", 0 ) /* tiles */ |
| 3320 | | ROM_LOAD16_BYTE( "mpr-16503.ic3", 0x000000, 0x080000, CRC(ac1b6f1a) SHA1(56482931adf7fe551acf796b74cd8af3773d4fef) ) |
| 3321 | | ROM_LOAD16_BYTE( "mpr-16504.ic11", 0x000001, 0x080000, CRC(7c61fcd8) SHA1(ca4354f90fada752bf11ee22a7798a8aa22b1c61) ) |
| 3320 | ROM_LOAD16_BYTE( "mpr-16503", 0x000000, 0x080000, CRC(ac1b6f1a) SHA1(56482931adf7fe551acf796b74cd8af3773d4fef) ) |
| 3321 | ROM_LOAD16_BYTE( "mpr-16504", 0x000001, 0x080000, CRC(7c61fcd8) SHA1(ca4354f90fada752bf11ee22a7798a8aa22b1c61) ) |
| 3322 | 3322 | |
| 3323 | 3323 | ROM_REGION32_BE( 0x1000000, "gfx2", 0 ) /* sprites */ |
| 3324 | | ROMX_LOAD( "mpr-16495.ic14", 0x000000, 0x200000, CRC(6e5f26be) SHA1(146761072bbed08f4a9df8a474b34fab61afaa4f) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3325 | | ROMX_LOAD( "mpr-16497.ic15", 0x000002, 0x200000, CRC(42ab5859) SHA1(f50c51eb81186aec5f747ecab4c5c928f8701afc) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3326 | | ROMX_LOAD( "mpr-16499.ic10", 0x000004, 0x200000, CRC(a290ea36) SHA1(2503b44174f23a9d323caab86553977d1d6d9c94) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3327 | | ROMX_LOAD( "mpr-16501.ic38", 0x000006, 0x200000, CRC(f1566620) SHA1(bcf31d11ee669d5afc7dc22c42fa59f4e48c1f50) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3328 | | ROMX_LOAD( "mpr-16496.ic22", 0x800000, 0x200000, CRC(d9d27247) SHA1(d211623478516ed1b89ab16a7fc7969954c5e353) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3329 | | ROMX_LOAD( "mpr-16498.ic23", 0x800002, 0x200000, CRC(c022a991) SHA1(a660a20692f4d9ba7be73577328f69f109be5e47) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3330 | | ROMX_LOAD( "mpr-16500.ic18", 0x800004, 0x200000, CRC(452c0be3) SHA1(af87ce4618bae2d791c1baed34ba7f853af664ff) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3331 | | ROMX_LOAD( "mpr-16502.ic41", 0x800006, 0x200000, CRC(ffc3147e) SHA1(12d882dec3098674d27058a8009e8778555f477a) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3324 | ROMX_LOAD( "mpr-16495", 0x000000, 0x200000, CRC(6e5f26be) SHA1(146761072bbed08f4a9df8a474b34fab61afaa4f) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3325 | ROMX_LOAD( "mpr-16497", 0x000002, 0x200000, CRC(42ab5859) SHA1(f50c51eb81186aec5f747ecab4c5c928f8701afc) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3326 | ROMX_LOAD( "mpr-16499", 0x000004, 0x200000, CRC(a290ea36) SHA1(2503b44174f23a9d323caab86553977d1d6d9c94) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3327 | ROMX_LOAD( "mpr-16501", 0x000006, 0x200000, CRC(f1566620) SHA1(bcf31d11ee669d5afc7dc22c42fa59f4e48c1f50) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3328 | ROMX_LOAD( "mpr-16496", 0x800000, 0x200000, CRC(d9d27247) SHA1(d211623478516ed1b89ab16a7fc7969954c5e353) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3329 | ROMX_LOAD( "mpr-16498", 0x800002, 0x200000, CRC(c022a991) SHA1(a660a20692f4d9ba7be73577328f69f109be5e47) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3330 | ROMX_LOAD( "mpr-16500", 0x800004, 0x200000, CRC(452c0be3) SHA1(af87ce4618bae2d791c1baed34ba7f853af664ff) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3331 | ROMX_LOAD( "mpr-16502", 0x800006, 0x200000, CRC(ffc3147e) SHA1(12d882dec3098674d27058a8009e8778555f477a) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3332 | 3332 | |
| 3333 | 3333 | ROM_REGION( 0x400000, "sega", 0 ) /* Sega PCM sound data */ |
| 3334 | | ROM_LOAD( "mpr-16506.ic1", 0x000000, 0x200000, CRC(e779f5ed) SHA1(462d1bbe8bb12a0c5a6d6c613c720b26ec21cb25) ) |
| 3335 | | ROM_LOAD( "mpr-16507.ic2", 0x200000, 0x200000, CRC(31e068d3) SHA1(9ac88b15af441fb3b31ce759c565b60a09039571) ) |
| 3334 | ROM_LOAD( "mpr-16506.1", 0x000000, 0x200000, CRC(e779f5ed) SHA1(462d1bbe8bb12a0c5a6d6c613c720b26ec21cb25) ) |
| 3335 | ROM_LOAD( "mpr-16507.2", 0x200000, 0x200000, CRC(31e068d3) SHA1(9ac88b15af441fb3b31ce759c565b60a09039571) ) |
| 3336 | 3336 | ROM_END |
| 3337 | 3337 | |
| 3338 | 3338 | |
| r243483 | r243484 | |
| 3573 | 3573 | */ |
| 3574 | 3574 | ROM_START( orunners ) |
| 3575 | 3575 | ROM_REGION( 0x200000, "maincpu", 0 ) /* v60 code */ |
| 3576 | | ROM_LOAD32_WORD_x4( "epr15620.ic37", 0x000000, 0x020000, CRC(84f5ad92) SHA1(1f9cb04b42b2d450be93400d9979a7910eaf05d1) ) |
| 3577 | | ROM_LOAD32_WORD_x4( "epr15621.ic40", 0x000002, 0x020000, CRC(d98b765a) SHA1(b58567e976228267a86af53de2135bc0b247a44a) ) |
| 3578 | | ROM_LOAD32_WORD( "mpr15538.ic36", 0x100000, 0x080000, CRC(93958820) SHA1(e19b6f18a5707dbb64ae009d63c05eac5bac4a81) ) |
| 3579 | | ROM_LOAD32_WORD( "mpr15539.ic39", 0x100002, 0x080000, CRC(219760fa) SHA1(bd62a83de9c9542f6da454a87dc4947492f65c52) ) |
| 3576 | ROM_LOAD32_WORD_x4( "epr15620.37", 0x000000, 0x020000, CRC(84f5ad92) SHA1(1f9cb04b42b2d450be93400d9979a7910eaf05d1) ) |
| 3577 | ROM_LOAD32_WORD_x4( "epr15621.40", 0x000002, 0x020000, CRC(d98b765a) SHA1(b58567e976228267a86af53de2135bc0b247a44a) ) |
| 3578 | ROM_LOAD32_WORD( "mpr15538.bin", 0x100000, 0x080000, CRC(93958820) SHA1(e19b6f18a5707dbb64ae009d63c05eac5bac4a81) ) |
| 3579 | ROM_LOAD32_WORD( "mpr15539.bin", 0x100002, 0x080000, CRC(219760fa) SHA1(bd62a83de9c9542f6da454a87dc4947492f65c52) ) |
| 3580 | 3580 | |
| 3581 | 3581 | ROM_REGION( 0x180000, "soundcpu", 0 ) /* sound CPU */ |
| 3582 | | ROM_LOAD( "epr15550.ic31", 0x100000, 0x80000, CRC(0205d2ed) SHA1(3475479e1a45fe96eefbe53842758898db7accbf) ) |
| 3582 | ROM_LOAD( "epr15550.bin", 0x100000, 0x80000, CRC(0205d2ed) SHA1(3475479e1a45fe96eefbe53842758898db7accbf) ) |
| 3583 | 3583 | |
| 3584 | 3584 | ROM_REGION( 0x400000, "gfx1", 0 ) /* tiles */ |
| 3585 | | ROM_LOAD16_BYTE( "mpr15548.ic3", 0x000000, 0x200000, CRC(b6470a66) SHA1(e1544590c02d41f62f82a4d771b893fb0f2734c7) ) |
| 3586 | | ROM_LOAD16_BYTE( "mpr15549.ic11", 0x000001, 0x200000, CRC(81d12520) SHA1(1555893941e832f00ad3d0b3ad0c34a0d3a1c58a) ) |
| 3585 | ROM_LOAD16_BYTE( "mpr15548.bin", 0x000000, 0x200000, CRC(b6470a66) SHA1(e1544590c02d41f62f82a4d771b893fb0f2734c7) ) |
| 3586 | ROM_LOAD16_BYTE( "mpr15549.bin", 0x000001, 0x200000, CRC(81d12520) SHA1(1555893941e832f00ad3d0b3ad0c34a0d3a1c58a) ) |
| 3587 | 3587 | |
| 3588 | 3588 | ROM_REGION32_BE( 0x1000000, "gfx2", 0 ) /* sprites */ |
| 3589 | | ROMX_LOAD( "mpr15540.ic14", 0x000000, 0x200000, CRC(a10d72b4) SHA1(6d9d5e20be6721b53ce49df4d5a1bbd91f5b3aed) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3590 | | ROMX_LOAD( "mpr15542.ic15", 0x000002, 0x200000, CRC(40952374) SHA1(c669ef52508bc2f49cf812dc86ac98fb535471fa) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3591 | | ROMX_LOAD( "mpr15544.ic10", 0x000004, 0x200000, CRC(39e3df45) SHA1(38a7b21617b45613b05509dda388f8f7770b186c) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3592 | | ROMX_LOAD( "mpr15546.ic38", 0x000006, 0x200000, CRC(e3fcc12c) SHA1(1cf7e05c7873f68789a27a91cddf471df40d7907) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3593 | | ROMX_LOAD( "mpr15541.ic22", 0x800000, 0x200000, CRC(a2003c2d) SHA1(200a2c7d78d3f5f28909267fdcdbddd58c5f5fa2) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3594 | | ROMX_LOAD( "mpr15543.ic23", 0x800002, 0x200000, CRC(933e8e7b) SHA1(0d53286f524f47851a483569dc37e9f6d34cc5f4) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3595 | | ROMX_LOAD( "mpr15545.ic18", 0x800004, 0x200000, CRC(53dd0235) SHA1(4aee5ae1820ff933b6bd8a54bdbf989c0bc95c1a) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3596 | | ROMX_LOAD( "mpr15547.ic41", 0x800006, 0x200000, CRC(edcb2a43) SHA1(f0bcfcc749ca0267f85bf9838164869912944d00) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3589 | ROMX_LOAD( "mpr15540.bin", 0x000000, 0x200000, CRC(a10d72b4) SHA1(6d9d5e20be6721b53ce49df4d5a1bbd91f5b3aed) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3590 | ROMX_LOAD( "mpr15542.bin", 0x000002, 0x200000, CRC(40952374) SHA1(c669ef52508bc2f49cf812dc86ac98fb535471fa) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3591 | ROMX_LOAD( "mpr15544.bin", 0x000004, 0x200000, CRC(39e3df45) SHA1(38a7b21617b45613b05509dda388f8f7770b186c) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3592 | ROMX_LOAD( "mpr15546.bin", 0x000006, 0x200000, CRC(e3fcc12c) SHA1(1cf7e05c7873f68789a27a91cddf471df40d7907) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3593 | ROMX_LOAD( "mpr15541.bin", 0x800000, 0x200000, CRC(a2003c2d) SHA1(200a2c7d78d3f5f28909267fdcdbddd58c5f5fa2) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3594 | ROMX_LOAD( "mpr15543.bin", 0x800002, 0x200000, CRC(933e8e7b) SHA1(0d53286f524f47851a483569dc37e9f6d34cc5f4) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3595 | ROMX_LOAD( "mpr15545.bin", 0x800004, 0x200000, CRC(53dd0235) SHA1(4aee5ae1820ff933b6bd8a54bdbf989c0bc95c1a) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3596 | ROMX_LOAD( "mpr15547.bin", 0x800006, 0x200000, CRC(edcb2a43) SHA1(f0bcfcc749ca0267f85bf9838164869912944d00) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3597 | 3597 | |
| 3598 | 3598 | ROM_REGION( 0x400000, "sega", 0 ) /* Sega PCM sound data */ |
| 3599 | | ROM_LOAD( "mpr15551.ic1", 0x000000, 0x200000, CRC(4894bc73) SHA1(351f5c03fb430fd87df915dfe3a377b5ada622c4) ) |
| 3600 | | ROM_LOAD( "mpr15552.ic2", 0x200000, 0x200000, CRC(1c4b5e73) SHA1(50a8e9a200575a3522a51bf094aa0e87b90bb0a3) ) |
| 3599 | ROM_LOAD( "mpr15551.bin", 0x000000, 0x200000, CRC(4894bc73) SHA1(351f5c03fb430fd87df915dfe3a377b5ada622c4) ) |
| 3600 | ROM_LOAD( "mpr15552.bin", 0x200000, 0x200000, CRC(1c4b5e73) SHA1(50a8e9a200575a3522a51bf094aa0e87b90bb0a3) ) |
| 3601 | 3601 | ROM_END |
| 3602 | 3602 | |
| 3603 | 3603 | /************************************************************************************************************************** |
| r243483 | r243484 | |
| 3611 | 3611 | */ |
| 3612 | 3612 | ROM_START( orunnersu ) |
| 3613 | 3613 | ROM_REGION( 0x200000, "maincpu", 0 ) /* v60 code */ |
| 3614 | | ROM_LOAD32_WORD_x4( "epr15618.ic37", 0x000000, 0x020000, CRC(25647f76) SHA1(9f882921ebb2f078350295c322b263f75812c053) ) |
| 3615 | | ROM_LOAD32_WORD_x4( "epr15619.ic40", 0x000002, 0x020000, CRC(2a558f95) SHA1(616ec0a7b251da61a49b933c58895b1a4d39417a) ) |
| 3616 | | ROM_LOAD32_WORD( "mpr15538.ic36", 0x100000, 0x080000, CRC(93958820) SHA1(e19b6f18a5707dbb64ae009d63c05eac5bac4a81) ) |
| 3617 | | ROM_LOAD32_WORD( "mpr15539.ic39", 0x100002, 0x080000, CRC(219760fa) SHA1(bd62a83de9c9542f6da454a87dc4947492f65c52) ) |
| 3614 | ROM_LOAD32_WORD_x4( "epr15618.37", 0x000000, 0x020000, CRC(25647f76) SHA1(9f882921ebb2f078350295c322b263f75812c053) ) |
| 3615 | ROM_LOAD32_WORD_x4( "epr15619.40", 0x000002, 0x020000, CRC(2a558f95) SHA1(616ec0a7b251da61a49b933c58895b1a4d39417a) ) |
| 3616 | ROM_LOAD32_WORD( "mpr15538.bin", 0x100000, 0x080000, CRC(93958820) SHA1(e19b6f18a5707dbb64ae009d63c05eac5bac4a81) ) |
| 3617 | ROM_LOAD32_WORD( "mpr15539.bin", 0x100002, 0x080000, CRC(219760fa) SHA1(bd62a83de9c9542f6da454a87dc4947492f65c52) ) |
| 3618 | 3618 | |
| 3619 | 3619 | ROM_REGION( 0x180000, "soundcpu", 0 ) /* sound CPU */ |
| 3620 | | ROM_LOAD( "epr15550.ic31", 0x100000, 0x80000, CRC(0205d2ed) SHA1(3475479e1a45fe96eefbe53842758898db7accbf) ) |
| 3620 | ROM_LOAD( "epr15550.bin", 0x100000, 0x80000, CRC(0205d2ed) SHA1(3475479e1a45fe96eefbe53842758898db7accbf) ) |
| 3621 | 3621 | |
| 3622 | 3622 | ROM_REGION( 0x400000, "gfx1", 0 ) /* tiles */ |
| 3623 | | ROM_LOAD16_BYTE( "mpr15548.ic3", 0x000000, 0x200000, CRC(b6470a66) SHA1(e1544590c02d41f62f82a4d771b893fb0f2734c7) ) |
| 3624 | | ROM_LOAD16_BYTE( "mpr15549.ic11", 0x000001, 0x200000, CRC(81d12520) SHA1(1555893941e832f00ad3d0b3ad0c34a0d3a1c58a) ) |
| 3623 | ROM_LOAD16_BYTE( "mpr15548.bin", 0x000000, 0x200000, CRC(b6470a66) SHA1(e1544590c02d41f62f82a4d771b893fb0f2734c7) ) |
| 3624 | ROM_LOAD16_BYTE( "mpr15549.bin", 0x000001, 0x200000, CRC(81d12520) SHA1(1555893941e832f00ad3d0b3ad0c34a0d3a1c58a) ) |
| 3625 | 3625 | |
| 3626 | 3626 | ROM_REGION32_BE( 0x1000000, "gfx2", 0 ) /* sprites */ |
| 3627 | | ROMX_LOAD( "mpr15540.ic14", 0x000000, 0x200000, CRC(a10d72b4) SHA1(6d9d5e20be6721b53ce49df4d5a1bbd91f5b3aed) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3628 | | ROMX_LOAD( "mpr15542.ic15", 0x000002, 0x200000, CRC(40952374) SHA1(c669ef52508bc2f49cf812dc86ac98fb535471fa) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3629 | | ROMX_LOAD( "mpr15544.ic10", 0x000004, 0x200000, CRC(39e3df45) SHA1(38a7b21617b45613b05509dda388f8f7770b186c) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3630 | | ROMX_LOAD( "mpr15546.ic38", 0x000006, 0x200000, CRC(e3fcc12c) SHA1(1cf7e05c7873f68789a27a91cddf471df40d7907) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3631 | | ROMX_LOAD( "mpr15541.ic22", 0x800000, 0x200000, CRC(a2003c2d) SHA1(200a2c7d78d3f5f28909267fdcdbddd58c5f5fa2) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3632 | | ROMX_LOAD( "mpr15543.ic23", 0x800002, 0x200000, CRC(933e8e7b) SHA1(0d53286f524f47851a483569dc37e9f6d34cc5f4) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3633 | | ROMX_LOAD( "mpr15545.ic18", 0x800004, 0x200000, CRC(53dd0235) SHA1(4aee5ae1820ff933b6bd8a54bdbf989c0bc95c1a) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3634 | | ROMX_LOAD( "mpr15547.ic41", 0x800006, 0x200000, CRC(edcb2a43) SHA1(f0bcfcc749ca0267f85bf9838164869912944d00) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3627 | ROMX_LOAD( "mpr15540.bin", 0x000000, 0x200000, CRC(a10d72b4) SHA1(6d9d5e20be6721b53ce49df4d5a1bbd91f5b3aed) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3628 | ROMX_LOAD( "mpr15542.bin", 0x000002, 0x200000, CRC(40952374) SHA1(c669ef52508bc2f49cf812dc86ac98fb535471fa) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3629 | ROMX_LOAD( "mpr15544.bin", 0x000004, 0x200000, CRC(39e3df45) SHA1(38a7b21617b45613b05509dda388f8f7770b186c) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3630 | ROMX_LOAD( "mpr15546.bin", 0x000006, 0x200000, CRC(e3fcc12c) SHA1(1cf7e05c7873f68789a27a91cddf471df40d7907) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3631 | ROMX_LOAD( "mpr15541.bin", 0x800000, 0x200000, CRC(a2003c2d) SHA1(200a2c7d78d3f5f28909267fdcdbddd58c5f5fa2) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3632 | ROMX_LOAD( "mpr15543.bin", 0x800002, 0x200000, CRC(933e8e7b) SHA1(0d53286f524f47851a483569dc37e9f6d34cc5f4) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3633 | ROMX_LOAD( "mpr15545.bin", 0x800004, 0x200000, CRC(53dd0235) SHA1(4aee5ae1820ff933b6bd8a54bdbf989c0bc95c1a) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3634 | ROMX_LOAD( "mpr15547.bin", 0x800006, 0x200000, CRC(edcb2a43) SHA1(f0bcfcc749ca0267f85bf9838164869912944d00) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3635 | 3635 | |
| 3636 | 3636 | ROM_REGION( 0x400000, "sega", 0 ) /* Sega PCM sound data */ |
| 3637 | | ROM_LOAD( "mpr15551.ic1", 0x000000, 0x200000, CRC(4894bc73) SHA1(351f5c03fb430fd87df915dfe3a377b5ada622c4) ) |
| 3638 | | ROM_LOAD( "mpr15552.ic2", 0x200000, 0x200000, CRC(1c4b5e73) SHA1(50a8e9a200575a3522a51bf094aa0e87b90bb0a3) ) |
| 3637 | ROM_LOAD( "mpr15551.bin", 0x000000, 0x200000, CRC(4894bc73) SHA1(351f5c03fb430fd87df915dfe3a377b5ada622c4) ) |
| 3638 | ROM_LOAD( "mpr15552.bin", 0x200000, 0x200000, CRC(1c4b5e73) SHA1(50a8e9a200575a3522a51bf094aa0e87b90bb0a3) ) |
| 3639 | 3639 | ROM_END |
| 3640 | 3640 | |
| 3641 | 3641 | /************************************************************************************************************************** |
| r243483 | r243484 | |
| 3649 | 3649 | */ |
| 3650 | 3650 | ROM_START( orunnersj ) |
| 3651 | 3651 | ROM_REGION( 0x200000, "maincpu", 0 ) /* v60 code */ |
| 3652 | | ROM_LOAD32_WORD_x4( "epr15616.ic37", 0x000000, 0x020000, CRC(fb550545) SHA1(2f2c36843b115f5417e1f2ccd4a34ebf91265190) ) /* Need to verify the EPR numbers */ |
| 3653 | | ROM_LOAD32_WORD_x4( "epr15617.ic40", 0x000002, 0x020000, CRC(6bb741e0) SHA1(d92087a2c0b6de4287e569eecf9758615a85d1eb) ) /* Need to verify the EPR numbers */ |
| 3654 | | ROM_LOAD32_WORD( "mpr15538.ic36", 0x100000, 0x080000, CRC(93958820) SHA1(e19b6f18a5707dbb64ae009d63c05eac5bac4a81) ) |
| 3655 | | ROM_LOAD32_WORD( "mpr15539.ic39", 0x100002, 0x080000, CRC(219760fa) SHA1(bd62a83de9c9542f6da454a87dc4947492f65c52) ) |
| 3652 | ROM_LOAD32_WORD_x4( "epr15616.37", 0x000000, 0x020000, CRC(fb550545) SHA1(2f2c36843b115f5417e1f2ccd4a34ebf91265190) ) /* Need to verify the EPR numbers */ |
| 3653 | ROM_LOAD32_WORD_x4( "epr15617.40", 0x000002, 0x020000, CRC(6bb741e0) SHA1(d92087a2c0b6de4287e569eecf9758615a85d1eb) ) /* Need to verify the EPR numbers */ |
| 3654 | ROM_LOAD32_WORD( "mpr15538.bin", 0x100000, 0x080000, CRC(93958820) SHA1(e19b6f18a5707dbb64ae009d63c05eac5bac4a81) ) |
| 3655 | ROM_LOAD32_WORD( "mpr15539.bin", 0x100002, 0x080000, CRC(219760fa) SHA1(bd62a83de9c9542f6da454a87dc4947492f65c52) ) |
| 3656 | 3656 | |
| 3657 | 3657 | ROM_REGION( 0x180000, "soundcpu", 0 ) /* sound CPU */ |
| 3658 | | ROM_LOAD( "epr15550.ic31", 0x100000, 0x80000, CRC(0205d2ed) SHA1(3475479e1a45fe96eefbe53842758898db7accbf) ) |
| 3658 | ROM_LOAD( "epr15550.bin", 0x100000, 0x80000, CRC(0205d2ed) SHA1(3475479e1a45fe96eefbe53842758898db7accbf) ) |
| 3659 | 3659 | |
| 3660 | 3660 | ROM_REGION( 0x400000, "gfx1", 0 ) /* tiles */ |
| 3661 | | ROM_LOAD16_BYTE( "mpr15548.ic3", 0x000000, 0x200000, CRC(b6470a66) SHA1(e1544590c02d41f62f82a4d771b893fb0f2734c7) ) |
| 3662 | | ROM_LOAD16_BYTE( "mpr15549.ic11", 0x000001, 0x200000, CRC(81d12520) SHA1(1555893941e832f00ad3d0b3ad0c34a0d3a1c58a) ) |
| 3661 | ROM_LOAD16_BYTE( "mpr15548.bin", 0x000000, 0x200000, CRC(b6470a66) SHA1(e1544590c02d41f62f82a4d771b893fb0f2734c7) ) |
| 3662 | ROM_LOAD16_BYTE( "mpr15549.bin", 0x000001, 0x200000, CRC(81d12520) SHA1(1555893941e832f00ad3d0b3ad0c34a0d3a1c58a) ) |
| 3663 | 3663 | |
| 3664 | 3664 | ROM_REGION32_BE( 0x1000000, "gfx2", 0 ) /* sprites */ |
| 3665 | | ROMX_LOAD( "mpr15540.ic14", 0x000000, 0x200000, CRC(a10d72b4) SHA1(6d9d5e20be6721b53ce49df4d5a1bbd91f5b3aed) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3666 | | ROMX_LOAD( "mpr15542.ic15", 0x000002, 0x200000, CRC(40952374) SHA1(c669ef52508bc2f49cf812dc86ac98fb535471fa) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3667 | | ROMX_LOAD( "mpr15544.ic10", 0x000004, 0x200000, CRC(39e3df45) SHA1(38a7b21617b45613b05509dda388f8f7770b186c) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3668 | | ROMX_LOAD( "mpr15546.ic38", 0x000006, 0x200000, CRC(e3fcc12c) SHA1(1cf7e05c7873f68789a27a91cddf471df40d7907) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3669 | | ROMX_LOAD( "mpr15541.ic22", 0x800000, 0x200000, CRC(a2003c2d) SHA1(200a2c7d78d3f5f28909267fdcdbddd58c5f5fa2) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3670 | | ROMX_LOAD( "mpr15543.ic23", 0x800002, 0x200000, CRC(933e8e7b) SHA1(0d53286f524f47851a483569dc37e9f6d34cc5f4) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3671 | | ROMX_LOAD( "mpr15545.ic18", 0x800004, 0x200000, CRC(53dd0235) SHA1(4aee5ae1820ff933b6bd8a54bdbf989c0bc95c1a) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3672 | | ROMX_LOAD( "mpr15547.ic41", 0x800006, 0x200000, CRC(edcb2a43) SHA1(f0bcfcc749ca0267f85bf9838164869912944d00) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3665 | ROMX_LOAD( "mpr15540.bin", 0x000000, 0x200000, CRC(a10d72b4) SHA1(6d9d5e20be6721b53ce49df4d5a1bbd91f5b3aed) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3666 | ROMX_LOAD( "mpr15542.bin", 0x000002, 0x200000, CRC(40952374) SHA1(c669ef52508bc2f49cf812dc86ac98fb535471fa) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3667 | ROMX_LOAD( "mpr15544.bin", 0x000004, 0x200000, CRC(39e3df45) SHA1(38a7b21617b45613b05509dda388f8f7770b186c) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3668 | ROMX_LOAD( "mpr15546.bin", 0x000006, 0x200000, CRC(e3fcc12c) SHA1(1cf7e05c7873f68789a27a91cddf471df40d7907) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3669 | ROMX_LOAD( "mpr15541.bin", 0x800000, 0x200000, CRC(a2003c2d) SHA1(200a2c7d78d3f5f28909267fdcdbddd58c5f5fa2) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3670 | ROMX_LOAD( "mpr15543.bin", 0x800002, 0x200000, CRC(933e8e7b) SHA1(0d53286f524f47851a483569dc37e9f6d34cc5f4) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3671 | ROMX_LOAD( "mpr15545.bin", 0x800004, 0x200000, CRC(53dd0235) SHA1(4aee5ae1820ff933b6bd8a54bdbf989c0bc95c1a) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3672 | ROMX_LOAD( "mpr15547.bin", 0x800006, 0x200000, CRC(edcb2a43) SHA1(f0bcfcc749ca0267f85bf9838164869912944d00) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 3673 | 3673 | |
| 3674 | 3674 | ROM_REGION( 0x400000, "sega", 0 ) /* Sega PCM sound data */ |
| 3675 | | ROM_LOAD( "mpr15551.ic1", 0x000000, 0x200000, CRC(4894bc73) SHA1(351f5c03fb430fd87df915dfe3a377b5ada622c4) ) |
| 3676 | | ROM_LOAD( "mpr15552.ic2", 0x200000, 0x200000, CRC(1c4b5e73) SHA1(50a8e9a200575a3522a51bf094aa0e87b90bb0a3) ) |
| 3675 | ROM_LOAD( "mpr15551.bin", 0x000000, 0x200000, CRC(4894bc73) SHA1(351f5c03fb430fd87df915dfe3a377b5ada622c4) ) |
| 3676 | ROM_LOAD( "mpr15552.bin", 0x200000, 0x200000, CRC(1c4b5e73) SHA1(50a8e9a200575a3522a51bf094aa0e87b90bb0a3) ) |
| 3677 | 3677 | ROM_END |
| 3678 | 3678 | |
| 3679 | 3679 | |
| r243483 | r243484 | |
| 4186 | 4186 | */ |
| 4187 | 4187 | ROM_START( scross ) |
| 4188 | 4188 | ROM_REGION( 0x200000, "maincpu", 0 ) /* v60 code */ |
| 4189 | | ROM_LOAD32_WORD_x2( "epr-15093.ic37", 0x000000, 0x040000, CRC(2adc7a4b) SHA1(dca71f00d94898c0758394704d819e13482bf120) ) |
| 4190 | | ROM_LOAD32_WORD_x2( "epr-15094.ic40", 0x000002, 0x040000, CRC(bbb0ae73) SHA1(0d8837706405f301adf8fa85c8d4813d7600af98) ) |
| 4191 | | ROM_LOAD32_WORD( "epr-15018.ic36", 0x100000, 0x080000, CRC(3a98385e) SHA1(8088d337655030c28e290da4bbf44cb647dab66c) ) |
| 4192 | | ROM_LOAD32_WORD( "epr-15019.ic39", 0x100002, 0x080000, CRC(8bf4ac83) SHA1(e594d9d9b42d0765ed8a20a40b7dd92b75124d34) ) |
| 4189 | ROM_LOAD32_WORD_x2( "epr-15093.bin", 0x000000, 0x040000, CRC(2adc7a4b) SHA1(dca71f00d94898c0758394704d819e13482bf120) ) |
| 4190 | ROM_LOAD32_WORD_x2( "epr-15094.bin", 0x000002, 0x040000, CRC(bbb0ae73) SHA1(0d8837706405f301adf8fa85c8d4813d7600af98) ) |
| 4191 | ROM_LOAD32_WORD( "epr-15018.bin", 0x100000, 0x080000, CRC(3a98385e) SHA1(8088d337655030c28e290da4bbf44cb647dab66c) ) |
| 4192 | ROM_LOAD32_WORD( "epr-15019.bin", 0x100002, 0x080000, CRC(8bf4ac83) SHA1(e594d9d9b42d0765ed8a20a40b7dd92b75124d34) ) |
| 4193 | 4193 | |
| 4194 | 4194 | ROM_REGION( 0x180000, "soundcpu", 0 ) /* sound CPU */ |
| 4195 | | ROM_LOAD_x4( "epr-15192.ic31", 0x100000, 0x20000, CRC(7524290b) SHA1(ee58be2c0c4293ee19622b96ca493f4ce4da0038) ) |
| 4195 | ROM_LOAD_x4( "epr-15192.bin", 0x100000, 0x20000, CRC(7524290b) SHA1(ee58be2c0c4293ee19622b96ca493f4ce4da0038) ) |
| 4196 | 4196 | |
| 4197 | 4197 | ROM_REGION( 0x400000, "gfx1", 0 ) /* tiles */ |
| 4198 | 4198 | /* 1ST AND 2ND HALF IDENTICAL (all roms) */ |
| 4199 | | ROM_LOAD16_BYTE( "epr-15020.ic3", 0x000000, 0x200000, CRC(65afea2f) SHA1(ad573727398bfac8e94f321be84b60e5690bfba6) ) |
| 4200 | | ROM_LOAD16_BYTE( "epr-15021.ic11", 0x000001, 0x200000, CRC(27bc6969) SHA1(d6bb446becb2d36b73bca5055357a43b837afc0a) ) |
| 4199 | ROM_LOAD16_BYTE( "epr-15020.bin", 0x000000, 0x200000, CRC(65afea2f) SHA1(ad573727398bfac8e94f321be84b60e5690bfba6) ) |
| 4200 | ROM_LOAD16_BYTE( "epr-15021.bin", 0x000001, 0x200000, CRC(27bc6969) SHA1(d6bb446becb2d36b73bca5055357a43b837afc0a) ) |
| 4201 | 4201 | |
| 4202 | 4202 | ROM_REGION32_BE( 0x1000000, "gfx2", 0 ) /* sprites */ |
| 4203 | 4203 | /* 1ST AND 2ND HALF IDENTICAL (all roms) */ |
| 4204 | | ROMX_LOAD( "epr-15022.ic14", 0x000000, 0x200000, CRC(09ca9608) SHA1(cbd0138c1c7811d42b051fed6a7e3526cc4e457f) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 4205 | | ROMX_LOAD( "epr-15024.ic15", 0x000002, 0x200000, CRC(0dc920eb) SHA1(d24d637aa0dcd3bae779ef7e12663df81667dbf7) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 4206 | | ROMX_LOAD( "epr-15026.ic10", 0x000004, 0x200000, CRC(67637c37) SHA1(7c250e7e9dd5c07da4fa35bacdfcecd5e8fa4ec7) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 4207 | | ROMX_LOAD( "epr-15028.ic38", 0x000006, 0x200000, CRC(9929abdc) SHA1(34b6624ddd3a0aedec0a2b433643a37f745ec66d) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 4208 | | ROMX_LOAD( "epr-15023.ic22", 0x800000, 0x200000, CRC(0e42a2bb) SHA1(503214caf5fa9a2324b61e04f378fd1a790322df) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 4209 | | ROMX_LOAD( "epr-15025.ic23", 0x800002, 0x200000, CRC(0c677fc6) SHA1(fc2207008417072e7ee91f722797d827e150ce2d) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 4210 | | ROMX_LOAD( "epr-15027.ic18", 0x800004, 0x200000, CRC(d6d077f9) SHA1(928cefae9ae58239fbffb1dcee282c6ac1e661fe) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 4211 | | ROMX_LOAD( "epr-15029.ic41", 0x800006, 0x200000, CRC(707af749) SHA1(fae5325c983df3cf198878220ad88d47339ac512) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 4204 | ROMX_LOAD( "epr-15022.bin", 0x000000, 0x200000, CRC(09ca9608) SHA1(cbd0138c1c7811d42b051fed6a7e3526cc4e457f) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 4205 | ROMX_LOAD( "epr-15024.bin", 0x000002, 0x200000, CRC(0dc920eb) SHA1(d24d637aa0dcd3bae779ef7e12663df81667dbf7) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 4206 | ROMX_LOAD( "epr-15026.bin", 0x000004, 0x200000, CRC(67637c37) SHA1(7c250e7e9dd5c07da4fa35bacdfcecd5e8fa4ec7) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 4207 | ROMX_LOAD( "epr-15028.bin", 0x000006, 0x200000, CRC(9929abdc) SHA1(34b6624ddd3a0aedec0a2b433643a37f745ec66d) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 4208 | ROMX_LOAD( "epr-15023.bin", 0x800000, 0x200000, CRC(0e42a2bb) SHA1(503214caf5fa9a2324b61e04f378fd1a790322df) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 4209 | ROMX_LOAD( "epr-15025.bin", 0x800002, 0x200000, CRC(0c677fc6) SHA1(fc2207008417072e7ee91f722797d827e150ce2d) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 4210 | ROMX_LOAD( "epr-15027.bin", 0x800004, 0x200000, CRC(d6d077f9) SHA1(928cefae9ae58239fbffb1dcee282c6ac1e661fe) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 4211 | ROMX_LOAD( "epr-15029.bin", 0x800006, 0x200000, CRC(707af749) SHA1(fae5325c983df3cf198878220ad88d47339ac512) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 4212 | 4212 | |
| 4213 | 4213 | ROM_REGION( 0x400000, "sega", 0 ) /* Sega PCM sound data */ |
| 4214 | 4214 | /* 1ST AND 2ND HALF IDENTICAL (all roms, are these OK?) */ |
| 4215 | | ROM_LOAD("epr-15031.ic1", 0x000000, 0x200000, CRC(663a7fd2) SHA1(b4393a687225b075db21960d19a6ddd7a9d7d086) ) |
| 4216 | | ROM_LOAD("epr-15032.ic2", 0x200000, 0x200000, CRC(cb709f3d) SHA1(3962c8b5907d1f8f611f58ddac693cc47364a79c) ) |
| 4215 | ROM_LOAD("epr-15031.bin", 0x000000, 0x200000, CRC(663a7fd2) SHA1(b4393a687225b075db21960d19a6ddd7a9d7d086) ) |
| 4216 | ROM_LOAD("epr-15032.bin", 0x200000, 0x200000, CRC(cb709f3d) SHA1(3962c8b5907d1f8f611f58ddac693cc47364a79c) ) |
| 4217 | 4217 | |
| 4218 | 4218 | ROM_REGION( 0x20000, "user2", 0 ) /* comms board? - might not belong to this game, just going based on epr number */ |
| 4219 | 4219 | ROM_LOAD( "epr-15033.ic17", 0x00000, 0x20000, CRC(dc19ac00) SHA1(16bbb5af034e5419673e637be30283b73ab7b290) ) |
| r243483 | r243484 | |
| 4226 | 4226 | |
| 4227 | 4227 | ROM_START( scrossu ) |
| 4228 | 4228 | ROM_REGION( 0x200000, "maincpu", 0 ) /* v60 code */ |
| 4229 | | ROM_LOAD32_WORD_x2( "epr-15091.ic37", 0x000000, 0x040000, CRC(2c572293) SHA1(6377a6eb6084f7332ce6eeaaf0c37200da792d0c) ) |
| 4230 | | ROM_LOAD32_WORD_x2( "epr-15092.ic40", 0x000002, 0x040000, CRC(6e3e175a) SHA1(feaca0720646e2a4b78b376e99dc86788adb98e7) ) |
| 4231 | | ROM_LOAD32_WORD( "epr-15018.ic36", 0x100000, 0x080000, CRC(3a98385e) SHA1(8088d337655030c28e290da4bbf44cb647dab66c) ) |
| 4232 | | ROM_LOAD32_WORD( "epr-15019.ic39", 0x100002, 0x080000, CRC(8bf4ac83) SHA1(e594d9d9b42d0765ed8a20a40b7dd92b75124d34) ) |
| 4229 | ROM_LOAD32_WORD_x2( "epr-15091.bin", 0x000000, 0x040000, CRC(2c572293) SHA1(6377a6eb6084f7332ce6eeaaf0c37200da792d0c) ) |
| 4230 | ROM_LOAD32_WORD_x2( "epr-15092.bin", 0x000002, 0x040000, CRC(6e3e175a) SHA1(feaca0720646e2a4b78b376e99dc86788adb98e7) ) |
| 4231 | ROM_LOAD32_WORD( "epr-15018.bin", 0x100000, 0x080000, CRC(3a98385e) SHA1(8088d337655030c28e290da4bbf44cb647dab66c) ) |
| 4232 | ROM_LOAD32_WORD( "epr-15019.bin", 0x100002, 0x080000, CRC(8bf4ac83) SHA1(e594d9d9b42d0765ed8a20a40b7dd92b75124d34) ) |
| 4233 | 4233 | |
| 4234 | 4234 | ROM_REGION( 0x180000, "soundcpu", 0 ) /* sound CPU */ |
| 4235 | | ROM_LOAD_x4( "epr-15192.ic31", 0x100000, 0x20000, CRC(7524290b) SHA1(ee58be2c0c4293ee19622b96ca493f4ce4da0038) ) |
| 4235 | ROM_LOAD_x4( "epr-15192.bin", 0x100000, 0x20000, CRC(7524290b) SHA1(ee58be2c0c4293ee19622b96ca493f4ce4da0038) ) |
| 4236 | 4236 | |
| 4237 | 4237 | ROM_REGION( 0x400000, "gfx1", 0 ) /* tiles */ |
| 4238 | 4238 | /* 1ST AND 2ND HALF IDENTICAL (all roms) */ |
| 4239 | | ROM_LOAD16_BYTE( "epr-15020.ic3", 0x000000, 0x200000, CRC(65afea2f) SHA1(ad573727398bfac8e94f321be84b60e5690bfba6) ) |
| 4240 | | ROM_LOAD16_BYTE( "epr-15021.ic11", 0x000001, 0x200000, CRC(27bc6969) SHA1(d6bb446becb2d36b73bca5055357a43b837afc0a) ) |
| 4239 | ROM_LOAD16_BYTE( "epr-15020.bin", 0x000000, 0x200000, CRC(65afea2f) SHA1(ad573727398bfac8e94f321be84b60e5690bfba6) ) |
| 4240 | ROM_LOAD16_BYTE( "epr-15021.bin", 0x000001, 0x200000, CRC(27bc6969) SHA1(d6bb446becb2d36b73bca5055357a43b837afc0a) ) |
| 4241 | 4241 | |
| 4242 | 4242 | ROM_REGION32_BE( 0x1000000, "gfx2", 0 ) /* sprites */ |
| 4243 | 4243 | /* 1ST AND 2ND HALF IDENTICAL (all roms) */ |
| 4244 | | ROMX_LOAD( "epr-15022.ic14", 0x000000, 0x200000, CRC(09ca9608) SHA1(cbd0138c1c7811d42b051fed6a7e3526cc4e457f) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 4245 | | ROMX_LOAD( "epr-15024.ic15", 0x000002, 0x200000, CRC(0dc920eb) SHA1(d24d637aa0dcd3bae779ef7e12663df81667dbf7) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 4246 | | ROMX_LOAD( "epr-15026.ic10", 0x000004, 0x200000, CRC(67637c37) SHA1(7c250e7e9dd5c07da4fa35bacdfcecd5e8fa4ec7) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 4247 | | ROMX_LOAD( "epr-15028.ic38", 0x000006, 0x200000, CRC(9929abdc) SHA1(34b6624ddd3a0aedec0a2b433643a37f745ec66d) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 4248 | | ROMX_LOAD( "epr-15023.ic22", 0x800000, 0x200000, CRC(0e42a2bb) SHA1(503214caf5fa9a2324b61e04f378fd1a790322df) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 4249 | | ROMX_LOAD( "epr-15025.ic23", 0x800002, 0x200000, CRC(0c677fc6) SHA1(fc2207008417072e7ee91f722797d827e150ce2d) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 4250 | | ROMX_LOAD( "epr-15027.ic18", 0x800004, 0x200000, CRC(d6d077f9) SHA1(928cefae9ae58239fbffb1dcee282c6ac1e661fe) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 4251 | | ROMX_LOAD( "epr-15029.ic41", 0x800006, 0x200000, CRC(707af749) SHA1(fae5325c983df3cf198878220ad88d47339ac512) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 4244 | ROMX_LOAD( "epr-15022.bin", 0x000000, 0x200000, CRC(09ca9608) SHA1(cbd0138c1c7811d42b051fed6a7e3526cc4e457f) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 4245 | ROMX_LOAD( "epr-15024.bin", 0x000002, 0x200000, CRC(0dc920eb) SHA1(d24d637aa0dcd3bae779ef7e12663df81667dbf7) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 4246 | ROMX_LOAD( "epr-15026.bin", 0x000004, 0x200000, CRC(67637c37) SHA1(7c250e7e9dd5c07da4fa35bacdfcecd5e8fa4ec7) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 4247 | ROMX_LOAD( "epr-15028.bin", 0x000006, 0x200000, CRC(9929abdc) SHA1(34b6624ddd3a0aedec0a2b433643a37f745ec66d) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 4248 | ROMX_LOAD( "epr-15023.bin", 0x800000, 0x200000, CRC(0e42a2bb) SHA1(503214caf5fa9a2324b61e04f378fd1a790322df) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 4249 | ROMX_LOAD( "epr-15025.bin", 0x800002, 0x200000, CRC(0c677fc6) SHA1(fc2207008417072e7ee91f722797d827e150ce2d) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 4250 | ROMX_LOAD( "epr-15027.bin", 0x800004, 0x200000, CRC(d6d077f9) SHA1(928cefae9ae58239fbffb1dcee282c6ac1e661fe) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 4251 | ROMX_LOAD( "epr-15029.bin", 0x800006, 0x200000, CRC(707af749) SHA1(fae5325c983df3cf198878220ad88d47339ac512) , ROM_SKIP(6)|ROM_GROUPWORD ) |
| 4252 | 4252 | |
| 4253 | 4253 | ROM_REGION( 0x400000, "sega", 0 ) /* Sega PCM sound data */ |
| 4254 | 4254 | /* 1ST AND 2ND HALF IDENTICAL (all roms, are these OK?) */ |
| 4255 | | ROM_LOAD("epr-15031.ic1", 0x000000, 0x200000, CRC(663a7fd2) SHA1(b4393a687225b075db21960d19a6ddd7a9d7d086) ) |
| 4256 | | ROM_LOAD("epr-15032.ic2", 0x200000, 0x200000, CRC(cb709f3d) SHA1(3962c8b5907d1f8f611f58ddac693cc47364a79c) ) |
| 4255 | ROM_LOAD("epr-15031.bin", 0x000000, 0x200000, CRC(663a7fd2) SHA1(b4393a687225b075db21960d19a6ddd7a9d7d086) ) |
| 4256 | ROM_LOAD("epr-15032.bin", 0x200000, 0x200000, CRC(cb709f3d) SHA1(3962c8b5907d1f8f611f58ddac693cc47364a79c) ) |
| 4257 | 4257 | ROM_END |
| 4258 | 4258 | |
| 4259 | 4259 | |
trunk/src/mame/drivers/tmmjprd.c
| r243483 | r243484 | |
| 39 | 39 | public: |
| 40 | 40 | tmmjprd_state(const machine_config &mconfig, device_type type, const char *tag) |
| 41 | 41 | : driver_device(mconfig, type, tag), |
| 42 | m_tilemap_regs(*this, "tilemap_regs"), |
| 43 | m_spriteregs(*this, "spriteregs"), |
| 44 | m_spriteram(*this, "spriteram") , |
| 42 | 45 | m_maincpu(*this, "maincpu"), |
| 43 | 46 | m_eeprom(*this, "eeprom"), |
| 44 | 47 | m_gfxdecode(*this, "gfxdecode"), |
| 45 | | m_palette(*this, "palette"), |
| 46 | | m_tilemap_regs(*this, "tilemap_regs"), |
| 47 | | m_spriteregs(*this, "spriteregs"), |
| 48 | | m_spriteram(*this, "spriteram") { } |
| 48 | m_palette(*this, "palette") { } |
| 49 | 49 | |
| 50 | | required_device<cpu_device> m_maincpu; |
| 51 | | required_device<eeprom_serial_93cxx_device> m_eeprom; |
| 52 | | required_device<gfxdecode_device> m_gfxdecode; |
| 53 | | required_device<palette_device> m_palette; |
| 54 | | |
| 55 | 50 | required_shared_ptr_array<UINT32, 4> m_tilemap_regs; |
| 56 | 51 | required_shared_ptr<UINT32> m_spriteregs; |
| 57 | | required_shared_ptr<UINT32> m_spriteram; |
| 58 | | |
| 59 | 52 | UINT32 *m_tilemap_ram[4]; |
| 53 | required_shared_ptr<UINT32> m_spriteram; |
| 60 | 54 | UINT8 m_mux_data; |
| 61 | 55 | UINT8 m_system_in; |
| 62 | 56 | double m_old_brt1; |
| 63 | 57 | double m_old_brt2; |
| 64 | | |
| 65 | | DECLARE_WRITE32_MEMBER(tilemap0_w); |
| 66 | | DECLARE_WRITE32_MEMBER(tilemap1_w); |
| 67 | | DECLARE_WRITE32_MEMBER(tilemap2_w); |
| 68 | | DECLARE_WRITE32_MEMBER(tilemap3_w); |
| 69 | | DECLARE_READ32_MEMBER(tilemap0_r); |
| 70 | | DECLARE_READ32_MEMBER(tilemap1_r); |
| 71 | | DECLARE_READ32_MEMBER(tilemap2_r); |
| 72 | | DECLARE_READ32_MEMBER(tilemap3_r); |
| 58 | DECLARE_WRITE32_MEMBER(tmmjprd_tilemap0_w); |
| 59 | DECLARE_WRITE32_MEMBER(tmmjprd_tilemap1_w); |
| 60 | DECLARE_WRITE32_MEMBER(tmmjprd_tilemap2_w); |
| 61 | DECLARE_WRITE32_MEMBER(tmmjprd_tilemap3_w); |
| 62 | DECLARE_READ32_MEMBER(tmmjprd_tilemap0_r); |
| 63 | DECLARE_READ32_MEMBER(tmmjprd_tilemap1_r); |
| 64 | DECLARE_READ32_MEMBER(tmmjprd_tilemap2_r); |
| 65 | DECLARE_READ32_MEMBER(tmmjprd_tilemap3_r); |
| 73 | 66 | DECLARE_READ32_MEMBER(randomtmmjprds); |
| 74 | | DECLARE_WRITE32_MEMBER(blitter_w); |
| 75 | | DECLARE_READ32_MEMBER(mux_r); |
| 76 | | DECLARE_WRITE32_MEMBER(brt_1_w); |
| 77 | | DECLARE_WRITE32_MEMBER(brt_2_w); |
| 78 | | DECLARE_WRITE32_MEMBER(eeprom_write); |
| 79 | | |
| 80 | | virtual void machine_start(); |
| 67 | DECLARE_WRITE32_MEMBER(tmmjprd_blitter_w); |
| 68 | DECLARE_READ32_MEMBER(tmmjprd_mux_r); |
| 69 | DECLARE_WRITE32_MEMBER(tmmjprd_brt_1_w); |
| 70 | DECLARE_WRITE32_MEMBER(tmmjprd_brt_2_w); |
| 71 | DECLARE_WRITE32_MEMBER(tmmjprd_eeprom_write); |
| 81 | 72 | virtual void video_start(); |
| 82 | | |
| 83 | | UINT32 screen_update_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 84 | | UINT32 screen_update_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 85 | | |
| 86 | | TIMER_CALLBACK_MEMBER(blit_done); |
| 87 | | TIMER_DEVICE_CALLBACK_MEMBER(scanline); |
| 88 | | |
| 73 | UINT32 screen_update_tmmjprd_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 74 | UINT32 screen_update_tmmjprd_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 75 | TIMER_CALLBACK_MEMBER(tmmjprd_blit_done); |
| 76 | TIMER_DEVICE_CALLBACK_MEMBER(tmmjprd_scanline); |
| 89 | 77 | void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int screen); |
| 90 | | void draw_tile(bitmap_ind16 &bitmap, const rectangle &cliprect, int x,int y,int sizex,int sizey, UINT32 tiledata, UINT8* rom); |
| 91 | | void draw_tilemap(bitmap_ind16 &bitmap, const rectangle &cliprect, UINT32*tileram, UINT32*tileregs, UINT8*rom ); |
| 92 | | void do_blit(); |
| 78 | void ttmjprd_draw_tile(bitmap_ind16 &bitmap, const rectangle &cliprect, int x,int y,int sizex,int sizey, UINT32 tiledata, UINT8* rom); |
| 79 | void ttmjprd_draw_tilemap(bitmap_ind16 &bitmap, const rectangle &cliprect, UINT32*tileram, UINT32*tileregs, UINT8*rom ); |
| 80 | void tmmjprd_do_blit(); |
| 81 | required_device<cpu_device> m_maincpu; |
| 82 | required_device<eeprom_serial_93cxx_device> m_eeprom; |
| 83 | required_device<gfxdecode_device> m_gfxdecode; |
| 84 | required_device<palette_device> m_palette; |
| 93 | 85 | }; |
| 94 | 86 | |
| 95 | 87 | |
| 96 | | WRITE32_MEMBER(tmmjprd_state::tilemap0_w) |
| 88 | WRITE32_MEMBER(tmmjprd_state::tmmjprd_tilemap0_w) |
| 97 | 89 | { |
| 98 | 90 | COMBINE_DATA(&m_tilemap_ram[0][offset]); |
| 99 | 91 | } |
| 100 | 92 | |
| 101 | 93 | |
| 102 | 94 | |
| 103 | | WRITE32_MEMBER(tmmjprd_state::tilemap1_w) |
| 95 | WRITE32_MEMBER(tmmjprd_state::tmmjprd_tilemap1_w) |
| 104 | 96 | { |
| 105 | 97 | COMBINE_DATA(&m_tilemap_ram[1][offset]); |
| 106 | 98 | } |
| 107 | 99 | |
| 108 | | WRITE32_MEMBER(tmmjprd_state::tilemap2_w) |
| 100 | WRITE32_MEMBER(tmmjprd_state::tmmjprd_tilemap2_w) |
| 109 | 101 | { |
| 110 | 102 | COMBINE_DATA(&m_tilemap_ram[2][offset]); |
| 111 | 103 | } |
| 112 | 104 | |
| 113 | | WRITE32_MEMBER(tmmjprd_state::tilemap3_w) |
| 105 | WRITE32_MEMBER(tmmjprd_state::tmmjprd_tilemap3_w) |
| 114 | 106 | { |
| 115 | 107 | COMBINE_DATA(&m_tilemap_ram[3][offset]); |
| 116 | 108 | } |
| r243483 | r243484 | |
| 191 | 183 | } |
| 192 | 184 | } |
| 193 | 185 | |
| 194 | | void tmmjprd_state::draw_tile(bitmap_ind16 &bitmap, const rectangle &cliprect, int x,int y,int sizex,int sizey, UINT32 tiledata, UINT8* rom) |
| 186 | void tmmjprd_state::ttmjprd_draw_tile(bitmap_ind16 &bitmap, const rectangle &cliprect, int x,int y,int sizex,int sizey, UINT32 tiledata, UINT8* rom) |
| 195 | 187 | { |
| 196 | 188 | /* note, it's tile address _NOT_ tile number, 'sub-tile' access is possible, hence using the custom rendering */ |
| 197 | 189 | int tileaddr = (tiledata&0x000fffff)>>0; |
| r243483 | r243484 | |
| 270 | 262 | } |
| 271 | 263 | } |
| 272 | 264 | |
| 273 | | void tmmjprd_state::draw_tilemap(bitmap_ind16 &bitmap, const rectangle &cliprect, UINT32*tileram, UINT32*tileregs, UINT8*rom ) |
| 265 | void tmmjprd_state::ttmjprd_draw_tilemap(bitmap_ind16 &bitmap, const rectangle &cliprect, UINT32*tileram, UINT32*tileregs, UINT8*rom ) |
| 274 | 266 | { |
| 275 | 267 | int y,x; |
| 276 | 268 | int count; |
| r243483 | r243484 | |
| 304 | 296 | { |
| 305 | 297 | UINT32 tiledata = tileram[count]; |
| 306 | 298 | // todo: handle wraparound |
| 307 | | draw_tile(bitmap,cliprect,(x*tile_sizex)-scrollx,(y*tile_sizey)-scrolly,tile_sizex,tile_sizey, tiledata, rom); |
| 299 | ttmjprd_draw_tile(bitmap,cliprect,(x*tile_sizex)-scrollx,(y*tile_sizey)-scrolly,tile_sizex,tile_sizey, tiledata, rom); |
| 308 | 300 | count++; |
| 309 | 301 | } |
| 310 | 302 | } |
| 311 | 303 | |
| 312 | 304 | } |
| 313 | 305 | |
| 314 | | UINT32 tmmjprd_state::screen_update_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| 306 | UINT32 tmmjprd_state::screen_update_tmmjprd_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| 315 | 307 | { |
| 316 | 308 | UINT8* gfxroms = memregion("gfx2")->base(); |
| 317 | 309 | |
| 318 | 310 | bitmap.fill(m_palette->black_pen(), cliprect); |
| 319 | 311 | |
| 320 | | draw_tilemap(bitmap, cliprect, m_tilemap_ram[3], m_tilemap_regs[3], gfxroms ); |
| 312 | ttmjprd_draw_tilemap(bitmap, cliprect, m_tilemap_ram[3], m_tilemap_regs[3], gfxroms ); |
| 321 | 313 | draw_sprites(bitmap,cliprect, 1); |
| 322 | | draw_tilemap(bitmap, cliprect, m_tilemap_ram[2], m_tilemap_regs[2], gfxroms ); |
| 314 | ttmjprd_draw_tilemap(bitmap, cliprect, m_tilemap_ram[2], m_tilemap_regs[2], gfxroms ); |
| 323 | 315 | |
| 324 | 316 | /* |
| 325 | 317 | popmessage("%08x %08x %08x %08x %08x %08x", |
| r243483 | r243484 | |
| 345 | 337 | return 0; |
| 346 | 338 | } |
| 347 | 339 | |
| 348 | | UINT32 tmmjprd_state::screen_update_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| 340 | UINT32 tmmjprd_state::screen_update_tmmjprd_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| 349 | 341 | { |
| 350 | 342 | UINT8* gfxroms = memregion("gfx2")->base(); |
| 351 | 343 | |
| 352 | 344 | bitmap.fill(m_palette->black_pen(), cliprect); |
| 353 | 345 | |
| 354 | | draw_tilemap(bitmap, cliprect, m_tilemap_ram[1], m_tilemap_regs[1], gfxroms ); |
| 346 | ttmjprd_draw_tilemap(bitmap, cliprect, m_tilemap_ram[1], m_tilemap_regs[1], gfxroms ); |
| 355 | 347 | draw_sprites(bitmap,cliprect, 0); |
| 356 | | draw_tilemap(bitmap, cliprect, m_tilemap_ram[0], m_tilemap_regs[0], gfxroms ); |
| 348 | ttmjprd_draw_tilemap(bitmap, cliprect, m_tilemap_ram[0], m_tilemap_regs[0], gfxroms ); |
| 357 | 349 | |
| 358 | 350 | return 0; |
| 359 | 351 | } |
| r243483 | r243484 | |
| 366 | 358 | m_tilemap_ram[1] = auto_alloc_array_clear(machine(), UINT32, 0x8000); |
| 367 | 359 | m_tilemap_ram[2] = auto_alloc_array_clear(machine(), UINT32, 0x8000); |
| 368 | 360 | m_tilemap_ram[3] = auto_alloc_array_clear(machine(), UINT32, 0x8000); |
| 369 | | |
| 370 | | |
| 371 | | save_pointer(NAME(m_tilemap_ram[0]), 0x8000); |
| 372 | | save_pointer(NAME(m_tilemap_ram[1]), 0x8000); |
| 373 | | save_pointer(NAME(m_tilemap_ram[2]), 0x8000); |
| 374 | | save_pointer(NAME(m_tilemap_ram[3]), 0x8000); |
| 375 | | |
| 376 | | save_item(NAME(m_old_brt1)); |
| 377 | | save_item(NAME(m_old_brt2)); |
| 378 | 361 | } |
| 379 | 362 | |
| 380 | | READ32_MEMBER(tmmjprd_state::tilemap0_r) |
| 363 | READ32_MEMBER(tmmjprd_state::tmmjprd_tilemap0_r) |
| 381 | 364 | { |
| 382 | 365 | return m_tilemap_ram[0][offset]; |
| 383 | 366 | } |
| 384 | 367 | |
| 385 | | READ32_MEMBER(tmmjprd_state::tilemap1_r) |
| 368 | READ32_MEMBER(tmmjprd_state::tmmjprd_tilemap1_r) |
| 386 | 369 | { |
| 387 | 370 | return m_tilemap_ram[1][offset]; |
| 388 | 371 | } |
| 389 | 372 | |
| 390 | | READ32_MEMBER(tmmjprd_state::tilemap2_r) |
| 373 | READ32_MEMBER(tmmjprd_state::tmmjprd_tilemap2_r) |
| 391 | 374 | { |
| 392 | 375 | return m_tilemap_ram[2][offset]; |
| 393 | 376 | } |
| 394 | 377 | |
| 395 | | READ32_MEMBER(tmmjprd_state::tilemap3_r) |
| 378 | READ32_MEMBER(tmmjprd_state::tmmjprd_tilemap3_r) |
| 396 | 379 | { |
| 397 | 380 | return m_tilemap_ram[3][offset]; |
| 398 | 381 | } |
| r243483 | r243484 | |
| 407 | 390 | #define BLITLOG 0 |
| 408 | 391 | |
| 409 | 392 | #if 0 |
| 410 | | TIMER_CALLBACK_MEMBER(tmmjprd_state::blit_done) |
| 393 | TIMER_CALLBACK_MEMBER(tmmjprd_state::tmmjprd_blit_done) |
| 411 | 394 | { |
| 412 | 395 | m_maincpu->set_input_line(3, HOLD_LINE); |
| 413 | 396 | } |
| 414 | 397 | |
| 415 | | void tmmjprd_state::do_blit() |
| 398 | void tmmjprd_state::tmmjprd_do_blit() |
| 416 | 399 | { |
| 417 | 400 | UINT8 *blt_data = memregion("gfx1")->base(); |
| 418 | | int blt_source = (m_blitterregs[0]&0x000fffff)>>0; |
| 419 | | int blt_column = (m_blitterregs[1]&0x00ff0000)>>16; |
| 420 | | int blt_line = (m_blitterregs[1]&0x000000ff); |
| 421 | | int blt_tilemp = (m_blitterregs[2]&0x0000e000)>>13; |
| 422 | | int blt_oddflg = (m_blitterregs[2]&0x00000001)>>0; |
| 401 | int blt_source = (tmmjprd_blitterregs[0]&0x000fffff)>>0; |
| 402 | int blt_column = (tmmjprd_blitterregs[1]&0x00ff0000)>>16; |
| 403 | int blt_line = (tmmjprd_blitterregs[1]&0x000000ff); |
| 404 | int blt_tilemp = (tmmjprd_blitterregs[2]&0x0000e000)>>13; |
| 405 | int blt_oddflg = (tmmjprd_blitterregs[2]&0x00000001)>>0; |
| 423 | 406 | int mask,shift; |
| 424 | 407 | |
| 425 | 408 | |
| 426 | | if(BLITCMDLOG) osd_printf_debug("BLIT command %08x %08x %08x\n", m_blitterregs[0], m_blitterregs[1], m_blitterregs[2]); |
| 409 | if(BLITCMDLOG) osd_printf_debug("BLIT command %08x %08x %08x\n", tmmjprd_blitterregs[0], tmmjprd_blitterregs[1], tmmjprd_blitterregs[2]); |
| 427 | 410 | |
| 428 | 411 | if (blt_oddflg&1) |
| 429 | 412 | { |
| r243483 | r243484 | |
| 456 | 439 | if (!blt_amount) |
| 457 | 440 | { |
| 458 | 441 | if(BLITLOG) osd_printf_debug("end of blit list\n"); |
| 459 | | machine().scheduler().timer_set(attotime::from_usec(500), timer_expired_delegate(FUNC(tmmjprd_state::blit_done),this)); |
| 442 | machine().scheduler().timer_set(attotime::from_usec(500), timer_expired_delegate(FUNC(tmmjprd_state::tmmjprd_blit_done),this)); |
| 460 | 443 | return; |
| 461 | 444 | } |
| 462 | 445 | |
| r243483 | r243484 | |
| 467 | 450 | blt_source+=2; |
| 468 | 451 | writeoffs=blt_oddflg+blt_column; |
| 469 | 452 | m_tilemap_ram[blt_tilemp][writeoffs]=(m_tilemap_ram[blt_tilemp][writeoffs]&mask)|(blt_value<<shift); |
| 470 | | m_tilemap[blt_tilemp]->mark_tile_dirty(writeoffs); |
| 453 | tmmjprd_tilemap[blt_tilemp]->mark_tile_dirty(writeoffs); |
| 471 | 454 | |
| 472 | 455 | blt_column++; |
| 473 | 456 | blt_column&=0x7f; |
| r243483 | r243484 | |
| 484 | 467 | { |
| 485 | 468 | writeoffs=blt_oddflg+blt_column; |
| 486 | 469 | m_tilemap_ram[blt_tilemp][writeoffs]=(m_tilemap_ram[blt_tilemp][writeoffs]&mask)|(blt_value<<shift); |
| 487 | | m_tilemap[blt_tilemp]->mark_tile_dirty(writeoffs); |
| 470 | tmmjprd_tilemap[blt_tilemp]->mark_tile_dirty(writeoffs); |
| 488 | 471 | blt_column++; |
| 489 | 472 | blt_column&=0x7f; |
| 490 | 473 | } |
| r243483 | r243484 | |
| 493 | 476 | |
| 494 | 477 | case 0x03: /* next line */ |
| 495 | 478 | if(BLITLOG) osd_printf_debug("blit: move to next line\n"); |
| 496 | | blt_column = (m_blitterregs[1]&0x00ff0000)>>16; /* --CC---- */ |
| 479 | blt_column = (tmmjprd_blitterregs[1]&0x00ff0000)>>16; /* --CC---- */ |
| 497 | 480 | blt_oddflg+=128; |
| 498 | 481 | break; |
| 499 | 482 | |
| r243483 | r243484 | |
| 507 | 490 | |
| 508 | 491 | |
| 509 | 492 | |
| 510 | | WRITE32_MEMBER(tmmjprd_state::blitter_w) |
| 493 | WRITE32_MEMBER(tmmjprd_state::tmmjprd_blitter_w) |
| 511 | 494 | { |
| 512 | | COMBINE_DATA(&m_blitterregs[offset]); |
| 495 | COMBINE_DATA(&tmmjprd_blitterregs[offset]); |
| 513 | 496 | |
| 514 | 497 | if (offset == 0x0c/4) |
| 515 | 498 | { |
| 516 | | do_blit(); |
| 499 | tmmjprd_do_blit(machine()); |
| 517 | 500 | } |
| 518 | 501 | } |
| 519 | 502 | #endif |
| 520 | 503 | |
| 521 | | void tmmjprd_state::machine_start() |
| 522 | | { |
| 523 | | save_item(NAME(m_mux_data)); |
| 524 | | save_item(NAME(m_system_in)); |
| 525 | | } |
| 526 | 504 | |
| 527 | | WRITE32_MEMBER(tmmjprd_state::eeprom_write) |
| 505 | WRITE32_MEMBER(tmmjprd_state::tmmjprd_eeprom_write) |
| 528 | 506 | { |
| 529 | 507 | // don't disturb the EEPROM if we're not actually writing to it |
| 530 | 508 | // (in particular, data & 0x100 here with mask = ffff00ff looks to be the watchdog) |
| r243483 | r243484 | |
| 544 | 522 | } |
| 545 | 523 | } |
| 546 | 524 | |
| 547 | | READ32_MEMBER(tmmjprd_state::mux_r) |
| 525 | READ32_MEMBER(tmmjprd_state::tmmjprd_mux_r) |
| 548 | 526 | { |
| 549 | 527 | m_system_in = ioport("SYSTEM")->read(); |
| 550 | 528 | |
| r243483 | r243484 | |
| 651 | 629 | |
| 652 | 630 | /* notice that data & 0x4 is always cleared on brt_1 and set on brt_2. * |
| 653 | 631 | * My wild guess is that bits 0,1 and 2 controls what palette entries to dim. */ |
| 654 | | WRITE32_MEMBER(tmmjprd_state::brt_1_w) |
| 632 | WRITE32_MEMBER(tmmjprd_state::tmmjprd_brt_1_w) |
| 655 | 633 | { |
| 656 | 634 | int i; |
| 657 | 635 | double brt; |
| r243483 | r243484 | |
| 669 | 647 | } |
| 670 | 648 | } |
| 671 | 649 | |
| 672 | | WRITE32_MEMBER(tmmjprd_state::brt_2_w) |
| 650 | WRITE32_MEMBER(tmmjprd_state::tmmjprd_brt_2_w) |
| 673 | 651 | { |
| 674 | 652 | int i; |
| 675 | 653 | double brt; |
| r243483 | r243484 | |
| 691 | 669 | AM_RANGE(0x000000, 0x1fffff) AM_ROM |
| 692 | 670 | AM_RANGE(0x200010, 0x200013) AM_READ(randomtmmjprds) // gfx chip status? |
| 693 | 671 | /* check these are used .. */ |
| 694 | | // AM_RANGE(0x200010, 0x200013) AM_WRITEONLY AM_SHARE("viewregs0") |
| 672 | // AM_RANGE(0x200010, 0x200013) AM_WRITEONLY AM_SHARE("tmmjprd_viewregs0") |
| 695 | 673 | AM_RANGE(0x200100, 0x200117) AM_WRITEONLY AM_SHARE("tilemap_regs.0" ) // tilemap regs1 |
| 696 | 674 | AM_RANGE(0x200120, 0x200137) AM_WRITEONLY AM_SHARE("tilemap_regs.1" ) // tilemap regs2 |
| 697 | 675 | AM_RANGE(0x200140, 0x200157) AM_WRITEONLY AM_SHARE("tilemap_regs.2" ) // tilemap regs3 |
| 698 | 676 | AM_RANGE(0x200160, 0x200177) AM_WRITEONLY AM_SHARE("tilemap_regs.3" ) // tilemap regs4 |
| 699 | 677 | AM_RANGE(0x200200, 0x20021b) AM_WRITEONLY AM_SHARE("spriteregs" ) // sprregs? |
| 700 | | // AM_RANGE(0x200300, 0x200303) AM_WRITE(rombank_w) // used during rom testing, rombank/area select + something else? |
| 701 | | AM_RANGE(0x20040c, 0x20040f) AM_WRITE(brt_1_w) |
| 702 | | AM_RANGE(0x200410, 0x200413) AM_WRITE(brt_2_w) |
| 703 | | // AM_RANGE(0x200500, 0x200503) AM_WRITEONLY AM_SHARE("viewregs7") |
| 704 | | // AM_RANGE(0x200700, 0x20070f) AM_WRITE(blitter_w) AM_SHARE("blitterregs") |
| 705 | | // AM_RANGE(0x200800, 0x20080f) AM_WRITEONLY AM_SHARE("viewregs9") // never changes? |
| 678 | // AM_RANGE(0x200300, 0x200303) AM_WRITE(tmmjprd_rombank_w) // used during rom testing, rombank/area select + something else? |
| 679 | AM_RANGE(0x20040c, 0x20040f) AM_WRITE(tmmjprd_brt_1_w) |
| 680 | AM_RANGE(0x200410, 0x200413) AM_WRITE(tmmjprd_brt_2_w) |
| 681 | // AM_RANGE(0x200500, 0x200503) AM_WRITEONLY AM_SHARE("tmmjprd_viewregs7") |
| 682 | // AM_RANGE(0x200700, 0x20070f) AM_WRITE(tmmjprd_blitter_w) AM_SHARE("tmmjprd_blitterregs") |
| 683 | // AM_RANGE(0x200800, 0x20080f) AM_WRITEONLY AM_SHARE("tmmjprd_viewregs9") // never changes? |
| 706 | 684 | AM_RANGE(0x200900, 0x2009ff) AM_DEVREADWRITE16("i5000snd", i5000snd_device, read, write, 0xffffffff) |
| 707 | 685 | /* hmm */ |
| 708 | | // AM_RANGE(0x279700, 0x279713) AM_WRITEONLY AM_SHARE("viewregs10") |
| 686 | // AM_RANGE(0x279700, 0x279713) AM_WRITEONLY AM_SHARE("tmmjprd_viewregs10") |
| 709 | 687 | /* tilemaps */ |
| 710 | | AM_RANGE(0x280000, 0x283fff) AM_READWRITE(tilemap0_r,tilemap0_w) |
| 711 | | AM_RANGE(0x284000, 0x287fff) AM_READWRITE(tilemap1_r,tilemap1_w) |
| 712 | | AM_RANGE(0x288000, 0x28bfff) AM_READWRITE(tilemap2_r,tilemap2_w) |
| 713 | | AM_RANGE(0x28c000, 0x28ffff) AM_READWRITE(tilemap3_r,tilemap3_w) |
| 688 | AM_RANGE(0x280000, 0x283fff) AM_READWRITE(tmmjprd_tilemap0_r,tmmjprd_tilemap0_w) |
| 689 | AM_RANGE(0x284000, 0x287fff) AM_READWRITE(tmmjprd_tilemap1_r,tmmjprd_tilemap1_w) |
| 690 | AM_RANGE(0x288000, 0x28bfff) AM_READWRITE(tmmjprd_tilemap2_r,tmmjprd_tilemap2_w) |
| 691 | AM_RANGE(0x28c000, 0x28ffff) AM_READWRITE(tmmjprd_tilemap3_r,tmmjprd_tilemap3_w) |
| 714 | 692 | /* ?? is palette ram shared with sprites in this case or just a different map */ |
| 715 | 693 | AM_RANGE(0x290000, 0x29bfff) AM_RAM AM_SHARE("spriteram") |
| 716 | 694 | AM_RANGE(0x29c000, 0x29ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") |
| 717 | 695 | |
| 718 | | AM_RANGE(0x400000, 0x400003) AM_READ(mux_r) AM_WRITE(eeprom_write) |
| 696 | AM_RANGE(0x400000, 0x400003) AM_READ(tmmjprd_mux_r) AM_WRITE(tmmjprd_eeprom_write) |
| 719 | 697 | AM_RANGE(0xf00000, 0xffffff) AM_RAM |
| 720 | 698 | ADDRESS_MAP_END |
| 721 | 699 | |
| 722 | 700 | |
| 723 | 701 | |
| 724 | | static const gfx_layout sprite_16x16x8_layout = |
| 702 | static const gfx_layout rabbit_sprite_16x16x8_layout = |
| 725 | 703 | { |
| 726 | 704 | 16,16, |
| 727 | 705 | RGN_FRAC(1,2), |
| r243483 | r243484 | |
| 743 | 721 | // gfx decoding is ugly.. 16*16 tiles can start at varying different offsets.. |
| 744 | 722 | static GFXDECODE_START( tmmjprd ) |
| 745 | 723 | /* this seems to be sprites */ |
| 746 | | // GFXDECODE_ENTRY( "gfx1", 0, sprite_8x8x4_layout, 0x0, 0x1000 ) |
| 747 | | // GFXDECODE_ENTRY( "gfx1", 0, sprite_16x16x4_layout, 0x0, 0x1000 ) |
| 748 | | // GFXDECODE_ENTRY( "gfx1", 0, sprite_8x8x8_layout, 0x0, 0x1000 ) |
| 749 | | GFXDECODE_ENTRY( "gfx1", 0, sprite_16x16x8_layout, 0x0, 0x10 ) |
| 724 | // GFXDECODE_ENTRY( "gfx1", 0, tmmjprd_sprite_8x8x4_layout, 0x0, 0x1000 ) |
| 725 | // GFXDECODE_ENTRY( "gfx1", 0, rabbit_sprite_16x16x4_layout, 0x0, 0x1000 ) |
| 726 | // GFXDECODE_ENTRY( "gfx1", 0, tmmjprd_sprite_8x8x8_layout, 0x0, 0x1000 ) |
| 727 | GFXDECODE_ENTRY( "gfx1", 0, rabbit_sprite_16x16x8_layout, 0x0, 0x10 ) |
| 750 | 728 | GFXDECODE_END |
| 751 | 729 | |
| 752 | 730 | |
| 753 | | TIMER_DEVICE_CALLBACK_MEMBER(tmmjprd_state::scanline) |
| 731 | TIMER_DEVICE_CALLBACK_MEMBER(tmmjprd_state::tmmjprd_scanline) |
| 754 | 732 | { |
| 755 | 733 | int scanline = param; |
| 756 | 734 | |
| r243483 | r243484 | |
| 765 | 743 | static MACHINE_CONFIG_START( tmmjprd, tmmjprd_state ) |
| 766 | 744 | MCFG_CPU_ADD("maincpu",M68EC020,24000000) /* 24 MHz */ |
| 767 | 745 | MCFG_CPU_PROGRAM_MAP(tmmjprd_map) |
| 768 | | MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", tmmjprd_state, scanline, "lscreen", 0, 1) |
| 746 | MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", tmmjprd_state, tmmjprd_scanline, "lscreen", 0, 1) |
| 769 | 747 | |
| 770 | 748 | MCFG_EEPROM_SERIAL_93C46_ADD("eeprom") |
| 771 | 749 | MCFG_EEPROM_SERIAL_ENABLE_STREAMING() |
| r243483 | r243484 | |
| 790 | 768 | MCFG_SCREEN_SIZE(64*16, 64*16) |
| 791 | 769 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) |
| 792 | 770 | //MCFG_SCREEN_VISIBLE_AREA(0*8, 64*16-1, 0*8, 64*16-1) |
| 793 | | MCFG_SCREEN_UPDATE_DRIVER(tmmjprd_state, screen_update_left) |
| 771 | MCFG_SCREEN_UPDATE_DRIVER(tmmjprd_state, screen_update_tmmjprd_left) |
| 794 | 772 | MCFG_SCREEN_PALETTE("palette") |
| 795 | 773 | |
| 796 | 774 | MCFG_SCREEN_ADD("rscreen", RASTER) |
| r243483 | r243484 | |
| 799 | 777 | MCFG_SCREEN_SIZE(64*16, 64*16) |
| 800 | 778 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) |
| 801 | 779 | //MCFG_SCREEN_VISIBLE_AREA(0*8, 64*16-1, 0*8, 64*16-1) |
| 802 | | MCFG_SCREEN_UPDATE_DRIVER(tmmjprd_state, screen_update_right) |
| 780 | MCFG_SCREEN_UPDATE_DRIVER(tmmjprd_state, screen_update_tmmjprd_right) |
| 803 | 781 | MCFG_SCREEN_PALETTE("palette") |
| 804 | 782 | |
| 805 | 783 | |
| r243483 | r243484 | |
| 885 | 863 | ROM_END |
| 886 | 864 | |
| 887 | 865 | |
| 888 | | GAME( 1997, tmmjprd, 0, tmmjprd, tmmjprd, driver_device, 0, ROT0, "Media / Sonnet", "Tokimeki Mahjong Paradise - Dear My Love", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) |
| 889 | | GAME( 1998, tmpdoki, tmmjprd, tmpdoki, tmmjprd, driver_device, 0, ROT0, "Media / Sonnet", "Tokimeki Mahjong Paradise - Doki Doki Hen", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // missing gfx due to wrong roms? |
| 866 | GAME( 1997, tmmjprd, 0, tmmjprd, tmmjprd, driver_device, 0, ROT0, "Media / Sonnet", "Tokimeki Mahjong Paradise - Dear My Love", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) |
| 867 | GAME( 1998, tmpdoki, tmmjprd, tmpdoki, tmmjprd, driver_device, 0, ROT0, "Media / Sonnet", "Tokimeki Mahjong Paradise - Doki Doki Hen", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) // missing gfx due to wrong roms? |
trunk/src/mess/drivers/alesis.c
| r243483 | r243484 | |
| 8 | 8 | |
| 9 | 9 | http://www.vintagesynth.com/misc/hr16.php |
| 10 | 10 | http://www.vintagesynth.com/misc/sr16.php |
| 11 | | http://www.vintagesynth.com/misc/mmt8.php |
| 12 | 11 | |
| 13 | 12 | ****************************************************************************/ |
| 14 | 13 | |
| r243483 | r243484 | |
| 74 | 73 | m_lcdc->write(space, BIT(m_kb_matrix,7), data); |
| 75 | 74 | } |
| 76 | 75 | |
| 77 | | WRITE8_MEMBER( alesis_state::mmt8_led_w ) |
| 78 | | { |
| 79 | | output_set_value("play_led", data & 0x01 ? 0 : 1); |
| 80 | | output_set_value("record_led" , data & 0x02 ? 0 : 1); |
| 81 | | output_set_value("part_led", data & 0x04 ? 0 : 1); |
| 82 | | output_set_value("edit_led", data & 0x08 ? 0 : 1); |
| 83 | | output_set_value("song_led", data & 0x10 ? 0 : 1); |
| 84 | | output_set_value("echo_led", data & 0x20 ? 0 : 1); |
| 85 | | output_set_value("loop_led", data & 0x40 ? 0 : 1); |
| 86 | | |
| 87 | | m_leds = data; |
| 88 | | } |
| 89 | | |
| 90 | | READ8_MEMBER( alesis_state::mmt8_led_r ) |
| 91 | | { |
| 92 | | return m_leds; |
| 93 | | } |
| 94 | | |
| 95 | | WRITE8_MEMBER( alesis_state::track_led_w ) |
| 96 | | { |
| 97 | | for (int i=0; i<8; i++) |
| 98 | | output_set_indexed_value("track_led", i + 1, BIT(data, i)); |
| 99 | | } |
| 100 | | |
| 101 | | READ8_MEMBER( alesis_state::mmt8_p3_r ) |
| 102 | | { |
| 103 | | // ---- -x-- Tape in |
| 104 | | // ---- x--- Start/Stop input |
| 105 | | UINT8 data = 0xff; |
| 106 | | |
| 107 | | data &= ~(m_cassette->input() > 0.01 ? 0x00 : 0x04); |
| 108 | | |
| 109 | | return data; |
| 110 | | } |
| 111 | | |
| 112 | | WRITE8_MEMBER( alesis_state::mmt8_p3_w ) |
| 113 | | { |
| 114 | | // ---x ---- Tape out |
| 115 | | // --x- ---- Click out |
| 116 | | |
| 117 | | m_cassette->output(data & 0x10 ? -1.0 : +1.0); |
| 118 | | } |
| 119 | | |
| 120 | 76 | static ADDRESS_MAP_START(hr16_mem, AS_PROGRAM, 8, alesis_state) |
| 121 | 77 | ADDRESS_MAP_UNMAP_HIGH |
| 122 | 78 | AM_RANGE(0x0000, 0x7fff) AM_MIRROR(0x8000) AM_ROM |
| r243483 | r243484 | |
| 152 | 108 | AM_RANGE(0x8000, 0xffff) AM_RAM AM_SHARE("nvram") // 32Kx8 SRAM, (battery-backed) |
| 153 | 109 | ADDRESS_MAP_END |
| 154 | 110 | |
| 155 | | static ADDRESS_MAP_START(mmt8_io, AS_IO, 8, alesis_state) |
| 156 | | ADDRESS_MAP_UNMAP_HIGH |
| 157 | | AM_RANGE(0xff02, 0xff02) AM_WRITE(track_led_w) |
| 158 | | AM_RANGE(0xff04, 0xff04) AM_READWRITE(mmt8_led_r, mmt8_led_w) |
| 159 | | AM_RANGE(0xff06, 0xff06) AM_WRITE(kb_matrix_w) |
| 160 | | AM_RANGE(0xff08, 0xff09) AM_DEVREADWRITE("hd44780", hd44780_device, read, write) |
| 161 | | AM_RANGE(0xff0e, 0xff0e) AM_READNOP |
| 162 | | AM_RANGE(MCS51_PORT_P1, MCS51_PORT_P1) AM_READ(kb_r) |
| 163 | | AM_RANGE(MCS51_PORT_P2, MCS51_PORT_P2) AM_WRITENOP |
| 164 | | AM_RANGE(MCS51_PORT_P3, MCS51_PORT_P3) AM_READWRITE(mmt8_p3_r, mmt8_p3_w) |
| 165 | | AM_RANGE(0x0000, 0xffff) AM_RAM AM_SHARE("nvram") // 2x32Kx8 SRAM, (battery-backed) |
| 166 | | ADDRESS_MAP_END |
| 167 | | |
| 168 | 111 | /* Input ports */ |
| 169 | 112 | static INPUT_PORTS_START( hr16 ) |
| 170 | 113 | PORT_START("COL1") |
| r243483 | r243484 | |
| 226 | 169 | PORT_BIT(0xff, 0x00, IPT_DIAL) PORT_NAME("SELECT Slider") PORT_SENSITIVITY(50) PORT_KEYDELTA(1) PORT_CODE_DEC(KEYCODE_DOWN) PORT_CODE_INC(KEYCODE_UP) |
| 227 | 170 | INPUT_PORTS_END |
| 228 | 171 | |
| 229 | | static INPUT_PORTS_START( mmt8 ) |
| 230 | | PORT_START("COL1") |
| 231 | | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("<<") PORT_CODE(KEYCODE_LEFT) |
| 232 | | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(">>") PORT_CODE(KEYCODE_RIGHT) |
| 233 | | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ERASE") PORT_CODE(KEYCODE_DEL) |
| 234 | | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("TRANS") PORT_CODE(KEYCODE_R) |
| 235 | | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PLAY") PORT_CODE(KEYCODE_ENTER) |
| 236 | | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("STOP/CONTINUE") PORT_CODE(KEYCODE_END) |
| 237 | | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("COPY") PORT_CODE(KEYCODE_C) |
| 238 | | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RECORD") PORT_CODE(KEYCODE_HOME) |
| 239 | | PORT_START("COL2") |
| 240 | | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("TRACK 1") PORT_CODE(KEYCODE_F1) |
| 241 | | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("TRACK 2") PORT_CODE(KEYCODE_F2) |
| 242 | | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("TRACK 3") PORT_CODE(KEYCODE_F3) |
| 243 | | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("TRACK 4") PORT_CODE(KEYCODE_F4) |
| 244 | | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("TRACK 5") PORT_CODE(KEYCODE_F5) |
| 245 | | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("TRACK 6") PORT_CODE(KEYCODE_F6) |
| 246 | | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("TRACK 7") PORT_CODE(KEYCODE_F7) |
| 247 | | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("TRACK 8") PORT_CODE(KEYCODE_F8) |
| 248 | | PORT_START("COL3") |
| 249 | | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("TEMPO") PORT_CODE(KEYCODE_T) |
| 250 | | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("-") PORT_CODE(KEYCODE_MINUS) |
| 251 | | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("+") PORT_CODE(KEYCODE_PLUS_PAD) |
| 252 | | PORT_BIT(0x38, IP_ACTIVE_LOW, IPT_UNUSED) |
| 253 | | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PAGE DOWN") PORT_CODE(KEYCODE_DOWN) |
| 254 | | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PAGE UP") PORT_CODE(KEYCODE_UP) |
| 255 | | PORT_START("COL4") |
| 256 | | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CLICK") PORT_CODE(KEYCODE_G) |
| 257 | | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6") PORT_CODE(KEYCODE_6) |
| 258 | | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7") PORT_CODE(KEYCODE_7) |
| 259 | | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8") PORT_CODE(KEYCODE_8) |
| 260 | | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9") PORT_CODE(KEYCODE_9) |
| 261 | | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0") PORT_CODE(KEYCODE_0) |
| 262 | | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("MIDI CHAN") PORT_CODE(KEYCODE_I) |
| 263 | | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("TAPE") PORT_CODE(KEYCODE_Y) |
| 264 | | PORT_START("COL5") |
| 265 | | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CLOCK") PORT_CODE(KEYCODE_K) |
| 266 | | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1") PORT_CODE(KEYCODE_1) |
| 267 | | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2") PORT_CODE(KEYCODE_2) |
| 268 | | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3") PORT_CODE(KEYCODE_3) |
| 269 | | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4") PORT_CODE(KEYCODE_4) |
| 270 | | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5") PORT_CODE(KEYCODE_5) |
| 271 | | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SONG") PORT_CODE(KEYCODE_S) |
| 272 | | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("MERGE") PORT_CODE(KEYCODE_M) |
| 273 | | PORT_START("COL6") |
| 274 | | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("MIDI FILTER") PORT_CODE(KEYCODE_F) |
| 275 | | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("MIDI ECHO") PORT_CODE(KEYCODE_H) |
| 276 | | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("LOOP") PORT_CODE(KEYCODE_J) |
| 277 | | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("QUANT") PORT_CODE(KEYCODE_Q) |
| 278 | | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("LENGTH") PORT_CODE(KEYCODE_L) |
| 279 | | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PART") PORT_CODE(KEYCODE_P) |
| 280 | | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("EDIT") PORT_CODE(KEYCODE_E) |
| 281 | | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("NAME") PORT_CODE(KEYCODE_N) |
| 282 | | INPUT_PORTS_END |
| 283 | | |
| 284 | 172 | static INPUT_PORTS_START( sr16 ) |
| 285 | 173 | PORT_START("COL1") |
| 286 | 174 | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PRESET/USER") PORT_CODE(KEYCODE_U) |
| r243483 | r243484 | |
| 341 | 229 | void alesis_state::machine_reset() |
| 342 | 230 | { |
| 343 | 231 | m_kb_matrix = 0xff; |
| 344 | | m_leds = 0; |
| 345 | 232 | memset(m_lcd_digits, 0, sizeof(m_lcd_digits)); |
| 346 | 233 | } |
| 347 | 234 | |
| r243483 | r243484 | |
| 405 | 292 | MCFG_HD44780_PIXEL_UPDATE_CB(sr16_pixel_update) |
| 406 | 293 | MACHINE_CONFIG_END |
| 407 | 294 | |
| 408 | | static MACHINE_CONFIG_DERIVED( mmt8, hr16 ) |
| 409 | | /* basic machine hardware */ |
| 410 | | MCFG_CPU_MODIFY("maincpu") |
| 411 | | MCFG_CPU_IO_MAP(mmt8_io) |
| 412 | | |
| 413 | | MCFG_DEVICE_REMOVE("dm3ag") |
| 414 | | MACHINE_CONFIG_END |
| 415 | | |
| 416 | 295 | /* ROM definition */ |
| 417 | 296 | ROM_START( hr16 ) |
| 418 | 297 | ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF ) |
| r243483 | r243484 | |
| 445 | 324 | ROM_LOAD( "2-27-0007.u15", 0x80000, 0x80000, CRC(319746db) SHA1(46b32a3ab2fbad67fb4566f607f578a2e9defd63)) |
| 446 | 325 | ROM_END |
| 447 | 326 | |
| 448 | | ROM_START( mmt8 ) |
| 449 | | ROM_REGION( 0x8000, "maincpu", ROMREGION_ERASEFF ) |
| 450 | | ROM_SYSTEM_BIOS(0, "v111", "ver 1.11") |
| 451 | | ROMX_LOAD( "mt8v1-11.bin", 0x00000, 0x08000, CRC(c9951946) SHA1(149bc5ea46466537de4074820c66a2296ea43bc1), ROM_BIOS(1)) |
| 452 | | ROM_SYSTEM_BIOS(1, "v109", "ver 1.09") |
| 453 | | ROMX_LOAD( "mt8v1-09.bin", 0x00000, 0x08000, CRC(0ec41dec) SHA1(2c283965e510b586a08f0290df4dd357e6b19b62), ROM_BIOS(2)) |
| 454 | | ROM_SYSTEM_BIOS(2, "v108", "ver 1.08") |
| 455 | | ROMX_LOAD( "mt8v1-08.bin", 0x00000, 0x08000, CRC(a0615455) SHA1(77395c837b356b34d6b96f6f46eca8c89b57434e), ROM_BIOS(3)) |
| 456 | | ROM_END |
| 457 | | |
| 458 | 327 | ROM_START( sr16 ) |
| 459 | 328 | ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF ) |
| 460 | 329 | ROM_SYSTEM_BIOS(0, "v104", "ver 1.04") |
| r243483 | r243484 | |
| 480 | 349 | /* Driver */ |
| 481 | 350 | /* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ |
| 482 | 351 | SYST( 1987, hr16, 0, 0, hr16, hr16, alesis_state, hr16, "Alesis", "HR-16", GAME_NOT_WORKING | GAME_NO_SOUND) |
| 483 | | SYST( 1987, mmt8, 0, 0, mmt8, mmt8, driver_device, 0, "Alesis", "MMT-8", GAME_NOT_WORKING | GAME_NO_SOUND) |
| 484 | 352 | SYST( 1989, hr16b, hr16, 0, hr16, hr16, alesis_state, hr16, "Alesis", "HR-16B", GAME_NOT_WORKING | GAME_NO_SOUND) |
| 485 | 353 | SYST( 1990, sr16, 0, 0, sr16, sr16, driver_device, 0, "Alesis", "SR-16", GAME_NOT_WORKING | GAME_NO_SOUND) |
trunk/src/mess/drivers/mbee.c
| r243483 | r243484 | |
| 55 | 55 | F000-F7FF Video RAM |
| 56 | 56 | F800-FFFF PCG RAM (graphics), Colour RAM (banked) |
| 57 | 57 | |
| 58 | | Early machines have 'standard' video (128 hires characters). |
| 59 | | Later machines had the option of 'premium' video which |
| 60 | | provides thousands of hires characters, enough to simulate |
| 61 | | bit-mapped graphics. |
| 62 | | |
| 63 | 58 | Commands to call up built-in roms (depends on the model): |
| 64 | 59 | NET - Jump to E000, usually the Telcom communications program. |
| 65 | 60 | This rom can be replaced with the Dreamdisk Chip-8 rom. |
| 66 | 61 | Note that Telcom 3.21 is 8k, it uses a rombank switch |
| 67 | 62 | (by reading port 0A) to swap between the two halves. |
| 68 | | See Telcom notes below. |
| 69 | 63 | |
| 70 | | EDASM - Jump to C000, usually the Editor/Assembler package. |
| 64 | EDASM - Jump to C000, usually the editor/Assembler package. |
| 71 | 65 | |
| 72 | 66 | MENU - Do a rombank switch to bank 5 and jump to C000 to start the Shell |
| 73 | 67 | |
| r243483 | r243484 | |
| 81 | 75 | - Change it to parallel by entering OUTL#1 |
| 82 | 76 | - After you mount/create a printfile, you can LPRINT and LLIST. |
| 83 | 77 | |
| 84 | | Notes about Telcom: |
| 85 | | - On the older models, Telcom is called up by entering NET from within Basic. Models |
| 86 | | from the pc85 onwards have it as a menu option. |
| 87 | | - To exit, press Enter without any input. Disk versions, enter CPM or press ^C. |
| 88 | | - After being used, version 3 and up will enable the use of OUT#7 in Basic, which |
| 89 | | changes the screen to 80x24. Enter OUT#0 to revert to normal. |
| 90 | | - Most versions of Telcom can have their parameters adjusted directly from Basic, |
| 91 | | without needing to enter the Telcom program. |
| 92 | | - Most versions of Telcom have an optional clock. In older models firstly select VS |
| 93 | | from the MESS config menu, then enter NET CLOCK to enable it. NET TIME hhmm to set |
| 94 | | the time (24hour format). NET CLOCKD is supposed to remove the status line, but it |
| 95 | | doesn't, although the clock stops updating. NET CLOCK and NET CLOCKD are toggles. |
| 96 | | - Telcom 1.2 (used in mbeeic) has a bug. If you enter NET CLOCK, the status line is |
| 97 | | filled with inverse K. You can fix this from Basic by doing NET CLOCK 3 times. |
| 98 | 78 | |
| 99 | 79 | *************************************************************************** |
| 100 | 80 | |
| 101 | 81 | TODO/not working: |
| 102 | 82 | |
| 103 | 83 | - Printer needs to be understood and fixed. |
| 104 | | - Keyboard loses characters if you type at a normal rate. |
| 84 | |
| 105 | 85 | - Fix Paste (it loses most of the characters) |
| 106 | 86 | |
| 87 | - all except 256tc: RTC is optional, but it is being totally ignored. |
| 88 | |
| 89 | - Most early models have a clock in Telcom, and in the menu. It doesn't |
| 90 | work. |
| 91 | |
| 107 | 92 | - various fdc issues: |
| 108 | 93 | - B drive doesn't work. |
| 109 | 94 | - some disks cause MESS to freeze. |
| r243483 | r243484 | |
| 115 | 100 | crashes due to a bug in z80pio emulation. |
| 116 | 101 | |
| 117 | 102 | - 256tc: Keyboard ROM U60 needs to be dumped. |
| 118 | | - 128k: GOLD PAL needs to be dumped for the bankswitching. |
| 119 | | - 64k: RED PAL needs to be dumped for the bankswitching. |
| 103 | - 128k: PROM PAL needs to be dumped for the bankswitching. |
| 120 | 104 | |
| 121 | | - Teleterm: keyboard has multiple severe problems. Also, the schematic shows |
| 122 | | it using the old-style keyboard, however this must be wrong since |
| 123 | | the computer has function keys, which are only available on the |
| 124 | | new keyboard. |
| 105 | - Teleterm: keyboard is problematic, and cursor doesn't show. |
| 125 | 106 | |
| 126 | | - Mouse: a few programs support the use of a serial mouse which interfaced |
| 127 | | directly to the Z80PIO. However there's little info to be found. |
| 128 | 107 | |
| 129 | 108 | *************************************************************************** |
| 130 | 109 | |
| r243483 | r243484 | |
| 211 | 190 | AM_RANGE(0xf800, 0xffff) AM_READWRITE(mbeeic_high_r, mbeeic_high_w) |
| 212 | 191 | ADDRESS_MAP_END |
| 213 | 192 | |
| 193 | static ADDRESS_MAP_START(mbee64_mem, AS_PROGRAM, 8, mbee_state) |
| 194 | AM_RANGE(0x0000, 0x0fff) AM_RAMBANK("boot") |
| 195 | AM_RANGE(0x1000, 0x7fff) AM_RAMBANK("bankl") |
| 196 | AM_RANGE(0x8000, 0xefff) AM_RAMBANK("bankh") |
| 197 | AM_RANGE(0xf000, 0xf7ff) AM_READWRITE(mbee_low_r, mbee_low_w) |
| 198 | AM_RANGE(0xf800, 0xffff) AM_READWRITE(mbeeic_high_r, mbeeic_high_w) |
| 199 | ADDRESS_MAP_END |
| 200 | |
| 214 | 201 | static ADDRESS_MAP_START(mbee256_mem, AS_PROGRAM, 8, mbee_state) |
| 215 | 202 | AM_RANGE(0x0000, 0x0fff) AM_READ_BANK("bankr0") AM_WRITE_BANK("bankw0") |
| 216 | 203 | AM_RANGE(0x1000, 0x1fff) AM_READ_BANK("bankr1") AM_WRITE_BANK("bankw1") |
| r243483 | r243484 | |
| 292 | 279 | AM_RANGE(0x000b, 0x000b) AM_MIRROR(0xff10) AM_READWRITE(mbee_0b_r, mbee_0b_w) |
| 293 | 280 | AM_RANGE(0x000c, 0x000c) AM_MIRROR(0xff00) AM_READWRITE(m6545_status_r, m6545_index_w) |
| 294 | 281 | AM_RANGE(0x000d, 0x000d) AM_MIRROR(0xff10) AM_READWRITE(m6545_data_r, m6545_data_w) |
| 295 | | AM_RANGE(0x001c, 0x001c) AM_MIRROR(0xff00) AM_READWRITE(mbeeppc_1c_r, mbeeppc_1c_w) |
| 282 | AM_RANGE(0x001c, 0x001c) AM_MIRROR(0xff00) AM_READWRITE(mbeeppc_1c_r,mbeeppc_1c_w) |
| 296 | 283 | AM_RANGE(0x010a, 0x010a) AM_MIRROR(0xfe10) AM_READWRITE(mbeepc_telcom_high_r, mbeeic_0a_w) |
| 297 | 284 | ADDRESS_MAP_END |
| 298 | 285 | |
| r243483 | r243484 | |
| 308 | 295 | AM_RANGE(0x48, 0x4f) AM_READWRITE(mbee_fdc_status_r, mbee_fdc_motor_w) |
| 309 | 296 | ADDRESS_MAP_END |
| 310 | 297 | |
| 298 | static ADDRESS_MAP_START(mbee64_io, AS_IO, 8, mbee_state) |
| 299 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 300 | ADDRESS_MAP_UNMAP_HIGH |
| 301 | AM_RANGE(0x00, 0x03) AM_MIRROR(0x10) AM_DEVREADWRITE("z80pio", z80pio_device, read_alt, write_alt) |
| 302 | AM_RANGE(0x08, 0x08) AM_MIRROR(0x10) AM_READWRITE(mbeeic_08_r, mbeeic_08_w) |
| 303 | AM_RANGE(0x0b, 0x0b) AM_MIRROR(0x10) AM_READWRITE(mbee_0b_r, mbee_0b_w) |
| 304 | AM_RANGE(0x0c, 0x0c) AM_MIRROR(0x10) AM_READWRITE(m6545_status_r, m6545_index_w) |
| 305 | AM_RANGE(0x0d, 0x0d) AM_MIRROR(0x10) AM_READWRITE(m6545_data_r, m6545_data_w) |
| 306 | AM_RANGE(0x44, 0x47) AM_DEVREADWRITE("fdc", wd2793_t, read, write) |
| 307 | AM_RANGE(0x48, 0x4f) AM_READWRITE(mbee_fdc_status_r, mbee_fdc_motor_w) |
| 308 | AM_RANGE(0x50, 0x57) AM_WRITE(mbee64_50_w) |
| 309 | ADDRESS_MAP_END |
| 310 | |
| 311 | 311 | static ADDRESS_MAP_START(mbee128_io, AS_IO, 8, mbee_state) |
| 312 | 312 | ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 313 | 313 | ADDRESS_MAP_UNMAP_HIGH |
| r243483 | r243484 | |
| 316 | 316 | AM_RANGE(0x0b, 0x0b) AM_READWRITE(mbee_0b_r, mbee_0b_w) |
| 317 | 317 | AM_RANGE(0x0c, 0x0c) AM_READWRITE(m6545_status_r, m6545_index_w) |
| 318 | 318 | AM_RANGE(0x0d, 0x0d) AM_READWRITE(m6545_data_r, m6545_data_w) |
| 319 | | AM_RANGE(0x1c, 0x1f) AM_READWRITE(mbeeppc_1c_r, mbee256_1c_w) |
| 319 | AM_RANGE(0x1c, 0x1f) AM_READWRITE(mbeeppc_1c_r,mbee256_1c_w) |
| 320 | 320 | AM_RANGE(0x44, 0x47) AM_DEVREADWRITE("fdc", wd2793_t, read, write) |
| 321 | 321 | AM_RANGE(0x48, 0x4f) AM_READWRITE(mbee_fdc_status_r, mbee_fdc_motor_w) |
| 322 | 322 | AM_RANGE(0x50, 0x57) AM_WRITE(mbee128_50_w) |
| r243483 | r243484 | |
| 336 | 336 | AM_RANGE(0x000d, 0x000d) AM_MIRROR(0xff00) AM_READWRITE(m6545_data_r, m6545_data_w) |
| 337 | 337 | // AM_RANGE(0x0010, 0x0013) AM_MIRROR(0xff00) Optional SN76489AN audio chip |
| 338 | 338 | AM_RANGE(0x0018, 0x001b) AM_MIRROR(0xff00) AM_READ(mbee256_18_r) |
| 339 | | AM_RANGE(0x001c, 0x001f) AM_MIRROR(0xff00) AM_READWRITE(mbeeppc_1c_r, mbee256_1c_w) |
| 339 | AM_RANGE(0x001c, 0x001f) AM_MIRROR(0xff00) AM_READWRITE(mbeeppc_1c_r,mbee256_1c_w) |
| 340 | 340 | AM_RANGE(0x0044, 0x0047) AM_MIRROR(0xff00) AM_DEVREADWRITE("fdc", wd2793_t, read, write) |
| 341 | 341 | AM_RANGE(0x0048, 0x004f) AM_MIRROR(0xff00) AM_READWRITE(mbee_fdc_status_r, mbee_fdc_motor_w) |
| 342 | 342 | AM_RANGE(0x0050, 0x0057) AM_MIRROR(0xff00) AM_WRITE(mbee256_50_w) |
| r243483 | r243484 | |
| 451 | 451 | PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("(Insert)") PORT_CODE(KEYCODE_INSERT) PORT_CHAR(UCHAR_MAMEKEY(INSERT)) |
| 452 | 452 | PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 453 | 453 | |
| 454 | | // Autorun on quickload |
| 454 | /* Enhanced options not available on real hardware */ |
| 455 | 455 | PORT_START("CONFIG") |
| 456 | 456 | PORT_CONFNAME( 0x01, 0x01, "Autorun on Quickload") |
| 457 | 457 | PORT_CONFSETTING( 0x00, DEF_STR(No)) |
| 458 | 458 | PORT_CONFSETTING( 0x01, DEF_STR(Yes)) |
| 459 | | // Wire links on motherboard |
| 460 | | PORT_CONFNAME( 0xc0, 0x80, "PIO B7") |
| 461 | | PORT_CONFSETTING( 0x00, "VS") // sync pulse to enable telcom clock |
| 462 | | PORT_CONFSETTING( 0x40, "RTC") // optional board usually not fitted |
| 463 | | PORT_CONFSETTING( 0x80, "Not used") // default resistor to vcc |
| 464 | | PORT_CONFSETTING( 0xc0, "Centronics") // busy line |
| 465 | 459 | INPUT_PORTS_END |
| 466 | 460 | |
| 467 | 461 | static INPUT_PORTS_START( mbee256 ) |
| r243483 | r243484 | |
| 585 | 579 | |
| 586 | 580 | PORT_START("X14") /* IN6 KEY ROW 6 [+70] */ |
| 587 | 581 | PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Alt") PORT_CODE(KEYCODE_LALT) PORT_CODE(KEYCODE_RALT) |
| 588 | | |
| 589 | | // Autorun on quickload |
| 590 | | PORT_START("CONFIG") |
| 591 | | PORT_CONFNAME( 0x01, 0x01, "Autorun on Quickload") |
| 592 | | PORT_CONFSETTING( 0x00, DEF_STR(No)) |
| 593 | | PORT_CONFSETTING( 0x01, DEF_STR(Yes)) |
| 594 | | // Wire links on motherboard |
| 595 | | PORT_CONFNAME( 0xc0, 0x80, "PIO B7") // default - do nothing |
| 596 | | PORT_CONFSETTING( 0x00, "VS") // sync pulse to enable telcom clock |
| 597 | | PORT_CONFSETTING( 0x40, "RTC") // optional board usually not fitted |
| 598 | | PORT_CONFSETTING( 0x80, "Not used") // default resistor to vcc |
| 599 | | PORT_CONFSETTING( 0xc0, "Centronics") // busy line |
| 600 | 582 | INPUT_PORTS_END |
| 601 | 583 | |
| 602 | 584 | static const z80_daisy_config mbee_daisy_chain[] = |
| r243483 | r243484 | |
| 680 | 662 | MCFG_MC6845_CHAR_WIDTH(8) |
| 681 | 663 | MCFG_MC6845_UPDATE_ROW_CB(mbee_state, mbee_update_row) |
| 682 | 664 | MCFG_MC6845_ADDR_CHANGED_CB(mbee_state, mbee_update_addr) |
| 683 | | MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(mbee_state, crtc_vs)) |
| 684 | 665 | |
| 685 | 666 | MCFG_QUICKLOAD_ADD("quickload", mbee_state, mbee, "mwb,com,bee", 2) |
| 686 | 667 | MCFG_QUICKLOAD_ADD("quickload2", mbee_state, mbee_z80bin, "bin", 2) |
| r243483 | r243484 | |
| 701 | 682 | MCFG_CPU_PROGRAM_MAP(mbeeic_mem) |
| 702 | 683 | MCFG_CPU_IO_MAP(mbeeic_io) |
| 703 | 684 | MCFG_CPU_CONFIG(mbee_daisy_chain) |
| 685 | //MCFG_CPU_VBLANK_INT_DRIVER("screen", mbee_state, mbee_interrupt) |
| 704 | 686 | |
| 705 | 687 | MCFG_MACHINE_RESET_OVERRIDE(mbee_state, mbee) |
| 706 | 688 | |
| r243483 | r243484 | |
| 721 | 703 | MCFG_GFXDECODE_ADD("gfxdecode", "palette", mbeeic) |
| 722 | 704 | |
| 723 | 705 | MCFG_PALETTE_ADD("palette", 96) |
| 724 | | MCFG_PALETTE_INIT_OWNER(mbee_state, mbeeic) |
| 706 | MCFG_PALETTE_INIT_OWNER(mbee_state,mbeeic) |
| 725 | 707 | |
| 726 | | MCFG_VIDEO_START_OVERRIDE(mbee_state, mbeeic) |
| 708 | MCFG_VIDEO_START_OVERRIDE(mbee_state,mbeeic) |
| 727 | 709 | |
| 728 | 710 | /* sound hardware */ |
| 729 | 711 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| r243483 | r243484 | |
| 738 | 720 | MCFG_MC6845_CHAR_WIDTH(8) |
| 739 | 721 | MCFG_MC6845_UPDATE_ROW_CB(mbee_state, mbeeic_update_row) |
| 740 | 722 | MCFG_MC6845_ADDR_CHANGED_CB(mbee_state, mbee_update_addr) |
| 741 | | MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(mbee_state, crtc_vs)) |
| 742 | 723 | |
| 743 | 724 | MCFG_QUICKLOAD_ADD("quickload", mbee_state, mbee, "mwb,com,bee", 2) |
| 744 | 725 | MCFG_QUICKLOAD_ADD("quickload2", mbee_state, mbee_z80bin, "bin", 2) |
| r243483 | r243484 | |
| 766 | 747 | |
| 767 | 748 | static MACHINE_CONFIG_DERIVED( mbeepc85b, mbeepc85 ) |
| 768 | 749 | MCFG_PALETTE_MODIFY("palette") |
| 769 | | MCFG_PALETTE_INIT_OWNER(mbee_state, mbeepc85b) |
| 750 | MCFG_PALETTE_INIT_OWNER(mbee_state,mbeepc85b) |
| 770 | 751 | MACHINE_CONFIG_END |
| 771 | 752 | |
| 772 | 753 | static MACHINE_CONFIG_DERIVED( mbeeppc, mbeeic ) |
| 773 | 754 | MCFG_CPU_MODIFY( "maincpu" ) |
| 774 | 755 | MCFG_CPU_PROGRAM_MAP(mbeeppc_mem) |
| 775 | 756 | MCFG_CPU_IO_MAP(mbeeppc_io) |
| 776 | | MCFG_VIDEO_START_OVERRIDE(mbee_state, mbeeppc) |
| 757 | MCFG_VIDEO_START_OVERRIDE(mbee_state,mbeeppc) |
| 777 | 758 | MCFG_GFXDECODE_MODIFY("gfxdecode", mbeeppc) |
| 778 | 759 | MCFG_PALETTE_MODIFY("palette") |
| 779 | 760 | MCFG_PALETTE_ENTRIES(16) |
| 780 | | MCFG_PALETTE_INIT_OWNER(mbee_state, mbeeppc) |
| 761 | MCFG_PALETTE_INIT_OWNER(mbee_state,mbeeppc) |
| 781 | 762 | |
| 782 | 763 | MCFG_DEVICE_REMOVE("crtc") |
| 783 | 764 | MCFG_MC6845_ADD("crtc", SY6545_1, "screen", XTAL_13_5MHz / 8) |
| r243483 | r243484 | |
| 785 | 766 | MCFG_MC6845_CHAR_WIDTH(8) |
| 786 | 767 | MCFG_MC6845_UPDATE_ROW_CB(mbee_state, mbeeppc_update_row) |
| 787 | 768 | MCFG_MC6845_ADDR_CHANGED_CB(mbee_state, mbee_update_addr) |
| 788 | | MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(mbee_state, crtc_vs)) |
| 789 | 769 | MACHINE_CONFIG_END |
| 790 | 770 | |
| 791 | 771 | static MACHINE_CONFIG_DERIVED( mbee56, mbeeic ) |
| r243483 | r243484 | |
| 800 | 780 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", mbee_floppies, "drive5b", floppy_image_device::default_floppy_formats) |
| 801 | 781 | MACHINE_CONFIG_END |
| 802 | 782 | |
| 803 | | static MACHINE_CONFIG_DERIVED( mbee128, mbee56 ) |
| 783 | static MACHINE_CONFIG_DERIVED( mbee64, mbee56 ) |
| 804 | 784 | MCFG_CPU_MODIFY( "maincpu" ) |
| 805 | | MCFG_CPU_PROGRAM_MAP(mbee256_mem) |
| 806 | | MCFG_CPU_IO_MAP(mbee128_io) |
| 807 | | MCFG_MACHINE_RESET_OVERRIDE(mbee_state, mbee128) |
| 785 | MCFG_CPU_PROGRAM_MAP(mbee64_mem) |
| 786 | MCFG_CPU_IO_MAP(mbee64_io) |
| 787 | MCFG_MACHINE_RESET_OVERRIDE(mbee_state, mbee64) |
| 808 | 788 | MACHINE_CONFIG_END |
| 809 | 789 | |
| 810 | | static MACHINE_CONFIG_DERIVED( mbee128p, mbeeppc ) |
| 790 | static MACHINE_CONFIG_DERIVED( mbee128, mbeeppc ) |
| 811 | 791 | MCFG_CPU_MODIFY( "maincpu" ) |
| 812 | 792 | MCFG_CPU_PROGRAM_MAP(mbee256_mem) |
| 813 | 793 | MCFG_CPU_IO_MAP(mbee128_io) |
| r243483 | r243484 | |
| 819 | 799 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", mbee_floppies, "drive5b", floppy_image_device::default_floppy_formats) |
| 820 | 800 | MACHINE_CONFIG_END |
| 821 | 801 | |
| 822 | | static MACHINE_CONFIG_DERIVED( mbee256, mbee128p ) |
| 802 | static MACHINE_CONFIG_DERIVED( mbee256, mbee128 ) |
| 823 | 803 | MCFG_CPU_MODIFY( "maincpu" ) |
| 824 | 804 | MCFG_CPU_PROGRAM_MAP(mbee256_mem) |
| 825 | 805 | MCFG_CPU_IO_MAP(mbee256_io) |
| r243483 | r243484 | |
| 1104 | 1084 | ROM_REGION( 0x0800, "colorram", ROMREGION_ERASE00 ) |
| 1105 | 1085 | ROM_END |
| 1106 | 1086 | |
| 1107 | | ROM_START( mbee128 ) // Standard 128k (CIAB is the same thing with half the ram) |
| 1108 | | ROM_REGION(0x20000, "rams", ROMREGION_ERASEFF) |
| 1087 | ROM_START( mbee64 ) // CIAB (Computer-In-A-Book) |
| 1088 | ROM_REGION(0x10000,"maincpu", ROMREGION_ERASEFF) |
| 1109 | 1089 | |
| 1110 | | ROM_REGION(0x8000, "roms", 0) |
| 1090 | ROM_REGION(0x7000,"bootrom", ROMREGION_ERASEFF) |
| 1111 | 1091 | ROM_LOAD("bn54.bin", 0x0000, 0x2000, CRC(995c53db) SHA1(46e1a5cfd5795b8cf528bacf9dc79398ff7d64af) ) |
| 1112 | 1092 | |
| 1113 | 1093 | ROM_REGION(0x2000, "gfx", 0) |
| 1114 | 1094 | ROM_LOAD("charrom.bin", 0x1000, 0x1000, CRC(1f9fcee4) SHA1(e57ac94e03638075dde68a0a8c834a4f84ba47b0) ) |
| 1115 | 1095 | ROM_RELOAD( 0x0000, 0x1000 ) |
| 1116 | 1096 | |
| 1117 | | ROM_REGION(0x4000, "pals", 0) // undumped; using prom from 256tc for now |
| 1118 | | ROM_LOAD( "silver.u39", 0x0000, 0x4000, BAD_DUMP CRC(c34aab64) SHA1(781fe648488dec90185760f8e081e488b73b68bf) ) |
| 1119 | | |
| 1120 | 1097 | ROM_REGION( 0x0040, "proms", 0 ) |
| 1121 | 1098 | ROM_LOAD( "82s123.ic7", 0x0000, 0x0020, CRC(61b9c16c) SHA1(0ee72377831c21339360c376f7248861d476dc20) ) |
| 1122 | 1099 | ROM_LOAD_OPTIONAL( "82s123.ic16", 0x0020, 0x0020, CRC(4e779985) SHA1(cd2579cf65032c30b3fe7d6d07b89d4633687481) ) /* video switching prom, not needed for emulation purposes */ |
| r243483 | r243484 | |
| 1125 | 1102 | ROM_REGION( 0x0800, "colorram", ROMREGION_ERASE00 ) |
| 1126 | 1103 | ROM_END |
| 1127 | 1104 | |
| 1128 | | ROM_START( mbee128p ) // Premium 128K |
| 1105 | ROM_START( mbee128 ) // 128K |
| 1129 | 1106 | ROM_REGION(0x20000, "rams", ROMREGION_ERASEFF) |
| 1130 | 1107 | |
| 1131 | 1108 | ROM_REGION(0x8000, "roms", 0) // rom plus optional undumped roms plus dummy area |
| 1132 | | ROM_SYSTEM_BIOS( 0, "bn56", "bn56" ) |
| 1133 | | ROMX_LOAD("bn56.rom", 0x0000, 0x2000, CRC(3f76769d) SHA1(cfae2069d739c26fe39f734d9f705a3c965d1e6f), ROM_BIOS(1) ) |
| 1109 | ROM_SYSTEM_BIOS( 0, "bn60", "Version 2.03" ) |
| 1110 | ROMX_LOAD("bn60.rom", 0x0000, 0x2000, CRC(ed15d4ee) SHA1(3ea42b63d42b9a4c5402676dee8912ad1f906bda), ROM_BIOS(1) ) |
| 1134 | 1111 | ROM_SYSTEM_BIOS( 1, "bn59", "Version 2.02" ) |
| 1135 | 1112 | ROMX_LOAD("bn59.rom", 0x0000, 0x2000, CRC(97384116) SHA1(87f2c4ab1a1f2964ba4f2bb60e62dc9c163831ba), ROM_BIOS(2) ) |
| 1136 | | ROM_SYSTEM_BIOS( 2, "bn60", "Version 2.03" ) |
| 1137 | | ROMX_LOAD("bn60.rom", 0x0000, 0x2000, CRC(ed15d4ee) SHA1(3ea42b63d42b9a4c5402676dee8912ad1f906bda), ROM_BIOS(3) ) |
| 1113 | ROM_SYSTEM_BIOS( 2, "bn56", "bn56" ) |
| 1114 | ROMX_LOAD("bn56.rom", 0x0000, 0x2000, CRC(3f76769d) SHA1(cfae2069d739c26fe39f734d9f705a3c965d1e6f), ROM_BIOS(3) ) |
| 1138 | 1115 | ROM_SYSTEM_BIOS( 3, "bn55", "bn55" ) |
| 1139 | 1116 | ROMX_LOAD("bn55.rom", 0x0000, 0x2000, CRC(ca2c1073) SHA1(355d90d181de899cc7af892df96305fead9c81b4), ROM_BIOS(4) ) |
| 1140 | 1117 | ROM_SYSTEM_BIOS( 4, "bn54", "bn54" ) |
| r243483 | r243484 | |
| 1142 | 1119 | ROM_SYSTEM_BIOS( 5, "hd18", "Hard Disk System" ) |
| 1143 | 1120 | ROMX_LOAD("hd18.rom", 0x0000, 0x2000, CRC(ed53ace7) SHA1(534e2e00cc527197c76b3c106b3c9ff7f1328487), ROM_BIOS(6) ) |
| 1144 | 1121 | |
| 1145 | | ROM_REGION(0x4000, "pals", 0) // undumped; using prom from 256tc for now |
| 1122 | ROM_REGION(0x4000, "proms", 0) // undumped; using prom from 256tc for now |
| 1146 | 1123 | ROM_LOAD( "silver.u39", 0x0000, 0x4000, BAD_DUMP CRC(c34aab64) SHA1(781fe648488dec90185760f8e081e488b73b68bf) ) |
| 1147 | 1124 | |
| 1148 | 1125 | ROM_REGION(0x9800, "gfx", 0) |
| r243483 | r243484 | |
| 1163 | 1140 | ROM_SYSTEM_BIOS( 1, "1.15", "Version 1.15" ) |
| 1164 | 1141 | ROMX_LOAD("256tc_boot_1.15.u38", 0x0000, 0x4000, CRC(1902062d) SHA1(e4a1c0b3f4996e313da0bac0edb6d34e3270723e), ROM_BIOS(2) ) |
| 1165 | 1142 | |
| 1166 | | ROM_REGION(0x4000, "pals", 0) |
| 1143 | ROM_REGION(0x4000, "proms", 0) |
| 1167 | 1144 | ROM_LOAD( "silver.u39", 0x0000, 0x4000, CRC(c34aab64) SHA1(781fe648488dec90185760f8e081e488b73b68bf) ) |
| 1168 | 1145 | |
| 1169 | 1146 | ROM_REGION(0x9800, "gfx", 0) |
| r243483 | r243484 | |
| 1192 | 1169 | COMP( 1986, mbeeppc, mbee, 0, mbeeppc, mbee, mbee_state, mbeeppc, "Applied Technology", "Microbee Premium PC85" , 0 ) |
| 1193 | 1170 | COMP( 1986, mbeett, mbee, 0, mbeett, mbee256, mbee_state, mbeett, "Applied Technology", "Microbee Teleterm" , GAME_NOT_WORKING ) |
| 1194 | 1171 | COMP( 1986, mbee56, mbee, 0, mbee56, mbee, mbee_state, mbee56, "Applied Technology", "Microbee 56k" , GAME_NOT_WORKING ) |
| 1195 | | COMP( 1986, mbee128, mbee, 0, mbee128, mbee, mbee_state, mbee128, "Applied Technology", "Microbee 128k Standard" , GAME_NOT_WORKING ) |
| 1196 | | COMP( 1986, mbee128p, mbee, 0, mbee128p, mbee, mbee_state, mbee128, "Applied Technology", "Microbee 128k Premium" , GAME_NOT_WORKING ) |
| 1172 | COMP( 1986, mbee64, mbee, 0, mbee64, mbee, mbee_state, mbee64, "Applied Technology", "Microbee 64k" , GAME_NOT_WORKING ) |
| 1173 | COMP( 1986, mbee128, mbee, 0, mbee128, mbee, mbee_state, mbee128, "Applied Technology", "Microbee 128k" , GAME_NOT_WORKING ) |
| 1197 | 1174 | COMP( 1987, mbee256, mbee, 0, mbee256, mbee256, mbee_state, mbee256, "Applied Technology", "Microbee 256TC" , GAME_NOT_WORKING ) |
trunk/src/mess/drivers/pcd.c
| r243483 | r243484 | |
| 19 | 19 | #include "machine/wd_fdc.h" |
| 20 | 20 | #include "machine/mc146818.h" |
| 21 | 21 | #include "sound/speaker.h" |
| 22 | | #include "video/scn2674.h" |
| 23 | 22 | |
| 23 | |
| 24 | 24 | //************************************************************************** |
| 25 | 25 | // TYPE DEFINITIONS |
| 26 | 26 | //************************************************************************** |
| r243483 | r243484 | |
| 36 | 36 | m_speaker(*this, "speaker"), |
| 37 | 37 | m_sasi(*this, "sasi"), |
| 38 | 38 | m_fdc(*this, "fdc"), |
| 39 | | m_rtc(*this, "rtc"), |
| 40 | | m_crtc(*this, "crtc"), |
| 41 | | m_vram(*this, "vram"), |
| 42 | | m_charram(8*1024) |
| 39 | m_rtc(*this, "rtc") |
| 43 | 40 | { } |
| 44 | 41 | |
| 45 | | DECLARE_READ8_MEMBER( irq_callback ); |
| 42 | DECLARE_WRITE_LINE_MEMBER( pic1_irq ); |
| 43 | DECLARE_READ8_MEMBER( pic1_slave_ack_r ); |
| 46 | 44 | TIMER_DEVICE_CALLBACK_MEMBER( timer0_tick ); |
| 47 | 45 | DECLARE_WRITE_LINE_MEMBER( i186_timer1_w ); |
| 48 | 46 | |
| 49 | | DECLARE_READ8_MEMBER( charram_r ); |
| 50 | | DECLARE_WRITE8_MEMBER( charram_w ); |
| 51 | | DECLARE_READ16_MEMBER( nmi_io_r ); |
| 52 | | DECLARE_WRITE16_MEMBER( nmi_io_w ); |
| 53 | | DECLARE_READ8_MEMBER( rtc_r ); |
| 54 | | DECLARE_WRITE8_MEMBER( rtc_w ); |
| 55 | | DECLARE_READ8_MEMBER( stat_r ); |
| 56 | | DECLARE_WRITE8_MEMBER( stat_w ); |
| 57 | | DECLARE_READ8_MEMBER( led_r ); |
| 58 | | DECLARE_WRITE8_MEMBER( led_w ); |
| 59 | | UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); |
| 47 | DECLARE_READ8_MEMBER( crt_data_r ); |
| 48 | DECLARE_WRITE8_MEMBER( crt_data_w ); |
| 49 | DECLARE_READ8_MEMBER( crt_status_r ); |
| 60 | 50 | |
| 61 | 51 | protected: |
| 62 | 52 | // driver_device overrides |
| 63 | 53 | virtual void machine_start(); |
| 64 | | virtual void machine_reset(); |
| 65 | 54 | |
| 66 | 55 | private: |
| 67 | 56 | required_device<i80186_cpu_device> m_maincpu; |
| r243483 | r243484 | |
| 71 | 60 | required_device<omti5100_device> m_sasi; |
| 72 | 61 | required_device<wd2793_t> m_fdc; |
| 73 | 62 | required_device<mc146818_device> m_rtc; |
| 74 | | required_device<scn2674_device> m_crtc; |
| 75 | | required_shared_ptr<UINT16> m_vram; |
| 76 | | dynamic_buffer m_charram; |
| 77 | | UINT8 m_stat, m_led; |
| 78 | 63 | }; |
| 79 | 64 | |
| 80 | 65 | |
| r243483 | r243484 | |
| 82 | 67 | // MACHINE EMULATION |
| 83 | 68 | //************************************************************************** |
| 84 | 69 | |
| 85 | | static const gfx_layout pcd_charlayout = |
| 86 | | { |
| 87 | | 8, 14, /* 8 x 14 characters */ |
| 88 | | 512, /* 512 characters */ |
| 89 | | 1, /* 1 bits per pixel */ |
| 90 | | { 0 }, /* no bitplanes */ |
| 91 | | /* x offsets */ |
| 92 | | { 0, 1, 2, 3, 4, 5, 6, 7 }, |
| 93 | | /* y offsets */ |
| 94 | | { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8 }, |
| 95 | | 8*16 |
| 96 | | }; |
| 97 | 70 | void pcd_state::machine_start() |
| 98 | 71 | { |
| 99 | | machine().device<gfxdecode_device>("gfxdecode")->set_gfx(0, global_alloc(gfx_element(machine().device<palette_device>("palette"), pcd_charlayout, m_charram, 0, 2, 0))); |
| 100 | 72 | } |
| 101 | 73 | |
| 102 | | void pcd_state::machine_reset() |
| 74 | WRITE_LINE_MEMBER( pcd_state::pic1_irq ) |
| 103 | 75 | { |
| 104 | | m_stat = 0; |
| 105 | | m_led = 0; |
| 76 | logerror("pic1 irq: %d\n", state); |
| 77 | m_maincpu->int0_w(state); // ? |
| 106 | 78 | } |
| 107 | 79 | |
| 108 | | READ8_MEMBER( pcd_state::irq_callback ) |
| 80 | READ8_MEMBER( pcd_state::pic1_slave_ack_r ) |
| 109 | 81 | { |
| 110 | | return (offset ? m_pic2 : m_pic1)->acknowledge(); |
| 82 | if (offset == 0) // irq 0 |
| 83 | return m_pic2->acknowledge(); |
| 84 | |
| 85 | return 0x00; |
| 111 | 86 | } |
| 112 | 87 | |
| 113 | 88 | TIMER_DEVICE_CALLBACK_MEMBER( pcd_state::timer0_tick ) |
| r243483 | r243484 | |
| 121 | 96 | m_speaker->level_w(state); |
| 122 | 97 | } |
| 123 | 98 | |
| 124 | | READ8_MEMBER( pcd_state::charram_r ) |
| 99 | READ8_MEMBER( pcd_state::crt_data_r ) |
| 125 | 100 | { |
| 126 | | return m_charram[offset >> 1]; |
| 101 | logerror("crt_data_r @ %02x\n", offset); |
| 102 | return 0xff; |
| 127 | 103 | } |
| 128 | 104 | |
| 129 | | WRITE8_MEMBER( pcd_state::charram_w ) |
| 105 | WRITE8_MEMBER( pcd_state::crt_data_w ) |
| 130 | 106 | { |
| 131 | | m_charram[offset >> 1] = data; |
| 107 | logerror("crt_data_w %02x @ %02x\n", data, offset); |
| 132 | 108 | } |
| 133 | 109 | |
| 134 | | READ16_MEMBER( pcd_state::nmi_io_r ) |
| 110 | READ8_MEMBER( pcd_state::crt_status_r ) |
| 135 | 111 | { |
| 136 | | if(space.debugger_access()) |
| 137 | | return 0; |
| 138 | | logerror("%s: unmapped %s %04x\n", machine().describe_context(), space.name(), offset << 1); |
| 139 | | m_stat |= 8; |
| 140 | | m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE); |
| 141 | | return 0; |
| 112 | logerror("crt_status_r @ %02x\n", offset); |
| 113 | return 0xff; |
| 142 | 114 | } |
| 143 | 115 | |
| 144 | | WRITE16_MEMBER( pcd_state::nmi_io_w ) |
| 145 | | { |
| 146 | | if(space.debugger_access()) |
| 147 | | return; |
| 148 | | logerror("%s: unmapped %s %04x\n", machine().describe_context(), space.name(), offset << 1); |
| 149 | | m_stat |= 8; |
| 150 | | m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE); |
| 151 | | } |
| 152 | 116 | |
| 153 | | READ8_MEMBER( pcd_state::rtc_r ) |
| 154 | | { |
| 155 | | m_rtc->write(space, 0, offset); |
| 156 | | return m_rtc->read(space, 1); |
| 157 | | } |
| 158 | | |
| 159 | | WRITE8_MEMBER( pcd_state::rtc_w ) |
| 160 | | { |
| 161 | | m_rtc->write(space, 0, offset); |
| 162 | | m_rtc->write(space, 1, data); |
| 163 | | } |
| 164 | | |
| 165 | | READ8_MEMBER( pcd_state::stat_r ) |
| 166 | | { |
| 167 | | return m_stat; |
| 168 | | } |
| 169 | | |
| 170 | | WRITE8_MEMBER( pcd_state::stat_w ) |
| 171 | | { |
| 172 | | m_stat = data; |
| 173 | | } |
| 174 | | |
| 175 | | READ8_MEMBER( pcd_state::led_r ) |
| 176 | | { |
| 177 | | return m_led; |
| 178 | | } |
| 179 | | |
| 180 | | WRITE8_MEMBER( pcd_state::led_w ) |
| 181 | | { |
| 182 | | for(int i = 0; i < 6; i++) |
| 183 | | logerror("%c", (data & (1 << i)) ? '-' : '*'); |
| 184 | | logerror("\n"); |
| 185 | | m_led = data; |
| 186 | | } |
| 187 | | |
| 188 | | UINT32 pcd_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) |
| 189 | | { |
| 190 | | //bitmap.fill(0, cliprect); |
| 191 | | m_crtc->scn2574_draw(machine(), bitmap, cliprect, m_vram); |
| 192 | | return 0; |
| 193 | | } |
| 194 | | |
| 195 | 117 | //************************************************************************** |
| 196 | 118 | // ADDRESS MAPS |
| 197 | 119 | //************************************************************************** |
| 198 | 120 | |
| 199 | 121 | static ADDRESS_MAP_START( pcd_map, AS_PROGRAM, 16, pcd_state ) |
| 200 | 122 | AM_RANGE(0x00000, 0x3ffff) AM_RAM // fixed 256k for now |
| 201 | | AM_RANGE(0xf0000, 0xf7fff) AM_RAM AM_SHARE("vram") |
| 202 | | //AM_RANGE(0xf7000, 0xfbfff) AM_READWRITE8(charram_r, charram_w, 0xffff) |
| 203 | 123 | AM_RANGE(0xfc000, 0xfffff) AM_ROM AM_REGION("bios", 0) |
| 204 | | AM_RANGE(0x00000, 0xfffff) AM_READWRITE(nmi_io_r, nmi_io_w) |
| 205 | 124 | ADDRESS_MAP_END |
| 206 | 125 | |
| 207 | 126 | static ADDRESS_MAP_START( pcd_io, AS_IO, 16, pcd_state ) |
| 208 | 127 | ADDRESS_MAP_UNMAP_HIGH |
| 209 | 128 | AM_RANGE(0xf000, 0xf7ff) AM_RAM AM_SHARE("nvram") |
| 210 | | AM_RANGE(0xf800, 0xf801) AM_DEVREADWRITE8("pic1", pic8259_device, read, write, 0xffff) |
| 211 | | AM_RANGE(0xf820, 0xf821) AM_DEVREADWRITE8("pic2", pic8259_device, read, write, 0xffff) |
| 212 | | AM_RANGE(0xf840, 0xf841) AM_READWRITE8(stat_r, stat_w, 0x00ff) |
| 213 | | AM_RANGE(0xf840, 0xf841) AM_READWRITE8(led_r, led_w, 0xff00) |
| 214 | | AM_RANGE(0xf880, 0xf8bf) AM_READWRITE8(rtc_r, rtc_w, 0xffff) |
| 215 | | AM_RANGE(0xf900, 0xf907) AM_DEVREADWRITE8("fdc", wd2793_t, read, write, 0xffff) |
| 216 | | //AM_RANGE(0xf940, 0xf943) scsi |
| 217 | | AM_RANGE(0xf9c0, 0xf9c3) AM_DEVREADWRITE8("usart1",mc2661_device,read,write,0xffff) // UARTs |
| 218 | | AM_RANGE(0xf9d0, 0xf9d3) AM_DEVREADWRITE8("usart2",mc2661_device,read,write,0xffff) |
| 219 | | AM_RANGE(0xf9e0, 0xf9e3) AM_DEVREADWRITE8("usart3",mc2661_device,read,write,0xffff) |
| 220 | | AM_RANGE(0xf980, 0xf987) AM_DEVWRITE8("crtc", scn2674_device, mpu4_vid_scn2674_w, 0x00ff) |
| 221 | | AM_RANGE(0xf980, 0xf987) AM_DEVREAD8("crtc", scn2674_device, mpu4_vid_scn2674_r, 0xff00) |
| 222 | | // AM_RANGE(0xfa00, 0xfa7f) // pcs4-n (peripheral chip select) |
| 223 | | AM_RANGE(0x0000, 0xffff) AM_READWRITE(nmi_io_r, nmi_io_w) |
| 129 | AM_RANGE(0xf840, 0xf841) AM_DEVREADWRITE8("pic1", pic8259_device, read, write, 0xff00) |
| 130 | AM_RANGE(0xf900, 0xf907) AM_DEVREADWRITE8("fdc", wd2793_t, read, write, 0x00ff) |
| 131 | // AM_RANGE(0xf940, 0xf941) // sasi controller here? |
| 132 | AM_RANGE(0xf980, 0xf981) AM_READWRITE8(crt_data_r, crt_data_w, 0x00ff) AM_READ8(crt_status_r, 0xff00) |
| 133 | // AM_RANGE(0xfa00, 0xfa7f) // pcs4-n (peripheral chip select) |
| 224 | 134 | ADDRESS_MAP_END |
| 225 | 135 | |
| 226 | 136 | |
| r243483 | r243484 | |
| 234 | 144 | SLOT_INTERFACE_END |
| 235 | 145 | |
| 236 | 146 | static MACHINE_CONFIG_START( pcd, pcd_state ) |
| 237 | | MCFG_CPU_ADD("maincpu", I80186, XTAL_16MHz) |
| 147 | MCFG_CPU_ADD("maincpu", I80186, XTAL_16MHz / 2) |
| 238 | 148 | MCFG_CPU_PROGRAM_MAP(pcd_map) |
| 239 | 149 | MCFG_CPU_IO_MAP(pcd_io) |
| 240 | 150 | MCFG_80186_TMROUT1_HANDLER(WRITELINE(pcd_state, i186_timer1_w)) |
| 241 | | MCFG_80186_IRQ_SLAVE_ACK(READ8(pcd_state, irq_callback)) |
| 242 | 151 | |
| 243 | | MCFG_TIMER_DRIVER_ADD_PERIODIC("timer0_tick", pcd_state, timer0_tick, attotime::from_hz(XTAL_16MHz / 24)) // adjusted to pass post |
| 152 | MCFG_TIMER_DRIVER_ADD_PERIODIC("timer0_tick", pcd_state, timer0_tick, attotime::from_hz(XTAL_16MHz / 2 / 16)) |
| 244 | 153 | |
| 245 | | MCFG_PIC8259_ADD("pic1", DEVWRITELINE("maincpu", i80186_cpu_device, int0_w), VCC, NULL) |
| 246 | | MCFG_PIC8259_ADD("pic2", DEVWRITELINE("maincpu", i80186_cpu_device, int1_w), VCC, NULL) |
| 154 | MCFG_PIC8259_ADD("pic1", WRITELINE(pcd_state, pic1_irq), VCC, READ8(pcd_state, pic1_slave_ack_r)) |
| 155 | MCFG_PIC8259_ADD("pic2", DEVWRITELINE("pic1", pic8259_device, ir0_w), GND, NULL) |
| 247 | 156 | |
| 248 | 157 | #if 0 |
| 249 | 158 | MCFG_RAM_ADD(RAM_TAG) |
| r243483 | r243484 | |
| 258 | 167 | MCFG_OMTI5100_ADD("sasi") |
| 259 | 168 | |
| 260 | 169 | // floppy disk controller |
| 261 | | MCFG_WD2793x_ADD("fdc", XTAL_16MHz/8) |
| 170 | MCFG_WD2793x_ADD("fdc", XTAL_16MHz/2/8) |
| 262 | 171 | MCFG_WD_FDC_INTRQ_CALLBACK(DEVWRITELINE("pic1", pic8259_device, ir6_w)) |
| 263 | 172 | MCFG_WD_FDC_DRQ_CALLBACK(DEVWRITELINE("maincpu", i80186_cpu_device, drq1_w)) |
| 264 | 173 | |
| r243483 | r243484 | |
| 279 | 188 | MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0) |
| 280 | 189 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) |
| 281 | 190 | |
| 282 | | // video hardware |
| 283 | | MCFG_SCREEN_ADD("screen", RASTER) |
| 284 | | MCFG_SCREEN_SIZE(640, 350) |
| 285 | | MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 349) |
| 286 | | MCFG_SCREEN_REFRESH_RATE(50) |
| 287 | | MCFG_SCREEN_UPDATE_DRIVER(pcd_state, screen_update) |
| 288 | | |
| 289 | | MCFG_GFXDECODE_ADD("gfxdecode", "palette", empty) |
| 290 | | MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette") |
| 291 | | |
| 292 | | MCFG_SCN2674_VIDEO_ADD("crtc", 0, NULL); |
| 293 | | MCFG_SCN2674_GFXDECODE("gfxdecode") |
| 294 | | MCFG_SCN2674_PALETTE("palette") |
| 295 | | |
| 296 | 191 | // rtc |
| 297 | 192 | MCFG_MC146818_ADD("rtc", XTAL_32_768kHz) |
| 298 | 193 | MCFG_MC146818_IRQ_HANDLER(DEVWRITELINE("pic1", pic8259_device, ir7_w)) |
| r243483 | r243484 | |
| 307 | 202 | ROM_REGION(0x4000, "bios", 0) |
| 308 | 203 | ROM_LOAD16_BYTE("s26361-d359.d42", 0x0001, 0x2000, CRC(e20244dd) SHA1(0ebc5ddb93baacd9106f1917380de58aac64fe73)) |
| 309 | 204 | ROM_LOAD16_BYTE("s26361-d359.d43", 0x0000, 0x2000, CRC(e03db2ec) SHA1(fcae8b0c9e7543706817b0a53872826633361fda)) |
| 310 | | ROM_FILL(0xb64, 1, 0xe2) // post expects 0xd0 fdc command to be instant, give it a delay |
| 311 | | ROM_FILL(0xb65, 1, 0xfe) |
| 312 | | ROM_FILL(0x3ffe, 1, 0xb4) // fix csum |
| 313 | | ROM_FILL(0x3fff, 1, 0x22) |
| 314 | 205 | |
| 315 | 206 | // gfx card (scn2674 with 8741), to be moved |
| 316 | 207 | ROM_REGION(0x400, "graphics", 0) |
trunk/src/mess/layout/bankshot.lay
| r243483 | r243484 | |
| 1 | | <?xml version="1.0"?> |
| 2 | | <mamelayout version="2"> |
| 3 | | |
| 4 | | <!-- define elements --> |
| 5 | | |
| 6 | | <element name="static_black"><rect><color red="0" green="0" blue="0" /></rect></element> |
| 7 | | <element name="static_bg"><rect><color red="0.16" green="0.04" blue="0.05" /></rect></element> |
| 8 | | <element name="disk_bg"><disk><color red="0.16" green="0.04" blue="0.05" /></disk></element> |
| 9 | | <element name="static_white"><rect><color red="0.9" green="0.9" blue="0.9" /></rect></element> |
| 10 | | <element name="disk_white"><disk><color red="0.9" green="0.9" blue="0.9" /></disk></element> |
| 11 | | |
| 12 | | <element name="led" defstate="0"> |
| 13 | | <text string=""></text> |
| 14 | | <disk state="0"> |
| 15 | | <color red="0.16" green="0.04" blue="0.05" /> |
| 16 | | <bounds x="0.05" y="0.05" width="0.9" height="0.9" /> |
| 17 | | </disk> |
| 18 | | <disk state="1"> |
| 19 | | <color red="1.0" green="0.24" blue="0.27" /> |
| 20 | | <bounds x="0.05" y="0.05" width="0.9" height="0.9" /> |
| 21 | | </disk> |
| 22 | | </element> |
| 23 | | |
| 24 | | |
| 25 | | |
| 26 | | <!-- build screen --> |
| 27 | | |
| 28 | | <view name="Internal Layout"> |
| 29 | | <bounds left="0" right="17" top="0" bottom="11" /> |
| 30 | | |
| 31 | | <!-- note: background is dark-red to hide turned-off leds --> |
| 32 | | |
| 33 | | <bezel element="static_white"><bounds left="0" right="17" top="0" bottom="11" /></bezel> |
| 34 | | <bezel element="static_bg"><bounds left="1" right="16" top="1" bottom="10" /></bezel> |
| 35 | | |
| 36 | | <!-- markings --> |
| 37 | | |
| 38 | | <bezel element="static_black"><bounds x="3.4" y="0.2" width="0.2" height="0.6" /></bezel> |
| 39 | | <bezel element="static_black"><bounds x="5.4" y="0.2" width="0.2" height="0.6" /></bezel> |
| 40 | | <bezel element="static_black"><bounds x="11.4" y="0.2" width="0.2" height="0.6" /></bezel> |
| 41 | | <bezel element="static_black"><bounds x="13.4" y="0.2" width="0.2" height="0.6" /></bezel> |
| 42 | | |
| 43 | | <bezel element="static_black"><bounds x="3.4" y="10.2" width="0.2" height="0.6" /></bezel> |
| 44 | | <bezel element="static_black"><bounds x="5.4" y="10.2" width="0.2" height="0.6" /></bezel> |
| 45 | | <bezel element="static_black"><bounds x="11.4" y="10.2" width="0.2" height="0.6" /></bezel> |
| 46 | | <bezel element="static_black"><bounds x="13.4" y="10.2" width="0.2" height="0.6" /></bezel> |
| 47 | | |
| 48 | | <bezel element="static_black"><bounds x="0.2" y="3.4" width="0.6" height="0.2" /></bezel> |
| 49 | | <bezel element="static_black"><bounds x="0.2" y="5.4" width="0.6" height="0.2" /></bezel> |
| 50 | | <bezel element="static_black"><bounds x="0.2" y="7.4" width="0.6" height="0.2" /></bezel> |
| 51 | | |
| 52 | | <bezel element="static_black"><bounds x="16.2" y="3.4" width="0.6" height="0.2" /></bezel> |
| 53 | | <bezel element="static_black"><bounds x="16.2" y="5.4" width="0.6" height="0.2" /></bezel> |
| 54 | | <bezel element="static_black"><bounds x="16.2" y="7.4" width="0.6" height="0.2" /></bezel> |
| 55 | | |
| 56 | | |
| 57 | | <!-- top hole --> |
| 58 | | |
| 59 | | <bezel element="disk_bg"><bounds x="7.9" y="-0.1" width="1.2" height="1.2" /></bezel> |
| 60 | | <bezel element="static_bg"><bounds x="7.9" y="0.5" width="1.2" height="1" /></bezel> |
| 61 | | |
| 62 | | <bezel element="static_bg"><bounds x="7.3" y="0.4" width="0.7" height="0.7" /></bezel> |
| 63 | | <bezel element="disk_white"><bounds x="6.7" y="-0.2" width="1.2" height="1.2" /></bezel> |
| 64 | | <bezel element="static_bg"><bounds x="9.0" y="0.4" width="0.7" height="0.7" /></bezel> |
| 65 | | <bezel element="disk_white"><bounds x="9.1" y="-0.2" width="1.2" height="1.2" /></bezel> |
| 66 | | |
| 67 | | <!-- bottom hole --> |
| 68 | | |
| 69 | | <bezel element="disk_bg"><bounds x="7.9" y="9.9" width="1.2" height="1.2" /></bezel> |
| 70 | | <bezel element="static_bg"><bounds x="7.9" y="9.6" width="1.2" height="1" /></bezel> |
| 71 | | |
| 72 | | <bezel element="static_bg"><bounds x="7.3" y="9.9" width="0.7" height="0.7" /></bezel> |
| 73 | | <bezel element="disk_white"><bounds x="6.7" y="10" width="1.2" height="1.2" /></bezel> |
| 74 | | <bezel element="static_bg"><bounds x="9.0" y="9.9" width="0.7" height="0.7" /></bezel> |
| 75 | | <bezel element="disk_white"><bounds x="9.1" y="10" width="1.2" height="1.2" /></bezel> |
| 76 | | |
| 77 | | <!-- top-left hole --> |
| 78 | | |
| 79 | | <bezel element="disk_bg"><bounds x="0.10" y="0.10" width="1.2" height="1.2" /></bezel> |
| 80 | | <bezel element="disk_bg"><bounds x="0.15" y="0.15" width="1.2" height="1.2" /></bezel> |
| 81 | | <bezel element="disk_bg"><bounds x="0.20" y="0.20" width="1.2" height="1.2" /></bezel> |
| 82 | | <bezel element="disk_bg"><bounds x="0.25" y="0.25" width="1.2" height="1.2" /></bezel> |
| 83 | | <bezel element="disk_bg"><bounds x="0.30" y="0.30" width="1.2" height="1.2" /></bezel> |
| 84 | | <bezel element="disk_bg"><bounds x="0.35" y="0.35" width="1.2" height="1.2" /></bezel> |
| 85 | | <bezel element="disk_bg"><bounds x="0.40" y="0.40" width="1.2" height="1.2" /></bezel> |
| 86 | | <bezel element="disk_bg"><bounds x="0.45" y="0.45" width="1.2" height="1.2" /></bezel> |
| 87 | | <bezel element="disk_bg"><bounds x="0.50" y="0.50" width="1.2" height="1.2" /></bezel> |
| 88 | | <bezel element="disk_bg"><bounds x="0.55" y="0.55" width="1.2" height="1.2" /></bezel> |
| 89 | | <bezel element="disk_bg"><bounds x="0.60" y="0.60" width="1.2" height="1.2" /></bezel> |
| 90 | | <bezel element="disk_bg"><bounds x="0.65" y="0.65" width="1.2" height="1.2" /></bezel> |
| 91 | | <bezel element="disk_bg"><bounds x="0.70" y="0.70" width="1.2" height="1.2" /></bezel> |
| 92 | | <bezel element="disk_bg"><bounds x="0.75" y="0.75" width="1.2" height="1.2" /></bezel> |
| 93 | | <bezel element="disk_bg"><bounds x="0.80" y="0.80" width="1.2" height="1.2" /></bezel> |
| 94 | | <bezel element="disk_bg"><bounds x="0.85" y="0.85" width="1.2" height="1.2" /></bezel> |
| 95 | | <bezel element="disk_bg"><bounds x="0.90" y="0.90" width="1.2" height="1.2" /></bezel> |
| 96 | | <bezel element="disk_bg"><bounds x="0.95" y="0.95" width="1.2" height="1.2" /></bezel> |
| 97 | | <bezel element="disk_bg"><bounds x="1.00" y="1.00" width="1.2" height="1.2" /></bezel> |
| 98 | | |
| 99 | | <!-- bottom-left hole --> |
| 100 | | |
| 101 | | <bezel element="disk_bg"><bounds x="0.10" y="9.70" width="1.2" height="1.2" /></bezel> |
| 102 | | <bezel element="disk_bg"><bounds x="0.15" y="9.65" width="1.2" height="1.2" /></bezel> |
| 103 | | <bezel element="disk_bg"><bounds x="0.20" y="9.60" width="1.2" height="1.2" /></bezel> |
| 104 | | <bezel element="disk_bg"><bounds x="0.25" y="9.55" width="1.2" height="1.2" /></bezel> |
| 105 | | <bezel element="disk_bg"><bounds x="0.30" y="9.50" width="1.2" height="1.2" /></bezel> |
| 106 | | <bezel element="disk_bg"><bounds x="0.35" y="9.45" width="1.2" height="1.2" /></bezel> |
| 107 | | <bezel element="disk_bg"><bounds x="0.40" y="9.40" width="1.2" height="1.2" /></bezel> |
| 108 | | <bezel element="disk_bg"><bounds x="0.45" y="9.35" width="1.2" height="1.2" /></bezel> |
| 109 | | <bezel element="disk_bg"><bounds x="0.50" y="9.30" width="1.2" height="1.2" /></bezel> |
| 110 | | <bezel element="disk_bg"><bounds x="0.55" y="9.25" width="1.2" height="1.2" /></bezel> |
| 111 | | <bezel element="disk_bg"><bounds x="0.60" y="9.20" width="1.2" height="1.2" /></bezel> |
| 112 | | <bezel element="disk_bg"><bounds x="0.65" y="9.15" width="1.2" height="1.2" /></bezel> |
| 113 | | <bezel element="disk_bg"><bounds x="0.70" y="9.10" width="1.2" height="1.2" /></bezel> |
| 114 | | <bezel element="disk_bg"><bounds x="0.75" y="9.05" width="1.2" height="1.2" /></bezel> |
| 115 | | <bezel element="disk_bg"><bounds x="0.80" y="9.00" width="1.2" height="1.2" /></bezel> |
| 116 | | <bezel element="disk_bg"><bounds x="0.85" y="8.95" width="1.2" height="1.2" /></bezel> |
| 117 | | <bezel element="disk_bg"><bounds x="0.90" y="8.90" width="1.2" height="1.2" /></bezel> |
| 118 | | <bezel element="disk_bg"><bounds x="0.95" y="8.85" width="1.2" height="1.2" /></bezel> |
| 119 | | <bezel element="disk_bg"><bounds x="1.00" y="8.80" width="1.2" height="1.2" /></bezel> |
| 120 | | |
| 121 | | <!-- top-right hole --> |
| 122 | | |
| 123 | | <bezel element="disk_bg"><bounds x="15.70" y="0.10" width="1.2" height="1.2" /></bezel> |
| 124 | | <bezel element="disk_bg"><bounds x="15.65" y="0.15" width="1.2" height="1.2" /></bezel> |
| 125 | | <bezel element="disk_bg"><bounds x="15.60" y="0.20" width="1.2" height="1.2" /></bezel> |
| 126 | | <bezel element="disk_bg"><bounds x="15.55" y="0.25" width="1.2" height="1.2" /></bezel> |
| 127 | | <bezel element="disk_bg"><bounds x="15.50" y="0.30" width="1.2" height="1.2" /></bezel> |
| 128 | | <bezel element="disk_bg"><bounds x="15.45" y="0.35" width="1.2" height="1.2" /></bezel> |
| 129 | | <bezel element="disk_bg"><bounds x="15.40" y="0.40" width="1.2" height="1.2" /></bezel> |
| 130 | | <bezel element="disk_bg"><bounds x="15.35" y="0.45" width="1.2" height="1.2" /></bezel> |
| 131 | | <bezel element="disk_bg"><bounds x="15.30" y="0.50" width="1.2" height="1.2" /></bezel> |
| 132 | | <bezel element="disk_bg"><bounds x="15.25" y="0.55" width="1.2" height="1.2" /></bezel> |
| 133 | | <bezel element="disk_bg"><bounds x="15.20" y="0.60" width="1.2" height="1.2" /></bezel> |
| 134 | | <bezel element="disk_bg"><bounds x="15.15" y="0.65" width="1.2" height="1.2" /></bezel> |
| 135 | | <bezel element="disk_bg"><bounds x="15.10" y="0.70" width="1.2" height="1.2" /></bezel> |
| 136 | | <bezel element="disk_bg"><bounds x="15.05" y="0.75" width="1.2" height="1.2" /></bezel> |
| 137 | | <bezel element="disk_bg"><bounds x="15.00" y="0.80" width="1.2" height="1.2" /></bezel> |
| 138 | | <bezel element="disk_bg"><bounds x="14.95" y="0.85" width="1.2" height="1.2" /></bezel> |
| 139 | | <bezel element="disk_bg"><bounds x="14.90" y="0.90" width="1.2" height="1.2" /></bezel> |
| 140 | | <bezel element="disk_bg"><bounds x="14.85" y="0.95" width="1.2" height="1.2" /></bezel> |
| 141 | | <bezel element="disk_bg"><bounds x="14.80" y="1.00" width="1.2" height="1.2" /></bezel> |
| 142 | | |
| 143 | | <!-- bottom-right hole --> |
| 144 | | |
| 145 | | <bezel element="disk_bg"><bounds x="15.70" y="9.70" width="1.2" height="1.2" /></bezel> |
| 146 | | <bezel element="disk_bg"><bounds x="15.65" y="9.65" width="1.2" height="1.2" /></bezel> |
| 147 | | <bezel element="disk_bg"><bounds x="15.60" y="9.60" width="1.2" height="1.2" /></bezel> |
| 148 | | <bezel element="disk_bg"><bounds x="15.55" y="9.55" width="1.2" height="1.2" /></bezel> |
| 149 | | <bezel element="disk_bg"><bounds x="15.50" y="9.50" width="1.2" height="1.2" /></bezel> |
| 150 | | <bezel element="disk_bg"><bounds x="15.45" y="9.45" width="1.2" height="1.2" /></bezel> |
| 151 | | <bezel element="disk_bg"><bounds x="15.40" y="9.40" width="1.2" height="1.2" /></bezel> |
| 152 | | <bezel element="disk_bg"><bounds x="15.35" y="9.35" width="1.2" height="1.2" /></bezel> |
| 153 | | <bezel element="disk_bg"><bounds x="15.30" y="9.30" width="1.2" height="1.2" /></bezel> |
| 154 | | <bezel element="disk_bg"><bounds x="15.25" y="9.25" width="1.2" height="1.2" /></bezel> |
| 155 | | <bezel element="disk_bg"><bounds x="15.20" y="9.20" width="1.2" height="1.2" /></bezel> |
| 156 | | <bezel element="disk_bg"><bounds x="15.15" y="9.15" width="1.2" height="1.2" /></bezel> |
| 157 | | <bezel element="disk_bg"><bounds x="15.10" y="9.10" width="1.2" height="1.2" /></bezel> |
| 158 | | <bezel element="disk_bg"><bounds x="15.05" y="9.05" width="1.2" height="1.2" /></bezel> |
| 159 | | <bezel element="disk_bg"><bounds x="15.00" y="9.00" width="1.2" height="1.2" /></bezel> |
| 160 | | <bezel element="disk_bg"><bounds x="14.95" y="8.95" width="1.2" height="1.2" /></bezel> |
| 161 | | <bezel element="disk_bg"><bounds x="14.90" y="8.90" width="1.2" height="1.2" /></bezel> |
| 162 | | <bezel element="disk_bg"><bounds x="14.85" y="8.85" width="1.2" height="1.2" /></bezel> |
| 163 | | <bezel element="disk_bg"><bounds x="14.80" y="8.80" width="1.2" height="1.2" /></bezel> |
| 164 | | |
| 165 | | |
| 166 | | <!-- led matrix --> |
| 167 | | |
| 168 | | <bezel name="lamp97" element="led"><bounds x="8" y="0" width="1" height="1" /></bezel> |
| 169 | | |
| 170 | | <bezel name="lamp107" element="led"><bounds x="1" y="1" width="1" height="1" /></bezel> |
| 171 | | <bezel name="lamp106" element="led"><bounds x="3" y="1" width="1" height="1" /></bezel> |
| 172 | | <bezel name="lamp105" element="led"><bounds x="5" y="1" width="1" height="1" /></bezel> |
| 173 | | <bezel name="lamp104" element="led"><bounds x="7" y="1" width="1" height="1" /></bezel> |
| 174 | | <bezel name="lamp103" element="led"><bounds x="9" y="1" width="1" height="1" /></bezel> |
| 175 | | <bezel name="lamp102" element="led"><bounds x="11" y="1" width="1" height="1" /></bezel> |
| 176 | | <bezel name="lamp101" element="led"><bounds x="13" y="1" width="1" height="1" /></bezel> |
| 177 | | <bezel name="lamp100" element="led"><bounds x="15" y="1" width="1" height="1" /></bezel> |
| 178 | | |
| 179 | | <bezel name="lamp96" element="led"><bounds x="2" y="2" width="1" height="1" /></bezel> |
| 180 | | <bezel name="lamp95" element="led"><bounds x="4" y="2" width="1" height="1" /></bezel> |
| 181 | | <bezel name="lamp94" element="led"><bounds x="6" y="2" width="1" height="1" /></bezel> |
| 182 | | <bezel name="lamp93" element="led"><bounds x="8" y="2" width="1" height="1" /></bezel> |
| 183 | | <bezel name="lamp92" element="led"><bounds x="10" y="2" width="1" height="1" /></bezel> |
| 184 | | <bezel name="lamp91" element="led"><bounds x="12" y="2" width="1" height="1" /></bezel> |
| 185 | | <bezel name="lamp90" element="led"><bounds x="14" y="2" width="1" height="1" /></bezel> |
| 186 | | |
| 187 | | <bezel name="lamp87" element="led"><bounds x="1" y="3" width="1" height="1" /></bezel> |
| 188 | | <bezel name="lamp86" element="led"><bounds x="3" y="3" width="1" height="1" /></bezel> |
| 189 | | <bezel name="lamp85" element="led"><bounds x="5" y="3" width="1" height="1" /></bezel> |
| 190 | | <bezel name="lamp84" element="led"><bounds x="7" y="3" width="1" height="1" /></bezel> |
| 191 | | <bezel name="lamp83" element="led"><bounds x="9" y="3" width="1" height="1" /></bezel> |
| 192 | | <bezel name="lamp82" element="led"><bounds x="11" y="3" width="1" height="1" /></bezel> |
| 193 | | <bezel name="lamp81" element="led"><bounds x="13" y="3" width="1" height="1" /></bezel> |
| 194 | | <bezel name="lamp80" element="led"><bounds x="15" y="3" width="1" height="1" /></bezel> |
| 195 | | |
| 196 | | <bezel name="lamp76" element="led"><bounds x="2" y="4" width="1" height="1" /></bezel> |
| 197 | | <bezel name="lamp75" element="led"><bounds x="4" y="4" width="1" height="1" /></bezel> |
| 198 | | <bezel name="lamp74" element="led"><bounds x="6" y="4" width="1" height="1" /></bezel> |
| 199 | | <bezel name="lamp73" element="led"><bounds x="8" y="4" width="1" height="1" /></bezel> |
| 200 | | <bezel name="lamp72" element="led"><bounds x="10" y="4" width="1" height="1" /></bezel> |
| 201 | | <bezel name="lamp71" element="led"><bounds x="12" y="4" width="1" height="1" /></bezel> |
| 202 | | <bezel name="lamp70" element="led"><bounds x="14" y="4" width="1" height="1" /></bezel> |
| 203 | | |
| 204 | | <bezel name="lamp67" element="led"><bounds x="1" y="5" width="1" height="1" /></bezel> |
| 205 | | <bezel name="lamp66" element="led"><bounds x="3" y="5" width="1" height="1" /></bezel> |
| 206 | | <bezel name="lamp65" element="led"><bounds x="5" y="5" width="1" height="1" /></bezel> |
| 207 | | <bezel name="lamp64" element="led"><bounds x="7" y="5" width="1" height="1" /></bezel> |
| 208 | | <bezel name="lamp63" element="led"><bounds x="9" y="5" width="1" height="1" /></bezel> |
| 209 | | <bezel name="lamp62" element="led"><bounds x="11" y="5" width="1" height="1" /></bezel> |
| 210 | | <bezel name="lamp61" element="led"><bounds x="13" y="5" width="1" height="1" /></bezel> |
| 211 | | <bezel name="lamp60" element="led"><bounds x="15" y="5" width="1" height="1" /></bezel> |
| 212 | | |
| 213 | | <bezel name="lamp56" element="led"><bounds x="2" y="6" width="1" height="1" /></bezel> |
| 214 | | <bezel name="lamp55" element="led"><bounds x="4" y="6" width="1" height="1" /></bezel> |
| 215 | | <bezel name="lamp54" element="led"><bounds x="6" y="6" width="1" height="1" /></bezel> |
| 216 | | <bezel name="lamp53" element="led"><bounds x="8" y="6" width="1" height="1" /></bezel> |
| 217 | | <bezel name="lamp52" element="led"><bounds x="10" y="6" width="1" height="1" /></bezel> |
| 218 | | <bezel name="lamp51" element="led"><bounds x="12" y="6" width="1" height="1" /></bezel> |
| 219 | | <bezel name="lamp50" element="led"><bounds x="14" y="6" width="1" height="1" /></bezel> |
| 220 | | |
| 221 | | <bezel name="lamp47" element="led"><bounds x="1" y="7" width="1" height="1" /></bezel> |
| 222 | | <bezel name="lamp46" element="led"><bounds x="3" y="7" width="1" height="1" /></bezel> |
| 223 | | <bezel name="lamp45" element="led"><bounds x="5" y="7" width="1" height="1" /></bezel> |
| 224 | | <bezel name="lamp44" element="led"><bounds x="7" y="7" width="1" height="1" /></bezel> |
| 225 | | <bezel name="lamp43" element="led"><bounds x="9" y="7" width="1" height="1" /></bezel> |
| 226 | | <bezel name="lamp42" element="led"><bounds x="11" y="7" width="1" height="1" /></bezel> |
| 227 | | <bezel name="lamp41" element="led"><bounds x="13" y="7" width="1" height="1" /></bezel> |
| 228 | | <bezel name="lamp40" element="led"><bounds x="15" y="7" width="1" height="1" /></bezel> |
| 229 | | |
| 230 | | <bezel name="lamp36" element="led"><bounds x="2" y="8" width="1" height="1" /></bezel> |
| 231 | | <bezel name="lamp35" element="led"><bounds x="4" y="8" width="1" height="1" /></bezel> |
| 232 | | <bezel name="lamp34" element="led"><bounds x="6" y="8" width="1" height="1" /></bezel> |
| 233 | | <bezel name="lamp33" element="led"><bounds x="8" y="8" width="1" height="1" /></bezel> |
| 234 | | <bezel name="lamp32" element="led"><bounds x="10" y="8" width="1" height="1" /></bezel> |
| 235 | | <bezel name="lamp31" element="led"><bounds x="12" y="8" width="1" height="1" /></bezel> |
| 236 | | <bezel name="lamp30" element="led"><bounds x="14" y="8" width="1" height="1" /></bezel> |
| 237 | | |
| 238 | | <bezel name="lamp27" element="led"><bounds x="1" y="9" width="1" height="1" /></bezel> |
| 239 | | <bezel name="lamp26" element="led"><bounds x="3" y="9" width="1" height="1" /></bezel> |
| 240 | | <bezel name="lamp25" element="led"><bounds x="5" y="9" width="1" height="1" /></bezel> |
| 241 | | <bezel name="lamp24" element="led"><bounds x="7" y="9" width="1" height="1" /></bezel> |
| 242 | | <bezel name="lamp23" element="led"><bounds x="9" y="9" width="1" height="1" /></bezel> |
| 243 | | <bezel name="lamp22" element="led"><bounds x="11" y="9" width="1" height="1" /></bezel> |
| 244 | | <bezel name="lamp21" element="led"><bounds x="13" y="9" width="1" height="1" /></bezel> |
| 245 | | <bezel name="lamp20" element="led"><bounds x="15" y="9" width="1" height="1" /></bezel> |
| 246 | | |
| 247 | | <bezel name="lamp37" element="led"><bounds x="8" y="10" width="1" height="1" /></bezel> |
| 248 | | |
| 249 | | |
| 250 | | </view> |
| 251 | | </mamelayout> |
trunk/src/mess/layout/tmtennis.lay
| r243483 | r243484 | |
| 5 | 5 | |
| 6 | 6 | <element name="static_black"><rect><color red="0.0" green="0.0" blue="0.0" /></rect></element> |
| 7 | 7 | |
| 8 | | <element name="green" defstate="0"> |
| 9 | | <disk state="0"><color red="0.0" green="0.1" blue="0.0" /></disk> |
| 10 | | <disk state="1"><color red="0.2" green="1.0" blue="0.2" /></disk> |
| 11 | | </element> |
| 12 | 8 | |
| 13 | | |
| 14 | 9 | <!-- build screen --> |
| 15 | 10 | |
| 16 | | <view name="Test Layout"> |
| 11 | <view name="Internal Layout"> |
| 17 | 12 | <bounds left="0" right="100" top="0" bottom="100" /> |
| 18 | 13 | <bezel element="static_black"> |
| 19 | 14 | <bounds left="0" right="100" top="0" bottom="100" /> |
| 20 | 15 | </bezel> |
| 21 | 16 | |
| 22 | | <!-- matrix --> |
| 23 | 17 | |
| 24 | | <bezel name="lamp0" element="green"><bounds x="0" y="0" width="1" height="1" /></bezel> |
| 25 | | <bezel name="lamp1" element="green"><bounds x="0" y="2" width="1" height="1" /></bezel> |
| 26 | | <bezel name="lamp2" element="green"><bounds x="0" y="4" width="1" height="1" /></bezel> |
| 27 | | <bezel name="lamp3" element="green"><bounds x="0" y="6" width="1" height="1" /></bezel> |
| 28 | | <bezel name="lamp4" element="green"><bounds x="0" y="8" width="1" height="1" /></bezel> |
| 29 | | <bezel name="lamp5" element="green"><bounds x="0" y="10" width="1" height="1" /></bezel> |
| 30 | | <bezel name="lamp6" element="green"><bounds x="0" y="12" width="1" height="1" /></bezel> |
| 31 | | <bezel name="lamp7" element="green"><bounds x="0" y="14" width="1" height="1" /></bezel> |
| 32 | | <bezel name="lamp8" element="green"><bounds x="0" y="16" width="1" height="1" /></bezel> |
| 33 | | <bezel name="lamp9" element="green"><bounds x="0" y="18" width="1" height="1" /></bezel> |
| 34 | | <bezel name="lamp10" element="green"><bounds x="0" y="20" width="1" height="1" /></bezel> |
| 35 | | <bezel name="lamp11" element="green"><bounds x="0" y="22" width="1" height="1" /></bezel> |
| 36 | | |
| 37 | | <bezel name="lamp100" element="green"><bounds x="2" y="0" width="1" height="1" /></bezel> |
| 38 | | <bezel name="lamp101" element="green"><bounds x="2" y="2" width="1" height="1" /></bezel> |
| 39 | | <bezel name="lamp102" element="green"><bounds x="2" y="4" width="1" height="1" /></bezel> |
| 40 | | <bezel name="lamp103" element="green"><bounds x="2" y="6" width="1" height="1" /></bezel> |
| 41 | | <bezel name="lamp104" element="green"><bounds x="2" y="8" width="1" height="1" /></bezel> |
| 42 | | <bezel name="lamp105" element="green"><bounds x="2" y="10" width="1" height="1" /></bezel> |
| 43 | | <bezel name="lamp106" element="green"><bounds x="2" y="12" width="1" height="1" /></bezel> |
| 44 | | <bezel name="lamp107" element="green"><bounds x="2" y="14" width="1" height="1" /></bezel> |
| 45 | | <bezel name="lamp108" element="green"><bounds x="2" y="16" width="1" height="1" /></bezel> |
| 46 | | <bezel name="lamp109" element="green"><bounds x="2" y="18" width="1" height="1" /></bezel> |
| 47 | | <bezel name="lamp110" element="green"><bounds x="2" y="20" width="1" height="1" /></bezel> |
| 48 | | <bezel name="lamp111" element="green"><bounds x="2" y="22" width="1" height="1" /></bezel> |
| 49 | | |
| 50 | | <bezel name="lamp200" element="green"><bounds x="4" y="0" width="1" height="1" /></bezel> |
| 51 | | <bezel name="lamp201" element="green"><bounds x="4" y="2" width="1" height="1" /></bezel> |
| 52 | | <bezel name="lamp202" element="green"><bounds x="4" y="4" width="1" height="1" /></bezel> |
| 53 | | <bezel name="lamp203" element="green"><bounds x="4" y="6" width="1" height="1" /></bezel> |
| 54 | | <bezel name="lamp204" element="green"><bounds x="4" y="8" width="1" height="1" /></bezel> |
| 55 | | <bezel name="lamp205" element="green"><bounds x="4" y="10" width="1" height="1" /></bezel> |
| 56 | | <bezel name="lamp206" element="green"><bounds x="4" y="12" width="1" height="1" /></bezel> |
| 57 | | <bezel name="lamp207" element="green"><bounds x="4" y="14" width="1" height="1" /></bezel> |
| 58 | | <bezel name="lamp208" element="green"><bounds x="4" y="16" width="1" height="1" /></bezel> |
| 59 | | <bezel name="lamp209" element="green"><bounds x="4" y="18" width="1" height="1" /></bezel> |
| 60 | | <bezel name="lamp210" element="green"><bounds x="4" y="20" width="1" height="1" /></bezel> |
| 61 | | <bezel name="lamp211" element="green"><bounds x="4" y="22" width="1" height="1" /></bezel> |
| 62 | | |
| 63 | | <bezel name="lamp300" element="green"><bounds x="6" y="0" width="1" height="1" /></bezel> |
| 64 | | <bezel name="lamp301" element="green"><bounds x="6" y="2" width="1" height="1" /></bezel> |
| 65 | | <bezel name="lamp302" element="green"><bounds x="6" y="4" width="1" height="1" /></bezel> |
| 66 | | <bezel name="lamp303" element="green"><bounds x="6" y="6" width="1" height="1" /></bezel> |
| 67 | | <bezel name="lamp304" element="green"><bounds x="6" y="8" width="1" height="1" /></bezel> |
| 68 | | <bezel name="lamp305" element="green"><bounds x="6" y="10" width="1" height="1" /></bezel> |
| 69 | | <bezel name="lamp306" element="green"><bounds x="6" y="12" width="1" height="1" /></bezel> |
| 70 | | <bezel name="lamp307" element="green"><bounds x="6" y="14" width="1" height="1" /></bezel> |
| 71 | | <bezel name="lamp308" element="green"><bounds x="6" y="16" width="1" height="1" /></bezel> |
| 72 | | <bezel name="lamp309" element="green"><bounds x="6" y="18" width="1" height="1" /></bezel> |
| 73 | | <bezel name="lamp310" element="green"><bounds x="6" y="20" width="1" height="1" /></bezel> |
| 74 | | <bezel name="lamp311" element="green"><bounds x="6" y="22" width="1" height="1" /></bezel> |
| 75 | | |
| 76 | | <bezel name="lamp400" element="green"><bounds x="8" y="0" width="1" height="1" /></bezel> |
| 77 | | <bezel name="lamp401" element="green"><bounds x="8" y="2" width="1" height="1" /></bezel> |
| 78 | | <bezel name="lamp402" element="green"><bounds x="8" y="4" width="1" height="1" /></bezel> |
| 79 | | <bezel name="lamp403" element="green"><bounds x="8" y="6" width="1" height="1" /></bezel> |
| 80 | | <bezel name="lamp404" element="green"><bounds x="8" y="8" width="1" height="1" /></bezel> |
| 81 | | <bezel name="lamp405" element="green"><bounds x="8" y="10" width="1" height="1" /></bezel> |
| 82 | | <bezel name="lamp406" element="green"><bounds x="8" y="12" width="1" height="1" /></bezel> |
| 83 | | <bezel name="lamp407" element="green"><bounds x="8" y="14" width="1" height="1" /></bezel> |
| 84 | | <bezel name="lamp408" element="green"><bounds x="8" y="16" width="1" height="1" /></bezel> |
| 85 | | <bezel name="lamp409" element="green"><bounds x="8" y="18" width="1" height="1" /></bezel> |
| 86 | | <bezel name="lamp410" element="green"><bounds x="8" y="20" width="1" height="1" /></bezel> |
| 87 | | <bezel name="lamp411" element="green"><bounds x="8" y="22" width="1" height="1" /></bezel> |
| 88 | | |
| 89 | | <bezel name="lamp500" element="green"><bounds x="10" y="0" width="1" height="1" /></bezel> |
| 90 | | <bezel name="lamp501" element="green"><bounds x="10" y="2" width="1" height="1" /></bezel> |
| 91 | | <bezel name="lamp502" element="green"><bounds x="10" y="4" width="1" height="1" /></bezel> |
| 92 | | <bezel name="lamp503" element="green"><bounds x="10" y="6" width="1" height="1" /></bezel> |
| 93 | | <bezel name="lamp504" element="green"><bounds x="10" y="8" width="1" height="1" /></bezel> |
| 94 | | <bezel name="lamp505" element="green"><bounds x="10" y="10" width="1" height="1" /></bezel> |
| 95 | | <bezel name="lamp506" element="green"><bounds x="10" y="12" width="1" height="1" /></bezel> |
| 96 | | <bezel name="lamp507" element="green"><bounds x="10" y="14" width="1" height="1" /></bezel> |
| 97 | | <bezel name="lamp508" element="green"><bounds x="10" y="16" width="1" height="1" /></bezel> |
| 98 | | <bezel name="lamp509" element="green"><bounds x="10" y="18" width="1" height="1" /></bezel> |
| 99 | | <bezel name="lamp510" element="green"><bounds x="10" y="20" width="1" height="1" /></bezel> |
| 100 | | <bezel name="lamp511" element="green"><bounds x="10" y="22" width="1" height="1" /></bezel> |
| 101 | | |
| 102 | | <bezel name="lamp600" element="green"><bounds x="12" y="0" width="1" height="1" /></bezel> |
| 103 | | <bezel name="lamp601" element="green"><bounds x="12" y="2" width="1" height="1" /></bezel> |
| 104 | | <bezel name="lamp602" element="green"><bounds x="12" y="4" width="1" height="1" /></bezel> |
| 105 | | <bezel name="lamp603" element="green"><bounds x="12" y="6" width="1" height="1" /></bezel> |
| 106 | | <bezel name="lamp604" element="green"><bounds x="12" y="8" width="1" height="1" /></bezel> |
| 107 | | <bezel name="lamp605" element="green"><bounds x="12" y="10" width="1" height="1" /></bezel> |
| 108 | | <bezel name="lamp606" element="green"><bounds x="12" y="12" width="1" height="1" /></bezel> |
| 109 | | <bezel name="lamp607" element="green"><bounds x="12" y="14" width="1" height="1" /></bezel> |
| 110 | | <bezel name="lamp608" element="green"><bounds x="12" y="16" width="1" height="1" /></bezel> |
| 111 | | <bezel name="lamp609" element="green"><bounds x="12" y="18" width="1" height="1" /></bezel> |
| 112 | | <bezel name="lamp610" element="green"><bounds x="12" y="20" width="1" height="1" /></bezel> |
| 113 | | <bezel name="lamp611" element="green"><bounds x="12" y="22" width="1" height="1" /></bezel> |
| 114 | | |
| 115 | | <bezel name="lamp700" element="green"><bounds x="14" y="0" width="1" height="1" /></bezel> |
| 116 | | <bezel name="lamp701" element="green"><bounds x="14" y="2" width="1" height="1" /></bezel> |
| 117 | | <bezel name="lamp702" element="green"><bounds x="14" y="4" width="1" height="1" /></bezel> |
| 118 | | <bezel name="lamp703" element="green"><bounds x="14" y="6" width="1" height="1" /></bezel> |
| 119 | | <bezel name="lamp704" element="green"><bounds x="14" y="8" width="1" height="1" /></bezel> |
| 120 | | <bezel name="lamp705" element="green"><bounds x="14" y="10" width="1" height="1" /></bezel> |
| 121 | | <bezel name="lamp706" element="green"><bounds x="14" y="12" width="1" height="1" /></bezel> |
| 122 | | <bezel name="lamp707" element="green"><bounds x="14" y="14" width="1" height="1" /></bezel> |
| 123 | | <bezel name="lamp708" element="green"><bounds x="14" y="16" width="1" height="1" /></bezel> |
| 124 | | <bezel name="lamp709" element="green"><bounds x="14" y="18" width="1" height="1" /></bezel> |
| 125 | | <bezel name="lamp710" element="green"><bounds x="14" y="20" width="1" height="1" /></bezel> |
| 126 | | <bezel name="lamp711" element="green"><bounds x="14" y="22" width="1" height="1" /></bezel> |
| 127 | | |
| 128 | | <bezel name="lamp800" element="green"><bounds x="16" y="0" width="1" height="1" /></bezel> |
| 129 | | <bezel name="lamp801" element="green"><bounds x="16" y="2" width="1" height="1" /></bezel> |
| 130 | | <bezel name="lamp802" element="green"><bounds x="16" y="4" width="1" height="1" /></bezel> |
| 131 | | <bezel name="lamp803" element="green"><bounds x="16" y="6" width="1" height="1" /></bezel> |
| 132 | | <bezel name="lamp804" element="green"><bounds x="16" y="8" width="1" height="1" /></bezel> |
| 133 | | <bezel name="lamp805" element="green"><bounds x="16" y="10" width="1" height="1" /></bezel> |
| 134 | | <bezel name="lamp806" element="green"><bounds x="16" y="12" width="1" height="1" /></bezel> |
| 135 | | <bezel name="lamp807" element="green"><bounds x="16" y="14" width="1" height="1" /></bezel> |
| 136 | | <bezel name="lamp808" element="green"><bounds x="16" y="16" width="1" height="1" /></bezel> |
| 137 | | <bezel name="lamp809" element="green"><bounds x="16" y="18" width="1" height="1" /></bezel> |
| 138 | | <bezel name="lamp810" element="green"><bounds x="16" y="20" width="1" height="1" /></bezel> |
| 139 | | <bezel name="lamp811" element="green"><bounds x="16" y="22" width="1" height="1" /></bezel> |
| 140 | | |
| 141 | | <bezel name="lamp900" element="green"><bounds x="18" y="0" width="1" height="1" /></bezel> |
| 142 | | <bezel name="lamp901" element="green"><bounds x="18" y="2" width="1" height="1" /></bezel> |
| 143 | | <bezel name="lamp902" element="green"><bounds x="18" y="4" width="1" height="1" /></bezel> |
| 144 | | <bezel name="lamp903" element="green"><bounds x="18" y="6" width="1" height="1" /></bezel> |
| 145 | | <bezel name="lamp904" element="green"><bounds x="18" y="8" width="1" height="1" /></bezel> |
| 146 | | <bezel name="lamp905" element="green"><bounds x="18" y="10" width="1" height="1" /></bezel> |
| 147 | | <bezel name="lamp906" element="green"><bounds x="18" y="12" width="1" height="1" /></bezel> |
| 148 | | <bezel name="lamp907" element="green"><bounds x="18" y="14" width="1" height="1" /></bezel> |
| 149 | | <bezel name="lamp908" element="green"><bounds x="18" y="16" width="1" height="1" /></bezel> |
| 150 | | <bezel name="lamp909" element="green"><bounds x="18" y="18" width="1" height="1" /></bezel> |
| 151 | | <bezel name="lamp910" element="green"><bounds x="18" y="20" width="1" height="1" /></bezel> |
| 152 | | <bezel name="lamp911" element="green"><bounds x="18" y="22" width="1" height="1" /></bezel> |
| 153 | | |
| 154 | | <bezel name="lamp1000" element="green"><bounds x="20" y="0" width="1" height="1" /></bezel> |
| 155 | | <bezel name="lamp1001" element="green"><bounds x="20" y="2" width="1" height="1" /></bezel> |
| 156 | | <bezel name="lamp1002" element="green"><bounds x="20" y="4" width="1" height="1" /></bezel> |
| 157 | | <bezel name="lamp1003" element="green"><bounds x="20" y="6" width="1" height="1" /></bezel> |
| 158 | | <bezel name="lamp1004" element="green"><bounds x="20" y="8" width="1" height="1" /></bezel> |
| 159 | | <bezel name="lamp1005" element="green"><bounds x="20" y="10" width="1" height="1" /></bezel> |
| 160 | | <bezel name="lamp1006" element="green"><bounds x="20" y="12" width="1" height="1" /></bezel> |
| 161 | | <bezel name="lamp1007" element="green"><bounds x="20" y="14" width="1" height="1" /></bezel> |
| 162 | | <bezel name="lamp1008" element="green"><bounds x="20" y="16" width="1" height="1" /></bezel> |
| 163 | | <bezel name="lamp1009" element="green"><bounds x="20" y="18" width="1" height="1" /></bezel> |
| 164 | | <bezel name="lamp1010" element="green"><bounds x="20" y="20" width="1" height="1" /></bezel> |
| 165 | | <bezel name="lamp1011" element="green"><bounds x="20" y="22" width="1" height="1" /></bezel> |
| 166 | | |
| 167 | | <bezel name="lamp1100" element="green"><bounds x="22" y="0" width="1" height="1" /></bezel> |
| 168 | | <bezel name="lamp1101" element="green"><bounds x="22" y="2" width="1" height="1" /></bezel> |
| 169 | | <bezel name="lamp1102" element="green"><bounds x="22" y="4" width="1" height="1" /></bezel> |
| 170 | | <bezel name="lamp1103" element="green"><bounds x="22" y="6" width="1" height="1" /></bezel> |
| 171 | | <bezel name="lamp1104" element="green"><bounds x="22" y="8" width="1" height="1" /></bezel> |
| 172 | | <bezel name="lamp1105" element="green"><bounds x="22" y="10" width="1" height="1" /></bezel> |
| 173 | | <bezel name="lamp1106" element="green"><bounds x="22" y="12" width="1" height="1" /></bezel> |
| 174 | | <bezel name="lamp1107" element="green"><bounds x="22" y="14" width="1" height="1" /></bezel> |
| 175 | | <bezel name="lamp1108" element="green"><bounds x="22" y="16" width="1" height="1" /></bezel> |
| 176 | | <bezel name="lamp1109" element="green"><bounds x="22" y="18" width="1" height="1" /></bezel> |
| 177 | | <bezel name="lamp1110" element="green"><bounds x="22" y="20" width="1" height="1" /></bezel> |
| 178 | | <bezel name="lamp1111" element="green"><bounds x="22" y="22" width="1" height="1" /></bezel> |
| 179 | | |
| 180 | | |
| 181 | 18 | </view> |
| 182 | 19 | </mamelayout> |
trunk/src/mess/layout/wildfire.lay
| r243483 | r243484 | |
| 16 | 16 | |
| 17 | 17 | <!-- build screen --> |
| 18 | 18 | |
| 19 | | <view name="Test Layout"> |
| 19 | <view name="Internal Layout"> |
| 20 | 20 | <bounds left="0" right="100" top="0" bottom="100" /> |
| 21 | 21 | <bezel element="static_black"> |
| 22 | 22 | <bounds left="0" right="100" top="0" bottom="100" /> |
| r243483 | r243484 | |
| 26 | 26 | <bezel name="digit1" element="digit"><bounds x="10" y="0" width="10" height="15" /></bezel> |
| 27 | 27 | <bezel name="digit2" element="digit"><bounds x="20" y="0" width="10" height="15" /></bezel> |
| 28 | 28 | |
| 29 | | <bezel name="lamp0" element="led"><bounds x="0" y="20" width="1" height="1" /></bezel> |
| 30 | | <bezel name="lamp1" element="led"><bounds x="2" y="20" width="1" height="1" /></bezel> |
| 31 | | <bezel name="lamp2" element="led"><bounds x="4" y="20" width="1" height="1" /></bezel> |
| 32 | | <bezel name="lamp3" element="led"><bounds x="6" y="20" width="1" height="1" /></bezel> |
| 33 | | <bezel name="lamp4" element="led"><bounds x="8" y="20" width="1" height="1" /></bezel> |
| 34 | | <bezel name="lamp5" element="led"><bounds x="10" y="20" width="1" height="1" /></bezel> |
| 35 | | <bezel name="lamp6" element="led"><bounds x="12" y="20" width="1" height="1" /></bezel> |
| 36 | | <bezel name="lamp7" element="led"><bounds x="14" y="20" width="1" height="1" /></bezel> |
| 29 | <bezel name="lamp30" element="led"><bounds x="0" y="20" width="1" height="1" /></bezel> |
| 30 | <bezel name="lamp31" element="led"><bounds x="2" y="20" width="1" height="1" /></bezel> |
| 31 | <bezel name="lamp32" element="led"><bounds x="4" y="20" width="1" height="1" /></bezel> |
| 32 | <bezel name="lamp33" element="led"><bounds x="6" y="20" width="1" height="1" /></bezel> |
| 33 | <bezel name="lamp34" element="led"><bounds x="8" y="20" width="1" height="1" /></bezel> |
| 34 | <bezel name="lamp35" element="led"><bounds x="10" y="20" width="1" height="1" /></bezel> |
| 35 | <bezel name="lamp36" element="led"><bounds x="12" y="20" width="1" height="1" /></bezel> |
| 36 | <bezel name="lamp37" element="led"><bounds x="14" y="20" width="1" height="1" /></bezel> |
| 37 | 37 | |
| 38 | | <bezel name="lamp10" element="led"><bounds x="0" y="22" width="1" height="1" /></bezel> |
| 39 | | <bezel name="lamp11" element="led"><bounds x="2" y="22" width="1" height="1" /></bezel> |
| 40 | | <bezel name="lamp12" element="led"><bounds x="4" y="22" width="1" height="1" /></bezel> |
| 41 | | <bezel name="lamp13" element="led"><bounds x="6" y="22" width="1" height="1" /></bezel> |
| 42 | | <bezel name="lamp14" element="led"><bounds x="8" y="22" width="1" height="1" /></bezel> |
| 43 | | <bezel name="lamp15" element="led"><bounds x="10" y="22" width="1" height="1" /></bezel> |
| 44 | | <bezel name="lamp16" element="led"><bounds x="12" y="22" width="1" height="1" /></bezel> |
| 45 | | <bezel name="lamp17" element="led"><bounds x="14" y="22" width="1" height="1" /></bezel> |
| 38 | <bezel name="lamp40" element="led"><bounds x="0" y="22" width="1" height="1" /></bezel> |
| 39 | <bezel name="lamp41" element="led"><bounds x="2" y="22" width="1" height="1" /></bezel> |
| 40 | <bezel name="lamp42" element="led"><bounds x="4" y="22" width="1" height="1" /></bezel> |
| 41 | <bezel name="lamp43" element="led"><bounds x="6" y="22" width="1" height="1" /></bezel> |
| 42 | <bezel name="lamp44" element="led"><bounds x="8" y="22" width="1" height="1" /></bezel> |
| 43 | <bezel name="lamp45" element="led"><bounds x="10" y="22" width="1" height="1" /></bezel> |
| 44 | <bezel name="lamp46" element="led"><bounds x="12" y="22" width="1" height="1" /></bezel> |
| 45 | <bezel name="lamp47" element="led"><bounds x="14" y="22" width="1" height="1" /></bezel> |
| 46 | 46 | |
| 47 | | <bezel name="lamp20" element="led"><bounds x="0" y="24" width="1" height="1" /></bezel> |
| 48 | | <bezel name="lamp21" element="led"><bounds x="2" y="24" width="1" height="1" /></bezel> |
| 49 | | <bezel name="lamp22" element="led"><bounds x="4" y="24" width="1" height="1" /></bezel> |
| 50 | | <bezel name="lamp23" element="led"><bounds x="6" y="24" width="1" height="1" /></bezel> |
| 51 | | <bezel name="lamp24" element="led"><bounds x="8" y="24" width="1" height="1" /></bezel> |
| 52 | | <bezel name="lamp25" element="led"><bounds x="10" y="24" width="1" height="1" /></bezel> |
| 53 | | <bezel name="lamp26" element="led"><bounds x="12" y="24" width="1" height="1" /></bezel> |
| 54 | | <bezel name="lamp27" element="led"><bounds x="14" y="24" width="1" height="1" /></bezel> |
| 47 | <bezel name="lamp50" element="led"><bounds x="0" y="24" width="1" height="1" /></bezel> |
| 48 | <bezel name="lamp51" element="led"><bounds x="2" y="24" width="1" height="1" /></bezel> |
| 49 | <bezel name="lamp52" element="led"><bounds x="4" y="24" width="1" height="1" /></bezel> |
| 50 | <bezel name="lamp53" element="led"><bounds x="6" y="24" width="1" height="1" /></bezel> |
| 51 | <bezel name="lamp54" element="led"><bounds x="8" y="24" width="1" height="1" /></bezel> |
| 52 | <bezel name="lamp55" element="led"><bounds x="10" y="24" width="1" height="1" /></bezel> |
| 53 | <bezel name="lamp56" element="led"><bounds x="12" y="24" width="1" height="1" /></bezel> |
| 54 | <bezel name="lamp57" element="led"><bounds x="14" y="24" width="1" height="1" /></bezel> |
| 55 | 55 | |
| 56 | | <bezel name="lamp30" element="led"><bounds x="0" y="26" width="1" height="1" /></bezel> |
| 57 | | <bezel name="lamp31" element="led"><bounds x="2" y="26" width="1" height="1" /></bezel> |
| 58 | | <bezel name="lamp32" element="led"><bounds x="4" y="26" width="1" height="1" /></bezel> |
| 59 | | <bezel name="lamp33" element="led"><bounds x="6" y="26" width="1" height="1" /></bezel> |
| 60 | | <bezel name="lamp34" element="led"><bounds x="8" y="26" width="1" height="1" /></bezel> |
| 61 | | <bezel name="lamp35" element="led"><bounds x="10" y="26" width="1" height="1" /></bezel> |
| 62 | | <bezel name="lamp36" element="led"><bounds x="12" y="26" width="1" height="1" /></bezel> |
| 63 | | <bezel name="lamp37" element="led"><bounds x="14" y="26" width="1" height="1" /></bezel> |
| 56 | <bezel name="lamp60" element="led"><bounds x="0" y="26" width="1" height="1" /></bezel> |
| 57 | <bezel name="lamp61" element="led"><bounds x="2" y="26" width="1" height="1" /></bezel> |
| 58 | <bezel name="lamp62" element="led"><bounds x="4" y="26" width="1" height="1" /></bezel> |
| 59 | <bezel name="lamp63" element="led"><bounds x="6" y="26" width="1" height="1" /></bezel> |
| 60 | <bezel name="lamp64" element="led"><bounds x="8" y="26" width="1" height="1" /></bezel> |
| 61 | <bezel name="lamp65" element="led"><bounds x="10" y="26" width="1" height="1" /></bezel> |
| 62 | <bezel name="lamp66" element="led"><bounds x="12" y="26" width="1" height="1" /></bezel> |
| 63 | <bezel name="lamp67" element="led"><bounds x="14" y="26" width="1" height="1" /></bezel> |
| 64 | 64 | |
| 65 | | <bezel name="lamp40" element="led"><bounds x="0" y="28" width="1" height="1" /></bezel> |
| 66 | | <bezel name="lamp41" element="led"><bounds x="2" y="28" width="1" height="1" /></bezel> |
| 67 | | <bezel name="lamp42" element="led"><bounds x="4" y="28" width="1" height="1" /></bezel> |
| 68 | | <bezel name="lamp43" element="led"><bounds x="6" y="28" width="1" height="1" /></bezel> |
| 69 | | <bezel name="lamp44" element="led"><bounds x="8" y="28" width="1" height="1" /></bezel> |
| 70 | | <bezel name="lamp45" element="led"><bounds x="10" y="28" width="1" height="1" /></bezel> |
| 71 | | <bezel name="lamp46" element="led"><bounds x="12" y="28" width="1" height="1" /></bezel> |
| 72 | | <bezel name="lamp47" element="led"><bounds x="14" y="28" width="1" height="1" /></bezel> |
| 65 | <bezel name="lamp70" element="led"><bounds x="0" y="28" width="1" height="1" /></bezel> |
| 66 | <bezel name="lamp71" element="led"><bounds x="2" y="28" width="1" height="1" /></bezel> |
| 67 | <bezel name="lamp72" element="led"><bounds x="4" y="28" width="1" height="1" /></bezel> |
| 68 | <bezel name="lamp73" element="led"><bounds x="6" y="28" width="1" height="1" /></bezel> |
| 69 | <bezel name="lamp74" element="led"><bounds x="8" y="28" width="1" height="1" /></bezel> |
| 70 | <bezel name="lamp75" element="led"><bounds x="10" y="28" width="1" height="1" /></bezel> |
| 71 | <bezel name="lamp76" element="led"><bounds x="12" y="28" width="1" height="1" /></bezel> |
| 72 | <bezel name="lamp77" element="led"><bounds x="14" y="28" width="1" height="1" /></bezel> |
| 73 | 73 | |
| 74 | | <bezel name="lamp50" element="led"><bounds x="0" y="30" width="1" height="1" /></bezel> |
| 75 | | <bezel name="lamp51" element="led"><bounds x="2" y="30" width="1" height="1" /></bezel> |
| 76 | | <bezel name="lamp52" element="led"><bounds x="4" y="30" width="1" height="1" /></bezel> |
| 77 | | <bezel name="lamp53" element="led"><bounds x="6" y="30" width="1" height="1" /></bezel> |
| 78 | | <bezel name="lamp54" element="led"><bounds x="8" y="30" width="1" height="1" /></bezel> |
| 79 | | <bezel name="lamp55" element="led"><bounds x="10" y="30" width="1" height="1" /></bezel> |
| 80 | | <bezel name="lamp56" element="led"><bounds x="12" y="30" width="1" height="1" /></bezel> |
| 81 | | <bezel name="lamp57" element="led"><bounds x="14" y="30" width="1" height="1" /></bezel> |
| 74 | <bezel name="lamp80" element="led"><bounds x="0" y="30" width="1" height="1" /></bezel> |
| 75 | <bezel name="lamp81" element="led"><bounds x="2" y="30" width="1" height="1" /></bezel> |
| 76 | <bezel name="lamp82" element="led"><bounds x="4" y="30" width="1" height="1" /></bezel> |
| 77 | <bezel name="lamp83" element="led"><bounds x="6" y="30" width="1" height="1" /></bezel> |
| 78 | <bezel name="lamp84" element="led"><bounds x="8" y="30" width="1" height="1" /></bezel> |
| 79 | <bezel name="lamp85" element="led"><bounds x="10" y="30" width="1" height="1" /></bezel> |
| 80 | <bezel name="lamp86" element="led"><bounds x="12" y="30" width="1" height="1" /></bezel> |
| 81 | <bezel name="lamp87" element="led"><bounds x="14" y="30" width="1" height="1" /></bezel> |
| 82 | 82 | |
| 83 | | <bezel name="lamp60" element="led"><bounds x="0" y="32" width="1" height="1" /></bezel> |
| 84 | | <bezel name="lamp61" element="led"><bounds x="2" y="32" width="1" height="1" /></bezel> |
| 85 | | <bezel name="lamp62" element="led"><bounds x="4" y="32" width="1" height="1" /></bezel> |
| 86 | | <bezel name="lamp63" element="led"><bounds x="6" y="32" width="1" height="1" /></bezel> |
| 87 | | <bezel name="lamp64" element="led"><bounds x="8" y="32" width="1" height="1" /></bezel> |
| 88 | | <bezel name="lamp65" element="led"><bounds x="10" y="32" width="1" height="1" /></bezel> |
| 89 | | <bezel name="lamp66" element="led"><bounds x="12" y="32" width="1" height="1" /></bezel> |
| 90 | | <bezel name="lamp67" element="led"><bounds x="14" y="32" width="1" height="1" /></bezel> |
| 83 | <bezel name="lamp90" element="led"><bounds x="0" y="32" width="1" height="1" /></bezel> |
| 84 | <bezel name="lamp91" element="led"><bounds x="2" y="32" width="1" height="1" /></bezel> |
| 85 | <bezel name="lamp92" element="led"><bounds x="4" y="32" width="1" height="1" /></bezel> |
| 86 | <bezel name="lamp93" element="led"><bounds x="6" y="32" width="1" height="1" /></bezel> |
| 87 | <bezel name="lamp94" element="led"><bounds x="8" y="32" width="1" height="1" /></bezel> |
| 88 | <bezel name="lamp95" element="led"><bounds x="10" y="32" width="1" height="1" /></bezel> |
| 89 | <bezel name="lamp96" element="led"><bounds x="12" y="32" width="1" height="1" /></bezel> |
| 90 | <bezel name="lamp97" element="led"><bounds x="14" y="32" width="1" height="1" /></bezel> |
| 91 | 91 | |
| 92 | | <bezel name="lamp70" element="led"><bounds x="0" y="34" width="1" height="1" /></bezel> |
| 93 | | <bezel name="lamp71" element="led"><bounds x="2" y="34" width="1" height="1" /></bezel> |
| 94 | | <bezel name="lamp72" element="led"><bounds x="4" y="34" width="1" height="1" /></bezel> |
| 95 | | <bezel name="lamp73" element="led"><bounds x="6" y="34" width="1" height="1" /></bezel> |
| 96 | | <bezel name="lamp74" element="led"><bounds x="8" y="34" width="1" height="1" /></bezel> |
| 97 | | <bezel name="lamp75" element="led"><bounds x="10" y="34" width="1" height="1" /></bezel> |
| 98 | | <bezel name="lamp76" element="led"><bounds x="12" y="34" width="1" height="1" /></bezel> |
| 99 | | <bezel name="lamp77" element="led"><bounds x="14" y="34" width="1" height="1" /></bezel> |
| 92 | <bezel name="lamp100" element="led"><bounds x="0" y="34" width="1" height="1" /></bezel> |
| 93 | <bezel name="lamp101" element="led"><bounds x="2" y="34" width="1" height="1" /></bezel> |
| 94 | <bezel name="lamp102" element="led"><bounds x="4" y="34" width="1" height="1" /></bezel> |
| 95 | <bezel name="lamp103" element="led"><bounds x="6" y="34" width="1" height="1" /></bezel> |
| 96 | <bezel name="lamp104" element="led"><bounds x="8" y="34" width="1" height="1" /></bezel> |
| 97 | <bezel name="lamp105" element="led"><bounds x="10" y="34" width="1" height="1" /></bezel> |
| 98 | <bezel name="lamp106" element="led"><bounds x="12" y="34" width="1" height="1" /></bezel> |
| 99 | <bezel name="lamp107" element="led"><bounds x="14" y="34" width="1" height="1" /></bezel> |
| 100 | 100 | |
| 101 | | <bezel name="lamp80" element="led"><bounds x="0" y="36" width="1" height="1" /></bezel> |
| 102 | | <bezel name="lamp81" element="led"><bounds x="2" y="36" width="1" height="1" /></bezel> |
| 103 | | <bezel name="lamp82" element="led"><bounds x="4" y="36" width="1" height="1" /></bezel> |
| 104 | | <bezel name="lamp83" element="led"><bounds x="6" y="36" width="1" height="1" /></bezel> |
| 105 | | <bezel name="lamp84" element="led"><bounds x="8" y="36" width="1" height="1" /></bezel> |
| 106 | | <bezel name="lamp85" element="led"><bounds x="10" y="36" width="1" height="1" /></bezel> |
| 107 | | <bezel name="lamp86" element="led"><bounds x="12" y="36" width="1" height="1" /></bezel> |
| 108 | | <bezel name="lamp87" element="led"><bounds x="14" y="36" width="1" height="1" /></bezel> |
| 101 | <bezel name="lamp110" element="led"><bounds x="0" y="36" width="1" height="1" /></bezel> |
| 102 | <bezel name="lamp111" element="led"><bounds x="2" y="36" width="1" height="1" /></bezel> |
| 103 | <bezel name="lamp112" element="led"><bounds x="4" y="36" width="1" height="1" /></bezel> |
| 104 | <bezel name="lamp113" element="led"><bounds x="6" y="36" width="1" height="1" /></bezel> |
| 105 | <bezel name="lamp114" element="led"><bounds x="8" y="36" width="1" height="1" /></bezel> |
| 106 | <bezel name="lamp115" element="led"><bounds x="10" y="36" width="1" height="1" /></bezel> |
| 107 | <bezel name="lamp116" element="led"><bounds x="12" y="36" width="1" height="1" /></bezel> |
| 108 | <bezel name="lamp117" element="led"><bounds x="14" y="36" width="1" height="1" /></bezel> |
| 109 | 109 | |
| 110 | | <bezel name="lamp90" element="led"><bounds x="0" y="38" width="1" height="1" /></bezel> |
| 111 | | <bezel name="lamp91" element="led"><bounds x="2" y="38" width="1" height="1" /></bezel> |
| 112 | | <bezel name="lamp92" element="led"><bounds x="4" y="38" width="1" height="1" /></bezel> |
| 113 | | <bezel name="lamp93" element="led"><bounds x="6" y="38" width="1" height="1" /></bezel> |
| 114 | | <bezel name="lamp94" element="led"><bounds x="8" y="38" width="1" height="1" /></bezel> |
| 115 | | <bezel name="lamp95" element="led"><bounds x="10" y="38" width="1" height="1" /></bezel> |
| 116 | | <bezel name="lamp96" element="led"><bounds x="12" y="38" width="1" height="1" /></bezel> |
| 117 | | <bezel name="lamp97" element="led"><bounds x="14" y="38" width="1" height="1" /></bezel> |
| 110 | <bezel name="lamp120" element="led"><bounds x="0" y="40" width="1" height="1" /></bezel> |
| 111 | <bezel name="lamp121" element="led"><bounds x="2" y="40" width="1" height="1" /></bezel> |
| 112 | <bezel name="lamp122" element="led"><bounds x="4" y="40" width="1" height="1" /></bezel> |
| 113 | <bezel name="lamp123" element="led"><bounds x="6" y="40" width="1" height="1" /></bezel> |
| 114 | <bezel name="lamp124" element="led"><bounds x="8" y="40" width="1" height="1" /></bezel> |
| 115 | <bezel name="lamp125" element="led"><bounds x="10" y="40" width="1" height="1" /></bezel> |
| 116 | <bezel name="lamp126" element="led"><bounds x="12" y="40" width="1" height="1" /></bezel> |
| 117 | <bezel name="lamp127" element="led"><bounds x="14" y="40" width="1" height="1" /></bezel> |
| 118 | 118 | |
| 119 | | <bezel name="lamp100" element="led"><bounds x="0" y="40" width="1" height="1" /></bezel> |
| 120 | | <bezel name="lamp101" element="led"><bounds x="2" y="40" width="1" height="1" /></bezel> |
| 121 | | <bezel name="lamp102" element="led"><bounds x="4" y="40" width="1" height="1" /></bezel> |
| 122 | | <bezel name="lamp103" element="led"><bounds x="6" y="40" width="1" height="1" /></bezel> |
| 123 | | <bezel name="lamp104" element="led"><bounds x="8" y="40" width="1" height="1" /></bezel> |
| 124 | | <bezel name="lamp105" element="led"><bounds x="10" y="40" width="1" height="1" /></bezel> |
| 125 | | <bezel name="lamp106" element="led"><bounds x="12" y="40" width="1" height="1" /></bezel> |
| 126 | | <bezel name="lamp107" element="led"><bounds x="14" y="40" width="1" height="1" /></bezel> |
| 119 | <bezel name="lamp7" element="led"><bounds x="0" y="42" width="1" height="1" /></bezel> |
| 120 | <bezel name="lamp17" element="led"><bounds x="2" y="42" width="1" height="1" /></bezel> |
| 121 | <bezel name="lamp27" element="led"><bounds x="4" y="42" width="1" height="1" /></bezel> |
| 127 | 122 | |
| 128 | | <bezel name="lamp110" element="led"><bounds x="0" y="42" width="1" height="1" /></bezel> |
| 129 | | <bezel name="lamp111" element="led"><bounds x="2" y="42" width="1" height="1" /></bezel> |
| 130 | | <bezel name="lamp112" element="led"><bounds x="4" y="42" width="1" height="1" /></bezel> |
| 131 | | <bezel name="lamp113" element="led"><bounds x="6" y="42" width="1" height="1" /></bezel> |
| 132 | | <bezel name="lamp114" element="led"><bounds x="8" y="42" width="1" height="1" /></bezel> |
| 133 | | <bezel name="lamp115" element="led"><bounds x="10" y="42" width="1" height="1" /></bezel> |
| 134 | | <bezel name="lamp116" element="led"><bounds x="12" y="42" width="1" height="1" /></bezel> |
| 135 | | <bezel name="lamp117" element="led"><bounds x="14" y="42" width="1" height="1" /></bezel> |
| 136 | | |
| 137 | | <bezel name="lamp120" element="led"><bounds x="0" y="44" width="1" height="1" /></bezel> |
| 138 | | <bezel name="lamp121" element="led"><bounds x="2" y="44" width="1" height="1" /></bezel> |
| 139 | | <bezel name="lamp122" element="led"><bounds x="4" y="44" width="1" height="1" /></bezel> |
| 140 | | <bezel name="lamp123" element="led"><bounds x="6" y="44" width="1" height="1" /></bezel> |
| 141 | | <bezel name="lamp124" element="led"><bounds x="8" y="44" width="1" height="1" /></bezel> |
| 142 | | <bezel name="lamp125" element="led"><bounds x="10" y="44" width="1" height="1" /></bezel> |
| 143 | | <bezel name="lamp126" element="led"><bounds x="12" y="44" width="1" height="1" /></bezel> |
| 144 | | <bezel name="lamp127" element="led"><bounds x="14" y="44" width="1" height="1" /></bezel> |
| 145 | | |
| 146 | 123 | </view> |
| 147 | 124 | </mamelayout> |
trunk/src/mess/machine/mbee.c
| r243483 | r243484 | |
| 72 | 72 | |
| 73 | 73 | if (m_cassette->input() > 0.03) data |= 1; |
| 74 | 74 | |
| 75 | | switch (m_io_config->read() & 0xc0) |
| 76 | | { |
| 77 | | case 0x00: |
| 78 | | data |= (UINT8)m_b7_vs << 7; |
| 79 | | break; |
| 80 | | case 0x40: |
| 81 | | data |= (UINT8)m_b7_rtc << 7; |
| 82 | | break; |
| 83 | | case 0x80: |
| 84 | | data |= 0x80; |
| 85 | | break; |
| 86 | | case 0xc0: |
| 87 | | data |= 0x80; // centronics busy line - FIXME |
| 88 | | break; |
| 89 | | } |
| 90 | | |
| 75 | data |= m_clock_pulse; |
| 91 | 76 | data |= m_mbee256_key_available; |
| 92 | 77 | |
| 78 | m_clock_pulse = 0; |
| 79 | |
| 93 | 80 | return data; |
| 94 | 81 | }; |
| 95 | 82 | |
| r243483 | r243484 | |
| 267 | 254 | return m_rtc->read(space, 1); |
| 268 | 255 | } |
| 269 | 256 | |
| 270 | | // This doesn't seem to do anything; the time works without it. |
| 271 | | TIMER_CALLBACK_MEMBER( mbee_state::mbee_rtc_irq ) |
| 257 | TIMER_CALLBACK_MEMBER(mbee_state::mbee_rtc_irq) |
| 272 | 258 | { |
| 273 | | UINT8 data = m_rtc->read(m_maincpu->space(AS_IO), 12); |
| 274 | | m_b7_rtc = (data) ? 1 : 0; |
| 275 | | |
| 276 | | if ((m_io_config->read() & 0xc0) == 0x40) // RTC selected in config menu |
| 277 | | m_pio->port_b_write(pio_port_b_r(generic_space(),0,0xff)); |
| 278 | | |
| 279 | | timer_set(attotime::from_hz(10), TIMER_MBEE_RTC_IRQ); |
| 259 | UINT8 data = m_rtc->read(m_maincpu->space(AS_PROGRAM), 12); |
| 260 | if (data) m_clock_pulse = 0x80; |
| 261 | timer_set(attotime::from_hz(1), TIMER_MBEE_RTC_IRQ); |
| 280 | 262 | } |
| 281 | 263 | |
| 282 | 264 | |
| r243483 | r243484 | |
| 290 | 272 | and (output = 22,21,20,19,18,17,16,15). The prom is also used to control |
| 291 | 273 | the refresh required by the dynamic rams, however we ignore this function. |
| 292 | 274 | |
| 293 | | b_mask = total dynamic ram (1=64k; 3=128k; 7=256k) |
| 294 | | |
| 295 | 275 | ************************************************************/ |
| 296 | 276 | |
| 297 | | void mbee_state::setup_banks(UINT8 data, bool first_time, UINT8 b_mask) |
| 277 | void mbee_state::mbee256_setup_banks(UINT8 data, bool first_time) |
| 298 | 278 | { |
| 299 | | data &= 0x3f; // (bits 0-5 are referred to as S0-S5) |
| 279 | // (bits 0-5 are referred to as S0-S5) |
| 300 | 280 | address_space &mem = m_maincpu->space(AS_PROGRAM); |
| 301 | | UINT8 *prom = memregion("pals")->base(); |
| 281 | UINT8 *prom = memregion("proms")->base(); |
| 302 | 282 | UINT8 b_data = BITSWAP8(data, 7,5,3,2,4,6,1,0) & 0x3b; // arrange data bits to S0,S1,-,S4,S2,S3 |
| 303 | 283 | UINT8 b_bank, b_byte, b_byte_t, b_addr, p_bank = 1; |
| 304 | 284 | UINT16 b_vid; |
| r243483 | r243484 | |
| 329 | 309 | if (!BIT(b_byte, 4)) |
| 330 | 310 | { |
| 331 | 311 | // select video |
| 332 | | if (m_is_premium) |
| 333 | | { |
| 334 | | mem.install_read_handler (b_vid, b_vid + 0x7ff, read8_delegate(FUNC(mbee_state::mbeeppc_low_r), this)); |
| 335 | | mem.install_read_handler (b_vid + 0x800, b_vid + 0xfff, read8_delegate(FUNC(mbee_state::mbeeppc_high_r), this)); |
| 336 | | } |
| 337 | | else |
| 338 | | { |
| 339 | | mem.install_read_handler (b_vid, b_vid + 0x7ff, read8_delegate(FUNC(mbee_state::mbee_low_r), this)); |
| 340 | | mem.install_read_handler (b_vid + 0x800, b_vid + 0xfff, read8_delegate(FUNC(mbee_state::mbeeic_high_r), this)); |
| 341 | | } |
| 312 | mem.install_read_handler (b_vid, b_vid + 0x7ff, read8_delegate(FUNC(mbee_state::mbeeppc_low_r), this)); |
| 313 | mem.install_read_handler (b_vid + 0x800, b_vid + 0xfff, read8_delegate(FUNC(mbee_state::mbeeppc_high_r), this)); |
| 342 | 314 | } |
| 343 | 315 | else |
| 344 | 316 | { |
| r243483 | r243484 | |
| 348 | 320 | if (!BIT(b_byte, 3)) |
| 349 | 321 | membank(banktag)->set_entry(64 + (b_bank & 3)); // read from rom |
| 350 | 322 | else |
| 351 | | membank(banktag)->set_entry((b_bank & 7) | ((b_byte & b_mask) << 3)); // ram |
| 323 | membank(banktag)->set_entry((b_bank & 7) | ((b_byte & 7) << 3)); // ram |
| 352 | 324 | } |
| 353 | 325 | } |
| 354 | 326 | p_bank++; |
| r243483 | r243484 | |
| 369 | 341 | if (!BIT(b_byte, 4)) |
| 370 | 342 | { |
| 371 | 343 | // select video |
| 372 | | if (m_is_premium) |
| 373 | | { |
| 374 | | mem.install_write_handler (b_vid, b_vid + 0x7ff, write8_delegate(FUNC(mbee_state::mbeeppc_low_w), this)); |
| 375 | | mem.install_write_handler (b_vid + 0x800, b_vid + 0xfff, write8_delegate(FUNC(mbee_state::mbeeppc_high_w), this)); |
| 376 | | } |
| 377 | | else |
| 378 | | { |
| 379 | | mem.install_write_handler (b_vid, b_vid + 0x7ff, write8_delegate(FUNC(mbee_state::mbee_low_w), this)); |
| 380 | | mem.install_write_handler (b_vid + 0x800, b_vid + 0xfff, write8_delegate(FUNC(mbee_state::mbeeic_high_w), this)); |
| 381 | | } |
| 344 | mem.install_write_handler (b_vid, b_vid + 0x7ff, write8_delegate(FUNC(mbee_state::mbeeppc_low_w), this)); |
| 345 | mem.install_write_handler (b_vid + 0x800, b_vid + 0xfff, write8_delegate(FUNC(mbee_state::mbeeppc_high_w), this)); |
| 382 | 346 | } |
| 383 | 347 | else |
| 384 | 348 | { |
| r243483 | r243484 | |
| 388 | 352 | if (!BIT(b_byte, 3)) |
| 389 | 353 | membank(banktag)->set_entry(64); // write to rom dummy area |
| 390 | 354 | else |
| 391 | | membank(banktag)->set_entry((b_bank & 7) | ((b_byte & b_mask) << 3)); // ram |
| 355 | membank(banktag)->set_entry((b_bank & 7) | ((b_byte & 7) << 3)); // ram |
| 392 | 356 | } |
| 393 | 357 | } |
| 394 | 358 | p_bank++; |
| r243483 | r243484 | |
| 398 | 362 | |
| 399 | 363 | WRITE8_MEMBER( mbee_state::mbee256_50_w ) |
| 400 | 364 | { |
| 401 | | setup_banks(data, 0, 7); |
| 365 | mbee256_setup_banks(data & 0x3f, 0); |
| 402 | 366 | } |
| 403 | 367 | |
| 404 | 368 | /*********************************************************** |
| r243483 | r243484 | |
| 416 | 380 | |
| 417 | 381 | WRITE8_MEMBER( mbee_state::mbee128_50_w ) |
| 418 | 382 | { |
| 419 | | setup_banks(data, 0, 3); |
| 383 | mbee256_setup_banks(data & 0x1f, 0); // S5 not used |
| 420 | 384 | } |
| 421 | 385 | |
| 386 | |
| 422 | 387 | /*********************************************************** |
| 423 | 388 | |
| 389 | 64k Memory Banking |
| 390 | |
| 391 | Bit 2 disables ROM, replacing it with RAM. |
| 392 | |
| 393 | Due to lack of documentation, it is not possible to know |
| 394 | if other bits are used. |
| 395 | |
| 396 | ************************************************************/ |
| 397 | |
| 398 | WRITE8_MEMBER( mbee_state::mbee64_50_w ) |
| 399 | { |
| 400 | if BIT(data, 2) |
| 401 | { |
| 402 | m_boot->set_entry(0); |
| 403 | m_bankl->set_entry(0); |
| 404 | m_bankh->set_entry(0); |
| 405 | } |
| 406 | else |
| 407 | { |
| 408 | m_bankl->set_entry(1); |
| 409 | m_bankh->set_entry(1); |
| 410 | } |
| 411 | } |
| 412 | |
| 413 | |
| 414 | /*********************************************************** |
| 415 | |
| 424 | 416 | ROM Banking on older models |
| 425 | 417 | |
| 426 | 418 | Set A to 0 or 1 then read the port to switch between the |
| r243483 | r243484 | |
| 497 | 489 | timer_set(attotime::from_usec(4), TIMER_MBEE_RESET); |
| 498 | 490 | } |
| 499 | 491 | |
| 492 | MACHINE_RESET_MEMBER( mbee_state, mbee64 ) |
| 493 | { |
| 494 | machine_reset_common_disk(); |
| 495 | m_boot->set_entry(1); |
| 496 | m_bankl->set_entry(1); |
| 497 | m_bankh->set_entry(1); |
| 498 | } |
| 499 | |
| 500 | 500 | MACHINE_RESET_MEMBER( mbee_state, mbee128 ) |
| 501 | 501 | { |
| 502 | 502 | machine_reset_common_disk(); |
| 503 | | setup_banks(0, 1, 3); // set banks to default |
| 503 | mbee256_setup_banks(0, 1); // set banks to default |
| 504 | 504 | m_maincpu->set_pc(0x8000); |
| 505 | 505 | } |
| 506 | 506 | |
| r243483 | r243484 | |
| 510 | 510 | for (i = 0; i < 15; i++) m_mbee256_was_pressed[i] = 0; |
| 511 | 511 | m_mbee256_q_pos = 0; |
| 512 | 512 | machine_reset_common_disk(); |
| 513 | | setup_banks(0, 1, 7); // set banks to default |
| 513 | mbee256_setup_banks(0, 1); // set banks to default |
| 514 | 514 | m_maincpu->set_pc(0x8000); |
| 515 | 515 | } |
| 516 | 516 | |
| r243483 | r243484 | |
| 540 | 540 | |
| 541 | 541 | /* once per frame, pulse the PIO B bit 7 - it is in the schematic as an option, |
| 542 | 542 | but need to find out what it does */ |
| 543 | | m_b7_busy = 0x80; |
| 543 | m_clock_pulse = 0x80; |
| 544 | 544 | irq0_line_hold(device); |
| 545 | 545 | |
| 546 | 546 | #endif |
| r243483 | r243484 | |
| 625 | 625 | m_size = 0xe000; |
| 626 | 626 | } |
| 627 | 627 | |
| 628 | DRIVER_INIT_MEMBER( mbee_state, mbee64 ) |
| 629 | { |
| 630 | UINT8 *RAM = memregion("maincpu")->base(); |
| 631 | m_boot->configure_entry(0, &RAM[0x0000]); |
| 632 | m_bankl->configure_entry(0, &RAM[0x1000]); |
| 633 | m_bankl->configure_entry(1, &RAM[0x9000]); |
| 634 | m_bankh->configure_entry(0, &RAM[0x8000]); |
| 635 | |
| 636 | RAM = memregion("bootrom")->base(); |
| 637 | m_bankh->configure_entry(1, &RAM[0x0000]); |
| 638 | m_boot->configure_entry(1, &RAM[0x0000]); |
| 639 | |
| 640 | m_size = 0xf000; |
| 641 | } |
| 642 | |
| 628 | 643 | DRIVER_INIT_MEMBER( mbee_state, mbee128 ) |
| 629 | 644 | { |
| 630 | 645 | UINT8 *RAM = memregion("rams")->base(); |
| r243483 | r243484 | |
| 641 | 656 | membank(banktag)->configure_entries(0, 32, &RAM[0x0000], 0x1000); // RAM banks |
| 642 | 657 | membank(banktag)->configure_entries(64, 1, &ROM[0x4000], 0x1000); // dummy rom |
| 643 | 658 | } |
| 659 | |
| 644 | 660 | m_size = 0x8000; |
| 645 | 661 | } |
| 646 | 662 | |
| r243483 | r243484 | |
| 701 | 717 | { |
| 702 | 718 | address_space &space = m_maincpu->space(AS_PROGRAM); |
| 703 | 719 | UINT16 i, j; |
| 704 | | UINT8 data, sw = m_io_config->read() & 1; /* reading the config switch: 1 = autorun */ |
| 720 | UINT8 data, sw = ioport("CONFIG")->read() & 1; /* reading the dipswitch: 1 = autorun */ |
| 705 | 721 | |
| 706 | 722 | if (!core_stricmp(image.filetype(), "mwb")) |
| 707 | 723 | { |
| r243483 | r243484 | |
| 802 | 818 | /* is this file executable? */ |
| 803 | 819 | if (execute_address != 0xffff) |
| 804 | 820 | { |
| 805 | | /* check to see if autorun is on */ |
| 806 | | autorun = m_io_config->read_safe(0xFF) & 1; |
| 821 | /* check to see if autorun is on (I hate how this works) */ |
| 822 | autorun = ioport("CONFIG")->read_safe(0xFF) & 1; |
| 807 | 823 | |
| 808 | 824 | address_space &space = m_maincpu->space(AS_PROGRAM); |
| 809 | 825 | |