From 6f8bcc2be32ce414b2878a9f12f6f2b2f3779d5e Mon Sep 17 00:00:00 2001 From: nattthebear Date: Sat, 30 Jan 2016 13:47:14 -0500 Subject: [PATCH] trace for quicknes --- .../BizHawk.Emulation.Cores.csproj | 1 + .../Consoles/Nintendo/QuickNES/LibQuickNES.cs | 11 ++++ .../Nintendo/QuickNES/QuickNES.ITraceable.cs | 50 ++++++++++++++++++ .../Consoles/Nintendo/QuickNES/QuickNES.cs | 7 +++ output/dll/libquicknes.dll | Bin 416270 -> 414288 bytes quicknes/bizinterface.cpp | 19 +++++++ quicknes/nes_emu/Nes_Cpu.cpp | 18 +++++++ quicknes/nes_emu/Nes_Cpu.h | 4 ++ quicknes/nes_emu/Nes_Emu.h | 2 + 9 files changed, 112 insertions(+) create mode 100644 BizHawk.Emulation.Cores/Consoles/Nintendo/QuickNES/QuickNES.ITraceable.cs diff --git a/BizHawk.Emulation.Cores/BizHawk.Emulation.Cores.csproj b/BizHawk.Emulation.Cores/BizHawk.Emulation.Cores.csproj index 74216b0188..e31248c5e4 100644 --- a/BizHawk.Emulation.Cores/BizHawk.Emulation.Cores.csproj +++ b/BizHawk.Emulation.Cores/BizHawk.Emulation.Cores.csproj @@ -737,6 +737,7 @@ QuickNES.cs + QuickNES.cs diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/QuickNES/LibQuickNES.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/QuickNES/LibQuickNES.cs index a7727b7657..4d3f40a22f 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/QuickNES/LibQuickNES.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/QuickNES/LibQuickNES.cs @@ -215,6 +215,17 @@ namespace BizHawk.Emulation.Cores.Consoles.Nintendo.QuickNES [DllImport(dllname, CallingConvention = CallingConvention.Cdecl)] public static extern IntPtr qn_get_mapper(IntPtr e, ref int number); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] + public delegate void TraceCallback(IntPtr data); + + /// + /// set a trace callback to be run on each cycle + /// + /// Context + /// + [DllImport(dllname, CallingConvention = CallingConvention.Cdecl)] + public static extern void qn_set_tracecb(IntPtr e, TraceCallback cb); + [DllImport(dllname, CallingConvention = CallingConvention.Cdecl)] diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/QuickNES/QuickNES.ITraceable.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/QuickNES/QuickNES.ITraceable.cs new file mode 100644 index 0000000000..20d197b719 --- /dev/null +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/QuickNES/QuickNES.ITraceable.cs @@ -0,0 +1,50 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +using BizHawk.Common.BufferExtensions; +using BizHawk.Emulation.Common; +using BizHawk.Common; +using BizHawk.Common.CollectionExtensions; + +namespace BizHawk.Emulation.Cores.Consoles.Nintendo.QuickNES +{ + partial class QuickNES + { + public TraceBuffer Tracer { get; private set; } + + private LibQuickNES.TraceCallback _tracecb; + + private void MakeTrace(IntPtr data) + { + int[] s = new int[7]; + System.Runtime.InteropServices.Marshal.Copy(data, s, 0, 7); + + byte a = (byte)s[0]; + byte x = (byte)s[1]; + byte y = (byte)s[2]; + ushort sp = (ushort)s[3]; + ushort pc = (ushort)s[4]; + byte p = (byte)s[5]; + + byte opcode = (byte)s[6]; + + Tracer.Put(string.Format("{0:X2} {1:X2} {2:X2} {3:X4} {4:X4} {5:X2} {6:X2}", + a, x, y, sp, pc, p, opcode)); + + } + + private const string TraceHeader = "_A _X _Y _SP_ _PC_ _P OP"; + + private void ConnectTracer() + { + Tracer = new TraceBuffer + { + Header = TraceHeader + }; + (ServiceProvider as BasicServiceProvider).Register(Tracer); + _tracecb = new LibQuickNES.TraceCallback(MakeTrace); + } + } +} diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/QuickNES/QuickNES.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/QuickNES/QuickNES.cs index fd49e2157e..0567aa96a1 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/QuickNES/QuickNES.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/QuickNES/QuickNES.cs @@ -64,6 +64,8 @@ namespace BizHawk.Emulation.Cores.Consoles.Nintendo.QuickNES SetControllerDefinition(); ComputeBootGod(); + + ConnectTracer(); } catch { @@ -190,6 +192,11 @@ namespace BizHawk.Emulation.Cores.Consoles.Nintendo.QuickNES int j1, j2; SetPads(out j1, out j2); + if (Tracer.Enabled) + LibQuickNES.qn_set_tracecb(Context, _tracecb); + else + LibQuickNES.qn_set_tracecb(Context, null); + Frame++; LibQuickNES.ThrowStringError(LibQuickNES.qn_emulate_frame(Context, j1, j2)); IsLagFrame = LibQuickNES.qn_get_joypad_read_count(Context) == 0; diff --git a/output/dll/libquicknes.dll b/output/dll/libquicknes.dll index b28488ac20339804dc8fb50638a025fd0fafa425..8f2bee804c4c2ddb367a2cf682d3570346c09617 100644 GIT binary patch delta 94040 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

