Version 1.1

git-svn-id: svn://localhost/Users/andi/Downloads/code/trunk@4 eddbe33b-e435-4246-ac25-f5eb65f9a13c
This commit is contained in:
Leathl 2009-11-24 00:09:42 +00:00
parent 7a62a25321
commit 884a954207
20 changed files with 3662 additions and 832 deletions

View File

@ -15,6 +15,21 @@
<TargetFrameworkSubset> <TargetFrameworkSubset>
</TargetFrameworkSubset> </TargetFrameworkSubset>
<ApplicationIcon>Resources\CustomizeMii.ico</ApplicationIcon> <ApplicationIcon>Resources\CustomizeMii.ico</ApplicationIcon>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.1.0.%2a</ApplicationVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols> <DebugSymbols>true</DebugSymbols>
@ -86,7 +101,6 @@
<LastGenOutput>Settings.Designer.cs</LastGenOutput> <LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None> </None>
<EmbeddedResource Include="Resources\comex.app" /> <EmbeddedResource Include="Resources\comex.app" />
<EmbeddedResource Include="Resources\Tmd_Contents" />
<EmbeddedResource Include="Resources\Waninkoko.app" /> <EmbeddedResource Include="Resources\Waninkoko.app" />
<Compile Include="Properties\Settings.Designer.cs"> <Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen> <AutoGen>True</AutoGen>
@ -98,7 +112,36 @@
<ItemGroup> <ItemGroup>
<Content Include="License.txt" /> <Content Include="License.txt" />
<Content Include="Readme.txt" /> <Content Include="Readme.txt" />
<Content Include="Instructions.txt" />
<None Include="Resources\CustomizeMii.ico" /> <None Include="Resources\CustomizeMii.ico" />
<None Include="Resources\Instructions.rtf" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
<Visible>False</Visible>
<ProductName>.NET Framework 2.0 %28x86%29</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
<Visible>False</Visible>
<ProductName>.NET Framework 3.0 %28x86%29</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>false</Install>
</BootstrapperPackage>
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. <!-- To modify your build process, add your task inside one of the targets below and uncomment it.

View File

@ -1 +1,17 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" /> <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<PublishUrlHistory>publish\</PublishUrlHistory>
<InstallUrlHistory>
</InstallUrlHistory>
<SupportUrlHistory>
</SupportUrlHistory>
<UpdateUrlHistory>
</UpdateUrlHistory>
<BootstrapperUrlHistory>
</BootstrapperUrlHistory>
<ErrorReportUrlHistory>
</ErrorReportUrlHistory>
<FallbackCulture>de-DE</FallbackCulture>
<VerifyUploadedFiles>false</VerifyUploadedFiles>
</PropertyGroup>
</Project>

View File

