citra-emu
/
citra-canary
Archived
1
0
Fork 0

Update teakra and address more comments

This commit is contained in:
Weiyi Wang 2018-12-15 13:36:33 -05:00
parent 05c372bf6c
commit 969dc3b46f
2 changed files with 9 additions and 4 deletions

2
externals/teakra vendored

@ -1 +1 @@
Subproject commit 97f9ec6171882ee65fe6a011af82b96cfb98cff0 Subproject commit 343bad999d53279b5ed966db3f36e2d1c6f5d85b

View File

@ -153,7 +153,12 @@ struct DspLle::Impl final {
return &memory[DspDataOffset + baddr]; return &memory[DspDataOffset + baddr];
} }
PipeStatus GetPipeStatus(u8 pipe_index, PipeDirection direction) { const u8* GetDspDataPointer(u32 baddr) const {
auto& memory = teakra.GetDspMemory();
return &memory[DspDataOffset + baddr];
}
PipeStatus GetPipeStatus(u8 pipe_index, PipeDirection direction) const {
u8 slot_index = PipeIndexToSlotIndex(pipe_index, direction); u8 slot_index = PipeIndexToSlotIndex(pipe_index, direction);
PipeStatus pipe_status; PipeStatus pipe_status;
std::memcpy(&pipe_status, std::memcpy(&pipe_status,
@ -249,7 +254,7 @@ struct DspLle::Impl final {
} }
return data; return data;
} }
u16 GetPipeReadableSize(u8 pipe_index) { u16 GetPipeReadableSize(u8 pipe_index) const {
PipeStatus pipe_status = GetPipeStatus(pipe_index, PipeDirection::DSPtoCPU); PipeStatus pipe_status = GetPipeStatus(pipe_index, PipeDirection::DSPtoCPU);
u16 size = pipe_status.write_bptr - pipe_status.read_bptr; u16 size = pipe_status.write_bptr - pipe_status.read_bptr;
if (pipe_status.IsWrapped()) { if (pipe_status.IsWrapped()) {
@ -307,7 +312,7 @@ struct DspLle::Impl final {
return; return;
} }
// Send finalization signal // Send finalization signal via command/reply register 2
constexpr u16 FinalizeSignal = 0x8000; constexpr u16 FinalizeSignal = 0x8000;
while (!teakra.SendDataIsEmpty(2)) while (!teakra.SendDataIsEmpty(2))
RunTeakraSlice(); RunTeakraSlice();