mirror of
https://github.com/stuff-by-3-random-dudes/UWUVCI-AIO-WPF
synced 2024-11-24 20:13:04 +00:00
Back ported all of 3.99.2 into 3.0.3
This commit is contained in:
parent
a97e9b9c7f
commit
ecfa83a213
17 changed files with 306 additions and 144 deletions
|
@ -49,6 +49,9 @@
|
||||||
<setting name="gczw" serializeAs="String">
|
<setting name="gczw" serializeAs="String">
|
||||||
<value>False</value>
|
<value>False</value>
|
||||||
</setting>
|
</setting>
|
||||||
|
<setting name="Ancast" serializeAs="String">
|
||||||
|
<value />
|
||||||
|
</setting>
|
||||||
</UWUVCI_AIO_WPF.Properties.Settings>
|
</UWUVCI_AIO_WPF.Properties.Settings>
|
||||||
</userSettings>
|
</userSettings>
|
||||||
<runtime>
|
<runtime>
|
||||||
|
|
|
@ -3,6 +3,7 @@ using System.Drawing;
|
||||||
using System.Drawing.Drawing2D;
|
using System.Drawing.Drawing2D;
|
||||||
using System.Drawing.Text;
|
using System.Drawing.Text;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
|
||||||
namespace UWUVCI_AIO_WPF.Classes
|
namespace UWUVCI_AIO_WPF.Classes
|
||||||
{
|
{
|
||||||
|
@ -136,8 +137,17 @@ namespace UWUVCI_AIO_WPF.Classes
|
||||||
if (Frame != null)
|
if (Frame != null)
|
||||||
g.DrawImage(Frame, new Rectangle(0, 0, 1280, 720));
|
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 outlineBold = new Pen(Color.FromArgb(222, 222, 222), 5.0F);
|
||||||
Pen shadowBold = new Pen(Color.FromArgb(190, 190, 190), 7.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);
|
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)
|
if (Released > 0)
|
||||||
{
|
{
|
||||||
GraphicsPath r = new GraphicsPath();
|
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),
|
(int)(FontStyle.Regular),
|
||||||
g.DpiY * 25.0F / 72.0F, new Rectangle(586, 450, 600, 40), format);
|
g.DpiY * 25.0F / 72.0F, new Rectangle(586, 450, 600, 40), format);
|
||||||
g.DrawPath(shadow, r);
|
g.DrawPath(shadow, r);
|
||||||
|
@ -185,12 +201,18 @@ namespace UWUVCI_AIO_WPF.Classes
|
||||||
if (Players > 0)
|
if (Players > 0)
|
||||||
{
|
{
|
||||||
string pStr = Players >= 4 ? "1-4" : (Players == 1 ? "1" : "1-" + Players.ToString());
|
string pStr = Players >= 4 ? "1-4" : (Players == 1 ? "1" : "1-" + Players.ToString());
|
||||||
|
|
||||||
|
if (isNotEnglish)
|
||||||
|
pStr = "プレイ人数 " + pStr + "人";
|
||||||
|
else
|
||||||
|
pStr = "Players: " + pStr;
|
||||||
|
|
||||||
GraphicsPath p = new GraphicsPath();
|
GraphicsPath p = new GraphicsPath();
|
||||||
|
|
||||||
p.AddString("Players: " + pStr, font.FontFamily,
|
p.AddString(pStr, font.FontFamily,
|
||||||
(int)(FontStyle.Regular),
|
(int)(FontStyle.Regular),
|
||||||
g.DpiY * 25.0F / 72.0F, new Rectangle(586, 496, 600, 40), format);
|
g.DpiY * 25.0F / 72.0F, new Rectangle(586, 496, 600, 40), format);
|
||||||
|
|
||||||
g.DrawPath(shadow, p);
|
g.DrawPath(shadow, p);
|
||||||
g.DrawPath(outline, p);
|
g.DrawPath(outline, p);
|
||||||
g.FillPath(brush, p);
|
g.FillPath(brush, p);
|
||||||
|
|
|
@ -573,20 +573,13 @@ namespace UWUVCI_AIO_WPF
|
||||||
{
|
{
|
||||||
string savedir = Directory.GetCurrentDirectory();
|
string savedir = Directory.GetCurrentDirectory();
|
||||||
mvvm.msg = "Extracting Homebrew Base...";
|
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;
|
if (Directory.Exists(Path.Combine(tempPath, "TempBase")))
|
||||||
}
|
Directory.Delete(Path.Combine(tempPath, "TempBase"), true);
|
||||||
zip.StartInfo.FileName = Path.Combine(toolsPath, "7za.exe");
|
|
||||||
zip.StartInfo.Arguments = $"x \"{Path.Combine(toolsPath, "BASE.zip")}\" -o\"{Path.Combine(tempPath)}\"";
|
Directory.CreateDirectory(Path.Combine(tempPath, "TempBase"));
|
||||||
zip.Start();
|
|
||||||
zip.WaitForExit();
|
ZipFile.ExtractToDirectory(Path.Combine(toolsPath, "BASE.zip"), Path.Combine(tempPath));
|
||||||
}
|
|
||||||
|
|
||||||
DirectoryCopy(Path.Combine(tempPath, "BASE"), Path.Combine(tempPath, "TempBase"), true);
|
DirectoryCopy(Path.Combine(tempPath, "BASE"), Path.Combine(tempPath, "TempBase"), true);
|
||||||
mvvm.Progress = 20;
|
mvvm.Progress = 20;
|
||||||
|
@ -685,8 +678,8 @@ namespace UWUVCI_AIO_WPF
|
||||||
toiso.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
|
toiso.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
|
||||||
// toiso.StartInfo.CreateNoWindow = true;
|
// toiso.StartInfo.CreateNoWindow = true;
|
||||||
}
|
}
|
||||||
toiso.StartInfo.FileName = Path.Combine(toolsPath, "ConvertToIso.exe");
|
toiso.StartInfo.FileName = Path.Combine(toolsPath, "wit.exe");
|
||||||
toiso.StartInfo.Arguments = $"\"{romPath}\"";
|
toiso.StartInfo.Arguments = $"copy --source \"{romPath}\" --dest \"{Path.Combine(tempPath, "pre.iso")}\" -I";
|
||||||
|
|
||||||
toiso.Start();
|
toiso.Start();
|
||||||
toiso.WaitForExit();
|
toiso.WaitForExit();
|
||||||
|
@ -1037,20 +1030,13 @@ namespace UWUVCI_AIO_WPF
|
||||||
{
|
{
|
||||||
string savedir = Directory.GetCurrentDirectory();
|
string savedir = Directory.GetCurrentDirectory();
|
||||||
mvvm.msg = "Extracting Nintendont Base...";
|
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"));
|
Directory.CreateDirectory(Path.Combine(tempPath, "TempBase"));
|
||||||
using (Process zip = new Process()){
|
ZipFile.ExtractToDirectory(Path.Combine(toolsPath, "BASE.zip"), Path.Combine(tempPath));
|
||||||
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();
|
|
||||||
}
|
|
||||||
|
|
||||||
DirectoryCopy(Path.Combine(tempPath, "BASE"), Path.Combine(tempPath, "TempBase"), true);
|
DirectoryCopy(Path.Combine(tempPath, "BASE"), Path.Combine(tempPath, "TempBase"), true);
|
||||||
mvvm.Progress = 20;
|
mvvm.Progress = 20;
|
||||||
mvvm.msg = "Applying Nintendont";
|
mvvm.msg = "Applying Nintendont";
|
||||||
|
@ -1479,12 +1465,14 @@ namespace UWUVCI_AIO_WPF
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
mvvm.msg = "Extracting Nintendont Base...";
|
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"));
|
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)}\"";
|
ZipFile.ExtractToDirectory(Path.Combine(toolsPath, "BASE.zip"), Path.Combine(tempPath));
|
||||||
tik.Start();
|
|
||||||
tik.WaitForExit();
|
|
||||||
DirectoryCopy(Path.Combine(tempPath, "BASE"), Path.Combine(tempPath, "TempBase"), true);
|
DirectoryCopy(Path.Combine(tempPath, "BASE"), Path.Combine(tempPath, "TempBase"), true);
|
||||||
mvvm.Progress = 30;
|
mvvm.Progress = 30;
|
||||||
mvvm.msg = "Applying Nintendont";
|
mvvm.msg = "Applying Nintendont";
|
||||||
|
@ -2369,44 +2357,29 @@ namespace UWUVCI_AIO_WPF
|
||||||
{
|
{
|
||||||
|
|
||||||
string RomName = string.Empty;
|
string RomName = string.Empty;
|
||||||
using (Process getRomName = new Process())
|
mvvm.msg = "Getting BaseRom Name...";
|
||||||
{
|
var zipLocation = Path.Combine(baseRomPath, "content", "0010", "rom.zip");
|
||||||
mvvm.msg = "Getting BaseRom Name...";
|
using (var zip = ZipFile.Open(zipLocation, ZipArchiveMode.Read))
|
||||||
getRomName.StartInfo.UseShellExecute = false;
|
foreach (var file in zip.Entries)
|
||||||
getRomName.StartInfo.CreateNoWindow = false;
|
if (file.Name.Contains("WUP"))
|
||||||
getRomName.StartInfo.RedirectStandardOutput = true;
|
{
|
||||||
getRomName.StartInfo.FileName = "cmd.exe";
|
RomName = file.Name;
|
||||||
Console.WriteLine(Directory.GetCurrentDirectory());
|
break;
|
||||||
//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";
|
mvvm.Progress = 15;
|
||||||
getRomName.Start();
|
var romPath = Directory.GetCurrentDirectory() + "\\" + RomName;
|
||||||
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 = "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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2,8 +2,10 @@
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using System.IO.Compression;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Security.Cryptography;
|
using System.Security.Cryptography;
|
||||||
|
using System.Threading;
|
||||||
|
|
||||||
namespace UWUVCI_AIO_WPF.Classes
|
namespace UWUVCI_AIO_WPF.Classes
|
||||||
{
|
{
|
||||||
|
@ -23,7 +25,6 @@ namespace UWUVCI_AIO_WPF.Classes
|
||||||
"WiiUDownloader.exe",
|
"WiiUDownloader.exe",
|
||||||
"wiiurpxtool.exe",
|
"wiiurpxtool.exe",
|
||||||
"INICreator.exe",
|
"INICreator.exe",
|
||||||
"7za.exe",
|
|
||||||
"blank.ini",
|
"blank.ini",
|
||||||
"FreeImage.dll",
|
"FreeImage.dll",
|
||||||
"BuildPcePkg.exe",
|
"BuildPcePkg.exe",
|
||||||
|
@ -33,7 +34,6 @@ namespace UWUVCI_AIO_WPF.Classes
|
||||||
"nintendont.dol",
|
"nintendont.dol",
|
||||||
"nintendont_force.dol",
|
"nintendont_force.dol",
|
||||||
"GetExtTypePatcher.exe",
|
"GetExtTypePatcher.exe",
|
||||||
"wbfs_file.exe",
|
|
||||||
"wit.exe",
|
"wit.exe",
|
||||||
"cygwin1.dll",
|
"cygwin1.dll",
|
||||||
"cygz.dll",
|
"cygz.dll",
|
||||||
|
@ -58,7 +58,8 @@ namespace UWUVCI_AIO_WPF.Classes
|
||||||
"font2.ttf",
|
"font2.ttf",
|
||||||
"forwarder.dol",
|
"forwarder.dol",
|
||||||
"gba1.zip",
|
"gba1.zip",
|
||||||
"gba2.zip"
|
"gba2.zip",
|
||||||
|
"c2w_patcher.exe"
|
||||||
};
|
};
|
||||||
|
|
||||||
public static bool DoesToolsFolderExist()
|
public static bool DoesToolsFolderExist()
|
||||||
|
@ -73,15 +74,19 @@ namespace UWUVCI_AIO_WPF.Classes
|
||||||
public static bool IsToolRight(string name)
|
public static bool IsToolRight(string name)
|
||||||
{
|
{
|
||||||
bool ret = false;
|
bool ret = false;
|
||||||
WebClient client = new WebClient();
|
var md5 = "";
|
||||||
client.DownloadFile(backupulr + name + ".md5", name + ".md5");
|
using (WebClient client = new WebClient())
|
||||||
StreamReader sr = new StreamReader(name + ".md5");
|
{
|
||||||
var md5 = sr.ReadLine();
|
client.DownloadFile(backupulr + name + ".md5", name + ".md5");
|
||||||
|
using (StreamReader sr = new StreamReader(name + ".md5"))
|
||||||
|
md5 = sr.ReadLine();
|
||||||
|
}
|
||||||
|
|
||||||
if(CalculateMD5(name) == md5)
|
if(CalculateMD5(name) == md5)
|
||||||
{
|
{
|
||||||
ret = true;
|
ret = true;
|
||||||
}
|
}
|
||||||
sr.Close();
|
|
||||||
File.Delete(name + ".md5");
|
File.Delete(name + ".md5");
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -116,38 +121,18 @@ namespace UWUVCI_AIO_WPF.Classes
|
||||||
if (!File.Exists(path))
|
if (!File.Exists(path))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (path.ToLower().Contains("gba1.zip"))
|
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")))
|
||||||
string p = Path.GetDirectoryName(path);
|
try
|
||||||
if (!File.Exists(Path.Combine(p, "MArchiveBatchTool.exe")))
|
|
||||||
{
|
|
||||||
using (Process extract = new Process())
|
|
||||||
{
|
{
|
||||||
extract.StartInfo.UseShellExecute = false;
|
ZipFile.ExtractToDirectory(path, FolderName);
|
||||||
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();
|
|
||||||
}
|
}
|
||||||
}
|
catch (Exception)
|
||||||
}
|
|
||||||
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())
|
|
||||||
{
|
{
|
||||||
extract.StartInfo.UseShellExecute = false;
|
Thread.Sleep(200);
|
||||||
extract.StartInfo.CreateNoWindow = false;
|
DoesToolExist(path);
|
||||||
extract.StartInfo.FileName = "cmd.exe";
|
|
||||||
extract.StartInfo.Arguments = "/c bin\\Tools\\7za.exe x bin\\Tools\\gba2.zip -obin\\Tools";
|
|
||||||
extract.Start();
|
|
||||||
extract.WaitForExit();
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -504,6 +504,16 @@ namespace UWUVCI_AIO_WPF
|
||||||
catch (Exception) { }
|
catch (Exception) { }
|
||||||
cm.ShowDialog();
|
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)
|
public bool checkSysKey(string key)
|
||||||
{
|
{
|
||||||
if (key.GetHashCode() == -589797700)
|
if (GetDeterministicHashCode(key) == -589797700)
|
||||||
{
|
{
|
||||||
Properties.Settings.Default.SysKey = key;
|
Properties.Settings.Default.SysKey = key;
|
||||||
Properties.Settings.Default.Save();
|
Properties.Settings.Default.Save();
|
||||||
|
@ -1487,7 +1515,7 @@ namespace UWUVCI_AIO_WPF
|
||||||
}
|
}
|
||||||
public bool checkSysKey1(string key)
|
public bool checkSysKey1(string key)
|
||||||
{
|
{
|
||||||
if (key.GetHashCode() == -1230232583)
|
if (GetDeterministicHashCode(key) == -1230232583)
|
||||||
{
|
{
|
||||||
Properties.Settings.Default.SysKey1 = key;
|
Properties.Settings.Default.SysKey1 = key;
|
||||||
Properties.Settings.Default.Save();
|
Properties.Settings.Default.Save();
|
||||||
|
@ -2340,7 +2368,7 @@ namespace UWUVCI_AIO_WPF
|
||||||
}
|
}
|
||||||
public bool checkcKey(string key)
|
public bool checkcKey(string key)
|
||||||
{
|
{
|
||||||
if (1274359530 == key.ToLower().GetHashCode())
|
if (-485504051 == GetDeterministicHashCode(key.ToLower()))
|
||||||
{
|
{
|
||||||
Settings.Default.Ckey = key.ToLower();
|
Settings.Default.Ckey = key.ToLower();
|
||||||
ckeys = true;
|
ckeys = true;
|
||||||
|
@ -2353,7 +2381,7 @@ namespace UWUVCI_AIO_WPF
|
||||||
}
|
}
|
||||||
public bool isCkeySet()
|
public bool isCkeySet()
|
||||||
{
|
{
|
||||||
if (Settings.Default.Ckey.ToLower().GetHashCode() == 1274359530)
|
if (GetDeterministicHashCode(Settings.Default.Ckey.ToLower()) == -485504051)
|
||||||
{
|
{
|
||||||
ckeys = true;
|
ckeys = true;
|
||||||
return true;
|
return true;
|
||||||
|
@ -2366,7 +2394,7 @@ namespace UWUVCI_AIO_WPF
|
||||||
}
|
}
|
||||||
public bool checkKey(string key)
|
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));
|
UpdateKeyInFile(key, $@"bin\keys\{GetConsoleOfBase(gbTemp).ToString().ToLower()}.vck", GbTemp, GetConsoleOfBase(gbTemp));
|
||||||
return true;
|
return true;
|
||||||
|
@ -2873,7 +2901,6 @@ namespace UWUVCI_AIO_WPF
|
||||||
using (var md5 = MD5.Create())
|
using (var md5 = MD5.Create())
|
||||||
{
|
{
|
||||||
var name = new byte[] { };
|
var name = new byte[] { };
|
||||||
bool skip = false;
|
|
||||||
using (var fs = new FileStream(path,
|
using (var fs = new FileStream(path,
|
||||||
FileMode.Open,
|
FileMode.Open,
|
||||||
FileAccess.Read))
|
FileAccess.Read))
|
||||||
|
@ -2886,30 +2913,19 @@ namespace UWUVCI_AIO_WPF
|
||||||
|
|
||||||
|
|
||||||
repoid = rgx.Replace(repoid, "");
|
repoid = rgx.Replace(repoid, "");
|
||||||
DOSTUFF:
|
if (repoid.Length < 4)
|
||||||
if (repoid.Length < 4 && !skip)
|
|
||||||
{
|
{
|
||||||
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);
|
fs.Seek(0xFFC0, SeekOrigin.Begin);
|
||||||
procode = new byte[21];
|
procode = new byte[21];
|
||||||
fs.Read(procode, 0, 21);
|
fs.Read(procode, 0, 21);
|
||||||
name = procode;
|
name = procode;
|
||||||
|
|
||||||
|
repoid = ByteArrayToString(procode);
|
||||||
|
repoid = rgx.Replace(repoid, "");
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
if (repoid.Length < 4)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
fs.Seek(0x7FC0, SeekOrigin.Begin);
|
fs.Seek(0x7FC0, SeekOrigin.Begin);
|
||||||
procode = new byte[21];
|
procode = new byte[21];
|
||||||
fs.Read(procode, 0, 21);
|
fs.Read(procode, 0, 21);
|
||||||
|
|
|
@ -51,5 +51,5 @@ using System.Windows;
|
||||||
// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
|
// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
|
||||||
// indem Sie "*" wie unten gezeigt eingeben:
|
// indem Sie "*" wie unten gezeigt eingeben:
|
||||||
// [assembly: AssemblyVersion("1.0.*")]
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
[assembly: AssemblyVersion("3.0.3.0")]
|
[assembly: AssemblyVersion("3.999.0.0")]
|
||||||
[assembly: AssemblyFileVersion("3.0.3.0")]
|
[assembly: AssemblyFileVersion("3.999.0.0")]
|
||||||
|
|
14
UWUVCI AIO WPF/Properties/Settings.Designer.cs
generated
14
UWUVCI AIO WPF/Properties/Settings.Designer.cs
generated
|
@ -178,5 +178,19 @@ namespace UWUVCI_AIO_WPF.Properties {
|
||||||
this["gczw"] = value;
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -54,5 +54,7 @@
|
||||||
<RadioButton x:Name="RF_tn" Content="To NTSC" Click="RF_tp_Click" HorizontalAlignment="Left" VerticalAlignment="Top" GroupName="RF" Width="85" ToolTip="Change Game Region to NTSC" Margin="0,6,0,0"/>
|
<RadioButton x:Name="RF_tn" Content="To NTSC" Click="RF_tp_Click" HorizontalAlignment="Left" VerticalAlignment="Top" GroupName="RF" Width="85" ToolTip="Change Game Region to NTSC" Margin="0,6,0,0"/>
|
||||||
<RadioButton x:Name="RF_tj" Content="To JPN" Click="RF_tp_Click" HorizontalAlignment="Left" VerticalAlignment="Top" GroupName="RF" Width="82" ToolTip="Change Game Region to JPN" Margin="0,6,0,0"/>
|
<RadioButton x:Name="RF_tj" Content="To JPN" Click="RF_tp_Click" HorizontalAlignment="Left" VerticalAlignment="Top" GroupName="RF" Width="82" ToolTip="Change Game Region to JPN" Margin="0,6,0,0"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
<TextBox materialDesign:HintAssist.Hint="WIIU ANCAST KEY" Style="{StaticResource MaterialDesignFloatingHintTextBox}" Margin="10,460,395,5" Background="{x:Null}" Foreground="Black" SelectionBrush="#FF00C3D7" CaretBrush="#FF21C3F3" FontSize="18" Text="{Binding ancastKey}" x:Name="ancastKey" MaxLength="250" IsTabStop="False"/>
|
||||||
|
<Button Content="Get From OTP" HorizontalAlignment="Left" Margin="257,473,0,0" VerticalAlignment="Top" Width="127" Click="ancast_OTP" Focusable="False" IsTabStop="False"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Page>
|
</Page>
|
||||||
|
|
|
@ -3,6 +3,7 @@ using System.Collections.Generic;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Security.Cryptography;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
@ -17,6 +18,7 @@ using System.Windows.Navigation;
|
||||||
using System.Windows.Shapes;
|
using System.Windows.Shapes;
|
||||||
using UWUVCI_AIO_WPF.Properties;
|
using UWUVCI_AIO_WPF.Properties;
|
||||||
using UWUVCI_AIO_WPF.UI.Windows;
|
using UWUVCI_AIO_WPF.UI.Windows;
|
||||||
|
using WiiUDownloaderLibrary;
|
||||||
|
|
||||||
namespace UWUVCI_AIO_WPF.UI.Frames.InjectFrames.Configurations
|
namespace UWUVCI_AIO_WPF.UI.Frames.InjectFrames.Configurations
|
||||||
{
|
{
|
||||||
|
@ -256,10 +258,30 @@ namespace UWUVCI_AIO_WPF.UI.Frames.InjectFrames.Configurations
|
||||||
}
|
}
|
||||||
cm.ShowDialog();
|
cm.ShowDialog();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
public string ReadAncastFromOtp()
|
||||||
|
{
|
||||||
|
var ret = "";
|
||||||
|
using (var dialog = new System.Windows.Forms.OpenFileDialog())
|
||||||
|
{
|
||||||
|
dialog.Filter = "OTP.bin | otp.bin";
|
||||||
|
var res = dialog.ShowDialog();
|
||||||
|
if (res == System.Windows.Forms.DialogResult.OK)
|
||||||
|
{
|
||||||
|
var filepath = dialog.FileName;
|
||||||
|
var test = new byte[16];
|
||||||
|
|
||||||
|
using (var fs = new FileStream(filepath, FileMode.Open, FileAccess.Read))
|
||||||
|
{
|
||||||
|
fs.Seek(0x90, SeekOrigin.Begin);
|
||||||
|
fs.Read(test, 0, 16);
|
||||||
|
}
|
||||||
|
foreach (var b in test)
|
||||||
|
ret += string.Format("{0:X2}", b);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void InjectGame(object sender, RoutedEventArgs e)
|
private void InjectGame(object sender, RoutedEventArgs e)
|
||||||
|
@ -307,6 +329,108 @@ namespace UWUVCI_AIO_WPF.UI.Frames.InjectFrames.Configurations
|
||||||
mvm.LR = false;
|
mvm.LR = false;
|
||||||
}
|
}
|
||||||
mvm.GameConfiguration.GameName = gn.Text;
|
mvm.GameConfiguration.GameName = gn.Text;
|
||||||
|
|
||||||
|
if (!string.IsNullOrEmpty(ancastKey.Text))
|
||||||
|
{
|
||||||
|
ancastKey.Text = ancastKey.Text.ToUpper();
|
||||||
|
|
||||||
|
var toolsPath = System.IO.Path.Combine(Directory.GetCurrentDirectory(), "bin", "Tools");
|
||||||
|
var tempPath = System.IO.Path.Combine(Directory.GetCurrentDirectory(), "bin", "temp");
|
||||||
|
var downloadPath = System.IO.Path.Combine(tempPath, "download");
|
||||||
|
var c2wPath = System.IO.Path.Combine(tempPath, "C2W");
|
||||||
|
var imgFileCode = System.IO.Path.Combine(c2wPath, "code", "c2w.img");
|
||||||
|
var imgFile = System.IO.Path.Combine(c2wPath, "c2w.img");
|
||||||
|
var c2wFile = System.IO.Path.Combine(c2wPath, "c2w_patcher.exe");
|
||||||
|
|
||||||
|
var sourceData = ancastKey.Text;
|
||||||
|
var tempSource = Encoding.ASCII.GetBytes(sourceData);
|
||||||
|
var tmpHash = MD5.Create().ComputeHash(tempSource);
|
||||||
|
var hash = BitConverter.ToString(tmpHash);
|
||||||
|
|
||||||
|
if (hash == "31-8D-1F-9D-98-FB-08-E7-7C-7F-E1-77-AA-49-05-43")
|
||||||
|
{
|
||||||
|
Settings.Default.Ancast = ancastKey.Text;
|
||||||
|
string[] ancastKeyCopy = { ancastKey.Text };
|
||||||
|
|
||||||
|
Task.Run(() =>
|
||||||
|
{
|
||||||
|
mvm.Progress += 5;
|
||||||
|
|
||||||
|
Directory.CreateDirectory(tempPath + "\\C2W");
|
||||||
|
|
||||||
|
var titleIds = new List<string>()
|
||||||
|
{
|
||||||
|
"0005001010004000",
|
||||||
|
"0005001010004001"
|
||||||
|
};
|
||||||
|
|
||||||
|
foreach (var titleId in titleIds)
|
||||||
|
{
|
||||||
|
Task.Run(() => Downloader.DownloadAsync(titleId, downloadPath)).GetAwaiter().GetResult();
|
||||||
|
mvm.Progress += 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var titleId in titleIds)
|
||||||
|
{
|
||||||
|
CSharpDecrypt.CSharpDecrypt.Decrypt(new string[] { Settings.Default.Ckey, System.IO.Path.Combine(downloadPath, titleId), c2wPath });
|
||||||
|
mvm.Progress += 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
File.WriteAllLines(c2wPath + "\\starbuck_key.txt", ancastKeyCopy);
|
||||||
|
|
||||||
|
File.Copy(System.IO.Path.Combine(toolsPath, "c2w_patcher.exe"), c2wFile, true);
|
||||||
|
|
||||||
|
File.Copy(imgFileCode, imgFile, true);
|
||||||
|
|
||||||
|
mvm.Progress += 5;
|
||||||
|
|
||||||
|
var currentDir = Directory.GetCurrentDirectory();
|
||||||
|
Directory.SetCurrentDirectory(c2wPath);
|
||||||
|
using (Process c2w = new Process())
|
||||||
|
{
|
||||||
|
c2w.StartInfo.FileName = "c2w_patcher.exe";
|
||||||
|
c2w.StartInfo.Arguments = $"-nc";
|
||||||
|
c2w.Start();
|
||||||
|
c2w.WaitForExit();
|
||||||
|
}
|
||||||
|
Directory.SetCurrentDirectory(currentDir);
|
||||||
|
|
||||||
|
File.Copy(System.IO.Path.Combine(c2wPath, "c2p.img"), imgFileCode, true);
|
||||||
|
mvm.Progress = 100;
|
||||||
|
}).GetAwaiter();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var cm = new Custom_Message("C2W Error", "Ancast code is incorrect.\nNot continuing with inject.");
|
||||||
|
cm.ShowDialog();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var message = new DownloadWait("Setting Up C2W - Please Wait", "", mvm);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
message.changeOwner(mvm.mw);
|
||||||
|
}
|
||||||
|
catch (Exception) { }
|
||||||
|
message.ShowDialog();
|
||||||
|
mvm.Progress = 0;
|
||||||
|
File.Delete(imgFileCode);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Directory.Delete(downloadPath, true);
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
|
File.Delete(c2wFile);
|
||||||
|
File.Delete(c2wPath + "\\starbuck_key.txt");
|
||||||
|
File.Delete(System.IO.Path.Combine(c2wPath, "c2p.img"));
|
||||||
|
File.Delete(imgFileCode);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Directory.Delete(System.IO.Path.Combine(c2wPath, "code"), true);
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
|
}
|
||||||
|
|
||||||
mvm.Inject(false);
|
mvm.Inject(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -943,5 +1067,9 @@ namespace UWUVCI_AIO_WPF.UI.Frames.InjectFrames.Configurations
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
private void ancast_OTP(object sender, RoutedEventArgs e)
|
||||||
|
{
|
||||||
|
ancastKey.Text = ReadAncastFromOtp();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,7 +46,7 @@
|
||||||
<Ellipse Fill="#FF2196F3" HorizontalAlignment="Left" Height="21" Margin="12,7,0,0" VerticalAlignment="Top" Width="17"/>
|
<Ellipse Fill="#FF2196F3" HorizontalAlignment="Left" Height="21" Margin="12,7,0,0" VerticalAlignment="Top" Width="17"/>
|
||||||
<Ellipse Fill="#FF2196F3" HorizontalAlignment="Left" Height="21" Margin="12,7,0,0" VerticalAlignment="Top" Width="17"/>
|
<Ellipse Fill="#FF2196F3" HorizontalAlignment="Left" Height="21" Margin="12,7,0,0" VerticalAlignment="Top" Width="17"/>
|
||||||
<Border BorderBrush="#FF2196F3" BorderThickness="1" HorizontalAlignment="Left" Height="33" Margin="12,6,0,0" VerticalAlignment="Top" Width="1108" CornerRadius="5" Background="#FF2196F3"/>
|
<Border BorderBrush="#FF2196F3" BorderThickness="1" HorizontalAlignment="Left" Height="33" Margin="12,6,0,0" VerticalAlignment="Top" Width="1108" CornerRadius="5" Background="#FF2196F3"/>
|
||||||
<Label Content="v3.0.3" HorizontalAlignment="Left" Margin="1075,10,0,0" VerticalAlignment="Top" Foreground="#DDFFFFFF" Width="81" Height="24"/>
|
<Label Content="v3.F" HorizontalAlignment="Left" Margin="1075,10,0,0" VerticalAlignment="Top" Foreground="#DDFFFFFF" Width="81" Height="24"/>
|
||||||
<Button HorizontalAlignment="Left" Margin="32,522,0,0" VerticalAlignment="Top" Width="74" Click="Button_Click_13" IsTabStop="False" Height="58" ToolTip="Support UWUVCI on Ko-Fi">
|
<Button HorizontalAlignment="Left" Margin="32,522,0,0" VerticalAlignment="Top" Width="74" Click="Button_Click_13" IsTabStop="False" Height="58" ToolTip="Support UWUVCI on Ko-Fi">
|
||||||
<Image HorizontalAlignment="Left" Height="46" VerticalAlignment="Top" Width="46" Source="/UI/Images/61e111774d3a2f67c827cd25_Frame 5.png" />
|
<Image HorizontalAlignment="Left" Height="46" VerticalAlignment="Top" Width="46" Source="/UI/Images/61e111774d3a2f67c827cd25_Frame 5.png" />
|
||||||
</Button>
|
</Button>
|
||||||
|
|
|
@ -71,7 +71,7 @@ namespace UWUVCI_AIO_WPF.UI.Frames
|
||||||
|
|
||||||
private void Button_Click_5(object sender, RoutedEventArgs e)
|
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
|
try
|
||||||
{
|
{
|
||||||
cm.Owner = (FindResource("mvm") as MainViewModel).mw;
|
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)
|
private void Button_Click_13(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
Process.Start("https://ko-fi.com/uwuvci");
|
Process.Start("https://ko-fi.com/zestyts");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,8 +9,13 @@
|
||||||
Title="SettingsFrame" >
|
Title="SettingsFrame" >
|
||||||
|
|
||||||
<Grid>
|
<Grid>
|
||||||
<TextBlock x:Name="tb" Margin="10,172,10,192" TextWrapping="Wrap" Text="Welcome to UWUVCI AIO v3.0.3. To start Injecting select a Console to your left." FontSize="20" Height="116" HorizontalAlignment="Center" VerticalAlignment="Center" TextAlignment="Center" Width="1110" />
|
<TextBlock x:Name="tb" Margin="10,172,10,192" TextWrapping="Wrap" Text="Welcome to UWUVCI AIO v3.F. To start Injecting select a Console to your left." FontSize="20" Height="116" HorizontalAlignment="Center" VerticalAlignment="Center" TextAlignment="Center" Width="1110" />
|
||||||
<Button HorizontalAlignment="Right" Margin="15,525,15,0" VerticalAlignment="Top" Width="74" Click="Button_Click" IsTabStop="False" Height="58" ToolTip="Support UWUVCI on Ko-Fi">
|
<TextBlock Margin="15,505,15,0" HorizontalAlignment="Right" VerticalAlignment="Top" Text="Support MAC Development" TextAlignment="Right"></TextBlock>
|
||||||
|
<Button HorizontalAlignment="Right" Margin="15,525,15,0" VerticalAlignment="Top" Width="74" Click="Button_Click" IsTabStop="False" Height="58" ToolTip="Support UWUVCI MAC Development on Ko-Fi">
|
||||||
|
<Image HorizontalAlignment="Left" Height="46" VerticalAlignment="Top" Width="46" Source="/UI/Images/61e111774d3a2f67c827cd25_Frame 5.png" />
|
||||||
|
</Button>
|
||||||
|
<TextBlock Margin="15,505,15,0" HorizontalAlignment="Left" VerticalAlignment="Top" Text="Support UWUVCI" TextAlignment="Right"></TextBlock>
|
||||||
|
<Button HorizontalAlignment="Left" Margin="15,525,15,0" VerticalAlignment="Top" Width="74" Click="Button_Click2" IsTabStop="False" Height="58" ToolTip="Support UWUVCI on Ko-Fi">
|
||||||
<Image HorizontalAlignment="Left" Height="46" VerticalAlignment="Top" Width="46" Source="/UI/Images/61e111774d3a2f67c827cd25_Frame 5.png" />
|
<Image HorizontalAlignment="Left" Height="46" VerticalAlignment="Top" Width="46" Source="/UI/Images/61e111774d3a2f67c827cd25_Frame 5.png" />
|
||||||
</Button>
|
</Button>
|
||||||
|
|
||||||
|
|
|
@ -19,5 +19,9 @@ namespace UWUVCI_AIO_WPF.UI.Frames
|
||||||
{
|
{
|
||||||
Process.Start("https://ko-fi.com/uwuvci");
|
Process.Start("https://ko-fi.com/uwuvci");
|
||||||
}
|
}
|
||||||
|
private void Button_Click2(object sender, RoutedEventArgs e)
|
||||||
|
{
|
||||||
|
Process.Start("https://ko-fi.com/zestyts");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -13,6 +13,7 @@ using System.Windows.Media;
|
||||||
using System.Windows.Media.Imaging;
|
using System.Windows.Media.Imaging;
|
||||||
using System.Windows.Navigation;
|
using System.Windows.Navigation;
|
||||||
using System.Windows.Shapes;
|
using System.Windows.Shapes;
|
||||||
|
using UWUVCI_AIO_WPF.UI.Windows;
|
||||||
|
|
||||||
namespace UWUVCI_AIO_WPF.UI.Frames
|
namespace UWUVCI_AIO_WPF.UI.Frames
|
||||||
{
|
{
|
||||||
|
@ -28,7 +29,8 @@ namespace UWUVCI_AIO_WPF.UI.Frames
|
||||||
|
|
||||||
private void tb_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
|
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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -72,8 +72,11 @@
|
||||||
<Reference Include="Costura, Version=4.1.0.0, Culture=neutral, PublicKeyToken=9919ef960d84173d, processorArchitecture=MSIL">
|
<Reference Include="Costura, Version=4.1.0.0, Culture=neutral, PublicKeyToken=9919ef960d84173d, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Costura.Fody.4.1.0\lib\net40\Costura.dll</HintPath>
|
<HintPath>..\packages\Costura.Fody.4.1.0\lib\net40\Costura.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
|
<Reference Include="CSharpDecrypt, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\CDecryptSharp.1.0.4\lib\CSharpDecrypt.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
<Reference Include="GameBaseClassLibrary">
|
<Reference Include="GameBaseClassLibrary">
|
||||||
<HintPath>..\GameBaseClassLibrary.dll</HintPath>
|
<HintPath>..\..\..\uwuvci_installer_creator\{app}\GameBaseClassLibrary.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="GMWare.M2, Version=1.1.2.0, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="GMWare.M2, Version=1.1.2.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\GMWare.M2.1.1.2\lib\netstandard2.0\GMWare.M2.dll</HintPath>
|
<HintPath>..\packages\GMWare.M2.1.1.2\lib\netstandard2.0\GMWare.M2.dll</HintPath>
|
||||||
|
@ -116,6 +119,7 @@
|
||||||
<HintPath>..\packages\System.Buffers.4.5.0\lib\netstandard2.0\System.Buffers.dll</HintPath>
|
<HintPath>..\packages\System.Buffers.4.5.0\lib\netstandard2.0\System.Buffers.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.ComponentModel.DataAnnotations" />
|
<Reference Include="System.ComponentModel.DataAnnotations" />
|
||||||
|
<Reference Include="System.Configuration" />
|
||||||
<Reference Include="System.Data" />
|
<Reference Include="System.Data" />
|
||||||
<Reference Include="System.Drawing" />
|
<Reference Include="System.Drawing" />
|
||||||
<Reference Include="System.IO.Compression" />
|
<Reference Include="System.IO.Compression" />
|
||||||
|
@ -140,6 +144,9 @@
|
||||||
<Reference Include="System.Xaml">
|
<Reference Include="System.Xaml">
|
||||||
<RequiredTargetFramework>4.0</RequiredTargetFramework>
|
<RequiredTargetFramework>4.0</RequiredTargetFramework>
|
||||||
</Reference>
|
</Reference>
|
||||||
|
<Reference Include="WiiUDownloaderLibrary">
|
||||||
|
<HintPath>..\WiiUDownloaderLibrary.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
<Reference Include="WindowsBase" />
|
<Reference Include="WindowsBase" />
|
||||||
<Reference Include="PresentationCore" />
|
<Reference Include="PresentationCore" />
|
||||||
<Reference Include="PresentationFramework" />
|
<Reference Include="PresentationFramework" />
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<packages>
|
<packages>
|
||||||
<package id="Autoupdater.NET.Official" version="1.6.3" targetFramework="net46" />
|
<package id="Autoupdater.NET.Official" version="1.6.3" targetFramework="net46" />
|
||||||
|
<package id="CDecryptSharp" version="1.0.4" targetFramework="net472" />
|
||||||
<package id="Costura.Fody" version="4.1.0" targetFramework="net46" />
|
<package id="Costura.Fody" version="4.1.0" targetFramework="net46" />
|
||||||
<package id="Fody" version="6.3.0" targetFramework="net46" developmentDependency="true" />
|
<package id="Fody" version="6.3.0" targetFramework="net46" developmentDependency="true" />
|
||||||
<package id="GMWare.M2" version="1.1.2" targetFramework="net48" />
|
<package id="GMWare.M2" version="1.1.2" targetFramework="net48" />
|
||||||
|
|
BIN
WiiUDownloaderLibrary.dll
Normal file
BIN
WiiUDownloaderLibrary.dll
Normal file
Binary file not shown.
Loading…
Reference in a new issue