hhxDyKsq`W9K_=BAWC}$ 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

!H7$P2aUi6;6v^B9R7(5zR8MT2a+0}rK5nC zUSR`S0Ge}r0SoR|3O^h{>cib#R;poZsk_VY6YfGZAQPw(@|Pv=&njdC@kQpHg{)U+ z+(d4-7-$^=B|pzE7P7I>81yQere4*^jW=08P6g4_!m9@IZwt}Us$OMUR&cACvvq8g z#_hLeo7>$IYszjl+lKPtJD^ywj%hVz@Gf7H4`5Yrtefjt7`qH+FlWKeDk%Tt#HXK! z_H&#qV(Gs%^WQjIpsBvxY;%%)FBL_8rHBQyxGSbit}@DBp{yF>&%Zq7bRmoD_Q3lzJ>n8B>?oQ;B8CLOs2*fsIo~{lRN=dY`Kp(8;_fTiph4M~XXIrF&2=EawW}TQ1%jjYYWqnM902?P z0}YU7k3(BoXQ1b{V)S0Zf7!|glQ5Rg+{JqE@DkQty`+&JyU058v=Y{qWJYO3e5r(W zqiB#clz&*l#zbHi>W6#NMY*oV%uopoKlUSDgk1x685os-E(#lgxje_?wxJ}LN(V?& z$Bu274KS5vNYn4tZD^(2*LlzFSZ5?&<#F3F1{tpMRol_rC0F>q?JQEAbA{j9&O$rG z3g&Y0qMl8a;`1Dj+`-J44wvn~dhj`Z0KpI_`bm1?sB#;8Be02tJ>~8jhtY=CVQ#Qy zSjM}RqI!^}{?ZyHrIbB}iS%qKdx$2rRnk&t@SAK9ekp76o2X|D?3_x|ogaFWJ?xan z-FLG20jur977SCBQ0|I>$qi0J8#Qhru)$K>RqRCDt>zbZVjZ}eyY6B-1d+SYX84xh zE)-`qUx%206v_N}U#y?1cd;QtexvO-X+ZPcjpfvfeClpCtn-VF^rNui6@X8gzfZr& zH$mjIhM(JwCF~l0Yd3PgrqQ;Ll6&(BZ(-g>6dcxku4za{gL&;5zUeJCKe(W=W&KHT zF~}d-2!yQ%Tas6RVhd<=?bfXhd^&Vxzaf91R>&^ki}zslQo#2~!7qET&{~V79pC&G z>NELmHe7hQ(bh*QZpGWIpYRH@(GvCI-OAX2&iK}!>}u4|RM(k>d@@A%^^#>}DD10z zOBs6z!SyoK=d0XxFBbN<*dKD zb|ar$&Vtmbn|NM1TcXL|(rEieDxcqe7Nv39+Gy)Rg~1kQKQpMSxALR=*<5vW2_JL- zcH&ET+yV42VH;m_fGtz!Z{zLg;={!!lyFC6eW`_gR2fKH~Dk7KH?vNRd;+Z@te(Xlfw~<}ZM$MU_OF;D*SQP#z)3~~AHzOa=HDy`vv9mT*_Rl|E8WBoPt(0NB1L{pA2 zlRD-rzU3I}qsjb=RtVyteDN3t&6uxw&k78_bzk#|6>N~#wXYj(Vu@grCg29-v;J%T zas?JPLM{J*Lf=|`3%V5cJkEkNeziE3cy%}?_VnW{Mw5!@D&FxoRN`mHv8ydc{81?@ z{vR-Z^`Tlm@dMmi{|$c`VV|;Z8f~Gt6?RbCdF}zj-L)gJvXQnuiC|8D!*4-PBV25> zl}YQnu_v(OO-6hL-KPsLKEVRi8!qy5C$I-}xx@#ZWO16TOO3W1NnUso^G5k4e(ofy z<{I$f;#${BRo7^v*Irc6B zqxfzyF0DsJpb~(#P6B$8qu&4-V6`tox}xX<^&3;ioljvukXgsaoI?HP*YPC?H5;Hi zSMtUar?9|0RLB1!d1W0R^dZ8!IzAPl*KO#T$ri3yP!T3F-*5S*4_TZV;V%>xeajX_nHp^1HhSS2X{-QH29LEmid3Gi-v|?|Z)N4C|)Rf8S`kEFFIw zJj24Q6<6*a?8qIt9GDAb1Q%h^pi*Ecrg#xX9k~b?=3Mb2EDe;?3d;hP*$ShMoGM`^ zu+mLR5hf}WJrO?wiUHOcA??j4*iS>NC0yLsxYF{u0TgwGpF0chk3|A%OS+Ok24p+o z3U~jAO;=Z6<(7}IWI(v?Bi56`10SKsRbJ&65Duxl>R57Gx>f+A($PgV5fAJLFmc<^ zokv%qJ6wa^O0>SqH44M|jY^z2_+R69Dp~(Q8Q1PE5y?;z>Z}OZK(dI73Xl%0>>7XY zV+vPKz~BV41Y{E~*f>+(V>e6cq&ajc~$=7WQ;S3+s8DSUNFMFRkEb&#@4< zG)P6ao!v>zeO-j!P9I2n*|Ot&>Uree?HJ#5o=s({!}gtN@-aJ8c2r`VYWUvI*)VZi zJvQfuMjPdw`h1Gw)T9Wwc%T7%fgLB8K6D>E1$fO5jnZbFj@&dG_O+a}#k?bzfi>=v zw#2R(NIoVl3phDR0`uhsHe6F_ zYqWhJ6+iTA_Aq|7j<5L|Cxsl8 z47|FQw>rU-e|HI|7Kc1} zw>s9%*`;%n?I|1*VJE~V)uD=`y5d)pCEt6gj*Z5Drtu4Pn3lD@nr!2xhZ3RRvI!cG z-c7d6lHuZSnU6ZF4?p@X#>s*{-2FS&M;vpDk>L_CK1g#2KR2_15BI}EjVa&34?PF+ zCEsC0@eJlizhje~Geetfg9U!B6#Kv6@7Y+5!PrD6%=AQK^Y?6q#{XUF>UU4`N{oEy zWqK#f$RE6n8aZO*b1t(!gDQ}20&Ywfb&PysOii}o6yiDrDh6pyeBWjEt~%AsEkB?J z5pMbcQ)i92$+kyY1m5}q%b(~d-t!9V$3*eSD_GCeM)74=Fikc@HQ^D9_|V|s751pQ zY9#l%N)yIN9&(jUWLXEKuDvdowH+AU7uX%bQ>6zgD%3TEn>zt*?uPg7Y!tppnzDu{yLm4 zIUc`~EcM<$uES}{Ch~4Sp^XkrY_d(0+Q{+~+Nf$GU;h)ErBNMdncWici((3QVbvIE zTh4n~tsE04l!X1wHg{<{O~KsaE={Ki2c;Q}6_wj(mUv{1I^u?MzU*flO{DGR*MDY< z)ph0k+%IgFt1PeIOYynt{P8^eCRTWvYv|ZroK@1nDxM{=fHjzYp2IOT9ptK)p5nJ| zqEjT5^N@Nh5-4{gmc});oXgRYM+-^^COQu$(CP3Fs>~P=>53~|@cy7A5##Q^vi{EG zJV)YqIQW6(;4AOi@J)30#^Om@kQ*SQ^pYxsn1=z!aPWnHWua1y`qO*Uu9=%Rbl zFRgn6qi?&>MNUPlDGy)+2oRrhJSI9Y)m#E(K9Je-?r>j{)2Ws(&P~6YuXf@& zZ6Or=$8-1JSV-F{@JUd9kuT_gT}kmR=I`u-rC0HIe(o0Q-z^4w9pw0VTJfTSC5f1n zo)*xa@Gxci%fJ%jslxiS*F)cfR$|b3TH5J+{Tu7rEe2Q(FnOaFKz4yuBi(H_$T=T; z)I=V68{_M4@P>(eI`Ng@O%wSt@RM(V*TaiLPzJiFGF9m1iIbXIHhqM70*ePGS1@7z zz+w~_Rh$V})Fl23-6u)n-G9eZmz-tHSL2o^AN#Y4T>In7+T3P5*QMdKeInA6jS}Q% zk$nog!=gtVLA)<;)$C4AbYB`tD}jl}kl@J~i$N8@`XHnRqqh+VKLo0r$T!_#US2m8 zY3M$eL3I=P**h358z%DWcQ9>uOycf;us+OXQWNj6lyz-GuN`U3$#vic9~IjLr(Eot2!*!>ny;yoL%G^?1zEe%-9Uz^0wQRtDthyDrNKY=g%6WuEz zfq(EP8*0r+XtEh$TJqATMK6^rxDc}5B*R4*Rd5Ngej*}ydOWa0z=jYedioPBHqs!g zgp4YUu2fJKu;_=IY+=;s!`*q8C!A3*vQ7J zJ*M+zjm(SrO>g4oQMG(`BOF9nDLaVf(3Td~jkmA?n_AfD%`I%etHicU$?RI8IG7D# zCB=5;@~d_xVY!{D&9XDa8|;i-xgRgiV{Id*HQDfMozt~eR=n* zk;1I51SwQYST`>-ANeg zRf|9O5cj1>Nn=DZsQgWSon)0u?^@RbF9G@P&bxZwtaB58XE#c#W&On;_&MfgchQoy2x*4niURW}ZcU zWIo4LdS*Vn9Ut~A>us&Ulr6t_BG5U^$;+*Zpc5 z#(F2qpTm1G4Ld#tW$A3#1842fGFiWU@_n1EKJrE z^sh!ZTT@*6?F##U+yn~xCP+fDBhr0>?b4=E51GBy-CbiFe~4v=yq=0y-cFd>QAp&$tThdb=PeNw|+R6F?2DH;Awzj5T_zCKk}onoN1A@qTm*l0Nf}?~A`ETch~7h91Sj#p&TIwiYfS;v+U12-7*%o! zvZ&M}zo~77k>51D>DXvlz^WA(-M$c%gS6-xd{JAWV>dr3B04V}yOGjKP{~fdsjc9} zqIQY{JjV6*f{VK0Eq?{p@PQSQ|Xb)zZFh?LRYJisy%$b?e%8cW{eVo zp`Oog4_}Vj!*{k9g47$v@r&(+G3v5$e2}{^S)DYVuW%RobS=graGYdL9PJyx*8&?W z)pnJ;;HSBPc(yo}dv*|fG^2KO8qU!8;Zs{O|Yiiq^`#m7|Iw#L)vYmL0_xu*y^Vtswy}d5uZ)e3d8H!*4)d<*Co#g8uK<1A8 zs|l}Ehzo?H-bl*+q!d6t!)( z#n`LTTNta(aOIP|(WvRJJkML`sV;WqJH1iL+pgkc6B;YPxk$?o(Z!Cq^2n}2H?^uA zpW0Q3R9Cg*>k)QK$3H{_Q1i#Rd&qCglFQ|^=eN2FeKh5eV_`*alKSRh7gpMykLZR* zscg@eb;Eq_=gtpwgS`xQey5u-!mA4ZQn7&S;i6tfomY!@DZ8U?<2%!E8^_c82!eAJ z1dW~fFWr&&WOqK)2R@n5ldtl@;8TjfnDUj*Lq78nCTJ1^nr+wV;HDcN*+U4{)DLO4 zO_bssadrJrey#`XY#7GfdkTZR%7)z?L8z~2G2N96<8eKOp4KXb%mcC%$W8*I9!eKs znRd)gL?nzhE=O9WEe58%7maA;z)GM;D^!e1+GNaw!!f{<-72OU>X3lI%k~8FkVm!F z0IUc`&P$yzpqHTS=BvfIHe_^>cPGHRJ%H`Q8(F;sFP`5EZk!Xy_w=H^7}#ukgYWGn zcyo=f&`FaN)QrA^co(ks6@0s$MqGRy0wc{dj5IXP#$&Rt3gQ-DxP2Y|d<^3)y^dPv zD|l<7bSJ`}F<7Y3=9#`1j>&yM9^_zV5j8)A90KhhV*@}2`xVifBz3%Pj+8>rgD;J`ibYWBIv(C`5fMA36vf3E|>FLR^oNad-1au0*w60ZiP~ zOHVI^P26>`@Yh#{Ci1!~NL>){WBAjsI;lqSe^z$EG zjq$W8wO_u^3o7k$LA6_f>4D_~D_3BLfE6wm*7ojf^;jXOdV+#LV?eV&nV=ld2GAbR zS^u}lm*HI6@oT_Nm~fp z1&ly0|IbT!&^1UnrnXYc{ugNMsEKi-Vs$}7Q_^USsq(}<<}F%0dtruz_#;kam6`vo zP?-tji+>m_M7Tta#<$vHq;Ky?zij`MN7v$fix0?ze{U8F@)f^&zwn?_xbUo#wIpPJ zNL5H(h$>5({U!y^2|i$k(K2c6KhzjyTxj%+h>b{!EQ|zRAsq!=(E0|B!}j@3a9HT& za5rN&V}LQ-7;Btr%rLGnt}`}7xR_N{(j?eJn;FzIWOT^Bkctqs(cReHILsJgj5fv@ z6Rk$8akY^f-!|SbdYWQQ*`{*3NgW>WBgmj}zh25%y6$ORiOv{CZz7QFG&tIu6JJ2Q zufzw__!{LTF6M^^rv?WbUo?JYj5Dd?oy7Ou^R>Tddj)#xB6JgVc{=L`U9IjHok<_3 zU$5V-uh*-C#{?$@?+ZQ|yp2w0k}*0W2-T0(4-Re$emUgX&<6~E8@>(Gg~x?23Evie zHoPOsGS#@u7-O1kT4s99wAu8gX|L(9>A2~P=@ZjerYojfraw(KlP02lMAwKDk%HM^ zPB5pMv(1OizgwxQ)16dN2+Z2`+G=gbz~zB$f)avqgU$x^(LJSGuRE%{sZ#|z2mcvv z3m;b5#rPQ~T2ajp{vlj#d>HL)HmS-aV~+)H3d{=H6!cTj znb0etXTz?9g@sQJe>414_>hQY5lB?wB<{}lY99!R40$BvyO7%XGL*!Z_8J92&GZt??Pwb*8B zf(D1&3h@nn%HU_LFrADz6X6rtJ90wgY4lzGrR%sn7^my!pjxeRCaA! zt%p_HMcY%`PaB}sX~VU{wK3Z9+R55SwJF*swfnSnT93e}!1Tc4z^Xu1kTxhes352! zs6NP77pu$A73V!&)T#p81iA-y4)h7^8#pL1 zFwhWa4ty|hTwp?AYEYuCT=%zbRLD`Hoq9FkJu}SV@i3PSrkvf-Kj*pnX}pSNn1-S)15Y!_mDrid3<3T)VW6<`XcY=-teG&9y z5Yvs;P1Zf8%hWB`y`Xy;ovc##x$axtb=@C2FMTh4uztM$Rs9zIUj0e^$NJCo7xhhg z@8I6SLxMxlJhRY1%Y$DJZVYw~=^Wx85fYEi^FqkhkW(S&Lw*Wz4Gj(*AG$O&KlGc> ztD$#7T@6DGk%sYx<%X_d{$XRoW{0f`D+t>b_C;8I*x+#9f4Goroo=3EwwM=FeHE+4 zgW%~wkLnicHtP=PPUY?MPzQj{;Xaf7Ka`X6#i8BbKyRw z5YuNSL*&HBw8&MFsxq~>+3?hvbZ1~8U%y>11osTC4*n%LK4fml4fs^&&_SWkg}xkm z*cy5+^oGGXtaI3)u*NX2a8-p`d{*G2jn>Z8F4h)l{R5K&i{Qd8LB^n^LFGX=g8Xzz zx}~~xx^235b!qxlsIQ&+heF~*=Z1b{s1Exj%qJow;zopXq<3Tx`qlKv1(C}l&qQ90 z>|u^DPc!G5cbG3=c2TR6QD$oo^q(Qxj;5}r-ll=3K-14Ab%aO6pop-DxQIt0@RNcO z&qut3&iY2gHgwp^h=C~O)W}(p`y)?8UWvRF`A4MM+{4_@JjDEvd8hf1`8)GZ=3mW? zW>uY9m5v*9(e}~~KsVVKcqH&-U}a#JpuItdf<6wq81!q9EvSoC=c5~-8=)J631tPQ zloH);-7(!qy6<&A>Tc^g=)1rtChF(tSL)jZdjM~Xv6$m(ri8@)vY@;fksS?!(r;ijSsfA>w z^5y$S36l;^j}}~(Vd~W$AKsg}M#8BXGAWU5)NChNT9bN*|+-*C**y^x67+eUZKx^J}@jLVsFct*_Nz z!(7`4r}7B)4)#N>7=ojMV}lcdlQCrrp>CnRq5h%TP*Z4hXl&Qe#L(o>)X)s{i|o*X z(4x@d(A}Zsp+`db#8{!mHQAJ6N;hSgicJSi&u>mM$B`C`R*@=??L4Mhf%V6zfa$ zW%@&WZ@lm#zaA}k^oljc8xxF)#uQ_!u~jV^^Nj_3-URI3QIj5n1(S=(&E#S7G5MPO zO#Y?-lip-7nM_g0Y^o_u%y6b@DHc3Ayx(Y{FP}JC=+9Ts$3FU4Hx3^UjKRlKN^R0vnJuZA%3jj!F!I! z2}2}(OvgvtlYyt<#Z`gT{KfHj>bz&X(BGOJloOPX*`+Y(A5EMX20?u+8u5t~|Qa=bi zr9s!I6Z9^6Hw;!jdSAVt-d`V}*Xs=!xT5s2@TCNOqCSZai$%Bd11Aub_qAs!)~A>JWAA-=rVC`jT*3H{p$p)T+)5B}09p|dpwUX>P_ z4zJ3=h+7a^2;bTO?%A20w#; zOXrF;#2XR}iG~zIsv*sgZpb#|81fAThC)M;VFMil`3mAwiA9FB26OnM;SU)fGqQ-@ z10ohgyc79JWP9^)^8zef1hHp7gtC#Jzt3{G;U3O%`Zk`V5s;+w05UI!N@329FF z_V%Smp;yl*tikc{E&(UHeEfW{C&4!GZ#ILi1zWD$Ai+U!9D)q-23@Wa>mYQ&OA9CYpOot4N6Py=0)d_ndrautL+_Ac zCj=%D!2pi`Or4n`boTzT1(d6w-iD~&!KXhX^wjjlxnngy23zWa9a4L(0#x8&cN37z z9b$WF-Xoqz%n_b+syq1R9HEz!QxPBjI_l+lJSmPA8^XC5tf!vG&qt$aQw5>jX}r3Q z154zpBi}q<=&bny8mW@{6n1_t+7PBR%*aAUSp=>yn?_CAMH7%g5))sp!1Ai9jI~l}m z$N~!lReUcQu5u8Zfgr1;1_nzt@KXyYr+2{Ygx4i_!dlMhJNa*9~y-6wQiPs@KH}MOzk!~0?%v* z!Bq&fo5X6!I{Xq$-x!FAW)6u zS!w9aS()g~zWZcjM!q}??)M@zBv3YX3`in>55_trino>pF1~Od{woOrb}Dl@1p;3_ z;28*f9R%+};Ljh0pohPMDW~43t37g7ZcAC|-vY{ad=N-AKSPGA9qQ!;2u$2Y0+WN_ z3ItI+cnNAE${{OZcu&i-jHfNZX+6S%C3pr|tmi%_;jQN&^QP&jm-A0xeS<}Z*0k-5 zIp$#Cvx0`TD{s|)-naVUX^_L%?$saT%Vu8jG~6{#*{BfE&nb@Kut{0S?npunNq+<+i~zX3sygg2Bo(c!6; zpNNn%4V8wU*)5=Kcny$r-YyG<(;e>kF$72Wa0on)I0)Pa;@E8~)ooAbffBzV3*9W4 zAA>T2@3SzPB=f<`#n^ZR{N?HBJ*k7Jmx{e-Iargu_q+~1N9sN56+((yZFq$zreHq# zCIBO&eLmqA4+wr8nt(KHlk2L#H1hSwYiSZFmuUKaYY{ zyrUG{f}rkwaRln(F_d_vbRZBd--Tp7v~MZ}OCb zlz`9XPA{Oe+2u;5A0Q}>mdrV0D=8e6M%SJquha|#Qq0%FgxYhbq%;SRr$dj+5|w6V zqE~Gs3vZHQpH6~9RaHac%SEMnu=@8UYc7GrD{t8yNEF?&mnINwrZ}i~d5qY-O1(l+ zk4F41r-^kC{s9CVfm{?lNgN2}rbrD!Q@q2qx$uu7kyqM00pyx=!@r1iuo`VU9yVCPI+L17Cz7&7mb;g&>+gPJ-xnm8LF0 z5W_b@;1t7;Q=sRY8{p`1*t9j;wm^>Z0(?HLnfp3nSpZGVejpj*Dq8)Cfp2QS zn(8W`2L3IScyX%W!+l@Ed5jBhF5+eg zJc}Im6(2)znJRKcyl+GUDq$eRa?Yje$8BQXjb{OUE@ z(VXVu{_y!x7}D*PzX^OPZFKrN#Z!%UKbZA8-eFZI8^xW=j@n|uiI2F78W(GM_E>c2 zgV=OB3D&aN^w>!53T!;Q)&c1TWxQZRI$ zQt1mo=@uCon(h6-<|O(leC<4^wfcHvF@ZrCF`gubj`zKTx>(DbnS#>2hS1j4oDrDrr+(jTa9;sq&XmM zCt&&0#_q=A?Yk4=A|rBHQ6_s?`-S6=X!!9>!gT&asW3!StWl|4`Ghxw&Q7oJA#b9C z>0#jzp8(c64s6Yv$}G$QQtNKzGafX36hgEnp0+$=N?iAi}z6vw-Z}O;OK^x~f5mVnzWoCnc6gnW2 zfs{EQg+Ky!DO2qQk{r!<&cSO@pWGw;1&F~xzuhEE01k-%J;*2^)ebuIfn0V#-T<<6 zw=yS{?ttnrxRGZur_Rzb!VQ4_G!}N}=#Fjq8@q)k)pf(U+gn&U{>6vAB^-C|n}8AV zu(`~rj1dvh(WG0ZRGNsPKdyth@KpXZdm5NBo0eKI|4F}|BAliM(RJ|sn zwjGd%fRs8Q^MKSjAg@ifVm^9DY3LM`Jj<2H_dqfn5RWOi{eGp+C?Gc+kQ5+(2b4Om z04a7r-kE~G0g6AURQeuD)eZ=K^O|Vtcfws$|be@MZ z>Ap_+ys2DxNu4%^uh}o2L+#y<#_tUUw-4}b5*)*On@IZuIb-sa;`RY|JAgNrPsj1h z14wD%uOAQ|_nro2pHs3jWiTB`F%~vB@v-LIBi#tZ&q4n%kN^kdDp! z8p9#k0x0c1t*ouhK&l;(cY)k?KrR6BIHOGUClI{@(lr^ScR<3EF~-F@K=Ytf;eZqa z@jI(D{RNO52jp)cjSfhknJV%3chxGn^ua*%A1Uo51My65fn+!GImKfR3v)Y|u$06? z1ha7w#>H;Z!s#0S^04r@^BN>g+9V#hcpngX<<{pbAj$Sa*}p_yDfOC#<-k_)oW?(g{0tx&{3f>dy>p0l5bg%zDcYj8nJ;eEz0b9P@9xb_$h9=`|Q5W?%0V|1+KuOEXaHvy`iC{E+f1F-{BO_KOH@Bx#!??NPd z7JP~wUk|>(&c6%(h@HOx9^a^?<$&{F;5`$hv;$Ic;+r7hJ&#Q>xDek}M*WX}##a17B_dW%u1r3C}5=I=Y{QmVdEzI+nv+@To4 z>J|_uH+Zn;{4an$iPTu#`1E9)xFqqL|H8L*eg$67N1qaUd3&aTeO+15ARzh;(x@{| zWIUAGeOTVNZfirr9C z30}|VpB4HJnC~p_%;O$gG$U^2yxH?-3{QV*=5d1eI?r@Bmzj31M(=4Y6s*gARd>LsfvM^ z9FTW`#C)gJId272mHZj}z14(Xac=ECjfE2e?>Rbb2a#bR27ssOd9iV{4$YTek(l{XL z9!ew~NO@-&k?R^YI_DE%jk;tuzw?REr~lV20}*AXVtP1o+afvPIIm z3Z&KnY4nE|B1SE-W=#56>S93Y)xO5_JWKz@1|k_#kw6GF2|NDqAS z&D}MR@Uks}pst?7r+)^2>c*FUCj8($0A(wDM_Q#kB=X9sY8DW!_{x}f7FbiTd><<2 z>p;AtdDK2UPd|K*v>HgpJK`K@y)E)e!yTSMn>$z=1SH=9i2_pYfK0jvnFGWHzhiT^ zGg*PeIw1Q9io&~Zca<&xNq0b0OVC0_rOrSgl@3VsJ;)3o^$t4gft)lc?VMc_hVJbE z{SBq~D5a9`v#2cx@uI0V#=BB6ET0Cn=F!Aej!x zE+Ew{h+KLU^2pc1T;a@$($owEUr28P^y=~mu?}woSbV7DK!4lh_l0;%MI7qO+7K&(UVW&nvfC=OXX{-PjsiaDq>oCR?<--xtv#l$)Y z-vd%1-iiiYe6v^Os**3PSj6k=79Dv-e+S6!Lp;& zL+JYDDy4wA!@G{28PucDo)wP$d~|wH--uqY!a26CLDvNJU(owjsDzKX&+Bz`ruzIN zhSXQc#+43^t=6}H#eW=~>`YnJew{7%+N^<83UWsP)FIG=kQ0JD1*yH(Oz3Zr zMnT?#vXS2 zJuu$sQ@YoW>+11LS6}aozD~XKPhQbdiB+@T8H!ucZ9%;g9lOdIx^JViS2?G`zC~9# z+8$`}d)Ze<(~?mUJhtFTc8;r_QEzoHUG&<3vGbHdhL*vn6ueXTl9X-l`@BAML9Klg zO42R1Hiy#vknK+B_~&eGhW;J0P59tAB;k6~z45m(ci3ep7^-EhnLrLCQ<(c8*@9F- z3IzExq)w36AlsXr`}e=JwVBIVx6=|koX~Vzo1s%6{w621*w$uf0J3|h6Z(Ly&CsVI z`-9I79I~|;`W2+vxtXU=?C-TULsKF3>haH6$a1w5H%wHbO6lHcT{+;^kaX6Q&rO|uK!A za0rqi$k&jz$*L)m!~M8Bei@nuDG>IPAa#NiLShQcT-HIF1-T!RT4>t50BIDYeLN_0 zp=tCJWSbzpH!&6$nKs#wmWlQN8an@s&|gFHh5Zglo^zlz^p!J0zlGEZ`-IK7V6uIa z#n21UGISbbkFZ|}shVV$XGqN%p?`(63;Pa;N8S1;bAPv*Uj~kaBo>*~y&9t5SrXo< ztb(NWWY*C$4}TudI!L-8HIO64W~?2M{Us)ODFDh^Y@#;E9zlM99Oi8(;q2qKus-nO zlrTv?mYX((km?GP+`feah$exyW3<4zQt|?_&7IJ#_xW1tT%-O0+3p<5CEiKB z9XcG@;?P;h-Oh7CHz4yJT5Z$t5#fV;Pqa6A-WFu%7}a(iTdbq#DmzB}Nn`>?pSGVP z_~j`5@KC?I*sVKz!%L6_%J&T${cUR9H{5nHA2RP(&VsTUT@}>Z(2b6Ec4&uxrK-MV zW7tAK!!1sPW9ZhP?o!KUB&dg?(|+sN%tX%%>gDLFpuQ8`_*-Yi+KE0A)Q8Zq>l}U( zogLJDw{m+$P-mgH1@*P){k9HXOL#-A`HtP@I{3i~`v7kCz35KSY`Y=-D$TY%0GTI< z_il1=N$7a#U`2#_p`3?s`+pz3HuBUuRrfuI*Ynjg-;?PWq8zNWGaWJ)-R?%$eZCSB zy*!kuo1i-Xhv=o7nqbSPQcuRaD4pym#|C_5uen`@b>i&O|>Pd8(dg0$Z@HO<_P!aWBJ-=H64{M9uHnZ?BXLdoeT?uH$2H>@^JTlJ>|>DH7PGPu+vs5S zp+xAYVF)BeyKm-IXN3I*k}FdD43aHU9QFsM9XG{LTRL@)zluQ0$9$tJx0F{GS$BiB ztJi;IoAn8@R(*x^j=Nu%OCLPQ`!GA=Ok-`xMBU4rQ)S*0 zeD4VMz=V3{akB?nX^`XU>(lhQOk~!vQ003Yl`q(^b)40|%M=Xeg`Un`!Iu`@M|}V5 zU}FJ!3)1jf$Q>R&7yXfm`z4dy1IZLa>}759vS~B*K_=&|r>$gbEvix1&%QY`)LzyO zFh8!$n6chRHmE}p7*F_Ly-NIu^gfErv`0$+gku`p>Fe&pTX5^6t)#*A?6RGnqF-xm z>B71n?c_B$Iq6MRd9F1u*h@y1G-woZR0-x?-6$cUojK<}IkUUoH9HyR*>jn-g5=7a zW?YY~QjbMi$$azl4bJ4aKszuhqM854@FzdLx6>={RCCg;{zG%no-IzRM%iWoNYiGMJP)aM zhOqZDbe*Gz^xeT$_+7I{Tm(sc+ayyUtwB2t~T>RF&? zyxunj?>==pfb~8+Q>hqhvbXC)y0oe-hLX=jJLS}A%whC+?ed%dyAzwdcU4+ftH15u zwa3&9tsj9WzO5>|S_9APaJ|()8Zl;cTfd5J!RaacdZsY3lM=D>-SZmTq^^8RtXt^6YzDhxpG3y$urM z+KcYRl>cOOjQT9j>ZUqwiH_ScEXKNDC!pfv=}&v?w8HC}_dPo)XF1=^5tGw(3Y^)Y zlfVQWv5$T4mo>Oif7eB}<|8>z7z)bXtiQX%*yr>47nS%j=6z^(r5CZ;FdbJ>L8rU@ z6O!RPS(nuJ5v@h{f$(UNerJMrEjmAF*=TFi@&ibcV`;@dsu$%K60PJuleH8{u7D)i zfk_Qoiomxau`Oy?FROo_E{|z#=8*;2ZFlA&OOW~WmvBV_kSam$hU~S?1Fs?19x&5t z)8_Up9-3gIn;0J=fpZ{L6U|IUK(@Opz3wJgK>WhTH|bd8LjCW2ZKN*iZS}AoA)rP1 zdgGRlkd<$R%JUz(4;LFE`Y=*|#L#I%J<2#I#rD_R^>H0rP3sdJR!zrLIXWQ??$lBn zzvfXj+oBT_CPST?YWkH!y=Bnt@2K~68e7o*57p0otbviK$5hi?*ekFN(^bm_);U`; zqOGs_ny(&DvXUdaKf!x|u{{3?^(g-)OnSobQiP}5mH~-gA1rB;bCh!rI@i(m;nLvB zO`%TCg+Nbt?I7`amk5oUoygsHvH=R}$>``B=bZXY=929jKS!V1Vo$9@ zMlkz+aWLd#ox=o3olAt*7hAIkJf%M9$;i4_$5f}0@r`a2?Yzs?SKX~%_G}VgUlXc@ zpQO2}+|}w8+#*D_G^>2)>lIn#H>mk}f*eRgmWY zJj*QhF1J(Dx83!R-|Qx)i&^3O1#3RVqGss*>vsk2W)HYM?sbgrv8KJM~P_h3z4k>W#1A}(`GIS;+ z!=2m+^^`zT1gVB}h%!71*(Qj7s3TL<zx~CJ|V0Q0?hKcB5=VTSv}(S{>VH#(L&hIEcV+VqIfojAol0*O2C86%;H@M_LQ+3DvJe=*^0 zs^VNLbX0BKYLnBD$f~;>A8ZFzE{|{?Kzx!ft-(_b&KmeK#KS~wZ-70&m zY(9Zx`%U8A!__N6QXq!~84Jl@WyYEo0CfnoKqs`?G%AG@tTD+NNYh%A+y(l*fa&}c}(|Cu(qkZM7$glzcI zv|0Hqk0CU7nrIV7rQe$50Z7bolQcrMb#>-Sr#YU6_8;uH&zyV zW+a7(Zr0a{6(}8Oq9Y*B5VL0ALmCE|Hr<|MVoozj3M6KTNk&3W2r>iGFx0fkhcx94 zH&GcVW28woLDr6Oh~C|JJoiIdvO*+0mWCu-OCws;)@1sAv-+$4=O%SDnL+U^F*;R5 z3bGZMqs~jQhWGgd**f-@>2#`PDb~)2`dtGCSUj*?pe7C^q4lbGAe+@rqO^^5=9o71 z$UtjpWXJvPE;^PMHeEc3OitPP6(YySKF^WwII}{7AO+(?+3E^i0?FZDi$C5{AAEAS zQ#~`tTH3uKJ=ho#52>#kxyw9JO;4pn+f_xXmE2{Pj(f2^%k{jpbg^HQxu?Y?Wa9B-lY2&vIqGyOE^Jau&m)5-wV8jS+DQECv#bH?q4TX&b@DtbmET@X z9*i??A(6I=?af8tLG&CqL7m0pkWxYP6J9x&gbJo@K7`B=Hs3&6h0WP5xNAZvR>(P& zDmX9Fp*@4tM}w{FB9hdE^Q}P%SI36#6xMm9wW#`BD=~_f#k%##^=6YQ{Xidc2IiwH z`RceI;aLXp=Qw#f<7*w{$P|3F3!z2(s>l0849;8SPGtvIY4QWR4)s zkbFVjg%k<$e~>akc#6(bD@f{#On}=2%EqWckl7G_v02xJkhMV)iI+T{UqR9ro7Jd+ z>=&dSQdVl(JOde=c!P-!f-+qa>TmRw%%Rp2-cazsP)=zi{4uoI-AJ$bAG-wR|NcoL z{2sX7y}r{4E-_1Qy+nr-q$i}B1j1b~1;UQnAnA}J!B~-YW|JWLgs%P;Ws_NujUv{y zy+NI2p&Ewjld0~zz*_8GMIhyjN#}IlHg!Qdb5}JeUCl-Ybf?c-W|sUu0%w$)}8Hj&ULkk~3S)=9|5TTBxBGN*gindBl! zLA6O{yv)F8ywyZS7_|wq4pJ|&-vZgT-i-ASq(PA9Ap2bs>JjO7L(`EWV(HI^NL4Kv zW?d6mHbU*;{Fc4fj%Zi^8pfj2N(x!GJ6qepCw!^D-OTb7q*ah!e`8N2$VHIU-6 zgUk_RDWpb_^^om?)CWMv1=<6N-DoC#2r^HQs8=YoAcG-^cbKteK=NG@@)PwAt~_g^ zxG?BZLo=*=-fOZx!(KBV&R_*Sq6Un#iqvCWtuAWCC~LIZJ>1HRSgayOSW{K!D66X) zGSXV8c8;(vilac z;9R43q;*cz{!PxRPgpY#Pkl7j8pSJrNoMF&k}16uwOy-!Xf-$wRWt?Fpw-7(4ZI9h zFcnp=)rVU3pN7ikr?u5Kt=`w_oav|qm!aykdQYp~Gf?xUp=z~yN2{JQQFErFYP5P& ztGHRH88c8DwR%mfZnIH&Gf}Oxsoy;_tyK|4YRgQ@pF4}nmpS@Ht^JP9nQi4oc8^of zO|k~6#@TGtZdPy4wsuDLjZ;65V1~E9E>UM+ZY?{1a9n7Ug6H5P-3@A$`rvXlsN0%CYhjMM5+GJ&9)Y)ss?_V?MRb)^RDRL>YBM$tYycu&uDuOIFUB$ z^Ku`d)0}g3fiKa!nV-9murp)-2x;GB4(hmlykmrc%YQ+efsp#T-DU*=}`p zF)xScSEoC%d@Czg+)(Z>X%;Cj3Sd+{DrBUiZGhyAGs#X!hA84bNa!sFPN9!M^hbYl z$d{0oOfwzpRniGwP;+b&UuC_T+|x9=5ThJXpvxegBSSX6k`=|pWYX?Vayr}Vu;GB% z@ZxGnm7Be9rGLeuWtE;)LEFce^@x9+GpZt?K@k1v%AeDUBOq%i`YzI5gI%;zg!v7)@fbIR=>KHr*>ipt{hn?>87B3A6? z$fc}{DZzU5+K($m(nBCkBg`U>hv-kZUCSZ*s#mzlZqn)Gnz8PNa2=|CK1Xib&q$#K z(kc9RNZTZsxpdmGQjC1Nz2Qt@;gSr7=uZrPPRnFL@`Tr?1wf6W(N{t0C!59H2x*&O zl6pwK=)6xt^e3FzD`${HkWAs4Z{DD_c`fY%cIw_Y2^ED)f`qR6MS6TIi~Xw?t}59m z+HEj4heeZ&h3prD?{df~5vvfAE@sEo0nia)v>rk_9{O9*fAtX0C8i^GLbi!2JrB_v z>~Q-Zg|LPjJ?m>ojwoWxTlD-)(X;!%Mei3r&V=k1Ei)Z*LbTp>kOEP}N=ThMJ^4y1 zSNRvwMMZ(uy~WHoLpbCQk{g5m-d!6Dj zh+M29TbcRv%^G2+#e-y*KOd3;)Lq%>&J!VXgomzzG>G0%3dzYa3v{z46HT%OQWp>- z?#~*D0yRU@-8Qq`xRRkGYX3SmRbs|C3Mmjxb{x_aXJ#Mwwmt-={lm2%3_2*1&VnRR z^YHkZ21ycyz8+F33S9w-5zfB_k|KJ{J&;j7Jxh&=_X$vvyHy}p&&!Y#BB8%ScDw%2 zHeW;Lh}ARVonIEZ2gEZ{HRUt&rE1M5JY$W8q=~}K4cdeoeL19cM96=>k~J%C@E3a$ zg|n)$`AyG|jn3m<$X+*=CXE458Y1lV=OJu(j9t{5kgDlspZgASv#56L0V2^f;c5(o zbcl8s4!N(VS)jZFsnkOlU5QbaXwVxDsLt!G#K2xryS3O|ClcEPNx((ns@w}n6qS1n za+`?tl8zlj3i%%3190wP+%K{^LXhZp>QkQA{#WI(Eg-xfelWttwSgm|W!WUD3< zO|k>hGF2EI1eJ=O_)kc^@Z|T9Mv;BgyELS_%x4V`^hO@eG;_HSk|H*u;~|;ubm;R< zzG9wl<~&BWF&$3THX@yCAt&5|_)1F3R`H&eFWj96(LGB77`2FmRzotx{$La2UE%aU zK?>ZYbwVu=uJ9ObeiV``3iJ&`f5MYSrPjk1q;~IOi&c;5uwtgg+jKgnq}uS)E>iY!HQhA5tI4 zF*ExT6zvwsXKze7sU$M94ijxsD3)(gVOd$lB9C9#^utDf!jsTNkVH}Y$&j^jhkX@j zpK$deNXp1iW;)5$kbHM6XmSUnMJ!06vwFToJ1Z(vU^_hmGn$RbrWY7_wlDnb7l)e77Dx zI)nCptZ@EOY+8iRIw42gSh_$zYnzFrtoy%H#7Fq2Z<)<)2GSb$^Jf&et~q@=m|)g$bK)ROtk$0NT(>!$B+y`Iw4iM zu5MMW50K6r(?6K~08l?@cp13>lBLcnwgv_Ag@4Bquvb)PF~q(-(9K~rgs0z)u2cg_ z7XzRHazfPjc}TR#Yd@quAg04ZpapKyT#B^E-*GXme}_%@T!yb?QCY>xVoyJjbkq@& zo?^P?Y)Fi#*aeU;HU-Rsg~_0Kq74>6^d~$3?tnD8Mbu&UL8``uGV_(JEG}NkMC%sF zx2$-XJ_9ntB|6qC#PVaS-I(vqJ^a z_G2L1MR%J9*-JG7;R#_r=&%@DOCimot~WwFP>piAbD0NZGTccH>e)5R-b9_fHKCKxgCXU6g}-YWRIJhjvw)%$CD!(zsH9v zp_I*Ct|&tacKWh*cSA9T3?+ zgi$|HmFFP)L@T`wNfCRp6OarN3m+@$S2(4*P2wx@7wg|Ct`>O>#3pfboY~hW98(!L z;FBX_a81XsAlvlG^^i_c%vBK2WYcCNgeEY$U<0ITl4Co3kQCgk`v>cv{=BE7i8B66lXSB{ zk?ov3akKZ$Eh{dr%*jj@*`I~Y?yyZsSw+PP_6DLk#$uyC_MD3U`Q++oqFY@JNfH}~ zN{Czws~~$s(zioAV!ZqTk|CO`36kylb(+rpP0(Q%X>tV8;nqWwFClFsOn*dt%4Ws2 ziT(61)#cXZyZ-dNb;;;m-+pJsC3Uwi0;k$f%S9*ObBMDbYEuI^`h7kC3a zBQ@7Qd=#f!_4_@1rG@21WyLGzOj*79Qs=rEk^j3vQK7#u)n~@^3|rwqVvQ-U;5r>k z51GuGKG#2XVPTQa-cV((DJ}G0y4vFl5Ml=8j)1yJ%)81Avy(AF?r@#NFH^|SDd=0$ zDEWWR)eW8NPYajH$vPBKVJsdxt5 diff --git a/quicknes/bizinterface.cpp b/quicknes/bizinterface.cpp index c1934d43ff..cafb3969c1 100644 --- a/quicknes/bizinterface.cpp +++ b/quicknes/bizinterface.cpp @@ -16,6 +16,20 @@ public: long size() const { return size_; } }; +// 0 filled new just for kicks +void *operator new(std::size_t n) +{ + if (!n) + n = 1; + void *p = std::malloc(n); + std::memset(p, 0, n); + return p; +} + +void operator delete(void *p) +{ + std::free(p); +} #define EXPORT extern "C" __declspec(dllexport) @@ -314,3 +328,8 @@ EXPORT void qn_peek_ppubus(Nes_Emu *e, byte *dest) for (int i = 0; i < 0x3000; i++) dest[i] = e->peek_ppu(i); } + +EXPORT void qn_set_tracecb(Nes_Emu *e, void (*cb)(unsigned int *dest)) +{ + e->set_tracecb(cb); +} diff --git a/quicknes/nes_emu/Nes_Cpu.cpp b/quicknes/nes_emu/Nes_Cpu.cpp index 09f10dd702..b3748fb8aa 100644 --- a/quicknes/nes_emu/Nes_Cpu.cpp +++ b/quicknes/nes_emu/Nes_Cpu.cpp @@ -113,6 +113,11 @@ void Nes_Cpu::write( nes_addr_t addr, int value ) WRITE( addr, value ); } +void Nes_Cpu::set_tracecb(void (*cb)(unsigned int *data)) +{ + tracecb = cb; +} + #ifndef NES_CPU_GLUE_ONLY static const unsigned char clock_table [256] = { @@ -206,6 +211,19 @@ loop: if ( clock_count >= clock_limit ) goto stop; + + if (tracecb) + { + unsigned int scratch[7]; + scratch[0] = a; + scratch[1] = x; + scratch[2] = y; + scratch[3] = sp; + scratch[4] = pc; + scratch[5] = status; + scratch[6] = opcode; + tracecb(scratch); + } clock_count += clock_table [opcode]; unsigned data; diff --git a/quicknes/nes_emu/Nes_Cpu.h b/quicknes/nes_emu/Nes_Cpu.h index 0e55169403..44fcabe2ff 100644 --- a/quicknes/nes_emu/Nes_Cpu.h +++ b/quicknes/nes_emu/Nes_Cpu.h @@ -65,6 +65,8 @@ public: // One of the many opcodes that are undefined and stop CPU emulation. enum { bad_opcode = 0xD2 }; + + void set_tracecb(void (*cb)(unsigned int *dest)); private: uint8_t const* code_map [page_count + 1]; @@ -77,6 +79,8 @@ private: enum { irq_inhibit = 0x04 }; void set_code_page( int, uint8_t const* ); void update_clock_limit(); + + void (*tracecb)(unsigned int *dest); public: registers_t r; diff --git a/quicknes/nes_emu/Nes_Emu.h b/quicknes/nes_emu/Nes_Emu.h index 2402493e16..1a538f8846 100644 --- a/quicknes/nes_emu/Nes_Emu.h +++ b/quicknes/nes_emu/Nes_Emu.h @@ -214,6 +214,8 @@ public: byte* pal_mem() { return emu.ppu.palette; } byte* oam_mem() { return emu.ppu.spr_ram; } + void set_tracecb(void (*cb)(unsigned int *dest)) { emu.set_tracecb(cb); } + // End of public interface public: blargg_err_t set_sample_rate( long rate, class Nes_Buffer* );