Fixes to the Pre-v1.9 build

This commit is contained in:
givememystuffplease 2011-01-19 22:33:05 +00:00
parent fbd8c159ff
commit 79e87fa357
8 changed files with 370 additions and 92 deletions

View File

@ -79,6 +79,7 @@ namespace NUS_Downloader
this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator(); this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
this.proxySettingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.proxySettingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator6 = new System.Windows.Forms.ToolStripSeparator(); this.toolStripSeparator6 = new System.Windows.Forms.ToolStripSeparator();
this.openNUSDDirectoryToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.moreExtrasToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.moreExtrasToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.runFolderFixToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.runFolderFixToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.wiiBrewToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.wiiBrewToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@ -87,7 +88,6 @@ namespace NUS_Downloader
this.removeNUSDFilesFoldersToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.removeNUSDFilesFoldersToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.databaseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.databaseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.localTicketInventoryToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.localTicketInventoryToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.openNUSDDirectoryToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.donateToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.donateToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.aboutNUSDToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.aboutNUSDToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.proxyBox = new System.Windows.Forms.GroupBox(); this.proxyBox = new System.Windows.Forms.GroupBox();
@ -127,10 +127,11 @@ namespace NUS_Downloader
this.packbox = new System.Windows.Forms.CheckBox(); this.packbox = new System.Windows.Forms.CheckBox();
this.decryptbox = new System.Windows.Forms.CheckBox(); this.decryptbox = new System.Windows.Forms.CheckBox();
this.localuse = new System.Windows.Forms.CheckBox(); this.localuse = new System.Windows.Forms.CheckBox();
this.serverLbl = new System.Windows.Forms.Label();
this.titleidbox = new wmgCMS.WaterMarkTextBox(); this.titleidbox = new wmgCMS.WaterMarkTextBox();
this.dlprogress = new wyDay.Controls.Windows7ProgressBar(); this.dlprogress = new wyDay.Controls.Windows7ProgressBar();
this.titleversion = new wmgCMS.WaterMarkTextBox(); this.titleversion = new wmgCMS.WaterMarkTextBox();
this.serverLbl = new System.Windows.Forms.Label(); this.toolStripSeparator7 = new System.Windows.Forms.ToolStripSeparator();
this.databaseStrip.SuspendLayout(); this.databaseStrip.SuspendLayout();
this.extrasStrip.SuspendLayout(); this.extrasStrip.SuspendLayout();
this.proxyBox.SuspendLayout(); this.proxyBox.SuspendLayout();
@ -229,7 +230,7 @@ namespace NUS_Downloader
// SystemMenuList // SystemMenuList
// //
this.SystemMenuList.AutoSize = false; this.SystemMenuList.AutoSize = false;
this.SystemMenuList.Image = global::NUS_Downloader.Properties.Resources.wii16x16_copy; this.SystemMenuList.Image = ((System.Drawing.Image)(resources.GetObject("SystemMenuList.Image")));
this.SystemMenuList.Name = "SystemMenuList"; this.SystemMenuList.Name = "SystemMenuList";
this.SystemMenuList.Size = new System.Drawing.Size(158, 22); this.SystemMenuList.Size = new System.Drawing.Size(158, 22);
this.SystemMenuList.Text = "System"; this.SystemMenuList.Text = "System";
@ -244,7 +245,7 @@ namespace NUS_Downloader
// //
// IOSMenuList // IOSMenuList
// //
this.IOSMenuList.Image = global::NUS_Downloader.Properties.Resources.wii16x16_copy; this.IOSMenuList.Image = ((System.Drawing.Image)(resources.GetObject("IOSMenuList.Image")));
this.IOSMenuList.Name = "IOSMenuList"; this.IOSMenuList.Name = "IOSMenuList";
this.IOSMenuList.Size = new System.Drawing.Size(163, 22); this.IOSMenuList.Size = new System.Drawing.Size(163, 22);
this.IOSMenuList.Text = "IOS"; this.IOSMenuList.Text = "IOS";
@ -271,7 +272,7 @@ namespace NUS_Downloader
this.TurboGrafx16MenuList, this.TurboGrafx16MenuList,
this.TurboGrafxCDMenuList, this.TurboGrafxCDMenuList,
this.VCArcadeMenuList}); this.VCArcadeMenuList});
this.VCMenuList.Image = global::NUS_Downloader.Properties.Resources.wii16x16_copy; this.VCMenuList.Image = ((System.Drawing.Image)(resources.GetObject("VCMenuList.Image")));
this.VCMenuList.Name = "VCMenuList"; this.VCMenuList.Name = "VCMenuList";
this.VCMenuList.Size = new System.Drawing.Size(163, 22); this.VCMenuList.Size = new System.Drawing.Size(163, 22);
this.VCMenuList.Text = "Virtual Console"; this.VCMenuList.Text = "Virtual Console";
@ -352,7 +353,7 @@ namespace NUS_Downloader
// //
// WiiWareMenuList // WiiWareMenuList
// //
this.WiiWareMenuList.Image = global::NUS_Downloader.Properties.Resources.wii16x16_copy; this.WiiWareMenuList.Image = ((System.Drawing.Image)(resources.GetObject("WiiWareMenuList.Image")));
this.WiiWareMenuList.Name = "WiiWareMenuList"; this.WiiWareMenuList.Name = "WiiWareMenuList";
this.WiiWareMenuList.Size = new System.Drawing.Size(163, 22); this.WiiWareMenuList.Size = new System.Drawing.Size(163, 22);
this.WiiWareMenuList.Text = "WiiWare"; this.WiiWareMenuList.Text = "WiiWare";
@ -453,9 +454,10 @@ namespace NUS_Downloader
this.openNUSDDirectoryToolStripMenuItem, this.openNUSDDirectoryToolStripMenuItem,
this.moreExtrasToolStripMenuItem, this.moreExtrasToolStripMenuItem,
this.donateToolStripMenuItem, this.donateToolStripMenuItem,
this.toolStripSeparator7,
this.aboutNUSDToolStripMenuItem}); this.aboutNUSDToolStripMenuItem});
this.extrasStrip.Name = "extrasStrip"; this.extrasStrip.Name = "extrasStrip";
this.extrasStrip.Size = new System.Drawing.Size(178, 170); this.extrasStrip.Size = new System.Drawing.Size(178, 154);
this.extrasStrip.Text = "Hidden"; this.extrasStrip.Text = "Hidden";
this.extrasStrip.Closed += new System.Windows.Forms.ToolStripDropDownClosedEventHandler(this.anyStrip_Closed); this.extrasStrip.Closed += new System.Windows.Forms.ToolStripDropDownClosedEventHandler(this.anyStrip_Closed);
this.extrasStrip.Opening += new System.ComponentModel.CancelEventHandler(this.extrasStrip_Opening); this.extrasStrip.Opening += new System.ComponentModel.CancelEventHandler(this.extrasStrip_Opening);
@ -486,6 +488,14 @@ namespace NUS_Downloader
this.toolStripSeparator6.Name = "toolStripSeparator6"; this.toolStripSeparator6.Name = "toolStripSeparator6";
this.toolStripSeparator6.Size = new System.Drawing.Size(174, 6); this.toolStripSeparator6.Size = new System.Drawing.Size(174, 6);
// //
// openNUSDDirectoryToolStripMenuItem
//
this.openNUSDDirectoryToolStripMenuItem.Image = global::NUS_Downloader.Properties.Resources.folder;
this.openNUSDDirectoryToolStripMenuItem.Name = "openNUSDDirectoryToolStripMenuItem";
this.openNUSDDirectoryToolStripMenuItem.Size = new System.Drawing.Size(177, 22);
this.openNUSDDirectoryToolStripMenuItem.Text = "Open NUSD Directory";
this.openNUSDDirectoryToolStripMenuItem.Click += new System.EventHandler(this.openNUSDDirectoryToolStripMenuItem_Click);
//
// moreExtrasToolStripMenuItem // moreExtrasToolStripMenuItem
// //
this.moreExtrasToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.moreExtrasToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
@ -551,20 +561,13 @@ namespace NUS_Downloader
this.localTicketInventoryToolStripMenuItem.Text = "Local Ticket Inventory"; this.localTicketInventoryToolStripMenuItem.Text = "Local Ticket Inventory";
this.localTicketInventoryToolStripMenuItem.Click += new System.EventHandler(this.localTicketInventoryToolStripMenuItem_Click); this.localTicketInventoryToolStripMenuItem.Click += new System.EventHandler(this.localTicketInventoryToolStripMenuItem_Click);
// //
// openNUSDDirectoryToolStripMenuItem
//
this.openNUSDDirectoryToolStripMenuItem.Image = global::NUS_Downloader.Properties.Resources.folder;
this.openNUSDDirectoryToolStripMenuItem.Name = "openNUSDDirectoryToolStripMenuItem";
this.openNUSDDirectoryToolStripMenuItem.Size = new System.Drawing.Size(177, 22);
this.openNUSDDirectoryToolStripMenuItem.Text = "Open NUSD Directory";
this.openNUSDDirectoryToolStripMenuItem.Click += new System.EventHandler(this.openNUSDDirectoryToolStripMenuItem_Click);
//
// donateToolStripMenuItem // donateToolStripMenuItem
// //
this.donateToolStripMenuItem.Image = global::NUS_Downloader.Properties.Resources.money; this.donateToolStripMenuItem.Image = global::NUS_Downloader.Properties.Resources.money;
this.donateToolStripMenuItem.Name = "donateToolStripMenuItem"; this.donateToolStripMenuItem.Name = "donateToolStripMenuItem";
this.donateToolStripMenuItem.Size = new System.Drawing.Size(177, 22); this.donateToolStripMenuItem.Size = new System.Drawing.Size(177, 22);
this.donateToolStripMenuItem.Text = "Donate!"; this.donateToolStripMenuItem.Text = "Donate!";
this.donateToolStripMenuItem.Visible = false;
this.donateToolStripMenuItem.Click += new System.EventHandler(this.donateToolStripMenuItem_Click); this.donateToolStripMenuItem.Click += new System.EventHandler(this.donateToolStripMenuItem_Click);
// //
// aboutNUSDToolStripMenuItem // aboutNUSDToolStripMenuItem
@ -993,6 +996,20 @@ namespace NUS_Downloader
this.localuse.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; this.localuse.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
this.localuse.UseVisualStyleBackColor = true; this.localuse.UseVisualStyleBackColor = true;
// //
// serverLbl
//
this.serverLbl.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.serverLbl.Location = new System.Drawing.Point(233, 38);
this.serverLbl.Name = "serverLbl";
this.serverLbl.Size = new System.Drawing.Size(29, 20);
this.serverLbl.TabIndex = 57;
this.serverLbl.Text = "Wii";
this.serverLbl.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.serverLbl.TextChanged += new System.EventHandler(this.serverLbl_TextChanged);
this.serverLbl.Click += new System.EventHandler(this.serverLbl_Click);
this.serverLbl.MouseEnter += new System.EventHandler(this.serverLbl_MouseEnter);
this.serverLbl.MouseLeave += new System.EventHandler(this.serverLbl_MouseLeave);
//
// titleidbox // titleidbox
// //
this.titleidbox.Font = new System.Drawing.Font("Tahoma", 8.25F); this.titleidbox.Font = new System.Drawing.Font("Tahoma", 8.25F);
@ -1027,19 +1044,10 @@ namespace NUS_Downloader
this.titleversion.WaterMarkText = "Version"; this.titleversion.WaterMarkText = "Version";
this.titleversion.TextChanged += new System.EventHandler(this.titleversion_TextChanged); this.titleversion.TextChanged += new System.EventHandler(this.titleversion_TextChanged);
// //
// serverLbl // toolStripSeparator7
// //
this.serverLbl.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.toolStripSeparator7.Name = "toolStripSeparator7";
this.serverLbl.Location = new System.Drawing.Point(233, 38); this.toolStripSeparator7.Size = new System.Drawing.Size(174, 6);
this.serverLbl.Name = "serverLbl";
this.serverLbl.Size = new System.Drawing.Size(29, 20);
this.serverLbl.TabIndex = 57;
this.serverLbl.Text = "Wii";
this.serverLbl.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.serverLbl.TextChanged += new System.EventHandler(this.serverLbl_TextChanged);
this.serverLbl.Click += new System.EventHandler(this.serverLbl_Click);
this.serverLbl.MouseEnter += new System.EventHandler(this.serverLbl_MouseEnter);
this.serverLbl.MouseLeave += new System.EventHandler(this.serverLbl_MouseLeave);
// //
// Form1 // Form1
// //
@ -1185,6 +1193,7 @@ namespace NUS_Downloader
private System.Windows.Forms.ToolStripMenuItem wiiRegionCodesMenu; private System.Windows.Forms.ToolStripMenuItem wiiRegionCodesMenu;
private System.Windows.Forms.ToolStripMenuItem dsiRegionCodesMenu; private System.Windows.Forms.ToolStripMenuItem dsiRegionCodesMenu;
private System.Windows.Forms.Label serverLbl; private System.Windows.Forms.Label serverLbl;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator7;
} }
} }

