Merge pull request #42 from stuff-by-3-random-dudes/OverhaulToNet6

Overhaul to net6
This commit is contained in:
ZestyTS 2022-08-27 11:58:22 -07:00 committed by GitHub
commit 8d6264e59d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
25 changed files with 14272 additions and 1450 deletions

71
AnalysisReport.sarif Normal file
View file

@ -0,0 +1,71 @@
{
"$schema": "https://schemastore.azurewebsites.net/schemas/json/sarif-2.1.0-rtm.5.json",
"version": "2.1.0",
"runs": [
{
"tool": {
"driver": {
"name": "Dependency Analysis",
"semanticVersion": "0.4.336902",
"informationUri": "https://docs.microsoft.com/en-us/dotnet/core/porting/upgrade-assistant-overview",
"rules": [
{
"id": "UA106",
"name": "PackageToBeAdded",
"fullDescription": {
"text": "Packages that need to be added in order to upgrade the project to chosen TFM"
},
"helpUri": "https://docs.microsoft.com/en-us/dotnet/core/porting/upgrade-assistant-overview"
}
]
}
},
"results": [
{
"ruleId": "UA106",
"message": {
"text": "Package Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers, Version=0.4.336902 needs to be added."
},
"locations": [
{
"physicalLocation": {
"artifactLocation": {
"uri": "file:///C:/Users/zesty.fernandez/Documents/GitHub/UWUVCI-AIO-WPF/UWUVCI%20AIO%20WPF/UWUVCI%20AIO%20WPF.csproj"
},
"region": {}
}
}
]
},
{
"ruleId": "UA106",
"message": {
"text": "Package Microsoft.Windows.Compatibility, Version=6.0.0 needs to be added."
},
"locations": [
{
"physicalLocation": {
"artifactLocation": {
"uri": "file:///C:/Users/zesty.fernandez/Documents/GitHub/UWUVCI-AIO-WPF/UWUVCI%20AIO%20WPF/UWUVCI%20AIO%20WPF.csproj"
},
"region": {}
}
}
]
}
],
"columnKind": "utf16CodeUnits"
},
{
"tool": {
"driver": {
"name": "API Upgradability",
"semanticVersion": "0.4.336902",
"informationUri": "https://docs.microsoft.com/en-us/dotnet/core/porting/upgrade-assistant-overview"
}
},
"results": [],
"columnKind": "utf16CodeUnits"
}
]
}

View file

@ -1,9 +1,9 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.29806.167
# Visual Studio Version 17
VisualStudioVersion = 17.2.32630.192
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UWUVCI AIO WPF", "UWUVCI AIO WPF\UWUVCI AIO WPF.csproj", "{6A60AB0E-4597-4ECA-AEFB-D63A26CA7B54}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UWUVCI AIO WPF", "UWUVCI AIO WPF\UWUVCI AIO WPF.csproj", "{6A60AB0E-4597-4ECA-AEFB-D63A26CA7B54}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution

View file

@ -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
{
@ -127,7 +128,7 @@ namespace UWUVCI_AIO_WPF.Classes
//if rectangle isn't able to get set then H4V3 should be used.
rectangle = _rectangleH4V3;
}
if (TitleScreen != null)
g.DrawImage(TitleScreen, rectangle);
else
@ -136,8 +137,16 @@ 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)
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 +180,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,9 +200,15 @@ 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);

View file

