diff --git a/src/app/emu/audio/dsp.cc b/src/app/emu/audio/dsp.cc index 6de40e2c..0da3dcc0 100644 --- a/src/app/emu/audio/dsp.cc +++ b/src/app/emu/audio/dsp.cc @@ -193,10 +193,10 @@ void Dsp::HandleEcho() { int echoR = clamp16(echoOutR + clip16((sumR * feedbackVolume) >> 7)) & ~1; // write it to ram if (echoWrites) { - aram_.write(adr, echoL & 0xff); - aram_.write((adr + 1) & 0xffff, echoL >> 8); - aram_.write((adr + 2) & 0xffff, echoR & 0xff); - aram_.write((adr + 3) & 0xffff, echoR >> 8); + aram_[adr] = echoL & 0xff; + aram_[(adr + 1) & 0xffff] = echoL >> 8; + aram_[(adr + 2) & 0xffff] = echoR & 0xff; + aram_[(adr + 3) & 0xffff] = echoR >> 8; } // handle indexes if (echoBufferIndex == 0) { diff --git a/src/app/emu/audio/dsp.h b/src/app/emu/audio/dsp.h index 80a09969..a08eee89 100644 --- a/src/app/emu/audio/dsp.h +++ b/src/app/emu/audio/dsp.h @@ -85,7 +85,7 @@ typedef struct DspChannel { class Dsp { public: - Dsp(AudioRam& aram) : aram_(aram) {} + Dsp(std::vector& aram) : aram_(aram) {} void Reset(); @@ -114,7 +114,7 @@ class Dsp { int16_t sample_buffer_[0x400 * 2]; // (1024 samples, *2 for stereo) int16_t sample_offset_; // current offset in samplebuffer - AudioRam& aram_; + std::vector& aram_; // mirror ram uint8_t ram[0x80]; diff --git a/src/app/emu/audio/spc700.cc b/src/app/emu/audio/spc700.cc index 2dd0dc28..3654af43 100644 --- a/src/app/emu/audio/spc700.cc +++ b/src/app/emu/audio/spc700.cc @@ -21,7 +21,6 @@ void Spc700::Reset(bool hard) { Y = 0; SP = 0x00; PSW = ByteToFlags(0x00); - aram_.reset(); } stopped_ = false; reset_wanted_ = true; @@ -251,7 +250,6 @@ void Spc700::ExecuteInstructions(uint8_t opcode) { A <<= 1; PSW.Z = (A == 0); PSW.N = (A & 0x80); - ; break; } case 0x1d: { // decx imp @@ -674,7 +672,6 @@ void Spc700::ExecuteInstructions(uint8_t opcode) { PSW.C = newC; PSW.Z = (A == 0); PSW.N = (A & 0x80); - ; break; } case 0x7d: { // movax imp @@ -682,7 +679,6 @@ void Spc700::ExecuteInstructions(uint8_t opcode) { A = X; PSW.Z = (A == 0); PSW.N = (A & 0x80); - ; break; } case 0x7e: { // cmpy dp @@ -1282,7 +1278,7 @@ void Spc700::ExecuteInstructions(uint8_t opcode) { break; } - LogInstruction(initialPC, opcode); + //LogInstruction(initialPC, opcode); } void Spc700::LogInstruction(uint16_t initial_pc, uint8_t opcode) { @@ -1310,7 +1306,7 @@ void Spc700::LogInstruction(uint16_t initial_pc, uint8_t opcode) { std::cerr << log_entry << std::endl; // Append the log entry to the log - log_.push_back(log_entry); + // log_.push_back(log_entry); } } // namespace audio diff --git a/src/app/emu/audio/spc700.h b/src/app/emu/audio/spc700.h index 3210877e..cb9b02ac 100644 --- a/src/app/emu/audio/spc700.h +++ b/src/app/emu/audio/spc700.h @@ -71,7 +71,6 @@ typedef struct ApuCallbacks { */ class Spc700 { private: - AudioRam& aram_; ApuCallbacks callbacks_; std::vector log_; @@ -87,8 +86,7 @@ class Spc700 { 0xDD, 0x5D, 0xD0, 0xDB, 0x1F, 0x00, 0x00, 0xC0, 0xFF}; public: - explicit Spc700(AudioRam& aram, ApuCallbacks& callbacks) - : aram_(aram), callbacks_(callbacks) {} + explicit Spc700(ApuCallbacks& callbacks) : callbacks_(callbacks) {} // Registers uint8_t A = 0x00; // 8-bit accumulator @@ -146,8 +144,7 @@ class Spc700 { } uint8_t ReadOpcode() { - uint8_t opcode = read(PC); - PC++; + uint8_t opcode = read(PC++); return opcode; }