From 2e362a394b4d83e233587392bf85902378123b25 Mon Sep 17 00:00:00 2001 From: leathl Date: Wed, 30 Dec 2009 17:57:38 +0000 Subject: [PATCH] 2.1 Files again for WiiCrazy, I'm confused :D --- CustomizeMii/CustomizeMii.csproj | 2 +- .../CustomizeMii_BackgroundWorkers.cs | 17 +- .../CustomizeMii_ComplexForwarder.Designer.cs | 3 + CustomizeMii/CustomizeMii_Main.Designer.cs | 48 ++++-- CustomizeMii/CustomizeMii_Main.cs | 153 ++++++++++++++---- CustomizeMii/CustomizeMii_Main.resx | 4 +- CustomizeMii/CustomizeMii_Structs.cs | 1 + CustomizeMii/Readme.txt | 4 +- 8 files changed, 187 insertions(+), 45 deletions(-) diff --git a/CustomizeMii/CustomizeMii.csproj b/CustomizeMii/CustomizeMii.csproj index dde6bca..23abde7 100644 --- a/CustomizeMii/CustomizeMii.csproj +++ b/CustomizeMii/CustomizeMii.csproj @@ -27,7 +27,7 @@ false true 0 - 2.0.0.%2a + 2.1.0.%2a false true diff --git a/CustomizeMii/CustomizeMii_BackgroundWorkers.cs b/CustomizeMii/CustomizeMii_BackgroundWorkers.cs index 47060c6..b1694a3 100644 --- a/CustomizeMii/CustomizeMii_BackgroundWorkers.cs +++ b/CustomizeMii/CustomizeMii_BackgroundWorkers.cs @@ -25,6 +25,8 @@ namespace CustomizeMii { partial class CustomizeMii_Main { + public int sendWadReady = 0; + private bool sendToWii = false; private bool internalSound; void bwBannerReplace_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) @@ -542,6 +544,9 @@ namespace CustomizeMii EventHandler DisableControls = new EventHandler(this.DisableControls); this.Invoke(DisableControls); + this.sendToWii = wadInfo.sendToWii; + sendWadReady = 0; + bwCreateWad.ReportProgress(0, "Making TPLs transparent"); MakeBannerTplsTransparent(); MakeIconTplsTransparent(); @@ -725,13 +730,19 @@ namespace CustomizeMii bwCreateWad.ReportProgress(100, " "); CreationTimer.Stop(); - FileInfo fi = new FileInfo(wadInfo.outFile); - double fileSize = Math.Round(fi.Length * 0.0009765625 * 0.0009765625, 2); + if (!sendToWii) + { + FileInfo fi = new FileInfo(wadInfo.outFile); + double fileSize = Math.Round(fi.Length * 0.0009765625 * 0.0009765625, 2); - InfoBox(string.Format("Successfully created custom channel!\nTime elapsed: {0} ms\nFilesize: {1} MB\nApprox. Blocks: {2}", CreationTimer.ElapsedMilliseconds, fileSize, Wii.WadInfo.GetNandBlocks(wadInfo.outFile))); + + InfoBox(string.Format("Successfully created custom channel!\nTime elapsed: {0} ms\nFilesize: {1} MB\nApprox. Blocks: {2}", CreationTimer.ElapsedMilliseconds, fileSize, Wii.WadInfo.GetNandBlocks(wadInfo.outFile))); + } + else sendWadReady = 1; } catch (Exception ex) { + sendWadReady = -1; CreationTimer.Stop(); EventHandler EnableControls = new EventHandler(this.EnableControls); this.Invoke(EnableControls); diff --git a/CustomizeMii/CustomizeMii_ComplexForwarder.Designer.cs b/CustomizeMii/CustomizeMii_ComplexForwarder.Designer.cs index e81c3b8..0a5e3b7 100644 --- a/CustomizeMii/CustomizeMii_ComplexForwarder.Designer.cs +++ b/CustomizeMii/CustomizeMii_ComplexForwarder.Designer.cs @@ -156,6 +156,7 @@ namespace CustomizeMii // // btnCancel // + this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; this.btnCancel.Location = new System.Drawing.Point(186, 179); this.btnCancel.Name = "btnCancel"; this.btnCancel.Size = new System.Drawing.Size(160, 23); @@ -166,8 +167,10 @@ namespace CustomizeMii // // CustomizeMii_ComplexForwarder // + this.AcceptButton = this.btnOK; this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.CancelButton = this.btnCancel; this.ClientSize = new System.Drawing.Size(358, 220); this.Controls.Add(this.btnCancel); this.Controls.Add(this.btnOK); diff --git a/CustomizeMii/CustomizeMii_Main.Designer.cs b/CustomizeMii/CustomizeMii_Main.Designer.cs index 9837a68..b0ce432 100644 --- a/CustomizeMii/CustomizeMii_Main.Designer.cs +++ b/CustomizeMii/CustomizeMii_Main.Designer.cs @@ -139,9 +139,11 @@ namespace CustomizeMii this.tabInstructions = new System.Windows.Forms.TabPage(); this.rtbInstructions = new System.Windows.Forms.RichTextBox(); this.tabCredits = new System.Windows.Forms.TabPage(); + this.lbForwardMiiVersion = new System.Windows.Forms.Label(); + this.panCredits = new System.Windows.Forms.Panel(); + this.lbCreditThanks = new System.Windows.Forms.Label(); this.llbUpdateAvailabe = new System.Windows.Forms.LinkLabel(); this.llbSite = new System.Windows.Forms.LinkLabel(); - this.lbCreditThanks = new System.Windows.Forms.Label(); this.lbCreditVersion = new System.Windows.Forms.Label(); this.lbCreditInfo = new System.Windows.Forms.Label(); this.ssMain = new System.Windows.Forms.StatusStrip(); @@ -177,6 +179,7 @@ namespace CustomizeMii this.tabBrlan.SuspendLayout(); this.tabInstructions.SuspendLayout(); this.tabCredits.SuspendLayout(); + this.panCredits.SuspendLayout(); this.ssMain.SuspendLayout(); this.cmForwarder.SuspendLayout(); this.cmOptionsExtract.SuspendLayout(); @@ -1185,9 +1188,10 @@ namespace CustomizeMii // // tabCredits // + this.tabCredits.Controls.Add(this.lbForwardMiiVersion); + this.tabCredits.Controls.Add(this.panCredits); this.tabCredits.Controls.Add(this.llbUpdateAvailabe); this.tabCredits.Controls.Add(this.llbSite); - this.tabCredits.Controls.Add(this.lbCreditThanks); this.tabCredits.Controls.Add(this.lbCreditVersion); this.tabCredits.Controls.Add(this.lbCreditInfo); this.tabCredits.Location = new System.Drawing.Point(4, 22); @@ -1198,6 +1202,34 @@ namespace CustomizeMii this.tabCredits.Text = "About"; this.tabCredits.UseVisualStyleBackColor = true; // + // lbForwardMiiVersion + // + this.lbForwardMiiVersion.Location = new System.Drawing.Point(0, 62); + this.lbForwardMiiVersion.Name = "lbForwardMiiVersion"; + this.lbForwardMiiVersion.Size = new System.Drawing.Size(443, 13); + this.lbForwardMiiVersion.TabIndex = 6; + this.lbForwardMiiVersion.Text = "You\'re using Version X of the ForwardMii Plugin"; + this.lbForwardMiiVersion.TextAlign = System.Drawing.ContentAlignment.TopCenter; + this.lbForwardMiiVersion.Visible = false; + // + // panCredits + // + this.panCredits.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.panCredits.Controls.Add(this.lbCreditThanks); + this.panCredits.Location = new System.Drawing.Point(0, 94); + this.panCredits.Name = "panCredits"; + this.panCredits.Size = new System.Drawing.Size(443, 79); + this.panCredits.TabIndex = 5; + // + // lbCreditThanks + // + this.lbCreditThanks.Location = new System.Drawing.Point(8, 0); + this.lbCreditThanks.Name = "lbCreditThanks"; + this.lbCreditThanks.Size = new System.Drawing.Size(427, 150); + this.lbCreditThanks.TabIndex = 2; + this.lbCreditThanks.Text = resources.GetString("lbCreditThanks.Text"); + this.lbCreditThanks.TextAlign = System.Drawing.ContentAlignment.TopCenter; + // // llbUpdateAvailabe // this.llbUpdateAvailabe.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); @@ -1222,15 +1254,6 @@ namespace CustomizeMii this.llbSite.TextAlign = System.Drawing.ContentAlignment.TopCenter; this.llbSite.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.llbSite_LinkClicked); // - // lbCreditThanks - // - this.lbCreditThanks.Location = new System.Drawing.Point(0, 91); - this.lbCreditThanks.Name = "lbCreditThanks"; - this.lbCreditThanks.Size = new System.Drawing.Size(443, 79); - this.lbCreditThanks.TabIndex = 2; - this.lbCreditThanks.Text = resources.GetString("lbCreditThanks.Text"); - this.lbCreditThanks.TextAlign = System.Drawing.ContentAlignment.TopCenter; - // // lbCreditVersion // this.lbCreditVersion.Location = new System.Drawing.Point(0, 13); @@ -1460,6 +1483,7 @@ namespace CustomizeMii this.tabBrlan.PerformLayout(); this.tabInstructions.ResumeLayout(false); this.tabCredits.ResumeLayout(false); + this.panCredits.ResumeLayout(false); this.ssMain.ResumeLayout(false); this.ssMain.PerformLayout(); this.cmForwarder.ResumeLayout(false); @@ -1593,6 +1617,8 @@ namespace CustomizeMii private System.Windows.Forms.ContextMenuStrip cmDol; private System.Windows.Forms.ToolStripMenuItem cmLoadDol; private System.Windows.Forms.ToolStripMenuItem cmDolFromSource; + private System.Windows.Forms.Panel panCredits; + private System.Windows.Forms.Label lbForwardMiiVersion; } } diff --git a/CustomizeMii/CustomizeMii_Main.cs b/CustomizeMii/CustomizeMii_Main.cs index b9483eb..7b53ca9 100644 --- a/CustomizeMii/CustomizeMii_Main.cs +++ b/CustomizeMii/CustomizeMii_Main.cs @@ -15,7 +15,7 @@ * along with this program. If not, see . */ -//#define Mono //Change all '\\' to '/' (in all files) while compiling for OS X / Linux (Mono) +//#define Mono //Change all "\\" to "/" (in all files, without quotes) while compiling for OS X / Linux (Mono) //#define Debug //Always remember to turn off :) using System; @@ -36,10 +36,11 @@ namespace CustomizeMii { public partial class CustomizeMii_Main : Form { - const string version = "2.01"; //Hint for myself: Never use a char in the Version (UpdateCheck)! + const string version = "2.1"; //Hint for myself: Never use a char in the Version (UpdateCheck)! const int SoundMaxLength = 30; //In seconds const int SoundWarningLength = 20; //In seconds const int BnsWarningLength = 45; //In seconds + const int CreditsScrollSpeed = 85; //Timer Intervall for the scrolling Credits public static string TempPath = Path.GetTempPath() + "CustomizeMii_Temp\\XXX\\"; public static string TempWadPath = Path.GetTempPath() + "CustomizeMii_Temp\\XXX\\TempWad.wad"; public static string TempUnpackPath = Path.GetTempPath() + "CustomizeMii_Temp\\XXX\\Unpack\\"; @@ -82,6 +83,8 @@ namespace CustomizeMii private Forwarder.Complex ComplexForwarder = new Forwarder.Complex(); private delegate void BoxInvoker(string message); private delegate void SetTextInvoker(string text, TextBox tb); + double separatorBtn; + Timer tmrCredits = new Timer(); public CustomizeMii_Main() { @@ -160,6 +163,13 @@ namespace CustomizeMii btnBrowseSound.Text = "Browse..."; rtbInstructions.Rtf = Properties.Resources.Instructions; rtbInstructions.LinkClicked += new LinkClickedEventHandler(rtbInstructions_LinkClicked); + tmrCredits.Interval = CreditsScrollSpeed; + tmrCredits.Tick += new EventHandler(tmrCredits_Tick); + + if (File.Exists(Application.StartupPath + "\\ForwardMii.dll") && lbForwardMiiVersion.Tag != (object)"Update") + { + SetForwardMiiLabel(); + } #if !Debug DisableControls(null, null); @@ -175,6 +185,16 @@ namespace CustomizeMii catch (Exception ex) { ErrorBox(ex.Message); } } + private void SetForwardMiiLabel() + { + try + { + lbForwardMiiVersion.Text = lbForwardMiiVersion.Text.Replace("X", ForwardMii_Plugin.GetVersion()); + lbForwardMiiVersion.Visible = true; + } + catch { } + } + private void CommonKeyCheck() { if (!File.Exists(Application.StartupPath + "\\common-key.bin") && !File.Exists(Application.StartupPath + "\\key.bin")) @@ -257,7 +277,7 @@ namespace CustomizeMii private void SetToolTips() { ToolTip TTip = new ToolTip(); - TTip.SetToolTip(btnCreateWad, "Create WAD..."); + TTip.SetToolTip(btnCreateWad, "Save WAD or send it directly to the Wii..."); TTip.SetToolTip(btnBrowseSource, "Browse for a WAD that is used as a Base..."); TTip.SetToolTip(btnLoadBaseWad, "Load the selected Base WAD..."); TTip.SetToolTip(btnPreviewBaseWad, "Preview the selected Base WAD, a Browserwindow will be opened..."); @@ -339,14 +359,34 @@ namespace CustomizeMii private void SetButtonText() { - Random Randomizer = new Random(); - btnCreateWad.Text = ButtonTexts[Randomizer.Next(0, ButtonTexts.Length - 1)]; + //Random Randomizer = new Random(); + //btnCreateWad.Text = ButtonTexts[Randomizer.Next(0, ButtonTexts.Length - 1)]; - if (btnCreateWad.Text == "Image") - { - btnCreateWad.Text = string.Empty; - btnCreateWad.Image = Properties.Resources.btnCreateWad; - } + //if (btnCreateWad.Text == "Image") + //{ + // btnCreateWad.Text = string.Empty; + // btnCreateWad.Image = Properties.Resources.btnCreateWad; + //} + + btnCreateWad.Text = string.Empty; + + Image tmpImg = new Bitmap(btnCreateWad.Width, btnCreateWad.Height); + Graphics gImg = Graphics.FromImage(tmpImg); + + gImg.Clear(Color.Transparent); + + separatorBtn = btnCreateWad.Width * 0.5; + + gImg.DrawLine(Pens.Gray, new Point((int)separatorBtn, 0), new Point((int)separatorBtn, btnCreateWad.Height)); + + string sSend = "Send"; + string sSave = "Save"; + + gImg.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SingleBitPerPixelGridFit; + gImg.DrawString(sSend, btnCreateWad.Font, Brushes.Black, new PointF(95, 10)); + gImg.DrawString(sSave, btnCreateWad.Font, Brushes.Black, new PointF(320, 10)); + + btnCreateWad.Image = tmpImg; } private void ErrorBox(string message) @@ -665,6 +705,8 @@ namespace CustomizeMii private void tabControl_Selecting(object sender, TabControlCancelEventArgs e) { + tmrCredits.Stop(); + if (tabControl.SelectedTab == tabBanner) { lbxBannerTpls.SelectedIndex = -1; @@ -687,6 +729,17 @@ namespace CustomizeMii { AddBrlans(null, null); } + else if (tabControl.SelectedTab == tabCredits) + { + lbCreditThanks.Location = new Point(lbCreditThanks.Location.X, panCredits.Height); + tmrCredits.Start(); + } + } + + void tmrCredits_Tick(object sender, EventArgs e) + { + if (lbCreditThanks.Location.Y == -130) lbCreditThanks.Location = new Point(lbCreditThanks.Location.X, panCredits.Height); + lbCreditThanks.Location = new Point(lbCreditThanks.Location.X, lbCreditThanks.Location.Y - 1); } private void lbStatusText_TextChanged(object sender, EventArgs e) @@ -863,6 +916,7 @@ namespace CustomizeMii { llbUpdateAvailabe.Text = llbUpdateAvailabe.Text.Replace("X", NewVersion); llbUpdateAvailabe.Visible = true; + lbForwardMiiVersion.Tag = "Update"; if (MessageBox.Show("Version " + NewVersion + " is availabe.\nDo you want the download page to be opened?", @@ -961,6 +1015,10 @@ namespace CustomizeMii { if (pbProgress.Value == 100) { +#if Mono + CommonKeyCheck(); +#endif + if (tbSourceWad.Text != SourceWadUrls[lbxBaseWads.SelectedIndex]) { try @@ -2190,30 +2248,22 @@ namespace CustomizeMii private void btnCreateWad_Click(object sender, EventArgs e) { - if (pbProgress.Value == 100) + Point mousePos = MousePosition; + + if (mousePos.X < (this.Location.X + btnCreateWad.Location.X + Math.Ceiling(separatorBtn) + 3)) { - if (!string.IsNullOrEmpty(tbSourceWad.Text)) + if (pbProgress.Value == 100) { - if (cbFailureChecks.Checked == true || FailureCheck() == true) + if (!string.IsNullOrEmpty(tbSourceWad.Text)) { - SaveFileDialog sfd = new SaveFileDialog(); - sfd.Filter = "Wii Channels|*.wad"; - - if (!string.IsNullOrEmpty(tbAllLanguages.Text)) - sfd.FileName = tbAllLanguages.Text + " - " + tbTitleID.Text.ToUpper() + ".wad"; - else - sfd.FileName = tbEnglish.Text + " - " + tbTitleID.Text.ToUpper() + ".wad"; - - if (sfd.ShowDialog() == DialogResult.OK) + if (cbFailureChecks.Checked == true || FailureCheck() == true) { try { - CreationTimer.Reset(); - CreationTimer.Start(); - WadCreationInfo wadInfo = new WadCreationInfo(); - wadInfo.outFile = sfd.FileName; + wadInfo.outFile = TempPath + "SendToWii.wad"; wadInfo.nandLoader = (WadCreationInfo.NandLoader)cmbNandLoader.SelectedIndex; + wadInfo.sendToWii = true; BackgroundWorker bwCreateWad = new BackgroundWorker(); bwCreateWad.DoWork += new DoWorkEventHandler(bwCreateWad_DoWork); @@ -2221,16 +2271,65 @@ namespace CustomizeMii bwCreateWad.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bwCreateWad_RunWorkerCompleted); bwCreateWad.WorkerReportsProgress = true; bwCreateWad.RunWorkerAsync(wadInfo); + + // @WiiCrazy: The WAD will be saved to >> TempTempPath + "SendToWii.wad" << + // here. Now a loop that waits for the BackgroundWorker to finish and then opens + // a new window (wiiload - window or whatever) ?! + // If it finishes successfully, the variable >> sendWadReady << will turn into 1, + // if it errors, it will turn into -1, as long as it's running it is 0. } catch (Exception ex) { - CreationTimer.Stop(); ErrorBox(ex.Message); } } } } } + else + { + if (pbProgress.Value == 100) + { + if (!string.IsNullOrEmpty(tbSourceWad.Text)) + { + if (cbFailureChecks.Checked == true || FailureCheck() == true) + { + SaveFileDialog sfd = new SaveFileDialog(); + sfd.Filter = "Wii Channels|*.wad"; + + if (!string.IsNullOrEmpty(tbAllLanguages.Text)) + sfd.FileName = tbAllLanguages.Text + " - " + tbTitleID.Text.ToUpper() + ".wad"; + else + sfd.FileName = tbEnglish.Text + " - " + tbTitleID.Text.ToUpper() + ".wad"; + + if (sfd.ShowDialog() == DialogResult.OK) + { + try + { + CreationTimer.Reset(); + CreationTimer.Start(); + + WadCreationInfo wadInfo = new WadCreationInfo(); + wadInfo.outFile = sfd.FileName; + wadInfo.nandLoader = (WadCreationInfo.NandLoader)cmbNandLoader.SelectedIndex; + + BackgroundWorker bwCreateWad = new BackgroundWorker(); + bwCreateWad.DoWork += new DoWorkEventHandler(bwCreateWad_DoWork); + bwCreateWad.ProgressChanged += new ProgressChangedEventHandler(bwCreateWad_ProgressChanged); + bwCreateWad.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bwCreateWad_RunWorkerCompleted); + bwCreateWad.WorkerReportsProgress = true; + bwCreateWad.RunWorkerAsync(wadInfo); + } + catch (Exception ex) + { + CreationTimer.Stop(); + ErrorBox(ex.Message); + } + } + } + } + } + } } private void lbxBrlytBanner_SelectedIndexChanged(object sender, EventArgs e) diff --git a/CustomizeMii/CustomizeMii_Main.resx b/CustomizeMii/CustomizeMii_Main.resx index 1cafef5..0ca0828 100644 --- a/CustomizeMii/CustomizeMii_Main.resx +++ b/CustomizeMii/CustomizeMii_Main.resx @@ -123,7 +123,9 @@ Xuzz for his idea and hard work Xuzz, SquidMan, megazig, Matt_P, Omega and The Lemon Man for Wii.py SquidMan for Zetsubou Andre Perrot for gbalzss -comex and Waninkoko for both their NAND Loader +comex and Waninkoko for both their NAND Loader +djdynamite123 for the forwarder base files (ForwardMii-Plugin) +The USB Loader GX Team for their forwarder source (ForwardMii-Plugin) 16, 7 diff --git a/CustomizeMii/CustomizeMii_Structs.cs b/CustomizeMii/CustomizeMii_Structs.cs index c5a1c97..d4775e7 100644 --- a/CustomizeMii/CustomizeMii_Structs.cs +++ b/CustomizeMii/CustomizeMii_Structs.cs @@ -42,6 +42,7 @@ public string outFile; public NandLoader nandLoader; + public bool sendToWii; } public struct Progress diff --git a/CustomizeMii/Readme.txt b/CustomizeMii/Readme.txt index 7261d96..f0e14aa 100644 --- a/CustomizeMii/Readme.txt +++ b/CustomizeMii/Readme.txt @@ -9,8 +9,8 @@ Thanks to icefire / Xuzz for the basic idea of this Application! ----------------------------------------------------------------------------------------- Changelog: -Version 2.01 - - Base WAD downloading works again +Version 2.1 + - Version 2.0 - Added BNS conversion (Mono and Stereo, with and without loop)