trunk/src/mame/drivers/snk68.c
| r17755 | r17756 | |
| 665 | 665 | ROM_LOAD16_BYTE( "snk880.22a", 0x1c0000, 0x20000, CRC(aa9c00d8) SHA1(1017ed1cc036c6084b71204a998fd05557a6e59f) ) |
| 666 | 666 | ROM_LOAD16_BYTE( "snk880.26a", 0x1c0001, 0x20000, CRC(9bc261c5) SHA1(f07fef465191d48ccc149d1a62e6382d3fc0ef9f) ) |
| 667 | 667 | |
| 668 | | ROM_REGION( 0x20000, "upd", ROMREGION_ERASE00 ) /* UPD7759 samples */ |
| 668 | ROM_REGION( 0x10000, "upd", 0 ) /* UPD7759 samples */ |
| 669 | 669 | ROM_LOAD( "dg7.d20", 0x000000, 0x10000, CRC(aba9a9d3) SHA1(5098cd3a064b8ede24797de8879a277d79e79d75) ) |
| 670 | 670 | |
| 671 | 671 | ROM_REGION( 0x0100, "plds", 0 ) |
| r17755 | r17756 | |
| 702 | 702 | ROM_LOAD16_BYTE( "snk880.22a", 0x1c0000, 0x20000, CRC(aa9c00d8) SHA1(1017ed1cc036c6084b71204a998fd05557a6e59f) ) |
| 703 | 703 | ROM_LOAD16_BYTE( "snk880.26a", 0x1c0001, 0x20000, CRC(9bc261c5) SHA1(f07fef465191d48ccc149d1a62e6382d3fc0ef9f) ) |
| 704 | 704 | |
| 705 | | ROM_REGION( 0x20000, "upd", ROMREGION_ERASE00 ) /* UPD7759 samples */ |
| 705 | ROM_REGION( 0x10000, "upd", 0 ) /* UPD7759 samples */ |
| 706 | 706 | ROM_LOAD( "dg7.d20", 0x000000, 0x10000, CRC(aba9a9d3) SHA1(5098cd3a064b8ede24797de8879a277d79e79d75) ) |
| 707 | 707 | |
| 708 | 708 | ROM_REGION( 0x0100, "plds", 0 ) |
trunk/src/mame/drivers/homerun.c
| r17755 | r17756 | |
| 361 | 361 | ROM_REGION( 0x20000, "gfx2", 0 ) |
| 362 | 362 | ROM_LOAD( "homerun.ic120", 0x00000, 0x20000, CRC(52f0709b) SHA1(19e675bcccadb774f60ec5929fc1fb5cf0d3f617) ) |
| 363 | 363 | |
| 364 | | ROM_REGION( 0x20000, "d7756c", ROMREGION_ERASE00 ) |
| 364 | ROM_REGION( 0x08000, "d7756c", ROMREGION_ERASE00 ) |
| 365 | 365 | ROM_LOAD( "d7756c.ic98", 0x00000, 0x08000, NO_DUMP ) /* D7756C built-in rom */ |
| 366 | 366 | ROM_END |
| 367 | 367 | |
| r17755 | r17756 | |
| 377 | 377 | ROM_REGION( 0x20000, "gfx2", 0 ) |
| 378 | 378 | ROM_LOAD( "2.ic120", 0x00000, 0x20000, CRC(bedf7b98) SHA1(cb6c5fcaf8df5f5c7636c3c8f79b9dda78e30c2e) ) |
| 379 | 379 | |
| 380 | | ROM_REGION( 0x20000, "d7756c", ROMREGION_ERASE00 ) |
| 380 | ROM_REGION( 0x08000, "d7756c", ROMREGION_ERASE00 ) |
| 381 | 381 | ROM_LOAD( "d7756c.ic98", 0x00000, 0x08000, NO_DUMP ) /* D7756C built-in rom */ |
| 382 | 382 | ROM_END |
| 383 | 383 | |
| r17755 | r17756 | |
| 393 | 393 | ROM_REGION( 0x20000, "gfx2", 0 ) |
| 394 | 394 | ROM_LOAD( "2.ic120", 0x00000, 0x20000, CRC(e65d4d57) SHA1(2ec9e5bdaa94b808573313b6eca657d798004b53) ) |
| 395 | 395 | |
| 396 | | ROM_REGION( 0x20000, "d7756c", ROMREGION_ERASE00 ) |
| 396 | ROM_REGION( 0x08000, "d7756c", 0 ) |
| 397 | 397 | ROM_LOAD( "d77p56cr.ic98", 0x00000, 0x08000, CRC(06a234ac) SHA1(b4ceff3f9f78551cf4a085642e162e33b266f067) ) /* D77P56CR OTP rom (One-Time Programmable, note the extra P) */ |
| 398 | 398 | ROM_END |
| 399 | 399 | |
trunk/src/emu/sound/upd7759.c
| r17755 | r17756 | |
| 189 | 189 | UINT8 * rom; /* pointer to ROM data or NULL for slave mode */ |
| 190 | 190 | UINT8 * rombase; /* pointer to ROM data or NULL for slave mode */ |
| 191 | 191 | UINT32 romoffset; /* ROM offset to make save/restore easier */ |
| 192 | UINT32 rommask; /* maximum address offset */ |
| 192 | 193 | }; |
| 193 | 194 | |
| 194 | 195 | |
| r17755 | r17756 | |
| 342 | 343 | case STATE_ADDR_LSB: |
| 343 | 344 | chip->offset |= (chip->rom ? chip->rom[chip->req_sample * 2 + 6] : chip->fifo_in) << chip->sample_offset_shift; |
| 344 | 345 | if (DEBUG_STATES) DEBUG_METHOD("UPD7759: offset_lo = %02X, requesting dummy 2\n", (chip->offset >> chip->sample_offset_shift) & 0xff); |
| 346 | if (chip->offset > chip->rommask) logerror("upd7759 offset %X > rommask %X\n",chip->offset, chip->rommask); |
| 345 | 347 | chip->drq = 1; |
| 346 | 348 | |
| 347 | 349 | /* 36 cycles later, we will latch this value and request another byte */ |
| r17755 | r17756 | |
| 371 | 373 | chip->repeat_count--; |
| 372 | 374 | chip->offset = chip->repeat_offset; |
| 373 | 375 | } |
| 374 | | chip->block_header = chip->rom ? chip->rom[chip->offset++ & 0x1ffff] : chip->fifo_in; |
| 376 | chip->block_header = chip->rom ? chip->rom[chip->offset++ & chip->rommask] : chip->fifo_in; |
| 375 | 377 | if (DEBUG_STATES) DEBUG_METHOD("UPD7759: header (@%05X) = %02X, requesting next byte\n", chip->offset, chip->block_header); |
| 376 | 378 | chip->drq = 1; |
| 377 | 379 | |
| r17755 | r17756 | |
| 414 | 416 | /* Nibble count state: latch the number of nibbles to play and request another byte */ |
| 415 | 417 | /* The expected response will be the first data byte */ |
| 416 | 418 | case STATE_NIBBLE_COUNT: |
| 417 | | chip->nibbles_left = (chip->rom ? chip->rom[chip->offset++ & 0x1ffff] : chip->fifo_in) + 1; |
| 419 | chip->nibbles_left = (chip->rom ? chip->rom[chip->offset++ & chip->rommask] : chip->fifo_in) + 1; |
| 418 | 420 | if (DEBUG_STATES) DEBUG_METHOD("UPD7759: nibble_count = %u, requesting next byte\n", (unsigned)chip->nibbles_left); |
| 419 | 421 | chip->drq = 1; |
| 420 | 422 | |
| r17755 | r17756 | |
| 426 | 428 | /* MSN state: latch the data for this pair of samples and request another byte */ |
| 427 | 429 | /* The expected response will be the next sample data or another header */ |
| 428 | 430 | case STATE_NIBBLE_MSN: |
| 429 | | chip->adpcm_data = chip->rom ? chip->rom[chip->offset++ & 0x1ffff] : chip->fifo_in; |
| 431 | chip->adpcm_data = chip->rom ? chip->rom[chip->offset++ & chip->rommask] : chip->fifo_in; |
| 430 | 432 | update_adpcm(chip, chip->adpcm_data >> 4); |
| 431 | 433 | chip->drq = 1; |
| 432 | 434 | |
| r17755 | r17756 | |
| 544 | 546 | advance_state(chip); |
| 545 | 547 | |
| 546 | 548 | /* if the DRQ changed, update it */ |
| 547 | | logerror("slave_update: DRQ %d->%d\n", olddrq, chip->drq); |
| 549 | logerror("upd7759_slave_update: DRQ %d->%d\n", olddrq, chip->drq); |
| 548 | 550 | if (olddrq != chip->drq && chip->drqcallback) |
| 549 | 551 | (*chip->drqcallback)(chip->device, chip->drq); |
| 550 | 552 | |
| r17755 | r17756 | |
| 662 | 664 | chip->romoffset = 0; |
| 663 | 665 | chip->rom = chip->rombase = *device->region(); |
| 664 | 666 | if (chip->rombase == NULL) |
| 667 | { |
| 665 | 668 | chip->timer = device->machine().scheduler().timer_alloc(FUNC(upd7759_slave_update), chip); |
| 669 | chip->rommask = 0; |
| 670 | } |
| 666 | 671 | else |
| 667 | | assert((device->region()->bytes() & 0x1ffff) == 0); |
| 672 | { |
| 673 | UINT32 romsize = device->region()->bytes(); |
| 674 | if (romsize >= 0x20000) chip->rommask = 0x1ffff; |
| 675 | else chip->rommask = romsize - 1; |
| 676 | } |
| 668 | 677 | |
| 669 | 678 | /* set the DRQ callback */ |
| 670 | 679 | chip->drqcallback = intf->drqcallback; |