aboutsummaryrefslogtreecommitdiff
path: root/src/teakra/include
diff options
context:
space:
mode:
authorArisotura <thetotalworm@gmail.com>2022-10-14 00:02:54 +0200
committerArisotura <thetotalworm@gmail.com>2022-10-14 00:02:54 +0200
commitcdd05c10b414e8aa7f17391a1f8f7adc73c373e2 (patch)
tree29a4f3c93c124d96cdd9bfed84e4d6ff83b5c03a /src/teakra/include
parenta8fba8cc3465e736da6a19cd67a9fd99488ba721 (diff)
more DSP unfucking: make Teakra directly use melonDS's NWRAM banks instead of trying to translate to a flat buffer, fixes bugs with the way the memory banks are ordered etc
Diffstat (limited to 'src/teakra/include')
-rw-r--r--src/teakra/include/teakra/teakra.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/teakra/include/teakra/teakra.h b/src/teakra/include/teakra/teakra.h
index 32b9064..b0cbcf1 100644
--- a/src/teakra/include/teakra/teakra.h
+++ b/src/teakra/include/teakra/teakra.h
@@ -7,6 +7,11 @@
namespace Teakra {
+struct SharedMemoryCallback {
+ std::function<std::uint16_t(std::uint32_t address)> read16;
+ std::function<void(std::uint32_t address, std::uint16_t value)> write16;
+};
+
struct AHBMCallback {
std::function<std::uint8_t(std::uint32_t address)> read8;
std::function<void(std::uint32_t address, std::uint8_t value)> write8;
@@ -25,9 +30,6 @@ public:
void Reset();
- std::array<std::uint8_t, 0x80000>& GetDspMemory();
- const std::array<std::uint8_t, 0x80000>& GetDspMemory() const;
-
// APBP Data
bool SendDataIsEmpty(std::uint8_t index) const;
void SendData(std::uint8_t index, std::uint16_t value);
@@ -70,6 +72,7 @@ public:
// core
void Run(unsigned cycle);
+ void SetSharedMemoryCallback(const SharedMemoryCallback& callback);
void SetAHBMCallback(const AHBMCallback& callback);
void SetAudioCallback(std::function<void(std::array<std::int16_t, 2>)> callback);