public IEnumerable <FileModResult> TryApply(FileStorage storage) { var s = storage.TryGetDuplicate(new HyoutaUtils.Checksum.SHA1(0x9a75c8439ca12500ul, 0x437af585d0ae9474ul, 0x4b620dfdu)); if (s == null) { return(null); } MemoryStream bin = s.CopyToMemoryAndDispose(); // fix duplicate line on Imperial Chronicle sign var patcher = new SenScriptPatcher(bin); patcher.RemovePartialCommand(0x27aed, 0x2c, 0x27b03, 0x13); // fix incorrect voice clips for Rean in Alisa's bike scene bin.Position = 0x10150; bin.WriteUInt16(63276, EndianUtils.Endianness.LittleEndian); bin.Position = 0x10253; bin.WriteUInt16(63278, EndianUtils.Endianness.LittleEndian); // fix voice/text mismatches in Millium's bike scene patcher.ExtendPartialCommand(0x155cd, 0x4e, 0x15618, new byte[] { 0x20, 0x65, 0x69, 0x74, 0x68, 0x65, 0x72 }); patcher.ReplacePartialCommand(0x168a9, 0x2f, 0x168b1, 0x24, new byte[] { 0x57, 0x6f, 0x6f, 0x20, 0x68, 0x6f, 0x6f }); return(new FileModResult[] { new FileModResult("data/scripts/scena/dat_us/c0100.dat", bin) }); }
public IEnumerable <FileModResult> TryApply(FileStorage storage) { var s = storage.TryGetDuplicate(new HyoutaUtils.Checksum.SHA1(0x84d3de50b7318f20ul, 0xb4fe48836404d134ul, 0xa124be52u)); if (s == null) { return(null); } MemoryStream bin = s.CopyToMemoryAndDispose(); var patcher = new SenScriptPatcher(bin); // fix line from Alisa about the upcoming exams // this has been fixed in the PS4 version but for some reason was not patched back into the PC version patcher.ReplacePartialCommand(0x25b3e, 0x38, 0x25b59, 0x14, new byte[] { 0x66, 0x65, 0x65, 0x6c, 0x3f, 0x20, 0x41, 0x6c, 0x6c, 0x01, 0x70, 0x72, 0x65, 0x70, 0x70, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x61, 0x64, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6f, 0x75, 0x72 }); // two lines later, linebreak was moved to a nicer spot, might as well apply that too bin.SwapBytes(0x25bee, 0x25bfb); return(new FileModResult[] { new FileModResult("data/scripts/scena/dat_us/t1000.dat", bin) }); }
public IEnumerable <FileModResult> TryApply(FileStorage storage) { var s = storage.TryGetDuplicate(new HyoutaUtils.Checksum.SHA1(0x83fc174bcce22201ul, 0xfe2053f855e8879bul, 0x3091e649u)); if (s == null) { return(null); } MemoryStream bin = s.CopyToMemoryAndDispose(); var patcher = new SenScriptPatcher(bin); patcher.ReplacePartialCommand(0x1c6e0, 0x8b, 0x1c71f, 3, new byte[] { 0x27 }); patcher.ReplacePartialCommand(0x1c6e0, 0x89, 0x1c74f, 3, new byte[] { 0x27 }); return(new FileModResult[] { new FileModResult("data/scripts/scena/dat_us/t0000.dat", bin) }); }
public IEnumerable <FileModResult> TryApply(FileStorage storage) { var s = storage.TryGetDuplicate(new HyoutaUtils.Checksum.SHA1(0x4f2a0d4b4c1602bbul, 0xd9aec8dc0785f334ul, 0xc6c285f9u)); if (s == null) { return(null); } MemoryStream bin = s.CopyToMemoryAndDispose(); var patcher = new SenScriptPatcher(bin); patcher.ReplacePartialCommand(0x11129, 0x34, 0x11136, 3, new byte[] { 0x27 }); patcher.ReplacePartialCommand(0x2fc1d, 0xf, 0x2fc25, 2, new byte[] { 0x52, 0x2d, 0x52, 0x69, 0x67, 0x68, 0x74 }); return(new FileModResult[] { new FileModResult("data/scripts/scena/dat_us/t1500.dat", bin) }); }
public IEnumerable <FileModResult> TryApply(FileStorage storage) { var s = storage.TryGetDuplicate(new HyoutaUtils.Checksum.SHA1(0xa740904f6ad37411ul, 0x825565981daa5f59ul, 0x15b55b69u)); if (s == null) { return(null); } MemoryStream bin = s.CopyToMemoryAndDispose(); var patcher = new SenScriptPatcher(bin); patcher.ReplacePartialCommand(0xb2f, 0x61, 0xb34, 3, new byte[] { 0x27 }); return(new FileModResult[] { new FileModResult("data/scripts/scena/dat_us/c0110.dat", bin) }); }
public IEnumerable <FileModResult> TryApply(FileStorage storage) { var s = storage.TryGetDuplicate(new HyoutaUtils.Checksum.SHA1(0xc377fcdc74a195f7ul, 0x9dba543e80a70d2eul, 0xb7fdf12au)); if (s == null) { return(null); } MemoryStream bin = s.CopyToMemoryAndDispose(); var patcher = new SenScriptPatcher(bin); patcher.ReplacePartialCommand(0x67a4, 0x16, 0x67ad, 7, new byte[] { 0x41, 0x68 }); return(new FileModResult[] { new FileModResult("data/scripts/scena/dat_us/m0040.dat", bin) }); }
public IEnumerable <FileModResult> TryApply(FileStorage storage) { var s = storage.TryGetDuplicate(new HyoutaUtils.Checksum.SHA1(0xaf8f356c80083c02ul, 0x8824fd41332b003ful, 0xec834cb1u)); if (s == null) { return(null); } MemoryStream bin = s.CopyToMemoryAndDispose(); var patcher = new SenScriptPatcher(bin); patcher.ReplacePartialCommand(0x5b86, 0x3d, 0x5bb8, 3, new byte[] { 0x27 }); return(new FileModResult[] { new FileModResult("data/scripts/talk/dat_us/tk_beryl.dat", bin) }); }