From 97a38ddba56fc1afd7c5e796ee5620065d8362f1 Mon Sep 17 00:00:00 2001 From: adelikat Date: Sat, 22 Oct 2016 09:36:34 -0500 Subject: [PATCH 01/80] versionInfo update on release branch for the 1.11.8 release --- Version/VersionInfo.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Version/VersionInfo.cs b/Version/VersionInfo.cs index 63920f73d6..f77c7007ff 100644 --- a/Version/VersionInfo.cs +++ b/Version/VersionInfo.cs @@ -1,8 +1,8 @@ static class VersionInfo { - public const string MAINVERSION = "1.11.7"; // Use numbers only or the new version notification won't work - public static readonly string RELEASEDATE = "September 1, 2016"; - public static readonly bool DeveloperBuild = true; + public const string MAINVERSION = "1.11.8"; // Use numbers only or the new version notification won't work + public static readonly string RELEASEDATE = "October 22, 2016"; + public static readonly bool DeveloperBuild = false; public static readonly string HomePage = "http://tasvideos.org/BizHawk.html"; public static string GetEmuVersion() From f94aad43eee4278f4e2596b73ab9e47044d5efb8 Mon Sep 17 00:00:00 2001 From: nattthebear Date: Sat, 22 Oct 2016 18:09:28 -0400 Subject: [PATCH 02/80] mgbahawk: savestates --- .../Consoles/Nintendo/GBA/LibmGBA.cs | 2 +- .../Consoles/Nintendo/GBA/MGBAHawk.cs | 12 +++++------- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/LibmGBA.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/LibmGBA.cs index 31613a6b6f..316b395e91 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/LibmGBA.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/LibmGBA.cs @@ -84,7 +84,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBA [DllImport(dll, CallingConvention = cc)] public static extern int BizGetStateMaxSize(IntPtr ctx); [DllImport(dll, CallingConvention = cc)] - public static extern int BizGetState(IntPtr ctx, byte[] dest, int maxsize); + public static extern bool BizGetState(IntPtr ctx, byte[] dest, int size); [DllImport(dll, CallingConvention = cc)] public static extern bool BizPutState(IntPtr ctx, byte[] src, int size); diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/MGBAHawk.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/MGBAHawk.cs index 00a3a7e708..ed48c6fe62 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/MGBAHawk.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/MGBAHawk.cs @@ -396,11 +396,10 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBA public void SaveStateBinary(BinaryWriter writer) { - int size = LibmGBA.BizGetState(_core, _savebuff, _savebuff.Length); - if (size < 0) + if (!LibmGBA.BizGetState(_core, _savebuff, _savebuff.Length)) throw new InvalidOperationException("Core failed to save!"); - writer.Write(size); - writer.Write(_savebuff, 0, size); + writer.Write(_savebuff.Length); + writer.Write(_savebuff, 0, _savebuff.Length); // other variables writer.Write(IsLagFrame); @@ -411,10 +410,9 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBA public void LoadStateBinary(BinaryReader reader) { int length = reader.ReadInt32(); - if (length > _savebuff.Length) + if (length != _savebuff.Length) { - _savebuff = new byte[length]; - _savebuff2 = new byte[length + 13]; + throw new InvalidOperationException("Unexpected state size!"); } reader.Read(_savebuff, 0, length); if (!LibmGBA.BizPutState(_core, _savebuff, length)) From e14259f9ec67c6a94278cccc695bf3db1cb27e81 Mon Sep 17 00:00:00 2001 From: nattthebear Date: Sat, 22 Oct 2016 20:49:42 -0400 Subject: [PATCH 03/80] mgba: savestate redux --- .../Consoles/Nintendo/GBA/LibmGBA.cs | 19 +++++++++++-- .../Consoles/Nintendo/GBA/MGBAHawk.cs | 25 +++++++++--------- output/dll/mgba.dll | Bin 860160 -> 857088 bytes output64/dll/mgba.dll | Bin 808960 -> 807936 bytes 4 files changed, 30 insertions(+), 14 deletions(-) diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/LibmGBA.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/LibmGBA.cs index 316b395e91..1ba422fa19 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/LibmGBA.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/LibmGBA.cs @@ -81,10 +81,25 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBA [DllImport(dll, CallingConvention = cc)] public static extern bool BizPutSaveRam(IntPtr ctx, byte[] src, int size); + /// + /// start a savestate operation + /// + /// + /// private parameter to be passed to BizFinishGetState + /// size of buffer to be allocated for BizFinishGetState + /// if false, operation failed and BizFinishGetState should not be called [DllImport(dll, CallingConvention = cc)] - public static extern int BizGetStateMaxSize(IntPtr ctx); + public static extern bool BizStartGetState(IntPtr ctx, ref IntPtr p, ref int size); + + /// + /// finish a savestate operation. if StartGetState returned true, this must be called else memory leaks + /// + /// returned by BizStartGetState + /// buffer of length size + /// returned by BizStartGetState [DllImport(dll, CallingConvention = cc)] - public static extern bool BizGetState(IntPtr ctx, byte[] dest, int size); + public static extern void BizFinishGetState(IntPtr p, byte[] dest, int size); + [DllImport(dll, CallingConvention = cc)] public static extern bool BizPutState(IntPtr ctx, byte[] src, int size); diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/MGBAHawk.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/MGBAHawk.cs index ed48c6fe62..c1dbd4cec8 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/MGBAHawk.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/MGBAHawk.cs @@ -63,8 +63,6 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBA CoreComm.VsyncDen = 4389; CoreComm.NominalWidth = 240; CoreComm.NominalHeight = 160; - - InitStates(); } catch { @@ -367,14 +365,8 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBA #endregion - private void InitStates() - { - _savebuff = new byte[LibmGBA.BizGetStateMaxSize(_core)]; - _savebuff2 = new byte[_savebuff.Length + 13]; - } - - private byte[] _savebuff; - private byte[] _savebuff2; + private byte[] _savebuff = new byte[0]; + private byte[] _savebuff2 = new byte[13]; public bool BinarySaveStatesPreferred { @@ -396,8 +388,16 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBA public void SaveStateBinary(BinaryWriter writer) { - if (!LibmGBA.BizGetState(_core, _savebuff, _savebuff.Length)) + IntPtr p = IntPtr.Zero; + int size = 0; + if (!LibmGBA.BizStartGetState(_core, ref p, ref size)) throw new InvalidOperationException("Core failed to save!"); + if (size != _savebuff.Length) + { + _savebuff = new byte[size]; + _savebuff2 = new byte[size + 13]; + } + LibmGBA.BizFinishGetState(p, _savebuff, size); writer.Write(_savebuff.Length); writer.Write(_savebuff, 0, _savebuff.Length); @@ -412,7 +412,8 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBA int length = reader.ReadInt32(); if (length != _savebuff.Length) { - throw new InvalidOperationException("Unexpected state size!"); + _savebuff = new byte[length]; + _savebuff2 = new byte[length + 13]; } reader.Read(_savebuff, 0, length); if (!LibmGBA.BizPutState(_core, _savebuff, length)) diff --git a/output/dll/mgba.dll b/output/dll/mgba.dll index a1ff85cba018e3d34026ffa8f85bf6b0ddca3c89..83e1590d1ad0fe49bfbba597a2f61e1ade3466c5 100644 GIT binary patch delta 154864 zcmbq+34Bb~7x3Kk-pe9kf@}y083Z8-K}Zl1u?4ZKHAStd1hKT1gd~`b5FH$CRfXEO zFzRV-vBp-7eJ5(0h$WV`_I&5QH`)^uaUy24o#>#(qT z6)D$QXjui+ganeuzE$ij7(=uI3rYr28o|dNhIcZUR)Oe)r?=UdUa}0%I06V zCN{gl_+g(WeyY(VY$fI4M9-q9&UlkmF6TFwz``;b%~$k1Z?pq%NOoRW-OU&V&gB$a z$R-Vt!a>H~;O$73X^2}BYn(x;EDLS4aSf%&M1?cXcp55~bNG?i$bQWldX6>y3GU2u zq`jj?e@HLt%sY2FXwt5&IyHYs{HkN~jXKf4Qu2=Yv~2BsH!>u}%z~~N8eh*OswUYu zO7!+7#TZkn#$&sdq?ij;QmdhdJKfxK<2enZ_$(jTS2B&7f-*UZzd0PCAto zWsv%eBuYpgL`u7+O+Cr6*RL5vq?#<*I7rfYksfYoqo2sqZ2i&1)|tmFD4(B<%cW{b zmnBC{j>M59OAs#%hk~+mByJ{$=SaB(?V?OHDTiJ94;p;XS+kp`^6iR>iiT&*smkg3 zbt#dNo>)th6R8tjvUbE%$sG7YQN;PpXDPS*M<0rctc9+Ag=4O93<-&ZWv(x=e}>&y@KIcQQIIqQ$4T}zZw-U<^Na1Q+doye&_ z?=v2;3xlaY83p_L5WUaX&_3AReOrkdZWm{)u+KQn-n-JXy{fj4GC8r=xWhgO*6uYv zu=i%EMtg?_o+GjxG=`o!=YmTaz4Z6`^zM=J$luU7E7RE7p@x=f-Qc#1ep4Qas}9dM z&Tt5Eq*741W1ej{?so{FihkVzX1RfiVm;9pOxAjKvI#DoZy>SFRTCF#3rN>|EjDOK%>pEkrx=}DqSeNJ^;<)?)u!+3|4|lB%rGtr zT@Ai7jGQGd63v1tv~4=F{WIm&R{eB|wiaO-|un3>tr7 ztkZf07^fIdwq6b|CL71J*#vDT8!JU@fyI-I$LVozqVbE!Ezo$Pu}<4B;part>b52Z z;sjH_c0(Af7-!tq{yPxH8T)rw4nq@+Z#yKwvv}j@9Vf$-c;o$!-@&!9#*|J|VbIvG zqesK@&rNaBWf|OwGfwTi93tY3Rk|#PRb!01y9|L=V~pNiQ{m^)#?@VyL6yi#oAQP>5a8w*lgo&840;-kzl^K}@6t`bj|>#y>Srd`&qo7{ z9coODpAR>O7+n&&!e)c<(}cRvZMG>rLF))HpO}_^(F7nQ*?4iPFWmXk^mgh3#%38$ zCslzaUl`X-?+XLMj4&eru1z;KnlTxMOgCQ?`cPuO_GOw9x8ksy4pn8ny*I8Eq+IBXsPcuSRw6W#v zlhC7)$!ShSfR;ffAN@W7%0-#-<~O%=ZB$Dq*LH1^xy88}xnc3-v-zNl)tx9led2dkKtEw9XA zO=aV*AJ)OUO2#28Za~#a#@3l{!N=3sa^*bu+QW2eWg~!rZbr7cp?w`UdriJB-ZA(K%OygjjPGHxe;cjp zO=q&Y+d(tIR8x);g=Zh^jAM6?5mM-ReRrtPmY$XO#0tN^w_7!RkHA(MXY5}H0|y(+ zXP<%vgG{%w%P~SeIj|5O4=~O=xC5FFFg86jnQ&VVC9{>Lz{6)m7}MJ*9FK$dy-eed zI|4lKVVZVwF+l%r#)_wh!5=ZEFHT=!P`RtAXYN1&c6TzG&JBQpolND=3jlpPnA|Vc z1E|-|7;(8LT!=D#bNLp7myxC~uf~g%(Zid)!9U#C=2if_ZDpEp>mj%3!^5_$g)y?g zkF_xUdV2*&jlI(qwuTz_-)R6zp{A#IY5*ZC+>ZqJX2!nvYs2FZ)6Dx09Ql>GH_U5d z{M{S?{hOF7<|`Tp-HwF1!NwnN*9I1B`n*8VS?+OH&^9ypp^{T_R^oPI|0~MxU2S^t{^a(h6ES+LphcrLV**eRAd7n-ATS(k-cNEz!7h`v5`>I zQSLwy1b~x04)tVF3-md-l!NtI_oK_ewHNDmLw_f&1!rcktL<0xvdQTnX~-H*^IhjfY}GAE^* zAfNJMvjwQ}Lhk9$`~Y4RuAR|MUc0I`hk2GTbU?`AZG-AmNUSE(W zHfD_k*mNH^gs@+r@E#6t#?oNaJ$&4Z)qu1!SiU)H0kzIxOmnsgrrgC3%~@4wb{DIL zvaxXd4yK2)PhkEXG>5VtQ0We~2xH^m{%On#W9?zuY57eU8_lYD-sW~BCQ^vxz+)sH zDlO=^EuP0X@ABkXEm;j#=JGAY*qz13w&KR#l3%o9&I}fxP#onw?!LGrZwvf z(g|GHn$_^Ref;mtF67mAJen~dI*#XBvzD;&I96=KS~$fKw?5)gv$qp3;15kj59oLt z6WcHf*pK7(Hmo1S9>a1GtTIF%!@3cy7I+=Q?h&k;=kXkSjWA6YY_QYEQIto8(}(HI zrX1WI!ThV-Aga>Ps8)k11au%KrRB%vAVjj2;FE)EB3TN2cNFWjWqI)P5iA?U)`9j2 z%28}K%sGs$+Od6*a|nytv0Je7Am+7a)nURx6gsem-Xjhw-t{#^>-;G8)9DYH@4f*I z^%(t8bH9VwvjeLmY<&Zm+=1!XN?hH6Ez;TH`$Czj~ z6Ab(CTr_J2erK^M45-dB(pud?vH0nV5e$g*&>l zVAwGcA9iPxA#@@R?ZL*wrJwOq4=VkSiTI`mRf^|H?A?7-Bx?>;Y)ugv1?jUVng1F&Q%m}&k$Bg zXi8aL9>RP*pScQ}jI<(c>Qdg5L>;XJHRfUK>@g|JzA`LWhXF%bYjpXHIaIzm@q%H1 z&eM>n^V0k4l(t7hsd+kO_w`UV9a`+h^23qPJy?U6hOuUB6D}Oisx`e)QP31ruo;NRZ87P6ozo+!QIfhA#2OhKVx-Z@6W0&Kdt^}TRM}ljVtDVY<}lA@^{V1h472rU3sR3`Pm)KUk06f*u2M_kzsgdIKC9GHcyamSQVg>xMJ!j} z+2!x0h*dou$myHQ7MEhA)zg(+1pIR(8zjtq0oZ30`&xMM9OOr%SY$0ZFN2Mipkag@ zy@a}y!=yRXCsQ;GgDOicA#e^pS;|71SDT<>X1y>8deR? z#^9bctX+M|F})j0dDBYoW;J86)eOBGH#&a`-9FRp-2M{)1}h(N><0L=0AKZkWMNS<;MD#Q2(1fnbARY9I1<8c0Mr%sJha2dZ3Qpv zI)DQF)FeQ|0OAXJsPes@0q8!E_%`L+@+A`byMe@4J)iUSf$4y?1`*pba|v5>j@>wj zxXPPx?*QVO2H0dUam{;R;Yu0|ErqUx&K?X+;LrQ`YA_rVqNf5LiiP^ZyL)zcxf^_e zai2mrq3f5#_bKPQtMHYL{sJ^KR`997S%bgEg0JxIPAQ2gBr%jr{BDt$Tp}S@ByN|I zm_!nvafv*O#KaN_ut?mpN{oQPLivd#F%oLPyPNpzOQ?$4k+4PZPPAalSg>pq92MLq zSg@KKDzDRMxGwxL&VtRmref=jA?$?&3pV?zitQ8!r-UQ%7HrlP72E%F$Ps=S3)nt^ zY*>9+#SR}!yc<5ZU>9Ffv6JHAHv!`;*jX1j3KiEv4nIKqPMe@4Y-O(blu;TCLYu8Pf_ zM5So^nFU+#Hx-*V84e1~hgq;br&Vmh6ymKr)Pi;SRmHyj0!|1XLoC?$Cpq@K;PI&y zaRQ%Bg_GbDi{rWp)uHSO`SvuBnA~J7JISg=)U?;+ge%)|IpIpksXs&mN-~Wr=GryU zdp)b{?nFFkf9fNGwW;d}&tp-S48X4IS-0T87whA5B3xqaH_*ei(2+kp1D*K8EA|gg z^9g^+AG!pE(=W?m1D;<`ky3yTn{Hr@;gv6r-9SUle88*?6iLyuU;|s)D16-Zcth3p z^h={uP8zp}50(18sq|}T5lIC7_wy9YTm=(74tH*3{^er0VB?;Oc;9hYxRKUu1IEc^ zHnA^RV4e?+tWn_wH`6C+Xv@!&%IZVX=5>Upl51{eZ{A4$$g8#~p8T<*+7dU(({TzB zsgOR;@xo>{unP@YG_L>8fpkE38c4l}`H*D^qVBI;k&-{(7Jr3$?#<&@q}0zbc?&yJ zHNv~p!o;AAd}(L3so7*5-g?bEg{WSD`mJo84<9mn|HF{^8D+?aOzf7$K8LX&XJ@ev z04d?@fY}W!bIg}kuDd8gDaL=Fd zuBeFOA@id!PLXUV!z`4u3WYOUWjYciGj=AP+sW#c-vU6J(fQ@ysCtsZP%ATE=of~; zG7Es)?)aI^T6vj6ZF1(doFDsEl{g)W*)nr$u$J=C%5gfM{36kklr+6>G;z-kOjc_nJ+IFsQ;y0q)D z+v2UOm_$oRoWN)IINE1RIXr+bOb;ocU!*S3LQmxMJ!3!#X|<^b$phMbny}`HyA6$F zSMG=}a7>?s@dsI@B<-B9IdSLNBHiLbC8r&=2*GEAFk58<6lIAclS6zaI#FAvK15*R zEA2j)^p3g7ubWKntlfFMNSA)<({1rYH$>`689N|Dpw|T@##-n}Jiu27^58M$gIbK(DTsLG}{P2wQj>oAJmMq1Ir{J_rTD$K=N`6!Q zRmT(Bo$cYk?_&BVxyf&nnoLIR&TB=w?^B18-Rja_?N^FGV8Q8(bk!qDx=+ErlJu37 zf~Jn=$SR@OCheTIWVC8m>@d<;Vvu$p@t4v^>7-H$trn)ddZ$f&PwkSN6Q-5V(k_Xz zxV8GK#v_}WpJd%=wHRz;AnEH0L8Ja!{AYL79`zP*%O%|*J+xg*HgeRu&SUbpRelhn>>tk8M0+%%HY zc@ycATW}@C+{f`C@!Hw&Iu`TJ9fe89n7i`>vQ2fvu+f-Fn5stzW1ynY+AeSxe+5dF z!yORKy9=H_#(e99^`(EbXT#DKNl(-T z^W_SkrIc+7niN|N#lgo}U3WeKS#Y!*3FeB;MMLn172+z6!|ayvzaPkey(z_H(Aw4*sM!=yig% zhE_u`^8~AG@5_-D-eB?x<_+&ZRgnE!&n9H{>b2F5UR^SYRt!-` zoNsiC1Mk471qZTYN7I{fv~Iv=zD*AjmT=TFll?mo$M@atNJ$sFWntISt5_nF)1A3gf{m1U=u;+dI>jcIfxIa6 zy~H{RT>=5eU1ASvEhFQuML1k8JC}f)`Ij57pyv(Rf4U<5$RWz8Tag{kxXdC4S#qlA zsv5Q{PA#pE#jtvJm?nSt3u+_E&@?lYnm^Mn*kMmq#zO(V`u(huDyz51S_}2`cZNP! zShX4!zHSyi=_9_a#20JB_tsO@muFL4?xc9)TVccZz`{53BYgqHmv@EsvgUq{L$9*v z2J?8Kr3~(j<5vdgdQz;?^NOpEK!5Y?cXk>Ad6&dtpS+JMcf>V@>+(t}sCxy~@!x;s(Aw9SY|dj_ zn6)N*Q)l1}vhbrC>T`w3yMAZo1S?}09mU{`o*!$x$k2R`HL>z_x9|mi#P{0;CWqf= zy}`=3luk-;g_AyF>~oHCHnT#o4<0XRc=y{{z#^=5{f(jPBX-{Y zWr8a7^bxCMe_l<<+Q)2&Ak=$lhlz!3gmB=69o{Tt^`jQPu+!wXxo+(f>Q20+H%u&V z84}DJ;}n(jlAUs0Xp<{%%KJ_*?DmXx3sAa7iBLUTq4t(CTKi&45<2sYqRi{N5T3Kd z4#US-vdB-nuN-3FW05(g82i))+q@Y2jSW_(VsZa-7M^rtv{l`rrzPrgim_XsmteOQ zW0yWI!G2ea?fypzHmw-D^i>Hqz8JgtvVyItSpP{edMRb6-G5xW|GECyfxL3x{Pkg} zIaJ0~FK7?QQN{}|sH0uqiSUv&6?*(`hhZ;S4CMOZ{Ff|SSaZ!z?)C?BWYE1X4)~LG z6P{kN!>m8q4?^cFc5?T>=p{y_;7fL;-ln9yVu_)ArGi&pvuZ-)vVd=1vpWBKeG>78 zMGC7QNb*;2SOq5Jp0~pv-m+hkGK|~e4fRv`Z;QG7xA8pw+s`>C#h+%TjDEDNObH~& zcC*HFvuCb~Zq4eAR71jhJzJ5;&zMe*G@PRgtiSv^W z^m?RlFjgvJqZ%lk>3^?dvuS8w6`U+*6|t|`zZE*kg>=bs0)t>yE_^mk{}Ia8_WRp* z@^*lx3|!h^fdGB}t;Ta)qfas>h)|hjqCte|!j5wyI!Vw-m_a~m35NOKB`(VXKzUb5 zVcC!OMNRVVERm+@iS>Ax>%n(0o}3kt-W1ms#9R^IN>Hb&`L3ub_*$K~^&6KFzg5GG z2cq2C4nAi>wc{dgvxja@yhMCtT6x`0F6#hcOi0NQG1?IZ2{j1V>sy`!g5Z~vO;oG%98d43~iiw?46&{90xf; za|mvV-#S4ZsM8#eI6(@eHo=b05DFuj;T&gJ2s;{M<+9KT=7ivgve1g0<6Mr8ztN#S z8eFN=)TSO~;%{Zi%1oI^)mUS->b?0``-(h9Pmwx=5?keLVzlye?LYWX28r{^H>Y-? zkuEqH2W!C>Dj&d9Erd0lHkLeX^KLa$XNg;eQUq%a!9s|MEBCP|_t=DgX`x#2TcWIpdtX8ftE&xXXirEiO)+$|jZ1 zX8hm+)j+cutCfebNg11HV_^)fjBJ)EnO3VSQu%F7DXqWl2GZY@M2kH|O(>k}tMVW8 zt>Q*l0#R;nem!)m088U|$1n$XB8T#v^V^Zl6c}3;&E#-}?pjR0#MS?e{<5Q0{t~T% z{!Txy(otIxf}ItOi!7L~72!L${3SlB2s&{76f3wwKWntjxBtkQR;!c0RO>FBmn2%} zY5rm@E_Q|PLd_o}`JpR#GQN4wBU*viO^M)ATfv_6MvV*KT8#njkYdfNk&U}c@sk?P z-e@&mbB7sL_V?U|k{ouF&cV|>??;^F0pmh=b5-Q?+S1B`6j8G!FK;C;4!1UE>eZ@A zdpHjzc+;-u30_@${Xol#qv;V~?nDrgJkx`-@{iC~l%*$-sHZtz6|<-7d(x3aYGV$bQ%m>C zPglsBt3X{=BK9u)zlbSyM*YJ62ehvWqlM5MJ2|l`lmqy-7p8i{Fz7iOA9_Q#@|rp1 zv8!j^(CLRO263^EL5}u;MF2ad;_o%!XDGh}zxSng73B|0c+(fELQp2Y_l0_Jcq7); zK^GWabgv1Wg>MKL&VddD?5qio;giX@x)ywZ<1=t|ZMXw3 zQ}8Q4Xb74mxX%yz!OLb?xem01NPoFs9jL;4e!*WZTTS! z(Aggb(E%Tfqi52}`5Mix6lx^-jcJ$7x`UEw?cDrmt+iPvSUl^)aoj}1gGGaX>xEd?1Sn`uS;yl z&7lJD*77p7q^p|WreejW5a`S&O!J~zWIWB9U7JEvYiD}O?H)io9+q`ZWLk+d_sHN> z+}f08iDW$86x{22enj?6=1GbX*Vuw^V; z7|-iP5>^R=K~}co7Ph#LT$q@I--ba4O9nn_6+I1uSQRtZg6ZD^{!lSXX(0=J~xJ0%U$T;@xr*+uyj<(H!$iw0`_CDMOb z*m=Rt*S@f_-=faU$NUvUHZQ6|)+uwrT0)naF%^2Em0qwW9e+%M051g{Y(?h>Q|9_t zeC{xJU5-zapcQ1?#lU3nCaYtT!3}cn;D}@x<7p|PsdN!z?#d67!GRT%RaaX*F!3&y znFV@()fi8!u{`AXyRki0I_{qZ!JdkQYq3O63JCPC%#FT7rxa*a_Z8K_@QjrGJe;M^ z5LQvkFRp~0yc<|T6f!m4^?l1WYBCHN?NOfl|4%JiNuV6BKJ{-?{1vA_JLw)5_iG!~35ineBW9B2DQ<*E4 z^d4<04avnS9quC$l1gL9ZQ4>}E7_<(9- zI1fl|mIc-h__D0Esz-3=+lI7?o6i^1|GDw(Q0X{09Xd3lQfpK1QR(-UvTf75+?H-BwcGeYwn1@N}@!KJeXAi&)-$Y`UUE@=RGXYIJt)Sx4tQFB#aDHabFr=3d5O;uETWl7;) z+Blg=BWy?~N|V;wkXDo?J+L9IEKRDtswA%;OOr;dqE@u$l)QZv#EMpD?~+QJx~@e0 zU1`z?8`9a*q_yjyL+xofa8x>5UiXs`@vsUG%odI#5`-{(AheuI?7DBtF_$+0Oip?Yg?>%ndV}h^qFY zKdBd3hqCXBu|Ddav%)*47~9bXJFXb}qq+uOaVLos_b)~_FqbH9Ta0aQqavUf+mPOL zT8*ewjPrZ6lGcLQ?s434eGfolX+rOYAAeRr|dvE(6D-pXg!s-#-}uwd}0Gpa%9(>UPkCb(QFxgXXuFms3e^w!Pf7F4 z1AL;_%GXFn)H~Cu?EWIHOmp+660ww@NX#5qN?uDW!!wHQ%Hlbzab2mHA{r~mv;rE3 zb!6Ib4cUW}WY7&#y3pr$tnJjlr0G#t^)mM$N{OWnsYa|#uvxJTKTlQ$0b&E?o7o`RS>v@s?n)`FE{rqd zo1?JQN^SNx>V_O>Z>6TYeJoq%SPAuqzfngYgWl9m4jiME&|EWKCT2=jKdvT2jw{KT zmgG`3dE1hFbsUCR>%1}7Y^n2}W{f`p0ans#n@B_@x#RH@aKlR1{saBYNvLF{Csnjn zEf<}H#|(03;DO&Ls@pXK?M~BHRH`K%Hv_w$20HmXU8PT-j;((qdIw87Xga3z^!sTl z{oXXZ!qeL<>2IcC&0I=X%BQ3us$9{3~Hw(m=^sXo}Ea@lyQ zajEHD<(m69uKslP>tjz1vE|ayU>=;m`X90kD`Atb-J;k89+`2>?{Eb6e2xw8z(`2W z$7Oe5ytRRkuo=3;^U?P%q{3onTz{92b>A2v-@Xe$#rqG&(rY~u$)$i3Eyh{iY1{C0eJFJ9Rd52m4|v+~QwHxEGXswm@o z{mI*vdg2@Ei1gt(Yl_#+5Y*n1o2U8DZAwm-9e06pDekc$GHA}DtRm&hfk@N*8GCn#INT_z}5fvzVJnD+<0d7PC; zP>hmEAwdbrT;wi6E()WWAfG85_lls{Bn~|yC~pFX_y;B#Q#r)Xh9wW!IKT@;AF z@Xt=*neZ3>SxSldYyQGP92Z7Vt^$Q~sscq4l$@l1{EdH%0!0(#qd+kP6%ORWJqgNI zpuPlUC=lNu4UFT|Sb}24aA+7oE~7a#k{}?7c&iimhcWe{|{mGr% zz7a!@^1^CJ2*-Wp1wV)im(Asccm_3pz)va)KLefJb#)a^cTmczP5p{*$xc&yS1*e? zUK?ClQyR(hf1!h7!!rzSN+IZ@kz_7F?|1aB%9QrD0PDF453FxP&yp;+?D*d-tJ8pC z6L(>Cxp|x<>VBe!*=+~ry9@1-Y;oBpNi%cvE()kM@mVXXt^J!qL@`(EE>nDQn4B0JG~)JdB*nW~vS z-YM$EKdUxhd5&(r!h+^852;uwo>VOAMasGUmI`JXUmTImfl6vArE*d@j{oC$Pa5)k zg~c9ZYyK))tSaki<&--q|M3Zar4y=n3$%^iRSg0S)V1^}%FesRxVmcD~h3*{UlV)LgK4ncI$S0ITe9nw@;#59A7XHa`e0~gk#UVbA2L8n%K98!9KS9a? z!C8R>DF+0VctJTJIEzOF$^pSyAv}msP6#TYgK|P}Ryg656N0mNyr7&AROWnsLXbZE zqBDT|YYM)V_-VvUn?s7q5kP)a5#QDnyn8BV{*=Rk`i;s-!j1fJpyd=`ib&%@rgGZP zRB}X6Z%_^g8u-aSeM-qGLX-7yAdamigjD250+myPhQ|E-A3qX^Ki3kf)#L{R^(MN% zhQ0;19{MB9ZU>G@v7QfnS4;2;R#*+rlu^3DmBx9>j`nR+9=yxsCkJyZ{SFxT&IpO$%nne)|UiN%;+gNg41wZ*hi=;=XDSoGxo-Y zvUnJ$c*(sw39*d5wxRqnM5X)@%_)D`Pog}Rodu~JdWq?Wv>LEli_RNOTsJ}|t)sxFSwV{|kQ7Iw4d3l~-<}Xyz+@Vy` z7JX&Prwe0`Y>+2=tL#3XaP|TlO0Qm=;w3Nc#|xQnL;0zPN@+ZRQ_MCLx9%$C!a!d9 z`!Z744~sgzekxlEo7WkN@l zGUYSj*9j2rFSolQc$aq=-jt6T?=PI*mZ*X9^#x5T%E#(|VBRAk0@er1H6IIh%)zI@_W1N~eHzI9 zp9}QSh;O0b;jn_^ep=B$Zc`}KU=Dda`F&mkjC&?LaEMg|VikdkP|q)b!XAEQ!)Ns+ z9;Jv!Bg!*A$x$2U2l_?I*oSz`ZR^Y5yc9NxY$is%79xUp@IiqOk>e5MfBM3I97!qrD+LDIH?{va{P^gN&=S6`Ap5@+_A!dn3f>9d(?kDWs7sF> z?}aV@_FV5~ZcRwCobf?eC&2lEa&r(zG6)Qie-y+M0&MAs3HG8Nq;{0QwHI#)0lRpi zMcr+Bm`ClW8HXRu;NIA$R)A>B(0)IzaS{vRVs~8XERJD6%VJs43D^yE(TW)?TF%sp zV}QCq*$QG4wqA~`Aa3V9@2`qtW0oz~cNP8V(kLhF?=B7nyT35oU2N*;_7@$kjc{4& zvBX2H$sS-W57Cz$!j2wdH5l+Gj`k3%L$g0I-9v203grtP;$jBj0dia=@fSyjGb(YKpZ%GUM%B?hurxVe@XD!lBb z!Gc<1U0Co2J!*>!*auu&TTB!V#AvXZpI8S5zQzuIVmgg^m;A*3@bxPUu0w?``wG9Q zBL;+e(SCVOgg^P1j$R}>@iWw{EA_1if3;y-58d_d5p*r(ktZmk=@J7Gj4)&=l`Zs7zw48_#o~vHS zi3sCyK2^R8JWTx|Mby?48`NI=``@!N5{`INav0Bzgl7GY z!|I70SrbL3h5bLsytw_5%ytn4o~^;JF{kDyP-=?n4* zg-D;m+nU||HYWO0lh}=A>Wf}5<0bml7ss)BN|L-U*B9eq#tZaoAa;cAFEFuz*oLDU zh+T!{&qaK_(7rA<3J`lhwdXiDKpe#O;e!CN53IR?;elcUm~;aZ0>$>=d;@<86uYoJ z=olof0k=Zj7DVm!G+qj#90onb_6@}@(BLU9r6*U?kkDP8VBbb!6hvLc6^+Es5tpt| z=>@>za!ncd|tnv3pbMRPzIHMpH2adSAp{^z`*2PJTsJ!NdzWQC@sm z&DC0_2A(v(!HOYb3#y!MAv9ckdjS(e#4z1}3#!}=E*Jbya?LN`dE%rXtb8-EI=hOE znu#rR%g)=#MgNoBm*;U&Gcl|~SP3Uxoz#u54UV4^=>u`)2DOU>>Z5uRmM+KIX2H|a zlU&68vz$+}R1mX!O$}CRE=DCyZ>bh-tx9p=ohm<^!rpel{0(RwYWchxdt2Bx*{~fX zHto)KVmf_K$h~9YG|Qz{_vxbzg3Z-Pj#Tnm;w(Ff#r%~jCvlsSta8L)-fj_k*rJrs zelFBov58l8aaLR;$s!_`7RlivzKV#Y=&E&GB-$d9%0-e&Y|G^`h13eEOfDbi<7p9! zDV@(%F0+SZ4DDP$7P)s%bwSnAA`iHTocWet43Q0e z$wqSH)v!_?VbmkcQA)O6mTaAPC*j45w`9Avv`9HFQc)4{u@T{0C=TW@i%eo^nJQc+ zk7|%S(&gjgIap-EOUu;aGMiMH&L7L1r#XmlX6Is=B&Asda-k_CWN4@RSSHgVb0xHt z3z~D0wu*?~$0B1bB5O*EwB;fd6cK-`ND_HmaY3j>Wl%(6k-udC@nON3tgu=OF0}!*I%d?P;o(J(4YZh1(ik}Fw!pZ zm*+%M1_~mj5h?#BA?4U5k_&TDjshPl*`LJ(loBwvj3naS#nLp4xh(i#^3M)VGm$_BNTa~zHsZ_HpZFKO9sma%l zB=Kaa)Wcgrxug~8Bm5Er3_bj5Pfn!4jW)ii+nf~f_P3G;MZZ(Nk=hAmDShx8DZnc9 zm6s;i*WXHUw0;@>ofOfqWc{*& zd)fI0&9Wb@Uv^zrz64X&FL$qtc5#NGxStgz4&%9;QUJ68)e=kiJ^6BHWYRjcs z+9^jx%e9Aflxq)rESH=>7<5>~ZqY1RxORyAy+R5Rrd$%yJ5w4gxL*?GnVAxO4U)W7 zsw#}wE8>c+lH2DU`As@vLVM*xooprL?9zd!T#}WCYliah%vK&=848O}u9DK_(L;?d zsmcjZ_I9m-h;nPUi-D#OL!wS+n5Of?@Wu8Xq5Q%Men5iH`TQ<%9|Hw2{Oa?fJlh2i zzw_Ibg2`ZNBV2*mxJN`?mQ*7$w$r9~{pFkpF)x}&aSn>v5vth{E`bVCH9JBzJHl%P ziR476W=C+d@vAH;m|DaBEJ;`CIK9fv?`Bz;1!WhY)ehNtowT08xOmftSo^6iob-(BRLZYr%Qczvn&v;f<8{fi#w%I_bOXRQzSK_RNY7#GkD12utmh$vedR?#sQ+yt&oSzJ2w-QqrY6o zO!r^5ePzSEj3~`=^hd|9(H8_groDKJ9)1!jQN2H9+-4DX%2I@TJ>sRYCfoT7WG!V>z zIQ$oBU&ZhZWWYpmvh~8zzztMbx^PrzvVm?T-Yr#TWuL91aiAUlx|tqWy$f>_{#qyE z(mm2@q4qja4&N(PWWt$WMC`p!`Z==K8fszf9B7s1WNHIV$BBeY?QTK z5b>10jkj4lakAw$Ue`4u_Si24I;>w!n)s5}uwUv9F9Y$`ekl=hgRob&R0}pW#Oc{m zD$H$!!U4$-h6Q8&15z&tZ;Yu2q;&9Vf)x)+A@HgRc0MSzf%8pq;X$b@WQE}G2T9Mo zX4vDFtC(1)lNc$zkM{n`y z4bUHyEkNpLEIU0^Y3D!PMM|-s{op zup^1n^$C9ZDgHU(fkdS%#8&*5G3YlRxNoS8Y6qov9W>c% zcOIg#W8fh=_h@0Ir!tDF>=$bYnoMqw*6E}3{tCS);~miqDFb*xvnM81$w}d5=8=SQ z#g%pF<{AtU4u+A=DbvHmiC0plc(F=nXZ}v;H!}~?uY^#du{qQSYmzHOLq8b|BXy*N>H(Wm(kP%t}#X1JOuk6g(6K87V$&mSY*R!`rZ zuXy?pF8s#6QWBrHXtGsit#EbL3b#(S%B=PA5U&jpbeL7o=9@4D+a0w|&&?{lxRMUx2qRN^U^3 zCKsj9a`h~c7;w>|!f-iLDY1f;l?0Ao%h#sd27Go|YK75PrQm;*G)K~Cc2zpu zOT$N?6d&r)E()Y0$VY+v2nr-9?JQk4LU6c(4IwB-fx-xiRiHqEk`*YJpoET_FzcG6 z8#QIN5@+*p(ws;z&78ey{L2aV*Mw7V`8Q+WziUs};<_|MxUpQomDi<=?ylrFZH6$-x(4XcPsUoJ{kZQXfS5f8z z^vr)i0SW&qO3rR6b_f!No?)_cg7`fMhfdSQTH`t7dy2`?6UFxg9Vcjt_$vrKjxyP6 zs`#D>Jq{BzU7S=6uCA6BeJ73;VDw5^{6U-{z{BNo>Pm47K=WmC@M>`bgZbaed22+v zDC8>2i`I+#04gt*dv2oraA^Lu9K2P$CqR$+aut)f9Kd9dcmKr21-(3G7w7SvEqB_@ zfru2j-ahdOgB~;GD%lG240-oKaeig+9VU0W!7(YH$_2N?4+IR73w{?*lfwS;?t8R( z52O3Z;sb8azP@snncGvQw>+$X+taa!tb4+<7#$;v&y-R`%c(CpscuI(@-LD8F3g)K zIq?lI=~of*-S-@*94_}{5=k|0AqR^RF@M=yerYGYE`4lEe(fNg2k>c!zd1>tLhJ-= z=q!zcSd+ZkS=!2=Z#(Q=PU=Vmd1W~%lMw~mx=2}08Ppam+q4+#EJY}U^3oX2xxKv9 zMDUE;LX+juf4=FoTo@-txf+C=D1O~(EjMYruxGP?UFO?|<25&ms*bfoZ+EGBm3iIX z7wPE_N-!EzctoiLIW)YOCv>BiB~n%B*$uyRm%O1-H~h|>0@cK)_{Lp|4HDaLr!P|Z zn=z{-g_IN_nLmknue`=ll<~OvD91*`put0G3tltvtcSD(qPyZOPf6D}oYbgO1z%7X zt2)AH8ZbN32@)$xS#RfX?29gV%~SdeHYH)3O40+tcdvl{m8A&b23-R@zOv*;%aQLY zOG_cS0XD888Iodl)9e4Vr8E^M?A#hZ^T^%0)Q!`2T`Ve!rF2f(9)fc3Y*qibR!&+r zB{d4+7(s>OPWx%i601P3S=WrlyyF+F3d(;;J)OBpj`T zQjW5sUe0_M9XQiu{wk!MYfii3S0M!y>ibAN$)Efvo6u+jc3`h7%t%YH`8E*8YSaSIux;V^N>INOx zqE06TIeM&Rv>6wv^TzPb4s~!2;VNeE_D647Xh;Wgip(+ziqI3=27JU&B%Wp zL;t(^ga0`ZeWXO4wfc`(zZP{;zwfb2Em~_GD33RII=LKvs3rM8OK0?{O)Kt6beCF( z+TbQFXg+W=42l@1DBPrSv9dXiU}T~uJ2OU&yw;?8($IXt{p^Cd$o5)rEgNQsqqudxhi$*Kp)5gLQNp=x0!ZVaIPfp3j? zJ%IN0J~LwZK zA7FTDpOWH33{Pb#sYRC5N+q?_l3JvsmRVA>DMicQ@D$76=$Z8Ok|1eRchuP%+c>wiL({r1BHm|gCuVUMa#n2ahMwImVlLIBx<2D(p9Hle7*-)xESSe<) zv&bL38ninVjI~5&{VP&ywOwT(&rqpLigwoVpx$UBd*F8mNTX5>X(aW5J3DZ9Bk2!# zWWw#i)LXSCT+mp$3I+3UOcUt}^xcM0O{KIN>f2y#s-CZ4)o_cXm&rHI{ zO{K{Yl7+)Vq<8=6T)3HJ=w-2-+)SFrz^eoO1tqC2yy}2;Lupgzd`FB6m1;s(Cp3oA zX3V^3yu+U(J7c3TX)Hu`!Bt^WXYlEY&%-F(dDj&Ox1gcsatzLILGnAgVQveln?pu- zb=bx)T1s`WdrPT0#Pz_5ElE}To_M6C6bHIq*r*kyHN7#VmDCrs9q>jgse!od{D&f0 z8!m~=_upL4+oZL$k;~p`Ej1BWo&7-lxQ%rGUy0U=kaobqAMtvG)Es92h@O#Bckk=H zdE8{^5gwGCc6Q=znk-zochAkBPD!7x;J7AIJ=_r~xxnRBcr=p!9LdsEXxEm;#F4A8 zNn0rl>aN1Xw$i`|YlWFe{+}xB7oL<&MQ5a+O%!FUbGo9N>7k$I2ZR+Rno}H=0 zDC(WZN{FHiI++xqM71Z6c=f?q?RneigIn73w$T?0+fzBSK0%)jylwQugboxOkL-_o zI`FnJ0R1~kEx>0Wj_D{3fp-J(w~oAR48ji`dD|F_;hjh>BNj6{Nih)jDgNGxHW=Fv z!A8;4mUKgLMKo^^!>};gra?sJkm=JpOMm?<)0cFSn!)v9c&3X~4|aWqAG%Q1i-u!( zS28_e1SWK)<{Lc{_jjeN{6?WRMw$-dXq+EIRhc&$Psd1uVb2&0=tiUc(m0ImMy4iy zj@!GDsWD?w=uQ!fXAik|cWJ1%VERoX?-?i23hd4)jXW=rLlsYGg7K~~qU zj_Z^|yixO^ViZ9<#60#ATh_I6FEiGXUS~nBVl&ctBvR8+u-RZ&pmhT!(b4N=iX zEQ^ZVU;(KGjO(DULU5NgA`(S~ARwaX8#e@H3F49pLR3Hmw7<`}Gq+8Xn=~|){-5Xn zh3C_AXU;iu&YUwdcfWC*6r_6eLHIYh_dl#x&#XrqZj5Ti5bT)$+p%*#@Qf-t$b?Ke)V{8E)U}A2zdB)|n@L6QkEN!nX9vYGrhhw+`@M?O-}U@c#=#W$q-cPQ=qlzZLM!f`va>l<&A?(W7F z&sE~Cd6Ux2sR3xgVq=O6edlX5e|=&Xxry+i?NM0!!VS&K|7P=E$+|UnH*v^K{4!nm zxACmWt6A3EU-e3yO&kA16I=Oj-x6v1w>hm4-3g{7@FrLkNHS2Ek?`zmUuV&$g zT*t8vuVoE2?_b02c`d7{`N46lk->l1$tluecdA_W+ z<_&kV0lut(4Ru3g)mG$|cgkt`Uo*5!&tJYGU&UN^3lS zu+=&B8u`~|;|H=k2wNB6_?k{%lv~gyEhcoeo^tchdjSpB!+@{&BFK%}RqZk!}7QI;u1?|*l+yzFxfCjE*5 z4)nBy6g|kZmD@^gr_!SfeR0@VP&tpveqV$p;xl{U)5`|$XA1o81J!wqKb&qgkcvFfE(V+frw~9+oT7yHW z!9UR8g=nxjHAri%Xix+}ivf1ST7zr9Jz9Qnjhou!w+_jt(qVa}7xkUGA$RIj#2?SS z;Qr#&!?fA-;GjGucS?k|HH&oTakr$xkoIa@12D8F--bs!Po7@~L$G2mwUiFVsoynu zrT19YpF=PINX5G{W?na^yfp85=ciaQM)bq|MQVqf+I@n!daC)=G}nK5UU8^c>;A~e z-yfB-gY=vb?Bg5X+6!t%Kg2}&D$(36n?ncD+8wP@?f319KQQ>=rYQN9mGVtXHs`Bl z58!%3+`Dkr%6H+Sba#_3&pF$gCwIC;jJHlDnebr_hVGjr!|pyeKPrk4LhO~zGAa~cWZgPsp7p&$kDj}DoP0c zh2PzTasNq0?=kAN_KPNH?X$UU<AE5_SbBhRUS>>m(E>&IM;tLx?A)pbHrmj&7{bE|Me9d~blTWAD zl%sWLkJEL9-ddrjufprw{>^5$le-o2{%EFir+iB8({xN=?c%QxpaBSwzA((wzG%8! z`=Tj6S4>k+bMp`)yZR?uhWN}w^08M8pYRpy(_S8N-k_uS7~lcyp7^k={PMIG?_0(S z=gV5tg)V)<)BR?iZ_a1`YcJT&k9{AX8!EX%DVv6J z!WUbpVQui1or$<|tNwpzd^INT#ZL4GVTkq(G`I(5)gwGYH;NmD7wgs$UsG z=&g#+wrWA!J_ak5*2CRiv94(ky)gy^DO){)dM|pmrn~}87R7_^iF!T zbUN-Sgz=JMH~B*Il#kigZt}E57gKb1+}-8N>1R*^zhoAFZz|b@wF~*1D2`=T|EwK; z&=P>&^P`UeA2U-Ad06wYzhfl+7ByyGx>Fk*tgwgN%XBH5(?f1&>d68<^E=zm}T^mZ@NhI)Q!wibQg+lDq_UEy&i+LfG-^S&>ByI@5Kl{x}GiR zB^UJ2Mrq^Q^|5=0;hM956!)`jZ@HWK#a(PjZyYWb?_!g?%57LlZ@ImB&&O<0Z+WsA z$C5Ui-0~#p6W)J)B!9n-U1yV9^yLSpxl>enJ$5wKT1@eocU~uw=7rYG2dor0Qk;He ze(&&8>)7iy`BYWc+=NH%sYCl?EDXd?jjcfbrP687;Q;-NbCsfA^K_-vLaAV56}L14 z^`Mx$9HvUo9fg%=dOgSvKp3P+-755d%fg*Cvie%p2ErTG`p5Q>yJS$u=k`U%`^C6* z?`rl*U-{Jbx+g8sF>0uJOhb9AS^HDvQRd6PVlz&aTbVn4&0Yt!DqrJ^__$ewbGGop zlaG|ooYovadPGH9o8}*4Kb$HLA?tlkliQqhON{kxtJsaF$s;l!I zOzqsX>S%eNgT-t6YlqzUbwuresiOPhQ$?h?Im+*F_f`1Nxje9p%4j*_3g~)1Tot6s~GMvsm(& zw7f`eZGFViNM`sxFtuTX`=OtMhUO^BYm3qMW3-L{pD@u z2U@e62gtb2`6*jIKz_#j;70#t1La(kdEzwxO=rt5_V>R$QNG%2o;`#8Gf8gNO2tP5 zO3y72ZxF6O*Dm27jfs&nm`#<#=7pvHmTq|}KE3gXf8JzymdX6obk?U>{>J>?!z^ct z{F!;rH1;jgylHIyRC%TOx~c4rX(-Q_!p?kH9%lZ5vBw{lLuNB$MbqVC^Yu^r|C%m0 zz%OAhW%47k%e?JLcHblN=C&QsAH2b+d2ntI_(F>eLT3jFXW@r!N-^=uR5r6zzRLXg z6YPgl`EqlcCs@B3@+IcIkF)7Bxr?=dJXp2=Q&3`#f5B&A{I^Y3Gh$K{L7-%Rk&eOz9L-|QLBMm{O$n{&pq8Bb#7 z&u+%HJSo47{i6DmJOX6PQ}S)*zGK;-r{#~#j});63})}bhXa^A*mR96#R~&oED$e} zaOF!G6t?(-0h|Kk3NL=QoP9D|zM$PhV@%RnWAU&bKQBC2yHqmfo6_^NoZm9W#L90| znzJF#$R}I=ya&TeM*RCy{LAiPGoO)LJJNrat*``-LWou;@>Xl(3Aqu^%AL#yTx{~Q z^2z4aF80>5@*wl|Q`le6%1-l}dJaUvsAn$G%g$Igh*N z?&U|>60h9by!;Lp^2$Bchws4nm_*OC&@~4BOv}Bf!!E9Po&HMjO(b+Do@vQlUX<##wW5=>QqZbpfm+!ov?5nt+QC?( z=@MRhu)JKGGi9q{mu!vy(!ugf5@5M6$lW?=Rd-jYXy3d-n|fnca*qE$FW^wi{O3rf zz9e_PxHcw-b{!})JY*L8<0ZKq3y6RJ%UCV_j{nJDD@b~$&2p)^Q6YPCvpmLp`YkN5 zMefWl*@AU+&dpT#*gWPIHsf2FnYY|bw2S}Z@8mqX0(r+)c^Js*t=fgizqZPQQ0l); z?q$CG4mNt5e9d6(c`m$*M9*m173~==djooa3-2On4{qV2Dm}GjZ>&ACWzW-|*Ror+ zhqdhZd=l}xSl{zE+%A{MxFkILN7-r$`rr9cezBQ()J6Uq{>CENvg1+h;WO)J{3r(l zR!iRRZI7}6x8cyF!1$)Aw+zO$;9Lg~Bg9q7VmnltTop;w|$`BQ{X=ZB|2=F#;_?A8BK#4) zT8#&g)?wvBu1M?^h|^?V3=VFDP}LHuS|5I{vgU27!Qv2}PWpJ#vZ&j6jYoowXgN^i5gld;Q{8<5n4mn$7X@~+UxAWlYIpGSNliKv23|XOoz?a-;Q4h+Tae8-JzJu309YPR44vh1}Bk2#{w8mhUT- z7OlRzn3%a!?!wwm0-7BNTsP#Xf7g}DT+<2Kd1+B+FuUvzvPXw0O%kND5Ws%5?K^pBr$M8yoyma^>afQBk(S{ogxMzM@rX<$_KO)nK?(o(F1zq%rA>VrA&*_pN646)m16VyUF^@B6?%+y z=q*a`v&4WQ$7#SI9*x6yT?fap!3Pc^L>6EmdhCQJtYFJ;QLZVxdf1B4mZgQbcVopB zI2&#;^ex#O&f0y5hJMSE^`%*$+Bezee};HtvORkS)`+YXKSB$VTYn+RlJ!L`OV7vG z6}YG>L<>pu{Jtypa9Q6khu9mh$t_wP#f4>fnCCuI8kj$HeNGSP#BSUID5khkJwE^xOl@Ih4p>xuzf;7kateqCnjE?IFYm)RH=?KF>*xp>70F7uQwv-6WmZ@Deoircx&4Z6(y zIGH{x#&em@y3DkZ~CUeDXF7uEs^V!F-K3i72 z%w>i^MjJ;gN(SR7e}#_=G}8rct}4)F#d0pN>nGlV+PkVij}`B8fh9jx4(opUu)Z9^ zGy?{mO2fL}ijTQ$ag=O-UAB{uZK}!kU$L3XUL7TiLvfYQm%|%)!@u;UhV3PrSNsg| zaCa`ehUQj*-tcE6i@n!MO|}3xh4nYviudGUNOr+Uw$i$Y?fl|^4Vy}-qq#oT$K#R^ z-bbWUrmLpqc{+8nYk05x3Wj&6AaNKY% zyYw7WQ}*>jxtshlan5bbo<zdf-2+Hp3j7L-oJDe1j~@h0H;GZ6tgEWt{J2ZzGNNIF*AHANTWJ2^HQ zi*ML4WJc!~;6TO>k-_3dLRkws-qXLuS-d8HYWdipE~m?UjpHlrjt0FeOHW2)FVaBD z!tSSFoy1h1+_HV)IymZ3@U^ADsP*S6&VjGfUDf7z59T_opI_pfkM$m8YS+65!8#$I?-knhku!I|>RQ8qe6{Ks~b{pOR~w7b3+;so=Mxf0WgEQB{8rnvHpd3F67 z5A!XNo1VTu#>-8cs(QKUgLp5;^b%e=KM-CH$A;!*F*Y&C6{);=R1E zcbu1TvHZHKm%~=ad-;2hqwLdV6w81fOKk91uGV82NZ@62EtWlxvej=gZcrn~Ucxk`^EHh3(t!D9(M!&quwPC`F5FSm7#_wqu-Hzwn8vHYT{ zm%~=Zd-;3UqwM*2D3+5yS_`jiyOMdxfmD7 zU{x14y%+D|m@dLa=X-h}vB3k04GLtNq0lo3B)K>lJtP;KZR-^8;)P(ovQ$2^*>&&6 z8$Q(OC}Z!**Jp%Q!0?;0E#th-N7*B9%55?hqJ})k{$>SM8<#S36x)7_>Et%gp;+mM z_IxQ_>>@uthwjSv*NkvKNL{^BzVWm? zFma$CEWNe?K9?~?d$xyWKAOxXJxu>nl<9C;Q%3!~{G)8|O8NW@@7oePeU;p!)$N`6 zx!*j9;5f1ew6){N8^=j((kl7XHZ3%PvCF6_(WIj|pzZ$tK^Q(?B{$F5g^fL{b7X3Q;C;*4 zQ$|s2qgwqysA<6)q6e?-8U*jTW%0r5XVpg>mEo-kiM;tcqz$#|5Zs0=@e`l&{H<-jLWg zAL1_brwFBaJ=Tf2*s!ga8{aX#Ep>YAyBJ=1IFuSZk=XiAa0>=>-zT`I1=?Vve5w^nmCL3x z=E&!gJbWs90}h54wWwIZZ_$r@TIA7AW~g@L!}hJ0JI8tWO8Jp09yVPZ@8QxGN7=Rw z@X)(RVy}LL!?W4gzzW~W42oUMsn$gaT-0{eD_dfX{1`5_ZXWMqNz3Y7Z2C`C7pEo*qwKCv;G$)ra8bdAwi`SJ8`^I0=mJA0X(04L4{z9rsXw!6yoZ0G?WZ?l2RCkk z#5Qb{Pp{vfTH;^cWOGl?Y?jdyoQ|K$XLZ~J`7+N$So7PI4S9dOjFY$vv>ksKn`d30Ip(`kegkzg z`};QK9P_xBnSGQp6CXbQY?RW)Jm+n8Xq0ldx!2ol)a}Y8_^z=3cIDEHS$>I?ot)X3 z+3ryAP1+Zk^9}{yq$^7UXc0nQTZ#*@J-Cn4CWO~tmvP-F#X@340c1DqMzWJ(W*yJLmy|vFX z+8JzP6P?C3!1C1itP2|8wDSV(3SFaT*qS1x7e2WDdyz7sQLO(jlpSFYj#b*4t^3%V zu}YW53Ob0juQ81yH#vA7B)%Q1bT+@cmt~Ao@~Jmn$0=v_dMAv>A*SSSg^)P3>Lr3> zMHM=TLvOI?qW!G!5%$BlO_>N`y>*wXRJX{Lp&Y`k(^rcAYuI!(>ljT4kp%+gcr=?ThE z)5mPr1Z9uuM;5$KIV0nb-A7o1`;`#|r$_lme&O`eK{I#m4_F+&!wV7gd-Y@L@yzBt z5wk)d+pqj{guQ-02I0iVS<45M|73jm_YpSn0p&V;9(T(FO1IXNu_w}AmAB)%VeZuJ zxF|xGT#%IJ;hD@jQ5k3+@EvnbR9g0U;rl3~lORaL=>+IgAVlQo(}3aEj~-#KOjO30 zCwf@R2g&FW7=4f%eNgFk>tuY=3f-~73O7q%fj%BNhIpwB;qD$HXq+9h|&3zRIF z8-mtiUHBRE6aDVNo}8op0&PUj3#mawLRT-918in5pjSCNG8r@l+Daf;} zgpHh{%xhF7p-5!CZ;!B+QW%H&g zjWTBcafAg+(ZgL+mGjJ_A7T8EheHc``_O+d)?UfY08;+Du}gwSZO`@0PG=g+TxffajWs=(Tb+~ z8Z;gJO*H-b!&o&jQ65&>WORhRoaxHDZTC%qGj{FnKBb6u75Ii!Cf`}KoXUQfuJku; zW$j9o)@nnzQ+9|x$Aghog7`kTFDf45!blkwHTc{`8|QYV)Sg+|!$JY0K~yD1IFG>% zxbXC^F}Z2xnjSwP*BdqviNegylA(GRh1rAoW=C;uAN zOYQz;X82e19KGy8ol2CMXTGe=-qqi+$4Zq}`7YGKIvgD$g?CMkcR~GCb76vc=wx=$ z45i&EH|~kDE@J%YUbLK5dA|TqQc4Gsw>`5Mw z(V09T%iQtaIQAT2yJx`ba7KOH4)b}(G-?bD>XMCewWRrU!0<+ zU{KqmbTmF7o{7t;*sbnot367dx$T2&hetVwxjjlf*6}f=^~fAjYmR${T#dJlB@0tV z8`pPW-&nCGiEwNxt3D$SeHxdMj1iw6VIMxG^f>?9pW+)mKZQnr-&onG81fk#HXdQa z9#;w)$1dvOd%#)zxH3UI$e=lk5y%e^e*EMJJM#&pfVG(@Kg?bpDxc-|KB3&w#O(Yo z{sU46<}2eeXJfjv9rf`pdDKUzPF<*6Vx~_8PhG4mY!t%h*k+E{hbMNAE@>^JM?brAm*ihK{8^ys_xP_4h9GHqK(}-&Q)F zG)w#OxA5(>+rZv@-bb_8KW{5%wm?1Rf_5g@6+AIYUIhEHca#?RT=AXnD0j3d>hVTl z@!|5KR(P6AE^qu4l_4svWqaSju>cjPZWtTcy|L;|#(5L8d;dlHj~}kDH(@gCyFwY< zXC8fkHnSA(;hb_^e&g~cUR0Ep`0z^N=n4yb5b#$TzVNx?(Q@FOSmXEa!)=P57tKw;iTHvCxAd69V=HM+mN z$!2aJdS4+Aaaqy<{W%%7IHsM{RG|#uJaPpBZ_*?Wd-V@Hi zbuKe~uQih@S=;xN+s@z*kSMLlH8e&p;^X`IFc*Tk;(#3~Xb_&@&<=B~+8l=1yyh>k zRqrX?a^X6@_&I9})Jg|zox%>ir`SzX*ctCDJsVQD3Yyb=FK==PkNmxlXLP2pXWm!x zRLxTh+-Xu=Z!<+kdMdf=fMag(^K||= z@ag0Lbw}ZMcqGc=neng4$3T%R9vr=@4wkH_4U4*!Un8VI@|~ebU^C57Fldt z9E!Y1mfm*lTUywY{uCdQb7%b*0>y{w=g#^MVlityBtHE`-*=whTlZ_{`jA+PM1kLTmD0Hzl}d1Z`?bO` zTjo)C`h16bl_%_8g3qFz)tV|Ed}(I?YY`7Nb(PW;43JKq;P2<*-aWJ8$_lyk$0|I$1Ue+3Tyg_+O}~|%lc{N+gF}ld(Ori%k{U#GCy?)N z(V9vB_^q=%)Q8bRd6Oq$skC(n+caf*{y@b6ugznB29%RqY7!eYUowl==4n00UATEa zOkwA)R!$-ROEO9ea3AX2Oy1Ny(Nc-lq_9$Qu2SA)<2?4#YNb8K)B4p)>k}%CHwjH) zzpYmCWnqoweV}w|9Bq2{=cR*`7a=z610~-E4(0KA%5KGbj~@8M>v3j64x&GYOk=mh zA2$C3rR5o@07F_|k67B49sv*U-|jgTu@-F=H6v;E_XkQd?%PN6{H@j~7twFFj$Dt^ z#(Dmy)+>`tO*bRLxdof)L%M6w^vL3Y(%XBsvaTDHwh+B=gJLa+K!j#%d0TCXY)l7T zxdrev$lab&Le630o`jFaf+|zCVMJkvi4c;vY-R>`8$2A3^SRRZSzn1L}`^}-m}gB-_Mm!8RoKW z{xx4IqfO?1J6NAhI9Um7XQi8zzGn9h|LRT3y(Zc?ZL_jDqoHjFKIB=D@7xmD+%bQL zKX0q@mC5W4vER2TPnq2zR{3>m z^LF^R?^13vljH?I;dI#Mr*!+3KRvc@(5gRdITqB9pFLnA#>5aSSfqZSZ`O_dMk!91`PTjm47*J z)GRjiADpQ`5Z7-VrL8~WY&R;(zr=Kh=c*a^rsaFaJ^Be#<8?CGjrU`%yp!o zEladmK(APPpOB1OU__f~xl?Y#0Ng#fQg!zl@m*#X{ztLoYhvai(;BSf%}ZO;q=WgY zuCTmvr58!!YFT0N0L_WgW+jc^vZHS7AYGo8lDo_CFzGDzY`JodX)4=Vu3TY(jJXuA z5rCHDfjo6~c1IZnT6*5PGy7dL1UqMBk8V$bW8V;+FZq-BTDNx3MMm&6{B=9nTN&9` zw4JIs(q1@{J5{{EsfCPu=$x6|BNsw=#sdF#zp=iab*lfS%EZu}U4bMwp0^eUL^ueu;^;nqfUWr(g+J;cL$F8)i?&A>%6zv+wEybEVSmXZZ0#*#aCo zRLm7}f0S@50#z#SnddLa%^sN9Za*5uZ|hirF5%WV{lJ=rM`_w2e`GTpVlOtzKHD4# zu^$>`+subT{-%wy8=1__cjCu)v;Q(HJ6Wfu**MMI$u4Y~eY-hxCtKDudy={FPS&?s z_JigIJK3AfvRC!A?8K7XmE5A!8(8ZH*uotSl$UR*mkDO2O=+ipZu9JG%oZ!Eca-Hm zbQav&Qm@NSe|D?v3r*(!JK2?a*&WTco$P_U?1konovdr??6Xg>lZlUEVoN%E(?6mOT51*P`bOb**rjawaYtxNV9uDqA}H z`)#vtuv}S1-+?|`p$~eWHT!aXOur^#`;wru1$|ObkDxOIog%1P&qITK+JAzeq2eLKN1Ic%W!(kkL;QJ88zu=P$^>8B7 z;HjeT*@AZ2?Jph$CJuob;K&!#8;8Z%;n#;Mo{nDIpD(WE9Ua1pOpW45^ZK%Hem%KW7hr%l6rim{?|hc3uzXt_6h-zzzhzUr^`*?0^lh0v135B0CopK5=43-41cW=;*>jQNEIP_;@c8Zm-_f>9%B z)T!Jn2@V*+1+P;>5Qyr4^&I^4*q}DN>|D*=0 zX~+c!j1WP6^$___UcQgQ6qWD?}x1_z7~Kz%B3BRYxTLmL&K{Og583bkGDflVE% zzCqMdFEu1{NJ1M%NT8!83{wJyYUP9Ih!LD{EFQ>zY^6;`?i0X)MvRb1zS?>&CKq)^-S0XPr` z6_s}MEF~oAods z6;7vugf?jYTM{6lQj$m=tBy(vKJ?BA9c}%FTj>u@DqZ!ltOAw>SRDZel}|_w4w5&9 zS{OhhMo6HLsG%Cx)BYb07{LRNQ$aFE-DtxI6*{VMSZdgt_%J)sz7c|`C#d>HBI-!u zpcgzNB-4rE;rKs^f$Df6=o-O_l%@hl1DgK{9EhOa2#MrtRG%#WHuS;>Zq%oOWDeQU z20_&~bec@5HhCTx2UPk~1)+w>X$nZ@Oc44;h}TJy|9IiVVM`)F@lj&E!J5pa{3^8X8?cO z;n}NAYOpojYlKxD@B$VAJJHUl?}WVw-~s|Carm%p>40r37G22LK?xGz76`NjU%&%O za781Uqh-E)=;sQ^e~62 zb08>ss8d~DkD6Yu(^$SPXGm3q-gPw(e=POH)awoCaIyp5d!j3N zMFjM+?ubrx`5I81L%{((WQnM5C=pGhr`Nm001w6uR^;Evfy4^6EUyZW67}rguGjKU zMjSCA^2U?{Vle6<48@dd=qS%WDeDa4Mc9|G>tOP ze{2KM(J*Nj6y?97a2&V2 z!V%RaHtd4Bg%b`zt%62GNCPp0EluYW&wsBlS$7j>MH-b zQ`-F33w1yf=l}RPlSck)#lbqye?Uwdx1ipbY2*}T2dL|QT-%&j2~SMf7gG+#lq2zF zwMv80jT>!S9;h@v8`cgK{aiH@obdSe6vG38hTp%}jXe*YKuWG}u%jhGkX z3FA5g9-V>lx`Vp7&;bYP3@VH}%NHeu1^i?P{IjSq8C>8ef=UeE-*pBot1up^GpO9S z4N<5QsKT%d5vU8Ox=|aY;3&oc-~wzwg~u0I|Dz3B;mmP`8e`Cf z2pmtSvBrGZ*&Ih;{f{vyAp*w_$bYP{z<$j0;|0~gkPR#0@q%h($PK5C6Y%PUfiXMk zjt{W@8yWKM!M*@+3FteiRH+X;v}m|cj)p_*^cc91RP~(FkG;L?brKkur>lD1>lGRte0E%EIy4uHxXoH8ZLh z5#wF2^CAK|RDI)kQYRb`Q1y-DN-r36j`iYO?kSWxdsfKUl!O4#Dhv%3up&B8Wdp9x<8 zH{b&-R0ntxATk4Ynr5)3Ut|v(Xn!2CfX9P72|xs}Jcc^J4ftqV$mmo;*#y`%*P92a15}St$P(L3j=g zK99fv66&1^5PSyC1D1C=9Pgk*fDZ@)wiPG?!36NV4cWKnvj@J)zHgxSJqWLaVZio2 zjDlJ~Eud~tZvt4MXMIn*FR0qqLjGg41L|IfHaQL=f!v@QZ(;Q}WnZOw(SUCs9NCLV0xrM<_<#@~ffox0>g>=X*!DvYun0u{ zsNB};jHnNCz60}5FAPG_eSpIus9sJ)r33z^-(>$}QeD09X$-(2;OT)+W8ee6?&gbE zr~rKqBlxnfkl=cW!}g-DkPw;2K|DwH5{+-`zF6Z)^>AGee4-Zc2|?%(JTGuK=J{|A z4k2QOlqDK7@)J%3A>i1FOJm^qzQbX%x^~qp;CZ*hDEQJAczqk{fyk{KzFXh~;J#S{ zj#$9d9Dso40GL!J0ivFfZ~$0fQmoF^krcXK!6<3m@upffLg#O1ffLmK!@OZm4kS8=o60|ARakD zd~(2kEg}O%MsWCs!&$(6^^(Fn=?^hIGG|IO2Ee4A6OX9p8t?%J8X#D}Cq#yE5YGyI z;stiWVeqV!0`T3N5s4eYyKxEIv6TiK3NB2K$bZl{8M}cSaa}KrIbjTNfKRZ1PY7Pe zK|Bfi#M6v{N5+Ux#_XAh9Gp%7+Lia3a;IRIYZ2RJ}&!U5vD z;Xq(6))K%qhr{+f79GH?J`4dsW1M$2PPRN9#IRF2|?5oEYpz!ATo`Ec;o=_ z?34oVyj$T2_!6byUN{5<@8R&c;5eY#3lRZ;m|6rNAi)7*Y7qcWi@+H00UP*)2P?5HY${eNX4 zwe8>uSO?O84{J^(suZFb|K7F>z1N}Y8^=OJIN(SJ&QTbI9N7O?7E<1h+=fAz25i_Z zb0GYch19o$v@1;mZtRvdsQSh+QVZnMfepK5f~s#ED-F`|TpI9vgkyt`7UMoC-#B)9 z2o0nG--(#+C(``aHjbUT@-U6kK(HqcP*wUgFCF{|{ThSv z594V8#_ctQ3dKl|^xz940yTt6if%ZN4(w>7hQI|!C zKc3I8|2l<$Q;Y#gi~;XwT+uGZKy`e($gw2GfF#C%B*s8IANi-NTe^U|2`@Xv7_f^m zU=?GaI(|sxJ|uD<5~&T*aRThb@zods`#K@GTF_HCb=x?tmM?NFi7_CFF(8Q)+hh1@ ztUyTQJ|J@M6}fje6Ao3!7r76K+=oPJLv)-#5vaaAI0bMKSsbR3iL^krWX9K6z@jYgd`*JStJ}T&6qMZu9nE$Z?R^dS4e_X*S z9FT+q)$t`^KoSl}!U0J*P{CId2zb_T!#0run@B;hm*_!t{6DyyJ0j?>g8m}(1z$}h zAPEEBRb0UD^1^spfN^hi zP?HF_vT=Hy4jMwg8mP$xtT3JyVBDG;lo%TKp*Z=F*f&a^Y-44KG&%YH8*B+4n+H0%^ZPEO%O9#}tG!EN1{;$&r{9pd- zH2i7g--nBd=^zOGAU*%fH;$dAW1Ms~yLA1pE*(&7YMk_ZX##DiHST@wIFLsEYsGr|&?T`A^${bn~CC1FA2L1&EBN=>VSps8a`!|2lPm@?Vz@X!);0 z2YCK#!vO~(=>d+7BLByxP|Na^|GIQQJ@$~*s>68xvz8;^678i%k^j^L|0Oxfe_cAD zI_lN|hc^0aF#>GvPuYXmqMx$+{%e1lsg_*}3J-q2pirl@9Sxh{*OW%LWw5PQF=im} zFZ1ylcSQ79r?E~*A_CT3{)<}XY%-l@?YIyxwk<3SS(HfcoT6xqx&pLXrSJG-8BA^2b!KCNLV^hzAZB zA%gl;5ZzYnwi-esMu-*sm&!P^fdfWxBQmLAEaVcw37!!u<&po&LhWzc;eZi>sMkRG zuP7L7Cvz?Uc_Sp#iRG!W6~|KczyTvzim=e60N7F!hF?MhMmQD+tCvlZ{}6g-1P>fb z1rEq1f*U*ys=gs;B8A$ncfuY))i-n+LS-sQ=1>rA7{NdX>pz5R8(y?&1lw5bsHy<@ zuUf&&$sDqx0V5>SNywx8CuAnzMNn@9Cmc%!(e~8ng0_uD97agsOq~9)$;Id24&z1$ zqCORPAeRUM@T!9L|49@QHB{4jFKktTDk?1Fuw!(75R6;0V7D` zF{n~NGG`)a+X&FXm5o~LO`^5}aKH$*@wEP8WuQU z1TX5VgGvIjz&Y!fgj zQ$R9jtk5??w2m5GsO{|tI%Whn923Bkjg^JC?PLzQpl5_+I`KT@KfW@xIy)RNLJ;+- zK(kBvH*z3=MvP!2n@(NA{CnVl5v=!NP^ExmPFbKYfbZN^77Qbitf89nLg*X^@?TlN zfPyorAgN)r;WUC#suSfusR5&gqUvlgZUistW1+@YP&t`#5BNq%rjvwM{rVrP?1lqI zh@d_dNcZD_rUJ-+WdUOWjTj+XrdGE*Rd~W33Bmybut%5VyrBkf#COF3FW?4TfD>>4 zcEAQ$0SgdxE-I9O5Vk`%quwmPJC+Yx6Ab3aRwq9pM9V9mz`alS}gn*!-JL#L$6@~b1 zH+ZhQ5FNlFV2#?=>x^g+2EF6aQy?S|0JYu+hX6aF1^$F4KoHb(KZh4Ia35>hHfN;j zd=wE$0anN)f&)AwB$AJ+$3uci8cvmGLmNi$c+labKzc|ZnISj$Mo6ZUGEYsR_b$j7 zA&B}^kjxo1fJTgvOsN)mIF*6}MzB&^QUUZ6Ib?yp5h~@8|H?w`Z-?NV5nOOggQ{;N zpvjzbLdOWnbYgjD##W?WW|J<@X{ml1J+6+|11*;XxRzz8Y#Af~}%)Wb_g2(1wUs80pS z4EoT95h`{5<@Lh@2aI5O98o8z`bGj;>1q5Rm7rsUWIC}tHMZhd%0cwb2u?Vb3ScYo z{CA)cBOHr^)ypQ!KOC?cz=yh2kj%IjZD^qUR}{!tdebRoeHUyIRDDCI64rxMkj&8t z8a9G~PU8F<2&de;030xa3!SS9rjwAD%K9IxY=Z+v2%tU{M7I|= z|9xo02+>NlxE-H=Hykj6 zv=I+l|DzoEH@73`TpUzXI-gGs$((bb4I?DeAzqdIS0|j54+pFU@S-jW@R4aDkgRbR zWQ>qZCpBJ*`S-yABZN?&3KBY_A_oC9VuXZBwK!n4{72w`5u7lT3X(bMKpRF7I#uU? zvW9BPv%vu)cv0`2gZ%T2#59><4;nE-GMy?s%72xLV=TKMZv>AQj-`O4^WTjIjF67Q zF}lg~??dm5V4I7arhph@RU-|3>s;jDs%=EkV@yF(BT3qlU{_Mr-Eq1 z2nltJ@}E#xA2dm*7Y-P~HV+*&fErtw)HoWj8X<{8N!y!4*ME*dIfC99!SwM`)H$rtz9TPuU{)2G92)wDu71WDzDoEyx2W=Q3UMETZWQ-6klj?R#>wj!xJ~&_mI|fuLh-xo>{@c)q5u%jRS~IG)V~~Fd4j93M`czQW zK+Kpy8}4YRdLfNfFsZ?qb{()64Mi_J)~>PNdtQz;Q}s^5$FTv=5DwRc_znW#ynusv z(o1+CllbQ>(0Gn_U)T6VeGlNfDL`Zbhh-c-*b2Dr<>)hm4M^KLLf_#DQ6RX5gLq^}mRZ;*kTyCkKe9ddPt%@JU!edW<793!jPxf-^XX=lL(31K(#y z1K?>6fKSxA1m8{sYzsN8ucHjOUg02~^I1GG48A3>K;v0nMI>LrXU8J{MMVh|0N*qY z*AyrMj)ypi7kM5zBt9I_crdK-L2dJ37_iR~_%A46n=JsI=Q%_Jd~$$zkpn6*$$`KM^oDwr468U_It>oQ$ayy+I)HBjN9aR10NB@Z z5KnUyd}#q30M9xR^PdE~6EGb%q8INOJK&Bn7CbxN0sHCbDd6bK;qHT30fc&SXgq2M z{J_cu8qfDK=06FzpG7WGh(K^9chGWbyaUcFFvP?+LgHzL!6)kd8q*hue8FK2Vp;?4 zPdSK34iMk1 z&jh3a$4i(EsR8rfKrrIQbV&o!)0nO);Ywq{h!ta?#$c1$=5%77wmFUIkD|J}WBEw~ zkzw$r=D=N-53pp_8C2{YKE{4C4Y>Y?m*#2;6^hOuvF_CoR5EPE&OIGChG97AC z>qlG(NCUQ;aN2roP^&1oC*yE84MbkX(dRJ%`HxnRFb2{=WG}|hu|SOxwiO_RX~3}# zhs(zRHCEX51I9oa2sm-zpE_{YEk-!v!Zb<)fw$m5%Ajj(F~VLqrcpWwK|fWf27)16 z!bk_+g>WE6s78X0b1{h0fV6f&VT!;@)ds?DAK+?o^}wgS69`!!M+kA%z&VRk_amITrg2&w-@TGw z_=&vDsr5}x?Ta|&d==|;0s+@9em%{(lT-T+aeZwYr`7T8|KX0>ujAAUXjs3*RP z9wrh9PU3==%Q&@N%&GN4POIaGwsASfW=`E-aO&O2De+YbaUy}pue_(B-JAx>IQ9I@ zX?1+}-NNvloVrGFYQI&~-;HamiE)K+>mq!r=gLYdT-V!*8k)J z_!uHruorP^yO&dGjHs`M?|z1-IKViKJSFH8L^1!93t)PBxFOdJPTkWvbxaWsRKpLv z%MD7)Iko#Zway2n`JYq(diEtTydBRnPJ@d%^{TJ&jf4V%?-RNA ziQIeo3BzIxRL8fy$>m*daOzpYsp?w9HxdcxeCcu_cZr}EaT+;~)9UzvEkgcFq5qji zG5lVS*CARYMDV`Zob&J#*5I8bx28wO-|Vy*$%jp>iVTo+=?ePMRy zvHwvm-yoT3AcVn`2Cy1$LQc|v9n-1ipalU_A{_)*VKmniDikei(t`ujsisg#(eh<_ z2z-h|%9;UJzj0Q`6I@1Q4VQv$9327+$X zr30fj4eL|`<0P1landz3W>Bvt5^8c?pP+k82Z3n8&|G(@&_4%(22LiaIWW|0a zo+AIojN?>KcjM~P0X04($JHTR|2d8kh`<)vtE9+()r#X>=67SGJvzP)sFk5OzJ`Te z+z^V($-n1F=p9_Ft^(x0YQ=Fbt5v)?&cRQR<4rxw@b2$2%zv>FM?-I7HB15iimNC|;C&Xi z;h*(?SekPO5XFm6Tf>k29vcEX7|0^Ui4aUTX?-JqUk z*uU!W9FxrKzMSSKdQZa}*gyzy0&aG@FQ-Ej_vv^;v>&Pf8{h_lY@RP?i0WC2s<$dZ zWxY<{j;17Q0lY#^=TW`BO;j&OQ`*+cBx8ANaYL;kz0%9>dn2c_8d|fo@VT{13+Di| zZ3HiPFDBu?62*HxYMa`+L%rl5W3AvaVZN*a7GSbOmm`M`CT4=A1LIKMH39 zgMjmZ!N3sU65ul6O5keX8sK`s3ET{f1a4o)<}A(mKn-AfE$|Vr5eNd*v9CZk1KWTQ zunYJZ*bVFh{s8_2jsWFA#)nG_WuQKg3p4_n0j+?xKnI{R&>iRvoC=)v;nI$UXJg}B z-~wO>a4B#Fa5Zo}Kn^}}Vn*JH?vs`jN+&KUw19>{9jwo?oI5-I*$PDgDGzMGZUq%^ zf;#-Gm*tE%pXfeq3Eo6lQs@!zu?zhQ^w0yL49Gt7t|`K zBxvYo&JPIc71S-LQ&2mncrQ&K4>0 zIvCN)>XO31Pr{&}lAzundA(aur=Si&^(eW1;Bq!WCD65hEGe8PFbVWp;AcP*{}fPy zg=MeI8Gn-V6knkOa0xj2_#a=HbFb;d;L^g?z^A|_;KQK5X&~og*}rE+P8Smkt* z2ABEpEev0w7jOeEzzH}2J75E>fCUJ=2|f_Qw$~4Nzy&w}J75E>fCZ3%$a2U6ULg1u z?4a(m!@vIHoU#n>4=yXTedzQ1Kg#*qlxN%ID;xy4fT=)ZAoMj_1ZBRDbMjPaE4bT| z!vTIQs?$l4e}>j@io%6n;jA4FVS-!zFMX2Z%V_@O&ZUKK0zn`GboqX1;ZVRI`CpE+ z0mI)Z%&|4c^Yr$dcBZzh{q~&hAeU^{}q7<1d% zBj3aRcDC~SoU1cK2g;|hdArf{sk?IeXMTU6+{IRZkK$vya{6WdaG-o7=av!orvv5F z**z!0$w5Elw9WkaK=}k-oP?t3XEx^tv{-ha{9dlp=#^!^pEdp)^MdfKkAEt7~ zLALLgoSyajq95<&NYWHuaT+l?@6PF!nR&2$HShY^-8o&%SqItN-8tuHDhJE|$E)k@ zL3RCutoNRr^UWt5WUF@Ov}BL%$+4Lm9%Q+{=A0*QZ6HZSyl@d!LgF0u+^;#=nYjnc zU*oN;`xOhriEQt$7;=r-4SPYFvCoLKWCQo*oMLWykd=O))0GAHkQ-+;0p6C@Lx{DjF6k zDjFIY78Mmou&n6hF)VbEQDIS0kzrENi44n%ieprE4xP-XsAC;6EP??h_xJVQd%&6b zeE$199>3pyJQjPspX9wXkZ4QK7b@74+ zeMn%&yCDiY&;U$5+>f(eQ@AMh%^ygZeo)xLE{+68GxcDwQDGPqK9a=J!C-5I@p1qZ zl>xNmX0QgP_2**Pw}ZhkvrU&(LZOn0#;o>W31HN~V@zz;Q1G0oaH6P4(Yq57gF3`| zs0^6c&Y|EL3iF_F#dsr#4pR8bWIdKa;YZ5w2=>cRaJ*j%yV4mv12>a1c$z$AkS&|d zN3s%UuyS_Fpb$m@;G+1n;pss8pg@BfT?UvgFom5x;S4q_;Ixq)*v(C2PG|6BKRXK< zMmJ<<^M`|HIN*q?EnehT6C!&a3`IK5+Q9}qm{<;AveZGAwt$Ze8h{X*Iw&k z*x6weIK9mDv%5yocp?7GE|#J!J{(2Go6jz}f^}jeDG89tYUVSC3(aA{pzyM! z^{Oj4%WnZ`r4T*AjxFNU?7BaLGZmSG!uKpAk&9q&{TXaeh3J`$>F8q`z{awXvLhF) z-h)xni@@qKnduUG-b}Xc5<16Bb~kR3P@E{{noO3C`v4TX!2a-OA$M_8*w>fP=&}Zd zBUJlh*i0c<9kFCkKuL)g)xLe`zMNpUOKG`72#!%K9Tfh{HXTQ8J}#g(FB=rJY*!*5 z%?5G5dV$+;B8+Cd?N zs%;e8DCedtt{%k5u<1h-*AY2qQREE@ho!U(%Q=Hz9!vJ;)+p8w3JL6FBq{lG*?#NU z1%Gaed_DSi9dBjn3Qj4%Ruqh^T)_oJ<_`*biui&M%}r=dRBB!5A#3v46AEsM0?rSy zRU7yi_J9HPuV68+VEyo9_J+&3OQmVYpFj^rtuzNrv4O=ZxvTv)u-lZ}90fG&?Av#_ zaQ3E>OIBMbz;wgp6o?~GB+G_^Ujf^u;^yFnsxduS z4fjIyDGdeegbF25z`mo~CZ-C2(k7-0;AYI;G$_PEk1mR5D0&K~2cvM}!4#X>?f_1& z*gPm4l48^ufZ~BzBZ`LtA#E8H9+n&p5dF5W6@lDhMd6@OC(-6WZmwS;I|nM==BvWc ze#5r1ok2ib$z{H(0qE3Lc8Sn72^r82mu_SGgU65~n0mfb!133!SPnUN{h)9&JC=xY z-Oh0_e%G@XI4)L|gRb5w+GqF`vC|xqU&ManxOuou=aCEB*^2SoELP8RN(o81SB7TZ zzny)?=l4FvJKJ=zAyIMNgmHvok2S--ATSj z11*(q+d{b+ik*X)W{D&4kx(vz#Q#Y3|I1KL?ROI!ff8=96XA6U+b|KiP{Q_4#FHh1 z!t>Ik?({@%n%^#Vfpm7U z6Hl3jio+aLAuFxbb%m3OVG4D*}cZeim3V0a3q5)Ti#V4{rHz!vuon z%I79?;S-1_z_WfY9;GS-+j|$gG?|MHsDi!yu0i(D%^YTDot#3|29jOQ)`g?~_P}0S z&h8B7W(D!+;FBr_h4-XB?!9m>+LR5}R_X4d5E{j@0PH*%jm1(dcaF!h9B%v`7CwbD zO>c!gXYc<^4OPuEa4X!)c241JsxWlig;nh66fT)n7Vv@cvsF@gZAE#poU0M#d_0o< z0M#0sst)$H2PBR6W^&O%X91G_N;xCe1LZ6(S`~wCsqL>~8x2T@J@7$HGG=j81E{~s zg>VxDRTYH#2dRb53TT177Y=XF;%2IPASCP~hv{M_^XQ?9_YDf|Qs(Qf;-Z4G!1}=| zB(@VQU@w^AZ^-PcIAcINgjxt6U&YM~>Vweqw?W}1sR2z$;3lQTV0i2U6Z>4TxHpLz zNttY+p>zNLbV~xxgD|!f#~!K#smX| z!ZD!$LeZG84??jd#7)RVSgimhh)1|IYJ4@Dn;j%Wx0v-1rCc03;uE>B0O~<&9>Sz4 zk((P-1fd5Ce~~)O1Bu*}fClPIs|VT3iO8BB2t^S7n}~Sw=tG+zOqql7(Lgvq=8_K~ z>44j%5<(FK@tG!iX3V9Fo*8p-(K8PZvVbJ`rbho-1mUK+oHd{TLc$}6!CWqmqe{3B zpc6oJ?S!ze#>3SKpgHJvwV<2rhcNzZAwbO`w`&80Tqe5C4C;d5WP`$MQZpK!%gqaj zM^9Y%C|<&nx#dA+5ZVt93j5fux#+hd=OK4mz``Cw?Mvp2LH!W&9`ja6La*F3rceZ- z-$$VVEVIt-Ll1ADx?OT0B-FcIsv$Tbh|hFFXgcC{;U~yshJU1?1)NwI^=;LLL zgF>*|3j}GyugaIk<%=X29379M)&yDe^0>Uqh$y2|lr@h>`538mU6#dEL8boK<=B`gHt0VK zUKwXvGZ!6@1*SfZ>bZhj&g#v0EjT-c3skCG28C>zqT|&if-}lvUS+ljE=peVDq9!9 zC5Pv{HYivT3A$)->4GVLjUA5QY|7Br2Zc!K+213$IAuTN>!e;`UL-eF9`OcS5y?%L z=f1&i#yzp*jmyIZ@%p0OOi#+gM zwlj)bCr|HS??-VqdG3cy9*uk6N6Zn;&6-dN4;s+N6@5G?yw3Ja=c3uSX3T6qc$1sr zcQxDdIyc$hKhBSRx|t6bU#b$&mo}wPW_gdmR!rp*rx;{ILZs*;`bgaKVbWzo z?4haL68}P2zM9Hu{kvefB9=3*?eHIxrvFf*OiDn841i6+oi1W_vMYy#bp&t`%K^&< z6JH%5C&AFrRtBb$UT>OWxd{I})e!q2mYZF1Ry8C{hZ0@n!5Jt!!KR2rV&}mW0Yd`1 zAMqkR7nlsp^QD>Q@I06}O@TA%(HuSjY#Hoy5wn05f+3P5LV(EztPU7r71Ow_%D|u@ z;Tox*RI0gY{t3ZD>?$>9ow1J_5?0eASOO^w4pA)OHqlyxObwHRGVkPu*gb00LJL16 zd_dz+ID1>o%{8|}PKOd*F)*}P&<9pR0G`P+;9EAgk$lSp>W901!VsGg$1U_f1I%L&Jtx+H@|}UlWNmOy_R&ub(!=ekBq*eTdDQ z!L3#0%^ecHS4c0$M`my{l!3Y-;W4)A93uJ63{I=eHw+0+NE3nC@toej*)YU5#-oB{ z8i&}6uqZoBLqaLbxCL!t(oAlZvO9H1nCf1^GNW5)O&dbzc<~p!YhUh8>yVz>`9s1? za=<&Q1^H98a0vBOR6JtAgB@8z!fh-ANnzhwIJ2sM`H*lA){>t?>#A z4w6eshJ+kyT~X|HD`!;|-8LjVJe%z_;4OWkjeLA^NJx}g!YUhgi?XnuJP;rF-i8>| zJUfI}Y;mTbPT>laPRO^h)EvCc)}?THDn;Xv!1=LDb}lxKstL84^I&8B5VcHdMPbhm z34hT0Ml{Q{bL!YLkf{%$QY}WIW?;-pfY=HX@dA6;&Luj^n}!6`H}N9BoiJr!DF(;-vlw2NxCI1=;BKs{r=_B*4|e zPCK~G%EniRgnr4dWoevtO7`nR0_o5d1JjDyT>JVE`y_#njOvEa0fjZ9vy?e~U}3H7 z{WLCdZeHugG3@EN|STf!7df06XxL8)QfK$jDL}9wTzlR+r zNBg(z1n&M--wx3VdL(l#Kx^&ykivq;I?256*y>CK-1;56o9+?cvvZl;bn%tHA0<~T z%8By!?^*Cd_#M;Bk{2SvoxN-)-OGPqN9msQBfCKNvp=%rMa2KZcG5lOJUdGFw)5-) z-SdB9$%}D!{ls?Cz3yjrl;m0meq+f?aqs+%?WFs@-`P>R+XvVMy7vvRCvS};1RsQGw zMay#5zLHb;8Y4t?IA2`4VNenyMpf1IW?YWM&&5F!pY_>!18YO8dSqmSFl5HRjNasXqYGO=Hl47 zHC(v-Oeh;%gSJpRk?C@A&%ToFq`Pbqdx7o^lh}zZoJm!H_LzkYm9?CX_211Ym5|Sh zvQ1es*-2C8C7d}Z0?kkzJ}%}#>=MOea1E%1SUCmJT7-FgH>pOrg$T@4+Q)=E2nCT& z_A=ChY9Yv?oM>?3TIC&AqbKiz?4D6CUy6B71YV`;qn(&gh&schQxfB?QwyE+sZL=; zn!?|a2OU|gQ}~l64egTJ;NU+=gMj0&b4q(S5vwuAwk^``yu`=y*IwG9@@=u zVzOz&Vi>Z2!E~f;DZQ`+qK};cVIh*!4WWI;xaJ$zP*mf`XXLV1J^;P zb*`tZ56VOP=t_3do);|}TQ@+bd!DDP4+^9=CCxbdiFD3uNj|WH)3f&Lxfo?Dbo$w@ zLTm{97|&sCC%np=oS{?hR?oRER(=>E5xg_$xOx zC>s?%J>#;&Qbb88#K4+0|9`-#K`v_L4c&U^YPNp| z?4hX6No&ZyTA7vW#15$V&>K~FNP`|-UbvQBsNz-x@u;(v>&ENo^EV(ywO2bajijxa zL&cm$*`7DBzEne&O-=!m(~V>mVI%I@fY*yeVr{TDf_X-e+E#-P>jkU# zU^Ek@8Ef4pcHt&!4x8z&WBDZ*jQ4J4+e)}u@|Z%lzXXoWh3umeE_QYLHmC3q9-@n4 z8HiBZz|;hA5yNOF>j2Yu@whOEfjKZah65k6}33k0)#{9p<+tVMrxM}j18(8?w zT;iPWo!&msSlSCV=7SnOl!D1_ax!5umV0X<*l%L{Z{~Ed9XC0J6b$FIfPKH*-|F{4 zh#~>vdFb?&uyY7N8M+HuB+a&G+`>i5V{T@STQHB}?_j%c;SS6D?_yD<+=}Jua;LBy z&(cN7tHRit4>q>aK{N9@up+R%q_iL;{Z_oOWN{VZdkZDC4es4=k7uuzVmYDnFYH1o zXA7^~?G)zIBe*DfS?G1zb~DGVn3?qKW;9W-;NiDwu4T=Mlr%g>8*x24~E7nUKCIROfT4Sc9C8k-@ToSlMgWVU@@6c_(ts{v31AJ?A;LgYGrY zu|s!qCi&Ut*y%el#-ukoal+!$J24W^zKe^NpK4@_?n1lj1s_{1qC}S|Fe3XfT0K7t zhVELtNUt8O+k+XvTENaUvI}={I#nO+NzaqrB;Wfy+rJwuAC;l$d5V9cfBW-JdYzlh z>dU!6|9(k|Ozwb+`UR)g0f)0-F&>P9>IcKyu;^_93P1e?%D%+3Qs{XmrwDE(KCB$9 z*n?3$t_CZ5!AXZBCbRU}ydt0(q)Z}_L9`TKg-4c1$0hpyfYmlOpA;T zg%7Q8$9N=Olr*ao_1DWf!C2xO7GIiQbyj$7yQ%@3pg2}&qKBIwDoz$k*AEFY}ihn0ZU`LMlU zwP46uT$`khtQN2a&@&}XVAWurDQ*X&92{d|@PZaptH8uD4NFqFSYgzF_esyQPu}5X za|G0Q3aOJoJU}i$2SD_@D8?Rmalf>ldF{KLQK^2-DZJ?J*52ik{P(_wx7>HRRcSe| z|L=ndg})E|T|3-AhF!LkPLj#*rkzD{YlK^AE8dw;agoY|H)z%_cCOEy;;!-^XhXbC zaaLv4TTbCscEH3(u$k|1Gp2N$bdIk-QyZdJ&aii!?8y#pE-UzeQv`K^6u;vXGR4UI z-NCw)*cMcvx>rH(h7Y*e6YO}<0+9KxQ}{(XIq=hac+V^Y8vt7-trEt+j|ZE;LQkQs zz0WNSa6+ho@ZkH{eWYHj_mmThlHxJAf4z??O}*DZhZBdZ#FgMlA8?TY^LQw z`MUuc2z|Y;nQ|H8dq>;q{ z%f=4QD5i^ET}$!UCMjKibkO@V>QMvOc6P*xMKHsMTzo(QSSLOBA-Afc6~e&B?s*sv z0PRE>QC*@f#F$Q}v?K{$?B;aX!vLNL9ZVuL+uU4+TAU3&+s(IvQ(7Xx3&Bz3;zf*B zeF`KddLsr%=fm;==a3pI@AdE?9o9VXQt%nl;k{iSaWjJI$b-{Pfw4FxEed~x{67oU z{)toQlvV+TKjNkYMc{oSw~NX|-1Rel43-Pl2zEqbyTAgf!D2pjvWGs#-e@m`+E1N0 zy!z=Wtg*;DIbDDq?<1j~Iax|4O1~IF`e#lYClP&ppcB5*OLhww<{Gp}+1`oza~7-% z4}H~%ZD1LCh?vhY3+%++rX4~xgp_|^5uqGH!5JsJi-a}^C0{t%oB!bA0(v1t{L9I{ zhY(HMnFU{7ZUVW;8#P$dm#7q{u@Y4VA^xnB-F_O|-%Svj&r-^c-h8oHn2fEU5>r@Dq5Xz}{n4k5h0+)jGP1n;c*P%Y}lu z3tQ)O*rW);mM$(XXdeXiw@zWAw0-q_7ph<!NvAuVd#0}Q*H?>!9b-BsBFcENMer7B$G ze!ivSv2RY;NV`Lz-zERh~|-Pe|oMPn3bn4d9E2mu>SjybNzz2HW1W@PBqDI z*kkcP?_VSzW>4OaRo4dpVfN4t>>a09VTRMLkfb0xdbzX8VUM)~y}wg6%zmxH9#vT2 z@Yq@y)(rGPcJx+BLBp5V4GcjwK)J!=YFIl!#KDR=Vq@zEYUN&j*kkQrs@Ui3n?Oul zKhQjgwStczuIF~B6lnaJ;mmOa_EOjzBG^%~Q>PFg&0?S8wz1GY)TmrE>%CLQJ^6G$ zcfIm#?65Fh+N)dt5VulUryd^rrNxJ$JbhT$FS-A60ms>wS92-Kw)kP3F_undKFp=E zo@(TK^UPr;Jj`tkGN3l*UNtPlO1sbxJi;vtY5-Hr9v0Hsw~u1oCA5Y!1cjlhok<+V z*eD*K-(CYfIv~`NqwJiBD?mnd~Z#*+Td5p_Y4nUqGWtg^(TPAP4 zhV8C{epWuaK=*_VY{TR9{6=>Aac+n5Y{9S)?JnOZxMj-f&Ew_$-V-SAoWf!Jghl*i zjqypy1=}byMEMz#bBd_qN=FCk@qFg?Va(*k#kf6?<=s1|5+eRLQU%;8FS>~;AHv^7 z6%X+$r7S}{Zv7wG70C*oM!g9w6Z334>msS(PBG)Qv-Acu|E_Y%y=|<1kW;W`A~_Z8 z+_NadFB%XT!=7Pb9+l5BR)XS_JMWBH4Uku(ZGX+L2QI^;kjgT!z^TndwSCjF$}u% z-24VN?}nW8zwmzWOz>H5{mmhY3UQhfhyfzs+d<@N@KPU+5l&_S-v^GvG~z`p8?4rc z(ZJK-!%D%L!7%B>RUy4#Q~@@PLy6UaHG+A*ebPn~c}NF>=%Rp6xjm#2oi1YCZvQ+P zy>O6!QozU|QdXj~Xn2^t@;sNU?5!EbhO_vlczt*a|$|LU}gd+o?G0r%(LK5aL)wvgAI)7LY*Q@tNiN2!{h67#3I1#J}e0= z@9^--@pCk!m=0J7#j#y>Vss9&1kAH|ionXja1$>B{+2^1JIs<_#1c#YVYcl>)X&Vv zs3Q{_;jtHSYM~#p`;G!6WuC7Q;^S;$MA zPHA{z7{|xYG7G!jLz&tJk)SN)M;;bAd`==X5X zgHF;@GD~_bj+rs+*QiHr-y~>r2=~XC|99uduCWjlRAziFLN7} z<45s#AWngV!)7^{;dLLLfmdTpA@W_6+(X({r zz|bp8AJ_*{AO1iyrgp~7xFjK;jZdeu=8;C?O~k7!cRtG z*iWxup|tcQn|>Vgys}el!*Q(5HsUwl$8nmh{^MccJbs*V3&xSq7A{Mf^a=H{V&>e@ zf{w1ei+X*r6>NVU=Zsw~@V)Z0VZ7^HhQ+S}rk@#yU%rlI$gf|;%tH3h@quvOYZyd& zA-lal@ESVtvTkMV@AsZV^DmBJ8axU+{p6tVPa3s%s50qg4u|Ou zbK52qq4KmqHpoZl03Pj*PHg9v`M3Iyu#N59o{BTd5g`FebWttU!1RMri=vBICQOWK zL`Wfki&!2^7MSM-NHJI`mxd2T%(9eWMfT*!2VQut~b6#zX`LThDbeHg8k z1qOQS(OQ|ohtXPDfe)j#vVA^`mdaWyd|(q`uMcYn3k~uPnAXbdKI}YLkq>i$)%dVb zj4bVLCgwk7VLV_Tpl5c`>BGQa@2sZ7hXx;309F8YqnN2uk(7e9`LHUm2=1~T7SjT8 zt_78b8(~kL!K-;IgpM)c41^e7bcysYkt~y0*BMT6?J0glxPd|w&-}~9--J*q5-?6h zOc)tI`9{nRmg&Rj0AvXmH4nNF6Imfx=Y$b9?+Y%{UmY^Smcdd{8ZsiR5Ot(43+82zTA!-tiF4fwEXF!dxU z-0}9&0GJKv8AvNwnOl)ch047Xtigx%fOYviI{@bL(F?>-lMv<=Mg=-vOw#}}J<44J zRt+}agJpts`smS=C~&g3UNKlE*i9bKR)W=oc{bo0FxOvhL=rYFW_F0JH=ShPB6~|TEGG$JUeRY;L%HgrF%rY z04xX0^Vw3ceP9?2F1Ma4z*azU<_!<1sOrFa!N!h?5^Dwvjr49Qr@-uB7_P*N^k}g< z3v9Xv>jNtUyF8hu@B>jfy&#$_Sh){N0ITw0wER=!!*amt!89HL)2y@&OzXjDR(iey z&~sR$X=zxLci&JCmgB=(!1jT8c6=RR9X{+Vm?GL+uOBSk&Bj{~{f@HSN0FA+TYVTU ztq=GxT3Oe`cn3niye{@(^vml;Z&o2I2kiBRvT88(RBsO(!18@qD_E@$>jXRF!+O9% zW4-;Od0KXCg*ObuB(2IvF$V0E57U6jrg=Y`31;_Ud0=HetQf3ij8XnmZLI|CAA@dI z1D2%r4x|yR$cNE4Ga7stom}nlVYKfM6X)$;g%dE(2h!oF8Xu+x>+)d+Fn;=ouoDrc zixQFrR^-F-!A^nQEow=6C1B|@Mk>7EUcj~)-iq{_Ela#NYXWQWVeMd=ncjNz6R#$) z2R#Bl50)@%j3NIi)-J#XK+lwfVjWa=l{bqA%LnsJi3P0Nhh>B1CV1-=fOYw>(zSru zv%M9oz&dV4OZjB3czH^-g>2A#bEc#WHZE|DVOP|aOWi`GKz2=Sm8X1aCikB z?rfbmA{3LWG|KlDG@JUxyH&~+&qaS*Q zncTB&1Wpm8A9|PgF#4f)rw^kadMB9O&yMv)^h@u(W6;ls+oG9BJ})nM&DtO3lPHl~*#&ERO?u@&&&RE`Tm0ypCP z+zRwhYKUjxR-VqD_zu6==tyVp&^JNTKVmVbWyOfJiQ|%EILR6D+QccwOI6@%Obah>;)uW7?p`xO zyB;Ps{2zpqux*8dmD3oRm9 zTp<3C}dAF;Q!SX?05hbL-x zkBn`pWb|Y8ZC?f3-;cDX@4<_ZlrfPPDFye82s@+#JaQ2!483;*JG^4X4U@ayd#6s0_tonfM2i(DVq~@CPN; ze|!Yzzr@To4nZz@azv1Ol;|5nNN?a%RB=S5iB5P@)i7Qc_CQueJU1fzz)L^wy9iKG zdwi?~N}Z<$sR(QFX7u_}?ZfiG_*cF4Xy~f)VU=Kt*Sz&;fvr+v;uKu$wHpClfDhtM z7aF^a7TC&O_hwyS13s)5tfbXj&k5G&!)Sr6=nYRjgs%qd1>A`T=%RpWfi3;--i#L5 z>UHRD%ur>QIT43WV+Pt%d7TBtMSUZ^FEpI(qV5{_Dw7}-_VYI+j zcEbBvT3{P+Gco@u#k9ay^0v1kEwJ_ZFj`Tv_RMPo;RZf zI?Masj27rxd>AdzX+F5DM-#j-S+da+dpI> ze?qzbLrFRPPbe!sV!Qw3!d0}MhTq1E_B_~|L_3x>=O3LY< zNyl3i*I!SJBc;)*0!sBG~KB9NZ7p{xjmt z`(Qg%Grth+D*CZbt=mqED1BcXyad(sf3he)KB}VTpWgFhI%zEXmp8M375lJkux=kl z2L&^`y`L=wYxZGPU@>2cdY604I>0IkA_h{Y)eJV^!%l$}{M$Q_Zm>=t)(2+!%3F^P z9X5C|gdaw$31__(6Tr%Sm>ulA56c0|{o4E4La=rpM%#%==e*xA_JK8S^?~((@!xnW zwt&_9unw@89&bH5(OB!jsJYU2S;D@RY66dmN|D>10DIfFY=u9nLg;s*JFE0ZwJDT@ zigGBle)qq>yw$>u|K2;*O<-j{tR1Y^htX^)r`P-0^I&b>tU~4jO!&cDF_gp0n-7Zz zll|zeX8|krVK^iw>-J#`9BrjunI8dyf>=@tMXyZU;{qv6j;Ge-p_V} zb^5SAFw4(wJ!%&;h|w|72EhBtj*A$5+(!LhZH})}urPiN~(0ijNh~m6f>d^i$6^(LP-sh+lrgot3DdjBnV& zhgcP@AJn_;wXpa7iqG%CXG_26ekcICdnLO{ffwK|w><&&n2T&h0CbBkvYY9y_>KKN z0DjiMtx~k(_x8WBbL3Y0yA-%O5FYma&SnMjwy8w}?v+{`0J#zC4@pQL?Y35fKT017 zn8d0B`G|1YADDiE(^Ujh2ICrFCj$8$;XTgFo1IzUG#BHCnIni_x~+NmvKy689%d+K z!REnE7qMb6C)k+(#45oCzzSfei&za<`pAfM4hXUurV%WEgk1>Yrz^|gc1}8@loZS- zDMLp`aK1u3+;&SapCONTvDbq6M0uWzeHV-jIptz1j!&Et_~+%N_!#&}^9RG9BXm3* z2e3F^;hzZ!XT&G7at_}!%l(tx$MMq>>+ziDCNB;DonYI^4_uU&`@j+|vClX@Sy_8& z1fLBNPgzgn`Blmefu{VT{1DII;h!TLW!waQ_MCXXQ6WwALP|JoNacWy1!jR8ZAg{- zjk1jsc&mSpe3U&lfuF0aRE!FXrM>>2Ch%runQ|1z^TeO^riAb_ucqRO$MD&%8Wko} zeq-tBK6yq6e~&+Y#CBaUj{LrhBfsy{H&x^dJj7+3yx&6{dr2>WUp0ZF>|Y`L)BxI~ z>4z{H!W#qVmqUAlMw$5vJ|iFkV{2#dD66=FUmHMMBK=p4vahb-mjuyvMt|t2P#~4l zf>3^;igq9RCbIpZ{JNmMu*)Wm;$v{)cU6NX^4A8@`h5=A3hB+~fr)%{P$pQx$nVVa{y!(Iix-LQD$V5Q#7wQZA=73$-}O&W=VR%rd(>%zk*|e+tr**?g=L8k$ro{BGFm zQkf%)(&>=Gtc;>`NH>?z#+ z6)Q*Cn*pfhd*N8QlKo7Mu9YlA4aeG?v52V=R&Nel2P&^zB{qK*?H0I1`*eBPYHIly z|Dos~wnlm^paB{MZb8)np=k}J4b>u7Od~6agTH%oDGgDqC5~4|p3fZ>qLA@)<-llQ z2Eg*99xZ4(uaA_i8yz1d$-NfFwRThpkb2J>rt^`?Zs@pwxAV+&ewwoA>QQ_Y7(exo zVLy=Enl~=boB=uTnsNQFm*a)?t{HrgvepN_NigBsam^p-$yUg1Qhz!#9&W}|!hMz#U>DMNsni5IbAuv##*Eb*c#QYBc;rcw6m zUHF|(D}+7>5ADVe=<2Vc#_t411v)4|4qpjn3n%)WV4`b>Eq zgls5?zq^fQngm{vSmyBn#i<%PrC^?MY5*(Q%r+$OCjV}DHWnR)Dh$1fYzsvxHchj| zJ33i#O9C5<4*8xBmf*oCiu4up_$^`-#UBd?$_-oC(%F1$MJ_Z^K;lJD)3Bc7!{`M& z8w?}NxE`HS$ns%yNFmdQ(IJI&A4byzyTmTPDbpzhi;p6mQZV>1I;B9_;CYOKPARxO z9FHI!QXv04k802%g+j3D?u6t}jOmm@(8> zZnOn#nmZCSC#0qK_H8USiMJ^g*N@^CpW@fe??^&B+grpAC-I4i9Yv#FpOUA|?lWMB zzIaj1rp@lIB6cAOEy%Kc6rY6@Kgpjpmk*N{Y^Qi8%J*((f1QiE)B<;OpyEaGQb1@1 z^E~QK-EW%*qq>v?*0Eix?uU|jg|Zt8S@bjW=yfGm$2RQ z_@ykT1wUW2?;54A?9u7&<3@gYWX{c_;~&AGjIM*p2g_o9IrvWpIujr3D7j@+z{Z?- zQAGM+iox!oXT?Vf#%yK80DvJ~AP5_m#0h6UMMJWh~Z=!gQ96 z3P+`G><%+}+M+u~g=ZxB4U)SdyWNLL&bo6HAITTHJ*$PE=4gZ*=MfK@<(&ds?ZE=k zenamX9Y4-blYkhoq`TN53*wS_7dv6$=gX__Vsa~=92r_ZD(zlF&kjRto5f&vNx$RW zV&&tMO_ihgX^ohVPg{}MWqa7at^7J=b?qolS07u1F=>^J*URmXviofOBKes*cG||9 zRQ6{^g)Qz+TFgkntCIcrDE_qq`fdEkFa;j>LB5^sih}$($w_aF;`H|sIz~R(jtq!- zdlcU`7v0y``8bvR)TodXMIR%LWRKYSnaZqlqrywf?+=_y|H95k%iGVf-|YM>|A=o! z*(cB8vtRa9KG5IpmMW;mMj+D)z8MvaC@}Yy{cFK!!%NUw$eq^DD|<$TPsZK-m42kK zloQ?a;I8@Ze|M(}QwH~*??=7P(d`3^=^dRke%e_L#d^T3UN(}7;j*-s#X3-Z!+vBN z=ss|sJwf-HpV&E3{x6G7Lyo)pD1*dLRz8%*XDGWaphinCiWk#(v#R#jQQ=))`flWs zblx1SK|qwMKo|RL9-lZf4E7wD0hvo`msl{^js*iM`XU(K&xL;yB<^?3)ZkYr#2R7p z6|S*=ps=Tg3-e#Wt!4+V|g@9ZL1uC~t1ED^^ zEu4YSgE-NDUkC_8MyP|wo`F!nx!6W>sew?>yV#RDeru2nHB%AdLe2d4SyYhOdLAF? zqM98#&b}l@r)hJq^ky{6C=YW9E2Vc$tpR!kV5Q+M;qpInhz_a;J2l0d^?-#%jClp4xJU;EPfK{gRfy%}h7ZwM^Ci{FkzgXD=d74x}6Epb5^4h8FnhZWsd3LG` zzdjW8p2^^&m7%dN{QD*G2Nqvvpr6l-WtTGe*txmjRAzKh?V_I>6@Yp6^W9+iV2?_R zCI$2P82PDKwtGJM{XTGyuW*ziLqn&z#4l0Kr`%1S=JM+I#qR?7ur}yfJQ&rdE-=G1 z=2*bT$}^|24GZ|`ktNVcrikLog`s_!ePD;A7JqyJUcJvuV;2_ii`Xph zS)z6c3il#PCT~?H#JPljNWZ-ODHB~wLmZ1;h%s3+-Gyl~x}s=Sy^yyk&qIEPWd!j_ zYa#pRcUc zQbmJ%H0#OY)yis}OGuSu^%CBoD%ZP&zfYhK(MGacmhh?ao^fCm_7hnx(IMV zuw+VtN{ycsvZ+`ye>S1p2*O=_1KRMNPJU5j#PT&}v2T zVi&t&GJ;p5Dk!o8AXvYo9 zS;z{69=gIEdKO?g1Tn;72+lE~8bawxckpyJy?>47<9jx$L_CgLnYknW>-PgIi z&i2YssRw)*y;y{9aE(vQ5-2TTNgLRetN2-}T-XaXFbC{Wm9W=9Hy=85QO8sR*0X`_ zUWIzxvXQ+&_pAc;&sBVKl%>EWP~ON^goNf}u!(?`Ca5_DEOs>?rQ8em7`A5>KaJ(D zMkiVZxk-Ax+q;@imvXV zjI4r;>=Q4Fn+9etF-fOs4Ida+1bG!{h^O{23c{KWLwVf0*Z9}P#=F?w6Em@^CxJ z^OZ5%U0A0;$A!Yk!)tcJ4i|nMDSrOo3&`@C9V~b~R={h(J@Qgswu5b3&+C+#H@NUi z@l72#>(sKIPg2!E-sjIQB=b>+uHn_;eLG#_N5`o?w8BK(#7x)l$*Q88T!JA+`nQPp zT!WD!=RtPj8ccc0_PH=g78i8&*YbOmRR@vD(q#1WYf0}A3&}?z;JzXsiETLK!becV zpRzxi&u@{pKgurU^Q-0d!)*0+D9oJ0Z1;7Tqz@csf5%;!@R$q#1xhmZ4)*(%b#Xl@hVO_sGk;jAc-AFk(3B*aC2Zj<%7vTF6A+i+T(gsYH%U)*5ThTtwH?s>{c^!S%O5S&jy|NYA zT>T0$TXMs3m-O=?Y*5G-OG`A=2b={TTd<&sP8Lk}@z>XF=wU~)DnWIYckWCd7(uDk~Q^K}YYGmd+8;og3&Le_tuLRP<7A*)`m zkdQQwg&l zrVge7<|s@H%n6wHVNSzz!}P%P!3@I4o<-zfqF~}-l3^?`^I@`K*1;6O6g^wP%Wj6H z9OgclYM8??4KPPxT4COS>4Z50(*yG}jF=Ml{r{AM708bNV;26OaiHR<+(uoZ)N;*^X8jgKXP}_4}Mp)x7-v1(~1AQ9MRk&(qH^u z_bcPCkXLN7?y{C!@3lT)-EXCDpR18u*J?Lwo3*cNf7Xs@SL-(DuGih5+eN?9>h}|W zRo$igm+qYI2VI};cio82Pv5PdWY}dmWH@ek!|<7**KnmV!We6`7{4-oXYx01GVd~% zo9{J0VBT+j%6!!Pu;p1xfwkCrtMv|RMTND=dWB6UlZ)?oewsKn=LokO=>cZ==;T}7YHrCX~n)?Z9b zNYkcS(-x#1NIR1DkF>AT=p%mg;yFPxRkK`ko#t)e8r8}nkRv%)R zZJ1|ZhIb7=7-kxajZYd!j0V#x^H%dg^E2kHNaI2KGxlHXf7-XE-AcRn8p+RFbbryE z)Sb~Cuh74x|6KpI{-W7sR#`$UyDa6F`z-q{8P;XitF4=?H(GDE-edin^&{&UYmfD3 z>!4L;!~D%Q-Iipt*yh_-*z#<$bh(UP;hxjHuK7)KNfV&uv=gKiL->@eJFxXWiz9;oyYJwxp@vh?w$M=q5haqiI+Um4I%E|({ z_<#BGG=H`c98V(w+HSRDP zY$sFCq*hFFOm(bv+~}xtv^dT>1{{;prl#rBQq$I?T}Odb%4IaCO+^jRXjf>DYv0m- zsQXfvrO(qJN6}3~`KyhI#%yDrvC!CQ95VWwCYk1$tfn&4Ci4xb?I+FM=A)MPEZ{2vE^&ai`G49 z2h;i~kb1eetf$bVYjQQ!ng&geWlCXnDr+CJN+R z%SB6ob&7Q^D$E+|7IcVGpBESZ)~mSW4TmOCuFE&s6m3x5CC@`pvR1X(MnPF`izT2rhG ztt+kT5fF7bd#n#y4_cqJJ})-Q53HYBzq0;d{na{b^|wv1O|iw<=Gct3G}{u}8ryZY z>utMiciHZ>J!E?nwc;h)>$a1&k5MzevHfKG-S(#~AZ3DM4b>}|zpMa%Cut{|N>IS} zm~XE@P^qX+n{36lTWxpPcH4HR>`ytF(wXu_%9knUQl{9ivVUqnYyZLill_9-KlPB~ zCC7V?|2Sr(%}vWdPhXz)blOYEkKfb&qyR$w#Q`cvGf5MpnWfpGS*5MlDfOxP#rmE4 z8uS1GhB$-CkZ#B_++z5P;eer{&hV_^7zULR^iIuU6RAR_df4`qZI9!i;}yq;j$>&j zF&6lX-vqf!bGN2T^DoUsjZ34{25CdI5!x9TtTbAqHeH*oU8`NM-H4(n)&2#=ai6wY z`ndWEB$J)nrvL1gKrd_fh#NpdtT)qF;{Hgih7)=x@!6_BLrwpfrICSW} z72;^ut4q-9(TTL{zt#Va206o!f$?FjVZC7k#`to>y@m%2`wdy9)uyXWg{JMMQq!HL zM@?ol$sx1n7_pk#eW>)?#jA|T#w_DXqfD(3=NCscr?sDJlXZGsRE7Smy);$lNOf!z zQ=|}M=w}Kv9Yam;O#LGD%hYqJUy)n7LbeaLWX&eci<%_uZQ9SYI^Dy%-*l_d5l=BV z4A+PyddzSNQ;;FU6yqG@GUEp0ZsViq0nZo*i~**rOev;oO*feyGCgH_$Ml8i4^u^; zIl-J_zSevb8sXFCcg_DoIylQ5G?|T-%9NgzaC^1=efy?Vma1@MIo3FiI(AcJ@C^%k zi?^dD#G@_fY*t&kZ83)9wYGfQ7Mm*Nij?q_sVVU(b5e8|BhynBr~D;lYib|mN`dsz z;6nWk`kO2Ccjzni_hVc>sISAw+-Xo49mY~)s_h+HLyFN}L!p#NfxV%fpu0!+qE4&7 zR{x4V1H<*(hEU^u##T%^9H#xIbEb9XD)UF?5X%P3QOhOE3hO&oS*1cemO0za`P8MI*e|w$Jv6?Xc~Lt+f<=vDS_IvE#+qb0dNZplMmRgZ|U+UjdYf>LeeJWK*RXVC2k2#_-0jp1Y zF-?XQPg-@l3q9yVnnyLyXkNx7>|M=2G|}4W+SzC^X01cJumX){jrJN$GdJr>b$h9n z<|xG_zzL~SQh%YWE>Mc|xEwrOs%zJ6F-$gYF?JcJSYxf3*0-(iTmON%(O1^*tUp=% ztwZQd?o4^#{suanp0uCSM$%*@O7UNdDbOcO)m){~YEsa#uhjgi8`TBqD<y!01 z{UZG(!+>$rC^rR}CYxeSGfhb*y~$>}U|MeOw(P~UE5H_Fn{11*&9G4(S1>sINHV8)|IeOhA7HTuEN zWV6+rY5uF_qE%r#W^1#(XRG+ocG~u%?Sf64vcSH=zTRGFueW#FLsA{7`&0j&y43N2 z;}=Iv+J>~F6j;4dTxpdduoIdPZISj7-4nX!buGGIbus!4sKj6E=VFrHXIPGA*JX^O zPmyR;VoUjdO`UyI6=fdB?}e-Pf^%0CEKpN4(MmfzFVD<8&%9lHJ*2q->B+^Hz+50b zx{7A#!M#|xLb@hsj+JbHFRV%~Av&(DiKvCfT4Jr4?k-Ylx@XH!SIz3|cZPrVpF5WW z=b7Poe$Vgw`Tm}nXZFayRC16p%9I_-3CMaMsNYL!O%xL@NL5-u*U}sGY4#uXI3(n* zHUbmoW!=}<+biK@iqk#TsTAwQ4@5=!jkHS|L*5|+K{ylSTIC~Ulv<#cQ-^-bWXVJVM#wyF{%B6JUPp5Cwg>jDjhuro2zqT6@M9s$(OIw+FOo&X!PuMx!F?$YqXJz@ zSD~?1+K!pgt_AefdZoS%=&)Pgr=QW^jeO_!MrzPo%sk6q2JPPA?*qLDDI*nL8Luo* zmMf(g)CWpmRZ>m0N^MrV)Bv3ZiQkEt_AR|jA5cH*A4L?8Vxu9zQz5={Sw4(W9XkNQ zy#&F%4oIAVbh1z@(fmd~!==PM#xWxR@u-N5%2QiRz;fv^OMRV~!_FfQ`*cftc< zm^cPN!C;pXr3q4|v_vYA)<_i?>7{UcN6BT3^&N7b{7jC^d0_hh5{sX5bO24ELttjA zXe`1GfF04N7-s;w1Ll~L`8$N#evH*EI5=EwdeDPU6H;0O8~O=? zD@U3SM%)4Y_LENsV6$>mX;a#j z=vn2Was#JLRew-NQw41N96e6&(=q#9fS!@W}@aF``t72BkIk|AG}+mw7YgI=X=EMLpeZyVTO%!BAHYB3$jLXeQH zQGL461Y=WVc0ll}t@Uu)Xk~H8+j#OXperFyR|p>~G>Peu&tx)zj0RoIQp%MAb)EVREoKQ?gEkJh-=Y6k&jEAcJdM$i z2OsmKM(J7kV>uOF^A)YcY}=&gxqr|S@@1eTd`dhAcD^Ql4}It*^_5bjG-(PPv@QJ^ ziQG>T$xvA4iGZR)vYJ$pKamf~MNEU+FwK1cIufj4p}YbK@Kt%8yiwkY#J?BAayW{U zD##6Ul|p5eaz*i}kEj_iGq!qC?ErNo!C@=Zq*Lf@%$(KqZTPaY^zTsSZlHRY^=CsF z0i{o2)7VP3o>j3utdYHsfoo$I*jFs9jnFKhbdgr7)o8o5d)hDb;kt&QoTNXaPuHX6 zAnRIi_1F4!y&KpUW2715ji-!fjAf{y)Ef0hvvI-0(~$Y7`J_o90$JuvbE&z)G_5S_ zc`M&q0Qx>>UAF!WR=sCUjATWgkK{*|V<_K2^fyHAxI_AB$oDi3em=~n@e+h_3ZKo- zh+@heLlNe4{vwJzmT*G2B`gK{)T3Lwq#vX{gpf%{$;G6M?3FLc_w`|JW1T(0_Bwx^ zA1Z7X7lAi3={5QVdsNFdOH9K}88<`TwBE^o%ohrei=x;ho)+h@?d%pygFjiJP1E-o z(euU-H+u0*+hTln2-k%?QUsuV17p}qu9IbQIo$@o*hV|(1$qVk>qi>T64^+mq83xY z7NOgF4AFgSJJhh7mrctuecyHvucrDzKIy8?S+VXtCTEfVc`RMpaE6 zr%qP0)f~|Be9Zopu&}Q|8{R@)Y>(Om8`}ze>wuB%Qg5i;n5Ho_p7y5$>2O5Gc=`f; zkuHNWy+UmoU`2?4w-CNvrr#Q8Ewd`z-b#)0l1~}>x4+924r3hli11Rzz@$LW(%b;;4^>htv?eWm`2z8M+dHY#jS8j6u^`L-I^3m zwY!tTgB@`*H!228yQOiyvKVL1!{L$`_cpyxzCXlu z`D1RzIsa7Rj8u%aIS;8tuU4*{RJ~ z46fSADNaIiI62UBNm%+$kN1_j|CAnU*VJ(BPOihf6zk9IX*rM^@2hct`)1H>YjM1{ z->Z|55>AfoX~CI#mm8GqbhdK6LcQ>;Ut6r(2TlHmiXp3|sLqv34aiQ-(jipnS|mGn zE0=FAeL2R`oB*AoqFgW&7OSQHz z>ZvMGODNS8wUnYL6R|`oYRmuJ_ueEE?f3Wn{y+bJKcD8Ed$xP-x!bwRT*=!5ld}Rd z7FJFWq&_AaSH?&q3ON~aTbI_aCGzj~M2=%(w!h&9tq7w59H zdKKxmo6i4>rPV7-Vvd{6b7}Q*P8oaMbVf#~vW*glPfsLf-)f}God6%pr>sFe1En1P zGwR~98ciBDIB~E}7j=M?8;O39zO^kkS>@8h7V`W`>U5vd_ol@OydlGFY4!4!P;e`) z*g`hxfOtk(V!+##EYp>s)ELVgN@Z!ZM9Vfxk%bXCzTXsz{`?>-yBQ9J~LHC0MG(GAyx@!He{8OD`TEOS4R;65DJ#t)a3GST;!2 zlBPSm>arz{Bw2!ZVK@|!l`U~IIlMs1A&C21mvX|rf9#;|-E`mbRIXD&LBWWO1ywmc zw>~8@(i3azvcnCcd)EGVDwzxaD2h10Z4%{{`{+YKfxXbxXK>7Qjv*mY71Ghi)arMwlUG~yhl0S1v% z`({~AI)y?N*&;YMghxj$jhzE49N1T+hTFv%_Z_v&a`vvY^r))sqfEvewd{8efQX}( z2hQGXxy9L~k*70hF-IHR@~&j`GX2pzrf13{Uvp6AUP~938hWaAbNPexH|3GI`NRgx z9G75MDg~80idij3UHqt`pSpO##7s*m*Y@R^HNGHc(+P58T2`VPRars#RePC^tY<+XPRl)P?f;&T^j|EdUFzNU!Jzh*gDJp?*mvplaJ1JAE20=up% z;v=tGuhjS;!N?1iD|Oq0_XUf0z4mbBXUjb3g>T-RH-wzD#b zUTf_aF@!<>YRi!hYoX_AOaG1=z`DxvwqpXcS!EgDX&RhH%l%Gkp#fS_I?sgNE0;x% zfwn8H<04BjXtKgGv&#msEVoqYx&fYBEZ=q=0!u6w?{2B!YO!qXwhqQFvxG&>geOa_ zSy7A2!V|Pa4P6YeXuUnOkpPXBTir))XRu|3<^`t_m<8teL4#yVlR491Uy^0#oSHEH6U)zYYQyj(%inVXpmCBS@N$NwLsDa> zJ97k`DbbQKy8>*RVOf9^qw;;c}c#|ZjPl=a!p^|3_+LM=Vd_w@A>J6>+o)A zD@n51sfN=84>RtK&vnf&D6qYpZ5@?76ky_X>yPt(1z0h~@@1L@bW<#?=AVVl{jDVz zlml4Y*Xm+MBP1eh?!l9RC*ZjQFbEj`Ad$|y@s%VIE(v|23#0J@B_lv%kC zaywg3uIvo3uA{Z=>V6E29jp`9++i@Fy`{&xrEsR5^^bL5GbkHwUALh!gO_bB2S3{m zk!>wQHvR_V+gRFcdJ73gORLWp!JXFDbDuW>*wxa)wl;R2(b8F$Ysj@^tgmA2wY9eZ zy5^SM+jm1$h&A@hQvxguvee$y!#OaB*!*r=Zg2CjT6Q&IaKDN5^loQ>-vX>ZXZCOc zQv+))xxFZ~spD*!@a zgk6n>DIKhF~_Ld*4ZDXB$>mj!&_V;iY)7rA-_d3v~ zwe`o}H*(~JyWOB$OUu!_jljF5_37OjK*+N9!{I=4OP~97AicSD?tK@I{L~f$zQL9| zHa~dV%vvs2)7g#%k;=L($T~hx(OCL%H`vp}GU#z5NNQqT@>tQh?`cOU6JUA&G!U-) zTbtzTdEQ~qQt9vMXB+76$UisIUzg`A>F;OH$xRlY7fJMYwijl3%FA5X5`et&Nb%3F zpf4{Mlw@52j+Vu4rP(fUFDrj2%~C`#m%@~CYydPYCI4QIy<^~45^t4fqu^u-xg&)T z06Sc8s3%(i9xn15Pj;6$obXmUu1xxbUDbl>3=t(o8$m0Mv zHSMBKF^m9_Fb?Q3g9y zsdg$$7lUoB%CjV|i4q#58$(Uesx5OBiau>3g$)i$$7tw&gibkbP!y3lJ$H!mxw>q= z0N=lmqkUOjfK`8fF{cq@u=qDj_G5p-nj4tt&rG1dAs6^FBZD8GV4KFw2QL1KLmN|d zO!*a$HD)!Uy8r5|O9?l4GWz4?W+tdbgg9xN*_pd2kcgD2G3A6WMLGj>4U|qlz(=+8 zqx^5~btFX5SeJViu}Kp)vBdPp&fI|)%mUt?ELFslO_(n=0x;z!4!V4O}1K;}BK@YF)%K%~?x0bpfNAvz_31A3ro_RpHtnShWS40HgoF z^cJiyH2MQ=Em%+Z<{q{TWfNh34rYe34&ap|zX@eySha(9xE+a!6eGFtAc@CHOFHe1 z=RwZ8JMz3%tOhGF{ddLK1BJ%6=EnXmKX1+47zCYD9OYf+-2dUI7iY0;8`cH3p2ekY zSPh@KXaC9UPF{`R;f!tQS-jYWwSvxPv0Pi$vZNbvo5CK2yq)q3b_)_K!owdhu`LUQ zoj>5dwyYoMe!$XUtTNm?gZ0B$Z8&@edxWv>o}x5Z`K(mu+9EEvQI8!J!k2Cmf z81t<%o2W`dqgoB57|?~7)Run+A)I{YT#X5$p(zJc$Jn>=wkFz}p>IbtrcNg^sMTxAO_byEV;`hPo8|8BE7*;nAXwdW`9m z?agtF?#Sv1`e+f8J2C^?hg&dX%q`>g$sIZ|CxG2q7!}FpLW3;4 z7|BB5^hKoA%3v6N5hr$GmU8|_opmjyh?6dw+v&IqeU3V#%Xk-WsC^WJyRup3l8+Q; zNI0S~Og)0Ot~7Qn`ULlNW4qzT40%Wt3x>*{oOjldXM79eXEK|biLKvx+~0!*Li99z z*n>@j>r-)PPc{jreT!FmQt88|;+vjSDF@GCOf)rK-ziwO7n5PEjAwhXMigG-+g_{_ zWdDE>F)RR1OqM^1VN+b8)GmBBh*c1NNf5C_9P8S2-A<+9<(T`s@fAxNHBd4rn3vB) zBwn99%^NT8Z5-d7WEaP=_TaM>B0|Viko=@glYwO!$NyIDatfS+V90QV?n= zlqFrZrxQfXAI!ob>nm(JgjE-YlT^PUtV{VR6ZwE=I-b}qtst>6Z$z8Ni+Felt0Xv6 zj#r1Unx4ldh`Nll0)6T#-jPHDtps&8@hfNiEW)KS_|kG`aQ+dm4qIpr7g z0E4GF(coqBH7Ko*22)!X%5m9HHXD9BjAe$g3SPf#FDz(up|MoZ_2WbxR_o&8jYEd9 z#t^q1R}Q1jIsnTIWnQpgJ6;*aLNH+{bLsklvI;juD|x6ci{h@@HD1)^m30`Mh$$+) zk6U^;wN#>)8cR);TubOayvcG8&7e|`7|!akf#^PrRrKoh#lKrum1K*oW4Cd|FjiBz zu}yP^^B0PF>>QRE&Z;$QNM-rIEJ+{zPfPwDE8_hTEJ#?|O~h&=Sxcci0kI=lo4``t zMBYw@@wG2s2y>VhsNL2=V~07qvJ|PuC$Z$pKSz=)bG9h16wYnYtbMgbu{P%L7PabB ze-3l-XB<~wb<96Y5vTgopVMcLEG)$+yFYVBi}-RBixv8G5wZ7ZwoEu4DawyVv+&xO zyp3hb{uykH1b4#abt|Y#xr|syeKJMIu=^0H75FT~R;yTW^U{ebmKOF|i7q^^cau40 z7!{tUo+zngN@XiJduO>kSwT*`x}R?qrk!(kJr~Rf9M;JrPi}(zl5dA`qcS3MGiCr zZt|xUZAunPdEI(52a`%>i)lszZg<}szd2zkW~^sMaBGVf*0W!rT{wQZfkK`QM%nlo zjTJDY4KCWmHp6%QG2nAH2xc9UmwnD2GT8VP&e=jU{M4^-`xbT-Y8i0!R+{p1YT}Wt zG*6M{M_XAnnAZc{wy}u1lw*2#mhz^xsl45c6?QXB<+;(h)A`pUSs>_}uAUN5rK2tb3sDz?bpa zVebAv@Q+8rCIJ(qD7SEkrP_U!-6bDwv&v@xG1u zmd@mYLHiZ)gM-m0mtxGrgXQMA>=WjnIfz<9dt=_s^r<@9qwu7%`jE73I^n70x|>n&{@0ox(1U8;i!y@(5GgRdAKJKJcY}70)F#|ZTI1I9P=-A zJe)G*b&PW#v+*E_a{go15kN@B7Wu3jt#ffvK5GKAlkiwRIb~>)d_A8X1K2nVH#}#a zUFOdMT{dM${m3ZtEyCP6?+OZN__mExD3SwZm`3TLP&l()rV~*%g=V1ef;A}9sx8p= zS#Fs(s-A+G*!l&l3BS(7VK0~;?CpgsUa;0)qh>nf%&R#!?yV}(btdM&VC5Utp?vi6 zID=1a0d0`|$KJM<`#dy5Zt@pfC&BnB^3QLW$e{Nzyz-VJu8PO7;yczBE@ol>cdP}h z%)(XgXf~>tg%#fu{mN17{hsKSqqz1x(PNI{)%VN{XO7_T4>Y&0K7uPg5WUwCy!L_k z%OAl?1+2y}n&uKyUW@t#HnP3Ikai<(Z+wP1+>l^j3nb8{K+1^$Jc_3AVt;L7)6qoa zPn}7bc(Op9fc2@{h@wBD3vHfw)EpGIZ-0DVDU}~TD`1t9rcKo!xKLnNkxw}|hT{4o zPU%rO$#0rY>!mWB8%zvEp}C_m8EFD-UKTgTk)A*8pLF66$m$J8$Ti=C70_E zTu&Ej(J$bmld36h*j`*ZM)dc2*js;~tLXauu{&aVo1D<5`UUkArY!Pw=Xhq|@nb&X8Z79X)dSy}gJ#M}1sG z;xCpXr5$oi$!%u3V#;^@DJ9EApSqazB+qg2nc{9QA`QRE!9Izv^+#ON`{pFSZK~HV z7_H=Xy}+=3;pn{>wOTTi3RX~m78t%BHfAr*T`jdMb)QB8{Q-_Lj@^qFS4-igRwyVg z=rwLH8rDdDqf_#FyWUKB{Z22R*QZ7jU1^GZkse7)7Mk8y+ zH1m{P|J<>T^_AN@x4)Lg8w{$tU8I3UZC|g)p##fbnFn-9~=l-9yVf8KQ!Ystz5wt|A(9yHF4$WX-3V6K1O zCOiqyxX&-dpg&+MFzm{lK-JWnSGL64wbp9BR_MIdEQ;s!Gc;56&dIw*z0LJ|;&pQ1 zH5KxXO2BRcRB#(vhzXyF6A4qb9bwF~3_cW#`yb?|R(kmYFH%<;d|Kfa0cw_N)rbD0 zRX*R{2u7bzrAoq*#{%XHP`%o>f75=%I74uHq9KrnlzdWFR*@6~Jne;kv?*JG&$k+m zLdHO@#kQvx#*5(DY07KLKGG2U>KF}+1^Tq%JWazQnUs*7oJ{rz^#3MB#R5LDZ{qW| zX#tmFm2EjuB$h2 zm6cxM9}+ZU8CcZ`s=ND4+8a-f5&3bQ?N~#=u1-*;#_h>ecT@QyiN^q>!8OmzzLA4qhUw4h~4~Js#!r$@+^!F&@d+Vv{%le4# zGvZ5d;CrC)b@(XXLByBo0drwgA~q=xk&VXjLQ4tU8E38yFho;i7JbdbK%lR!dx*1+ z03X8nUL(gWHR7)F&{>>L+?Z1V%43-d-~-bWaY7}ihTSVb{ldiB3Q&P3HdTVg_(uhJ z$8)?}5gPEXyC+m~vFD5dp5RgTi>8Hn1@gQew8Y+?VC3AZJxMQpPkO4EJ@AB9T0TA) zQ3+~ki2yCXzWn>H5(M*a)5;JF2T$WlI{pw|`#Pgv6{u-%Lz8J0Pce$pfU-WSUGxN; zUZu$MJ<6({pZ$?X$x8WP71+(}RT)FQfw#z>W?R-5nKKGAuE+`AKdv%BbJL4)k%H|4VK4M(pPC3_vd~gt}`DP^=V!8Y>?MJ1hrQmzvna^-FQi8EkzU+C_q^o=5+x7!?q>V8yR z6G&*2FZjW%19-s~5<51vbLXbrS5BGvU}Wi939TsAD|5=2cTZmotxClG85ZmLgB5bch>?)ca?EYz8h~0Hn!PZi&uUCj(McL_( zp3xuu(?sE8>D8}3tg>C-kCPjLKYY0#w>F}VHfuj#XavoK>RH&|Mf*!5NbS;4|U7^3HON#xMaYZ7D}fGKbynl-De=1z(uqmw`}C z7`{os9|ED?e_xK33xaUrWG5%NUl5dKg0YM<#y5pSNeOHA#+w@s<9}O@;(vq2@xT4t zvQvC%YRdBdDn2{KpP+=N910{T>IjFz3EFsqL%{^yKE$C=PF=pQpkf$*Et7yob&cX#u(^cnz)zhAJLLRg6%keZC57)EYb! z3{4<#4SooQdO)1@Lf{Da)WX~l7~M$eO#gk^zLCcE&4C$ma&uV5{#T(LT*#0i8$%(G zmG()e`9DnAWgK74S)SLD0tPTT~u@s%$1* zcA`+!&D_?F2hzD&)38x{Xb!X`GNwJ%U*BoCqCKR*{>fN50$Ko0#oiIH6z)yJhY`>j zb?0`dzCy!Uy(Y55?sB? zWwaRf=s)Oq28r{^w?&(1*bB@+zfMpSK7EhToglQ?fGOl@htXh@K?_`lQV460!90nH zEBDcqN91C5CumShW4%cGBzD$(%85M6xsAkadu79lonfYWy+@x~&VepBL*2lWHPot+E`kCTiOk#Go4Bg1KUi3h~$|bn3;Q$mcv?4AW=_SYgJ5B z{ReLpYClmju3nTej_3)0g6BNBUo@0pko+r-=mq;}rBo#b8v84zQtr0evkT3j3wd;B zjM|vXYpsO#Ub*x)d3FrcXGLP?X8s>yN}W-^Xm$gy^oB9Q4#8Ot?*pX)eprUl{a_fR z9>+udpnI9yd?5Sv=QngZea$Sc&@Gd_`onU7<@0dgK==mQT*UFQ&`JoX`5iIH;sVNiuZgcT!(!y~BoH3p4< zSupkyT1P+~SauF?jG!>S@i`0~39(5R=yv156lx^7LA0@G-)AW7-2CpNz3oKJD?TJO zJI8c$-?~y0*3aKfm8l6SL8j7m=8x4nqg_LSroryyzs_Q%Q7}pEXphDy+=!##L>Zrz zA3Jy4XrK+|J^N+9aWH`i-Zh+X<9P5AbOapb!0*+a@FoYoC*b{fXa<>|V$%t54*Go} zi}5slS66ynVgxrw9WY%knTxurt-<$rcOv+^@d?v5Y%rNav!?eXXlCzBPgQTY+t)dU zMMctlFkNyClP1wDk%1c~L52FS9h7r&hhuz#F!YZ-J|ZKump;{#+Nl1()lHPkP2wN> zF~5rgKlK#VtT@Fi>Y8&t9sm`3xSgK2Ntm+_ z;d6WU9K}J2aKV?{rkDTZOYn)>c$KK^@hJW6oF=5~TkJi81E)ZY>cJBO6;tJ-Q=lZX z=M|ylbUb=F7aUUdkk&Y-oRE*;O$fcjyo*Z?v~5hGW*(M+wl zY^^5hqq!{i8=CGS`E;t)SBJi;6Iy&ix17EDpL61YN^q{L151TIs)^%gLM6HB7wl$5 zm>z@YvRF+FIm*)ER4@57T~uQ5eKf~@1r?%k`Z1O)BpL;LdyGyJ2lvD-Cs=Q2E#Um` zS$*L~4<}3y6TI;03D%rrOCBe#?mckeN#bfH;L78~b*{U{_0#t(M2IGIl@r9)raLzL zp2Y}fS_-)B1o0h?a^wpqbc2(`7Z9cLeG@9+fs@3yvzx|OaFVqW{0MD4#hOBeZaDoE z-M#W{Az)ZGYbbbib;3Re*$jM?&AJPI&57?c=j)>ImGTV{_<@Emce4(=WYclDS7b4X zV3PQOOLW#GniWY1nnb5!5=}|s9GB>*Ndy&1fF{wwF7YE9Bs>cwiJ#~Kkyivx{GC0e7&i#p<68>teVSU=ESaS}$A^Z}cVRhjucE`_z{n}r{-fpX6&t72X zgspxWHm8k>y?&8p3u_t)c=|HgaMGw^?_VO`PaA63uUo6wm%p%|glWDS_VZRM*7XWI zEKF-)$F|h4SJ^&cZhZl>uCY4sMW~7uud#20q^{YIszRZGKmZl+@6ZnE!%$_5Qr)X9~Q>I*^_3p^FNhn=3cEgi#WgP)gzzT{~a z3#80VuXzY&YkdNj%!byGkcT<5!JDkkpAF?9^C3FVfw7)i5v|3G=$|KlItN@>Az2-< z>>lWqhhHUu$yYU|f<0Frx&PDH7v&W?4oZeVPeo$CilJ#Kn&N8HYg^4@xFZ=_*T0&l z9M2u)t3vv@#b%m73M=6NpG~w#pN#jI3lqv~#$V*d+evvc&V|m*PP1^!H5!@yY95SJ z&AwOGZg$0gHT#50$0aFtvr`Kt0#&o0e}~soAPmMmLZ4Ll3`%9-u~Z0$h_&dP22bEh zCca7o|F{)&$of*B)}Hdo?LdDDPvz|GW2D`}ZjXxE5})X1CeRGQxP8hJu+SNf%O1~1 zxL`i``YEnmuGdPHH^117ZqI2TY2~wb(?@t`J_NK{Pj`B#mE^vlJPMni!LCGEH))Ns zFrIfJsy&|XzJM0keIDb+1rTQUcw@f4vDd~!e7yjs!N5g0aUslY_b(N8hKd|;-QIzC zp-+ydLYFJ*KKj%YhYGem!e%DuY0s^NL$lcV2tPAHO?#uQS-efRc#OZAAQ3*Sz^G55 z^RU5RQFV;q3p)}FKKTbBf0k-mxhX;6AS78-g=@{Iu?8i9Yd(p`qV$DA@aeb zyJ{7$1jA#swrLBDZ-RK)#*SsW^fYBpg#0iNajqG9xTzVIPuYki9i>mw9V?+xCfo?9Iw?Iuh%RSm2x3`E@kI`v4w6K#B zi<4p;NW+SgwmFdY)5e>F!k5e8GrPiX=*-AY%6cq+wE{d{?6eR3)In>RS ``XW0P z7AMu&01fO?HHwo)Zh+7v#fxzbsz%N(Yg_>ij)O#Aw9VmeFE)27pKP+qknku zG2K{#`NOMvV)%X4nr4tNs>Ee!d+VLaBxL^L9FH zxv>D@OIQq%3vk(&ME6>N-}CRI`S>UQ9-faizJf+ci{_JwL)Ehttx@_?_pfWao2N8f zU!~#Fa9%gJdS1~G5J^YJoa?)Pa2=#$SNlL==fZz*_0YJI_-JEioA?j58|v8&H_X

Pp+rdG_ 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 CapPtH diff --git a/output64/dll/mgba.dll b/output64/dll/mgba.dll index 751c1383f46d00ebe0689da7e508eabf8cd35703..002d048b93865a201ef411da10b05bbb18d7f791 100644 GIT binary patch delta 175839 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 From f386a97886fd0470207985d11c7cfbf824a77517 Mon Sep 17 00:00:00 2001 From: adelikat Date: Sun, 23 Oct 2016 17:25:30 -0500 Subject: [PATCH 04/80] Update version info on release branch --- Version/VersionInfo.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Version/VersionInfo.cs b/Version/VersionInfo.cs index f77c7007ff..f5d6b43f46 100644 --- a/Version/VersionInfo.cs +++ b/Version/VersionInfo.cs @@ -1,7 +1,7 @@ static class VersionInfo { public const string MAINVERSION = "1.11.8"; // Use numbers only or the new version notification won't work - public static readonly string RELEASEDATE = "October 22, 2016"; + public static readonly string RELEASEDATE = "October 23, 2016"; public static readonly bool DeveloperBuild = false; public static readonly string HomePage = "http://tasvideos.org/BizHawk.html"; From 22ffc38bba5a40b062f86f0d70762bcc0caf9d94 Mon Sep 17 00:00:00 2001 From: nattthebear Date: Sun, 23 Oct 2016 11:24:32 -0400 Subject: [PATCH 05/80] mgba: savestates againin --- output/dll/mgba.dll | Bin 857088 -> 857088 bytes output64/dll/mgba.dll | Bin 807936 -> 807936 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/output/dll/mgba.dll b/output/dll/mgba.dll index 83e1590d1ad0fe49bfbba597a2f61e1ade3466c5..8eb2f723c53060395d63dc8c3c0fab1435f84c6b 100644 GIT binary patch delta 82 zcmZozVbZX|WI_j%;I)ZeeoSfy8*jDVVr;#|)Ow3~>n)Z%d&cs1PX`ttW(8t4AZ7<* b4j|?PVlE)&-tOtZvs)Huz;?Dco?lx5Dcl|5 delta 82 zcmZozVbZX|WI_ki7mkTteoW8R8gI4UVr;#|)Ow3~>n)Z%d&c5+PX`ttW(8t4AZ7<* b4j|?PVlE)&-tOtZvs)Huz;?Dco?lx5JL(=S diff --git a/output64/dll/mgba.dll b/output64/dll/mgba.dll index 002d048b93865a201ef411da10b05bbb18d7f791..f174ad4a701271e75d443b72ae9e127e3e1beabd 100644 GIT binary patch delta 80 zcmZozVc4+3a6$*u`KuGV{Fv9T<7vFzdYiHJHq+MI%ugOOmbV{x!VJVLK+FonY(UHo a#2i4(3B+964?N*^;RI^m&i0P`S1JH=QzKf2E^<@ a%mKulK+LuMz!Pp4PN4SfZ11>#r2+uc_9ff^ From 35979d074d685904eace47cdf88f03c794839904 Mon Sep 17 00:00:00 2001 From: nattthebear Date: Tue, 25 Oct 2016 18:14:20 -0400 Subject: [PATCH 06/80] Save state stuff mgba blah I'm bad --- .../Consoles/Nintendo/GBA/MGBAHawk.cs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/MGBAHawk.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/MGBAHawk.cs index c1dbd4cec8..0899eb8922 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/MGBAHawk.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/MGBAHawk.cs @@ -386,7 +386,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBA LoadStateBinary(new BinaryReader(new MemoryStream(state))); } - public void SaveStateBinary(BinaryWriter writer) + private void StartSaveStateBinaryInternal() { IntPtr p = IntPtr.Zero; int size = 0; @@ -398,6 +398,10 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBA _savebuff2 = new byte[size + 13]; } LibmGBA.BizFinishGetState(p, _savebuff, size); + } + + private void FinishSaveStateBinaryInternal(BinaryWriter writer) + { writer.Write(_savebuff.Length); writer.Write(_savebuff, 0, _savebuff.Length); @@ -407,6 +411,12 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBA writer.Write(Frame); } + public void SaveStateBinary(BinaryWriter writer) + { + StartSaveStateBinaryInternal(); + FinishSaveStateBinaryInternal(writer); + } + public void LoadStateBinary(BinaryReader reader) { int length = reader.ReadInt32(); @@ -427,9 +437,10 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBA public byte[] SaveStateBinary() { + StartSaveStateBinaryInternal(); var ms = new MemoryStream(_savebuff2, true); var bw = new BinaryWriter(ms); - SaveStateBinary(bw); + FinishSaveStateBinaryInternal(bw); bw.Flush(); ms.Close(); return _savebuff2; From 45ffd93755c56c14454ecbbadd57b5fd602f405f Mon Sep 17 00:00:00 2001 From: adelikat Date: Tue, 25 Oct 2016 17:35:40 -0500 Subject: [PATCH 07/80] VersionInfo on release branch --- Version/VersionInfo.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Version/VersionInfo.cs b/Version/VersionInfo.cs index f5d6b43f46..2e67b62405 100644 --- a/Version/VersionInfo.cs +++ b/Version/VersionInfo.cs @@ -1,7 +1,7 @@ static class VersionInfo { public const string MAINVERSION = "1.11.8"; // Use numbers only or the new version notification won't work - public static readonly string RELEASEDATE = "October 23, 2016"; + public static readonly string RELEASEDATE = "October 25, 2016"; public static readonly bool DeveloperBuild = false; public static readonly string HomePage = "http://tasvideos.org/BizHawk.html"; From 4e357bd88e170264248b73e04afa0184279c5b28 Mon Sep 17 00:00:00 2001 From: pjgat09 Date: Wed, 26 Oct 2016 09:33:05 -0400 Subject: [PATCH 08/80] Fix the build script to include the Lua directory. --- Dist/BuildAndPackage.bat | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dist/BuildAndPackage.bat b/Dist/BuildAndPackage.bat index 3696b9a5b5..e142b269c9 100644 --- a/Dist/BuildAndPackage.bat +++ b/Dist/BuildAndPackage.bat @@ -44,8 +44,8 @@ rmdir /s /q temp\lua rmdir /s /q temp\firmware rmdir /s /q gitsucks -git --git-dir ../.git archive --format zip --output lua.zip master Assets/Lua -git --git-dir ../.git archive --format zip --output firmware.zip master output/Firmware +git --git-dir ../.git archive --format zip --output lua.zip Release Assets/Lua +git --git-dir ../.git archive --format zip --output firmware.zip Release output/Firmware rem Getting externaltools example from my repo rem I once talked about a dedicated repo for external tools, think about moving the exemple to it it it happend git clone https://github.com/Hathor86/HelloWorld_BizHawkTool.git From ff10ce2cb4b475fdda3721fce4e003084b93e376 Mon Sep 17 00:00:00 2001 From: adelikat Date: Fri, 2 Dec 2016 15:02:25 -0600 Subject: [PATCH 09/80] update VersionInfo on release branch --- Version/VersionInfo.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Version/VersionInfo.cs b/Version/VersionInfo.cs index fe4a2d6675..f5a01a9e71 100644 --- a/Version/VersionInfo.cs +++ b/Version/VersionInfo.cs @@ -3,9 +3,9 @@ using System.IO; static class VersionInfo { - public const string MAINVERSION = "1.11.8"; // Use numbers only or the new version notification won't work + public const string MAINVERSION = "1.11.9"; // Use numbers only or the new version notification won't work - public static readonly string RELEASEDATE = "October 25, 2016"; + public static readonly string RELEASEDATE = "December 2, 2016"; public static readonly bool DeveloperBuild = false; public static readonly string HomePage = "http://tasvideos.org/BizHawk.html"; From 3721e26660a291cff0a1f15d7f0e570f6befa1aa Mon Sep 17 00:00:00 2001 From: nattthebear Date: Fri, 2 Dec 2016 18:12:18 -0500 Subject: [PATCH 10/80] #738: Core changes so sram pointer won't be bad --- output/dll/mgba.dll | Bin 857600 -> 857600 bytes output64/dll/mgba.dll | Bin 809984 -> 809984 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/output/dll/mgba.dll b/output/dll/mgba.dll index 981ad063307bac937f58622206fd52875e4b64ca..e6a5c81753bf27fdfb643edbc352aa9f3fe5caac 100644 GIT binary patch delta 58603 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 SVaG0KgDdM$(l+tY6aNpth)J0M delta 57785 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 Z(=G^pR8ZBmu=wMG0<9|OEB@lL{|B1*#sUBU delta 81553 zcmcG034Baf+xVPwb93*IWP(f*i7W^bAri!vAR%Ew5c^J4DW$c=zDyzs#t6~DgHlVi zsJ&@jOA%|tzVFm-h9Xf_6!U-1UC{Ua-v8VB`uY9Z=RE6q&U4T5oMn=}B`SSORPHox zTaTF8)>fSOx!df^Kay#-*<=a%AuozvBJM9L>UAc|Zj)uN-TQ>i*JTxXYTNDdfDE;* z<9$dM+kU<>tzW_RkRK4%ynFg;Cy@sgCYV6Ufq|Rh@Pefo3u3($w z8e65^aZ#6Ku}7UUSzg$GyejJAE&H-Br}3G8a3e#IVY$Q@Gi*0pBgr4O(n2K~ebrW9 zs9wkQkgT|kU?oh%6?L=oQQMF`%IS2zwfX4Edlj6tEfUI;UACP>%oDx*DGmE7uab8qo>s`nOZNYRP#$ba0gcH%n$ zjp>~)Y~2GJlNGkr3v zww+ZQlC`#FVX=%8c8%oPc2sRd+gfD4!D9Ov4IH(lhsRUvG+X!3IGQw#8KuHBTk~r1 zWM7`8+7S=x)5rEYrmSsfj1|3p6|;ftwyllbKuh(u^=!DF^s%`$+CVnhermLy(w?$p zcH=D4H?KroIH7gB%aoM(>GX?ka`CtLdE|y|Mw1ORs;jMG)Ac07_Dj%LmaR)0&u!VJ8g5fCaXrrFZY`r?o zAd_tmI^~e3d1E`f6LQx!waZ+RVhiXxi{#tZb)8P5o7n1iTSUNiuG<_+<86bx=VE7k z-F+6ho|n_(v_ReJ<$d&VYeE*;HuYOd{>W?Be+VJgygi@1;8^1ZjiL1-^Xd%V3)K_wzDmKO^L{ZJg~q_S<%Irjwz0SLdX2)Zk+4 zJ^wSZH1FvA3zV$1ef#B1>g$_VXHht%CEw)r{i?u)G|3D9dKY0KSh1BHw0-kUCP~N( z`}R6V`r1l-SA*7ik{9z`q6_&YFJt{U%0A-8ugTH8rJMELJn5X*>*PR69_Af9ZQ}5gl{z1XeWTs^MwEv1 z$@}7BYf8@8Zd{HfkQaC*f|3Dwt*)iGP@gWgB{#n&!}FTnxe?}HP z#<#bPyw`=?%R6?j3dPa+%u$of$P2sgBD?j=GIA&H#4mP2UfH%jnoP###Xdeu$k(>g z#ocN1q`V=;%_(_flYWgNNAeuMZg!={xV&XAcTmzPulMULN>1k8b|!FSh7`t;H9Wa4 zofXOF7&R%OB#9!lafCG5ja(q4pOoT3IF9s@I+S9J8llqE(ga+{JP7h3i6lkp=R-tF zo0o?nWl19{l$SP?B{e8H2S59h-ei>2xEwK1(jVFcl3r9OCv6BMAG?rc;8l@yq%D1< zK@|x$qYrebL|W6*MrlPQavYmq21ZsPy~qveOcnB&kYd;uhUgbk#j0chtuf#a0VmCt zarWLy!DR2G6jJQ1ltLGKf>KDe$NT{gs^PS~5UkZn4e}{$uTE-`d+?|_sYUXjLIeUc zbV5K|z5r_ksYZ=kVQU1bO@4+)5u^@T1(j-`&;;mOgVdpk&tY~A5=}jx!$E}PJiI|N zSqjmS2nNDn1hnSwup$zff50V1-3O(j5afU<3JrCI2?%JVXRs-XMAD|u;8qj{t@JbS zs)-)nfP|VPl5B*LHOY4J6ryU8YQ}=6f-X6xuQ+_Q$yzco>S1EkZF?RJuSFV>G}wd^ zKFt-0U?$PhR~4!G6rR>1vCK+sQq8;ISJ_HESte4I`5s2pCJmVx6!B@Uh@{9OCe6&R z@U*sKCYqUfBAXc?%cQT-)JBXnej@Kd0>7ydpeUSLla>Y=yF4lVuhSVkP45#UPD&9qK zqAux4Hb6u@Vxlu2%PQn2m|YLum;}e`k#-&<$a@-_p+DX?e1&B%-}P&*dGPo#-tPZ9ELQ;K2?2{w5%~HM`)FM zunT7+?`?Pg2c30LFP?Owt?xo^Joaeeu2c|Dya^TVz|T!kY2oevK`95iG)1L|+pw`I z_VCBj-KL~8A-}+j1Tw&T{7qTqyyn~ICX2)VIgCz36~j&Gcp`RKG8H_Ulj=AQVw>Y= ztM)5=+MI+FC(L8ildun|WCavACqroMC-9MpgtJ~V%Y@{M@RJFJ*1&y+O#+`J1Z^P! z0SzgJ;Yn!dclas^WeVX417E^R20nw(7Nk0DTm+q4kd5Rjh%HG+9QeIj;&8QijWLJehUMOUkDycUk^4*#gwBivhsC*@}!Iufg654K9I3 ztWf!LL_OBGeG$h!+P|8~vvmld^*gyMt>AMLe zo04pZG?Tit)pi(YCevxDRq&gcG$}oC8>>4{MDeWybVO(W36j!rCXC(&8R_H`T5cuW zPshpco)nlt28kpSrdvn~t=Ut$Vj*cRWU$nBCQ0UL&`N2Ejo@lF4Mxr-&&X^TJdeyF zuOtGv0tHWAF6bO*F?TiuCFpc=s_U49Xnz@ZoQ8JuNo$e?%jT16iJfP$d8(g0X|~eY zO^9N5G-d7!?cS?*&-fnkJsq`?)<3s@gdr$PZl>dKYeDxuz8y+0z?G~$3|~MJsK+vC z%K|c&kPTAnFG(;*BNoBXuh75wz%L;d>hUGyE+GMAG^}4j;;8pDC|W{J;xe#jDSE#e zo-QThXv6{-x{M4bm*Cbi(j7l)T6xy3if}d8C)i~Am|BfuiA?>n;Tqi@}&KmMP*#Yy{lKC`bJk(r= z;Y8+oa*%X^qw8@r7{@~KdXj*{zRm_5D)*#L8;G8eY$$yWg>FBPPkmBH{7*71 z6q)w$@&~eobc4Jf$vU!D>a&^Drk+(Mqe_mOue{~5mzoUUY{B`pW&~W>LI#ooXttFM zA)R6KRt#?eJlaZf$xJYBBNBegy4#UB4~A^ViAXfV`t76&ts5?#-%bweX_Jp&#eUM$ z`*NQ@PqUNQB6xkYET!?AdjYGt@*~%{k+<+cwW!ax-If(N~QchZkul>$YY*Y5bv@#~keOBAz z3moG4Cd+}eXtn_DIK%0ZE%%cwNGi5BJ`ar#qvvmWDwAflUMwQUO2@!*7(?->C*&U{ z#*!<~aXLpU+?@8$h4ez=Uu)GuR`;=1mIACh+2Tmb8RcugJw#bBN3wdW^b~Z7QTdiV z3~7Ruf?=c>2)`7PsLH!~$YHr`vW~!&@mX3;v|#UcnmP7Tb?nMn4t}jeLP!tUv64qn z1s&Ue#OZ{Xx|sC!fc!(mn?H+=rNHIG_;K69oFk+wO9GCtB%qrTIZOhMvLry7b(ExX z)Yut{PY{3d9NbUh!h2b&dJ?}Q*$W??A`QqiY4ItNL}{b;U_V1Dk{951meeEpQsPU3CRI0mpqooC`(Z7>S`WSuWZiO2L;&T_O6% zy-Y%UPom;;MdC}DgN(PjdX>xY8%YeMdz>mtY9B8$t{0v!xj#y++EMDlgM6#2Z5Q_fIrDerR7RO)NnrLOsh# zb=>F^k$QE9sz$mK=Qf9t2GQExpoBNAO41?Pn|7g9LSU9R4WvSdw85L=e(VJ#l%@NU zYj@&xmfaTqmA-_|5&sY!&vBp8R?yk~RmLsG=%O%2Fa}i_hZtkSFS15A#&AFfKe~Xn z=?IVgsE>c0j*8_sBFbI)U6z}ff^q>Jp}ar!>F1&f9AN^}i)DcxOyEHWMKg~vs=bsM zO&Q~q%2>!49yeu1RmRw=GBOyW#cP>SiZPbLVt@LGWJoj0(J(@mNSg!bFhb5kXb{~- z{Y2?@5WT@+4tk&>9Y-ce@gejI?#UsrGTng+($&f|#tWB%vN5zP83!X`=j(cPz`fylfe2t6;KO)tSQGbMKadauo zx(X*J((2F|Pi^RmE3m8w4FdOOw6@f<3C$t6@I7csgR!rp+uT=62I^6F^xJ(8t9do~2wL`}kt7Nx^rREY%{k+uOW*FryZd7*-GGlrT9quq$TX#|Nz>17! zDK=#m5N9V}Hj$T-r6xuWx0$T1LQMsUk+R1xA$%fTfob%KiF5+l0<9+DxLpOj8ACN1 z>X^}|DEP@t+u@34NT)^;3eF5_ga+v}f`)uQZ!-0U^mOWh4Vjfr+ml0ZE1gEt1&d)~ zPZ|z!892P3Zj{9~W>6P8e*>1i;7|swjTX^VKavmqCezwJgT6tRv-6WI`%IQZU7Cd1 zCq}d*Y@AGOBm-Wn$U6IY7)>gVGr~Lr*&ZOT_ZXcA)qJFgb7O0X% zzagp8(JVaPC39ib6nc?1&4bLTv^jYx9iB?(aAZHET4@dB=2~g>CZ8<&_Yk&cv_FL~ z9w|vN6G9?~f01NO4hc;vNC;7)SY;77tu&~+E7P&&Y-FCl{8BC#vGOCO{G63gnI+ryLrR(D^7fsqEN8eZBf|{Wu@=V8z!7Pi{oWw_JcrI881X-5;viftm77JY z5i&QQF1jS6_eTN?Cp=x@}c)V#U$60Q0LT$xK>(mDp|!aRz5xMz~jd|J~3 z7q}MRVvn=JZQj7HmGp<81+RHrTi6Iv zS2fER(NQRO_c*rA_+k}(SqhIoa<-vvF09)|84K=#2v`QiEsxp zQ{n0kWS)}#*g=<3M$JcNI_$`&jcMElc#}_khy>od={d4gdbpeRCph#p&$n8tgs0ErO#5>oz&=A&mI5)N3EbV_&YBWZh4zQ?~LI zV0|CMMFccq6}&8(*MffbZZe8;V>D2-s;h-u(yr$)2SJN5>p{zS&sy(2$Y zY(_A$W9r)`?p9W0A4Wd)j(lGs>lk_aJ8~_>h+`v?SG*&?l2+Jp;v;>fs`u$698<9R z0e-18C}g06|IGYGub?EkWSmLz_23hus?vMh&IJ; ze6)xTX{M8f<8g*_e5$r!6>GsHr3FZCtMpMHMn3h9EGc2oG4gh4axpz4(mJK2E-z^( zf82CzFme^~O!Tyot3(sJ!Am1ofd+SjKyPk3bKe`eL*Xa_n%othcyl4Na#!&6K`DyI zH$GelxdMHBP-+WgGcZS5?Zb6-A=4$U9B1TcNL%m=;?}bm1aWPsmmd6rxrp$mZPd1R zS2}*kSak1ajd)%m8W{1AG$NP_D~nz%uFqwY`%=XQTq!~?Ooy-Pa}}X$3^$Orm=615 zxbJXS4TbHOKbN9?WeZi=_C^xO*J+azfQ%TzRrdN*=~l z<8V$Mn}$JN0Sg$wd7A;8q0_j=G~^G-ZzMM#lT#^g6vuOnJyv0l3qm$aSY|Vp_y`QQG(C4Y!? zY&lmxkOuG)e&x}GuHe|`4w5W;I5WW{O~JzUG3;ZVf)(!Ph7fw@4Md$l$*u+5Cxj-y zW>~Ov^B~uYkRww3Asl`*@ufm_97ZbL|6IWa9_88++U|D+yK)SNGPx>6p5Vq{9eAz5 ztQMYRHST+&U;|Gx3=e~4p8hPWf6ikCTX2rm@Aimc!BT|_to|8N#zj^?|3IOJU1s%X zI}~j774CkPzWhZOmeh*`9*)BF&mkS@<5Ea`X6;kSO0Hj0J_>V;g|&TMYI7m`T;Q3R z#CzqQLn%uh%iNTs(c^nvpk+E96q(LRpMUJKh$q{izS+_LQKh)-S&k@*@_=tXFmv6hq<)J9v?N_r5qV8wI1#gO2`yx^az(4o_N!?GSel1 zn)*ryGF?U!93YLdUEJ!E@1>SIU5-=iZT`C%EG<3Q>tetw&r{N?11{GnsUTf0ba4^} z54(g0kr$H71119-=6nUsu`vVL``OG&)+({C;XGXC6UDka5|+aE4J zQ&LL$<+V#A4%4x4!tau6;&?RFMB47kJ7uWnQSKw@OE(_x_J&JV55`|EbuYyq_h)+5 z5vO#Z^r{B$fw#|6$y!VSU5@7K5pq!qsmr4S%cLIld5Pl3@QUTpfj-irMocb4nh?)} zOi$nkQ8H0VZ^kNEC#59uwK&#*WIl)^U8NOm_ze^@;12DWTtg|p1E0;|tzWY)d$9EjZcQv@ zYjx?$7<}P0egc!a@=fUAW3ZuUPVb(SG0vr(=irI=MIQH3Y$s?tGts zE7$NC>`#4aI#QHAwMBZ^orPjPEbhez(a=I^XD|L1p-l_m>r{Rjrqqdj_;}3jr}p8$ z!1TuNBYwIo=H1^6;NReaxndw+rOYsP*iq0l6)Q$JI8zQ^1Fj9^gGn!NGH?`vKjnMj zVr%}CuTChe`;_-XaPU(;1i?cE69@6-dsC(3s_-GS#$%Z4>z@e)UCHT`qV|;_Ks$c8f`T zW6~X_PvV1V&DF4W62HT($5NMX;L>D1zSJ;@!+QT(Vm{y@snTFWK>DZGJjFPCy~^#{CTSq3eq^2=%6rPAZ6 zd}Vg4=xyP*v1e8qVdHC}t|RxILbT7U0wFH_iFljRA1-XObi5e)l^uZrIp z1#?UUkHPIdv7BTn!kDO2!9Ljf6(3f*!oSij($lZ_Is|9^@TL4v8b1{lFU2=wL*d7z zd=6O-O_$+(6fp%hF5`RR`vQ;U_@O#L(sDi=WkxRNyHGe3chN|mz!}w$^$VUTCKp&@c0K9vVvzfjkA!CH*nil@E!3&#Pb`z ztQimdlPqVqvJSm%DfaB7zIdB+)b5sv?aR)`<{7feVP3%|n2nQF8h-OBzFnx!kQK~W zIef(T?3>~p0Ct5Jc=cqmG!soZ_@9M8o$ktp6+70jOqq`r*!#$4E*r9JNb^^YZ8|BY z4O!_(Gg-!@m~tA9gCpPYzUHWntT|)QUc*sX4Hj`OXn0tm;&jk(qe2bFV)Q0i0H=b6 zEtFy;7TYMrdRXkB6yvbiRVm^syB=So>Fk#DS5CRb*g983RsbHZn+oEBquC+*HedYT zR#vj#%3#xJ^x*Y8HoS{xa?Yv~vdhhVlP#k|F?G#CR0nP9Dz~@aV%+hf_glU(ZIl6? zEBQbgm;sS1`9|!1Z6$K?rgtR{TohW#SHSW6WF-!oz;uXQ#h1qm#CEIrSSGUyr^|)# z!z#W{Rrg*QyzYsi>fZi_&^J#Ey`J}vH$=QJWY)l`?up4z?Yt=)vp^riv_xpUnlD@T ziJ`~A{t1SN-J?qMH$=Dxp!SFey!%Khv@J45VK{sGdCAIobu@x zO;mf;UPIPG7RrLSE;=36#c##tuoX2DrS@~?CUqh zp29C#Cl|4&@K4vsMeHfOWj!mJn_^etd##np*j4xuN)fvX|6I|-uEI}LsMuBb$x6{= zvbvhsE6lGVu^;2w?aZBz&0y4=d8ryH4pVf66sM6)GN~DQGjHg8YF5&K+*~6H=FF>y zQU&SH5y6Skc_2O2Tc^WmCD$&q`6_bVQ6BSHuL5^18fcX^eui^duZ;r=oK|Wi(jwKu+hO7+snQ|J65WJQT z=(=q+i=;e2opP+@0ovg^naT!eecAq)U@Y!bsBD0qR*D$)h8L6~8=zN}VjLE4!o0P7 z`-+Wbqt7hxzsnInh!MBS6A50DW0ug`)1C}&>-c~qQ^vk&=$LlJAKxp!Hzq-Gx_6iS zI9>`&TTq7mOMen?=&_rPmlLL_J!;psY{x?uC_;0!zQ&UFIsg?9{1-)k+=I!Ago8Wl za8e!z9_#rU6^q%ajddoQF7fcWa4d!px3jwuI=14zF3Rcn9#YryJ|2rz)?CKQk+RqG zEshX(I5EyOoh*X3<6SG6BR06`;xp}}Ro{G5Uzf=yvd4K-JGnGcWU_nslRK$Sc{70T z9WVgttg$%S@2yw(oBjiTtID6v`0_UM&-#njS5XWM`ws$U)j(S)H^DWeL~lefSqXL2 zf)*28t5=I>xaCEHVe{aSkCJmfp*bVoU_ z|;D zG(K}5>k;^t?)P-pV7Fzf-}=!)s+i#___D3l0@nfMeCv;4tm6hLDKy@4CaLemWXpau z`w^`9(X}qA3b%fAZBj)T<)X{H&Y7$(dve<2s-6%Mj524^m})`@=Hw3cF`^)Ov+Dr2 zzDUN8k=%E`eI4X)cJ+5_q)?bcQ{dia*DyR}DkZs=rwuZpw&a=`Fnt6b0VapkV_9V1 zy$O~cA<6O;J>HGr+o4U8Ym#r}KZ(5Mc8AhiT-%Z`_;`zJb-dsFVvB1(LOR0pt*#Z^ zN)KZW%D#1m%G+FP8;%UsD2e2T-3tb8b8X}{Tp=>|@RMwFt?Sn0t(bl4%4geLiCe`X zvLgG|gMj|z8tO(B3Tt?Csm@QXF~pGfnQHwqWW5T=XRlso`c@1w1VJ#SEJt_pURYE z7Ph3m2i^uGXdJZ3$B29Z%ko{>$??{F*Qip-D2*>`m~StLcnfU%%{gf z%x>2hZy5Mis$MJQJH**upPI%h#y>Zi!T^g$GPaNG&7%MK5uNHW+VRC;aenOSK8~3t?7Fr z+2Vo;`(4ReMlcalD4p>V@LtNpfOZPgnk8Cxqv&lP7xl<1b6+G*?2gMY*++=#l!NpH z?2XmzLoioJz};;%cJKeK2d{gu5J!`52081Qcab=}1T0+5c+0 zgQWKro)CPk^{TAkN2Y*}pD;e@Qpta5*ueV#*0BCaLW@6pz1OhisJAyav%bsdaBC@? z(@sg3{e;{2u^~TDh{hwrXMw`iaD5$S3zQd%Gi9Y+)ID%E49j_dMl7Kf{m`$JK4_;}KL4!fd_2YU*dnAqDE%K^uF z)aakvsl6%l7gNT|P?l|3jwM)d+Q?7qn(?wK64FXxQ%v1^nfJb1=#@5YbK-I-$Hjn)jW;4isx2hA%9z|HLXrFr{Yi3l;rwivEf0!ngVt&}~Zxwc)aU6zV_Qn{G`o zhr}AP=CHNa+NqwkMFMJNXCrFul#J=P)!UHmgFZZKQd=}+xns%d?vM7FZFZfDz7?VE z#Hd2~Bgv-EC$VAI3{Nq<RtRU zO{{K~c#FwY&@2w+bPq)3Y7-rh+SSgyp4mU+<}024gxX$h1mlPetA>5AW=?C8`J%C< zgwpqrWXg$dDzJ`yGRac=gvGu88$5B&djrE7(lX|7jIdSA+|6|2Eh1Ag-bP|_P5?or z~xheh6k}yrI(L1y>@D+VWE59tJY-Y%d*-$b6Uu?q0{Jq zx9qgBmR#HJWQ!L%-3cy-3ZHm%V{s{o1H%s^oCqmlLfMiWtB1wczCcO~6K0X91yvQP zw2J6P7O%1~%8}h24-;SGRQX;aiiY|??QkKh!|gCR$2rIK4Kj7U3QV71pCdyv3okoPb+3;mdNrg`z_qOvsAa912x)(R^+J zd#edU8x2H>IK$?L2?pty)u1*onQ8-bVUu?QQ$YQN9QOUe*!Sgj<2gumA*trgDoQPK zaE=m9*Z)0TSJYjDy7JuxCJw(;7wQfei+XSCmfJ32G*L1i>wj0vo+dbLl#@UBd*Q=4 z)JJ`M98;tPVuCV;nxJ;PrC1Kc?z^7$$@s$#VLu zHv#;)im3AEes>y4xYx;oQjvmpz({6Ou62=8tH5fNXYE6AkPsS}EEQ1W&$Gi6B;o8(7kWhrg(Mn6YYNp`nphi|FO}kjf3wwmR7vF9!Xa-E&AnyZ9r7+QNB!taP`w@G&jzfKBy;U>F=NRK%Og z+-PA=z!;{BH5szrC||+(2i7Kkg`*81zK-BWiJhqh!uUEuIQbS<))8j-FDUnKRn9{a ze%%L}FJ-t)AF!_B(FFcJ?P z>In_#u{)4kPYA;6hb6-<^VJ*Hg`K`XtwED-GSjiI=9yGYO`3=AR z@@V<%a~QE8G{23VVBtp&?(SFx{Tc|30$%tjDrrqo zU7;wn(i9Z?>!sceg>@X=*c3eCg=o*Nt?`sFXXdKX7)Z+{dkJVCFLd{ubX&18Pno|v z!_IizcGZFN@j`ZUDZ+eS5y) zK9KRBR#iNz#`sPDRAUn3pHca4jGrj4E1Jh)jQ@km|K&RJv)|`?y6c(1997`Rb?Ku- zp_mx-c18_Vsy%WIK58yRRVuuP#11NP#x=B+r#vXy$QUt$MK2g|e+{Nnhb zI?B&tr*%=V(d?<1Wm=?y>6z13;}`fXkyuY5ehiLO!QUXVw_%oP0~F#ysZ1ZCs04lC z0DiErm~OidD+UWK$w;Yau&{@Anz@;cf%mqD`rCLJ_UG-PE0S=0Y}n7{8+Ciw3H8{< z$awMApX5DoV|4Boh(m>Y^y)1r9x4QP`vXNxmK3}(G@ek3o>-iFRi^r4u?1Fu0>M~Z zq6may(MzG?ouSd8P%+^)?o^6#SloLH1`QK}X}nTT*WL7#|uQ2Nnmp;G;ZcqnI03mIdw{uIK74qL&# z!A^iq9NnR*+b|~^f5wpbKMOD-yn~c-ypZq-XJp? z{^|seznqrKM`$==^kKbQ8<)Z?&R|}0dY{=hzohH<`PwH=V_d-=v_zV>$G6i|X zIE)Go9a`7USl#O*&prp=AF|E$^|d&zU*P-vcXLo##!plE`HVjvBcSowJAq>7yi}rt zHDd*Rbvs_p+MBAhy+ARpJfP5Th~DxM`wB*Ybl z%*JVO4DeqF!)X5;2(}4TV96JP8860yY{CsP0mvLd!Us%S=Lm^}i~{Fep)rYo#`7>^ z7U1)FLUViwym_8bo-D?9%t8omxuw@%2@UYa>{7kW7}!d^cfP_mRJ`vb{QB6P+0$A% z8&-ZV$SxBcueLyiEka9bm<&U>#d{O`7AUen|p5cAfvI2`SBq^*s_l9ZTWf1DVGpW<(xX|Ft>h2m2?^#fd?IthMmnQ!cc?+VX)nT zy9D{7&0%ld8;jZbc(-oI+KExclltfqS@zq@E0od-g}quZ$m)0> zy*CZ-oQ#BV1dAitTK#|*gfH7ap+h>S2PmM#WX5BYVi7B5fu5+ebtJ_7O_KPl=+xU!uY@WHm+|es zF5KtK$0JvYu>-Iv7G1>Sk%?iiaE^SJ@3FLGHHz31U~6+Rtp2!b_;N%!=Uk3tcFtMN z&WAcNoLFL0aTk=pXwPPL7CW+_F|}*rIQVO1Vh`4>&&wV*1)oe zAPnuwJ4y@_><9hXs^LBixh#|k7M!>FFOhB8tyn84_sY4&sdM5rJlm5vhWx=4_@PdG zDuqXoY_ujIo{Bg-G*o>52r=|M4(+JEhog);R)W7Yn2O7($r=#E9O5t|jKCVdzpaJ@ z`%@<<=pdFC(vV~~_`~B4VmjsTz_5;D6a4MQ4;{s*>Z4DvheRVwV^fygLNUP)*JHj9 zQqk5zq{zOrN!DR638g!UhbsCK+=pA^gXO(19(v207(54jjV@Ysh$iUZaVIfQZ2XW- zF#+|!*jWUUE3NA+_IDxmC9fW030gA_y-Kp2#A$0=I);PwhG4tCqB>cEp-c?m8tEwbP`+A99V(lrH)vAi$tE!FP zYiBD=ge-P-NFGal;j~=9Q}%k;^muUlM6B#r;$MW`R+RzCpNK8%|9DAjgb9D&8;5NO zm8-DND2peIIsA6yW9Tqdk;e$C|15j@8Jze;G}3#$;oc`=2T}@R2Z+9v?Y^>-4=Tyx zc=(2E!&{|7#Hb7iYJ4D0w0b-yuZJ@Z2&`aeYWRUm~ zsSHyGiS_7D=V13B(U4i`@;PMv47P z5=M~EiN1v8qr|RscNGX8BSu5b(PHl=Ybvu7Ts-E$`#Us;KTWoWhGB=WCSrEhAtV%I zfAkOz9b9Uyak#s1@suN)gqaBYNcKT`I6emddIhfFW5l_BVijf%e^$oy3RO=~***l0 zjS-XaIhp@hF@prd;<4gVbIL)@*WX-UJMsH$U?0_yArD8qD70V0Zk&vX{af#z*t?^{ z?|Y|18<=x5?~<*tig&HB!mrUH=H$wEm+jg;D!xMATtxu)b}(|6E^J-MjiW?uO!Yu?!wE@EKxQw8vY0_8D`7 zP#-@63vMDBdF$~#C);CTe?mqB#R7N0`3lBnh%;zGAPAGiNu)VUnJh-pA5X&8$zn1s z2mm2dG?Qj9HB$`5o6(J#q8DcS`!mJPBoYF$aD3{dhFM}~N(R8(DWXK;pw(1y0F{nN z(p2#=Dd&x8w<#w@NMbKj*%Mhj##Rz{$9ULd5gU_mpwq?P^l%~coi1k5o04RoE~e|t ze7zpMZ;U+v-wq^O-HPmce}VCH#2REGtYIJ-F3%Ag;X53^x#;32uy8JRxR0gcxj6T* zoim8lOI%vRy1_-KaWTY!_`1ZE?^JxA)OWPSKW^y2+%VEsD8|9lPXiX==(n!vShF|X#K>q;>K>Z}wi&>ym;ZY#wtKB8Y1 z)@zOaTJqZ^;){M8`0W<=;5*N&yG0W|E~vam97qDB+&!X=(ic;p(tdFp=IPh>i~0DN zV%Y(drCT$h-$C&*y)s#9QYbojbDxPUvhIG5aoM)u888OQYK&z>ORju^WHq*yv1#)e z&yp)2B;k3@1X)BrNU|EYE0}zOWHlaDusFq7kYY?eNU|DtD?HpIQt=L&Ry^o{4*4W`sSsGqysSUF?Xe*2Gen0rNevB2!KxMvQ;b9=uMAiDU$H zJ1vHZV{;iNdN^25i?itWL!jIlu|2-m9(o2xOAbt9Sbey1MvQPP(V4lF94b1Ey}|pe zSfRp|PV9FMam-^}4e{h5nYA)-vivPVGkK{KbUQ0nHpgbj4)6FJ)6_loUh)FQo0&4I ziP)4u$iW{xgo^ff#>{bVfCP3}UlY;X+>Y^`;ycE7VBgSk2j3N>S_A5%HvT;=qsj6M z&KvCS1I731sXd)5;PIz&awP3-OXAC3=ULIO!U)z)tpO7l2-{b{-@@<3{+V*{+hAZW zcZ8U8;%7KRtVWRdl6|DhQP1$GX6BFR1zupbOlSG($RoHFt%t=2WtDTE%meK0mv2mT z0jd~srm+@aPv-dT9iaPpF$6P}^z&jhoEO)f7nhMv(B^{JBsi0GiyZf~LCmYBp7`q$ z(V8OS-@=pIzhjWJ>4LbI_~f^hGv`X|&$$Gne3wu0=_&s$STEs@VL>})!}tYkza)+q zy%BR7FN}vqm&KK&xpen3?%&IwL<3Iac=l4!8n6Np_Gidy;c2DsI7VuSY1maUyka)v zsFSeCS!pK9E3H!oPOz143Dd8Nbt+er?VTILlzC?gf*f~Wrfdl)W|*a^r_&e&cdv@& zs~$yyik^cgH8lThHn8Iv`| z6MHre_&NaB#NfIC$iy#`y%;~>7J10X=KJSbd8)F$Ko-syZ8%-#b29Q0PC(b&z@uxT zf7@F~GZpY#5U_s*{ARV}G!7k&)h$q3ZsnIF9cLA9xrPFM7NYO!Vwcbhkm59c4c&eg zkI^57L)GhI4ygoNu8T|Xk8gFkfvZ>|%)fyn>&KxGb`w{nkucz+}24*Q>pl}dc1@{9xF=`(R7p4ENxyI7yNk7`Y^FNPN2n|QvP^x(NThmh)! z{!;t~56CM2Azmd(lFKXcK8NYZV<#r3kDASm)1M)}l9A|}5n7xAJ*mDnJ)8nIs$YVS zCTnr}#drXDlGD$^!>>LrdT%mD8snnx<4S*RE?q967fXmx6JwKOoD2`V^x^myPkfB} zilipQ81*KsFUzRU;wt|TgdM4GaprTHHW)uaRo2l0ahR2Bgzv9ePjQ~M^0OeKtlr-| z0%dU|w8368hN)QtmNmrAa~knn#N|S7RI%UR>~t3JaY$q5lBOK5&G`KjnM#fudjf=c z5)M!oRAyUZR=2;EHzFTvH)IXOkM|(`-F2d2Q@Wd(0xJ%1{H9a+qP z@?%JOPc1tZ%PMm}gtBf-@7n8_M@2!Bmy$jU+^nGHW<_LHpwJ`OxI zvNP&2g44JJ`upkQ@K?esQMClcJGj%gkZFP2e)<@?BMkork3LQ)8Gs%%>;MD&_2KUI z5s{|}Y+pZVslPsvV)}MBK;JiTxF1$BaswJzh9#$QO+6f^OLOsIHGZSY@JXP)eef5a zsGjXi3(9QxtSpKfvTMpGTkhp$m2kKes1GmIoJkd+=NOPpI1AL0yo2;TMDxNZPM4eO ztTb7L!&Uf^3Y(~~rV2}_@JXbiw?~EFsc@kRC#!I{3O`a|3l%m{Ae0T&*H7J6LoxQ9 z3Kyzyx(dgs@FNwrQ(+So)>NUN3QNdPPJQsUfbR>_L-k=k^@CaB;2(j3$T2oSL{1vY zz@bpR9}(eBsJiS5Whr3kQn_ch^FzI0J zYkYK&1xupk| zWsJ@T9Bc662bc;81s-^FQzZ_dvOJ5c@ z$py8r{dbM?YU``g?~PEcwmt^0;|A2$o9SyWaMaeL*GDOV4f_^1)N?B_yVFmCBLN!k?Vy*pfw)^Eh0EzGW?FIReM z8B8;D<#CYoH$1+K-Q;s=R~`LHitkot*GE2h{tJH+?5eNtYrctNpN*nzD*R4`(^WW5 zg`cXhoeCSMu&N6ER9HfVPjG5rc2CJr>sUCIb-`{umtBG2{9Ek_ENh@|f}y|NKp$DE z2m1K-d>>b{P^c7xas17Ie-c(-$9&s^>K=TFhuFw^!OF9=OTV0et_BR^1PqVzbRwWU z!w0{^9VjpVr5TmqoAHy8&&GqZQoC}Bx8M0Q*b$S~o{qbRpUGV0%l}F$fc-xXZZy*S zNTIR%X=Gj_{dN39B1q^>PDt^M_2wXRKSLr zb~L@~6KBe}rgy!of@^vzZq}vmPz-7?PIW+oI@JLU=5JNxHK^&Os}5*-C!Q)5YI>26 z61T;M@0-7F+0IOf8yQg@r!HstmT!TYzE4T(D zZz;G2H9f6`nqKaBCFGi(#@F-^H_M$Q<*s5-gPy7b8a$y^sKMNuio6CjJ*@&wFZhY# zfToxJi-K!<*YBDY!qVr8K@Fz-t~#Vb&u0p*!4ppvT!WgP=76TJML^Tj_?q5zvpOt_ z)QU8?QLRveLw{2$)L^9QfCe=^tpZI?i-4x5ML^RtU%#tFpr}yoR4QD0P{B2rTA<(> z3_hUX8r1Z!msT9r^wQONK-1G4RQ1d{jS#0+tU;aXfClr`3N@I%UvWT#nqIom@`u0c(2X&EH~Z}rp&X!>s( z%=Fp#(+H`16@wZKRvpmbb+tkbF5RWbYf#gRQytLsvnM!T!Xm} z6kLNT_Z3`&o(=`qpr)7V^=G|cbso_4v<9P|GX6C}r0ReMi_{7=xKXW8gG22~MH_n`?SHbsiXMH!B8G)lrcDM8P#Uv{G6g#W?b`{Q3T9DGA*kp^?GE4T)ADz3qlpB26a zH9gIqrkAcpK-0VaP+k8u#W*zr!T(Sn(EUpv*f{RrBJk(&uX!9-Mx9z!xUsZ?YcN>F zH8`}C!q=dtui1O6r_KYKUit%d{nr$)-%&hF|A!)=IiSI~e~o~){%Zmn4E9!9q`_RH zf@@Hx;u=ixQurFw^fY^#-qIqaftsFK_dp?Nim6%z-YA_aU4@aa6Sm<^4F;AHe-&Z`+6tCY_`+$qeS79Wl;2JC<3a-JWItABYx~iu|K+{WABT!^k4ZLl!YCywJ zs1<53mns!#Fh$kZV3AWDmMYZrvRO3%H#jP8dkU4k^ekY#{Yjad_v8L{&}e8|NqtS zugb7G@lQkZUo<#WmHVfm`L7xbR=3;#Ff{A_s=@qy%FOrALhS#4)nJ^u-Tp@*8-IV* z;C1z=_Me3E`2VX0J=N{@KM0la|5pueR1YfuIjD~RziP1Pp}M^OQ_%c34dtrx{}eR; zT|+u`yZsMA?0^5P!M|yb_5Z)=!1XR_uJ}(tR{!5MSaeP8g#Q4P$N%3o=&5eE{{g6u z|9{S)vX%SG_SF3U@3v&A`tASM(ENdhiqw;l|1C6ssDX_ylur1+gl64`8c0zc_}@Y7 z{~u}~SKVg+uOJ(LA8H^{b>M#kGffMQ}*@r`Q{C}u{Ty>lM z!O;A_G!Uuke<(D6sG_EqdtO-$KM_w@QJ5%ByF$j09X zDZZ~aRCVA3pgjIPKR^-d*J*k~(-j9k04n4E0~Fk3MU|C9XEPt{NGSK& z>Zqtt5m!OQ8ktd1v7!zY4Yp_(#7bMV+lmb;wQEI-O6h`#sE8v%O$A|$7_cPdzGvr5 zVAqBuNV4}n5BGU~d4J!T^KZ^M-^^}Ey=HSOHnX0ko&(LL+1!fFt(RQotw1x$=l_;9 zXtI7pJqMac&VTbNHosm}-B7bA^RHPITTm}m=sgLW!%Y4+r=raJ=GL=SRyBiO{x_py zChwbFuf{usc9ZmH+GNG%cIeg9RliNM*%e#ZvAQ9>37Sn+*xT#rx4j8BK~pqQVXv>p zR2J-+oc}#n*!$~-T7f-M=HDJGe1q#wd+#~0CuZ`0PZea|@9p*EWbX{@fnNUap+Y9_ z_xk#mY66W?rC+kq3Qcve=j&0m0*%sas=_zDu5K*a2+hVW?5pzh$KDG0f6!n#SuubA z|3OxPu-?m#o9Lj)_CozVus;FONo7UmPrT&$FWJ3-IFu9bv4f`DYwDw0!vx0ec7vJx z8?##h{fVoy<2`mD>o?I}sLzBA6PU28|IGN}hFt}+KXH9dyoU}l^_ys)UYXsWwY(wr z^50t4P>{)Yhq`V8T3vC4m=E_*=ZKRI!u9eDMcYOkqpSPfe+ zUiI(){hzotdq6QRJ8rZCbw^FLcP3@`=iKbYravR+rkn~l=ERM3(A@UXoacb>o&&r7 z{!ipQ2Sm@=+M0?B6dzH49 znUnWcPTpJU_kI2Zzt%wu+Z#D)Y#Qo8;16KrJO_-N=Rj@;Ep4A%m$hQN|3Azs5Z0QU z_}%O{r-K%^7g=d6&wu7Yuuv-V-`@e=iGraC3`~7?b&fd2kJp0TG-wx@V0c< z`+sNl0M3q_czaH)I`E$xP7B-HA7%R6_5QckW)EP!pA)anj#US{UOp{sFEWRi^Y7n* z$T`I#CksSQ7I+MZ$g>;_a|WGd=s*Az6n|C zpIRI0XML68xzWP*_KKYMzxB`TJvMT(z{tr0I>>tex3s-cp#J{Pzat~(6dO5NVB}(k5s+<_wMZP@x$`Tw$T4oWK9e>k918|NK6H_UC_VzTNip_kSKI;N^e*CZOK`d7FU${?FG0%zO>3#^v+>KF#NrX4C%s z&+h|hfBt*#;e2I5zVrWkd!PRmr~Nf#R>b}q3Yvy`hUAGAXZ^waMQE)UP)3HUa-v8~K`m8O=-DH5_{Wv?*r-kv5Gv|7|;9&UiBa z@;QM_{^xN5UjFBA0xJLWHUU5X^ECm}fAHjK0=wS-{siJ9y|2h^L(YHO4AjUtGXL^9 zflU7AaROfc=WhZk|MNBh|37V8d!~M=JoVv{?i6|U4i}i&jT=zXJCK+x9RKl zYg>J2<9lEE{Myjp17_@g@AH69yOS6DjCWL@7Zi=K7yIQt{opUyxpZs18OR@6`QVxNAy$ZOsN{C4s0saUm3^z~xDoqdpuc|cfi z-=CSOPyH<~_9>Qou}^oI7yIr$2`DDM^x_6qt60(5 z;>AAw_OZWvcj&kCS0LfHS1aJRlPgeJ{z<5?otc>9EvnCG!i#wbHG4g7Wur@(s2>#%_@s#r0x(2IRK&v~&=zg;rnO~6v^^pn(@sP?+< z#eO@ztBl!&*i5fOpU%T-0LA!2UhGq!?!`X+c9FSi0M*W40l%HU0)D%OQ;<%29r{c@ z?ZrOr-+6HZpHi`+-_DuiO~7yGuYljqUjbXSlPgeJzA-eV(6kQry7ZYWRZ~!OJA1Lu zXq|TuefsVEd-U5IM|xB8+a4t7M-7+edw9C0^_^{hAjyaIuON{r1j0b?d6V zz0kXLznwqJv}&hfzPD}kI`kQ>@?xK{4PNZiTIa<+{dV?K-UR%1)_2uytM=Bnyx4CS z?IL3mB3dLSuL@m`;r&?Of2%^2EL$T zMZdkj0)9K~Id4F}oxcJJ)sFb8%o{2Ff!ARJ-&3)o^Ntt$OdP5vpy;>rS0Jt0iGJP+ zI2D(D89Ln5I(Q40C-OVW6TAuJhn%&AF>O{2fYd8h4K`{pY$e>4_21%2o)BZ@g3el%oF*2MP4WH@Z=76n8u;rHspzw zWG(LKgH2>D=Td0~h3pP3Q$`-42u6nPq0 zjms{$7phIj2Q#N29|OzN$GCEQkyI1N1HFGg$iu*y&%enF)$b3}!@V=Gx3pFJ7SmJ> zW8aXPYTr_tego@#Zw1QFJJs4F@{z3aAOR8doOeyFZ1MirgYy>gG7|MVGNflp_Ms?Zjc z`PZfc=8Tug|J(`aXL~EKw~P+<+Bbt<{^wRqst)#+;v8=RO;hE6ZpGNSUI%;2xSBwd zG#jbtsPes~t+uc!nvGR(FYs2Nm1&Ar9-xW-Isc7KAgVqUw<=}+wdw#(^qb zrmiN)WZ$?yO6O-Fm#59fbxCy={hdlk$4+pC8As9h%i z_jUp?wRPWsUjBcB4l>V+y>GAbe{Va`)C%l1{rCS~ckm4-aME56TzOHK@TG-adY-qV zelQw?s$x6pgXdMeaZvckt}BU$58F|{7|lTIQCVfd!QoR2JIB`Ts82aN>Ya~v)F+T$ zao%C!>yEx?SLmxVF9obyu2S@oJB7-|sCY9H+DfZbA#u zNTnrkH7X3%)^82g)|W!5{-Me~hll61H}!jK>#h50>)ojyrQcm~Rqo#7mB$s`yS+HA zm{hbC zh2QGz7T47~NCZ8lEBYNB{z;eqC3W?K(3EgpeJLy}seJtC@Z``5GtQ~2UvMr3a3bt4 z{gAr)t;FlkuB)Gm)>AebmdSWTP5p1I17jMUaj(B#>KPSD!*L zN#Ze9UHxD*0Cht_wB4+$uR^QQ60{J_Lu1g?$#wOUsI%-ppY4=)t^Ti~zHhj5L87vA zB;2W;8K1-aQ3CxD8AwO6Ts9bgl^8pI?8IBdW#h%fdECqI_N+p#=V}jaE^o5K-5bk} zcaQhv2mRKoyREX|`0y)*<|wzW{^>2OF6@qaqk(7$iW=Vk(?@@a#5LKmGd4Sp<<`G6 z`?_;Ub}Ys}*u(pfsz$J{&8}coTs9zlxEZ-RyV$-gJ5F4g9gES~apDa-YZx&m`?{MG z8&_prZzqh3f|J4z7T6WjPYRo+sK~l3tYz7;{aAJ^9?p)nS=q68JUiBM`nMm+x_*?< zb2?09R}hg`EC2Mp@c2Nx=+zZRo)$i(K&!ayv~b^c?&ykN$k3=*ep=W(u4n)0S<7Oq z_(fKnva^>>n_hXx>ESuuJ5OF!Af{{z3k$A&r$EfCJmJ#tt=)TFd}WcC8YmG4Yi;@-Z-WvY!2+Gk*LDE@Qjy>#8!L^-uX(A5FJW{4PReeBuemU z`1)%_qMP(^^O7P_hIe7VH;Y6BABEHZQ6vW96Y$^5ip1a!CH&3}^HsV?4CjJaUL<Gz7n6ujiC9~22&dibzYBxd0gaKbtk1aHAJHgJ>p z7(Bj;MZia)zR@faO9}LiMdFLkio|NX*jyyu+EOIe;~n@=b&+uK3HZ>LMWR-EXl*YN z!7u~BD|Qr#QhXeqR7c17D15%YNc6_1V5lG<2H-UqY9A1Tq&G3w6a_?#AP!$C4v10s zG;H4?AjZf_@S<=)OvD>-Y{!7GWPSKRr+}D-x8b_Z0WlNr!atM-#9Vw5UVm^vB=HtJ z@6do)gg4;X-2=j0LJ-4*4iAWxcnxkjA|M>R3qL9gh)vSNkB$k5?b5?ndIdyb2@{2P z_6`UQZ$qnZKy=4T-gsO<^pqZ+a6&-z$4B9TCk8|mub&t&#akx@#1H}pzBMo)MoJG; zrv}7myyO$72Sgm7gv(L6tOLVmFd$xoXP_zg7@Ulz;w|_LnubrprO3vo;W{*<#N=); zJqEFKT+rdUXcj&O??DN?4PQia@hP|g&BME}^vr;mkJsT4l*GqiIa+|X;C!?YpM-1B zBD@1j%pY*41R5NO7UQFE99n{p!&zu4J|T(H_%y6VEAis2far}@<0EhsT7x&>H00oI z_&i#VPr)xx72Xts1LAnJi69DRBNv~9ozD)4t#}>Yj<(}%S%zxy;vBXJiH=MZu0(}+ z2M#(nAcFW9T!2dODd-{%FR2e<|4Rulq8xR@TW}5Pj(6a|A5sw?g;P)&-iFIjPgw_Q zLs%+THe_0={Km%lb*!f5Fi`Rc-2Euc*zvr8Fz^~Y8I8tA;dnI0B#2`kN8|7bxD3VdX}A+j z#EW48@f|b?AAzG#Io^QxBMWcCzo04j6x@ua;$8Ty^EnH69S%h{J_gOn{Fp&t!Kcwo zd=jojv+xe=IGilNYw#R27axQ7qIq~5zJccB(=c=aSs?4f31|V{f*+xUcoz;IK^Ao6 z`EOueLn+x9_P>xUz(?UzXbCAPxV6y5Yr70^&5(9Up_!kuDp+^{5Q*!v3Sk0(=xs zLA~)dT!|uh2bNt-J$wXCL<8^^T#U?t1Zhm^C1e3!hojLTd>k%7gYhX?cqv(c*Whpz z!y9m}jPXgh6^+CTgFetGd<@P&20j7TqtSTRApiScMj8-A;S@9uZ^M-+j(1?$<;)x( zkwla57F>+V@o89k1zCXC;b=4kABPLjRD22+jwTE68XS)719<)$n7L>M7m{!*nu!-z zatCM@J_cu?1U>=VT}2zb25&&~@D{8=^YP;9fVc@IWjU-t3uO5i%F#ku4r@$)ERq+- zasj2}1z7M??hdcP>1YW)0oz?e7RYjV14_&Kum-Kfi*fXWR?Bi&gVxCMYbi&LEQd8{ zJ>C@KxqzzV1z2z$S%BBzbmZa_Fc@cLWI3FKw#)jk8r9;(^-KtfPL#uHREQThP>zDK z99E+eSw4aC3GBZnFA&tBQh8w_d5OBoa#)4B<6SuNMzR2Jz!j(r@4#U%tO2I152`#&QK@KN}CGz6c7 zhuumR;B|N(8jiQ&4m1)k$^+t3GzxFPzaj&lf`{M6K{W|n z6wW~t@k!W)iBH1o@D5atw_!E1@WKj+%h42k9Iil9@eUkuJ6V7?pt*`4w!8pG+`%cA z7vL&1Q8~ z&;OX~?g@w#7vk{ZshoD%7#{RnNKf0e2i;uzC4{`wUNqER~4w^C65fp<*IyU%g=GJuaRB){AwOtU)tn`G=IFS+X3~poA=UC^z{rS6+ZMXr8?A5lfBc<89b^9Vvv@;cT=3pM?EB zCWY`(_%d3APs8)pbDr=9T!j|n9XMhGnI+5NDzp@DI+zjvBF*FlxC*V54d94RIDoPo zzKYi1)9{2UUL^P^d=jn4Ct=rr^SH+A@Gi6oZ^JKjT5m^ooswN9$IeY{Skma!G3$g&O!5dK&Z@~>{ z5Z;9sY$Xfu27DC_F$vO`6TT!1@KHDq4aX;8w;HklufwTm6yAp0k%1T6IQ3{WJ`PvQ z81KMg+sOjF0au{7EQiCsA`4_WG*|FrlDq(i{f8`&7vKtH$#OVs2U#G?;R-ZWmcwDS zWPvP)E08VA;jlWgK$gQ5Xr?TO!*-GdvK+2Ji7q_<9n7$LvOr#dE6_aI01gwyV!kYg zD^OCF!;1@w#R6FlKR^p*IlQ=Cu~;O_;Rh%s%i+cCi^XDD4nIIkWH}sMXcmj51hGOo zL1}yn_ADwEEAbIH6RpN4U@%ZD*5EZb2|0KRR-^TJQCuu;Kvl9FR-;X_JV-fmWjU-y zTV=T!;sV+(FTiS4D=&1Q9Ek%dht;SMFT#|gpe%>gs6>{RP>wWN4y#eAEbmA;>L$x! zHR>+Q51<^Gy1am?MrHCsCoZ6#vK-c--m+XP7Pp~@EQfWdzbx-eIT|3#VI3MM%ezpH zqOu&WMT77TJmo-^9v?lh*c6Ww3?WFsohXJErN!bBG#qchm(WOj3ijw)EJopVI2jpu z3$8_@@eVxYpkgrwABB&jargw>iQ;&1F#V&62g=X?m;<`8pIp%3nHj@3LjGKAeAIv6v?7z`-Z8P59W!X0f>E6!wO|hU-pc3-B(y@idki zZ^1#Q^PG?k;GYMvr1%u9I+OgC^`UtdD<|v2(SsShE01KT4QD0rlB+IZCGZaX3Jov` z#HGdJ`v%K`kHXW?5PS?yyNtWX+wj86Ir(@4R$sxX#*5J$s4KZkd;(s0Rk4^Q>%b$f z=C1J(xD73m^~V&8kI+)Q3(e(Yxf=op?)WKpBP(4)YM@%Y1@F0*JwAv@z-_1-UW{kL z*YV82N8w=98y|zyP(;>;)o7rsA1@ZCqd~F`d=kYD;`yJ%9CpTd-sT`;FJ&wP>oW1D``P@G1B@nuSlp)hK~?V9`YOe=dPGu~_^V z&Bq(?8ngf(hc}{ycnfyFk!8f|@HVtWmczwpB|Z(`MQiX5+=v{!3wNOPcyUv)I2u*q zBPM1HatY#a0@{wZ;GL)zZ^P+G9LyfW*{BeognvXqdDnYXZ)vJPDTGtv_8!lQ2GhVT)1 zI~s?#;mc?uJ`L-Tg%{=I|EcBd89@|Yfu`Z(&_y<0Ql@D_)`7o83-C$!8d`);!?#fi z@4#}4Ex}vxBb3Iw@RZxx8hjMqg{ltb`EO$$MJ^W-a6a0KPr^lLJ3a+Bpjx~Ozjp^) z(2b7Z&rk{8f=?g~pM)=>QhW;bx|?OkN8tDGAv^F~8#uF?v8iMCvG{xofcsStW@WJ2mIK|uWv=j#lAA=XY%u^3Zyy$AbeO zfe)ZHvOetdF{>rZ;WD&d)`wTD=WyZUu>A&}s(1}Pfn0nNp7AfvnMn}CY(v}e;uF#g z)yhinfGU>#P#VMWs1P5A2mG77m*wyoRDw^!Gd^W&@G&sV{kKy$a46=7WPushex@*&F~TU3L1z{!z(`L zGax<=+gEeg@fxf|gAe8TpTb=I1$!?m!DT2W8^b1wy)tc zAYOw{pwajwJYyRVB76*fjK<+zSh1bV!YANaUzt3WWTmfIMl=bZga`bGhX`JS&mc>d z!=XDkbh1AD7)`~y@XlHeAl`;Y)sbrW2z&+2z^CEOJ4s`_1&^sGjb$AZ^8iW^*l;tN zi+ADU{5{b;d;$(F2#Wdm7~F`GvJSkjT~I8*+wj}%gJK~*0^dZ7@M$=?Fep-Z3-&1r zip8=Hd;pnC2yDz|v=r~c#{)q=%`z|?S{xKB@iDj&t(JA*eZinugSX+gLqR_A(kXls zt;eU~IWY#oOVaDK-;qC2-}1lAzcwFTg$>gQ8Y8fUh8N7@fi^ z4hV`ud>pp#6cjLf{U1zVT@Vz%x;!XG;uEm< z6+sclN8tBSIX((+AI(bOZMXs1coz=4l2ySQa50*PPs1H(0bX1c6k)UoufeV;h1ah# zDI{1-kb>X3nv*Xtz{}AZd>k%7Rk99z9l7{4d>?JaJ8&b~j(1_#F&tjJ4o9NGZ!tM| zH!8u~u-8})sYwvQ%s@Im0Z;fTONo!d-q&ydWgWN$4aB=}`8duB-htb%4GIG<#s|fp zQ5>IwGp-AYN%#cp7-tpn8mvZ^tbaXQ@Gw87$x3kP4J;`>4cDW2co!xou%CFzA53KF z@G*G$O{|vm@TQw-gSTJ>tGX4RfPb?%M?L5h{_A#b2=BrVA0!KU$lw29PPT($6c?iK zIW!KRg6*d>YrF=Bp{aNS-iK!3ZTL$x6Q6)TeJChq;p1??BisN!3Liy_WF6?DC3wl2 zUo*p%1R}wnp-p%l*3G7(ET0n;hx~?z%;A*7JCKgI;jvG#HTVd84GqAjVaYu146nhP zQ4DXv7tknt3ikRf>5Y$=m}k*Mc>!MXJN5=|z=MC!cHnh51|{%ucq^KRx8QwfKHi28 zqa;27pF|7rNjPvm?*)7mE=7y+Y51L|+5a>_1Tzk;!N=iqs0yEgMbEGjcnuzcw&Qi! z3)SKy@O~t8CIPEa310kxRYRqC4R({l>#!&4j*t9-{J(%eCote$@*>`b@1Y3ZfyX9U zUfDnrMe$L1E*gZ7!3)q}ya8*`5WM(fP+W{g%5pddjm9V8RutDwD*Y)aLTC~fGP3@~}d)@KJa-O33=~9W)>Bz{v~P4!i|>n9p%C z33T`@O5s!R{6Di#cmsZcmf%HYP&|Z|;uG+!g`^)o2DhP=vd;6IA+#EAz?aY(d`gzT zz@uH3!<}e7-V`s=DXJn!z~dK@1^6g@3%Pg)PWTH;hPU7`FLBrS2z&?C$~y3rzj6+a zpe=kH72*@{loV${mczBE1n54bt8)zCn4bS)@_I!J8t=esHnVd0IQ$K&!YAQrTUa@K3?Ax|L3rK7 z9EHSDG=MjuLc9gY^@*x6m!_ZeOFJ6PEqbc|pd>>7f_2KNUAz|Z_u>PQsSd143hs1k_ zhs0`G2d>vc!o|C=&k-R}i;utsNR*L^M}$mq_R%3xNDzbF{|Di9csc5ckHaa)ghT{y z!!OW4yyzJcv(X@Y60SnS@eV9HHY7&jH8}CxArZ%0@S)xzVc`>SJ(^L*^WVi>(kCQl za>0PN_6>=7vH`p|!ff%jBue2^@Wp=IvGnk|kCykHF`Vi%<6t ziPKI9iLLk;{M6)!IGRboFHsP$ofs0Q3wn|)R5?p*Wq{3 za9JM?IGwwf9`-#WB*x&=@Z~`vF-ex6N%;?034C7%bHrKfB|!uZL^EY2*n4nD%#t3S zgG!Drsq8l}bV9+Op9$Ypa^L|x&xUn~gp6RkI2K41rrS9c@n^z^RQ~aW@ajVRf`Jiju$sp7IN;cgX={VA+f{^RX%Rlz~Mx`s5^Vp%sP9)4Zw>boPKU-LqX*cg(aU96d0AEK*_cX{uk-kg4F;3 From 0ccb739640b4863c1d868a073748c42998031b7b Mon Sep 17 00:00:00 2001 From: adelikat Date: Tue, 21 Feb 2017 17:20:14 -0600 Subject: [PATCH 11/80] update version info for the 1.12.0 release --- Version/VersionInfo.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Version/VersionInfo.cs b/Version/VersionInfo.cs index f5a01a9e71..1aaa531184 100644 --- a/Version/VersionInfo.cs +++ b/Version/VersionInfo.cs @@ -3,9 +3,9 @@ using System.IO; static class VersionInfo { - public const string MAINVERSION = "1.11.9"; // Use numbers only or the new version notification won't work + public const string MAINVERSION = "1.12.0"; // Use numbers only or the new version notification won't work - public static readonly string RELEASEDATE = "December 2, 2016"; + public static readonly string RELEASEDATE = "February 17, 2017"; public static readonly bool DeveloperBuild = false; public static readonly string HomePage = "http://tasvideos.org/BizHawk.html"; From 1b7bec1687028cf646523298a85b9cce838bfbcc Mon Sep 17 00:00:00 2001 From: adelikat Date: Thu, 30 Mar 2017 10:20:55 -0500 Subject: [PATCH 12/80] update version info --- Version/VersionInfo.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Version/VersionInfo.cs b/Version/VersionInfo.cs index 1aaa531184..8aedbd8de8 100644 --- a/Version/VersionInfo.cs +++ b/Version/VersionInfo.cs @@ -3,9 +3,9 @@ using System.IO; static class VersionInfo { - public const string MAINVERSION = "1.12.0"; // Use numbers only or the new version notification won't work + public const string MAINVERSION = "1.12.1"; // Use numbers only or the new version notification won't work - public static readonly string RELEASEDATE = "February 17, 2017"; + public static readonly string RELEASEDATE = "April 2, 2017"; public static readonly bool DeveloperBuild = false; public static readonly string HomePage = "http://tasvideos.org/BizHawk.html"; From 7af88c93f7b043009b654903318716f0c4f3bd00 Mon Sep 17 00:00:00 2001 From: nattthebear Date: Sat, 3 Dec 2016 23:01:14 -0500 Subject: [PATCH 13/80] mgba: Fix some of the audio channel disables not working. Fix audio channel disables not being restored on reboot core --- output/dll/mgba.dll | Bin 857600 -> 857600 bytes output64/dll/mgba.dll | Bin 809984 -> 809984 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/output/dll/mgba.dll b/output/dll/mgba.dll index e6a5c81753bf27fdfb643edbc352aa9f3fe5caac..210bb5b46abc2eb9da5e173dccd055e789a54e63 100644 GIT binary patch delta 50708 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 delta 51737 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ୟs9?kI$)9_bI-mZZc=!fzDP9326 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 Date: Wed, 3 May 2017 09:10:37 -0500 Subject: [PATCH 14/80] update version info --- Version/VersionInfo.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Version/VersionInfo.cs b/Version/VersionInfo.cs index b6768f044f..facfe4e932 100644 --- a/Version/VersionInfo.cs +++ b/Version/VersionInfo.cs @@ -2,9 +2,9 @@ using System.IO; internal static class VersionInfo { - public const string Mainversion = "1.12.1"; // Use numbers only or the new version notification won't work + public const string Mainversion = "1.12.2"; // Use numbers only or the new version notification won't work - public static readonly string RELEASEDATE = "April 2, 2017"; + public static readonly string RELEASEDATE = "May 3, 2017"; public static readonly bool DeveloperBuild = false; public static readonly string HomePage = "http://tasvideos.org/BizHawk.html"; From d96c4ab899f562989f063d9dfc23ad86866d8fb1 Mon Sep 17 00:00:00 2001 From: adelikat Date: Sat, 3 Jun 2017 13:19:24 -0500 Subject: [PATCH 15/80] update release info --- Version/VersionInfo.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Version/VersionInfo.cs b/Version/VersionInfo.cs index facfe4e932..8eaf0ba669 100644 --- a/Version/VersionInfo.cs +++ b/Version/VersionInfo.cs @@ -2,9 +2,9 @@ using System.IO; internal static class VersionInfo { - public const string Mainversion = "1.12.2"; // Use numbers only or the new version notification won't work + public const string Mainversion = "1.13.0"; // Use numbers only or the new version notification won't work - public static readonly string RELEASEDATE = "May 3, 2017"; + public static readonly string RELEASEDATE = "June 3, 2017"; public static readonly bool DeveloperBuild = false; public static readonly string HomePage = "http://tasvideos.org/BizHawk.html"; From 46e9c8141d0ec9aed30a476239c52d63749e0135 Mon Sep 17 00:00:00 2001 From: adelikat Date: Sun, 4 Jun 2017 11:27:36 -0500 Subject: [PATCH 16/80] C64 - FIx mnemonics for previous and next disk buttons --- BizHawk.Client.Common/movie/bk2/Bk2MnemonicConstants.cs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/BizHawk.Client.Common/movie/bk2/Bk2MnemonicConstants.cs b/BizHawk.Client.Common/movie/bk2/Bk2MnemonicConstants.cs index fc346d384a..f788da2397 100644 --- a/BizHawk.Client.Common/movie/bk2/Bk2MnemonicConstants.cs +++ b/BizHawk.Client.Common/movie/bk2/Bk2MnemonicConstants.cs @@ -116,7 +116,10 @@ namespace BizHawk.Client.Common ["Open"] = 'O', ["Close"] = 'C', - ["Pedal"] = 'P' + ["Pedal"] = 'P', + + ["Next Disk"] = '>', + ["Previous Disk"] = '<' }; private readonly Dictionary> _systemOverrides = new Dictionary> @@ -300,8 +303,6 @@ namespace BizHawk.Client.Common ["Control"] = 'c' , ["Shift"] = '^' , ["Caps Lock"] = 'C' , - ["Next Disk"] = '>' , - ["Previous Disk"] = '<' , ["White Apple"] = 'w' , ["Black Apple"] = 'b' , ["L"] = 'L' , From 8c3c23075a275df3b554707f59dca4143bcf4321 Mon Sep 17 00:00:00 2001 From: adelikat Date: Sun, 4 Jun 2017 13:19:51 -0500 Subject: [PATCH 17/80] Fix dual GB input --- .../Consoles/Nintendo/Gameboy/GambatteLink.IEmulator.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/Gameboy/GambatteLink.IEmulator.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/Gameboy/GambatteLink.IEmulator.cs index fd56a0b410..3a835ee5a2 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/Gameboy/GambatteLink.IEmulator.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/Gameboy/GambatteLink.IEmulator.cs @@ -40,8 +40,8 @@ namespace BizHawk.Emulation.Cores.Nintendo.Gameboy _cablediscosignal = cablediscosignalNew; Frame++; - L.FrameAdvancePrep(controller); - R.FrameAdvancePrep(controller); + L.FrameAdvancePrep(LCont); + R.FrameAdvancePrep(RCont); unsafe { From 55bf697223189a3c999fb8fd4a6fe5cc56e28dd5 Mon Sep 17 00:00:00 2001 From: adelikat Date: Sun, 4 Jun 2017 14:14:06 -0500 Subject: [PATCH 18/80] Hotkeys for toggling Gameboy --- BizHawk.Client.Common/config/Binding.cs | 3 +++ BizHawk.Client.EmuHawk/MainForm.Hotkey.cs | 23 +++++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/BizHawk.Client.Common/config/Binding.cs b/BizHawk.Client.Common/config/Binding.cs index 6cc7bf552f..d5ff054c57 100644 --- a/BizHawk.Client.Common/config/Binding.cs +++ b/BizHawk.Client.Common/config/Binding.cs @@ -248,6 +248,9 @@ namespace BizHawk.Client.Common Bind("SNES", "Toggle OBJ 3"), Bind("SNES", "Toggle OBJ 4"), + Bind("GB", "GB Toggle BG"), + Bind("GB", "GB Toggle Obj"), + Bind("Analog", "Y Up Small", toolTip: "For Virtual Pad"), Bind("Analog", "Y Up Large", toolTip: "For Virtual Pad"), Bind("Analog", "Y Down Small", toolTip: "For Virtual Pad"), diff --git a/BizHawk.Client.EmuHawk/MainForm.Hotkey.cs b/BizHawk.Client.EmuHawk/MainForm.Hotkey.cs index 47495147cb..2f56b1277b 100644 --- a/BizHawk.Client.EmuHawk/MainForm.Hotkey.cs +++ b/BizHawk.Client.EmuHawk/MainForm.Hotkey.cs @@ -2,6 +2,7 @@ using BizHawk.Client.Common; using BizHawk.Emulation.Common.IEmulatorExtensions; +using BizHawk.Emulation.Cores.Nintendo.Gameboy; namespace BizHawk.Client.EmuHawk { @@ -633,6 +634,28 @@ namespace BizHawk.Client.EmuHawk SNES_ToggleOBJ4(); break; + // GB + case "GB Toggle BG": + if (Emulator is Gameboy) + { + var s = ((Gameboy)Emulator).GetSettings(); + s.DisplayBG ^= true; + ((Gameboy)Emulator).PutSettings(s); + GlobalWin.OSD.AddMessage("BG toggled " + (s.DisplayBG ? "on" : "off")); + } + + break; + case "GB Toggle Obj": + if (Emulator is Gameboy) + { + var s = ((Gameboy)Emulator).GetSettings(); + s.DisplayOBJ ^= true; + ((Gameboy)Emulator).PutSettings(s); + GlobalWin.OSD.AddMessage("OBJ toggled " + (s.DisplayBG ? "on" : "off")); + } + + break; + // Analog case "Y Up Small": GlobalWin.Tools.VirtualPad.BumpAnalogValue(null, Global.Config.Analog_SmallChange); From 12e037eacd668121aede567cc3a28e20a75bcbdd Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Sun, 4 Jun 2017 17:25:09 -0400 Subject: [PATCH 19/80] Update gamedb_nes.txt --- Assets/gamedb/gamedb_nes.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Assets/gamedb/gamedb_nes.txt b/Assets/gamedb/gamedb_nes.txt index f4056c8600..c51c6c4960 100644 --- a/Assets/gamedb/gamedb_nes.txt +++ b/Assets/gamedb/gamedb_nes.txt @@ -277,6 +277,11 @@ sha1:1477FD89A26B8F6E3460FE078794D79BEC944C00 Super Cartridge Ver 9 - 3 in 1 (A sha1:5239EECED4510EF3D540DD39D629D9E7C5E55251 Taiwan Mahjong - Tai Wan Ma Que 16 (Asia) (Unl) NES board=UNIF_UNL-SA-0036;PRG=32;CHR=16;WRAM=0;VRAM=0;PAD_V=1;PAD_H=0 sha1:C10C526F26273C4A1E180B968665910B74C78B86 Othello (Australia) (Unl) NES board=MAPPER000;PRG=16;CHR=8;WRAM=0;VRAM=0;PAD_V=0;PAD_H=1;system=NES-PAL sha1:2500B5492ECE1CAFB97881C5A384B0768313BF98 Block Out (USA) (Proto) NES board=MAPPER004;PRG=128;CHR=0;WRAM=8;VRAM=8;PAD_V=0;PAD_H=1 +sha1:B1CC3ED04C610BE18742A3FD78A8F27A597F8549 Sidewinder (Australia) (Unl) NES board=MAPPER113;PRG=16;CHR=16;WRAM=0;VRAM=0;PAD_V=1;PAD_H=0 +sha1:D4702A831A398107D8F87BC93BD56C4D8CA78F2A Buzz & Waldog (USA) (Proto) (Unl) NES board=MAPPER156;PRG=128;CHR=128;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0 +sha1:3C72706AF5998133EC6BE703994C10466A094EAB Xing Ji Zheng Ba (China) (Unl) NES board=MAPPER241;PRG=512;CHR=0;WRAM=8;VRAM=8;PAD_V=1;PAD_H=0 +sha1:18DF013DB350787D0F3D83ADE33EA92B097BD54B Mahjan Samit Kabukicho Hen (Asia) (Unl) NES board=MAPPER146;PRG=64;CHR=64;WRAM=0;VRAM=0;PAD_V=1;PAD_H=0 +sha1:6AAA5521F91F101448E77C996C9802015578400C Dooly_Bravo_Land NES board=MAPPER002;PRG=256;CHR=0;WRAM=0;VRAM=8;PAD_V=0;PAD_H=1 ;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- From 07442fa0998be1b1608fe82fbacffac5b5bf69bf Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Sun, 4 Jun 2017 17:30:38 -0400 Subject: [PATCH 20/80] Update SxROM.cs --- BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/SxROM.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/SxROM.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/SxROM.cs index db2565d3f2..34d802312c 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/SxROM.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/SxROM.cs @@ -425,6 +425,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES NES.VS_dips[7] = (byte)(NES.SyncSettings.VSDipswitches.Dip_Switch_8 ? 1 : 0); break; case "MAPPER001": + case "NES-SIEPROM": // there's no way to define PRG oversize for mapper001 due to how the MMC1 regs work // so 512KB must mean SUROM or SXROM. SUROM is more common, so we try that if (Cart.prg_size > 256) From ce702479161ced895ed6d05a5275425e2b0f54b3 Mon Sep 17 00:00:00 2001 From: adelikat Date: Sun, 4 Jun 2017 18:06:31 -0500 Subject: [PATCH 21/80] Profile config dialog - positioning cleanup --- .../config/ProfileConfig.Designer.cs | 405 +++++++++--------- 1 file changed, 208 insertions(+), 197 deletions(-) diff --git a/BizHawk.Client.EmuHawk/config/ProfileConfig.Designer.cs b/BizHawk.Client.EmuHawk/config/ProfileConfig.Designer.cs index a32b77694c..e7ba5635f5 100644 --- a/BizHawk.Client.EmuHawk/config/ProfileConfig.Designer.cs +++ b/BizHawk.Client.EmuHawk/config/ProfileConfig.Designer.cs @@ -28,211 +28,222 @@ /// private void InitializeComponent() { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ProfileConfig)); - this.OkBtn = new System.Windows.Forms.Button(); - this.CancelBtn = new System.Windows.Forms.Button(); - this.ProfileSelectComboBox = new System.Windows.Forms.ComboBox(); - this.SaveScreenshotStatesCheckBox = new System.Windows.Forms.CheckBox(); - this.SaveLargeScreenshotStatesCheckBox = new System.Windows.Forms.CheckBox(); - this.AllowUDLRCheckBox = new System.Windows.Forms.CheckBox(); - this.ProfileDialogHelpTexBox = new System.Windows.Forms.RichTextBox(); - this.ProfileOptionsLabel = new System.Windows.Forms.Label(); - this.CustomProfileOptionsLabel = new System.Windows.Forms.Label(); - this.N64CoreSettingsLabel = new System.Windows.Forms.Label(); - this.N64CoreTypeComboBox = new System.Windows.Forms.ComboBox(); - this.N64CoreTypeLabel = new System.Windows.Forms.Label(); - this.OtherOptions = new System.Windows.Forms.Label(); - this.AutoCheckForUpdates = new System.Windows.Forms.CheckBox(); - this.SuspendLayout(); - // - // OkBtn - // - this.OkBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.OkBtn.Location = new System.Drawing.Point(290, 337); - this.OkBtn.Name = "OkBtn"; - this.OkBtn.Size = new System.Drawing.Size(60, 23); - this.OkBtn.TabIndex = 0; - this.OkBtn.Text = "&OK"; - this.OkBtn.UseVisualStyleBackColor = true; - this.OkBtn.Click += new System.EventHandler(this.OkBtn_Click); - // - // CancelBtn - // - this.CancelBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.CancelBtn.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.CancelBtn.Location = new System.Drawing.Point(356, 337); - this.CancelBtn.Name = "CancelBtn"; - this.CancelBtn.Size = new System.Drawing.Size(60, 23); - this.CancelBtn.TabIndex = 1; - this.CancelBtn.Text = "&Cancel"; - this.CancelBtn.UseVisualStyleBackColor = true; - this.CancelBtn.Click += new System.EventHandler(this.CancelBtn_Click); - // - // ProfileSelectComboBox - // - this.ProfileSelectComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.ProfileSelectComboBox.FormattingEnabled = true; - this.ProfileSelectComboBox.Items.AddRange(new object[] { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ProfileConfig)); + this.OkBtn = new System.Windows.Forms.Button(); + this.CancelBtn = new System.Windows.Forms.Button(); + this.ProfileSelectComboBox = new System.Windows.Forms.ComboBox(); + this.SaveScreenshotStatesCheckBox = new System.Windows.Forms.CheckBox(); + this.SaveLargeScreenshotStatesCheckBox = new System.Windows.Forms.CheckBox(); + this.AllowUDLRCheckBox = new System.Windows.Forms.CheckBox(); + this.ProfileDialogHelpTexBox = new System.Windows.Forms.RichTextBox(); + this.ProfileOptionsLabel = new System.Windows.Forms.Label(); + this.CustomProfileOptionsLabel = new System.Windows.Forms.Label(); + this.N64CoreSettingsLabel = new System.Windows.Forms.Label(); + this.N64CoreTypeComboBox = new System.Windows.Forms.ComboBox(); + this.N64CoreTypeLabel = new System.Windows.Forms.Label(); + this.OtherOptions = new System.Windows.Forms.Label(); + this.AutoCheckForUpdates = new System.Windows.Forms.CheckBox(); + this.SuspendLayout(); + // + // OkBtn + // + this.OkBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.OkBtn.Location = new System.Drawing.Point(290, 302); + this.OkBtn.Name = "OkBtn"; + this.OkBtn.Size = new System.Drawing.Size(60, 23); + this.OkBtn.TabIndex = 0; + this.OkBtn.Text = "&OK"; + this.OkBtn.UseVisualStyleBackColor = true; + this.OkBtn.Click += new System.EventHandler(this.OkBtn_Click); + // + // CancelBtn + // + this.CancelBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.CancelBtn.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.CancelBtn.Location = new System.Drawing.Point(356, 302); + this.CancelBtn.Name = "CancelBtn"; + this.CancelBtn.Size = new System.Drawing.Size(60, 23); + this.CancelBtn.TabIndex = 1; + this.CancelBtn.Text = "&Cancel"; + this.CancelBtn.UseVisualStyleBackColor = true; + this.CancelBtn.Click += new System.EventHandler(this.CancelBtn_Click); + // + // ProfileSelectComboBox + // + this.ProfileSelectComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.ProfileSelectComboBox.FormattingEnabled = true; + this.ProfileSelectComboBox.Items.AddRange(new object[] { "Casual Gaming", "Tool-assisted Speedruns", "N64 Tool-assisted Speedruns", "Longplays", "Custom Profile"}); - this.ProfileSelectComboBox.Location = new System.Drawing.Point(12, 27); - this.ProfileSelectComboBox.Name = "ProfileSelectComboBox"; - this.ProfileSelectComboBox.Size = new System.Drawing.Size(156, 21); - this.ProfileSelectComboBox.TabIndex = 4; - // - // SaveScreenshotStatesCheckBox - // - this.SaveScreenshotStatesCheckBox.AutoSize = true; - this.SaveScreenshotStatesCheckBox.Location = new System.Drawing.Point(12, 103); - this.SaveScreenshotStatesCheckBox.Name = "SaveScreenshotStatesCheckBox"; - this.SaveScreenshotStatesCheckBox.Size = new System.Drawing.Size(166, 17); - this.SaveScreenshotStatesCheckBox.TabIndex = 6; - this.SaveScreenshotStatesCheckBox.Text = "Save Screenshot With States"; - this.SaveScreenshotStatesCheckBox.UseVisualStyleBackColor = true; - this.SaveScreenshotStatesCheckBox.Visible = false; - this.SaveScreenshotStatesCheckBox.MouseHover += new System.EventHandler(this.SaveScreenshotStatesCheckBox_MouseHover); - // - // SaveLargeScreenshotStatesCheckBox - // - this.SaveLargeScreenshotStatesCheckBox.AutoSize = true; - this.SaveLargeScreenshotStatesCheckBox.Location = new System.Drawing.Point(12, 126); - this.SaveLargeScreenshotStatesCheckBox.Name = "SaveLargeScreenshotStatesCheckBox"; - this.SaveLargeScreenshotStatesCheckBox.Size = new System.Drawing.Size(196, 17); - this.SaveLargeScreenshotStatesCheckBox.TabIndex = 7; - this.SaveLargeScreenshotStatesCheckBox.Text = "Save Large Screenshot With States"; - this.SaveLargeScreenshotStatesCheckBox.UseVisualStyleBackColor = true; - this.SaveLargeScreenshotStatesCheckBox.Visible = false; - this.SaveLargeScreenshotStatesCheckBox.MouseHover += new System.EventHandler(this.SaveLargeScreenshotStatesCheckBox_MouseHover); - // - // AllowUDLRCheckBox - // - this.AllowUDLRCheckBox.AutoSize = true; - this.AllowUDLRCheckBox.Location = new System.Drawing.Point(12, 149); - this.AllowUDLRCheckBox.Name = "AllowUDLRCheckBox"; - this.AllowUDLRCheckBox.Size = new System.Drawing.Size(111, 17); - this.AllowUDLRCheckBox.TabIndex = 8; - this.AllowUDLRCheckBox.Text = "Allow U+D or L+R"; - this.AllowUDLRCheckBox.UseVisualStyleBackColor = true; - this.AllowUDLRCheckBox.Visible = false; - this.AllowUDLRCheckBox.MouseHover += new System.EventHandler(this.AllowUDLRCheckBox_MouseHover); - // - // ProfileDialogHelpTexBox - // - this.ProfileDialogHelpTexBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.ProfileDialogHelpTexBox.Location = new System.Drawing.Point(218, 12); - this.ProfileDialogHelpTexBox.Name = "ProfileDialogHelpTexBox"; - this.ProfileDialogHelpTexBox.ReadOnly = true; - this.ProfileDialogHelpTexBox.Size = new System.Drawing.Size(198, 154); - this.ProfileDialogHelpTexBox.TabIndex = 2; - this.ProfileDialogHelpTexBox.Text = resources.GetString("ProfileDialogHelpTexBox.Text"); - // - // ProfileOptionsLabel - // - this.ProfileOptionsLabel.AutoSize = true; - this.ProfileOptionsLabel.Location = new System.Drawing.Point(9, 9); - this.ProfileOptionsLabel.Name = "ProfileOptionsLabel"; - this.ProfileOptionsLabel.Size = new System.Drawing.Size(75, 13); - this.ProfileOptionsLabel.TabIndex = 3; - this.ProfileOptionsLabel.Text = "Profile Options"; - // - // CustomProfileOptionsLabel - // - this.CustomProfileOptionsLabel.AutoSize = true; - this.CustomProfileOptionsLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Underline, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.CustomProfileOptionsLabel.Location = new System.Drawing.Point(9, 85); - this.CustomProfileOptionsLabel.Name = "CustomProfileOptionsLabel"; - this.CustomProfileOptionsLabel.RightToLeft = System.Windows.Forms.RightToLeft.No; - this.CustomProfileOptionsLabel.Size = new System.Drawing.Size(113, 13); - this.CustomProfileOptionsLabel.TabIndex = 5; - this.CustomProfileOptionsLabel.Text = "Custom Profile Options"; - this.CustomProfileOptionsLabel.Visible = false; - // - // N64CoreSettingsLabel - // - this.N64CoreSettingsLabel.AutoSize = true; - this.N64CoreSettingsLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Underline, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.N64CoreSettingsLabel.Location = new System.Drawing.Point(9, 188); - this.N64CoreSettingsLabel.Name = "N64CoreSettingsLabel"; - this.N64CoreSettingsLabel.Size = new System.Drawing.Size(93, 13); - this.N64CoreSettingsLabel.TabIndex = 9; - this.N64CoreSettingsLabel.Text = "N64 Core Settings"; - this.N64CoreSettingsLabel.Visible = false; - // - // N64CoreTypeComboBox - // - this.N64CoreTypeComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.N64CoreTypeComboBox.FormattingEnabled = true; - this.N64CoreTypeComboBox.Items.AddRange(new object[] { + this.ProfileSelectComboBox.Location = new System.Drawing.Point(12, 27); + this.ProfileSelectComboBox.Name = "ProfileSelectComboBox"; + this.ProfileSelectComboBox.Size = new System.Drawing.Size(156, 21); + this.ProfileSelectComboBox.TabIndex = 4; + // + // SaveScreenshotStatesCheckBox + // + this.SaveScreenshotStatesCheckBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.SaveScreenshotStatesCheckBox.AutoSize = true; + this.SaveScreenshotStatesCheckBox.Location = new System.Drawing.Point(12, 88); + this.SaveScreenshotStatesCheckBox.Name = "SaveScreenshotStatesCheckBox"; + this.SaveScreenshotStatesCheckBox.Size = new System.Drawing.Size(166, 17); + this.SaveScreenshotStatesCheckBox.TabIndex = 6; + this.SaveScreenshotStatesCheckBox.Text = "Save Screenshot With States"; + this.SaveScreenshotStatesCheckBox.UseVisualStyleBackColor = true; + this.SaveScreenshotStatesCheckBox.Visible = false; + this.SaveScreenshotStatesCheckBox.MouseHover += new System.EventHandler(this.SaveScreenshotStatesCheckBox_MouseHover); + // + // SaveLargeScreenshotStatesCheckBox + // + this.SaveLargeScreenshotStatesCheckBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.SaveLargeScreenshotStatesCheckBox.AutoSize = true; + this.SaveLargeScreenshotStatesCheckBox.Location = new System.Drawing.Point(12, 111); + this.SaveLargeScreenshotStatesCheckBox.Name = "SaveLargeScreenshotStatesCheckBox"; + this.SaveLargeScreenshotStatesCheckBox.Size = new System.Drawing.Size(196, 17); + this.SaveLargeScreenshotStatesCheckBox.TabIndex = 7; + this.SaveLargeScreenshotStatesCheckBox.Text = "Save Large Screenshot With States"; + this.SaveLargeScreenshotStatesCheckBox.UseVisualStyleBackColor = true; + this.SaveLargeScreenshotStatesCheckBox.Visible = false; + this.SaveLargeScreenshotStatesCheckBox.MouseHover += new System.EventHandler(this.SaveLargeScreenshotStatesCheckBox_MouseHover); + // + // AllowUDLRCheckBox + // + this.AllowUDLRCheckBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.AllowUDLRCheckBox.AutoSize = true; + this.AllowUDLRCheckBox.Location = new System.Drawing.Point(12, 134); + this.AllowUDLRCheckBox.Name = "AllowUDLRCheckBox"; + this.AllowUDLRCheckBox.Size = new System.Drawing.Size(111, 17); + this.AllowUDLRCheckBox.TabIndex = 8; + this.AllowUDLRCheckBox.Text = "Allow U+D or L+R"; + this.AllowUDLRCheckBox.UseVisualStyleBackColor = true; + this.AllowUDLRCheckBox.Visible = false; + this.AllowUDLRCheckBox.MouseHover += new System.EventHandler(this.AllowUDLRCheckBox_MouseHover); + // + // ProfileDialogHelpTexBox + // + this.ProfileDialogHelpTexBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Right))); + this.ProfileDialogHelpTexBox.Location = new System.Drawing.Point(218, 12); + this.ProfileDialogHelpTexBox.Name = "ProfileDialogHelpTexBox"; + this.ProfileDialogHelpTexBox.ReadOnly = true; + this.ProfileDialogHelpTexBox.Size = new System.Drawing.Size(198, 200); + this.ProfileDialogHelpTexBox.TabIndex = 2; + this.ProfileDialogHelpTexBox.Text = resources.GetString("ProfileDialogHelpTexBox.Text"); + // + // ProfileOptionsLabel + // + this.ProfileOptionsLabel.AutoSize = true; + this.ProfileOptionsLabel.Location = new System.Drawing.Point(9, 9); + this.ProfileOptionsLabel.Name = "ProfileOptionsLabel"; + this.ProfileOptionsLabel.Size = new System.Drawing.Size(75, 13); + this.ProfileOptionsLabel.TabIndex = 3; + this.ProfileOptionsLabel.Text = "Profile Options"; + // + // CustomProfileOptionsLabel + // + this.CustomProfileOptionsLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.CustomProfileOptionsLabel.AutoSize = true; + this.CustomProfileOptionsLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Underline, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.CustomProfileOptionsLabel.Location = new System.Drawing.Point(9, 70); + this.CustomProfileOptionsLabel.Name = "CustomProfileOptionsLabel"; + this.CustomProfileOptionsLabel.RightToLeft = System.Windows.Forms.RightToLeft.No; + this.CustomProfileOptionsLabel.Size = new System.Drawing.Size(113, 13); + this.CustomProfileOptionsLabel.TabIndex = 5; + this.CustomProfileOptionsLabel.Text = "Custom Profile Options"; + this.CustomProfileOptionsLabel.Visible = false; + // + // N64CoreSettingsLabel + // + this.N64CoreSettingsLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.N64CoreSettingsLabel.AutoSize = true; + this.N64CoreSettingsLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Underline, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.N64CoreSettingsLabel.Location = new System.Drawing.Point(9, 173); + this.N64CoreSettingsLabel.Name = "N64CoreSettingsLabel"; + this.N64CoreSettingsLabel.Size = new System.Drawing.Size(93, 13); + this.N64CoreSettingsLabel.TabIndex = 9; + this.N64CoreSettingsLabel.Text = "N64 Core Settings"; + this.N64CoreSettingsLabel.Visible = false; + // + // N64CoreTypeComboBox + // + this.N64CoreTypeComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.N64CoreTypeComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.N64CoreTypeComboBox.FormattingEnabled = true; + this.N64CoreTypeComboBox.Items.AddRange(new object[] { "Pure Interpreter", "Interpreter", "Dynarec"}); - this.N64CoreTypeComboBox.Location = new System.Drawing.Point(79, 206); - this.N64CoreTypeComboBox.Name = "N64CoreTypeComboBox"; - this.N64CoreTypeComboBox.Size = new System.Drawing.Size(99, 21); - this.N64CoreTypeComboBox.TabIndex = 11; - this.N64CoreTypeComboBox.Visible = false; - // - // N64CoreTypeLabel - // - this.N64CoreTypeLabel.AutoSize = true; - this.N64CoreTypeLabel.Location = new System.Drawing.Point(9, 209); - this.N64CoreTypeLabel.Name = "N64CoreTypeLabel"; - this.N64CoreTypeLabel.Size = new System.Drawing.Size(56, 13); - this.N64CoreTypeLabel.TabIndex = 10; - this.N64CoreTypeLabel.Text = "Core Type"; - this.N64CoreTypeLabel.Visible = false; - // - // OtherOptions - // - this.OtherOptions.AutoSize = true; - this.OtherOptions.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Underline, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.OtherOptions.Location = new System.Drawing.Point(9, 250); - this.OtherOptions.Name = "OtherOptions"; - this.OtherOptions.Size = new System.Drawing.Size(72, 13); - this.OtherOptions.TabIndex = 12; - this.OtherOptions.Text = "Other Options"; - // - // AutoCheckForUpdates - // - this.AutoCheckForUpdates.AutoSize = true; - this.AutoCheckForUpdates.Location = new System.Drawing.Point(12, 268); - this.AutoCheckForUpdates.Name = "AutoCheckForUpdates"; - this.AutoCheckForUpdates.Size = new System.Drawing.Size(345, 17); - this.AutoCheckForUpdates.TabIndex = 13; - this.AutoCheckForUpdates.Text = "Automatically check for and notify me of newer versions of BizHawk"; - this.AutoCheckForUpdates.UseVisualStyleBackColor = true; - // - // ProfileConfig - // - this.AcceptButton = this.OkBtn; - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.CancelBtn; - this.ClientSize = new System.Drawing.Size(428, 372); - this.Controls.Add(this.AutoCheckForUpdates); - this.Controls.Add(this.OtherOptions); - this.Controls.Add(this.N64CoreTypeLabel); - this.Controls.Add(this.N64CoreTypeComboBox); - this.Controls.Add(this.N64CoreSettingsLabel); - this.Controls.Add(this.CustomProfileOptionsLabel); - this.Controls.Add(this.ProfileOptionsLabel); - this.Controls.Add(this.ProfileDialogHelpTexBox); - this.Controls.Add(this.AllowUDLRCheckBox); - this.Controls.Add(this.SaveLargeScreenshotStatesCheckBox); - this.Controls.Add(this.SaveScreenshotStatesCheckBox); - this.Controls.Add(this.ProfileSelectComboBox); - this.Controls.Add(this.CancelBtn); - this.Controls.Add(this.OkBtn); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.Name = "ProfileConfig"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Profile Config"; - this.Load += new System.EventHandler(this.ProfileConfig_Load); - this.ResumeLayout(false); - this.PerformLayout(); + this.N64CoreTypeComboBox.Location = new System.Drawing.Point(79, 191); + this.N64CoreTypeComboBox.Name = "N64CoreTypeComboBox"; + this.N64CoreTypeComboBox.Size = new System.Drawing.Size(99, 21); + this.N64CoreTypeComboBox.TabIndex = 11; + this.N64CoreTypeComboBox.Visible = false; + // + // N64CoreTypeLabel + // + this.N64CoreTypeLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.N64CoreTypeLabel.AutoSize = true; + this.N64CoreTypeLabel.Location = new System.Drawing.Point(9, 194); + this.N64CoreTypeLabel.Name = "N64CoreTypeLabel"; + this.N64CoreTypeLabel.Size = new System.Drawing.Size(56, 13); + this.N64CoreTypeLabel.TabIndex = 10; + this.N64CoreTypeLabel.Text = "Core Type"; + this.N64CoreTypeLabel.Visible = false; + // + // OtherOptions + // + this.OtherOptions.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.OtherOptions.AutoSize = true; + this.OtherOptions.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Underline, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.OtherOptions.Location = new System.Drawing.Point(9, 261); + this.OtherOptions.Name = "OtherOptions"; + this.OtherOptions.Size = new System.Drawing.Size(72, 13); + this.OtherOptions.TabIndex = 12; + this.OtherOptions.Text = "Other Options"; + // + // AutoCheckForUpdates + // + this.AutoCheckForUpdates.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.AutoCheckForUpdates.AutoSize = true; + this.AutoCheckForUpdates.Location = new System.Drawing.Point(12, 279); + this.AutoCheckForUpdates.Name = "AutoCheckForUpdates"; + this.AutoCheckForUpdates.Size = new System.Drawing.Size(345, 17); + this.AutoCheckForUpdates.TabIndex = 13; + this.AutoCheckForUpdates.Text = "Automatically check for and notify me of newer versions of BizHawk"; + this.AutoCheckForUpdates.UseVisualStyleBackColor = true; + // + // ProfileConfig + // + this.AcceptButton = this.OkBtn; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.CancelButton = this.CancelBtn; + this.ClientSize = new System.Drawing.Size(428, 337); + this.Controls.Add(this.AutoCheckForUpdates); + this.Controls.Add(this.OtherOptions); + this.Controls.Add(this.N64CoreTypeLabel); + this.Controls.Add(this.N64CoreTypeComboBox); + this.Controls.Add(this.N64CoreSettingsLabel); + this.Controls.Add(this.CustomProfileOptionsLabel); + this.Controls.Add(this.ProfileOptionsLabel); + this.Controls.Add(this.ProfileDialogHelpTexBox); + this.Controls.Add(this.AllowUDLRCheckBox); + this.Controls.Add(this.SaveLargeScreenshotStatesCheckBox); + this.Controls.Add(this.SaveScreenshotStatesCheckBox); + this.Controls.Add(this.ProfileSelectComboBox); + this.Controls.Add(this.CancelBtn); + this.Controls.Add(this.OkBtn); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MinimumSize = new System.Drawing.Size(315, 280); + this.Name = "ProfileConfig"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Profile Config"; + this.Load += new System.EventHandler(this.ProfileConfig_Load); + this.ResumeLayout(false); + this.PerformLayout(); } From 7058761dbc88cc883ee963d6730928c0ed0c1ba7 Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Sun, 4 Jun 2017 20:04:55 -0400 Subject: [PATCH 22/80] Update gamedb_nes.txt --- Assets/gamedb/gamedb_nes.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Assets/gamedb/gamedb_nes.txt b/Assets/gamedb/gamedb_nes.txt index c51c6c4960..399b56b7ab 100644 --- a/Assets/gamedb/gamedb_nes.txt +++ b/Assets/gamedb/gamedb_nes.txt @@ -343,6 +343,8 @@ EDD7A45A7F27E396B6D686F1861642D509863132 Datach SD Gundam Gundam Wars NES boar ;testrom sha1:E925A172C29DD46BA385D526F3C317DB039FA2BF mmc1_a12 NES board=NES-SNROM +sha1:D89EE629F8F60613999EAD84A3C7B2F6B38C399F fme7ramtest_128k NES board=MAPPER069;PRG=32;CHR=8;WRAM=128;VRAM=0;PAD_V=0;PAD_H=1 + ; ArcadePit hacks ; Why does this one need NesHawk? From 597514d7520426e4044d85d499a0af058893fbb3 Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Sun, 4 Jun 2017 20:21:37 -0400 Subject: [PATCH 23/80] Update AxROM.cs --- .../Consoles/Nintendo/NES/Boards/AxROM.cs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/AxROM.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/AxROM.cs index 28dd117a49..d670c906ea 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/AxROM.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/AxROM.cs @@ -58,6 +58,13 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES } prg_mask_32k = Cart.prg_size / 32 - 1; + + // hardware tests show that only 256kb of PRG is possible to acess + if (Cart.prg_size>256) + { + prg_mask_32k = 256 / 32 - 1; + } + SetMirrorType(NES.NESBoardBase.EMirrorType.OneScreenA); return true; @@ -91,4 +98,4 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES } } -} \ No newline at end of file +} From a02150e9ed44b3d84afc1af3dfe51187d4d6c0fd Mon Sep 17 00:00:00 2001 From: nattthebear Date: Sun, 4 Jun 2017 20:39:49 -0400 Subject: [PATCH 24/80] Revert "Update AxROM.cs". Licensed AxROM games were all 256KB or smaller, so they'd never hit this codepath. Non-licensed games certainly can be 512KB on AxROM, and we don't want to break that. The "hardware tests" comment is meaningless -- tested on what hardware? There's no licensed board that you could test that against, because they won't take a 512KB chip in the first place. --- .../Consoles/Nintendo/NES/Boards/AxROM.cs | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/AxROM.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/AxROM.cs index d670c906ea..28dd117a49 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/AxROM.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/AxROM.cs @@ -58,13 +58,6 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES } prg_mask_32k = Cart.prg_size / 32 - 1; - - // hardware tests show that only 256kb of PRG is possible to acess - if (Cart.prg_size>256) - { - prg_mask_32k = 256 / 32 - 1; - } - SetMirrorType(NES.NESBoardBase.EMirrorType.OneScreenA); return true; @@ -98,4 +91,4 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES } } -} +} \ No newline at end of file From 3c54b6b701176689fb14c9a70de2323917bc57dd Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Mon, 5 Jun 2017 15:56:28 -0400 Subject: [PATCH 25/80] NES: Fix some exceptions loading ROMs Eventually need to rethink ROM loading I think --- .../Consoles/Nintendo/NES/NES.cs | 28 +++++++++++++++++-- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/NES.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/NES.cs index 1f8d4735e3..f913315e1b 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/NES.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/NES.cs @@ -513,6 +513,19 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES if (hash_md5 != null) choice = IdentifyFromGameDB(hash_md5); if (choice == null) choice = IdentifyFromGameDB(hash_sha1); + if (choice==null) + { + hash_sha1_several.Add(hash_sha1); + choice = IdentifyFromBootGodDB(hash_sha1_several); + if (choice == null) + LoadWriteLine("Could not locate game in nescartdb"); + else + { + LoadWriteLine("Chose board from nescartdb:"); + LoadWriteLine(choice); + origin = EDetectionOrigin.BootGodDB; + } + } if (choice == null) throw new InvalidOperationException("iNES header not found and no gamedb entry"); } @@ -544,7 +557,16 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES LoadWriteLine("Since this rom has a 16 KB PRG, we'll hash it as 8KB too for bootgod's DB:"); var msTemp = new MemoryStream(); msTemp.Write(file, 16, 8 * 1024); //add prg - msTemp.Write(file, 16 + 16 * 1024, iNesHeaderInfo.chr_size * 1024); //add chr + if (file.Length > (16 * 1024 + 16)) + { + // This assumes that even though the PRG is only 8k the CHR is still written + // 16k into the file, which is not always the case (e.x. Galaxian RevA) + msTemp.Write(file, 16 + 16 * 1024, iNesHeaderInfo.chr_size * 1024); //add chr + } + else + { + msTemp.Write(file, 16 + 8 * 1024, iNesHeaderInfo.chr_size * 1024); //add chr + } msTemp.Flush(); var bytes = msTemp.ToArray(); var hash = "sha1:" + bytes.HashSHA1(0, bytes.Length); @@ -584,9 +606,8 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES if (choice.wram_size == -1) choice.wram_size = 0; } } - + //if this is still null, we have to try it some other way. nescartdb perhaps? - if (choice == null) { choice = IdentifyFromBootGodDB(hash_sha1_several); @@ -599,6 +620,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES origin = EDetectionOrigin.BootGodDB; } } + } //if choice is still null, try UNIF and iNES From d0111a5a52013d60295c7c8f87232b9fabdc2e85 Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Mon, 5 Jun 2017 15:57:30 -0400 Subject: [PATCH 26/80] Update gamedb_nes.txt --- Assets/gamedb/gamedb_nes.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Assets/gamedb/gamedb_nes.txt b/Assets/gamedb/gamedb_nes.txt index 399b56b7ab..96b20f50e6 100644 --- a/Assets/gamedb/gamedb_nes.txt +++ b/Assets/gamedb/gamedb_nes.txt @@ -345,6 +345,9 @@ EDD7A45A7F27E396B6D686F1861642D509863132 Datach SD Gundam Gundam Wars NES boar sha1:E925A172C29DD46BA385D526F3C317DB039FA2BF mmc1_a12 NES board=NES-SNROM sha1:D89EE629F8F60613999EAD84A3C7B2F6B38C399F fme7ramtest_128k NES board=MAPPER069;PRG=32;CHR=8;WRAM=128;VRAM=0;PAD_V=0;PAD_H=1 +;other +sha1:4180276C50DF9958DEDD6C6D19C9E7AEBB75A89F o Galaxian (Japan) NES board=NAMCOT-3301;PRG=16;CHR=8;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0 +sha1:0FE9120FD5ADC2790B0B9E8FADD136F9C66A709F Galaxian (Japan) (Rev A) NES board=NAMCOT-3301;PRG=8;CHR=8;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0 ; ArcadePit hacks ; Why does this one need NesHawk? From bec4468ced57da8403fd2bcfc8bdd9bc353c75d1 Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Tue, 6 Jun 2017 07:52:17 -0400 Subject: [PATCH 27/80] Update NROM.cs --- BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/NROM.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/NROM.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/NROM.cs index a6885781a9..8e74c6767b 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/NROM.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/NROM.cs @@ -47,6 +47,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES case "NAMCOT-3305": case "NAMCOT-3311": case "NAMCOT-3312": + case "NAMCOT-NROM-128": case "NES-NROM-128": case "NES-NROM-256": //10 yard fight case "NES-RROM-128": @@ -92,4 +93,4 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES return ROM[addr]; } } -} \ No newline at end of file +} From d03e6cf4655d3df9bc9f7fa288afd8fd20863d48 Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Tue, 6 Jun 2017 07:53:33 -0400 Subject: [PATCH 28/80] Fix mapper 112 --- .../NES/Boards/Namcot1xx/Mapper112.cs | 26 ++++++++++++++----- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/Namcot1xx/Mapper112.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/Namcot1xx/Mapper112.cs index c7d072d5f6..913ed0e80a 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/Namcot1xx/Mapper112.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/Namcot1xx/Mapper112.cs @@ -1,18 +1,19 @@ using BizHawk.Common; +using System; namespace BizHawk.Emulation.Cores.Nintendo.NES { public sealed class Mapper112 : NES.NESBoardBase { //configuration - int prg_bank_mask_8k, chr_bank_mask_1k; + int prg_bank_mask_8k, chr_bank_mask_1k, chr_outer_reg; //state int reg_addr; ByteBuffer regs = new ByteBuffer(8); //volatile state - ByteBuffer chr_regs_1k = new ByteBuffer(8); + IntBuffer chr_regs_1k = new IntBuffer(8); ByteBuffer prg_regs_8k = new ByteBuffer(4); public override bool Configure(NES.EDetectionOrigin origin) @@ -48,12 +49,13 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES base.SyncState(ser); ser.Sync("reg_addr", ref reg_addr); ser.Sync("regs", ref regs); + ser.Sync("chr_outer_Reg", ref chr_outer_reg); Sync(); } public override void WritePRG(int addr, byte value) { - //Console.WriteLine("{0:X4} = {1:X2}", addr, value); + switch (addr & 0x6001) { case 0x0000: //$8000 @@ -63,6 +65,11 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES regs[reg_addr] = value; Sync(); break; + case 0x4000: + Console.WriteLine("{0:X4} = {1:X2}", addr, value); + chr_outer_reg = value; + Sync(); + break; case 0x6000: if ((value & 1) == 0) { @@ -88,14 +95,19 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES byte r1_0 = (byte)(regs[3] & ~1); byte r1_1 = (byte)(regs[3] | 1); + int temp4 = (chr_outer_reg & 0x10) << 4; + int temp5 = (chr_outer_reg & 0x20) << 3; + int temp6 = (chr_outer_reg & 0x40) << 2; + int temp7 = (chr_outer_reg & 0x80) << 1; + chr_regs_1k[0] = r0_0; chr_regs_1k[1] = r0_1; chr_regs_1k[2] = r1_0; chr_regs_1k[3] = r1_1; - chr_regs_1k[4] = regs[4]; - chr_regs_1k[5] = regs[5]; - chr_regs_1k[6] = regs[6]; - chr_regs_1k[7] = regs[7]; + chr_regs_1k[4] = temp4 | regs[4]; + chr_regs_1k[5] = temp5 | regs[5]; + chr_regs_1k[6] = temp6 | regs[6]; + chr_regs_1k[7] = temp7 | regs[7]; } public int Get_PRGBank_8K(int addr) From f2f2a76e3878f03c48e803f7463dc3246b782c44 Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Tue, 6 Jun 2017 07:55:41 -0400 Subject: [PATCH 29/80] Update gamedb_nes.txt --- Assets/gamedb/gamedb_nes.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Assets/gamedb/gamedb_nes.txt b/Assets/gamedb/gamedb_nes.txt index 96b20f50e6..9f4f3c765a 100644 --- a/Assets/gamedb/gamedb_nes.txt +++ b/Assets/gamedb/gamedb_nes.txt @@ -348,6 +348,9 @@ sha1:D89EE629F8F60613999EAD84A3C7B2F6B38C399F fme7ramtest_128k NES board=MAPPE ;other sha1:4180276C50DF9958DEDD6C6D19C9E7AEBB75A89F o Galaxian (Japan) NES board=NAMCOT-3301;PRG=16;CHR=8;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0 sha1:0FE9120FD5ADC2790B0B9E8FADD136F9C66A709F Galaxian (Japan) (Rev A) NES board=NAMCOT-3301;PRG=8;CHR=8;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0 +sha1:35D219EC3615A63FF810ABC981835D0867DCEA39 Pirates! (Europe) NES board=MAPPER001;PRG=128;CHR=128;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;BATT=true;system=NES-PAL +sha1:CBC32F60E8780E27645FC9DE4446CE92F2D5E636 Pirates! (Germany) NES board=MAPPER001;PRG=128;CHR=128;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;BATT=true;system=NES-PAL + ; ArcadePit hacks ; Why does this one need NesHawk? From 1d9e72b571a81ffaa7961d0d51ec93f4cd82ec1b Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Tue, 6 Jun 2017 19:50:39 -0400 Subject: [PATCH 30/80] Add files via upload --- Assets/gamedb/gamedb_nes.txt | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/Assets/gamedb/gamedb_nes.txt b/Assets/gamedb/gamedb_nes.txt index 9f4f3c765a..feccb07335 100644 --- a/Assets/gamedb/gamedb_nes.txt +++ b/Assets/gamedb/gamedb_nes.txt @@ -254,34 +254,27 @@ sha1:1C3771B7F116F439D684D04DF792570271C93F86 75 Bingo (Sachen-English) [U] NES sha1:4097D5A814308E39D592466B60B64862699CC22A 2-in-1 - Yuu Yuu + Dragonball Z [p1][!] NES board=MAPPER023_BMC sha1:4C499A857087E6C121522435786792A2E4105AC1 Fuuun Shaolin Kyo (FDS Conversion) (Unl) [U][!] NES board=UNIF_UNL-LH10;WRAM=8;VRAM=8 sha1:CAAC1E829133851648BA7C7CD6EAA7D26A464999 Metal Fighter (Asia) (Unl) (Sachen) NES board=UNIF_UNL-SA-016-1M;PRG=32;CHR=32;PAD_V=0;PAD_H=1 -sha1:B9902886D1739983B315B67B02133E44620E4381 Challenge of the Dragon (Asia) (PAL) (Unl) NES board=MAPPER147;PAD_V=0;PAD_H=1;system=NES-PAL sha1:0CDE48DB89896946F0C2E78936EA290348994ED5 Pipemania (Australia) (HES) (Unl) NES board=MAPPER113;PRG=32;CHR=16;WRAM=0;VRAM=0 sha1:E843AB3D779D4F0BB1F933D6EE99DAA526EFBCF1 Gaiapolis (Asia) (Unl) NES board=UNIF_NES-TLROM;PRG=128;CHR=256;WRAM=0;VRAM=0 -sha1:68ABE1E49C9E9CCEA978A48232432C252E5912C0 Dancing Blocks (Asia) (PAL) (Unl) NES board=MAPPER143;PAD_V=1;PAD_H=0;system=NES-PAL sha1:B21CFE30197727C1C8E8DB6D28AD696A708F8FF5 Pyramid II (Asia) (PAL) (Unl) NES board=MAPPER146 -sha1:7117413766ABC02F3BB767C2CE96065B6F3CBA85 Silent Assault (Asia) (PAL) (Unl) NES board=MAPPER146;PAD_V=0;PAD_H=1;system=NES-PAL sha1:8898B1E70D561AF31564689E0C942C181C78E55F Rockball (Asia) (Unl) NES board=UNIF_UNL-Sachen-8259A;PRG=64;CHR=64;WRAM=0;VRAM=0;PAD_V=0;PAD_H=1 sha1:6A07B7C55359E1826F670DEDEBF969B9DD2F0A2F Popo Team (Asia) (Unl) NES board=UNIF_UNL-Sachen-8259A;PRG=128;CHR=64;WRAM=0;VRAM=0;PAD_V=0;PAD_H=1 -sha1:FCF9FF27F097892148EAEC439AB79BC53164D751 Elite (NTSC Demo) NES board=MAPPER001;PRG=128;CHR=0;WRAM=8;VRAM=8;PAD_V=1;PAD_H=0;BATT=true;system=NES-PAL -sha1:2FB0401EA8249233EFA399F305D83672D5600B4A Sidewinder (Asia) (PAL) (Unl) NES board=MAPPER145;PRG=16;CHR=16;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;system=NES-PAL sha1:B3FB53931D34CDB41EFC2677CF7B949B2B84D616 Korean Igo (Korea) (Unl) NES board=UNIF_DREAMTECH01;PRG=144;CHR=0;WRAM=0;VRAM=8;PAD_V=1;PAD_H=0 sha1:358E092952DDAFF9703A75264A6732003952500D Qi Wang - Chinese Chess (Asia) (Unl) NES board=UNIF_UNL-22211;PRG=64;CHR=32;WRAM=0;VRAM=0;PAD_V=1;PAD_H=0 sha1:C282316D30790E41D0A4A0E8949024B980CEE572 Poker Mahjong - Pu Ke Mao Que (Asia) (Unl) NES board=UNIF_UNL-Sachen-8259A;PRG=32;CHR=32;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 sha1:82880C2F4A0D18E4CB67324334F2B3B76B818F31 Mahjong World, The - Ma Que Shi Jie (Asia) (NTSC) (Unl) NES board=MAPPER148;PRG=64;CHR=64;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0 -sha1:01D7CE2C74046BA6F7BE2C31DADB21A36BDCA117 Mahjong World, The - Ma Que Shi Jie (Asia) (PAL) (Unl) NES board=MAPPER148;PRG=64;CHR=64;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;system=NES-PAL -sha1:313CDE2F9829B8BC30978BA7C534AFD8896B7BCA Silver Eagle (Asia) (PAL) (Unl) NES board=MAPPER138;PRG=128;CHR=128;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;system=NES-PAL sha1:88E6ADE9934EFCDE38D7482FDDE1C00C4C13652D Super Pang II (Asia) (Unl) NES board=UNIF_UNL-Sachen-8259A;PRG=64;CHR=32;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 sha1:0EA22D830B93AB455F8C1F5E2C4B894EABA30AA3 Super Cartridge Ver 2 - 10 in 1 (Asia) (Unl) NES board=UNIF_UNL-Sachen-8259A;PRG=128;CHR=64;WRAM=0;VRAM=0 sha1:D24D3104E28FD3F428CDBC8AE2D3F4ACA9A69D6F Super Cartridge Ver 3 - 8 in 1 (Asia) (Unl) NES board=UNIF_UNL-Sachen-8259A;PRG=256;CHR=256;WRAM=0;VRAM=0 sha1:1477FD89A26B8F6E3460FE078794D79BEC944C00 Super Cartridge Ver 9 - 3 in 1 (Asia) (Unl) NES board=UNIF_UNL-Sachen-8259A;PRG=256;CHR=256;WRAM=0;VRAM=0 sha1:5239EECED4510EF3D540DD39D629D9E7C5E55251 Taiwan Mahjong - Tai Wan Ma Que 16 (Asia) (Unl) NES board=UNIF_UNL-SA-0036;PRG=32;CHR=16;WRAM=0;VRAM=0;PAD_V=1;PAD_H=0 -sha1:C10C526F26273C4A1E180B968665910B74C78B86 Othello (Australia) (Unl) NES board=MAPPER000;PRG=16;CHR=8;WRAM=0;VRAM=0;PAD_V=0;PAD_H=1;system=NES-PAL sha1:2500B5492ECE1CAFB97881C5A384B0768313BF98 Block Out (USA) (Proto) NES board=MAPPER004;PRG=128;CHR=0;WRAM=8;VRAM=8;PAD_V=0;PAD_H=1 sha1:B1CC3ED04C610BE18742A3FD78A8F27A597F8549 Sidewinder (Australia) (Unl) NES board=MAPPER113;PRG=16;CHR=16;WRAM=0;VRAM=0;PAD_V=1;PAD_H=0 sha1:D4702A831A398107D8F87BC93BD56C4D8CA78F2A Buzz & Waldog (USA) (Proto) (Unl) NES board=MAPPER156;PRG=128;CHR=128;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0 sha1:3C72706AF5998133EC6BE703994C10466A094EAB Xing Ji Zheng Ba (China) (Unl) NES board=MAPPER241;PRG=512;CHR=0;WRAM=8;VRAM=8;PAD_V=1;PAD_H=0 sha1:18DF013DB350787D0F3D83ADE33EA92B097BD54B Mahjan Samit Kabukicho Hen (Asia) (Unl) NES board=MAPPER146;PRG=64;CHR=64;WRAM=0;VRAM=0;PAD_V=1;PAD_H=0 sha1:6AAA5521F91F101448E77C996C9802015578400C Dooly_Bravo_Land NES board=MAPPER002;PRG=256;CHR=0;WRAM=0;VRAM=8;PAD_V=0;PAD_H=1 +sha1:4EBC1ED9665C36913D0F05129E6A54787BAD3165 Dragon Ball 3 - Gokuu Den (Japan) (Rev 1) NES board=BANDAI-FCG-2;PRG=128;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=1 ;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- @@ -348,10 +341,21 @@ sha1:D89EE629F8F60613999EAD84A3C7B2F6B38C399F fme7ramtest_128k NES board=MAPPE ;other sha1:4180276C50DF9958DEDD6C6D19C9E7AEBB75A89F o Galaxian (Japan) NES board=NAMCOT-3301;PRG=16;CHR=8;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0 sha1:0FE9120FD5ADC2790B0B9E8FADD136F9C66A709F Galaxian (Japan) (Rev A) NES board=NAMCOT-3301;PRG=8;CHR=8;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0 -sha1:35D219EC3615A63FF810ABC981835D0867DCEA39 Pirates! (Europe) NES board=MAPPER001;PRG=128;CHR=128;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;BATT=true;system=NES-PAL -sha1:CBC32F60E8780E27645FC9DE4446CE92F2D5E636 Pirates! (Germany) NES board=MAPPER001;PRG=128;CHR=128;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;BATT=true;system=NES-PAL - ; ArcadePit hacks ; Why does this one need NesHawk? sha1:90acbbdfad1465032dfff77175320bab8aa4adb7 H Mike Tyson's Punch-Out!! [Buck Edit] (USA) NES NesHawk + +; PAL +sha1:B9902886D1739983B315B67B02133E44620E4381 Challenge of the Dragon (Asia) (PAL) (Unl) NES board=MAPPER147;PAD_V=0;PAD_H=1;system=NES-PAL +sha1:68ABE1E49C9E9CCEA978A48232432C252E5912C0 Dancing Blocks (Asia) (PAL) (Unl) NES board=MAPPER143;PAD_V=1;PAD_H=0;system=NES-PAL +sha1:FCF9FF27F097892148EAEC439AB79BC53164D751 Elite (NTSC Demo) NES board=MAPPER001;PRG=128;CHR=0;WRAM=8;VRAM=8;PAD_V=1;PAD_H=0;BATT=true;system=NES-PAL +sha1:01D7CE2C74046BA6F7BE2C31DADB21A36BDCA117 Mahjong World, The - Ma Que Shi Jie (Asia) (PAL) (Unl) NES board=MAPPER148;PRG=64;CHR=64;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;system=NES-PAL +sha1:C10C526F26273C4A1E180B968665910B74C78B86 Othello (Australia) (Unl) NES board=MAPPER000;PRG=16;CHR=8;WRAM=0;VRAM=0;PAD_V=0;PAD_H=1;system=NES-PAL +sha1:35D219EC3615A63FF810ABC981835D0867DCEA39 Pirates! (Europe) NES board=MAPPER001;PRG=128;CHR=128;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;BATT=true;system=NES-PAL +sha1:CBC32F60E8780E27645FC9DE4446CE92F2D5E636 Pirates! (Germany) NES board=MAPPER001;PRG=128;CHR=128;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;BATT=true;system=NES-PAL +sha1:2FB0401EA8249233EFA399F305D83672D5600B4A Sidewinder (Asia) (PAL) (Unl) NES board=MAPPER145;PRG=16;CHR=16;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;system=NES-PAL +sha1:7117413766ABC02F3BB767C2CE96065B6F3CBA85 Silent Assault (Asia) (PAL) (Unl) NES board=MAPPER146;PAD_V=0;PAD_H=1;system=NES-PAL +sha1:313CDE2F9829B8BC30978BA7C534AFD8896B7BCA Silver Eagle (Asia) (PAL) (Unl) NES board=MAPPER138;PRG=128;CHR=128;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;system=NES-PAL +sha1:B5D3FCBD4A2C50DABB604AF1471E20A80566D086 Snowboard Challenge (Europe) NES board=MAPPER001;PRG=128;CHR=128;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;system=NES-PAL +sha1:6CB91EF73979A7C8893896E1B45A3E56FAC9E832 Twin Eagle (Asia) (PAL) (Unl) NES board=MAPPER146;PRG=32;CHR=32;WRAM=0;VRAM=0;PAD_V=0;PAD_H=1;system=NES-PAL \ No newline at end of file From 0bff385bdf931d67d031cb1d47b72c9a5adef22f Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Tue, 6 Jun 2017 20:03:42 -0400 Subject: [PATCH 31/80] NES Fix some more exceptions --- .../Consoles/Nintendo/NES/gamedb_nes.txt | 361 ++++++++++++++++++ 1 file changed, 361 insertions(+) create mode 100644 BizHawk.Emulation.Cores/Consoles/Nintendo/NES/gamedb_nes.txt diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/gamedb_nes.txt b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/gamedb_nes.txt new file mode 100644 index 0000000000..feccb07335 --- /dev/null +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/gamedb_nes.txt @@ -0,0 +1,361 @@ +#include gamedb_goodnes.txt +#include gamedb_neshomebrew.txt +#include gamedb_vs.txt + + +;b - bad dump +;v - bad dump (??) +;t - translated rom +;o - overdump (bad) +;i - bios +;d - homebrew +;h - hack +;u - unknown + +;Hash Status Name System ID Notes MetaData Configurations CoreForce[neshawk|quicknes] + +; ************ NES / Famicom ************ + +;games which might be good according to goodNES, but which are almost positively not according to bootgod, who has dumps with different hashes +;these we tend to mark as Unknown, because maybe these are variants of the cart which bootgod didnt happen to dump, or maybe bootgod's is wrong (?) +sha1:E80FF0B707B0D675FDBEF474E3FDB1A83E2B7C44 U Mississippi Satsujin Jiken (J) NES board=JALECO-JF-11;PRG=128;CHR=32;PAD_H=1 +sha1:8A5FD1061ADACDEABF422A2D2E555FF70749AE7C U Mississippi Satsujin Jiken (Alt) (J) NES board=MAPPER066;PRG=128;CHR=32;PAD_H=1 + +;possibly good roms for games which arent in bootgod's db yet, most likely due to obscurity or incompleteness at the present. +;when they appear in bootgod's db then we can re-evaluate this category. +sha1:91CECCFCAC90E417E9AEE80E8F7B560A20EB33CC Ai Sensei No Oshiete Watashi No Hoshi (J) NES board=IREM-G101;PRG=256;CHR=128;WRAM=8 +sha1:1E49BDA9CEF18F6F5C2DA34910487713D364AA68 G Pipe 5 (Sachen) NES board=MAPPER160;PAD_H=1;PAD_V=0 + +;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- +;this is every game from goodNES which is clearly labeled as bad. +;well, it isnt very game yet. but we should make it every game, if we can! it would be a lot of games though +sha1:984ADAEB85403EEF1BA85CDCF310FAAECEB409A0 B Adventures of Captain Comic, The (Bad Dump) (U) NES board=COLORDREAMS-74*377;PRG=64;CHR=64;WRAM=0;VRAM=0 +sha1:869111A86FD46872AD8B1BA0ED31B858FA15681F B Adventures of Lolo (Bad Dump) (U) NES board=NES-SEROM;PRG=32;CHR=32;WRAM=0;VRAM=0 +sha1:41BD74F739E008D476989C8296BB789EE57658F0 B Adventures of Lolo (Bad Dump 2) (U) NES board=NES-SEROM;PRG=32;CHR=32;WRAM=0;VRAM=0 +sha1:10AF069B2AC5DB2FB10768349F4068CB3CDA0EC7 B Airwolf (Bad Dump 1) (U) NES board=NES-SH1ROM;PRG=32;CHR=128 +sha1:DAD9D1D66018DFB3C30F48741EF188FEFA2B2F68 B Airwolf (Bad Dump 2) (U) NES board=NES-SH1ROM;PRG=32;CHR=128 +;since the actually good Banana rom is "Banana (J) [hM03][p1][a1]" then we want to be aggressive in marking all these others as bad +sha1:84EA60C1FA43AF37B2A20C1FEFCB2D5182EAF3E8 B Banana (J) [hM03] NES board=HVC-CNROM;PRG=32;CHR=32 +sha1:F9423CCC1AA711CB06B8F5C66E9304636F5E9B10 B Banana (J) [hM03] NES board=HVC-CNROM;PRG=32;CHR=32 +sha1:A8037AED044417DEE8D822A21851058ED37AF6A8 B Banana (J) [hM03] NES board=HVC-CNROM;PRG=32;CHR=32 +sha1:8F42BC9919B324A63636BE2FBAD0101D8C720517 B Banana (J) [hM03] NES board=HVC-CNROM;PRG=32;CHR=32 +sha1:4EF2C4DAD0897F326E2991D351903A98483BC3C0 B Banana (J) [hM03] NES board=HVC-CNROM;PRG=32;CHR=16 +sha1:15E04F1BF83D8FE34ECD2B29894C9CF034E6D257 B Banana (J) [hM03] NES board=HVC-CNROM;PRG=32;CHR=32 +sha1:C6C6228B16AECB35B0C52467071E04DB3B34C77F B Banana (J) [hM03] NES board=HVC-CNROM;PRG=32;CHR=8 +sha1:2801CDE6D10D67889E01161476D80CF5CCC3263E O Ball Hack v.2 2001-03-21 [o1] NES board=HVC-NROM-256;PRG=32;CHR=8 +sha1:A6E7DB47B9C39E2A5B0A77F34B9AA3BEFDB70D1C O Dr. Mario (JU) (PRG0) NES board=MAPPER001;CHR=32 +sha1:2BDBD70C1E3EEF115F640B91B22A97BFCDF18B2D B Castlevania III Dracula's Curse (U) (Bad Dump) NES board=MAPPER005;CHR=128 +sha1:0D0957F7D49E38C298EB5194472B87EFC44BBD46 B Dragon Quest II Akuryou no Kamigami (J) (Bad Dump) NES board=MAPPER002;CHR=0 +sha1:736C0AEDA14A93A2715BDA1DA6F6C92E6690A5DE B Dragon Quest IV Michibikareshi Monotachi (J) (PRG1) (Bad Dump) NES board=MAPPER001;PRG=512 +sha1:739698BD6050572F24E739A20978E4760CF33E59 B Dragon Quest IV Michibikareshi Monotachi (J) (PRG1) (Bad Dump) NES board=MAPPER001;PRG=512 +sha1:3FB61976847BCA4187DB61F484BF21346B42C95A B Dragon Warrior IV (Bad Dump) NES board=MAPPER001;PRG=512 +sha1:697ECCCDD178809207726A05A5593D874CA39CA9 B Dragon Warrior IV (Bad Dump) NES board=MAPPER001;PRG=512 +sha1:E33D3A487678F35E05C0E5DA7E4C30F8FEFA600D B Dragon Warrior IV (Bad Dump) NES board=MAPPER001;PRG=512 +sha1:3AE0469A8208023DAA32A7BB9925F3C5666FCB2D B Famicom Meijin Sen (J) [a1] NES board=HVC-SKROM;WRAM=8 +sha1:8CC5894A1E637FA63A63992E188B3797D9300337 B Mighty Bomb Jack (U) (Bad Dump) NES board=NES-CNROM;PRG=32;CHR=32;WRAM=0;PAD_V=1 +sha1:CAB30771F9CBD89B2FCD06F3B2F5C8F2156BFD8A B Mighty Bomb Jack (U) (Bad Dump) NES board=NES-CNROM;PRG=32;CHR=32;WRAM=0;PAD_V=1 +sha1:A4CDD4BC37D44CFF1379942CC31DCD89E340B10C B Money Game, The (J) [hFFE][b1] NES board=MAPPER006;PRG=256 +sha1:8AB1B122FE96865B62290FC838FA2C248D4989FB B 3D Bloack (Unl) [f1] (Bad Dump) NES board=MAPPER000;PAD_H=1 +sha1:457BA1626EAA58A2370ECD6AB0B83232C098C064 B High Speed (E) (Bad Dump) NES board=NES-TQROM;WRAM=0;VRAM=8;PAD_V=0;PAD_H=0;system=NES-PAL-B +sha1:421EBBFA08FFD5A7A0F4DDEE7868B36DB7FAEE39 B High Speed (U) (Bad Dump) NES board=NES-TQROM;WRAM=0;VRAM=8;PAD_V=0;PAD_H=0;system=NES-NTSC +sha1:9979C1333B8A7685CC3CA2BEAFD634B2A88D3AF8 B High Speed (U) (Over Dump) NES board=NES-TQROM;WRAM=0;VRAM=8;PAD_V=0;PAD_H=0;system=NES-NTSC +sha1:DAB664B59B094FFAABCF24D0388760C09F87495C B High Speed (U) (Over Dump) NES board=NES-TQROM;WRAM=0;VRAM=8;PAD_V=0;PAD_H=0;system=NES-NTSC +sha1:36405B87E66E18DC432690A5959D4529C14B1AEE B High Speed (U) (Over Dump) NES board=NES-TQROM;WRAM=0;VRAM=8;PAD_V=0;PAD_H=0;system=NES-NTSC +sha1:9D2391C1F4855E7ECCE0DB5C8B258A43B4E9F84F G Pin Bot (PC10) NES board=NES-TQROM;WRAM=0;VRAM=8 +sha1:B3537088ED6F8379F2C30CA45061BFCCBA1007B9 B Pin Bot (U) (Bad Dump) NES board=NES-TQROM;WRAM=0;VRAM=8 +sha1:A1E8E80E2F72E606CD7802D809B2FF256578EDE6 B Pin Bot (U) (Bad Dump) NES board=NES-TQROM;WRAM=0;VRAM=8 +sha1:C969BD9F8E4353EE6463221FFDD2BFE4A844134A B Pin Bot (U) (Over Dump) NES board=NES-TQROM;WRAM=0;VRAM=8 +sha1:569907CD308C28CDB178AA525F976656BF0DD886 B Pin Bot (U) (Over Dump) NES board=NES-TQROM;WRAM=0;VRAM=8 +sha1:9C851967BD74E063ED8F44935928911D572527AD B Pin Bot (U) (Over Dump) NES board=NES-TQROM;WRAM=0;VRAM=8 +sha1:2FA61D1FDFCFEC20099EB85C3F45827CA87160D9 B Yong Zhe Dou E Long Dragon Quest V (Ch) (Over Drump) NES board=MAPPER245;VRAM=8;CHR=0;PAD_H=1;BATT=true +sha1:79978AA3AD3FE63D41357E62F1E49E4761B3738A B Magical Taruruuto-kun 2 Mahou Daibouken (J) (Over Dump) NES board=BANDAI-LZ93D50+24C01;PRG=128;CHR=128;WRAM=0;VRAM=0 +sha1:3825786DF3AD8E2C2F0442E42088AC0E494BDA2D B Magical Taruruuto-kun 2 Mahou Daibouken (J) (Over Dump) NES board=BANDAI-LZ93D50+24C01;PRG=128;CHR=128;WRAM=0;VRAM=0 +sha1:02D4E73DACD3E74CF927C77DF1DB1B7453312CC9 T Captain Tsubasa Vol. II - Super Striker (Ch) NES board=MAPPER195;VRAM=4 +sha1:DBD7DBAF79D2A77A09D9D4CF685CBD93281ED468 B Chaos World (Ch) NES board=MAPPER195_CW;VRAM=4;BATT=false;PAD_H=1 +sha1:944F98A6885CA5160669BF81B9DE710CB16E312D G Chaos World (Ch) NES board=MAPPER195_CW;VRAM=4;BATT=false;PAD_H=1 +sha1:EA6093FF3B4C7425B792223742DF5C76A657EF08 B Columbus - Ougon no Yoake (Ch) NES board=MAPPER195;VRAM=2; +sha1:B367506A7249865DEDB59AFF9B4CE593B3913F0C G Columbus - Ougon no Yoake (Ch) NES board=MAPPER195;VRAM=2; +sha1:78EC827CEE61E009F7716ADE03361369FFCE9D12 G Luo Ke Ren X (Sugoro Quest - Dice no Senshitachi) (Ch) NES board=MAPPER195;VRAM=4 +sha1:568BF236FB3085B8BD522FBD2C18C7831E3A2DD1 G Q Boy (Sachen) NES board=SACHEN-8259A;VRAM=8 +sha1:2FA9EF6B8E5C7E1D215F4FF69C6275BDE00DDE76 O Sugoro Quest - Dice no Senshitachi (Ch) [o1] NES board=MAPPER191 +sha1:0C7CA363EA26632E1A61C7F40E0FE8E8538ED76A G Wei Luo Chuan Qi (Ch) NES board=MAPPER192 +sha1:F459A9AD6F841169E0210436CEB06B1395169EAB G Young Chivalry (Ch) NES board=MAPPER192 +sha1:8711FDC0CE28574C043816721CA32E4A1C722BE4 B Young Chivalry (Ch) NES board=MAPPER192 +sha1:E7803CAC6898C7243F9331E6360B5157BAE673A5 B Young Chivalry (Ch) NES board=MAPPER192 +sha1:16EF1034DB88AD96DDC19C3A84B9E0FDEE466CD4 B Young Chivalry (Ch) NES board=MAPPER192 +sha1:BE8373A0694EB021EBF73D75F8AC63BD8162009A B Young Chivalry (Ch) NES board=MAPPER192 +sha1:4692A622AF6A3D79514BF3E5FB4E9FBE6C6080FC G 150-in-1 [a1] NES board=MAPPER235 +sha1:83264E3F8807998D09E9FBA19B13BBEA7C888D88 O Bakushou!! Jinsei Gekijou 3 (J) [o1] NES board=TAITO-TC0190FMC+PAL16R4;WRAM=0 +sha1:E79FC613112CC5AB0FC8B1150E182670FB042F4A G Contra Fighter (Unl) NES board=MAPPER238 +sha1:2C512DE4079AF45D7B9218E40BB68E308ABE288C B Magic Johnson's Fast Break (U) NES board=MAPPER001;PRG=64;CHR=128 +sha1:D2BE67170DDED1E1108EED2D4D8CA9D9CEE9F9E2 G Super Mario Bros 2 (Lost Levels) (Unl) NES board=MAPPER040;WRAM=0;PAD_H=1;PAD_V=0 +sha1:77D5D7A162B61DEFC6B66B6A39B8D51E124AC534 B Tagin' Dragon (Bunch) [b] NES board=COLORDREAMS-74*377;CHR=16;PRG=32;WRAM=0 +sha1:2028940CF7C757A3A7931A741D5EC79C3554D38C O Wally Bear and the No Gang (AVE) [o] NES board=AVE-NINA-07;WRAM=0 +;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- + +;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- +;these roms are in goodNES but theyre junk. hacks, mostly. ideally we would put ever game from goodNES that was labeled as a hack in a list here. +sha1:111D38E2FB41D0B43753E18757D427A91B0DBCB9 H Dragon Ball Z II Gekishin Freeza!! (J) NES board=BANDAI-LZ93D50+24C02;PRG=256;CHR=256;WRAM=0 +sha1:A907E600CEDA175ECD115B406B28155397A4C1FA H Dragon Ball Z Gaiden Saiya Jin Zetsumetsu Keikaku (CH) NES board=BANDAI-FCG-1;PRG=512;CHR=256;WRAM=0 +sha1:A13EAF0132905FBE3D0456BB075028A30C084D0E H Dragon Ball Dai Maou Fukkatsu (J) [hFFE] NES board=BANDAI-FCG-1;PRG=128;CHR=128;WRAM=0;VRAM=0 +sha1:8885F4F00C0B73C156179BCEABA5381487DBEAAD H Spy vs Spy (J) NES board=HVC-CNROM-256K-01;PRG=32;CHR=8;WRAM=8 +sha1:8C676CC9BEF5B93C5A7630D12B8A5B2FEBCE3438 H Rad Racket Deluxe Tennis II NES board=NINA-06;PRG=32;CHR=32 +sha1:A1D674D1C7C633A317CFD516EFB9A0350CD0E45E H Arkanoid II (J) NES board=TAITO-74*161/161/32;PRG=128;CHR=128;WRAM=8 +sha1:4D6117577CE301BB987C5C32FEEF7B132A21B046 H Afro Man (Mega Man 3 Hack) (UNL) NES board=TXROM-HOMEBREW;PRG=256;CHR=128;WRAM=8 +sha1:7BD102770FE7766BF8430ACDB3C17EE51E30478C H Mike Tyson's Punch-Out!! (Hacked) (U) NES board=NES-PNROM;PRG=128;CHR=128;WRAM=0 +sha1:536D623BA02A622BDE8E2D7D514AE9785B5E0357 H Punch Out!! Kirby (Hack) (U) NES board=NES-PNROM;PRG=128;CHR=128;WRAM=0 +sha1:F2A8BC888B888FA65DFB303126B130422E34942E G Kunio 8-in-1 [p1] NES board=MAPPER045 +sha1:27AA5F60474600FEE5C1623D4A0985421680C9FE H Mario + Toad (Nuts & Milk Hack) NES board=MAPPER000 +sha1:B7DD142AF1FBCC81F3FE88C9278BD6C61B615D09 O Death Race (AGCI) (Overdump) NES board=MAPPER144 +sha1:0FAECB09767528CC2C9CD4FE4EDBD0C6ECEFB999 G Secret Scout in the Temple of Demise (Color Dreams) (Prototype) NES board=MAPPER011_HACKY +sha1:87C929090C3B04739BAAED90B9A8F40B29327FC2 G Free Fall (U) (Prototype) NES board=MAPPER011_HACKY +sha1:BFE1A8EFE7539B20E09FFD472963F271AC9F2AEC G Mortal Kombat 2 (Unl) NES board=MAPPER090 +sha1:123105A996B3F325E55B7080DDD83D4CF043E543 G 168-in-1 NES board=MAPPER015 +sha1:B094D9D20A193BF28BD57A1154EADA84F9F6C9CC G Street Fighter II - The World Warrior (Unl) NES board=MAPPER189 +sha1:C0CF1CDFEEA5F3529A3126B366DF8E331C804CC7 G Summer Carnival 92 - Recca NES board=MAPPER004 +sha1:E9CFA35A037CC218F01BFB4A1EB5D1D332EA2AA9 G Family BASIC (J) NES board=HVC-FAMILYBASIC;WRAM=2 + +;;;;;;;;;;;;;;;;;;;;;- + +;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- +;heres another idea. let's list rom sets from goodNES, good and bad variants together +sha1:98B71119294DA59D1B22723D2D2955D80EADABF4 World Hero (Unl) [!] NES board=MAPPER027 +sha1:17AC56723F99A646BD44F8C999B23B8A972A3EF2 B World Hero (Unl) [b1] NES board=MAPPER027 +sha1:5227195D5DB2030758BF67704150E8C5FAF056B1 B World Hero (Unl) [b2] NES board=MAPPER027 +sha1:AD350F001DB2E3C640B2BD9107B86A8F29B68AC0 G Commandos (Ch) NES board=MAPPER163; +sha1:5A91F54A6FF44762D98FC8D8974909D298EB52A8 G Somari (NT-616) (Unl) NES board=MAPPER116; +sha1:5F0943DC8145542ABC70BF20E4754B3C08653399 G Meikyuu Jiin Dababa (FDS Conversion) (Unl) NES board=MAPPER108;WRAM=0 +sha1:95E86C77BB25DD23152D34FD0BB562A09535BE43 G Pyramid (AVE) (PRG1) NES board=MAPPER000 +sha1:5759A9D658D253C8A6AAA38969C443D66E0F3349 G Dragon Quest III (PRG0) NES board=HVC-SNROM-03 +sha1:9DF34897D002E8D0E4D53B76154F8CD46927CDF9 G Dragon Quest III (PRG1) NES board=HVC-SNROM-03 +sha1:B6D1C372A38D196112AA98905C709AD844BD6627 G Super 35-in-1 (y-in-1 VT5201) NES board=MAPPER060 +sha1:0941ABB51EF88587303DBF018770758ECDDD5C20 G Jovial Race (Sachen) NES board=MAPPER133 +sha1:D20724A2E2933BEE8E193596688CF86747E0250B B Dragon Ball Z Kyoushuu! Saiya Jin (J) (Bad Dump) NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 +sha1:9F17353EF85590484BBC693517292A15DD30845D B Dragon Ball Z Kyoushuu! Saiya Jin (J) (Bad Dump) NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 +sha1:D1E9A66CC7424725AD72B8A04E37B9E72EE2BFB6 O Dragon Ball Z Kyoushuu! Saiya Jin (J) (Over Dump) NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 +sha1:123AA69FE2334A027E48BA658C906BFA4996FA32 T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T+Eng0.47_Eigo ni Yakusu Productions] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 +sha1:6DCB35518C0AC42943098A5B417B79C10273D75A T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T+Eng1.01_RedComet] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 +sha1:726C2C19F7B559AD5220872004B580D8C9574F5A T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T+Eng1.1] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 +sha1:D51398EFF4F3F47AFA0527D98882234E10AEDFF4 T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T+Kor20060719_88ktt] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 +sha1:97DECB4E7C8DE1006F57732D8E83437A9186E500 T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T+Por45%_Tradu-Roms] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 +sha1:80E314CF4A2FCD5A184D4D168428165C1F844729 T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T+Por100%_RaphFS] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 +sha1:1D6381D2AA0DF4A5B50E9E2DB7B45785BBB1E48F T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T+Spa_PaladinKnights] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 +sha1:15E43BE5F7D328BF3041B52CE38BFC4FF23A1DF1 T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T-Eng] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 +sha1:D42BA5AEC6E41804FF98D6DFA34B53510A1174FA T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T-Eng0.50_TransBRC] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 +sha1:B1228C5716FB5EE2E0421634A464C927B33493B7 T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T-Eng0.99_RedComet] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 +sha1:8E910216502E0BF9BFBA3E38EAA34FFC2D7EE1AD T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T-Eng1.00_RedComet] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 +sha1:18BE110CBEA2D665A3FF704BDD4153AE5E5ACE5F T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T-Kor_88ktt] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 +sha1:9F601A88A9DFA8EDEC23F67DA60254BE4CBAE64B T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T-Spa] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 +sha1:FC7A8824CFDD37F85868C8D8624D8B517A7C3C02 G God Slayer - Haruka Tenkuu no Sonata (Ch) NES board=MAPPER195;WRAM=16;VRAM=4;BATT=true +sha1:081D107B5AEFFD4F59108C76FA3942506FA36B1F G Captain Tsubasa Vol. II - Super Striker (Ch) NES board=MAPPER195;VRAM=4 +sha1:F99E8B7C7A2174BF0B2330F5457AEE478A938C93 G Captain Tsubasa Vol. II - Super Striker (Ch) [a1] NES board=MAPPER195;VRAM=4 +sha1:9958BED493E8C5727F96937BF254AC33FA3BCF81 G Captain Tsubasa Vol. II - Super Striker (Ch) [a2] NES board=MAPPER195;VRAM=4 +sha1:B4AA3F10908DC3D6B8152F5DEB1B8543B8B46BF6 G Captain Tsubasa Vol. II - Super Striker (Ch) [a3] NES board=MAPPER195;VRAM=4 +sha1:60FC5FA5B5ACCAF3AEFEBA73FC8BFFD3C4DAE558 G Pegasus 5-in-1 (Golden Five) NES board=MAPPER104 +sha1:BAD382331C30B22A908DA4BFF2759C25113CC26A O Pegasus 5-in-1 (Golden Five) NES board=MAPPER104 +sha1:6282051DA49C286863463AF105F851AACF896563 G San Guo Zhi 2 (Ch) NES board=MAPPER199;VRAM=8;BATT=true +sha1:71234F9DCA4C31B4E9F0719425963878F3F045C9 G Dragon Ball Z II - Gekishin Freeza!! (Ch) NES board=MAPPER199;VRAM=8;BATT=true +sha1:A907E600CEDA175ECD115B406B28155397A4C1FA G Dragon Ball Z Gaiden - Saiya Jin Zetsumetsu Keikaku (Ch) NES board=MAPPER199;VRAM=8;BATT=true +sha1:D565A9C2B117447C310E4F59E4AFC30DF299EA4F G Street Fighter IV (Unl) NES board=MAPPER208 +sha1:B9F444FF60F60C177EEEC8671BEC3731B0F6FE49 G Tang Mu Li Xian Ji (Ch) NES board=MAPPER223;WRAM=16 +sha1:EBD2B4A4067FD4A8F0D0ABD34C8FF1AF520D1EED G Super Blaster VII Turbo 28 (Unl) NES board=MAPPER083;prg=512;chr=256;wram=0; +sha1:40409FEC8249EFDB772E6FFB2DCD41860C6CCA23 G Pegasus 4-in-1 (Unl) NES board=MAPPER232 +sha1:7EF667D9BF107B6512565177B9C62081077558F5 T Tenchi wo Kurau II - Shokatsu Koumei Den (J) [T+Chi] NES board=MAPPER198 +sha1:92CC033C1255F119B3A566EDCA10140C014FA479 T Tenchi wo Kurau II - Shokatsu Koumei Den (J) [T+Chi][a1] NES board=MAPPER198 +sha1:EEF617A022B8E45E0BDE088FED654C89AD4FAABF T Tenchi wo Kurau II - Shokatsu Koumei Den (J) [T+Chi][a2] NES board=MAPPER198 +sha1:3D49A357362160B16F03CC4BE7D8EAFB7108708D T Tenchi wo Kurau II - Shokatsu Koumei Den (J) [T+Chi(Trad)] NES board=MAPPER198 +sha1:7FB334A7375E17EA157415193DEE4FACC4EC2B34 T Tenchi wo Kurau II - Shokatsu Koumei Den (J) [T+Chi(Simp)] NES board=MAPPER198 +sha1:D8684D302F17843031151DE38D609646CAE4753C O Don Doko Don 2 (J) [o1] NES board=MAPPER048 +sha1:12DDD9EDB8894C200C9D89B9EE5673F1202ABA19 Falsion (FDS Conversion, Whirlwind Manu) (Unl) NES board=MAPPER108;WRAM=0 +sha1:D6E9F3722CFA26CBC582649F197D780809F575CA O Family Circuit '91 (J) [o1] NES board=MAPPER210;PAD_V=1;PAD_H=0 +sha1:387E7B477F5A61A165A41CD2BFE8A467B3816323 O Family Circuit '91 (J) [o2] NES board=MAPPER210;PAD_V=1;PAD_H=0 +sha1:68ADA89BC7539679871AD14C5C1FFADF04D71280 O Family Circuit '91 (J) [o3] NES board=MAPPER210;PAD_V=1;PAD_H=0 +sha1:8A5FD1061ADACDEABF422A2D2E555FF70749AE7C B Mississippi Satsujin Jiken (J) [h2] NES board=MAPPER066 +sha1:C1F7AD0A347078B9213B2748D4ADFF33305A6647 O Mississippi Satsujin Jiken (J) [h2][o1] NES board=MAPPER066 +sha1:4BBD4C55C37F531031177DE51F007B10418AD760 O Pyramid (AVE) (PRG1) [o1] NES board=MAPPER000 +sha1:BAF860940369C54B3FF547DA7E759515015B1131 O Pyramid (AVE) (PRG1) [o2] NES board=MAPPER000 +sha1:2B34E0F405629055E4FF2B2B1C0EBE015D866344 H Rabbi Harrel Groberklotz (Gumshoe Hack) NES board=MAPPER066;WRAM=0 +sha1:DA3644C99D462833E4EEF826D8700AF278609C10 G Super 2-in-1 (Soccer Game & Crazy Dance) (Unl NES board=MAPPER178 +sha1:CE11161FE2B41008F55FC9D29E093C347E78EBC4 T Super Mario Bros 2 (Lost Levels) (Unl) [T+Rus_Cool-Spot] NES board=MAPPER040;WRAM=0;PAD_H=1;PAD_V=0 +sha1:43E3ED6480E7BF32FFAF1AEBC7F534E0A9B775E6 T Super Mario Bros 2 (Lost Levels) (Unl) [T+Rus_Cool-Spot][a1] NES board=MAPPER040;WRAM=0;PAD_H=1;PAD_V=0 +sha1:F32E366828DCA94A612DD39613858DD8E26FA2DC T Thunder & Lightning (U) [t1] NES board=MAPPER066;WRAM=0 +sha1:8554112E83B5978F5D4EC6E4551F390D5F698E00 B U-Force Power Games (U) (Prototype2) (Defaced by NA) [b1] NES board=NES-GNROM;WRAM=0 +sha1:A6A0A3DC8438558FA5DA3AF8D3349AA8CF080404 Xi You Ji Hou Zhuan (Ch) NES board=MAPPER162 +sha1:BC1734BEE472D34F489A6F5F2530A019F28055B7 B 800-in-1 [p1][b1] NES board=MAPPER236 +sha1:BC1734BEE472D34F489A6F5F2530A019F28055B7 G 800-in-1 [p1][U] NES board=MAPPER236;VRAM=8 +sha1:BD167D1BCC9A008D04136EB91396EBEBCAC976E2 B R.B.I. Baseball (Tengen) [b] NES board=TENGEN-800002;WRAM=0;PAD_H=1;PAD_V=0 +sha1:DEE958845DC528BED899557FB2A8A3B61F1BA7D1 Bao Xiao San Guo (Ch) [a4] NES board=WAIXINGMAPPER176 +sha1:2EADA3C0D800A40C1CE5DB96A31A43196ED7A97B Kou Dai Jing Ling - Fei Cui (Ch) [a2] NES board=WAIXINGMAPPER176 +sha1:237C2C026A10B3CEBFF96516FC67E4F446676D47 Meng Huan Zhi Xing IV (ES-1006) (Ch) NES board=WAIXINGMAPPER176 +sha1:2FA7C0E60634C12EF54D857BF7AF45D4971066FE Po Fu Chen Zhou (ES-1092) (Ch) (Decrypted) NES board=WAIXINGMAPPER176 +sha1:A8010B1EE3C5362F606A47604CC49E5D7EAC9E46 B Pocket Monsters Red (Ch) (Decrypted) [b1] NES board=WAIXINGMAPPER176 +sha1:A50411EDCC088D55B35A62ABD62D4FF1A0B4ED22 Shu Qi Yu - Shu Xue Xiao Zhuan Yuan (Ch) NES board=WAIXINGMAPPER176 +sha1:5BDE83532F9E3B885C4D2C130F8981DD04E5A159 Shu Qi Yu - Zhi Li Xiao Zhuan Yuan (Ch) NES board=WAIXINGMAPPER176 +sha1:91E51788E980A8AD5A8A829E270504C9571B72CF Shui Hu Shen Shou (ES-1087) (Ch) (Decrypted) NES board=WAIXINGMAPPER176 +sha1:DB92A34E6941D99B796FBE6C6C26F7D09C2BC2EE Xi Chu Ba Wang (ES-1066) (Ch) (Decrypted) NES board=WAIXINGMAPPER176 +sha1:7235F3F8F0CA37B7C1EE6923A6DA272C08E0C817 Xiong Ba Tian Xia (Ch) NES board=WAIXINGMAPPER176 +sha1:71511ECB1E5D99F38A04EC9291B1ABD4B512C42D P Bubble Bobble (FDS Conversion, Kaiser Hacked) (Unl) [p1] NES board=MAPPER108;WRAM=0;PAD_H=0;PAD_V=1 +sha1:8F6CF72F9A829177A67DAAD4A083CADA3ED8B587 P Doraemon (J) (PRG0) [p3] NES board=MAPPER066;WRAM=0;PAD_H=1;PAD_V=0 +sha1:E1935AD60CAFAEEC8A8301A607B373754D770E2E T Doraemon (J) (PRG0) [T+Eng] NES board=MAPPER066;WRAM=0;PAD_H=1;PAD_V=0 +sha1:06A243B7FFE2CA5F96C4D324742BD6F349D7589E T Doraemon (J) (PRG0) [t2] NES board=MAPPER066;WRAM=0;PAD_H=1;PAD_V=0 +sha1:BD43811A68799DBC45A53A006C35167D19C0919C T Doraemon (J) (PRG0) [t3] NES board=MAPPER066;WRAM=0;PAD_H=1;PAD_V=0 +sha1:CB83577AAB5465EC7AD0AEF859A03444BA509386 T Doraemon (J) (PRG1) [T+Rus_Chief-Net] NES board=MAPPER066;WRAM=0;PAD_H=1;PAD_V=0 +sha1:C78A7629779AF2EA2D9870524E6A79C0CD2E0213 T Jajamaru no Daibouken (J) [T+Chi_nineswords] NES board=MAPPER066;WRAM=0;PAD_V=0;PAD_H=1 +sha1:A78D32B5FD43DCABA07A9152BF12EC9BFF2D37FD T Jajamaru no Daibouken (J) [hM66][T+Eng1.00_Aishsha] NES board=MAPPER066;WRAM=0;PAD_V=0;PAD_H=1 +sha1:2D8F4656698937A7616A61D82B47232D939E68EA P AV Mahjongg (Hacker) NES board=MAPPER066;WRAM=0;PAD_H=0;PAD_V=1 +sha1:E365A1F87EDFE8A68F23D8521CBDBE56EC3D76A3 T AV Mahjongg (Hacker) [T+Chi] NES board=MAPPER066;WRAM=0;PAD_H=0;PAD_V=1 +sha1:D540F1050055C74B68CA02F3BA215E23ED859560 B AV Mahjongg (Hacker) [b1][T+Chi] NES board=MAPPER066;WRAM=0;PAD_H=0;PAD_V=1 +sha1:E8BDD327FA96576F501914BDF455C477EC2A20B4 B AV Mahjongg (Hacker) [b1] NES board=MAPPER066;WRAM=0;PAD_H=0;PAD_V=1 +sha1:E816367A8CAC2AC470CEEBA8C8DC00CEC8C7009E T AV Mahjongg (Hacker) [T+Chi][a1] NES board=MAPPER066;WRAM=0;PAD_H=0;PAD_V=1 +sha1:315ACE4AD8AC09B7ABA2815F93EEB8AD97BA1D38 H Fish Fall (Free Fall Hack) NES board=MAPPER011_HACKY +sha1:F59E68705F6A6346E18A071884A21A6289754EB7 G Free Fall (U) (Prototype) (Earlier) NES board=MAPPER011_HACKY +sha1:4FB14A3DBCE888BB1F95570BE45317ED1513FE89 B Free Fall (U) (Prototype) [b1] NES board=MAPPER011_HACKY +sha1:88A3624F48A2780B2C2A9D742B2185C3B31FB3D7 H Handy (Free Fall Hack) NES board=MAPPER011_HACKY + +;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- + +;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- +;obscure and unlicensed roms which are not likely to be in bootgod's DB anytime soon but which are nonetheless "good" as far as things go +;people like these games (especially vast quantities of chinese oddities) so its important to add them here as good +sha1:D09EF8127C64CBE817B45DF33C4D43E7B441E381 Final Fantasy V (Unl) NES board=MAPPER164;PRG=512;CHR=0;WRAM=8;PRAM=8;PAD_V=1 +sha1:92D9695FEB774F60965A8303CFE3E6AAEE7B7B62 Magic Dragon (Unl) NES board=MAPPER107;PRG=128;CHR=64;WRAM=8;PAD_H=1 +sha1:6DF9AECF5787C0833B0F05A9A83D0E58A6153977 Rumblestation 15-in-1 (Unl) NES board=MAPPER046;PRG=1024;CHR=1024;WRAM=0 +sha1:E4BFD5AB3C3649DBD36B9A7280CF431641BCBCEC Peek-A-Boo Poker (Unl) NES board=NES-CNROM;PRG=32;CHR=24;WRAM=0 +sha1:39294394A0631708F58397371CE14075AE1FB7E6 Peek-A-Boo Poker (Panesian) NES board=NES-CNROM;PRG=32;CHR=64;WRAM=0 +sha1:C87E7E6A68DD9C7E24652CD2C7D390A14E8ADF04 Lagrange Point NES board=KONAMI-VRC-7;PRG=512;CHR=0;WRAM=8;PRAM=8;PCB=352402;BATT=true +sha1:2E0889131DA5BA9505A15B94887113F4360D98CD Shin Samurai Spirits 2 Haoumaru Jigoku Hen (Unl) NES board=MAPPER209;PRG=128;CHR=512;WRAM=8 +sha1:EB35202CC4E9C2FAC320B04F36F3A6858B8916F2 Super Bros. 8 NES board=MAPPER048; +sha1:F949FC16932808C426074AB1628F246B0435C52C Flintstones, The Rescue of Dino & Hoppy (J) NES board=MAPPER048; +sha1:9C801071D1AAC7B280468C38BF1B61FDE99B5FD0 Yong Zhe Dou E Long Dragon Quest VII (Ch) NES board=MAPPER245; +sha1:C282206800426557E7DD66ABF70FEAB6FE9DA1B2 San Guo Zhi (Ch) NES board=MAPPER252;VRAM=2;BATT=true;PAD_H=1 +sha1:E6F080CCF09C62C038D35E3BD503C4E57E716571 B San Guo Zhi (Ch) NES board=MAPPER252;VRAM=2;BATT=true;PAD_H=1 +sha1:E2BFF2002F2DD0AA184D5791D008A1350C477AE0 B San Guo Zhi (Ch) NES board=MAPPER252;VRAM=2;BATT=true;PAD_H=1 +sha1:B37E6002EF84C172DB413DF4B41451192ADBDC36 Shen Hua Jian Yun III (Ch) NES board=MAPPER253;VRAM=2;BATT=true;PAD_H=1 +sha1:CE1B236ED0EAC133A3DE5411AEF57228220885EF G Super Sonic 5 (1997) (Unl) NES board=MAPPER121 +sha1:37DC34A1069B5B62BAC41DB66F47745E3A1E442B SD Gundam Gaiden - Knight Gundam Monogatari (J) (V1.0) [b1] NES board=MAPPER159; +sha1:89C57A4144E038565707A4B3B5B9505C7E4F3C70 SD Gundam Gaiden - Knight Gundam Monogatari (J) (V1.0) [T+Eng0.10_Assassin_Productions] NES board=MAPPER159; +sha1:CFB4626E7794F1276ABF5DB7806FCE61EFEBFE98 Street Heroes (Sachen) [U][!] NES board=UNIF_UNL-SHERO;VRAM=16; +sha1:56CBA51568B0F1458AA7E0DE6575D1225E40F7A1 3D Block (Unl) [a1][!] NES board=MAPPER219;PRG=32;CHR=0;VRAM=8;PAD_V=0;PAD_H=1 +sha1:0E7A314D43B53ABCCFF7B38A1AA8BD0CFA612346 Pocahontas 2 NES board=Pocahontas +sha1:0E78391D3036D71C8241DB0206E7747F4E3892DC Poker III NES board=UNIF_UNL-Sachen-74LS374N +sha1:11419605C942FC9DCB4F93A329C13E3BD5D62403 Poker III NES board=UNIF_UNL-Sachen-74LS374N +sha1:F9E15D09D5F49E52185BA10B4F98A342B2606870 Mei Nu Quan (Honey Peach) (Sachen) [b1] NES board=UNIF_UNL-Sachen-74LS374N +sha1:52EBAFAD0B70E6BB41CCDBC0DFC8420C12D64AC5 Mei Nu Quan (Honey Peach) (Sachen) [b2] NES board=UNIF_UNL-Sachen-74LS374N +sha1:079E58CEDD3D182E8591A33EE8FAD6F227960838 Mei Nu Quan (Honey Peach) (Sachen) [a1] NES board=UNIF_UNL-Sachen-74LS374N +sha1:E8BB03BA4ABED34FF451A1D086352719BAC6564F San Guo Zhi 2 (Ch) [T+Chi2.3] NES board=MAPPER199;VRAM=8 +sha1:8996AEA69D459AC181F1B3F4EF56DEA20FFF0A40 Silva Saga (J) [T+ChS] NES board=MAPPER199;VRAM=8 +sha1:3F85C45797E8AA0F161A4BD350BFF5777B3A19A8 Zu Qiu Xiao Jiang (Ch) [f1] NES board=MAPPER195;VRAM=4 +sha1:A43A2203F4F7E0FE729CE520FBD75A05206AC9F2 Zu Qiu Xiao Jiang (Ch) NES board=MAPPER195;VRAM=4 +sha1:A2F36A9CA3914F1C9184A85E914D7A163DAA135B B 46-in-1 (D1038) [p1][b1] NES board=MAPPER060 +sha1:C403AA673405583FD18A0DA5E3E6275786E04128 B 65-in-1 (NT766) [p1][b1] NES board=MAPPER060 +sha1:7E46FBE4713E9391293521CF2B852C80DBEBCD7F B 74-in-1 (NT886) [p1][b1] NES board=MAPPER060 +sha1:81D72ACD08A6255AE44639D40D6D90C1EFCF61AF B 77-in-1 (NT141) [p1][b1] NES board=MAPPER060 +sha1:1C3771B7F116F439D684D04DF792570271C93F86 75 Bingo (Sachen-English) [U] NES board=Sachen_CNROM +sha1:4097D5A814308E39D592466B60B64862699CC22A 2-in-1 - Yuu Yuu + Dragonball Z [p1][!] NES board=MAPPER023_BMC +sha1:4C499A857087E6C121522435786792A2E4105AC1 Fuuun Shaolin Kyo (FDS Conversion) (Unl) [U][!] NES board=UNIF_UNL-LH10;WRAM=8;VRAM=8 +sha1:CAAC1E829133851648BA7C7CD6EAA7D26A464999 Metal Fighter (Asia) (Unl) (Sachen) NES board=UNIF_UNL-SA-016-1M;PRG=32;CHR=32;PAD_V=0;PAD_H=1 +sha1:0CDE48DB89896946F0C2E78936EA290348994ED5 Pipemania (Australia) (HES) (Unl) NES board=MAPPER113;PRG=32;CHR=16;WRAM=0;VRAM=0 +sha1:E843AB3D779D4F0BB1F933D6EE99DAA526EFBCF1 Gaiapolis (Asia) (Unl) NES board=UNIF_NES-TLROM;PRG=128;CHR=256;WRAM=0;VRAM=0 +sha1:B21CFE30197727C1C8E8DB6D28AD696A708F8FF5 Pyramid II (Asia) (PAL) (Unl) NES board=MAPPER146 +sha1:8898B1E70D561AF31564689E0C942C181C78E55F Rockball (Asia) (Unl) NES board=UNIF_UNL-Sachen-8259A;PRG=64;CHR=64;WRAM=0;VRAM=0;PAD_V=0;PAD_H=1 +sha1:6A07B7C55359E1826F670DEDEBF969B9DD2F0A2F Popo Team (Asia) (Unl) NES board=UNIF_UNL-Sachen-8259A;PRG=128;CHR=64;WRAM=0;VRAM=0;PAD_V=0;PAD_H=1 +sha1:B3FB53931D34CDB41EFC2677CF7B949B2B84D616 Korean Igo (Korea) (Unl) NES board=UNIF_DREAMTECH01;PRG=144;CHR=0;WRAM=0;VRAM=8;PAD_V=1;PAD_H=0 +sha1:358E092952DDAFF9703A75264A6732003952500D Qi Wang - Chinese Chess (Asia) (Unl) NES board=UNIF_UNL-22211;PRG=64;CHR=32;WRAM=0;VRAM=0;PAD_V=1;PAD_H=0 +sha1:C282316D30790E41D0A4A0E8949024B980CEE572 Poker Mahjong - Pu Ke Mao Que (Asia) (Unl) NES board=UNIF_UNL-Sachen-8259A;PRG=32;CHR=32;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 +sha1:82880C2F4A0D18E4CB67324334F2B3B76B818F31 Mahjong World, The - Ma Que Shi Jie (Asia) (NTSC) (Unl) NES board=MAPPER148;PRG=64;CHR=64;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0 +sha1:88E6ADE9934EFCDE38D7482FDDE1C00C4C13652D Super Pang II (Asia) (Unl) NES board=UNIF_UNL-Sachen-8259A;PRG=64;CHR=32;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 +sha1:0EA22D830B93AB455F8C1F5E2C4B894EABA30AA3 Super Cartridge Ver 2 - 10 in 1 (Asia) (Unl) NES board=UNIF_UNL-Sachen-8259A;PRG=128;CHR=64;WRAM=0;VRAM=0 +sha1:D24D3104E28FD3F428CDBC8AE2D3F4ACA9A69D6F Super Cartridge Ver 3 - 8 in 1 (Asia) (Unl) NES board=UNIF_UNL-Sachen-8259A;PRG=256;CHR=256;WRAM=0;VRAM=0 +sha1:1477FD89A26B8F6E3460FE078794D79BEC944C00 Super Cartridge Ver 9 - 3 in 1 (Asia) (Unl) NES board=UNIF_UNL-Sachen-8259A;PRG=256;CHR=256;WRAM=0;VRAM=0 +sha1:5239EECED4510EF3D540DD39D629D9E7C5E55251 Taiwan Mahjong - Tai Wan Ma Que 16 (Asia) (Unl) NES board=UNIF_UNL-SA-0036;PRG=32;CHR=16;WRAM=0;VRAM=0;PAD_V=1;PAD_H=0 +sha1:2500B5492ECE1CAFB97881C5A384B0768313BF98 Block Out (USA) (Proto) NES board=MAPPER004;PRG=128;CHR=0;WRAM=8;VRAM=8;PAD_V=0;PAD_H=1 +sha1:B1CC3ED04C610BE18742A3FD78A8F27A597F8549 Sidewinder (Australia) (Unl) NES board=MAPPER113;PRG=16;CHR=16;WRAM=0;VRAM=0;PAD_V=1;PAD_H=0 +sha1:D4702A831A398107D8F87BC93BD56C4D8CA78F2A Buzz & Waldog (USA) (Proto) (Unl) NES board=MAPPER156;PRG=128;CHR=128;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0 +sha1:3C72706AF5998133EC6BE703994C10466A094EAB Xing Ji Zheng Ba (China) (Unl) NES board=MAPPER241;PRG=512;CHR=0;WRAM=8;VRAM=8;PAD_V=1;PAD_H=0 +sha1:18DF013DB350787D0F3D83ADE33EA92B097BD54B Mahjan Samit Kabukicho Hen (Asia) (Unl) NES board=MAPPER146;PRG=64;CHR=64;WRAM=0;VRAM=0;PAD_V=1;PAD_H=0 +sha1:6AAA5521F91F101448E77C996C9802015578400C Dooly_Bravo_Land NES board=MAPPER002;PRG=256;CHR=0;WRAM=0;VRAM=8;PAD_V=0;PAD_H=1 +sha1:4EBC1ED9665C36913D0F05129E6A54787BAD3165 Dragon Ball 3 - Gokuu Den (Japan) (Rev 1) NES board=BANDAI-FCG-2;PRG=128;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=1 + +;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- + +;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- +;positively good roms which for one reason or another arent in bootgod's DB + +;probably missing due to obscurity +sha1:977286FDC76C34A618E2A2D0270641BC36CFE89C Nintendo World Championships 1990 NES board=NES-EVENT;PRG=256;CHR=0;WRAM=8;VRAM=8 + +;these are from the 2002 konami collection and castlevania at least has a published TAS. presumably these are good, as they came from a PC game +sha1:EC652EE1660E527098102E26A36A8B9B7BB3943F Castlevania (Konami Collection 2002) NES board=NES-UNROM;PRG=128;WRAM=0;VRAM=8;PAD_H=1 +sha1:B5C4E5E858113F5AA5E063BC79A12D7F6B856E6C Contra (Konami Collection 2002) NES board=NES-UNROM;PRG=128;WRAM=0;VRAM=8;PAD_H=1 + +;chinese shit +sha1:BFA31777E077E64AF0E274B5A22B57C6765D36E1 Fan Kong Jing Ying (Unl) (Ch) NES board=MAPPER241;MIR=H +sha1:17473C223453D2D80FCB9DCFA317947287DC5C52 Xing He Zhan Shi (Ch) NES board=MAPPER176 +sha1:0B58E16B7FD5ABE62B1D9B1841875582DF5A9195 Ying Lie Qun Xia Zhuan (Ch) NES board=MAPPER192 +sha1:27CB8AEAF0EA97A6C69D3D90BC056C5EB61695F6 Dai-2-Ji Super Robot Taisen (Ch) NES board=MAPPER194;VRAM=2 +sha1:F5FA7807F2B70ADFE5707D9BF88F90DAC1436DB0 Di 4 Ci Ji Qi Ren Dai Zhan (Ch) NES board=MAPPER074;VRAM=2 +sha1:A9887C308C5D0659C3AA45D003A603C9DFFB148A B Ji Jia Zhan Shi (Asia) NES board=MAPPER074;VRAM=2 +sha1:5084F25F14A61AB2799BD85D363B57B9B494601D Ji Jia Zhan Shi (Asia) NES board=MAPPER074;VRAM=2 +sha1:6143D80047FFC17C752078C622A44C3E0CB7466E B Dong Fang de Chuan Shuo The Hyrule Fantasy (Asia) NES board=MAPPER245 +sha1:CEFEBA536DB507DBDEF8A538F9C332D7A75BF613 You Ling Xing Dong (Ch) NES board=MAPPER192;VRAM=4 +sha1:DBFCC70CC2DEC7A889429ED542267F0F1BD967BF Ying Xiong Chuan Qi (Ch) NES board=MAPPER224 +sha1:FFB4706E49B826C6CDD12E502E8AE94FC9810B7F Monty no Doki Doki Daisassou (FDS Conversion) (Unl) [U][!] NES board=UNIF_UNL-LH32;WRAM=8;VRAM=8;PAD_H=1 +sha1:17473C223453D2D80FCB9DCFA317947287DC5C52 Xing He Zhan Shi (China) (Unl) NES board=WAIXINGMAPPER176 + +;wrong vram info +sha1:32D71DD6C5A8D78A918FE1B9D6D6C4A570D9652D Oeka Kids Anpanman no Hiragana Daisuki (J) NES board=MAPPER096;VRAM=32 +sha1:77B887BD5935204C72869365EAF99708E1B13EB1 Super 24-in-1 [U][p1][!] NES board=UNIF_BMC-Super24in1SC03;VRAM=8; +;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- +;it works, so don't laugh +sha1:203523818A348361584CDEBE47AEB860808757FC U Jurassic Boy 2 (Sachen) NES board=NES-TR1ROM;VRAM=8 + +;wrong mirroring, no bootgod entry +sha1:C1D82F6BE8AF524F951FC7C9D41604E59F9FE92A G Dragon Wars (USA) (Proto) NES board=MAPPER004;PAD_H=0;PAD_V=0 +sha1:22FCC2D33F6715D63E04235A0A7CCB0C8DC489C5 Mortal Kombat 3 Extra 60 (Unl) [!] NES board=MK3E60;PAD_H=1;PAD_V=0 +sha1:8928F7293C12EE7D3FC90BECC68AE5261802EAA6 AV Super Real Pachinko (Unl) NES board=MAPPER066;PAD_H=0;PAD_V=1 + +;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- +;mmc3 homebrews that need chip specification +sha1:35C157A921156E47FD3F6573D150F54108D0EDFC Blargg's 5.MMC3_rev_A.nes NES board=MAPPER004;MMC3=MMC3A +sha1:0E971E2CCAD1DEE51A0C305ED38FAFD2E6CA3B41 Blargg's 6.MMC3_rev_B.nes NES board=MAPPER004;MMC3=MMC3B +sha1:F794FDA12D34E611D58E652319ED583AE61B81E0 Blargg's 6-MMC6.nes NES board=MAPPER004_MMC6 +sha1:2F29F3DC724027FAD926BC9D4470A481884E42A5 Blargg's 6-MMC6.nes (newer) NES board=MAPPER004_MMC6 +sha1:6F3184ACDC7333683D459C7613CA1C235CEAFD3F Aladdin (SuperGame) (Mapper 4) [!] NES board=MAPPER004;MMC3=MMC3A +;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- + +;datach stuff +29CC759D5CA214EEFC0CC1C6CE0F8B9111E58124 Datach Battle Rush Build Up Robot Tournament NES board=MAPPER157 +87478B635FEFB25FA13C4876E20F505A97426C1B B Datach Dragon Ball Z Gekitou Tenkaichi Budou Kai NES board=MAPPER157 +B2089533E05FE95814D0D77F2729944CBEB95988 Datach J League Super Top Players NES board=MAPPER157 +EDD7A45A7F27E396B6D686F1861642D509863132 Datach SD Gundam Gundam Wars NES board=MAPPER157 +533170D5EB685231CCD27B9C136FFA4FAD68A7B8 Datach Ultraman Club Supokon Fight! NES board=MAPPER157 +43315F18A514F0EF1D84EFE9C8D4483B57BA712C Datach Ultraman Club Supokon Fight! NES board=MAPPER157 +74218AAE93E4FEBFB2284BCF15811453418A2029 Datach Yuu Yuu Hakusho Bakutou Ankoku Bujutsu Kai NES board=MAPPER157 +6F3C65BD945FE13305A7A39D8CD884A5BF314A8F Datach Crayon Shin Chan Ora to Poi Poi NES board=MAPPER157 +1218C891DEE878C18D31D38D07CAD5FB06B3B2CE Datach Yuu Yuu akusho Baktutou NES board=MAPPER157 + +;testrom +sha1:E925A172C29DD46BA385D526F3C317DB039FA2BF mmc1_a12 NES board=NES-SNROM +sha1:D89EE629F8F60613999EAD84A3C7B2F6B38C399F fme7ramtest_128k NES board=MAPPER069;PRG=32;CHR=8;WRAM=128;VRAM=0;PAD_V=0;PAD_H=1 + +;other +sha1:4180276C50DF9958DEDD6C6D19C9E7AEBB75A89F o Galaxian (Japan) NES board=NAMCOT-3301;PRG=16;CHR=8;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0 +sha1:0FE9120FD5ADC2790B0B9E8FADD136F9C66A709F Galaxian (Japan) (Rev A) NES board=NAMCOT-3301;PRG=8;CHR=8;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0 + +; ArcadePit hacks +; Why does this one need NesHawk? +sha1:90acbbdfad1465032dfff77175320bab8aa4adb7 H Mike Tyson's Punch-Out!! [Buck Edit] (USA) NES NesHawk + +; PAL +sha1:B9902886D1739983B315B67B02133E44620E4381 Challenge of the Dragon (Asia) (PAL) (Unl) NES board=MAPPER147;PAD_V=0;PAD_H=1;system=NES-PAL +sha1:68ABE1E49C9E9CCEA978A48232432C252E5912C0 Dancing Blocks (Asia) (PAL) (Unl) NES board=MAPPER143;PAD_V=1;PAD_H=0;system=NES-PAL +sha1:FCF9FF27F097892148EAEC439AB79BC53164D751 Elite (NTSC Demo) NES board=MAPPER001;PRG=128;CHR=0;WRAM=8;VRAM=8;PAD_V=1;PAD_H=0;BATT=true;system=NES-PAL +sha1:01D7CE2C74046BA6F7BE2C31DADB21A36BDCA117 Mahjong World, The - Ma Que Shi Jie (Asia) (PAL) (Unl) NES board=MAPPER148;PRG=64;CHR=64;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;system=NES-PAL +sha1:C10C526F26273C4A1E180B968665910B74C78B86 Othello (Australia) (Unl) NES board=MAPPER000;PRG=16;CHR=8;WRAM=0;VRAM=0;PAD_V=0;PAD_H=1;system=NES-PAL +sha1:35D219EC3615A63FF810ABC981835D0867DCEA39 Pirates! (Europe) NES board=MAPPER001;PRG=128;CHR=128;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;BATT=true;system=NES-PAL +sha1:CBC32F60E8780E27645FC9DE4446CE92F2D5E636 Pirates! (Germany) NES board=MAPPER001;PRG=128;CHR=128;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;BATT=true;system=NES-PAL +sha1:2FB0401EA8249233EFA399F305D83672D5600B4A Sidewinder (Asia) (PAL) (Unl) NES board=MAPPER145;PRG=16;CHR=16;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;system=NES-PAL +sha1:7117413766ABC02F3BB767C2CE96065B6F3CBA85 Silent Assault (Asia) (PAL) (Unl) NES board=MAPPER146;PAD_V=0;PAD_H=1;system=NES-PAL +sha1:313CDE2F9829B8BC30978BA7C534AFD8896B7BCA Silver Eagle (Asia) (PAL) (Unl) NES board=MAPPER138;PRG=128;CHR=128;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;system=NES-PAL +sha1:B5D3FCBD4A2C50DABB604AF1471E20A80566D086 Snowboard Challenge (Europe) NES board=MAPPER001;PRG=128;CHR=128;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;system=NES-PAL +sha1:6CB91EF73979A7C8893896E1B45A3E56FAC9E832 Twin Eagle (Asia) (PAL) (Unl) NES board=MAPPER146;PRG=32;CHR=32;WRAM=0;VRAM=0;PAD_V=0;PAD_H=1;system=NES-PAL \ No newline at end of file From 1ee43fd8573b43594331f2f745a918425f19aac4 Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Tue, 6 Jun 2017 20:04:59 -0400 Subject: [PATCH 32/80] NES: Fix some more exceptions --- BizHawk.Emulation.Cores/Consoles/Nintendo/NES/NES.cs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/NES.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/NES.cs index f913315e1b..6675db1a34 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/NES.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/NES.cs @@ -557,15 +557,22 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES LoadWriteLine("Since this rom has a 16 KB PRG, we'll hash it as 8KB too for bootgod's DB:"); var msTemp = new MemoryStream(); msTemp.Write(file, 16, 8 * 1024); //add prg - if (file.Length > (16 * 1024 + 16)) + if (file.Length >= (16 * 1024 + iNesHeaderInfo.chr_size * 1024 + 16)) { // This assumes that even though the PRG is only 8k the CHR is still written // 16k into the file, which is not always the case (e.x. Galaxian RevA) msTemp.Write(file, 16 + 16 * 1024, iNesHeaderInfo.chr_size * 1024); //add chr } + else if (file.Length >= (8 * 1024 + iNesHeaderInfo.chr_size * 1024 + 16)) + { + // maybe the PRG is only 8k + msTemp.Write(file, 16 + 8 * 1024, iNesHeaderInfo.chr_size * 1024); //add chr + } else { - msTemp.Write(file, 16 + 8 * 1024, iNesHeaderInfo.chr_size * 1024); //add chr + // we failed somehow + // most likely the header is wrong + Console.WriteLine("WARNING: 16kb PRG iNES header but unable to parse"); } msTemp.Flush(); var bytes = msTemp.ToArray(); From b2902fabfa9e941ed0d19179e218a1040b1eb379 Mon Sep 17 00:00:00 2001 From: adelikat Date: Wed, 7 Jun 2017 14:23:30 -0500 Subject: [PATCH 33/80] snes options dialog - hide the "Not supported yet" when hiding the accuracy core option --- BizHawk.Client.EmuHawk/config/SNES/SNESOptions.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BizHawk.Client.EmuHawk/config/SNES/SNESOptions.cs b/BizHawk.Client.EmuHawk/config/SNES/SNESOptions.cs index 3f800223b2..00ba3551ea 100644 --- a/BizHawk.Client.EmuHawk/config/SNES/SNESOptions.cs +++ b/BizHawk.Client.EmuHawk/config/SNES/SNESOptions.cs @@ -39,7 +39,7 @@ namespace BizHawk.Client.EmuHawk private void SNESOptions_Load(object sender, EventArgs e) { - rbAccuracy.Visible = VersionInfo.DeveloperBuild; + rbAccuracy.Visible = label2.Visible = VersionInfo.DeveloperBuild; } private string Profile From 6d4d2461fafe984a5539715444093c6f80ca0f65 Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Wed, 7 Jun 2017 16:04:13 -0400 Subject: [PATCH 34/80] Oops not sure what I was doing there --- .../Consoles/Nintendo/NES/gamedb_nes.txt | 361 ------------------ 1 file changed, 361 deletions(-) delete mode 100644 BizHawk.Emulation.Cores/Consoles/Nintendo/NES/gamedb_nes.txt diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/gamedb_nes.txt b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/gamedb_nes.txt deleted file mode 100644 index feccb07335..0000000000 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/gamedb_nes.txt +++ /dev/null @@ -1,361 +0,0 @@ -#include gamedb_goodnes.txt -#include gamedb_neshomebrew.txt -#include gamedb_vs.txt - - -;b - bad dump -;v - bad dump (??) -;t - translated rom -;o - overdump (bad) -;i - bios -;d - homebrew -;h - hack -;u - unknown - -;Hash Status Name System ID Notes MetaData Configurations CoreForce[neshawk|quicknes] - -; ************ NES / Famicom ************ - -;games which might be good according to goodNES, but which are almost positively not according to bootgod, who has dumps with different hashes -;these we tend to mark as Unknown, because maybe these are variants of the cart which bootgod didnt happen to dump, or maybe bootgod's is wrong (?) -sha1:E80FF0B707B0D675FDBEF474E3FDB1A83E2B7C44 U Mississippi Satsujin Jiken (J) NES board=JALECO-JF-11;PRG=128;CHR=32;PAD_H=1 -sha1:8A5FD1061ADACDEABF422A2D2E555FF70749AE7C U Mississippi Satsujin Jiken (Alt) (J) NES board=MAPPER066;PRG=128;CHR=32;PAD_H=1 - -;possibly good roms for games which arent in bootgod's db yet, most likely due to obscurity or incompleteness at the present. -;when they appear in bootgod's db then we can re-evaluate this category. -sha1:91CECCFCAC90E417E9AEE80E8F7B560A20EB33CC Ai Sensei No Oshiete Watashi No Hoshi (J) NES board=IREM-G101;PRG=256;CHR=128;WRAM=8 -sha1:1E49BDA9CEF18F6F5C2DA34910487713D364AA68 G Pipe 5 (Sachen) NES board=MAPPER160;PAD_H=1;PAD_V=0 - -;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- -;this is every game from goodNES which is clearly labeled as bad. -;well, it isnt very game yet. but we should make it every game, if we can! it would be a lot of games though -sha1:984ADAEB85403EEF1BA85CDCF310FAAECEB409A0 B Adventures of Captain Comic, The (Bad Dump) (U) NES board=COLORDREAMS-74*377;PRG=64;CHR=64;WRAM=0;VRAM=0 -sha1:869111A86FD46872AD8B1BA0ED31B858FA15681F B Adventures of Lolo (Bad Dump) (U) NES board=NES-SEROM;PRG=32;CHR=32;WRAM=0;VRAM=0 -sha1:41BD74F739E008D476989C8296BB789EE57658F0 B Adventures of Lolo (Bad Dump 2) (U) NES board=NES-SEROM;PRG=32;CHR=32;WRAM=0;VRAM=0 -sha1:10AF069B2AC5DB2FB10768349F4068CB3CDA0EC7 B Airwolf (Bad Dump 1) (U) NES board=NES-SH1ROM;PRG=32;CHR=128 -sha1:DAD9D1D66018DFB3C30F48741EF188FEFA2B2F68 B Airwolf (Bad Dump 2) (U) NES board=NES-SH1ROM;PRG=32;CHR=128 -;since the actually good Banana rom is "Banana (J) [hM03][p1][a1]" then we want to be aggressive in marking all these others as bad -sha1:84EA60C1FA43AF37B2A20C1FEFCB2D5182EAF3E8 B Banana (J) [hM03] NES board=HVC-CNROM;PRG=32;CHR=32 -sha1:F9423CCC1AA711CB06B8F5C66E9304636F5E9B10 B Banana (J) [hM03] NES board=HVC-CNROM;PRG=32;CHR=32 -sha1:A8037AED044417DEE8D822A21851058ED37AF6A8 B Banana (J) [hM03] NES board=HVC-CNROM;PRG=32;CHR=32 -sha1:8F42BC9919B324A63636BE2FBAD0101D8C720517 B Banana (J) [hM03] NES board=HVC-CNROM;PRG=32;CHR=32 -sha1:4EF2C4DAD0897F326E2991D351903A98483BC3C0 B Banana (J) [hM03] NES board=HVC-CNROM;PRG=32;CHR=16 -sha1:15E04F1BF83D8FE34ECD2B29894C9CF034E6D257 B Banana (J) [hM03] NES board=HVC-CNROM;PRG=32;CHR=32 -sha1:C6C6228B16AECB35B0C52467071E04DB3B34C77F B Banana (J) [hM03] NES board=HVC-CNROM;PRG=32;CHR=8 -sha1:2801CDE6D10D67889E01161476D80CF5CCC3263E O Ball Hack v.2 2001-03-21 [o1] NES board=HVC-NROM-256;PRG=32;CHR=8 -sha1:A6E7DB47B9C39E2A5B0A77F34B9AA3BEFDB70D1C O Dr. Mario (JU) (PRG0) NES board=MAPPER001;CHR=32 -sha1:2BDBD70C1E3EEF115F640B91B22A97BFCDF18B2D B Castlevania III Dracula's Curse (U) (Bad Dump) NES board=MAPPER005;CHR=128 -sha1:0D0957F7D49E38C298EB5194472B87EFC44BBD46 B Dragon Quest II Akuryou no Kamigami (J) (Bad Dump) NES board=MAPPER002;CHR=0 -sha1:736C0AEDA14A93A2715BDA1DA6F6C92E6690A5DE B Dragon Quest IV Michibikareshi Monotachi (J) (PRG1) (Bad Dump) NES board=MAPPER001;PRG=512 -sha1:739698BD6050572F24E739A20978E4760CF33E59 B Dragon Quest IV Michibikareshi Monotachi (J) (PRG1) (Bad Dump) NES board=MAPPER001;PRG=512 -sha1:3FB61976847BCA4187DB61F484BF21346B42C95A B Dragon Warrior IV (Bad Dump) NES board=MAPPER001;PRG=512 -sha1:697ECCCDD178809207726A05A5593D874CA39CA9 B Dragon Warrior IV (Bad Dump) NES board=MAPPER001;PRG=512 -sha1:E33D3A487678F35E05C0E5DA7E4C30F8FEFA600D B Dragon Warrior IV (Bad Dump) NES board=MAPPER001;PRG=512 -sha1:3AE0469A8208023DAA32A7BB9925F3C5666FCB2D B Famicom Meijin Sen (J) [a1] NES board=HVC-SKROM;WRAM=8 -sha1:8CC5894A1E637FA63A63992E188B3797D9300337 B Mighty Bomb Jack (U) (Bad Dump) NES board=NES-CNROM;PRG=32;CHR=32;WRAM=0;PAD_V=1 -sha1:CAB30771F9CBD89B2FCD06F3B2F5C8F2156BFD8A B Mighty Bomb Jack (U) (Bad Dump) NES board=NES-CNROM;PRG=32;CHR=32;WRAM=0;PAD_V=1 -sha1:A4CDD4BC37D44CFF1379942CC31DCD89E340B10C B Money Game, The (J) [hFFE][b1] NES board=MAPPER006;PRG=256 -sha1:8AB1B122FE96865B62290FC838FA2C248D4989FB B 3D Bloack (Unl) [f1] (Bad Dump) NES board=MAPPER000;PAD_H=1 -sha1:457BA1626EAA58A2370ECD6AB0B83232C098C064 B High Speed (E) (Bad Dump) NES board=NES-TQROM;WRAM=0;VRAM=8;PAD_V=0;PAD_H=0;system=NES-PAL-B -sha1:421EBBFA08FFD5A7A0F4DDEE7868B36DB7FAEE39 B High Speed (U) (Bad Dump) NES board=NES-TQROM;WRAM=0;VRAM=8;PAD_V=0;PAD_H=0;system=NES-NTSC -sha1:9979C1333B8A7685CC3CA2BEAFD634B2A88D3AF8 B High Speed (U) (Over Dump) NES board=NES-TQROM;WRAM=0;VRAM=8;PAD_V=0;PAD_H=0;system=NES-NTSC -sha1:DAB664B59B094FFAABCF24D0388760C09F87495C B High Speed (U) (Over Dump) NES board=NES-TQROM;WRAM=0;VRAM=8;PAD_V=0;PAD_H=0;system=NES-NTSC -sha1:36405B87E66E18DC432690A5959D4529C14B1AEE B High Speed (U) (Over Dump) NES board=NES-TQROM;WRAM=0;VRAM=8;PAD_V=0;PAD_H=0;system=NES-NTSC -sha1:9D2391C1F4855E7ECCE0DB5C8B258A43B4E9F84F G Pin Bot (PC10) NES board=NES-TQROM;WRAM=0;VRAM=8 -sha1:B3537088ED6F8379F2C30CA45061BFCCBA1007B9 B Pin Bot (U) (Bad Dump) NES board=NES-TQROM;WRAM=0;VRAM=8 -sha1:A1E8E80E2F72E606CD7802D809B2FF256578EDE6 B Pin Bot (U) (Bad Dump) NES board=NES-TQROM;WRAM=0;VRAM=8 -sha1:C969BD9F8E4353EE6463221FFDD2BFE4A844134A B Pin Bot (U) (Over Dump) NES board=NES-TQROM;WRAM=0;VRAM=8 -sha1:569907CD308C28CDB178AA525F976656BF0DD886 B Pin Bot (U) (Over Dump) NES board=NES-TQROM;WRAM=0;VRAM=8 -sha1:9C851967BD74E063ED8F44935928911D572527AD B Pin Bot (U) (Over Dump) NES board=NES-TQROM;WRAM=0;VRAM=8 -sha1:2FA61D1FDFCFEC20099EB85C3F45827CA87160D9 B Yong Zhe Dou E Long Dragon Quest V (Ch) (Over Drump) NES board=MAPPER245;VRAM=8;CHR=0;PAD_H=1;BATT=true -sha1:79978AA3AD3FE63D41357E62F1E49E4761B3738A B Magical Taruruuto-kun 2 Mahou Daibouken (J) (Over Dump) NES board=BANDAI-LZ93D50+24C01;PRG=128;CHR=128;WRAM=0;VRAM=0 -sha1:3825786DF3AD8E2C2F0442E42088AC0E494BDA2D B Magical Taruruuto-kun 2 Mahou Daibouken (J) (Over Dump) NES board=BANDAI-LZ93D50+24C01;PRG=128;CHR=128;WRAM=0;VRAM=0 -sha1:02D4E73DACD3E74CF927C77DF1DB1B7453312CC9 T Captain Tsubasa Vol. II - Super Striker (Ch) NES board=MAPPER195;VRAM=4 -sha1:DBD7DBAF79D2A77A09D9D4CF685CBD93281ED468 B Chaos World (Ch) NES board=MAPPER195_CW;VRAM=4;BATT=false;PAD_H=1 -sha1:944F98A6885CA5160669BF81B9DE710CB16E312D G Chaos World (Ch) NES board=MAPPER195_CW;VRAM=4;BATT=false;PAD_H=1 -sha1:EA6093FF3B4C7425B792223742DF5C76A657EF08 B Columbus - Ougon no Yoake (Ch) NES board=MAPPER195;VRAM=2; -sha1:B367506A7249865DEDB59AFF9B4CE593B3913F0C G Columbus - Ougon no Yoake (Ch) NES board=MAPPER195;VRAM=2; -sha1:78EC827CEE61E009F7716ADE03361369FFCE9D12 G Luo Ke Ren X (Sugoro Quest - Dice no Senshitachi) (Ch) NES board=MAPPER195;VRAM=4 -sha1:568BF236FB3085B8BD522FBD2C18C7831E3A2DD1 G Q Boy (Sachen) NES board=SACHEN-8259A;VRAM=8 -sha1:2FA9EF6B8E5C7E1D215F4FF69C6275BDE00DDE76 O Sugoro Quest - Dice no Senshitachi (Ch) [o1] NES board=MAPPER191 -sha1:0C7CA363EA26632E1A61C7F40E0FE8E8538ED76A G Wei Luo Chuan Qi (Ch) NES board=MAPPER192 -sha1:F459A9AD6F841169E0210436CEB06B1395169EAB G Young Chivalry (Ch) NES board=MAPPER192 -sha1:8711FDC0CE28574C043816721CA32E4A1C722BE4 B Young Chivalry (Ch) NES board=MAPPER192 -sha1:E7803CAC6898C7243F9331E6360B5157BAE673A5 B Young Chivalry (Ch) NES board=MAPPER192 -sha1:16EF1034DB88AD96DDC19C3A84B9E0FDEE466CD4 B Young Chivalry (Ch) NES board=MAPPER192 -sha1:BE8373A0694EB021EBF73D75F8AC63BD8162009A B Young Chivalry (Ch) NES board=MAPPER192 -sha1:4692A622AF6A3D79514BF3E5FB4E9FBE6C6080FC G 150-in-1 [a1] NES board=MAPPER235 -sha1:83264E3F8807998D09E9FBA19B13BBEA7C888D88 O Bakushou!! Jinsei Gekijou 3 (J) [o1] NES board=TAITO-TC0190FMC+PAL16R4;WRAM=0 -sha1:E79FC613112CC5AB0FC8B1150E182670FB042F4A G Contra Fighter (Unl) NES board=MAPPER238 -sha1:2C512DE4079AF45D7B9218E40BB68E308ABE288C B Magic Johnson's Fast Break (U) NES board=MAPPER001;PRG=64;CHR=128 -sha1:D2BE67170DDED1E1108EED2D4D8CA9D9CEE9F9E2 G Super Mario Bros 2 (Lost Levels) (Unl) NES board=MAPPER040;WRAM=0;PAD_H=1;PAD_V=0 -sha1:77D5D7A162B61DEFC6B66B6A39B8D51E124AC534 B Tagin' Dragon (Bunch) [b] NES board=COLORDREAMS-74*377;CHR=16;PRG=32;WRAM=0 -sha1:2028940CF7C757A3A7931A741D5EC79C3554D38C O Wally Bear and the No Gang (AVE) [o] NES board=AVE-NINA-07;WRAM=0 -;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- - -;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- -;these roms are in goodNES but theyre junk. hacks, mostly. ideally we would put ever game from goodNES that was labeled as a hack in a list here. -sha1:111D38E2FB41D0B43753E18757D427A91B0DBCB9 H Dragon Ball Z II Gekishin Freeza!! (J) NES board=BANDAI-LZ93D50+24C02;PRG=256;CHR=256;WRAM=0 -sha1:A907E600CEDA175ECD115B406B28155397A4C1FA H Dragon Ball Z Gaiden Saiya Jin Zetsumetsu Keikaku (CH) NES board=BANDAI-FCG-1;PRG=512;CHR=256;WRAM=0 -sha1:A13EAF0132905FBE3D0456BB075028A30C084D0E H Dragon Ball Dai Maou Fukkatsu (J) [hFFE] NES board=BANDAI-FCG-1;PRG=128;CHR=128;WRAM=0;VRAM=0 -sha1:8885F4F00C0B73C156179BCEABA5381487DBEAAD H Spy vs Spy (J) NES board=HVC-CNROM-256K-01;PRG=32;CHR=8;WRAM=8 -sha1:8C676CC9BEF5B93C5A7630D12B8A5B2FEBCE3438 H Rad Racket Deluxe Tennis II NES board=NINA-06;PRG=32;CHR=32 -sha1:A1D674D1C7C633A317CFD516EFB9A0350CD0E45E H Arkanoid II (J) NES board=TAITO-74*161/161/32;PRG=128;CHR=128;WRAM=8 -sha1:4D6117577CE301BB987C5C32FEEF7B132A21B046 H Afro Man (Mega Man 3 Hack) (UNL) NES board=TXROM-HOMEBREW;PRG=256;CHR=128;WRAM=8 -sha1:7BD102770FE7766BF8430ACDB3C17EE51E30478C H Mike Tyson's Punch-Out!! (Hacked) (U) NES board=NES-PNROM;PRG=128;CHR=128;WRAM=0 -sha1:536D623BA02A622BDE8E2D7D514AE9785B5E0357 H Punch Out!! Kirby (Hack) (U) NES board=NES-PNROM;PRG=128;CHR=128;WRAM=0 -sha1:F2A8BC888B888FA65DFB303126B130422E34942E G Kunio 8-in-1 [p1] NES board=MAPPER045 -sha1:27AA5F60474600FEE5C1623D4A0985421680C9FE H Mario + Toad (Nuts & Milk Hack) NES board=MAPPER000 -sha1:B7DD142AF1FBCC81F3FE88C9278BD6C61B615D09 O Death Race (AGCI) (Overdump) NES board=MAPPER144 -sha1:0FAECB09767528CC2C9CD4FE4EDBD0C6ECEFB999 G Secret Scout in the Temple of Demise (Color Dreams) (Prototype) NES board=MAPPER011_HACKY -sha1:87C929090C3B04739BAAED90B9A8F40B29327FC2 G Free Fall (U) (Prototype) NES board=MAPPER011_HACKY -sha1:BFE1A8EFE7539B20E09FFD472963F271AC9F2AEC G Mortal Kombat 2 (Unl) NES board=MAPPER090 -sha1:123105A996B3F325E55B7080DDD83D4CF043E543 G 168-in-1 NES board=MAPPER015 -sha1:B094D9D20A193BF28BD57A1154EADA84F9F6C9CC G Street Fighter II - The World Warrior (Unl) NES board=MAPPER189 -sha1:C0CF1CDFEEA5F3529A3126B366DF8E331C804CC7 G Summer Carnival 92 - Recca NES board=MAPPER004 -sha1:E9CFA35A037CC218F01BFB4A1EB5D1D332EA2AA9 G Family BASIC (J) NES board=HVC-FAMILYBASIC;WRAM=2 - -;;;;;;;;;;;;;;;;;;;;;- - -;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- -;heres another idea. let's list rom sets from goodNES, good and bad variants together -sha1:98B71119294DA59D1B22723D2D2955D80EADABF4 World Hero (Unl) [!] NES board=MAPPER027 -sha1:17AC56723F99A646BD44F8C999B23B8A972A3EF2 B World Hero (Unl) [b1] NES board=MAPPER027 -sha1:5227195D5DB2030758BF67704150E8C5FAF056B1 B World Hero (Unl) [b2] NES board=MAPPER027 -sha1:AD350F001DB2E3C640B2BD9107B86A8F29B68AC0 G Commandos (Ch) NES board=MAPPER163; -sha1:5A91F54A6FF44762D98FC8D8974909D298EB52A8 G Somari (NT-616) (Unl) NES board=MAPPER116; -sha1:5F0943DC8145542ABC70BF20E4754B3C08653399 G Meikyuu Jiin Dababa (FDS Conversion) (Unl) NES board=MAPPER108;WRAM=0 -sha1:95E86C77BB25DD23152D34FD0BB562A09535BE43 G Pyramid (AVE) (PRG1) NES board=MAPPER000 -sha1:5759A9D658D253C8A6AAA38969C443D66E0F3349 G Dragon Quest III (PRG0) NES board=HVC-SNROM-03 -sha1:9DF34897D002E8D0E4D53B76154F8CD46927CDF9 G Dragon Quest III (PRG1) NES board=HVC-SNROM-03 -sha1:B6D1C372A38D196112AA98905C709AD844BD6627 G Super 35-in-1 (y-in-1 VT5201) NES board=MAPPER060 -sha1:0941ABB51EF88587303DBF018770758ECDDD5C20 G Jovial Race (Sachen) NES board=MAPPER133 -sha1:D20724A2E2933BEE8E193596688CF86747E0250B B Dragon Ball Z Kyoushuu! Saiya Jin (J) (Bad Dump) NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 -sha1:9F17353EF85590484BBC693517292A15DD30845D B Dragon Ball Z Kyoushuu! Saiya Jin (J) (Bad Dump) NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 -sha1:D1E9A66CC7424725AD72B8A04E37B9E72EE2BFB6 O Dragon Ball Z Kyoushuu! Saiya Jin (J) (Over Dump) NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 -sha1:123AA69FE2334A027E48BA658C906BFA4996FA32 T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T+Eng0.47_Eigo ni Yakusu Productions] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 -sha1:6DCB35518C0AC42943098A5B417B79C10273D75A T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T+Eng1.01_RedComet] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 -sha1:726C2C19F7B559AD5220872004B580D8C9574F5A T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T+Eng1.1] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 -sha1:D51398EFF4F3F47AFA0527D98882234E10AEDFF4 T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T+Kor20060719_88ktt] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 -sha1:97DECB4E7C8DE1006F57732D8E83437A9186E500 T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T+Por45%_Tradu-Roms] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 -sha1:80E314CF4A2FCD5A184D4D168428165C1F844729 T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T+Por100%_RaphFS] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 -sha1:1D6381D2AA0DF4A5B50E9E2DB7B45785BBB1E48F T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T+Spa_PaladinKnights] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 -sha1:15E43BE5F7D328BF3041B52CE38BFC4FF23A1DF1 T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T-Eng] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 -sha1:D42BA5AEC6E41804FF98D6DFA34B53510A1174FA T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T-Eng0.50_TransBRC] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 -sha1:B1228C5716FB5EE2E0421634A464C927B33493B7 T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T-Eng0.99_RedComet] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 -sha1:8E910216502E0BF9BFBA3E38EAA34FFC2D7EE1AD T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T-Eng1.00_RedComet] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 -sha1:18BE110CBEA2D665A3FF704BDD4153AE5E5ACE5F T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T-Kor_88ktt] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 -sha1:9F601A88A9DFA8EDEC23F67DA60254BE4CBAE64B T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T-Spa] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 -sha1:FC7A8824CFDD37F85868C8D8624D8B517A7C3C02 G God Slayer - Haruka Tenkuu no Sonata (Ch) NES board=MAPPER195;WRAM=16;VRAM=4;BATT=true -sha1:081D107B5AEFFD4F59108C76FA3942506FA36B1F G Captain Tsubasa Vol. II - Super Striker (Ch) NES board=MAPPER195;VRAM=4 -sha1:F99E8B7C7A2174BF0B2330F5457AEE478A938C93 G Captain Tsubasa Vol. II - Super Striker (Ch) [a1] NES board=MAPPER195;VRAM=4 -sha1:9958BED493E8C5727F96937BF254AC33FA3BCF81 G Captain Tsubasa Vol. II - Super Striker (Ch) [a2] NES board=MAPPER195;VRAM=4 -sha1:B4AA3F10908DC3D6B8152F5DEB1B8543B8B46BF6 G Captain Tsubasa Vol. II - Super Striker (Ch) [a3] NES board=MAPPER195;VRAM=4 -sha1:60FC5FA5B5ACCAF3AEFEBA73FC8BFFD3C4DAE558 G Pegasus 5-in-1 (Golden Five) NES board=MAPPER104 -sha1:BAD382331C30B22A908DA4BFF2759C25113CC26A O Pegasus 5-in-1 (Golden Five) NES board=MAPPER104 -sha1:6282051DA49C286863463AF105F851AACF896563 G San Guo Zhi 2 (Ch) NES board=MAPPER199;VRAM=8;BATT=true -sha1:71234F9DCA4C31B4E9F0719425963878F3F045C9 G Dragon Ball Z II - Gekishin Freeza!! (Ch) NES board=MAPPER199;VRAM=8;BATT=true -sha1:A907E600CEDA175ECD115B406B28155397A4C1FA G Dragon Ball Z Gaiden - Saiya Jin Zetsumetsu Keikaku (Ch) NES board=MAPPER199;VRAM=8;BATT=true -sha1:D565A9C2B117447C310E4F59E4AFC30DF299EA4F G Street Fighter IV (Unl) NES board=MAPPER208 -sha1:B9F444FF60F60C177EEEC8671BEC3731B0F6FE49 G Tang Mu Li Xian Ji (Ch) NES board=MAPPER223;WRAM=16 -sha1:EBD2B4A4067FD4A8F0D0ABD34C8FF1AF520D1EED G Super Blaster VII Turbo 28 (Unl) NES board=MAPPER083;prg=512;chr=256;wram=0; -sha1:40409FEC8249EFDB772E6FFB2DCD41860C6CCA23 G Pegasus 4-in-1 (Unl) NES board=MAPPER232 -sha1:7EF667D9BF107B6512565177B9C62081077558F5 T Tenchi wo Kurau II - Shokatsu Koumei Den (J) [T+Chi] NES board=MAPPER198 -sha1:92CC033C1255F119B3A566EDCA10140C014FA479 T Tenchi wo Kurau II - Shokatsu Koumei Den (J) [T+Chi][a1] NES board=MAPPER198 -sha1:EEF617A022B8E45E0BDE088FED654C89AD4FAABF T Tenchi wo Kurau II - Shokatsu Koumei Den (J) [T+Chi][a2] NES board=MAPPER198 -sha1:3D49A357362160B16F03CC4BE7D8EAFB7108708D T Tenchi wo Kurau II - Shokatsu Koumei Den (J) [T+Chi(Trad)] NES board=MAPPER198 -sha1:7FB334A7375E17EA157415193DEE4FACC4EC2B34 T Tenchi wo Kurau II - Shokatsu Koumei Den (J) [T+Chi(Simp)] NES board=MAPPER198 -sha1:D8684D302F17843031151DE38D609646CAE4753C O Don Doko Don 2 (J) [o1] NES board=MAPPER048 -sha1:12DDD9EDB8894C200C9D89B9EE5673F1202ABA19 Falsion (FDS Conversion, Whirlwind Manu) (Unl) NES board=MAPPER108;WRAM=0 -sha1:D6E9F3722CFA26CBC582649F197D780809F575CA O Family Circuit '91 (J) [o1] NES board=MAPPER210;PAD_V=1;PAD_H=0 -sha1:387E7B477F5A61A165A41CD2BFE8A467B3816323 O Family Circuit '91 (J) [o2] NES board=MAPPER210;PAD_V=1;PAD_H=0 -sha1:68ADA89BC7539679871AD14C5C1FFADF04D71280 O Family Circuit '91 (J) [o3] NES board=MAPPER210;PAD_V=1;PAD_H=0 -sha1:8A5FD1061ADACDEABF422A2D2E555FF70749AE7C B Mississippi Satsujin Jiken (J) [h2] NES board=MAPPER066 -sha1:C1F7AD0A347078B9213B2748D4ADFF33305A6647 O Mississippi Satsujin Jiken (J) [h2][o1] NES board=MAPPER066 -sha1:4BBD4C55C37F531031177DE51F007B10418AD760 O Pyramid (AVE) (PRG1) [o1] NES board=MAPPER000 -sha1:BAF860940369C54B3FF547DA7E759515015B1131 O Pyramid (AVE) (PRG1) [o2] NES board=MAPPER000 -sha1:2B34E0F405629055E4FF2B2B1C0EBE015D866344 H Rabbi Harrel Groberklotz (Gumshoe Hack) NES board=MAPPER066;WRAM=0 -sha1:DA3644C99D462833E4EEF826D8700AF278609C10 G Super 2-in-1 (Soccer Game & Crazy Dance) (Unl NES board=MAPPER178 -sha1:CE11161FE2B41008F55FC9D29E093C347E78EBC4 T Super Mario Bros 2 (Lost Levels) (Unl) [T+Rus_Cool-Spot] NES board=MAPPER040;WRAM=0;PAD_H=1;PAD_V=0 -sha1:43E3ED6480E7BF32FFAF1AEBC7F534E0A9B775E6 T Super Mario Bros 2 (Lost Levels) (Unl) [T+Rus_Cool-Spot][a1] NES board=MAPPER040;WRAM=0;PAD_H=1;PAD_V=0 -sha1:F32E366828DCA94A612DD39613858DD8E26FA2DC T Thunder & Lightning (U) [t1] NES board=MAPPER066;WRAM=0 -sha1:8554112E83B5978F5D4EC6E4551F390D5F698E00 B U-Force Power Games (U) (Prototype2) (Defaced by NA) [b1] NES board=NES-GNROM;WRAM=0 -sha1:A6A0A3DC8438558FA5DA3AF8D3349AA8CF080404 Xi You Ji Hou Zhuan (Ch) NES board=MAPPER162 -sha1:BC1734BEE472D34F489A6F5F2530A019F28055B7 B 800-in-1 [p1][b1] NES board=MAPPER236 -sha1:BC1734BEE472D34F489A6F5F2530A019F28055B7 G 800-in-1 [p1][U] NES board=MAPPER236;VRAM=8 -sha1:BD167D1BCC9A008D04136EB91396EBEBCAC976E2 B R.B.I. Baseball (Tengen) [b] NES board=TENGEN-800002;WRAM=0;PAD_H=1;PAD_V=0 -sha1:DEE958845DC528BED899557FB2A8A3B61F1BA7D1 Bao Xiao San Guo (Ch) [a4] NES board=WAIXINGMAPPER176 -sha1:2EADA3C0D800A40C1CE5DB96A31A43196ED7A97B Kou Dai Jing Ling - Fei Cui (Ch) [a2] NES board=WAIXINGMAPPER176 -sha1:237C2C026A10B3CEBFF96516FC67E4F446676D47 Meng Huan Zhi Xing IV (ES-1006) (Ch) NES board=WAIXINGMAPPER176 -sha1:2FA7C0E60634C12EF54D857BF7AF45D4971066FE Po Fu Chen Zhou (ES-1092) (Ch) (Decrypted) NES board=WAIXINGMAPPER176 -sha1:A8010B1EE3C5362F606A47604CC49E5D7EAC9E46 B Pocket Monsters Red (Ch) (Decrypted) [b1] NES board=WAIXINGMAPPER176 -sha1:A50411EDCC088D55B35A62ABD62D4FF1A0B4ED22 Shu Qi Yu - Shu Xue Xiao Zhuan Yuan (Ch) NES board=WAIXINGMAPPER176 -sha1:5BDE83532F9E3B885C4D2C130F8981DD04E5A159 Shu Qi Yu - Zhi Li Xiao Zhuan Yuan (Ch) NES board=WAIXINGMAPPER176 -sha1:91E51788E980A8AD5A8A829E270504C9571B72CF Shui Hu Shen Shou (ES-1087) (Ch) (Decrypted) NES board=WAIXINGMAPPER176 -sha1:DB92A34E6941D99B796FBE6C6C26F7D09C2BC2EE Xi Chu Ba Wang (ES-1066) (Ch) (Decrypted) NES board=WAIXINGMAPPER176 -sha1:7235F3F8F0CA37B7C1EE6923A6DA272C08E0C817 Xiong Ba Tian Xia (Ch) NES board=WAIXINGMAPPER176 -sha1:71511ECB1E5D99F38A04EC9291B1ABD4B512C42D P Bubble Bobble (FDS Conversion, Kaiser Hacked) (Unl) [p1] NES board=MAPPER108;WRAM=0;PAD_H=0;PAD_V=1 -sha1:8F6CF72F9A829177A67DAAD4A083CADA3ED8B587 P Doraemon (J) (PRG0) [p3] NES board=MAPPER066;WRAM=0;PAD_H=1;PAD_V=0 -sha1:E1935AD60CAFAEEC8A8301A607B373754D770E2E T Doraemon (J) (PRG0) [T+Eng] NES board=MAPPER066;WRAM=0;PAD_H=1;PAD_V=0 -sha1:06A243B7FFE2CA5F96C4D324742BD6F349D7589E T Doraemon (J) (PRG0) [t2] NES board=MAPPER066;WRAM=0;PAD_H=1;PAD_V=0 -sha1:BD43811A68799DBC45A53A006C35167D19C0919C T Doraemon (J) (PRG0) [t3] NES board=MAPPER066;WRAM=0;PAD_H=1;PAD_V=0 -sha1:CB83577AAB5465EC7AD0AEF859A03444BA509386 T Doraemon (J) (PRG1) [T+Rus_Chief-Net] NES board=MAPPER066;WRAM=0;PAD_H=1;PAD_V=0 -sha1:C78A7629779AF2EA2D9870524E6A79C0CD2E0213 T Jajamaru no Daibouken (J) [T+Chi_nineswords] NES board=MAPPER066;WRAM=0;PAD_V=0;PAD_H=1 -sha1:A78D32B5FD43DCABA07A9152BF12EC9BFF2D37FD T Jajamaru no Daibouken (J) [hM66][T+Eng1.00_Aishsha] NES board=MAPPER066;WRAM=0;PAD_V=0;PAD_H=1 -sha1:2D8F4656698937A7616A61D82B47232D939E68EA P AV Mahjongg (Hacker) NES board=MAPPER066;WRAM=0;PAD_H=0;PAD_V=1 -sha1:E365A1F87EDFE8A68F23D8521CBDBE56EC3D76A3 T AV Mahjongg (Hacker) [T+Chi] NES board=MAPPER066;WRAM=0;PAD_H=0;PAD_V=1 -sha1:D540F1050055C74B68CA02F3BA215E23ED859560 B AV Mahjongg (Hacker) [b1][T+Chi] NES board=MAPPER066;WRAM=0;PAD_H=0;PAD_V=1 -sha1:E8BDD327FA96576F501914BDF455C477EC2A20B4 B AV Mahjongg (Hacker) [b1] NES board=MAPPER066;WRAM=0;PAD_H=0;PAD_V=1 -sha1:E816367A8CAC2AC470CEEBA8C8DC00CEC8C7009E T AV Mahjongg (Hacker) [T+Chi][a1] NES board=MAPPER066;WRAM=0;PAD_H=0;PAD_V=1 -sha1:315ACE4AD8AC09B7ABA2815F93EEB8AD97BA1D38 H Fish Fall (Free Fall Hack) NES board=MAPPER011_HACKY -sha1:F59E68705F6A6346E18A071884A21A6289754EB7 G Free Fall (U) (Prototype) (Earlier) NES board=MAPPER011_HACKY -sha1:4FB14A3DBCE888BB1F95570BE45317ED1513FE89 B Free Fall (U) (Prototype) [b1] NES board=MAPPER011_HACKY -sha1:88A3624F48A2780B2C2A9D742B2185C3B31FB3D7 H Handy (Free Fall Hack) NES board=MAPPER011_HACKY - -;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- - -;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- -;obscure and unlicensed roms which are not likely to be in bootgod's DB anytime soon but which are nonetheless "good" as far as things go -;people like these games (especially vast quantities of chinese oddities) so its important to add them here as good -sha1:D09EF8127C64CBE817B45DF33C4D43E7B441E381 Final Fantasy V (Unl) NES board=MAPPER164;PRG=512;CHR=0;WRAM=8;PRAM=8;PAD_V=1 -sha1:92D9695FEB774F60965A8303CFE3E6AAEE7B7B62 Magic Dragon (Unl) NES board=MAPPER107;PRG=128;CHR=64;WRAM=8;PAD_H=1 -sha1:6DF9AECF5787C0833B0F05A9A83D0E58A6153977 Rumblestation 15-in-1 (Unl) NES board=MAPPER046;PRG=1024;CHR=1024;WRAM=0 -sha1:E4BFD5AB3C3649DBD36B9A7280CF431641BCBCEC Peek-A-Boo Poker (Unl) NES board=NES-CNROM;PRG=32;CHR=24;WRAM=0 -sha1:39294394A0631708F58397371CE14075AE1FB7E6 Peek-A-Boo Poker (Panesian) NES board=NES-CNROM;PRG=32;CHR=64;WRAM=0 -sha1:C87E7E6A68DD9C7E24652CD2C7D390A14E8ADF04 Lagrange Point NES board=KONAMI-VRC-7;PRG=512;CHR=0;WRAM=8;PRAM=8;PCB=352402;BATT=true -sha1:2E0889131DA5BA9505A15B94887113F4360D98CD Shin Samurai Spirits 2 Haoumaru Jigoku Hen (Unl) NES board=MAPPER209;PRG=128;CHR=512;WRAM=8 -sha1:EB35202CC4E9C2FAC320B04F36F3A6858B8916F2 Super Bros. 8 NES board=MAPPER048; -sha1:F949FC16932808C426074AB1628F246B0435C52C Flintstones, The Rescue of Dino & Hoppy (J) NES board=MAPPER048; -sha1:9C801071D1AAC7B280468C38BF1B61FDE99B5FD0 Yong Zhe Dou E Long Dragon Quest VII (Ch) NES board=MAPPER245; -sha1:C282206800426557E7DD66ABF70FEAB6FE9DA1B2 San Guo Zhi (Ch) NES board=MAPPER252;VRAM=2;BATT=true;PAD_H=1 -sha1:E6F080CCF09C62C038D35E3BD503C4E57E716571 B San Guo Zhi (Ch) NES board=MAPPER252;VRAM=2;BATT=true;PAD_H=1 -sha1:E2BFF2002F2DD0AA184D5791D008A1350C477AE0 B San Guo Zhi (Ch) NES board=MAPPER252;VRAM=2;BATT=true;PAD_H=1 -sha1:B37E6002EF84C172DB413DF4B41451192ADBDC36 Shen Hua Jian Yun III (Ch) NES board=MAPPER253;VRAM=2;BATT=true;PAD_H=1 -sha1:CE1B236ED0EAC133A3DE5411AEF57228220885EF G Super Sonic 5 (1997) (Unl) NES board=MAPPER121 -sha1:37DC34A1069B5B62BAC41DB66F47745E3A1E442B SD Gundam Gaiden - Knight Gundam Monogatari (J) (V1.0) [b1] NES board=MAPPER159; -sha1:89C57A4144E038565707A4B3B5B9505C7E4F3C70 SD Gundam Gaiden - Knight Gundam Monogatari (J) (V1.0) [T+Eng0.10_Assassin_Productions] NES board=MAPPER159; -sha1:CFB4626E7794F1276ABF5DB7806FCE61EFEBFE98 Street Heroes (Sachen) [U][!] NES board=UNIF_UNL-SHERO;VRAM=16; -sha1:56CBA51568B0F1458AA7E0DE6575D1225E40F7A1 3D Block (Unl) [a1][!] NES board=MAPPER219;PRG=32;CHR=0;VRAM=8;PAD_V=0;PAD_H=1 -sha1:0E7A314D43B53ABCCFF7B38A1AA8BD0CFA612346 Pocahontas 2 NES board=Pocahontas -sha1:0E78391D3036D71C8241DB0206E7747F4E3892DC Poker III NES board=UNIF_UNL-Sachen-74LS374N -sha1:11419605C942FC9DCB4F93A329C13E3BD5D62403 Poker III NES board=UNIF_UNL-Sachen-74LS374N -sha1:F9E15D09D5F49E52185BA10B4F98A342B2606870 Mei Nu Quan (Honey Peach) (Sachen) [b1] NES board=UNIF_UNL-Sachen-74LS374N -sha1:52EBAFAD0B70E6BB41CCDBC0DFC8420C12D64AC5 Mei Nu Quan (Honey Peach) (Sachen) [b2] NES board=UNIF_UNL-Sachen-74LS374N -sha1:079E58CEDD3D182E8591A33EE8FAD6F227960838 Mei Nu Quan (Honey Peach) (Sachen) [a1] NES board=UNIF_UNL-Sachen-74LS374N -sha1:E8BB03BA4ABED34FF451A1D086352719BAC6564F San Guo Zhi 2 (Ch) [T+Chi2.3] NES board=MAPPER199;VRAM=8 -sha1:8996AEA69D459AC181F1B3F4EF56DEA20FFF0A40 Silva Saga (J) [T+ChS] NES board=MAPPER199;VRAM=8 -sha1:3F85C45797E8AA0F161A4BD350BFF5777B3A19A8 Zu Qiu Xiao Jiang (Ch) [f1] NES board=MAPPER195;VRAM=4 -sha1:A43A2203F4F7E0FE729CE520FBD75A05206AC9F2 Zu Qiu Xiao Jiang (Ch) NES board=MAPPER195;VRAM=4 -sha1:A2F36A9CA3914F1C9184A85E914D7A163DAA135B B 46-in-1 (D1038) [p1][b1] NES board=MAPPER060 -sha1:C403AA673405583FD18A0DA5E3E6275786E04128 B 65-in-1 (NT766) [p1][b1] NES board=MAPPER060 -sha1:7E46FBE4713E9391293521CF2B852C80DBEBCD7F B 74-in-1 (NT886) [p1][b1] NES board=MAPPER060 -sha1:81D72ACD08A6255AE44639D40D6D90C1EFCF61AF B 77-in-1 (NT141) [p1][b1] NES board=MAPPER060 -sha1:1C3771B7F116F439D684D04DF792570271C93F86 75 Bingo (Sachen-English) [U] NES board=Sachen_CNROM -sha1:4097D5A814308E39D592466B60B64862699CC22A 2-in-1 - Yuu Yuu + Dragonball Z [p1][!] NES board=MAPPER023_BMC -sha1:4C499A857087E6C121522435786792A2E4105AC1 Fuuun Shaolin Kyo (FDS Conversion) (Unl) [U][!] NES board=UNIF_UNL-LH10;WRAM=8;VRAM=8 -sha1:CAAC1E829133851648BA7C7CD6EAA7D26A464999 Metal Fighter (Asia) (Unl) (Sachen) NES board=UNIF_UNL-SA-016-1M;PRG=32;CHR=32;PAD_V=0;PAD_H=1 -sha1:0CDE48DB89896946F0C2E78936EA290348994ED5 Pipemania (Australia) (HES) (Unl) NES board=MAPPER113;PRG=32;CHR=16;WRAM=0;VRAM=0 -sha1:E843AB3D779D4F0BB1F933D6EE99DAA526EFBCF1 Gaiapolis (Asia) (Unl) NES board=UNIF_NES-TLROM;PRG=128;CHR=256;WRAM=0;VRAM=0 -sha1:B21CFE30197727C1C8E8DB6D28AD696A708F8FF5 Pyramid II (Asia) (PAL) (Unl) NES board=MAPPER146 -sha1:8898B1E70D561AF31564689E0C942C181C78E55F Rockball (Asia) (Unl) NES board=UNIF_UNL-Sachen-8259A;PRG=64;CHR=64;WRAM=0;VRAM=0;PAD_V=0;PAD_H=1 -sha1:6A07B7C55359E1826F670DEDEBF969B9DD2F0A2F Popo Team (Asia) (Unl) NES board=UNIF_UNL-Sachen-8259A;PRG=128;CHR=64;WRAM=0;VRAM=0;PAD_V=0;PAD_H=1 -sha1:B3FB53931D34CDB41EFC2677CF7B949B2B84D616 Korean Igo (Korea) (Unl) NES board=UNIF_DREAMTECH01;PRG=144;CHR=0;WRAM=0;VRAM=8;PAD_V=1;PAD_H=0 -sha1:358E092952DDAFF9703A75264A6732003952500D Qi Wang - Chinese Chess (Asia) (Unl) NES board=UNIF_UNL-22211;PRG=64;CHR=32;WRAM=0;VRAM=0;PAD_V=1;PAD_H=0 -sha1:C282316D30790E41D0A4A0E8949024B980CEE572 Poker Mahjong - Pu Ke Mao Que (Asia) (Unl) NES board=UNIF_UNL-Sachen-8259A;PRG=32;CHR=32;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 -sha1:82880C2F4A0D18E4CB67324334F2B3B76B818F31 Mahjong World, The - Ma Que Shi Jie (Asia) (NTSC) (Unl) NES board=MAPPER148;PRG=64;CHR=64;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0 -sha1:88E6ADE9934EFCDE38D7482FDDE1C00C4C13652D Super Pang II (Asia) (Unl) NES board=UNIF_UNL-Sachen-8259A;PRG=64;CHR=32;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 -sha1:0EA22D830B93AB455F8C1F5E2C4B894EABA30AA3 Super Cartridge Ver 2 - 10 in 1 (Asia) (Unl) NES board=UNIF_UNL-Sachen-8259A;PRG=128;CHR=64;WRAM=0;VRAM=0 -sha1:D24D3104E28FD3F428CDBC8AE2D3F4ACA9A69D6F Super Cartridge Ver 3 - 8 in 1 (Asia) (Unl) NES board=UNIF_UNL-Sachen-8259A;PRG=256;CHR=256;WRAM=0;VRAM=0 -sha1:1477FD89A26B8F6E3460FE078794D79BEC944C00 Super Cartridge Ver 9 - 3 in 1 (Asia) (Unl) NES board=UNIF_UNL-Sachen-8259A;PRG=256;CHR=256;WRAM=0;VRAM=0 -sha1:5239EECED4510EF3D540DD39D629D9E7C5E55251 Taiwan Mahjong - Tai Wan Ma Que 16 (Asia) (Unl) NES board=UNIF_UNL-SA-0036;PRG=32;CHR=16;WRAM=0;VRAM=0;PAD_V=1;PAD_H=0 -sha1:2500B5492ECE1CAFB97881C5A384B0768313BF98 Block Out (USA) (Proto) NES board=MAPPER004;PRG=128;CHR=0;WRAM=8;VRAM=8;PAD_V=0;PAD_H=1 -sha1:B1CC3ED04C610BE18742A3FD78A8F27A597F8549 Sidewinder (Australia) (Unl) NES board=MAPPER113;PRG=16;CHR=16;WRAM=0;VRAM=0;PAD_V=1;PAD_H=0 -sha1:D4702A831A398107D8F87BC93BD56C4D8CA78F2A Buzz & Waldog (USA) (Proto) (Unl) NES board=MAPPER156;PRG=128;CHR=128;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0 -sha1:3C72706AF5998133EC6BE703994C10466A094EAB Xing Ji Zheng Ba (China) (Unl) NES board=MAPPER241;PRG=512;CHR=0;WRAM=8;VRAM=8;PAD_V=1;PAD_H=0 -sha1:18DF013DB350787D0F3D83ADE33EA92B097BD54B Mahjan Samit Kabukicho Hen (Asia) (Unl) NES board=MAPPER146;PRG=64;CHR=64;WRAM=0;VRAM=0;PAD_V=1;PAD_H=0 -sha1:6AAA5521F91F101448E77C996C9802015578400C Dooly_Bravo_Land NES board=MAPPER002;PRG=256;CHR=0;WRAM=0;VRAM=8;PAD_V=0;PAD_H=1 -sha1:4EBC1ED9665C36913D0F05129E6A54787BAD3165 Dragon Ball 3 - Gokuu Den (Japan) (Rev 1) NES board=BANDAI-FCG-2;PRG=128;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=1 - -;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- - -;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- -;positively good roms which for one reason or another arent in bootgod's DB - -;probably missing due to obscurity -sha1:977286FDC76C34A618E2A2D0270641BC36CFE89C Nintendo World Championships 1990 NES board=NES-EVENT;PRG=256;CHR=0;WRAM=8;VRAM=8 - -;these are from the 2002 konami collection and castlevania at least has a published TAS. presumably these are good, as they came from a PC game -sha1:EC652EE1660E527098102E26A36A8B9B7BB3943F Castlevania (Konami Collection 2002) NES board=NES-UNROM;PRG=128;WRAM=0;VRAM=8;PAD_H=1 -sha1:B5C4E5E858113F5AA5E063BC79A12D7F6B856E6C Contra (Konami Collection 2002) NES board=NES-UNROM;PRG=128;WRAM=0;VRAM=8;PAD_H=1 - -;chinese shit -sha1:BFA31777E077E64AF0E274B5A22B57C6765D36E1 Fan Kong Jing Ying (Unl) (Ch) NES board=MAPPER241;MIR=H -sha1:17473C223453D2D80FCB9DCFA317947287DC5C52 Xing He Zhan Shi (Ch) NES board=MAPPER176 -sha1:0B58E16B7FD5ABE62B1D9B1841875582DF5A9195 Ying Lie Qun Xia Zhuan (Ch) NES board=MAPPER192 -sha1:27CB8AEAF0EA97A6C69D3D90BC056C5EB61695F6 Dai-2-Ji Super Robot Taisen (Ch) NES board=MAPPER194;VRAM=2 -sha1:F5FA7807F2B70ADFE5707D9BF88F90DAC1436DB0 Di 4 Ci Ji Qi Ren Dai Zhan (Ch) NES board=MAPPER074;VRAM=2 -sha1:A9887C308C5D0659C3AA45D003A603C9DFFB148A B Ji Jia Zhan Shi (Asia) NES board=MAPPER074;VRAM=2 -sha1:5084F25F14A61AB2799BD85D363B57B9B494601D Ji Jia Zhan Shi (Asia) NES board=MAPPER074;VRAM=2 -sha1:6143D80047FFC17C752078C622A44C3E0CB7466E B Dong Fang de Chuan Shuo The Hyrule Fantasy (Asia) NES board=MAPPER245 -sha1:CEFEBA536DB507DBDEF8A538F9C332D7A75BF613 You Ling Xing Dong (Ch) NES board=MAPPER192;VRAM=4 -sha1:DBFCC70CC2DEC7A889429ED542267F0F1BD967BF Ying Xiong Chuan Qi (Ch) NES board=MAPPER224 -sha1:FFB4706E49B826C6CDD12E502E8AE94FC9810B7F Monty no Doki Doki Daisassou (FDS Conversion) (Unl) [U][!] NES board=UNIF_UNL-LH32;WRAM=8;VRAM=8;PAD_H=1 -sha1:17473C223453D2D80FCB9DCFA317947287DC5C52 Xing He Zhan Shi (China) (Unl) NES board=WAIXINGMAPPER176 - -;wrong vram info -sha1:32D71DD6C5A8D78A918FE1B9D6D6C4A570D9652D Oeka Kids Anpanman no Hiragana Daisuki (J) NES board=MAPPER096;VRAM=32 -sha1:77B887BD5935204C72869365EAF99708E1B13EB1 Super 24-in-1 [U][p1][!] NES board=UNIF_BMC-Super24in1SC03;VRAM=8; -;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- -;it works, so don't laugh -sha1:203523818A348361584CDEBE47AEB860808757FC U Jurassic Boy 2 (Sachen) NES board=NES-TR1ROM;VRAM=8 - -;wrong mirroring, no bootgod entry -sha1:C1D82F6BE8AF524F951FC7C9D41604E59F9FE92A G Dragon Wars (USA) (Proto) NES board=MAPPER004;PAD_H=0;PAD_V=0 -sha1:22FCC2D33F6715D63E04235A0A7CCB0C8DC489C5 Mortal Kombat 3 Extra 60 (Unl) [!] NES board=MK3E60;PAD_H=1;PAD_V=0 -sha1:8928F7293C12EE7D3FC90BECC68AE5261802EAA6 AV Super Real Pachinko (Unl) NES board=MAPPER066;PAD_H=0;PAD_V=1 - -;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- -;mmc3 homebrews that need chip specification -sha1:35C157A921156E47FD3F6573D150F54108D0EDFC Blargg's 5.MMC3_rev_A.nes NES board=MAPPER004;MMC3=MMC3A -sha1:0E971E2CCAD1DEE51A0C305ED38FAFD2E6CA3B41 Blargg's 6.MMC3_rev_B.nes NES board=MAPPER004;MMC3=MMC3B -sha1:F794FDA12D34E611D58E652319ED583AE61B81E0 Blargg's 6-MMC6.nes NES board=MAPPER004_MMC6 -sha1:2F29F3DC724027FAD926BC9D4470A481884E42A5 Blargg's 6-MMC6.nes (newer) NES board=MAPPER004_MMC6 -sha1:6F3184ACDC7333683D459C7613CA1C235CEAFD3F Aladdin (SuperGame) (Mapper 4) [!] NES board=MAPPER004;MMC3=MMC3A -;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- - -;datach stuff -29CC759D5CA214EEFC0CC1C6CE0F8B9111E58124 Datach Battle Rush Build Up Robot Tournament NES board=MAPPER157 -87478B635FEFB25FA13C4876E20F505A97426C1B B Datach Dragon Ball Z Gekitou Tenkaichi Budou Kai NES board=MAPPER157 -B2089533E05FE95814D0D77F2729944CBEB95988 Datach J League Super Top Players NES board=MAPPER157 -EDD7A45A7F27E396B6D686F1861642D509863132 Datach SD Gundam Gundam Wars NES board=MAPPER157 -533170D5EB685231CCD27B9C136FFA4FAD68A7B8 Datach Ultraman Club Supokon Fight! NES board=MAPPER157 -43315F18A514F0EF1D84EFE9C8D4483B57BA712C Datach Ultraman Club Supokon Fight! NES board=MAPPER157 -74218AAE93E4FEBFB2284BCF15811453418A2029 Datach Yuu Yuu Hakusho Bakutou Ankoku Bujutsu Kai NES board=MAPPER157 -6F3C65BD945FE13305A7A39D8CD884A5BF314A8F Datach Crayon Shin Chan Ora to Poi Poi NES board=MAPPER157 -1218C891DEE878C18D31D38D07CAD5FB06B3B2CE Datach Yuu Yuu akusho Baktutou NES board=MAPPER157 - -;testrom -sha1:E925A172C29DD46BA385D526F3C317DB039FA2BF mmc1_a12 NES board=NES-SNROM -sha1:D89EE629F8F60613999EAD84A3C7B2F6B38C399F fme7ramtest_128k NES board=MAPPER069;PRG=32;CHR=8;WRAM=128;VRAM=0;PAD_V=0;PAD_H=1 - -;other -sha1:4180276C50DF9958DEDD6C6D19C9E7AEBB75A89F o Galaxian (Japan) NES board=NAMCOT-3301;PRG=16;CHR=8;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0 -sha1:0FE9120FD5ADC2790B0B9E8FADD136F9C66A709F Galaxian (Japan) (Rev A) NES board=NAMCOT-3301;PRG=8;CHR=8;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0 - -; ArcadePit hacks -; Why does this one need NesHawk? -sha1:90acbbdfad1465032dfff77175320bab8aa4adb7 H Mike Tyson's Punch-Out!! [Buck Edit] (USA) NES NesHawk - -; PAL -sha1:B9902886D1739983B315B67B02133E44620E4381 Challenge of the Dragon (Asia) (PAL) (Unl) NES board=MAPPER147;PAD_V=0;PAD_H=1;system=NES-PAL -sha1:68ABE1E49C9E9CCEA978A48232432C252E5912C0 Dancing Blocks (Asia) (PAL) (Unl) NES board=MAPPER143;PAD_V=1;PAD_H=0;system=NES-PAL -sha1:FCF9FF27F097892148EAEC439AB79BC53164D751 Elite (NTSC Demo) NES board=MAPPER001;PRG=128;CHR=0;WRAM=8;VRAM=8;PAD_V=1;PAD_H=0;BATT=true;system=NES-PAL -sha1:01D7CE2C74046BA6F7BE2C31DADB21A36BDCA117 Mahjong World, The - Ma Que Shi Jie (Asia) (PAL) (Unl) NES board=MAPPER148;PRG=64;CHR=64;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;system=NES-PAL -sha1:C10C526F26273C4A1E180B968665910B74C78B86 Othello (Australia) (Unl) NES board=MAPPER000;PRG=16;CHR=8;WRAM=0;VRAM=0;PAD_V=0;PAD_H=1;system=NES-PAL -sha1:35D219EC3615A63FF810ABC981835D0867DCEA39 Pirates! (Europe) NES board=MAPPER001;PRG=128;CHR=128;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;BATT=true;system=NES-PAL -sha1:CBC32F60E8780E27645FC9DE4446CE92F2D5E636 Pirates! (Germany) NES board=MAPPER001;PRG=128;CHR=128;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;BATT=true;system=NES-PAL -sha1:2FB0401EA8249233EFA399F305D83672D5600B4A Sidewinder (Asia) (PAL) (Unl) NES board=MAPPER145;PRG=16;CHR=16;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;system=NES-PAL -sha1:7117413766ABC02F3BB767C2CE96065B6F3CBA85 Silent Assault (Asia) (PAL) (Unl) NES board=MAPPER146;PAD_V=0;PAD_H=1;system=NES-PAL -sha1:313CDE2F9829B8BC30978BA7C534AFD8896B7BCA Silver Eagle (Asia) (PAL) (Unl) NES board=MAPPER138;PRG=128;CHR=128;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;system=NES-PAL -sha1:B5D3FCBD4A2C50DABB604AF1471E20A80566D086 Snowboard Challenge (Europe) NES board=MAPPER001;PRG=128;CHR=128;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;system=NES-PAL -sha1:6CB91EF73979A7C8893896E1B45A3E56FAC9E832 Twin Eagle (Asia) (PAL) (Unl) NES board=MAPPER146;PRG=32;CHR=32;WRAM=0;VRAM=0;PAD_V=0;PAD_H=1;system=NES-PAL \ No newline at end of file From 5f956b151a854a8d47f957b1130ece39e9d2d126 Mon Sep 17 00:00:00 2001 From: adelikat Date: Wed, 7 Jun 2017 15:11:18 -0500 Subject: [PATCH 35/80] cleanup GenericCoreConfig.cs --- .../config/GenericCoreConfig.Designer.cs | 250 +++++++++--------- .../config/GenericCoreConfig.cs | 120 +++++---- 2 files changed, 192 insertions(+), 178 deletions(-) diff --git a/BizHawk.Client.EmuHawk/config/GenericCoreConfig.Designer.cs b/BizHawk.Client.EmuHawk/config/GenericCoreConfig.Designer.cs index 0232504ff4..50389fc8a2 100644 --- a/BizHawk.Client.EmuHawk/config/GenericCoreConfig.Designer.cs +++ b/BizHawk.Client.EmuHawk/config/GenericCoreConfig.Designer.cs @@ -28,130 +28,130 @@ /// private void InitializeComponent() { - this.tabControl1 = new System.Windows.Forms.TabControl(); - this.tabPage1 = new System.Windows.Forms.TabPage(); - this.propertyGrid1 = new System.Windows.Forms.PropertyGrid(); - this.tabPage2 = new System.Windows.Forms.TabPage(); - this.propertyGrid2 = new System.Windows.Forms.PropertyGrid(); - this.button1 = new System.Windows.Forms.Button(); - this.button2 = new System.Windows.Forms.Button(); - this.buttonDefaults = new System.Windows.Forms.Button(); - this.tabControl1.SuspendLayout(); - this.tabPage1.SuspendLayout(); - this.tabPage2.SuspendLayout(); - this.SuspendLayout(); - // - // tabControl1 - // - this.tabControl1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + this.tabControl1 = new System.Windows.Forms.TabControl(); + this.tabPage1 = new System.Windows.Forms.TabPage(); + this.propertyGrid1 = new System.Windows.Forms.PropertyGrid(); + this.tabPage2 = new System.Windows.Forms.TabPage(); + this.propertyGrid2 = new System.Windows.Forms.PropertyGrid(); + this.OkBtn = new System.Windows.Forms.Button(); + this.CancelBtn = new System.Windows.Forms.Button(); + this.DefaultsBtn = new System.Windows.Forms.Button(); + this.tabControl1.SuspendLayout(); + this.tabPage1.SuspendLayout(); + this.tabPage2.SuspendLayout(); + this.SuspendLayout(); + // + // tabControl1 + // + this.tabControl1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.tabControl1.Controls.Add(this.tabPage1); - this.tabControl1.Controls.Add(this.tabPage2); - this.tabControl1.Location = new System.Drawing.Point(12, 12); - this.tabControl1.Name = "tabControl1"; - this.tabControl1.SelectedIndex = 0; - this.tabControl1.Size = new System.Drawing.Size(320, 331); - this.tabControl1.TabIndex = 0; - // - // tabPage1 - // - this.tabPage1.Controls.Add(this.propertyGrid1); - this.tabPage1.Location = new System.Drawing.Point(4, 22); - this.tabPage1.Name = "tabPage1"; - this.tabPage1.Padding = new System.Windows.Forms.Padding(3); - this.tabPage1.Size = new System.Drawing.Size(312, 305); - this.tabPage1.TabIndex = 0; - this.tabPage1.Text = "Non-Sync Settings"; - this.tabPage1.UseVisualStyleBackColor = true; - // - // propertyGrid1 - // - this.propertyGrid1.CategoryForeColor = System.Drawing.SystemColors.InactiveCaptionText; - this.propertyGrid1.Dock = System.Windows.Forms.DockStyle.Fill; - this.propertyGrid1.Location = new System.Drawing.Point(3, 3); - this.propertyGrid1.Name = "propertyGrid1"; - this.propertyGrid1.PropertySort = System.Windows.Forms.PropertySort.NoSort; - this.propertyGrid1.Size = new System.Drawing.Size(306, 299); - this.propertyGrid1.TabIndex = 0; - this.propertyGrid1.ToolbarVisible = false; - // - // tabPage2 - // - this.tabPage2.Controls.Add(this.propertyGrid2); - this.tabPage2.Location = new System.Drawing.Point(4, 22); - this.tabPage2.Name = "tabPage2"; - this.tabPage2.Padding = new System.Windows.Forms.Padding(3); - this.tabPage2.Size = new System.Drawing.Size(312, 305); - this.tabPage2.TabIndex = 1; - this.tabPage2.Text = "Sync Settings"; - this.tabPage2.UseVisualStyleBackColor = true; - // - // propertyGrid2 - // - this.propertyGrid2.CategoryForeColor = System.Drawing.SystemColors.InactiveCaptionText; - this.propertyGrid2.Dock = System.Windows.Forms.DockStyle.Fill; - this.propertyGrid2.Location = new System.Drawing.Point(3, 3); - this.propertyGrid2.Name = "propertyGrid2"; - this.propertyGrid2.PropertySort = System.Windows.Forms.PropertySort.NoSort; - this.propertyGrid2.Size = new System.Drawing.Size(306, 299); - this.propertyGrid2.TabIndex = 0; - this.propertyGrid2.ToolbarVisible = false; - this.propertyGrid2.PropertyValueChanged += new System.Windows.Forms.PropertyValueChangedEventHandler(this.propertyGrid2_PropertyValueChanged); - // - // button1 - // - this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.button1.Location = new System.Drawing.Point(176, 349); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(75, 23); - this.button1.TabIndex = 1; - this.button1.Text = "OK"; - this.button1.UseVisualStyleBackColor = true; - this.button1.Click += new System.EventHandler(this.button1_Click); - // - // button2 - // - this.button2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.button2.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.button2.Location = new System.Drawing.Point(257, 349); - this.button2.Name = "button2"; - this.button2.Size = new System.Drawing.Size(75, 23); - this.button2.TabIndex = 2; - this.button2.Text = "Cancel"; - this.button2.UseVisualStyleBackColor = true; - // - // buttonDefaults - // - this.buttonDefaults.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.buttonDefaults.Location = new System.Drawing.Point(12, 349); - this.buttonDefaults.Name = "buttonDefaults"; - this.buttonDefaults.Size = new System.Drawing.Size(75, 23); - this.buttonDefaults.TabIndex = 3; - this.buttonDefaults.Text = "Defaults"; - this.buttonDefaults.UseVisualStyleBackColor = true; - this.buttonDefaults.Click += new System.EventHandler(this.buttonDefaults_Click); - // - // GenericCoreConfig - // - this.AcceptButton = this.button1; - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.button2; - this.ClientSize = new System.Drawing.Size(344, 384); - this.Controls.Add(this.buttonDefaults); - this.Controls.Add(this.button2); - this.Controls.Add(this.button1); - this.Controls.Add(this.tabControl1); - this.Name = "GenericCoreConfig"; - this.ShowIcon = false; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "GenericCoreConfig"; - this.Load += new System.EventHandler(this.GenericCoreConfig_Load); - this.tabControl1.ResumeLayout(false); - this.tabPage1.ResumeLayout(false); - this.tabPage2.ResumeLayout(false); - this.ResumeLayout(false); + this.tabControl1.Controls.Add(this.tabPage1); + this.tabControl1.Controls.Add(this.tabPage2); + this.tabControl1.Location = new System.Drawing.Point(12, 12); + this.tabControl1.Name = "tabControl1"; + this.tabControl1.SelectedIndex = 0; + this.tabControl1.Size = new System.Drawing.Size(320, 331); + this.tabControl1.TabIndex = 0; + // + // tabPage1 + // + this.tabPage1.Controls.Add(this.propertyGrid1); + this.tabPage1.Location = new System.Drawing.Point(4, 22); + this.tabPage1.Name = "tabPage1"; + this.tabPage1.Padding = new System.Windows.Forms.Padding(3); + this.tabPage1.Size = new System.Drawing.Size(312, 305); + this.tabPage1.TabIndex = 0; + this.tabPage1.Text = "Non-Sync Settings"; + this.tabPage1.UseVisualStyleBackColor = true; + // + // propertyGrid1 + // + this.propertyGrid1.CategoryForeColor = System.Drawing.SystemColors.InactiveCaptionText; + this.propertyGrid1.Dock = System.Windows.Forms.DockStyle.Fill; + this.propertyGrid1.Location = new System.Drawing.Point(3, 3); + this.propertyGrid1.Name = "propertyGrid1"; + this.propertyGrid1.PropertySort = System.Windows.Forms.PropertySort.NoSort; + this.propertyGrid1.Size = new System.Drawing.Size(306, 299); + this.propertyGrid1.TabIndex = 0; + this.propertyGrid1.ToolbarVisible = false; + // + // tabPage2 + // + this.tabPage2.Controls.Add(this.propertyGrid2); + this.tabPage2.Location = new System.Drawing.Point(4, 22); + this.tabPage2.Name = "tabPage2"; + this.tabPage2.Padding = new System.Windows.Forms.Padding(3); + this.tabPage2.Size = new System.Drawing.Size(312, 305); + this.tabPage2.TabIndex = 1; + this.tabPage2.Text = "Sync Settings"; + this.tabPage2.UseVisualStyleBackColor = true; + // + // propertyGrid2 + // + this.propertyGrid2.CategoryForeColor = System.Drawing.SystemColors.InactiveCaptionText; + this.propertyGrid2.Dock = System.Windows.Forms.DockStyle.Fill; + this.propertyGrid2.Location = new System.Drawing.Point(3, 3); + this.propertyGrid2.Name = "propertyGrid2"; + this.propertyGrid2.PropertySort = System.Windows.Forms.PropertySort.NoSort; + this.propertyGrid2.Size = new System.Drawing.Size(306, 299); + this.propertyGrid2.TabIndex = 0; + this.propertyGrid2.ToolbarVisible = false; + this.propertyGrid2.PropertyValueChanged += new System.Windows.Forms.PropertyValueChangedEventHandler(this.PropertyGrid2_PropertyValueChanged); + // + // OkBtn + // + this.OkBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.OkBtn.Location = new System.Drawing.Point(176, 349); + this.OkBtn.Name = "OkBtn"; + this.OkBtn.Size = new System.Drawing.Size(75, 23); + this.OkBtn.TabIndex = 1; + this.OkBtn.Text = "OK"; + this.OkBtn.UseVisualStyleBackColor = true; + this.OkBtn.Click += new System.EventHandler(this.OkBtn_Click); + // + // CancelBtn + // + this.CancelBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.CancelBtn.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.CancelBtn.Location = new System.Drawing.Point(257, 349); + this.CancelBtn.Name = "CancelBtn"; + this.CancelBtn.Size = new System.Drawing.Size(75, 23); + this.CancelBtn.TabIndex = 2; + this.CancelBtn.Text = "Cancel"; + this.CancelBtn.UseVisualStyleBackColor = true; + // + // DefaultsBtn + // + this.DefaultsBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.DefaultsBtn.Location = new System.Drawing.Point(12, 349); + this.DefaultsBtn.Name = "DefaultsBtn"; + this.DefaultsBtn.Size = new System.Drawing.Size(75, 23); + this.DefaultsBtn.TabIndex = 3; + this.DefaultsBtn.Text = "Defaults"; + this.DefaultsBtn.UseVisualStyleBackColor = true; + this.DefaultsBtn.Click += new System.EventHandler(this.DefaultsBtn_Click); + // + // GenericCoreConfig + // + this.AcceptButton = this.OkBtn; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.CancelButton = this.CancelBtn; + this.ClientSize = new System.Drawing.Size(344, 384); + this.Controls.Add(this.DefaultsBtn); + this.Controls.Add(this.CancelBtn); + this.Controls.Add(this.OkBtn); + this.Controls.Add(this.tabControl1); + this.Name = "GenericCoreConfig"; + this.ShowIcon = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "GenericCoreConfig"; + this.Load += new System.EventHandler(this.GenericCoreConfig_Load); + this.tabControl1.ResumeLayout(false); + this.tabPage1.ResumeLayout(false); + this.tabPage2.ResumeLayout(false); + this.ResumeLayout(false); } @@ -162,8 +162,8 @@ private System.Windows.Forms.TabPage tabPage2; private System.Windows.Forms.PropertyGrid propertyGrid1; private System.Windows.Forms.PropertyGrid propertyGrid2; - private System.Windows.Forms.Button button1; - private System.Windows.Forms.Button button2; - private System.Windows.Forms.Button buttonDefaults; + private System.Windows.Forms.Button OkBtn; + private System.Windows.Forms.Button CancelBtn; + private System.Windows.Forms.Button DefaultsBtn; } } \ No newline at end of file diff --git a/BizHawk.Client.EmuHawk/config/GenericCoreConfig.cs b/BizHawk.Client.EmuHawk/config/GenericCoreConfig.cs index 9adacfe74c..5e82a96df3 100644 --- a/BizHawk.Client.EmuHawk/config/GenericCoreConfig.cs +++ b/BizHawk.Client.EmuHawk/config/GenericCoreConfig.cs @@ -1,62 +1,73 @@ using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; using System.Windows.Forms; using BizHawk.Client.Common; -using BizHawk.Client.EmuHawk; using BizHawk.Emulation.Common; namespace BizHawk.Client.EmuHawk { public partial class GenericCoreConfig : Form { - object s; - object ss; - bool syncsettingschanged = false; + private object _s; + private object _ss; + private bool _syncsettingschanged; - GenericCoreConfig(bool ignoresettings, bool ignoresyncsettings) + private GenericCoreConfig(bool ignoresettings, bool ignoresyncsettings) { InitializeComponent(); var settable = new SettingsAdapter(Global.Emulator); if (settable.HasSettings && !ignoresettings) - s = settable.GetSettings(); - if (settable.HasSyncSettings && !ignoresyncsettings) - ss = settable.GetSyncSettings(); - - if (s != null) - propertyGrid1.SelectedObject = s; - else - tabControl1.TabPages.Remove(tabPage1); - if (ss != null) - propertyGrid2.SelectedObject = ss; - else - tabControl1.TabPages.Remove(tabPage2); - - if (Global.MovieSession.Movie.IsActive) - propertyGrid2.Enabled = false; // disable changes to sync setting when movie, so as not to confuse user - } - - GenericCoreConfig() - :this(false, false) - { - } - - private void button1_Click(object sender, EventArgs e) - { - var settable = new SettingsAdapter(Global.Emulator); - if (s != null && settable.HasSettings) { - settable.PutSettings(s); + _s = settable.GetSettings(); } - if (ss != null && syncsettingschanged) - GlobalWin.MainForm.PutCoreSyncSettings(ss); + if (settable.HasSyncSettings && !ignoresyncsettings) + { + _ss = settable.GetSyncSettings(); + } + + if (_s != null) + { + propertyGrid1.SelectedObject = _s; + } + else + { + tabControl1.TabPages.Remove(tabPage1); + } + + if (_ss != null) + { + propertyGrid2.SelectedObject = _ss; + } + else + { + tabControl1.TabPages.Remove(tabPage2); + } + + if (Global.MovieSession.Movie.IsActive) + { + propertyGrid2.Enabled = false; // disable changes to sync setting when movie, so as not to confuse user + } + } + + private GenericCoreConfig() + : this(false, false) + { + } + + private void OkBtn_Click(object sender, EventArgs e) + { + var settable = new SettingsAdapter(Global.Emulator); + if (_s != null && settable.HasSettings) + { + settable.PutSettings(_s); + } + + if (_ss != null && _syncsettingschanged) + { + GlobalWin.MainForm.PutCoreSyncSettings(_ss); + } DialogResult = DialogResult.OK; Close(); @@ -65,40 +76,43 @@ namespace BizHawk.Client.EmuHawk public static void DoDialog(IWin32Window owner, string title) { using (var dlg = new GenericCoreConfig { Text = title }) + { dlg.ShowDialog(owner); + } } public static void DoDialog(IWin32Window owner, string title, bool hidesettings, bool hidesyncsettings) { using (var dlg = new GenericCoreConfig(hidesettings, hidesyncsettings) { Text = title }) + { dlg.ShowDialog(owner); + } } - private void propertyGrid2_PropertyValueChanged(object s, PropertyValueChangedEventArgs e) + private void PropertyGrid2_PropertyValueChanged(object s, PropertyValueChangedEventArgs e) { - syncsettingschanged = true; + _syncsettingschanged = true; } private void GenericCoreConfig_Load(object sender, EventArgs e) { - } - private void buttonDefaults_Click(object sender, EventArgs e) + private void DefaultsBtn_Click(object sender, EventArgs e) { // the new config objects guarantee that the default constructor gives a default-settings object - if (s != null) + if (_s != null) { - s = Activator.CreateInstance(s.GetType()); - propertyGrid1.SelectedObject = s; - } - if (ss != null) - { - ss = Activator.CreateInstance(ss.GetType()); - propertyGrid2.SelectedObject = ss; - syncsettingschanged = true; + _s = Activator.CreateInstance(_s.GetType()); + propertyGrid1.SelectedObject = _s; } + if (_ss != null) + { + _ss = Activator.CreateInstance(_ss.GetType()); + propertyGrid2.SelectedObject = _ss; + _syncsettingschanged = true; + } } } } From 18bf23bc146e15bae053bc443a4c434fed22cc8c Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Wed, 7 Jun 2017 21:12:24 -0400 Subject: [PATCH 36/80] more game db --- Assets/gamedb/gamedb_nes.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Assets/gamedb/gamedb_nes.txt b/Assets/gamedb/gamedb_nes.txt index feccb07335..cf2f9d09c7 100644 --- a/Assets/gamedb/gamedb_nes.txt +++ b/Assets/gamedb/gamedb_nes.txt @@ -350,6 +350,8 @@ sha1:90acbbdfad1465032dfff77175320bab8aa4adb7 H Mike Tyson's Punch-Out!! [Buck E sha1:B9902886D1739983B315B67B02133E44620E4381 Challenge of the Dragon (Asia) (PAL) (Unl) NES board=MAPPER147;PAD_V=0;PAD_H=1;system=NES-PAL sha1:68ABE1E49C9E9CCEA978A48232432C252E5912C0 Dancing Blocks (Asia) (PAL) (Unl) NES board=MAPPER143;PAD_V=1;PAD_H=0;system=NES-PAL sha1:FCF9FF27F097892148EAEC439AB79BC53164D751 Elite (NTSC Demo) NES board=MAPPER001;PRG=128;CHR=0;WRAM=8;VRAM=8;PAD_V=1;PAD_H=0;BATT=true;system=NES-PAL +sha1:29320367B20F6D6243CFB53E094ECD14AAB7AF2A Great Wall, The (Asia) (PAL) (Unl) NES board=MAPPER137;PRG=32;CHR=32;WRAM=0;VRAM=0;PAD_V=1;PAD_H=0;system=NES-PAL +sha1:8694B8351D1F476FEA9D376205234853A00948D7 Hell Fighter (Asia) (PAL) (Unl) NES board=MAPPER139;PRG=256;CHR=64;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;system=NES-PAL sha1:01D7CE2C74046BA6F7BE2C31DADB21A36BDCA117 Mahjong World, The - Ma Que Shi Jie (Asia) (PAL) (Unl) NES board=MAPPER148;PRG=64;CHR=64;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;system=NES-PAL sha1:C10C526F26273C4A1E180B968665910B74C78B86 Othello (Australia) (Unl) NES board=MAPPER000;PRG=16;CHR=8;WRAM=0;VRAM=0;PAD_V=0;PAD_H=1;system=NES-PAL sha1:35D219EC3615A63FF810ABC981835D0867DCEA39 Pirates! (Europe) NES board=MAPPER001;PRG=128;CHR=128;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;BATT=true;system=NES-PAL @@ -358,4 +360,4 @@ sha1:2FB0401EA8249233EFA399F305D83672D5600B4A Sidewinder (Asia) (PAL) (Unl) NES sha1:7117413766ABC02F3BB767C2CE96065B6F3CBA85 Silent Assault (Asia) (PAL) (Unl) NES board=MAPPER146;PAD_V=0;PAD_H=1;system=NES-PAL sha1:313CDE2F9829B8BC30978BA7C534AFD8896B7BCA Silver Eagle (Asia) (PAL) (Unl) NES board=MAPPER138;PRG=128;CHR=128;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;system=NES-PAL sha1:B5D3FCBD4A2C50DABB604AF1471E20A80566D086 Snowboard Challenge (Europe) NES board=MAPPER001;PRG=128;CHR=128;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;system=NES-PAL -sha1:6CB91EF73979A7C8893896E1B45A3E56FAC9E832 Twin Eagle (Asia) (PAL) (Unl) NES board=MAPPER146;PRG=32;CHR=32;WRAM=0;VRAM=0;PAD_V=0;PAD_H=1;system=NES-PAL \ No newline at end of file +sha1:6CB91EF73979A7C8893896E1B45A3E56FAC9E832 Twin Eagle (Asia) (PAL) (Unl) NES board=MAPPER146;PRG=32;CHR=32;WRAM=0;VRAM=0;PAD_V=0;PAD_H=1;system=NES-PAL From 149b9a5b11e24962f2abd1b9f72cbb8a90e5be16 Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Wed, 7 Jun 2017 21:35:18 -0400 Subject: [PATCH 37/80] Update BxROM --- BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/BxROM.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/BxROM.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/BxROM.cs index b333587a0d..63722da27e 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/BxROM.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/BxROM.cs @@ -32,7 +32,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES case "IREM-BNROM": //Mashou (J).nes case "NES-BNROM": //Deadly Towers (U) - AssertPrg(128); AssertChr(0); AssertWram(0); AssertVram(8); + AssertPrg(128,256); AssertChr(0); AssertWram(0,8); AssertVram(8); break; default: @@ -80,4 +80,4 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES } } -} \ No newline at end of file +} From 2fd4c2fc9007dd86e9becb1425708e1e9ed1a63b Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Wed, 7 Jun 2017 21:36:25 -0400 Subject: [PATCH 38/80] Update game db --- Assets/gamedb/gamedb_nes.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Assets/gamedb/gamedb_nes.txt b/Assets/gamedb/gamedb_nes.txt index cf2f9d09c7..3177cdb85f 100644 --- a/Assets/gamedb/gamedb_nes.txt +++ b/Assets/gamedb/gamedb_nes.txt @@ -337,6 +337,8 @@ EDD7A45A7F27E396B6D686F1861642D509863132 Datach SD Gundam Gundam Wars NES boar ;testrom sha1:E925A172C29DD46BA385D526F3C317DB039FA2BF mmc1_a12 NES board=NES-SNROM sha1:D89EE629F8F60613999EAD84A3C7B2F6B38C399F fme7ramtest_128k NES board=MAPPER069;PRG=32;CHR=8;WRAM=128;VRAM=0;PAD_V=0;PAD_H=1 +sha1:78C4441E42C8F423EBF6558AA00AB6D0DBCC2B4B 34_test_1 NES board=AVE-NINA-01;PRG=64;CHR=64;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0 +sha1:F2D5CB78D78831CB6A2A17CD418A753F3C99C7F4 34_test_2 NES board=NES-BNROM;PRG=256;CHR=0;WRAM=8;VRAM=8;PAD_V=1;PAD_H=0 ;other sha1:4180276C50DF9958DEDD6C6D19C9E7AEBB75A89F o Galaxian (Japan) NES board=NAMCOT-3301;PRG=16;CHR=8;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0 From 9036215e460309f8ee876ae2e82dabfb5a9f0134 Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Thu, 8 Jun 2017 14:35:13 -0400 Subject: [PATCH 39/80] NES Fix APU Finally fixes the infamously bad APU mixer tests --- .../Consoles/Nintendo/NES/APU.cs | 59 ++++++------------- 1 file changed, 19 insertions(+), 40 deletions(-) diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/APU.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/APU.cs index f83f07eb64..7594655e8f 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/APU.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/APU.cs @@ -433,7 +433,6 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES ser.EndSection(); } - public bool IsLenCntNonZero() { return len_cnt > 0; } public void WriteReg(int addr, byte val) @@ -508,8 +507,8 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES else env_counter--; } } - } + public void clock_length_and_sweep() { @@ -561,7 +560,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES //misc.. int lenctr_en; int linear_counter, timer, timer_cnt_reload; - int seq = 15; + int seq = 0; public int sample; APU apu; @@ -655,42 +654,37 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES //except when linear counter or //length counter is 0 - //dont stop the triangle channel until its level is 0. makes it sound nicer. - bool need_declick = (seq != 16 && seq != 15); - bool en = len_cnt != 0 && linear_counter != 0 || need_declick; + bool en = len_cnt != 0 && linear_counter != 0; - //length counter and linear counter - //is clocked in frame counter. - if (en) + bool do_clock = false; + if (timer > 0) timer--; + if (timer == 0) + { + do_clock = true; + timer = timer_cnt_reload; + } + + if (en && do_clock) { int newsample; - if (timer > 0) timer--; - if (timer == 0) - { - seq = (seq + 1) & 0x1F; - timer = timer_cnt_reload; - } - if (CFG_DECLICK) // this looks ugly... - newsample = TRIANGLE_TABLE[(seq + 8) & 0x1F]; - else - newsample = TRIANGLE_TABLE[seq]; + + seq = (seq + 1) & 0x1F; + + newsample = TRIANGLE_TABLE[seq]; //special hack: frequently, games will use the maximum frequency triangle in order to mute it //apparently this results in the DAC for the triangle wave outputting a steady level at about 7.5 //so we'll emulate it at the digital level if (timer_cnt_reload == 1) newsample = 8; - //newsample -= 8; //unbias if (newsample != sample) { apu.recalculate = true; sample = newsample; } } - } - public void clock_length_and_sweep() { //env_loopdoubles as "halt length counter" @@ -800,9 +794,6 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES //Any time the sample buffer is in an empty state and bytes remaining is not zero, the following occur: // also note that the halt for DMC DMA occurs on APU cycles only (hence the timer check) - - - if (!sample_buffer_filled && sample_length > 0 && apu.dmc_dma_countdown == -1 && delay==0) { // calls from write take one less cycle, but start on a write instead of a read @@ -850,7 +841,6 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES } } - void Clock() { //If the silence flag is clear, bit 0 of the shift register is applied to the counter as follows: @@ -869,7 +859,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES if (out_deltacounter > 1) out_deltacounter -= 2; } - //apu.nes.LogLine("dmc out sample: {0}", out_deltacounter); + //Console.WriteLine("dmc out sample: {0}", out_deltacounter); apu.recalculate = true; } @@ -896,8 +886,6 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES } } else out_bits_remaining--; - - } public void set_lenctr_en(bool en) @@ -1012,7 +1000,6 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES ser.Sync("sequencer_irq_flag", ref sequencer_irq_flag); ser.Sync("len_clock_active", ref len_clock_active); - pulse[0].SyncState(ser); pulse[1].SyncState(ser); triangle.SyncState(ser); @@ -1070,7 +1057,6 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES new int[]{8313,16627,24939,33254,41566} }; - void sequencer_write_tick(byte val) { if (seq_tick>0) @@ -1193,7 +1179,6 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES } sequencer_counter = 0; sequencer_step = 0; - } public void NESHardReset() @@ -1202,7 +1187,6 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES // that translates to a starting value for the counter of -2 sequencer_counter = -2; - } public void WriteReg(int addr, byte val) @@ -1261,7 +1245,6 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES } } - public byte PeekReg(int addr) { switch (addr) @@ -1308,7 +1291,6 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES int pending_length_change; - public void RunOne(bool read) { if (read) @@ -1401,7 +1383,6 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES } } - } public struct Delta @@ -1414,6 +1395,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES this.value = value; } } + public List dlist = new List(); ///

only call in board.ClockCPU() @@ -1428,7 +1410,6 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES int oldmix = 0; - void EmitSample() { if (recalculate) @@ -1440,6 +1421,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES int s_tri = triangle.sample; int s_noise = noise.sample; int s_dmc = dmc.sample; + //int s_ext = 0; //gamepak /* @@ -1463,12 +1445,9 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES //this needs to leave enough headroom for straying DC bias due to the DMC unit getting stuck outputs. smb3 is bad about that. int mix = (int)(20000 * output); - dlist.Add(new Delta(sampleclock, mix - oldmix)); oldmix = mix; } - - sampleclock++; } From d7d30880a305603a4c7201b3b41dfe4b82857e16 Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Thu, 8 Jun 2017 14:59:45 -0400 Subject: [PATCH 40/80] Game DB update --- Assets/gamedb/gamedb_nes.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Assets/gamedb/gamedb_nes.txt b/Assets/gamedb/gamedb_nes.txt index 3177cdb85f..c37d5b2328 100644 --- a/Assets/gamedb/gamedb_nes.txt +++ b/Assets/gamedb/gamedb_nes.txt @@ -362,4 +362,5 @@ sha1:2FB0401EA8249233EFA399F305D83672D5600B4A Sidewinder (Asia) (PAL) (Unl) NES sha1:7117413766ABC02F3BB767C2CE96065B6F3CBA85 Silent Assault (Asia) (PAL) (Unl) NES board=MAPPER146;PAD_V=0;PAD_H=1;system=NES-PAL sha1:313CDE2F9829B8BC30978BA7C534AFD8896B7BCA Silver Eagle (Asia) (PAL) (Unl) NES board=MAPPER138;PRG=128;CHR=128;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;system=NES-PAL sha1:B5D3FCBD4A2C50DABB604AF1471E20A80566D086 Snowboard Challenge (Europe) NES board=MAPPER001;PRG=128;CHR=128;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;system=NES-PAL +sha1:8E7D4B855A507A6D3A5D68A5B3803F266AF4D4D3 Super Pang (Asia) (PAL) (Unl) NES board=MAPPER141;PRG=32;CHR=32;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;system=NES-PAL sha1:6CB91EF73979A7C8893896E1B45A3E56FAC9E832 Twin Eagle (Asia) (PAL) (Unl) NES board=MAPPER146;PRG=32;CHR=32;WRAM=0;VRAM=0;PAD_V=0;PAD_H=1;system=NES-PAL From cc06f6e9398dad4efc16a4e5e3df03670d662275 Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Fri, 9 Jun 2017 20:13:42 -0400 Subject: [PATCH 41/80] another gamedb fix --- Assets/gamedb/gamedb_nes.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Assets/gamedb/gamedb_nes.txt b/Assets/gamedb/gamedb_nes.txt index c37d5b2328..ef210dc68d 100644 --- a/Assets/gamedb/gamedb_nes.txt +++ b/Assets/gamedb/gamedb_nes.txt @@ -129,7 +129,6 @@ sha1:95E86C77BB25DD23152D34FD0BB562A09535BE43 G Pyramid (AVE) (PRG1) NES board= sha1:5759A9D658D253C8A6AAA38969C443D66E0F3349 G Dragon Quest III (PRG0) NES board=HVC-SNROM-03 sha1:9DF34897D002E8D0E4D53B76154F8CD46927CDF9 G Dragon Quest III (PRG1) NES board=HVC-SNROM-03 sha1:B6D1C372A38D196112AA98905C709AD844BD6627 G Super 35-in-1 (y-in-1 VT5201) NES board=MAPPER060 -sha1:0941ABB51EF88587303DBF018770758ECDDD5C20 G Jovial Race (Sachen) NES board=MAPPER133 sha1:D20724A2E2933BEE8E193596688CF86747E0250B B Dragon Ball Z Kyoushuu! Saiya Jin (J) (Bad Dump) NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 sha1:9F17353EF85590484BBC693517292A15DD30845D B Dragon Ball Z Kyoushuu! Saiya Jin (J) (Bad Dump) NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 sha1:D1E9A66CC7424725AD72B8A04E37B9E72EE2BFB6 O Dragon Ball Z Kyoushuu! Saiya Jin (J) (Over Dump) NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 @@ -354,6 +353,7 @@ sha1:68ABE1E49C9E9CCEA978A48232432C252E5912C0 Dancing Blocks (Asia) (PAL) (Unl) sha1:FCF9FF27F097892148EAEC439AB79BC53164D751 Elite (NTSC Demo) NES board=MAPPER001;PRG=128;CHR=0;WRAM=8;VRAM=8;PAD_V=1;PAD_H=0;BATT=true;system=NES-PAL sha1:29320367B20F6D6243CFB53E094ECD14AAB7AF2A Great Wall, The (Asia) (PAL) (Unl) NES board=MAPPER137;PRG=32;CHR=32;WRAM=0;VRAM=0;PAD_V=1;PAD_H=0;system=NES-PAL sha1:8694B8351D1F476FEA9D376205234853A00948D7 Hell Fighter (Asia) (PAL) (Unl) NES board=MAPPER139;PRG=256;CHR=64;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;system=NES-PAL +sha1:0941ABB51EF88587303DBF018770758ECDDD5C20 G Jovial Race (Sachen) NES board=MAPPER133;PRG=64;CHR=32;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;system=NES-PAL sha1:01D7CE2C74046BA6F7BE2C31DADB21A36BDCA117 Mahjong World, The - Ma Que Shi Jie (Asia) (PAL) (Unl) NES board=MAPPER148;PRG=64;CHR=64;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;system=NES-PAL sha1:C10C526F26273C4A1E180B968665910B74C78B86 Othello (Australia) (Unl) NES board=MAPPER000;PRG=16;CHR=8;WRAM=0;VRAM=0;PAD_V=0;PAD_H=1;system=NES-PAL sha1:35D219EC3615A63FF810ABC981835D0867DCEA39 Pirates! (Europe) NES board=MAPPER001;PRG=128;CHR=128;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;BATT=true;system=NES-PAL @@ -362,5 +362,5 @@ sha1:2FB0401EA8249233EFA399F305D83672D5600B4A Sidewinder (Asia) (PAL) (Unl) NES sha1:7117413766ABC02F3BB767C2CE96065B6F3CBA85 Silent Assault (Asia) (PAL) (Unl) NES board=MAPPER146;PAD_V=0;PAD_H=1;system=NES-PAL sha1:313CDE2F9829B8BC30978BA7C534AFD8896B7BCA Silver Eagle (Asia) (PAL) (Unl) NES board=MAPPER138;PRG=128;CHR=128;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;system=NES-PAL sha1:B5D3FCBD4A2C50DABB604AF1471E20A80566D086 Snowboard Challenge (Europe) NES board=MAPPER001;PRG=128;CHR=128;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;system=NES-PAL -sha1:8E7D4B855A507A6D3A5D68A5B3803F266AF4D4D3 Super Pang (Asia) (PAL) (Unl) NES board=MAPPER141;PRG=32;CHR=32;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;system=NES-PAL -sha1:6CB91EF73979A7C8893896E1B45A3E56FAC9E832 Twin Eagle (Asia) (PAL) (Unl) NES board=MAPPER146;PRG=32;CHR=32;WRAM=0;VRAM=0;PAD_V=0;PAD_H=1;system=NES-PAL +sha1:8E7D4B855A507A6D3A5D68A5B3803F266AF4D4D3 Super Pang (Asia) (PAL) (Unl) NES board=MAPPER000;PRG=32;CHR=32;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;system=NES-PAL +sha1:6CB91EF73979A7C8893896E1B45A3E56FAC9E832 Twin Eagle (Asia) (PAL) (Unl) NES board=MAPPER146;PRG=32;CHR=32;WRAM=0;VRAM=0;PAD_V=0;PAD_H=1;system=NES-PAL \ No newline at end of file From e474d3fe793428486a6327fc733b8127e686b01e Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Fri, 9 Jun 2017 20:14:55 -0400 Subject: [PATCH 42/80] oops --- Assets/gamedb/gamedb_nes.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Assets/gamedb/gamedb_nes.txt b/Assets/gamedb/gamedb_nes.txt index ef210dc68d..4263b2829d 100644 --- a/Assets/gamedb/gamedb_nes.txt +++ b/Assets/gamedb/gamedb_nes.txt @@ -362,5 +362,5 @@ sha1:2FB0401EA8249233EFA399F305D83672D5600B4A Sidewinder (Asia) (PAL) (Unl) NES sha1:7117413766ABC02F3BB767C2CE96065B6F3CBA85 Silent Assault (Asia) (PAL) (Unl) NES board=MAPPER146;PAD_V=0;PAD_H=1;system=NES-PAL sha1:313CDE2F9829B8BC30978BA7C534AFD8896B7BCA Silver Eagle (Asia) (PAL) (Unl) NES board=MAPPER138;PRG=128;CHR=128;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;system=NES-PAL sha1:B5D3FCBD4A2C50DABB604AF1471E20A80566D086 Snowboard Challenge (Europe) NES board=MAPPER001;PRG=128;CHR=128;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;system=NES-PAL -sha1:8E7D4B855A507A6D3A5D68A5B3803F266AF4D4D3 Super Pang (Asia) (PAL) (Unl) NES board=MAPPER000;PRG=32;CHR=32;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;system=NES-PAL -sha1:6CB91EF73979A7C8893896E1B45A3E56FAC9E832 Twin Eagle (Asia) (PAL) (Unl) NES board=MAPPER146;PRG=32;CHR=32;WRAM=0;VRAM=0;PAD_V=0;PAD_H=1;system=NES-PAL \ No newline at end of file +sha1:8E7D4B855A507A6D3A5D68A5B3803F266AF4D4D3 Super Pang (Asia) (PAL) (Unl) NES board=MAPPER141;PRG=32;CHR=32;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;system=NES-PAL +sha1:6CB91EF73979A7C8893896E1B45A3E56FAC9E832 Twin Eagle (Asia) (PAL) (Unl) NES board=MAPPER146;PRG=32;CHR=32;WRAM=0;VRAM=0;PAD_V=0;PAD_H=1;system=NES-PAL From 0c38598df1e9047101ae0cd8a0496e54bf19336f Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Fri, 9 Jun 2017 20:43:02 -0400 Subject: [PATCH 43/80] Update BxROM --- BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/BxROM.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/BxROM.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/BxROM.cs index 63722da27e..f1f2ffd275 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/BxROM.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/BxROM.cs @@ -66,7 +66,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES { if (VRAM != null) { - return VRAM[addr | (chr_bank_8k << 13)]; + return VRAM[addr]; } else { From 549e93eac8fa96979bb43022b4be4cc857b50fc6 Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Fri, 9 Jun 2017 20:43:51 -0400 Subject: [PATCH 44/80] Update gamedb --- Assets/gamedb/gamedb_nes.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Assets/gamedb/gamedb_nes.txt b/Assets/gamedb/gamedb_nes.txt index 4263b2829d..f077a8acd2 100644 --- a/Assets/gamedb/gamedb_nes.txt +++ b/Assets/gamedb/gamedb_nes.txt @@ -338,6 +338,7 @@ sha1:E925A172C29DD46BA385D526F3C317DB039FA2BF mmc1_a12 NES board=NES-SNROM sha1:D89EE629F8F60613999EAD84A3C7B2F6B38C399F fme7ramtest_128k NES board=MAPPER069;PRG=32;CHR=8;WRAM=128;VRAM=0;PAD_V=0;PAD_H=1 sha1:78C4441E42C8F423EBF6558AA00AB6D0DBCC2B4B 34_test_1 NES board=AVE-NINA-01;PRG=64;CHR=64;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0 sha1:F2D5CB78D78831CB6A2A17CD418A753F3C99C7F4 34_test_2 NES board=NES-BNROM;PRG=256;CHR=0;WRAM=8;VRAM=8;PAD_V=1;PAD_H=0 +sha1:77C5C2473AF13003B7BD8273A5E23BE4964107A3 M34_P128K_H NES board=AVE-NINA-07;PRG=128;CHR=0;WRAM=0;VRAM=8;PAD_V=1;PAD_H=0 ;other sha1:4180276C50DF9958DEDD6C6D19C9E7AEBB75A89F o Galaxian (Japan) NES board=NAMCOT-3301;PRG=16;CHR=8;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0 From 64e9610c99d7bea0621500f765f5e9a5b541091e Mon Sep 17 00:00:00 2001 From: adelikat Date: Sat, 10 Jun 2017 16:45:32 -0500 Subject: [PATCH 45/80] update statusbar on loadstate slot 7 --- BizHawk.Client.EmuHawk/MainForm.Hotkey.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/BizHawk.Client.EmuHawk/MainForm.Hotkey.cs b/BizHawk.Client.EmuHawk/MainForm.Hotkey.cs index 2f56b1277b..dcd31eabb5 100644 --- a/BizHawk.Client.EmuHawk/MainForm.Hotkey.cs +++ b/BizHawk.Client.EmuHawk/MainForm.Hotkey.cs @@ -221,6 +221,7 @@ namespace BizHawk.Client.EmuHawk case "Load State 7": LoadQuickSave("QuickSave7"); Global.Config.SaveSlot = 7; + UpdateStatusSlots(); break; case "Load State 8": LoadQuickSave("QuickSave8"); From f966da05420358cb1a2f9d0aca7612f5268c8e70 Mon Sep 17 00:00:00 2001 From: feos Date: Sun, 11 Jun 2017 12:17:46 +0300 Subject: [PATCH 46/80] Revert 19cf3b8551ade0fd1e5dd96d1ee2cc580d858992 "m64p: revert DBG preprocessor definitions merged along with 4c0bfd476434b4b69501035d24261c7447a78cf4" Since 19cf3b8551ade0fd1e5dd96d1ee2cc580d858992 disables all lua hooks to the core, it's useless. But DBG causes crash when switching between some plugins on the fly, so it should be fixed in a proper way someday. --- .../projects/msvc11/mupen64plus-core.vcxproj | 4 ++-- output/dll/mupen64plus.dll | Bin 435200 -> 473088 bytes 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libmupen64plus/mupen64plus-core/projects/msvc11/mupen64plus-core.vcxproj b/libmupen64plus/mupen64plus-core/projects/msvc11/mupen64plus-core.vcxproj index 2a76f73588..abb1572891 100644 --- a/libmupen64plus/mupen64plus-core/projects/msvc11/mupen64plus-core.vcxproj +++ b/libmupen64plus/mupen64plus-core/projects/msvc11/mupen64plus-core.vcxproj @@ -62,7 +62,7 @@ Disabled ..\..\src;..\..\..\mupen64plus-win32-deps\SDL-1.2.14\include;..\..\..\mupen64plus-win32-deps\zlib-1.2.3\include;..\..\..\mupen64plus-win32-deps\libpng-1.2.37\include;..\..\..\mupen64plus-win32-deps\freetype-2.3.5-1\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_DEPRECATE;DYNAREC;M64P_OSD;M64P_PARALLEL;%(PreprocessorDefinitions) + DBG;WIN32;_DEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_DEPRECATE;DYNAREC;M64P_OSD;M64P_PARALLEL;%(PreprocessorDefinitions) false EnableFastChecks MultiThreadedDebugDLL @@ -88,7 +88,7 @@ ..\..\src;..\..\..\mupen64plus-win32-deps\SDL-1.2.14\include;..\..\..\mupen64plus-win32-deps\zlib-1.2.3\include;..\..\..\mupen64plus-win32-deps\libpng-1.2.37\include;..\..\..\mupen64plus-win32-deps\freetype-2.3.5-1\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_DEPRECATE;DYNAREC;M64P_OSD;M64P_PARALLEL;%(PreprocessorDefinitions) + DBG;WIN32;NDEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_DEPRECATE;DYNAREC;M64P_OSD;M64P_PARALLEL;%(PreprocessorDefinitions) MultiThreadedDLL diff --git a/output/dll/mupen64plus.dll b/output/dll/mupen64plus.dll index 63efa7fa9f34164e1002e188bf349a69ae4052f3..70e5c10877100582d5f85eab8f23f666eb52ff10 100644 GIT binary patch literal 473088 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 dd{u$A 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%0Ag#d?mt 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 epevv&pevv&pevv&pevv&pevv&peyii75HCI? Date: Sun, 11 Jun 2017 13:07:31 -0500 Subject: [PATCH 47/80] libretro: quick fix so variable savestate sizes work --- .../Libretro/LibretroCore.cs | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/BizHawk.Emulation.Cores/Libretro/LibretroCore.cs b/BizHawk.Emulation.Cores/Libretro/LibretroCore.cs index 952812e641..8f821c13e8 100644 --- a/BizHawk.Emulation.Cores/Libretro/LibretroCore.cs +++ b/BizHawk.Emulation.Cores/Libretro/LibretroCore.cs @@ -122,11 +122,6 @@ namespace BizHawk.Emulation.Cores.Libretro api.comm->env.fb_bufptr = (int*)vidBufferHandle.AddrOfPinnedObject().ToPointer(); //TODO: latch DAR? we may want to change it synchronously, or something - //TODO - libretro cores can return a varying serialize size over time. I tried to get them to write it in the docs... - //UPDATE: well, they wrote in the docs that they CANT. they can ask the frontend if it's supported. (we wont support it unless we have to) - savebuff = new byte[api.comm->env.retro_serialize_size]; - savebuff2 = new byte[savebuff.Length + 13]; - // TODO: more precise VsyncNumerator = (int)(10000000 * api.comm->env.retro_system_av_info.timing.fps); VsyncDenominator = 10000000; @@ -379,7 +374,12 @@ namespace BizHawk.Emulation.Cores.Libretro public void SaveStateBinary(System.IO.BinaryWriter writer) { - Console.WriteLine(api.comm->env.retro_serialize_size); + if (savebuff == null || savebuff.Length != api.comm->env.retro_serialize_size) + { + savebuff = new byte[api.comm->env.retro_serialize_size]; + savebuff2 = new byte[savebuff.Length + 13]; + } + api.CMD_Serialize(savebuff); writer.Write(savebuff.Length); writer.Write(savebuff); @@ -404,6 +404,12 @@ namespace BizHawk.Emulation.Cores.Libretro public byte[] SaveStateBinary() { + if (savebuff == null || savebuff.Length != api.comm->env.retro_serialize_size) + { + savebuff = new byte[api.comm->env.retro_serialize_size]; + savebuff2 = new byte[savebuff.Length + 13]; + } + var ms = new System.IO.MemoryStream(savebuff2, true); var bw = new System.IO.BinaryWriter(ms); SaveStateBinary(bw); From cf6bcd42a22fb367e6dabe62373c07c437a99a8e Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Sun, 11 Jun 2017 18:04:40 -0400 Subject: [PATCH 48/80] Create temp.txt --- .../Consoles/Atari/A7800Hawk/Mappers/temp.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/Mappers/temp.txt diff --git a/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/Mappers/temp.txt b/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/Mappers/temp.txt new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/Mappers/temp.txt @@ -0,0 +1 @@ + From 1957dfd42f61e62777afd247798e3af94c783e15 Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Sun, 11 Jun 2017 18:05:15 -0400 Subject: [PATCH 49/80] Add files via upload --- .../Atari/A7800Hawk/Mappers/MapperBase.cs | 36 +++++++ .../Atari/A7800Hawk/Mappers/MapperDefault.cs | 100 ++++++++++++++++++ 2 files changed, 136 insertions(+) create mode 100644 BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/Mappers/MapperBase.cs create mode 100644 BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/Mappers/MapperDefault.cs diff --git a/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/Mappers/MapperBase.cs b/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/Mappers/MapperBase.cs new file mode 100644 index 0000000000..7b67757591 --- /dev/null +++ b/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/Mappers/MapperBase.cs @@ -0,0 +1,36 @@ +using BizHawk.Common; +using System; + +namespace BizHawk.Emulation.Cores.Atari.A7800Hawk +{ + public class MapperBase + { + public A7800Hawk Core { get; set; } + + public virtual byte ReadMemory(ushort addr) + { + return 0; + } + + public virtual byte PeekMemory(ushort addr) + { + return 0; + } + + public virtual void WriteMemory(ushort addr, byte value) + { + } + + public virtual void PokeMemory(ushort addr, byte value) + { + } + + public virtual void SyncState(Serializer ser) + { + } + + public virtual void Dispose() + { + } + } +} diff --git a/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/Mappers/MapperDefault.cs b/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/Mappers/MapperDefault.cs new file mode 100644 index 0000000000..a92a98d8d3 --- /dev/null +++ b/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/Mappers/MapperDefault.cs @@ -0,0 +1,100 @@ +using BizHawk.Common; +using BizHawk.Common.NumberExtensions; +using System; + +namespace BizHawk.Emulation.Cores.Atari.A7800Hawk +{ + // Default mapper with no bank switching + // Just need to keep track of high score bios stuff + public class MapperDefault : MapperBase + { + public override byte ReadMemory(ushort addr) + { + if (addr < 0x480) + { + // Nothing here + return 0xFF; + } + else if (addr < 0x1800) + { + //could be hsbios RAM here + if (addr >= 0x1000 && Core._hsbios != null) + { + return Core._hsram[addr - 0x1000]; + } + return 0xFF; + } + else if (addr < 0x4000) + { + // could be either RAM mirror or ROM + if (addr >= 0x3000 && Core._hsbios != null) + { + return Core._hsbios[addr - 0x3000]; + } + else + { + return Core.RAM[0x800 + addr & 0x7FF]; + } + } + else + { + // cartridge and other OPSYS + if ((Core._rom.Length >= 0x10000 - addr) && Core.A7800_control_register.Bit(2)) + { + return Core._rom[Core._rom.Length - (0x10000 - addr)]; + } + else if (addr >= 0xF000 && !Core.A7800_control_register.Bit(2)) + { + return Core._bios[addr - 0xF000]; + } + else + { + return 0xFF; + } + } + } + + public override byte PeekMemory(ushort addr) + { + return ReadMemory(addr); + } + + public override void WriteMemory(ushort addr, byte value) + { + if (addr < 0x480) + { + // Nothing here + } + else if (addr < 0x1800) + { + //could be hsbios RAM here + if (addr >= 0x1000 && Core._hsbios != null) + { + Core._hsram[addr - 0x1000] = value; + } + } + else if (addr < 0x4000) + { + // could be either RAM mirror or ROM + if (addr >= 0x3000 && Core._hsbios != null) + { + } + else + { + Core.RAM[0x800 + addr & 0x7FF] = value; + } + } + else + { + // cartridge and other OPSYS + } + } + + public override void PokeMemory(ushort addr, byte value) + { + WriteMemory(addr, value); + } + + + } +} From 1e29c7d95506886e22f548be4fa52d05e5d4256c Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Sun, 11 Jun 2017 18:06:04 -0400 Subject: [PATCH 50/80] Add files via upload --- .../Consoles/Atari/A7800Hawk/TIA_Sound/TIA.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/TIA_Sound/TIA.cs b/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/TIA_Sound/TIA.cs index 4c6ef5f20d..2fea119618 100644 --- a/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/TIA_Sound/TIA.cs +++ b/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/TIA_Sound/TIA.cs @@ -12,7 +12,7 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk private bool _doTicks; - private byte _hsyncCnt; + public int _hsyncCnt; private int _capChargeStart; private bool _capCharging; public int AudioClocks; // not savestated @@ -37,7 +37,7 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk public void Execute(int cycles) { // do the audio sampling - if (_hsyncCnt == 36 || _hsyncCnt == 148) + if (_hsyncCnt == 113 || _hsyncCnt == 340) { LocalAudioCycles[AudioClocks] += (short)(AUD[0].Cycle() / 2); LocalAudioCycles[AudioClocks] += (short)(AUD[1].Cycle() / 2); From 38bae4b4198d6e8cb26cfac01fc67a9ae6b9c7be Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Sun, 11 Jun 2017 18:06:50 -0400 Subject: [PATCH 51/80] Add files via upload --- .../Atari/A7800Hawk/A7800Hawk.IDebuggable.cs | 6 +- .../Atari/A7800Hawk/A7800Hawk.IEmulator.cs | 63 ++++++++++- .../Atari/A7800Hawk/A7800Hawk.ISettable.cs | 91 +++++++++++++++ .../Atari/A7800Hawk/A7800Hawk.IStatable.cs | 2 + .../Consoles/Atari/A7800Hawk/A7800Hawk.cs | 73 +++++++++--- .../A7800Hawk/A7800HawkControllerDeck.cs | 100 +++++++++++++++++ .../Atari/A7800Hawk/A7800HawkControllers.cs | 104 ++++++++++++++++++ .../Consoles/Atari/A7800Hawk/Maria.cs | 19 ++-- .../Consoles/Atari/A7800Hawk/MemoryMap.cs | 18 ++- 9 files changed, 439 insertions(+), 37 deletions(-) create mode 100644 BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800Hawk.ISettable.cs create mode 100644 BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800HawkControllerDeck.cs create mode 100644 BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800HawkControllers.cs diff --git a/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800Hawk.IDebuggable.cs b/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800Hawk.IDebuggable.cs index 45809e725e..056eb62a0a 100644 --- a/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800Hawk.IDebuggable.cs +++ b/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800Hawk.IDebuggable.cs @@ -54,11 +54,7 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk } } - public IMemoryCallbackSystem MemoryCallbacks - { - [FeatureNotImplemented] - get { throw new NotImplementedException(); } - } + public IMemoryCallbackSystem MemoryCallbacks { get; private set; } public bool CanStep(StepType type) { diff --git a/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800Hawk.IEmulator.cs b/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800Hawk.IEmulator.cs index c739349520..09ad452125 100644 --- a/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800Hawk.IEmulator.cs +++ b/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800Hawk.IEmulator.cs @@ -1,4 +1,5 @@ using BizHawk.Emulation.Common; +using System; namespace BizHawk.Emulation.Cores.Atari.A7800Hawk { @@ -6,15 +7,29 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk { public IEmulatorServiceProvider ServiceProvider { get; } - public ControllerDefinition ControllerDefinition { get; private set; } + public ControllerDefinition ControllerDefinition => _controllerDeck.Definition; //Maria related variables public int cycle; public int cpu_cycle; public int scanline; + // there are 4 maria cycles in a CPU cycle (fast access, both NTSC and PAL) + // if the 6532 or TIA are accessed (PC goes to one of those addresses) the next access will be slower by 1/2 a CPU cycle + // i.e. it will take 6 Maria cycles instead of 4 + public bool slow_access = false; + public void FrameAdvance(IController controller, bool render, bool rendersound) { + if (_tracer.Enabled) + { + cpu.TraceCallback = s => _tracer.Put(s); + } + else + { + cpu.TraceCallback = null; + } + _frame++; if (controller.IsPressed("Power")) @@ -29,6 +44,9 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk _lagcount++; } + // read the controller state here for now + GetControllerState(controller); + scanline = 0; // actually execute the frame @@ -37,18 +55,61 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk maria.Execute(cycle, scanline); cycle++; cpu_cycle++; + tia._hsyncCnt++; + + // the time a cpu cycle takes depends on the status of the address bus + // any address in range of the TIA or m6532 takes an extra cycle to complete + if (cpu_cycle==(4 + (slow_access ? 2 : 0))) + { + cpu.ExecuteOne(); + cpu_cycle = 0; + } + + // determine if the next access will be fast or slow + if (cpu.PC < 0x0400) + { + if ((cpu.PC & 0xFF) < 0x20) + { + if ((A7800_control_register & 0x1) == 0 && (cpu.PC < 0x20)) + { + slow_access = false; + } + else + { + slow_access = true; + } + } + else if (cpu.PC < 0x300) + { + slow_access = true; + } + else + { + slow_access = false; + } + } if (cycle == 454) { scanline++; cycle = 0; + tia._hsyncCnt = 0; } } } + private void GetControllerState(IController controller) + { + InputCallbacks.Call(); + + ushort port1 = _controllerDeck.ReadPort1(controller); + + ushort port2 = _controllerDeck.ReadPort2(controller); + } + public int Frame => _frame; public string SystemId => "A7800"; diff --git a/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800Hawk.ISettable.cs b/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800Hawk.ISettable.cs new file mode 100644 index 0000000000..7f646316af --- /dev/null +++ b/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800Hawk.ISettable.cs @@ -0,0 +1,91 @@ +using System; +using Newtonsoft.Json; + +using BizHawk.Common; +using BizHawk.Emulation.Common; + +namespace BizHawk.Emulation.Cores.Atari.A7800Hawk +{ + public partial class A7800Hawk : IEmulator, IStatable, ISettable + { + public A7800Settings GetSettings() + { + return _settings.Clone(); + } + + public A7800SyncSettings GetSyncSettings() + { + return _syncSettings.Clone(); + } + + public bool PutSettings(A7800Settings o) + { + _settings = o; + return false; + } + + public bool PutSyncSettings(A7800SyncSettings o) + { + bool ret = A7800SyncSettings.NeedsReboot(_syncSettings, o); + _syncSettings = o; + return ret; + } + + private A7800Settings _settings = new A7800Settings(); + private A7800SyncSettings _syncSettings = new A7800SyncSettings(); + + public class A7800Settings + { + public A7800Settings Clone() + { + return (A7800Settings)MemberwiseClone(); + } + } + + public class A7800SyncSettings + { + private string _port1 = A7800HawkControllerDeck.DefaultControllerName; + private string _port2 = A7800HawkControllerDeck.DefaultControllerName; + + [JsonIgnore] + public string Port1 + { + get { return _port1; } + set + { + if (!A7800HawkControllerDeck.ValidControllerTypes.ContainsKey(value)) + { + throw new InvalidOperationException("Invalid controller type: " + value); + } + + _port1 = value; + } + } + + [JsonIgnore] + public string Port2 + { + get { return _port2; } + set + { + if (!A7800HawkControllerDeck.ValidControllerTypes.ContainsKey(value)) + { + throw new InvalidOperationException("Invalid controller type: " + value); + } + + _port2 = value; + } + } + + public A7800SyncSettings Clone() + { + return (A7800SyncSettings)MemberwiseClone(); + } + + public static bool NeedsReboot(A7800SyncSettings x, A7800SyncSettings y) + { + return !DeepEquality.DeepEquals(x, y); + } + } + } +} diff --git a/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800Hawk.IStatable.cs b/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800Hawk.IStatable.cs index 96356abb5b..872bc6b442 100644 --- a/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800Hawk.IStatable.cs +++ b/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800Hawk.IStatable.cs @@ -53,6 +53,8 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk ser.Sync("Lag", ref _lagcount); ser.Sync("Frame", ref _frame); ser.Sync("IsLag", ref _islag); + _controllerDeck.SyncState(ser); + ser.EndSection(); } } diff --git a/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800Hawk.cs b/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800Hawk.cs index 1ea8b6aea8..32c4872461 100644 --- a/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800Hawk.cs +++ b/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800Hawk.cs @@ -12,7 +12,8 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk isPorted: false, isReleased: true)] [ServiceNotApplicable(typeof(ISettable<,>), typeof(IDriveLight))] - public partial class A7800Hawk : IEmulator, ISaveRam, IDebuggable, IStatable, IInputPollable, IRegionable + public partial class A7800Hawk : IEmulator, ISaveRam, IDebuggable, IStatable, IInputPollable, IRegionable, + ISettable { // this register selects between 2600 and 7800 mode in the A7800 // however, we already have a 2600 emulator so this core will only be loading A7800 games @@ -25,14 +26,20 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk public byte[] Maria_regs = new byte[0x20]; public byte[] RAM = new byte[0x1000]; public byte[] regs_6532 = new byte[0x80]; + public byte[] hs_bios_mem = new byte[0x800]; - private readonly byte[] _rom; - private readonly byte[] _hsbios; - private readonly byte[] _bios; - private readonly byte[] _hsram = new byte[2048]; + public readonly byte[] _rom; + public readonly byte[] _hsbios; + public readonly byte[] _bios; + public readonly byte[] _hsram = new byte[2048]; private int _frame = 0; + public string s_mapper; + public MapperBase mapper; + + private readonly ITraceable _tracer; + public MOS6502X cpu; public Maria maria; private bool _isPAL; @@ -45,10 +52,14 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk maria = new Maria(); tia = new TIA(); - - ser.Register(maria); - ser.Register(tia); - ServiceProvider = ser; + cpu = new MOS6502X + { + ReadMemory = ReadMemory, + WriteMemory = WriteMemory, + PeekMemory = ReadMemory, + DummyReadMemory = ReadMemory, + OnExecFetch = ExecFetch + }; maria = new Maria { @@ -56,6 +67,9 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk }; CoreComm = comm; + + _controllerDeck = new A7800HawkControllerDeck(_syncSettings.Port1, _syncSettings.Port2); + byte[] highscoreBios = comm.CoreFileProvider.GetFirmware("A78", "Bios_HSC", false, "Some functions may not work without the high score BIOS."); byte[] palBios = comm.CoreFileProvider.GetFirmware("A78", "Bios_PAL", false, "The game will not run if the correct region BIOS is not available."); byte[] ntscBios = comm.CoreFileProvider.GetFirmware("A78", "Bios_NTSC", false, "The game will not run if the correct region BIOS is not available."); @@ -74,7 +88,7 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk // if none found default is zero // also check for PAL region string hash_md5 = null; - string s_mapper = null; + s_mapper = null; hash_md5 = "md5:" + rom.HashMD5(0, rom.Length); var gi = Database.CheckDatabase(hash_md5); @@ -82,22 +96,24 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk if (gi != null) { var dict = gi.GetOptionsDict(); - if (!dict.ContainsKey("PAL")) + if (dict.ContainsKey("PAL")) { _isPAL = true; } - if (!dict.ContainsKey("board")) + if (dict.ContainsKey("board")) { s_mapper = dict["board"]; } else - throw new Exception("No Board selected for this mapper"); + throw new Exception("No Board selected for this game"); } else { throw new Exception("ROM not in gamedb"); } + Reset_Mapper(s_mapper); + _rom = rom; _hsbios = highscoreBios; _bios = _isPAL ? palBios : ntscBios; @@ -111,21 +127,31 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk if (_isPAL) { maria._frameHz = 50; + maria._screen_width = 454; + maria._screen_height = 313; maria._palette = PALPalette; } else { maria._frameHz = 60; + maria._screen_width = 454; + maria._screen_height = 263; maria._palette = NTSCPalette; } + ser.Register(maria); + ser.Register(tia); + ServiceProvider = ser; + + _tracer = new TraceBuffer { Header = cpu.TraceHeader }; + ser.Register(_tracer); HardReset(); } public DisplayType Region => _isPAL ? DisplayType.PAL : DisplayType.NTSC; - public A7800HawkControl ControlAdapter { get; private set; } + private readonly A7800HawkControllerDeck _controllerDeck; private void HardReset() { @@ -142,7 +168,24 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk Maria_regs = new byte[0x20]; RAM = new byte[0x1000]; regs_6532 = new byte[0x80]; - } + + cpu_cycle = 0; + } + + private void ExecFetch(ushort addr) + { + //MemoryCallbacks.CallExecutes(addr); + } + + private void Reset_Mapper(string m) + { + if (m=="0") + { + mapper = new MapperDefault(); + } + + mapper.Core = this; + } /* * MariaTables.cs diff --git a/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800HawkControllerDeck.cs b/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800HawkControllerDeck.cs new file mode 100644 index 0000000000..131ab32082 --- /dev/null +++ b/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800HawkControllerDeck.cs @@ -0,0 +1,100 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +using BizHawk.Common; +using BizHawk.Common.ReflectionExtensions; +using BizHawk.Emulation.Common; + +namespace BizHawk.Emulation.Cores.Atari.A7800Hawk +{ + public class A7800HawkControllerDeck + { + public A7800HawkControllerDeck(string controller1Name, string controller2Name) + { + if (!ValidControllerTypes.ContainsKey(controller1Name)) + { + throw new InvalidOperationException("Invalid controller type: " + controller1Name); + } + + if (!ValidControllerTypes.ContainsKey(controller2Name)) + { + throw new InvalidOperationException("Invalid controller type: " + controller2Name); + } + + Port1 = (IPort)Activator.CreateInstance(ValidControllerTypes[controller1Name], 1); + Port2 = (IPort)Activator.CreateInstance(ValidControllerTypes[controller2Name], 2); + + Definition = new ControllerDefinition + { + Name = "A7800 Controller", + BoolButtons = Port1.Definition.BoolButtons + .Concat(Port2.Definition.BoolButtons) + .Concat(new[] + { + "Power", + "Reset", + "Select", + "BW", // should be "Color"?? + "Left Difficulty", // better not put P# on these as they might not correspond to player numbers + "Right Difficulty" + }) + .ToList() + }; + + Definition.FloatControls.AddRange(Port1.Definition.FloatControls); + Definition.FloatControls.AddRange(Port2.Definition.FloatControls); + + Definition.FloatRanges.AddRange(Port1.Definition.FloatRanges); + Definition.FloatRanges.AddRange(Port2.Definition.FloatRanges); + } + + public byte ReadPort1(IController c) + { + return Port1.Read(c); + } + + public byte ReadPort2(IController c) + { + return Port2.Read(c); + } + + public ControllerDefinition Definition { get; } + + public void SyncState(Serializer ser) + { + ser.BeginSection("Port1"); + Port1.SyncState(ser); + ser.EndSection(); + + ser.BeginSection("Port2"); + Port2.SyncState(ser); + ser.EndSection(); + } + + private readonly IPort Port1; + private readonly IPort Port2; + + private static Dictionary _controllerTypes; + + public static Dictionary ValidControllerTypes + { + get + { + if (_controllerTypes == null) + { + _controllerTypes = typeof(A7800HawkControllerDeck).Assembly + .GetTypes() + .Where(t => typeof(IPort).IsAssignableFrom(t)) + .Where(t => !t.IsAbstract && !t.IsInterface) + .ToDictionary(tkey => tkey.DisplayName()); + } + + return _controllerTypes; + } + } + + public static string DefaultControllerName => typeof(StandardController).DisplayName(); + } + +} diff --git a/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800HawkControllers.cs b/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800HawkControllers.cs new file mode 100644 index 0000000000..72ca92171d --- /dev/null +++ b/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800HawkControllers.cs @@ -0,0 +1,104 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; + +using BizHawk.Common; +using BizHawk.Emulation.Common; + +namespace BizHawk.Emulation.Cores.Atari.A7800Hawk +{ + ///

+ /// Represents a controller plugged into a controller port on the intellivision + /// + public interface IPort + { + byte Read(IController c); + + ControllerDefinition Definition { get; } + + void SyncState(Serializer ser); + + int PortNum { get; } + } + + [DisplayName("Unplugged Controller")] + public class UnpluggedController : IPort + { + public UnpluggedController(int portNum) + { + PortNum = portNum; + Definition = new ControllerDefinition + { + BoolButtons = new List() + }; + } + + public byte Read(IController c) + { + return 0; + } + + public ControllerDefinition Definition { get; } + + public void SyncState(Serializer ser) + { + // Do nothing + } + + public int PortNum { get; } + } + + [DisplayName("Joystick Controller")] + public class StandardController : IPort + { + public StandardController(int portNum) + { + PortNum = portNum; + Definition = new ControllerDefinition + { + BoolButtons = BaseDefinition + .Select(b => "P" + PortNum + " " + b) + .ToList() + }; + } + + public int PortNum { get; } + + public byte Read(IController c) + { + byte result = 0; + for (int i = 0; i < 5; i++) + { + if (c.IsPressed(Definition.BoolButtons[i])) + { + result |= HandControllerButtons[i]; + } + } + + return result; + } + + public ControllerDefinition Definition { get; } + + + public void SyncState(Serializer ser) + { + // Nothing todo, I think + } + + private static readonly string[] BaseDefinition = + { + "U", "D", "L", "R", "Fire" + }; + + private static byte[] HandControllerButtons = + { + 0x60, // UP + 0xC0, // Down + 0xA0, // Left + 0x48, // Right + 0x81 // Fire + }; + } +} diff --git a/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/Maria.cs b/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/Maria.cs index a142a32bb7..95f136866b 100644 --- a/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/Maria.cs +++ b/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/Maria.cs @@ -7,7 +7,9 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk // Emulates the Atari 7800 Maria graphics chip public class Maria : IVideoProvider { - public int _frameHz; + public int _frameHz = 60; + public int _screen_width = 454; + public int _screen_height = 263; public int[] _vidbuffer; public int[] _palette; @@ -17,10 +19,10 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk return _vidbuffer; } - public int VirtualWidth => 275; - public int VirtualHeight => BufferHeight; - public int BufferWidth { get; private set; } - public int BufferHeight { get; private set; } + public int VirtualWidth => 454; + public int VirtualHeight => _screen_height; + public int BufferWidth => 454; + public int BufferHeight => _screen_height; public int BackgroundColor => unchecked((int)0xff000000); public int VsyncNumerator => _frameHz; public int VsyncDenominator => 1; @@ -28,11 +30,6 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk // the Maria chip can directly access memory public Func ReadMemory; - // there are 4 maria cycles in a CPU cycle (fast access, both NTSC and PAL) - // if the 6532 or TIA are accessed (PC goes to one of those addresses) the next access will be slower by 1/2 a CPU cycle - // i.e. it will take 6 Maria cycles instead of 4 - public bool slow_access = false; - // each frame contains 263 scanlines // each scanline consists of 113.5 CPU cycles (fast access) which equates to 454 Maria cycles // In total there are 29850.5 CPU cycles (fast access) in a frame @@ -43,7 +40,7 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk public void Reset() { - + _vidbuffer = new int[VirtualWidth * VirtualHeight]; } } diff --git a/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/MemoryMap.cs b/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/MemoryMap.cs index 64f6211966..a7541855c6 100644 --- a/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/MemoryMap.cs +++ b/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/MemoryMap.cs @@ -55,7 +55,8 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk } else if (addr < 0x480) { - return 0xFF; // cartridge space available + // cartridge space available + return mapper.ReadMemory(addr); } else if (addr < 0x500) { @@ -64,7 +65,8 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk } else if (addr < 0x1800) { - return 0xFF; // cartridge space available + // cartridge space available + return mapper.ReadMemory(addr); } else if (addr < 0x2800) { @@ -72,11 +74,12 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk } else if (addr < 0x4000) { - return RAM[addr - 0x2800 + 0x800]; + // could be either RAM mirror or ROM + return mapper.ReadMemory(addr); } else { - return 0xFF; // cartridge and other OPSYS + return mapper.ReadMemory(addr); } } @@ -125,6 +128,7 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk else if (addr < 0x480) { // cartridge space available + mapper.WriteMemory(addr, value); } else if (addr < 0x500) { @@ -134,6 +138,7 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk else if (addr < 0x1800) { // cartridge space available + mapper.WriteMemory(addr, value); } else if (addr < 0x2800) { @@ -141,13 +146,16 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk } else if (addr < 0x4000) { - RAM[addr - 0x2800 + 0x800] = value; + // could be either RAM mirror or ROM + mapper.WriteMemory(addr, value); } else { // cartridge and other OPSYS + mapper.WriteMemory(addr, value); } } + } } From 0b729464a7d462938a84e918b09ae684f1e345ca Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Sun, 11 Jun 2017 18:07:16 -0400 Subject: [PATCH 52/80] Delete temp.txt --- .../Consoles/Atari/A7800Hawk/Mappers/temp.txt | 1 - 1 file changed, 1 deletion(-) delete mode 100644 BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/Mappers/temp.txt diff --git a/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/Mappers/temp.txt b/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/Mappers/temp.txt deleted file mode 100644 index 8b13789179..0000000000 --- a/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/Mappers/temp.txt +++ /dev/null @@ -1 +0,0 @@ - From d665aff00f42313b8a5b45fad5a38a902ca6ff23 Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Sun, 11 Jun 2017 18:07:42 -0400 Subject: [PATCH 53/80] Delete A7800HawkControl.cs --- .../Atari/A7800Hawk/A7800HawkControl.cs | 409 ------------------ 1 file changed, 409 deletions(-) delete mode 100644 BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800HawkControl.cs diff --git a/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800HawkControl.cs b/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800HawkControl.cs deleted file mode 100644 index ddb0815b14..0000000000 --- a/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800HawkControl.cs +++ /dev/null @@ -1,409 +0,0 @@ -using System; - -using EMU7800.Core; -using BizHawk.Emulation.Common; - -namespace BizHawk.Emulation.Cores.Atari.A7800Hawk -{ - public class A7800HawkControl - { - private static readonly ControllerDefinition Joystick = new ControllerDefinition - { - Name = "Atari 7800 Joystick Controller", - BoolButtons = - { - // hard reset, not passed to EMU7800 - "Power", - - // on the console - "Reset", - "Select", - "BW", // should be "Color"?? - "Left Difficulty", // better not put P# on these as they might not correspond to player numbers - "Right Difficulty", - - // ports - "P1 Up", "P1 Down", "P1 Left", "P1 Right", "P1 Trigger", - "P2 Up", "P2 Down", "P2 Left", "P2 Right", "P2 Trigger" - } - }; - - private static readonly ControllerDefinition Paddles = new ControllerDefinition - { - Name = "Atari 7800 Paddle Controller", - BoolButtons = - { - // hard reset, not passed to EMU7800 - "Power", - - // on the console - "Reset", - "Select", - "BW", // should be "Color"?? - "Left Difficulty", // better not put P# on these as they might not correspond to player numbers - "Right Difficulty", - - // ports - "P1 Trigger", - "P2 Trigger", - "P3 Trigger", - "P4 Trigger" - }, - FloatControls = // should be in [0..700000] - { - "P1 Paddle", - "P2 Paddle", - "P3 Paddle", - "P4 Paddle" - }, - FloatRanges = - { - // what is the center point supposed to be here? - new[] { 0.0f, 0.0f, 700000.0f }, - new[] { 0.0f, 0.0f, 700000.0f }, - new[] { 0.0f, 0.0f, 700000.0f }, - new[] { 0.0f, 0.0f, 700000.0f } - } - }; - - private static readonly ControllerDefinition Keypad = new ControllerDefinition - { - Name = "Atari 7800 Keypad Controller", - BoolButtons = - { - // hard reset, not passed to EMU7800 - "Power", - - // on the console - "Reset", - "Select", - "BW", // should be "Color"?? - "Toggle Left Difficulty", // better not put P# on these as they might not correspond to player numbers - "Toggle Right Difficulty", - - // ports - "P1 Keypad1", "P1 Keypad2", "P1 Keypad3", - "P1 Keypad4", "P1 Keypad5", "P1 Keypad6", - "P1 Keypad7", "P1 Keypad8", "P1 Keypad9", - "P1 KeypadA", "P1 Keypad0", "P1 KeypadP", - "P2 Keypad1", "P2 Keypad2", "P2 Keypad3", - "P2 Keypad4", "P2 Keypad5", "P2 Keypad6", - "P2 Keypad7", "P2 Keypad8", "P2 Keypad9", - "P2 KeypadA", "P2 Keypad0", "P2 KeypadP", - "P3 Keypad1", "P3 Keypad2", "P3 Keypad3", - "P3 Keypad4", "P3 Keypad5", "P3 Keypad6", - "P3 Keypad7", "P3 Keypad8", "P3 Keypad9", - "P3 KeypadA", "P3 Keypad0", "P3 KeypadP", - "P4 Keypad1", "P4 Keypad2", "P4 Keypad3", - "P4 Keypad4", "P4 Keypad5", "P4 Keypad6", - "P4 Keypad7", "P4 Keypad8", "P4 Keypad9", - "P4 KeypadA", "P4 Keypad0", "P4 KeypadP" - } - }; - - private static readonly ControllerDefinition Driving = new ControllerDefinition - { - Name = "Atari 7800 Driving Controller", - BoolButtons = - { - // hard reset, not passed to EMU7800 - "Power", - - // on the console - "Reset", - "Select", - "BW", // should be "Color"?? - "Toggle Left Difficulty", // better not put P# on these as they might not correspond to player numbers - "Toggle Right Difficulty", - - // ports - "P1 Trigger", - "P2 Trigger" - }, - FloatControls = // should be in [0..3] - { - "P1 Driving", - "P2 Driving" - }, - FloatRanges = - { - new[] { 0.0f, 0.0f, 3.0f }, - new[] { 0.0f, 0.0f, 3.0f }, - new[] { 0.0f, 0.0f, 3.0f } - } - }; - - private static readonly ControllerDefinition BoosterGrip = new ControllerDefinition - { - Name = "Atari 7800 Booster Grip Controller", - BoolButtons = - { - // hard reset, not passed to EMU7800 - "Power", - - // on the console - "Reset", - "Select", - "BW", // should be "Color"?? - "Toggle Left Difficulty", // better not put P# on these as they might not correspond to player numbers - "Toggle Right Difficulty", - - // ports - // NB: as referenced by the emu, p1t2 = p1t2, p1t3 = p2t2, p2t2 = p3t2, p2t3 = p4t2 - "P1 Up", "P1 Down", "P1 Left", "P1 Right", "P1 Trigger", "P1 Trigger 2", "P1 Trigger 3", - "P2 Up", "P2 Down", "P2 Left", "P2 Right", "P2 Trigger", "P2 Trigger 2", "P2 Trigger 3" - } - }; - - private static readonly ControllerDefinition ProLineJoystick = new ControllerDefinition - { - Name = "Atari 7800 ProLine Joystick Controller", - BoolButtons = - { - // hard reset, not passed to EMU7800 - "Power", - - // on the console - "Reset", - "Select", - "Pause", - "Toggle Left Difficulty", // better not put P# on these as they might not correspond to player numbers - "Toggle Right Difficulty", - - // ports - "P1 Up", "P1 Down", "P1 Left", "P1 Right", "P1 Trigger", "P1 Trigger 2", - "P2 Up", "P2 Down", "P2 Left", "P2 Right", "P2 Trigger", "P2 Trigger 2" - } - }; - - private static readonly ControllerDefinition Lightgun = new ControllerDefinition - { - Name = "Atari 7800 Light Gun Controller", - BoolButtons = - { - // hard reset, not passed to EMU7800 - "Power", - - // on the console - "Reset", - "Select", - "Pause", - "Left Difficulty", // better not put P# on these as they might not correspond to player numbers - "Right Difficulty", - - // ports - "P1 Trigger", - "P2 Trigger" - }, - FloatControls = // vpos should be actual scanline number. hpos should be in [0..319]?? - { - "P1 VPos", "P1 HPos", - "P2 VPos", "P2 HPos" - }, - FloatRanges = - { - // how many scanlines are there again?? - new[] { 0.0f, 0.0f, 240.0f }, - new[] { 0.0f, 0.0f, 319.0f }, - new[] { 0.0f, 0.0f, 240.0f }, - new[] { 0.0f, 0.0f, 319.0f } - } - }; - - private struct ControlAdapter - { - public readonly ControllerDefinition Type; - public readonly Controller Left; - public readonly Controller Right; - public readonly Action Convert; - - public ControlAdapter(ControllerDefinition type, Controller left, Controller right, Action convert) - { - Type = type; - Left = left; - Right = right; - Convert = convert; - } - } - - private static readonly ControlAdapter[] Adapters = - { - new ControlAdapter(Joystick, Controller.Joystick, Controller.Joystick, ConvertJoystick), - new ControlAdapter(Paddles, Controller.Paddles, Controller.Paddles, ConvertPaddles), - new ControlAdapter(Keypad, Controller.Keypad, Controller.Keypad, ConvertKeypad), - new ControlAdapter(Driving, Controller.Driving, Controller.Driving, ConvertDriving), - new ControlAdapter(BoosterGrip, Controller.BoosterGrip, Controller.BoosterGrip, ConvertBoosterGrip), - new ControlAdapter(ProLineJoystick, Controller.ProLineJoystick, Controller.ProLineJoystick, ConvertProLineJoystick), - new ControlAdapter(Lightgun, Controller.Lightgun, Controller.Lightgun, ConvertLightgun), - }; - - private static void ConvertConsoleButtons(IController c, InputState s) - { - s.RaiseInput(0, MachineInput.Reset, c.IsPressed("Reset")); - s.RaiseInput(0, MachineInput.Select, c.IsPressed("Select")); - s.RaiseInput(0, MachineInput.Color, c.IsPressed("BW")); - if (c.IsPressed("Toggle Left Difficulty")) - { - s.RaiseInput(0, MachineInput.LeftDifficulty, c.IsPressed("Toggle Left Difficulty")); - } - - if (c.IsPressed("Toggle Right Difficulty")) - { - s.RaiseInput(0, MachineInput.RightDifficulty, c.IsPressed("Toggle Right Difficulty")); - } - } - - private static void ConvertConsoleButtons7800(IController c, InputState s) - { - s.RaiseInput(0, MachineInput.Reset, c.IsPressed("Reset")); - s.RaiseInput(0, MachineInput.Select, c.IsPressed("Select")); - s.RaiseInput(0, MachineInput.Color, c.IsPressed("Pause")); - if (c.IsPressed("Toggle Left Difficulty")) - { - s.RaiseInput(0, MachineInput.LeftDifficulty, c.IsPressed("Toggle Left Difficulty")); - } - - if (c.IsPressed("Toggle Right Difficulty")) - { - s.RaiseInput(0, MachineInput.RightDifficulty, c.IsPressed("Toggle Right Difficulty")); - } - } - - private static void ConvertDirections(IController c, InputState s, int p) - { - string ps = $"P{p + 1} "; - s.RaiseInput(p, MachineInput.Up, c.IsPressed(ps + "Up")); - s.RaiseInput(p, MachineInput.Down, c.IsPressed(ps + "Down")); - s.RaiseInput(p, MachineInput.Left, c.IsPressed(ps + "Left")); - s.RaiseInput(p, MachineInput.Right, c.IsPressed(ps + "Right")); - } - - private static void ConvertTrigger(IController c, InputState s, int p) - { - string ps = $"P{p + 1} "; - s.RaiseInput(p, MachineInput.Fire, c.IsPressed(ps + "Trigger")); - } - - private static void ConvertJoystick(IController c, InputState s) - { - s.ClearControllerInput(); - ConvertConsoleButtons(c, s); - ConvertDirections(c, s, 0); - ConvertDirections(c, s, 1); - ConvertTrigger(c, s, 0); - ConvertTrigger(c, s, 1); - } - - private static void ConvertPaddles(IController c, InputState s) - { - s.ClearControllerInput(); - ConvertConsoleButtons(c, s); - for (int i = 0; i < 4; i++) - { - string ps = $"P{i + 1} "; - ConvertTrigger(c, s, i); - s.RaisePaddleInput(i, 700000, (int)c.GetFloat(ps + "Trigger")); - } - } - - private static void ConvertKeypad(IController c, InputState s) - { - s.ClearControllerInput(); - ConvertConsoleButtons(c, s); - for (int i = 0; i < 4; i++) - { - string ps = $"P{i + 1} "; - s.RaiseInput(i, MachineInput.NumPad1, c.IsPressed(ps + "Keypad1")); - s.RaiseInput(i, MachineInput.NumPad2, c.IsPressed(ps + "Keypad2")); - s.RaiseInput(i, MachineInput.NumPad3, c.IsPressed(ps + "Keypad3")); - s.RaiseInput(i, MachineInput.NumPad4, c.IsPressed(ps + "Keypad4")); - s.RaiseInput(i, MachineInput.NumPad5, c.IsPressed(ps + "Keypad5")); - s.RaiseInput(i, MachineInput.NumPad6, c.IsPressed(ps + "Keypad6")); - s.RaiseInput(i, MachineInput.NumPad7, c.IsPressed(ps + "Keypad7")); - s.RaiseInput(i, MachineInput.NumPad8, c.IsPressed(ps + "Keypad8")); - s.RaiseInput(i, MachineInput.NumPad9, c.IsPressed(ps + "Keypad9")); - s.RaiseInput(i, MachineInput.NumPadMult, c.IsPressed(ps + "KeypadA")); - s.RaiseInput(i, MachineInput.NumPad0, c.IsPressed(ps + "Keypad0")); - s.RaiseInput(i, MachineInput.NumPadHash, c.IsPressed(ps + "KeypadP")); - } - } - - private static readonly MachineInput[] Drvlut = - { - MachineInput.Driving0, - MachineInput.Driving1, - MachineInput.Driving2, - MachineInput.Driving3 - }; - - private static void ConvertDriving(IController c, InputState s) - { - s.ClearControllerInput(); - ConvertConsoleButtons(c, s); - ConvertTrigger(c, s, 0); - ConvertTrigger(c, s, 1); - s.RaiseInput(0, Drvlut[(int)c.GetFloat("P1 Driving")], true); - s.RaiseInput(1, Drvlut[(int)c.GetFloat("P2 Driving")], true); - } - - private static void ConvertBoosterGrip(IController c, InputState s) - { - s.ClearControllerInput(); - ConvertConsoleButtons(c, s); - ConvertDirections(c, s, 0); - ConvertDirections(c, s, 1); - - // weird mapping is intentional - s.RaiseInput(0, MachineInput.Fire, c.IsPressed("P1 Trigger")); - s.RaiseInput(0, MachineInput.Fire2, c.IsPressed("P1 Trigger 2")); - s.RaiseInput(1, MachineInput.Fire2, c.IsPressed("P1 Trigger 3")); - s.RaiseInput(1, MachineInput.Fire, c.IsPressed("P2 Trigger")); - s.RaiseInput(2, MachineInput.Fire2, c.IsPressed("P2 Trigger 2")); - s.RaiseInput(3, MachineInput.Fire2, c.IsPressed("P2 Trigger 3")); - } - - private static void ConvertProLineJoystick(IController c, InputState s) - { - s.ClearControllerInput(); - ConvertConsoleButtons7800(c, s); - ConvertDirections(c, s, 0); - ConvertDirections(c, s, 1); - s.RaiseInput(0, MachineInput.Fire, c.IsPressed("P1 Trigger")); - s.RaiseInput(0, MachineInput.Fire2, c.IsPressed("P1 Trigger 2")); - s.RaiseInput(1, MachineInput.Fire, c.IsPressed("P2 Trigger")); - s.RaiseInput(1, MachineInput.Fire2, c.IsPressed("P2 Trigger 2")); - } - - private static void ConvertLightgun(IController c, InputState s) - { - s.ClearControllerInput(); - ConvertConsoleButtons7800(c, s); - ConvertTrigger(c, s, 0); - ConvertTrigger(c, s, 1); - s.RaiseLightgunPos(0, (int)c.GetFloat("P1 VPos"), (int)c.GetFloat("P1 HPos")); - s.RaiseLightgunPos(1, (int)c.GetFloat("P2 VPos"), (int)c.GetFloat("P2 HPos")); - } - - public Action Convert { get; private set; } - - public ControllerDefinition ControlType { get; private set; } - - public A7800HawkControl(MachineBase mac) - { - var l = mac.InputState.LeftControllerJack; - var r = mac.InputState.RightControllerJack; - - foreach (var a in Adapters) - { - if (a.Left == l && a.Right == r) - { - Convert = a.Convert; - ControlType = a.Type; - return; - } - } - - throw new Exception($"Couldn't connect Atari 7800 controls \"{l}\" and \"{r}\""); - } - } -} From 03321c67a774c505f2f19aef9951a4d8d476cd07 Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Sun, 11 Jun 2017 18:08:03 -0400 Subject: [PATCH 54/80] Add files via upload --- .../BizHawk.Emulation.Cores.csproj | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/BizHawk.Emulation.Cores/BizHawk.Emulation.Cores.csproj b/BizHawk.Emulation.Cores/BizHawk.Emulation.Cores.csproj index ed3b3663c5..a48dd0cc63 100644 --- a/BizHawk.Emulation.Cores/BizHawk.Emulation.Cores.csproj +++ b/BizHawk.Emulation.Cores/BizHawk.Emulation.Cores.csproj @@ -208,12 +208,12 @@ C64.cs - C64.cs + C64.cs C64.cs - + @@ -221,7 +221,7 @@ - + @@ -382,10 +382,16 @@ A7800Hawk.cs + + A7800Hawk.cs + + + + + A7800Hawk.cs - @@ -1377,4 +1383,4 @@ --> - + \ No newline at end of file From 75e778a0e4760f07ee7fa82ba64173cda84ee135 Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Sun, 11 Jun 2017 18:12:04 -0400 Subject: [PATCH 55/80] Create temp.txt --- BizHawk.Client.EmuHawk/config/A7800/temp.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 BizHawk.Client.EmuHawk/config/A7800/temp.txt diff --git a/BizHawk.Client.EmuHawk/config/A7800/temp.txt b/BizHawk.Client.EmuHawk/config/A7800/temp.txt new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/BizHawk.Client.EmuHawk/config/A7800/temp.txt @@ -0,0 +1 @@ + From 4ee9460b59ebb9c87f1cd673a6ef4c562b4fe4a2 Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Sun, 11 Jun 2017 18:12:32 -0400 Subject: [PATCH 56/80] Add files via upload --- .../A7800/A7800ControllerSettings.Designer.cs | 147 +++++ .../config/A7800/A7800ControllerSettings.cs | 60 ++ .../config/A7800/A7800ControllerSettings.resx | 624 ++++++++++++++++++ 3 files changed, 831 insertions(+) create mode 100644 BizHawk.Client.EmuHawk/config/A7800/A7800ControllerSettings.Designer.cs create mode 100644 BizHawk.Client.EmuHawk/config/A7800/A7800ControllerSettings.cs create mode 100644 BizHawk.Client.EmuHawk/config/A7800/A7800ControllerSettings.resx diff --git a/BizHawk.Client.EmuHawk/config/A7800/A7800ControllerSettings.Designer.cs b/BizHawk.Client.EmuHawk/config/A7800/A7800ControllerSettings.Designer.cs new file mode 100644 index 0000000000..882cbaea8c --- /dev/null +++ b/BizHawk.Client.EmuHawk/config/A7800/A7800ControllerSettings.Designer.cs @@ -0,0 +1,147 @@ +namespace BizHawk.Client.EmuHawk +{ + partial class A7800ControllerSettings + { + /// + /// 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() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(A7800ControllerSettings)); + this.OkBtn = new System.Windows.Forms.Button(); + this.CancelBtn = new System.Windows.Forms.Button(); + this.label5 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.Port2ComboBox = new System.Windows.Forms.ComboBox(); + this.Port1ComboBox = new System.Windows.Forms.ComboBox(); + this.label1 = new System.Windows.Forms.Label(); + this.SuspendLayout(); + // + // OkBtn + // + this.OkBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.OkBtn.Location = new System.Drawing.Point(170, 249); + this.OkBtn.Name = "OkBtn"; + this.OkBtn.Size = new System.Drawing.Size(60, 23); + this.OkBtn.TabIndex = 3; + this.OkBtn.Text = "&OK"; + this.OkBtn.UseVisualStyleBackColor = true; + this.OkBtn.Click += new System.EventHandler(this.OkBtn_Click); + // + // CancelBtn + // + this.CancelBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.CancelBtn.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.CancelBtn.Location = new System.Drawing.Point(236, 249); + this.CancelBtn.Name = "CancelBtn"; + this.CancelBtn.Size = new System.Drawing.Size(60, 23); + this.CancelBtn.TabIndex = 4; + this.CancelBtn.Text = "&Cancel"; + this.CancelBtn.UseVisualStyleBackColor = true; + this.CancelBtn.Click += new System.EventHandler(this.CancelBtn_Click); + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(9, 94); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(38, 13); + this.label5.TabIndex = 16; + this.label5.Text = "Port 2:"; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(12, 44); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(38, 13); + this.label4.TabIndex = 15; + this.label4.Text = "Port 1:"; + // + // Port2ComboBox + // + this.Port2ComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.Port2ComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.Port2ComboBox.FormattingEnabled = true; + this.Port2ComboBox.Location = new System.Drawing.Point(12, 110); + this.Port2ComboBox.Name = "Port2ComboBox"; + this.Port2ComboBox.Size = new System.Drawing.Size(284, 21); + this.Port2ComboBox.TabIndex = 14; + // + // Port1ComboBox + // + this.Port1ComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.Port1ComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.Port1ComboBox.FormattingEnabled = true; + this.Port1ComboBox.Location = new System.Drawing.Point(12, 60); + this.Port1ComboBox.Name = "Port1ComboBox"; + this.Port1ComboBox.Size = new System.Drawing.Size(284, 21); + this.Port1ComboBox.TabIndex = 13; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(12, 14); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(146, 13); + this.label1.TabIndex = 17; + this.label1.Text = "A7800 Controller Settings"; + // + // A7800ControllerSettings + // + this.AcceptButton = this.OkBtn; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.CancelButton = this.CancelBtn; + this.ClientSize = new System.Drawing.Size(308, 284); + this.Controls.Add(this.label1); + this.Controls.Add(this.label5); + this.Controls.Add(this.label4); + this.Controls.Add(this.Port2ComboBox); + this.Controls.Add(this.Port1ComboBox); + this.Controls.Add(this.CancelBtn); + this.Controls.Add(this.OkBtn); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "A7800ControllerSettings"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Controller Settings"; + this.Load += new System.EventHandler(this.IntvControllerSettings_Load); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button OkBtn; + private System.Windows.Forms.Button CancelBtn; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.ComboBox Port2ComboBox; + private System.Windows.Forms.ComboBox Port1ComboBox; + private System.Windows.Forms.Label label1; + } +} \ No newline at end of file diff --git a/BizHawk.Client.EmuHawk/config/A7800/A7800ControllerSettings.cs b/BizHawk.Client.EmuHawk/config/A7800/A7800ControllerSettings.cs new file mode 100644 index 0000000000..d087d2558c --- /dev/null +++ b/BizHawk.Client.EmuHawk/config/A7800/A7800ControllerSettings.cs @@ -0,0 +1,60 @@ +using System; +using System.Linq; +using System.Windows.Forms; + +using BizHawk.Client.Common; +using BizHawk.Emulation.Cores.Atari.A7800Hawk; + +namespace BizHawk.Client.EmuHawk +{ + public partial class A7800ControllerSettings : Form + { + private A7800Hawk.A7800SyncSettings _syncSettings; + + public A7800ControllerSettings() + { + InitializeComponent(); + } + + private void IntvControllerSettings_Load(object sender, EventArgs e) + { + _syncSettings = ((A7800Hawk)Global.Emulator).GetSyncSettings().Clone(); + + var possibleControllers = A7800HawkControllerDeck.ValidControllerTypes.Select(t => t.Key); + + foreach (var val in possibleControllers) + { + Port1ComboBox.Items.Add(val); + Port2ComboBox.Items.Add(val); + } + + Port1ComboBox.SelectedItem = _syncSettings.Port1; + Port2ComboBox.SelectedItem = _syncSettings.Port2; + } + + private void OkBtn_Click(object sender, EventArgs e) + { + bool changed = + _syncSettings.Port1 != Port1ComboBox.SelectedItem.ToString() + || _syncSettings.Port2 != Port2ComboBox.SelectedItem.ToString(); + + if (changed) + { + _syncSettings.Port1 = Port1ComboBox.SelectedItem.ToString(); + _syncSettings.Port2 = Port2ComboBox.SelectedItem.ToString(); + + GlobalWin.MainForm.PutCoreSyncSettings(_syncSettings); + } + + DialogResult = DialogResult.OK; + Close(); + } + + private void CancelBtn_Click(object sender, EventArgs e) + { + GlobalWin.OSD.AddMessage("Controller settings aborted"); + DialogResult = DialogResult.Cancel; + Close(); + } + } +} diff --git a/BizHawk.Client.EmuHawk/config/A7800/A7800ControllerSettings.resx b/BizHawk.Client.EmuHawk/config/A7800/A7800ControllerSettings.resx new file mode 100644 index 0000000000..ca821b54f8 --- /dev/null +++ b/BizHawk.Client.EmuHawk/config/A7800/A7800ControllerSettings.resx @@ -0,0 +1,624 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + AAABAAwAMDAQAAAABABoBgAAxgAAACAgEAAAAAQA6AIAAC4HAAAYGBAAAAAEAOgBAAAWCgAAEBAQAAAA + BAAoAQAA/gsAADAwAAAAAAgAqA4AACYNAAAgIAAAAAAIAKgIAADOGwAAGBgAAAAACADIBgAAdiQAABAQ + AAAAAAgAaAUAAD4rAAAwMAAAAAAgAKglAACmMAAAICAAAAAAIACoEAAATlYAABgYAAAAACAAiAkAAPZm + AAAQEAAAAAAgAGgEAAB+cAAAKAAAADAAAABgAAAAAQAEAAAAAACABAAAAAAAAAAAAAAQAAAAEAAAAAAA + AAAAAIAAAIAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP// + /wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAHR3AAAAAAAAAAAAAAAAAAAAAAAAAAAAdHdEcAAAAAAAAAAAAAAAAA + AAAAAAAAAHd0d3QAAAAAAAAAAAAAAAAAAAAAAAAAAEd8d3UAAAAAAAAAAAAAAAAAAAAAAAAAB3yHfHZw + AAAAAAAAAAAAAAAAAAAAAAAAd3fIyHVwAAAAAAAAAAAAAAAAAAAAAAAAfHh3jIxwAAAAAAAAAAAAAAAA + AAAAAAAHd8jIyHdgAAAAAAAAAAAAAAAAAAAAAAAHd4yHfIdAAAAAAAAAAAAAAAAAAAAAAAAHyMjIyMhQ + AAAAAAAAAAAAAAAAAAAAAAB3d3eMh4dgAAAAAAAAAAAAAAAAAAAAAAB8jIyIfIdQAAAAAAAAAAAAAAAA + AAAAAAB3h4jIiMh3AAAAAAAAAAAAAAAAAAAAAAB8jIeHeIjHAAAAAAAAAAAAAAAAAAAAAAeIiHh4eMiE + AAAAAAAAAAAAB0dHcAAAAAd8h4eIiIiHcAAAAAAAAAB0d3d3RwAAAAeIeIiIiIh3RwAAAAAAAHR3d8h3 + dAAAAAfIh4iIiHiIx0cAAAAAdHh3eIeHhwAAAAeHiIiIiIiId3R3dHR0eHd4h4eHhAAAAAd4eIiIiIiH + x3d2d3eId4iIiIiIhwAAAAd4eIiI+IiIh3d3eHh3iIiIiIeHwAAAAAfIjHeIiIiIyIeHh4iIiIiIiIiI + cAAAAAeIQ0R3h3iIiMiIiIiIiIiIiIiEAAAAAAfIR3d3d0iIiIh4iIeIiIiIiHhAAAAAAAB4d3d3SHiI + h4fTiIi3iIiIeIwAAAAAAAB3h4d3eIeIiHiJiIuIiIh4jHAAAAAAAAAHyId3h3h4iIh4iIiIiIiHeAAA + AAAAAAAAB8iMiMjIiIiIh4h3aMjHAAAAAAAAAAAAAAdYyIeIiIiMjId6d4eAAAAAAAAAAAAAAAAHdsjH + eIeH6MiId3AAAAAAAAAAAAAAAIiIh4V8jIh4eIfHcAAAAAAAAAAAAACIiIh3AAAHd3h3fHcAAAAAAAAA + AAAAAAiIjHgAAAAAAHx8eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///////8AAP///////wAA////////AAD///////8AAP///////wAA//////// + AAD///////8AAP///////wAA//h/////AAD/4D////8AAP/AP////wAA/8A/////AAD/gB////8AAP8A + H////wAA/wAf////AAD+AB////8AAP4AH////wAA/gAf////AAD8AB////8AAPwAH////wAA/AAP//// + AAD8AA////8AAPgAD//+BwAA+AAH//ADAAD4AAP/wAMAAPgAAP8AAwAA+AAAAAADAAD4AAAAAAMAAPgA + AAAABwAA+AAAAAAHAAD4AAAAAA8AAPgAAAAAHwAA/AAAAAA/AAD8AAAAAH8AAP4AAAAA/wAA/4AAAAP/ + AAD/4AAAB/8AAP/4AAAf/wAA/8AAAH//AAD8A+AD//8AAPgP/A///wAA////////AAD///////8AAP// + /////wAA////////AAD///////8AAP///////wAA////////AAAoAAAAIAAAAEAAAAABAAQAAAAAAAAC + AAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/ + AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdwAAAAAAAAAAAAAAAA + AAd0dAAAAAAAAAAAAAAAAAB3x3cAAAAAAAAAAAAAAAAAd3fHcAAAAAAAAAAAAAAAB3yMh3AAAAAAAAAA + AAAAAAfIeMdwAAAAAAAAAAAAAAAHjIyHQAAAAAAAAAAAAAAAfId4yHAAAAAAAAAAAAAAAHjIyIdQAAAA + AAAAAAAAAAB3iId4YAAAAAAAAAdwAAAAjIiIiIUAAAAAAHd3dAAAB4iIiHh8cAAAAHd3x4dwAAd4iIiI + h3Z3d3R3yIh4cAAHh4iIiIfHd3d4iIiIh3AAB3jHiIiIiHeHiIiIiIwAAAh3dXh4iMiIiIiIiIhwAAAA + yGd0d4iIeIi4iIiMAAAAAIeHd4iIh32IiIiIcAAAAAAAd4jIyIiIiHeHyAAAAAAAAAB3h4iIh8h3dwAA + AAAAAAAIh8fIh4eIaAAAAAAAAACIiHAAB8jIyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////// + ////////////////////n////g////wP///8B///+Af///gH///4B///8Af///AH///wB//n8AP/A+AB + /AHgAAAB4AAAAeAAAAPgAAAH8AAAD/AAAB/8AAA//wAA//4AA//weA////////////////////////// + //8oAAAAGAAAADAAAAABAAQAAAAAACABAAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAgAAAgAAAAICAAIAA + AACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRwAAAAAAAAAAAAB3dAAAAAAAAAAAAA + d8dwAAAAAAAAAAAAfId3AAAAAAAAAAAHeMjHAAAAAAAAAAAHyHh3AAAAAAAAAAAHh3eEAAAAAAAAAAAI + yIiHAAAAAHd2cAAIiIiIQAAAd3d4UACHiIiId3d3eHiIcACHh4iIyHeHiIiIcAAIR3d4iIiIiIiMAAAH + d3eIh3iIiIhwAAAAeMh4iIiHiMAAAAAAAHfIiMh4aAAAAAAAiIgHyIfIAAAAAAAIgAAAAIAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wD///8A////AP///wD8f/8A+H//APB/ + /wDwP/8A4D//AOA//wDgP/8A4D/BAOAfAQDAAAEAwAABAOAAAwDgAAcA8AAfAPwAPwDwgP8A5/f/AP// + /wD///8A////ACgAAAAQAAAAIAAAAAEABAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACA + AAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD///8AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAd1AAAAAAAAB8cAAAAAAAB4eAAAAAAAAHyMgAAAAAAAiIhwAAAHcACI + iHcAd3hwAIz4jIeIiIAAd3eIiIiIAACHeIiIiHAAAACMeMh4AAAAiAAIgAAAAAAAAAAAAAAAAAAAAAAA + AAD//wAA//8AAP//AADj/wAA4/8AAMP/AADB/wAAwfkAAMDBAADAAQAAwAMAAMAHAADwDwAAzn8AAP// + AAD//wAAKAAAADAAAABgAAAAAQAIAAAAAAAACQAAAAAAAAAAAAAAAQAAAAEAAAAAAAA9OzsAZD8/AGg8 + PABtPj4AQkNDAEZIRwBWQkIAV0REAF5AQABbRkYAVklJAFxPTwBTU1MAXFJSAF5ZWQBkQEAAYUREAGZF + RQBqQkEAYEtLAGNPTwBwQUEAfUZGAHJKSgB2SUkAfU9PAGBRUQBgVFQAZlZWAGZYWABqWVkAclZWAHpU + VAB9W1oAbmJiAGtoaABtaWkAcWdnAHdnZwB8Y2MAe2pqAHJxcQB+dHQAd3l5AHl6egCGT08AiU9PAIFP + UACGU1MAjVFRAIlWVgCMV1cAg1xbAIxaWQCQUlIAlVJSAJFXVgCXVVUAmVVVAJZaWQCSXV0AlV9eAJpZ + WgCeW1sAml5eAKBZWgCgXFwAql9fAIRmZQCIZWQAhWtrAI5ragCTYmEAnGBhAJ9kYwCaZmYAk25uAJ1s + awCFdHQAiXd3AIt+fgCWd3cAmHR0AJV5eQCbfHwAo2JhAKZhYQChZWUApGVkAKplZACsZGQAqmhnAKZr + agCnbGsAqmloAKlubQCsbW0AtGZnALhsbACxb3AAv29wAKVxcACrc3IAr35+ALN0cwC5c3MAvXBxALR4 + dgC1fHsAunt6AMNtbgDGb3AAw3FyAMZwcQDGdXUAyHR1AMp3eADBeXkAxnt7AMB/fgDLensANLBSAEWf + TgBBtFwAPMdnADHkdgDciiIAvoF/AISrdwDln0sA35lhAN2XfADgmmEA8LdlAO61cAArWPIALWT+AEh5 + +gDOf4AAfoCAAHiA1ABZv9wAZrnUAGK+2ABxnv4Ad6P/ADPX/QBw0OcAW+D7AIKEgwCPgoIAjI2NAJuC + ggCUiIgAmYqKAJGSkgCjhIQAqoKCAKKLiwC+hIMAsoqKALaSgQCum5sAsZubALqqlQCdgr4Ar6ytALGh + oAC6pKQAwoSDAMyBggDGiIYAyYiHAMWMigDMjIoA0ISFANKHiADUjIwA2Y6NAMCUjQDIk44A0JCPANaP + kADHlZQAzpSSAMScmwDUkpIA2ZSVANWYlgDampcA2ZeYANWcnADam5sA4p2cAMChjwDeoJ4A5aCFAOaj + jQDlpJoA2p6hAMOkowDOoaEAy62tANegoADdoqEA2aGpANGsrwDdq6kAwbG4ANGysQDdtLQA2ri3AOGk + owDjqKYA66ylAOGnqADjq6oA6a2rAOOwrwDssK4A5K+wAOaztADttLIA57i2AO24tgDmurgA6rq6APC1 + swDyuLYA9Ly5APi+uwD1wL0A+cC9AKKMwACkk8QAqprMALSayACptsEAlaDkAOy/wACRxtQAgOv9AJnr + 9wDEwsoA5sbGAOzCwgDuyMcA7MzMAPPEwgDxy8oA9dPTAPja2gAAAAAAAAAAAP///wAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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 + AAAAAAAAAADLytDi9tOemQAAAAAAUy9EecLEsa1uPTUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPj11Mme + VakAAAAAAAAAAAAATS84M0akAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///////8AAP///////wAA////////AAD///////8AAP///////wAA//////// + AAD///////8AAP///////wAA//h/////AAD/4D////8AAP/AP////wAA/8A/////AAD/gB////8AAP8A + H////wAA/wAf////AAD+AB////8AAP4AH////wAA/gAf////AAD8AB////8AAPwAH////wAA/AAP//// + AAD8AA////8AAPgAD//+BwAA+AAH//ADAAD4AAP/wAMAAPgAAP8AAwAA+AAAAAADAAD4AAAAAAMAAPgA + AAAABwAA+AAAAAAHAAD4AAAAAA8AAPgAAAAAHwAA/AAAAAA/AAD8AAAAAH8AAP4AAAAA/wAA/4AAAAP/ + AAD/4AAAB/8AAP/4AAAf/wAA/8AAAH//AAD8A+AD//8AAPgP/A///wAA////////AAD///////8AAP// + /////wAA////////AAD///////8AAP///////wAA////////AAAoAAAAIAAAAEAAAAABAAgAAAAAAAAE + AAAAAAAAAAAAAAABAAAAAQAAAAAAAFFNTQBRUlIAU1RUAGJHRwBiT08Aa0lIAGJTUwBrVlYAYllZAGZc + XABpWloAb1xbAHNTUwB7V1YAc1hXAHFbWwBkZWUAaWFhAG5kZABpamkAcGFhAHlubgB2cHAAf3V1AH55 + eQB8fX0AgUpKAI1PTwCLWFcAhlhYAI9ZWQCKXFsAm1ZWAJJZWQCWWVgAmlpbAJtcWwCiXFwAl2BfAIBg + YACAZ2YAgG9vAI9oaACWZWQAmGBhAJ5kZACcaWoAmm9vAIV0dACNcHAAiXZ2AIB8fACac3IAm3V0AJ51 + dQCZfHwAnHx8AKNmZgCnZmYAqmJiAK5jYwCvb24AtWVmALBtbgC5bW0AvmxtAKx+fQCxcnIAtHBwALZz + dACydXQAtnd2ALlwcAC5dnYAt3p5ALh5eAC8fHsAun18ALx+fQDGb3AAxnBxAMdzdADAd3YAyHJzAMlz + dADJdXYAynd4AMd/fwDMe3wAzXx9AHunbwBhvHIAYsN4ANuLOwC2hn4A4Zt5APC3ZABte9sAX47+AHWM + 5QAl0foAY+P8AIeDgwCFhoYAioSEAJOIiACWi4sAmpKRAKGCgQCmhYUAqYGBAKuDhACniooApYyMAKiO + jQCyhYMAvoWEALeNjQCrj5AAr5eXALSVlAC9lJMAmbCEAK6RugDBgYAAwoSCAMWDhADChoQAxYeFAM6A + gQDFiIYAxoqIAMqIiQDMi4oAy4yKAMiPjQDPj44A0ISFANKJigDUi4wA04+NANWNjgDKkY8A0JCOANud + iQDWj5AAzJSTAM2XlgDGm5oA1pGSANOUkgDVl5EA1pOUANiVlgDYmJUA2ZeYANKenADbmpsA3pmYANuc + mgDbn5wA1aacAN6gngDqqZoA3Z+gAMyjowDCra0AxqysAMqpqQDboaAA3qKiAN6logDbp6UA3aWkANer + qgDWsbMA0rW0ANe0tADfs7IA4aSiAOGlpQDkp6UA46imAOWopgDsraIA6qimAOGoqADhrqwA6a2rAOqv + rADpsK4A7LGuAOGzswDlsbEA7bKxAO+1sgDotrYA5rm3AO+4twDot7sA6bq5AOu9uwDrv70A8bazAPG2 + tADxuLUA9Lm2APC9uwD2vboA9L+9APi+uwD4v7wA8sC+APXAvgD5wL0AkILJAKqXzACsu8cAqr/LALLV + 3QDawMIA48XFAOvDwQDswMAA7cTDAO/ExQDgxsgA8cbEAPTGxADwyskA9MvJAPLNzQD21dYA+NjZAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAMEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqHCEcBQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAayU9PSYbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdQlBSQiJpAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAM0pSUlJQPRcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnUlJSUlJGFQAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAFJSUlJSUkoQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzUlJSWVJZfxAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAC5XWYqKioqGDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASoqMkpqa + mqAsAAAAAAAAAAAAAAAAAABoNAAAAAAAAACMjJyuvLy2toYHAAAAAAAAAAAAABcOIDouBgAAAAAAc4yc + tsHKysPAriIKAAAAAAAAABYgRk1LTX+DEAAAAABukqXB4ejo4dHPQCIEChcXEwggTXV/k66unKMpAAAA + AG6Srsro6ero0dN/Rk1NRk2Dg4STrsbh4cHAt2sAAAAAbpKuOXPe6ajW15KGg4OGk528yuHo5eHPz882 + AAAAAAB4jCkDAxSoMabXt5yjt8ro3ePo5dbT09HTdAAAAAAAAABGcBFoGgFwdtfDwHxi2dpmZcrX09HP + z0MAAAAAAAAAAHh/qWwaOa6cz9PNZGPYsdzbzc3DwLk2AAAAAAAAAAAAAAAvhpKakoyg19HNyKS5wHtb + orZ/cwAAAAAAAAAAAAAAAAAANkaKWVm5zb1gYV6cXVxfNgAAAAAAAAAAAAAAAAAAALGvlTIuP1K5tqCR + l4xfLwAAAAAAAAAAAAAAAAAAsbPBenkAAAAAcCVYjE0scwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////////////////////+f///+D////A////wH + ///4B///+Af///gH///wB///8Af///AH/+fwA/8D4AH8AeAAAAHgAAAB4AAAA+AAAAfwAAAP8AAAH/wA + AD//AAD//gAD//B4D////////////////////////////ygAAAAYAAAAMAAAAAEACAAAAAAAQAIAAAAA + AAAAAAAAAAEAAAABAAAAAAAAWlJSAHBJSQB1SEgAe1dXAHdYWAB5WlkAel1dAGBiYgB1bGwAfWtrAHh2 + dgB9fn4Ag01NAIRXVwCIV1cAhV9eAItbWgCgX14ApV1dAJhgXwCNYGAAnWtqAJhtbQCCdnYAh3x8AI15 + eACeensAqGBgAKhoZwCga2oArGpqALNqagCzb28AtG1tALltbQCxb3AApnVzAKlzcwCqdHMApnp6AKd+ + fgCpensAq3x7ALZ3dgC8dHQAvH59AMZvcADGcHEAxXN0AMhycwDJdncAynh5AMx5egDNfn8Ajo1wAOek + VgDGgH8A4p53AEZ2+gB8u4AAd8PaAIuEhACOh4cAjo6OAJ+DggCejo4Ao4SEAKSIiACsi4sAqo2MAK6P + jgC+gYAAvoaGAL+KiACskJAAtJeXALWenQC5np4At6iOAKmyjgC9nroAwYSDAMaGhADOhoYAxomHAMiK + iQDJjYwA0oeIANOOjwDUjY0A2ZiPANaPkADGkZEAx5eXAMySkADGnZwA1ZOSANeTlADWl5YA2JSVANGZ + mADan50A3J6dAOCcmwDVoJ8A7K2fAMOtrQDXo6IA3aCgAN+kpADVq6oA3ay3AMu0tADPtrYA3L+/AOCi + oQDhpqUA5KelAOinpgDlq6gA46usAOOvrQDqrqwA7LGuAOayswDjtrQA5re1AOqysQDts7EA57y6AO+8 + ugDrvL0A8LOwAPC1sgDwtrQA87q3APS6twD2vboA8b69APi/vAD2wb4A+cC9AJmTzwDHqMMAu8PMAIHf + 8QDByNAA7cLCAO3FwwDvxsQA5cjIAOzOzgDwxcQA9cbEAPPP0AD10tIAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + BQMJAAAAAAAAAAAAAAAAAAAAAAAAAAAPHBMNAAAAAAAAAAAAAAAAAAAAAAAAABojLy8TAAAAAAAAAAAA + AAAAAAAAAAAAAB0wMDAiPgAAAAAAAAAAAAAAAAAAAAAAQjAwMDAtGAAAAAAAAAAAAAAAAAAAAAAAFzIy + NTU5CgAAAAAAAAAAAAAAAAAAAAAAIjZYWFxcBwAAAAAAAAAAAAAAAAAAAAAANlxtdW11JQAAAAAAAAAA + PgcRDgkAAAAAXG1/lISAZgMAAAAAABkVLC5SVhcAAABNY3WWnJuLfB8UBAcQHkhWaX91dSsAAABNY2BM + mJeCiVJSVl9laX+WloSJgEIAAAAAXAEIC0tGjnR0dJaRk5qNjIyJQwAAAAAAJkNADBtdjIaPO1GSPYuJ + hnVEAAAAAAAAAClISWRcd4xwkGp8UE90VwAAAAAAAAAAAAAAKSQ1NYZ7OjhbPDdGAAAAAAAAAAAAAHNv + YGsAKyJoXFYmRwAAAAAAAAAAAAAAcnIAAAAAAAAATgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AP// + /wD///8A////APx//wD4f/8A8H//APA//wDgP/8A4D//AOA//wDgP8EA4B8BAMAAAQDAAAEA4AADAOAA + BwDwAB8A/AA/APCA/wDn9/8A////AP///wD///8AKAAAABAAAAAgAAAAAQAIAAAAAAAAAQAAAAAAAAAA + AAAAAQAAAAEAAAAAAABjZGQAdmRjAHtpaQB/eHgAgU9PAKBaWgCFbm0AlWtqAKptbgCwZ2cAsGhoAKxw + cACteHkAvnJyAMZvcADGcHEAy3l5AMx9fgCFmXQAwIB/ANeUfQDhoX8AlIqJAJWMjACYiIgAoIaGAK2K + igCxh4cAvoGAALKKigC4iYgAuJWVAL2cnACss50AuqKhAL+mpgDLgoIAxImHAMeNjADLkI8AxpWTANCS + kQDYlZUA1J6dANqZmgDdnp4A1J+oAMaiogDOr68AzLKyANi5uADhpaIA4qypAOWtqADrrqsA4bKwAOay + sgDtuLYA57++AOy4uADxtLIA8be0APa9ugDswL4A9sG+ALCcxwC5ncIA06zBALnH0QC2ytQA7sPDAPLS + 0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAZBgUAAAAAAAAAAAAAAAAACw8KAAAAAAAAAAAAAAAAGhAQDgAAAAAAAAAAAAAAAAkRESUYAAAA + AAAAAAAAAAAlKy4uBwAAAAAAAAcDAAAAKzlHPCYCAAAYCB0oKgAAAC0wSDs0FB0nLDlAOiwAAAANAQQb + Pi9DRkVBPzUAAAAAJB4cKz5EQjMiNSkAAAAAAAAAHwwRNxYVEyQAAAAAAAAxMgAAACEgAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAP//AAD//wAA4/8AAOP/AADD/wAAwf8AAMH5 + AADAwQAAwAEAAMADAADABwAA8A8AAM5/AAD//wAA//8AACgAAAAwAAAAYAAAAAEAIAAAAAAAgCUAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAkAAAAJAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAUAAAAOAEBAVUAAABUAAAANQAAABAAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAkFBSUvGRl5TCkpwlYuLtxDJCTQFw0NmQAA + AEkAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACGAwMKE8rK6V6RET2klJR/5ZS + U/+OT0//ZDc38B0QEJoAAAAyAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYDAwYVzAwoopP + T/ygXVz/oFtb/55ZWf+bWFf/k1NT/1UvL9wGAwNcAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AARNKipxhk5O+adkY/+uZWX/tWdo/7VmZ/+qYWH/nltb/3hERPcfERGCAAAAFgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAADEZGS1zQ0LXqGdm/7ptbf/Fb3D/x3Bx/8hwcf/BbW7/q2Vl/4hPT/82HR2gAAAAIAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAB1gxMYyYXl3/vXFx/8Zwcf/HcHH/x3Bx/8dwcf/HcHH/uG1t/5NY + V/9EJia2AAAAKQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPB8fNH1MS+K4cnH/x3Fy/8dwcf/HcHH/x3Bx/8dw + cf/HcHH/wHBx/51gX/9PLCzGAAAAMwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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 + AAMAAAAAAAAAAAAAAAAAAAAALhAQFIZXVs/RjIz/1Y2O/9qYmP/eoaL/46qr/+aysv/ot7f/6rm5/+m4 + uf/otbX/5q+v/+uvrf/jqab/wYeF/28/P/QhEhKvAAAAXwAAACgAAAANAAAABQAAAAMAAAACAAAAAwAA + AAUAAAAKAAAAFQAAADAdDg9oSSkptHZHRu2dYmL+t3Z1/758e/+6enn/tnh3/7d5eP+8fn3/w4SD/7Z6 + ef9eODfbBgICTgAAAAgAAAAAAAAAAAAAAAAAAAAAPhwcJJVjYuPXkZH/2JOU/92fn//iqqr/57O0/+u8 + vP/uwsL/78XG/+/Exf/twMD/67i4/+60sv/wtrP/zZKQ/5taWv9xQED2MRsaxAgEBIcAAABaAAAAQQAA + ADcAAAA2AAAAOwAAAEUEAgJZHA4OfUcnJ7l5SkntqGxr/8CAfv/DgoH/vH59/7p+ff/DiIb/zZGP/9GT + kf/UlJP/1peV/9eZl/+GVlbuGQsLVwAAAAcAAAAAAAAAAAAAAAAAAAAARiIiLZ9rauvZk5P/2peY/+Ck + pP/lsLD/6ru7/+/Fxf/yzMz/9NDQ//PPz//xycr/7sDA//K5tv/1u7j/36Kg/6dmZf+mZWX/j1ZW/WM6 + OutDJSXQNBwcvDAaGrQ0HBy1PiIivUwsLMtkPDzfh1VU9a1xcP/EhIP/xIWE/7+Cgf/Ch4b/zZST/9mk + ov/grq3/4a6t/96lo//eoJ7/36Kg/+Cjof+IWVjnGwwMQwAAAAIAAAAAAAAAAAAAAAAAAAAARyQkL6Br + auzZk5P/25qb/+GnqP/ntLT/7cDA//LLy//209T/+NjY//fX1//00ND/8cbG//W9u//4vrz/46ak/7d0 + c/+vb27/s3Jy/7d2df+ucXD/pWpp/6Npaf+nbWz/sHVz/7p9fP/EhYT/yImI/8WIhv/DiIb/ypGP/9eg + n//hr63/57q5/+rCwP/rwsD/6bq4/+evrf/nq6n/6q6r/9qgnv9wRkbDBwAAHgAAAAAAAAAAAAAAAAAA + AAAAAAAASCQkLZ1nZuvYkpP/25uc/+Opqv/qtrf/7cHB//TOzv/52Nj/+tzc//na2v/xz9D/8MfH//fA + vv/6wb7/6a6r/8OBgP/DgoD/vX58/7h7ev+8fn3/woOC/8aHhv/HiYj/xoqJ/8aLif/Ijoz/zZST/9eg + nv/hrav/6Lm3/+zCwf/uyMf/78nH/+/Dwf/uvLr/7ba0/+60sf/vtLL/8ri1/7J+fflMKSltAAAABAAA + AAAAAAAAAAAAAAAAAAAAAAAAQyEhI5JcXOPWj5D/3Juc/8qVlf+BZmb/bl5e/4l4eP/AqKj/8tPT//LO + zv+5p6b/w6qq//fBv//7wr//8LWy/86Ojf/Ojoz/0ZGP/9GSkP/OkY//zpOR/9GamP/VoJ//2qel/+Gv + rf/nt7X/6727/+3Dwf/wycf/8czL//LLyf/yxsT/8cC+//G7uf/yubf/87m3//S7uP/4vrv/1J6c/3JH + RrAdCgsWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANRcXEYJNTcvPiIn/15aW/2VNTf85Ojr/Q0VF/0JF + RP9dXFz/n5GR/+S/v/+bh4f/hXp6/+25uP/7wr//9bu4/9qcmv/Zmpj/252b/96gnf/ipKH/5q+s/+u+ + vP/vycf/8srI/+3Hxv/wysj/9c7M//TNy//0ysj/9MbE//TBv//1vrz/9r26//e9u//4vrv/+L+8//vB + vv/hqqf/g1ZVzDwcHC4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW4+Ppq/env/05OT/2ZX + V/9rbm7/fX9//3l6ev99f3//cHJy/5F9ff+ff3//XFhY/9eop//8wr//+L+8/+Wppv/ipaP/5qil/96i + pP/Kmaz/1qi1//LGxP/tyMf/qb3J/23E3P9kw9//vMTN//jDwP/3wb//+MC9//i/vf/5v73/+b+8//i/ + vP/3vrv/+L68/92mo/+IWlnRRSMjOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFcv + L0mbX1/y15GS/6GAgP9XV1b/iYuL/4CBgf98fX3/cnR0/1dPT/++j4//km9w/9Sfnv/6wL3/+cC9/+6z + sP/ssK3/0Z+u/4OH1P9YffD/QGPs/7KYyv/Ct7z/Ytrz/3Ts//8s2f//cbvU//m+u//4v7z/+L67//e9 + uv/1vLn/9Lq3//O5tv/zuLX/0puZ/4RVVctGIyM4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAADIXFwdrPDySq2ts/diZmf/ApKT/sKur/4CBgP95enr/iYiI/49zdP/do6P/36Ch/96e + nv/zuLX/+sK///W7uP/1ubT/qZC//2qY+/9tnf//MGT6/56FxP/esK//nMbS/57n8/9+z+T/ybG3//a6 + t//zubb/8re0//C1s//utLH/7rKw/+qvrP++iIb9dklJtkMgISoAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHIyMSazw8kZ5hYvXNjI3/2aSk/7OMjP+bd3f/sIKC/9KV + lv/cnJz/2peY/9aRkf/koqL/+sG+//nAvf/5v7z/4amw/6qZx/+aouP/qpvP/+mxtv/2urj/6rGv/+S6 + u//ptrX/466n/+Ovqf/ssK7/6q6s/+isqv/oq6n/2J2b/6JubfFoPT2NOxoaFwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOBoaCFowMFd7SEjAomZm9sWC + gv/XkZL/25SV/9iSk//Wj5D/1IyN/9KHiP/UiIj/8bOx//rCv//3vbv/9ru4//O3s//xuLX/7q6e/+ej + hf/npIn/7bCp/+Otp/+KsX3/ULdm/1WjWv+7oYz/5KWk/9uenP+4gH79glJRzVYuLlQgCAkGAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAA8HBwQVy4uS3FBQaCPV1fjsG5v/cmAgf/ShYb/0YKD/85+f//LeXr/2I2M//e8uf/1vLn/7rOx/+2y + sP/lpJX/5qFY/+6xXP/djS3/35h9/86gl/9SwW7/Nd90/0WxXP+vlH//wYSE/49cW+VlOTmBQR4eHAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGk7OhqIWFd8oG5u8J5qav+eX2D/tmts/8Z0df/KdHX/yXJz/92T + k//3vLn/7LGu/+Snpf/dm5L/4Z1q/+61dP/fmmX/15WM/9eYlv/Bm43/r6uR/6uNgP+WYWDtbkBAnUwn + JzQVAQECAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiFJSBnhC + QgpqNDQJWSUlB08dHQdfKisKfENDFJJWViinbGtRvYOCjtOcm8/pt7X157y6/7eOjfhxRUW7aTk5m4RK + StehWlr6uGdo/8Zwcf/dkpH/8bSx/+OnpP/YmZj/1ZWT/9ealP/Vl5X/0JCP/8eIhv+zdnb/lFtc6nA/ + QKRSKio/JQwNBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADTn6AB2qioDMuUlCHBhYU8voCAWcCBgXTEhoaLzZGQqdeensngrKvn47Sz/NOop/+yiIfyi2Bgs2k+ + PlZXKysPAAAAAUYlJRxcMTFYcj4+pYpMTeWmXF3+xnl5/9+Zl//dnJr/z46M/8KCgf+vc3L/ll9e831L + S8hlOTl/TigoMy0REQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABzQUIDnmprDriGhifHlpZMzp6eeNCgoZ7On5+2yJqaybuPj9WnfHzVj2RkunVJ + SYNbLy8/PRQUCgAAAAAAAAAAAAAAAAAAAAAAAAAAKRUVBU0pKSphNDRtd0BAsotNTd2ZW1vrkVlY4HtJ + Sb5lOTmCUysrQTsbGxEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWCwsA2Y4OA5xQkImdkhIRHhKSll0R0dibUBAWWI2 + NkNUKCgoOhISDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMhkZB0km + Jh5LJiYsRSEhITATFAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////8AAP// + /////wAA////////AAD///////8AAP///////wAA////////AAD/+H////8AAP/gH////wAA/8Af//// + AAD/gA////8AAP+AD////wAA/wAP////AAD/AA////8AAP4AB////wAA/gAH////AAD8AAf///8AAPwA + B////wAA/AAH////AAD8AAf///8AAPgAB////wAA+AAH//4HAAD4AAP/8AEAAPgAAf/AAQAA8AAA/wAA + AADwAAAAAAAAAPAAAAAAAAAA8AAAAAAAAADwAAAAAAEAAPAAAAAAAQAA8AAAAAADAADwAAAAAAcAAPAA + AAAADwAA+AAAAAAfAAD4AAAAAD8AAPwAAAAAfwAA/gAAAAD/AAD/gAAAA/8AAP/gAAAH/wAAgAAAAB// + AAAAAAAAf/8AAAAD4AP//wAAgB/8H///AAD///////8AAP///////wAA////////AAD///////8AAP// + /////wAA////////AAAoAAAAIAAAAEAAAAABACAAAAAAAIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAYAAAAZAAAAGQAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAARCQkYOh8fb0ooKK80HByiCQUFTAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAIhERFmA2Np2ITUz3lVNT/4dLS/5IKCi9AAAALwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAANjODiBllhY+61kZP+vY2P/pV5e/3xHRvEhEhJfAAAAAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAASSgoN41VVeS6bW3/xW9w/8dwcf+9bG3/klZW/jogIIEAAAAGAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZ1RkWcs2xs/8dxcv/HcHH/x3Bx/8Zwcf+iYWH/SSkpmAAA + AAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUC0tMZtgX+fGcnP/x3Bx/8dwcf/HcHH/x3Fy/61q + av9UMTGqAAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABxRER1tm9v/8hxcv/HcHH/x3Bx/8dw + cf/HcnP/tnRz/185OboAAAAZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAACIxXV7TEdHT/yHJz/8l1 + dv/Kd3j/ynd4/8p4eP/Bf37/bURDywAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABNKysjo2Zm4Mt4 + ef/NfH3/z4GC/9GFhf/RhYb/0YWF/82Mi/9+UVHeCAICOwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAJAAAACwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAGc+ + Pkm1c3P30IGC/9OJiv/XkZL/2ZaW/9mWl//YlJX/2JmY/5hnZfMeEBBrAAAABwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAA0FAgItHhAQWzAbG4IqFxeHDQcHWwAAABkAAAAAAAAAAAAA + AAAAAAAAek1MdMN/f//VjI3/2piZ/9+io//hqKn/4qmp/+Clpf/jpqT/wImH/04xMLwAAAA6AAAABQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAABEbDg5GRygokW5CQs+MVlbxnGJh/JdfXvxnPz7hHA8PbgAA + AAwAAAAAAAAAAAAAAACMW1qbz4qK/9qXl//gpqb/5rKz/+q6u//rvLz/6La2/+qxr//epKL/j1lZ+DUc + HLACAQFPAAAAHQAAAA8AAAAPAAAAEwAAACIbDg5MVDExnYZUU+SpbWz+uXl4/7x+fP/AgoD/xoeF/72A + f/9fOzu1AAAAHAAAAAAAAAAAAAAABJhkZK/VkZH/3Z+g/+axsf/twMD/8svL//LNzf/vxcX/8Lq4/+6z + sf+1dHP/j1VU+144N9g7IiKqMhwclDcfH5RGKSmiYTw7v4tZWOiydXT+woOC/8aKiP/Ol5X/2aWj/9ui + of/cnpz/2pyb/35TUrgAAAAVAAAAAAAAAAAAAAAFmmVkstaTk//hpaX/7Lm6//TLy//419f/+NnZ//TP + z//1wb//9Lq3/8aGhP+1dHP/s3Rz/6xwb/+pb27+rnNy/7Z7ev/BhIL/yY2L/8+WlP/apqT/5be2/+vB + v//rvrz/6bKw/+uvrf/Um5n/bUVEgAAAAAMAAAAAAAAAAAAAAAOTXV2q1ZGR/9CYmP+dfX7/o4yM/9e8 + vP/z0tL/zLOz/+u8u//5v7z/1peV/8uLif/Ki4r/yoyL/86Ukv/TnJv/2qSi/+Gtq//nuLb/7cPB//DJ + x//xxsT/8b+9//G6t//zubf/77az/6d1dM89Hx8lAAAAAAAAAAAAAAAAAAAAAIJOTojNiIn/jGlp/01O + Tv9UVlb/dnNz/7uhof+Pfn7/xJ+e//zCv//lqKb/3J2b/+Chnv/hpaT/7Ly5/+vHxv/MxMn/0MjN//LK + yf/1x8X/9sLA//a/vP/3vrv/+L+8//S7uP+5hoXhYTo5RwAAAAAAAAAAAAAAAAAAAAAAAAAAaTs7RrVz + dPKmfn7/cXJx/4SGhv97fX3/b2Zm/516ev+7kJD/+sG+//C2s//lqqr/rpbA/3aB2/+ql83/tMHK/2jc + 9P9OzOz/2r3B//q/vP/3vrv/9ry6//a8uf/ss7D/tYGA32c+Pk0AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAvEhIHg01Njbp9fvrCn5//nI+P/4R7ev+fgID/2Jyd/9ybnP/ytrT/+b+8/+ewtf+Mld3/ZI36/5eI + zv/Ttrn/sNLc/6/Czv/stLT/8re0/++0sf/tsq//2qCe/6Rxb8phODg+AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABCIB8MeUZGbqRpata8gYH8x4mJ/9eTk//YkpP/04qL/+Cbmv/5wL3/9726/+Sw + t//Zrrn/56qY/+2smf/lr6n/nLWJ/4Gtdf/Pppn/3qGf/7yEg/KJWViYTyoqIAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQh0dGXJAQGOXXl7NtnR1/8V7fP/MfH3/znt8/+il + o//0urj/7LCu/+Whg//rq13/35VX/9Kek/9yvXz/ZbNv/6iCdfqYY2O/aj4+TCUJCgcAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACcamsBjFRVB4FERAh9PT0JjU1ND6VnZx+/hINF0JqZiNOjoty0iIf2hFBQw5lX + V8+wY2P4xXR0/+aioP/oq6j/2pqT/92fif/Vlor/yYqJ/7N8efiVZmPGdERFYkEfHxIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAALiFhgXFkJEdx5CQSMqSknbNlZWbz5uaws2cnOXBlJPnqH18r4dc + XFFULy8OSCUlFm07O0+FSUmeoV1d3sF9fPrGhoX/snZ295xkZNiFUlKbbD4+T0UdHxIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc0JDA5FgYRKdbm46onR0Zp9ycnuWampzhFlZVmY6 + OikvDAwHAAAAAAAAAAAAAAAAAAAAAB0ODgRULCwhbjo7UXhERGVrPDxHTCYmGxAAAQMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP//////////////////////D////gf///wH///4A///+AP///AD///wA///8AP//+AD + ///gA//D4AH+AeAA+ADgAAAAwAAAAMAAAADAAAAB4AAAA+AAAAfgAAAP8AAAH/wAAD8AAAD/AAAD/wB4 + D//H////////////////////KAAAABgAAAAwAAAAAQAgAAAAAABgCQAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAABMAAAAtAAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAgIO1cwMM1qOjrsHhAQmwAA + ABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAATCgogfUhI6ahgYP6lXV3+f0hI9wIBAT0AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsGBgFPLy6kuW1t/sZv + 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 + + + \ No newline at end of file From 17ce8ab367fc981cd2b076a624cd9058bdb20ce6 Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Sun, 11 Jun 2017 18:12:54 -0400 Subject: [PATCH 57/80] Delete temp.txt --- BizHawk.Client.EmuHawk/config/A7800/temp.txt | 1 - 1 file changed, 1 deletion(-) delete mode 100644 BizHawk.Client.EmuHawk/config/A7800/temp.txt diff --git a/BizHawk.Client.EmuHawk/config/A7800/temp.txt b/BizHawk.Client.EmuHawk/config/A7800/temp.txt deleted file mode 100644 index 8b13789179..0000000000 --- a/BizHawk.Client.EmuHawk/config/A7800/temp.txt +++ /dev/null @@ -1 +0,0 @@ - From 29b87731a15d81f71d377da64032326f71ca9060 Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Sun, 11 Jun 2017 18:15:11 -0400 Subject: [PATCH 58/80] Add files via upload --- .../VirtualPads/schema/A7800HawkSchema.cs | 247 ++++++++++++++++++ 1 file changed, 247 insertions(+) create mode 100644 BizHawk.Client.EmuHawk/tools/VirtualPads/schema/A7800HawkSchema.cs diff --git a/BizHawk.Client.EmuHawk/tools/VirtualPads/schema/A7800HawkSchema.cs b/BizHawk.Client.EmuHawk/tools/VirtualPads/schema/A7800HawkSchema.cs new file mode 100644 index 0000000000..1c4fa60977 --- /dev/null +++ b/BizHawk.Client.EmuHawk/tools/VirtualPads/schema/A7800HawkSchema.cs @@ -0,0 +1,247 @@ +using System.Collections.Generic; +using System.Drawing; + +using BizHawk.Common.ReflectionExtensions; +using BizHawk.Emulation.Common; +using BizHawk.Emulation.Cores.Atari.A7800Hawk; + +namespace BizHawk.Client.EmuHawk +{ + [SchemaAttributes("A7800Hawk")] + public class A7800HawkSchema : IVirtualPadSchema + { + private string UnpluggedControllerName => typeof(UnpluggedController).DisplayName(); + private string StandardControllerName => typeof(StandardController).DisplayName(); + + public IEnumerable GetPadSchemas(IEmulator core) + { + var intvSyncSettings = ((A7800Hawk)core).GetSyncSettings().Clone(); + var port1 = intvSyncSettings.Port1; + var port2 = intvSyncSettings.Port2; + + if (port1 == StandardControllerName) + { + yield return JoystickController(1); + } + + if (port2 == StandardControllerName) + { + yield return JoystickController(2); + } + + } + + private static PadSchema ProLineController(int controller) + { + return new PadSchema + { + DisplayName = "Player " + controller, + IsConsole = false, + DefaultSize = new Size(174, 74), + MaxSize = new Size(174, 74), + Buttons = new[] + { + new PadSchema.ButtonSchema + { + Name = "P" + controller + " Up", + DisplayName = "", + Icon = Properties.Resources.BlueUp, + Location = new Point(23, 15), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonSchema + { + Name = "P" + controller + " Down", + DisplayName = "", + Icon = Properties.Resources.BlueDown, + Location = new Point(23, 36), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonSchema + { + Name = "P" + controller + " Left", + DisplayName = "", + Icon = Properties.Resources.Back, + Location = new Point(2, 24), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonSchema + { + Name = "P" + controller + " Right", + DisplayName = "", + Icon = Properties.Resources.Forward, + Location = new Point(44, 24), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonSchema + { + Name = "P" + controller + " Trigger", + DisplayName = "1", + Location = new Point(120, 24), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonSchema + { + Name = "P" + controller + " Trigger 2", + DisplayName = "2", + Location = new Point(145, 24), + Type = PadSchema.PadInputType.Boolean + } + } + }; + } + + private static PadSchema JoystickController(int controller) + { + return new PadSchema + { + DisplayName = "Player " + controller, + IsConsole = false, + DefaultSize = new Size(174, 74), + MaxSize = new Size(174, 74), + Buttons = new[] + { + new PadSchema.ButtonSchema + { + Name = "P" + controller + " Up", + DisplayName = "", + Icon = Properties.Resources.BlueUp, + Location = new Point(23, 15), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonSchema + { + Name = "P" + controller + " Down", + DisplayName = "", + Icon = Properties.Resources.BlueDown, + Location = new Point(23, 36), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonSchema + { + Name = "P" + controller + " Left", + DisplayName = "", + Icon = Properties.Resources.Back, + Location = new Point(2, 24), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonSchema + { + Name = "P" + controller + " Right", + DisplayName = "", + Icon = Properties.Resources.Forward, + Location = new Point(44, 24), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonSchema + { + Name = "P" + controller + " Trigger", + DisplayName = "1", + Location = new Point(120, 24), + Type = PadSchema.PadInputType.Boolean + } + } + }; + } + + private static PadSchema PaddleController(int controller) + { + return new PadSchema + { + DisplayName = "Player " + controller, + IsConsole = false, + DefaultSize = new Size(250, 74), + Buttons = new[] + { + new PadSchema.ButtonSchema + { + Name = "P" + controller + " Paddle", + DisplayName = "Paddle", + Location = new Point(23, 15), + Type = PadSchema.PadInputType.FloatSingle + }, + new PadSchema.ButtonSchema + { + Name = "P" + controller + " Trigger", + DisplayName = "1", + Location = new Point(12, 90), + Type = PadSchema.PadInputType.Boolean + } + } + }; + } + + private static PadSchema LightGunController(int controller) + { + return new PadSchema + { + DisplayName = "Light Gun", + IsConsole = false, + DefaultSize = new Size(356, 290), + MaxSize = new Size(356, 290), + Buttons = new[] + { + new PadSchema.ButtonSchema + { + Name = "P" + controller + " VPos", + Location = new Point(14, 17), + Type = PadSchema.PadInputType.TargetedPair, + TargetSize = new Size(256, 240), + SecondaryNames = new[] + { + "P" + controller + " HPos", + } + }, + new PadSchema.ButtonSchema + { + Name = "P" + controller + " Trigger", + DisplayName = "Trigger", + Location = new Point(284, 17), + Type = PadSchema.PadInputType.Boolean + } + } + }; + } + + private static PadSchema ConsoleButtons() + { + return new PadSchema + { + DisplayName = "Console", + IsConsole = true, + DefaultSize = new Size(215, 50), + Buttons = new[] + { + new PadSchema.ButtonSchema + { + Name = "Select", + DisplayName = "Select", + Location = new Point(10, 15), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonSchema + { + Name = "Reset", + DisplayName = "Reset", + Location = new Point(60, 15), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonSchema + { + Name = "Power", + DisplayName = "Power", + Location = new Point(108, 15), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonSchema + { + Name = "Pause", + DisplayName = "Pause", + Location = new Point(158, 15), + Type = PadSchema.PadInputType.Boolean + } + } + }; + } + } +} From 491bd5947abaa70848e70855286a1afd2abdeee5 Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Sun, 11 Jun 2017 18:17:34 -0400 Subject: [PATCH 59/80] Add files via upload --- BizHawk.Client.EmuHawk/MainForm.Designer.cs | 35 ++++++++++++++++----- BizHawk.Client.EmuHawk/MainForm.Events.cs | 28 ++++++++++++----- BizHawk.Client.EmuHawk/MainForm.cs | 9 ++++-- 3 files changed, 54 insertions(+), 18 deletions(-) diff --git a/BizHawk.Client.EmuHawk/MainForm.Designer.cs b/BizHawk.Client.EmuHawk/MainForm.Designer.cs index 33fc42b28a..3d8cd97254 100644 --- a/BizHawk.Client.EmuHawk/MainForm.Designer.cs +++ b/BizHawk.Client.EmuHawk/MainForm.Designer.cs @@ -290,8 +290,10 @@ this.AutoloadKeypadMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.paletteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.AtariSubMenu = new System.Windows.Forms.ToolStripMenuItem(); - this.AtariSettingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.GBSubMenu = new System.Windows.Forms.ToolStripMenuItem(); + this.AtariSettingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.A7800SubMenu = new System.Windows.Forms.ToolStripMenuItem(); + this.A7800ControllerSettingsMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.GBSubMenu = new System.Windows.Forms.ToolStripMenuItem(); this.GBcoreSettingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.LoadGBInSGBMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator28 = new System.Windows.Forms.ToolStripSeparator(); @@ -456,7 +458,8 @@ this.SMSSubMenu, this.TI83SubMenu, this.AtariSubMenu, - this.GBSubMenu, + this.A7800SubMenu, + this.GBSubMenu, this.GBASubMenu, this.PSXSubMenu, this.SNESSubMenu, @@ -2655,10 +2658,26 @@ this.AtariSettingsToolStripMenuItem.Size = new System.Drawing.Size(125, 22); this.AtariSettingsToolStripMenuItem.Text = "Settings..."; this.AtariSettingsToolStripMenuItem.Click += new System.EventHandler(this.AtariSettingsToolStripMenuItem_Click); - // - // GBSubMenu - // - this.GBSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + // + // A7800SubMenu + // + this.A7800SubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.A7800ControllerSettingsMenuItem}); + this.A7800SubMenu.Name = "A7800SubMenu"; + this.A7800SubMenu.Size = new System.Drawing.Size(56, 19); + this.A7800SubMenu.Text = "&A7800"; + this.A7800SubMenu.DropDownOpened += new System.EventHandler(this.A7800SubMenu_DropDownOpened); + // + // A7800SettingsToolStripMenuItem + // + this.A7800ControllerSettingsMenuItem.Name = "A7800ControllerSettingsMenuItem"; + this.A7800ControllerSettingsMenuItem.Size = new System.Drawing.Size(125, 22); + this.A7800ControllerSettingsMenuItem.Text = "Settings..."; + this.A7800ControllerSettingsMenuItem.Click += new System.EventHandler(this.A7800SettingsToolStripMenuItem_Click); + // + // GBSubMenu + // + this.GBSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.GBcoreSettingsToolStripMenuItem, this.LoadGBInSGBMenuItem, this.toolStripSeparator28, @@ -4097,6 +4116,7 @@ private System.Windows.Forms.ToolStripMenuItem PCEBGViewerMenuItem; private System.Windows.Forms.ToolStripMenuItem ScreenshotContextMenuItem; private System.Windows.Forms.ToolStripMenuItem AtariSubMenu; + private System.Windows.Forms.ToolStripMenuItem A7800SubMenu; private System.Windows.Forms.ToolStripMenuItem NESSoundChannelsMenuItem; private System.Windows.Forms.ToolStripMenuItem SNESSubMenu; private System.Windows.Forms.ToolStripMenuItem SnesGfxDebuggerMenuItem; @@ -4167,6 +4187,7 @@ private System.Windows.Forms.ToolStripMenuItem GenesisSubMenu; private System.Windows.Forms.ToolStripMenuItem GenesisSettingsToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem AtariSettingsToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem A7800ControllerSettingsMenuItem; private System.Windows.Forms.ToolStripMenuItem MovieSettingsMenuItem; private System.Windows.Forms.ToolStripMenuItem CoresSubMenu; private System.Windows.Forms.ToolStripMenuItem GBInSGBMenuItem; diff --git a/BizHawk.Client.EmuHawk/MainForm.Events.cs b/BizHawk.Client.EmuHawk/MainForm.Events.cs index 84c74537e3..7dc0c7799a 100644 --- a/BizHawk.Client.EmuHawk/MainForm.Events.cs +++ b/BizHawk.Client.EmuHawk/MainForm.Events.cs @@ -1211,8 +1211,6 @@ namespace BizHawk.Client.EmuHawk private void CoresSubMenu_DropDownOpened(object sender, EventArgs e) { - Atari7800WithEmu7800MenuItem.Visible = VersionInfo.DeveloperBuild; // Don't expose Atari7800Hawk in releases yet - GBInSGBMenuItem.Checked = Global.Config.GB_AsSGB; NesInQuickNESMenuItem.Checked = Global.Config.NES_InQuickNES; gBAWithMGBAToolStripMenuItem.Checked = Global.Config.GBA_UsemGBA; @@ -1326,7 +1324,7 @@ namespace BizHawk.Client.EmuHawk { Global.Config = ConfigService.Load(PathManager.DefaultIniPath); Global.Config.ResolveDefaults(); - InitControls(); // rebind hotkeys + InitControls(); //rebind hotkeys GlobalWin.OSD.AddMessage("Config file loaded: " + PathManager.DefaultIniPath); } @@ -1345,7 +1343,7 @@ namespace BizHawk.Client.EmuHawk { Global.Config = ConfigService.Load(ofd.FileName); Global.Config.ResolveDefaults(); - InitControls(); // rebind hotkeys + InitControls(); //rebind hotkeys GlobalWin.OSD.AddMessage("Config file loaded: " + ofd.FileName); } } @@ -1612,7 +1610,7 @@ namespace BizHawk.Client.EmuHawk { if (Emulator is NES && ((NES)Emulator).IsVS) { - new NesVsSettings().ShowHawkDialog(); + new NESVSSettings().ShowHawkDialog(); } } @@ -1981,6 +1979,20 @@ namespace BizHawk.Client.EmuHawk #endregion + #region Atari7800 + + private void A7800SubMenu_DropDownOpened(object sender, EventArgs e) + { + A7800ControllerSettingsMenuItem.Enabled = !Global.MovieSession.Movie.IsActive; + } + + private void A7800SettingsToolStripMenuItem_Click(object sender, EventArgs e) + { + new A7800ControllerSettings().ShowDialog(); + } + + #endregion + #region GB private void GBSubMenu_DropDownOpened(object sender, EventArgs e) @@ -1990,7 +2002,7 @@ namespace BizHawk.Client.EmuHawk private void GBCoreSettingsMenuItem_Click(object sender, EventArgs e) { - GBPrefs.DoGBPrefsDialog(this); + config.GB.GBPrefs.DoGBPrefsDialog(this); } private void LoadGbInSgbMenuItem_Click(object sender, EventArgs e) @@ -2296,7 +2308,7 @@ namespace BizHawk.Client.EmuHawk private void DgbSettingsMenuItem_Click(object sender, EventArgs e) { - DGBPrefs.DoDGBPrefsDialog(this); + config.GB.DGBPrefs.DoDGBPrefsDialog(this); } #endregion @@ -2604,7 +2616,7 @@ namespace BizHawk.Client.EmuHawk private void DisplayConfigMenuItem_Click(object sender, EventArgs e) { - var window = new DisplayConfigLite(); + var window = new config.DisplayConfigLite(); var result = window.ShowDialog(); if (result == DialogResult.OK) { diff --git a/BizHawk.Client.EmuHawk/MainForm.cs b/BizHawk.Client.EmuHawk/MainForm.cs index 05367e71bc..9696663a2e 100644 --- a/BizHawk.Client.EmuHawk/MainForm.cs +++ b/BizHawk.Client.EmuHawk/MainForm.cs @@ -1785,6 +1785,7 @@ namespace BizHawk.Client.EmuHawk GBSubMenu.Visible = false; GBASubMenu.Visible = false; AtariSubMenu.Visible = false; + A7800SubMenu.Visible = false; SNESSubMenu.Visible = false; PSXSubMenu.Visible = false; ColecoSubMenu.Visible = false; @@ -1835,6 +1836,9 @@ namespace BizHawk.Client.EmuHawk case "A26": AtariSubMenu.Visible = true; break; + case "A7800": + A7800SubMenu.Visible = true; + break; case "PSX": PSXSubMenu.Visible = true; break; @@ -2140,7 +2144,7 @@ namespace BizHawk.Client.EmuHawk "PlayStation", "*.cue;*.ccd;*.m3u", "PSX Executables (experimental)", "*.exe", "PSF Playstation Sound File", "*.psf;*.minipsf", - "Commodore 64", "*.prg; *.d64, *.g64; *.crt; *.tap;%ARCH%", + "Commodore 64 (experimental)", "*.prg; *.d64, *.g64; *.crt; *.tap;%ARCH%", "SID Commodore 64 Music File", "*.sid;%ARCH%", "Nintendo 64", "*.z64;*.v64;*.n64", "WonderSwan", "*.ws;*.wsc;%ARCH%", @@ -2149,7 +2153,7 @@ namespace BizHawk.Client.EmuHawk } return FormatFilter( - "Rom Files", "*.nes;*.fds;*.unf;*.sms;*.gg;*.sg;*.gb;*.gbc;*.gba;*.pce;*.sgx;*.bin;*.smd;*.gen;*.md;*.smc;*.sfc;*.a26;*.a78;*.lnx;*.col;*.int;*.rom;*.m3u;*.cue;*.ccd;*.sgb;*.z64;*.v64;*.n64;*.ws;*.wsc;*.xml;*.dsk;*.do;*.po;*.psf;*.prg;*.d64;*.g64;*.minipsf;*.nsf;%ARCH%", + "Rom Files", "*.nes;*.fds;*.unf;*.sms;*.gg;*.sg;*.gb;*.gbc;*.gba;*.pce;*.sgx;*.bin;*.smd;*.gen;*.md;*.smc;*.sfc;*.a26;*.a78;*.lnx;*.col;*.int;*.rom;*.m3u;*.cue;*.ccd;*.sgb;*.z64;*.v64;*.n64;*.ws;*.wsc;*.xml;*.dsk;*.do;*.po;*.psf;*.minipsf;*.nsf;%ARCH%", "Disc Images", "*.cue;*.ccd;*.m3u", "NES", "*.nes;*.fds;*.unf;*.nsf;%ARCH%", "Super NES", "*.smc;*.sfc;*.xml;%ARCH%", @@ -2171,7 +2175,6 @@ namespace BizHawk.Client.EmuHawk "Genesis", "*.gen;*.md;*.smd;*.bin;*.cue;*.ccd;%ARCH%", "WonderSwan", "*.ws;*.wsc;%ARCH%", "Apple II", "*.dsk;*.do;*.po;%ARCH%", - "Commodore 64", "*.prg; *.d64, *.g64; *.crt; *.tap;%ARCH%", "All Files", "*.*"); } } From 1f478ab4073418cb8c3893ea40fd30989b50fbb7 Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Sun, 11 Jun 2017 18:25:50 -0400 Subject: [PATCH 60/80] Create MainForm.Events.cs --- BizHawk.Client.EmuHawk/MainForm.Events.cs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/BizHawk.Client.EmuHawk/MainForm.Events.cs b/BizHawk.Client.EmuHawk/MainForm.Events.cs index 7dc0c7799a..404f07c535 100644 --- a/BizHawk.Client.EmuHawk/MainForm.Events.cs +++ b/BizHawk.Client.EmuHawk/MainForm.Events.cs @@ -1211,6 +1211,7 @@ namespace BizHawk.Client.EmuHawk private void CoresSubMenu_DropDownOpened(object sender, EventArgs e) { + Atari7800WithEmu7800MenuItem.Visible = VersionInfo.DeveloperBuild; // Don't expose Atari7800Hawk in releases yet GBInSGBMenuItem.Checked = Global.Config.GB_AsSGB; NesInQuickNESMenuItem.Checked = Global.Config.NES_InQuickNES; gBAWithMGBAToolStripMenuItem.Checked = Global.Config.GBA_UsemGBA; @@ -1324,7 +1325,7 @@ namespace BizHawk.Client.EmuHawk { Global.Config = ConfigService.Load(PathManager.DefaultIniPath); Global.Config.ResolveDefaults(); - InitControls(); //rebind hotkeys + InitControls(); // rebind hotkeys GlobalWin.OSD.AddMessage("Config file loaded: " + PathManager.DefaultIniPath); } @@ -1343,7 +1344,7 @@ namespace BizHawk.Client.EmuHawk { Global.Config = ConfigService.Load(ofd.FileName); Global.Config.ResolveDefaults(); - InitControls(); //rebind hotkeys + InitControls(); // rebind hotkeys GlobalWin.OSD.AddMessage("Config file loaded: " + ofd.FileName); } } @@ -1610,7 +1611,7 @@ namespace BizHawk.Client.EmuHawk { if (Emulator is NES && ((NES)Emulator).IsVS) { - new NESVSSettings().ShowHawkDialog(); + new NesVsSettings().ShowHawkDialog(); } } @@ -2002,7 +2003,7 @@ namespace BizHawk.Client.EmuHawk private void GBCoreSettingsMenuItem_Click(object sender, EventArgs e) { - config.GB.GBPrefs.DoGBPrefsDialog(this); + GBPrefs.DoGBPrefsDialog(this); } private void LoadGbInSgbMenuItem_Click(object sender, EventArgs e) @@ -2308,7 +2309,7 @@ namespace BizHawk.Client.EmuHawk private void DgbSettingsMenuItem_Click(object sender, EventArgs e) { - config.GB.DGBPrefs.DoDGBPrefsDialog(this); + DGBPrefs.DoDGBPrefsDialog(this); } #endregion @@ -2616,7 +2617,7 @@ namespace BizHawk.Client.EmuHawk private void DisplayConfigMenuItem_Click(object sender, EventArgs e) { - var window = new config.DisplayConfigLite(); + var window = new DisplayConfigLite(); var result = window.ShowDialog(); if (result == DialogResult.OK) { From 0194ba90f9b5e05e27e55259a8406b1d9d345d9f Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Sun, 11 Jun 2017 18:29:12 -0400 Subject: [PATCH 61/80] Create MainForm.cs --- BizHawk.Client.EmuHawk/MainForm.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/BizHawk.Client.EmuHawk/MainForm.cs b/BizHawk.Client.EmuHawk/MainForm.cs index 9696663a2e..21dff09bae 100644 --- a/BizHawk.Client.EmuHawk/MainForm.cs +++ b/BizHawk.Client.EmuHawk/MainForm.cs @@ -2144,7 +2144,7 @@ namespace BizHawk.Client.EmuHawk "PlayStation", "*.cue;*.ccd;*.m3u", "PSX Executables (experimental)", "*.exe", "PSF Playstation Sound File", "*.psf;*.minipsf", - "Commodore 64 (experimental)", "*.prg; *.d64, *.g64; *.crt; *.tap;%ARCH%", + "Commodore 64", "*.prg; *.d64, *.g64; *.crt; *.tap;%ARCH%", "SID Commodore 64 Music File", "*.sid;%ARCH%", "Nintendo 64", "*.z64;*.v64;*.n64", "WonderSwan", "*.ws;*.wsc;%ARCH%", @@ -2153,7 +2153,7 @@ namespace BizHawk.Client.EmuHawk } return FormatFilter( - "Rom Files", "*.nes;*.fds;*.unf;*.sms;*.gg;*.sg;*.gb;*.gbc;*.gba;*.pce;*.sgx;*.bin;*.smd;*.gen;*.md;*.smc;*.sfc;*.a26;*.a78;*.lnx;*.col;*.int;*.rom;*.m3u;*.cue;*.ccd;*.sgb;*.z64;*.v64;*.n64;*.ws;*.wsc;*.xml;*.dsk;*.do;*.po;*.psf;*.minipsf;*.nsf;%ARCH%", + "Rom Files", "*.nes;*.fds;*.unf;*.sms;*.gg;*.sg;*.gb;*.gbc;*.gba;*.pce;*.sgx;*.bin;*.smd;*.gen;*.md;*.smc;*.sfc;*.a26;*.a78;*.lnx;*.col;*.int;*.rom;*.m3u;*.cue;*.ccd;*.sgb;*.z64;*.v64;*.n64;*.ws;*.wsc;*.xml;*.dsk;*.do;*.po;*.psf;*.prg;*.d64;*.g64;*.minipsf;*.nsf;%ARCH%", "Disc Images", "*.cue;*.ccd;*.m3u", "NES", "*.nes;*.fds;*.unf;*.nsf;%ARCH%", "Super NES", "*.smc;*.sfc;*.xml;%ARCH%", @@ -2175,6 +2175,7 @@ namespace BizHawk.Client.EmuHawk "Genesis", "*.gen;*.md;*.smd;*.bin;*.cue;*.ccd;%ARCH%", "WonderSwan", "*.ws;*.wsc;%ARCH%", "Apple II", "*.dsk;*.do;*.po;%ARCH%", + "Commodore 64", "*.prg; *.d64, *.g64; *.crt; *.tap;%ARCH%", "All Files", "*.*"); } } From e8022be3d559eefa6b2c97c76bcee1c3a4fa097a Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Sun, 11 Jun 2017 18:30:38 -0400 Subject: [PATCH 62/80] Add files via upload --- .../Classes/BizHawkSystemIdToCoreSystemEnumConverter.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/BizHawk.Client.ApiHawk/Classes/BizHawkSystemIdToCoreSystemEnumConverter.cs b/BizHawk.Client.ApiHawk/Classes/BizHawkSystemIdToCoreSystemEnumConverter.cs index b40ec818a1..0316c0f78c 100644 --- a/BizHawk.Client.ApiHawk/Classes/BizHawkSystemIdToCoreSystemEnumConverter.cs +++ b/BizHawk.Client.ApiHawk/Classes/BizHawkSystemIdToCoreSystemEnumConverter.cs @@ -34,6 +34,9 @@ namespace BizHawk.Client.ApiHawk case "A78": return CoreSystem.Atari2600; + case "A7800": + return CoreSystem.Atari7800; + case "Coleco": return CoreSystem.ColecoVision; From 1c5e1b4b212ce327c3b09660c0c7b8b57dbfc234 Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Sun, 11 Jun 2017 18:31:25 -0400 Subject: [PATCH 63/80] Add files via upload --- BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj b/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj index a417cb6b75..0330eac5e4 100644 --- a/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj +++ b/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj @@ -372,6 +372,12 @@ ColecoControllerSettings.cs + + Form + + + A7800ControllerSettings.cs + Form @@ -1196,6 +1202,7 @@ + @@ -1338,6 +1345,9 @@ ColecoControllerSettings.cs + + A7800ControllerSettings.cs + IntvControllerSettings.cs From ddd0789577cd2a98159ae6c8a54a161deecb26bd Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Sun, 11 Jun 2017 18:45:28 -0400 Subject: [PATCH 64/80] Create gamedb.txt --- Assets/gamedb/gamedb.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Assets/gamedb/gamedb.txt b/Assets/gamedb/gamedb.txt index b7e844ec40..7c596bae3d 100644 --- a/Assets/gamedb/gamedb.txt +++ b/Assets/gamedb/gamedb.txt @@ -1,4 +1,5 @@ #include gamedb_a2600.txt +#include gamedb_a7800.txt #include gamedb_appleII.txt #include gamedb_coleco.txt #include gamedb_e_cards.txt From 3784be48f937a1edbcdcf33bb0a50a567f2e7f95 Mon Sep 17 00:00:00 2001 From: zeromus Date: Sun, 11 Jun 2017 18:20:55 -0500 Subject: [PATCH 65/80] add 'crop SGB frame' option; fixes #871 --- .../config/SNES/SNESOptions.Designer.cs | 37 ++++++++++++++++--- .../config/SNES/SNESOptions.cs | 8 ++++ .../Nintendo/SNES/LibsnesCore.ISettable.cs | 1 + .../Consoles/Nintendo/SNES/LibsnesCore.cs | 18 +++++++++ 4 files changed, 59 insertions(+), 5 deletions(-) diff --git a/BizHawk.Client.EmuHawk/config/SNES/SNESOptions.Designer.cs b/BizHawk.Client.EmuHawk/config/SNES/SNESOptions.Designer.cs index a6437157f2..6a696d4ad7 100644 --- a/BizHawk.Client.EmuHawk/config/SNES/SNESOptions.Designer.cs +++ b/BizHawk.Client.EmuHawk/config/SNES/SNESOptions.Designer.cs @@ -39,13 +39,15 @@ this.lblDoubleSize = new System.Windows.Forms.Label(); this.cbForceDeterminism = new System.Windows.Forms.CheckBox(); this.label3 = new System.Windows.Forms.Label(); + this.radioButton1 = new System.Windows.Forms.RadioButton(); + this.cbCropSGBFrame = new System.Windows.Forms.CheckBox(); this.groupBox1.SuspendLayout(); this.SuspendLayout(); // // btnOk // this.btnOk.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.btnOk.Location = new System.Drawing.Point(136, 286); + this.btnOk.Location = new System.Drawing.Point(136, 308); this.btnOk.Name = "btnOk"; this.btnOk.Size = new System.Drawing.Size(75, 23); this.btnOk.TabIndex = 0; @@ -57,7 +59,7 @@ // this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Location = new System.Drawing.Point(217, 286); + this.btnCancel.Location = new System.Drawing.Point(217, 308); this.btnCancel.Name = "btnCancel"; this.btnCancel.Size = new System.Drawing.Size(75, 23); this.btnCancel.TabIndex = 1; @@ -78,6 +80,7 @@ // // groupBox1 // + this.groupBox1.Controls.Add(this.radioButton1); this.groupBox1.Controls.Add(this.label2); this.groupBox1.Controls.Add(this.rbAccuracy); this.groupBox1.Controls.Add(this.rbPerformance); @@ -145,7 +148,7 @@ // cbForceDeterminism // this.cbForceDeterminism.AutoSize = true; - this.cbForceDeterminism.Location = new System.Drawing.Point(19, 212); + this.cbForceDeterminism.Location = new System.Drawing.Point(15, 234); this.cbForceDeterminism.Name = "cbForceDeterminism"; this.cbForceDeterminism.Size = new System.Drawing.Size(113, 17); this.cbForceDeterminism.TabIndex = 8; @@ -155,12 +158,33 @@ // // label3 // - this.label3.Location = new System.Drawing.Point(38, 236); + this.label3.Location = new System.Drawing.Point(34, 258); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(251, 41); this.label3.TabIndex = 9; this.label3.Text = "Guarantee deterministic emulation by savestating every frame. Don\'t TAS without i" + "t! Only ~75% of runs sync without it, but speed boost is ~30%."; + // + // radioButton1 + // + this.radioButton1.AutoSize = true; + this.radioButton1.Location = new System.Drawing.Point(37, 46); + this.radioButton1.Name = "radioButton1"; + this.radioButton1.Size = new System.Drawing.Size(202, 17); + this.radioButton1.TabIndex = 9; + this.radioButton1.TabStop = true; + this.radioButton1.Text = "Performance (only for casual gaming!)"; + this.radioButton1.UseVisualStyleBackColor = true; + // + // cbCropSGBFrame + // + this.cbCropSGBFrame.AutoSize = true; + this.cbCropSGBFrame.Location = new System.Drawing.Point(15, 211); + this.cbCropSGBFrame.Name = "cbCropSGBFrame"; + this.cbCropSGBFrame.Size = new System.Drawing.Size(105, 17); + this.cbCropSGBFrame.TabIndex = 10; + this.cbCropSGBFrame.Text = "Crop SGB Frame"; + this.cbCropSGBFrame.UseVisualStyleBackColor = true; // // SNESOptions // @@ -168,7 +192,8 @@ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.CancelButton = this.btnCancel; - this.ClientSize = new System.Drawing.Size(304, 321); + this.ClientSize = new System.Drawing.Size(304, 343); + this.Controls.Add(this.cbCropSGBFrame); this.Controls.Add(this.label3); this.Controls.Add(this.cbForceDeterminism); this.Controls.Add(this.lblDoubleSize); @@ -204,5 +229,7 @@ private System.Windows.Forms.Label label2; private System.Windows.Forms.CheckBox cbForceDeterminism; private System.Windows.Forms.Label label3; + private System.Windows.Forms.RadioButton radioButton1; + private System.Windows.Forms.CheckBox cbCropSGBFrame; } } \ No newline at end of file diff --git a/BizHawk.Client.EmuHawk/config/SNES/SNESOptions.cs b/BizHawk.Client.EmuHawk/config/SNES/SNESOptions.cs index 00ba3551ea..a1704e0dff 100644 --- a/BizHawk.Client.EmuHawk/config/SNES/SNESOptions.cs +++ b/BizHawk.Client.EmuHawk/config/SNES/SNESOptions.cs @@ -23,6 +23,7 @@ namespace BizHawk.Client.EmuHawk { AlwaysDoubleSize = s.AlwaysDoubleSize, ForceDeterminism = s.ForceDeterminism, + CropSGBFrame = s.CropSGBFrame, Profile = ss.Profile }; @@ -31,6 +32,7 @@ namespace BizHawk.Client.EmuHawk { s.AlwaysDoubleSize = dlg.AlwaysDoubleSize; s.ForceDeterminism = dlg.ForceDeterminism; + s.CropSGBFrame = dlg.CropSGBFrame; ss.Profile = dlg.Profile; GlobalWin.MainForm.PutCoreSettings(s); GlobalWin.MainForm.PutCoreSyncSettings(ss); @@ -92,6 +94,12 @@ namespace BizHawk.Client.EmuHawk set { cbForceDeterminism.Checked = value; } } + private bool CropSGBFrame + { + get { return cbCropSGBFrame.Checked; } + set { cbCropSGBFrame.Checked = value; } + } + void RefreshDoubleSizeOption() { _suppressDoubleSize = true; diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/SNES/LibsnesCore.ISettable.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/SNES/LibsnesCore.ISettable.cs index be20ab3f0c..58521de3a5 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/SNES/LibsnesCore.ISettable.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/SNES/LibsnesCore.ISettable.cs @@ -55,6 +55,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.SNES public bool ShowOBJ_2 { get; set; } = true; public bool ShowOBJ_3 { get; set; } = true; + public bool CropSGBFrame { get; set; } = false; public bool AlwaysDoubleSize { get; set; } = false; public bool ForceDeterminism { get; set; } = true; public string Palette { get; set; } = "BizHawk"; diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/SNES/LibsnesCore.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/SNES/LibsnesCore.cs index ad63299a0e..7729127925 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/SNES/LibsnesCore.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/SNES/LibsnesCore.cs @@ -520,12 +520,30 @@ namespace BizHawk.Emulation.Cores.Nintendo.SNES xskip = 2; } + if (_settings.CropSGBFrame) + { + _videoWidth = 160; + _videoHeight = 144; + } + int size = _videoWidth * _videoHeight; if (_videoBuffer.Length != size) { _videoBuffer = new int[size]; } + if (_settings.CropSGBFrame) + { + int di = 0; + for (int y = 0; y < 144; y++) + { + int si = ((y+39) * srcPitch) + 48; + for(int x=0;x<160;x++) + _videoBuffer[di++] = data[si++]; + } + return; + } + for (int j = 0; j < 2; j++) { if (j == 1 && !dotDouble) From cb17d6146c04d950b8fa5c4ac3b6ddb11420ac90 Mon Sep 17 00:00:00 2001 From: zeromus Date: Mon, 12 Jun 2017 03:14:21 -0500 Subject: [PATCH 66/80] teach libretrobridge stuff how to check for changed serialize size --- .../Libretro/LibretroApi.cs | 1 + .../Libretro/LibretroApi_CMD.cs | 7 +++++++ .../Libretro/LibretroApi_Enums.cs | 1 + .../Libretro/LibretroCore.cs | 2 ++ LibretroBridge/vs2015/LibretroBridge.cpp | 10 +++++++++- output/dll/LibretroBridge.dll | Bin 112640 -> 112640 bytes 6 files changed, 20 insertions(+), 1 deletion(-) diff --git a/BizHawk.Emulation.Cores/Libretro/LibretroApi.cs b/BizHawk.Emulation.Cores/Libretro/LibretroApi.cs index 975d09deb7..5e81a13b93 100644 --- a/BizHawk.Emulation.Cores/Libretro/LibretroApi.cs +++ b/BizHawk.Emulation.Cores/Libretro/LibretroApi.cs @@ -150,6 +150,7 @@ namespace BizHawk.Emulation.Cores.Libretro { public retro_system_info retro_system_info; public retro_system_av_info retro_system_av_info; + public uint retro_serialize_size_initial; //size_t :( public uint retro_serialize_size; //size_t :( public uint retro_region; public uint retro_api_version; diff --git a/BizHawk.Emulation.Cores/Libretro/LibretroApi_CMD.cs b/BizHawk.Emulation.Cores/Libretro/LibretroApi_CMD.cs index 076950a988..9bb5b6540c 100644 --- a/BizHawk.Emulation.Cores/Libretro/LibretroApi_CMD.cs +++ b/BizHawk.Emulation.Cores/Libretro/LibretroApi_CMD.cs @@ -58,6 +58,13 @@ namespace BizHawk.Emulation.Cores.Libretro return true; } + public uint CMD_UpdateSerializeSize() + { + Message(eMessage.CMD_UpdateSerializeSize); + WaitForCMD(); + return comm->env.retro_serialize_size; + } + public bool CMD_Serialize(byte[] data) { bool ret = false; diff --git a/BizHawk.Emulation.Cores/Libretro/LibretroApi_Enums.cs b/BizHawk.Emulation.Cores/Libretro/LibretroApi_Enums.cs index ce44cadfe5..232189f0fd 100644 --- a/BizHawk.Emulation.Cores/Libretro/LibretroApi_Enums.cs +++ b/BizHawk.Emulation.Cores/Libretro/LibretroApi_Enums.cs @@ -24,6 +24,7 @@ namespace BizHawk.Emulation.Cores.Libretro CMD_Deinit, CMD_Reset, CMD_Run, + CMD_UpdateSerializeSize, CMD_Serialize, CMD_Unserialize, CMD_LAST, diff --git a/BizHawk.Emulation.Cores/Libretro/LibretroCore.cs b/BizHawk.Emulation.Cores/Libretro/LibretroCore.cs index 8f821c13e8..068b6214da 100644 --- a/BizHawk.Emulation.Cores/Libretro/LibretroCore.cs +++ b/BizHawk.Emulation.Cores/Libretro/LibretroCore.cs @@ -374,6 +374,7 @@ namespace BizHawk.Emulation.Cores.Libretro public void SaveStateBinary(System.IO.BinaryWriter writer) { + api.CMD_UpdateSerializeSize(); if (savebuff == null || savebuff.Length != api.comm->env.retro_serialize_size) { savebuff = new byte[api.comm->env.retro_serialize_size]; @@ -404,6 +405,7 @@ namespace BizHawk.Emulation.Cores.Libretro public byte[] SaveStateBinary() { + api.CMD_UpdateSerializeSize(); if (savebuff == null || savebuff.Length != api.comm->env.retro_serialize_size) { savebuff = new byte[api.comm->env.retro_serialize_size]; diff --git a/LibretroBridge/vs2015/LibretroBridge.cpp b/LibretroBridge/vs2015/LibretroBridge.cpp index 09baef543e..addc698708 100644 --- a/LibretroBridge/vs2015/LibretroBridge.cpp +++ b/LibretroBridge/vs2015/LibretroBridge.cpp @@ -89,6 +89,7 @@ enum eMessage : s32 CMD_Deinit, CMD_Reset, CMD_Run, + CMD_UpdateSerializeSize, CMD_Serialize, CMD_Unserialize, CMD_LAST, @@ -140,6 +141,7 @@ struct CommStruct //set by the core retro_system_info retro_system_info; retro_system_av_info retro_system_av_info; + size_t retro_serialize_size_initial; size_t retro_serialize_size; u32 retro_region; u32 retro_api_version; @@ -694,7 +696,7 @@ static void LoadHandler(eMessage msg) //Between calls to retro_load_game() and retro_unload_game(), the returned size is never allowed to be larger than a previous returned //value, to ensure that the frontend can allocate a save state buffer once. - comm.env.retro_serialize_size = comm.funs.retro_serialize_size(); + comm.env.retro_serialize_size_initial = comm.env.retro_serialize_size = comm.funs.retro_serialize_size(); //not sure when this can be called, but it's surely safe here comm.env.retro_region = comm.funs.retro_get_region(); @@ -722,6 +724,11 @@ void cmd_Run() comm.funs.retro_run(); } +void cmd_UpdateSerializeSize() +{ + comm.env.retro_serialize_size = comm.funs.retro_serialize_size(); +} + void cmd_Serialize() { comm.value = !!comm.funs.retro_serialize(comm.buf[BufId::Param0], comm.buf_size[BufId::Param0]); @@ -765,6 +772,7 @@ const Action kHandlers_CMD[] = { cmd_Deinit, cmd_Reset, cmd_Run, + cmd_UpdateSerializeSize, cmd_Serialize, cmd_Unserialize, }; diff --git a/output/dll/LibretroBridge.dll b/output/dll/LibretroBridge.dll index c685e1f9a35d6118d6bbb69cd8ef1506dbd57d65..3e94b57a67ec5e2ecefde5330f5a2fa3ede66a06 100644 GIT binary patch delta 2230 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 LTW|?p>?i*P?k6F7 From 16292b85bb8807c0ab42310fe456b6b022503c62 Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Mon, 12 Jun 2017 16:25:21 -0400 Subject: [PATCH 67/80] NES APU improvements passes some more of the test_apu_2 tests --- .../Consoles/Nintendo/NES/APU.cs | 31 +++++++++++++------ 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/APU.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/APU.cs index 7594655e8f..2e4ebec558 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/APU.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/APU.cs @@ -1016,6 +1016,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES bool irq_pending; bool dmc_irq; int pending_reg = -1; + bool doing_tick_quarter = false; byte pending_val = 0; public int seq_tick; public byte seq_val; @@ -1032,15 +1033,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES void sequencer_reset() { sequencer_counter = 0; - - if (sequencer_mode == 1) - { - sequencer_step = 0; - QuarterFrame(); - HalfFrame(); - } - else - sequencer_step = 0; + sequencer_step = 0; } //these figures are not valid for PAL. they must be recalculated with nintendulator's values above @@ -1062,6 +1055,20 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES if (seq_tick>0) { seq_tick--; + + // check if we will be doing the extra frame ticks or not + if (seq_tick==0) + { + if (((val >> 7) & 1) > 0) + { + if (!doing_tick_quarter) + { + QuarterFrame(); + HalfFrame(); + } + } + } + if (seq_tick==0) { sequencer_mode = (val >> 7) & 1; @@ -1149,6 +1156,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES void HalfFrame() { + doing_tick_quarter = true; pulse[0].clock_length_and_sweep(); pulse[1].clock_length_and_sweep(); triangle.clock_length_and_sweep(); @@ -1157,6 +1165,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES void QuarterFrame() { + doing_tick_quarter = true; pulse[0].clock_env(); pulse[1].clock_env(); triangle.clock_linear_counter(); @@ -1334,9 +1343,10 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES //notes: this set up is a bit convoluded at the moment, mainly because APU behaviour is not entirely understood //in partiuclar, there are several clock pulses affecting the APU, and when new written are latched is not known in detail //the current code simply matches known behaviour + if (pending_reg != -1) { - if (pending_reg == 0x4015 || pending_reg == 0x4017 || pending_reg==0x4003 || pending_reg==0x4007) + if (pending_reg == 0x4015 || pending_reg == 0x4015 || pending_reg == 0x4003 || pending_reg==0x4007) { _WriteReg(pending_reg, pending_val); pending_reg = -1; @@ -1352,6 +1362,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES sequencer_tick(); sequencer_write_tick(seq_val); + doing_tick_quarter = false; if (sequencer_irq_assert>0) { sequencer_irq_assert--; From 9275f8231040e3d8cc895c7290305d88c2f791c5 Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Tue, 13 Jun 2017 10:43:34 -0400 Subject: [PATCH 68/80] NES APU cleanup --- .../Consoles/Nintendo/NES/APU.cs | 271 ++++++++---------- 1 file changed, 118 insertions(+), 153 deletions(-) diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/APU.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/APU.cs index 2e4ebec558..1d2f1ca0e9 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/APU.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/APU.cs @@ -1,14 +1,14 @@ -//TODO - so many integers in the square wave output keep us from exactly unbiasing the waveform. also other waves probably. consider improving the unbiasing. -//ALSO - consider whether we should even be doing it: the nonlinear-mixing behaviour probably depends on those biases being there. -//if we have a better high-pass filter somewhere then we might could cope with the weird biases -//(mix higher integer precision with the non-linear mixer and then highpass filter befoure outputting s16s) +// TODO - so many integers in the square wave output keep us from exactly unbiasing the waveform. also other waves probably. consider improving the unbiasing. +// ALSO - consider whether we should even be doing it: the nonlinear-mixing behaviour probably depends on those biases being there. +// if we have a better high-pass filter somewhere then we might could cope with the weird biases +// (mix higher integer precision with the non-linear mixer and then highpass filter befoure outputting s16s) -//http://wiki.nesdev.com/w/index.php/APU_Mixer_Emulation -//http://wiki.nesdev.com/w/index.php/APU -//http://wiki.nesdev.com/w/index.php/APU_Pulse -//sequencer ref: http://wiki.nesdev.com/w/index.php/APU_Frame_Counter +// http://wiki.nesdev.com/w/index.php/APU_Mixer_Emulation +// http://wiki.nesdev.com/w/index.php/APU +// http://wiki.nesdev.com/w/index.php/APU_Pulse +// sequencer ref: http://wiki.nesdev.com/w/index.php/APU_Frame_Counter -//TODO - refactor length counter to be separate component +// TODO - refactor length counter to be separate component using System; using System.Collections.Generic; @@ -65,10 +65,10 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES static int[] DMC_RATE_PAL = { 398, 354, 316, 298, 276, 236, 210, 198, 176, 148, 132, 118, 98, 78, 66, 50 }; static int[] LENGTH_TABLE = { 10, 254, 20, 2, 40, 4, 80, 6, 160, 8, 60, 10, 14, 12, 26, 14, 12, 16, 24, 18, 48, 20, 96, 22, 192, 24, 72, 26, 16, 28, 32, 30 }; static byte[,] PULSE_DUTY = { - {0,1,0,0,0,0,0,0}, //(12.5%) - {0,1,1,0,0,0,0,0}, //(25%) - {0,1,1,1,1,0,0,0}, //(50%) - {1,0,0,1,1,1,1,1}, //(25% negated (75%)) + {0,1,0,0,0,0,0,0}, // (12.5%) + {0,1,1,0,0,0,0,0}, // (25%) + {0,1,1,1,1,0,0,0}, // (50%) + {1,0,0,1,1,1,1,1}, // (25% negated (75%)) }; static byte[] TRIANGLE_TABLE = { @@ -91,17 +91,17 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES public int unit; APU apu; - //reg0 + // reg0 int duty_cnt, env_loop, env_constant, env_cnt_value; public bool len_halt; - //reg1 + // reg1 int sweep_en, sweep_divider_cnt, sweep_negate, sweep_shiftcount; bool sweep_reload; - //reg2/3 + // reg2/3 int len_cnt; public int timer_raw_reload_value, timer_reload_value; - //misc.. + // misc.. int lenctr_en; public void SyncState(Serializer ser) @@ -143,7 +143,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES public void WriteReg(int addr, byte val) { - //Console.WriteLine("write pulse {0:X} {1:X}", addr, val); + // Console.WriteLine("write pulse {0:X} {1:X}", addr, val); switch (addr) { case 0: @@ -162,7 +162,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES case 2: timer_reload_value = (timer_reload_value & 0x700) | val; timer_raw_reload_value = timer_reload_value * 2 + 2; - //if (unit == 1) Console.WriteLine("{0} timer_reload_value: {1}", unit, timer_reload_value); + // if (unit == 1) Console.WriteLine("{0} timer_reload_value: {1}", unit, timer_reload_value); break; case 3: if (apu.len_clock_active) @@ -181,11 +181,11 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES duty_step = 0; env_start_flag = 1; - //allow the lenctr_en to kill the len_cnt + // allow the lenctr_en to kill the len_cnt set_lenctr_en(lenctr_en); - //serves as a useful note-on diagnostic - //if(unit==1) Console.WriteLine("{0} timer_reload_value: {1}", unit, timer_reload_value); + // serves as a useful note-on diagnostic + // if(unit==1) Console.WriteLine("{0} timer_reload_value: {1}", unit, timer_reload_value); break; } } @@ -193,12 +193,11 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES public void set_lenctr_en(int value) { lenctr_en = value; - //if the length counter is not enabled, then we must disable the length system in this way + // if the length counter is not enabled, then we must disable the length system in this way if (lenctr_en == 0) len_cnt = 0; } - //state - //why was all of this stuff not in the savestate??????? + // state int swp_divider_counter; bool swp_silence; int duty_step; @@ -211,34 +210,34 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES public void clock_length_and_sweep() { - //this should be optimized to update only when `timer_reload_value` changes + // this should be optimized to update only when `timer_reload_value` changes int sweep_shifter = timer_reload_value >> sweep_shiftcount; if (sweep_negate == 1) sweep_shifter = -sweep_shifter + unit; sweep_shifter += timer_reload_value; - //this sweep logic is always enabled: + // this sweep logic is always enabled: swp_silence = (timer_reload_value < 8 || (sweep_shifter > 0x7FF)); // && sweep_negate == 0)); - //does enable only block the pitch bend? does the clocking proceed? + // does enable only block the pitch bend? does the clocking proceed? if (sweep_en == 1) { - //clock divider + // clock divider if (swp_divider_counter != 0) swp_divider_counter--; if (swp_divider_counter == 0) { swp_divider_counter = sweep_divider_cnt + 1; - //divider was clocked: process sweep pitch bend + // divider was clocked: process sweep pitch bend if (sweep_shiftcount != 0 && !swp_silence) { timer_reload_value = sweep_shifter; timer_raw_reload_value = (timer_reload_value << 1) + 2; } - //TODO - does this change the user's reload value or the latched reload value? + // TODO - does this change the user's reload value or the latched reload value? } - //handle divider reload, after clocking happens + // handle divider reload, after clocking happens if (sweep_reload) { swp_divider_counter = sweep_divider_cnt + 1; @@ -246,7 +245,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES } } - //env_loopdoubles as "halt length counter" + // env_loopdoubles as "halt length counter" if ((env_loop == 0 || len_halt) && len_cnt > 0) len_cnt--; } @@ -296,22 +295,22 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES duty_step++; } duty_value = PULSE_DUTY[duty_cnt, duty_step] == 1; - //reload timer + // reload timer timer_counter = timer_raw_reload_value; } int newsample; - if (duty_value) //high state of duty cycle + if (duty_value) // high state of duty cycle { newsample = env_output; if (swp_silence || len_cnt == 0) newsample = 0; // silenced } else - newsample = 0; //duty cycle is 0, silenced. + newsample = 0; // duty cycle is 0, silenced. - //newsample -= env_output >> 1; //unbias + // newsample -= env_output >> 1; //unbias if (newsample != sample) { apu.recalculate = true; @@ -350,20 +349,20 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES { APU apu; - //reg0 (sweep) + // reg0 (sweep) int env_cnt_value, env_loop, env_constant; public bool len_halt; - //reg2 (mode and period) + // reg2 (mode and period) int mode_cnt, period_cnt; - //reg3 (length counter and envelop trigger) + // reg3 (length counter and envelop trigger) int len_cnt; - //set from apu: + // set from apu: int lenctr_en; - //state + // state int shift_register = 1; int timer_counter; public int sample; @@ -413,12 +412,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES ser.Sync("period_cnt", ref period_cnt); ser.Sync("len_halt", ref len_halt); - - //ser.Sync("mode_cnt", ref mode_cnt); - //ser.Sync("period_cnt", ref period_cnt); - ser.Sync("len_cnt", ref len_cnt); - ser.Sync("lenctr_en", ref lenctr_en); ser.Sync("shift_register", ref shift_register); @@ -442,7 +436,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES case 0: env_cnt_value = val & 0xF; env_constant = (val >> 4) & 1; - //we want to delay a halt until after a length clock if they happen on the same cycle + // we want to delay a halt until after a length clock if they happen on the same cycle if (env_loop==0 && ((val >> 5) & 1)==1) { len_halt = true; @@ -454,7 +448,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES case 2: period_cnt = NOISE_TABLE[val & 0xF]; mode_cnt = (val >> 7) & 1; - //Console.WriteLine("noise period: {0}, vol: {1}", (val & 0xF), env_cnt_value); + // Console.WriteLine("noise period: {0}, vol: {1}", (val & 0xF), env_cnt_value); break; case 3: if (apu.len_clock_active) @@ -478,8 +472,8 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES public void set_lenctr_en(int value) { lenctr_en = value; - //Console.WriteLine("noise lenctr_en: " + lenctr_en); - //if the length counter is not enabled, then we must disable the length system in this way + // Console.WriteLine("noise lenctr_en: " + lenctr_en); + // if the length counter is not enabled, then we must disable the length system in this way if (lenctr_en == 0) len_cnt = 0; } @@ -525,7 +519,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES if (timer_counter > 0) timer_counter--; if (timer_counter == 0 && period_cnt != 0) { - //reload timer + // reload timer timer_counter = period_cnt; int feedback_bit; if (mode_cnt == 1) feedback_bit = (shift_register >> 6) & 1; @@ -551,13 +545,13 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES public sealed class TriangleUnit { - //reg0 + // reg0 int linear_counter_reload, control_flag; - //reg1 (n/a) - //reg2/3 + // reg1 (n/a) + // reg2/3 int timer_cnt, halt_flag, len_cnt; public bool halt_2; - //misc.. + // misc.. int lenctr_en; int linear_counter, timer, timer_cnt_reload; int seq = 0; @@ -589,13 +583,13 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES public void set_lenctr_en(int value) { lenctr_en = value; - //if the length counter is not enabled, then we must disable the length system in this way + // if the length counter is not enabled, then we must disable the length system in this way if (lenctr_en == 0) len_cnt = 0; } public void WriteReg(int addr, byte val) { - //Console.WriteLine("tri writes addr={0}, val={1:x2}", addr, val); + // Console.WriteLine("tri writes addr={0}, val={1:x2}", addr, val); switch (addr) { case 0: @@ -623,11 +617,11 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES } halt_flag = 1; - //allow the lenctr_en to kill the len_cnt + // allow the lenctr_en to kill the len_cnt set_lenctr_en(lenctr_en); break; } - //Console.WriteLine("tri timer_reload_value: {0}", timer_cnt_reload); + // Console.WriteLine("tri timer_reload_value: {0}", timer_cnt_reload); } public bool Debug_IsSilenced @@ -649,11 +643,8 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES public void Run() { - //when clocked by timer - //seq steps forward - //except when linear counter or - //length counter is 0 - + // when clocked by timer, seq steps forward + // except when linear counter or length counter is 0 bool en = len_cnt != 0 && linear_counter != 0; bool do_clock = false; @@ -672,9 +663,9 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES newsample = TRIANGLE_TABLE[seq]; - //special hack: frequently, games will use the maximum frequency triangle in order to mute it - //apparently this results in the DAC for the triangle wave outputting a steady level at about 7.5 - //so we'll emulate it at the digital level + // special hack: frequently, games will use the maximum frequency triangle in order to mute it + // apparently this results in the DAC for the triangle wave outputting a steady level at about 7.5 + // so we'll emulate it at the digital level if (timer_cnt_reload == 1) newsample = 8; if (newsample != sample) @@ -687,7 +678,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES public void clock_length_and_sweep() { - //env_loopdoubles as "halt length counter" + // env_loopdoubles as "halt length counter" if (len_cnt > 0 && halt_flag == 0) len_cnt--; } @@ -704,21 +695,9 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES linear_counter--; } - //declick when the sound begins - //if (halt_flag == 1 && control_flag == 0) - //{ - // seq = 16; - // Console.WriteLine("declicked triangle"); - //} - - //declick on end of sound - //bool en = len_cnt != 0 && linear_counter != 0; - //if (!en) - // if (sample < 0) sample++; else if (sample > 0) sample--; - halt_flag = control_flag; } - } //class TriangleUnit + } // class TriangleUnit sealed class DMCUnit { @@ -740,7 +719,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES bool loop_flag; int timer_reload; - //dmc delay per visual 2a03 + // dmc delay per visual 2a03 int delay; // this timer never stops, ever, so it is convenient to use for even/odd timing used elsewhere @@ -778,8 +757,6 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES ser.Sync("dmc_call_delay", ref delay); - //int sample = 0; //junk - //ser.Sync("sample", ref sample); ser.EndSection(); } @@ -792,7 +769,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES Clock(); } - //Any time the sample buffer is in an empty state and bytes remaining is not zero, the following occur: + // Any time the sample buffer is in an empty state and bytes remaining is not zero, the following occur: // also note that the halt for DMC DMA occurs on APU cycles only (hence the timer check) if (!sample_buffer_filled && sample_length > 0 && apu.dmc_dma_countdown == -1 && delay==0) { @@ -806,7 +783,8 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES { delay = 2; } - } else + } + else { if (timer % 2 == 1) { @@ -837,18 +815,17 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES apu.call_from_write = false; } } - } } void Clock() { - //If the silence flag is clear, bit 0 of the shift register is applied to the counter as follows: - //if bit 0 is clear and the delta-counter is greater than 1, the counter is decremented by 2; - //otherwise, if bit 0 is set and the delta-counter is less than 126, the counter is incremented by 2 + // If the silence flag is clear, bit 0 of the shift register is applied to the counter as follows: + // if bit 0 is clear and the delta-counter is greater than 1, the counter is decremented by 2; + // otherwise, if bit 0 is set and the delta-counter is less than 126, the counter is incremented by 2 if (!out_silence) { - //apply current sample bit to delta counter + // apply current sample bit to delta counter if (out_shift.Bit(0)) { if (out_deltacounter < 126) @@ -859,26 +836,25 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES if (out_deltacounter > 1) out_deltacounter -= 2; } - //Console.WriteLine("dmc out sample: {0}", out_deltacounter); + // Console.WriteLine("dmc out sample: {0}", out_deltacounter); apu.recalculate = true; } - //The right shift register is clocked. + // The right shift register is clocked. out_shift >>= 1; - //The bits-remaining counter is decremented. If it becomes zero, a new cycle is started. + // The bits-remaining counter is decremented. If it becomes zero, a new cycle is started. if (out_bits_remaining == 0) { - //The bits-remaining counter is loaded with 8. + // The bits-remaining counter is loaded with 8. out_bits_remaining = 7; - //If the sample buffer is empty then the silence flag is set + // If the sample buffer is empty then the silence flag is set if (!sample_buffer_filled) { out_silence = true; - //out_deltacounter = 64; //gonna go out on a limb here and guess this gets reset. could make some things pop, though, if they dont end at 0. } else - //otherwise, the silence flag is cleared and the sample buffer is emptied into the shift register. + // otherwise, the silence flag is cleared and the sample buffer is emptied into the shift register. { out_silence = false; out_shift = sample_buffer; @@ -892,15 +868,14 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES { if (!en) { - //If the DMC bit is clear, the DMC bytes remaining will be set to 0 + // If the DMC bit is clear, the DMC bytes remaining will be set to 0 + // and the DMC will silence when it empties. sample_length = 0; - //and the DMC will silence when it empties. - // (what does this mean? does out_deltacounter get reset to 0? maybe just that the out_silence flag gets set, but this is natural) - } + } else { - //only start playback if playback is stopped - //Console.Write(sample_length); Console.Write(" "); Console.Write(sample_buffer_filled); Console.Write(" "); Console.Write(apu.dmc_irq); Console.Write("\n"); + // only start playback if playback is stopped + // Console.Write(sample_length); Console.Write(" "); Console.Write(sample_buffer_filled); Console.Write(" "); Console.Write(apu.dmc_irq); Console.Write("\n"); if (sample_length == 0) { sample_address = user_address; @@ -914,7 +889,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES } } - //irq is acknowledged or sure to be clear, in either case + // irq is acknowledged or sure to be clear, in either case apu.dmc_irq = false; apu.SyncIRQ(); } @@ -926,7 +901,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES public void WriteReg(int addr, byte val) { - //Console.WriteLine("DMC writes addr={0}, val={1:x2}", addr, val); + // Console.WriteLine("DMC writes addr={0}, val={1:x2}", addr, val); switch (addr) { case 0: @@ -934,12 +909,12 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES loop_flag = val.Bit(6); timer_reload = DMC_RATE[val & 0xF]; if (!irq_enabled) apu.dmc_irq = false; - //apu.dmc_irq = false; + // apu.dmc_irq = false; apu.SyncIRQ(); break; case 1: out_deltacounter = val & 0x7F; - //apu.nes.LogLine("~~ out_deltacounter set to {0}", out_deltacounter); + // apu.nes.LogLine("~~ out_deltacounter set to {0}", out_deltacounter); apu.recalculate = true; break; case 2: @@ -958,10 +933,10 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES sample_buffer = apu.nes.ReadMemory((ushort)sample_address); sample_buffer_filled = true; sample_address = (ushort)(sample_address + 1); - //Console.WriteLine(sample_length); - //Console.WriteLine(user_length); + // Console.WriteLine(sample_length); + // Console.WriteLine(user_length); sample_length--; - //apu.pending_length_change = 1; + // apu.pending_length_change = 1; } if (sample_length == 0) { @@ -972,7 +947,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES } else if (irq_enabled) apu.dmc_irq = true; } - //Console.WriteLine("fetching dmc byte: {0:X2}", sample_buffer); + // Console.WriteLine("fetching dmc byte: {0:X2}", sample_buffer); } } @@ -1030,14 +1005,6 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES dmc.Fetch(); } - void sequencer_reset() - { - sequencer_counter = 0; - sequencer_step = 0; - } - - //these figures are not valid for PAL. they must be recalculated with nintendulator's values above - int[][] sequencer_lut = new int[2][]; static int[][] sequencer_lut_ntsc = new int[][]{ @@ -1056,10 +1023,13 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES { seq_tick--; - // check if we will be doing the extra frame ticks or not if (seq_tick==0) { - if (((val >> 7) & 1) > 0) + sequencer_mode = (val >> 7) & 1; + + // Console.WriteLine("apu 4017 = {0:X2}", val); + // check if we will be doing the extra frame ticks or not + if (sequencer_mode==1) { if (!doing_tick_quarter) { @@ -1067,18 +1037,15 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES HalfFrame(); } } - } - if (seq_tick==0) - { - sequencer_mode = (val >> 7) & 1; - //Console.WriteLine("apu 4017 = {0:X2}", val); sequencer_irq_inhibit = (val >> 6) & 1; if (sequencer_irq_inhibit == 1) { sequencer_irq_flag = false; } - sequencer_reset(); + + sequencer_counter = 0; + sequencer_step = 0; } } } @@ -1117,23 +1084,23 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES void sequencer_check() { - //Console.WriteLine("sequencer mode {0} step {1}", sequencer_mode, sequencer_step); + // Console.WriteLine("sequencer mode {0} step {1}", sequencer_mode, sequencer_step); bool quarter, half, reset; switch (sequencer_mode) { - case 0: //4-step + case 0: // 4-step quarter = true; half = sequencer_step == 1; reset = sequencer_step == 3; if (reset && sequencer_irq_inhibit == 0) { - //Console.WriteLine("{0} {1,5} set irq_assert", nes.Frame, sequencer_counter); - //sequencer_irq_assert = 2; + // Console.WriteLine("{0} {1,5} set irq_assert", nes.Frame, sequencer_counter); + // sequencer_irq_assert = 2; sequencer_irq_flag = true; } break; - case 1: //5-step + case 1: // 5-step quarter = sequencer_step != 3; half = sequencer_step == 1; reset = sequencer_step == 4; @@ -1174,12 +1141,12 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES public void NESSoftReset() { - //need to study what happens to apu and stuff.. + // need to study what happens to apu and stuff.. sequencer_irq = false; sequencer_irq_flag = false; _WriteReg(0x4015, 0); - //for 4017, its as if the last value written gets rewritten + // for 4017, its as if the last value written gets rewritten sequencer_mode = (seq_val >> 7) & 1; sequencer_irq_inhibit = (seq_val >> 6) & 1; if (sequencer_irq_inhibit == 1) @@ -1194,7 +1161,6 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES { // "at power on it is as if $00 was written to $4017 9-12 cycles before the reset vector" // that translates to a starting value for the counter of -2 - sequencer_counter = -2; } @@ -1271,7 +1237,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES return (byte)ret; } default: - //don't return 0xFF here or SMB will break + // don't return 0xFF here or SMB will break return 0x00; } } @@ -1283,13 +1249,13 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES case 0x4015: { byte ret = PeekReg(0x4015); - //Console.WriteLine("{0} {1,5} $4015 clear irq, was at {2}", nes.Frame, sequencer_counter, sequencer_irq); + // Console.WriteLine("{0} {1,5} $4015 clear irq, was at {2}", nes.Frame, sequencer_counter, sequencer_irq); sequencer_irq_flag = false; SyncIRQ(); return ret; } default: - //don't return 0xFF here or SMB will break + // don't return 0xFF here or SMB will break return 0x00; } } @@ -1328,7 +1294,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES EmitSample(); - //we need to predict if there will be a length clock here, because the sequencer ticks last, but the + // we need to predict if there will be a length clock here, because the sequencer ticks last, but the // timer reload shouldn't happen if length clock and write happen simultaneously // I'm not sure if we can avoid this by simply processing the sequencer first // but at the moment that would break everything, so this is good enough for now @@ -1339,11 +1305,10 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES len_clock_active = true; } - //handle writes - //notes: this set up is a bit convoluded at the moment, mainly because APU behaviour is not entirely understood - //in partiuclar, there are several clock pulses affecting the APU, and when new written are latched is not known in detail - //the current code simply matches known behaviour - + // handle writes + // notes: this set up is a bit convoluded at the moment, mainly because APU behaviour is not entirely understood + // in partiuclar, there are several clock pulses affecting the APU, and when new written are latched is not known in detail + // the current code simply matches known behaviour if (pending_reg != -1) { if (pending_reg == 0x4015 || pending_reg == 0x4015 || pending_reg == 0x4003 || pending_reg==0x4007) @@ -1375,9 +1340,9 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES SyncIRQ(); nes.irq_apu = irq_pending; - //since the units run concurrently, the APU frame sequencer is ran last because - //it can change the ouput values of the pulse/triangle channels - //we want the changes to affect it on the *next* cycle. + // since the units run concurrently, the APU frame sequencer is ran last because + // it can change the ouput values of the pulse/triangle channels + // we want the changes to affect it on the *next* cycle. if (sequencer_irq_flag == false) sequencer_irq = false; @@ -1433,7 +1398,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES int s_noise = noise.sample; int s_dmc = dmc.sample; - //int s_ext = 0; //gamepak + // int s_ext = 0; //gamepak /* if (!EnableSquare1) s_pulse0 = 0; @@ -1443,7 +1408,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES if (!EnableDMC) s_dmc = 0; */ - //more properly correct + // more properly correct float pulse_out, tnd_out; if (s_pulse0 == 0 && s_pulse1 == 0) pulse_out = 0; @@ -1452,8 +1417,8 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES tnd_out = 0; else tnd_out = 159.79f / (1 / ((s_tri / 8227.0f) + (s_noise / 12241.0f /* * NOISEADJUST*/) + (s_dmc / 22638.0f)) + 100); float output = pulse_out + tnd_out; - //output = output * 2 - 1; - //this needs to leave enough headroom for straying DC bias due to the DMC unit getting stuck outputs. smb3 is bad about that. + // output = output * 2 - 1; + // this needs to leave enough headroom for straying DC bias due to the DMC unit getting stuck outputs. smb3 is bad about that. int mix = (int)(20000 * output); dlist.Add(new Delta(sampleclock, mix - oldmix)); From 42763c00d74a0ffc4462ac60a90a5b2622fbc0d7 Mon Sep 17 00:00:00 2001 From: Trivial-Man Date: Thu, 15 Jun 2017 11:41:27 -0600 Subject: [PATCH 69/80] Add drawing features Brings canvas up to feature parity with LuaLibraryBase --- BizHawk.Client.EmuHawk/tools/Lua/LuaCanvas.cs | 312 +++++++++++++++++- 1 file changed, 311 insertions(+), 1 deletion(-) diff --git a/BizHawk.Client.EmuHawk/tools/Lua/LuaCanvas.cs b/BizHawk.Client.EmuHawk/tools/Lua/LuaCanvas.cs index 81990c0b9d..8319f7b25b 100644 --- a/BizHawk.Client.EmuHawk/tools/Lua/LuaCanvas.cs +++ b/BizHawk.Client.EmuHawk/tools/Lua/LuaCanvas.cs @@ -1,14 +1,53 @@ -using System.ComponentModel; +using System.ComponentModel; using System.Drawing; using System.Windows.Forms; +using System.IO; using BizHawk.Client.Common; +using LuaInterface; +using System; +using System.Collections.Generic; namespace BizHawk.Client.EmuHawk { [Description("Represents a canvas object returned by the gui.createcanvas() method")] public partial class LuaCanvas : Form { + private Color _defaultForeground = Color.White; + private Color? _defaultBackground; + + #region Helpers + private readonly Dictionary _imageCache = new Dictionary(); + + private readonly Dictionary _solidBrushes = new Dictionary(); + private readonly Dictionary _pens = new Dictionary(); + + private SolidBrush GetBrush(Color color) + { + SolidBrush b; + if (!_solidBrushes.TryGetValue(color, out b)) + { + b = new SolidBrush(color); + _solidBrushes[color] = b; + } + + return b; + } + + private Pen GetPen(Color color) + { + Pen p; + if (!_pens.TryGetValue(color, out p)) + { + p = new Pen(color); + _pens[color] = p; + } + + return p; + } + + #endregion + private readonly Graphics _graphics; public LuaCanvas(int width, int height) @@ -38,6 +77,277 @@ namespace BizHawk.Client.EmuHawk pictureBox.Refresh(); } + [LuaMethodAttributes("defaultForeground", "Sets the default foreground color to use in drawing methods, white by default")] + public void SetDefaultForegroundColor(Color color) + { + _defaultForeground = color; + } + + [LuaMethodAttributes("defaultBackground", "Sets the default background color to use in drawing methods, transparent by default")] + public void SetDefaultBackgroundColor(Color color) + { + _defaultBackground = color; + } + + [LuaMethodAttributes("drawBezier", "Draws a Bezier curve using the table of coordinates provided in the given color")] + public void DrawBezier(LuaTable points, Color color) + { + try + { + var pointsArr = new Point[4]; + + var i = 0; + foreach (LuaTable point in points.Values) + { + pointsArr[i] = new Point((int)(double)(point[1]), (int)(double)(point[2])); + i++; + if (i >= 4) + { + break; + } + } + + _graphics.DrawBezier(GetPen(color), pointsArr[0], pointsArr[1], pointsArr[2], pointsArr[3]); + } + catch (Exception) + { + // need to stop the script from here + return; + } + } + + [LuaMethodAttributes( + "drawBox", "Draws a rectangle on screen from x1/y1 to x2/y2. Same as drawRectangle except it receives two points intead of a point and width/height")] + public void DrawBox(int x, int y, int x2, int y2, Color? line = null, Color? background = null) + { + try + { + if (x < x2) + { + x2 = Math.Abs(x - x2); + } + else + { + x2 = x - x2; + x -= x2; + } + + if (y < y2) + { + y2 = Math.Abs(y - y2); + } + else + { + y2 = y - y2; + y -= y2; + } + + _graphics.DrawRectangle(GetPen(line ?? _defaultForeground), x, y, x2, y2); + + var bg = background ?? _defaultBackground; + if (bg.HasValue) + { + _graphics.FillRectangle(GetBrush(bg.Value), x + 1, y + 1, x2 - 1, y2 - 1); + } + } + catch (Exception) + { + // need to stop the script from here + return; + } + } + + [LuaMethodAttributes( + "drawEllipse", "Draws an ellipse at the given coordinates and the given width and height. Line is the color of the ellipse. Background is the optional fill color")] + public void DrawEllipse(int x, int y, int width, int height, Color? line = null, Color? background = null) + { + try + { + var bg = background ?? _defaultBackground; + if (bg.HasValue) + { + var brush = GetBrush(bg.Value); + _graphics.FillEllipse(brush, x, y, width, height); + } + + _graphics.DrawEllipse(GetPen(line ?? _defaultForeground), x, y, width, height); + } + catch (Exception) + { + // need to stop the script from here + return; + } + } + + [LuaMethodAttributes( + "drawIcon", "draws an Icon (.ico) file from the given path at the given coordinate. width and height are optional. If specified, it will resize the image accordingly")] + public void DrawIcon(string path, int x, int y, int? width = null, int? height = null) + { + try + { + Icon icon; + if (width.HasValue && height.HasValue) + { + icon = new Icon(path, width.Value, height.Value); + } + else + { + icon = new Icon(path); + } + + _graphics.DrawIcon(icon, x, y); + } + catch (Exception) + { + // need to stop the script from here + return; + } + } + + [LuaMethodAttributes( + "drawImage", "draws an image file from the given path at the given coordinate. width and height are optional. If specified, it will resize the image accordingly")] + public void DrawImage(string path, int x, int y, int? width = null, int? height = null, bool cache = true) + { + if (!File.Exists(path)) + { + //Log("File not found: " + path); + return; + } + + Image img; + if (_imageCache.ContainsKey(path)) + { + img = _imageCache[path]; + } + else + { + img = Image.FromFile(path); + if (cache) + { + _imageCache.Add(path, img); + } + } + + _graphics.DrawImage(img, x, y, width ?? img.Width, height ?? img.Height); + } + + [LuaMethodAttributes( + "clearImageCache", "clears the image cache that is built up by using gui.drawImage, also releases the file handle for cached images")] + public void ClearImageCache() + { + foreach (var image in _imageCache) + { + image.Value.Dispose(); + } + + _imageCache.Clear(); + } + + [LuaMethodAttributes( + "drawImageRegion", "draws a given region of an image file from the given path at the given coordinate, and optionally with the given size")] + public void DrawImageRegion(string path, int source_x, int source_y, int source_width, int source_height, int dest_x, int dest_y, int? dest_width = null, int? dest_height = null) + { + if (!File.Exists(path)) + { + //Log("File not found: " + path); + return; + } + + Image img; + if (_imageCache.ContainsKey(path)) + { + img = _imageCache[path]; + } + else + { + img = Image.FromFile(path); + _imageCache.Add(path, img); + } + + var destRect = new Rectangle(dest_x, dest_y, dest_width ?? source_width, dest_height ?? source_height); + + _graphics.DrawImage(img, destRect, source_x, source_y, source_width, source_height, GraphicsUnit.Pixel); + } + + [LuaMethodAttributes( + "drawLine", "Draws a line from the first coordinate pair to the 2nd. Color is optional (if not specified it will be drawn black)")] + public void DrawLine(int x1, int y1, int x2, int y2, Color? color = null) + { + _graphics.DrawLine(GetPen(color ?? _defaultForeground), x1, y1, x2, y2); + } + + [LuaMethodAttributes("drawAxis", "Draws an axis of the specified size at the coordinate pair.)")] + public void DrawAxis(int x, int y, int size, Color? color = null) + { + DrawLine(x + size, y, x - size, y, color); + DrawLine(x, y + size, x, y - size, color); + } + + [LuaMethodAttributes("drawPie", "draws a Pie shape at the given coordinates and the given width and height")] + public void DrawPie( + int x, + int y, + int width, + int height, + int startangle, + int sweepangle, + Color? line = null, + Color? background = null) + { + var bg = background ?? _defaultBackground; + if (bg.HasValue) + { + var brush = GetBrush(bg.Value); + _graphics.FillPie(brush, x, y, width, height, startangle, sweepangle); + } + + _graphics.DrawPie(GetPen(line ?? _defaultForeground), x + 1, y + 1, width - 1, height - 1, startangle, sweepangle); + } + + [LuaMethodAttributes( + "drawPixel", "Draws a single pixel at the given coordinates in the given color. Color is optional (if not specified it will be drawn black)")] + public void DrawPixel(int x, int y, Color? color = null) + { + try + { + _graphics.DrawLine(GetPen(color ?? _defaultForeground), x, y, x + 0.1F, y); + } + catch (Exception) + { + // need to stop the script from here + return; + } + } + + [LuaMethodAttributes( + "drawPolygon", "Draws a polygon using the table of coordinates specified in points. This should be a table of tables(each of size 2). Line is the color of the polygon. Background is the optional fill color")] + public void DrawPolygon(LuaTable points, Color? line = null, Color? background = null) + { + try + { + var pointsArr = new Point[points.Values.Count]; + var i = 0; + foreach (LuaTable point in points.Values) + { + pointsArr[i] = new Point((int)(double)(point[1]), (int)(double)(point[2])); + i++; + } + + _graphics.DrawPolygon(GetPen(line ?? _defaultForeground), pointsArr); + var bg = background ?? _defaultBackground; + if (bg.HasValue) + { + _graphics.FillPolygon(GetBrush(bg.Value), pointsArr); + } + } + catch (Exception) + { + // need to stop the script from here + return; + } + } + + [LuaMethodAttributes( "DrawRectangle", "Draws a rectangle at the given coordinate and the given width and height. Line is the color of the box. Background is the optional fill color")] From 46109c29a75eb7e45c8e2d4ba96fdb2d1dbed638 Mon Sep 17 00:00:00 2001 From: zeromus Date: Thu, 15 Jun 2017 15:01:50 -0500 Subject: [PATCH 70/80] add LuaCanvas DrawArc missing from last luacanvas PR merge --- BizHawk.Client.EmuHawk/tools/Lua/LuaCanvas.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/BizHawk.Client.EmuHawk/tools/Lua/LuaCanvas.cs b/BizHawk.Client.EmuHawk/tools/Lua/LuaCanvas.cs index 8319f7b25b..6336b17a9d 100644 --- a/BizHawk.Client.EmuHawk/tools/Lua/LuaCanvas.cs +++ b/BizHawk.Client.EmuHawk/tools/Lua/LuaCanvas.cs @@ -283,6 +283,16 @@ namespace BizHawk.Client.EmuHawk DrawLine(x, y + size, x, y - size, color); } + [LuaMethodAttributes( + "drawArc", + "draws a Arc shape at the given coordinates and the given width and height" + )] + public void DrawArc(int x, int y, int width, int height, int startangle, int sweepangle, Color? line = null) + { + var pen = new Pen(line.HasValue ? line.Value : Color.Black); + _graphics.DrawArc(pen, x, y, width, height, startangle, sweepangle); + } + [LuaMethodAttributes("drawPie", "draws a Pie shape at the given coordinates and the given width and height")] public void DrawPie( int x, From 9849d124fed9fe48d44566c214c280d2901fc56a Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Fri, 16 Jun 2017 08:50:28 -0400 Subject: [PATCH 71/80] SNES saveram: check for existance checks if SGB saveram exists before attempting to assign it to the buffer pointer. Also return null if no saveram is found, which conforms to what other cores are doing and what EMUHawk expects --- .../Consoles/Nintendo/SNES/LibsnesCore.ISaveRam.cs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/SNES/LibsnesCore.ISaveRam.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/SNES/LibsnesCore.ISaveRam.cs index 0cf3e94476..cb1ffdfb68 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/SNES/LibsnesCore.ISaveRam.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/SNES/LibsnesCore.ISaveRam.cs @@ -15,11 +15,16 @@ namespace BizHawk.Emulation.Cores.Nintendo.SNES { byte* buf = Api.QUERY_get_memory_data(LibsnesApi.SNES_MEMORY.CARTRIDGE_RAM); var size = Api.QUERY_get_memory_size(LibsnesApi.SNES_MEMORY.CARTRIDGE_RAM); - if (buf == null) + + if (buf == null && Api.QUERY_get_memory_size(LibsnesApi.SNES_MEMORY.SGB_CARTRAM)>0) { buf = Api.QUERY_get_memory_data(LibsnesApi.SNES_MEMORY.SGB_CARTRAM); size = Api.QUERY_get_memory_size(LibsnesApi.SNES_MEMORY.SGB_CARTRAM); } + if (buf==null) + { + return null; + } var ret = new byte[size]; Marshal.Copy((IntPtr)buf, ret, 0, size); From 42ddfc0d23e11025a7024e33448f693aa72f6341 Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Fri, 16 Jun 2017 10:34:35 -0400 Subject: [PATCH 72/80] Update MainForm.cs --- BizHawk.Client.EmuHawk/MainForm.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/BizHawk.Client.EmuHawk/MainForm.cs b/BizHawk.Client.EmuHawk/MainForm.cs index 21dff09bae..fbe6691143 100644 --- a/BizHawk.Client.EmuHawk/MainForm.cs +++ b/BizHawk.Client.EmuHawk/MainForm.cs @@ -3634,10 +3634,10 @@ namespace BizHawk.Client.EmuHawk ((OpenAdvanced_OpenRom)ioa).Path = loader.CanonicalFullPath; } - string loaderName = "*" + OpenAdvancedSerializer.Serialize(ioa); - if (result) { + + string loaderName = "*" + OpenAdvancedSerializer.Serialize(ioa); Emulator = loader.LoadedEmulator; Global.Game = loader.Game; CoreFileProvider.SyncCoreCommInputSignals(nextComm); From 10f826694f2b5bf391390439a4418dbe35859968 Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Fri, 16 Jun 2017 10:35:41 -0400 Subject: [PATCH 73/80] Update RomLoader.cs Fixes #865 --- BizHawk.Client.Common/RomLoader.cs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/BizHawk.Client.Common/RomLoader.cs b/BizHawk.Client.Common/RomLoader.cs index 6f0f250422..3f89408972 100644 --- a/BizHawk.Client.Common/RomLoader.cs +++ b/BizHawk.Client.Common/RomLoader.cs @@ -317,6 +317,15 @@ namespace BizHawk.Client.Common } else { + // at this point, file is either assigned to the ROM path, if it exists, + // or is empty and corecomm is not a libretro core + // so, we still need to check path here before continuing + if (string.IsNullOrEmpty(path)) + { + Console.WriteLine("No ROM to Load"); + return false; + } + // if not libretro: // do extension checknig ext = file.Extension.ToLowerInvariant(); From 000d30025a91ea8279872149d44fb0cb658b6b0e Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Fri, 16 Jun 2017 16:44:57 -0400 Subject: [PATCH 74/80] A7800Hawk commit #4 -Start Maria DMA and frame execution -Refactor CPU execution -Expose more tools (Hex Editor, RAM Search, etc) -Add Ready and Halt behaviours trigggered by Maria --- .../Atari/A7800Hawk/A7800Hawk.IDebuggable.cs | 2 +- .../Atari/A7800Hawk/A7800Hawk.IEmulator.cs | 96 +++++++----- .../A7800Hawk/A7800Hawk.IMemoryDomains.cs | 1 + .../Consoles/Atari/A7800Hawk/A7800Hawk.cs | 9 +- .../Consoles/Atari/A7800Hawk/Maria.cs | 144 +++++++++++++++++- .../Consoles/Atari/A7800Hawk/MemoryMap.cs | 18 ++- 6 files changed, 216 insertions(+), 54 deletions(-) diff --git a/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800Hawk.IDebuggable.cs b/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800Hawk.IDebuggable.cs index 056eb62a0a..0a83661f8a 100644 --- a/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800Hawk.IDebuggable.cs +++ b/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800Hawk.IDebuggable.cs @@ -54,7 +54,7 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk } } - public IMemoryCallbackSystem MemoryCallbacks { get; private set; } + public IMemoryCallbackSystem MemoryCallbacks { get; } = new MemoryCallbackSystem(); public bool CanStep(StepType type) { diff --git a/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800Hawk.IEmulator.cs b/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800Hawk.IEmulator.cs index 09ad452125..d66887478e 100644 --- a/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800Hawk.IEmulator.cs +++ b/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800Hawk.IEmulator.cs @@ -12,7 +12,10 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk //Maria related variables public int cycle; public int cpu_cycle; - public int scanline; + public bool cpu_is_haltable; + public bool cpu_is_halted; + public bool cpu_halt_pending; + public bool cpu_resume_pending; // there are 4 maria cycles in a CPU cycle (fast access, both NTSC and PAL) // if the 6532 or TIA are accessed (PC goes to one of those addresses) the next access will be slower by 1/2 a CPU cycle @@ -47,58 +50,67 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk // read the controller state here for now GetControllerState(controller); - scanline = 0; + maria.RunFrame(); + } - // actually execute the frame - while (scanline < 263) + public void RunCPUCycle() + { + cpu_cycle++; + tia._hsyncCnt++; + + if (cpu_cycle <= (2 + (slow_access ? 1 : 0))) { - maria.Execute(cycle, scanline); - cycle++; - cpu_cycle++; - tia._hsyncCnt++; + cpu_is_haltable = true; + } else + { + cpu_is_haltable = false; + } - // the time a cpu cycle takes depends on the status of the address bus - // any address in range of the TIA or m6532 takes an extra cycle to complete - if (cpu_cycle==(4 + (slow_access ? 2 : 0))) - { + // the time a cpu cycle takes depends on the status of the address bus + // any address in range of the TIA or m6532 takes an extra cycle to complete + if (cpu_cycle == (4 + (slow_access ? 2 : 0))) + { + if (!cpu_is_halted) cpu.ExecuteOne(); - cpu_cycle = 0; - } - - // determine if the next access will be fast or slow - if (cpu.PC < 0x0400) + + cpu_cycle = 0; + + if (cpu_halt_pending) { - if ((cpu.PC & 0xFF) < 0x20) - { - if ((A7800_control_register & 0x1) == 0 && (cpu.PC < 0x20)) - { - slow_access = false; - } - else - { - slow_access = true; - } - } - else if (cpu.PC < 0x300) - { - slow_access = true; - } - else - { - slow_access = false; - } + cpu_halt_pending = false; + cpu_is_halted = true; } - - if (cycle == 454) + if (cpu_resume_pending) { - scanline++; - cycle = 0; - tia._hsyncCnt = 0; + cpu_resume_pending = false; + cpu_is_halted = false; } } - + // determine if the next access will be fast or slow + if (cpu.PC < 0x0400) + { + if ((cpu.PC & 0xFF) < 0x20) + { + if ((A7800_control_register & 0x1) == 0 && (cpu.PC < 0x20)) + { + slow_access = false; + } + else + { + slow_access = true; + } + } + else if (cpu.PC < 0x300) + { + slow_access = true; + } + else + { + slow_access = false; + } + } } private void GetControllerState(IController controller) diff --git a/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800Hawk.IMemoryDomains.cs b/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800Hawk.IMemoryDomains.cs index 3d7d86a4f4..5090e1f139 100644 --- a/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800Hawk.IMemoryDomains.cs +++ b/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800Hawk.IMemoryDomains.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Linq; using BizHawk.Emulation.Common; diff --git a/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800Hawk.cs b/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800Hawk.cs index 32c4872461..a34a2151fd 100644 --- a/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800Hawk.cs +++ b/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800Hawk.cs @@ -127,18 +127,20 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk if (_isPAL) { maria._frameHz = 50; - maria._screen_width = 454; + maria._screen_width = 320; maria._screen_height = 313; maria._palette = PALPalette; } else { maria._frameHz = 60; - maria._screen_width = 454; + maria._screen_width = 320; maria._screen_height = 263; maria._palette = NTSCPalette; } + maria.Core = this; + ser.Register(maria); ser.Register(tia); ServiceProvider = ser; @@ -146,6 +148,7 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk _tracer = new TraceBuffer { Header = cpu.TraceHeader }; ser.Register(_tracer); + SetupMemoryDomains(); HardReset(); } @@ -174,7 +177,7 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk private void ExecFetch(ushort addr) { - //MemoryCallbacks.CallExecutes(addr); + MemoryCallbacks.CallExecutes(addr); } private void Reset_Mapper(string m) diff --git a/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/Maria.cs b/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/Maria.cs index 95f136866b..25d717cb47 100644 --- a/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/Maria.cs +++ b/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/Maria.cs @@ -7,8 +7,10 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk // Emulates the Atari 7800 Maria graphics chip public class Maria : IVideoProvider { + public A7800Hawk Core { get; set; } + public int _frameHz = 60; - public int _screen_width = 454; + public int _screen_width = 320; public int _screen_height = 263; public int[] _vidbuffer; @@ -19,9 +21,9 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk return _vidbuffer; } - public int VirtualWidth => 454; + public int VirtualWidth => 320; public int VirtualHeight => _screen_height; - public int BufferWidth => 454; + public int BufferWidth => 320; public int BufferHeight => _screen_height; public int BackgroundColor => unchecked((int)0xff000000); public int VsyncNumerator => _frameHz; @@ -30,11 +32,145 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk // the Maria chip can directly access memory public Func ReadMemory; + public int cycle; + public int scanline; + public bool sl_DMA_complete; + + public int DMA_phase = 0; + public int DMA_phase_counter; + + public static int DMA_START_UP = 0; + public static int DMA_HEADER = 1; + public static int DMA_GRAPHICS = 2; + public static int DMA_CHAR_MAP = 3; + public static int DMA_SHUTDOWN_OTHER = 4; + public static int DMA_SHUTDOWN_LAST = 5; + + public byte list_low_byte; + public byte list_high_byte; + + + // each frame contains 263 scanlines // each scanline consists of 113.5 CPU cycles (fast access) which equates to 454 Maria cycles // In total there are 29850.5 CPU cycles (fast access) in a frame - public void Execute(int cycle, int scanline) + public void RunFrame() { + scanline = 0; + + Core.Maria_regs[8] = 0x80; // indicates VBlank state + + // we start off in VBlank for 20 scanlines + // at the end of vblank is a DMA to set up the display for the start of drawing + // this is free time for the CPU to set up display lists + while (scanline < 19) + { + Core.RunCPUCycle(); + cycle++; + + if (cycle == 454) + { + scanline++; + cycle = 0; + Core.tia._hsyncCnt = 0; + Core.cpu.RDY = true; + } + + } + + // "The end of vblank is made up of a DMA startup plus a long shut down" + sl_DMA_complete = false; + DMA_phase = DMA_START_UP; + DMA_phase_counter = 0; + + for (int i=0; i<454;i++) + { + if (i<28) + { + // DMA doesn't start until 7 CPU cycles into a scanline + } + else if (i==28) + { + Core.cpu_halt_pending = true; + DMA_phase_counter = 0; + } + else if (!sl_DMA_complete) + { + RunDMA(i - 28, true); + } + + Core.RunCPUCycle(); + } + + scanline++; + cycle = 0; + + Core.Maria_regs[8] = 0; // we have now left VBLank + + // Now proceed with the remaining scanlines + // the first one is a pre-render line, since we didn't actually put any data into the buffer yet + while (scanline < 263) + { + + + Core.RunCPUCycle(); + + cycle++; + + if (cycle == 454) + { + scanline++; + cycle = 0; + Core.tia._hsyncCnt = 0; + Core.cpu.RDY = true; + } + } + } + + public void RunDMA(int c, bool short_dma) + { + // During DMA the CPU is HALTED, This appears to happen on the falling edge of Phi2 + // Current implementation is that a HALT request must be acknowledged in phi1 + // if the CPU is now in halted state, start DMA + if (Core.cpu_is_halted) + { + DMA_phase_counter++; + + if (DMA_phase_counter==2 && DMA_phase==DMA_START_UP) + { + DMA_phase_counter = 0; + if (short_dma) + DMA_phase = DMA_SHUTDOWN_LAST; + else + { + DMA_phase = DMA_HEADER; + } + + return; + } + + if (DMA_phase == DMA_HEADER) + { + // get all the data from the display list header + if (DMA_phase_counter==1) + { + + } + } + + if (DMA_phase == DMA_SHUTDOWN_LAST) + { + if (DMA_phase_counter==4) + { + Core.cpu_resume_pending = true; + sl_DMA_complete = true; + } + return; + } + + + } + } diff --git a/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/MemoryMap.cs b/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/MemoryMap.cs index a7541855c6..d6ec152ba9 100644 --- a/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/MemoryMap.cs +++ b/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/MemoryMap.cs @@ -2,7 +2,6 @@ using BizHawk.Common.BufferExtensions; using BizHawk.Emulation.Common; -using BizHawk.Emulation.Cores.Components.M6502; namespace BizHawk.Emulation.Cores.Atari.A7800Hawk { @@ -10,6 +9,8 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk { public byte ReadMemory(ushort addr) { + MemoryCallbacks.CallReads(addr); + if (addr < 0x0400) { if ((addr & 0xFF) < 0x20) { @@ -85,6 +86,8 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk public void WriteMemory(ushort addr, byte value) { + MemoryCallbacks.CallWrites(addr); + if (addr < 0x0400) { if ((addr & 0xFF) < 0x20) @@ -92,18 +95,25 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk // return TIA registers or control register if it is still unlocked if ((A7800_control_register & 0x1) == 0 && (addr < 0x20)) { - A7800_control_register = value; // TODO: what to return here? + A7800_control_register = value; } else { - TIA_regs[addr] = value; // TODO: what to return here? + TIA_regs[addr] = value; } } else if ((addr & 0xFF) < 0x40) { if ((A7800_control_register & 0x2) > 0) { - Maria_regs[(addr & 0x3F) - 0x20] = value; + var temp = (addr & 0x3F) - 0x20; + + // register 8 is read only and controlled by Maria + if (temp != 8) + Maria_regs[temp] = value; + + if (temp==4) // WSYNC + cpu.RDY = false; } } else if (addr < 0x100) From 7814a9ed304d0808d1212636409ad58c29f1eb40 Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Fri, 16 Jun 2017 21:41:13 -0400 Subject: [PATCH 75/80] NESHawk: Clean up and minor refactor Simplify the code base a bit and gets a performance boost as well. --- .../Consoles/Nintendo/NES/NES.Core.cs | 242 ++++++++---------- .../Consoles/Nintendo/NES/NES.IStatable.cs | 2 - .../Consoles/Nintendo/NES/PPU.cs | 70 +++-- .../Consoles/Nintendo/NES/PPU.regs.cs | 7 +- .../Consoles/Nintendo/NES/PPU.run.cs | 42 +-- 5 files changed, 165 insertions(+), 198 deletions(-) diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/NES.Core.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/NES.Core.cs index f35b89ae37..e8f52c27b2 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/NES.Core.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/NES.Core.cs @@ -385,10 +385,10 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES //at least it should be, but something is off with that (start up time?) so it is 3,3,3,4,3 for now //NTSC: //sequence of ppu clocks per cpu clock: 3 - ByteBuffer cpu_sequence; + public ByteBuffer cpu_sequence; static ByteBuffer cpu_sequence_NTSC = new ByteBuffer(new byte[] { 3, 3, 3, 3, 3 }); static ByteBuffer cpu_sequence_PAL = new ByteBuffer(new byte[] { 3, 3, 3, 4, 3 }); - public int cpu_step, cpu_stepcounter, cpu_deadcounter; + public int cpu_deadcounter; public int oam_dma_index; public bool oam_dma_exec = false; @@ -401,140 +401,122 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES public bool do_the_reread; public byte DB; //old data bus values from previous reads - -#if VS2012 - [MethodImpl(MethodImplOptions.AggressiveInlining)] -#endif internal void RunCpuOne() { - cpu_stepcounter++; - if (cpu_stepcounter == cpu_sequence[cpu_step]) + /////////////////////////// + // OAM DMA start + /////////////////////////// + + if (sprdma_countdown > 0) { - cpu_step++; - if (cpu_step == 5) cpu_step = 0; - cpu_stepcounter = 0; - - /////////////////////////// - // OAM DMA start - /////////////////////////// - - if (sprdma_countdown > 0) + sprdma_countdown--; + if (sprdma_countdown == 0) { - sprdma_countdown--; - if (sprdma_countdown == 0) + if (cpu.TotalExecutedCycles % 2 == 0) { - if (cpu.TotalExecutedCycles % 2 == 0) - { - cpu_deadcounter = 2; - } - else - { - cpu_deadcounter = 1; - } - oam_dma_exec = true; - cpu.RDY = false; - oam_dma_index = 0; - special_case_delay = true; - } - } - - if (oam_dma_exec && apu.dmc_dma_countdown != 1 && !dmc_realign) - { - if (cpu_deadcounter == 0) - { - - if (oam_dma_index % 2 == 0) - { - oam_dma_byte = ReadMemory(oam_dma_addr); - oam_dma_addr++; - } - else - { - WriteMemory(0x2004, oam_dma_byte); - } - oam_dma_index++; - if (oam_dma_index == 512) oam_dma_exec = false; - + cpu_deadcounter = 2; } else { - cpu_deadcounter--; + cpu_deadcounter = 1; } - } - else if (apu.dmc_dma_countdown == 1) - { - dmc_realign = true; - } - else if (dmc_realign) - { - dmc_realign = false; - } - ///////////////////////////// - // OAM DMA end - ///////////////////////////// - - - ///////////////////////////// - // dmc dma start - ///////////////////////////// - - if (apu.dmc_dma_countdown > 0) - { + oam_dma_exec = true; cpu.RDY = false; - dmc_dma_exec = true; - apu.dmc_dma_countdown--; - if (apu.dmc_dma_countdown == 0) - { - apu.RunDMCFetch(); - dmc_dma_exec = false; - apu.dmc_dma_countdown = -1; - do_the_reread = true; - } + oam_dma_index = 0; + special_case_delay = true; } - - ///////////////////////////// - // dmc dma end - ///////////////////////////// - apu.RunOne(true); - - if (cpu.RDY && !IRQ_delay) - { - cpu.IRQ = _irq_apu || Board.IRQSignal; - } - else if (special_case_delay || apu.dmc_dma_countdown == 3) - { - cpu.IRQ = _irq_apu || Board.IRQSignal; - special_case_delay = false; - } - - cpu.ExecuteOne(); - apu.RunOne(false); - - if (ppu.double_2007_read > 0) - ppu.double_2007_read--; - - if (do_the_reread && cpu.RDY) - do_the_reread = false; - - if (IRQ_delay) - IRQ_delay = false; - - if (!dmc_dma_exec && !oam_dma_exec && !cpu.RDY) - { - cpu.RDY = true; - IRQ_delay = true; - } - - ppu.ppu_open_bus_decay(0); - - Board.ClockCPU(); - ppu.PostCpuInstructionOne(); } + + if (oam_dma_exec && apu.dmc_dma_countdown != 1 && !dmc_realign) + { + if (cpu_deadcounter == 0) + { + + if (oam_dma_index % 2 == 0) + { + oam_dma_byte = ReadMemory(oam_dma_addr); + oam_dma_addr++; + } + else + { + WriteMemory(0x2004, oam_dma_byte); + } + oam_dma_index++; + if (oam_dma_index == 512) oam_dma_exec = false; + + } + else + { + cpu_deadcounter--; + } + } + else if (apu.dmc_dma_countdown == 1) + { + dmc_realign = true; + } + else if (dmc_realign) + { + dmc_realign = false; + } + ///////////////////////////// + // OAM DMA end + ///////////////////////////// + + + ///////////////////////////// + // dmc dma start + ///////////////////////////// + + if (apu.dmc_dma_countdown > 0) + { + cpu.RDY = false; + dmc_dma_exec = true; + apu.dmc_dma_countdown--; + if (apu.dmc_dma_countdown == 0) + { + apu.RunDMCFetch(); + dmc_dma_exec = false; + apu.dmc_dma_countdown = -1; + do_the_reread = true; + } + } + + ///////////////////////////// + // dmc dma end + ///////////////////////////// + apu.RunOne(true); + + if (cpu.RDY && !IRQ_delay) + { + cpu.IRQ = _irq_apu || Board.IRQSignal; + } + else if (special_case_delay || apu.dmc_dma_countdown == 3) + { + cpu.IRQ = _irq_apu || Board.IRQSignal; + special_case_delay = false; + } + + cpu.ExecuteOne(); + apu.RunOne(false); + + if (ppu.double_2007_read > 0) + ppu.double_2007_read--; + + if (do_the_reread && cpu.RDY) + do_the_reread = false; + + if (IRQ_delay) + IRQ_delay = false; + + if (!dmc_dma_exec && !oam_dma_exec && !cpu.RDY) + { + cpu.RDY = true; + IRQ_delay = true; + } + + Board.ClockCPU(); } -#if VS2012 - [MethodImpl(MethodImplOptions.AggressiveInlining)] -#endif public byte ReadReg(int addr) { byte ret_spec; @@ -681,7 +663,12 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES case 0x4013: apu.WriteReg(addr, val); break; - case 0x4014: Exec_OAMDma(val); break; + case 0x4014: + //schedule a sprite dma event for beginning 1 cycle in the future. + //this receives 2 because thats just the way it works out. + oam_dma_addr = (ushort)(val << 8); + sprdma_countdown = 1; + break; case 0x4015: apu.WriteReg(addr, val); break; case 0x4016: if (_isVS) @@ -740,15 +727,6 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES return 0; } - void Exec_OAMDma(byte val) - { - //schedule a sprite dma event for beginning 1 cycle in the future. - //this receives 2 because thats just the way it works out. - oam_dma_addr = (ushort)(val << 8); - - sprdma_countdown = 1; - } - /// /// Sets the provided palette as current. /// Applies the current deemph settings if needed to expand a 64-entry palette to 512 diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/NES.IStatable.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/NES.IStatable.cs index 8cc0a7276c..e5ac4f54b9 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/NES.IStatable.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/NES.IStatable.cs @@ -60,8 +60,6 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES ser.Sync("cpu_accumulate", ref cpu_accumulate); ser.Sync("_irq_apu", ref _irq_apu); ser.Sync("sprdma_countdown", ref sprdma_countdown); - ser.Sync("cpu_step", ref cpu_step); - ser.Sync("cpu_stepcounter", ref cpu_stepcounter); ser.Sync("cpu_deadcounter", ref cpu_deadcounter); //oam related diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/PPU.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/PPU.cs index ac1ad692f0..ebf93f8361 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/PPU.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/PPU.cs @@ -1,6 +1,4 @@ -//http://nesdev.parodius.com/bbs/viewtopic.php?p=4571&sid=db4c7e35316cc5d734606dd02f11dccb - -using System; +using System; using System.Runtime.CompilerServices; using BizHawk.Common; @@ -8,6 +6,8 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES { public sealed partial class PPU { + public int cpu_step, cpu_stepcounter; + // this only handles region differences within the PPU int preNMIlines; int postNMIlines; @@ -203,6 +203,8 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES public void SyncState(Serializer ser) { + ser.Sync("cpu_step", ref cpu_step); + ser.Sync("cpu_stepcounter", ref cpu_stepcounter); ser.Sync("ppudead", ref ppudead); ser.Sync("idleSynch", ref idleSynch); ser.Sync("NMI_PendingInstructions", ref NMI_PendingInstructions); @@ -255,32 +257,6 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES ppu_open_bus_decay_timer = new int[8]; } -#if VS2012 - [MethodImpl(MethodImplOptions.AggressiveInlining)] -#endif - void TriggerNMI() - { - nes.cpu.NMI = true; - } - - //this gets called once after each cpu instruction executes. - //anything that needs to happen at instruction granularity can get checked here - //to save having to check it at ppu cycle granularity - public void PostCpuInstructionOne() - { - if (NMI_PendingInstructions > 0) - { - NMI_PendingInstructions--; - if (NMI_PendingInstructions <= 0) - { - TriggerNMI(); - } - } - } - -#if VS2012 - [MethodImpl(MethodImplOptions.AggressiveInlining)] -#endif void runppu(int x) { //run one ppu cycle at a time so we can interact with the ppu and clockPPU at high granularity @@ -318,13 +294,36 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES ppur.status.cycle++; is_even_cycle = !is_even_cycle; - //might not actually run a cpu cycle if there are none to be run right now - nes.RunCpuOne(); + + // Here we execute a CPU instruction if enough PPU cycles have passed + // also do other things that happen at instruction level granularity + cpu_stepcounter++; + if (cpu_stepcounter == nes.cpu_sequence[cpu_step]) + { + cpu_step++; + if (cpu_step == 5) cpu_step = 0; + cpu_stepcounter = 0; + + // this is where the CPU instruction is called + nes.RunCpuOne(); + + // decay the ppu bus, approximating real behaviour + ppu_open_bus_decay(0); + + // Check for NMIs + if (NMI_PendingInstructions > 0) + { + NMI_PendingInstructions--; + if (NMI_PendingInstructions <= 0) + { + nes.cpu.NMI = true; + } + } + } if (Reg2002_vblank_active_pending) { - //if (Reg2002_vblank_active_pending) - Reg2002_vblank_active = 1; + Reg2002_vblank_active = 1; Reg2002_vblank_active_pending = false; } @@ -337,10 +336,5 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES nes.Board.ClockPPU(); } } - - //hack - //public bool PAL = false; - //bool SPRITELIMIT = true; - } } diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/PPU.regs.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/PPU.regs.cs index 8b9a487054..5bfcf77aff 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/PPU.regs.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/PPU.regs.cs @@ -309,6 +309,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES public Reg_2000 reg_2000; public Reg_2001 reg_2001; byte reg_2003; + void regs_reset() { //TODO - would like to reconstitute the entire PPU instead of all this.. @@ -396,12 +397,6 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES return (byte)((Reg2002_vblank_active << 7) | (Reg2002_objhit << 6) | (Reg2002_objoverflow << 5) | (ppu_open_bus & 0x1F)); } - void clear_2002() - { - Reg2002_objhit = Reg2002_objoverflow = 0; - Reg2002_vblank_clear_pending = true; - } - //OAM ADDRESS (write) void write_2003(int addr, byte value) { diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/PPU.run.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/PPU.run.cs index db120d9c03..e98bdfe145 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/PPU.run.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/PPU.run.cs @@ -1,6 +1,4 @@ -//http://nesdev.parodius.com/bbs/viewtopic.php?p=4571&sid=db4c7e35316cc5d734606dd02f11dccb - -//TODO - correctly emulate PPU OFF state +//TODO - correctly emulate PPU OFF state using BizHawk.Common; using System; @@ -10,6 +8,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES sealed partial class PPU { const int kFetchTime = 2; + const int kLineTime = 341; struct BGDataRecord { @@ -78,7 +77,9 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES if (reg_2001.color_disable) pixelcolor_latch_2 &= 0x30; - xbuf[(target - 2)] = PaletteAdjustPixel(pixelcolor_latch_2); + //TODO - check flashing sirens in werewolf + //tack on the deemph bits. THESE MAY BE ORDERED WRONG. PLEASE CHECK IN THE PALETTE CODE + xbuf[(target - 2)] = (short)(pixelcolor_latch_2 | reg_2001.intensity_lsl_6); } if (row_check >= 1) @@ -158,14 +159,6 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES } //switch(cycle) } - //TODO - check flashing sirens in werewolf - short PaletteAdjustPixel(int pixel) - { - //tack on the deemph bits. THESE MAY BE ORDERED WRONG. PLEASE CHECK IN THE PALETTE CODE - return (short)(pixel | reg_2001.intensity_lsl_6); - } - - const int kLineTime = 341; public unsafe void FrameAdvance() { BGDataRecord* bgdata = stackalloc BGDataRecord[34]; //one at the end is junk, it can never be rendered @@ -191,12 +184,13 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES runppu(3); bool nmi_destiny = reg_2000.vblank_nmi_gen && Reg2002_vblank_active; runppu(3); - if (nmi_destiny) TriggerNMI(); + if (nmi_destiny) nes.cpu.NMI = true; nes.Board.AtVsyncNMI(); runppu(postNMIlines * kLineTime - delay); - //this seems to run just before the dummy scanline begins - clear_2002(); + //this seems to happen just before the dummy scanline begins + Reg2002_objhit = Reg2002_objoverflow = 0; + Reg2002_vblank_clear_pending = true; idleSynch ^= true; @@ -224,8 +218,8 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES yp = sl - 1; ppuphase = PPUPHASE.BG; - // "If PPUADDR is not less then 8 when rendering starts, the first 8 fights in OAM and written to from - // the current location off PPUADDR" + // "If PPUADDR is not less then 8 when rendering starts, the first 8 bytes in OAM and written to from + // the current location off PPUADDR" if (sl == 0 && PPUON && reg_2003 >= 8 && region==Region.NTSC) { for (int i = 0; i < 8; i++) @@ -233,7 +227,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES OAM[i] = OAM[reg_2003 & 0xF8 + i]; } } - + if (NTViewCallback != null && yp == NTViewCallback.Scanline) NTViewCallback.Callback(); if (PPUViewCallback != null && yp == PPUViewCallback.Scanline) PPUViewCallback.Callback(); @@ -255,7 +249,8 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES //check all the conditions that can cause things to render in these 8px bool renderspritenow = show_obj_new && (xt > 0 || reg_2001.show_obj_leftmost); - bool renderbgnow; + bool renderbgnow; + bool hit_pending = false; for (int xp = 0; xp < 8; xp++, rasterpos++) { @@ -350,7 +345,8 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES { if (yp >= read_value && yp < read_value + spriteHeight && PPUON) { - Reg2002_objoverflow = true; + hit_pending = true; + //Reg2002_objoverflow = true; } if (yp >= read_value && yp < read_value + spriteHeight && spr_true_count == 0) @@ -400,6 +396,12 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES else runppu(1); + if (hit_pending) + { + hit_pending = false; + Reg2002_objoverflow = true; + } + renderbgnow = show_bg_new && (xt > 0 || reg_2001.show_bg_leftmost); //bg pos is different from raster pos due to its offsetability. //so adjust for that here From c3bdc1188ba3ee11490fa0a5bd517bfd2c800da6 Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Sat, 17 Jun 2017 13:55:21 -0400 Subject: [PATCH 76/80] A7800Hawk Commit 5 - Almost done with DMA --- .../Atari/A7800Hawk/A7800Hawk.IEmulator.cs | 8 + .../Consoles/Atari/A7800Hawk/Maria.cs | 184 ++++++++++++++++-- 2 files changed, 180 insertions(+), 12 deletions(-) diff --git a/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800Hawk.IEmulator.cs b/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800Hawk.IEmulator.cs index d66887478e..e0c6169241 100644 --- a/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800Hawk.IEmulator.cs +++ b/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/A7800Hawk.IEmulator.cs @@ -71,7 +71,15 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk if (cpu_cycle == (4 + (slow_access ? 2 : 0))) { if (!cpu_is_halted) + { cpu.ExecuteOne(); + } + else + { + // we still want to keep track of CPU time even if it is halted, so increment the counter here + // The basic 6502 has no halt state, this feature is specific to SALLY + cpu.TotalExecutedCycles++; + } cpu_cycle = 0; diff --git a/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/Maria.cs b/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/Maria.cs index 25d717cb47..fd9f314194 100644 --- a/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/Maria.cs +++ b/BizHawk.Emulation.Cores/Consoles/Atari/A7800Hawk/Maria.cs @@ -1,6 +1,7 @@ using System; using BizHawk.Emulation.Common; +using BizHawk.Common.NumberExtensions; namespace BizHawk.Emulation.Cores.Atari.A7800Hawk { @@ -9,6 +10,23 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk { public A7800Hawk Core { get; set; } + struct GFX_Object + { + public byte palette; + public byte width; + public ushort addr; + public byte h_pos; + + // additional entries used only in 5-byte header mode + public bool write_mode; + public bool ind_mode; + public bool exp_mode; + } + + // technically there is no limit on he number of graphics objects, but since dma is automatically killed + // at the end of a scanline, we have an effective limit + GFX_Object[] GFX_Objects = new GFX_Object[64]; + public int _frameHz = 60; public int _screen_width = 320; public int _screen_height = 263; @@ -35,6 +53,7 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk public int cycle; public int scanline; public bool sl_DMA_complete; + public bool do_dma; public int DMA_phase = 0; public int DMA_phase_counter; @@ -46,10 +65,21 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk public static int DMA_SHUTDOWN_OTHER = 4; public static int DMA_SHUTDOWN_LAST = 5; - public byte list_low_byte; - public byte list_high_byte; + public int header_read_time = 8; // default for 4 byte headers (10 for 5 bytes ones) + public int DMA_phase_next; + public int base_scanline; + public ushort display_zone_pointer; + public int display_zone_counter; + public byte current_DLL_offset; + public ushort current_DLL_addr; + public bool current_DLL_DLI; + public bool current_DLL_H16; + public bool current_DLL_H8; + + public int header_counter; + public int header_pointer; // since headers could be 4 or 5 bytes, we need a seperate pointer // each frame contains 263 scanlines // each scanline consists of 113.5 CPU cycles (fast access) which equates to 454 Maria cycles @@ -80,8 +110,7 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk // "The end of vblank is made up of a DMA startup plus a long shut down" sl_DMA_complete = false; - DMA_phase = DMA_START_UP; - DMA_phase_counter = 0; + do_dma = false; for (int i=0; i<454;i++) { @@ -89,14 +118,16 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk { // DMA doesn't start until 7 CPU cycles into a scanline } - else if (i==28) + else if (i==28 && Core.Maria_regs[0x1C].Bit(6) && !Core.Maria_regs[0x1C].Bit(6)) { Core.cpu_halt_pending = true; + DMA_phase = DMA_START_UP; DMA_phase_counter = 0; + do_dma = true; } - else if (!sl_DMA_complete) + else if (!sl_DMA_complete && do_dma) { - RunDMA(i - 28, true); + RunDMA(true); } Core.RunCPUCycle(); @@ -104,14 +135,31 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk scanline++; cycle = 0; - - Core.Maria_regs[8] = 0; // we have now left VBLank + do_dma = false; + Core.Maria_regs[8] = 0; // we have now left VBLank' + base_scanline = 0; + sl_DMA_complete = false; // Now proceed with the remaining scanlines // the first one is a pre-render line, since we didn't actually put any data into the buffer yet while (scanline < 263) { - + + if (cycle < 28) + { + // DMA doesn't start until 7 CPU cycles into a scanline + } + else if (cycle == 28 && Core.Maria_regs[0x1C].Bit(6) && !Core.Maria_regs[0x1C].Bit(6)) + { + Core.cpu_halt_pending = true; + DMA_phase = DMA_START_UP; + DMA_phase_counter = 0; + do_dma = true; + } + else if (!sl_DMA_complete && do_dma) + { + RunDMA(false); + } Core.RunCPUCycle(); @@ -123,11 +171,13 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk cycle = 0; Core.tia._hsyncCnt = 0; Core.cpu.RDY = true; + do_dma = false; + sl_DMA_complete = false; } } } - public void RunDMA(int c, bool short_dma) + public void RunDMA(bool short_dma) { // During DMA the CPU is HALTED, This appears to happen on the falling edge of Phi2 // Current implementation is that a HALT request must be acknowledged in phi1 @@ -140,7 +190,14 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk { DMA_phase_counter = 0; if (short_dma) + { DMA_phase = DMA_SHUTDOWN_LAST; + + // also here we load up the display list list + // is the timing correct? + display_zone_pointer = (ushort)((Core.Maria_regs[0xC] << 8) | Core.Maria_regs[0x10]); + display_zone_counter = -1; + } else { DMA_phase = DMA_HEADER; @@ -154,16 +211,119 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk // get all the data from the display list header if (DMA_phase_counter==1) { + header_counter++; + GFX_Objects[header_counter].addr = ReadMemory((ushort)(current_DLL_addr + header_pointer)); + header_pointer++; + byte temp = ReadMemory((ushort)(current_DLL_addr + header_pointer)); + // if there is no width, then we must have an extended header + // or at the end of this list + if ((temp & 0x1F) == 0) + { + if ((temp & 0xE0) == 0) + { + // at the end of the list, time to end the DMA + // check if we are at the end of the zone + if (scanline == base_scanline + current_DLL_offset) + { + DMA_phase_next = DMA_SHUTDOWN_LAST; + } + else + { + DMA_phase_next = DMA_SHUTDOWN_OTHER; + } + header_read_time = 8; + } + else + { + // we are in 5 Byte header mode + GFX_Objects[header_counter].write_mode = temp.Bit(7); + GFX_Objects[header_counter].ind_mode = temp.Bit(5); + header_pointer++; + temp = ReadMemory((ushort)(current_DLL_addr + header_pointer)); + GFX_Objects[header_counter].addr |= (ushort)(temp << 8); + header_pointer++; + temp = ReadMemory((ushort)(current_DLL_addr + header_pointer)); + GFX_Objects[header_counter].width = (byte)(temp & 0x1F); + GFX_Objects[header_counter].palette = (byte)((temp & 0xE0) >> 5); + header_pointer++; + GFX_Objects[header_pointer].h_pos = ReadMemory((ushort)(current_DLL_addr + header_pointer)); + header_pointer++; + + GFX_Objects[header_pointer].exp_mode = true; + DMA_phase_next = DMA_GRAPHICS; + + header_read_time = 10; + } + } + else + { + GFX_Objects[header_counter].width = (byte)(temp & 0x1F); + GFX_Objects[header_counter].palette = (byte)((temp & 0xE0) >> 5); + header_pointer++; + temp = ReadMemory((ushort)(current_DLL_addr + header_pointer)); + GFX_Objects[header_counter].addr |= (ushort)(temp << 8); + header_pointer++; + GFX_Objects[header_pointer].h_pos = ReadMemory((ushort)(current_DLL_addr + header_pointer)); + header_pointer++; + + GFX_Objects[header_pointer].exp_mode = false; + DMA_phase_next = DMA_GRAPHICS; + + header_read_time = 8; + } } + else if (DMA_phase_counter == header_read_time) + { + DMA_phase_counter = 0; + DMA_phase = DMA_phase_next; + } + return; + } + + if (DMA_phase == DMA_GRAPHICS) + { + if (DMA_phase_counter == 1) + { + // get all the graphics data + } + + if (DMA_phase_counter == 3) + { + DMA_phase = DMA_SHUTDOWN_OTHER; + DMA_phase_counter = 0; + } + return; + } + + if (DMA_phase == DMA_SHUTDOWN_OTHER) + { + Core.cpu_resume_pending = true; + sl_DMA_complete = true; + return; } if (DMA_phase == DMA_SHUTDOWN_LAST) { - if (DMA_phase_counter==4) + if (DMA_phase_counter==6) { Core.cpu_resume_pending = true; sl_DMA_complete = true; + + // on the last line of a zone, we load up the disply list list for the next zone. + display_zone_counter++; + ushort temp_addr = (ushort)(display_zone_pointer + 3 * display_zone_counter); + byte temp = ReadMemory(temp_addr); + current_DLL_addr = (ushort)(ReadMemory((ushort)(temp_addr + 1)) << 8); + current_DLL_addr |= ReadMemory((ushort)(temp_addr + 2)); + + current_DLL_offset = (byte)(temp & 0xF + 1); + current_DLL_DLI = temp.Bit(7); + current_DLL_H16 = temp.Bit(6); + current_DLL_H8 = temp.Bit(5); + + header_counter = -1; + header_pointer = 0; } return; } From 08296a785e7d3e29b040e78df5bb018ee16f176c Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Sat, 17 Jun 2017 19:01:04 -0400 Subject: [PATCH 77/80] Update Execute.cs --- BizHawk.Emulation.Cores/CPUs/MOS 6502X/Execute.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BizHawk.Emulation.Cores/CPUs/MOS 6502X/Execute.cs b/BizHawk.Emulation.Cores/CPUs/MOS 6502X/Execute.cs index 5187e5f028..7e4ad61e6d 100644 --- a/BizHawk.Emulation.Cores/CPUs/MOS 6502X/Execute.cs +++ b/BizHawk.Emulation.Cores/CPUs/MOS 6502X/Execute.cs @@ -314,7 +314,7 @@ namespace BizHawk.Emulation.Cores.Components.M6502 //the interrupt would then take place if necessary, using a cached PC. but im not so sure about that. /*VOP_NMI*/ new Uop[] { Uop.FetchDummy, Uop.FetchDummy, Uop.PushPCH, Uop.PushPCL, Uop.PushP_NMI, Uop.FetchPCLVector, Uop.FetchPCHVector, Uop.End_SuppressInterrupt }, /*VOP_IRQ*/ new Uop[] { Uop.FetchDummy, Uop.FetchDummy, Uop.PushPCH, Uop.PushPCL, Uop.PushP_IRQ, Uop.FetchPCLVector, Uop.FetchPCHVector, Uop.End_SuppressInterrupt }, - /*VOP_RESET*/ new Uop[] { Uop.FetchDummy, Uop.FetchDummy, Uop.FetchDummy, Uop.PushDummy, Uop.PushDummy, Uop.PushP_Reset, Uop.FetchPCLVector, Uop.FetchPCHVector, Uop.End_SuppressInterrupt }, + /*VOP_RESET*/ new Uop[] { Uop.FetchDummy, /*Uop.FetchDummy,*/ Uop.FetchDummy, Uop.PushDummy, Uop.PushDummy, Uop.PushP_Reset, Uop.FetchPCLVector, Uop.FetchPCHVector, Uop.End_SuppressInterrupt }, /*VOP_Fetch1_NoInterrupt*/ new Uop[] { Uop.Fetch1_Real }, }; From 5aaeef9db433297b5f891d631ed6487b32ee130b Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Sat, 17 Jun 2017 19:02:21 -0400 Subject: [PATCH 78/80] NES: small PPU refactor Will make future testing easier --- .../Consoles/Nintendo/NES/APU.cs | 4 +- .../Consoles/Nintendo/NES/PPU.run.cs | 84 ++++++++++--------- 2 files changed, 47 insertions(+), 41 deletions(-) diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/APU.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/APU.cs index 1d2f1ca0e9..f45b8719a1 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/APU.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/APU.cs @@ -1160,8 +1160,8 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES public void NESHardReset() { // "at power on it is as if $00 was written to $4017 9-12 cycles before the reset vector" - // that translates to a starting value for the counter of -2 - sequencer_counter = -2; + // that translates to a starting value for the counter of -3 + sequencer_counter = -1; } public void WriteReg(int addr, byte val) diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/PPU.run.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/PPU.run.cs index e98bdfe145..841374cf6f 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/PPU.run.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/PPU.run.cs @@ -63,7 +63,26 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES void Read_bgdata(ref BGDataRecord bgdata) { for (int i = 0; i < 8; i++) + { Read_bgdata(i, ref bgdata); + runppu(1); + + if (PPUON && i==6) + { + ppu_was_on = true; + } + + if (PPUON && i==7) + { + if (!race_2006) + ppur.increment_hsc(); + + if (ppur.status.cycle == 256 && !race_2006) + ppur.increment_vs(); + + ppu_was_on = false; + } + } } // attempt to emulate graphics pipeline behaviour @@ -97,10 +116,8 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES case 0: ppu_addr_temp = ppur.get_ntread(); bgdata.nt = ppubus_read(ppu_addr_temp, true, true); - runppu(1); break; case 1: - runppu(1); break; case 2: { @@ -112,49 +129,22 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES if ((ppur.ht & 2) != 0) at >>= 2; at &= 0x03; at <<= 2; - bgdata.at = at; - runppu(1); - + bgdata.at = at; break; } case 3: - runppu(1); break; case 4: ppu_addr_temp = ppur.get_ptread(bgdata.nt); bgdata.pt_0 = ppubus_read(ppu_addr_temp, true, true); - runppu(1); break; case 5: - runppu(1); break; case 6: ppu_addr_temp |= 8; bgdata.pt_1 = ppubus_read(ppu_addr_temp, true, true); - - - runppu(1); - if (PPUON) - { - ppu_was_on = true; - } - break; case 7: - - runppu(1); - //horizontal scroll clocked at cycle 3 and then - //vertical scroll at 256 - if (PPUON) - { - if (!race_2006) - ppur.increment_hsc(); - - if (ppur.status.cycle == 256 && !race_2006) - ppur.increment_vs(); - } - - ppu_was_on = false; break; } //switch(cycle) } @@ -185,6 +175,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES bool nmi_destiny = reg_2000.vblank_nmi_gen && Reg2002_vblank_active; runppu(3); if (nmi_destiny) nes.cpu.NMI = true; + nes.Board.AtVsyncNMI(); runppu(postNMIlines * kLineTime - delay); @@ -391,10 +382,28 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES //process the current clock's worth of bg data fetching //this needs to be split into 8 pieces or else exact sprite 0 hitting wont work due to the cpu not running while the sprite renders below + + if (PPUON) Read_bgdata(xp, ref bgdata[xt + 2]); - else - runppu(1); + + runppu(1); + + if (PPUON && xp == 6) + { + ppu_was_on = true; + } + + if (PPUON && xp == 7) + { + if (!race_2006) + ppur.increment_hsc(); + + if (ppur.status.cycle == 256 && !race_2006) + ppur.increment_vs(); + + ppu_was_on = false; + } if (hit_pending) { @@ -484,8 +493,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES } //oamcount loop pipeline(pixelcolor, target, xt*32+xp); - target++; - + target++; } //loop across 8 pixels } //loop across 32 tiles } @@ -751,14 +759,13 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES Read_bgdata(ref bgdata[xt]); } - // this sequence is tuned to pass 10-even_odd_timing.nes - + // this sequence is tuned to pass 10-even_odd_timing.nes runppu(1); runppu(1); runppu(1); - + runppu(1); bool evenOddDestiny = PPUON; @@ -777,7 +784,6 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES //idle for pre NMI lines runppu(preNMIlines * kLineTime); - } //FrameAdvance void FrameAdvance_ppudead() @@ -788,7 +794,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES //should write to those regs during that time, it needs //to wait for vblank - runppu(241 * kLineTime+3);// -8*3); + runppu(241 * kLineTime-3);// -8*3); ppudead--; } } From 27b6ea6b49e8ec970ca8162d0a814b38e93155a1 Mon Sep 17 00:00:00 2001 From: nattthebear Date: Thu, 15 Jun 2017 20:40:38 -0400 Subject: [PATCH 79/80] protip: When refactoring, it's not OK to just make it not work. Fixes #873 --- BizHawk.Client.EmuHawk/AVOut/BmpVideoProvder.cs | 14 +++++--------- BizHawk.Client.EmuHawk/MainForm.cs | 2 +- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/BizHawk.Client.EmuHawk/AVOut/BmpVideoProvder.cs b/BizHawk.Client.EmuHawk/AVOut/BmpVideoProvder.cs index fe641166ea..0045e87c1c 100644 --- a/BizHawk.Client.EmuHawk/AVOut/BmpVideoProvder.cs +++ b/BizHawk.Client.EmuHawk/AVOut/BmpVideoProvder.cs @@ -12,9 +12,11 @@ namespace BizHawk.Client.EmuHawk { private Bitmap _bmp; - public BmpVideoProvider(Bitmap bmp) + public BmpVideoProvider(Bitmap bmp, int vsyncnum, int vsyncden) { _bmp = bmp; + VsyncNumerator = vsyncnum; + VsyncDenominator = vsyncden; } public void Dispose() @@ -50,14 +52,8 @@ namespace BizHawk.Client.EmuHawk public int BackgroundColor => 0; - public int VsyncNumerator - { - get { throw new InvalidOperationException(); } - } + public int VsyncNumerator { get; private set; } - public int VsyncDenominator - { - get { throw new InvalidOperationException(); } - } + public int VsyncDenominator { get; private set; } } } diff --git a/BizHawk.Client.EmuHawk/MainForm.cs b/BizHawk.Client.EmuHawk/MainForm.cs index fbe6691143..e6d6fb61db 100644 --- a/BizHawk.Client.EmuHawk/MainForm.cs +++ b/BizHawk.Client.EmuHawk/MainForm.cs @@ -3402,7 +3402,7 @@ namespace BizHawk.Client.EmuHawk } } - output = new BmpVideoProvider(bmpout); + output = new BmpVideoProvider(bmpout, _currentVideoProvider.VsyncNumerator, _currentVideoProvider.VsyncDenominator); disposableOutput = (IDisposable)output; } finally From 93fc9245da421dda1abe4a5ae9006f3f7bd7da4a Mon Sep 17 00:00:00 2001 From: adelikat Date: Sun, 25 Jun 2017 09:41:45 -0500 Subject: [PATCH 80/80] update version info --- Version/VersionInfo.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Version/VersionInfo.cs b/Version/VersionInfo.cs index 8eaf0ba669..b93cdeee9a 100644 --- a/Version/VersionInfo.cs +++ b/Version/VersionInfo.cs @@ -2,9 +2,9 @@ using System.IO; internal static class VersionInfo { - public const string Mainversion = "1.13.0"; // Use numbers only or the new version notification won't work + public const string Mainversion = "1.13.1"; // Use numbers only or the new version notification won't work - public static readonly string RELEASEDATE = "June 3, 2017"; + public static readonly string RELEASEDATE = "June 25, 2017"; public static readonly bool DeveloperBuild = false; public static readonly string HomePage = "http://tasvideos.org/BizHawk.html";