From 297ab01d4c236779b281d8be74bac2cf33edd748 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 14 May 2022 01:12:23 -0500 Subject: [PATCH] OPN: per-channel oscilloscope --- src/engine/platform/sound/ymfm/ymfm_opn.h | 2 ++ src/engine/platform/ym2203.cpp | 31 ++++++----------------- 2 files changed, 10 insertions(+), 23 deletions(-) diff --git a/src/engine/platform/sound/ymfm/ymfm_opn.h b/src/engine/platform/sound/ymfm/ymfm_opn.h index 7fc76dac5..74d2b01dd 100644 --- a/src/engine/platform/sound/ymfm/ymfm_opn.h +++ b/src/engine/platform/sound/ymfm/ymfm_opn.h @@ -465,6 +465,8 @@ public: // generate one sample of sound void generate(output_data *output, uint32_t numsamples = 1); + fm_engine* debug_fm_engine() { return &m_fm; } + protected: // internal helpers void update_prescale(uint8_t prescale); diff --git a/src/engine/platform/ym2203.cpp b/src/engine/platform/ym2203.cpp index 33809d17e..10fde1f29 100644 --- a/src/engine/platform/ym2203.cpp +++ b/src/engine/platform/ym2203.cpp @@ -284,19 +284,12 @@ const char* DivPlatformYM2203::getEffectName(unsigned char effect) { void DivPlatformYM2203::acquire(short* bufL, short* bufR, size_t start, size_t len) { static int os; - /*ymfm::ym2612::fm_engine* fme=fm->debug_fm_engine(); - ymfm::ssg_engine* ssge=fm->debug_ssg_engine(); - ymfm::adpcm_a_engine* aae=fm->debug_adpcm_a_engine(); - ymfm::adpcm_b_engine* abe=fm->debug_adpcm_b_engine(); + ymfm::ym2203::fm_engine* fme=fm->debug_fm_engine(); - ymfm::ssg_engine::output_data ssgOut; - - ymfm::fm_channel>* fmChan[6]; - ymfm::adpcm_a_channel* adpcmAChan[6]; - for (int i=0; i<6; i++) { + ymfm::fm_channel>* fmChan[3]; + for (int i=0; i<3; i++) { fmChan[i]=fme->debug_channel(i); - adpcmAChan[i]=aae->debug_channel(i); - }*/ + } for (size_t h=start; hdata[oscBuf[i]->needle++]=(fmChan[i]->debug_output(0)+fmChan[i]->debug_output(1)); } - ssge->get_last_out(ssgOut); - for (int i=6; i<9; i++) { - oscBuf[i]->data[oscBuf[i]->needle++]=ssgOut.data[i-6]; + for (int i=3; i<6; i++) { + oscBuf[i]->data[oscBuf[i]->needle++]=fmout.data[i-2]; } - - for (int i=9; i<15; i++) { - oscBuf[i]->data[oscBuf[i]->needle++]=adpcmAChan[i-9]->get_last_out(0)+adpcmAChan[i-9]->get_last_out(1); - } - - oscBuf[15]->data[oscBuf[15]->needle++]=abe->get_last_out(0)+abe->get_last_out(1); - */ } }