@ -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 <http://www.gnu.org/licenses/>.
*/
namespace CustomizeMii
{ {
partial class CustomizeMii_InputBox partial class CustomizeMii_InputBox
{ {

View File

@ -1,4 +1,21 @@
using System; /* 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 <http://www.gnu.org/licenses/>.
*/
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using System.Data; using System.Data;

View File

@ -1,19 +1,18 @@
/* This file is part of CustomizeMii /* This file is part of CustomizeMii
* Copyright (C) 2009 Leathl * Copyright (C) 2009 Leathl
* *
* CustomizeMii is free software; you can redistribute it and/or * CustomizeMii is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License as published
* as published by the Free Software Foundation; either version 2 * by the Free Software Foundation, either version 3 of the License, or
* of the License, or (at your option) any later version. * (at your option) any later version.
* *
* CustomizeMii is distributed in the hope that it will be useful, * CustomizeMii is distributed in the hope that it will be
* but WITHOUT ANY WARRANTY; without even the implied warranty of * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program. If not, see <http://www.gnu.org/licenses/>.
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/ */
namespace CustomizeMii namespace CustomizeMii
@ -57,7 +56,7 @@ namespace CustomizeMii
this.btnSaveBaseWad = new System.Windows.Forms.Button(); this.btnSaveBaseWad = new System.Windows.Forms.Button();
this.btnPreviewBaseWad = new System.Windows.Forms.Button(); this.btnPreviewBaseWad = new System.Windows.Forms.Button();
this.btnLoadBaseWad = new System.Windows.Forms.Button(); this.btnLoadBaseWad = new System.Windows.Forms.Button();
this.lbBaseWads = new System.Windows.Forms.ListBox(); this.lbxBaseWads = new System.Windows.Forms.ListBox();
this.btnBrowseSource = new System.Windows.Forms.Button(); this.btnBrowseSource = new System.Windows.Forms.Button();
this.tbSourceWad = new System.Windows.Forms.TextBox(); this.tbSourceWad = new System.Windows.Forms.TextBox();
this.lbSource = new System.Windows.Forms.Label(); this.lbSource = new System.Windows.Forms.Label();
@ -81,7 +80,7 @@ namespace CustomizeMii
this.lbAllLanguages = new System.Windows.Forms.Label(); this.lbAllLanguages = new System.Windows.Forms.Label();
this.tabOptions = new System.Windows.Forms.TabPage(); this.tabOptions = new System.Windows.Forms.TabPage();
this.cbLz77 = new System.Windows.Forms.CheckBox(); this.cbLz77 = new System.Windows.Forms.CheckBox();
this.label1 = new System.Windows.Forms.Label(); this.lbOptionsOptional = new System.Windows.Forms.Label();
this.btnBrowseSound = new System.Windows.Forms.Button(); this.btnBrowseSound = new System.Windows.Forms.Button();
this.tbSound = new System.Windows.Forms.TextBox(); this.tbSound = new System.Windows.Forms.TextBox();
this.cmbNandLoader = new System.Windows.Forms.ComboBox(); this.cmbNandLoader = new System.Windows.Forms.ComboBox();
@ -93,20 +92,50 @@ namespace CustomizeMii
this.lbNewDol = new System.Windows.Forms.Label(); this.lbNewDol = new System.Windows.Forms.Label();
this.lbTitleID = new System.Windows.Forms.Label(); this.lbTitleID = new System.Windows.Forms.Label();
this.tabBanner = new System.Windows.Forms.TabPage(); this.tabBanner = new System.Windows.Forms.TabPage();
this.cbBannerMakeTransparent = new System.Windows.Forms.CheckBox();
this.cmbFormatBanner = new System.Windows.Forms.ComboBox(); this.cmbFormatBanner = new System.Windows.Forms.ComboBox();
this.lbFormatBanner = new System.Windows.Forms.Label(); this.lbFormatBanner = new System.Windows.Forms.Label();
this.btnPreviewBanner = new System.Windows.Forms.Button(); this.btnPreviewBanner = new System.Windows.Forms.Button();
this.btnExtractBanner = new System.Windows.Forms.Button(); this.btnExtractBanner = new System.Windows.Forms.Button();
this.btnDeleteBanner = new System.Windows.Forms.Button();
this.btnAddBanner = new System.Windows.Forms.Button();
this.btnReplaceBanner = new System.Windows.Forms.Button(); this.btnReplaceBanner = new System.Windows.Forms.Button();
this.lbBannerTpls = new System.Windows.Forms.ListBox(); this.lbxBannerTpls = new System.Windows.Forms.ListBox();
this.tabIcon = new System.Windows.Forms.TabPage(); this.tabIcon = new System.Windows.Forms.TabPage();
this.cbIconMakeTransparent = new System.Windows.Forms.CheckBox();
this.cmbFormatIcon = new System.Windows.Forms.ComboBox(); this.cmbFormatIcon = new System.Windows.Forms.ComboBox();
this.lbFormatIcon = new System.Windows.Forms.Label(); this.lbFormatIcon = new System.Windows.Forms.Label();
this.btnPreviewIcon = new System.Windows.Forms.Button(); this.btnPreviewIcon = new System.Windows.Forms.Button();
this.btnExtractIcon = new System.Windows.Forms.Button(); this.btnExtractIcon = new System.Windows.Forms.Button();
this.btnAddIcon = new System.Windows.Forms.Button();
this.btnDeleteIcon = new System.Windows.Forms.Button();
this.btnReplaceIcon = new System.Windows.Forms.Button(); this.btnReplaceIcon = new System.Windows.Forms.Button();
this.lbIconTpls = new System.Windows.Forms.ListBox(); this.lbxIconTpls = new System.Windows.Forms.ListBox();
this.tabBrlyt = new System.Windows.Forms.TabPage();
this.btnBrlytListTpls = new System.Windows.Forms.Button();
this.lbBrlytWarning = new System.Windows.Forms.Label();
this.lbBrlytActions = new System.Windows.Forms.Label();
this.btnBrlytExtract = new System.Windows.Forms.Button();
this.btnBrlytReplace = new System.Windows.Forms.Button();
this.lbBrlytIcon = new System.Windows.Forms.Label();
this.lbBrlytBanner = new System.Windows.Forms.Label();
this.lbxBrlytIcon = new System.Windows.Forms.ListBox();
this.lbxBrlytBanner = new System.Windows.Forms.ListBox();
this.tabBrlan = new System.Windows.Forms.TabPage();
this.lbBrlanWarning = new System.Windows.Forms.Label();
this.lbBrlanActions = new System.Windows.Forms.Label();
this.btnBrlanExtract = new System.Windows.Forms.Button();
this.btnBrlanDelete = new System.Windows.Forms.Button();
this.btnBrlanReplace = new System.Windows.Forms.Button();
this.lbBrlanIcon = new System.Windows.Forms.Label();
this.lbBrlanBanner = new System.Windows.Forms.Label();
this.btnBrlanAdd = new System.Windows.Forms.Button();
this.lbxBrlanIcon = new System.Windows.Forms.ListBox();
this.lbxBrlanBanner = new System.Windows.Forms.ListBox();
this.tabInstructions = new System.Windows.Forms.TabPage();
this.rtbInstructions = new System.Windows.Forms.RichTextBox();
this.tabCredits = new System.Windows.Forms.TabPage(); this.tabCredits = new System.Windows.Forms.TabPage();
this.llbUpdateAvailabe = new System.Windows.Forms.LinkLabel();
this.llbSite = new System.Windows.Forms.LinkLabel(); this.llbSite = new System.Windows.Forms.LinkLabel();
this.lbCreditThanks = new System.Windows.Forms.Label(); this.lbCreditThanks = new System.Windows.Forms.Label();
this.lbCreditVersion = new System.Windows.Forms.Label(); this.lbCreditVersion = new System.Windows.Forms.Label();
@ -121,6 +150,9 @@ namespace CustomizeMii
this.tabOptions.SuspendLayout(); this.tabOptions.SuspendLayout();
this.tabBanner.SuspendLayout(); this.tabBanner.SuspendLayout();
this.tabIcon.SuspendLayout(); this.tabIcon.SuspendLayout();
this.tabBrlyt.SuspendLayout();
this.tabBrlan.SuspendLayout();
this.tabInstructions.SuspendLayout();
this.tabCredits.SuspendLayout(); this.tabCredits.SuspendLayout();
this.ssMain.SuspendLayout(); this.ssMain.SuspendLayout();
this.SuspendLayout(); this.SuspendLayout();
@ -143,6 +175,9 @@ namespace CustomizeMii
this.tabControl.Controls.Add(this.tabOptions); this.tabControl.Controls.Add(this.tabOptions);
this.tabControl.Controls.Add(this.tabBanner); this.tabControl.Controls.Add(this.tabBanner);
this.tabControl.Controls.Add(this.tabIcon); this.tabControl.Controls.Add(this.tabIcon);
this.tabControl.Controls.Add(this.tabBrlyt);
this.tabControl.Controls.Add(this.tabBrlan);
this.tabControl.Controls.Add(this.tabInstructions);
this.tabControl.Controls.Add(this.tabCredits); this.tabControl.Controls.Add(this.tabCredits);
this.tabControl.Dock = System.Windows.Forms.DockStyle.Fill; this.tabControl.Dock = System.Windows.Forms.DockStyle.Fill;
this.tabControl.Location = new System.Drawing.Point(0, 0); this.tabControl.Location = new System.Drawing.Point(0, 0);
@ -161,7 +196,7 @@ namespace CustomizeMii
this.tabSource.Controls.Add(this.btnSaveBaseWad); this.tabSource.Controls.Add(this.btnSaveBaseWad);
this.tabSource.Controls.Add(this.btnPreviewBaseWad); this.tabSource.Controls.Add(this.btnPreviewBaseWad);
this.tabSource.Controls.Add(this.btnLoadBaseWad); this.tabSource.Controls.Add(this.btnLoadBaseWad);
this.tabSource.Controls.Add(this.lbBaseWads); this.tabSource.Controls.Add(this.lbxBaseWads);
this.tabSource.Controls.Add(this.btnBrowseSource); this.tabSource.Controls.Add(this.btnBrowseSource);
this.tabSource.Controls.Add(this.tbSourceWad); this.tabSource.Controls.Add(this.tbSourceWad);
this.tabSource.Controls.Add(this.lbSource); this.tabSource.Controls.Add(this.lbSource);
@ -180,6 +215,7 @@ namespace CustomizeMii
this.tbReplace.ReadOnly = true; this.tbReplace.ReadOnly = true;
this.tbReplace.Size = new System.Drawing.Size(173, 20); this.tbReplace.Size = new System.Drawing.Size(173, 20);
this.tbReplace.TabIndex = 10; this.tbReplace.TabIndex = 10;
this.tbReplace.Tag = "Disabled";
// //
// btnBrowseReplace // btnBrowseReplace
// //
@ -245,10 +281,10 @@ namespace CustomizeMii
this.btnLoadBaseWad.UseVisualStyleBackColor = true; this.btnLoadBaseWad.UseVisualStyleBackColor = true;
this.btnLoadBaseWad.Click += new System.EventHandler(this.btnLoadBaseWad_Click); this.btnLoadBaseWad.Click += new System.EventHandler(this.btnLoadBaseWad_Click);
// //
// lbBaseWads // lbxBaseWads
// //
this.lbBaseWads.FormattingEnabled = true; this.lbxBaseWads.FormattingEnabled = true;
this.lbBaseWads.Items.AddRange(new object[] { this.lbxBaseWads.Items.AddRange(new object[] {
"Static Base", "Static Base",
"Genesis Plus GX", "Genesis Plus GX",
"MPlayer CE (No Wii)", "MPlayer CE (No Wii)",
@ -264,10 +300,10 @@ namespace CustomizeMii
"WADder Base 3", "WADder Base 3",
"UniiLoader", "UniiLoader",
"Backup Channel"}); "Backup Channel"});
this.lbBaseWads.Location = new System.Drawing.Point(11, 51); this.lbxBaseWads.Location = new System.Drawing.Point(11, 51);
this.lbBaseWads.Name = "lbBaseWads"; this.lbxBaseWads.Name = "lbxBaseWads";
this.lbBaseWads.Size = new System.Drawing.Size(343, 108); this.lbxBaseWads.Size = new System.Drawing.Size(343, 108);
this.lbBaseWads.TabIndex = 3; this.lbxBaseWads.TabIndex = 3;
// //
// btnBrowseSource // btnBrowseSource
// //
@ -286,6 +322,7 @@ namespace CustomizeMii
this.tbSourceWad.ReadOnly = true; this.tbSourceWad.ReadOnly = true;
this.tbSourceWad.Size = new System.Drawing.Size(270, 20); this.tbSourceWad.Size = new System.Drawing.Size(270, 20);
this.tbSourceWad.TabIndex = 1; this.tbSourceWad.TabIndex = 1;
this.tbSourceWad.Tag = "Disabled";
// //
// lbSource // lbSource
// //
@ -447,9 +484,9 @@ namespace CustomizeMii
this.lbSpecificLanguageTitles.AutoSize = true; this.lbSpecificLanguageTitles.AutoSize = true;
this.lbSpecificLanguageTitles.Location = new System.Drawing.Point(8, 63); this.lbSpecificLanguageTitles.Location = new System.Drawing.Point(8, 63);
this.lbSpecificLanguageTitles.Name = "lbSpecificLanguageTitles"; this.lbSpecificLanguageTitles.Name = "lbSpecificLanguageTitles";
this.lbSpecificLanguageTitles.Size = new System.Drawing.Size(127, 13); this.lbSpecificLanguageTitles.Size = new System.Drawing.Size(175, 13);
this.lbSpecificLanguageTitles.TabIndex = 2; this.lbSpecificLanguageTitles.TabIndex = 2;
this.lbSpecificLanguageTitles.Text = "Specific Language Titles:"; this.lbSpecificLanguageTitles.Text = "Specific Language Titles (Optional):";
// //
// tbAllLanguages // tbAllLanguages
// //
@ -471,7 +508,7 @@ namespace CustomizeMii
// tabOptions // tabOptions
// //
this.tabOptions.Controls.Add(this.cbLz77); this.tabOptions.Controls.Add(this.cbLz77);
this.tabOptions.Controls.Add(this.label1); this.tabOptions.Controls.Add(this.lbOptionsOptional);
this.tabOptions.Controls.Add(this.btnBrowseSound); this.tabOptions.Controls.Add(this.btnBrowseSound);
this.tabOptions.Controls.Add(this.tbSound); this.tabOptions.Controls.Add(this.tbSound);
this.tabOptions.Controls.Add(this.cmbNandLoader); this.tabOptions.Controls.Add(this.cmbNandLoader);
@ -500,15 +537,15 @@ namespace CustomizeMii
this.cbLz77.Text = "Use Lz77 Compression"; this.cbLz77.Text = "Use Lz77 Compression";
this.cbLz77.UseVisualStyleBackColor = true; this.cbLz77.UseVisualStyleBackColor = true;
// //
// label1 // lbOptionsOptional
// //
this.label1.Location = new System.Drawing.Point(-7, 9); this.lbOptionsOptional.Location = new System.Drawing.Point(-7, 9);
this.label1.Name = "label1"; this.lbOptionsOptional.Name = "lbOptionsOptional";
this.label1.Size = new System.Drawing.Size(457, 34); this.lbOptionsOptional.Size = new System.Drawing.Size(457, 34);
this.label1.TabIndex = 10; this.lbOptionsOptional.TabIndex = 10;
this.label1.Text = "These are optional. Fill them in only if you want to change them.\r\nIf you want a " + this.lbOptionsOptional.Text = "These are optional. Fill them in only if you want to change them.\r\nIf you want a " +
"looped sound, set the loop points first with Wavosaur."; "looped sound, set the loop points first (e.g. with Wavosaur).";
this.label1.TextAlign = System.Drawing.ContentAlignment.TopCenter; this.lbOptionsOptional.TextAlign = System.Drawing.ContentAlignment.TopCenter;
// //
// btnBrowseSound // btnBrowseSound
// //
@ -527,6 +564,7 @@ namespace CustomizeMii
this.tbSound.ReadOnly = true; this.tbSound.ReadOnly = true;
this.tbSound.Size = new System.Drawing.Size(264, 20); this.tbSound.Size = new System.Drawing.Size(264, 20);
this.tbSound.TabIndex = 8; this.tbSound.TabIndex = 8;
this.tbSound.Tag = "Disabled";
// //
// cmbNandLoader // cmbNandLoader
// //
@ -557,9 +595,11 @@ namespace CustomizeMii
this.tbDol.ReadOnly = true; this.tbDol.ReadOnly = true;
this.tbDol.Size = new System.Drawing.Size(264, 20); this.tbDol.Size = new System.Drawing.Size(264, 20);
this.tbDol.TabIndex = 5; this.tbDol.TabIndex = 5;
this.tbDol.Tag = "Disabled";
// //
// tbTitleID // tbTitleID
// //
this.tbTitleID.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper;
this.tbTitleID.Location = new System.Drawing.Point(90, 49); this.tbTitleID.Location = new System.Drawing.Point(90, 49);
this.tbTitleID.MaxLength = 4; this.tbTitleID.MaxLength = 4;
this.tbTitleID.Name = "tbTitleID"; this.tbTitleID.Name = "tbTitleID";
@ -604,12 +644,15 @@ namespace CustomizeMii
// //
// tabBanner // tabBanner
// //
this.tabBanner.Controls.Add(this.cbBannerMakeTransparent);
this.tabBanner.Controls.Add(this.cmbFormatBanner); this.tabBanner.Controls.Add(this.cmbFormatBanner);
this.tabBanner.Controls.Add(this.lbFormatBanner); this.tabBanner.Controls.Add(this.lbFormatBanner);
this.tabBanner.Controls.Add(this.btnPreviewBanner); this.tabBanner.Controls.Add(this.btnPreviewBanner);
this.tabBanner.Controls.Add(this.btnExtractBanner); this.tabBanner.Controls.Add(this.btnExtractBanner);
this.tabBanner.Controls.Add(this.btnDeleteBanner);
this.tabBanner.Controls.Add(this.btnAddBanner);
this.tabBanner.Controls.Add(this.btnReplaceBanner); this.tabBanner.Controls.Add(this.btnReplaceBanner);
this.tabBanner.Controls.Add(this.lbBannerTpls); this.tabBanner.Controls.Add(this.lbxBannerTpls);
this.tabBanner.Location = new System.Drawing.Point(4, 22); this.tabBanner.Location = new System.Drawing.Point(4, 22);
this.tabBanner.Name = "tabBanner"; this.tabBanner.Name = "tabBanner";
this.tabBanner.Padding = new System.Windows.Forms.Padding(3); this.tabBanner.Padding = new System.Windows.Forms.Padding(3);
@ -618,20 +661,31 @@ namespace CustomizeMii
this.tabBanner.Text = "Banner"; this.tabBanner.Text = "Banner";
this.tabBanner.UseVisualStyleBackColor = true; this.tabBanner.UseVisualStyleBackColor = true;
// //
// cbBannerMakeTransparent
//
this.cbBannerMakeTransparent.AutoSize = true;
this.cbBannerMakeTransparent.Location = new System.Drawing.Point(11, 189);
this.cbBannerMakeTransparent.Name = "cbBannerMakeTransparent";
this.cbBannerMakeTransparent.Size = new System.Drawing.Size(113, 17);
this.cbBannerMakeTransparent.TabIndex = 6;
this.cbBannerMakeTransparent.Text = "Make Transparent";
this.cbBannerMakeTransparent.UseVisualStyleBackColor = true;
this.cbBannerMakeTransparent.CheckedChanged += new System.EventHandler(this.cbBannerMakeTransparent_CheckedChanged);
//
// cmbFormatBanner // cmbFormatBanner
// //
this.cmbFormatBanner.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cmbFormatBanner.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cmbFormatBanner.FormattingEnabled = true; this.cmbFormatBanner.FormattingEnabled = true;
this.cmbFormatBanner.Items.AddRange(new object[] { this.cmbFormatBanner.Items.AddRange(new object[] {
"RGBA8", "RGBA8",
"RGBA565", "RGB565",
"RGB5A3", "RGB5A3",
"IA8", "IA8",
"IA4", "IA4",
"I8", "I8",
"I4", "I4",
"CMP"}); "CMP"});
this.cmbFormatBanner.Location = new System.Drawing.Point(360, 142); this.cmbFormatBanner.Location = new System.Drawing.Point(360, 182);
this.cmbFormatBanner.Name = "cmbFormatBanner"; this.cmbFormatBanner.Name = "cmbFormatBanner";
this.cmbFormatBanner.Size = new System.Drawing.Size(75, 21); this.cmbFormatBanner.Size = new System.Drawing.Size(75, 21);
this.cmbFormatBanner.TabIndex = 5; this.cmbFormatBanner.TabIndex = 5;
@ -639,7 +693,7 @@ namespace CustomizeMii
// lbFormatBanner // lbFormatBanner
// //
this.lbFormatBanner.AutoSize = true; this.lbFormatBanner.AutoSize = true;
this.lbFormatBanner.Location = new System.Drawing.Point(360, 123); this.lbFormatBanner.Location = new System.Drawing.Point(360, 166);
this.lbFormatBanner.Name = "lbFormatBanner"; this.lbFormatBanner.Name = "lbFormatBanner";
this.lbFormatBanner.Size = new System.Drawing.Size(42, 13); this.lbFormatBanner.Size = new System.Drawing.Size(42, 13);
this.lbFormatBanner.TabIndex = 4; this.lbFormatBanner.TabIndex = 4;
@ -647,7 +701,7 @@ namespace CustomizeMii
// //
// btnPreviewBanner // btnPreviewBanner
// //
this.btnPreviewBanner.Location = new System.Drawing.Point(360, 78); this.btnPreviewBanner.Location = new System.Drawing.Point(360, 132);
this.btnPreviewBanner.Name = "btnPreviewBanner"; this.btnPreviewBanner.Name = "btnPreviewBanner";
this.btnPreviewBanner.Size = new System.Drawing.Size(75, 23); this.btnPreviewBanner.Size = new System.Drawing.Size(75, 23);
this.btnPreviewBanner.TabIndex = 3; this.btnPreviewBanner.TabIndex = 3;
@ -657,7 +711,7 @@ namespace CustomizeMii
// //
// btnExtractBanner // btnExtractBanner
// //
this.btnExtractBanner.Location = new System.Drawing.Point(360, 45); this.btnExtractBanner.Location = new System.Drawing.Point(360, 102);
this.btnExtractBanner.Name = "btnExtractBanner"; this.btnExtractBanner.Name = "btnExtractBanner";
this.btnExtractBanner.Size = new System.Drawing.Size(75, 23); this.btnExtractBanner.Size = new System.Drawing.Size(75, 23);
this.btnExtractBanner.TabIndex = 2; this.btnExtractBanner.TabIndex = 2;
@ -665,9 +719,29 @@ namespace CustomizeMii
this.btnExtractBanner.UseVisualStyleBackColor = true; this.btnExtractBanner.UseVisualStyleBackColor = true;
this.btnExtractBanner.Click += new System.EventHandler(this.btnExtractBanner_Click); this.btnExtractBanner.Click += new System.EventHandler(this.btnExtractBanner_Click);
// //
// btnDeleteBanner
//
this.btnDeleteBanner.Location = new System.Drawing.Point(360, 42);
this.btnDeleteBanner.Name = "btnDeleteBanner";
this.btnDeleteBanner.Size = new System.Drawing.Size(75, 23);
this.btnDeleteBanner.TabIndex = 1;
this.btnDeleteBanner.Text = "Delete";
this.btnDeleteBanner.UseVisualStyleBackColor = true;
this.btnDeleteBanner.Click += new System.EventHandler(this.btnDeleteBanner_Click);
//
// btnAddBanner
//
this.btnAddBanner.Location = new System.Drawing.Point(360, 12);
this.btnAddBanner.Name = "btnAddBanner";
this.btnAddBanner.Size = new System.Drawing.Size(75, 23);
this.btnAddBanner.TabIndex = 1;
this.btnAddBanner.Text = "Add";
this.btnAddBanner.UseVisualStyleBackColor = true;
this.btnAddBanner.Click += new System.EventHandler(this.btnAddBanner_Click);
//
// btnReplaceBanner // btnReplaceBanner
// //
this.btnReplaceBanner.Location = new System.Drawing.Point(360, 12); this.btnReplaceBanner.Location = new System.Drawing.Point(360, 72);
this.btnReplaceBanner.Name = "btnReplaceBanner"; this.btnReplaceBanner.Name = "btnReplaceBanner";
this.btnReplaceBanner.Size = new System.Drawing.Size(75, 23); this.btnReplaceBanner.Size = new System.Drawing.Size(75, 23);
this.btnReplaceBanner.TabIndex = 1; this.btnReplaceBanner.TabIndex = 1;
@ -675,23 +749,27 @@ namespace CustomizeMii
this.btnReplaceBanner.UseVisualStyleBackColor = true; this.btnReplaceBanner.UseVisualStyleBackColor = true;
this.btnReplaceBanner.Click += new System.EventHandler(this.btnReplaceBanner_Click); this.btnReplaceBanner.Click += new System.EventHandler(this.btnReplaceBanner_Click);
// //
// lbBannerTpls // lbxBannerTpls
// //
this.lbBannerTpls.FormattingEnabled = true; this.lbxBannerTpls.FormattingEnabled = true;
this.lbBannerTpls.Location = new System.Drawing.Point(11, 12); this.lbxBannerTpls.Location = new System.Drawing.Point(11, 12);
this.lbBannerTpls.Name = "lbBannerTpls"; this.lbxBannerTpls.Name = "lbxBannerTpls";
this.lbBannerTpls.Size = new System.Drawing.Size(343, 173); this.lbxBannerTpls.Size = new System.Drawing.Size(343, 173);
this.lbBannerTpls.TabIndex = 0; this.lbxBannerTpls.Sorted = true;
this.lbBannerTpls.SelectedIndexChanged += new System.EventHandler(this.lbBannerTpls_SelectedIndexChanged); this.lbxBannerTpls.TabIndex = 0;
this.lbxBannerTpls.SelectedIndexChanged += new System.EventHandler(this.lbxBannerTpls_SelectedIndexChanged);
// //
// tabIcon // tabIcon
// //
this.tabIcon.Controls.Add(this.cbIconMakeTransparent);
this.tabIcon.Controls.Add(this.cmbFormatIcon); this.tabIcon.Controls.Add(this.cmbFormatIcon);
this.tabIcon.Controls.Add(this.lbFormatIcon); this.tabIcon.Controls.Add(this.lbFormatIcon);
this.tabIcon.Controls.Add(this.btnPreviewIcon); this.tabIcon.Controls.Add(this.btnPreviewIcon);
this.tabIcon.Controls.Add(this.btnExtractIcon); this.tabIcon.Controls.Add(this.btnExtractIcon);
this.tabIcon.Controls.Add(this.btnAddIcon);
this.tabIcon.Controls.Add(this.btnDeleteIcon);
this.tabIcon.Controls.Add(this.btnReplaceIcon); this.tabIcon.Controls.Add(this.btnReplaceIcon);
this.tabIcon.Controls.Add(this.lbIconTpls); this.tabIcon.Controls.Add(this.lbxIconTpls);
this.tabIcon.Location = new System.Drawing.Point(4, 22); this.tabIcon.Location = new System.Drawing.Point(4, 22);
this.tabIcon.Name = "tabIcon"; this.tabIcon.Name = "tabIcon";
this.tabIcon.Padding = new System.Windows.Forms.Padding(3); this.tabIcon.Padding = new System.Windows.Forms.Padding(3);
@ -700,20 +778,31 @@ namespace CustomizeMii
this.tabIcon.Text = "Icon"; this.tabIcon.Text = "Icon";
this.tabIcon.UseVisualStyleBackColor = true; this.tabIcon.UseVisualStyleBackColor = true;
// //
// cbIconMakeTransparent
//
this.cbIconMakeTransparent.AutoSize = true;
this.cbIconMakeTransparent.Location = new System.Drawing.Point(11, 189);
this.cbIconMakeTransparent.Name = "cbIconMakeTransparent";
this.cbIconMakeTransparent.Size = new System.Drawing.Size(113, 17);
this.cbIconMakeTransparent.TabIndex = 12;
this.cbIconMakeTransparent.Text = "Make Transparent";
this.cbIconMakeTransparent.UseVisualStyleBackColor = true;
this.cbIconMakeTransparent.CheckedChanged += new System.EventHandler(this.cbIconMakeTransparent_CheckedChanged);
//
// cmbFormatIcon // cmbFormatIcon
// //
this.cmbFormatIcon.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cmbFormatIcon.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cmbFormatIcon.FormattingEnabled = true; this.cmbFormatIcon.FormattingEnabled = true;
this.cmbFormatIcon.Items.AddRange(new object[] { this.cmbFormatIcon.Items.AddRange(new object[] {
"RGBA8", "RGBA8",
"RGBA565", "RGB565",
"RGB5A3", "RGB5A3",
"IA8", "IA8",
"IA4", "IA4",
"I8", "I8",
"I4", "I4",
"CMP"}); "CMP"});
this.cmbFormatIcon.Location = new System.Drawing.Point(360, 142); this.cmbFormatIcon.Location = new System.Drawing.Point(360, 182);
this.cmbFormatIcon.Name = "cmbFormatIcon"; this.cmbFormatIcon.Name = "cmbFormatIcon";
this.cmbFormatIcon.Size = new System.Drawing.Size(75, 21); this.cmbFormatIcon.Size = new System.Drawing.Size(75, 21);
this.cmbFormatIcon.TabIndex = 11; this.cmbFormatIcon.TabIndex = 11;
@ -721,7 +810,7 @@ namespace CustomizeMii
// lbFormatIcon // lbFormatIcon
// //
this.lbFormatIcon.AutoSize = true; this.lbFormatIcon.AutoSize = true;
this.lbFormatIcon.Location = new System.Drawing.Point(360, 123); this.lbFormatIcon.Location = new System.Drawing.Point(360, 166);
this.lbFormatIcon.Name = "lbFormatIcon"; this.lbFormatIcon.Name = "lbFormatIcon";
this.lbFormatIcon.Size = new System.Drawing.Size(42, 13); this.lbFormatIcon.Size = new System.Drawing.Size(42, 13);
this.lbFormatIcon.TabIndex = 10; this.lbFormatIcon.TabIndex = 10;
@ -729,7 +818,7 @@ namespace CustomizeMii
// //
// btnPreviewIcon // btnPreviewIcon
// //
this.btnPreviewIcon.Location = new System.Drawing.Point(360, 78); this.btnPreviewIcon.Location = new System.Drawing.Point(360, 132);
this.btnPreviewIcon.Name = "btnPreviewIcon"; this.btnPreviewIcon.Name = "btnPreviewIcon";
this.btnPreviewIcon.Size = new System.Drawing.Size(75, 23); this.btnPreviewIcon.Size = new System.Drawing.Size(75, 23);
this.btnPreviewIcon.TabIndex = 9; this.btnPreviewIcon.TabIndex = 9;
@ -739,7 +828,7 @@ namespace CustomizeMii
// //
// btnExtractIcon // btnExtractIcon
// //
this.btnExtractIcon.Location = new System.Drawing.Point(360, 45); this.btnExtractIcon.Location = new System.Drawing.Point(360, 102);
this.btnExtractIcon.Name = "btnExtractIcon"; this.btnExtractIcon.Name = "btnExtractIcon";
this.btnExtractIcon.Size = new System.Drawing.Size(75, 23); this.btnExtractIcon.Size = new System.Drawing.Size(75, 23);
this.btnExtractIcon.TabIndex = 8; this.btnExtractIcon.TabIndex = 8;
@ -747,9 +836,29 @@ namespace CustomizeMii
this.btnExtractIcon.UseVisualStyleBackColor = true; this.btnExtractIcon.UseVisualStyleBackColor = true;
this.btnExtractIcon.Click += new System.EventHandler(this.btnExtractIcon_Click); this.btnExtractIcon.Click += new System.EventHandler(this.btnExtractIcon_Click);
// //
// btnAddIcon
//
this.btnAddIcon.Location = new System.Drawing.Point(360, 12);
this.btnAddIcon.Name = "btnAddIcon";
this.btnAddIcon.Size = new System.Drawing.Size(75, 23);
this.btnAddIcon.TabIndex = 7;
this.btnAddIcon.Text = "Add";
this.btnAddIcon.UseVisualStyleBackColor = true;
this.btnAddIcon.Click += new System.EventHandler(this.btnAddIcon_Click);
//
// btnDeleteIcon
//
this.btnDeleteIcon.Location = new System.Drawing.Point(360, 42);
this.btnDeleteIcon.Name = "btnDeleteIcon";
this.btnDeleteIcon.Size = new System.Drawing.Size(75, 23);
this.btnDeleteIcon.TabIndex = 7;
this.btnDeleteIcon.Text = "Delete";
this.btnDeleteIcon.UseVisualStyleBackColor = true;
this.btnDeleteIcon.Click += new System.EventHandler(this.btnDeleteIcon_Click);
//
// btnReplaceIcon // btnReplaceIcon
// //
this.btnReplaceIcon.Location = new System.Drawing.Point(360, 12); this.btnReplaceIcon.Location = new System.Drawing.Point(360, 72);
this.btnReplaceIcon.Name = "btnReplaceIcon"; this.btnReplaceIcon.Name = "btnReplaceIcon";
this.btnReplaceIcon.Size = new System.Drawing.Size(75, 23); this.btnReplaceIcon.Size = new System.Drawing.Size(75, 23);
this.btnReplaceIcon.TabIndex = 7; this.btnReplaceIcon.TabIndex = 7;
@ -757,17 +866,264 @@ namespace CustomizeMii
this.btnReplaceIcon.UseVisualStyleBackColor = true; this.btnReplaceIcon.UseVisualStyleBackColor = true;
this.btnReplaceIcon.Click += new System.EventHandler(this.btnReplaceIcon_Click); this.btnReplaceIcon.Click += new System.EventHandler(this.btnReplaceIcon_Click);
// //
// lbIconTpls // lbxIconTpls
// //
this.lbIconTpls.FormattingEnabled = true; this.lbxIconTpls.FormattingEnabled = true;
this.lbIconTpls.Location = new System.Drawing.Point(11, 12); this.lbxIconTpls.Location = new System.Drawing.Point(11, 12);
this.lbIconTpls.Name = "lbIconTpls"; this.lbxIconTpls.Name = "lbxIconTpls";
this.lbIconTpls.Size = new System.Drawing.Size(343, 173); this.lbxIconTpls.Size = new System.Drawing.Size(343, 173);
this.lbIconTpls.TabIndex = 6; this.lbxIconTpls.Sorted = true;
this.lbIconTpls.SelectedIndexChanged += new System.EventHandler(this.lbIconTpls_SelectedIndexChanged); this.lbxIconTpls.TabIndex = 6;
this.lbxIconTpls.SelectedIndexChanged += new System.EventHandler(this.lbxIconTpls_SelectedIndexChanged);
//
// tabBrlyt
//
this.tabBrlyt.Controls.Add(this.btnBrlytListTpls);
this.tabBrlyt.Controls.Add(this.lbBrlytWarning);
this.tabBrlyt.Controls.Add(this.lbBrlytActions);
this.tabBrlyt.Controls.Add(this.btnBrlytExtract);
this.tabBrlyt.Controls.Add(this.btnBrlytReplace);
this.tabBrlyt.Controls.Add(this.lbBrlytIcon);
this.tabBrlyt.Controls.Add(this.lbBrlytBanner);
this.tabBrlyt.Controls.Add(this.lbxBrlytIcon);
this.tabBrlyt.Controls.Add(this.lbxBrlytBanner);
this.tabBrlyt.Location = new System.Drawing.Point(4, 22);
this.tabBrlyt.Name = "tabBrlyt";
this.tabBrlyt.Padding = new System.Windows.Forms.Padding(3);
this.tabBrlyt.Size = new System.Drawing.Size(443, 209);
this.tabBrlyt.TabIndex = 6;
this.tabBrlyt.Text = "brlyt";
this.tabBrlyt.UseVisualStyleBackColor = true;
//
// btnBrlytListTpls
//
this.btnBrlytListTpls.Location = new System.Drawing.Point(360, 131);
this.btnBrlytListTpls.Name = "btnBrlytListTpls";
this.btnBrlytListTpls.Size = new System.Drawing.Size(75, 23);
this.btnBrlytListTpls.TabIndex = 8;
this.btnBrlytListTpls.Text = "List TPLs";
this.btnBrlytListTpls.UseVisualStyleBackColor = true;
this.btnBrlytListTpls.Click += new System.EventHandler(this.btnBrlytListTpls_Click);
//
// lbBrlytWarning
//
this.lbBrlytWarning.ForeColor = System.Drawing.Color.Red;
this.lbBrlytWarning.Location = new System.Drawing.Point(-4, 192);
this.lbBrlytWarning.Name = "lbBrlytWarning";
this.lbBrlytWarning.Size = new System.Drawing.Size(451, 23);
this.lbBrlytWarning.TabIndex = 7;
this.lbBrlytWarning.Text = "Be careful with these features, wrong handling WILL BRICK your Wii!";
this.lbBrlytWarning.TextAlign = System.Drawing.ContentAlignment.TopCenter;
//
// lbBrlytActions
//
this.lbBrlytActions.Location = new System.Drawing.Point(357, 42);
this.lbBrlytActions.Name = "lbBrlytActions";
this.lbBrlytActions.Size = new System.Drawing.Size(78, 11);
this.lbBrlytActions.TabIndex = 6;
this.lbBrlytActions.TextAlign = System.Drawing.ContentAlignment.TopCenter;
//
// btnBrlytExtract
//
this.btnBrlytExtract.Location = new System.Drawing.Point(360, 98);
this.btnBrlytExtract.Name = "btnBrlytExtract";
this.btnBrlytExtract.Size = new System.Drawing.Size(75, 23);
this.btnBrlytExtract.TabIndex = 5;
this.btnBrlytExtract.Text = "Extract";
this.btnBrlytExtract.UseVisualStyleBackColor = true;
this.btnBrlytExtract.Click += new System.EventHandler(this.btnBrlytExtract_Click);
//
// btnBrlytReplace
//
this.btnBrlytReplace.Location = new System.Drawing.Point(360, 65);
this.btnBrlytReplace.Name = "btnBrlytReplace";
this.btnBrlytReplace.Size = new System.Drawing.Size(75, 23);
this.btnBrlytReplace.TabIndex = 5;
this.btnBrlytReplace.Text = "Replace";
this.btnBrlytReplace.UseVisualStyleBackColor = true;
this.btnBrlytReplace.Click += new System.EventHandler(this.btnBrlytReplace_Click);
//
// lbBrlytIcon
//
this.lbBrlytIcon.AutoSize = true;
this.lbBrlytIcon.Location = new System.Drawing.Point(11, 102);
this.lbBrlytIcon.Name = "lbBrlytIcon";
this.lbBrlytIcon.Size = new System.Drawing.Size(31, 13);
this.lbBrlytIcon.TabIndex = 4;
this.lbBrlytIcon.Text = "Icon:";
//
// lbBrlytBanner
//
this.lbBrlytBanner.AutoSize = true;
this.lbBrlytBanner.Location = new System.Drawing.Point(11, 11);
this.lbBrlytBanner.Name = "lbBrlytBanner";
this.lbBrlytBanner.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.lbBrlytBanner.Size = new System.Drawing.Size(44, 13);
this.lbBrlytBanner.TabIndex = 3;
this.lbBrlytBanner.Text = "Banner:";
//
// lbxBrlytIcon
//
this.lbxBrlytIcon.FormattingEnabled = true;
this.lbxBrlytIcon.Location = new System.Drawing.Point(11, 120);
this.lbxBrlytIcon.Name = "lbxBrlytIcon";
this.lbxBrlytIcon.Size = new System.Drawing.Size(343, 69);
this.lbxBrlytIcon.Sorted = true;
this.lbxBrlytIcon.TabIndex = 1;
this.lbxBrlytIcon.SelectedIndexChanged += new System.EventHandler(this.lbxBrlytIcon_SelectedIndexChanged);
//
// lbxBrlytBanner
//
this.lbxBrlytBanner.FormattingEnabled = true;
this.lbxBrlytBanner.Location = new System.Drawing.Point(11, 29);
this.lbxBrlytBanner.Name = "lbxBrlytBanner";
this.lbxBrlytBanner.Size = new System.Drawing.Size(343, 69);
this.lbxBrlytBanner.Sorted = true;
this.lbxBrlytBanner.TabIndex = 0;
this.lbxBrlytBanner.SelectedIndexChanged += new System.EventHandler(this.lbxBrlytBanner_SelectedIndexChanged);
//
// tabBrlan
//
this.tabBrlan.Controls.Add(this.lbBrlanWarning);
this.tabBrlan.Controls.Add(this.lbBrlanActions);
this.tabBrlan.Controls.Add(this.btnBrlanExtract);
this.tabBrlan.Controls.Add(this.btnBrlanDelete);
this.tabBrlan.Controls.Add(this.btnBrlanReplace);
this.tabBrlan.Controls.Add(this.lbBrlanIcon);
this.tabBrlan.Controls.Add(this.lbBrlanBanner);
this.tabBrlan.Controls.Add(this.btnBrlanAdd);
this.tabBrlan.Controls.Add(this.lbxBrlanIcon);
this.tabBrlan.Controls.Add(this.lbxBrlanBanner);
this.tabBrlan.Location = new System.Drawing.Point(4, 22);
this.tabBrlan.Name = "tabBrlan";
this.tabBrlan.Padding = new System.Windows.Forms.Padding(3);
this.tabBrlan.Size = new System.Drawing.Size(443, 209);
this.tabBrlan.TabIndex = 7;
this.tabBrlan.Text = "brlan";
this.tabBrlan.UseVisualStyleBackColor = true;
//
// lbBrlanWarning
//
this.lbBrlanWarning.ForeColor = System.Drawing.Color.Red;
this.lbBrlanWarning.Location = new System.Drawing.Point(-4, 192);
this.lbBrlanWarning.Name = "lbBrlanWarning";
this.lbBrlanWarning.Size = new System.Drawing.Size(451, 23);
this.lbBrlanWarning.TabIndex = 15;
this.lbBrlanWarning.Text = "Be careful with these features, wrong handling WILL BRICK your Wii!";
this.lbBrlanWarning.TextAlign = System.Drawing.ContentAlignment.TopCenter;
//
// lbBrlanActions
//
this.lbBrlanActions.Location = new System.Drawing.Point(357, 14);
this.lbBrlanActions.Name = "lbBrlanActions";
this.lbBrlanActions.Size = new System.Drawing.Size(78, 13);
this.lbBrlanActions.TabIndex = 14;
this.lbBrlanActions.TextAlign = System.Drawing.ContentAlignment.TopCenter;
//
// btnBrlanExtract
//
this.btnBrlanExtract.Location = new System.Drawing.Point(360, 153);
this.btnBrlanExtract.Name = "btnBrlanExtract";
this.btnBrlanExtract.Size = new System.Drawing.Size(75, 23);
this.btnBrlanExtract.TabIndex = 11;
this.btnBrlanExtract.Text = "Extract";
this.btnBrlanExtract.UseVisualStyleBackColor = true;
this.btnBrlanExtract.Click += new System.EventHandler(this.btnBrlanExtract_Click);
//
// btnBrlanDelete
//
this.btnBrlanDelete.Location = new System.Drawing.Point(360, 77);
this.btnBrlanDelete.Name = "btnBrlanDelete";
this.btnBrlanDelete.Size = new System.Drawing.Size(75, 23);
this.btnBrlanDelete.TabIndex = 12;
this.btnBrlanDelete.Text = "Delete";
this.btnBrlanDelete.UseVisualStyleBackColor = true;
this.btnBrlanDelete.Click += new System.EventHandler(this.btnBrlanDelete_Click);
//
// btnBrlanReplace
//
this.btnBrlanReplace.Location = new System.Drawing.Point(360, 115);
this.btnBrlanReplace.Name = "btnBrlanReplace";
this.btnBrlanReplace.Size = new System.Drawing.Size(75, 23);
this.btnBrlanReplace.TabIndex = 13;
this.btnBrlanReplace.Text = "Replace";
this.btnBrlanReplace.UseVisualStyleBackColor = true;
this.btnBrlanReplace.Click += new System.EventHandler(this.btnBrlanReplace_Click);
//
// lbBrlanIcon
//
this.lbBrlanIcon.AutoSize = true;
this.lbBrlanIcon.Location = new System.Drawing.Point(11, 102);
this.lbBrlanIcon.Name = "lbBrlanIcon";
this.lbBrlanIcon.Size = new System.Drawing.Size(31, 13);
this.lbBrlanIcon.TabIndex = 10;
this.lbBrlanIcon.Text = "Icon:";
//
// lbBrlanBanner
//
this.lbBrlanBanner.AutoSize = true;
this.lbBrlanBanner.Location = new System.Drawing.Point(11, 11);
this.lbBrlanBanner.Name = "lbBrlanBanner";
this.lbBrlanBanner.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.lbBrlanBanner.Size = new System.Drawing.Size(44, 13);
this.lbBrlanBanner.TabIndex = 9;
this.lbBrlanBanner.Text = "Banner:";
//
// btnBrlanAdd
//
this.btnBrlanAdd.Location = new System.Drawing.Point(360, 39);
this.btnBrlanAdd.Name = "btnBrlanAdd";
this.btnBrlanAdd.Size = new System.Drawing.Size(75, 23);
this.btnBrlanAdd.TabIndex = 8;
this.btnBrlanAdd.Text = "Add";
this.btnBrlanAdd.UseVisualStyleBackColor = true;
this.btnBrlanAdd.Click += new System.EventHandler(this.btnBrlanAdd_Click);
//
// lbxBrlanIcon
//
this.lbxBrlanIcon.FormattingEnabled = true;
this.lbxBrlanIcon.Location = new System.Drawing.Point(11, 120);
this.lbxBrlanIcon.Name = "lbxBrlanIcon";
this.lbxBrlanIcon.Size = new System.Drawing.Size(343, 69);
this.lbxBrlanIcon.Sorted = true;
this.lbxBrlanIcon.TabIndex = 7;
this.lbxBrlanIcon.SelectedIndexChanged += new System.EventHandler(this.lbxBrlanIcon_SelectedIndexChanged);
//
// lbxBrlanBanner
//
this.lbxBrlanBanner.FormattingEnabled = true;
this.lbxBrlanBanner.Location = new System.Drawing.Point(11, 29);
this.lbxBrlanBanner.Name = "lbxBrlanBanner";
this.lbxBrlanBanner.Size = new System.Drawing.Size(343, 69);
this.lbxBrlanBanner.Sorted = true;
this.lbxBrlanBanner.TabIndex = 6;
this.lbxBrlanBanner.SelectedIndexChanged += new System.EventHandler(this.lbxBrlanBanner_SelectedIndexChanged);
//
// tabInstructions
//
this.tabInstructions.Controls.Add(this.rtbInstructions);
this.tabInstructions.Location = new System.Drawing.Point(4, 22);
this.tabInstructions.Name = "tabInstructions";
this.tabInstructions.Padding = new System.Windows.Forms.Padding(3);
this.tabInstructions.Size = new System.Drawing.Size(443, 209);
this.tabInstructions.TabIndex = 8;
this.tabInstructions.Text = "Instructions";
this.tabInstructions.UseVisualStyleBackColor = true;
//
// rtbInstructions
//
this.rtbInstructions.BackColor = System.Drawing.SystemColors.Window;
this.rtbInstructions.Dock = System.Windows.Forms.DockStyle.Fill;
this.rtbInstructions.Location = new System.Drawing.Point(3, 3);
this.rtbInstructions.Name = "rtbInstructions";
this.rtbInstructions.ReadOnly = true;
this.rtbInstructions.Size = new System.Drawing.Size(437, 203);
this.rtbInstructions.TabIndex = 0;
this.rtbInstructions.Text = "";
// //
// tabCredits // tabCredits
// //
this.tabCredits.Controls.Add(this.llbUpdateAvailabe);
this.tabCredits.Controls.Add(this.llbSite); this.tabCredits.Controls.Add(this.llbSite);
this.tabCredits.Controls.Add(this.lbCreditThanks); this.tabCredits.Controls.Add(this.lbCreditThanks);
this.tabCredits.Controls.Add(this.lbCreditVersion); this.tabCredits.Controls.Add(this.lbCreditVersion);
@ -780,9 +1136,22 @@ namespace CustomizeMii
this.tabCredits.Text = "Credits"; this.tabCredits.Text = "Credits";
this.tabCredits.UseVisualStyleBackColor = true; this.tabCredits.UseVisualStyleBackColor = true;
// //
// llbUpdateAvailabe
//
this.llbUpdateAvailabe.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.llbUpdateAvailabe.Location = new System.Drawing.Point(0, 62);
this.llbUpdateAvailabe.Name = "llbUpdateAvailabe";
this.llbUpdateAvailabe.Size = new System.Drawing.Size(443, 13);
this.llbUpdateAvailabe.TabIndex = 4;
this.llbUpdateAvailabe.TabStop = true;
this.llbUpdateAvailabe.Text = "Version X is availabe, get it here!";
this.llbUpdateAvailabe.TextAlign = System.Drawing.ContentAlignment.TopCenter;
this.llbUpdateAvailabe.Visible = false;
this.llbUpdateAvailabe.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.llbUpdateAvailabe_LinkClicked);
//
// llbSite // llbSite
// //
this.llbSite.Location = new System.Drawing.Point(0, 32); this.llbSite.Location = new System.Drawing.Point(0, 35);
this.llbSite.Name = "llbSite"; this.llbSite.Name = "llbSite";
this.llbSite.Size = new System.Drawing.Size(443, 13); this.llbSite.Size = new System.Drawing.Size(443, 13);
this.llbSite.TabIndex = 3; this.llbSite.TabIndex = 3;
@ -793,7 +1162,7 @@ namespace CustomizeMii
// //
// lbCreditThanks // lbCreditThanks
// //
this.lbCreditThanks.Location = new System.Drawing.Point(0, 123); this.lbCreditThanks.Location = new System.Drawing.Point(0, 91);
this.lbCreditThanks.Name = "lbCreditThanks"; this.lbCreditThanks.Name = "lbCreditThanks";
this.lbCreditThanks.Size = new System.Drawing.Size(443, 79); this.lbCreditThanks.Size = new System.Drawing.Size(443, 79);
this.lbCreditThanks.TabIndex = 2; this.lbCreditThanks.TabIndex = 2;
@ -812,11 +1181,11 @@ namespace CustomizeMii
// lbCreditInfo // lbCreditInfo
// //
this.lbCreditInfo.ForeColor = System.Drawing.Color.Red; this.lbCreditInfo.ForeColor = System.Drawing.Color.Red;
this.lbCreditInfo.Location = new System.Drawing.Point(0, 63); this.lbCreditInfo.Location = new System.Drawing.Point(0, 189);
this.lbCreditInfo.Name = "lbCreditInfo"; this.lbCreditInfo.Name = "lbCreditInfo";
this.lbCreditInfo.Size = new System.Drawing.Size(443, 42); this.lbCreditInfo.Size = new System.Drawing.Size(443, 16);
this.lbCreditInfo.TabIndex = 0; this.lbCreditInfo.TabIndex = 0;
this.lbCreditInfo.Text = resources.GetString("lbCreditInfo.Text"); this.lbCreditInfo.Text = "Thanks to icefire / Xuzz for the basic idea of this Application!";
this.lbCreditInfo.TextAlign = System.Drawing.ContentAlignment.TopCenter; this.lbCreditInfo.TextAlign = System.Drawing.ContentAlignment.TopCenter;
// //
// ssMain // ssMain
@ -879,6 +1248,11 @@ namespace CustomizeMii
this.tabBanner.PerformLayout(); this.tabBanner.PerformLayout();
this.tabIcon.ResumeLayout(false); this.tabIcon.ResumeLayout(false);
this.tabIcon.PerformLayout(); this.tabIcon.PerformLayout();
this.tabBrlyt.ResumeLayout(false);
this.tabBrlyt.PerformLayout();
this.tabBrlan.ResumeLayout(false);
this.tabBrlan.PerformLayout();
this.tabInstructions.ResumeLayout(false);
this.tabCredits.ResumeLayout(false); this.tabCredits.ResumeLayout(false);
this.ssMain.ResumeLayout(false); this.ssMain.ResumeLayout(false);
this.ssMain.PerformLayout(); this.ssMain.PerformLayout();
@ -900,7 +1274,7 @@ namespace CustomizeMii
private System.Windows.Forms.Label lbSource; private System.Windows.Forms.Label lbSource;
private System.Windows.Forms.Button btnBrowseSource; private System.Windows.Forms.Button btnBrowseSource;
private System.Windows.Forms.TextBox tbSourceWad; private System.Windows.Forms.TextBox tbSourceWad;
private System.Windows.Forms.ListBox lbBaseWads; private System.Windows.Forms.ListBox lbxBaseWads;
private System.Windows.Forms.Button btnSaveBaseWad; private System.Windows.Forms.Button btnSaveBaseWad;
private System.Windows.Forms.Button btnPreviewBaseWad; private System.Windows.Forms.Button btnPreviewBaseWad;
private System.Windows.Forms.Button btnLoadBaseWad; private System.Windows.Forms.Button btnLoadBaseWad;
@ -931,11 +1305,11 @@ namespace CustomizeMii
private System.Windows.Forms.ComboBox cmbNandLoader; private System.Windows.Forms.ComboBox cmbNandLoader;
private System.Windows.Forms.TextBox tbSound; private System.Windows.Forms.TextBox tbSound;
private System.Windows.Forms.Button btnBrowseSound; private System.Windows.Forms.Button btnBrowseSound;
private System.Windows.Forms.Label label1; private System.Windows.Forms.Label lbOptionsOptional;
private System.Windows.Forms.Button btnPreviewBanner; private System.Windows.Forms.Button btnPreviewBanner;
private System.Windows.Forms.Button btnExtractBanner; private System.Windows.Forms.Button btnExtractBanner;
private System.Windows.Forms.Button btnReplaceBanner; private System.Windows.Forms.Button btnReplaceBanner;
private System.Windows.Forms.ListBox lbBannerTpls; private System.Windows.Forms.ListBox lbxBannerTpls;
private System.Windows.Forms.Label lbFormatBanner; private System.Windows.Forms.Label lbFormatBanner;
private System.Windows.Forms.ComboBox cmbFormatBanner; private System.Windows.Forms.ComboBox cmbFormatBanner;
private System.Windows.Forms.ComboBox cmbFormatIcon; private System.Windows.Forms.ComboBox cmbFormatIcon;
@ -943,7 +1317,7 @@ namespace CustomizeMii
private System.Windows.Forms.Button btnPreviewIcon; private System.Windows.Forms.Button btnPreviewIcon;
private System.Windows.Forms.Button btnExtractIcon; private System.Windows.Forms.Button btnExtractIcon;
private System.Windows.Forms.Button btnReplaceIcon; private System.Windows.Forms.Button btnReplaceIcon;
private System.Windows.Forms.ListBox lbIconTpls; private System.Windows.Forms.ListBox lbxIconTpls;
private System.Windows.Forms.Label lbCreditInfo; private System.Windows.Forms.Label lbCreditInfo;
private System.Windows.Forms.Label lbCreditVersion; private System.Windows.Forms.Label lbCreditVersion;
private System.Windows.Forms.Label lbCreditThanks; private System.Windows.Forms.Label lbCreditThanks;
@ -957,6 +1331,36 @@ namespace CustomizeMii
private System.Windows.Forms.Button btnClearReplace; private System.Windows.Forms.Button btnClearReplace;
private System.Windows.Forms.CheckBox cbLz77; private System.Windows.Forms.CheckBox cbLz77;
private System.Windows.Forms.LinkLabel llbSite; private System.Windows.Forms.LinkLabel llbSite;
private System.Windows.Forms.TabPage tabBrlyt;
private System.Windows.Forms.TabPage tabBrlan;
private System.Windows.Forms.ListBox lbxBrlytIcon;
private System.Windows.Forms.ListBox lbxBrlytBanner;
private System.Windows.Forms.Label lbBrlytIcon;
private System.Windows.Forms.Label lbBrlytBanner;
private System.Windows.Forms.Button btnBrlytReplace;
private System.Windows.Forms.Button btnBrlytExtract;
private System.Windows.Forms.Button btnBrlanExtract;
private System.Windows.Forms.Button btnBrlanDelete;
private System.Windows.Forms.Button btnBrlanReplace;
private System.Windows.Forms.Label lbBrlanIcon;
private System.Windows.Forms.Label lbBrlanBanner;
private System.Windows.Forms.Button btnBrlanAdd;
private System.Windows.Forms.ListBox lbxBrlanIcon;
private System.Windows.Forms.ListBox lbxBrlanBanner;
private System.Windows.Forms.Label lbBrlytActions;
private System.Windows.Forms.Label lbBrlanActions;
private System.Windows.Forms.Label lbBrlytWarning;
private System.Windows.Forms.Label lbBrlanWarning;
private System.Windows.Forms.LinkLabel llbUpdateAvailabe;
private System.Windows.Forms.Button btnDeleteBanner;
private System.Windows.Forms.Button btnAddBanner;
private System.Windows.Forms.Button btnAddIcon;
private System.Windows.Forms.Button btnDeleteIcon;
private System.Windows.Forms.Button btnBrlytListTpls;
private System.Windows.Forms.CheckBox cbBannerMakeTransparent;
private System.Windows.Forms.CheckBox cbIconMakeTransparent;
private System.Windows.Forms.TabPage tabInstructions;
private System.Windows.Forms.RichTextBox rtbInstructions;
} }
} }