@ -17,6 +17,9 @@ using UWUVCI_AIO_WPF.Properties;
using UWUVCI_AIO_WPF.UI.Windows;
using Newtonsoft.Json;
using MessageBox = System.Windows.MessageBox;
using WiiUDownloaderLibrary;
using System.Threading.Tasks;
using WiiUDownloaderLibrary.Models;
namespace UWUVCI_AIO_WPF
{
@ -533,33 +536,21 @@ namespace UWUVCI_AIO_WPF
}
string gamePath = Path.Combine(baseRomPath, "content", "game.iso");
string nfsPath = Path.Combine(baseRomPath, "content", "nfs2iso2nfs.exe");
File.Move(Path.Combine(tempPath, "game.iso"), gamePath);
File.Copy(Path.Combine(toolsPath, "nfs2iso2nfs.exe"), nfsPath);
using (Process iso2nfs = new Process())
string extra = "";
if (mvm.Index == 2)
{
if (!mvm.debug)
{
iso2nfs.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
}
iso2nfs.StartInfo.FileName = nfsPath;
string extra = "";
if (mvm.Index == 2)
{
extra = "-horizontal ";
}
if (mvm.Index == 3) { extra = "-wiimote "; }
if (mvm.Index == 4) { extra = "-instantcc "; }
if (mvm.Index == 5) { extra = "-nocc "; }
if (mvm.LR) { extra += "-lrpatch "; }
iso2nfs.StartInfo.Arguments = $"-enc -homebrew {extra}-iso " + gamePath;
iso2nfs.Start();
iso2nfs.WaitForExit();
File.Delete(nfsPath);
File.Delete(gamePath);
extra = "-horizontal ";
}
if (mvm.Index == 3) { extra = "-wiimote "; }
if (mvm.Index == 4) { extra = "-instantcc "; }
if (mvm.Index == 5) { extra = "-nocc "; }
if (mvm.LR) { extra += "-lrpatch "; }
nfs2iso2nfs.Depreciated.Main(new string[] { "-enc", "-homebrew", extra, "-iso", gamePath, "-fwimg", Path.Combine(baseRomPath, "code", "fw.img"), "-key", Path.Combine(baseRomPath, "code", "htk.bin"), "-output", Path.Combine(baseRomPath, "content") + Path.DirectorySeparatorChar });
File.Delete(gamePath);
mvm.Progress = 80;
@ -632,31 +623,18 @@ namespace UWUVCI_AIO_WPF
File.Delete(sFile);
}
string gamePath = Path.Combine(baseRomPath, "content", "game.iso");
string nfsPath = Path.Combine(baseRomPath, "content", "nfs2iso2nfs.exe");
File.Move(Path.Combine(tempPath, "game.iso"), gamePath);
File.Copy(Path.Combine(toolsPath, "nfs2iso2nfs.exe"), nfsPath);
using (Process iso2nfs = new Process())
string pass = "-passthrough ";
if (mvm.passtrough != true)
{
if (!mvm.debug)
{
iso2nfs.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
}
iso2nfs.StartInfo.FileName = nfsPath;
string pass = "-passthrough ";
if (mvm.passtrough != true)
{
pass = "";
}
iso2nfs.StartInfo.Arguments = $"-enc -homebrew {pass}-iso " + gamePath;
iso2nfs.Start();
iso2nfs.WaitForExit();
File.Delete(gamePath);
File.Delete(nfsPath);
pass = "";
}
nfs2iso2nfs.Depreciated.Main(new string[] { "-enc", "-homebrew", pass, "-iso", gamePath, "-fwimg", Path.Combine(baseRomPath, "code", "fw.img"), "-key", Path.Combine(baseRomPath, "code", "htk.bin"), "-output", Path.Combine(baseRomPath, "content") + Path.DirectorySeparatorChar });
File.Delete(gamePath);
mvm.Progress = 80;
}
private static void WII(string romPath, MainViewModel mvm)
@ -715,9 +693,10 @@ namespace UWUVCI_AIO_WPF
mvm.msg = "Trying to change the Manual...";
//READ FIRST 4 BYTES
byte[] chars = new byte[4];
FileStream fstrm = new FileStream(Path.Combine(tempPath, "pre.iso"), FileMode.Open);
fstrm.Read(chars, 0, 4);
fstrm.Close();
using (FileStream fstrm = new FileStream(Path.Combine(tempPath, "pre.iso"), FileMode.Open))
fstrm.Read(chars, 0, 4);
string procod = ByteArrayToString(chars);
string neededformanual = procod.ToHex();
string metaXml = Path.Combine(baseRomPath, "meta", "meta.xml");
@ -732,41 +711,30 @@ namespace UWUVCI_AIO_WPF
{
if (mvm.regionfrii)
{
byte[] write1;
byte[] write2;
if (mvm.regionfriius)
{
using (FileStream fs = new FileStream(Path.Combine(tempPath, "pre.iso"), FileMode.Open))
{
fs.Seek(0x4E003, SeekOrigin.Begin);
fs.Write(new byte[] { 0x01 }, 0, 1);
fs.Seek(0x4E010, SeekOrigin.Begin);
fs.Write(new byte[] { 0x80, 0x06, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, 0, 16);
fs.Close();
}
write1 = new byte[] { 0x01 };
write2 = new byte[] { 0x80, 0x06, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 };
}
else if (mvm.regionfriijp)
{
using (FileStream fs = new FileStream(Path.Combine(tempPath, "pre.iso"), FileMode.Open))
{
fs.Seek(0x4E003, SeekOrigin.Begin);
fs.Write(new byte[] { 0x00 }, 0, 1);
fs.Seek(0x4E010, SeekOrigin.Begin);
fs.Write(new byte[] { 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, 0, 16);
fs.Close();
}
write1 = new byte[] { 0x00 };
write2 = new byte[] { 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 };
}
else
{
using (FileStream fs = new FileStream(Path.Combine(tempPath, "pre.iso"), FileMode.Open))
{
fs.Seek(0x4E003, SeekOrigin.Begin);
fs.Write(new byte[] { 0x02 }, 0, 1);
fs.Seek(0x4E010, SeekOrigin.Begin);
fs.Write(new byte[] { 0x80, 0x80, 0x80, 0x00, 0x03, 0x03, 0x04, 0x03, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }, 0, 16);
fs.Close();
write1 = new byte[] { 0x02 };
write2 = new byte[] { 0x80, 0x80, 0x80, 0x00, 0x03, 0x03, 0x04, 0x03, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 };
}
}
using (FileStream fs = new FileStream(Path.Combine(tempPath, "pre.iso"), FileMode.Open))
{
fs.Seek(0x4E003, SeekOrigin.Begin);
fs.Write(write1, 0, 1);
fs.Seek(0x4E010, SeekOrigin.Begin);
fs.Write(write2, 0, 16);
}
}
using (Process trimm = new Process())
@ -959,7 +927,6 @@ namespace UWUVCI_AIO_WPF
}
mvm.Progress = 50;
mvm.msg = "Replacing TIK and TMD...";
using (Process extract = new Process())
{
@ -980,41 +947,29 @@ namespace UWUVCI_AIO_WPF
File.Copy(Path.Combine(tempPath, "TIKTMD", "ticket.bin"), Path.Combine(baseRomPath, "code", "rvlt.tik"));
Directory.Delete(Path.Combine(tempPath, "TIKTMD"), true);
}
mvm.Progress = 60;
mvm.msg = "Injecting ROM...";
foreach (string sFile in Directory.GetFiles(Path.Combine(baseRomPath, "content"), "*.nfs"))
{
File.Delete(sFile);
}
string gamePath = Path.Combine(baseRomPath, "content", "game.iso");
string nfsPath = Path.Combine(baseRomPath, "content", "nfs2iso2nfs.exe");
File.Move(Path.Combine(tempPath, "game.iso"), gamePath);
File.Copy(Path.Combine(toolsPath, "nfs2iso2nfs.exe"), nfsPath);
using (Process iso2nfs = new Process())
string extra = "";
if (mvm.Index == 2)
{
if (!mvm.debug)
{
iso2nfs.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
}
iso2nfs.StartInfo.FileName = nfsPath;
string extra = "";
if (mvm.Index == 2)
{
extra = "-horizontal ";
}
if (mvm.Index == 3) { extra = "-wiimote "; }
if (mvm.Index == 4) { extra = "-instantcc "; }
if (mvm.Index == 5) { extra = "-nocc "; }
if (mvm.LR) { extra += "-lrpatch "; }
iso2nfs.StartInfo.Arguments = $"-enc {extra}-iso " + gamePath;
iso2nfs.Start();
iso2nfs.WaitForExit();
File.Delete(nfsPath);
File.Delete(gamePath);
extra = "-horizontal ";
}
if (mvm.Index == 3) { extra = "-wiimote "; }
if (mvm.Index == 4) { extra = "-instantcc "; }
if (mvm.Index == 5) { extra = "-nocc "; }
if (mvm.LR) { extra += "-lrpatch "; }
nfs2iso2nfs.Depreciated.Main(new string[] { "-enc", "-homebrew", extra, "-iso", gamePath, "-fwimg", Path.Combine(baseRomPath, "code", "fw.img"), "-key", Path.Combine(baseRomPath, "code", "htk.bin"), "-output", Path.Combine(baseRomPath, "content") + Path.DirectorySeparatorChar});
File.Delete(gamePath);
mvm.Progress = 80;
}
private static void GC(string romPath, MainViewModel mvm, bool force)
{
@ -1313,26 +1268,13 @@ namespace UWUVCI_AIO_WPF
File.Delete(sFile);
}
string gamePath = Path.Combine(baseRomPath, "content", "game.iso");
string nfsPath = Path.Combine(baseRomPath, "content", "nfs2iso2nfs.exe");
File.Move(Path.Combine(tempPath, "game.iso"), gamePath);
File.Copy(Path.Combine(toolsPath, "nfs2iso2nfs.exe"), nfsPath);
using (Process iso2nfs = new Process())
{
if (!mvm.debug)
{
nfs2iso2nfs.Depreciated.Main(new string[] { "-enc", "-homebrew", "-passthrough", "-iso", gamePath, "-fwimg", Path.Combine(baseRomPath, "code", "fw.img"), "-key", Path.Combine(baseRomPath, "code", "htk.bin"), "-output", Path.Combine(baseRomPath, "content") + Path.DirectorySeparatorChar });
File.Delete(gamePath);
iso2nfs.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
}
iso2nfs.StartInfo.FileName = nfsPath;
iso2nfs.StartInfo.Arguments = $"-enc -homebrew -passthrough -iso " + gamePath;
iso2nfs.Start();
iso2nfs.WaitForExit();
File.Delete(nfsPath);
File.Delete(gamePath);
}
mvm.Progress = 80;
}
private static void WIIold(string romPath, MainViewModel mvm, bool force)
{
@ -1523,7 +1465,7 @@ namespace UWUVCI_AIO_WPF
mvvm.msg = "Injecting ROM...";
Console.WriteLine("Converting Game to NFS format...");
string olddir = Directory.GetCurrentDirectory();
tik.StartInfo.FileName = Path.Combine(toolsPath, "nfs2iso2nfs.exe");
if (!mvm.GC)
{
string extra = "";
@ -1537,14 +1479,13 @@ namespace UWUVCI_AIO_WPF
if (mvm.LR) { extra += "-lrpatch "; }
Console.WriteLine(extra);
Console.ReadLine();
tik.StartInfo.Arguments = $"-enc {extra}-iso \"{romPath}\"";
nfs2iso2nfs.Depreciated.Main(new string[] { "-enc", extra, "-iso", romPath, "-fwimg", Path.Combine(baseRomPath, "code", "fw.img"), "-key", Path.Combine(baseRomPath, "code", "htk.bin"), "-output", Path.Combine(baseRomPath, "content") + Path.DirectorySeparatorChar });
}
else
{
tik.StartInfo.Arguments = $"-enc -homebrew -passthrough -iso \"{romPath}\"";
nfs2iso2nfs.Depreciated.Main(new string[] { "-enc", "-homebrew", "-passthrough", "-iso", romPath, "-fwimg", Path.Combine(baseRomPath, "code", "fw.img"), "-key", Path.Combine(baseRomPath, "code", "htk.bin"), "-output", Path.Combine(baseRomPath, "content") + Path.DirectorySeparatorChar });
}
tik.Start();
tik.WaitForExit();
Console.WriteLine("Finished Conversion");
mvvm.Progress = 80;
}
@ -1676,35 +1617,25 @@ namespace UWUVCI_AIO_WPF
int i = 0;
while (Directory.Exists(outputPath))
{
outputPath = Path.Combine(Properties.Settings.Default.OutPath, $"[WUP]{reg.Replace(gameName, "").Replace("|", " ")}_{i}");
outputPath = Path.Combine(Settings.Default.OutPath, $"[WUP]{reg.Replace(gameName, "").Replace("|", " ")}_{i}");
mvvm.foldername = $"[WUP]{reg.Replace(gameName, "").Replace("|", " ")}_{i}";
i++;
}
var oldpath = Directory.GetCurrentDirectory();
mvm.Progress = 40;
mvm.msg = "Packing...";
try
{
Directory.Delete(Environment.GetEnvironmentVariable("LocalAppData") + @"\temp\.net\CNUSPACKER", true);
}
catch { }
using (Process cnuspacker = new Process())
if (Environment.Is64BitOperatingSystem)
CNUSPACKER.Program.Main(new string[] { "-in", baseRomPath, "-out", outputPath, "-encryptKeyWidth", Settings.Default.Ckey });
else
{
using var cnuspacker = new Process();
if (!mvm.debug)
{
cnuspacker.StartInfo.UseShellExecute = false;
cnuspacker.StartInfo.CreateNoWindow = true;
}
if (Environment.Is64BitOperatingSystem)
{
cnuspacker.StartInfo.FileName = Path.Combine(toolsPath, "CNUSPACKER.exe");
cnuspacker.StartInfo.Arguments = $"-in \"{baseRomPath}\" -out \"{outputPath}\" -encryptKeyWith {Properties.Settings.Default.Ckey}";
}
else
{
cnuspacker.StartInfo.FileName = "java";
cnuspacker.StartInfo.Arguments = $"-jar \"{Path.Combine(toolsPath, "NUSPacker.jar")}\" -in \"{baseRomPath}\" -out \"{outputPath}\" -encryptKeyWith {Properties.Settings.Default.Ckey}";
}
cnuspacker.StartInfo.FileName = "java";
cnuspacker.StartInfo.Arguments = $"-jar \"{Path.Combine(toolsPath, "NUSPacker.jar")}\" -in \"{baseRomPath}\" -out \"{outputPath}\" -encryptKeyWith {Settings.Default.Ckey}";
cnuspacker.Start();
cnuspacker.WaitForExit();
}
@ -1716,131 +1647,61 @@ namespace UWUVCI_AIO_WPF
mvm.msg = "";
}
public static void Download(MainViewModel mvm)
public static async Task Download(MainViewModel mvm)
{
mvm.InjcttoolCheck();
GameBases b = mvm.getBasefromName(mvm.SelectedBaseAsString);
//GetKeyOfBase
TKeys key = mvm.getTkey(b);
if (Directory.Exists(tempPath)) Directory.Delete(tempPath, true);
Directory.CreateDirectory(tempPath);
var titleData = new TitleData(b.Tid, key.Tkey);
var downloadFolder = Path.Combine(tempPath, "download");
await Downloader.DownloadAsync(titleData, downloadFolder);
mvm.Progress = 75;
CSharpDecrypt.CSharpDecrypt.Decrypt(new string[] { Settings.Default.Ckey, Path.Combine(downloadFolder, b.Tid), Path.Combine(Settings.Default.BasePath, $"{b.Name.Replace(":", "")} [{b.Region}]") });
if (mvm.GameConfiguration.Console == GameConsoles.WII || mvm.GameConfiguration.Console == GameConsoles.GCN)
{
using (Process zip = new Process())
{
mvm.Progress += 10;
foreach (string sFile in Directory.GetFiles(Path.Combine(Settings.Default.BasePath, $"{b.Name.Replace(":", "")} [{b.Region}]", "content"), "*.nfs"))
File.Delete(sFile);
if (Directory.Exists(tempPath)) Directory.Delete(tempPath, true);
Directory.CreateDirectory(tempPath);
using (Process download = new Process())
{
if (!mvm.debug)
{
download.StartInfo.UseShellExecute = false;
download.StartInfo.CreateNoWindow = true;
}
download.StartInfo.FileName = Path.Combine(toolsPath, "WiiUDownloader.exe");
download.StartInfo.Arguments = $"{b.Tid} {key.Tkey} \"{Path.Combine(tempPath, "download")}\"";
download.Start();
download.WaitForExit();
}
mvm.Progress = 75;
using (Process decrypt = new Process())
{
if (!mvm.debug)
{
decrypt.StartInfo.UseShellExecute = false;
decrypt.StartInfo.CreateNoWindow = true;
}
decrypt.StartInfo.FileName = Path.Combine(toolsPath, "Cdecrypt.exe");
decrypt.StartInfo.Arguments = $"{Properties.Settings.Default.Ckey} \"{Path.Combine(tempPath, "download")}\" \"{Path.Combine(Properties.Settings.Default.BasePath, $"{b.Name.Replace(":", "")} [{b.Region.ToString()}]")}\"";
decrypt.Start();
decrypt.WaitForExit();
}
mvm.Progress += 10;
foreach (string sFile in Directory.GetFiles(Path.Combine(Properties.Settings.Default.BasePath, $"{b.Name.Replace(":", "")} [{b.Region.ToString()}]", "content"), "*.nfs"))
File.Delete(sFile);
mvm.Progress += 15;
}
mvm.Progress += 15;
}
else
{
if (Directory.Exists(tempPath))
Directory.Delete(tempPath, true);
Directory.CreateDirectory(tempPath);
using (Process download = new Process())
{
if (!mvm.debug)
{
download.StartInfo.UseShellExecute = false;
download.StartInfo.CreateNoWindow = true;
}
download.StartInfo.FileName = Path.Combine(toolsPath, "WiiUDownloader.exe");
download.StartInfo.Arguments = $"{b.Tid} {key.Tkey} \"{Path.Combine(tempPath, "download")}\"";
download.Start();
download.WaitForExit();
}
mvm.Progress = 75;
using (Process decrypt = new Process())
{
if (!mvm.debug)
{
decrypt.StartInfo.UseShellExecute = false;
decrypt.StartInfo.CreateNoWindow = true;
}
decrypt.StartInfo.FileName = Path.Combine(toolsPath, "Cdecrypt.exe");
decrypt.StartInfo.Arguments = $"{Properties.Settings.Default.Ckey} \"{Path.Combine(tempPath, "download")}\" \"{Path.Combine(Properties.Settings.Default.BasePath, $"{b.Name.Replace(":", "")} [{b.Region.ToString()}]")}\"";
decrypt.Start();
decrypt.WaitForExit();
}
mvm.Progress = 100;
}
//GetCurrentSelectedBase
}
public static string ExtractBase(string path, GameConsoles console)
{
if (!Directory.Exists(Path.Combine(Properties.Settings.Default.BasePath, "CustomBases")))
if (!Directory.Exists(Path.Combine(Settings.Default.BasePath, "CustomBases")))
{
Directory.CreateDirectory(Path.Combine(Properties.Settings.Default.BasePath, "CustomBases"));
Directory.CreateDirectory(Path.Combine(Settings.Default.BasePath, "CustomBases"));
}
string outputPath = Path.Combine(Properties.Settings.Default.BasePath, "CustomBases", $"[{console.ToString()}] Custom");
string outputPath = Path.Combine(Settings.Default.BasePath, "CustomBases", $"[{console}] Custom");
int i = 0;
while (Directory.Exists(outputPath))
{
outputPath = Path.Combine(Properties.Settings.Default.BasePath, $"[{console.ToString()}] Custom_{i}");
outputPath = Path.Combine(Settings.Default.BasePath, $"[{console}] Custom_{i}");
i++;
}
using (Process decrypt = new Process())
{
decrypt.StartInfo.UseShellExecute = false;
decrypt.StartInfo.CreateNoWindow = true;
decrypt.StartInfo.FileName = Path.Combine(toolsPath, "Cdecrypt.exe");
decrypt.StartInfo.Arguments = $"{Properties.Settings.Default.Ckey} \"{path}\" \"{outputPath}";
CSharpDecrypt.CSharpDecrypt.Decrypt(new string[] { Settings.Default.Ckey, path, outputPath });
decrypt.Start();
decrypt.WaitForExit();
}
return outputPath;
}
// This function changes TitleID, ProductCode and GameName in app.xml (ID) and meta.xml (ID, ProductCode, Name)
private static void EditXML(string gameNameOr, int index, string code)
{
string gameName = string.Empty;
if (gameNameOr != null || !String.IsNullOrWhiteSpace(gameNameOr))
//This line of code gives me cancer
if (gameNameOr != null || !string.IsNullOrWhiteSpace(gameNameOr))
{
gameName = gameNameOr;
@ -1855,12 +1716,12 @@ namespace UWUVCI_AIO_WPF
string metaXml = Path.Combine(baseRomPath, "meta", "meta.xml");
string appXml = Path.Combine(baseRomPath, "code", "app.xml");
Random random = new Random();
Random random = new();
string ID = $"{random.Next(0x3000, 0x10000):X4}{random.Next(0x3000, 0x10000):X4}";
string ID2 = $"{random.Next(0x3000, 0x10000):X4}";
mvvm.prodcode = ID2;
XmlDocument doc = new XmlDocument();
XmlDocument doc = new();
try
{
doc.Load(metaXml);
@ -1919,7 +1780,16 @@ namespace UWUVCI_AIO_WPF
try
{
doc.Load(appXml);
try
{
doc.Load(appXml);
}
catch (Exception)
{
if (appXml.Contains("<22><><EFBFBD>լ<EFBFBD>}<7D>") || appXml.Contains("???լ?}?"))
appXml = appXml[..^7] + ">\r\n</app>";
doc.Load(appXml);
}
doc.SelectSingleNode("app/title_id").InnerText = $"00050002{ID}";
//doc.SelectSingleNode("app/title_id").InnerText = $"0005000247414645";
@ -1948,6 +1818,14 @@ namespace UWUVCI_AIO_WPF
else
{
DirectoryCopy(Path.Combine(Properties.Settings.Default.BasePath, baserom), baseRomPath, true);
var c2wPath = Path.Combine(Directory.GetCurrentDirectory(), "bin", "temp", "C2W");
if (Directory.Exists(c2wPath))
try
{
File.Copy(Path.Combine(c2wPath, "c2w.img"), Path.Combine(baseRomPath, "code", "c2w.img"), true);
Directory.Delete(c2wPath, true);
}
catch { }
}
}
@ -1974,17 +1852,15 @@ namespace UWUVCI_AIO_WPF
else
{
//creating pkg file including the TG16 rom
using (Process TurboInject = new Process())
{
mvvm.msg = "Creating Turbo16 Pkg...";
TurboInject.StartInfo.UseShellExecute = false;
TurboInject.StartInfo.CreateNoWindow = true;
TurboInject.StartInfo.FileName = Path.Combine(toolsPath, "BuildPcePkg.exe");
TurboInject.StartInfo.Arguments = $"\"{injectRomPath}\"";
TurboInject.Start();
TurboInject.WaitForExit();
mvvm.Progress = 70;
}
using Process TurboInject = new Process();
mvvm.msg = "Creating Turbo16 Pkg...";
TurboInject.StartInfo.UseShellExecute = false;
TurboInject.StartInfo.CreateNoWindow = true;
TurboInject.StartInfo.FileName = Path.Combine(toolsPath, "BuildPcePkg.exe");
TurboInject.StartInfo.Arguments = $"\"{injectRomPath}\"";
TurboInject.Start();
TurboInject.WaitForExit();
mvvm.Progress = 70;
}
mvvm.msg = "Injecting ROM...";
//replacing tg16 rom
@ -2002,22 +1878,18 @@ namespace UWUVCI_AIO_WPF
mvvm.Progress = 20;
if (mvvm.pixelperfect)
{
using (Process retroinject = new Process())
{
mvvm.msg = "Applying Pixel Perfect Patches...";
retroinject.StartInfo.UseShellExecute = false;
retroinject.StartInfo.CreateNoWindow = true;
retroinject.StartInfo.RedirectStandardOutput = true;
retroinject.StartInfo.RedirectStandardError = true;
retroinject.StartInfo.FileName = Path.Combine(toolsPath, "ChangeAspectRatio.exe");
retroinject.StartInfo.Arguments = $"\"{rpxFile}\"";
using Process retroinject = new Process();
mvvm.msg = "Applying Pixel Perfect Patches...";
retroinject.StartInfo.UseShellExecute = false;
retroinject.StartInfo.CreateNoWindow = true;
retroinject.StartInfo.RedirectStandardOutput = true;
retroinject.StartInfo.RedirectStandardError = true;
retroinject.StartInfo.FileName = Path.Combine(toolsPath, "ChangeAspectRatio.exe");
retroinject.StartInfo.Arguments = $"\"{rpxFile}\"";
retroinject.Start();
retroinject.WaitForExit();
mvvm.Progress = 30;
}
retroinject.Start();
retroinject.WaitForExit();
mvvm.Progress = 30;
}
using (Process retroinject = new Process())
{
@ -2052,7 +1924,7 @@ namespace UWUVCI_AIO_WPF
if (!new FileInfo(injectRomPath).Extension.Contains("gba"))
{
//it's a GBC or GB rom so it needs to be copied into goomba.gba and then padded to 32Mb (16 would work too but just ot be save)
using (Process goomba = new Process())
using (Process goomba = new())
{
mvvm.msg = "Injecting GB/GBC ROM into goomba...";
goomba.StartInfo.UseShellExecute = false;
@ -2088,7 +1960,7 @@ namespace UWUVCI_AIO_WPF
}
using (Process psb = new Process())
using (Process psb = new())
{
mvvm.msg = "Injecting ROM...";
psb.StartInfo.UseShellExecute = false;
@ -2250,51 +2122,29 @@ namespace UWUVCI_AIO_WPF
if (File.Exists(Path.Combine(toolsPath, "goombamenu.gba"))) File.Delete(Path.Combine(toolsPath, "goombamenu.gba"));
}
}
private static void DownloadSysTitle(MainViewModel mvm)
private static async Task DownloadSysTitle(MainViewModel mvm)
{
if (mvm.SysKeyset() && mvm.SysKey1set())
{
using (Process download = new Process())
{
download.StartInfo.FileName = Path.Combine(toolsPath, "WiiUDownloader.exe");
download.StartInfo.Arguments = $"0005001010004001 {Properties.Settings.Default.SysKey} \"{Path.Combine(tempPath, "download")}\"";
var titleIds = new string[] { "0005001010004001", "0005001010004000" };
var paths = new string[] { Path.Combine(Settings.Default.BasePath, $"vwiisys"), Path.Combine(tempPath, "tempd") };
var downloadFolder = Path.Combine(tempPath, "download");
download.Start();
download.WaitForExit();
}
using (Process decrypt = new Process())
for (var i = 0; i < titleIds.Length; i++)
{
decrypt.StartInfo.FileName = Path.Combine(toolsPath, "Cdecrypt.exe");
decrypt.StartInfo.Arguments = $"{Properties.Settings.Default.Ckey} \"{Path.Combine(tempPath, "download")}\" \"{Path.Combine(Properties.Settings.Default.BasePath, $"vwiisys")}\"";
var titleData = new TitleData(titleIds[i], Settings.Default.SysKey);
await Downloader.DownloadAsync(titleData, downloadFolder);
CSharpDecrypt.CSharpDecrypt.Decrypt(new string[] { Settings.Default.Ckey, Path.Combine(downloadFolder, titleIds[i]), paths[i] });
decrypt.Start();
decrypt.WaitForExit();
}
using (Process download = new Process())
{
Directory.Delete(Path.Combine(tempPath, "download"), true);
download.StartInfo.FileName = Path.Combine(toolsPath, "WiiUDownloader.exe");
download.StartInfo.Arguments = $"0005001010004000 {Properties.Settings.Default.SysKey1} \"{Path.Combine(tempPath, "download")}\"";
download.Start();
download.WaitForExit();
}
using (Process decrypt = new Process())
{
decrypt.StartInfo.FileName = Path.Combine(toolsPath, "Cdecrypt.exe");
decrypt.StartInfo.Arguments = $"{Properties.Settings.Default.Ckey} \"{Path.Combine(tempPath, "download")}\" \"{Path.Combine(tempPath, "tempd")}\"";
decrypt.Start();
decrypt.WaitForExit();
File.Copy(Path.Combine(tempPath, "tempd", "code", "font.bin"), Path.Combine(Properties.Settings.Default.BasePath, $"vwiisys", "code", "font.bin"));
File.Copy(Path.Combine(tempPath, "tempd", "code", "deint.txt"), Path.Combine(Properties.Settings.Default.BasePath, $"vwiisys", "code", "deint.txt"));
File.Delete(Path.Combine(Properties.Settings.Default.BasePath, $"vwiisys", "code", "app.xml"));
}
File.Copy(Path.Combine(tempPath, "tempd", "code", "font.bin"), Path.Combine(Settings.Default.BasePath, $"vwiisys", "code", "font.bin"));
File.Copy(Path.Combine(tempPath, "tempd", "code", "deint.txt"), Path.Combine(Settings.Default.BasePath, $"vwiisys", "code", "deint.txt"));
File.Delete(Path.Combine(Properties.Settings.Default.BasePath, $"vwiisys", "code", "app.xml"));
}
}
private static void NDS(string injectRomPath)
{
string RomName = string.Empty;
mvvm.msg = "Getting BaseRom Name...";
var zipLocation = Path.Combine(baseRomPath, "content", "0010", "rom.zip");
@ -2326,7 +2176,7 @@ namespace UWUVCI_AIO_WPF
{
string mainRomPath = Directory.GetFiles(Path.Combine(baseRomPath, "content", "rom"))[0];
string mainIni = Path.Combine(baseRomPath, "content", "config", $"{Path.GetFileName(mainRomPath)}.ini");
using (Process n64convert = new Process())
using (Process n64convert = new())
{
mvvm.msg = "Injecting ROM...";
n64convert.StartInfo.UseShellExecute = false;
@ -2461,16 +2311,12 @@ namespace UWUVCI_AIO_WPF
mvvm.msg = "Copying INI...";
if (config.INIBin == null)
{
File.Delete(mainIni);
if (config.INIPath == null)
{
File.Delete(mainIni);
File.Copy(Path.Combine(toolsPath, "blank.ini"), mainIni);
}
else
{
File.Delete(mainIni);
File.Copy(config.INIPath, mainIni);
}
}
else
{
@ -2501,16 +2347,14 @@ namespace UWUVCI_AIO_WPF
private static void RPXcomp(string rpxpath)
{
using (Process rpxtool = new Process())
{
rpxtool.StartInfo.UseShellExecute = false;
rpxtool.StartInfo.CreateNoWindow = true;
rpxtool.StartInfo.FileName = Path.Combine(toolsPath, "wiiurpxtool.exe");
rpxtool.StartInfo.Arguments = $"-c \"{rpxpath}\"";
using Process rpxtool = new Process();
rpxtool.StartInfo.UseShellExecute = false;
rpxtool.StartInfo.CreateNoWindow = true;
rpxtool.StartInfo.FileName = Path.Combine(toolsPath, "wiiurpxtool.exe");
rpxtool.StartInfo.Arguments = $"-c \"{rpxpath}\"";
rpxtool.Start();
rpxtool.WaitForExit();
}
rpxtool.Start();
rpxtool.WaitForExit();
}
private static void ReadFileFromBin(byte[] bin, string output)
@ -2523,8 +2367,6 @@ namespace UWUVCI_AIO_WPF
bool readbin = false;
try
{
//is an image embedded? yes => export them and check for issues
//no => using path
if (Directory.Exists(imgPath)) // sanity check
@ -2544,17 +2386,11 @@ namespace UWUVCI_AIO_WPF
}
else
{
if (File.Exists(Path.Combine(toolsPath, "iconTex.tga")))
{
var fileExists = File.Exists(Path.Combine(toolsPath, "iconTex.tga"));
if (fileExists)
CopyAndConvertImage(Path.Combine(toolsPath, "iconTex.tga"), Path.Combine(imgPath), false, 128, 128, 32, "iconTex.tga");
Images.Add(true);
}
else
{
Images.Add(false);
}
Images.Add(fileExists);
}
}
else
@ -2574,17 +2410,13 @@ namespace UWUVCI_AIO_WPF
}
else
{
if (File.Exists(Path.Combine(toolsPath, "bootTvTex.png")))
var fileExists = File.Exists(Path.Combine(toolsPath, "bootTvTex.png"));
if (fileExists)
{
CopyAndConvertImage(Path.Combine(toolsPath, "bootTvTex.png"), Path.Combine(imgPath), false, 1280, 720, 24, "bootTvTex.tga");
usetemp = true;
Images.Add(true);
}
else
{
Images.Add(false);
}
Images.Add(fileExists);
}
}
else
@ -2609,60 +2441,55 @@ namespace UWUVCI_AIO_WPF
{
if (Images[1])
{
using (Process conv = new Process())
using Process conv = new Process();
if (!mvvm.debug)
{
conv.StartInfo.UseShellExecute = false;
conv.StartInfo.CreateNoWindow = true;
}
if (usetemp)
{
File.Copy(Path.Combine(toolsPath, "bootTvTex.png"), Path.Combine(tempPath, "bootDrcTex.png"));
}
else
{
if (!mvvm.debug)
conv.StartInfo.FileName = Path.Combine(toolsPath, "tga2png.exe");
if (!readbin)
{
conv.StartInfo.UseShellExecute = false;
conv.StartInfo.CreateNoWindow = true;
}
if (usetemp)
{
File.Copy(Path.Combine(toolsPath, "bootTvTex.png"), Path.Combine(tempPath, "bootDrcTex.png"));
conv.StartInfo.Arguments = $"-i \"{config.TGATv.ImgPath}\" -o \"{Path.Combine(tempPath)}\"";
}
else
{
conv.StartInfo.FileName = Path.Combine(toolsPath, "tga2png.exe");
if (!readbin)
if (config.TGATv.extension.Contains("tga"))
{
conv.StartInfo.Arguments = $"-i \"{config.TGATv.ImgPath}\" -o \"{Path.Combine(tempPath)}\"";
ReadFileFromBin(config.TGATv.ImgBin, $"bootTvTex.{config.TGATv.extension}");
conv.StartInfo.Arguments = $"-i \"bootTvTex.{config.TGATv.extension}\" -o \"{Path.Combine(tempPath)}\"";
}
else
{
if (config.TGATv.extension.Contains("tga"))
{
ReadFileFromBin(config.TGATv.ImgBin, $"bootTvTex.{config.TGATv.extension}");
conv.StartInfo.Arguments = $"-i \"bootTvTex.{config.TGATv.extension}\" -o \"{Path.Combine(tempPath)}\"";
}
else
{
ReadFileFromBin(config.TGATv.ImgBin, Path.Combine(tempPath, "bootTvTex.png"));
}
}
if (!readbin || config.TGATv.extension.Contains("tga"))
{
conv.Start();
conv.WaitForExit();
ReadFileFromBin(config.TGATv.ImgBin, Path.Combine(tempPath, "bootTvTex.png"));
}
File.Copy(Path.Combine(tempPath, "bootTvTex.png"), Path.Combine(tempPath, "bootDrcTex.png"));
if (File.Exists(Path.Combine(tempPath, "bootTvTex.png"))) File.Delete(Path.Combine(tempPath, "bootTvTex.png"));
if (File.Exists($"bootTvTex.{config.TGATv.extension}")) File.Delete($"bootTvTex.{config.TGATv.extension}");
}
if (!readbin || config.TGATv.extension.Contains("tga"))
{
conv.Start();
conv.WaitForExit();
}
File.Copy(Path.Combine(tempPath, "bootTvTex.png"), Path.Combine(tempPath, "bootDrcTex.png"));
CopyAndConvertImage(Path.Combine(tempPath, "bootDrcTex.png"), Path.Combine(imgPath), false, 854, 480, 24, "bootDrcTex.tga");
Images.Add(true);
if (File.Exists(Path.Combine(tempPath, "bootTvTex.png")))
File.Delete(Path.Combine(tempPath, "bootTvTex.png"));
if (File.Exists($"bootTvTex.{config.TGATv.extension}"))
File.Delete($"bootTvTex.{config.TGATv.extension}");
}
CopyAndConvertImage(Path.Combine(tempPath, "bootDrcTex.png"), Path.Combine(imgPath), false, 854, 480, 24, "bootDrcTex.tga");
}
else
{
Images.Add(false);
}
Images.Add(Images[1]);
}
}
else
@ -2677,30 +2504,26 @@ namespace UWUVCI_AIO_WPF
//logo
var addBool = true;
if (config.TGALog.ImgBin == null)
{
//use path
if (config.TGALog.ImgPath != null)
{
Images.Add(true);
CopyAndConvertImage(config.TGALog.ImgPath, Path.Combine(imgPath), false, 170, 42, 32, "bootLogoTex.tga");
}
else
{
Images.Add(false);
}
addBool = false;
}
else
{
ReadFileFromBin(config.TGALog.ImgBin, $"bootLogoTex.{config.TGALog.extension}");
CopyAndConvertImage($"bootLogoTex.{config.TGALog.extension}", Path.Combine(imgPath), true, 170, 42, 32, "bootLogoTex.tga");
Images.Add(true);
}
Images.Add(addBool);
//Fixing Images + Injecting them
if (Images[0] || Images[1] || Images[2] || Images[3])
{
using (Process checkIfIssue = new Process())
using (Process checkIfIssue = new())
{
checkIfIssue.StartInfo.UseShellExecute = false;
checkIfIssue.StartInfo.CreateNoWindow = false;
@ -2782,18 +2605,13 @@ namespace UWUVCI_AIO_WPF
png2tga.StartInfo.UseShellExecute = false;
png2tga.StartInfo.CreateNoWindow = true;
var extension = new FileInfo(inputPath).Extension;
if (extension.Contains("png"))
{
png2tga.StartInfo.FileName = Path.Combine(toolsPath, "png2tga.exe");
}
else if (extension.Contains("jpg") || extension.Contains("jpeg"))
{
png2tga.StartInfo.FileName = Path.Combine(toolsPath, "jpg2tga.exe");
}
else if (extension.Contains("bmp"))
{
png2tga.StartInfo.FileName = Path.Combine(toolsPath, "bmp2tga.exe");
}
png2tga.StartInfo.Arguments = $"-i \"{inputPath}\" -o \"{outputPath}\" --width={widht} --height={height} --tga-bpp={bit} --tga-compression=none";
@ -2826,10 +2644,8 @@ namespace UWUVCI_AIO_WPF
return filePath;
string newFilePath = Path.Combine(tempPath, Path.GetFileName(filePath));
using (FileStream outStream = new FileStream(newFilePath, FileMode.OpenOrCreate))
{
using (FileStream outStream = new(newFilePath, FileMode.OpenOrCreate))
inStream.CopyTo(outStream);
}
return newFilePath;
}

View file

@ -33,7 +33,7 @@ namespace UWUVCI_AIO_WPF.Classes
public static void ExportFile(List<TKeys> precomp, GameConsoles console)
{
CheckAndFixFolder("bin\\keys");
Stream createConfigStream = new FileStream($@"bin\keys\{console.ToString().ToLower()}.vck", FileMode.Create, FileAccess.Write);
Stream createConfigStream = new FileStream(Path.Combine(Directory.GetCurrentDirectory(), $@"bin\keys\{console.ToString().ToLower()}.vck"), FileMode.Create, FileAccess.Write);
GZipStream compressedStream = new GZipStream(createConfigStream, CompressionMode.Compress);
IFormatter formatter = new BinaryFormatter();
formatter.Serialize(compressedStream, precomp);

View file

@ -1,9 +1,8 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.IO.Compression;
using System.Net;
using System.Net.Http;
using System.Security.Cryptography;
using System.Threading;
using System.Threading.Tasks;
@ -13,17 +12,14 @@ namespace UWUVCI_AIO_WPF.Classes
class ToolCheck
{
static string FolderName = new FileInfo(System.Reflection.Assembly.GetEntryAssembly().Location).DirectoryName + "\\bin\\Tools";
public static string backupulr = @"https://github.com/Hotbrawl20/UWUVCI-Tools/raw/master/";
public static string backupulr = @"https://github.com/Hotbrawl20/UWUVCI-Tools/raw/master/" + (Environment.Is64BitProcess ? "x64/" : "");
public static string[] ToolNames =
{
"CDecrypt.exe",
"CNUSPACKER.exe",
"N64Converter.exe",
"png2tga.exe",
"psb.exe",
"RetroInject.exe",
"tga_verify.exe",
"WiiUDownloader.exe",
"wiiurpxtool.exe",
"INICreator.exe",
"blank.ini",
@ -31,11 +27,9 @@ namespace UWUVCI_AIO_WPF.Classes
"BuildPcePkg.exe",
"BuildTurboCdPcePkg.exe",
"goomba.gba",
"nfs2iso2nfs.exe",
"nintendont.dol",
"nintendont_force.dol",
"GetExtTypePatcher.exe",
//"wbfs_file.exe",
"wit.exe",
"cygwin1.dll",
"cygz.dll",
@ -70,48 +64,30 @@ namespace UWUVCI_AIO_WPF.Classes
public static async Task<bool> IsToolRightAsync(string name)
{
bool ret = false;
string md5Name = FolderName + "\\" + name + ".md5";
using (WebClient client = new WebClient())
string md5Name = name + ".md5";
string md5Path = FolderName + "\\" + md5Name;
using (var httpClient = new HttpClient())
{
await client.DownloadFileTaskAsync(backupulr + md5Name, md5Name);
using (StreamReader sr = new StreamReader(md5Name))
{
var md5 = sr.ReadLine();
if (CalculateMD5(name) == md5)
{
ret = true;
}
}
using var response = await httpClient.GetStreamAsync(backupulr + md5Name);
using var fs = new FileStream(md5Path, FileMode.Create);
await response.CopyToAsync(fs);
}
//Dumb solution but whatever, hopefully this deletes the md5file
try
{
File.Delete(md5Name);
}
catch { }
try
{
File.Delete(new FileInfo(System.Reflection.Assembly.GetEntryAssembly().Location).DirectoryName + "\\bin\\Tools\\" + md5Name);
}
catch { }
try
{
File.Delete(new FileInfo(System.Reflection.Assembly.GetEntryAssembly().Location).DirectoryName + "\\bin\\bases\\" + md5Name);
}
catch { }
return ret;
var md5 = "";
using (var sr = new StreamReader(md5Path))
md5 = await sr.ReadToEndAsync();
return CalculateMD5(md5Path) == md5;
}
static string CalculateMD5(string filename)
{
using (var md5 = MD5.Create())
{
using (var stream = File.OpenRead(filename))
{
string ret = BitConverter.ToString(md5.ComputeHash(stream)).Replace("-", "").ToLower();
return ret;
}
}
var ret = "";
using var md5 = MD5.Create();
using (var stream = File.OpenRead(filename))
ret = BitConverter.ToString(md5.ComputeHash(stream)).Replace("-", "").ToLower();
return ret;
}
public static List<MissingTool> CheckForMissingTools()
{

View file

@ -17,6 +17,16 @@
<xs:documentation>A list of assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" maxOccurs="1" name="ExcludeRuntimeAssemblies" type="xs:string">
<xs:annotation>
<xs:documentation>A list of runtime assembly names to exclude from the default action of "embed all Copy Local references", delimited with line breaks</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" maxOccurs="1" name="IncludeRuntimeAssemblies" type="xs:string">
<xs:annotation>
<xs:documentation>A list of runtime assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" maxOccurs="1" name="Unmanaged32Assemblies" type="xs:string">
<xs:annotation>
<xs:documentation>A list of unmanaged 32 bit assembly names to include, delimited with line breaks.</xs:documentation>
@ -43,6 +53,16 @@
<xs:documentation>Controls if .pdbs for reference assemblies are also embedded.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="IncludeRuntimeReferences" type="xs:boolean">
<xs:annotation>
<xs:documentation>Controls if runtime assemblies are also embedded.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="UseRuntimeReferencePaths" type="xs:boolean">
<xs:annotation>
<xs:documentation>Controls whether the runtime assemblies are embedded with their full path or only with their assembly name.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="DisableCompression" type="xs:boolean">
<xs:annotation>
<xs:documentation>Embedded assemblies are compressed by default, and uncompressed when they are loaded. You can turn compression off with this option.</xs:documentation>
@ -73,6 +93,16 @@
<xs:documentation>A list of assembly names to include from the default action of "embed all Copy Local references", delimited with |.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ExcludeRuntimeAssemblies" type="xs:string">
<xs:annotation>
<xs:documentation>A list of runtime assembly names to exclude from the default action of "embed all Copy Local references", delimited with |</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="IncludeRuntimeAssemblies" type="xs:string">
<xs:annotation>
<xs:documentation>A list of runtime assembly names to include from the default action of "embed all Copy Local references", delimited with |.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Unmanaged32Assemblies" type="xs:string">
<xs:annotation>
<xs:documentation>A list of unmanaged 32 bit assembly names to include, delimited with |.</xs:documentation>

Binary file not shown.

File diff suppressed because it is too large Load diff

View file

@ -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.99.0.0")]
[assembly: AssemblyFileVersion("3.99.0.0")]

View file

@ -1,10 +1,10 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Dieser Code wurde von einem Tool generiert.
// Laufzeitversion:4.0.30319.42000
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
// der Code erneut generiert wird.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
@ -12,7 +12,7 @@ namespace UWUVCI_AIO_WPF.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.2.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));

View file

@ -91,26 +91,17 @@ namespace UWUVCI_AIO_WPF.UI.Frames.InjectFrames.Bases
if (info[0])
{
mvm.BaseDownloaded = true;
if (mvm.RomSet) mvm.CanInject = true;
if (mvm.RomSet)
mvm.CanInject = true;
}
else
{
mvm.BaseDownloaded = false;
}
}
}
}
private void btnDwnlnd_Click(object sender, RoutedEventArgs e)
{
mvm.Download();
Thread.Sleep(500);
checkStuff(mvm.getInfoOfBase(Base));
mvm.Download();
checkStuff(mvm.getInfoOfBase(Base));
}
private void btnDwnlnd_Copy_Click(object sender, RoutedEventArgs e)

View file

@ -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_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>
<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>
</Page>

View file

@ -2,21 +2,17 @@
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Shell;
using UWUVCI_AIO_WPF.Properties;
using UWUVCI_AIO_WPF.UI.Windows;
using WiiUDownloaderLibrary;
namespace UWUVCI_AIO_WPF.UI.Frames.InjectFrames.Configurations
{
@ -146,8 +142,9 @@ namespace UWUVCI_AIO_WPF.UI.Frames.InjectFrames.Configurations
reader.Close();
}
}
isok = true;
if (isok)
{
motepass.IsEnabled = false;
@ -262,6 +259,30 @@ namespace UWUVCI_AIO_WPF.UI.Frames.InjectFrames.Configurations
}
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)
{
if (File.Exists(tv.Text))
@ -307,6 +328,107 @@ namespace UWUVCI_AIO_WPF.UI.Frames.InjectFrames.Configurations
mvm.LR = false;
}
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")
{
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);
}
@ -943,5 +1065,10 @@ namespace UWUVCI_AIO_WPF.UI.Frames.InjectFrames.Configurations
}
}
private void ancast_OTP(object sender, RoutedEventArgs e)
{
ancastKey.Text = ReadAncastFromOtp();
}
}
}

