From 02259e7b202bc6fe5cabdaf9a9cf174c276c8e05 Mon Sep 17 00:00:00 2001 From: MtnDewIt <107611247+MtnDewIt@users.noreply.github.com> Date: Fri, 28 Nov 2025 10:01:10 +1100 Subject: [PATCH 1/7] Migrate to .NET 10 --- .github/workflows/build.yml | 2 +- .nuget/NuGet.Config | 6 --- TagTool.sln | 41 ------------------- TagTool.slnx | 14 +++++++ TagTool/Audio/Utils/AudioUtils.cs | 2 +- .../Commands/Files/ConvertVariantCommand.cs | 2 +- TagTool/Common/FileTimeUtil.cs | 2 +- TagTool/TagTool.csproj | 4 +- 8 files changed, 20 insertions(+), 53 deletions(-) delete mode 100644 .nuget/NuGet.Config delete mode 100644 TagTool.sln create mode 100644 TagTool.slnx diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index dffbbc3ca..6bc7efad4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -7,7 +7,7 @@ on: jobs: build-win: env: - TARGET_FRAMEWORK: net8.0-windows + TARGET_FRAMEWORK: net10.0-windows PLATFORM: x64 strategy: diff --git a/.nuget/NuGet.Config b/.nuget/NuGet.Config deleted file mode 100644 index 79e7784da..000000000 --- a/.nuget/NuGet.Config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/TagTool.sln b/TagTool.sln deleted file mode 100644 index b3e0c3a96..000000000 --- a/TagTool.sln +++ /dev/null @@ -1,41 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.7.34024.191 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TagTool", "TagTool\TagTool.csproj", "{42814DEE-5A94-4901-BDA9-28AFD2D4F5AC}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HaloShaderGenerator", "ShaderGenerator\HaloShaderGenerator\HaloShaderGenerator.csproj", "{17BFEFFB-1619-4647-BA40-3CD1D87FD774}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {42814DEE-5A94-4901-BDA9-28AFD2D4F5AC}.Debug|x64.ActiveCfg = Debug|x64 - {42814DEE-5A94-4901-BDA9-28AFD2D4F5AC}.Debug|x64.Build.0 = Debug|x64 - {42814DEE-5A94-4901-BDA9-28AFD2D4F5AC}.Debug|x86.ActiveCfg = Debug|x86 - {42814DEE-5A94-4901-BDA9-28AFD2D4F5AC}.Debug|x86.Build.0 = Debug|x86 - {42814DEE-5A94-4901-BDA9-28AFD2D4F5AC}.Release|x64.ActiveCfg = Release|x64 - {42814DEE-5A94-4901-BDA9-28AFD2D4F5AC}.Release|x64.Build.0 = Release|x64 - {42814DEE-5A94-4901-BDA9-28AFD2D4F5AC}.Release|x86.ActiveCfg = Release|x86 - {42814DEE-5A94-4901-BDA9-28AFD2D4F5AC}.Release|x86.Build.0 = Release|x86 - {17BFEFFB-1619-4647-BA40-3CD1D87FD774}.Debug|x64.ActiveCfg = Debug|x64 - {17BFEFFB-1619-4647-BA40-3CD1D87FD774}.Debug|x64.Build.0 = Debug|x64 - {17BFEFFB-1619-4647-BA40-3CD1D87FD774}.Debug|x86.ActiveCfg = Debug|x86 - {17BFEFFB-1619-4647-BA40-3CD1D87FD774}.Debug|x86.Build.0 = Debug|x86 - {17BFEFFB-1619-4647-BA40-3CD1D87FD774}.Release|x64.ActiveCfg = Release|x64 - {17BFEFFB-1619-4647-BA40-3CD1D87FD774}.Release|x64.Build.0 = Release|x64 - {17BFEFFB-1619-4647-BA40-3CD1D87FD774}.Release|x86.ActiveCfg = Release|x86 - {17BFEFFB-1619-4647-BA40-3CD1D87FD774}.Release|x86.Build.0 = Release|x86 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {1EE3E5AD-5339-4F4B-A40B-83C627BD2794} - EndGlobalSection -EndGlobal diff --git a/TagTool.slnx b/TagTool.slnx new file mode 100644 index 000000000..6ea3e4701 --- /dev/null +++ b/TagTool.slnx @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/TagTool/Audio/Utils/AudioUtils.cs b/TagTool/Audio/Utils/AudioUtils.cs index 801e79c0c..7699d98cc 100644 --- a/TagTool/Audio/Utils/AudioUtils.cs +++ b/TagTool/Audio/Utils/AudioUtils.cs @@ -51,7 +51,7 @@ public static byte[] ConvertPCM32ToPCM16(ReadOnlySpan data) { var newData = new byte[data.Length / 2]; var input = MemoryMarshal.Cast(data); - var output = MemoryMarshal.Cast(newData); + var output = MemoryMarshal.Cast(newData.AsSpan()); for (int i = 0; i < input.Length; i++) { diff --git a/TagTool/Commands/Files/ConvertVariantCommand.cs b/TagTool/Commands/Files/ConvertVariantCommand.cs index 5d8ab0100..2c638ac05 100644 --- a/TagTool/Commands/Files/ConvertVariantCommand.cs +++ b/TagTool/Commands/Files/ConvertVariantCommand.cs @@ -178,7 +178,7 @@ private async Task ConvertFileAsync(string filePath) private void FixBlfEndianness(FileStream stream, Blf blf) { var buffer = new byte[stream.Length]; - stream.Read(buffer, 0, buffer.Length); + stream.ReadExactly(buffer); using (var memoryStream = new MemoryStream(buffer)) { diff --git a/TagTool/Common/FileTimeUtil.cs b/TagTool/Common/FileTimeUtil.cs index a3540a24f..ace4c1920 100644 --- a/TagTool/Common/FileTimeUtil.cs +++ b/TagTool/Common/FileTimeUtil.cs @@ -20,7 +20,7 @@ public static DateTime GetLinkerTimestampUtc(string filePath) using (var file = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) { - file.Read(bytes, 0, bytes.Length); + file.ReadExactly(bytes); } var headerPos = BitConverter.ToInt32(bytes, peHeaderOffset); diff --git a/TagTool/TagTool.csproj b/TagTool/TagTool.csproj index cb547ba52..75b7dd727 100644 --- a/TagTool/TagTool.csproj +++ b/TagTool/TagTool.csproj @@ -6,13 +6,13 @@ TagTool TagTool TagTool.ico - net8.0-windows + net10.0-windows none true false true $(NoWarn),CS0169,CS0414,CS0649,CS1591;CA1416 - 12 + 14 false true obj\$(Platform)\$(ConfigurationName)\$(TargetFramework)\Documentation.xml From b9bbd447db7b4c2aa62bfb34492b149e3ae48f94 Mon Sep 17 00:00:00 2001 From: MtnDewIt <107611247+MtnDewIt@users.noreply.github.com> Date: Fri, 28 Nov 2025 11:09:27 +1100 Subject: [PATCH 2/7] Update Project Format --- TagTool/Properties/AssemblyInfo.cs | 24 +---- TagTool/Properties/Resources.Designer.cs | 63 ------------ TagTool/Properties/Resources.resx | 120 ----------------------- TagTool/TagTool.csproj | 26 ++--- 4 files changed, 11 insertions(+), 222 deletions(-) delete mode 100644 TagTool/Properties/Resources.Designer.cs delete mode 100644 TagTool/Properties/Resources.resx diff --git a/TagTool/Properties/AssemblyInfo.cs b/TagTool/Properties/AssemblyInfo.cs index e45567518..165f76ded 100644 --- a/TagTool/Properties/AssemblyInfo.cs +++ b/TagTool/Properties/AssemblyInfo.cs @@ -1,35 +1,17 @@ using System.Reflection; using System.Runtime.InteropServices; -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. [assembly: AssemblyTitle("TagTool-NET")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("TagTool-NET")] -[assembly: AssemblyCopyright("Copyright © 2025")] -[assembly: AssemblyTrademark("")] +[assembly: AssemblyCopyright("Copyright © 2025")] +[assembly: AssemblyTrademark("MtnDewIt ™ 2025")] [assembly: AssemblyCulture("")] -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. [assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("aa6e96fc-04b5-4b3b-9963-f6587190bc39")] -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.5.*")] -[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file diff --git a/TagTool/Properties/Resources.Designer.cs b/TagTool/Properties/Resources.Designer.cs deleted file mode 100644 index 0bc746744..000000000 --- a/TagTool/Properties/Resources.Designer.cs +++ /dev/null @@ -1,63 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace TagTool.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("TagTool.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - } -} diff --git a/TagTool/Properties/Resources.resx b/TagTool/Properties/Resources.resx deleted file mode 100644 index 29dcb1b3a..000000000 --- a/TagTool/Properties/Resources.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/TagTool/TagTool.csproj b/TagTool/TagTool.csproj index 75b7dd727..d31ba9a50 100644 --- a/TagTool/TagTool.csproj +++ b/TagTool/TagTool.csproj @@ -1,28 +1,24 @@ - {42814DEE-5A94-4901-BDA9-28AFD2D4F5AC} Exe - Properties - TagTool - TagTool TagTool.ico net10.0-windows - none - true - false - true - $(NoWarn),CS0169,CS0414,CS0649,CS1591;CA1416 14 + true + false + true + none false true + $(NoWarn),CS0169,CS0414,CS0649,CS1591;CA1416 obj\$(Platform)\$(ConfigurationName)\$(TargetFramework)\Documentation.xml false win-x64;win-x86 - x86;x64 + x64;x86 Release x64 - - false + + false @@ -48,12 +44,6 @@ - - - ResXFileCodeGenerator - Resources.Designer.cs - - From 8ef5cbff8332329ed1b72243c6ac43a22fa8fb1d Mon Sep 17 00:00:00 2001 From: MtnDewIt <107611247+MtnDewIt@users.noreply.github.com> Date: Fri, 28 Nov 2025 11:22:41 +1100 Subject: [PATCH 3/7] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6bc7efad4..e27e130c9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -2,7 +2,7 @@ name: TagTool Build on: push: - branches: [ "dev" ] + branches: [ "net10" ] jobs: build-win: From 226e78ff65a327a9b957c557bc3960445ac6cd5d Mon Sep 17 00:00:00 2001 From: MtnDewIt <107611247+MtnDewIt@users.noreply.github.com> Date: Fri, 28 Nov 2025 11:44:39 +1100 Subject: [PATCH 4/7] Update build.yml --- .github/workflows/build.yml | 34 +++++++++++++--------------------- 1 file changed, 13 insertions(+), 21 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e27e130c9..09b84c358 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -5,22 +5,14 @@ on: branches: [ "net10" ] jobs: - build-win: - env: - TARGET_FRAMEWORK: net10.0-windows - PLATFORM: x64 + build: - strategy: - matrix: - BUILD_CONFIGURATION: [ Debug, Release ] - - runs-on: windows-latest + runs-on: windows-2026 steps: - uses: actions/checkout@v4 - - - name: Initialize Submodules - uses: snickerbockers/submodules-init@v4 + with: + submodules: 'true' - name: Determine Version id: determine_version @@ -28,29 +20,29 @@ jobs: $version = (git rev-parse --short=7 HEAD).Trim() Write-Output "Version determined: $version" Write-Host "::set-output name=version::$version" - - - name: Install 7Zip - run: | - Invoke-WebRequest -Uri "https://www.7-zip.org/a/7z1900-x64.msi" -OutFile "$env:TEMP\7z.msi" - Start-Process -Wait -FilePath msiexec -ArgumentList "/i", "$env:TEMP\7z.msi", "/quiet" - name: Setup dotnet uses: actions/setup-dotnet@v4 with: - dotnet-version: '8.x' + dotnet-version: '10.x' - name: Setup MSBuild uses: microsoft/setup-msbuild@v2 - name: Setup NuGet uses: NuGet/setup-nuget@v1.0.5 + + - name: Install 7Zip + run: | + Invoke-WebRequest -Uri "https://www.7-zip.org/a/7z1900-x64.msi" -OutFile "$env:TEMP\7z.msi" + Start-Process -Wait -FilePath msiexec -ArgumentList "/i", "$env:TEMP\7z.msi", "/quiet" - name: Restore Packages - run: nuget restore TagTool.sln + run: nuget restore TagTool.slnx + - name: Build solution - working-directory: ${{ env.GITHUB_WORKSPACE }} - run: msbuild TagTool.sln /t:rebuild /p:Platform=${{ env.PLATFORM }} /p:Configuration=${{ matrix.BUILD_CONFIGURATION }} /p:TargetFramework=${{ env.TARGET_FRAMEWORK }} + run: msbuild TagTool.slnx -t:rebuild -property:Platform=${{ env.PLATFORM }} -property:Configuration=${{ matrix.BUILD_CONFIGURATION }} -property:TargetFramework=${{ env.TARGET_FRAMEWORK }} - name: Zip Release run: | From 50288cd36621851d654319b150758e73a87bec09 Mon Sep 17 00:00:00 2001 From: MtnDewIt <107611247+MtnDewIt@users.noreply.github.com> Date: Fri, 28 Nov 2025 11:54:08 +1100 Subject: [PATCH 5/7] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 09b84c358..917ffbd24 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -7,7 +7,7 @@ on: jobs: build: - runs-on: windows-2026 + runs-on: windows-latest steps: - uses: actions/checkout@v4 From 249b32681ba73167e227522f39eec2e987d51f99 Mon Sep 17 00:00:00 2001 From: MtnDewIt <107611247+MtnDewIt@users.noreply.github.com> Date: Fri, 28 Nov 2025 12:13:22 +1100 Subject: [PATCH 6/7] Update build.yml --- .github/workflows/build.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 917ffbd24..5d8f126f7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -42,16 +42,16 @@ jobs: - name: Build solution - run: msbuild TagTool.slnx -t:rebuild -property:Platform=${{ env.PLATFORM }} -property:Configuration=${{ matrix.BUILD_CONFIGURATION }} -property:TargetFramework=${{ env.TARGET_FRAMEWORK }} + run: msbuild TagTool.slnx -t:rebuild -property:Platform=x64 -property:Configuration=Release - name: Zip Release run: | - & "C:\Program Files\7-Zip\7z.exe" a ${{ matrix.BUILD_CONFIGURATION }}_${{ env.PLATFORM }}.7z ./TagTool/bin/${{ env.PLATFORM }}/${{ matrix.BUILD_CONFIGURATION }}/${{ env.TARGET_FRAMEWORK }}* + & "C:\Program Files\7-Zip\7z.exe" a Release_x64.7z ./TagTool/bin/x64/Release/* - name: Create Release uses: softprops/action-gh-release@v1 with: - files: ${{ matrix.BUILD_CONFIGURATION }}_${{ env.PLATFORM }}.7z + files: Release_x64.7z tag_name: ${{ steps.determine_version.outputs.version }} draft: false prerelease: false From 0a64a87157fc3d832c926b82aec20695fe6c05c8 Mon Sep 17 00:00:00 2001 From: MtnDewIt <107611247+MtnDewIt@users.noreply.github.com> Date: Fri, 28 Nov 2025 13:08:58 +1100 Subject: [PATCH 7/7] Update ShaderGenerator --- ShaderGenerator | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ShaderGenerator b/ShaderGenerator index 94502a277..d41a48d10 160000 --- a/ShaderGenerator +++ b/ShaderGenerator @@ -1 +1 @@ -Subproject commit 94502a27764dfb8e94dd2e559280d3d10f0387b4 +Subproject commit d41a48d10339ccde4b126df18f1bbafc6ac61a5b