Updated nes pcm dma to read data through the cpu address map.

This commit is contained in:
Wilbert Pol 2008-10-24 21:15:49 +00:00
parent a4059f19ad
commit d64bda5e94
3 changed files with 6 additions and 4 deletions

View File

@ -377,7 +377,7 @@ static int8 apu_dpcm(struct nesapu_info *info, dpcm_t *chan)
bit_pos = 7 - (chan->bits_left & 7);
if (7 == bit_pos)
{
chan->cur_byte = chan->cpu_mem[chan->address];
chan->cur_byte = program_read_byte(chan->address);
chan->address++;
chan->length--;
}
@ -600,6 +600,7 @@ INLINE void apu_update(struct nesapu_info *info, stream_sample_t *buffer16, int
{
int accum;
cpuintrf_push_context( info->APU.dpcm.cpu_num );
while (samples--)
{
accum = apu_square(info, &info->APU.squ[0]);
@ -616,6 +617,7 @@ INLINE void apu_update(struct nesapu_info *info, stream_sample_t *buffer16, int
*(buffer16++)=accum<<8;
}
cpuintrf_pop_context();
}
/* READ VALUES FROM REGISTERS */
@ -691,7 +693,7 @@ static void *nesapu_start(const char *tag, int sndindex, int clock, const void *
info->buffer_size+=info->samps_per_sync;
/* Initialize individual chips */
(info->APU.dpcm).cpu_mem=memory_region(Machine, intf->region);
(info->APU.dpcm).cpu_num= mame_find_cpu_index(Machine, intf->cpu_tag);
info->stream = stream_create(0, 1, rate, info, nes_psg_update_sound);

View File

@ -39,7 +39,7 @@
typedef struct _nes_interface nes_interface;
struct _nes_interface
{
const char *region; /* DMC regions */
const char *cpu_tag; /* CPU tag */
};
READ8_HANDLER( nes_psg_0_r );

View File

@ -137,7 +137,7 @@ typedef struct dpcm_s
uint8 cur_byte;
boolean enabled;
boolean irq_occurred;
uint8 *cpu_mem;
int cpu_num;
signed char vol;
} dpcm_t;