From ecfa83a21358d13756f8d9d04b514c76f42be32d Mon Sep 17 00:00:00 2001 From: ZestyTS Date: Wed, 28 Sep 2022 20:55:05 -0700 Subject: [PATCH 01/26] Back ported all of 3.99.2 into 3.0.3 --- UWUVCI AIO WPF/App.config | 3 + UWUVCI AIO WPF/Classes/BootImage.cs | 32 ++++- UWUVCI AIO WPF/Classes/Injection.cs | 113 ++++++--------- UWUVCI AIO WPF/Classes/ToolCheck.cs | 57 +++----- UWUVCI AIO WPF/Models/MainViewModel.cs | 60 +++++--- UWUVCI AIO WPF/Properties/AssemblyInfo.cs | 4 +- .../Properties/Settings.Designer.cs | 14 ++ .../Configurations/WiiConfig.xaml | 2 + .../Configurations/WiiConfig.xaml.cs | 132 +++++++++++++++++- UWUVCI AIO WPF/UI/Frames/SettingsFrame.xaml | 2 +- .../UI/Frames/SettingsFrame.xaml.cs | 4 +- UWUVCI AIO WPF/UI/Frames/StartFrame.xaml | 9 +- UWUVCI AIO WPF/UI/Frames/StartFrame.xaml.cs | 4 + UWUVCI AIO WPF/UI/Frames/Teaser.xaml.cs | 4 +- UWUVCI AIO WPF/UWUVCI AIO WPF.csproj | 9 +- UWUVCI AIO WPF/packages.config | 1 + WiiUDownloaderLibrary.dll | Bin 0 -> 33792 bytes 17 files changed, 306 insertions(+), 144 deletions(-) create mode 100644 WiiUDownloaderLibrary.dll diff --git a/UWUVCI AIO WPF/App.config b/UWUVCI AIO WPF/App.config index 6352b73..183a96b 100644 --- a/UWUVCI AIO WPF/App.config +++ b/UWUVCI AIO WPF/App.config @@ -49,6 +49,9 @@ False + + + diff --git a/UWUVCI AIO WPF/Classes/BootImage.cs b/UWUVCI AIO WPF/Classes/BootImage.cs index 7d84b4d..0c58775 100644 --- a/UWUVCI AIO WPF/Classes/BootImage.cs +++ b/UWUVCI AIO WPF/Classes/BootImage.cs @@ -3,6 +3,7 @@ using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Text; using System.Linq; +using System.Text.RegularExpressions; namespace UWUVCI_AIO_WPF.Classes { @@ -136,8 +137,17 @@ namespace UWUVCI_AIO_WPF.Classes if (Frame != null) g.DrawImage(Frame, new Rectangle(0, 0, 1280, 720)); - if (NameLine1 != null && NameLine2 != null) + var isNotEnglish = false; + + if (!string.IsNullOrEmpty(NameLine1) || !string.IsNullOrEmpty(NameLine2)) { + var regex = "^[a-zA-Z0-9\\d\\s\\.\\'\\&\\\\(\\)\\-\\:\\;\\.\\,\\?\\^\\¿]*$"; + var match = Regex.Match(NameLine1, regex); + var match2 = Regex.Match(NameLine2, regex); + if (!match.Success || !match2.Success) + if (!NameLine1.Contains("é") || !NameLine2.Contains("é")) + isNotEnglish = true; + Pen outlineBold = new Pen(Color.FromArgb(222, 222, 222), 5.0F); Pen shadowBold = new Pen(Color.FromArgb(190, 190, 190), 7.0F); Rectangle rectangleNL1 = Longname ? new Rectangle(578, 313, 640, 50) : new Rectangle(578, 340, 640, 50); @@ -171,10 +181,16 @@ namespace UWUVCI_AIO_WPF.Classes } } + if (Released > 0) { GraphicsPath r = new GraphicsPath(); - r.AddString("Released: " + Released.ToString(), font.FontFamily, + + var releasedString = "Released: " + Released.ToString(); + if (isNotEnglish) + releasedString = Released.ToString() + "年発売"; + + r.AddString(releasedString, font.FontFamily, (int)(FontStyle.Regular), g.DpiY * 25.0F / 72.0F, new Rectangle(586, 450, 600, 40), format); g.DrawPath(shadow, r); @@ -185,12 +201,18 @@ namespace UWUVCI_AIO_WPF.Classes if (Players > 0) { string pStr = Players >= 4 ? "1-4" : (Players == 1 ? "1" : "1-" + Players.ToString()); + + if (isNotEnglish) + pStr = "プレイ人数 " + pStr + "人"; + else + pStr = "Players: " + pStr; + GraphicsPath p = new GraphicsPath(); - - p.AddString("Players: " + pStr, font.FontFamily, + + p.AddString(pStr, font.FontFamily, (int)(FontStyle.Regular), g.DpiY * 25.0F / 72.0F, new Rectangle(586, 496, 600, 40), format); - + g.DrawPath(shadow, p); g.DrawPath(outline, p); g.FillPath(brush, p); diff --git a/UWUVCI AIO WPF/Classes/Injection.cs b/UWUVCI AIO WPF/Classes/Injection.cs index 79a7b84..f82d692 100644 --- a/UWUVCI AIO WPF/Classes/Injection.cs +++ b/UWUVCI AIO WPF/Classes/Injection.cs @@ -573,20 +573,13 @@ namespace UWUVCI_AIO_WPF { string savedir = Directory.GetCurrentDirectory(); mvvm.msg = "Extracting Homebrew Base..."; - if (Directory.Exists(Path.Combine(tempPath, "TempBase"))) Directory.Delete(Path.Combine(tempPath, "TempBase"), true); - Directory.CreateDirectory(Path.Combine(tempPath, "TempBase")); - using (Process zip = new Process()) - { - if (!mvm.debug) - { - zip.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; - } - zip.StartInfo.FileName = Path.Combine(toolsPath, "7za.exe"); - zip.StartInfo.Arguments = $"x \"{Path.Combine(toolsPath, "BASE.zip")}\" -o\"{Path.Combine(tempPath)}\""; - zip.Start(); - zip.WaitForExit(); - } + if (Directory.Exists(Path.Combine(tempPath, "TempBase"))) + Directory.Delete(Path.Combine(tempPath, "TempBase"), true); + + Directory.CreateDirectory(Path.Combine(tempPath, "TempBase")); + + ZipFile.ExtractToDirectory(Path.Combine(toolsPath, "BASE.zip"), Path.Combine(tempPath)); DirectoryCopy(Path.Combine(tempPath, "BASE"), Path.Combine(tempPath, "TempBase"), true); mvvm.Progress = 20; @@ -685,8 +678,8 @@ namespace UWUVCI_AIO_WPF toiso.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; // toiso.StartInfo.CreateNoWindow = true; } - toiso.StartInfo.FileName = Path.Combine(toolsPath, "ConvertToIso.exe"); - toiso.StartInfo.Arguments = $"\"{romPath}\""; + toiso.StartInfo.FileName = Path.Combine(toolsPath, "wit.exe"); + toiso.StartInfo.Arguments = $"copy --source \"{romPath}\" --dest \"{Path.Combine(tempPath, "pre.iso")}\" -I"; toiso.Start(); toiso.WaitForExit(); @@ -1037,20 +1030,13 @@ namespace UWUVCI_AIO_WPF { string savedir = Directory.GetCurrentDirectory(); mvvm.msg = "Extracting Nintendont Base..."; - if (Directory.Exists(Path.Combine(tempPath, "TempBase"))) Directory.Delete(Path.Combine(tempPath, "TempBase"), true); + + if (Directory.Exists(Path.Combine(tempPath, "TempBase"))) + Directory.Delete(Path.Combine(tempPath, "TempBase"), true); + Directory.CreateDirectory(Path.Combine(tempPath, "TempBase")); - using (Process zip = new Process()){ - if (!mvm.debug) - { - - zip.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; - } - zip.StartInfo.FileName = Path.Combine(toolsPath, "7za.exe"); - zip.StartInfo.Arguments = $"x \"{Path.Combine(toolsPath, "BASE.zip")}\" -o\"{Path.Combine(tempPath)}\""; - zip.Start(); - zip.WaitForExit(); - } - + ZipFile.ExtractToDirectory(Path.Combine(toolsPath, "BASE.zip"), Path.Combine(tempPath)); + DirectoryCopy(Path.Combine(tempPath, "BASE"), Path.Combine(tempPath, "TempBase"), true); mvvm.Progress = 20; mvvm.msg = "Applying Nintendont"; @@ -1479,12 +1465,14 @@ namespace UWUVCI_AIO_WPF else { mvvm.msg = "Extracting Nintendont Base..."; - if (Directory.Exists(Path.Combine(tempPath, "TempBase"))) Directory.Delete(Path.Combine(tempPath, "TempBase"), true); + + if (Directory.Exists(Path.Combine(tempPath, "TempBase"))) + Directory.Delete(Path.Combine(tempPath, "TempBase"), true); + Directory.CreateDirectory(Path.Combine(tempPath, "TempBase")); - tik.StartInfo.FileName = Path.Combine(toolsPath, "7za.exe"); - tik.StartInfo.Arguments = $"x \"{Path.Combine(toolsPath, "BASE.zip")}\" -o\"{Path.Combine(tempPath)}\""; - tik.Start(); - tik.WaitForExit(); + + ZipFile.ExtractToDirectory(Path.Combine(toolsPath, "BASE.zip"), Path.Combine(tempPath)); + DirectoryCopy(Path.Combine(tempPath, "BASE"), Path.Combine(tempPath, "TempBase"), true); mvvm.Progress = 30; mvvm.msg = "Applying Nintendont"; @@ -2369,44 +2357,29 @@ namespace UWUVCI_AIO_WPF { string RomName = string.Empty; - using (Process getRomName = new Process()) - { - mvvm.msg = "Getting BaseRom Name..."; - getRomName.StartInfo.UseShellExecute = false; - getRomName.StartInfo.CreateNoWindow = false; - getRomName.StartInfo.RedirectStandardOutput = true; - getRomName.StartInfo.FileName = "cmd.exe"; - Console.WriteLine(Directory.GetCurrentDirectory()); - //getRomName.StartInfo.Arguments = $"/c \"Tools\\7za.exe\" l \"temp\\baserom\\content\\0010\\rom.zip\" | findstr \"WUP\""; - getRomName.StartInfo.Arguments = "/c bin\\Tools\\7za.exe l bin\\temp\\baserom\\content\\0010\\rom.zip | findstr WUP"; - getRomName.Start(); - getRomName.WaitForExit(); - var s = getRomName.StandardOutput.ReadToEnd(); - var split = s.Split(' '); - RomName = split[split.Length - 1].Replace("\r\n", ""); - mvvm.Progress = 15; - } - using (Process RomEdit = new Process()) - { - mvvm.msg = "Removing BaseRom..."; - RomEdit.StartInfo.UseShellExecute = false; - RomEdit.StartInfo.CreateNoWindow = true; - RomEdit.StartInfo.RedirectStandardOutput = true; - RomEdit.StartInfo.FileName = Path.Combine(toolsPath, "7za.exe"); - //d Path.Combine(baseRomPath, "content", "0010", "rom.zip") - RomEdit.StartInfo.Arguments = $"d bin\\temp\\baserom\\content\\0010\\rom.zip"; - RomEdit.Start(); - RomEdit.WaitForExit(); - mvvm.Progress = 40; - mvvm.msg = "Injecting ROM..."; - File.Copy(injectRomPath, $"{RomName}"); - RomEdit.StartInfo.Arguments = $"u bin\\temp\\baserom\\content\\0010\\rom.zip {RomName}"; - RomEdit.Start(); - RomEdit.WaitForExit(); - mvvm.Progress = 80; - } - File.Delete(RomName); + mvvm.msg = "Getting BaseRom Name..."; + var zipLocation = Path.Combine(baseRomPath, "content", "0010", "rom.zip"); + using (var zip = ZipFile.Open(zipLocation, ZipArchiveMode.Read)) + foreach (var file in zip.Entries) + if (file.Name.Contains("WUP")) + { + RomName = file.Name; + break; + } + mvvm.Progress = 15; + var romPath = Directory.GetCurrentDirectory() + "\\" + RomName; + mvvm.msg = "Removing BaseRom..."; + File.Delete(romPath); + File.Delete(zipLocation); + File.Copy(injectRomPath, romPath); + + using (var stream = new FileStream(zipLocation, FileMode.Create)) + using (var archive = new ZipArchive(stream, ZipArchiveMode.Create)) + archive.CreateEntryFromFile(romPath, Path.GetFileName(romPath)); + + mvvm.Progress = 80; + File.Delete(RomName); } diff --git a/UWUVCI AIO WPF/Classes/ToolCheck.cs b/UWUVCI AIO WPF/Classes/ToolCheck.cs index 84caa5f..83e3029 100644 --- a/UWUVCI AIO WPF/Classes/ToolCheck.cs +++ b/UWUVCI AIO WPF/Classes/ToolCheck.cs @@ -2,8 +2,10 @@ using System.Collections.Generic; using System.Diagnostics; using System.IO; +using System.IO.Compression; using System.Net; using System.Security.Cryptography; +using System.Threading; namespace UWUVCI_AIO_WPF.Classes { @@ -23,7 +25,6 @@ namespace UWUVCI_AIO_WPF.Classes "WiiUDownloader.exe", "wiiurpxtool.exe", "INICreator.exe", - "7za.exe", "blank.ini", "FreeImage.dll", "BuildPcePkg.exe", @@ -33,7 +34,6 @@ namespace UWUVCI_AIO_WPF.Classes "nintendont.dol", "nintendont_force.dol", "GetExtTypePatcher.exe", - "wbfs_file.exe", "wit.exe", "cygwin1.dll", "cygz.dll", @@ -58,7 +58,8 @@ namespace UWUVCI_AIO_WPF.Classes "font2.ttf", "forwarder.dol", "gba1.zip", - "gba2.zip" + "gba2.zip", + "c2w_patcher.exe" }; public static bool DoesToolsFolderExist() @@ -73,15 +74,19 @@ namespace UWUVCI_AIO_WPF.Classes public static bool IsToolRight(string name) { bool ret = false; - WebClient client = new WebClient(); - client.DownloadFile(backupulr + name + ".md5", name + ".md5"); - StreamReader sr = new StreamReader(name + ".md5"); - var md5 = sr.ReadLine(); + var md5 = ""; + using (WebClient client = new WebClient()) + { + client.DownloadFile(backupulr + name + ".md5", name + ".md5"); + using (StreamReader sr = new StreamReader(name + ".md5")) + md5 = sr.ReadLine(); + } + if(CalculateMD5(name) == md5) { ret = true; } - sr.Close(); + File.Delete(name + ".md5"); return ret; } @@ -116,38 +121,18 @@ namespace UWUVCI_AIO_WPF.Classes if (!File.Exists(path)) return false; - if (path.ToLower().Contains("gba1.zip")) - { - string p = Path.GetDirectoryName(path); - if (!File.Exists(Path.Combine(p, "MArchiveBatchTool.exe"))) - { - using (Process extract = new Process()) + if (path.ToLower().Contains("gba1.zip") || path.ToLower().Contains("gba2.zip")) + if (!File.Exists(Path.Combine(FolderName, "MArchiveBatchTool.exe")) || !File.Exists(Path.Combine(FolderName, "ucrtbase.dll"))) + try { - extract.StartInfo.UseShellExecute = false; - extract.StartInfo.CreateNoWindow = false; - extract.StartInfo.FileName = "cmd.exe"; - extract.StartInfo.Arguments = "/c bin\\Tools\\7za.exe x bin\\Tools\\gba1.zip -obin\\Tools"; - extract.Start(); - extract.WaitForExit(); + ZipFile.ExtractToDirectory(path, FolderName); } - } - } - else if (path.ToLower().Contains("gba2.zip")) - { - string p = Path.GetDirectoryName(path); - if (!File.Exists(Path.Combine(p, "ucrtbase.dll"))) - { - using (Process extract = new Process()) + catch (Exception) { - extract.StartInfo.UseShellExecute = false; - extract.StartInfo.CreateNoWindow = false; - extract.StartInfo.FileName = "cmd.exe"; - extract.StartInfo.Arguments = "/c bin\\Tools\\7za.exe x bin\\Tools\\gba2.zip -obin\\Tools"; - extract.Start(); - extract.WaitForExit(); + Thread.Sleep(200); + DoesToolExist(path); } - } - } + return true; } diff --git a/UWUVCI AIO WPF/Models/MainViewModel.cs b/UWUVCI AIO WPF/Models/MainViewModel.cs index 9a978fc..46aa9b1 100644 --- a/UWUVCI AIO WPF/Models/MainViewModel.cs +++ b/UWUVCI AIO WPF/Models/MainViewModel.cs @@ -504,6 +504,16 @@ namespace UWUVCI_AIO_WPF catch (Exception) { } cm.ShowDialog(); } + else + { + var cm = new Custom_Message("No Update Available", "This is currently the latest version."); + try + { + cm.Owner = mw; + } + catch (Exception) { } + cm.ShowDialog(); + } } } @@ -1470,10 +1480,28 @@ namespace UWUVCI_AIO_WPF } + } + public static int GetDeterministicHashCode(string str) + { + unchecked + { + int hash1 = (5381 << 16) + 5381; + int hash2 = hash1; + + for (int i = 0; i < str.Length; i += 2) + { + hash1 = ((hash1 << 5) + hash1) ^ str[i]; + if (i == str.Length - 1) + break; + hash2 = ((hash2 << 5) + hash2) ^ str[i + 1]; + } + + return hash1 + (hash2 * 1566083941); + } } public bool checkSysKey(string key) { - if (key.GetHashCode() == -589797700) + if (GetDeterministicHashCode(key) == -589797700) { Properties.Settings.Default.SysKey = key; Properties.Settings.Default.Save(); @@ -1487,7 +1515,7 @@ namespace UWUVCI_AIO_WPF } public bool checkSysKey1(string key) { - if (key.GetHashCode() == -1230232583) + if (GetDeterministicHashCode(key) == -1230232583) { Properties.Settings.Default.SysKey1 = key; Properties.Settings.Default.Save(); @@ -2340,7 +2368,7 @@ namespace UWUVCI_AIO_WPF } public bool checkcKey(string key) { - if (1274359530 == key.ToLower().GetHashCode()) + if (-485504051 == GetDeterministicHashCode(key.ToLower())) { Settings.Default.Ckey = key.ToLower(); ckeys = true; @@ -2353,7 +2381,7 @@ namespace UWUVCI_AIO_WPF } public bool isCkeySet() { - if (Settings.Default.Ckey.ToLower().GetHashCode() == 1274359530) + if (GetDeterministicHashCode(Settings.Default.Ckey.ToLower()) == -485504051) { ckeys = true; return true; @@ -2366,7 +2394,7 @@ namespace UWUVCI_AIO_WPF } public bool checkKey(string key) { - if (GbTemp.KeyHash == key.ToLower().GetHashCode()) + if (GbTemp.KeyHash == GetDeterministicHashCode(key.ToLower())) { UpdateKeyInFile(key, $@"bin\keys\{GetConsoleOfBase(gbTemp).ToString().ToLower()}.vck", GbTemp, GetConsoleOfBase(gbTemp)); return true; @@ -2873,7 +2901,6 @@ namespace UWUVCI_AIO_WPF using (var md5 = MD5.Create()) { var name = new byte[] { }; - bool skip = false; using (var fs = new FileStream(path, FileMode.Open, FileAccess.Read)) @@ -2886,30 +2913,19 @@ namespace UWUVCI_AIO_WPF repoid = rgx.Replace(repoid, ""); - DOSTUFF: - if (repoid.Length < 4 && !skip) + if (repoid.Length < 4) { - fs.Seek(0xFFB2, SeekOrigin.Begin); - fs.Read(procode, 0, 4); - - repoid = rgx.Replace(ByteArrayToString(procode), ""); - if (repoid.Length < 4) - { - repoid = "Unknown"; - skip = true; - goto DOSTUFF; - } - fs.Seek(0xFFC0, SeekOrigin.Begin); procode = new byte[21]; fs.Read(procode, 0, 21); name = procode; + repoid = ByteArrayToString(procode); + repoid = rgx.Replace(repoid, ""); } - else + + if (repoid.Length < 4) { - - fs.Seek(0x7FC0, SeekOrigin.Begin); procode = new byte[21]; fs.Read(procode, 0, 21); diff --git a/UWUVCI AIO WPF/Properties/AssemblyInfo.cs b/UWUVCI AIO WPF/Properties/AssemblyInfo.cs index e8eaf24..26d7d79 100644 --- a/UWUVCI AIO WPF/Properties/AssemblyInfo.cs +++ b/UWUVCI AIO WPF/Properties/AssemblyInfo.cs @@ -51,5 +51,5 @@ using System.Windows; // Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, // indem Sie "*" wie unten gezeigt eingeben: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("3.0.3.0")] -[assembly: AssemblyFileVersion("3.0.3.0")] +[assembly: AssemblyVersion("3.999.0.0")] +[assembly: AssemblyFileVersion("3.999.0.0")] diff --git a/UWUVCI AIO WPF/Properties/Settings.Designer.cs b/UWUVCI AIO WPF/Properties/Settings.Designer.cs index 9ebefd8..e499f33 100644 --- a/UWUVCI AIO WPF/Properties/Settings.Designer.cs +++ b/UWUVCI AIO WPF/Properties/Settings.Designer.cs @@ -178,5 +178,19 @@ namespace UWUVCI_AIO_WPF.Properties { this["gczw"] = value; } } + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("")] + public string Ancast + { + get + { + return ((string)(this["ancast"])); + } + set + { + this["ancast"] = value; + } + } } } diff --git a/UWUVCI AIO WPF/UI/Frames/InjectFrames/Configurations/WiiConfig.xaml b/UWUVCI AIO WPF/UI/Frames/InjectFrames/Configurations/WiiConfig.xaml index 3001d80..3744054 100644 --- a/UWUVCI AIO WPF/UI/Frames/InjectFrames/Configurations/WiiConfig.xaml +++ b/UWUVCI AIO WPF/UI/Frames/InjectFrames/Configurations/WiiConfig.xaml @@ -54,5 +54,7 @@ + + diff --git a/UWUVCI AIO WPF/UI/Frames/SettingsFrame.xaml.cs b/UWUVCI AIO WPF/UI/Frames/SettingsFrame.xaml.cs index 015c25f..5d43143 100644 --- a/UWUVCI AIO WPF/UI/Frames/SettingsFrame.xaml.cs +++ b/UWUVCI AIO WPF/UI/Frames/SettingsFrame.xaml.cs @@ -71,7 +71,7 @@ namespace UWUVCI_AIO_WPF.UI.Frames private void Button_Click_5(object sender, RoutedEventArgs e) { - Custom_Message cm = new Custom_Message("Credits", "UWUVCI AIO - NicoAICP, Morilli, ZestyTS\nBeta Testers/Contributors - wowjinxy, Danis, Adolfobenjaminv\n\n7za - Igor Pavlov\nBuildPcePkg & BuildTurboCDPcePkg - JohnnyGo\nCdecrypt - crediar\nCNUSPACKER - NicoAICP, Morilli\nINICreator - NicoAICP\nN64Converter - Morilli\npng2tga - Easy2Convert\ninject_gba_c (psb) - Morilli\nRetroInject_C - Morilli\ntga_verify - Morilli\nWiiUDownloader - Morilli\nwiiurpxtool - 0CHB0\nGoomba - FluBBa\nDarkFilter Removal N64 - MelonSpeedruns, ZestyTS\nNintendont SD Card Menu - TeconMoon\nwit - Wiimm\nGetExtTypePatcher - Fix94\nnfs2iso2nfs - sabykos, piratesephiroth, Fix94 and many more\nWii-VMC - wanikoko\nIcon/TV Bootimages - Flump, ZestyTS\nNKit - Nanook\nImage Creation Base - Phacox\nWiiGameLanguage Patcher - ReturnerS\nChangeAspectRatio - andot\nvWii Title Forwarder - Fix94"); + Custom_Message cm = new Custom_Message("Credits", "UWUVCI AIO - NicoAICP, Morilli, ZestyTS\nBeta Testers/Contributors - wowjinxy, Danis, Adolfobenjaminv\n\nBuildPcePkg & BuildTurboCDPcePkg - JohnnyGo\nCdecrypt - crediar\nCNUSPACKER - NicoAICP, Morilli\nINICreator - NicoAICP\nN64Converter - Morilli\npng2tga - Easy2Convert\ninject_gba_c (psb) - Morilli\nRetroInject_C - Morilli\ntga_verify - Morilli\nWiiUDownloader - Morilli\nwiiurpxtool - 0CHB0\nGoomba - FluBBa\nDarkFilter Removal N64 - MelonSpeedruns, ZestyTS\nNintendont SD Card Menu - TeconMoon\nwit - Wiimm\nGetExtTypePatcher - Fix94\nnfs2iso2nfs - sabykos, piratesephiroth, Fix94 and many more\nWii-VMC - wanikoko\nIcon/TV Bootimages - Flump, ZestyTS\nNKit - Nanook\nImage Creation Base - Phacox\nWiiGameLanguage Patcher - ReturnerS\nChangeAspectRatio - andot\nvWii Title Forwarder - Fix94"); try { cm.Owner = (FindResource("mvm") as MainViewModel).mw; @@ -143,7 +143,7 @@ namespace UWUVCI_AIO_WPF.UI.Frames private void Button_Click_13(object sender, RoutedEventArgs e) { - Process.Start("https://ko-fi.com/uwuvci"); + Process.Start("https://ko-fi.com/zestyts"); } } } diff --git a/UWUVCI AIO WPF/UI/Frames/StartFrame.xaml b/UWUVCI AIO WPF/UI/Frames/StartFrame.xaml index 904cf3d..58bdc37 100644 --- a/UWUVCI AIO WPF/UI/Frames/StartFrame.xaml +++ b/UWUVCI AIO WPF/UI/Frames/StartFrame.xaml @@ -9,8 +9,13 @@ Title="SettingsFrame" > - - + + diff --git a/UWUVCI AIO WPF/UI/Frames/StartFrame.xaml.cs b/UWUVCI AIO WPF/UI/Frames/StartFrame.xaml.cs index 7f50409..4298777 100644 --- a/UWUVCI AIO WPF/UI/Frames/StartFrame.xaml.cs +++ b/UWUVCI AIO WPF/UI/Frames/StartFrame.xaml.cs @@ -19,5 +19,9 @@ namespace UWUVCI_AIO_WPF.UI.Frames { Process.Start("https://ko-fi.com/uwuvci"); } + private void Button_Click2(object sender, RoutedEventArgs e) + { + Process.Start("https://ko-fi.com/zestyts"); + } } } \ No newline at end of file diff --git a/UWUVCI AIO WPF/UI/Frames/Teaser.xaml.cs b/UWUVCI AIO WPF/UI/Frames/Teaser.xaml.cs index 28ad198..74b75a2 100644 --- a/UWUVCI AIO WPF/UI/Frames/Teaser.xaml.cs +++ b/UWUVCI AIO WPF/UI/Frames/Teaser.xaml.cs @@ -13,6 +13,7 @@ using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; +using UWUVCI_AIO_WPF.UI.Windows; namespace UWUVCI_AIO_WPF.UI.Frames { @@ -28,7 +29,8 @@ namespace UWUVCI_AIO_WPF.UI.Frames private void tb_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e) { - Process.Start("https://www.reddit.com/r/WiiUHacks/comments/jchcls/poc_retroarch_autoboot_starts_rom_automatically/"); + var cm = new Custom_Message("Soon™", "Coming Soon™ to a UWUVCI Prime Near You!"); + cm.ShowDialog(); } } } diff --git a/UWUVCI AIO WPF/UWUVCI AIO WPF.csproj b/UWUVCI AIO WPF/UWUVCI AIO WPF.csproj index 9edcada..2c66b00 100644 --- a/UWUVCI AIO WPF/UWUVCI AIO WPF.csproj +++ b/UWUVCI AIO WPF/UWUVCI AIO WPF.csproj @@ -72,8 +72,11 @@ ..\packages\Costura.Fody.4.1.0\lib\net40\Costura.dll + + ..\packages\CDecryptSharp.1.0.4\lib\CSharpDecrypt.dll + - ..\GameBaseClassLibrary.dll + ..\..\..\uwuvci_installer_creator\{app}\GameBaseClassLibrary.dll ..\packages\GMWare.M2.1.1.2\lib\netstandard2.0\GMWare.M2.dll @@ -116,6 +119,7 @@ ..\packages\System.Buffers.4.5.0\lib\netstandard2.0\System.Buffers.dll + @@ -140,6 +144,9 @@ 4.0 + + ..\WiiUDownloaderLibrary.dll + diff --git a/UWUVCI AIO WPF/packages.config b/UWUVCI AIO WPF/packages.config index 6d982ff..e4a1a84 100644 --- a/UWUVCI AIO WPF/packages.config +++ b/UWUVCI AIO WPF/packages.config @@ -1,6 +1,7 @@  + diff --git a/WiiUDownloaderLibrary.dll b/WiiUDownloaderLibrary.dll new file mode 100644 index 0000000000000000000000000000000000000000..15fa80854bac90794eaf7c8cca0718389f3ae192 GIT binary patch literal 33792 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 z

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 ZPJRwwuXq1v&=;@xIh_6Skw13{{6DE;5e)zU literal 0 HcmV?d00001 From 72a9e729d5b732d06b40fac44c0337bfaf649505 Mon Sep 17 00:00:00 2001 From: ZestyTS Date: Sat, 1 Oct 2022 14:38:57 -0700 Subject: [PATCH 02/26] Updated to use WiiUDownloader nuget package --- UWUVCI AIO WPF/UWUVCI AIO WPF.csproj | 4 ++-- UWUVCI AIO WPF/packages.config | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/UWUVCI AIO WPF/UWUVCI AIO WPF.csproj b/UWUVCI AIO WPF/UWUVCI AIO WPF.csproj index 2c66b00..4bccf88 100644 --- a/UWUVCI AIO WPF/UWUVCI AIO WPF.csproj +++ b/UWUVCI AIO WPF/UWUVCI AIO WPF.csproj @@ -144,8 +144,8 @@ 4.0 - - ..\WiiUDownloaderLibrary.dll + + ..\packages\WiiUDownloader.1.0.6\lib\WiiUDownloaderLibrary.dll diff --git a/UWUVCI AIO WPF/packages.config b/UWUVCI AIO WPF/packages.config index e4a1a84..47fa935 100644 --- a/UWUVCI AIO WPF/packages.config +++ b/UWUVCI AIO WPF/packages.config @@ -17,6 +17,7 @@ + From ca0f5f61311246e18a9aeb08c22162a26a124626 Mon Sep 17 00:00:00 2001 From: ZestyTS Date: Sat, 1 Oct 2022 14:40:01 -0700 Subject: [PATCH 03/26] Removed warnings in mvm --- UWUVCI AIO WPF/Models/MainViewModel.cs | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/UWUVCI AIO WPF/Models/MainViewModel.cs b/UWUVCI AIO WPF/Models/MainViewModel.cs index 46aa9b1..9b44e81 100644 --- a/UWUVCI AIO WPF/Models/MainViewModel.cs +++ b/UWUVCI AIO WPF/Models/MainViewModel.cs @@ -1869,7 +1869,7 @@ namespace UWUVCI_AIO_WPF string result = client.DownloadString("https://uwuvciapi.azurewebsites.net/api/values"); ok = true; } - catch (System.Net.WebException ex) + catch (System.Net.WebException) { @@ -3065,7 +3065,7 @@ namespace UWUVCI_AIO_WPF { n4 = Convert.ToInt32(ts[6] + ts[7]); } - catch (Exception e) + catch (Exception) { n4 = Convert.ToInt32(ts[6]); } @@ -3160,8 +3160,6 @@ namespace UWUVCI_AIO_WPF } public string getInternalWIIGCNName(string OpenGame, bool gc) { - //string linkbase = "https://raw.githubusercontent.com/Flumpster/wiivc-bis/master/"; - string linkbase = "https://raw.githubusercontent.com/Flumpster/UWUVCI-Images/master/"; string ret = ""; try { @@ -3381,9 +3379,6 @@ namespace UWUVCI_AIO_WPF } public string GetURL(string console) { - WebRequest request; - //get download link from uwuvciapi - string url = ""; switch (console.ToLower()) { From 9e7349248f47152f8092d7b88525291e72bc3b68 Mon Sep 17 00:00:00 2001 From: ZestyTS Date: Sat, 1 Oct 2022 14:42:59 -0700 Subject: [PATCH 04/26] Removed unused library --- UWUVCI AIO WPF/UWUVCI AIO WPF.csproj | 3 --- 1 file changed, 3 deletions(-) diff --git a/UWUVCI AIO WPF/UWUVCI AIO WPF.csproj b/UWUVCI AIO WPF/UWUVCI AIO WPF.csproj index 4bccf88..b255e4e 100644 --- a/UWUVCI AIO WPF/UWUVCI AIO WPF.csproj +++ b/UWUVCI AIO WPF/UWUVCI AIO WPF.csproj @@ -81,9 +81,6 @@ ..\packages\GMWare.M2.1.1.2\lib\netstandard2.0\GMWare.M2.dll - - ..\packages\SharpZipLib.1.2.0\lib\net45\ICSharpCode.SharpZipLib.dll - ..\packages\Json.Net.1.0.33\lib\netstandard2.0\Json.Net.dll From 14c9bfe3ec62ac049ba91a9fec804ef0f0f3b160 Mon Sep 17 00:00:00 2001 From: ZestyTS Date: Sat, 1 Oct 2022 14:43:11 -0700 Subject: [PATCH 05/26] Simplified code --- UWUVCI AIO WPF/Models/MainViewModel.cs | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/UWUVCI AIO WPF/Models/MainViewModel.cs b/UWUVCI AIO WPF/Models/MainViewModel.cs index 9b44e81..207f5ad 100644 --- a/UWUVCI AIO WPF/Models/MainViewModel.cs +++ b/UWUVCI AIO WPF/Models/MainViewModel.cs @@ -3185,9 +3185,9 @@ namespace UWUVCI_AIO_WPF reader.BaseStream.Position = 0x220; - while ((int)(TempChar = reader.ReadChar()) != 0) ret = ret + TempChar; + while ((TempChar = reader.ReadChar()) != 0) ret += TempChar; reader.BaseStream.Position = 0x200; - while ((int)(TempChar = reader.ReadChar()) != 0) TempString = TempString + TempChar; + while ((TempChar = reader.ReadChar()) != 0) TempString += TempChar; repoid = TempString; } else @@ -3195,9 +3195,9 @@ namespace UWUVCI_AIO_WPF reader.BaseStream.Position = 0x18; reader.BaseStream.Position = 0x20; - while ((int)(TempChar = reader.ReadChar()) != 0) ret = ret + TempChar; + while ((TempChar = reader.ReadChar()) != 0) ret += TempChar; reader.BaseStream.Position = 0x00; - while ((int)(TempChar = reader.ReadChar()) != 0) TempString = TempString + TempChar; + while ((TempChar = reader.ReadChar()) != 0) TempString += TempChar; repoid = TempString; } @@ -3379,7 +3379,7 @@ namespace UWUVCI_AIO_WPF } public string GetURL(string console) { - string url = ""; + string url; switch (console.ToLower()) { case "nds": @@ -3540,7 +3540,6 @@ namespace UWUVCI_AIO_WPF private void GetRepoImages(string SystemType, string repoid, List repoids = null) { string linkbase = "https://raw.githubusercontent.com/Flumpster/UWUVCI-Images/master/"; - IMG_Message img = null; string[] ext = { "png", "jpg", "jpeg", "tga" }; if (repoids == null || repoids?.Count == 0) @@ -3579,7 +3578,7 @@ namespace UWUVCI_AIO_WPF } message.ShowDialog(); } - img = new IMG_Message(linkbase + id + $"/iconTex.{e}", linkbase + id + $"/bootTvTex.{e}", id); + var img = new IMG_Message(linkbase + id + $"/iconTex.{e}", linkbase + id + $"/bootTvTex.{e}", id); try { img.Owner = mw; From 78a6fec8bd8e515fcc4612510edbebd30bcfb462 Mon Sep 17 00:00:00 2001 From: ZestyTS Date: Sat, 1 Oct 2022 15:00:37 -0700 Subject: [PATCH 06/26] Update AssemblyInfo.cs --- UWUVCI AIO WPF/Properties/AssemblyInfo.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/UWUVCI AIO WPF/Properties/AssemblyInfo.cs b/UWUVCI AIO WPF/Properties/AssemblyInfo.cs index 26d7d79..70caa27 100644 --- a/UWUVCI AIO WPF/Properties/AssemblyInfo.cs +++ b/UWUVCI AIO WPF/Properties/AssemblyInfo.cs @@ -51,5 +51,5 @@ using System.Windows; // Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, // indem Sie "*" wie unten gezeigt eingeben: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("3.999.0.0")] -[assembly: AssemblyFileVersion("3.999.0.0")] +[assembly: AssemblyVersion("3.99.9.0")] +[assembly: AssemblyFileVersion("3.99.9.0")] From 4e3ddfb8ac2e5f84dc6bd222751d3341f690a6a3 Mon Sep 17 00:00:00 2001 From: ZestyTS Date: Sat, 1 Oct 2022 18:14:19 -0700 Subject: [PATCH 07/26] Reverted back to old hashcode checks --- UWUVCI AIO WPF/Models/MainViewModel.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/UWUVCI AIO WPF/Models/MainViewModel.cs b/UWUVCI AIO WPF/Models/MainViewModel.cs index 207f5ad..4d05609 100644 --- a/UWUVCI AIO WPF/Models/MainViewModel.cs +++ b/UWUVCI AIO WPF/Models/MainViewModel.cs @@ -1501,7 +1501,7 @@ namespace UWUVCI_AIO_WPF } public bool checkSysKey(string key) { - if (GetDeterministicHashCode(key) == -589797700) + if (key.GetHashCode() == -589797700) { Properties.Settings.Default.SysKey = key; Properties.Settings.Default.Save(); @@ -1515,7 +1515,7 @@ namespace UWUVCI_AIO_WPF } public bool checkSysKey1(string key) { - if (GetDeterministicHashCode(key) == -1230232583) + if (key.GetHashCode() == -1230232583) { Properties.Settings.Default.SysKey1 = key; Properties.Settings.Default.Save(); @@ -2368,7 +2368,7 @@ namespace UWUVCI_AIO_WPF } public bool checkcKey(string key) { - if (-485504051 == GetDeterministicHashCode(key.ToLower())) + if (1274359530 == key.ToLower().GetHashCode()) { Settings.Default.Ckey = key.ToLower(); ckeys = true; @@ -2381,7 +2381,7 @@ namespace UWUVCI_AIO_WPF } public bool isCkeySet() { - if (GetDeterministicHashCode(Settings.Default.Ckey.ToLower()) == -485504051) + if (Settings.Default.Ckey.ToLower().GetHashCode() == 1274359530) { ckeys = true; return true; @@ -2394,7 +2394,7 @@ namespace UWUVCI_AIO_WPF } public bool checkKey(string key) { - if (GbTemp.KeyHash == GetDeterministicHashCode(key.ToLower())) + if (GbTemp.KeyHash == key.ToLower().GetHashCode()) { UpdateKeyInFile(key, $@"bin\keys\{GetConsoleOfBase(gbTemp).ToString().ToLower()}.vck", GbTemp, GetConsoleOfBase(gbTemp)); return true; From 9dd616be68393b33dc0f76513d49a04d58f72fd8 Mon Sep 17 00:00:00 2001 From: ZestyTS Date: Sun, 2 Oct 2022 02:21:52 -0700 Subject: [PATCH 08/26] Replacing wbfs_file with wit --- UWUVCI AIO WPF/Classes/Injection.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/UWUVCI AIO WPF/Classes/Injection.cs b/UWUVCI AIO WPF/Classes/Injection.cs index f82d692..aa800b9 100644 --- a/UWUVCI AIO WPF/Classes/Injection.cs +++ b/UWUVCI AIO WPF/Classes/Injection.cs @@ -703,8 +703,8 @@ namespace UWUVCI_AIO_WPF toiso.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; // toiso.StartInfo.CreateNoWindow = true; } - toiso.StartInfo.FileName = Path.Combine(toolsPath, "wbfs_file.exe"); - toiso.StartInfo.Arguments = $"\"{romPath}\" convert \"{Path.Combine(tempPath, "pre.iso")}\" -t"; + toiso.StartInfo.FileName = Path.Combine(toolsPath, "wit.exe"); + toiso.StartInfo.Arguments = $"copy --source \"{romPath}\" --dest \"{Path.Combine(tempPath, "pre.iso")}\" -I"; toiso.Start(); toiso.WaitForExit(); @@ -1378,9 +1378,9 @@ namespace UWUVCI_AIO_WPF { mvvm.msg = "Converting WBFS to ISO..."; Console.WriteLine("Converting WBFS to ISO..."); - - tik.StartInfo.FileName = Path.Combine(toolsPath, "wbfs_file.exe"); - tik.StartInfo.Arguments = $"\"{romPath}\" convert \"{Path.Combine(tempPath, "pre.iso")}\""; + + tik.StartInfo.FileName = Path.Combine(toolsPath, "wit.exe"); + tik.StartInfo.Arguments = $"copy --source \"{romPath}\" --dest \"{Path.Combine(tempPath, "pre.iso")}\" -I"; tik.Start(); tik.WaitForExit(); if (!File.Exists(Path.Combine(tempPath, "pre.iso"))) From 3ea27779526f37f1f9c7fc4ebaaef205e56f4aa5 Mon Sep 17 00:00:00 2001 From: ZestyTS Date: Sat, 8 Oct 2022 09:25:19 -0700 Subject: [PATCH 09/26] People can't use ancast without understanding it now --- .../UI/Frames/InjectFrames/Configurations/WiiConfig.xaml | 4 ++-- .../UI/Frames/InjectFrames/Configurations/WiiConfig.xaml.cs | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/UWUVCI AIO WPF/UI/Frames/InjectFrames/Configurations/WiiConfig.xaml b/UWUVCI AIO WPF/UI/Frames/InjectFrames/Configurations/WiiConfig.xaml index 3744054..39ee2af 100644 --- a/UWUVCI AIO WPF/UI/Frames/InjectFrames/Configurations/WiiConfig.xaml +++ b/UWUVCI AIO WPF/UI/Frames/InjectFrames/Configurations/WiiConfig.xaml @@ -54,7 +54,7 @@ - - diff --git a/UWUVCI AIO WPF/UI/Frames/StartFrame.xaml b/UWUVCI AIO WPF/UI/Frames/StartFrame.xaml index 58bdc37..2936a62 100644 --- a/UWUVCI AIO WPF/UI/Frames/StartFrame.xaml +++ b/UWUVCI AIO WPF/UI/Frames/StartFrame.xaml @@ -9,7 +9,7 @@ Title="SettingsFrame" > - +