911
910
eslog = fopen("es.log", "w");
913
912
/* create the stream */
914
chip->stream = stream_create(device, 0, 2, device->clock() / (16*32), chip, es5506_update);
913
chip->stream = device->machine().sound().stream_alloc(*device, 0, 2, device->clock() / (16*32), chip, es5506_update);
916
915
/* initialize the regions */
917
chip->region_base[0] = intf->region0 ? (UINT16 *)device->machine->region(intf->region0)->base() : NULL;
918
chip->region_base[1] = intf->region1 ? (UINT16 *)device->machine->region(intf->region1)->base() : NULL;
919
chip->region_base[2] = intf->region2 ? (UINT16 *)device->machine->region(intf->region2)->base() : NULL;
920
chip->region_base[3] = intf->region3 ? (UINT16 *)device->machine->region(intf->region3)->base() : NULL;
916
chip->region_base[0] = intf->region0 ? (UINT16 *)device->machine().region(intf->region0)->base() : NULL;
917
chip->region_base[1] = intf->region1 ? (UINT16 *)device->machine().region(intf->region1)->base() : NULL;
918
chip->region_base[2] = intf->region2 ? (UINT16 *)device->machine().region(intf->region2)->base() : NULL;
919
chip->region_base[3] = intf->region3 ? (UINT16 *)device->machine().region(intf->region3)->base() : NULL;
922
921
/* initialize the rest of the structure */
923
922
chip->device = device;
943
942
/* allocate memory */
944
chip->scratch = auto_alloc_array(device->machine, INT32, 2 * MAX_SAMPLE_CHUNK);
943
chip->scratch = auto_alloc_array(device->machine(), INT32, 2 * MAX_SAMPLE_CHUNK);
946
945
/* register save */
947
state_save_register_device_item(device, 0, chip->sample_rate);
948
state_save_register_device_item(device, 0, chip->write_latch);
949
state_save_register_device_item(device, 0, chip->read_latch);
951
state_save_register_device_item(device, 0, chip->current_page);
952
state_save_register_device_item(device, 0, chip->active_voices);
953
state_save_register_device_item(device, 0, chip->mode);
954
state_save_register_device_item(device, 0, chip->wst);
955
state_save_register_device_item(device, 0, chip->wend);
956
state_save_register_device_item(device, 0, chip->lrend);
957
state_save_register_device_item(device, 0, chip->irqv);
959
state_save_register_device_item_pointer(device, 0, chip->scratch, 2 * MAX_SAMPLE_CHUNK);
946
device->save_item(NAME(chip->sample_rate));
947
device->save_item(NAME(chip->write_latch));
948
device->save_item(NAME(chip->read_latch));
950
device->save_item(NAME(chip->current_page));
951
device->save_item(NAME(chip->active_voices));
952
device->save_item(NAME(chip->mode));
953
device->save_item(NAME(chip->wst));
954
device->save_item(NAME(chip->wend));
955
device->save_item(NAME(chip->lrend));
956
device->save_item(NAME(chip->irqv));
958
device->save_pointer(NAME(chip->scratch), 2 * MAX_SAMPLE_CHUNK);
961
960
for (j = 0; j < 32; j++)
963
state_save_register_device_item(device, j, chip->voice[j].control);
964
state_save_register_device_item(device, j, chip->voice[j].freqcount);
965
state_save_register_device_item(device, j, chip->voice[j].start);
966
state_save_register_device_item(device, j, chip->voice[j].lvol);
967
state_save_register_device_item(device, j, chip->voice[j].end);
968
state_save_register_device_item(device, j, chip->voice[j].lvramp);
969
state_save_register_device_item(device, j, chip->voice[j].accum);
970
state_save_register_device_item(device, j, chip->voice[j].rvol);
971
state_save_register_device_item(device, j, chip->voice[j].rvramp);
972
state_save_register_device_item(device, j, chip->voice[j].ecount);
973
state_save_register_device_item(device, j, chip->voice[j].k2);
974
state_save_register_device_item(device, j, chip->voice[j].k2ramp);
975
state_save_register_device_item(device, j, chip->voice[j].k1);
976
state_save_register_device_item(device, j, chip->voice[j].k1ramp);
977
state_save_register_device_item(device, j, chip->voice[j].o4n1);
978
state_save_register_device_item(device, j, chip->voice[j].o3n1);
979
state_save_register_device_item(device, j, chip->voice[j].o3n2);
980
state_save_register_device_item(device, j, chip->voice[j].o2n1);
981
state_save_register_device_item(device, j, chip->voice[j].o2n2);
982
state_save_register_device_item(device, j, chip->voice[j].o1n1);
983
state_save_register_device_item(device, j, chip->voice[j].exbank);
984
state_save_register_device_item(device, j, chip->voice[j].filtcount);
962
device->save_item(NAME(chip->voice[j].control), j);
963
device->save_item(NAME(chip->voice[j].freqcount), j);
964
device->save_item(NAME(chip->voice[j].start), j);
965
device->save_item(NAME(chip->voice[j].lvol), j);
966
device->save_item(NAME(chip->voice[j].end), j);
967
device->save_item(NAME(chip->voice[j].lvramp), j);
968
device->save_item(NAME(chip->voice[j].accum), j);
969
device->save_item(NAME(chip->voice[j].rvol), j);
970
device->save_item(NAME(chip->voice[j].rvramp), j);
971
device->save_item(NAME(chip->voice[j].ecount), j);
972
device->save_item(NAME(chip->voice[j].k2), j);
973
device->save_item(NAME(chip->voice[j].k2ramp), j);
974
device->save_item(NAME(chip->voice[j].k1), j);
975
device->save_item(NAME(chip->voice[j].k1ramp), j);
976
device->save_item(NAME(chip->voice[j].o4n1), j);
977
device->save_item(NAME(chip->voice[j].o3n1), j);
978
device->save_item(NAME(chip->voice[j].o3n2), j);
979
device->save_item(NAME(chip->voice[j].o2n1), j);
980
device->save_item(NAME(chip->voice[j].o2n2), j);
981
device->save_item(NAME(chip->voice[j].o1n1), j);
982
device->save_item(NAME(chip->voice[j].exbank), j);
983
device->save_item(NAME(chip->voice[j].filtcount), j);
1689
1688
if (ACCESSING_BITS_8_15)
1690
1689
voice->k1 = (voice->k1 & ~0xff00) | (data & 0xff00);
1691
1690
if (LOG_COMMANDS && eslog)
1692
fprintf(eslog, "%s:voice %d, K1=%04x\n", cpuexec_describe_context(machine), chip->current_page & 0x1f, voice->k1);
1691
fprintf(eslog, "%s:voice %d, K1=%04x\n", machine.describe_context(), chip->current_page & 0x1f, voice->k1);
1695
1694
case 0x08: /* LVOL */
1696
1695
if (ACCESSING_BITS_8_15)
1697
1696
voice->lvol = (voice->lvol & ~0xff00) | (data & 0xff00);
1698
1697
if (LOG_COMMANDS && eslog)
1699
fprintf(eslog, "%s:voice %d, left vol=%04x\n", cpuexec_describe_context(machine), chip->current_page & 0x1f, voice->lvol);
1698
fprintf(eslog, "%s:voice %d, left vol=%04x\n", machine.describe_context(), chip->current_page & 0x1f, voice->lvol);
1702
1701
case 0x09: /* RVOL */
1703
1702
if (ACCESSING_BITS_8_15)
1704
1703
voice->rvol = (voice->rvol & ~0xff00) | (data & 0xff00);
1705
1704
if (LOG_COMMANDS && eslog)
1706
fprintf(eslog, "%s:voice %d, right vol=%04x\n", cpuexec_describe_context(machine), chip->current_page & 0x1f, voice->rvol);
1705
fprintf(eslog, "%s:voice %d, right vol=%04x\n", machine.describe_context(), chip->current_page & 0x1f, voice->rvol);
1709
1708
case 0x0a: /* ACC (hi) */