Надеюсь, я раскодировал правильно - в предположении "данные инвертированы, адрес инвертирован, пословное чтение".
Часть текста нормальная, часть попорчена - а есть уверенность в 100% правильном считывании?
Код раскодирования на C#:
Код:static void Main(string[] args) { byte[] ds1 = File.ReadAllBytes("DS1.rr1"); byte[] ds2 = File.ReadAllBytes("DS2.rr1"); byte[] ds3 = File.ReadAllBytes("DS3.rr1"); byte[] ds4 = File.ReadAllBytes("DS4.rr1"); FileStream fs = new FileStream("oufile.bin", FileMode.Create); for (int addr = 0; addr < 8192; addr += 2) { int value1 = ds4[(~addr) & 0x1ffe + 0]; int value2 = ds4[(~addr) & 0x1ffe + 1]; fs.WriteByte((byte)(~value1)); fs.WriteByte((byte)(~value2)); } for (int addr = 0; addr < 8192; addr += 2) { int value1 = ds3[(~addr) & 0x1ffe + 0]; int value2 = ds3[(~addr) & 0x1ffe + 1]; fs.WriteByte((byte)(~value1)); fs.WriteByte((byte)(~value2)); } for (int addr = 0; addr < 8192; addr += 2) { int value1 = ds2[(~addr) & 0x1ffe + 0]; int value2 = ds2[(~addr) & 0x1ffe + 1]; fs.WriteByte((byte)(~value1)); fs.WriteByte((byte)(~value2)); } for (int addr = 0; addr < 8192; addr += 2) { int value1 = ds1[(~addr) & 0x1ffe + 0]; int value2 = ds1[(~addr) & 0x1ffe + 1]; fs.WriteByte((byte)(~value1)); fs.WriteByte((byte)(~value2)); } fs.Flush(); }




Ответить с цитированием