View File

@ -638,9 +638,9 @@ namespace NUS_Downloader
{ {
SetTextThreadSafe(statusbox, " --- " + titleidbox.Text + " ---"); SetTextThreadSafe(statusbox, " --- " + titleidbox.Text + " ---");
} }
}*/ }
else else
WriteStatus(" --- " + titleidbox.Text + " ---"); WriteStatus(" --- " + titleidbox.Text + " ---");*/
// Running Downloads in background so no form freezing // Running Downloads in background so no form freezing
@ -682,7 +682,6 @@ namespace NUS_Downloader
// WebClient configuration // WebClient configuration
WebClient nusWC = new WebClient(); WebClient nusWC = new WebClient();
nusWC = ConfigureWithProxy(nusWC); nusWC = ConfigureWithProxy(nusWC);
nusWC.Headers.Add("User-Agent", "wii libnup/1.0"); // Set UserAgent to Wii value
// Create\Configure NusClient // Create\Configure NusClient
libWiiSharp.NusClient nusClient = new libWiiSharp.NusClient(); libWiiSharp.NusClient nusClient = new libWiiSharp.NusClient();
@ -1741,7 +1740,7 @@ namespace NUS_Downloader
/// <returns>Database as a String</returns> /// <returns>Database as a String</returns>
private void RetrieveNewDatabase(object sender, DoWorkEventArgs e) private void RetrieveNewDatabase(object sender, DoWorkEventArgs e)
{ {
// Retrieve Wiibrew database page source code // Retrieve Wiibrew/DSiBrew database page source code
WebClient databasedl = new WebClient(); WebClient databasedl = new WebClient();
// Proxy // Proxy
@ -1811,7 +1810,7 @@ namespace NUS_Downloader
if (File.Exists(databaseFilename)) if (File.Exists(databaseFilename))
{ {
WriteStatus(" - Overwriting your current database..."); WriteStatus(" - Overwriting your current database...");
WriteStatus(" - The old database will become 'old*database.xml' in case the new one is faulty."); WriteStatus(String.Format(" - The old database will become 'old{0}' in case the new one is faulty.", databaseFilename));
string olddatabase = File.ReadAllText(databaseFilename); string olddatabase = File.ReadAllText(databaseFilename);
File.WriteAllText("old" + databaseFilename, olddatabase); File.WriteAllText("old" + databaseFilename, olddatabase);
@ -1820,8 +1819,8 @@ namespace NUS_Downloader
} }
else else
{ {
WriteStatus(" - database.xml has been created."); WriteStatus(String.Format(" - {0} has been created.", databaseFilename));
File.WriteAllText("database.xml", database); File.WriteAllText(databaseFilename, database);
isCreation = true; isCreation = true;
} }
@ -2423,15 +2422,15 @@ namespace NUS_Downloader
WriteStatus("Various contributions by lukegb"); WriteStatus("Various contributions by lukegb");
WriteStatus(String.Empty); WriteStatus(String.Empty);
if (NUSDFileExists("key.bin") == false) if (NUSDFileExists("key.bin") == true)
WriteStatus("Wii Decryption: Local (key.bin)"); WriteStatus("Wii Decryption: Local (key.bin)");
if (NUSDFileExists("kkey.bin") == false) if (NUSDFileExists("kkey.bin") == true)
WriteStatus("Wii Korea Decryption: Local (kkey.bin)"); WriteStatus("Wii Korea Decryption: Local (kkey.bin)");
if (NUSDFileExists("dsikey.bin") == false) if (NUSDFileExists("dsikey.bin") == true)
WriteStatus("DSi Decryption: Local (dsikey.bin)"); WriteStatus("DSi Decryption: Local (dsikey.bin)");

View File

@ -123,13 +123,265 @@
<metadata name="databaseStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="databaseStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>159, 17</value> <value>159, 17</value>
</metadata> </metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="SystemMenuList.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
71CQAAAAAElFTkSuQmCC
</value>
</data>
<data name="IOSMenuList.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
71CQAAAAAElFTkSuQmCC
</value>
</data>
<data name="VCMenuList.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
71CQAAAAAElFTkSuQmCC
</value>
</data>
<data name="WiiWareMenuList.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
71CQAAAAAElFTkSuQmCC
</value>
</data>
<metadata name="extrasStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="extrasStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>285, 17</value> <value>285, 17</value>
</metadata> </metadata>
<metadata name="scriptsStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="scriptsStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>394, 17</value> <value>394, 17</value>
</metadata> </metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
AAABAAYAEBAAAAAAIABoBAAAZgAAABgYAAAAACAAiAkAAM4EAAAgIAAAAAAgAKgQAABWDgAAMDAAAAAA AAABAAYAEBAAAAAAIABoBAAAZgAAABgYAAAAACAAiAkAAM4EAAAgIAAAAAAgAKgQAABWDgAAMDAAAAAA

View File

@ -14,10 +14,10 @@
<FileAlignment>512</FileAlignment> <FileAlignment>512</FileAlignment>
<ApplicationIcon>Crystal_Clear_app_ark2.ico</ApplicationIcon> <ApplicationIcon>Crystal_Clear_app_ark2.ico</ApplicationIcon>
<IsWebBootstrapper>false</IsWebBootstrapper> <IsWebBootstrapper>false</IsWebBootstrapper>
<ManifestCertificateThumbprint>5828AACDBD1A48E3768B7E0465E90D0E96E2BE4C</ManifestCertificateThumbprint> <ManifestCertificateThumbprint>1555E408E7D4078FB64D4CC67B4156C20E540209</ManifestCertificateThumbprint>
<ManifestKeyFile>NUS Downloader_TemporaryKey.pfx</ManifestKeyFile> <ManifestKeyFile>NUS Downloader_TemporaryKey.pfx</ManifestKeyFile>
<GenerateManifests>false</GenerateManifests> <GenerateManifests>true</GenerateManifests>
<SignManifests>false</SignManifests> <SignManifests>true</SignManifests>
<TargetZone>LocalIntranet</TargetZone> <TargetZone>LocalIntranet</TargetZone>
<ApplicationManifest>Properties\app.manifest</ApplicationManifest> <ApplicationManifest>Properties\app.manifest</ApplicationManifest>
<FileUpgradeFlags> <FileUpgradeFlags>
@ -25,7 +25,8 @@
<UpgradeBackupLocation> <UpgradeBackupLocation>
</UpgradeBackupLocation> </UpgradeBackupLocation>
<OldToolsVersion>3.5</OldToolsVersion> <OldToolsVersion>3.5</OldToolsVersion>
<PublishUrl>C:\Users\Luke\Desktop\NUSD\build\</PublishUrl> <TargetFrameworkProfile />
<PublishUrl>C:\Users\Windows7\Documents\Visual Studio 2010\Projects\NUS Downloader\NUS Downloader\publish\</PublishUrl>
<Install>true</Install> <Install>true</Install>
<InstallFrom>Disk</InstallFrom> <InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled> <UpdateEnabled>false</UpdateEnabled>
@ -34,13 +35,13 @@
<UpdateIntervalUnits>Days</UpdateIntervalUnits> <UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically> <UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired> <UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions> <MapFileExtensions>false</MapFileExtensions>
<ApplicationRevision>11</ApplicationRevision> <OpenBrowserOnPublish>false</OpenBrowserOnPublish>
<ApplicationRevision>12</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion> <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust> <UseApplicationTrust>false</UseApplicationTrust>
<PublishWizardCompleted>true</PublishWizardCompleted> <PublishWizardCompleted>true</PublishWizardCompleted>
<BootstrapperEnabled>true</BootstrapperEnabled> <BootstrapperEnabled>true</BootstrapperEnabled>
<TargetFrameworkProfile />
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols> <DebugSymbols>true</DebugSymbols>
@ -110,6 +111,7 @@
<SubType>Designer</SubType> <SubType>Designer</SubType>
</None> </None>
<None Include="COPYING" /> <None Include="COPYING" />
<None Include="NUS Downloader_TemporaryKey.pfx" />
<None Include="Properties\Settings.settings"> <None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator> <Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput> <LastGenOutput>Settings.Designer.cs</LastGenOutput>
@ -216,6 +218,28 @@
<Install>false</Install> <Install>false</Install>
</BootstrapperPackage> </BootstrapperPackage>
</ItemGroup> </ItemGroup>
<ItemGroup>
<PublishFile Include="Crystal_Clear_app_ark2.ico">
<Visible>False</Visible>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Exclude</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>File</FileType>
</PublishFile>
<PublishFile Include="Resources\key.png">
<Visible>False</Visible>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Exclude</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>File</FileType>
</PublishFile>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup> <PropertyGroup>
<PostBuildEvent>copy "$(TargetPath)" "$(ProjectDir)\Latest\"</PostBuildEvent> <PostBuildEvent>copy "$(TargetPath)" "$(ProjectDir)\Latest\"</PostBuildEvent>

View File

@ -37,6 +37,9 @@ namespace libWiiSharp
private const string WII_NUS_URL = "http://nus.cdn.shop.wii.com/ccs/download/"; private const string WII_NUS_URL = "http://nus.cdn.shop.wii.com/ccs/download/";
private const string DSI_NUS_URL = "http://nus.cdn.t.shop.nintendowifi.net/ccs/download/"; private const string DSI_NUS_URL = "http://nus.cdn.t.shop.nintendowifi.net/ccs/download/";
private const string WII_USER_AGENT = "wii libnup/1.0";
private const string DSI_USER_AGENT = "Opera/9.50 (Nintendo; Opera/154; U; Nintendo DS; en)";
private string nusUrl = WII_NUS_URL; private string nusUrl = WII_NUS_URL;
private WebClient wcNus = new WebClient(); private WebClient wcNus = new WebClient();
private bool useLocalFiles = false; private bool useLocalFiles = false;
@ -90,11 +93,13 @@ namespace libWiiSharp
public void SetToWiiServer() public void SetToWiiServer()
{ {
nusUrl = WII_NUS_URL; nusUrl = WII_NUS_URL;
wcNus.Headers.Add("User-Agent", WII_USER_AGENT);
} }
public void SetToDSiServer() public void SetToDSiServer()
{ {
nusUrl = DSI_NUS_URL; nusUrl = DSI_NUS_URL;
wcNus.Headers.Add("User-Agent", DSI_USER_AGENT);
} }
/// <summary> /// <summary>
@ -285,21 +290,21 @@ namespace libWiiSharp
switch (st) switch (st)
{ {
case StoreType.DecryptedContent: case StoreType.DecryptedContent:
fireDebug(" -> Storing Decrypted Content..."); fireDebug(" [=] Storing Decrypted Content...");
storeDecrypted = true; storeDecrypted = true;
break; break;
case StoreType.EncryptedContent: case StoreType.EncryptedContent:
fireDebug(" -> Storing Encrypted Content..."); fireDebug(" [=] Storing Encrypted Content...");
storeEncrypted = true; storeEncrypted = true;
break; break;
case StoreType.WAD: case StoreType.WAD:
fireDebug(" -> Storing WAD..."); fireDebug(" [=] Storing WAD...");
storeWad = true; storeWad = true;
break; break;
case StoreType.All: case StoreType.All:
fireDebug(" -> Storing Decrypted Content..."); fireDebug(" [=] Storing Decrypted Content...");
fireDebug(" -> Storing Encrypted Content..."); fireDebug(" [=] Storing Encrypted Content...");
fireDebug(" -> Storing WAD..."); fireDebug(" [=] Storing WAD...");
storeDecrypted = true; storeDecrypted = true;
storeEncrypted = true; storeEncrypted = true;
storeWad = true; storeWad = true;
@ -308,12 +313,12 @@ namespace libWiiSharp
break; break;
} }
} }
/*
fireDebug(" Checking for Internet connection..."); fireDebug(" - Checking for Internet connection...");
if (!CheckInet()) if (!CheckInet())
{ fireDebug(" Connection not found..."); throw new Exception("You're not connected to the internet!"); } { fireDebug(" + Connection not found..."); throw new Exception("You're not connected to the internet!"); }
*/
//if (outputDir[outputDir.Length - 1] != Path.DirectorySeparatorChar) outputDir += Path.DirectorySeparatorChar;
if (!Directory.Exists(outputDir)) Directory.CreateDirectory(outputDir); if (!Directory.Exists(outputDir)) Directory.CreateDirectory(outputDir);
if (!Directory.Exists(Path.Combine(outputDir, titleId))) Directory.CreateDirectory(Path.Combine(outputDir, titleId)); if (!Directory.Exists(Path.Combine(outputDir, titleId))) Directory.CreateDirectory(Path.Combine(outputDir, titleId));
outputDir = Path.Combine(outputDir, titleId); outputDir = Path.Combine(outputDir, titleId);
@ -321,7 +326,7 @@ namespace libWiiSharp
string tmdFile = "tmd" + (string.IsNullOrEmpty(titleVersion) ? string.Empty : string.Format(".{0}", titleVersion)); string tmdFile = "tmd" + (string.IsNullOrEmpty(titleVersion) ? string.Empty : string.Format(".{0}", titleVersion));
//Download TMD //Download TMD
fireDebug(" Downloading TMD..."); fireDebug(" - Downloading TMD...");
TMD tmd; TMD tmd;
byte[] tmdFileWithCerts; byte[] tmdFileWithCerts;
try try
@ -329,13 +334,13 @@ namespace libWiiSharp
tmdFileWithCerts = wcNus.DownloadData(titleUrl + tmdFile); tmdFileWithCerts = wcNus.DownloadData(titleUrl + tmdFile);
tmd = TMD.Load(tmdFileWithCerts); tmd = TMD.Load(tmdFileWithCerts);
} }
catch (Exception ex) { fireDebug(" Downloading TMD Failed..."); throw new Exception("Downloading TMD Failed:\n" + ex.Message); } catch (Exception ex) { fireDebug(" + Downloading TMD Failed..."); throw new Exception("Downloading TMD Failed:\n" + ex.Message); }
//Parse TMD //Parse TMD
fireDebug(" Parsing TMD..."); fireDebug(" - Parsing TMD...");
if (string.IsNullOrEmpty(titleVersion)) { fireDebug(" -> Title Version: {0}", tmd.TitleVersion); } if (string.IsNullOrEmpty(titleVersion)) { fireDebug(" + Title Version: {0}", tmd.TitleVersion); }
fireDebug(" -> {0} Contents", tmd.NumOfContents); fireDebug(" + {0} Contents", tmd.NumOfContents);
if (!Directory.Exists(Path.Combine(outputDir, tmd.TitleVersion.ToString()))) Directory.CreateDirectory(Path.Combine(outputDir, tmd.TitleVersion.ToString())); if (!Directory.Exists(Path.Combine(outputDir, tmd.TitleVersion.ToString()))) Directory.CreateDirectory(Path.Combine(outputDir, tmd.TitleVersion.ToString()));
outputDir = Path.Combine(outputDir, tmd.TitleVersion.ToString()); outputDir = Path.Combine(outputDir, tmd.TitleVersion.ToString());
@ -347,7 +352,7 @@ namespace libWiiSharp
fireProgress(5); fireProgress(5);
//Download cetk //Download cetk
fireDebug(" Downloading Ticket..."); fireDebug(" - Downloading Ticket...");
try try
{ {
wcNus.DownloadFile(Path.Combine(titleUrl, "cetk"), Path.Combine(outputDir, "cetk")); wcNus.DownloadFile(Path.Combine(titleUrl, "cetk"), Path.Combine(outputDir, "cetk"));
@ -356,7 +361,7 @@ namespace libWiiSharp
{ {
if (!continueWithoutTicket || !storeEncrypted) if (!continueWithoutTicket || !storeEncrypted)
{ {
fireDebug(" Downloading Ticket Failed..."); fireDebug(" + Downloading Ticket Failed...");
throw new Exception("Downloading Ticket Failed:\n" + ex.Message); throw new Exception("Downloading Ticket Failed:\n" + ex.Message);
} }
@ -374,7 +379,7 @@ namespace libWiiSharp
if (File.Exists(Path.Combine(outputDir, "cetk"))) if (File.Exists(Path.Combine(outputDir, "cetk")))
{ {
fireDebug(" Parsing Ticket..."); fireDebug(" + Parsing Ticket...");
tik = Ticket.Load(Path.Combine(outputDir, "cetk")); tik = Ticket.Load(Path.Combine(outputDir, "cetk"));
// DSi ticket? Must make sure to use DSi Key :D // DSi ticket? Must make sure to use DSi Key :D
@ -383,7 +388,7 @@ namespace libWiiSharp
} }
else else
{ {
fireDebug(" Ticket Unavailable..."); fireDebug(" + Ticket Unavailable...");
} }
string[] encryptedContents = new string[tmd.NumOfContents]; string[] encryptedContents = new string[tmd.NumOfContents];
@ -391,11 +396,11 @@ namespace libWiiSharp
//Download Content //Download Content
for (int i = 0; i < tmd.NumOfContents; i++) for (int i = 0; i < tmd.NumOfContents; i++)
{ {
fireDebug(" Downloading Content #{0} of {1}... ({2} bytes)", i + 1, tmd.NumOfContents, tmd.Contents[i].Size); fireDebug(" - Downloading Content #{0} of {1}... ({2} bytes)", i + 1, tmd.NumOfContents, tmd.Contents[i].Size);
fireProgress(((i + 1) * 60 / tmd.NumOfContents) + 10); fireProgress(((i + 1) * 60 / tmd.NumOfContents) + 10);
if (useLocalFiles && File.Exists(Path.Combine(outputDir, tmd.Contents[i].ContentID.ToString("x8")))) if (useLocalFiles && File.Exists(Path.Combine(outputDir, tmd.Contents[i].ContentID.ToString("x8"))))
{ fireDebug(" Using Local File, Skipping..."); continue; } { fireDebug(" + Using Local File, Skipping..."); continue; }
try try
{ {
@ -404,7 +409,7 @@ namespace libWiiSharp
encryptedContents[i] = tmd.Contents[i].ContentID.ToString("x8"); encryptedContents[i] = tmd.Contents[i].ContentID.ToString("x8");
} }
catch (Exception ex) { fireDebug(" Downloading Content #{0} of {1} failed...", i + 1, tmd.NumOfContents); throw new Exception("Downloading Content Failed:\n" + ex.Message); } catch (Exception ex) { fireDebug(" - Downloading Content #{0} of {1} failed...", i + 1, tmd.NumOfContents); throw new Exception("Downloading Content Failed:\n" + ex.Message); }
} }
//Decrypt Content //Decrypt Content
@ -414,7 +419,7 @@ namespace libWiiSharp
for (int i = 0; i < tmd.NumOfContents; i++) for (int i = 0; i < tmd.NumOfContents; i++)
{ {
fireDebug(" Decrypting Content #{0} of {1}...", i + 1, tmd.NumOfContents); fireDebug(" - Decrypting Content #{0} of {1}...", i + 1, tmd.NumOfContents);
fireProgress(((i + 1) * 20 / tmd.NumOfContents) + 75); fireProgress(((i + 1) * 20 / tmd.NumOfContents) + 75);
//Decrypt Content //Decrypt Content
@ -426,7 +431,7 @@ namespace libWiiSharp
byte[] newSha = s.ComputeHash(decryptedContent); byte[] newSha = s.ComputeHash(decryptedContent);
if (!Shared.CompareByteArrays(newSha, tmd.Contents[i].Hash)) if (!Shared.CompareByteArrays(newSha, tmd.Contents[i].Hash))
{ {
fireDebug(@"/!\ /!\ Hashes do not match /!\ /!\"); fireDebug(@" + Hashes do not match! (Invalid Output)");
//throw new Exception(string.Format("Content #{0}: Hashes do not match!", i)); //throw new Exception(string.Format("Content #{0}: Hashes do not match!", i));
} }
@ -440,7 +445,7 @@ namespace libWiiSharp
//Pack Wad //Pack Wad
if (storeWad) if (storeWad)
{ {
fireDebug(" Building Certificate Chain..."); fireDebug(" - Building Certificate Chain...");
CertificateChain cert = CertificateChain.FromTikTmd(Path.Combine(outputDir, "cetk"), tmdFileWithCerts); CertificateChain cert = CertificateChain.FromTikTmd(Path.Combine(outputDir, "cetk"), tmdFileWithCerts);
byte[][] contents = new byte[tmd.NumOfContents][]; byte[][] contents = new byte[tmd.NumOfContents][];
@ -448,7 +453,7 @@ namespace libWiiSharp
for (int i = 0; i < tmd.NumOfContents; i++) for (int i = 0; i < tmd.NumOfContents; i++)
contents[i] = File.ReadAllBytes(Path.Combine(outputDir, (tmd.Contents[i].ContentID.ToString("x8") + ".app"))); contents[i] = File.ReadAllBytes(Path.Combine(outputDir, (tmd.Contents[i].ContentID.ToString("x8") + ".app")));
fireDebug(" Creating WAD..."); fireDebug(" - Creating WAD...");
WAD wad = WAD.Create(cert, tik, tmd, contents); WAD wad = WAD.Create(cert, tik, tmd, contents);
wad.RemoveFooter(); wad.RemoveFooter();
wadName = wadName.Replace("[v]", this.TitleVersion.ToString()); wadName = wadName.Replace("[v]", this.TitleVersion.ToString());
@ -461,26 +466,26 @@ namespace libWiiSharp
//Delete not wanted files //Delete not wanted files
if (!storeEncrypted) if (!storeEncrypted)
{ {
fireDebug(" Deleting Encrypted Contents..."); fireDebug(" - Deleting Encrypted Contents...");
for (int i = 0; i < encryptedContents.Length; i++) for (int i = 0; i < encryptedContents.Length; i++)
if (File.Exists(Path.Combine(outputDir, encryptedContents[i]))) File.Delete(Path.Combine(outputDir, encryptedContents[i])); if (File.Exists(Path.Combine(outputDir, encryptedContents[i]))) File.Delete(Path.Combine(outputDir, encryptedContents[i]));
} }
if (storeWad && !storeDecrypted) if (storeWad && !storeDecrypted)
{ {
fireDebug(" Deleting Decrypted Contents..."); fireDebug(" - Deleting Decrypted Contents...");
for (int i = 0; i < encryptedContents.Length; i++) for (int i = 0; i < encryptedContents.Length; i++)
if (File.Exists(Path.Combine(outputDir, (encryptedContents[i] + ".app")))) File.Delete(Path.Combine(outputDir, (encryptedContents[i] + ".app"))); if (File.Exists(Path.Combine(outputDir, (encryptedContents[i] + ".app")))) File.Delete(Path.Combine(outputDir, (encryptedContents[i] + ".app")));
} }
if (!storeDecrypted && !storeEncrypted) if (!storeDecrypted && !storeEncrypted)
{ {
fireDebug(" Deleting TMD and Ticket..."); fireDebug(" - Deleting TMD and Ticket...");
File.Delete(Path.Combine(outputDir, tmdFile)); File.Delete(Path.Combine(outputDir, tmdFile));
File.Delete(Path.Combine(outputDir, "cetk")); File.Delete(Path.Combine(outputDir, "cetk"));
} }
fireDebug("Downloading Title {0} v{1} Finished...", titleId, (string.IsNullOrEmpty(titleVersion)) ? "[Latest]" : titleVersion); fireDebug("Downloading Title {0} v{1} Finished...", titleId, tmd.TitleVersion /*(string.IsNullOrEmpty(titleVersion)) ? "[Latest]" : titleVersion*/);
fireProgress(100); fireProgress(100);
} }

View File

@ -319,13 +319,6 @@ namespace NUS_Downloader.Properties {
} }
} }
internal static System.Drawing.Bitmap wii16x16_copy {
get {
object obj = ResourceManager.GetObject("wii16x16 copy", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
internal static System.Drawing.Bitmap wrench { internal static System.Drawing.Bitmap wrench {
get { get {
object obj = ResourceManager.GetObject("wrench", resourceCulture); object obj = ResourceManager.GetObject("wrench", resourceCulture);

View File

@ -127,7 +127,7 @@
<data name="bullet_redorange" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="bullet_redorange" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\bullet_redorange.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\bullet_redorange.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="wii16x16 copy" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="wii16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\wii16x16 copy.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\wii16x16 copy.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="bullet_redgreen" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="bullet_redgreen" type="System.Resources.ResXFileRef, System.Windows.Forms">
@ -193,9 +193,6 @@
<data name="database_save" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="database_save" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\database_save.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\database_save.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="wii16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\wii16x16.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="bullet_green" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="bullet_green" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\bullet_green.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\bullet_green.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
@ -232,7 +229,6 @@
<data name="information" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="information" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\information.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\information.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="dsi16x16" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="dsi16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\dsi16x16.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\dsi16x16.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>