View file

@ -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"/>
<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.99.0" 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">
<Image HorizontalAlignment="Left" Height="46" VerticalAlignment="Top" Width="46" Source="/UI/Images/61e111774d3a2f67c827cd25_Frame 5.png" />
</Button>

View file

@ -15,6 +15,7 @@ using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using UWUVCI_AIO_WPF.UI.Windows;
using static System.Net.WebRequestMethods;
namespace UWUVCI_AIO_WPF.UI.Frames
@ -71,7 +72,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\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, ZestyTS\nwiiurpxtool - 0CHB0\nGoomba - FluBBa\nDarkFilter Removal N64 - MelonSpeedruns, ZestyTS\nNintendont SD Card Menu - TeconMoon\nwit - Wiimm\nGetExtTypePatcher - Fix94\nnfs2iso2nfs - sabykos, piratesephiroth, Fix94, ZestyTS, 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 +144,12 @@ namespace UWUVCI_AIO_WPF.UI.Frames
private void Button_Click_13(object sender, RoutedEventArgs e)
{
Process.Start("https://ko-fi.com/uwuvci");
Process.Start(new ProcessStartInfo()
{
FileName = "https://ko-fi.com/zestyts",
UseShellExecute = true,
Verb = "open"
});
}
}
}

View file

@ -7,12 +7,16 @@
mc:Ignorable="d"
d:DesignHeight="480" d:DesignWidth="1130"
Title="SettingsFrame" >
<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" />
<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 x:Name="tb" Margin="10,172,10,192" TextWrapping="Wrap" Text="Welcome to UWUVCI AIO v3.99.0. To start Injecting select a Console to your left." FontSize="20" Height="116" HorizontalAlignment="Center" VerticalAlignment="Center" TextAlignment="Center" Width="1110" />
<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" />
</Button>
</Grid>
</Page>

