|
|
|
@ -33,13 +33,9 @@ namespace HLE {
|
|
|
|
|
// double-buffer. The frame counter is located as the very last u16 of each region and is incremented
|
|
|
|
|
// each audio tick.
|
|
|
|
|
|
|
|
|
|
struct SharedMemory;
|
|
|
|
|
|
|
|
|
|
constexpr VAddr region0_base = 0x1FF50000;
|
|
|
|
|
constexpr VAddr region1_base = 0x1FF70000;
|
|
|
|
|
|
|
|
|
|
extern std::array<SharedMemory, 2> g_regions;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* The DSP is native 16-bit. The DSP also appears to be big-endian. When reading 32-bit numbers from
|
|
|
|
|
* its memory regions, the higher and lower 16-bit halves are swapped compared to the little-endian
|
|
|
|
@ -507,6 +503,8 @@ struct SharedMemory {
|
|
|
|
|
};
|
|
|
|
|
ASSERT_DSP_STRUCT(SharedMemory, 0x8000);
|
|
|
|
|
|
|
|
|
|
extern std::array<SharedMemory, 2> g_regions;
|
|
|
|
|
|
|
|
|
|
// Structures must have an offset that is a multiple of two.
|
|
|
|
|
static_assert(offsetof(SharedMemory, frame_counter) % 2 == 0, "Structures in DSP::HLE::SharedMemory must be 2-byte aligned");
|
|
|
|
|
static_assert(offsetof(SharedMemory, source_configurations) % 2 == 0, "Structures in DSP::HLE::SharedMemory must be 2-byte aligned");
|
|
|
|
|