mirror of
https://github.com/Lime3DS/Lime3DS.git
synced 2024-11-27 12:04:16 +01:00
Update teakra and address more comments
This commit is contained in:
parent
05c372bf6c
commit
969dc3b46f
2
externals/teakra
vendored
2
externals/teakra
vendored
@ -1 +1 @@
|
|||||||
Subproject commit 97f9ec6171882ee65fe6a011af82b96cfb98cff0
|
Subproject commit 343bad999d53279b5ed966db3f36e2d1c6f5d85b
|
@ -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();
|
||||||
|
Loading…
Reference in New Issue
Block a user