mirror of
https://github.com/wheremyfoodat/Panda3DS.git
synced 2025-07-13 02:38:30 +12:00
Update teakra
This commit is contained in:
parent
518b279139
commit
9ef7db63ef
6 changed files with 84 additions and 29 deletions
|
@ -66,6 +66,21 @@ namespace Audio {
|
|||
|
||||
virtual Type getType() = 0;
|
||||
virtual void* getRegisters() { return nullptr; }
|
||||
|
||||
// Read a word from program memory. By default, just perform a regular DSP RAM read for the HLE cores
|
||||
// The LLE cores translate the address, accounting for the way Teak memory is mapped
|
||||
virtual u16 readProgramWord(u32 address) {
|
||||
u8* dspRam = getDspMemory();
|
||||
|
||||
auto readByte = [&](u32 addr) {
|
||||
if (addr >= 256_KB) return u8(0);
|
||||
return dspRam[addr];
|
||||
};
|
||||
|
||||
u16 lsb = u16(readByte(address));
|
||||
u16 msb = u16(readByte(address + 1));
|
||||
return u16(lsb | (msb << 8));
|
||||
}
|
||||
};
|
||||
|
||||
std::unique_ptr<DSPCore> makeDSPCore(EmulatorConfig& config, Memory& mem, Scheduler& scheduler, DSPService& dspService);
|
||||
|
|
|
@ -92,6 +92,7 @@ namespace Audio {
|
|||
u8* getDspMemory() override { return teakra.GetDspMemory().data(); }
|
||||
void* getRegisters() override;
|
||||
DSPCore::Type getType() override { return DSPCore::Type::Teakra; }
|
||||
u16 readProgramWord(u32 address) override { return teakra.ProgramRead(address); }
|
||||
|
||||
u16 recvData(u32 regId) override { return teakra.RecvData(regId); }
|
||||
bool recvDataIsReady(u32 regId) override { return teakra.RecvDataIsReady(regId); }
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
#include <QScrollBar>
|
||||
#include <QWidget>
|
||||
|
||||
#include "capstone.hpp"
|
||||
#include "emulator.hpp"
|
||||
#include "panda_qt/disabled_widget_overlay.hpp"
|
||||
|
||||
|
@ -20,10 +19,10 @@ class DSPDebugger : public QWidget {
|
|||
QLineEdit* addressInput;
|
||||
|
||||
DisabledWidgetOverlay* disabledOverlay;
|
||||
DisabledWidgetOverlay* disabledRegisterEditOverlay;
|
||||
|
||||
bool enabled = false;
|
||||
bool followPC = false;
|
||||
Common::CapstoneDisassembler disassembler;
|
||||
|
||||
public:
|
||||
DSPDebugger(Emulator* emulator, QWidget* parent = nullptr);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue