trunk/src/mame/drivers/spinb.c
| r32199 | r32200 | |
| 4 | 4 | Spinball (previously Inder) |
| 5 | 5 | |
| 6 | 6 | Hardware is much the same as Inder, except the digital display is replaced by a DMD controlled by |
| 7 | | a i8031. |
| 7 | a i8031. You need to pick "Pixel Aspect (4:1)" video option in the tab menu. |
| 8 | 8 | |
| 9 | | Status |
| 10 | | - Verne's World has different hardware, does nothing |
| 11 | | - The others make a horrible noise when 5 pressed, nothing else, no display. |
| 12 | | - Code for inputs and outputs is wrong (copied from inder.c) |
| 13 | | - There are 2 sound cards (one for effects and one for music), however looks like they |
| 14 | | both receive the same commands? Diagram only shows J9 for sound control. |
| 15 | | - The DMD uses a i8031 but no luck getting it to do anything so far. |
| 16 | | - There are mistakes in the sound board schematic: IC14 pin12 goes to IC5 pin13 only. IC16 pin 22 |
| 17 | | is the CS0 line only. So, they are not joined but are separate tracks. Also, according to PinMAME, |
| 18 | | the outputs of IC11 are all wrong. They should be (from top to bottom): A16, A17, A18, NC, NC, |
| 19 | | CS2, CS1, CS0. |
| 9 | There are mistakes in the sound board schematic: IC14 pin12 goes to IC5 pin13 only. IC16 pin 22 |
| 10 | is the CS0 line only. So, they are not joined but are separate tracks. Also, according to PinMAME, |
| 11 | the outputs of IC11 are all wrong. They should be (from top to bottom): A16, A17, A18, NC, NC, |
| 12 | CS2, CS1, CS0. |
| 20 | 13 | |
| 14 | Also, very unobvious is the fact that PIA ports A and B are swapped around compared to the Inder |
| 15 | soundcard. |
| 21 | 16 | |
| 17 | Status |
| 18 | - Bushido: If you quickly press 5 you get a sound. |
| 19 | - Mach 2: Makes a sound if 5 pressed |
| 20 | - Jolly Park: Display flashes. After a few moments it plays music |
| 21 | - Verne's World: Display flashes for a second then goes blank. After a few moments music plays. |
| 22 | |
| 23 | ToDo: |
| 24 | - Inputs and outputs (copied from inder.c) |
| 25 | - DMD doesn't act on commands |
| 26 | - Electronic volume control on the music card |
| 27 | - Display on jolypark and vrnwrld has dots of 2 intensities |
| 28 | |
| 22 | 29 | ****************************************************************************************************/ |
| 23 | 30 | |
| 24 | 31 | #include "machine/genpin.h" |
| r32199 | r32200 | |
| 61 | 68 | DECLARE_WRITE8_MEMBER(ppi64c_w); |
| 62 | 69 | DECLARE_READ8_MEMBER(sw_r); |
| 63 | 70 | DECLARE_WRITE8_MEMBER(sw_w); |
| 71 | DECLARE_WRITE8_MEMBER(dmdram_w); |
| 72 | DECLARE_READ8_MEMBER(dmdram_r); |
| 64 | 73 | DECLARE_READ8_MEMBER(sndcmd_r); |
| 65 | 74 | DECLARE_WRITE8_MEMBER(sndbank_a_w); |
| 66 | 75 | DECLARE_WRITE8_MEMBER(sndbank_m_w); |
| r32199 | r32200 | |
| 73 | 82 | DECLARE_WRITE_LINE_MEMBER(ic5m_w); |
| 74 | 83 | DECLARE_WRITE_LINE_MEMBER(vck_a_w); |
| 75 | 84 | DECLARE_WRITE_LINE_MEMBER(vck_m_w); |
| 76 | | DECLARE_DRIVER_INIT(spinb); |
| 85 | DECLARE_DRIVER_INIT(game0); |
| 86 | DECLARE_DRIVER_INIT(game1); |
| 87 | DECLARE_DRIVER_INIT(game2); |
| 88 | UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 89 | //UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); |
| 77 | 90 | private: |
| 78 | 91 | bool m_pc0a; |
| 79 | 92 | bool m_pc0m; |
| r32199 | r32200 | |
| 81 | 94 | UINT8 m_portc_a; |
| 82 | 95 | UINT8 m_portc_m; |
| 83 | 96 | UINT8 m_row; |
| 84 | | UINT8 m_segment[8]; |
| 97 | UINT8 m_p3; |
| 98 | UINT8 m_p32; |
| 99 | UINT8 m_dmdcmd; |
| 100 | UINT8 m_dmdbank; |
| 101 | UINT8 m_dmdextaddr; |
| 102 | UINT8 m_dmdram[0x2000]; |
| 85 | 103 | UINT8 m_sndcmd; |
| 86 | 104 | UINT8 m_sndbank_a; |
| 87 | 105 | UINT8 m_sndbank_m; |
| r32199 | r32200 | |
| 89 | 107 | UINT32 m_sound_addr_m; |
| 90 | 108 | UINT8 *m_p_audio; |
| 91 | 109 | UINT8 *m_p_music; |
| 110 | UINT8 *m_p_dmdcpu; |
| 92 | 111 | virtual void machine_reset(); |
| 93 | 112 | required_device<cpu_device> m_maincpu; |
| 94 | 113 | required_device<cpu_device> m_audiocpu; |
| r32199 | r32200 | |
| 114 | 133 | AM_RANGE(0x6ce0, 0x6ce0) AM_WRITENOP |
| 115 | 134 | ADDRESS_MAP_END |
| 116 | 135 | |
| 136 | static ADDRESS_MAP_START( vrnwrld_map, AS_PROGRAM, 8, spinb_state ) |
| 137 | AM_RANGE(0x0000, 0x7fff) AM_ROM |
| 138 | AM_RANGE(0x8000, 0x9fff) AM_RAM AM_SHARE("nvram") // 6164, battery-backed |
| 139 | AM_RANGE(0xc000, 0xc003) AM_MIRROR(0x13fc) AM_DEVREADWRITE("ppi60", i8255_device, read, write) |
| 140 | AM_RANGE(0xc400, 0xc403) AM_MIRROR(0x13fc) AM_DEVREADWRITE("ppi64", i8255_device, read, write) |
| 141 | AM_RANGE(0xc800, 0xc803) AM_MIRROR(0x13fc) AM_DEVREADWRITE("ppi68", i8255_device, read, write) |
| 142 | AM_RANGE(0xcc00, 0xcc03) AM_MIRROR(0x131c) AM_DEVREADWRITE("ppi6c", i8255_device, read, write) |
| 143 | AM_RANGE(0xcc20, 0xcc3f) AM_MIRROR(0x1300) AM_WRITE(sndcmd_w) |
| 144 | AM_RANGE(0xcc40, 0xcc45) AM_MIRROR(0x1300) AM_WRITE(lamp1_w) |
| 145 | AM_RANGE(0xcc60, 0xcc60) AM_MIRROR(0x1300) AM_WRITE(disp_w) |
| 146 | AM_RANGE(0xcce0, 0xcce0) AM_WRITENOP |
| 147 | ADDRESS_MAP_END |
| 148 | |
| 117 | 149 | static ADDRESS_MAP_START( spinb_audio_map, AS_PROGRAM, 8, spinb_state ) |
| 118 | 150 | AM_RANGE(0x0000, 0x1fff) AM_ROM |
| 119 | 151 | AM_RANGE(0x2000, 0x3fff) AM_RAM // 6164 |
| r32199 | r32200 | |
| 136 | 168 | ADDRESS_MAP_END |
| 137 | 169 | |
| 138 | 170 | static ADDRESS_MAP_START(dmd_io, AS_IO, 8, spinb_state) |
| 139 | | AM_RANGE(0x0000, 0x1fff) AM_RAM |
| 171 | AM_RANGE(0x0000, 0x1fff) AM_WRITE(dmdram_w) |
| 172 | AM_RANGE(0x0000, 0xffff) AM_READ(dmdram_r) |
| 140 | 173 | AM_RANGE(MCS51_PORT_P1, MCS51_PORT_P1) AM_WRITE(p1_w) |
| 141 | 174 | AM_RANGE(MCS51_PORT_P3, MCS51_PORT_P3) AM_READWRITE(p3_r, p3_w) |
| 142 | 175 | ADDRESS_MAP_END |
| r32199 | r32200 | |
| 244 | 277 | d5 = part of the data input circuit |
| 245 | 278 | d6 = STAT0 |
| 246 | 279 | d7 = STAT1 |
| 280 | |
| 281 | m_game == 0 : P1.0 low for RAM, P1.5 low for data input. They shouldn't both be low. |
| 282 | m_game == 1 : P1.0 low for RAM, P1.5 low for data input. They shouldn't both be low. Extra ROM selected by P3.4 |
| 283 | m_game == 2 : P1.0 and P1.5 go to 74LS139 selector: 0 = RAM; 1 = ROM1; 2 = ROM2; 3 = data input |
| 247 | 284 | */ |
| 248 | 285 | WRITE8_MEMBER( spinb_state::p1_w ) |
| 249 | 286 | { |
| 287 | m_dmdbank = (BIT(data, 5) << 1) + BIT(data, 0); |
| 288 | |
| 289 | if (m_game < 2) |
| 290 | { |
| 291 | switch (m_dmdbank) |
| 292 | { |
| 293 | case 0: |
| 294 | printf("DMD Illegal selection\n"); |
| 295 | break; |
| 296 | case 1: // ram |
| 297 | m_dmdbank = 0; |
| 298 | break; |
| 299 | case 2: // input |
| 300 | m_dmdbank = 3; |
| 301 | break; |
| 302 | case 3: // nothing or (game1 external rom) |
| 303 | m_dmdbank = 1; |
| 304 | break; |
| 305 | } |
| 306 | } |
| 307 | |
| 308 | if (m_dmdbank==3) |
| 309 | { |
| 310 | m_p32 = 4; |
| 311 | m_dmdcpu->set_input_line(MCS51_INT0_LINE, CLEAR_LINE); |
| 312 | } |
| 250 | 313 | } |
| 251 | 314 | |
| 252 | 315 | READ8_MEMBER( spinb_state::p3_r ) |
| 253 | 316 | { |
| 254 | | return 0; |
| 317 | return m_p3 | m_p32; |
| 255 | 318 | } |
| 256 | 319 | |
| 257 | 320 | /* |
| 258 | 321 | d0 = RXD - SDATA ) to DMD |
| 259 | 322 | d1 = TXD - DOTCK ) |
| 260 | 323 | d2 = Interrupt Input when data is coming from maincpu |
| 261 | | d6 = R/W of RAM |
| 262 | | d7 = OE of RAM , also part of data input circuit |
| 324 | d6 = External /WR |
| 325 | d7 = External /RD |
| 263 | 326 | */ |
| 264 | 327 | WRITE8_MEMBER( spinb_state::p3_w ) |
| 265 | 328 | { |
| 329 | m_p3 = data & 0xfb; |
| 330 | m_dmdextaddr = 0; |
| 331 | |
| 332 | if (m_game == 1) |
| 333 | m_dmdextaddr = BIT(data, 3);// | (BIT(data, 5) << 1); |
| 334 | else |
| 335 | if (m_game == 2) |
| 336 | m_dmdextaddr = BIT(data, 3) | (BIT(data, 5) << 1) | (BIT(data, 4) << 2); |
| 266 | 337 | } |
| 267 | 338 | |
| 268 | 339 | READ8_MEMBER( spinb_state::sw_r ) |
| r32199 | r32200 | |
| 285 | 356 | return m_sndcmd; |
| 286 | 357 | } |
| 287 | 358 | |
| 288 | | WRITE8_MEMBER( spinb_state::disp_w ) |
| 359 | WRITE8_MEMBER( spinb_state::dmdram_w ) |
| 289 | 360 | { |
| 290 | | UINT8 i; |
| 291 | | if (offset < 8) |
| 292 | | m_segment[offset] = data; |
| 293 | | else |
| 294 | | // From here, only used on old cpu board |
| 295 | | if (offset > 0x40) |
| 361 | m_dmdram[offset & 0x1fff] = data; |
| 362 | } |
| 363 | |
| 364 | READ8_MEMBER( spinb_state::dmdram_r ) |
| 365 | { |
| 366 | switch (m_dmdbank) |
| 296 | 367 | { |
| 297 | | offset = (offset >> 3) & 7; |
| 298 | | for (i = 0; i < 5; i++) |
| 299 | | output_set_digit_value(i*10+offset, m_segment[i]); |
| 368 | case 0: |
| 369 | return m_dmdram[offset & 0x1fff]; |
| 370 | case 1: |
| 371 | return m_p_dmdcpu[offset + (m_dmdextaddr << 16)]; |
| 372 | case 2: |
| 373 | return m_p_dmdcpu[0x80000 + offset + (m_dmdextaddr << 16)]; |
| 300 | 374 | } |
| 375 | |
| 376 | return m_dmdcmd; |
| 301 | 377 | } |
| 302 | 378 | |
| 379 | WRITE8_MEMBER( spinb_state::disp_w ) |
| 380 | { |
| 381 | m_dmdcmd = data; |
| 382 | m_p32 = 0; |
| 383 | m_dmdcpu->set_input_line(MCS51_INT0_LINE, HOLD_LINE); |
| 384 | } |
| 385 | |
| 303 | 386 | WRITE8_MEMBER( spinb_state::ppi60a_w ) |
| 304 | 387 | { |
| 305 | 388 | if (data) |
| r32199 | r32200 | |
| 319 | 402 | |
| 320 | 403 | WRITE8_MEMBER( spinb_state::ppi64c_w ) |
| 321 | 404 | { |
| 322 | | UINT8 i; |
| 323 | | data &= 15; |
| 324 | | if BIT(data, 3) // 8 to 15 |
| 325 | | { |
| 326 | | data ^= 15; // now 7 to 0 |
| 327 | | for (i = 0; i < 5; i++) |
| 328 | | { |
| 329 | | if ((m_game==1) && (i == 4)) // mundial,clown,250cc,atleta have credit and ball displays swapped |
| 330 | | data ^= 4; |
| 331 | | output_set_digit_value(i*10+data, m_segment[i]); |
| 332 | | } |
| 333 | | } |
| 334 | 405 | } |
| 335 | 406 | |
| 336 | 407 | WRITE8_MEMBER( spinb_state::sndbank_a_w ) |
| r32199 | r32200 | |
| 417 | 488 | return m_pc0m | m_portc_m; |
| 418 | 489 | } |
| 419 | 490 | |
| 420 | | WRITE8_MEMBER( spinb_state::ppia_a_w ) |
| 491 | WRITE8_MEMBER( spinb_state::ppia_b_w ) |
| 421 | 492 | { |
| 422 | | m_sound_addr_a = (m_sound_addr_a & 0xfff00) | data; |
| 493 | m_sound_addr_a = (m_sound_addr_a & 0xffff00) | data; |
| 423 | 494 | } |
| 424 | 495 | |
| 425 | | WRITE8_MEMBER( spinb_state::ppim_a_w ) |
| 496 | WRITE8_MEMBER( spinb_state::ppim_b_w ) |
| 426 | 497 | { |
| 427 | | m_sound_addr_m = (m_sound_addr_m & 0xfff00) | data; |
| 498 | m_sound_addr_m = (m_sound_addr_m & 0xffff00) | data; |
| 428 | 499 | } |
| 429 | 500 | |
| 430 | | WRITE8_MEMBER( spinb_state::ppia_b_w ) |
| 501 | WRITE8_MEMBER( spinb_state::ppia_a_w ) |
| 431 | 502 | { |
| 432 | | m_sound_addr_a = (m_sound_addr_a & 0xf00ff) | (data << 8); |
| 503 | m_sound_addr_a = (m_sound_addr_a & 0xff00ff) | (data << 8); |
| 433 | 504 | } |
| 434 | 505 | |
| 435 | | WRITE8_MEMBER( spinb_state::ppim_b_w ) |
| 506 | WRITE8_MEMBER( spinb_state::ppim_a_w ) |
| 436 | 507 | { |
| 437 | | m_sound_addr_m = (m_sound_addr_m & 0xf00ff) | (data << 8); |
| 508 | m_sound_addr_m = (m_sound_addr_m & 0xff00ff) | (data << 8); |
| 438 | 509 | } |
| 439 | 510 | |
| 440 | 511 | WRITE8_MEMBER( spinb_state::ppia_c_w ) |
| r32199 | r32200 | |
| 466 | 537 | m_row = 0; |
| 467 | 538 | } |
| 468 | 539 | |
| 469 | | DRIVER_INIT_MEMBER( spinb_state, spinb ) |
| 540 | DRIVER_INIT_MEMBER( spinb_state, game0 ) |
| 470 | 541 | { |
| 471 | 542 | m_p_audio = memregion("audiorom")->base(); |
| 472 | 543 | m_p_music = memregion("musicrom")->base(); |
| 473 | 544 | m_game = 0; |
| 474 | 545 | } |
| 475 | 546 | |
| 547 | DRIVER_INIT_MEMBER( spinb_state, game1 ) |
| 548 | { |
| 549 | m_p_audio = memregion("audiorom")->base(); |
| 550 | m_p_music = memregion("musicrom")->base(); |
| 551 | m_p_dmdcpu = memregion("dmdcpu")->base()+0x10000; |
| 552 | m_game = 1; |
| 553 | } |
| 554 | |
| 555 | DRIVER_INIT_MEMBER( spinb_state, game2 ) |
| 556 | { |
| 557 | m_p_audio = memregion("audiorom")->base(); |
| 558 | m_p_music = memregion("musicrom")->base(); |
| 559 | m_p_dmdcpu = memregion("dmdcpu")->base()+0x10000; |
| 560 | m_game = 2; |
| 561 | } |
| 562 | |
| 563 | UINT32 spinb_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| 564 | { |
| 565 | UINT8 y,gfx; |
| 566 | UINT16 sy=0,ma,x; |
| 567 | address_space &internal = m_dmdcpu->space(AS_DATA); |
| 568 | ma = internal.read_byte(0x05) << 8; // find where display memory is |
| 569 | ma &= 0xfe00; |
| 570 | |
| 571 | for(y=0; y<32; y++) |
| 572 | { |
| 573 | UINT16 *p = &bitmap.pix16(sy++); |
| 574 | for(x = 0; x < 16; x++) |
| 575 | { |
| 576 | gfx = m_dmdram[ma++]; |
| 577 | |
| 578 | *p++ = BIT(gfx, 0); |
| 579 | *p++ = BIT(gfx, 1); |
| 580 | *p++ = BIT(gfx, 2); |
| 581 | *p++ = BIT(gfx, 3); |
| 582 | *p++ = BIT(gfx, 4); |
| 583 | *p++ = BIT(gfx, 5); |
| 584 | *p++ = BIT(gfx, 6); |
| 585 | *p++ = BIT(gfx, 7); |
| 586 | } |
| 587 | } |
| 588 | return 0; |
| 589 | } |
| 590 | |
| 476 | 591 | static MACHINE_CONFIG_START( spinb, spinb_state ) |
| 477 | 592 | /* basic machine hardware */ |
| 478 | 593 | MCFG_CPU_ADD("maincpu", Z80, XTAL_5MHz / 2) |
| r32199 | r32200 | |
| 488 | 603 | |
| 489 | 604 | MCFG_NVRAM_ADD_1FILL("nvram") |
| 490 | 605 | |
| 606 | /* Video */ |
| 607 | MCFG_SCREEN_ADD("screen", LCD) |
| 608 | MCFG_SCREEN_REFRESH_RATE(60) |
| 609 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) |
| 610 | MCFG_SCREEN_UPDATE_DRIVER(spinb_state, screen_update) |
| 611 | MCFG_SCREEN_SIZE(128, 32) |
| 612 | MCFG_SCREEN_VISIBLE_AREA(0, 127, 0, 31) |
| 613 | MCFG_SCREEN_PALETTE("palette") |
| 614 | MCFG_PALETTE_ADD_MONOCHROME_AMBER("palette") |
| 615 | |
| 491 | 616 | /* Sound */ |
| 492 | 617 | MCFG_FRAGMENT_ADD( genpin_audio ) |
| 493 | 618 | MCFG_SPEAKER_STANDARD_MONO("msmavol") |
| r32199 | r32200 | |
| 553 | 678 | MCFG_7474_COMP_OUTPUT_CB(WRITELINE(spinb_state, ic5m_w)) |
| 554 | 679 | MACHINE_CONFIG_END |
| 555 | 680 | |
| 556 | | #if 0 |
| 557 | | static MACHINE_CONFIG_START( spinb, spinb_state ) |
| 681 | static MACHINE_CONFIG_DERIVED( vrnwrld, spinb ) |
| 558 | 682 | /* basic machine hardware */ |
| 559 | | MCFG_CPU_ADD("maincpu", I8031, XTAL_16MHz) |
| 560 | | MCFG_CPU_PROGRAM_MAP(spinb_map) |
| 683 | MCFG_CPU_MODIFY("maincpu") |
| 684 | MCFG_CPU_PROGRAM_MAP(vrnwrld_map) |
| 561 | 685 | MACHINE_CONFIG_END |
| 562 | | #endif |
| 563 | 686 | |
| 687 | |
| 564 | 688 | /*------------------------------------------------------------------- |
| 565 | 689 | / Bushido (1993) - ( Last game by Inder - before becoming Spinball - but same hardware) |
| 566 | 690 | /-------------------------------------------------------------------*/ |
| 567 | 691 | ROM_START(bushido) |
| 568 | | ROM_REGION(0x10000, "maincpu", 0) |
| 692 | ROM_REGION(0x4000, "maincpu", 0) |
| 569 | 693 | ROM_LOAD("0-z80.bin", 0x0000, 0x2000, CRC(3ea1eb1d) SHA1(cceb6c68e481f36a5646ff4f38d3dfc4275b0c79)) |
| 570 | 694 | ROM_LOAD("1-z80.old", 0x2000, 0x2000, CRC(648da72b) SHA1(1005a13b4746e302d979c8b1da300e943cdcab3d)) |
| 571 | | ROM_REGION(0x32001, "dmdcpu", 0) |
| 695 | |
| 696 | ROM_REGION(0x10000, "dmdcpu", 0) |
| 572 | 697 | ROM_LOAD("g-disply.bin", 0x00000, 0x10000, CRC(9a1df82f) SHA1(4ad6a12ae36ec898b8ac5243da6dec3abcd9dc33)) |
| 573 | | ROM_REGION(0x10000, "audiocpu", 0) |
| 698 | |
| 699 | ROM_REGION(0x2000, "audiocpu", 0) |
| 574 | 700 | ROM_LOAD("a-sonido.bin", 0x0000, 0x2000, CRC(cf7d5399) SHA1(c79145826cfa6be2487e3add477d9b452c553762)) |
| 701 | |
| 575 | 702 | ROM_REGION(0x180000, "audiorom", 0) |
| 576 | 703 | ROM_LOAD("b-sonido.bin", 0x00000, 0x80000, CRC(cb4fc885) SHA1(569f389fa8f91f886b58f44f701d2752ef01f3fa)) |
| 577 | 704 | ROM_LOAD("c-sonido.bin", 0x80000, 0x80000, CRC(35a43dd8) SHA1(f2b1994f67f749c65a88c95d970b655990d85b96)) |
| 578 | | ROM_REGION(0x10000, "musiccpu", 0) |
| 705 | |
| 706 | ROM_REGION(0x2000, "musiccpu", 0) |
| 579 | 707 | ROM_LOAD("d-musica.bin", 0x0000, 0x2000, CRC(2cb9697c) SHA1(d5c66d616ccd5e299832704e494743429dafd569)) |
| 708 | |
| 580 | 709 | ROM_REGION(0x180000, "musicrom", 0) |
| 581 | 710 | ROM_LOAD("e-musica.bin", 0x00000, 0x80000, CRC(1414b921) SHA1(5df9e538ee109df28953ec8f162c60cb8c6e4d96)) |
| 582 | 711 | ROM_LOAD("f-musica.bin", 0x80000, 0x80000, CRC(80f3a6df) SHA1(e09ad4660e511779c6e55559fa0c2c0b0c6600c8)) |
| 583 | 712 | ROM_END |
| 584 | 713 | |
| 585 | 714 | ROM_START(bushidoa) |
| 586 | | ROM_REGION(0x10000, "maincpu", 0) |
| 715 | ROM_REGION(0x4000, "maincpu", 0) |
| 587 | 716 | ROM_LOAD("0-cpu.bin", 0x0000, 0x2000, CRC(7f7e6642) SHA1(6872397eed7525f384b79cdea13531d273d8cf14)) |
| 588 | 717 | ROM_LOAD("1-cpu.bin", 0x2000, 0x2000, CRC(a538d37f) SHA1(d2878ad0d31b4221b823812485c7faaf666ce185)) |
| 589 | | ROM_REGION(0x32001, "dmdcpu", 0) |
| 718 | |
| 719 | ROM_REGION(0x10000, "dmdcpu", 0) |
| 590 | 720 | ROM_LOAD("g-disply.bin", 0x00000, 0x10000, CRC(9a1df82f) SHA1(4ad6a12ae36ec898b8ac5243da6dec3abcd9dc33)) |
| 591 | | ROM_REGION(0x10000, "audiocpu", 0) |
| 721 | |
| 722 | ROM_REGION(0x2000, "audiocpu", 0) |
| 592 | 723 | ROM_LOAD("a-sonido.bin", 0x0000, 0x2000, CRC(cf7d5399) SHA1(c79145826cfa6be2487e3add477d9b452c553762)) |
| 724 | |
| 593 | 725 | ROM_REGION(0x180000, "audiorom", 0) |
| 594 | 726 | ROM_LOAD("b-sonido.bin", 0x00000, 0x80000, CRC(cb4fc885) SHA1(569f389fa8f91f886b58f44f701d2752ef01f3fa)) |
| 595 | 727 | ROM_LOAD("c-sonido.bin", 0x80000, 0x80000, CRC(35a43dd8) SHA1(f2b1994f67f749c65a88c95d970b655990d85b96)) |
| 596 | | ROM_REGION(0x10000, "musiccpu", 0) |
| 728 | |
| 729 | ROM_REGION(0x2000, "musiccpu", 0) |
| 597 | 730 | ROM_LOAD("d-musica.bin", 0x0000, 0x2000, CRC(2cb9697c) SHA1(d5c66d616ccd5e299832704e494743429dafd569)) |
| 731 | |
| 598 | 732 | ROM_REGION(0x180000, "musicrom", 0) |
| 599 | 733 | ROM_LOAD("e-musica.bin", 0x00000, 0x80000, CRC(1414b921) SHA1(5df9e538ee109df28953ec8f162c60cb8c6e4d96)) |
| 600 | 734 | ROM_LOAD("f-musica.bin", 0x80000, 0x80000, CRC(80f3a6df) SHA1(e09ad4660e511779c6e55559fa0c2c0b0c6600c8)) |
| 601 | 735 | ROM_END |
| 602 | 736 | |
| 603 | 737 | /*------------------------------------------------------------------- |
| 738 | / Mach 2 (1995) |
| 739 | /-------------------------------------------------------------------*/ |
| 740 | ROM_START(mach2) |
| 741 | ROM_REGION(0x4000, "maincpu", 0) |
| 742 | ROM_LOAD("m2cpu0.19", 0x0000, 0x2000, CRC(274c8040) SHA1(6b039b79b7e08f2bf2045bc4f1cbba790c999fed)) |
| 743 | ROM_LOAD("m2cpu1.19", 0x2000, 0x2000, CRC(c445df0b) SHA1(1f346c1df8df0a3c4e8cb1186280d2f34959b3f8)) |
| 744 | |
| 745 | ROM_REGION(0x10000, "dmdcpu", 0) |
| 746 | ROM_LOAD("m2dmdf.01", 0x00000, 0x10000, CRC(c45ccc74) SHA1(8362e799a76536a16dd2d5dde500ad3db273180f)) |
| 747 | |
| 748 | ROM_REGION(0x2000, "audiocpu", 0) |
| 749 | ROM_LOAD("m2sndd.01", 0x0000, 0x2000, CRC(e789f22d) SHA1(36aa7eac1dd37a02c982d109462dddbd85a305cc)) |
| 750 | |
| 751 | ROM_REGION(0x180000, "audiorom", 0) |
| 752 | ROM_LOAD("m2snde.01", 0x00000, 0x80000, CRC(f5721119) SHA1(9082198e8d875b67323266c4bf8c2c378b63dfbb)) |
| 753 | |
| 754 | ROM_REGION(0x2000, "musiccpu", 0) |
| 755 | ROM_LOAD("m2musa.01", 0x0000, 0x2000, CRC(2d92a882) SHA1(cead22e434445e5c25414646b1e9ae2b9457439d)) |
| 756 | |
| 757 | ROM_REGION(0x180000, "musicrom", 0) |
| 758 | ROM_LOAD("m2musb.01", 0x00000, 0x80000, CRC(6689cd19) SHA1(430092d51704dfda8bd8264875f1c1f4461c56e5)) |
| 759 | ROM_LOAD("m2musc.01", 0x80000, 0x80000, CRC(88851b82) SHA1(d0c9fa391ca213a69b7c8ae7ca52063503b5656e)) |
| 760 | ROM_END |
| 761 | |
| 762 | /*------------------------------------------------------------------- |
| 604 | 763 | / Jolly Park (1996) |
| 605 | 764 | /-------------------------------------------------------------------*/ |
| 606 | 765 | ROM_START(jolypark) |
| 607 | | ROM_REGION(0x10000, "maincpu", 0) |
| 766 | ROM_REGION(0x4000, "maincpu", 0) |
| 608 | 767 | ROM_LOAD("jpcpu0.rom", 0x0000, 0x2000, CRC(061967af) SHA1(45048e1d9f17efa3382460fd474a5aeb4191d617)) |
| 609 | 768 | ROM_LOAD("jpcpu1.rom", 0x2000, 0x2000, CRC(ea99202f) SHA1(e04825e73fd25f6469b3315f063f598ea1ab44c7)) |
| 610 | | ROM_REGION(0x32001, "dmdcpu", 0) |
| 769 | |
| 770 | ROM_REGION(0x30000, "dmdcpu", 0) |
| 611 | 771 | ROM_LOAD("jpdmd0.rom", 0x00000, 0x10000, CRC(b57565cb) SHA1(3fef66d298893029de78fdb6ecdb562c33d76180)) |
| 612 | | ROM_LOAD("jpdmd1.rom", 0x12000, 0x20000, CRC(40d1563f) SHA1(90dbea742202340da6fa950eedc2bceec5a2af7e)) |
| 613 | | ROM_REGION(0x10000, "audiocpu", 0) |
| 772 | ROM_LOAD("jpdmd1.rom", 0x10000, 0x20000, CRC(40d1563f) SHA1(90dbea742202340da6fa950eedc2bceec5a2af7e)) // according to schematic this rom should be twice as big |
| 773 | |
| 774 | ROM_REGION(0x2000, "audiocpu", 0) |
| 614 | 775 | ROM_LOAD("jpsndc1.rom", 0x0000, 0x2000, CRC(0475318f) SHA1(7154bd5ca5b28019eb0ff598ec99bbe49260932b)) |
| 776 | |
| 615 | 777 | ROM_REGION(0x180000, "audiorom", 0) |
| 616 | 778 | ROM_LOAD("jpsndm4.rom", 0x00000, 0x80000, CRC(735f3db7) SHA1(81dc893f5194d6ac1af54b262555a40c5c3e0292)) |
| 617 | 779 | ROM_LOAD("jpsndm5.rom", 0x80000, 0x80000, CRC(769374bd) SHA1(8121369714c55cc06c493b15e5c2ca79b13aff52)) |
| 618 | | ROM_REGION(0x10000, "musiccpu", 0) |
| 780 | |
| 781 | ROM_REGION(0x2000, "musiccpu", 0) |
| 619 | 782 | ROM_LOAD("jpsndc0.rom", 0x0000, 0x2000, CRC(a97259dc) SHA1(58dea3f36b760112cfc32d306077da8cf6cdec5a)) |
| 783 | |
| 620 | 784 | ROM_REGION(0x180000, "musicrom", 0) |
| 621 | 785 | ROM_LOAD("jpsndm1.rom", 0x000000, 0x80000, CRC(fc91d2f1) SHA1(c838a0b31bbec9dbc96b46d692c8d6f1286fe46a)) |
| 622 | 786 | ROM_LOAD("jpsndm2.rom", 0x080000, 0x80000, CRC(fb2d1882) SHA1(fb0ef9def54d9163a46354a0df0757fac6cbd57c)) |
| r32199 | r32200 | |
| 624 | 788 | ROM_END |
| 625 | 789 | |
| 626 | 790 | /*------------------------------------------------------------------- |
| 627 | | / Mach 2 (1995) |
| 628 | | /-------------------------------------------------------------------*/ |
| 629 | | ROM_START(mach2) |
| 630 | | ROM_REGION(0x10000, "maincpu", 0) |
| 631 | | ROM_LOAD("m2cpu0.19", 0x0000, 0x2000, CRC(274c8040) SHA1(6b039b79b7e08f2bf2045bc4f1cbba790c999fed)) |
| 632 | | ROM_LOAD("m2cpu1.19", 0x2000, 0x2000, CRC(c445df0b) SHA1(1f346c1df8df0a3c4e8cb1186280d2f34959b3f8)) |
| 633 | | ROM_REGION(0x32001, "dmdcpu", 0) |
| 634 | | ROM_LOAD("m2dmdf.01", 0x00000, 0x10000, CRC(c45ccc74) SHA1(8362e799a76536a16dd2d5dde500ad3db273180f)) |
| 635 | | ROM_REGION(0x10000, "audiocpu", 0) |
| 636 | | ROM_LOAD("m2sndd.01", 0x0000, 0x2000, CRC(e789f22d) SHA1(36aa7eac1dd37a02c982d109462dddbd85a305cc)) |
| 637 | | ROM_REGION(0x180000, "audiorom", 0) |
| 638 | | ROM_LOAD("m2snde.01", 0x00000, 0x80000, CRC(f5721119) SHA1(9082198e8d875b67323266c4bf8c2c378b63dfbb)) |
| 639 | | ROM_REGION(0x10000, "musiccpu", 0) |
| 640 | | ROM_LOAD("m2musa.01", 0x0000, 0x2000, CRC(2d92a882) SHA1(cead22e434445e5c25414646b1e9ae2b9457439d)) |
| 641 | | ROM_REGION(0x180000, "musicrom", 0) |
| 642 | | ROM_LOAD("m2musb.01", 0x00000, 0x80000, CRC(6689cd19) SHA1(430092d51704dfda8bd8264875f1c1f4461c56e5)) |
| 643 | | ROM_LOAD("m2musc.01", 0x80000, 0x80000, CRC(88851b82) SHA1(d0c9fa391ca213a69b7c8ae7ca52063503b5656e)) |
| 644 | | ROM_END |
| 645 | | |
| 646 | | /*------------------------------------------------------------------- |
| 647 | 791 | / Verne's World (1996) |
| 648 | 792 | /-------------------------------------------------------------------*/ |
| 649 | 793 | ROM_START(vrnwrld) |
| 650 | | ROM_REGION(0x10000, "maincpu", 0) |
| 794 | ROM_REGION(0x8000, "maincpu", 0) |
| 651 | 795 | ROM_LOAD("vwcpu0.rom", 0x0000, 0x4000, CRC(89c980e7) SHA1(09eeed0232255875cf119d59143d839ff40e30dd)) |
| 652 | 796 | ROM_LOAD("vwcpu1.rom", 0x4000, 0x4000, CRC(a4db4e64) SHA1(fc55781295fc723741de24ad60311b7e33551830)) |
| 653 | | ROM_REGION(0x114000, "dmdcpu", 0) |
| 797 | |
| 798 | ROM_REGION(0x110000, "dmdcpu", 0) |
| 654 | 799 | ROM_LOAD("vwdmd0.rom", 0x00000, 0x10000, CRC(40600060) SHA1(7ad619bcb5e5e50325360f4e946b5bfa072caead)) |
| 655 | | ROM_LOAD("vwdmd1.rom", 0x14000, 0x80000, CRC(de4a1060) SHA1(6b848dfd8aafdbcf7e1593f98bd1c3d69306aa11)) |
| 656 | | ROM_LOAD("vwdmd2.rom", 0x94000, 0x80000, CRC(29fc8da7) SHA1(2704f14a3338a63abda3bcbc56e9f984a679eb38)) |
| 657 | | ROM_REGION(0x10000, "audiocpu", 0) |
| 800 | ROM_LOAD("vwdmd1.rom", 0x10000, 0x80000, CRC(de4a1060) SHA1(6b848dfd8aafdbcf7e1593f98bd1c3d69306aa11)) |
| 801 | ROM_LOAD("vwdmd2.rom", 0x90000, 0x80000, CRC(29fc8da7) SHA1(2704f14a3338a63abda3bcbc56e9f984a679eb38)) |
| 802 | |
| 803 | ROM_REGION(0x2000, "audiocpu", 0) |
| 658 | 804 | ROM_LOAD("vws2ic9.rom", 0x0000, 0x2000, CRC(ab8cb4c5) SHA1(92a702c11e2cef703992244529ba86079d5ab9b0)) |
| 805 | |
| 659 | 806 | ROM_REGION(0x180000, "audiorom", 0) |
| 660 | 807 | ROM_LOAD("vws3ic15.rom", 0x00000, 0x80000, CRC(d62c9443) SHA1(7c6b8662d88ba6592da8b83af11087647105e8dd)) |
| 661 | | ROM_REGION(0x10000, "musiccpu", 0) |
| 808 | |
| 809 | ROM_REGION(0x2000, "musiccpu", 0) |
| 662 | 810 | ROM_LOAD("vws4ic30.rom", 0x0000, 0x2000, CRC(ecd18a19) SHA1(558e687e0429d31fafe8db05954d9a8ad90d6aeb)) |
| 811 | |
| 663 | 812 | ROM_REGION(0x180000, "musicrom", 0) |
| 664 | 813 | ROM_LOAD("vws5ic25.rom", 0x000000, 0x80000, CRC(56d349f0) SHA1(e71d2d03c3e978c552e272de8850cc265255fbd1)) |
| 665 | 814 | ROM_LOAD("vws6ic26.rom", 0x080000, 0x80000, CRC(bee399c1) SHA1(b2c6e4830641ed32b9643dc8c1fa08a2da5a7e9b)) |
| 666 | 815 | ROM_LOAD("vws7ic27.rom", 0x100000, 0x80000, CRC(7335b29c) SHA1(4de6de09f069feecbad2e5ef50032e8d381ff9b1)) |
| 667 | 816 | ROM_END |
| 668 | 817 | |
| 669 | | GAME(1993, bushido, 0, spinb, spinb, spinb_state, spinb, ROT0, "Inder/Spinball", "Bushido (set 1)", GAME_IS_SKELETON_MECHANICAL) |
| 670 | | GAME(1993, bushidoa, bushido, spinb, spinb, spinb_state, spinb, ROT0, "Inder/Spinball", "Bushido (set 2)", GAME_IS_SKELETON_MECHANICAL) |
| 671 | | GAME(1996, jolypark, 0, spinb, spinb, spinb_state, spinb, ROT0, "Spinball", "Jolly Park", GAME_IS_SKELETON_MECHANICAL) |
| 672 | | GAME(1995, mach2, 0, spinb, spinb, spinb_state, spinb, ROT0, "Spinball", "Mach 2", GAME_IS_SKELETON_MECHANICAL) |
| 673 | | GAME(1996, vrnwrld, 0, spinb, spinb, spinb_state, spinb, ROT0, "Spinball", "Verne's World", GAME_IS_SKELETON_MECHANICAL) |
| 818 | GAME(1993, bushido, 0, spinb, spinb, spinb_state, game0, ROT0, "Inder/Spinball", "Bushido (set 1)", GAME_IS_SKELETON_MECHANICAL) |
| 819 | GAME(1993, bushidoa, bushido, spinb, spinb, spinb_state, game0, ROT0, "Inder/Spinball", "Bushido (set 2)", GAME_IS_SKELETON_MECHANICAL) |
| 820 | GAME(1995, mach2, 0, spinb, spinb, spinb_state, game0, ROT0, "Spinball", "Mach 2", GAME_IS_SKELETON_MECHANICAL) |
| 821 | GAME(1996, jolypark, 0, spinb, spinb, spinb_state, game1, ROT0, "Spinball", "Jolly Park", GAME_IS_SKELETON_MECHANICAL) |
| 822 | GAME(1996, vrnwrld, 0, vrnwrld, spinb, spinb_state, game2, ROT0, "Spinball", "Verne's World", GAME_IS_SKELETON_MECHANICAL) |