trunk/src/mame/drivers/relief.c
| r242124 | r242125 | |
| 50 | 50 | { |
| 51 | 51 | atarigen_state::machine_reset(); |
| 52 | 52 | |
| 53 | | m_oki->set_bank_base(0); |
| 53 | m_adpcm_bank = 0; |
| 54 | m_okibank->set_entry(m_adpcm_bank); |
| 54 | 55 | m_ym2413_volume = 15; |
| 55 | 56 | m_overall_volume = 127; |
| 56 | | m_adpcm_bank_base = 0; |
| 57 | 57 | } |
| 58 | 58 | |
| 59 | 59 | |
| r242124 | r242125 | |
| 85 | 85 | { |
| 86 | 86 | m_ym2413_volume = (data >> 1) & 15; |
| 87 | 87 | set_ym2413_volume((m_ym2413_volume * m_overall_volume * 100) / (127 * 15)); |
| 88 | | m_adpcm_bank_base = (0x040000 * ((data >> 6) & 3)) | (m_adpcm_bank_base & 0x100000); |
| 88 | m_adpcm_bank = ((data >> 6) & 3) | (m_adpcm_bank & 4); |
| 89 | 89 | } |
| 90 | 90 | if (ACCESSING_BITS_8_15) |
| 91 | | m_adpcm_bank_base = (0x100000 * ((data >> 8) & 1)) | (m_adpcm_bank_base & 0x0c0000); |
| 91 | m_adpcm_bank = (((data >> 8) & 1)<<2) | (m_adpcm_bank & 3); |
| 92 | 92 | |
| 93 | | m_oki->set_bank_base(m_adpcm_bank_base); |
| 93 | m_okibank->set_entry(m_adpcm_bank); |
| 94 | 94 | } |
| 95 | 95 | |
| 96 | 96 | |
| r242124 | r242125 | |
| 104 | 104 | } |
| 105 | 105 | } |
| 106 | 106 | |
| 107 | static ADDRESS_MAP_START( oki_map, AS_0, 8, relief_state ) |
| 108 | AM_RANGE(0x00000, 0x1ffff) AM_ROMBANK("okibank") |
| 109 | AM_RANGE(0x20000, 0x3ffff) AM_ROM |
| 110 | ADDRESS_MAP_END |
| 107 | 111 | |
| 108 | 112 | |
| 109 | 113 | /************************************* |
| r242124 | r242125 | |
| 295 | 299 | |
| 296 | 300 | MCFG_OKIM6295_ADD("oki", ATARI_CLOCK_14MHz/4/3, OKIM6295_PIN7_LOW) |
| 297 | 301 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) |
| 302 | MCFG_DEVICE_ADDRESS_MAP(AS_0, oki_map) |
| 298 | 303 | |
| 299 | 304 | MCFG_SOUND_ADD("ymsnd", YM2413, ATARI_CLOCK_14MHz/4) |
| 300 | 305 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) |
| r242124 | r242125 | |
| 324 | 329 | ROM_LOAD( "136093-0028a.10d", 0x180000, 0x80000, CRC(55fb9111) SHA1(a95508f0831842fa79ca2fc168cfadc8c6d3fbd4) ) |
| 325 | 330 | ROM_LOAD16_BYTE( "136093-0029a.4d", 0x200001, 0x40000, CRC(e4593ff4) SHA1(7360ec7a65aabc90aa787dc30f39992e342495dd) ) |
| 326 | 331 | |
| 327 | | ROM_REGION( 0x200000, "oki", 0 ) /* 2MB for ADPCM data */ |
| 328 | | ROM_LOAD( "136093-0030a.9b", 0x100000, 0x80000, CRC(f4c567f5) SHA1(7e8c1d54d918b0b41625eacbaf6dcb5bd99d1949) ) |
| 329 | | ROM_LOAD( "136093-0031a.10b", 0x180000, 0x80000, CRC(ba908d73) SHA1(a83afd86f4c39394cf624b728a87b8d8b6de1944) ) |
| 332 | ROM_REGION( 0x100000, "oki", 0 ) /* 2MB for ADPCM data */ |
| 333 | ROM_LOAD( "136093-0030a.9b", 0x000000, 0x80000, CRC(f4c567f5) SHA1(7e8c1d54d918b0b41625eacbaf6dcb5bd99d1949) ) |
| 334 | ROM_LOAD( "136093-0031a.10b", 0x080000, 0x80000, CRC(ba908d73) SHA1(a83afd86f4c39394cf624b728a87b8d8b6de1944) ) |
| 330 | 335 | |
| 331 | 336 | ROM_REGION( 0x800, "eeprom:eeprom", 0 ) |
| 332 | 337 | ROM_LOAD( "relief-eeprom.bin", 0x0000, 0x800, CRC(66069f60) SHA1(fac3797888f7ffe972f642aca44c6ca7d208c814) ) |
| r242124 | r242125 | |
| 359 | 364 | ROM_LOAD( "136093-0028a.10d", 0x180000, 0x80000, CRC(55fb9111) SHA1(a95508f0831842fa79ca2fc168cfadc8c6d3fbd4) ) |
| 360 | 365 | ROM_LOAD16_BYTE( "136093-0029.4d", 0x200001, 0x40000, CRC(e4593ff4) SHA1(7360ec7a65aabc90aa787dc30f39992e342495dd) ) |
| 361 | 366 | |
| 362 | | ROM_REGION( 0x200000, "oki", 0 ) /* 2MB for ADPCM data */ |
| 363 | | ROM_LOAD( "136093-0030a.9b", 0x100000, 0x80000, CRC(f4c567f5) SHA1(7e8c1d54d918b0b41625eacbaf6dcb5bd99d1949) ) |
| 364 | | ROM_LOAD( "136093-0031a.10b", 0x180000, 0x80000, CRC(ba908d73) SHA1(a83afd86f4c39394cf624b728a87b8d8b6de1944) ) |
| 367 | ROM_REGION( 0x100000, "oki", 0 ) /* 2MB for ADPCM data */ |
| 368 | ROM_LOAD( "136093-0030a.9b", 0x000000, 0x80000, CRC(f4c567f5) SHA1(7e8c1d54d918b0b41625eacbaf6dcb5bd99d1949) ) |
| 369 | ROM_LOAD( "136093-0031a.10b", 0x080000, 0x80000, CRC(ba908d73) SHA1(a83afd86f4c39394cf624b728a87b8d8b6de1944) ) |
| 365 | 370 | |
| 366 | 371 | ROM_REGION( 0x800, "eeprom:eeprom", 0 ) |
| 367 | 372 | ROM_LOAD( "relief2-eeprom.bin", 0x0000, 0x800, CRC(2131fc40) SHA1(72a9f5f6647fbc74e645b6639db2fdbfbe6456e2) ) |
| r242124 | r242125 | |
| 393 | 398 | ROM_LOAD( "136093-0028a.10d", 0x180000, 0x80000, CRC(55fb9111) SHA1(a95508f0831842fa79ca2fc168cfadc8c6d3fbd4) ) |
| 394 | 399 | ROM_LOAD16_BYTE( "136093-0029.4d", 0x200001, 0x40000, CRC(e4593ff4) SHA1(7360ec7a65aabc90aa787dc30f39992e342495dd) ) |
| 395 | 400 | |
| 396 | | ROM_REGION( 0x200000, "oki", 0 ) /* 2MB for ADPCM data */ |
| 397 | | ROM_LOAD( "136093-0030a.9b", 0x100000, 0x80000, CRC(f4c567f5) SHA1(7e8c1d54d918b0b41625eacbaf6dcb5bd99d1949) ) |
| 398 | | ROM_LOAD( "136093-0031a.10b", 0x180000, 0x80000, CRC(ba908d73) SHA1(a83afd86f4c39394cf624b728a87b8d8b6de1944) ) |
| 401 | ROM_REGION( 0x100000, "oki", 0 ) /* 2MB for ADPCM data */ |
| 402 | ROM_LOAD( "136093-0030a.9b", 0x000000, 0x80000, CRC(f4c567f5) SHA1(7e8c1d54d918b0b41625eacbaf6dcb5bd99d1949) ) |
| 403 | ROM_LOAD( "136093-0031a.10b", 0x080000, 0x80000, CRC(ba908d73) SHA1(a83afd86f4c39394cf624b728a87b8d8b6de1944) ) |
| 399 | 404 | |
| 400 | 405 | ROM_REGION( 0x800, "eeprom:eeprom", 0 ) |
| 401 | 406 | ROM_LOAD( "relief3-eeprom.bin", 0x0000, 0x800, CRC(2131fc40) SHA1(72a9f5f6647fbc74e645b6639db2fdbfbe6456e2) ) |
| r242124 | r242125 | |
| 421 | 426 | |
| 422 | 427 | DRIVER_INIT_MEMBER(relief_state,relief) |
| 423 | 428 | { |
| 424 | | UINT8 *sound_base = memregion("oki")->base(); |
| 425 | | |
| 426 | | /* expand the ADPCM data to avoid lots of memcpy's during gameplay */ |
| 427 | | /* the upper 128k is fixed, the lower 128k is bankswitched */ |
| 428 | | memcpy(&sound_base[0x000000], &sound_base[0x100000], 0x20000); |
| 429 | | memcpy(&sound_base[0x040000], &sound_base[0x100000], 0x20000); |
| 430 | | memcpy(&sound_base[0x080000], &sound_base[0x140000], 0x20000); |
| 431 | | memcpy(&sound_base[0x0c0000], &sound_base[0x160000], 0x20000); |
| 432 | | memcpy(&sound_base[0x100000], &sound_base[0x180000], 0x20000); |
| 433 | | memcpy(&sound_base[0x140000], &sound_base[0x1a0000], 0x20000); |
| 434 | | memcpy(&sound_base[0x180000], &sound_base[0x1c0000], 0x20000); |
| 435 | | memcpy(&sound_base[0x1c0000], &sound_base[0x1e0000], 0x20000); |
| 436 | | |
| 437 | | memcpy(&sound_base[0x020000], &sound_base[0x120000], 0x20000); |
| 438 | | memcpy(&sound_base[0x060000], &sound_base[0x120000], 0x20000); |
| 439 | | memcpy(&sound_base[0x0a0000], &sound_base[0x120000], 0x20000); |
| 440 | | memcpy(&sound_base[0x0e0000], &sound_base[0x120000], 0x20000); |
| 441 | | memcpy(&sound_base[0x160000], &sound_base[0x120000], 0x20000); |
| 442 | | memcpy(&sound_base[0x1a0000], &sound_base[0x120000], 0x20000); |
| 443 | | memcpy(&sound_base[0x1e0000], &sound_base[0x120000], 0x20000); |
| 429 | m_okibank->configure_entries(0, 8, memregion("oki")->base(), 0x20000); |
| 430 | m_okibank->set_entry(0); |
| 444 | 431 | } |
| 445 | 432 | |
| 446 | 433 | |
| 434 | |
| 447 | 435 | |
| 448 | 436 | /************************************* |
| 449 | 437 | * |