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_Main.Designer.cs b/CustomizeMii/CustomizeMii_Main.Designer.cs
index 409cea5..b92307f 100644
--- a/CustomizeMii/CustomizeMii_Main.Designer.cs
+++ b/CustomizeMii/CustomizeMii_Main.Designer.cs
@@ -167,6 +167,7 @@ namespace CustomizeMii
this.cmDol = new System.Windows.Forms.ContextMenuStrip(this.components);
this.cmLoadDol = new System.Windows.Forms.ToolStripMenuItem();
this.cmDolFromSource = new System.Windows.Forms.ToolStripMenuItem();
+ this.panCredits = new System.Windows.Forms.Panel();
this.tabControl.SuspendLayout();
this.tabSource.SuspendLayout();
this.tabTitle.SuspendLayout();
@@ -182,6 +183,7 @@ namespace CustomizeMii
this.cmOptionsExtract.SuspendLayout();
this.cmSound.SuspendLayout();
this.cmDol.SuspendLayout();
+ this.panCredits.SuspendLayout();
this.SuspendLayout();
//
// btnCreateWad
@@ -1186,9 +1188,9 @@ namespace CustomizeMii
//
// tabCredits
//
+ 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);
@@ -1225,9 +1227,9 @@ namespace CustomizeMii
//
// lbCreditThanks
//
- this.lbCreditThanks.Location = new System.Drawing.Point(0, 91);
+ this.lbCreditThanks.Location = new System.Drawing.Point(8, 0);
this.lbCreditThanks.Name = "lbCreditThanks";
- this.lbCreditThanks.Size = new System.Drawing.Size(443, 79);
+ 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;
@@ -1429,6 +1431,15 @@ namespace CustomizeMii
this.cmDolFromSource.Text = "Take From Source WAD";
this.cmDolFromSource.Click += new System.EventHandler(this.cmDolFromSource_Click);
//
+ // 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;
+ //
// CustomizeMii_Main
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@@ -1467,6 +1478,7 @@ namespace CustomizeMii
this.cmOptionsExtract.ResumeLayout(false);
this.cmSound.ResumeLayout(false);
this.cmDol.ResumeLayout(false);
+ this.panCredits.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();
@@ -1594,6 +1606,7 @@ 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;
}
}
diff --git a/CustomizeMii/CustomizeMii_Main.cs b/CustomizeMii/CustomizeMii_Main.cs
index d7421e1..0b1cec0 100644
--- a/CustomizeMii/CustomizeMii_Main.cs
+++ b/CustomizeMii/CustomizeMii_Main.cs
@@ -36,10 +36,11 @@ namespace CustomizeMii
{
public partial class CustomizeMii_Main : Form
{
- const string version = "2.0"; //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()
{
@@ -111,7 +114,10 @@ namespace CustomizeMii
private void CustomizeMii_Main_FormClosing(object sender, FormClosingEventArgs e)
{
- try { if (Directory.Exists(TempPath)) Directory.Delete(TempPath, true); }
+ try {
+ if (Directory.Exists(TempPath)) Directory.Delete(TempPath, true);
+ if (File.Exists("C:\\cmtempmp3wav.wav")) File.Delete("C:\\cmtempmp3wav.wav");
+ }
catch { }
Environment.Exit(0);
}
@@ -157,6 +163,8 @@ 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 !Debug
DisableControls(null, null);
@@ -254,7 +262,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...");
@@ -336,14 +344,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)
@@ -662,6 +690,8 @@ namespace CustomizeMii
private void tabControl_Selecting(object sender, TabControlCancelEventArgs e)
{
+ tmrCredits.Stop();
+
if (tabControl.SelectedTab == tabBanner)
{
lbxBannerTpls.SelectedIndex = -1;
@@ -684,6 +714,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)
@@ -2187,30 +2228,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);
@@ -2218,16 +2251,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 d0eab79..d4775e7 100644
--- a/CustomizeMii/CustomizeMii_Structs.cs
+++ b/CustomizeMii/CustomizeMii_Structs.cs
@@ -1,4 +1,21 @@
-namespace CustomizeMii
+/* This file is part of CustomizeMii
+ * Copyright (C) 2009 Leathl
+ *
+ * CustomizeMii is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * CustomizeMii is distributed in the hope that it will be
+ * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+ namespace CustomizeMii
{
public struct BnsConversionInfo
{
@@ -25,6 +42,7 @@
public string outFile;
public NandLoader nandLoader;
+ public bool sendToWii;
}
public struct Progress
diff --git a/CustomizeMii/Properties/AssemblyInfo.cs b/CustomizeMii/Properties/AssemblyInfo.cs
index a855e62..06a9bdb 100644
--- a/CustomizeMii/Properties/AssemblyInfo.cs
+++ b/CustomizeMii/Properties/AssemblyInfo.cs
@@ -50,6 +50,6 @@ using System.Resources;
// Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern
// übernehmen, indem Sie "*" eingeben:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("2.0.0.0")]
-[assembly: AssemblyFileVersion("2.0.0.0")]
+[assembly: AssemblyVersion("2.1.0.0")]
+[assembly: AssemblyFileVersion("2.1.0.0")]
[assembly: NeutralResourcesLanguageAttribute("en")]
diff --git a/CustomizeMii/Readme.txt b/CustomizeMii/Readme.txt
index 2b0e6b0..f0e14aa 100644
--- a/CustomizeMii/Readme.txt
+++ b/CustomizeMii/Readme.txt
@@ -9,6 +9,9 @@ Thanks to icefire / Xuzz for the basic idea of this Application!
-----------------------------------------------------------------------------------------
Changelog:
+Version 2.1
+ -
+
Version 2.0
- Added BNS conversion (Mono and Stereo, with and without loop)
- Fixed MP3 conversion (some files didn't convert)
diff --git a/ForwardMii-Plugin/Resources/GX/video.cpp b/ForwardMii-Plugin/Resources/GX/video.cpp
index 0c2deb2..345bcf0 100644
--- a/ForwardMii-Plugin/Resources/GX/video.cpp
+++ b/ForwardMii-Plugin/Resources/GX/video.cpp
@@ -13,6 +13,7 @@
#include
#include
#include
+#include
#define DEFAULT_FIFO_SIZE 256 * 1024
static unsigned int *xfb[2] = { NULL, NULL }; // Double buffered