amadeus: Update to REV10 (#2654)
* amadeus: Update to REV10 This implements all the changes made with REV10 on 13.0.0. * Address Ack's comment * Address gdkchan's comment
This commit is contained in:
parent
fe9d5a1981
commit
e17eb7bfaf
29 changed files with 923 additions and 96 deletions
|
@ -20,18 +20,22 @@ using System.Runtime.InteropServices;
|
|||
|
||||
namespace Ryujinx.Audio.Renderer.Dsp.State
|
||||
{
|
||||
[StructLayout(LayoutKind.Sequential, Pack = 1, Size = 0x40)]
|
||||
[StructLayout(LayoutKind.Sequential, Pack = 1, Size = 0x80)]
|
||||
public struct AuxiliaryBufferHeader
|
||||
{
|
||||
[StructLayout(LayoutKind.Sequential, Pack = 1, Size = 0xC)]
|
||||
[StructLayout(LayoutKind.Sequential, Pack = 1, Size = 0x40)]
|
||||
public struct AuxiliaryBufferInfo
|
||||
{
|
||||
private const uint ReadOffsetPosition = 0x0;
|
||||
private const uint WriteOffsetPosition = 0x4;
|
||||
private const uint LostSampleCountPosition = 0x8;
|
||||
private const uint TotalSampleCountPosition = 0xC;
|
||||
|
||||
public uint ReadOffset;
|
||||
public uint WriteOffset;
|
||||
private uint _reserved;
|
||||
public uint LostSampleCount;
|
||||
public uint TotalSampleCount;
|
||||
private unsafe fixed uint _unknown[12];
|
||||
|
||||
public static uint GetReadOffset(IVirtualMemoryManager manager, ulong bufferAddress)
|
||||
{
|
||||
|
@ -43,6 +47,16 @@ namespace Ryujinx.Audio.Renderer.Dsp.State
|
|||
return manager.Read<uint>(bufferAddress + WriteOffsetPosition);
|
||||
}
|
||||
|
||||
public static uint GetLostSampleCount(IVirtualMemoryManager manager, ulong bufferAddress)
|
||||
{
|
||||
return manager.Read<uint>(bufferAddress + LostSampleCountPosition);
|
||||
}
|
||||
|
||||
public static uint GetTotalSampleCount(IVirtualMemoryManager manager, ulong bufferAddress)
|
||||
{
|
||||
return manager.Read<uint>(bufferAddress + TotalSampleCountPosition);
|
||||
}
|
||||
|
||||
public static void SetReadOffset(IVirtualMemoryManager manager, ulong bufferAddress, uint value)
|
||||
{
|
||||
manager.Write(bufferAddress + ReadOffsetPosition, value);
|
||||
|
@ -52,9 +66,26 @@ namespace Ryujinx.Audio.Renderer.Dsp.State
|
|||
{
|
||||
manager.Write(bufferAddress + WriteOffsetPosition, value);
|
||||
}
|
||||
|
||||
public static void SetLostSampleCount(IVirtualMemoryManager manager, ulong bufferAddress, uint value)
|
||||
{
|
||||
manager.Write(bufferAddress + LostSampleCountPosition, value);
|
||||
}
|
||||
|
||||
public static void SetTotalSampleCount(IVirtualMemoryManager manager, ulong bufferAddress, uint value)
|
||||
{
|
||||
manager.Write(bufferAddress + TotalSampleCountPosition, value);
|
||||
}
|
||||
|
||||
public static void Reset(IVirtualMemoryManager manager, ulong bufferAddress)
|
||||
{
|
||||
// NOTE: Lost sample count is never reset, since REV10.
|
||||
manager.Write(bufferAddress + ReadOffsetPosition, 0UL);
|
||||
manager.Write(bufferAddress + TotalSampleCountPosition, 0);
|
||||
}
|
||||
}
|
||||
|
||||
public AuxiliaryBufferInfo BufferInfo;
|
||||
public unsafe fixed uint Unknown[13];
|
||||
public AuxiliaryBufferInfo CpuBufferInfo;
|
||||
public AuxiliaryBufferInfo DspBufferInfo;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue