From d3600c92555d7d6b3c28ad2a638ea7360345ad21 Mon Sep 17 00:00:00 2001 From: jute-ado <304153664+jute-ado@users.noreply.github.com> Date: Wed, 22 Jul 2026 17:24:06 +0200 Subject: [PATCH] fix(ajm): accept Gen5 codec types (#526) --- src/SharpEmu.Libs/Audio/AjmExports.cs | 2 +- tests/SharpEmu.Libs.Tests/Audio/AjmExportsTests.cs | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/SharpEmu.Libs/Audio/AjmExports.cs b/src/SharpEmu.Libs/Audio/AjmExports.cs index 62ce0c14..5ac99004 100644 --- a/src/SharpEmu.Libs/Audio/AjmExports.cs +++ b/src/SharpEmu.Libs/Audio/AjmExports.cs @@ -17,7 +17,7 @@ public static class AjmExports private const int OrbisAjmErrorCodecAlreadyRegistered = unchecked((int)0x80930009); private const int OrbisAjmErrorCodecNotRegistered = unchecked((int)0x8093000A); private const int OrbisAjmErrorWrongRevisionFlag = unchecked((int)0x8093000B); - private const uint MaxCodecType = 23; + private const uint MaxCodecType = 25; private const int MaxInstanceIndex = 0x2FFF; private static readonly ConcurrentDictionary Contexts = new(); private static int _nextContextId; diff --git a/tests/SharpEmu.Libs.Tests/Audio/AjmExportsTests.cs b/tests/SharpEmu.Libs.Tests/Audio/AjmExportsTests.cs index 6c84f7c8..1669c289 100644 --- a/tests/SharpEmu.Libs.Tests/Audio/AjmExportsTests.cs +++ b/tests/SharpEmu.Libs.Tests/Audio/AjmExportsTests.cs @@ -80,6 +80,19 @@ public sealed class AjmExportsTests : IDisposable Assert.Equal(InvalidContext, RegisterCodec(contextId + 1, 1)); } + [Theory] + [InlineData(23u)] + [InlineData(24u)] + public void Gen5CodecTypesCanRegisterAndCreateInstances(uint codecType) + { + var contextId = Initialize(); + + Assert.Equal(0, RegisterCodec(contextId, codecType)); + Assert.Equal( + 0, + CreateInstance(contextId, codecType, 0x401, InstanceAddress)); + } + [Fact] public void InstanceDestroy_RejectsUnknownContextAndSlot() {