Phase 1: Setup project structure and tool installation guide
- Created project directory structure - Added docs/SETUP_PHASE1.md with tool installation instructions - Added docs/AUDIO_ANALYSIS.md with game audio architecture - Added src/HomuraHimeAudioMod/ BepInEx plugin skeleton - Added patch stubs for VoiceManager, AudioDucking, EnemyAudio - Configured .gitignore for build artifacts and game files - Initialized beads issue tracker
This commit is contained in:
33
src/HomuraHimeAudioMod/HomuraHimeAudioMod.csproj
Normal file
33
src/HomuraHimeAudioMod/HomuraHimeAudioMod.csproj
Normal file
@@ -0,0 +1,33 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net48</TargetFramework>
|
||||
<AssemblyName>HomuraHimeAudioMod</AssemblyName>
|
||||
<RootNamespace>HomuraHimeAudioMod</RootNamespace>
|
||||
<Version>1.0.0</Version>
|
||||
<Authors>Ed</Authors>
|
||||
<Description>Audio improvements mod for HomuraHime - fixes glitches and improves enemy indicators</Description>
|
||||
<GameAssemblyPath>C:\apps\steam\steamapps\common\Homura Hime\HomuraHime_Data\Managed</GameAssemblyPath>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="0Harmony" Version="2.2.2" />
|
||||
<PackageReference Include="BepInEx" Version="5.4.21" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Reference Include="FMODUnity">
|
||||
<HintPath>$(GameAssemblyPath)\FMODUnity.dll</HintPath>
|
||||
<Private>false</Private>
|
||||
</Reference>
|
||||
<Reference Include="UnityEngine.AudioModule">
|
||||
<HintPath>$(GameAssemblyPath)\UnityEngine.AudioModule.dll</HintPath>
|
||||
<Private>false</Private>
|
||||
</Reference>
|
||||
<Reference Include="Assembly-CSharp">
|
||||
<HintPath>$(GameAssemblyPath)\Assembly-CSharp.dll</HintPath>
|
||||
<Private>false</Private>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
19
src/HomuraHimeAudioMod/Patches/AudioDuckingPatch.cs
Normal file
19
src/HomuraHimeAudioMod/Patches/AudioDuckingPatch.cs
Normal file
@@ -0,0 +1,19 @@
|
||||
using HarmonyLib;
|
||||
|
||||
namespace HomuraHimeAudioMod.Patches
|
||||
{
|
||||
/// <summary>
|
||||
/// Patches for audio ducking system improvements.
|
||||
/// TO BE IMPLEMENTED AFTER PHASE 2 CODE ANALYSIS
|
||||
/// </summary>
|
||||
public class AudioDuckingPatch
|
||||
{
|
||||
public static void Apply(ref Harmony harmony)
|
||||
{
|
||||
// TODO: After Phase 2, implement patches for:
|
||||
// - Improve ducking fade times
|
||||
// - Adjust duck amounts for combat
|
||||
// - Add custom ducking rules
|
||||
}
|
||||
}
|
||||
}
|
||||
19
src/HomuraHimeAudioMod/Patches/EnemyAudioPatch.cs
Normal file
19
src/HomuraHimeAudioMod/Patches/EnemyAudioPatch.cs
Normal file
@@ -0,0 +1,19 @@
|
||||
using HarmonyLib;
|
||||
|
||||
namespace HomuraHimeAudioMod.Patches
|
||||
{
|
||||
/// <summary>
|
||||
/// Patches for enemy behavior audio indicator improvements.
|
||||
/// TO BE IMPLEMENTED AFTER PHASE 2 CODE ANALYSIS
|
||||
/// </summary>
|
||||
public class EnemyAudioPatch
|
||||
{
|
||||
public static void Apply(ref Harmony harmony)
|
||||
{
|
||||
// TODO: After Phase 2, implement patches for:
|
||||
// - Boost enemy indicator volumes
|
||||
// - Improve state change audio cues
|
||||
// - Add debug logging for enemy audio
|
||||
}
|
||||
}
|
||||
}
|
||||
19
src/HomuraHimeAudioMod/Patches/VoiceManagerPatch.cs
Normal file
19
src/HomuraHimeAudioMod/Patches/VoiceManagerPatch.cs
Normal file
@@ -0,0 +1,19 @@
|
||||
using HarmonyLib;
|
||||
|
||||
namespace HomuraHimeAudioMod.Patches
|
||||
{
|
||||
/// <summary>
|
||||
/// Patches for voice limit and voice manager improvements.
|
||||
/// TO BE IMPLEMENTED AFTER PHASE 2 CODE ANALYSIS
|
||||
/// </summary>
|
||||
public class VoiceManagerPatch
|
||||
{
|
||||
public static void Apply(ref Harmony harmony)
|
||||
{
|
||||
// TODO: After Phase 2, implement patches for:
|
||||
// - Increase max voice count
|
||||
// - Improve voice stealing behavior
|
||||
// - Adjust pooling sizes
|
||||
}
|
||||
}
|
||||
}
|
||||
47
src/HomuraHimeAudioMod/Plugin.cs
Normal file
47
src/HomuraHimeAudioMod/Plugin.cs
Normal file
@@ -0,0 +1,47 @@
|
||||
using BepInEx;
|
||||
using BepInEx.Logging;
|
||||
using HarmonyLib;
|
||||
|
||||
namespace HomuraHimeAudioMod
|
||||
{
|
||||
[BepInPlugin(PluginInfo.PLUGIN_GUID, PluginInfo.PLUGIN_NAME, PluginInfo.PLUGIN_VERSION)]
|
||||
public class Plugin : BaseUnityPlugin
|
||||
{
|
||||
public const string PLUGIN_GUID = "com.homurahime.audiomod";
|
||||
public const string PLUGIN_NAME = "HomuraHime Audio Mod";
|
||||
public const string PLUGIN_VERSION = "1.0.0";
|
||||
|
||||
private static Plugin instance;
|
||||
private static ManualLogSource logger;
|
||||
private Harmony harmony;
|
||||
|
||||
public static ManualLogSource Log => logger;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
instance = this;
|
||||
logger = Logger;
|
||||
|
||||
harmony = new Harmony(PluginInfo.PLUGIN_GUID);
|
||||
|
||||
ApplyPatches();
|
||||
}
|
||||
|
||||
private void ApplyPatches()
|
||||
{
|
||||
Log.LogInfo($"Applying audio patches...");
|
||||
|
||||
// Phase 2 will populate these patch classes after code analysis
|
||||
// VoiceManagerPatch.Apply(ref harmony);
|
||||
// AudioDuckingPatch.Apply(ref harmony);
|
||||
// EnemyAudioPatch.Apply(ref harmony);
|
||||
|
||||
Log.LogInfo($"Patches applied successfully");
|
||||
}
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
harmony?.UnpatchAll();
|
||||
}
|
||||
}
|
||||
}
|
||||
19
src/HomuraHimeAudioMod/Properties/AssemblyInfo.cs
Normal file
19
src/HomuraHimeAudioMod/Properties/AssemblyInfo.cs
Normal file
@@ -0,0 +1,19 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
[assembly: AssemblyTitle("HomuraHimeAudioMod")]
|
||||
[assembly: AssemblyDescription("Audio improvements mod for HomuraHime")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("HomuraHimeAudioMod")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2026")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
[assembly: Guid("xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")]
|
||||
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
Reference in New Issue
Block a user