File diff suppressed because it is too large Load Diff

View File

@ -124,13 +124,11 @@ Xuzz, SquidMan, megazig, Matt_P, Omega and The Lemon Man for Wii.py
SquidMan for Zetsubou SquidMan for Zetsubou
Andre Perrot for gbalzss Andre Perrot for gbalzss
comex and Waninkoko for both their NAND Loader</value> comex and Waninkoko for both their NAND Loader</value>
</data>
<data name="lbCreditInfo.Text" xml:space="preserve">
<value>This is a clone of the original Channel Making Application by icefire / Xuzz.
I decided to do it, because Xuzz gave up the work on his application and
the last beta Version he left creates bricking WADs.</value>
</data> </data>
<metadata name="ssMain.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="ssMain.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value> <value>16, 7</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>42</value>
</metadata> </metadata>
</root> </root>

View File

@ -1,19 +1,18 @@
/* This file is part of CustomizeMii /* This file is part of CustomizeMii
* Copyright (C) 2009 Leathl * Copyright (C) 2009 Leathl
* *
* CustomizeMii is free software; you can redistribute it and/or * CustomizeMii is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License as published
* as published by the Free Software Foundation; either version 2 * by the Free Software Foundation, either version 3 of the License, or
* of the License, or (at your option) any later version. * (at your option) any later version.
* *
* CustomizeMii is distributed in the hope that it will be useful, * CustomizeMii is distributed in the hope that it will be
* but WITHOUT ANY WARRANTY; without even the implied warranty of * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program. If not, see <http://www.gnu.org/licenses/>.
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/ */
namespace CustomizeMii namespace CustomizeMii

