From 271a33eff7864fbe80cc8c5d4c8b05e6a60a4f90 Mon Sep 17 00:00:00 2001 From: RajahOmen <87788526+RajahOmen@users.noreply.github.com> Date: Wed, 15 Jul 2026 19:39:39 -0400 Subject: [PATCH 1/2] Fix parsing ogg audio data --- src/Lumina.Tests/LuminaTests.cs | 18 ++++++++++++++++++ src/Lumina/Data/Files/ScdFile.cs | 2 +- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/Lumina.Tests/LuminaTests.cs b/src/Lumina.Tests/LuminaTests.cs index f05fc71c..667c407d 100644 --- a/src/Lumina.Tests/LuminaTests.cs +++ b/src/Lumina.Tests/LuminaTests.cs @@ -1,3 +1,4 @@ +using Lumina.Data.Files; using Xunit; namespace Lumina.Tests; @@ -18,4 +19,21 @@ public void FilePathsAreParsedCorrectly( string category, string repo, ulong has Assert.Equal( repo, parsed.Repository ); Assert.Equal( hash, parsed.IndexHash ); } + + [RequiresGameInstallationFact] + public void ScdFilesAreLoadedCorrectly() + { + var gameData = RequiresGameInstallationFact.CreateGameData(); + var file = gameData.GetFile( "music/ex1/bgm_ex1_alex01.scd" ); + + Assert.NotNull( file ); + Assert.NotEmpty( file.Data ); + Assert.True( file.AudioDataCount > 0 ); + Assert.NotNull( file.GetAudio( 0 ) ); + Assert.True( file.SoundDataCount > 0 ); + Assert.NotNull( file.GetSound( 0 ) ); + Assert.True( file.TrackDataCount > 0 ); + Assert.NotNull( file.GetTrack( 0 ) ); + + } } \ No newline at end of file diff --git a/src/Lumina/Data/Files/ScdFile.cs b/src/Lumina/Data/Files/ScdFile.cs index ba7da948..bb435064 100644 --- a/src/Lumina/Data/Files/ScdFile.cs +++ b/src/Lumina/Data/Files/ScdFile.cs @@ -514,7 +514,7 @@ public Audio GetAudio( int index ) audio.AudioDataHeader = oggSeekTableHeader; audio.SeekTable = Reader.ReadUInt32Array( (int)( oggSeekTableHeader.SeekTableSize / 4 ) ); - Reader.Position = subInfoStartPos + audioBasicDesc.SubInfoSize; + Reader.Position = subInfoStartPos + audioBasicDesc.SubInfoSize - oggSeekTableHeader.OggHeaderSize; var oggFile = new byte[ oggSeekTableHeader.OggHeaderSize + audioBasicDesc.Size ]; Array.Copy( Reader.ReadBytes( (int)oggSeekTableHeader.OggHeaderSize ), oggFile, oggSeekTableHeader.OggHeaderSize ); From abee55c44bb71ecc89f22b40463e765d5dee6db4 Mon Sep 17 00:00:00 2001 From: RajahOmen <87788526+RajahOmen@users.noreply.github.com> Date: Wed, 15 Jul 2026 19:48:48 -0400 Subject: [PATCH 2/2] formatting --- src/Lumina.Tests/LuminaTests.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Lumina.Tests/LuminaTests.cs b/src/Lumina.Tests/LuminaTests.cs index 667c407d..91e52336 100644 --- a/src/Lumina.Tests/LuminaTests.cs +++ b/src/Lumina.Tests/LuminaTests.cs @@ -34,6 +34,5 @@ public void ScdFilesAreLoadedCorrectly() Assert.NotNull( file.GetSound( 0 ) ); Assert.True( file.TrackDataCount > 0 ); Assert.NotNull( file.GetTrack( 0 ) ); - } } \ No newline at end of file