Vendor Teakra, make emulator own DSP RAM and add DSP RAM to fastmem (#806)
* DSP: Own DSP RAM and add it to fastmem * Vendor Teakra * Add MacOS support to fastmem * Fix MacOS fastmem paths * Fix iOS build
This commit is contained in:
@@ -22,7 +22,6 @@ std::unique_ptr<Audio::DSPCore> Audio::makeDSPCore(EmulatorConfig& config, Memor
|
||||
break;
|
||||
}
|
||||
|
||||
mem.setDSPMem(core->getDspMemory());
|
||||
return core;
|
||||
}
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ namespace Audio {
|
||||
}
|
||||
|
||||
HLE_DSP::HLE_DSP(Memory& mem, Scheduler& scheduler, DSPService& dspService, EmulatorConfig& config)
|
||||
: DSPCore(mem, scheduler, dspService, config) {
|
||||
: DSPCore(mem, scheduler, dspService, config), dspRam(*(Audio::HLE::DspMemory*)mem.getDSPMem()) {
|
||||
// Set up source indices
|
||||
for (int i = 0; i < sources.size(); i++) {
|
||||
sources[i].index = i;
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
using namespace Audio;
|
||||
|
||||
TeakraDSP::TeakraDSP(Memory& mem, Scheduler& scheduler, DSPService& dspService, EmulatorConfig& config)
|
||||
: DSPCore(mem, scheduler, dspService, config), pipeBaseAddr(0), running(false) {
|
||||
: DSPCore(mem, scheduler, dspService, config), pipeBaseAddr(0), teakra(getTeakraConfig()), running(false) {
|
||||
// Set up callbacks for Teakra
|
||||
Teakra::AHBMCallback ahbm;
|
||||
|
||||
@@ -82,6 +82,13 @@ TeakraDSP::TeakraDSP(Memory& mem, Scheduler& scheduler, DSPService& dspService,
|
||||
teakra.SetSemaphoreHandler([processPipeEvent]() { processPipeEvent(false); });
|
||||
}
|
||||
|
||||
Teakra::UserConfig TeakraDSP::getTeakraConfig() {
|
||||
Teakra::UserConfig config;
|
||||
config.dsp_memory = mem.getDSPMem();
|
||||
|
||||
return config;
|
||||
}
|
||||
|
||||
void TeakraDSP::reset() {
|
||||
teakra.Reset();
|
||||
running = false;
|
||||
@@ -237,7 +244,7 @@ void TeakraDSP::loadComponent(std::vector<u8>& data, u32 programMask, u32 dataMa
|
||||
teakra.Reset();
|
||||
running = true;
|
||||
|
||||
u8* dspCode = teakra.GetDspMemory().data();
|
||||
u8* dspCode = teakra.GetDspMemory();
|
||||
u8* dspData = dspCode + 0x40000;
|
||||
|
||||
Dsp1 dsp1;
|
||||
|
||||
Reference in New Issue
Block a user