From 7611b2728eaef988beeee5dec79ef3cb3b0ced0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Banaan=20Ananas?= Date: Mon, 3 Jun 2013 21:32:25 +0000 Subject: [PATCH] (note) --- src/emu/sound/ymf271.c | 12 +++++++----- src/emu/sound/ymf271.h | 4 ++-- src/emu/sound/ymz280b.c | 15 ++++++++++----- src/emu/sound/ymz280b.h | 4 ++-- 4 files changed, 21 insertions(+), 14 deletions(-) diff --git a/src/emu/sound/ymf271.c b/src/emu/sound/ymf271.c index 1b994e5247f..8fe61d581b8 100644 --- a/src/emu/sound/ymf271.c +++ b/src/emu/sound/ymf271.c @@ -17,6 +17,8 @@ - Src B and Src NOTE bits - statusreg Busy and End bits - 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... */ @@ -1338,12 +1340,12 @@ UINT8 ymf271_device::ymf271_read_memory(UINT32 offset) { if (m_ext_read_handler.isnull()) { - if (offset < m_region_size) - return m_region_base[offset]; + if (offset < m_mem_size) + return m_mem_base[offset]; /* 8MB chip limit (shouldn't happen) */ else if (offset > 0x7fffff) - return m_region_base[offset & 0x7fffff]; + return m_mem_base[offset & 0x7fffff]; else return 0; @@ -1686,8 +1688,8 @@ void ymf271_device::device_start() m_timA = timer_alloc(0); m_timB = timer_alloc(1); - m_region_base = *region(); - m_region_size = region()->bytes(); + m_mem_base = *region(); + m_mem_size = region()->bytes(); m_irq_handler.resolve(); m_ext_read_handler.resolve(); diff --git a/src/emu/sound/ymf271.h b/src/emu/sound/ymf271.h index f0acbda3715..79ba56de527 100644 --- a/src/emu/sound/ymf271.h +++ b/src/emu/sound/ymf271.h @@ -132,8 +132,8 @@ private: UINT8 m_ext_rw; UINT8 m_ext_readlatch; - UINT8 *m_region_base; - UINT32 m_region_size; + UINT8 *m_mem_base; + UINT32 m_mem_size; UINT32 m_clock; emu_timer *m_timA, *m_timB; diff --git a/src/emu/sound/ymz280b.c b/src/emu/sound/ymz280b.c index e1ea3d0f24e..2263049eaee 100644 --- a/src/emu/sound/ymz280b.c +++ b/src/emu/sound/ymz280b.c @@ -17,6 +17,11 @@ 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 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 (offset < m_region_size) - return m_region_base[offset]; + if (offset < m_mem_size) + return m_mem_base[offset]; /* 16MB chip limit (shouldn't happen) */ else if (offset > 0xffffff) - return m_region_base[offset & 0xffffff]; + return m_mem_base[offset & 0xffffff]; else return 0; @@ -583,8 +588,8 @@ void ymz280b_device::device_start() /* initialize the rest of the structure */ m_master_clock = (double)clock() / 384.0; - m_region_base = *region(); - m_region_size = region()->bytes(); + m_mem_base = *region(); + m_mem_size = region()->bytes(); m_irq_handler.resolve(); for (int i = 0; i < 8; i++) diff --git a/src/emu/sound/ymz280b.h b/src/emu/sound/ymz280b.h index 656ed30ec90..6214ccf6c0d 100644 --- a/src/emu/sound/ymz280b.h +++ b/src/emu/sound/ymz280b.h @@ -115,8 +115,8 @@ private: devcb2_write8 m_ext_write_handler;/* external RAM write handler */ double m_master_clock; /* master clock frequency */ - UINT8 *m_region_base; /* pointer to the base of the region */ - UINT32 m_region_size; + UINT8 *m_mem_base; /* pointer to the base of external memory */ + UINT32 m_mem_size; sound_stream *m_stream; /* which stream are we using */ INT16 *m_scratch; #if MAKE_WAVS