From a442d289b52d95176e93353d87c331b872f03904 Mon Sep 17 00:00:00 2001 From: CatmanFan Date: Wed, 25 Dec 2024 17:36:54 +0100 Subject: [PATCH] Integrate SuperrSonic's sns_boost, other interface updates and some fixes --- FriishProduce/App.config | 21 + FriishProduce/FileDatas/Apps.Designer.cs | 20 + FriishProduce/FileDatas/Apps.resx | 6 + FriishProduce/FriishProduce.csproj | 20 + FriishProduce/MainForm.cs | 6 +- FriishProduce/Options/VC_SNES.Designer.cs | 98 ++ FriishProduce/Options/VC_SNES.settings | 24 + FriishProduce/ProjectForm.cs | 7 +- FriishProduce/Resources/apps/sns_boost.exe | Bin 0 -> 59000 bytes .../tools => Resources/apps}/wwcxtool.exe | Bin FriishProduce/SettingsForm.Designer.cs | 110 ++- FriishProduce/SettingsForm.cs | 63 +- FriishProduce/SettingsForm.resx | 334 ++++++- FriishProduce/Strings/en-GB.json | Bin 430 -> 380 bytes FriishProduce/Strings/en.json | 33 +- FriishProduce/Strings/es.json | 25 +- FriishProduce/Strings/fr.json | 25 +- FriishProduce/Strings/ja.json | Bin 8432 -> 8432 bytes FriishProduce/Strings/ko.json | 24 +- .../Subforms/ContentOptions.Designer.cs | 2 +- FriishProduce/Subforms/ContentOptions.resx | 118 +-- .../Subforms/ContentOptions/Options_Flash.cs | 4 +- .../ContentOptions/Options_Forwarder.cs | 4 +- .../Subforms/ContentOptions/Options_RPGM.cs | 2 +- .../Subforms/ContentOptions/Options_VC_NEO.cs | 4 +- .../ContentOptions/Options_VC_PCE.Designer.cs | 48 +- .../Subforms/ContentOptions/Options_VC_PCE.cs | 6 +- .../Options_VC_SNES.Designer.cs | 171 ++++ .../ContentOptions/Options_VC_SNES.cs | 60 ++ .../ContentOptions/Options_VC_SNES.resx | 120 +++ .../Subforms/ControllerMapping.Designer.cs | 2 +- FriishProduce/Subforms/ControllerMapping.resx | 868 ++++-------------- FriishProduce/_classes/Creators/WiiVC/N64.cs | 2 +- FriishProduce/_classes/Creators/WiiVC/PCE.cs | 4 +- FriishProduce/_classes/Creators/WiiVC/SNES.cs | 43 +- .../_classes/Creators/WiiVC/_base.cs | 10 +- FriishProduce/_classes/Files/ROM/_base.cs | 2 +- FriishProduce/_classes/Helpers/ImageHelper.cs | 2 +- FriishProduce/_classes/Utilities.cs | 12 +- README.md | 2 +- 40 files changed, 1335 insertions(+), 967 deletions(-) create mode 100644 FriishProduce/Options/VC_SNES.Designer.cs create mode 100644 FriishProduce/Options/VC_SNES.settings create mode 100644 FriishProduce/Resources/apps/sns_boost.exe rename FriishProduce/{bin/Debug/resources/tools => Resources/apps}/wwcxtool.exe (100%) create mode 100644 FriishProduce/Subforms/ContentOptions/Options_VC_SNES.Designer.cs create mode 100644 FriishProduce/Subforms/ContentOptions/Options_VC_SNES.cs create mode 100644 FriishProduce/Subforms/ContentOptions/Options_VC_SNES.resx diff --git a/FriishProduce/App.config b/FriishProduce/App.config index 838c8be5..0471a59d 100644 --- a/FriishProduce/App.config +++ b/FriishProduce/App.config @@ -2,6 +2,7 @@ +
@@ -17,6 +18,26 @@ + + + False + + + False + + + False + + + False + + + False + + + False + + diff --git a/FriishProduce/FileDatas/Apps.Designer.cs b/FriishProduce/FileDatas/Apps.Designer.cs index 2f08c81e..fa91c886 100644 --- a/FriishProduce/FileDatas/Apps.Designer.cs +++ b/FriishProduce/FileDatas/Apps.Designer.cs @@ -130,6 +130,26 @@ internal static byte[] romc0 { } } + /// + /// Looks up a localized resource of type System.Byte[]. + /// + internal static byte[] sns_boost { + get { + object obj = ResourceManager.GetObject("sns_boost", resourceCulture); + return ((byte[])(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Byte[]. + /// + internal static byte[] wwcxtool { + get { + object obj = ResourceManager.GetObject("wwcxtool", resourceCulture); + return ((byte[])(obj)); + } + } + /// /// Looks up a localized resource of type System.Byte[]. /// diff --git a/FriishProduce/FileDatas/Apps.resx b/FriishProduce/FileDatas/Apps.resx index 6f252abc..97ec74c6 100644 --- a/FriishProduce/FileDatas/Apps.resx +++ b/FriishProduce/FileDatas/Apps.resx @@ -139,6 +139,12 @@ ..\Resources\apps\romc0.exe;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ..\Resources\apps\sns_boost.exe;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\apps\wwcxtool.exe;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + ..\Resources\apps\xdelta3.exe;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 diff --git a/FriishProduce/FriishProduce.csproj b/FriishProduce/FriishProduce.csproj index f900e3f7..77bb62ce 100644 --- a/FriishProduce/FriishProduce.csproj +++ b/FriishProduce/FriishProduce.csproj @@ -222,6 +222,11 @@ True VC_SEGA.settings + + True + True + VC_SNES.settings + True True @@ -233,6 +238,12 @@ BannerOptions.cs + + Form + + + Options_VC_SNES.cs + Form @@ -445,6 +456,9 @@ SettingsForm.cs Designer + + Options_VC_SNES.cs + ControllerMapping.cs @@ -517,6 +531,10 @@ SettingsSingleFileGenerator VC_SEGA.Designer.cs + + SettingsSingleFileGenerator + VC_SNES.Designer.cs + @@ -584,6 +602,8 @@ + + diff --git a/FriishProduce/MainForm.cs b/FriishProduce/MainForm.cs index a1434de4..60b53ca8 100644 --- a/FriishProduce/MainForm.cs +++ b/FriishProduce/MainForm.cs @@ -562,8 +562,8 @@ private void ExtractWAD_Click(object sender, EventArgs e) File.WriteAllBytes(Paths.WorkingFolder + "html.arc", u8.Data[u8.GetNodeIndex(item)]); Utils.Run ( - Paths.Tools + "wwcxtool.exe", - Paths.WorkingFolder, + FileDatas.Apps.wwcxtool, + "wwcxtool.exe", "/u html.arc html.dec" ); if (!File.Exists(Paths.WorkingFolder + "html.dec")) throw new Exception(Program.Lang.Msg(2, true)); @@ -606,7 +606,7 @@ private void ExtractWAD_Click(object sender, EventArgs e) goto End; } - else throw new Exception(Program.Lang.Msg(15, true)); + else throw new Exception(Program.Lang.Msg(16, true)); } catch (Exception ex) { error = ex; goto Failed; } diff --git a/FriishProduce/Options/VC_SNES.Designer.cs b/FriishProduce/Options/VC_SNES.Designer.cs new file mode 100644 index 00000000..db2f23c0 --- /dev/null +++ b/FriishProduce/Options/VC_SNES.Designer.cs @@ -0,0 +1,98 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace FriishProduce.Options { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.0.0")] + internal sealed partial class VC_SNES : global::System.Configuration.ApplicationSettingsBase { + + private static VC_SNES defaultInstance = ((VC_SNES)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new VC_SNES()))); + + public static VC_SNES Default { + get { + return defaultInstance; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("False")] + public string patch_volume { + get { + return ((string)(this["patch_volume"])); + } + set { + this["patch_volume"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("False")] + public string patch_nodark { + get { + return ((string)(this["patch_nodark"])); + } + set { + this["patch_nodark"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("False")] + public string patch_nocc { + get { + return ((string)(this["patch_nocc"])); + } + set { + this["patch_nocc"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("False")] + public string patch_nosuspend { + get { + return ((string)(this["patch_nosuspend"])); + } + set { + this["patch_nosuspend"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("False")] + public string patch_nosave { + get { + return ((string)(this["patch_nosave"])); + } + set { + this["patch_nosave"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("False")] + public string patch_widescreen { + get { + return ((string)(this["patch_widescreen"])); + } + set { + this["patch_widescreen"] = value; + } + } + } +} diff --git a/FriishProduce/Options/VC_SNES.settings b/FriishProduce/Options/VC_SNES.settings new file mode 100644 index 00000000..a0e3e260 --- /dev/null +++ b/FriishProduce/Options/VC_SNES.settings @@ -0,0 +1,24 @@ + + + + + + False + + + False + + + False + + + False + + + False + + + False + + + \ No newline at end of file diff --git a/FriishProduce/ProjectForm.cs b/FriishProduce/ProjectForm.cs index 6ab16efb..ff4010e0 100644 --- a/FriishProduce/ProjectForm.cs +++ b/FriishProduce/ProjectForm.cs @@ -835,7 +835,7 @@ private void Form_Shown(object sender, EventArgs e) // ******** if (loadProject) foreach (var item in new string[] { project.ROM, project.Patch, project.BaseFile, project.Sound }) - if (!File.Exists(item) && !string.IsNullOrWhiteSpace(item)) MessageBox.Show(string.Format(Program.Lang.Msg(10, true), Path.GetFileName(item))); + if (!File.Exists(item) && !string.IsNullOrWhiteSpace(item)) MessageBox.Show(string.Format(Program.Lang.Msg(11, true), Path.GetFileName(item))); project = null; } @@ -1556,7 +1556,7 @@ private void saveToWAD(object sender, System.ComponentModel.DoWorkEventArgs e) for (int i = 0; i < entry.Regions.Count; i++) if (entry.GetUpperID(i) == baseID.Text.ToUpper()) outWad = entry.GetWAD(i); if (outWad == null || outWad?.NumOfContents <= 1) - throw new Exception(Program.Lang.Msg(8, true)); + throw new Exception(Program.Lang.Msg(9, true)); // ----------------------------------------------- progress.step += 1; @@ -1684,7 +1684,7 @@ private void saveToWAD(object sender, System.ComponentModel.DoWorkEventArgs e) // Check new WAD file // ******* if (File.Exists(targetFile) && File.ReadAllBytes(targetFile).Length > 10) error = null; - else throw new Exception(Program.Lang.Msg(6, true)); + else throw new Exception(Program.Lang.Msg(7, true)); } catch (Exception ex) @@ -2146,6 +2146,7 @@ private void resetContentOptions() break; case Platform.SNES: + contentOptionsForm = new Options_VC_SNES(); break; case Platform.N64: diff --git a/FriishProduce/Resources/apps/sns_boost.exe b/FriishProduce/Resources/apps/sns_boost.exe new file mode 100644 index 0000000000000000000000000000000000000000..8669d9ea9a583eff058ea8befe1dbd1d069ffbbb GIT binary patch literal 59000 zcmeHw4PaE&mH$l$5HOgi(9)LH2S&vF>wLxr*yQ{R^73ohUx4W$?4Z?MjAIG*7+!$B z?^V4xhnd26_{>@6$Jaf#OTB_|`NDm5VCn8v*WB;M$-Y_lP%8P+u2Tc*oUUFaRZyCl z2ch%~;zKIcQd*Fy0)?}7o$6KJ-_=`3Y();Xsi0(DUqjNQJXJ!_#QGCXGi&@0P`Jjy z?w(zbT|wq^`(~!rol3h3t6obbPglK_W@)zQ9@O39yPg5ZqFp#mv@e>7gL+}=NIH2s zz3vo1o-JS$7t(?tT!2Gn1pvBE<*9Sv>%U5(1lsk~mBcyJ|Nn-t4St(MsbkVaFM;Ub z&w8HWG(&A6sXcj%P!x%oZWA!U&)lNK=$s`TZ_IxX8+Bi z-E{ayb`gYkJpoZB?GgS%-#`gsx9)W2zsQB-1(}~U0r;K&9vaFlcn3cZP|^eKX)5Z% zeN-E8Qm~H~KB9fM!dU9LOc_{Gvr03EpvEYF=qJC1W)z|1Gdp2K>UdQzis>y;KafxT zmdp=2@=-V_(V-c&5a%^(lg0i*Ex%Oe_vjn+ugl(xU`UF4)ykV(OInoX6|QDw@yeCW zEv{9pArxqjD)kktX=!u)vU+8Ot7Xl~Rm<3t#(E4%OIEIES+#OGTiR5Ak~linLc$R4Cwy2d+#gktl|{xZp2S zmMW1zz^|xLC76uIw^roV-yBUw{0XH!8ucr!NmbbzO)80CG#U0Q8za%pN;DGQs;Dr+ z9o-y=E33Sb_CP#AW3A$gM$~vT%yXLp?Ox@U=vHJ_u#b8-2I6d$HxUd4!hUvB2uXi5 z&K7&43eQWndj%7ntnwyr_r{YOL1|CMleY&tlB_xAjc*LYJ!MVE5A1j#kx0e^%(W%z z4|zG_4bgaO$nOtCl$DVHyJh9_CG{(md6ku{*&FvNE#8e@HIdvHV$I3hwGkcVWJe4^R#2RQ zuo6jjv?9vUNT5s!smkV17~w@Uxh5#)TnRQvVA;QT$y@Us^`*UntF@IH3o!jIg}Dn3&79?W|>S;;3a``(si zL%*EX$k@^At;Am(1hMD(vgv~J&aV5xIrtOeyv|1aB5~S?zo^Q=dHi+3X+i(hI^wi~ z|LP)Q{N(+ETWUL5W$j+Z8q3h;>$c|~uf=iCv`=TSXP2!_ z<$F5r+KD~2d-l+YI|}n3gqFOX+V%OYmgSZ0H%=Hk^{sDxYiLP7Lk=52Uoy0FAG^4A zJPq9MmQ?O5MSzqws7|ScE+sSg9KV5Zz^Ah1Y?YjUwDq~(;ltX7yx{Jcb!;eE znEB03pd2c}JmdnNU68#KV-$uy@O(+~{F99*FZ)rQXOHChrj4gCJ74GdvgG-+jVC{Q zvE<1QepT|cT6qdt_Lpc0WKTixKFRZ8D^CH-eplytK=QoT%9F>k4@#bi!M~9_Z!NX> zp3kz|b)LVMJg?|Hg*-kbgI+RbQt)xf@TiTUZm>>7?`1XCy;ZXP86~ z3TsQd-npDEGhcd6Obl`r+yY&S7hEUHQE)S?JghTE!TlQjk*NaIu^a{WeJc;E%TaKD zW8*2zQE=Tho`M_&=e6w5ivp-YP-elJh)y&EPr(60RWlA?-SKy{qVs{J|=mO>h-< z);1(B6{mHbwV~uC;=HSOYG-X_aw4ulhHxQrYKRR!pLU&o={XFFcWMKqvN#&0@m;x7 zQChbumnWtow>-q+txQaNZ}5h~VwM$+VJ^~!)aA+`dNATrf4|X5nwlZF`W?SVk!`d_`sS7VA2OG$|KQoKjulf zrY(9G%XJVJp^+nePC;uVm=tUZ_zhJ)UoJ&+XadA##B35X!6jjDA`$W_OT_#yjM>i| zOnedvZ+l=E_3gfL;CW+C1hQ{Q680F{Fq8F%C{&nR#bPuG^aW|!$>*~5ix!tDix=Hm zrrf${ZJDxmQN8qFb0|c!oN}5z(!eLLM@;h{>des=QPneEv%IQ#|#MSx!vy2|0g? z2R@#JeJIpOA`n-(fmmfK%c+8wzAk}Tv)AtrsiA1Z8&(2sn2M=1VQdTW*<3)YB*aB? z-asO^R>MS0&Eo;6!Gw`RMPsB~6hkzr#xSM#Dod)N81rZ~=vDdD9q~qJ!yyqEt@!tw>+$SqhR0&7v z5`vcLHpfG%8i*KGFxc9W2*`#d%dc^9Q?u(2mPb1Z#LIobfNx{DHymcEw^preQi7a} zS_HCQL1SJO1T;d-hQTUw6J<*Cs`@6u1V>}a=4gB)N?2=eLX|{FggRp3z%Ug@7SU+< zdhPY+R&+x&?xPykPJIEtwD3jSBNYG5xH3whKR~aO2&hyIrLI_LOCVg1=(o|NrMx_r zquJ>d$gbZXO2oq6txDB(RYtiayeL#%#BxGew8B@>iUn8EPmEZ^ALqJw-<3!v&=2~D zQ7ln7{~x4$Qy|_NMfEA)#BSlIA$2Q7hP!cfFc6Nh)y?%cx|F3Wnp;+_UedC3<%;I( zayD9%hlxnS(@JANMPN%nDGw=?RTXGDiq=WvM0UgC%;&>V>+W!BZ5inM2d9~|_w?`; zY!w%nv{D^v3!z)#O9{6up(e?Ph{Q-XqDp9^f*dN!WY?~kdVQUyH^(x?TykZ~#}h^= zqFJIgq36M6YCNiXaqUQ5#EnZ#T_!r|`o(K+<(HwsOqz$E<+c7N<># zIa(m+D2s4)z9q!_7CGoe+c+@Q{hXZ>^gv$5pA@vjDS%ps>NSTzYb4xaG5FyUyF!`U zgxcPUVRfUDP?K$Kv#)~R#`q!h`+TIGuA?_WzwFLC0ufb#iC#q?#L$;GM@OAvK=F(hzkP-q!F)<)bwLjLc*rO@0#SD)b?x zH5r0B+bD%DIl3A5cA%c>7GFiVX?1f8_>2mMN&){h{bKMT2v>wm!h#qdj!XiIUL%>j z4CnIxfGA#Coq?FCXY~hEbfPq((l|j;ZCu&pQknvhB*4)=ME&5+igaM5Y7?pjbcjZz z=nal)!HW774P{&tRcR_EjK@LrptN)sD98Fz(i=_)#d7=;`uV_^Q@=4jO8q1)7G%Fe zb7CP+Z9S*BwG$v8Wh>5MAn}rRvCwU?Pj=-wA&j1-Ojd0^OnAeay;~EaVJK|~dl0%! z6;GZ@|4josf$+t)gpy29-3X(Dilb46X= z%`95zYYW8_>TDQCoC%EX*C~}-E?*16vQQk?9isKoVuXGC5Pg!LS1qMA9K{TW z4r1Xmp_D6j!xhFoVtVxy_b*1!UsY|^@2aGKhW;BuG=;vw8&SQ9t;*7+n7IWo8{$23 zlQ-fmQ?T@F^jWAeQaGW%rQ(D#hDI zGrWZ2uHu85yV_jdCY2a>^lD%sS6^K{a_`^MGmL%J%G?`npr9`a#-r%GFz~ixR*$hW zH&WGbNJ2j?X2-<^sbZfoG&qKjxyAmk#6>E^bp4Ut6pBFn#N?V79GFnhtO2?A=yzy zbkna^J7QPsmg#L*r{K&zSTXiux zGAeBl#A=WRF*1{a3s*V5^6`U)AXT(5%zx(4x{+8?+(UoKy*oSFQ*amnlJYyN(6N{KTOuzMuSk)p{y@)MdB<>b0;&%=f z;XcA5ej{NKig6hHsfJo@PAcr6CzxoWLDP!O4Cd0JmWNhvXa$C00g{OBs_PVfti~}B z2_!gypXd~vxU1Nb>dPzVuT?7fc6ntrMkLGlH?N_(^76`>waWae>IHN%wZ5`)0dXtW z;)GLbs%on%E30Z1jd`lZtZ2+r=R<<)SuDk;vU#tfx6gG%91e>^zc{=s4rCx$4v9mrI6Nf|-0D8pVb`!O0TVY=DXT2XH!fB#o!Tfqx;T;pR9iWlnhhQ^^yQX&&f7(?vR8x|< z_ZsdPZjE_}r%&)49LS&GD(dPj7^=(!1V_rXyKCESmYhK`=_mKYA|pFZ=!a^PSa9O| z!Ln4a>~ifH;wD@MqQivgx(T!TT>WG^L6njF6r21_x#SPmXf8k=&-w}Z7|FjRvUL0} z=91rSmVZ%`-%s)>oBW%(vQ#L@-dR1BC;qR`zihV zdE8Y>pP+QsNV_jZ`c)&npVBXhwC?|55FPlt1rw?O;`fvVKV_4DJ(qloS^j_~e}eFr z+T>>{Iq;{OlT~dnljYir{>1&Pjeo9|yq)RSG`rSs_P3g%-dOxL4UTyRMl>WJqc3*+?4~=vW zrTdI@Kc&BIq${sP`Wr?%M(KNvbU&r^0GxT9+djwCg_IrqECy%R zNT(rw%7r!dk+F<#%qokEt`^z)*5WFh+p?DEPBJ(g`a* zPs9f#aRmo@nHBHogdzef3_flGJ6@)N`7q9ch4T~y51M!m2p-bCpL910-4;v!i!!d3 zps&spmgId9#P>?#ArL97#ofCIWgFSlrQHH#`lVjf{$Ce3r9%VGe0&*-f z-Oc@*_=J&OPw59m+F2ELiHz*EX3Mrn;v8w2x|I-T1z$EH9=b}i>Nd(O31&>0 z_lit1XEVWHIUM|j66wGUQ(%5Cq_g)E(Gr-_U}={JktzI z_LC)lWu$*X>0Ki242&u=vL7&8=8?oH+_H!Aio5TXs1t+t%rGqb##}8pxA(ao0*hW9 z3ykX3JJG08y^~DmlV$ZPDT9H>g(|0kKM)z&ZPQJmdqxt2MBHXI@Jl8GCkZ}usb^xK zn+#kwoPpKSmZO)L41B*N_7RaA*sDkID<%U2S0bM(eR21FU^s&)_K=Ye3UxGSt^WqP z-P*?FOiK88f+a7|a!@?ZPzQx{_F}Uq&64=v7jsYYi@PUdx> zYkOPQTucmTxa31Koz&?yYL`2oB-;*V3U}rUu3hd4ce}Rl%$IQ;#GkrA2P?>a0*eaN zZ2Ku{F=4thAZtWMHjjJrSwm(7ziA4{R+^xRfc(q|NNRt4ZfaP3Iqz`je#JtLZNaZm0CkBJGSu zt;op!wAd7l%OvspM6^ZYux_k7v+=UC6OC^PJt7)e9e_t;vW9U6(P-B67X`mY(O4qV z&S-p4WMmItXo|)RN&F5Gw>@U58}I1Gx-;wMoN+Yz$-1u#Jt7*H=(8stjo;6f7-tX- zm!@Av;~J56Mq`%9$i6Vm6phJ}_$U!A(U=~bs~hXitkf(m?*7?0TMCcHy+RK~V|s9* z4#1-^sGNB;uGRDx1%F4;zfz=~(YR1#WDgXXqVaoSLH2$kqNS*QGIUzdtsCmjxO6LT z>~kGJEaVI$NB7S!lk&7yk1Ga+dW?%IVAtm)(gKe30BT`bJ{dw!#Rp7iKfF}Nq`3P6 zFi2fAhBX#gq-6E_Gt|B{1}L-+{4)EGImg zHWNptz`cuSxHGE+s3to3Znm?Vh9`|MkqGq1gJ~{sFf+6GiGF!LKv(KRY|67*9@42xx)0Wxdj^R_)X$L zk)aUgxifVFMI?8*C*RHEVT|b)2tu7fnRqvkkU^ND5vUGSQXNPOrMzxx7iMr+T$n{f zW_IRODkeG5-ztd{h=|szE}`Xv%}}NpdZpmN^m49T@z)|ub6!&PX@V}1ik_T8iuOxI z_n8#^`2EPCp^+5rr^;ei^e8Fn6KvU!b48CZbskytl1b4Qbwx9=5Rqq6M6>N|Ef?IG zm%NDtUo#2brVCyTK~#RsMISL6qRrMbWXOl5A(=w*XlFkDBpCYguQozcr0e^Lz9M4L zr$uNQgfhRJ#r@}nMd=@lbap4#-l)! z?viS&NUc`PaY>wI!I~EIo3NgFpH@C5to?*lGaT0Yq}t~vo3JKH;(j7-gI^oSuW7+M zOjxUQtR};+6NL4m$ieL*tW%j*gZSFQ!y+@g+Kl%lNvz{|Pod+R&$A0QOb#}fFn|1B z>0fd83^3r%0Tn%NV9?T%qIm!T$@lG zrh8_=AZfWyWLa*N#VDg*WMl^?;tET6RJ`NINKjeImC;|&^4lT8p_S2p7O9l$FtNy$ z(eIjA4rjh9S$IFq7e^0carAK-J2Ej7=kClZJr#V2%=rhA=H8-DFXW@7=>BBy)+0Df zZr>>=ecdXR2R7p@&1u)W4r8@)igapH@EIV9oC$K+O4Iro@3KAyFU@%v{@j^`FX960 zP)S?LwcTWpxX80ysO88N*KFB43q(jK2A_AJPa6S!qC4|U-$>~1H7*l#pudk_F=m-W z&kugjf&RI75ASOtC z{{k(R4O8y$y_DF}GWrY8kL3I9Bcgvopcm>h!yh`(@1^xH z?mPaZ(pl#lM?&xUJet`^2K0OZ48n#T7`UmYm>B%A!-h*numLsy(4i3`(DTjFY%$sK&@${Mj36E@c@p3WZgc5#t1G&lHP{>~t=o z4-zlZI-5R7d{d;XgT&WOEQd3jC5teN?x68Of;#ccG85QA442=*kAO}i)ZbprO~LXYo)gh8I4H$0Kg9J2UD!}w0(hL0U#rBCdJ++1cYl#i zWsgcc2L}qLJS)?r;ov}to~DVw!GW2^l?jwDw*WU$N(WwH0bWU|GX@UBhV&O{h)uhC zuj)@dyQ`Z>c_lA&Z^RK3pAD4k>-N(D9`<#wCptg7O+QUg+-3CA93w`=EuCU$Vi-?CPED&ioA5 zoXAgcQ`7wSV1|#wBGH!ORteq9th&EVD|lS@oSeGv(sYya#8DV*wrWV~8b0FGfZJs* zO#=lj-A%vTIvyaAhJh3$q5d|j`giH-a~KHqZ_uS0IZq`)8m0yVRt<+~S&q9neHX{U za&UfMw^o`YBgb4L3Q#njtq8CY;|XQmwl5Y2PCsT@(#yj=6!x}N6cTD&8Iu~gKj zylks=T-6l0GanuS;o;s~2zdrVkqLq62z=IJARMIyIPSO8how0Y3JrvBVocP0_?mTe zHV|$f0paK0$>l?VfzW6|SSS(X$YUVP91a0vPIoSZLS`Vmfd;Jk@FRVEU4F+05 z-t=+@dn7^`M^JY0v8Ibn)Sx;vqy58TQa>~tY?}9M!=gUH`%42=L=X>C(Nrh)`=O!E zZC_(5T|);4rJ-G-iygd#i0?>ZL=aJ=Lyyy78LX@pfm^L*6b(JjrztxO0^<58|v#4|Dtng(2G_hhcnQ{rCTmyC2Psg`(yALNgV zWgk3@%8GTM5an$!czY=QQ6tTl3T_ftmQK6n4LqEFkuwlJpFs>{?uqUR7{Eop!&H%ntrcdw&~V z9Jh~k)ZyKCL+VxCy{YGt?*`-v4UUj*vvAp@F= zhyj6}UX$Kd_}ho^lv;XqA&Q`nULVE!>I(LU5Wu>^-t~BMAw@B@czSxq4&d+WB-3u5 zm8ze)uY@w{=l0c?Q8nAQ6FKP_pTTcmJ#OT|;`++e%{88N&)M-&-pyUd>(VpGMnvMm zU4c`)NFTd` zA5ZLi3P;@WsKEh$L7pDe#$!OyNGh4R0z@-$;*PoFljO^--Mzd{s|wZk&O2rts8=t_d+DaF zZ+2Z@o4f!ooLq;O+)Vl2;9%xb$QVtRpWU4L33`G>^orPc$)~b(?3%*L={T6Z>LAWj z1F4tOh3UG2p#eysJ*>h;YPzMgj?Pmh_-*X&-Ev{q9i@$V z>SQ{U-udp#QxNTAvtf5tZ`CVZhsr+o7pTpKkV;Xke9x#w66G>ONw{Ag-Im6 zpb}MxrKXo=dLSz}0X1o;p|ozWKdqM5RrMA>@vhFd%ZqpSqVH%ZomJfZFho1w{!sCb zzs89$C3#Wj+m*#TfESh9u!pBEE0%iz4FBd>0W{ zRSFcjpF*gcNFk~WDh%q-#k?r5O+BCeJh~G;UP#GTNb*XOM1k|lcL^jRQbaYp_?i5! z%$mVIZoy#hzPTvhG%NmgfxBxUzxdm|ga2lb8oLJah}0u`AxlO9GO|+uZMHXIw)d|9 zuU8HA0%32q6YiP~EjJsw0U|K8n7jGRBp8}?YthQyK#~q~`wfz2?mY%+ZPx%d^z>=W z!_b7f`*9+IcthU8wQAwQEydkWf!2lkm5=g7bW5@i6BD)MCzcRX2~2FHhD^*mkVk2B zGAz3p396Zz;0mM-a746_qBIp$>T-rIFG8?;dLYTSq038b=>l6iY)co~(lc%8GF$p| zj}>pNEx*B*R&8m&Exq2BUT#Y-w51zu>Dz4S7F*hFOV`=bFcKwcfYo!z5A6dSP?2pZ+khNd~pMV?wd1Pz>#h`-gQXneo1{#>R_t>~3*EK3(5e159?2j`j!$v;;~pDSZB-s&yT0n>CO^&gl* zZ(VR?)5_F~sUMwuOFpWfT785YJQH2O`_f3P9*|*5H{lV?f%NKQsl3$91?ePtl}ct( zuH)&|$J4HiHWt%dOWoZ}g?#npyr~~xD zRMS9e+cB-bD}LH_H1%B9Z!b-{uHSZa^TY+oBXQiTJ#y8F_iZ~0Vcsz#bfihDDBj^g zaD?rHk4b>Re;57d0fh={_0g-2?0hxldO3CC2S2^L>E$0}raZgz)gQcp&>)q18vsA} zPY`}C^7_Dg>SXe0>W7HU$v1uwIFdTJ;O)%|7rd>`vm(Ea&X}xw@jX9Gy-mVDC72_m zACdgQud=gY8vcZ0(~D`>;j4cAzST#mehfY-XG3y+)c1AKSy6w5?L@c^Mq~WN#!vna z|J)X;+V%0X*tP9{wte+}e?4B` zSdZ%hyh}Z#y5mv2lRN?AcQd?DM`j*mHwIMVTYR)b3k1k!Am&(c-N_Gi!Z=m zGI;}kp(tdpWFAj@K<)72l|1qG1iKpPj#iH^8TWK}F_>PDbj;%kL^g%+vKV{;L8RO0 z+bk5f6-eVneIESvzK34#K(tNF;|st-I{yOm1mf{Xl+OQ#dFb^QJn>`Z2}N5`hj2{z zgrqyqgTMb5f@||UF-d00Jc1C2pToHtkA!?3G4@WLw-qnpWE1o8k^zbLuKYG%m|i7_ zZFYVe-b@l#@jbRNvtRkN-6iBLPh$*<3qZKnZjyNzQKacMA z)4G|1KBWNt05N0J_=&d@|AWKu??HY(Tgn=6d}uHFhQ&CMTmMfHFD-%NT&>wkLwdH*f#eWbFdyz}L6yZ%1c_1jio9py2`{F5i~2+SGmXNvETA1$6^^v|K+ zCVwWrlk8~v$DDuOf9D+091~mljXAzH`TzChZ;s8`IJd>e5#O_cVb)>CGw0?R{dk;AFEAv{r2=&^^L|qR{dk;9}VB0Z`W^6+xgElJy!jr@Q-%= zWzQe=`s!TcjTX;yZO^&JJMaJ4#(!J9?Dc!J^q+hExBF+0hdtjh-jA{V+x3kZ&sLsx zeGdC<{G;KGmhaGi-hb;g&L2D8HvQ+z-?siY#`2qz*xyG~mYfqnRd(JhU-Cuk9T-$T5@$CNE)92crbB$;B*O4CM z^{8EbwE5`y^{-Lx>D#W)M~mlZ`Hpzo^xMmCH2%@>M$32TKiBo`y#MFdKSrtpW2}$% z{`-$z|IZk2B;P6Ty#Ll1*y3d`-!m?ca~*G+KaT$YeE!J&oVyCY1K179GNM4@pJ|VAXIl~)#NLJgN(YRR4(vM?_Mm3~FG?uJtX%9zR^;iH|)~MJ@ zvT&H1AZt`5@6P)xHCmBWSlY}-G$OE0P&#om%IhNFT7M=$|8PKqh!`QQ+tiRb@fY6o*Gh)An5tnmq+K(2oP7p-I$TI8ZjF@6&Knep|E7jZwIXaDKe!Pp0 z*q+uYx;>IIA+MYmESqLe52(T(OEynv_9#g47{Y7&reXE#SauGh_MS18oY#E`5Tf?- z_tkk50lc%$)OzVNcETPd=Vl_#Q5eGVrMppEf9q5W7 zCDD7vg{~TUWQ!|wpa&i3^i2V2p+w(1F7zD^bo$JL)%Pt9^g0Ln{&Au2aiEtu&}nXC zv1k4k2YTYQv`VBp@#rYlRhaBjIhLl7v z85jD?h8~H&-htlhKtJt>yfQBI0}k}%4)jMH=r23aE60WYkOO_81D)1xtmXcI1HEos z=#M$j>B_`{Rr8Po{g4CQJudVY9q6|?(4TUkpKzeB9~XMB1HHw8{+I*(r~^GVF7&4y z=xzu4eh2zt2YTnY&>wN2*E!JlI?(q!(0j&(e$;^;bD;M-(8~-dZG0aW`e8$l>}`S$ z^cNlI(+w$!zJFZkdksAjy~csQ+kxKWhmBIF3?3Qz@uBZ_pwBfli?XPpl@p6S^TTJ!_f7};bO$=!3$dctIM4^i75UFN z&=m)IrvtskK$q(hJ0T^m@!Px``I-!bKA2NJzYc3qca4;v}srLr$FNt=FzWplRPz;)(y`i<3pbe94ZaZcEW17u6I{WB&=Dm#$ z^ka6cng%;%KD7cKF&({RT;pwxLlf+eN+~*s(_S2k zq+hU5e2|DKe3qiw^UvTZ!A)Cfv;3$~kA>$|@RWjq+N02%!J)_E*PEbda{$3ZA3;?h zfdiyG-nbe{s8y|c#6V^h$kaw*A+;D3ZM=Y#{J2xUZjXq3HTzHS84+8Jly=1-^t6J~ zP^j^U(y3-W7O6N=bfb~Jv?rv}pe(eM&I7~)KLiiHQ{|^8HA*by^$d6@Hin)bf%3XV zPX-i4_QnG1O;8S6c!ogPEAPh%9;#pDrV;t~<8&5?lrMP7Kq;{B)PbU11qhy%pk(w? zhA3M{dMr{QP*e+L3n+1mg`WrIaSP?EpePopM?j$s&PWTNloYT@%D)pukGv?;dF;0k zF?fCl9_?yEcrgJ{kLk4zk1NCj_->c>?1A992t4a_3x(!u+54c&(EL8|xD6hEpbgfr z3oPh!!Lt{;A+-c4?S28(Onk!1L(hwu%l&5X7!;5E)K|Z5Gv&2`rxt1{1j1$&6dE%H zMYfdck6UcM3p_DP34W1d)tPGD1E7d2DMf1jJL1vfjB|Dfl&@en{Q4nM+A0nFqR)`g zr^oabM^eW~4>m(8AMtzMh+!Pxe~VVLH5QvMM1G;}sRxd=`-C3yTllVkhw1GC%}X%g zS73<}tm3_dfqpfldZZ4ahgz+;JD~Z#43t-~8&YeLs)UqLGee*-y@$j(+YCz95}$iO zaq|)+n*(xenyyQEHbuipTq8aTJ_BnXQZWnG--1#HisAb|f>N#b>QtZUBXVM$pS(cC z=<{%1YoBlkQp@$84GP)6fO3y+GmrBotu_fflpuHvPiZW`N9tIerIddQo;!5S9{Dl7 zy_VWb5BO+vT39GPfX6y@J&@ub(sNrpoe8M`v>WlM0;Lg2R2Uu+#y$*+-$GdqO0TXN zjBE`k+Nzo;_W&rQ!03CofbxzJ4KeQ2+@;q{Jj02rcgFr3QieUBhm^KXD>Ux~Wxd6o zzXOHrm16-72C@e*^gIWiZ|dlTa}<=B7CnQY9M*Y64WG|0HY}8%`Rmjpk7tkghXUPt zG(3@Lh`vJjON$p1QF`VPUwo>tQkNooE&)%2ZjbD3=H0HN6VDv*EYx|3QVGiE^%C@m zj~cR=Me`!?lz^AwCwmfn(6Ge9vlKkUWt3MdDAXclRK+J3*?x;u3_O19Mx5_Nst!`3 zEqnal_(o4#+ta#*$YNh69*Y;>0Od4ts1!vhKLv`mS|}*r2jyKdA6{Taq(;MG;~5VR z@9Qer6_$v-2B~AZW{+GodL1f-&HSs9c--ZLQKsU9kZirh(-Y7$*W$$#On$X{H^Rah zpq$XLaKf$wg>a0ht^%b5x+J=(V-*yV@_>gnLn;PJB`Aa=us#9Ge%)r`?gk|YB}NRt z07{Ea5%sx-okr0ZSbM=U0BJ+&A3&kap!9)KqU)i&f0aCjg}(-+M)!+&^6_jhZ3fSK zLHUy2z9_F8lp9UOIS6nSb?jucZVd z;CV>rAw8c0MO#l0dOi;dZAN?^14X;~6FlDq+UTMq$LCukNl!rgu&YOW=`~(g12saA z2Tv?FtLSHwF-#xukfb@iCKPG1kuY_NdJ-GL8#p}k_yfMB5j7rV@@Z`}9yPQnz&uN$ z$%tAX4lfTy0txU%J>pqg4}aDc__07}UhRBO9BiSEfFOHuJ%=ngIV2+?M-Nnc!yZ4s z*0Yerz5BQn+f!^{kE?V%wmxrPS)g7J$9dvMVmJn zRy|34VKx@2*N;&g1 z?SY^KFxjW&8OT(K!ggmK=EqJV9*XDvTEr(F!IPaFJ=;di{?I0Wh})3FDMoXDh!?hA zWF86{^Ta}10%1?W=M4uua0Z{kje9*Yuj&hW@R?fJ6peUd@XO;_wR%O%(k7S3-RxT3 zu+p>2wS46g&+?_sEf_vM-bA7ilaWB&lR)^v9_qjcf%Px)!X7-ZhVBy;jMzP%hL)A9 zbm?{ubH6;%HuAx@(c_DDbfDG2l^|3Haz>0IVMx$rPJB~)V<{*7_7-8`RHzqIx(&AaD%~O`arWLCO@9+k?}|42vbcHWk+9Lmgm}+i4hflAmPI|kt2=K zjzCiYoeHljXc07aZ*1MFiRd3}_IU6oFy@jUz8<+&H1P0ffeQvuDU3)qH*b5u(~9=U-OxT+P0hf^8xqQ-J<<_~@QP#DCYl>HRvvjVEgPl5Y4P@>Ta$q? zwH4E+zj@8(txwE!5jgXwys6CmKBHn;8WB`4F}G7wY;lR%?(OhKwp7dR0iBfbeQ#0d z8X$%etr6?}1Uh5U!WyGd)MI-vs4K8yo7nY8-DvuXd0iEHsT}pQ4PQOiLL@GjWW3}x zGD=7LRJc*w=`-Bo(g{UtDl>CqHw8fNxa17qguoSv_HM0Q=2&XA(i77)X&*s1*JpFg ziP6%B%DN+GGtvV2nR7IvNE`ZS8q#PHPwO9`!_wBweU#BVp;s~mpN|EWT4EV3r5W%p zqD9?S;bd(!qHfr;l0FpA+kmYCo8z7%SbR}bN{%*6h_b*iiKc4mcl9oi4|d@w?=;%N z-u47<%T$GF{y`CwUzwM9wt(~R!^NoControl - 10, 66 + 10, 64 117, 17 @@ -181,7 +181,7 @@ NoControl - 10, 43 + 10, 42 125, 17 @@ -211,7 +211,7 @@ NoControl - 10, 89 + 10, 86 108, 17 @@ -268,7 +268,7 @@ 12, 10 - 536, 115 + 536, 112 18 @@ -455,41 +455,45 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAAB1TeXN0 - ZW0uV2luZG93cy5Gb3Jtcy5UcmVlTm9kZREAAAAEVGV4dAtUb29sVGlwVGV4dAROYW1lCUlzQ2hlY2tl + ZW0uV2luZG93cy5Gb3Jtcy5UcmVlTm9kZRIAAAAEVGV4dAtUb29sVGlwVGV4dAROYW1lCUlzQ2hlY2tl ZApJbWFnZUluZGV4CEltYWdlS2V5ElNlbGVjdGVkSW1hZ2VJbmRleBBTZWxlY3RlZEltYWdlS2V5CkNo aWxkQ291bnQJY2hpbGRyZW4wCWNoaWxkcmVuMQljaGlsZHJlbjIJY2hpbGRyZW4zCWNoaWxkcmVuNAlj - aGlsZHJlbjUJY2hpbGRyZW42CFVzZXJEYXRhAQEBAAABAAEABAQEBAQEBAEBCAgIHVN5c3RlbS5XaW5k - b3dzLkZvcm1zLlRyZWVOb2RlAgAAAB1TeXN0ZW0uV2luZG93cy5Gb3Jtcy5UcmVlTm9kZQIAAAAdU3lz - dGVtLldpbmRvd3MuRm9ybXMuVHJlZU5vZGUCAAAAHVN5c3RlbS5XaW5kb3dzLkZvcm1zLlRyZWVOb2Rl - AgAAAB1TeXN0ZW0uV2luZG93cy5Gb3Jtcy5UcmVlTm9kZQIAAAAdU3lzdGVtLldpbmRvd3MuRm9ybXMu - VHJlZU5vZGUCAAAAHVN5c3RlbS5XaW5kb3dzLkZvcm1zLlRyZWVOb2RlAgAAAAIAAAAGAwAAABBkZWZh - dWx0X3NldHRpbmdzBgQAAAAABgUAAAAFTm9kZTEA/////wkEAAAA/////wkEAAAABwAAAAkHAAAACQgA - AAAJCQAAAAkKAAAACQsAAAAJDAAAAAkNAAAABg4AAAAQZGVmYXVsdF9zZXR0aW5ncwUHAAAAHVN5c3Rl - bS5XaW5kb3dzLkZvcm1zLlRyZWVOb2RlCQAAAARUZXh0C1Rvb2xUaXBUZXh0BE5hbWUJSXNDaGVja2Vk - CkltYWdlSW5kZXgISW1hZ2VLZXkSU2VsZWN0ZWRJbWFnZUluZGV4EFNlbGVjdGVkSW1hZ2VLZXkKQ2hp - bGRDb3VudAEBAQAAAQABAAEICAgCAAAABg8AAAADbmVzCQQAAAAGEQAAAAdOb2RlTkVTAP////8JBAAA - AP////8JBAAAAAAAAAAFCAAAAB1TeXN0ZW0uV2luZG93cy5Gb3Jtcy5UcmVlTm9kZQkAAAAEVGV4dAtU - b29sVGlwVGV4dAROYW1lCUlzQ2hlY2tlZApJbWFnZUluZGV4CEltYWdlS2V5ElNlbGVjdGVkSW1hZ2VJ - bmRleBBTZWxlY3RlZEltYWdlS2V5CkNoaWxkQ291bnQBAQEAAAEAAQABCAgIAgAAAAYTAAAAA242NAkE - AAAABhUAAAAHTm9kZU42NAD/////CQQAAAD/////CQQAAAAAAAAABQkAAAAdU3lzdGVtLldpbmRvd3Mu + aGlsZHJlbjUJY2hpbGRyZW42CWNoaWxkcmVuNwhVc2VyRGF0YQEBAQAAAQABAAQEBAQEBAQEAQEICAgd + U3lzdGVtLldpbmRvd3MuRm9ybXMuVHJlZU5vZGUCAAAAHVN5c3RlbS5XaW5kb3dzLkZvcm1zLlRyZWVO + b2RlAgAAAB1TeXN0ZW0uV2luZG93cy5Gb3Jtcy5UcmVlTm9kZQIAAAAdU3lzdGVtLldpbmRvd3MuRm9y + bXMuVHJlZU5vZGUCAAAAHVN5c3RlbS5XaW5kb3dzLkZvcm1zLlRyZWVOb2RlAgAAAB1TeXN0ZW0uV2lu + ZG93cy5Gb3Jtcy5UcmVlTm9kZQIAAAAdU3lzdGVtLldpbmRvd3MuRm9ybXMuVHJlZU5vZGUCAAAAHVN5 + c3RlbS5XaW5kb3dzLkZvcm1zLlRyZWVOb2RlAgAAAAIAAAAGAwAAABBkZWZhdWx0X3NldHRpbmdzBgQA + AAAABgUAAAAFTm9kZTEA/////wkEAAAA/////wkEAAAACAAAAAkHAAAACQgAAAAJCQAAAAkKAAAACQsA + AAAJDAAAAAkNAAAACQ4AAAAGDwAAABBkZWZhdWx0X3NldHRpbmdzBQcAAAAdU3lzdGVtLldpbmRvd3Mu Rm9ybXMuVHJlZU5vZGUJAAAABFRleHQLVG9vbFRpcFRleHQETmFtZQlJc0NoZWNrZWQKSW1hZ2VJbmRl eAhJbWFnZUtleRJTZWxlY3RlZEltYWdlSW5kZXgQU2VsZWN0ZWRJbWFnZUtleQpDaGlsZENvdW50AQEB - AAABAAEAAQgICAIAAAAGFwAAAARzZWdhCQQAAAAGGQAAAAhOb2RlU0VHQQD/////CQQAAAD/////CQQA - AAAAAAAABQoAAAAdU3lzdGVtLldpbmRvd3MuRm9ybXMuVHJlZU5vZGUJAAAABFRleHQLVG9vbFRpcFRl - eHQETmFtZQlJc0NoZWNrZWQKSW1hZ2VJbmRleAhJbWFnZUtleRJTZWxlY3RlZEltYWdlSW5kZXgQU2Vs - ZWN0ZWRJbWFnZUtleQpDaGlsZENvdW50AQEBAAABAAEAAQgICAIAAAAGGwAAAANwY2UJBAAAAAYdAAAA - B05vZGVQQ0UA/////wkEAAAA/////wkEAAAAAAAAAAULAAAAHVN5c3RlbS5XaW5kb3dzLkZvcm1zLlRy + AAABAAEAAQgICAIAAAAGEAAAAANuZXMJBAAAAAYSAAAAB05vZGVORVMA/////wkEAAAA/////wkEAAAA + AAAAAAUIAAAAHVN5c3RlbS5XaW5kb3dzLkZvcm1zLlRyZWVOb2RlCQAAAARUZXh0C1Rvb2xUaXBUZXh0 + BE5hbWUJSXNDaGVja2VkCkltYWdlSW5kZXgISW1hZ2VLZXkSU2VsZWN0ZWRJbWFnZUluZGV4EFNlbGVj + dGVkSW1hZ2VLZXkKQ2hpbGRDb3VudAEBAQAAAQABAAEICAgCAAAABhQAAAAEc25lcwkEAAAABhYAAAAI + Tm9kZVNORVMA/////wkEAAAA/////wkEAAAAAAAAAAUJAAAAHVN5c3RlbS5XaW5kb3dzLkZvcm1zLlRy ZWVOb2RlCQAAAARUZXh0C1Rvb2xUaXBUZXh0BE5hbWUJSXNDaGVja2VkCkltYWdlSW5kZXgISW1hZ2VL ZXkSU2VsZWN0ZWRJbWFnZUluZGV4EFNlbGVjdGVkSW1hZ2VLZXkKQ2hpbGRDb3VudAEBAQAAAQABAAEI - CAgCAAAABh8AAAADbmVvCQQAAAAGIQAAAAdOb2RlTkVPAP////8JBAAAAP////8JBAAAAAAAAAAFDAAA + CAgCAAAABhgAAAADbjY0CQQAAAAGGgAAAAdOb2RlTjY0AP////8JBAAAAP////8JBAAAAAAAAAAFCgAA AB1TeXN0ZW0uV2luZG93cy5Gb3Jtcy5UcmVlTm9kZQkAAAAEVGV4dAtUb29sVGlwVGV4dAROYW1lCUlz Q2hlY2tlZApJbWFnZUluZGV4CEltYWdlS2V5ElNlbGVjdGVkSW1hZ2VJbmRleBBTZWxlY3RlZEltYWdl - S2V5CkNoaWxkQ291bnQBAQEAAAEAAQABCAgIAgAAAAYjAAAABWZsYXNoCQQAAAAGJQAAAAlOb2RlRmxh - c2gA/////wkEAAAA/////wkEAAAAAAAAAAUNAAAAHVN5c3RlbS5XaW5kb3dzLkZvcm1zLlRyZWVOb2Rl - CQAAAARUZXh0C1Rvb2xUaXBUZXh0BE5hbWUJSXNDaGVja2VkCkltYWdlSW5kZXgISW1hZ2VLZXkSU2Vs - ZWN0ZWRJbWFnZUluZGV4EFNlbGVjdGVkSW1hZ2VLZXkKQ2hpbGRDb3VudAEBAQAAAQABAAEICAgCAAAA - BicAAAAKZm9yd2FyZGVycwkEAAAABikAAAAOTm9kZUZvcndhcmRlcnMA/////wkEAAAA/////wkEAAAA - AAAAAAs= + S2V5CkNoaWxkQ291bnQBAQEAAAEAAQABCAgIAgAAAAYcAAAABHNlZ2EJBAAAAAYeAAAACE5vZGVTRUdB + AP////8JBAAAAP////8JBAAAAAAAAAAFCwAAAB1TeXN0ZW0uV2luZG93cy5Gb3Jtcy5UcmVlTm9kZQkA + AAAEVGV4dAtUb29sVGlwVGV4dAROYW1lCUlzQ2hlY2tlZApJbWFnZUluZGV4CEltYWdlS2V5ElNlbGVj + dGVkSW1hZ2VJbmRleBBTZWxlY3RlZEltYWdlS2V5CkNoaWxkQ291bnQBAQEAAAEAAQABCAgIAgAAAAYg + AAAAA3BjZQkEAAAABiIAAAAHTm9kZVBDRQD/////CQQAAAD/////CQQAAAAAAAAABQwAAAAdU3lzdGVt + LldpbmRvd3MuRm9ybXMuVHJlZU5vZGUJAAAABFRleHQLVG9vbFRpcFRleHQETmFtZQlJc0NoZWNrZWQK + SW1hZ2VJbmRleAhJbWFnZUtleRJTZWxlY3RlZEltYWdlSW5kZXgQU2VsZWN0ZWRJbWFnZUtleQpDaGls + ZENvdW50AQEBAAABAAEAAQgICAIAAAAGJAAAAANuZW8JBAAAAAYmAAAAB05vZGVORU8A/////wkEAAAA + /////wkEAAAAAAAAAAUNAAAAHVN5c3RlbS5XaW5kb3dzLkZvcm1zLlRyZWVOb2RlCQAAAARUZXh0C1Rv + b2xUaXBUZXh0BE5hbWUJSXNDaGVja2VkCkltYWdlSW5kZXgISW1hZ2VLZXkSU2VsZWN0ZWRJbWFnZUlu + ZGV4EFNlbGVjdGVkSW1hZ2VLZXkKQ2hpbGRDb3VudAEBAQAAAQABAAEICAgCAAAABigAAAAFZmxhc2gJ + BAAAAAYqAAAACU5vZGVGbGFzaAD/////CQQAAAD/////CQQAAAAAAAAABQ4AAAAdU3lzdGVtLldpbmRv + d3MuRm9ybXMuVHJlZU5vZGUJAAAABFRleHQLVG9vbFRpcFRleHQETmFtZQlJc0NoZWNrZWQKSW1hZ2VJ + bmRleAhJbWFnZUtleRJTZWxlY3RlZEltYWdlSW5kZXgQU2VsZWN0ZWRJbWFnZUtleQpDaGlsZENvdW50 + AQEBAAABAAEAAQgICAIAAAAGLAAAAApmb3J3YXJkZXJzCQQAAAAGLgAAAA5Ob2RlRm9yd2FyZGVycwD/ + ////CQQAAAD/////CQQAAAAAAAAACw== @@ -537,6 +541,9 @@ TopLeft + + NoControl + 12, 312 @@ -730,10 +737,10 @@ $this - 12 + 10 - 12, 131 + 12, 128 536, 50 @@ -775,7 +782,7 @@ $this - 5 + 3 SD @@ -922,7 +929,7 @@ $this - 3 + 12 True @@ -1018,7 +1025,7 @@ $this - 4 + 13 10, 18 @@ -1084,7 +1091,7 @@ $this - 8 + 6 10, 18 @@ -1345,7 +1352,7 @@ $this - 6 + 4 True @@ -1738,7 +1745,7 @@ $this - 7 + 5 True @@ -2098,7 +2105,7 @@ $this - 11 + 9 10, 18 @@ -2299,7 +2306,7 @@ $this - 9 + 7 NoControl @@ -2464,7 +2471,7 @@ $this - 10 + 8 True @@ -3109,6 +3116,249 @@ $this + 11 + + + True + + + NoControl + + + 10, 20 + + + 115, 17 + + + 18 + + + save_data_enable + + + TopLeft + + + vc_snes_patch_nosave + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + vc_snes_options + + + 0 + + + True + + + NoControl + + + 10, 130 + + + 113, 17 + + + 17 + + + patch_widescreen + + + TopLeft + + + vc_snes_patch_widescreen + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + vc_snes_options + + + 1 + + + True + + + NoControl + + + 10, 86 + + + 81, 17 + + + 16 + + + patch_nocc + + + TopLeft + + + vc_snes_patch_nocc + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + vc_snes_options + + + 2 + + + True + + + NoControl + + + 10, 64 + + + 92, 17 + + + 15 + + + patch_nodark + + + TopLeft + + + vc_snes_patch_nodark + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + vc_snes_options + + + 3 + + + True + + + NoControl + + + 10, 108 + + + 111, 17 + + + 14 + + + patch_nosuspend + + + TopLeft + + + vc_snes_patch_nosuspend + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + vc_snes_options + + + 4 + + + True + + + NoControl + + + 10, 42 + + + 93, 17 + + + 13 + + + patch_volume + + + TopLeft + + + vc_snes_patch_volume + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + vc_snes_options + + + 5 + + + 12, 10 + + + 530, 155 + + + 40 + + + vc_options + + + vc_snes_options + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + vc_snes + + + 0 + + + 194, 0 + + + 560, 410 + + + 22 + + + vc_snes + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + 2 diff --git a/FriishProduce/Strings/en-GB.json b/FriishProduce/Strings/en-GB.json index 4d95c074db3af4b600252ebf3bab10b8ba2ff292..7e200f3216ad9266c303ab3eea3025991ee5c375 100644 GIT binary patch delta 30 icmZ3-{D*0RpP(~CB0~v7E|AP)a08JOOCu+~IsyQOSP7;8 delta 80 zcmeyvw2pa#pL#SyBtt$!DMJy10+1|bNCmR;7!nzBfh+}v3@|^HA$DSXq%@_uC;#RRXEfU!%r{pE0K^>%@&Et; delta 34 qcmez1_`z{Q3@@YE@_uCjaIQpZtrLYjX_W6d?fODhylz diff --git a/FriishProduce/Strings/ko.json b/FriishProduce/Strings/ko.json index ba1f8a5f..19a7033f 100644 --- a/FriishProduce/Strings/ko.json +++ b/FriishProduce/Strings/ko.json @@ -107,18 +107,18 @@ "e_001": "이미지를 생성하지 못했습니다.\n이는 GDI+ 문제 때문일 수 있습니다.", "e_002": "WAD 내의 콘텐츠를 교체하지 못했습니다.", "e_003": "제공된 롬이 너무 큽니다 (크기 제한: {0} {1}).", - "e_004": "다음 콘텐츠 옵션을 수정하지 못했음:\n{0}\nWAD로 내보내기는 의도한 대로 계속됩니다.", - "e_005": "필요한 응용 프로그램 ({0})을 resources\\tools 하위 디렉터리에서 찾을 수 없습니다.", - "e_006": "WAD 또는 ZIP을 만들지 못했습니다.", - "e_007": "패치를 적용하지 못했습니다. 패치 파일과 대상 롬이 일치하지 않거나 롬의 체크섬이 잘못되었습니다.", - "e_008": "소스 WAD를 다운로드하지 못했습니다.", - "e_009": "수동 파일을 교체하지 못했습니다.\nWAD로 내보내기는 의도한 대로 계속됩니다.", - "e_010": "원래 경로에서 \"{0}\" 파일을 찾을 수 없습니다. 삭제되었거나 이동되었을 수 있습니다.", - "e_011": "원래 경로에서 \"{0}\" 폴더를 찾을 수 없습니다. 삭제되었거나 이동되었을 수 있습니다.", - "e_012": "주입 가능한 롬 진입점을 찾을 수 없습니다. 이는 이 WAD에 사용된 주입 방법이 아직 지원되지 않기 때문일 수 있습니다.", - "e_013": "이 콘솔에 필요한 바이오스 파일을 찾을 수 없습니다.\n응용 프로그램 환경 설정에서 이 파일을 설정하세요.", - "e_014": "Failed to create savedata TPL.", - "e_015": "No Virtual Console manual was found in the provided WAD." + "e_005": "다음 콘텐츠 옵션을 수정하지 못했음:\n{0}\nWAD로 내보내기는 의도한 대로 계속됩니다.", + "e_006": "필요한 응용 프로그램 ({0})을 resources\\tools 하위 디렉터리에서 찾을 수 없습니다.", + "e_007": "WAD 또는 ZIP을 만들지 못했습니다.", + "e_008": "패치를 적용하지 못했습니다. 패치 파일과 대상 롬이 일치하지 않거나 롬의 체크섬이 잘못되었습니다.", + "e_009": "소스 WAD를 다운로드하지 못했습니다.", + "e_010": "수동 파일을 교체하지 못했습니다.\nWAD로 내보내기는 의도한 대로 계속됩니다.", + "e_011": "원래 경로에서 \"{0}\" 파일을 찾을 수 없습니다. 삭제되었거나 이동되었을 수 있습니다.", + "e_012": "원래 경로에서 \"{0}\" 폴더를 찾을 수 없습니다. 삭제되었거나 이동되었을 수 있습니다.", + "e_013": "주입 가능한 롬 진입점을 찾을 수 없습니다. 이는 이 WAD에 사용된 주입 방법이 아직 지원되지 않기 때문일 수 있습니다.", + "e_014": "이 콘솔에 필요한 바이오스 파일을 찾을 수 없습니다.\n응용 프로그램 환경 설정에서 이 파일을 설정하세요.", + "e_015": "Failed to create savedata TPL.", + "e_016": "No Virtual Console manual was found in the provided WAD." } }, diff --git a/FriishProduce/Subforms/ContentOptions.Designer.cs b/FriishProduce/Subforms/ContentOptions.Designer.cs index 729f2fef..aa577199 100644 --- a/FriishProduce/Subforms/ContentOptions.Designer.cs +++ b/FriishProduce/Subforms/ContentOptions.Designer.cs @@ -104,7 +104,7 @@ private void InitializeComponent() this.ControlBox = false; this.Controls.Add(this.controller_box); this.Controls.Add(this.bottomPanel2); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; this.KeyPreview = true; this.MaximizeBox = false; this.MinimizeBox = false; diff --git a/FriishProduce/Subforms/ContentOptions.resx b/FriishProduce/Subforms/ContentOptions.resx index 0f75279e..65070ba4 100644 --- a/FriishProduce/Subforms/ContentOptions.resx +++ b/FriishProduce/Subforms/ContentOptions.resx @@ -117,66 +117,18 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - b_cancel - - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - bottomPanel1 - - - 0 - - - b_ok - - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - bottomPanel1 - - - 1 - - - Bottom - - - - 0, 1 - - - 554, 41 - - - - 12 - - - bottomPanel1 - - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - bottomPanel2 - - - 0 - NoControl + 442, 8 100, 24 + 4 @@ -222,6 +174,30 @@ 1 + + Bottom + + + 0, 1 + + + 554, 41 + + + 12 + + + bottomPanel1 + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + bottomPanel2 + + + 0 + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m @@ -295,6 +271,21 @@ 1 + + True + + + 10, 0 + + + 71, 17 + + + 39 + + + controller + controller_cb @@ -331,33 +322,6 @@ 0 - - True - - - 10, 0 - - - 71, 17 - - - 39 - - - controller - - - controller_cb - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - controller_box - - - 0 - True diff --git a/FriishProduce/Subforms/ContentOptions/Options_Flash.cs b/FriishProduce/Subforms/ContentOptions/Options_Flash.cs index a6b85604..26b4088b 100644 --- a/FriishProduce/Subforms/ContentOptions/Options_Flash.cs +++ b/FriishProduce/Subforms/ContentOptions/Options_Flash.cs @@ -123,7 +123,7 @@ protected override void ResetOptions() } else { - if (!string.IsNullOrEmpty(Options["midi"])) MessageBox.Show(string.Format(Program.Lang.Msg(10, true), Path.GetFileName(Options["midi"]))); + if (!string.IsNullOrEmpty(Options["midi"])) MessageBox.Show(string.Format(Program.Lang.Msg(11, true), Path.GetFileName(Options["midi"]))); midi.Checked = false; } // ******* @@ -183,12 +183,12 @@ private void checkBoxChanged(object sender, EventArgs e) if (!midi.Checked) DLSPath = null; } } - #endregion private void changeBackgroundColor(object sender, EventArgs e) { BGColor.ShowDialog(); background_color_img.BackColor = BGColor.Color; } + #endregion } } diff --git a/FriishProduce/Subforms/ContentOptions/Options_Forwarder.cs b/FriishProduce/Subforms/ContentOptions/Options_Forwarder.cs index 977afaa6..73bdb470 100644 --- a/FriishProduce/Subforms/ContentOptions/Options_Forwarder.cs +++ b/FriishProduce/Subforms/ContentOptions/Options_Forwarder.cs @@ -50,7 +50,7 @@ protected override void ResetOptions() { MessageBox.Show ( - string.Format(string.Format(Program.Lang.Msg(10, true), Path.GetFileName(bios))), + string.Format(string.Format(Program.Lang.Msg(11, true), Path.GetFileName(bios))), MessageBox.Buttons.Ok, MessageBox.Icons.Information ); @@ -90,7 +90,7 @@ private void BIOSChanged(object sender, EventArgs e) { if (toggleSwitch1.Checked && string.IsNullOrWhiteSpace(bios)) { - MessageBox.Show(Program.Lang.Msg(13, true), MessageBox.Buttons.Ok, MessageBox.Icons.Error, false); + MessageBox.Show(Program.Lang.Msg(14, true), MessageBox.Buttons.Ok, MessageBox.Icons.Error, false); toggleSwitch1.Checked = false; } diff --git a/FriishProduce/Subforms/ContentOptions/Options_RPGM.cs b/FriishProduce/Subforms/ContentOptions/Options_RPGM.cs index 74cc0eb9..d3da1c6c 100644 --- a/FriishProduce/Subforms/ContentOptions/Options_RPGM.cs +++ b/FriishProduce/Subforms/ContentOptions/Options_RPGM.cs @@ -39,7 +39,7 @@ protected override void ResetOptions() if (!valid && !string.IsNullOrEmpty(Options["rtp_folder"])) { - MessageBox.Show(string.Format(Program.Lang.Msg(11, true), Options["rtp_folder"])); + MessageBox.Show(string.Format(Program.Lang.Msg(12, true), Options["rtp_folder"])); Options["rtp_folder"] = null; } diff --git a/FriishProduce/Subforms/ContentOptions/Options_VC_NEO.cs b/FriishProduce/Subforms/ContentOptions/Options_VC_NEO.cs index 2d95e46e..0ab87d46 100644 --- a/FriishProduce/Subforms/ContentOptions/Options_VC_NEO.cs +++ b/FriishProduce/Subforms/ContentOptions/Options_VC_NEO.cs @@ -39,7 +39,7 @@ protected override void ResetOptions() { MessageBox.Show ( - string.Format(Program.Lang.Msg(10, true), Path.GetFileName(FriishProduce.Options.BIOSFILES.Default.neogeo)), + string.Format(Program.Lang.Msg(11, true), Path.GetFileName(FriishProduce.Options.BIOSFILES.Default.neogeo)), MessageBox.Buttons.Ok, MessageBox.Icons.Information ); @@ -102,7 +102,7 @@ private void BIOSChanged(object sender, EventArgs e) { if (biosName == "custom" && string.IsNullOrWhiteSpace(FriishProduce.Options.BIOSFILES.Default.neogeo)) { - MessageBox.Show(Program.Lang.Msg(13, true), MessageBox.Buttons.Ok, MessageBox.Icons.Error, false); + MessageBox.Show(Program.Lang.Msg(14, true), MessageBox.Buttons.Ok, MessageBox.Icons.Error, false); // Set list selection back to previous one if (biosIndex == 0) Options["BIOS"] = VC_NEO.Default.bios; diff --git a/FriishProduce/Subforms/ContentOptions/Options_VC_PCE.Designer.cs b/FriishProduce/Subforms/ContentOptions/Options_VC_PCE.Designer.cs index 0b488c46..91ac657d 100644 --- a/FriishProduce/Subforms/ContentOptions/Options_VC_PCE.Designer.cs +++ b/FriishProduce/Subforms/ContentOptions/Options_VC_PCE.Designer.cs @@ -34,14 +34,14 @@ private void InitializeComponent() this.europe = new System.Windows.Forms.Label(); this.europe_switch = new JCS.ToggleSwitch(); this.vc_options = new System.Windows.Forms.GroupBox(); - this.checkBox4 = new System.Windows.Forms.CheckBox(); + this.sgenable = new System.Windows.Forms.CheckBox(); + this.backupram = new System.Windows.Forms.CheckBox(); this.display = new System.Windows.Forms.GroupBox(); this.y_offset = new System.Windows.Forms.Label(); this.y_offset_toggle = new System.Windows.Forms.NumericUpDown(); this.sprline = new System.Windows.Forms.CheckBox(); this.raster = new System.Windows.Forms.CheckBox(); this.hide_overscan = new System.Windows.Forms.CheckBox(); - this.sgenable = new System.Windows.Forms.CheckBox(); this.bottomPanel1.SuspendLayout(); this.controller_box.SuspendLayout(); this.vc_options.SuspendLayout(); @@ -90,7 +90,7 @@ private void InitializeComponent() // vc_options // this.vc_options.Controls.Add(this.sgenable); - this.vc_options.Controls.Add(this.checkBox4); + this.vc_options.Controls.Add(this.backupram); this.vc_options.Controls.Add(this.europe_switch); this.vc_options.Controls.Add(this.europe); this.vc_options.Controls.Add(this.padbutton); @@ -103,16 +103,27 @@ private void InitializeComponent() this.vc_options.Tag = "vc_options"; this.vc_options.Text = "vc_options"; // - // checkBox4 + // sgenable + // + this.sgenable.AutoSize = true; + this.sgenable.Location = new System.Drawing.Point(10, 63); + this.sgenable.Name = "sgenable"; + this.sgenable.Size = new System.Drawing.Size(69, 17); + this.sgenable.TabIndex = 24; + this.sgenable.Tag = "sgenable"; + this.sgenable.Text = "sgenable"; + this.sgenable.UseVisualStyleBackColor = true; + // + // backupram // - this.checkBox4.AutoSize = true; - this.checkBox4.Location = new System.Drawing.Point(10, 84); - this.checkBox4.Name = "checkBox4"; - this.checkBox4.Size = new System.Drawing.Size(115, 17); - this.checkBox4.TabIndex = 5; - this.checkBox4.Tag = "save_data_enable"; - this.checkBox4.Text = "save_data_enable"; - this.checkBox4.UseVisualStyleBackColor = true; + this.backupram.AutoSize = true; + this.backupram.Location = new System.Drawing.Point(10, 84); + this.backupram.Name = "backupram"; + this.backupram.Size = new System.Drawing.Size(115, 17); + this.backupram.TabIndex = 5; + this.backupram.Tag = "save_data_enable"; + this.backupram.Text = "save_data_enable"; + this.backupram.UseVisualStyleBackColor = true; // // display // @@ -183,17 +194,6 @@ private void InitializeComponent() this.hide_overscan.Text = "hide_overscan"; this.hide_overscan.UseVisualStyleBackColor = true; // - // sgenable - // - this.sgenable.AutoSize = true; - this.sgenable.Location = new System.Drawing.Point(10, 63); - this.sgenable.Name = "sgenable"; - this.sgenable.Size = new System.Drawing.Size(69, 17); - this.sgenable.TabIndex = 24; - this.sgenable.Tag = "sgenable"; - this.sgenable.Text = "sgenable"; - this.sgenable.UseVisualStyleBackColor = true; - // // Options_VC_PCE // this.ClientSize = new System.Drawing.Size(554, 297); @@ -228,7 +228,7 @@ private void InitializeComponent() private System.Windows.Forms.CheckBox sprline; private System.Windows.Forms.Label y_offset; private System.Windows.Forms.NumericUpDown y_offset_toggle; - private System.Windows.Forms.CheckBox checkBox4; + private System.Windows.Forms.CheckBox backupram; private System.Windows.Forms.CheckBox sgenable; } } diff --git a/FriishProduce/Subforms/ContentOptions/Options_VC_PCE.cs b/FriishProduce/Subforms/ContentOptions/Options_VC_PCE.cs index c4e3ff83..7af7ac21 100644 --- a/FriishProduce/Subforms/ContentOptions/Options_VC_PCE.cs +++ b/FriishProduce/Subforms/ContentOptions/Options_VC_PCE.cs @@ -36,7 +36,7 @@ public Options_VC_PCE() { Program.Lang.Control(this); ToggleSwitchText(); - checkBox4.Text = Program.Lang.String("save_data_enable", "projectform"); + backupram.Text = Program.Lang.String("save_data_enable", "projectform"); } } @@ -55,7 +55,7 @@ protected override void ResetOptions() hide_overscan.Checked = Options["HIDEOVERSCAN"] == "1"; raster.Checked = Options["RASTER"] == "1"; sprline.Checked = Options["SPRLINE"] == "1"; - checkBox4.Checked = Options["BACKUPRAM"] == "1"; + backupram.Checked = Options["BACKUPRAM"] == "1"; } // ******* } @@ -69,7 +69,7 @@ protected override void SaveOptions() Options["HIDEOVERSCAN"] = hide_overscan.Checked ? "1" : "0"; Options["RASTER"] = raster.Checked ? "1" : "0"; Options["SPRLINE"] = sprline.Checked ? "1" : "0"; - Options["BACKUPRAM"] = checkBox4.Checked ? "1" : "0"; + Options["BACKUPRAM"] = backupram.Checked ? "1" : "0"; Options["NOFPA"] = "1"; Options["PAD5"] = "0"; } diff --git a/FriishProduce/Subforms/ContentOptions/Options_VC_SNES.Designer.cs b/FriishProduce/Subforms/ContentOptions/Options_VC_SNES.Designer.cs new file mode 100644 index 00000000..45e93e60 --- /dev/null +++ b/FriishProduce/Subforms/ContentOptions/Options_VC_SNES.Designer.cs @@ -0,0 +1,171 @@ + +namespace FriishProduce +{ + partial class Options_VC_SNES + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.g1 = new System.Windows.Forms.GroupBox(); + this.patch_nocc = new System.Windows.Forms.CheckBox(); + this.patch_nodark = new System.Windows.Forms.CheckBox(); + this.patch_nosuspend = new System.Windows.Forms.CheckBox(); + this.patch_volume = new System.Windows.Forms.CheckBox(); + this.patch_widescreen = new System.Windows.Forms.CheckBox(); + this.patch_nosave = new System.Windows.Forms.CheckBox(); + this.bottomPanel1.SuspendLayout(); + this.controller_box.SuspendLayout(); + this.g1.SuspendLayout(); + this.SuspendLayout(); + // + // g1 + // + this.g1.Controls.Add(this.patch_nosave); + this.g1.Controls.Add(this.patch_widescreen); + this.g1.Controls.Add(this.patch_nocc); + this.g1.Controls.Add(this.patch_nodark); + this.g1.Controls.Add(this.patch_nosuspend); + this.g1.Controls.Add(this.patch_volume); + this.g1.Location = new System.Drawing.Point(12, 10); + this.g1.Name = "g1"; + this.g1.Size = new System.Drawing.Size(530, 156); + this.g1.TabIndex = 39; + this.g1.TabStop = false; + this.g1.Tag = "vc_options"; + this.g1.Text = "vc_options"; + // + // patch_nocc + // + this.patch_nocc.AutoSize = true; + this.patch_nocc.CheckAlign = System.Drawing.ContentAlignment.TopLeft; + this.patch_nocc.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.patch_nocc.Location = new System.Drawing.Point(9, 85); + this.patch_nocc.Name = "patch_nocc"; + this.patch_nocc.Size = new System.Drawing.Size(81, 17); + this.patch_nocc.TabIndex = 16; + this.patch_nocc.Tag = "patch_nocc"; + this.patch_nocc.Text = "patch_nocc"; + this.patch_nocc.TextAlign = System.Drawing.ContentAlignment.TopLeft; + this.patch_nocc.UseVisualStyleBackColor = true; + // + // patch_nodark + // + this.patch_nodark.AutoSize = true; + this.patch_nodark.CheckAlign = System.Drawing.ContentAlignment.TopLeft; + this.patch_nodark.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.patch_nodark.Location = new System.Drawing.Point(9, 63); + this.patch_nodark.Name = "patch_nodark"; + this.patch_nodark.Size = new System.Drawing.Size(92, 17); + this.patch_nodark.TabIndex = 15; + this.patch_nodark.Tag = "patch_nodark"; + this.patch_nodark.Text = "patch_nodark"; + this.patch_nodark.TextAlign = System.Drawing.ContentAlignment.TopLeft; + this.patch_nodark.UseVisualStyleBackColor = true; + // + // patch_nosuspend + // + this.patch_nosuspend.AutoSize = true; + this.patch_nosuspend.CheckAlign = System.Drawing.ContentAlignment.TopLeft; + this.patch_nosuspend.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.patch_nosuspend.Location = new System.Drawing.Point(9, 107); + this.patch_nosuspend.Name = "patch_nosuspend"; + this.patch_nosuspend.Size = new System.Drawing.Size(111, 17); + this.patch_nosuspend.TabIndex = 14; + this.patch_nosuspend.Tag = "patch_nosuspend"; + this.patch_nosuspend.Text = "patch_nosuspend"; + this.patch_nosuspend.TextAlign = System.Drawing.ContentAlignment.TopLeft; + this.patch_nosuspend.UseVisualStyleBackColor = true; + // + // patch_volume + // + this.patch_volume.AutoSize = true; + this.patch_volume.CheckAlign = System.Drawing.ContentAlignment.TopLeft; + this.patch_volume.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.patch_volume.Location = new System.Drawing.Point(9, 41); + this.patch_volume.Name = "patch_volume"; + this.patch_volume.Size = new System.Drawing.Size(93, 17); + this.patch_volume.TabIndex = 13; + this.patch_volume.Tag = "patch_volume"; + this.patch_volume.Text = "patch_volume"; + this.patch_volume.TextAlign = System.Drawing.ContentAlignment.TopLeft; + this.patch_volume.UseVisualStyleBackColor = true; + // + // patch_widescreen + // + this.patch_widescreen.AutoSize = true; + this.patch_widescreen.CheckAlign = System.Drawing.ContentAlignment.TopLeft; + this.patch_widescreen.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.patch_widescreen.Location = new System.Drawing.Point(9, 129); + this.patch_widescreen.Name = "patch_widescreen"; + this.patch_widescreen.Size = new System.Drawing.Size(113, 17); + this.patch_widescreen.TabIndex = 17; + this.patch_widescreen.Tag = "patch_widescreen"; + this.patch_widescreen.Text = "patch_widescreen"; + this.patch_widescreen.TextAlign = System.Drawing.ContentAlignment.TopLeft; + this.patch_widescreen.UseVisualStyleBackColor = true; + // + // patch_nosave + // + this.patch_nosave.AutoSize = true; + this.patch_nosave.CheckAlign = System.Drawing.ContentAlignment.TopLeft; + this.patch_nosave.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.patch_nosave.Location = new System.Drawing.Point(9, 19); + this.patch_nosave.Name = "patch_nosave"; + this.patch_nosave.Size = new System.Drawing.Size(115, 17); + this.patch_nosave.TabIndex = 18; + this.patch_nosave.Tag = "save_data_enable"; + this.patch_nosave.Text = "save_data_enable"; + this.patch_nosave.TextAlign = System.Drawing.ContentAlignment.TopLeft; + this.patch_nosave.UseVisualStyleBackColor = true; + // + // Options_VC_SNES + // + this.ClientSize = new System.Drawing.Size(554, 221); + this.Controls.Add(this.g1); + this.Name = "Options_VC_SNES"; + this.Tag = "vc_snes"; + this.Controls.SetChildIndex(this.controller_box, 0); + this.Controls.SetChildIndex(this.g1, 0); + this.bottomPanel1.ResumeLayout(false); + this.controller_box.ResumeLayout(false); + this.controller_box.PerformLayout(); + this.g1.ResumeLayout(false); + this.g1.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.GroupBox g1; + private System.Windows.Forms.CheckBox patch_nocc; + private System.Windows.Forms.CheckBox patch_nodark; + private System.Windows.Forms.CheckBox patch_nosuspend; + private System.Windows.Forms.CheckBox patch_volume; + private System.Windows.Forms.CheckBox patch_nosave; + private System.Windows.Forms.CheckBox patch_widescreen; + } +} diff --git a/FriishProduce/Subforms/ContentOptions/Options_VC_SNES.cs b/FriishProduce/Subforms/ContentOptions/Options_VC_SNES.cs new file mode 100644 index 00000000..915b2c47 --- /dev/null +++ b/FriishProduce/Subforms/ContentOptions/Options_VC_SNES.cs @@ -0,0 +1,60 @@ +using FriishProduce.Options; +using System; +using System.Collections.Generic; + +namespace FriishProduce +{ + public partial class Options_VC_SNES : ContentOptions + { + public Options_VC_SNES() : base() + { + InitializeComponent(); + + Options = new Dictionary + { + { "patch_volume", VC_SNES.Default.patch_volume }, + { "patch_nodark", VC_SNES.Default.patch_nodark }, + { "patch_nocc", VC_SNES.Default.patch_nocc }, + { "patch_nosuspend", VC_SNES.Default.patch_nosuspend }, + { "patch_nosave", VC_SNES.Default.patch_nosave }, + { "patch_widescreen", VC_SNES.Default.patch_widescreen } + }; + + // Cosmetic + // ******* + if (!DesignMode) + { + Program.Lang.Control(this); + patch_nosave.Text = Program.Lang.String("save_data_enable", "projectform"); + } + } + + // --------------------------------------------------------------------------------------------------------------- + + protected override void ResetOptions() + { + // Form control + // ******* + if (Options != null) + { + patch_volume.Checked = bool.Parse(Options["patch_volume"]); + patch_nodark.Checked = bool.Parse(Options["patch_nodark"]); + patch_nocc.Checked = bool.Parse(Options["patch_nocc"]); + patch_nosuspend.Checked = bool.Parse(Options["patch_nosuspend"]); + patch_nosave.Checked = !bool.Parse(Options["patch_nosave"]); + patch_widescreen.Checked = bool.Parse(Options["patch_widescreen"]); + } + // ******* + } + + protected override void SaveOptions() + { + Options["patch_volume"] = patch_volume.Checked.ToString(); + Options["patch_nodark"] = patch_nodark.Checked.ToString(); + Options["patch_nocc"] = patch_nocc.Checked.ToString(); + Options["patch_nosuspend"] = patch_nosuspend.Checked.ToString(); + Options["patch_nosave"] = (!patch_nosave.Checked).ToString(); + Options["patch_widescreen"] = patch_widescreen.Checked.ToString(); + } + } +} diff --git a/FriishProduce/Subforms/ContentOptions/Options_VC_SNES.resx b/FriishProduce/Subforms/ContentOptions/Options_VC_SNES.resx new file mode 100644 index 00000000..1af7de15 --- /dev/null +++ b/FriishProduce/Subforms/ContentOptions/Options_VC_SNES.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/FriishProduce/Subforms/ControllerMapping.Designer.cs b/FriishProduce/Subforms/ControllerMapping.Designer.cs index a5221958..a3f448f9 100644 --- a/FriishProduce/Subforms/ControllerMapping.Designer.cs +++ b/FriishProduce/Subforms/ControllerMapping.Designer.cs @@ -519,7 +519,7 @@ private void InitializeComponent() this.Controls.Add(this.presets_gb); this.Controls.Add(this.bottomPanel2); this.Controls.Add(this.tabControl1); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; this.KeyPreview = true; this.MaximizeBox = false; this.MinimizeBox = false; diff --git a/FriishProduce/Subforms/ControllerMapping.resx b/FriishProduce/Subforms/ControllerMapping.resx index 7ae550be..2ba5c6ee 100644 --- a/FriishProduce/Subforms/ControllerMapping.resx +++ b/FriishProduce/Subforms/ControllerMapping.resx @@ -222,246 +222,6 @@ 1 - - page1 - - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabControl1 - - - 0 - - - page2 - - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabControl1 - - - 1 - - - page3 - - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabControl1 - - - 2 - - - 12, 11 - - - 760, 345 - - - 17 - - - tabControl1 - - - System.Windows.Forms.TabControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 2 - - - vertical_layout - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - page1 - - - 0 - - - WiiRemote_Minus - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - page1 - - - 1 - - - WiiRemote_Plus - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - page1 - - - 2 - - - WiiRemote_B - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - page1 - - - 3 - - - WiiRemote_A - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - page1 - - - 4 - - - WiiRemote_2 - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - page1 - - - 5 - - - WiiRemote_1 - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - page1 - - - 6 - - - WiiRemote_Left - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - page1 - - - 7 - - - WiiRemote_Down - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - page1 - - - 8 - - - WiiRemote_Up - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - page1 - - - 9 - - - WiiRemote_Right - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - page1 - - - 10 - - - pictureBox2 - - - System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - page1 - - - 11 - - - pictureBox3 - - - System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - page1 - - - 12 - - - 4, 22 - - - 3, 3, 3, 3 - - - 752, 319 - - - 0 - - - page1 - - - page1 - - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabControl1 - - - 0 - MiddleRight @@ -786,212 +546,32 @@ 12 - - Classic_Plus + + 4, 22 - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 3, 3, 3, 3 - - page2 + + 752, 319 - + 0 - - Classic_Minus - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - page2 - - - 1 - - - Classic_B - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - page2 - - - 2 - - - Classic_A - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - page2 - - - 3 - - - Classic_Y - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - page2 - - - 4 - - - Classic_X - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - page2 - - - 5 - - - Classic_R - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - page2 - - - 6 - - - Classic_ZR - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - page2 - - - 7 - - - Classic_Down - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - page2 - - - 8 - - - Classic_Right - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - page2 - - - 9 - - - Classic_Left - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - page2 - - - 10 - - - Classic_Up - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - page2 - - - 11 - - - Classic_L - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - page2 - - - 12 - - - Classic_ZL - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - page2 - - - 13 - - - image_cc - - - System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - page2 - - - 14 - - - 4, 22 - - - 3, 3, 3, 3 - - - 752, 319 - - - 1 - - - page2 + + page1 - - page2 + + page1 - + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + tabControl1 - - 1 + + 0 False @@ -1239,305 +819,149 @@ 23, 116 - - 121, 21 - - - 20 - - - Classic_Left - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - page2 - - - 10 - - - False - - - 23, 89 - - - 121, 21 - - - 19 - - - Classic_Up - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - page2 - - - 11 - - - False - - - 23, 52 - - - 121, 21 - - - 18 - - - Classic_L - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - page2 - - - 12 - - - False - - - 23, 27 - - - 121, 21 - - - 17 - - - Classic_ZL - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - page2 - - - 13 - - - NoControl - - - 91, 27 - - - 570, 260 - - - AutoSize - - - 16 - - - image_cc - - - System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - page2 - - - 14 - - - comboBox8 - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - page3 - - - 0 - - - GC_Z - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - page3 - - - 1 - - - GC_R - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - page3 - - - 2 - - - GC_B - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - page3 - - - 3 + + 121, 21 - - GC_A + + 20 - + + Classic_Left + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - page3 + + page2 - - 4 + + 10 - - GC_X + + False - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 23, 89 - - page3 + + 121, 21 - - 5 + + 19 - - GC_Y + + Classic_Up - + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - page3 + + page2 - - 6 + + 11 - - GC_Down + + False - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 23, 52 - - page3 + + 121, 21 - - 7 + + 18 - - GC_Right + + Classic_L - + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - page3 + + page2 - - 8 + + 12 - - GC_Left + + False - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 23, 27 - - page3 + + 121, 21 - - 9 + + 17 - - GC_Up + + Classic_ZL - + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - page3 + + page2 - - 10 + + 13 - - GC_L + + NoControl - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 91, 27 - - page3 + + 570, 260 - - 11 + + AutoSize - - pictureBox1 + + 16 - + + image_cc + + System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - page3 + + page2 - - 12 + + 14 - + 4, 22 - + 3, 3, 3, 3 - + 752, 319 - - 2 + + 1 - - page3 + + page2 - - page3 + + page2 - + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + tabControl1 - - 2 + + 1 False @@ -1854,53 +1278,53 @@ 12 - - presets_list + + 4, 22 - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 3, 3, 3, 3 - - presets_gb + + 752, 319 - - 0 + + 2 - - preset_load + + page3 - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + page3 - - presets_gb + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 1 + + tabControl1 - - 12, 358 + + 2 - - 760, 50 + + 12, 11 - - 5 + + 760, 345 - - presets + + 17 - - presets_gb + + tabControl1 - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + System.Windows.Forms.TabControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + $this - - 0 + + 2 10, 18 @@ -1947,6 +1371,30 @@ 1 + + 12, 358 + + + 760, 50 + + + 5 + + + presets + + + presets_gb + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 0 + True diff --git a/FriishProduce/_classes/Creators/WiiVC/N64.cs b/FriishProduce/_classes/Creators/WiiVC/N64.cs index 846a5863..4d62ccbd 100644 --- a/FriishProduce/_classes/Creators/WiiVC/N64.cs +++ b/FriishProduce/_classes/Creators/WiiVC/N64.cs @@ -250,7 +250,7 @@ protected override void ModifyEmulatorSettings() foreach (var item in failed) failedList += "- " + item + Environment.NewLine; - MessageBox.Show(string.Format(Program.Lang.Msg(4, true), failedList)); + MessageBox.Show(string.Format(Program.Lang.Msg(5, true), failedList)); } } catch (Exception ex) diff --git a/FriishProduce/_classes/Creators/WiiVC/PCE.cs b/FriishProduce/_classes/Creators/WiiVC/PCE.cs index f8c05191..b4e3c46a 100644 --- a/FriishProduce/_classes/Creators/WiiVC/PCE.cs +++ b/FriishProduce/_classes/Creators/WiiVC/PCE.cs @@ -64,8 +64,8 @@ protected override void ReplaceROM() Utils.Run ( - Paths.Tools + "wwcxtool.exe", - Paths.WorkingFolder, + FileDatas.Apps.wwcxtool, + "wwcxtool.exe", "/cr rom_comp rom rom_new" ); diff --git a/FriishProduce/_classes/Creators/WiiVC/SNES.cs b/FriishProduce/_classes/Creators/WiiVC/SNES.cs index e7072df7..3806c1e6 100644 --- a/FriishProduce/_classes/Creators/WiiVC/SNES.cs +++ b/FriishProduce/_classes/Creators/WiiVC/SNES.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using System.IO; +using System.Linq; using System.Text; namespace FriishProduce.Injectors @@ -76,7 +77,7 @@ protected override void ReplaceROM() else { - throw new Exception(Program.Lang.Msg(12, true)); + throw new Exception(Program.Lang.Msg(13, true)); } // Delete temporary files @@ -163,8 +164,42 @@ private void GetID() protected override void ModifyEmulatorSettings() { - // Not exists - return; + string arguments = "--no-check-header-simple"; + + if (bool.Parse(Settings["patch_volume"])) arguments += " --volume"; + if (bool.Parse(Settings["patch_nodark"])) arguments += " --no-dark"; + if (bool.Parse(Settings["patch_nocc"])) arguments += " --no-cc --wiimote-native"; + if (bool.Parse(Settings["patch_nosuspend"])) arguments += " --no-suspend"; + if (bool.Parse(Settings["patch_nosave"])) arguments += " --no-save"; + if (bool.Parse(Settings["patch_widescreen"])) arguments += " --wide"; + + if (CustomManual == null && !UseOrigManual) + { + arguments += " --no-opera"; + try + { + if (ManualContent != null) ManualContent.RemoveFile("emanual.arc"); + MainContent.RemoveFile("emanual.arc"); + } + catch { } + } + + if (arguments != null) + { + File.WriteAllBytes(Paths.WorkingFolder + "01.app", Contents[1]); + + Utils.Run + ( + FileDatas.Apps.sns_boost, + "sns_boost.exe", + "-i 01.app " + arguments + ); + + if (!File.Exists(Paths.WorkingFolder + "01_boosted.app") || File.ReadAllBytes(Paths.WorkingFolder + "01_boosted.app").SequenceEqual(Contents[1])) + MessageBox.Show(Program.Lang.Msg(4, true)); + else + Contents[1] = File.ReadAllBytes(Paths.WorkingFolder + "01_boosted.app"); + } } } -} +} \ No newline at end of file diff --git a/FriishProduce/_classes/Creators/WiiVC/_base.cs b/FriishProduce/_classes/Creators/WiiVC/_base.cs index 26cb06ad..a2ab25d6 100644 --- a/FriishProduce/_classes/Creators/WiiVC/_base.cs +++ b/FriishProduce/_classes/Creators/WiiVC/_base.cs @@ -183,8 +183,8 @@ X LZ77_html.arc (TG16/PCE LZ77) File.WriteAllBytes(Paths.WorkingFolder + "html.arc", target.Data[target.GetNodeIndex(origManual)]); Utils.Run ( - Paths.Tools + "wwcxtool.exe", - Paths.WorkingFolder, + FileDatas.Apps.wwcxtool, + "wwcxtool.exe", "/u html.arc html.dec" ); if (!File.Exists(Paths.WorkingFolder + "html.dec")) throw new Exception(Program.Lang.Msg(2, true)); @@ -193,8 +193,8 @@ X LZ77_html.arc (TG16/PCE LZ77) Utils.Run ( - Paths.Tools + "wwcxtool.exe", - Paths.WorkingFolder, + FileDatas.Apps.wwcxtool, + "wwcxtool.exe", "/cr html.arc html_modified.dec html_modified.arc" ); if (!File.Exists(Paths.WorkingFolder + "html_modified.arc")) throw new Exception(Program.Lang.Msg(2, true)); @@ -227,7 +227,7 @@ X LZ77_html.arc (TG16/PCE LZ77) { CleanManual(); target.ReplaceFile(target.GetNodeIndex(origManual), backup); - MessageBox.Show(Program.Lang.Msg(9, true)); + MessageBox.Show(Program.Lang.Msg(10, true)); } } diff --git a/FriishProduce/_classes/Files/ROM/_base.cs b/FriishProduce/_classes/Files/ROM/_base.cs index 57a28f18..7cb0a220 100644 --- a/FriishProduce/_classes/Files/ROM/_base.cs +++ b/FriishProduce/_classes/Files/ROM/_base.cs @@ -142,7 +142,7 @@ public void Patch(string filePath) if (File.Exists(Paths.WorkingFolder + "rom_p_xdelta")) File.Delete(Paths.WorkingFolder + "rom_p_xdelta"); if (File.Exists(Paths.WorkingFolder + "rom_p_bps")) File.Delete(Paths.WorkingFolder + "rom_p_bps"); - if (Out == null) throw new Exception(Program.Lang.Msg(7, true)); + if (Out == null) throw new Exception(Program.Lang.Msg(8, true)); patched = Out; } diff --git a/FriishProduce/_classes/Helpers/ImageHelper.cs b/FriishProduce/_classes/Helpers/ImageHelper.cs index 78c8c610..3a7a013f 100644 --- a/FriishProduce/_classes/Helpers/ImageHelper.cs +++ b/FriishProduce/_classes/Helpers/ImageHelper.cs @@ -442,7 +442,7 @@ public TPL CreateSaveTPL(byte[] tplBytes) */ TPL tpl; - try { tpl = TPL.Load(tplBytes); } catch { throw new Exception(Program.Lang.Msg(14, true)); } + try { tpl = TPL.Load(tplBytes); } catch { throw new Exception(Program.Lang.Msg(15, true)); } int numTextures = tpl.NumOfTextures; TPL_TextureFormat[] formatsT = new TPL_TextureFormat[numTextures]; diff --git a/FriishProduce/_classes/Utilities.cs b/FriishProduce/_classes/Utilities.cs index 905c5ac6..e1ce42b5 100644 --- a/FriishProduce/_classes/Utilities.cs +++ b/FriishProduce/_classes/Utilities.cs @@ -240,8 +240,8 @@ public static class Utils public static void Run(byte[] app, string appName, string arguments, bool showWindow = false) { string targetPath = Paths.WorkingFolder + Path.GetFileNameWithoutExtension(appName) + ".exe"; + File.WriteAllBytes(targetPath, app); - Run(targetPath, Paths.WorkingFolder, arguments, showWindow); if (File.Exists(targetPath)) File.Delete(targetPath); @@ -255,7 +255,7 @@ public static void Run(string app, string workingFolder, string arguments, bool if (!appPath.EndsWith(".exe")) appPath += ".exe"; - if (!File.Exists(appPath)) throw new Exception(string.Format(Program.Lang.Msg(5, true), app)); + if (!File.Exists(appPath)) throw new Exception(string.Format(Program.Lang.Msg(6, true), app)); using Process p = Process.Start(new ProcessStartInfo { @@ -281,8 +281,8 @@ public static byte[] ExtractContent1(byte[] input) // **************** Run ( - Paths.Tools + "wwcxtool.exe", - Paths.WorkingFolder, + FileDatas.Apps.wwcxtool, + "wwcxtool.exe", "/u content1.app content1.dec" ); if (!File.Exists(Paths.WorkingFolder + "content1.dec")) throw new Exception(Program.Lang.Msg(2, true)); @@ -305,8 +305,8 @@ public static byte[] PackContent1(byte[] input) // **************** Run ( - Paths.Tools + "wwcxtool.exe", - Paths.WorkingFolder, + FileDatas.Apps.wwcxtool, + "wwcxtool.exe", "/cr content1.app content1.dec content1.new" ); if (!File.Exists(Paths.WorkingFolder + "content1.new")) throw new Exception(Program.Lang.Msg(2, true)); diff --git a/README.md b/README.md index 80900152..887e1c8f 100644 --- a/README.md +++ b/README.md @@ -69,7 +69,7 @@ For icons and interface: * **[SCE-PS3 Rodin LATIN](https://github.com/skrptktty/ps3-firmware-beginners-luck/blob/master/PS3_411/update_files/dev_flash/data/font/SCE-PS3-RD-R-LATIN.TTF) font** from [this repo](https://github.com/skrptktty/ps3-firmware-beginners-luck) (Solar Storm License). I would also like to thank the following people: -* **[SuperrSonic](https://github.com/SuperrSonic)** for reverse-engineering much of Wii software and official emulator code, and in particular, his [fork of RetroArch Wii](https://github.com/SuperrSonic/RA-SS). +* **[SuperrSonic](https://github.com/SuperrSonic)** for reverse-engineering much of Wii software and official emulator code, and in particular, his [SNES VC Booster](https://github.com/SuperrSonic/snes-vc-booster) and [fork of RetroArch Wii](https://github.com/SuperrSonic/RA-SS). * **[saulfabreg](https://github.com/saulfabregwiivc)** for archiving several tools and aiding in research & documentation. * **[sr_corsario](https://gbatemp.net/members/sr_corsario.128473/)** for his work in disclosing NEO-GEO ROM injection methods. * **[FIX94](https://github.com/FIX94)** for his particular contributions to (v)Wii and Wii U homebrew and assistance in forking various homebrew apps.