View file

@ -17,7 +17,20 @@ namespace UWUVCI_AIO_WPF.UI.Frames
private void Button_Click(object sender, RoutedEventArgs e)
{
Process.Start("https://ko-fi.com/uwuvci");
OpenKofiLink("uwuvci");
}
private void Button_Click2(object sender, RoutedEventArgs e)
{
OpenKofiLink("zestyts");
}
private void OpenKofiLink(string urlSuffix)
{
Process.Start(new ProcessStartInfo()
{
FileName = "https://ko-fi.com/" + urlSuffix,
UseShellExecute = true,
Verb = "open"
});
}
}
}

View file

@ -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,9 @@ 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/");
//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();
}
}
}

View file

@ -110,15 +110,24 @@ namespace UWUVCI_AIO_WPF.UI.Windows
private void Folder_Click(object sender, RoutedEventArgs e)
{
var filePath = "";
try
{
if (File.Exists(path)) path = new FileInfo(path).DirectoryName;
Process.Start(path);
filePath = path;
if (File.Exists(filePath))
filePath = new FileInfo(filePath).DirectoryName;
Process.Start(new ProcessStartInfo()
{
FileName = filePath,
UseShellExecute = true,
Verb = "open"
});
Close();
}
catch (Exception)
{
Custom_Message cm = new Custom_Message("An Error occured", "An error occured opening the folder. Please make sure the Output Path exists.");
Custom_Message cm = new Custom_Message("An Error occured", "An error occured opening the folder. Please make sure the Output Path exists.\n\nFile path: " + filePath);
try
{
cm.Owner = (FindResource("mvm") as MainViewModel).mw;
@ -157,7 +166,7 @@ namespace UWUVCI_AIO_WPF.UI.Windows
Close();
var containNintendont = Message.Content.ToString().ToLower().Contains("nintendont");
SDSetup sd = new SDSetup(containNintendont ? true : false, path);
SDSetup sd = new SDSetup(containNintendont, path);
try
{
sd.Owner = (FindResource("mvm") as MainViewModel).mw;

View file

@ -62,13 +62,20 @@ namespace UWUVCI_AIO_WPF.UI.Windows
{
msgT.Text = mvm.msg;
pb.Value = mvm.Progress;
if(Key.Text.Contains("Downloading Base"))
if (Key.Text.Contains("Downloading Base"))
{
if(mvm.Progress < 70)
if (mvm.Progress < 70)
{
mvm.Progress += 1;
}
}
else if (Key.Text.Contains("Injecting Game")) {
if (mvm.Progress < 79)
mvm.Progress += 1;
}
else
mvm.Progress += 1;
if(mvm.Progress >= 100)
{
timer.Stop();

View file

@ -511,7 +511,18 @@ namespace UWUVCI_AIO_WPF
{
try
{
Process.Start("UWUVCI VWII.exe");
var p = new Process();
var fileName = Application.ResourceAssembly.Location;
foreach (var file in Directory.GetFiles(Directory.GetCurrentDirectory(), "*.exe"))
if (!Path.GetFileName(file).Contains(Path.GetFileNameWithoutExtension(fileName)))
{
fileName = file;
break;
}
p.StartInfo.FileName = fileName;
p.Start();
Environment.Exit(0);
}
catch

View file

@ -1,22 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\Costura.Fody.4.1.0\build\Costura.Fody.props" Condition="Exists('..\packages\Costura.Fody.4.1.0\build\Costura.Fody.props')" />
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{6A60AB0E-4597-4ECA-AEFB-D63A26CA7B54}</ProjectGuid>
<TargetFramework>net6.0-windows</TargetFramework>
<OutputType>WinExe</OutputType>
<RootNamespace>UWUVCI_AIO_WPF</RootNamespace>
<AssemblyName>UWUVCI AIO WPF</AssemblyName>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<WarningLevel>4</WarningLevel>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
<IsWebBootstrapper>false</IsWebBootstrapper>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
@ -32,26 +17,10 @@
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>x86</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<UseWindowsForms>True</UseWindowsForms>
<UseWPF>true</UseWPF>
<ImportWindowsDesktopTargets>true</ImportWindowsDesktopTargets>
</PropertyGroup>
<PropertyGroup>
<SignManifests>false</SignManifests>
@ -64,359 +33,21 @@
</PropertyGroup>
<PropertyGroup>
<StartupObject>UWUVCI_AIO_WPF.App</StartupObject>
<PlatformTarget>AnyCPU</PlatformTarget>
</PropertyGroup>
<ItemGroup>
<Reference Include="AutoUpdater.NET, Version=1.6.3.0, Culture=neutral, PublicKeyToken=501435c91b35f4bc, processorArchitecture=MSIL">
<HintPath>..\packages\Autoupdater.NET.Official.1.6.3\lib\net45\AutoUpdater.NET.dll</HintPath>
</Reference>
<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>
</Reference>
<Reference Include="GameBaseClassLibrary">
<HintPath>.\GameBaseClassLibrary.dll</HintPath>
<HintPath>..\GameBaseClassLibrary.dll</HintPath>
</Reference>
<Reference Include="Json.Net, Version=1.0.33.1, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Json.Net.1.0.33\lib\netstandard2.0\Json.Net.dll</HintPath>
<Reference Include="nfs2iso2nfs">
<HintPath>nfs2iso2nfs.dll</HintPath>
</Reference>
<Reference Include="MaterialDesignColors, Version=1.2.7.1979, Culture=neutral, PublicKeyToken=df2a72020bd7962a, processorArchitecture=MSIL">
<HintPath>..\packages\MaterialDesignColors.1.2.7\lib\net45\MaterialDesignColors.dll</HintPath>
</Reference>
<Reference Include="MaterialDesignThemes.Wpf, Version=2.6.0.325, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\MaterialDesignThemes.2.6.0\lib\net45\MaterialDesignThemes.Wpf.dll</HintPath>
</Reference>
<Reference Include="McMaster.Extensions.CommandLineUtils, Version=2.4.2.0, Culture=neutral, PublicKeyToken=6f71cb76b82f055d, processorArchitecture=MSIL">
<HintPath>..\packages\McMaster.Extensions.CommandLineUtils.2.4.2\lib\net45\McMaster.Extensions.CommandLineUtils.dll</HintPath>
</Reference>
<Reference Include="Microsoft.WindowsAPICodePack, Version=1.1.2.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\WindowsAPICodePack-Core.1.1.2\lib\Microsoft.WindowsAPICodePack.dll</HintPath>
</Reference>
<Reference Include="Microsoft.WindowsAPICodePack.Shell, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\WindowsAPICodePack-Shell.1.1.1\lib\Microsoft.WindowsAPICodePack.Shell.dll</HintPath>
</Reference>
<Reference Include="NAudio, Version=1.10.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\NAudio.1.10.0\lib\net35\NAudio.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="Octokit, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Octokit.1.0.0\lib\net46\Octokit.dll</HintPath>
</Reference>
<Reference Include="Pfim, Version=0.10.3.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Pfim.0.10.3\lib\netstandard2.0\Pfim.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Buffers.4.5.0\lib\netstandard2.0\System.Buffers.dll</HintPath>
</Reference>
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
<Reference Include="System.IO.Compression" />
<Reference Include="System.IO.Compression.FileSystem" />
<Reference Include="System.Management" />
<Reference Include="System.Runtime.InteropServices.RuntimeInformation, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.ValueTuple, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.ValueTuple.4.4.0\lib\net47\System.ValueTuple.dll</HintPath>
</Reference>
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xaml">
<RequiredTargetFramework>4.0</RequiredTargetFramework>
</Reference>
<Reference Include="WindowsBase" />
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="Zstandard.Net, Version=1.1.7.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Zstandard.Net.1.1.7\lib\net45\Zstandard.Net.dll</HintPath>
<Reference Include="WiiUDownloaderLibrary">
<HintPath>WiiUDownloaderLibrary.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<ApplicationDefinition Include="App.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</ApplicationDefinition>
<Compile Include="AssemblyInfo1.cs" />
<Compile Include="Classes\BootImage.cs" />
<Compile Include="Classes\KeyFile.cs" />
<Compile Include="Classes\MenuIconImage - Kopieren.cs" />
<Compile Include="Classes\MenuIconImage.cs" />
<Compile Include="Classes\TKeys.cs" />
<Compile Include="Classes\ToolCheck.cs" />
<Compile Include="UI\Done.xaml.cs">
<DependentUpon>Done.xaml</DependentUpon>
</Compile>
<Compile Include="UI\Frames\InjectFrames\Configurations\OtherConfigs - Kopieren - Kopieren %282%29.xaml.cs">
<DependentUpon>OtherConfigs - Kopieren - Kopieren %282%29.xaml</DependentUpon>
</Compile>
<Compile Include="UI\Frames\InjectFrames\Configurations\OtherConfigs - Kopieren - Kopieren.xaml.cs">
<DependentUpon>OtherConfigs - Kopieren - Kopieren.xaml</DependentUpon>
</Compile>
<Compile Include="UI\Frames\InjectFrames\Configurations\OtherConfigs - Kopieren.xaml.cs">
<DependentUpon>OtherConfigs - Kopieren.xaml</DependentUpon>
</Compile>
<Compile Include="UI\Frames\InjectFrames\Configurations\WiiConfig.xaml.cs">
<DependentUpon>WiiConfig.xaml</DependentUpon>
</Compile>
<Compile Include="UI\Frames\KeyFrame\TKFrame.xaml.cs">
<DependentUpon>TKFrame.xaml</DependentUpon>
</Compile>
<Compile Include="UI\Frames\Path\Paths.xaml.cs">
<DependentUpon>Paths.xaml</DependentUpon>
</Compile>
<Compile Include="UI\Frames\Teaser.xaml.cs">
<DependentUpon>Teaser.xaml</DependentUpon>
</Compile>
<Compile Include="UI\Windows\Custom Message - Kopieren.xaml.cs">
<DependentUpon>Custom Message - Kopieren.xaml</DependentUpon>
</Compile>
<Compile Include="UI\Windows\Custom Message.xaml.cs">
<DependentUpon>Custom Message.xaml</DependentUpon>
</Compile>
<Compile Include="UI\Windows\DownloadWait - Kopieren.xaml.cs">
<DependentUpon>DownloadWait - Kopieren.xaml</DependentUpon>
</Compile>
<Compile Include="UI\Windows\DownloadWait.xaml.cs">
<DependentUpon>DownloadWait.xaml</DependentUpon>
</Compile>
<Compile Include="UI\Windows\EnterKey.xaml.cs">
<DependentUpon>EnterKey.xaml</DependentUpon>
</Compile>
<Compile Include="UI\Windows\ImageCreator - Kopieren - Kopieren %282%29.xaml.cs">
<DependentUpon>ImageCreator - Kopieren - Kopieren %282%29.xaml</DependentUpon>
</Compile>
<Compile Include="UI\Windows\ImageCreator - Kopieren - Kopieren.xaml.cs">
<DependentUpon>ImageCreator - Kopieren - Kopieren.xaml</DependentUpon>
</Compile>
<Compile Include="UI\Windows\ImageCreator - Kopieren.xaml.cs">
<DependentUpon>ImageCreator - Kopieren.xaml</DependentUpon>
</Compile>
<Compile Include="UI\Windows\ImageCreator.xaml.cs">
<DependentUpon>ImageCreator.xaml</DependentUpon>
</Compile>
<Compile Include="UI\Windows\IMG_Message - Kopieren - Kopieren - Kopieren.xaml.cs">
<DependentUpon>IMG_Message - Kopieren - Kopieren - Kopieren.xaml</DependentUpon>
</Compile>
<Compile Include="UI\Windows\IMG_Message - Kopieren - Kopieren.xaml.cs">
<DependentUpon>IMG_Message - Kopieren - Kopieren.xaml</DependentUpon>
</Compile>
<Compile Include="UI\Windows\IMG_Message - Kopieren.xaml.cs">
<DependentUpon>IMG_Message - Kopieren.xaml</DependentUpon>
</Compile>
<Compile Include="UI\Windows\IMG_Message.xaml.cs">
<DependentUpon>IMG_Message.xaml</DependentUpon>
</Compile>
<Compile Include="UI\Windows\TitleKeys - Kopieren.xaml.cs">
<DependentUpon>TitleKeys - Kopieren.xaml</DependentUpon>
</Compile>
<Compile Include="UI\Windows\TitleKeys.xaml.cs">
<DependentUpon>TitleKeys.xaml</DependentUpon>
</Compile>
<Page Include="UI\Done.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="UI\Frames\InjectFrame.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="UI\Frames\InjectFrames\Bases\BaseContainerFrame.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="UI\Frames\InjectFrames\Bases\CustomBaseFrame.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="UI\Frames\InjectFrames\Bases\NonCustomBaseFrame.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="UI\Frames\InjectFrames\Configurations\N64Config.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="UI\Frames\InjectFrames\Configurations\OtherConfigs - Kopieren - Kopieren %282%29.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="UI\Frames\InjectFrames\Configurations\OtherConfigs - Kopieren - Kopieren.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="UI\Frames\InjectFrames\Configurations\OtherConfigs - Kopieren.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="UI\Frames\InjectFrames\Configurations\OtherConfigs.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="UI\Frames\InjectFrames\Configurations\WiiConfig.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="UI\Frames\KeyFrame\TKFrame.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="UI\Frames\Path\Paths.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="UI\Frames\SettingsFrame.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="UI\Frames\StartFrame.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="UI\Frames\Teaser.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="UI\Windows\Custom Message - Kopieren.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="UI\Windows\Custom Message.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="UI\Windows\DownloadWait - Kopieren.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="UI\Windows\DownloadWait.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="UI\Windows\EnterKey.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="UI\Windows\ImageCreator - Kopieren - Kopieren %282%29.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="UI\Windows\ImageCreator - Kopieren - Kopieren.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="UI\Windows\ImageCreator - Kopieren.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="UI\Windows\ImageCreator.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="UI\Windows\IMG_Message - Kopieren - Kopieren - Kopieren.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="UI\Windows\IMG_Message - Kopieren - Kopieren.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="UI\Windows\IMG_Message - Kopieren.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="UI\Windows\IMG_Message.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="UI\Windows\MenuWindow.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Compile Include="App.xaml.cs">
<DependentUpon>App.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Compile Include="Classes\Injection.cs" />
<Compile Include="Classes\N64Conf.cs" />
<Compile Include="Classes\PNGTGA.cs" />
<Compile Include="Classes\GameConfig.cs" />
<Compile Include="Models\BaseModel.cs" />
<Compile Include="Models\MainViewModel.cs" />
<Compile Include="UI\Frames\InjectFrame.xaml.cs">
<DependentUpon>InjectFrame.xaml</DependentUpon>
</Compile>
<Compile Include="UI\Frames\InjectFrames\Bases\BaseContainerFrame.xaml.cs">
<DependentUpon>BaseContainerFrame.xaml</DependentUpon>
</Compile>
<Compile Include="UI\Frames\InjectFrames\Bases\CustomBaseFrame.xaml.cs">
<DependentUpon>CustomBaseFrame.xaml</DependentUpon>
</Compile>
<Compile Include="UI\Frames\InjectFrames\Bases\NonCustomBaseFrame.xaml.cs">
<DependentUpon>NonCustomBaseFrame.xaml</DependentUpon>
</Compile>
<Compile Include="UI\Frames\InjectFrames\Configurations\N64Config.xaml.cs">
<DependentUpon>N64Config.xaml</DependentUpon>
</Compile>
<Compile Include="UI\Frames\InjectFrames\Configurations\OtherConfigs.xaml.cs">
<DependentUpon>OtherConfigs.xaml</DependentUpon>
</Compile>
<Compile Include="UI\Frames\SettingsFrame.xaml.cs">
<DependentUpon>SettingsFrame.xaml</DependentUpon>
</Compile>
<Compile Include="UI\Frames\StartFrame.xaml.cs">
<DependentUpon>StartFrame.xaml</DependentUpon>
</Compile>
<Compile Include="UI\Windows\MenuWindow.xaml.cs">
<DependentUpon>MenuWindow.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Page Include="UI\Windows\TitleKeys - Kopieren.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="UI\Windows\TitleKeys.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
<Resource Include="Font\font.otf" />
<None Include="app.manifest" />
<None Include="packages.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<Resource Include="UI\Images\bg maybe wpf.png" />
@ -489,135 +120,6 @@
<ItemGroup>
<Resource Include="b.ico" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\GBC.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\GCN.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\MSX.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\N64.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\NDS.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\NES.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\SNES-PAL.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\TG16.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\TGCD.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\GBA.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\newgameboy.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\SNES-USA.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\SFAM.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\Icon.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\WII.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\mario.mp3" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\WiiIcon.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\Wii2.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\WIIWARE.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\homebrew3.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\HBICON.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\GCN ICON2.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\wii3New.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\GCN ICON3.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\NDS Alt1.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\N64 alt1.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\bootLogoTex.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\SNES alt1.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\N64 alt2.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\NDS alt2.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\SNES alt2.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\MSX alt1.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\MSX alt2.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\TGFX alt1.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\TGFX alt2.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\GBA alt1.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\GBA alt2.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\GB alt1.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\GB alt2.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\NES alt1.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\NES alt2.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\GBC alt1.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\GBC alt2.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="UI\Images\rarch.png" />
</ItemGroup>
@ -655,15 +157,58 @@
<ItemGroup>
<Resource Include="UI\Images\61e111774d3a2f67c827cd25_Frame 5.png" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}".</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\Costura.Fody.4.1.0\build\Costura.Fody.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Costura.Fody.4.1.0\build\Costura.Fody.props'))" />
<Error Condition="!Exists('..\packages\Fody.6.3.0\build\Fody.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Fody.6.3.0\build\Fody.targets'))" />
<Error Condition="!Exists('..\packages\Zstandard.Net.1.1.7\build\Zstandard.Net.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Zstandard.Net.1.1.7\build\Zstandard.Net.targets'))" />
</Target>
<Import Project="..\packages\Fody.6.3.0\build\Fody.targets" Condition="Exists('..\packages\Fody.6.3.0\build\Fody.targets')" />
<Import Project="..\packages\Zstandard.Net.1.1.7\build\Zstandard.Net.targets" Condition="Exists('..\packages\Zstandard.Net.1.1.7\build\Zstandard.Net.targets')" />
<ItemGroup>
<PackageReference Include="CDecryptSharp" Version="1.0.4" />
<PackageReference Include="CNUSPACKER" Version="1.0.4" />
<PackageReference Include="GMWare.M2" Version="1.1.2" />
<PackageReference Include="Json.Net" Version="1.0.33" />
<PackageReference Include="MaterialDesignThemes" Version="2.5.1" />
<PackageReference Include="McMaster.Extensions.CommandLineUtils" Version="4.0.1" />
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
<PackageReference Include="NAudio" Version="2.1.0" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
<PackageReference Include="nfs2iso2nfs" Version="1.0.0" />
<PackageReference Include="Octokit" Version="2.0.0" />
<PackageReference Include="Pfim" Version="0.10.3" />
<PackageReference Include="SharpZipLib" Version="1.3.3" />
<PackageReference Include="SixLabors.ImageSharp" Version="2.1.3" />
<PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" />
<PackageReference Include="System.Data.DataSetExtensions" Version="4.5.0" />
<PackageReference Include="WiiUDownloader" Version="1.0.5" />
<PackageReference Include="WindowsAPICodePack-Core" Version="1.1.2" />
<PackageReference Include="WindowsAPICodePack-Shell" Version="1.1.1" />
<PackageReference Include="Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers" Version="0.4.336902">
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="Autoupdater.NET.Official" Version="1.7.4" />
<PackageReference Include="Costura.Fody" Version="5.7.0" />
<PackageReference Include="Microsoft.Windows.Compatibility" Version="6.0.0" />
</ItemGroup>
<ItemGroup>
<Compile Remove="Settings.cs" />
</ItemGroup>
<ItemGroup>
<COMReference Include="Accessibility">
<WrapperTool>tlbimp</WrapperTool>
<VersionMinor>1</VersionMinor>
<VersionMajor>1</VersionMajor>
<Guid>1ea4dbf0-3c3b-11cf-810c-00aa00389b71</Guid>
<Lcid>0</Lcid>
<Isolated>false</Isolated>
<EmbedInteropTypes>true</EmbedInteropTypes>
</COMReference>
</ItemGroup>
<ItemGroup>
<Compile Update="Properties\Settings.Designer.cs">
<DesignTimeSharedInput>True</DesignTimeSharedInput>
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<None Update="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
</ItemGroup>
</Project>

View file

@ -1,22 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Autoupdater.NET.Official" version="1.6.3" 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="GMWare.M2" version="1.1.2" targetFramework="net48" />
<package id="Json.Net" version="1.0.33" targetFramework="net472" />
<package id="MaterialDesignColors" version="1.2.7" targetFramework="net46" />
<package id="MaterialDesignThemes" version="2.6.0" targetFramework="net472" />
<package id="McMaster.Extensions.CommandLineUtils" version="2.4.2" targetFramework="net48" />
<package id="NAudio" version="1.10.0" targetFramework="net46" />
<package id="Newtonsoft.Json" version="13.0.1" targetFramework="net472" />
<package id="Octokit" version="1.0.0" targetFramework="net472" />
<package id="Pfim" version="0.10.3" targetFramework="net472" />
<package id="SharpZipLib" version="1.3.3" targetFramework="net48" />
<package id="System.Buffers" version="4.5.0" targetFramework="net48" />
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="net48" />
<package id="System.ValueTuple" version="4.4.0" targetFramework="net48" />
<package id="WindowsAPICodePack-Core" version="1.1.2" targetFramework="net46" />
<package id="WindowsAPICodePack-Shell" version="1.1.1" targetFramework="net46" />
<package id="Zstandard.Net" version="1.1.7" targetFramework="net48" />
</packages>

13353
upgrade-assistant.clef Normal file

File diff suppressed because it is too large Load diff