diff --git a/ArcFormats/ArcXP3.cs b/ArcFormats/ArcXP3.cs index 82c7d9a9..1220ce77 100644 --- a/ArcFormats/ArcXP3.cs +++ b/ArcFormats/ArcXP3.cs @@ -232,10 +232,6 @@ namespace GameRes.Formats.KiriKiri if (!string.IsNullOrEmpty (entry.Name) && entry.Segments.Any()) { dir.Add (entry); -// Trace.WriteLine (string.Format ("{0,-16} {3:X8} {1,11} {2,12}", entry.Name, -// entry.IsEncrypted ? "[encrypted]" : "", -// entry.Segments.First().IsCompressed ? "[compressed]" : "", -// entry.Hash)); } NextEntry: header.BaseStream.Position = dir_offset; @@ -249,6 +245,10 @@ NextEntry: var xp3_entry = entry as Xp3Entry; if (null == xp3_entry) return arc.File.CreateStream (entry.Offset, entry.Size); +// Trace.WriteLine (string.Format ("{0,-16} {3:X8} {1,11} {2,12}", xp3_entry.Name, +// xp3_entry.IsEncrypted ? "[encrypted]" : "", +// xp3_entry.Segments.First().IsCompressed ? "[compressed]" : "", +// xp3_entry.Hash)); if (1 == xp3_entry.Segments.Count && !xp3_entry.IsEncrypted) { var segment = xp3_entry.Segments.First(); diff --git a/ArcFormats/KiriKiriCx.cs b/ArcFormats/KiriKiriCx.cs index e0de7be4..d5391f12 100644 --- a/ArcFormats/KiriKiriCx.cs +++ b/ArcFormats/KiriKiriCx.cs @@ -175,7 +175,7 @@ namespace GameRes.Formats.KiriKiri else if (!EmitBody2 (program, stage - 1)) return false; - if (!program.Emit (CxByteCode.MOV_EBX_EAX, 2)) + if (!program.Emit (CxByteCode.MOV_EBX_EAX, 2)) // 0x89 0xc3 return false; if (0 != (program.GetRandom() & 1)) @@ -211,9 +211,10 @@ namespace GameRes.Formats.KiriKiri case 2: // MOV EAX, (Random() & 0x3ff) // MOV EAX, EncryptionControlBlock[EAX] - rc = program.Emit (CxByteCode.MOV_EAX_IMMED) // 0xbe + rc = program.EmitNop (5) // 0xbe + && program.Emit (CxByteCode.MOV_EAX_IMMED, 2) // 0x8b 0x86 && program.EmitUInt32 (program.GetRandom() & 0x3ff) - && program.Emit (CxByteCode.MOV_EAX_INDIRECT, 6); // 0x8b 0x86 + && program.Emit (CxByteCode.MOV_EAX_INDIRECT, 0); break; case 1: rc = program.Emit (CxByteCode.MOV_EAX_EDI, 2); // 0x8b 0xc7