diff --git a/Yura/Archive/TigerArchive.cs b/Yura/Archive/TigerArchive.cs index 8118f3f..ef1a259 100644 --- a/Yura/Archive/TigerArchive.cs +++ b/Yura/Archive/TigerArchive.cs @@ -8,14 +8,16 @@ namespace Yura.Archive class TigerArchive : ArchiveFile { private string _file; + private TextureFormat _platform; private bool _littleEndian; private List _files; - public TigerArchive(string path, bool littleEndian = true) + public TigerArchive(string path, TextureFormat platform, bool littleEndian = true) : base(path) { _file = path; + _platform = platform; _littleEndian = littleEndian; _files = new List(); @@ -48,7 +50,8 @@ public override void Open() var numRecords = reader.ReadUInt32(); // skip 4 bytes, or 8 in version 5 or later - reader.BaseStream.Position += version < 5 ? 4 : 8; + // also dont skip on PS4 since some idiot at CD or Eidos decided this field does not exist on PS4 + reader.BaseStream.Position += version >= 5 && _platform != TextureFormat.Orbis ? 8 : 4; // skip over config name reader.BaseStream.Position += 32; diff --git a/Yura/MainWindow.xaml.cs b/Yura/MainWindow.xaml.cs index 54704c5..77cc852 100644 --- a/Yura/MainWindow.xaml.cs +++ b/Yura/MainWindow.xaml.cs @@ -148,7 +148,7 @@ public void OpenBigfile(string bigfile, IFileSettings settings) _bigfile = new DefianceArchive(bigfile, settings.TextureFormat, _littleEndian); break; case Game.Tiger: - _bigfile = new TigerArchive(bigfile, _littleEndian); + _bigfile = new TigerArchive(bigfile, settings.TextureFormat, _littleEndian); break; default: MessageBox.Show(this, Properties.Resources.NoGameSelectedMessage, Properties.Resources.NoGameSelected, MessageBoxButton.OK, MessageBoxImage.Exclamation); diff --git a/Yura/OpenDialog.xaml b/Yura/OpenDialog.xaml index fdf8f48..5a33669 100644 --- a/Yura/OpenDialog.xaml +++ b/Yura/OpenDialog.xaml @@ -54,8 +54,13 @@ PC PS2 + PSP PS3 + PS4 Xbox + Xbox 360 + Xbox One + Xbox Series X Wii diff --git a/Yura/OpenDialog.xaml.cs b/Yura/OpenDialog.xaml.cs index 95c4ca5..fa44591 100644 --- a/Yura/OpenDialog.xaml.cs +++ b/Yura/OpenDialog.xaml.cs @@ -75,9 +75,7 @@ public TextureFormat TextureFormat { get { - var format = (TextureFormatSelect.SelectedItem as ComboBoxItem).Content.ToString(); - - return (TextureFormat)Enum.Parse(typeof(TextureFormat), format, true); + return (TextureFormat)TextureFormatSelect.SelectedIndex; } } @@ -104,9 +102,20 @@ private void GameSelect_SelectionChanged(object sender, SelectionChangedEventArg public enum TextureFormat { Pc, + + // PlayStation Ps2, + Psp, Ps3, + Orbis, + + // Xbox Xbox, + Xenon, + Durango, + Scarlett, + + // Nintendo Wii }