|
|
|
@ -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"); |
|
|
|
|