using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using TaikoSoundEditor.Properties; using static TaikoSoundEditor.TJA; namespace TaikoSoundEditor { internal static class NUS3Bank { private static void Write32(byte[] b, int pos, uint x) { b[pos++] = (byte)(x & 0xFF); x >>= 8; b[pos++] = (byte)(x & 0xFF); x >>= 8; b[pos++] = (byte)(x & 0xFF); x >>= 8; b[pos] = (byte)(x & 0xFF); } public static byte[] GetNus3Bank(string songId, int uniqueId, byte[] idsp, float demostart) { Logger.Info($"Creating NUS3BANK"); Logger.Info($"songId = {songId}"); Logger.Info($"uniqId = {uniqueId}"); Logger.Info($"idsp.len = {idsp.Length}"); Logger.Info($"demostart = {demostart}"); using var ms = new MemoryStream(); var header = Resources.song_ABCDEF_nus3bank.ToArray(); Write32(header, 0x4, (uint)idsp.Length); for(int i=0;i> 8) & 0xFF); Write32(header, 0x4C, (uint)idsp.Length); Write32(header, 0x628, (uint)idsp.Length); Write32(header, 0x74C, (uint)idsp.Length); Write32(header, 0x4, (uint)idsp.Length); uint bb = (uint)(demostart * 1000); Write32(header, 0x6C4, bb); ms.Write(header); ms.Write(idsp); return ms.ToArray(); } } }