This commit is contained in:
Michaël Banaan Ananas 2013-06-03 21:32:25 +00:00
parent b73aab8d66
commit 7611b2728e
4 changed files with 21 additions and 14 deletions

View File

@ -17,6 +17,8 @@
- Src B and Src NOTE bits - Src B and Src NOTE bits
- statusreg Busy and End bits - statusreg Busy and End bits
- timer register 0x11 - timer register 0x11
- Is memory handling 100% correct? At the moment, seibuspi.c is the only
hardware currently emulated that uses external handlers.
- oh, and a lot more... - oh, and a lot more...
*/ */
@ -1338,12 +1340,12 @@ UINT8 ymf271_device::ymf271_read_memory(UINT32 offset)
{ {
if (m_ext_read_handler.isnull()) if (m_ext_read_handler.isnull())
{ {
if (offset < m_region_size) if (offset < m_mem_size)
return m_region_base[offset]; return m_mem_base[offset];
/* 8MB chip limit (shouldn't happen) */ /* 8MB chip limit (shouldn't happen) */
else if (offset > 0x7fffff) else if (offset > 0x7fffff)
return m_region_base[offset & 0x7fffff]; return m_mem_base[offset & 0x7fffff];
else else
return 0; return 0;
@ -1686,8 +1688,8 @@ void ymf271_device::device_start()
m_timA = timer_alloc(0); m_timA = timer_alloc(0);
m_timB = timer_alloc(1); m_timB = timer_alloc(1);
m_region_base = *region(); m_mem_base = *region();
m_region_size = region()->bytes(); m_mem_size = region()->bytes();
m_irq_handler.resolve(); m_irq_handler.resolve();
m_ext_read_handler.resolve(); m_ext_read_handler.resolve();

View File

@ -132,8 +132,8 @@ private:
UINT8 m_ext_rw; UINT8 m_ext_rw;
UINT8 m_ext_readlatch; UINT8 m_ext_readlatch;
UINT8 *m_region_base; UINT8 *m_mem_base;
UINT32 m_region_size; UINT32 m_mem_size;
UINT32 m_clock; UINT32 m_clock;
emu_timer *m_timA, *m_timB; emu_timer *m_timA, *m_timB;

View File

@ -17,6 +17,11 @@
8-bit PCM, 16-bit PCM ...... 0.172 to 88.2kHz in 512 steps 8-bit PCM, 16-bit PCM ...... 0.172 to 88.2kHz in 512 steps
256 steps total level and 16 steps panpot can be set 256 steps total level and 16 steps panpot can be set
Voice signal is output in stereo 16-bit 2's complement MSB-first format Voice signal is output in stereo 16-bit 2's complement MSB-first format
TODO:
- Is memory handling 100% correct? At the moment, Konami firewave.c is the only
hardware currently emulated that uses external handlers.
It also happens to be the only one using 16-bit PCM.
*/ */
@ -51,12 +56,12 @@ UINT8 ymz280b_device::ymz280b_read_memory(UINT32 offset)
{ {
if (m_ext_read_handler.isnull()) if (m_ext_read_handler.isnull())
{ {
if (offset < m_region_size) if (offset < m_mem_size)
return m_region_base[offset]; return m_mem_base[offset];
/* 16MB chip limit (shouldn't happen) */ /* 16MB chip limit (shouldn't happen) */
else if (offset > 0xffffff) else if (offset > 0xffffff)
return m_region_base[offset & 0xffffff]; return m_mem_base[offset & 0xffffff];
else else
return 0; return 0;
@ -583,8 +588,8 @@ void ymz280b_device::device_start()
/* initialize the rest of the structure */ /* initialize the rest of the structure */
m_master_clock = (double)clock() / 384.0; m_master_clock = (double)clock() / 384.0;
m_region_base = *region(); m_mem_base = *region();
m_region_size = region()->bytes(); m_mem_size = region()->bytes();
m_irq_handler.resolve(); m_irq_handler.resolve();
for (int i = 0; i < 8; i++) for (int i = 0; i < 8; i++)

View File

@ -115,8 +115,8 @@ private:
devcb2_write8 m_ext_write_handler;/* external RAM write handler */ devcb2_write8 m_ext_write_handler;/* external RAM write handler */
double m_master_clock; /* master clock frequency */ double m_master_clock; /* master clock frequency */
UINT8 *m_region_base; /* pointer to the base of the region */ UINT8 *m_mem_base; /* pointer to the base of external memory */
UINT32 m_region_size; UINT32 m_mem_size;
sound_stream *m_stream; /* which stream are we using */ sound_stream *m_stream; /* which stream are we using */
INT16 *m_scratch; INT16 *m_scratch;
#if MAKE_WAVS #if MAKE_WAVS