View File

@ -1,19 +1,18 @@
/* This file is part of CustomizeMii /* This file is part of CustomizeMii
* Copyright (C) 2009 Leathl * Copyright (C) 2009 Leathl
* *
* CustomizeMii is free software; you can redistribute it and/or * CustomizeMii is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License as published
* as published by the Free Software Foundation; either version 2 * by the Free Software Foundation, either version 3 of the License, or
* of the License, or (at your option) any later version. * (at your option) any later version.
* *
* CustomizeMii is distributed in the hope that it will be useful, * CustomizeMii is distributed in the hope that it will be
* but WITHOUT ANY WARRANTY; without even the implied warranty of * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program. If not, see <http://www.gnu.org/licenses/>.
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/ */
using System; using System;

View File

@ -0,0 +1,125 @@
These are some basic instructions for CustomizeMii.
At the very beginning, let me say this again: Don't install any WADs without a proper brick protection!
Ok, so you want to create your own custom channels?
First it is important to understand how the creation of a custom channel with CustomizeMii works.
Skip this if you already know.
Basically, you can't create a channel from scratch. Well, you could, but not with this application.
You need a base WAD which you can modify. You can either download one within this application or use
any WAD (must be a channel of course) from anywhere.
You can then edit the WAD file.
The editing of animations is for advanced users, so if you're not familiar with brlyt's and brlan's
(I guess you're not unless you created your own animations), get a static base WAD or one with the
animation you want.
So, let's start to create a channel. Download a base WAD through the application or load one from your HDD.
You can preview the downloadable WADs through the preview button.
All options below are optional!
MIXING BANNER, ICON AND SOUND
The options below the downloadable base WADs are the "replace" options.
Let's say you have loaded WAD A as a base, but you want the icon of WAD B and you have a 00000000.app that
contains a sound that you want to use.
No problem! Just use the dropdownbox which yet says "Banner" and choose "Icon". Click on the browse button
next to it and choose WAD B. The icon of WAD B will replace the icon of WAD A.
After that, choose "Sound" from the dropdownbox and browse for the 00000000.app, the sound.bin will be
extracted and used instead of the one within WAD A.
Note: These features are non-destructive, i.e. you can always use the clear button to get back to the
banner/icon/sound of WAD A!
CHANNEL INFORMATION
You may want to change the channel information, i.e. the title and ID.
Let's change the channel title first. It's the text that will be displayed when you hold your cursor
over the channel. Goto the "Title" tab and fill a title for all languages. If you want to change the
title for a specific language, just use the language's textbox. If you want a different title for every
language, you don't need to fill in a title for all languages.
Now, the title ID. Open the "Options" tab and you'll see a textbox for the ID. The ID is 4 characters long
and only contains letters and numerics. Lower case letters will automatically converted to upper case.
Change it to a unique(!) ID, because channels will overwrite existing channles with the same ID!
I recommend not to use any title ID beginning with the following characters, because official channels
use these and thus your channel may overwrite them:
C, E, F, H, J, L, M, N, P, Q, W
INSERTING A NEW DOL
Let's bring some life into the channel. In the "Options" tab, use the browse button for a new DOL.
Either load a forwarder or the DOL of any application. Note that some channles require more than just a DOL
and thus may not work in a channel (e.g. MPlayer CE).
Choose a NAND loader or just stick with the one selected (both will do fine).
INSERTING A NEW SOUND
For the sound, you can either use a wave file or the sound replace function to use the sound of an
existing sound.bin/00000000.app/WAD.
If you want looped sound, open your wave file with wavosaur and add loop points before.
EDITING THE BANNER/ICON (If you're an advanced user and want to edit the brlyt/brlan, do that first!)
So, let's begin with the real customization. I will only talk about the banner here, the instructions
are the same for the icon.
Goto the "Banner" tab. You shouldn't touch the add and remove buttons, they're for advanced users that
change the animation. (However, they can't really harm your channel, as CustomizeMii will check for missing
and unneeded TPLs while creating a WAD).
You will see a list with all TPLs inside the banner.bin. When you select a TPL,
it's current format will be shown in the "Format" dropdownbox. Note that CustomizeMii can read 8 different
TPL formats, but only write 3 (RGBA8, RGB565 and RGB5A3), that should be enough for your needs.
You can use the preview button to preview a TPL (obvious, right?), but you get one more important info,
the image size. It will be shown in the title of the preview window. If your images aren't the same size,
they will be resized! So be sure to have at least the correct aspect ratio, so your images wont be
squeezed or whatever.
Before replacing the image, choose a format from the dropdownbox.
(RGBA8 = High Quality, Big Size --- RGB565 = Moderate Quality, Small Size --- RGB5A3 = Bad Quality, Small Size)
Now you can use the replace button to insert your image. Preview the TPL after replacing to check the
image. Maybe you want to use another format though? No problem, just replace the TPL again.
Note: You can use the "Make Transparent" checkbox to make a TPL transparent, e.g. if you don't like
one piece of an animation (It's non-destructive, i.e. you can always uncheck the box).
EDITING THE ANIMATION (Advanced users only!)
Skip this part, if you don't really know what brlyt and brlan files are and how they're structured.
Goto the "brlyt" tab. You will see the banner.brlyt and icon.brlyt there.
Above the buttons is a text that will indicate whether you're doing actions on the "Banner" or
the "Icon" (When you select the banner.brlyt, you're editing the "Banner" and vice versa).
Now, just replace the banner.brlyt and icon.brlyt files as you want. You can use the list TPLs button
afterwards to see all TPLs that are required by the banner.brlyt/icon.brlyt (Don't worry, CustomizeMii
won't let you create a WAD, if you forgot a required TPL).
Now, goto the "brlan" tab. It's similar to the "brlyt" tab. You shouldn't touch the add or delete button
unless your base WAD only has a banner.brlan and you want to use a banner_Start.brlan and banner_Loop.brlan.
In this case, first add the two files and then delete the old banner.brlan.
Else just replace the files with yours. Be absolutely sure the your brlan files only refer to panes that are
indicated in your brlyt files!
That's it, here's nothing left to do.
CREATING THE WAD
Well, your channel should be ready to be created.
Goto the "Options" tab and check the Lz77 checkbox, if you want to compress your channel to safe some Wii memory.
If your channel doesn't work, first try it again without compression.
Now just click on the create WAD button (The big one with the different text each startup).
CustomizeMii will do some failure checks and if all went fine, a save dialog will pop up.
If you get an error or warning, read the message carefully. It should give you enough information to fix
the problem yourself.
So, if you got down to here, you're done by now. Please, if you find any bugs or have suggestions, take some
seconds to report them at the issue tracker: http://code.google.com/p/customizemii/issues/list

File diff suppressed because it is too large Load Diff

View File

@ -1,19 +1,18 @@
/* This file is part of CustomizeMii /* This file is part of CustomizeMii
* Copyright (C) 2009 Leathl * Copyright (C) 2009 Leathl
* *
* CustomizeMii is free software; you can redistribute it and/or * CustomizeMii is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License as published
* as published by the Free Software Foundation; either version 2 * by the Free Software Foundation, either version 3 of the License, or
* of the License, or (at your option) any later version. * (at your option) any later version.
* *
* CustomizeMii is distributed in the hope that it will be useful, * CustomizeMii is distributed in the hope that it will be
* but WITHOUT ANY WARRANTY; without even the implied warranty of * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program. If not, see <http://www.gnu.org/licenses/>.
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/ */
using System; using System;

View File

@ -1,30 +1,30 @@
/* This file is part of CustomizeMii /* This file is part of CustomizeMii
* Copyright (C) 2009 Leathl * Copyright (C) 2009 Leathl
* *
* CustomizeMii is free software; you can redistribute it and/or * CustomizeMii is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License as published
* as published by the Free Software Foundation; either version 2 * by the Free Software Foundation, either version 3 of the License, or
* of the License, or (at your option) any later version. * (at your option) any later version.
* *
* CustomizeMii is distributed in the hope that it will be useful, * CustomizeMii is distributed in the hope that it will be
* but WITHOUT ANY WARRANTY; without even the implied warranty of * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program. If not, see <http://www.gnu.org/licenses/>.
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/ */
using System.Reflection; using System.Reflection;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
using System.Resources;
// Allgemeine Informationen über eine Assembly werden über die folgenden // Allgemeine Informationen über eine Assembly werden über die folgenden
// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, // Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
// die mit einer Assembly verknüpft sind. // die mit einer Assembly verknüpft sind.
[assembly: AssemblyTitle("CustomizeMii")] [assembly: AssemblyTitle("CustomizeMii")]
[assembly: AssemblyDescription("CustomizeMii is a custom Channel creator for the Wii")] [assembly: AssemblyDescription("CustomizeMii is a custom channel creator for the Wii")]
[assembly: AssemblyConfiguration("")] [assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")] [assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("CustomizeMii")] [assembly: AssemblyProduct("CustomizeMii")]
@ -50,5 +50,6 @@ using System.Runtime.InteropServices;
// Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern // Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern
// übernehmen, indem Sie "*" eingeben: // übernehmen, indem Sie "*" eingeben:
// [assembly: AssemblyVersion("1.0.*")] // [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyVersion("1.1.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.1.0.0")]
[assembly: NeutralResourcesLanguageAttribute("en")]

View File

@ -60,13 +60,6 @@ namespace CustomizeMii.Properties {
} }
} }
internal static byte[] comex {
get {
object obj = ResourceManager.GetObject("comex", resourceCulture);
return ((byte[])(obj));
}
}
internal static System.Drawing.Icon CustomizeMii { internal static System.Drawing.Icon CustomizeMii {
get { get {
object obj = ResourceManager.GetObject("CustomizeMii", resourceCulture); object obj = ResourceManager.GetObject("CustomizeMii", resourceCulture);
@ -74,17 +67,19 @@ namespace CustomizeMii.Properties {
} }
} }
internal static byte[] Tmd_Contents { /// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die {\rtf1\ansi\ansicpg1252\deff0\deflang1031{\fonttbl{\f0\fnil\fcharset0 Arial;}}
///{\colortbl ;\red255\green0\blue0;\red0\green0\blue255;}
///{\*\generator Msftedit 5.41.21.2509;}\viewkind4\uc1\pard\sa200\sl276\slmult1\b\fs20 These are some basic instructions for CustomizeMii.\b0\par
///\par
///\cf1 At the very beginning, let me say this again: Don&apos;t install any WADs without a proper brick protection!\cf0\par
///\par
///Ok, so you want to create your own custom channels?\par
///First it is important to understand how the [Rest der Zeichenfolge wurde abgeschnitten]&quot;; ähnelt.
/// </summary>
internal static string Instructions {
get { get {
object obj = ResourceManager.GetObject("Tmd_Contents", resourceCulture); return ResourceManager.GetString("Instructions", resourceCulture);
return ((byte[])(obj));
}
}
internal static byte[] Waninkoko {
get {
object obj = ResourceManager.GetObject("Waninkoko", resourceCulture);
return ((byte[])(obj));
} }
} }
} }

View File

@ -118,16 +118,10 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="comex" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\comex.app;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="Tmd_Contents" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Tmd_Contents;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="Waninkoko" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Waninkoko.app;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="CustomizeMii" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="CustomizeMii" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\CustomizeMii.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\CustomizeMii.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="Instructions" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\instructions.rtf;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
</data>
</root> </root>

View File

@ -1,19 +1,18 @@
/* This file is part of CustomizeMii /* This file is part of CustomizeMii
* Copyright (C) 2009 Leathl * Copyright (C) 2009 Leathl
* *
* CustomizeMii is free software; you can redistribute it and/or * CustomizeMii is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License as published
* as published by the Free Software Foundation; either version 2 * by the Free Software Foundation, either version 3 of the License, or
* of the License, or (at your option) any later version. * (at your option) any later version.
* *
* CustomizeMii is distributed in the hope that it will be useful, * CustomizeMii is distributed in the hope that it will be
* but WITHOUT ANY WARRANTY; without even the implied warranty of * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program. If not, see <http://www.gnu.org/licenses/>.
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/ */
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------

View File

@ -1,18 +1,28 @@
CustomizeMii is a 100% legal custom Channel creator for the Wii. CustomizeMii is a 100% legal custom channel creator for the Wii.
It's completely written by myself (some parts are based on other 100% legal codes). It's completely written by myself (some parts are based on other 100% legal codes).
Use legal Base WADs to create your own legal custom Homebrew Channels. Use legal Base WADs to create your own legal custom channels.
The .NET Framework 2.0 is required to run this application! The .NET Framework 2.0 is required to run this application!
For any further information, see: http://customizemii.googlecode.com For any further information, see: http://customizemii.googlecode.com
Please use the Issue Tracker there to report any occuring bugs. Please use the Issue Tracker there to report any occuring bugs.
Please Note: This is a clone of the original Channel Making Application by icefire / Xuzz. Thanks to icefire / Xuzz for the basic idea of this Application!
I decided to do it, because Xuzz gave up the work on his application and
the last beta Version he left creates bricking WADs.
----------------------------------------------------------------------------------------- -----------------------------------------------------------------------------------------
Changelog: Changelog:
Version 1.1
- Note: License upgraded to GNU GPL v3!
- Sound is working now
- Added brlan and brlyt tabs (for advanced users)
- Added displaying of image width and height in preview window
- Added "Make Transparent" checkbox for TPLs
- Fixed IA8 previewing / extracting
- Improved bricksafety (hopefully!)
- Added Tooltips
- Added update check at startup
- Wrote basic instructions (see Instructions.txt or instructions tab)
Version 1.0 Version 1.0
- Initial Release - Initial Release
----------------------------------------------------------------------------------------- -----------------------------------------------------------------------------------------
@ -43,17 +53,16 @@ License:
Copyright (C) 2009 Leathl Copyright (C) 2009 Leathl
CustomizeMii is free software; you can redistribute it and/or CustomizeMii is free software: you can redistribute it and/or
modify it under the terms of the GNU General Public License modify it under the terms of the GNU General Public License as published
as published by the Free Software Foundation; either version 2 by the Free Software Foundation, either version 3 of the License, or
of the License, or (at your option) any later version. (at your option) any later version.
CustomizeMii is distributed in the hope that it will be useful, CustomizeMii is distributed in the hope that it will be
but WITHOUT ANY WARRANTY; without even the implied warranty of useful, but WITHOUT ANY WARRANTY; without even the implied warranty
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software along with this program. If not, see <http://www.gnu.org/licenses/>.
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
----------------------------------------------------------------------------------------- -----------------------------------------------------------------------------------------

Binary file not shown.

Binary file not shown.

View File

@ -1,19 +1,18 @@
/* This file is part of ShowMiiWads /* This file is part of ShowMiiWads
* Copyright (C) 2009 Leathl * Copyright (C) 2009 Leathl
* *
* ShowMiiWads is free software; you can redistribute it and/or * ShowMiiWads is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License as published
* as published by the Free Software Foundation; either version 2 * by the Free Software Foundation, either version 3 of the License, or
* of the License, or (at your option) any later version. * (at your option) any later version.
* *
* ShowMiiWads is distributed in the hope that it will be useful, * ShowMiiWads is distributed in the hope that it will be
* but WITHOUT ANY WARRANTY; without even the implied warranty of * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program. If not, see <http://www.gnu.org/licenses/>.
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/ */
//Wii.py by Xuzz, SquidMan, megazig, Matt_P, Omega and The Lemon Man was the base for TPL conversion //Wii.py by Xuzz, SquidMan, megazig, Matt_P, Omega and The Lemon Man was the base for TPL conversion
@ -398,6 +397,40 @@ namespace Wii
return ba; return ba;
} }
/// <summary>
/// Checks, if the given string does exist in the string Array
/// </summary>
/// <param name="theString"></param>
/// <param name="theStringArray"></param>
/// <returns></returns>
public static bool StringExistsInStringArray(string theString, string[] theStringArray)
{
return Array.Exists(theStringArray, thisString => thisString == theString);
}
/// <summary>
/// Copies an entire Directoy
/// </summary>
/// <param name="source"></param>
/// <param name="destination"></param>
public static void CopyDirectory(string source, string destination)
{
string[] subdirs = Directory.GetDirectories(source);
string[] files = Directory.GetFiles(source);
foreach (string thisFile in files)
{
if (!Directory.Exists(destination)) Directory.CreateDirectory(destination);
if (File.Exists(destination + "\\" + Path.GetFileName(thisFile))) File.Delete(destination + "\\" + Path.GetFileName(thisFile));
File.Copy(thisFile, destination + "\\" + Path.GetFileName(thisFile));
}
foreach (string thisDir in subdirs)
{
CopyDirectory(thisDir, destination + "\\" + thisDir.Remove(0, thisDir.LastIndexOf('\\') + 1));
}
}
} }
public class WadInfo public class WadInfo
@ -2185,6 +2218,20 @@ namespace Wii
UnpackWad(wadfile, destinationpath); UnpackWad(wadfile, destinationpath);
} }
/// <summary>
/// Unpacks the 00000000.app of a wad
/// </summary>
/// <param name="wadfile"></param>
/// <returns></returns>
public static void UnpackNullApp(string wadfile, string destination)
{
if (!destination.EndsWith(".app")) destination += "\\00000000.app";
byte[] wad = Tools.LoadFileToByteArray(wadfile);
byte[] nullapp = UnpackNullApp(wad);
Tools.SaveFileFromByteArray(nullapp, destination);
}
/// <summary> /// <summary>
/// Unpacks the 00000000.app of a wad /// Unpacks the 00000000.app of a wad
/// </summary> /// </summary>
@ -2487,8 +2534,11 @@ namespace Wii
{ {
Tools.ChangeProgress((i + 1) * 100 / contents.GetLength(0)); Tools.ChangeProgress((i + 1) * 100 / contents.GetLength(0));
byte[] thiscont = Tools.LoadFileToByteArray(contentdirectory + contents[i, 1] + ".app"); byte[] thiscont = Tools.LoadFileToByteArray(contentdirectory + contents[i, 1] + ".app");
if (i == contents.GetLength(0) - 1) { thiscont = WadEdit.EncryptContent(thiscont, tmd, i, titlekey, false); }
else { thiscont = WadEdit.EncryptContent(thiscont, tmd, i, titlekey, true); } //if (i == contents.GetLength(0) - 1) { thiscont = WadEdit.EncryptContent(thiscont, tmd, i, titlekey, false); }
//else { thiscont = WadEdit.EncryptContent(thiscont, tmd, i, titlekey, true); }
thiscont = WadEdit.EncryptContent(thiscont, tmd, i, titlekey, true);
wadstream.Seek(contpos, SeekOrigin.Begin); wadstream.Seek(contpos, SeekOrigin.Begin);
wadstream.Write(thiscont, 0, thiscont.Length); wadstream.Write(thiscont, 0, thiscont.Length);
contpos += thiscont.Length; contpos += thiscont.Length;
@ -2605,8 +2655,10 @@ namespace Wii
} }
else thiscont = Tools.LoadFileToByteArray(contentdir + contents[i, 0] + ".app"); else thiscont = Tools.LoadFileToByteArray(contentdir + contents[i, 0] + ".app");
if (i == contents.GetLength(0) - 1) { thiscont = WadEdit.EncryptContent(thiscont, tmd, i, titlekey, false); } //if (i == contents.GetLength(0) - 1) { thiscont = WadEdit.EncryptContent(thiscont, tmd, i, titlekey, false); }
else { thiscont = WadEdit.EncryptContent(thiscont, tmd, i, titlekey, true); } //else { thiscont = WadEdit.EncryptContent(thiscont, tmd, i, titlekey, true); }
thiscont = WadEdit.EncryptContent(thiscont, tmd, i, titlekey, true);
wadstream.Seek(contpos, SeekOrigin.Begin); wadstream.Seek(contpos, SeekOrigin.Begin);
wadstream.Write(thiscont, 0, thiscont.Length); wadstream.Write(thiscont, 0, thiscont.Length);
contpos += thiscont.Length; contpos += thiscont.Length;
@ -3212,7 +3264,7 @@ namespace Wii
else else
{ {
FileInfo fibanner = new FileInfo(rootpath + files[i]); FileInfo fibanner = new FileInfo(rootpath + files[i]);
bannersize = (int)fibanner.Length; bannersize = (int)fibanner.Length - 32;
} }
} }
else if (files[i].EndsWith("icon.bin")) else if (files[i].EndsWith("icon.bin"))
@ -3236,7 +3288,7 @@ namespace Wii
else else
{ {
FileInfo fiicon = new FileInfo(rootpath + files[i]); FileInfo fiicon = new FileInfo(rootpath + files[i]);
iconsize = (int)fiicon.Length; iconsize = (int)fiicon.Length - 32;
} }
} }
else if (files[i].EndsWith("sound.bin")) else if (files[i].EndsWith("sound.bin"))
@ -3261,7 +3313,7 @@ namespace Wii
else else
{ {
FileInfo fisound = new FileInfo(rootpath + files[i]); FileInfo fisound = new FileInfo(rootpath + files[i]);
soundsize = (int)fisound.Length; soundsize = (int)fisound.Length - 32;
} }
} }
@ -4543,7 +4595,7 @@ namespace Wii
int r = (pixel >> 8);// &0xff; int r = (pixel >> 8);// &0xff;
int g = (pixel >> 8);// &0xff; int g = (pixel >> 8);// &0xff;
int b = (pixel >> 8);// &0xff; int b = (pixel >> 8);// &0xff;
int a = pixel & 0xff; int a = (pixel >> 8) & 0xff;
int rgba = (r << 0) | (g << 8) | (b << 16) | (a << 24); int rgba = (r << 0) | (g << 8) | (b << 16) | (a << 24);
output[y1 * width + x1] = (UInt32)rgba; output[y1 * width + x1] = (UInt32)rgba;
@ -5000,25 +5052,14 @@ namespace Wii
{ {
if (Directory.Exists(upperdirs[j] + "\\data")) if (Directory.Exists(upperdirs[j] + "\\data"))
{ {
string[] datafiles = Directory.GetFiles(upperdirs[j] + "\\data"); if (Directory.GetFiles(upperdirs[j] + "\\data").Length > 0 ||
Directory.GetDirectories(upperdirs[j] + "\\data").Length > 0)
if (datafiles.Length > 0)
{ {
string destdatadir = (upperdirs[j] + "\\data").Replace(nandpath, destinationpath).Replace("\\title", ""); Tools.CopyDirectory(upperdirs[j] + "\\data", (upperdirs[j] + "\\data").Replace(nandpath, destinationpath).Replace("\\title", ""));
if (!Directory.Exists(destdatadir)) Directory.CreateDirectory(destdatadir);
foreach (string thisFile in datafiles)
{
string destfile = thisFile.Replace(nandpath, destinationpath).Replace("\\title", "");
if (File.Exists(destfile)) File.Delete(destfile);
File.Copy(thisFile, destfile);
}
} }
} }
} }
} }
Tools.ChangeProgress(100);
} }
/// <summary> /// <summary>
@ -5042,16 +5083,12 @@ namespace Wii
string[] datafiles = Directory.GetFiles(upperdirs[j] + "\\data"); string[] datafiles = Directory.GetFiles(upperdirs[j] + "\\data");
string upperdirnand = upperdirs[j].Replace(backuppath, titlefolder); string upperdirnand = upperdirs[j].Replace(backuppath, titlefolder);
if (Directory.Exists(upperdirnand) && datafiles.Length > 0) if (Directory.Exists(upperdirnand) &&
(Directory.GetFiles(upperdirs[j] + "\\data").Length > 0 ||
Directory.GetDirectories(upperdirs[j] + "\\data").Length > 0))
{ {
if (!Directory.Exists(upperdirnand + "\\data")) Directory.CreateDirectory(upperdirnand + "\\data"); if (!Directory.Exists(upperdirnand + "\\data")) Directory.CreateDirectory(upperdirnand + "\\data");
Tools.CopyDirectory(upperdirs[j] + "\\data", (upperdirs[j] + "\\data").Replace(backuppath, titlefolder));
foreach (string thisFile in datafiles)
{
string destfile = thisFile.Replace(backuppath, titlefolder);
if (File.Exists(destfile)) File.Delete(destfile);
File.Copy(thisFile, destfile);
}
} }
} }
} }
@ -5068,30 +5105,19 @@ namespace Wii
public static void BackupSingleSave(string nandpath, string titlepath, string destinationpath) public static void BackupSingleSave(string nandpath, string titlepath, string destinationpath)
{ {
string datafolder = nandpath + "\\title\\" + titlepath + "\\data"; string datafolder = nandpath + "\\title\\" + titlepath + "\\data";
string[] datafiles = Directory.GetFiles(datafolder);
Tools.ChangeProgress(0);
if (datafiles.Length > 0) if (Directory.GetFiles(datafolder).Length > 0 ||
Directory.GetDirectories(datafolder).Length > 0)
{ {
string savefolder = datafolder.Replace(nandpath, destinationpath).Replace("\\title", ""); string savefolder = datafolder.Replace(nandpath, destinationpath).Replace("\\title", "");
if (!Directory.Exists(savefolder)) Directory.CreateDirectory(savefolder); if (!Directory.Exists(savefolder)) Directory.CreateDirectory(savefolder);
int counter = 0;
foreach (string thisFile in datafiles) Tools.CopyDirectory(datafolder, savefolder);
{
Tools.ChangeProgress(++counter * 100 / datafiles.Length);
string savefile = thisFile.Replace(nandpath, destinationpath).Replace("\\title", "");
if (File.Exists(savefile)) File.Delete(savefile);
File.Copy(thisFile, savefile);
}
} }
else else
{ {
Tools.ChangeProgress(100);
throw new Exception("No save data was found!"); throw new Exception("No save data was found!");
} }
Tools.ChangeProgress(100);
} }
/// <summary> /// <summary>
@ -5104,29 +5130,18 @@ namespace Wii
{ {
string titlefoldernand = nandpath + "\\title\\" + titlepath; string titlefoldernand = nandpath + "\\title\\" + titlepath;
string titlefolder = titlefoldernand.Replace(nandpath, backuppath).Replace("\\title", ""); string titlefolder = titlefoldernand.Replace(nandpath, backuppath).Replace("\\title", "");
Tools.ChangeProgress(0);
if (Directory.Exists(titlefoldernand)) if (Directory.Exists(titlefoldernand) &&
(Directory.GetFiles(titlefolder + "\\data").Length > 0 ||
Directory.GetDirectories(titlefolder + "\\data").Length > 0))
{ {
if (!Directory.Exists(titlefoldernand + "\\data")) Directory.CreateDirectory(titlefoldernand + "\\data"); if (!Directory.Exists(titlefoldernand + "\\data")) Directory.CreateDirectory(titlefoldernand + "\\data");
string[] datafiles = Directory.GetFiles(titlefolder + "\\data"); Tools.CopyDirectory(titlefolder + "\\data", titlefoldernand + "\\data");
int counter = 0;
foreach (string thisFile in datafiles)
{
Tools.ChangeProgress(++counter * 100 / datafiles.Length);
string nandfile = thisFile.Replace(titlefolder, titlefoldernand);
if (File.Exists(nandfile)) File.Delete(nandfile);
File.Copy(thisFile, nandfile);
}
} }
else else
{ {
Tools.ChangeProgress(100);
throw new Exception("Title not found in NAND Backup!"); throw new Exception("Title not found in NAND Backup!");
} }
Tools.ChangeProgress(100);
} }
/// <summary> /// <summary>
@ -5168,6 +5183,298 @@ namespace Wii
} }
} }
public class Sound
{
/// <summary>
/// Checks if the given Wave is a proper PCM WAV file
/// </summary>
/// <param name="wavefile"></param>
/// <returns></returns>
public static bool CheckWave(string wavefile)
{
byte[] wave = Tools.LoadFileToByteArray(wavefile, 0, 256);
return CheckWave(wave);
}
/// <summary>
/// Checks if the given Wave is a proper PCM WAV file
/// </summary>
/// <param name="wavefile"></param>
/// <returns></returns>
public static bool CheckWave(byte[] wavefile)
{
if (wavefile[0] != 'R' ||
wavefile[1] != 'I' ||
wavefile[2] != 'F' ||
wavefile[3] != 'F' ||
wavefile[8] != 'W' ||
wavefile[9] != 'A' ||
wavefile[10] != 'V' ||
wavefile[11] != 'E' ||
wavefile[12] != 'f' ||
wavefile[13] != 'm' ||
wavefile[14] != 't' ||
wavefile[20] != 0x01 || //Format = PCM
wavefile[21] != 0x00 ||
wavefile[34] != 0x10 || //Bitrate (16bit)
wavefile[35] != 0x00
) return false;
return true;
}
/// <summary>
/// Returns the playlength of the Wave file in seconds
/// </summary>
/// <param name="wavefile"></param>
/// <returns></returns>
public static int GetWaveLength(string wavefile)
{
byte[] wave = Tools.LoadFileToByteArray(wavefile, 0, 256);
return GetWaveLength(wave);
}
/// <summary>
/// Returns the playlength of the Wave file in seconds
/// </summary>
/// <param name="wavefile"></param>
/// <returns></returns>
public static int GetWaveLength(byte[] wavefile)
{
if (CheckWave(wavefile) == true)
{
byte[] BytesPerSec = new byte[] { wavefile[28], wavefile[29], wavefile[30], wavefile[31] };
int bps = BitConverter.ToInt32(BytesPerSec, 0);
byte[] Chunksize = new byte[] { wavefile[4], wavefile[5], wavefile[6], wavefile[7] };
int chunks = BitConverter.ToInt32(Chunksize, 0);
return Math.Abs(chunks / bps);
}
else
throw new Exception("This is not a supported PCM Wave file!");
}
/// <summary>
/// Converts a wave file to a sound.bin
/// </summary>
/// <param name="wavefile"></param>
/// <param name="soundbin"></param>
public static void WaveToSoundBin(string wavefile, string soundbin, bool compress)
{
if (CheckWave(wavefile) == true)
{
byte[] sound = Tools.LoadFileToByteArray(wavefile);
if (compress == true) sound = Lz77.Compress(sound);
sound = U8.AddHeaderIMD5(sound);
Wii.Tools.SaveFileFromByteArray(sound, soundbin);
}
else
throw new Exception("This is not a supported 16bit PCM Wave file!");
}
/// <summary>
/// Converts a sound.bin to a wave file
/// </summary>
/// <param name="soundbin"></param>
/// <param name="wavefile"></param>
public static void SoundBinToWave(string soundbin, string wavefile)
{
MemoryStream ms = new MemoryStream(Tools.LoadFileToByteArray(soundbin));
byte[] wave = new byte[ms.Length - 32];
int offset = 0;
ms.Seek(32, SeekOrigin.Begin);
ms.Read(wave, 0, wave.Length);
if ((offset = Lz77.GetLz77Offset(wave)) != -1)
wave = Lz77.Decompress(wave, offset);
Tools.SaveFileFromByteArray(wave, wavefile);
}
}
public class Brlyt
{
/// <summary>
/// Checks, if the TPLs match the TPLs specified in the brlyt
/// </summary>
/// <param name="brlyt"></param>
/// <param name="tpls"></param>
/// <returns></returns>
public static bool CheckBrlytTpls(string brlyt, string[] tpls)
{
byte[] brlytArray = Tools.LoadFileToByteArray(brlyt);
return CheckBrlytTpls(brlytArray, tpls);
}
/// <summary>
/// Checks, if the TPLs match the TPLs specified in the brlyt
/// </summary>
/// <param name="brlyt"></param>
/// <param name="tpls"></param>
/// <returns></returns>
public static bool CheckBrlytTpls(byte[] brlyt, string[] tpls)
{
int texcount = Tools.HexStringToInt(brlyt[44].ToString("x2") + brlyt[45].ToString("x2"));
if (tpls.Length != texcount) return false;
int texnamepos = 48 + (texcount * 8);
for (int i = 0; i < texcount; i++)
{
string thisTex = "";
while (brlyt[texnamepos] != 0x00)
{
thisTex += Convert.ToChar(brlyt[texnamepos]);
texnamepos++;
}
texnamepos++;
bool exists = Array.Exists(tpls,tpl => tpl == thisTex);
if (exists == false) return false;
}
return true;
}
/// <summary>
/// Checks, if one or more Tpls specified in the brlyt are missing and returns
/// the names of the missing ones.
/// </summary>
/// <param name="brlyt"></param>
/// <param name="tpls"></param>
/// <param name="missingtpls"></param>
/// <returns></returns>
public static bool CheckForMissingTpls(string brlyt, string[] tpls, out string[] missingtpls)
{
byte[] brlytArray = Tools.LoadFileToByteArray(brlyt);
return CheckForMissingTpls(brlytArray, tpls, out missingtpls);
}
/// <summary>
/// Checks, if one or more Tpls specified in the brlyt are missing and returns
/// the names of the missing ones.
/// </summary>
/// <param name="brlyt"></param>
/// <param name="tpls"></param>
/// <param name="missingtpls"></param>
/// <returns></returns>
public static bool CheckForMissingTpls(byte[] brlyt, string[] tpls, out string[] missingtpls)
{
List<string> missings = new List<string>();
string[] brlytTpls = GetBrlytTpls(brlyt);
bool missing = false;
for (int i = 0; i < brlytTpls.Length; i++)
{
if (Tools.StringExistsInStringArray(brlytTpls[i], tpls) == false)
{
missings.Add(brlytTpls[i]);
missing = true;
}
}
missingtpls = missings.ToArray();
return missing;
}
/// <summary>
/// Checks, if one or more Tpls are not specified in the brlyt and returns
/// the names of the missing ones.
/// </summary>
/// <param name="brly"></param>
/// <param name="tpls"></param>
/// <param name="unusedtpls"></param>
/// <returns></returns>
public static bool CheckForUnusedTpls(string brlyt, string[] tpls, out string[] unusedtpls)
{
byte[] brlytArray = Tools.LoadFileToByteArray(brlyt);
return CheckForUnusedTpls(brlytArray, tpls, out unusedtpls);
}
/// <summary>
/// Checks, if one or more Tpls are not specified in the brlyt and returns
/// the names of the missing ones.
/// </summary>
/// <param name="brly"></param>
/// <param name="tpls"></param>
/// <param name="unusedtpls"></param>
/// <returns></returns>
public static bool CheckForUnusedTpls(byte[] brlyt, string[] tpls, out string[] unusedtpls)
{
List<string> unuseds = new List<string>();
string[] brlytTpls = GetBrlytTpls(brlyt);
bool missing = false;
for (int i = 0; i < tpls.Length; i++)
{
if (Tools.StringExistsInStringArray(tpls[i], brlytTpls) == false)
{
unuseds.Add(tpls[i]);
missing = true;
}
}
unusedtpls = unuseds.ToArray();
return missing;
}
/// <summary>
/// Returns the name of all Tpls specified in the brlyt
/// </summary>
/// <param name="brlyt"></param>
/// <returns></returns>
public static string[] GetBrlytTpls(string brlyt)
{
byte[] temp = Tools.LoadFileToByteArray(brlyt);
return GetBrlytTpls(temp);
}
/// <summary>
/// Returns the name of all Tpls specified in the brlyt
/// </summary>
/// <param name="brlyt"></param>
/// <returns></returns>
public static string[] GetBrlytTpls(byte[] brlyt)
{
int texcount = Tools.HexStringToInt(brlyt[44].ToString("x2") + brlyt[45].ToString("x2"));
int texnamepos = 48 + (texcount * 8);
List<string> Tpls = new List<string>();
for (int i = 0; i < texcount; i++)
{
string thisTex = "";
while (brlyt[texnamepos] != 0x00)
{
thisTex += Convert.ToChar(brlyt[texnamepos]);
texnamepos++;
}
Tpls.Add(thisTex);
texnamepos++;
}
return Tpls.ToArray();
}
/// <summary>
/// Returns true, if the given Tpl is specified in the brlyt.
/// TplName must end with ".tpl"!
/// </summary>
/// <param name="brlyt"></param>
/// <param name="TplName"></param>
/// <returns></returns>
public static bool IsTplInBrlyt(byte[] brlyt, string TplName)
{
string[] brlytTpls = GetBrlytTpls(brlyt);
bool exists = Array.Exists(brlytTpls, Tpl => Tpl == TplName);
return exists;
}
}
public class ProgressChangedEventArgs : EventArgs public class ProgressChangedEventArgs : EventArgs
{ {
private readonly int p_Percent = 0; private readonly int p_Percent = 0;