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