From 2fbe6eb9daf783b9ad1e85ae37d1aa8dcffa8442 Mon Sep 17 00:00:00 2001 From: Catsoftware <leopold.schaffhauser@gmail.com> Date: Fri, 20 Dec 2024 18:44:35 +0000 Subject: [PATCH] Add Trollstore JIT --- .../UserInterfaceState.xcuserstate | Bin 0 -> 21587 bytes src/MeloNX/MeloNX/Core/JIT/AskForJIT.swift | 25 ++++++++++++++++++ .../MeloNX/Core/{DetectJIT => JIT}/utils.h | 0 .../MeloNX/Core/{DetectJIT => JIT}/utils.m | 2 +- src/MeloNX/MeloNX/Views/ContentView.swift | 17 ++++++++++-- .../Views/SettingsView/SettingsView.swift | 7 ++++- 6 files changed, 47 insertions(+), 4 deletions(-) create mode 100644 src/MeloNX/MeloNX.xcodeproj/project.xcworkspace/xcuserdata/ls.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 src/MeloNX/MeloNX/Core/JIT/AskForJIT.swift rename src/MeloNX/MeloNX/Core/{DetectJIT => JIT}/utils.h (100%) rename src/MeloNX/MeloNX/Core/{DetectJIT => JIT}/utils.m (99%) diff --git a/src/MeloNX/MeloNX.xcodeproj/project.xcworkspace/xcuserdata/ls.xcuserdatad/UserInterfaceState.xcuserstate b/src/MeloNX/MeloNX.xcodeproj/project.xcworkspace/xcuserdata/ls.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..f3138f8411742fd3d03cf4c0e26f56b3d1d895fe GIT binary patch literal 21587 zcmeHv33yXQ*Z<7jTIiB=-`k{n(>7_-G^BghLfN70TPbbYMoLqY6ex?#MFCL(0dYY@ znj))!fQSevDx%;5f`B5TqM|G=xTA>wbCaf}wEF7%z2E2aJ>S25ZkybD?#!8)v;59E zbMK_adW+qWmGut7h(a`C5Q{kEg?f%koNBh&E!Kw7iIujhItzRomgulHj!Lvny3JhW zum>VMe@%s0G_bs%x!GK;Ya@Cad7~b~%N>;tGr`*e@Yl!(`Jylsjv`Pdk|PDmLfJ@( za*zt;A~ouTG^j7?hx(%dXdoJd2BRTpJeq(i&_q;;rl1C7MUCio)P!cDS!gc06D>e@ zqebX`^e}n^twih4db9y;M4QlNv>ok0&!FAtS#$ush+aakpx4mr=q+><T|}4AWpo97 ziM~Q#qi@hv^ey@heUE-YKcgGycZ@K`EDph;I1Gp52pox{a1u_&DL55p;6mI7m*D}p z9Q}lc;Zb-ruD}y<HLk-J+<<L(I-ZGV;n{c|o{tycMR+k@jUUHra0_<gR=gH(z#H*) zyaVsVd+|QJA0NfX@Z0z}K7rrCC-EtK27ipt<1g?<{2l%t|A2qQzu?~}Oi@%%%7^l$ z{3w4alnSH5DH)YcWl))voKjF(R5q1M6;ef%fihA9sX^3WY6vx)8ckJFlc*}nOx02K z)D)_LvQbm18PuKBJ=9`q8MT~xh<cn_L$y%rsSVV#)E??NYA>~q+D|=Cy+plCy-vMB zy-A&<PEn_+i_|6RGIfRelKP7Jn)-(Np8A!>G)4Q;ezZR=qJ!u#I*yjmQaX*6(dl#% zT}+qIT3SczX#;Jf`_O~v;q(Z4B3(&OqO0gydNOUN9rSd%nVwDGLC>QX(u?TD^fG!i z{W!gbZlRs@R(c!#6uq6^K_8-DrC*~D(?{sn={M*%>9^>2=#%sr`cwKd`U3qq{RRCk z{T=-i{WE=op&38MpAj(;Oe7P<<T3e70aM5nF~v*?qh)lAo-r^+#>A8|{h7hc5N0?t zf|<ZnFtyAahA=!cm${R<i<!sFXBIGbGYgqT%md6S<}qe9vw_*jY+^Pu+nAlqUS=P& zpE<z1$h^cHVP0oGVLoL(V=geCGhZ+lnM=%N<_hyAbCvm-MJ#41)|d5T{aFzk#D=kP ztb~=aX{?ORVl`|Yo6l-l9Xo^_%9gXk*x~F5b|gEN9miI)X10cHV6AK;dpmn4dlx&8 zozE^{?`9XW_ppoE73`zzDs~;ap54H1WVf)}**)xY>`Uy+>_PSvdzyWheUClEzR#Xz zKVUy&FR+)`tL#tg&m6_k9K*3(56+JZ;KI0YE`p2U61WsDn^ST*oQlim3b+zZ&-LNT zxB=V{ZX`E~8_V6!**H7r;F`Fp+%#@F*UZh}W^%K*+1wr6oZ*QLP4)FBkRS3#A|ysZ zD0Jk&a`|L)vwaNwZ?hF6607Pf?RF;$K!JoJv=arR5SVqGM-nQ;iOOCYQ)zB?uS`>} zPMxVTnQ}8Vx-5NWp2nceG4#^qYI+$f#KC1o(@3jrvc0jg%51b&HBB)$I6OT^q6Cz& z0Y#x`6oX<>9Fia@iYF}Lh!^oDJxEXDLwq-&M3jV*;gFy-;WP0g{zL>vPa<}GmQ{!| zp`SjL_5qe!8yK<b5ta2#W_zj4I%Qz_P_x}(wN*~4H@gg+vC>glAr2AvvNTj%r<K`D zVKU0AY-V%Ag!Z$gw#q5y3UPA#iD8wK^p&=emG%)9y9L@BX>rt*TN-NX&2Xhc90!ED zDhF8H_R+$5gSEk7v)0#}Z585Tp()QybiUTBmp;#!Win>!by-=NDzz#*Q=`ht&eR)K zz4S_zUX`QEs}M(Y@M5*rPpY()d3dQ1hj(0a@!5W<hj)cII#(^p&6Q-Uva%!^O`aqR zezSA4m6AM_O5$0IJfuSz>rp-`K!vCX6{8ZQB>^Om1d(78LPAN{dYF3yG9nWyg|+Ad zGapVgB#&reC3FPVKnzTj*IB0xtek48t%NyupKAZAvzcM$1AuC{!%}Z?Sj_g3mTE_x zo2;zC-Uu$rYU?0tzw;(Cp@a6@$3t7DYD?Qqo}mmyBT>d$RE~zB;b;VjAdw`BM6X4o z&<HdJjU_Q8nxqrCz_Mgim9^R|hi3X&9P;-5<n0Ru{Fa;RfiH7)`&ICty=~T}M)w8q zw)P6Kti7RfYm=?Y+_v(=%Wi7aP*>SdYqopXoP=rxHmguIGNT$2OX7%xNY|n|WI?x~ zIucJ3NfP`8HiJto^$xSmCBORS0l+f2Z(yx|rQOlamT<a496G$Ard#50cN^yF;booM z@$h3qb`-j14M{kTrlM(RI%*!{wg3&F3ZvW~&GvBv%Z(NgbZbMUt=S1wGe!+8ALK$8 zZZYh{Pq`J=83;Xn%tmuiXbZZ7B)1?!QUpUHh;Fy{90%KU7n+CWSBN8Fl>`MIEa0A@ z=0=;@4rZiM;DV%))IkB1?<5Z<!W7N0T)G0J3e1;7S5;-U+s)OW_U6$Rhk1%?@Z;@m zi&_R}>=W!&f|d@p+CeC-4LQ0)_gu@Xxa-7|UZSAz$mm#ULQ+cFaqk{I{f9MHI_gG) z-7rt@V`*@#_3`ob8!^CKZyh*ln89i@m-j6jCI*lo4hWoJp59p5Ab>GfkFG`;uZ2I0 z5wsK>2DgTU4j*ALPqU9JH#;0)N<f{>)5H|q9TDgv=f<q-0mM=Mt<Vpgj&Yx+$KG`o zPRB{$bcmRN3-Rs?ti%2^Tu2OT@qv@c?vwbT`90xeYM|3cI4g6XrF`ET(~<$_GbI8i zau6m#WMNhXCgk>MmKujME616wOh9cv2?rA0pPZ`P1nuqa&k5SQkGVg2gP%wQtXK%R za2TM#8Z;U3-wec~`RE>WA6kmm0OH$>o<h6OUch)q0O7rhK0qI%3xMvv2Tb=1U^;K? zhebFT$KZItax$EQb8$W{!R2@aAh=0*GGMo9?hYyJ{ttMx(+?(Y0bYpi0RwKD-dOLp z{)3tv^_B*+Fg`c#6(p)n8Cuc3z~YR*OkW|MR58ra+b|+qZ5%PIqYtnmN_EHAo4Op< z+-SD<YU{3IM0rI{b_bnHLdwBxHq@3?!x~s>EZ{QS!&r=#REUEHmJeuh2n=^9Un^QH zsGmo*mZAqxh7&DA%Si^wbb|R4OkcEMK9bsvQzt9uGGg*_hpnl~(PRVLk=su9hephO zk6<2wSA(??Y`BMkM`3}%o~=TUq1EVdq99o$n<xc)=0vS7dzM2~{{!~yPfUu3)hE$b z!3=F7xh-fLQU6Obv=hwGu772QdJPhPbBh)768#sgkp4;ix-~7{$9wejxz+YK+bs`> z$MA+K>y#-L2e>Ioo0}0Mr#Q$N5ZI0W28Z0FzYD%`X^(e6qP(!*u;C-eRZebbx_8n2 z%U3<IVY^$gut(EEJ1H7M&n0LZwXSoXncai-2~zkR+Dr0DffMaV&yzw@EJ$HWlih3^ zY%|xGZ8mdtySsNulxaGc9>G?Y8Nr!KJ5d_Ia@SgI%{S8=cOlo8(ZMyO$gL)a(5rx9 zbv9cic%?&VhMVFrI<kh8xGCO1Z%$}eBNt&SdP5*>pA63+j-j(CV>5ai9Y-h7JLn`j zg-(O5dJmmJ?-M;S5F;^>Qqr6BA!Vd5=|}o+219lZeTY5+b9Nqmf<8r`fm!>U3?PHZ zU^0XZCFMN!<8dI56+F)3akdM6c%VfGhA9U(<|q^V%V6*{fGhOo8t^Ly>y*Yyo5gNz zaC!ORFq3UK)P1Yl_lw&6sLSUx*PF-Od{NT&rK#RwX#^}RbTrsznF8Lqe`T|^$pN7F z7Cu~N3DzT_(M{*M?8+=uclN^|gy6`H=9)_Az-XS-RO`lZlD1QWg~Wtia4?<kvriaM zIo&eFGQ(W$>JA){>+V{BI|7S>xjun@KtBQ+_z9fEH6R#R-abS9%?-6K1bNdr7x))r zF(L!qEB`CHKK7>TPV^g^ar22WgBr~ZWeotz?P63R4s4r`{^lCTFzZlDZJom<O_)MQ zS};w9k&-q^!5sEO8SBtH;J13<p4bQbf@BOQBgjZHii}=|{lS@u;cp;BEn~=7@*)|- z1C771`T_3ggkB-AXd8Qw`&=KGDUf(LSvA={-hED3;_RICu>xZ02MEN40Am0SH`P}Q zpm;DuF+<I_L)ha0X%WIK7>tL{Xe>b)t>9H-aU2;(#*+!HSPBw*j#Pkz4ieZ26o#*} zw{`8pMPR%<5(*bxa}L<o*bIQsQsp`0o|-gtum#J=L{juF&ct%8z*$Iyv#}C9xC(r@ z8u!8)_>_+eAd;zW3k2Qr3SLd<ZlEjTk^*`)3o)ADFy(fK4g5@Ji2)YuLZ+(26IO_$ z8eB0)TT8dn2XwkB^fT7O!SJE|;cm~j4inSvg^8Kih=Wv;1MsPl*iYdiT#QR#a9XUx zdThW(Y{I3uH%yi%zU^<Va$(a69nRdX%^~e^#Zar&0f5}>J`Z<JskAh7kPFeCU<3x$ zc-ri^Ml7U?)DtV2M8H6(Tv}J}sLc0#kT=#h)q;S)94ds5nU;pJ+2a*vkBJ?dJKnu! zeT6maN2*ED2|N%Ff+4B!5Il5DM_0pLOu)cvNNpR;b!ikHjz>UT2|acoDZmi|d~usD zi_M8g3V7;IX@chb?*2J}$3X96@i;slPq=w)MmsE1K%gt9G?LrMWCF@rFg<g+5VK|4 ztEOaDxg)B~+DakDZq8RIDk`SAu}PJ+u~{M5NxP!nu5d$iH}91g;`JbaZJw$1ESD2k z2`qPa31Sg!#x=Nhj1U00he{gAlnQait(_?BwyL)N+WyI13^&@Wx49X(4No2m-Fue5 z71!e_V32M)1tLBeRNq`Jh=&Ps2+i(0t+=s5oC?$4NpU*XptImR@$JHR{xbauY=>bw z@B};+j}sC?lPc|Iu#<9|xgO+ss+k~iJ82t4GoCSgU^%Fd6E_RJ<N*MYS2luYkykr} zfcjPl*?}3G+Ym}`_o`Kh4ehv7z^86==UE(ir*^tF;-T|cx;ror00hs$gfx+<PCOUi zNv4q(1Pd2bX9WjT?QXxl^L7Pt1^sSR>*3H%DzCOx*0_wS#W4Va$;w)@r?<QDJt(6E zFC^1j@V%t@CbQnwzT17d5^Z=1eh{1mz8^2e%kXmi0A4|6keOr_nN98>bJpR9@WW_7 zUWp$?`w1a)0XOX>`{6IJ9%pGcNcKTBrs;K-Nfw8_tU+kL(P{(V9cFgrLBM4=%=+dI z6$aGmiFMm<>$oPkcC)*!j*~)StJGo>;%s}P71SBhIML06YHI9e#~<_^Tm{i{Wg|q{ z9nIL?Hs%Sz#;hYeDXI_`!Fo$FC0+DGA&kPVxH$^$^u-;GdZv66-hx7%cr$*I+)3_o z;;ncanMa%ghX1d1P$5?QIfGpSWDiSE<J|&FyYMq)K3U+z&*DAgZqg#K)YVl5wHxA& z$?`PxJU)a%*W(xP0sJC<3BQaF;#bH*au2ze+(#CX#bn8Pl!RY{;|LsYphQ3t_rtLq zj>jM&2OUa1`ciFflU_T30|Qu0gB8j_AiE$DU1?nD5WtNfYF#fv17!_U-FZ&|o_C?B zcLB(D?+G-~U1$V0bWM&rtF7D1f=w^A)>nf9cE{i}TV-Q^h~C@8>a-wM?~<hg`iC4g zejgoNE5I2nKpFwiEQ6y+9N?MQPw;0D@ZnF%11<OhSs_f6WH4}D3wgW-K(clKt#&u; zYafN@-b?r^6xxa}<16?}@*sJLJlu-E#^2zp<Pq{HStYcU+-0<lw=`Z3cn)S>@h61C ztj$J?UAXb)v~g^gJM5NfGh~0|(}djVar_eu|7Uy+@^bQ~CQJ3CW{256NG!f%&)kbS zPwVjBkldE{`k*wj((OWi#n(rG-5y?MbmCtjOu{$d{@=Uazk7nulVuBy=eL~PA1u2( z>m*s3psikWbF4?v6bE8YF%(NylgA;}qrAadK>~4j4J@R6LUkL;b7S;?;<yTN;h$Oh z!RFdZdy~Cmz?p3ptId|SEeIu|0)>9XQ~+ruYn@aOsM{0&hPqJ^loZsBilm~bXex$^ zrQ#?FSx45B4P+zPL^hKrLEWeXIFjH<ajDxDP_?Jvc=rF0x=~6{H!6p0ZBsW&-KK6- zUYojYbE#XbXN8I>EvOq+LbkV1I<n*Ms2gRX%0S(yQmQxAhwLOzlU=P;U#cId+cRYM zKdx@nP$Z(tyQ&Md@v835P{X;q-sgS4ufM>6x=|y5bYxf3v+GxW|H7vJCpKrsz2%eT z^AuU>nYJ<1c(+201BKcnC{zU~)N>@^R#l2z^ft6zP4>BTnyR5{L8k{o0O+J@+EO2s zMOd@j$n&Hq;XsZ{Z_!{kxs?JGDHP`14&tVW&q=uuW4G5_hL*BJ2uwN1OORBdrU4Jr zDX2q)S2aOOr@_&sJ@PV-eYy<@soB&Wo`4YI3mZ914t5)2QFl@E+#wdVki14-X^VVb zb+dD?Fv$DJp<6;2cf`_tc;OBtJX8KK^(eqa>Je%sIYM4{Qmd%P$QwNF`QL*VDJQiS z@FLYp-fW?sAaDICUZgfsPXS(}Hc^|YC#fyeR%#nLN{*4Y$#HUmyt9tlPVErzBDD+f z;z@E^z>7TY@xL1|QZEQAdVrkzj{!#NAoZ%CRj*Ko$h+h{C-oY2n4BTs3P$N40*usK z)Y}3}N2z1veR9@G9j8u^56D%4rN0FjsduT51P}Heb%uJMI!k>(oufV^=g5cTBl0mh zPd*`^3Lfk{9G}8*!R5g|1Ml@Y9AE!m@?cj5vHF%=@OZEvx&@3Lt8ksVA^5M~$QLct z@8sg&@n1Aedx8I=8JeXza*13fS6XRrx(E2LFUeQ`xc{QXNJIy8bxPg9MLHNrL%Nc7 zMTTwDMu*c;F8@VGg8%yFCO~+L|N771KsugIg6`-9I+1)wzIW2ephZ9Y8(KtX&??X( zI+K>u3Ob9<rj>LK`H}oYekRw*FXUHpeLbBEdmfT#4IKHPMZbam_><p>KaaiKYV@Zu zRo95AYf$#TA?~70phk2lxzVOZbXm7R&?66n>7k%T^bj7S78(j5_-`rFNP4WGNTcY{ zG$hR_9@9K#TIq50czl(|ERVT=UYn{xMa*4Qq#HCy*8!=eE9oDiLAsu{y0xi+tmd)z zAHzWx6r!613+KXn!y23HbuOq!&!A_z_d0cgW{@PRn(U-!33)qVBUIOm;D<bQh6?x9 zPI+&74o%#kjJ}J<0X+71!!jO=-OS7v<YWPlMgJ}^qnFbULp7OxfL=jANI%5mARY(v zIE2TcYw1Vmm3RofipOC*jwUrcP9m~VLbXOnB#m|zY=lo^+yTA2HYSX-y`a=ypYlj* zE4@MJZ7ux-y^dbb<8U5F@HmpkQENf(&p{beNVN<CY~?3lwx|(Mj1#Kyt}PqoklC;g zt(@lGbOzar&R5%Znv_FE8ZrQqP8S6>%OQVfG{Y7YOCux+AUP7+iNw{qPz>?#x|4<y z>jwI1dKdi+y_<fP-a|h}1M-XEaV(GHcr4+ul*jQrPT+Ck2ElH@uds*C_3N@+{xA-~ zf(gGco^)YyJo^BuA^l*t)|-X;U4P3Y8x#ml4Z>hO1v+7`UANT3Jjwdb^s+yqA6#Y} z2G=?@p7BS-1I&&}p{CK9Tu5$r&kM|0XVO1pyS!<Vy%{pYQ##Wt{;27}Hmk6wNT?%q zzT*#hZ!clrG*r)W9;M%gkbpkM<K!0lIFD0YK>-v4+NIT1i*xJMDRjh1pQhjCaVn29 z+v||@`}Bu`tvpMAK%e7r8joc>PH&|jK#BBu&>aG$=M0iC9$M{4I*t>*b!;IN!&gBZ z2UONJSR75&<^(PO)Xn)G`Xc>hcb%+&PQC%{6grWU1h|cKy6t=V2b2N(%4F^3NctN6 zYsZ+c^H@n_?(zK&<6{tmd7Q&zb^G`jhVkyEYo-TEWPEt661vVM38P`f+}0{VYnga6 z6O5P%?yi9ll*E7$=_NRFjSGH56Q26Bpa2QlaR)jz6wSy`#ug@qiDlv#2_t3VnFJ=0 zNn(<j6eg8{sn6$e0gnrLT*TvI9+&V~%VQmn^*lE4*vMlOk4v{O=}ZQbiC3a?OcpSq zWO5i4UdgCYB9D9XxId4NK>B|WkKYt{dyB^)ARh_=-dAoD6h72k)gE$tiXc#q0s9fz zR&sYwg{vZ9FSXi)i{spTRLiUC%)<888248YXyNGqNWgbUhpW7tIJBt&OcQKQbJa6l zg(e43!fqkg_5)!TC&d3EPyg;6wZKA<TQP>!!4y`vms%p-*M+?oun|%yQM;zPtf9sV z<#6cBm0_O_l?P#H&`hwKzs_7ht>ad<1yyu0Eb`Q=+c^o=0}GQIt*~3q?z#=?Bh@Zp zV|t^5txO-LOjxl#JnjqSU8sb%*T9%TLcNQ}WfkH<LQxv3i~qXT_ZMp!H}x{i-Alg; zvF`8o@<#;;W+XEPvKq`NK@bNJyOSBqjN|b@9^Wk(m(0JFgl)4^%tWS2XtRtFrV1v^ z$y76D9)pBVAu<n99b-osn-~jo8#9@yXQnU>jFo9*Zf9&f9?WAvf<t)>NN^aBhx2#@ zk4N%&6pu%5VjOPo#7t+JnHiuEvjjyL<91Oz2JS69zD-bt$!_`oQ@q`M^<jXe0k*q9 z?(2UJjwf^^v)$S#cW*UyDW%-%DyntMk84A!n@ZTU_}^VnVeSFI#@x%}v2DnnS=@%~ z0sOctDneDI$g|EXn1=zIG7mC<%*OM0f|GfKS;^xH9-IFX#&;Ph*tFoDl<o^J%;QWe z*lcDE)517;JdwwhJf76bti@NEbv&*jt9V>3^!6Vws{G}G&T-~RBx1I7MfIzO#mPT8 zqu;UA>*E*wj;mHfI+%G1NVj(--9?rrg@4ue+vSnJB)p%z<w$!vn0cBJ%8JY`<{2IX z$gOoU&r&eMbwWmXtRNMx%@*cc3oUNr_PlFvT!Pl+ybu!mdY0~G25O8@wP9Wn!ixHv z8@(k=_uTOYb6Qa9H<`DXqs%epZRR+0f_aBI$(-VG1COmdZsai-O3-mTj~zU2;_*}- zPus-2+osfK8DV=|67!Lu)YCmmJ%h*dK&U{c=l_45c2)1?|H&dL^Oc~}U-P)xqtoC1 zsZL*Gt_$M!3-c?FXYzQKllhIg!Q<IH?4STG`<M07zoOGD%?jBumSI_z<MAClp2K6( z%6j9gY)>BZf=<u<hjp5T6dBu1icFjnxh^ZX@6d<8ys-ON)qO)ir&&mmvE8J|4EZAp zcJD5IttIL6?T2ScueIwm8_o(TGB$$Q#pAm`t(}xN^DJ2-X!WgCo&;^QTY1~`kd0@B zd>6&AiGt=X5H#0YxDhI@-D@tJ&SnbRQ}Rh;3oGYgn~KL#v)QZ)yg9360cYRC<9nTK zF7+6X@B42neXs>=5%9tm@_11TTg>Cdt~kf-0J?6LVfAbo6hBx4Yh+DqDchR`*s+Ai z_w#rukC*XyIgcM$$M$9WG0)<a>_FyO9<SgrxT87&Bp(+3|1aJ*!;S*oWk>V)!T(qt zgdNXL6hv<V3qIsw9zWt_E7?gr2Dj}h(Ei=cFaOo*iASny+1muR>R14HkMekxlby`g z^B9D2wO|Ok+b+{xmE=FMvw*d+GawPn+F1wN#7<?WvD4XR9zV`wP|y}00}5&7@md}~ zv7VjD&O%A-9WDn4P7MIb2EmgFTLXmT3UL0X2(>E&g?%5e3A=sw2}D2tIwRZ_=XTmg z)3uYXY3Hs@bn-!62hn*a4l7h(Suh*x+nfx$<j+#V?1L--#}*d!bYlzq2#+`YCD-DS zmB-i?!F#M`A7^1jHuLyN9&c%7oouU+65h(gR<M71KMuPIT*BtAFt3}GFuN5<w{<1` z!;~<)gWcu!08a}ZVEezuZtPz6c|p7OvHN+vlgCdB+I7ICUAz9ec6p}%74}U*Jr1$2 zvahj+*(2=h>>E4=bh?|zV1M`U_&FYf_1y<WM^KJqa2!X8>^p)^@OZ!Q=LI2E^P<r8 zza!n9M6;{p{%zs!D&6kAlCF(#T`#taes>|;t@`Vkv~%po?lt>JShMH<#A~~NJNvny zP+#!)fJdP&w<%QTy=|W6zh%D{6zV%3ztqD1z~h(ymO@=)e-jky7xq{7I*$+X_!S-> zYGrTWs~qC-s{$N*O=$2R46!&4i8!yWTGF))d7SGBq&{6qyD4r8y9PObm}+;)q-{32 zKn~J`EnE<fUvJ?;c>D$=O(7#F<d-1J40{vXcfkwyN5cIm0G^Ha#Kl}J2hUl!&b4q- z9v^MXYjTOOZN^3Ed2)nH<uYLAxin73rStf09v|oNiB>L?lXD6lzr*8qd3;uw`dH|{ zOKQxWz_Yt@Ub)>72u}vX?)U1>sWW}E`$pG&!n5sN8tzOlbl{nqT&@=kjZ^dZWDBR^ z@hKwnOa@m7lTpMK3wy?e4f_f30PWA0?mV5r<I}D>6sP5MutNzR>o7YxZTmBeoPje5 zZ5ny}UJF;s<1-y?LW_O5eq8_2(5Brr^*nwbHnV5Jj|LuP&xHSKrOKqsQRn1jWn~*G zERA*62D8;(QE8i^R=N8f$PEIp(EikydktH;f!tu%bIb1Uo)He^h6&u1^Z0`nZa9z6 z2?+A9cj%gh(Ohxc=s)-bM(=5Q99M%vH*({-30ws?k*nk;aaCM32l=y)c>FPs&+{0_ zKjrafJifr=&w2dCMwH0ap(L)3o6Oa7Q@92wL4obOC|J>pJif%^%RIiq!=6+?8)GbX zQ@y2DcrgKFP2q{_S~KKUr&_Auk?BeYJV6FeDumvAx(pt@hi&~(#(?Km+!xA?{al5o z2G~vBsR_^X5%7$VoATy7@aXoNp_X`a4?@|kUf6fsrDsT6!rK-c=27h{CRRf6L3n=J z&2wfilTx3p%h6@3b4pE_DwR4nQ<tOHWEy&z^g4sdq=Q!^40kQ_I8Phd8hQ2@%V0qS zvU_D@yKE^(T#x_3%WWc1Jj#Gq*yO`&4TivL0LGyS@Pd(2rW`V(HISyXF%D)bGn1JO zuN9fgY=oDEyvdwnK4Q+pt3ocoYeFu;D?+|verGWRuq^Av_F#SBB_R+dvO0D&VArMW zPWF3F%%yV~pu+vR(Xec{!Ll`QjqoB42fT!19=Cv7$lc2=;+Akrx#ipnZUeWMJIbBs ze)Q_$73P)bmFcDM%J$0f%JnMt(t7E=j9#T)eY_@n&GB05^}N^XUhjCF@_N_njMrJO z&%8eOy6AP;>r1b%y*ckl?;P)e-ebMTd5`z5@UHW=d(ZM-=)KtcA@3dDFL=M?ebD<= z@5A1&dtdPWx`%HM{~lr=iBFo(P@mC0bA3Md`No&?_4AGNjq{cICitfM%6v0?<-Q|) z7yCZyyViG|?*`vZzEAq@^4;yb$9J#qe%}{-Px)T*qy1w2^88Bu%KZBI4fGrAH`H&6 z-&DWlek=SQ^1sJ_x&IpfC;Zp@Z}i{l|CIj@|EK-Wi71he$XDbq3KPYN5=EIJxhPAN zC+Z^_BpM|$i)M-L5E0Q_(OshXqPs=+i0%_D7TqseCfX?4EZQR4CfY9ADcU7^R<u|2 zyy!*ILD3=6MRBM&Rh%OpA#M;qAl@W?Q+!tZjrg~KfPln+<bc!wSwK!eNq{k6aKPAr z@d37gnE`hMkbt=XO9EB}tPWTc;0#zBur6Rjz^;JZ0eb@W2J8<w5b#pK!GL!Iz6!V= z=pC3EC=2WrSRAMg)CU>^`vndN927VtuspCXaAx45zy|{#34Ap0vB2j8&jj8G5(mkH z^g#oI>Vq1B8iQ;>j-aVQ(}QLN%?er(v>|AB(9xjtK{tX?Fcr)MbHU!hJ%e?@eS-%C z4+<U<JR#T;Yz@9W*dE*zJS%u!@Y>*w!LJ3s9eghMQt<b|KL-CC{7Z-?L>DqLWL$_X zWM;_xkh??f3E30!Qpj5&Cqq6C`7Y#oXi8{C=*ZCO(E8Bnp)*2fh29amAaqgave37} zg2SX?$ziEsvM@zhc34hWZdkvtxnWDfmW4eK_E6X(VULDw3)>fVIPCSXH^YvGy&ZNU z>}1&auusD-gnbcqDeOwvS7G0T2Zm>amxWuy7l%I)zBPP%_|EWM;Xg!B5nd5JB77p? zT?G-r5up(yBJPe@5wS92RmAFu)`%w})<<lN*c<V7#JPwsBfgHf8u4Ak4-r2_T#NWM zvS*}kq<^G1GB7eYGBh$gGBUC_a%|-6$d<?hksn50k7A>|qk2a9MukMhMoFULqY|T% zqf(<}QN5z_qY9%+qI6M)sG2By)QqTEQFla<s0C3AqwbAb6tyJk*{Dm=KGDI^(r8t* zI=UpfG`e5(u;|KYNA%R_Innn;FO6Ovy&`&L^s4C9(QBgDMemA!Hu|R+CZ<P>PmEto zU`%jKXiRvFEJhnMAZA?5gqVpjlVYl4YGUeQZi{J-nHe)XW=;$rb7#!Fm<2HlW46Q` ziMbLhj#b1CjGY|oh@BSO96K}iuGmGfOJbMCE{|Oi`%vs7vFl<t#%_+?8v9i2j@Xm2 z=VLF%UXJ}T_UqUmV}FkQCH8vkjkuJ!(Qz~4?u@%Xt~Kt7xUF$}<KBup7WYBi`M6Kx zF2r4q`!eq9xT_K*p(Wmuo{}I*q$Ey~DoKYYX%rHTBu}E3jFwE0G)eA|@RB<v^CXKU z8zq}1TO~&&Z%a-{PD)No-jlp9`9Sia<Y&n*lIxNiQY59MjMPsmmIg|LrBZ2vG)bBw z&5{;LOQbrfK{{AETsl%ZS~@{GQCcN6OJ_=VNMDe?Bt0m7ReD(Zy7WWo73nqUuhQS7 zzsKWvI-ZRWj1P_vjSr8HjE{+ri<ib5;>X9&h+h-`Lj0-t5980re;R)wAvqx@L6eZ5 zP?(@gFeI1~dM7MM*pqN5;q`<!6OJallW;2G-Gnm<R}!g2QDSVOBr!fQF)=wYHBpwB zkywyelvt9eOEe^!5_>0>CH70SCf=90HSu`j)g*CJW|BH7FR37@D5*4QP|}d3@}%KO zBa=oa)g)PxCMPu{H741TRwOx-HYROO+LE*_>6xTwlb%c3m-Kwn=gASt`N@Xl!O2z0 z=H!OtnaPWj?@xX#*_pgHd0q16<SohDlD8)xNd7&=Hzgn?C?zB%G9@}CHbs)6OzD#{ zJf%9NCZ#Urwv_smhLpw>TMD0YXUe>k1t|+t?oC;oa(~LQlx-;|QhrE{NY$i{Om(Er zP9>>xQ}0S$l=@)m!>KD%SEa5_U6Z;c^{LdIsn4YDN!^=zF7<Nix2Zp*{+#-28kNST zd8hSE^G(Z5t4+H*ZE4!-wC!m-)ApquPCJ`+F70yKH)-Fd{gC!c+V!*>G9(kp!evpi z7+IVwQI;t)$@<DB$sDppvioJrWh-P4$sUodl06~YAloe4B707@Pxid*fb6jBl<ZyE z8QEFcMcKEqA7nqvewE!w_e$@X?w2k~4@?hEk4aBSSElz(ADKQey(+yX-I89P-jqHq zy*Yhm`t0;M>5rv9m;OQej~R4Ea7I{0WJXMeBqJdsIU_A2BcmvzBtw^B$S`H}&M3?1 zmoXq?P{!<xEg5Grdt|CIt1}<Wd?oXE=E=-=GvCiVm-$iV_nE)RDLE_mmiLs0$z$bG zd7?Z;E|+J^bL48dMqVl}m)FRx@>%jb<@4nW<@d>#%O8|KEPqt~n0%dlr~GO8F8OZx z9{C~pVfh>Kqw?eOcjO<)&&xlPe<8ml|4DvBffbCxOX05wPy{JL72%3_MY=+xC{gGY zCPg2`AjMF{FvUp4XvJiOL%}OnDIQli6;CKOC^jp$Dz+=0R_s<hr`WGJpm<qvPVuqg zQ^n_si;ByNuN2=XzEk|DxTg43aU%<5QCTrr`B}ZQYO@w+t;u>O>qOS)SvRu7vt`-3 z?7rDUvWI1l%pRRRHoGqSw(R<BYxaxTZ)G3LKAwG28KF#8rYq&jEM=}zqbyJsDW@oB zDCa2WD(5NhQ7%&6uUw{lT=}$exAHmVe&qq>%gRH_!^$_5N0rBwpDQmZuPDD#exv+O z`J?ih@>k`J9F#-l#N`y{Ov<?{XG6|gIp3-RR9UJ4su8Nus&T3bs#;Z}%BFItrmCi^ zW~dgZ?o%yMEmJ+DTB&+W^|<OK)rYDps_#@ks;;T7=hC@cu6M3au3v6R?!?@Mxyy1N z&)t#xbngD#Be@^sewceD_iFC<xj*Gz&;4DE)wEiqj#a0qQ`ItcjyhMZSNB$zsr##k zsE4UXs7I-5)eiMS^?m9k>SgK`>W9^js#mL9)N9r2)%(;hs9#jStbRrPn)-G1o9d(L z<LY<Rr_|r|3hbrsHLBOFUd~>JdVQv0G*XRBlc~wlC^ZEdqo!2TN7Gl+Uo%iMRx?pk zrK!<O)--5t*Vr`=YIbT4XkOJE(Y&cSra7%SqdBYjQ1fwKP@XDpd|pkSJ#T*A-FZv% zR_ATc+nIMD@0GmQ@?Ot7mUlewWZvn#3wdAXUC+n)bUv5wlkcA|&JWC&=F9W5^K<gm z`FZ&T`F-*S<PXj-&mWaPHh)6?#QdrGTk@aF-=BXV|K<Ec`LE@l&A*ucWB#@L>-oPI zPz7v(cR@%&ctKP_Y=NX8p&+>+wV-c7bpc<nzTi;72L%@jE*4xV_^MD|SWu`fG!&K= z_A4A%IHa(=a9-gng~tm|7oI8npzwU*XN6xBUMfOGfki`#CKOF6YAmuBO)Y9JnpHHX zXl~Kcq6dl|Dte@7Rnh9AHAT*%wM8!$eOByMoLt<u*it;dcuDcH;uXaY6|X7YSiHG- zOYyei?ZrEb4-~&#e5m+v@f*c&6<;mBQNosZm-v+UmxPprmqeAsl*E<vDVb67Xvx}= z?Ij0G4wW1&Ia~5|$<>k@T3X9$y|sQ?u{KZ}tWD5nX>+w2ZGl#+HE2t<eY6wcT_Llz z_i2}CmuXjMAJ#sqU9D}=KBe8EeOkL)yGOfE`@Hr=?aSKFbc`-R*IQSu<8@EycIbBN z_UQKMUeq1b9n!s~JFWXj_lfR;?hD;j-7mW9x*K|=r}T_IKp(6R(?{xK^l^H<evp2I zezbm^zCvH4x9BJ98}yBOr~YOA75xte$`E1*Ge``X2CYGF=w}#c7;G47s4z@2m<@G? z$%ZM0nTENBdku>X_ZyZO9yd4*YYpoSn+#7Hb{U>EJZIQvIBYm(IAJ(tc+c>W;S<9J z!$reoqp#6uoMN0|oNXk=JB{;=cN>=&A2zNrZZtk=+-2Nne9`!p@onQf#?!_##<Rvx zj8}|58n2lWO_`<=Q>kf?X`HFTG|6N()tPQHtuU=Ntv78l?KT}Ty=gjTI$=6xde3y$ z^r7jz=`+*Mre93InSL*&O4(BHQlC=)QgLZuX-uiAbU^9E(rKmll|ERywe;1}W4+nl eKE1<xC-lzfo$0P5QIz{XH@B@U-1e`x;{O42(>Xr? literal 0 HcmV?d00001 diff --git a/src/MeloNX/MeloNX/Core/JIT/AskForJIT.swift b/src/MeloNX/MeloNX/Core/JIT/AskForJIT.swift new file mode 100644 index 000000000..8603ef6d6 --- /dev/null +++ b/src/MeloNX/MeloNX/Core/JIT/AskForJIT.swift @@ -0,0 +1,25 @@ +// +// AskForJIT.swift +// Pomelo +// +// Created by Stossy11 on 9/10/2024. +// Copyright © 2024 Stossy11. All rights reserved. +// + +import Foundation +import UIKit + +func askForJIT() { + // Check if TrollStore exists by checking the presence of the directory + let urlScheme = "apple-magnifier://enable-jit?bundle-id=\(Bundle.main.bundleIdentifier!)" + if let launchURL = URL(string: urlScheme) { + if UIApplication.shared.canOpenURL(launchURL) { + // Open the URL to enable JIT + UIApplication.shared.open(launchURL, options: [:], completionHandler: nil) + + return + } + } + + return +} diff --git a/src/MeloNX/MeloNX/Core/DetectJIT/utils.h b/src/MeloNX/MeloNX/Core/JIT/utils.h similarity index 100% rename from src/MeloNX/MeloNX/Core/DetectJIT/utils.h rename to src/MeloNX/MeloNX/Core/JIT/utils.h diff --git a/src/MeloNX/MeloNX/Core/DetectJIT/utils.m b/src/MeloNX/MeloNX/Core/JIT/utils.m similarity index 99% rename from src/MeloNX/MeloNX/Core/DetectJIT/utils.m rename to src/MeloNX/MeloNX/Core/JIT/utils.m index 664ad43f1..de9f31fd6 100644 --- a/src/MeloNX/MeloNX/Core/DetectJIT/utils.m +++ b/src/MeloNX/MeloNX/Core/JIT/utils.m @@ -26,7 +26,7 @@ BOOL getEntitlementValue(NSString *key) return value != nil && [(__bridge id)value boolValue]; } -BOOL isJITEnabled(void) +BOOL isJITEnabled(void) { if (getEntitlementValue(@"dynamic-codesigning")) { diff --git a/src/MeloNX/MeloNX/Views/ContentView.swift b/src/MeloNX/MeloNX/Views/ContentView.swift index 5942f3cb9..9365efe5c 100644 --- a/src/MeloNX/MeloNX/Views/ContentView.swift +++ b/src/MeloNX/MeloNX/Views/ContentView.swift @@ -28,6 +28,7 @@ struct ContentView: View { @State private var currentControllers: [Controller] = [] @State private var config: Ryujinx.Configuration @State private var settings: [MoltenVKSettings] + @AppStorage("useTrollStore") var useTrollStore: Bool = false @State private var isVirtualControllerActive: Bool = false @AppStorage("isVirtualController") var isVCA: Bool = true @State var onscreencontroller: Controller = Controller(id: "", name: "") @@ -77,12 +78,16 @@ struct ContentView: View { quits = false } } + } - + // MARK: - View Components private var emulationView: some View { - ZStack {} + ZStack { + + } .onAppear { + setupEmulation() } } @@ -91,6 +96,14 @@ struct ContentView: View { MainTabView(startemu: $game, config: $config, MVKconfig: $settings, controllersList: $controllersList, currentControllers: $currentControllers, onscreencontroller: $onscreencontroller) .onAppear() { refreshControllersList() + + + let isJIT = UserDefaults.standard.bool(forKey: "JIT-ENABLED") + + if !isJIT, useTrollStore { + askForJIT() + } + } } diff --git a/src/MeloNX/MeloNX/Views/SettingsView/SettingsView.swift b/src/MeloNX/MeloNX/Views/SettingsView/SettingsView.swift index 43b32858b..95fc7a3cb 100644 --- a/src/MeloNX/MeloNX/Views/SettingsView/SettingsView.swift +++ b/src/MeloNX/MeloNX/Views/SettingsView/SettingsView.swift @@ -15,6 +15,7 @@ struct SettingsView: View { @Binding var currentControllers: [Controller] @Binding var onscreencontroller: Controller + @AppStorage("useTrollStore") var useTrollStore: Bool = false @AppStorage("ignoreJIT") var ignoreJIT: Bool = false @@ -59,7 +60,11 @@ struct SettingsView: View { labelWithIcon("Disable Docked Mode", iconName: "dock.rectangle") } .tint(.blue) - + Toggle(isOn: $useTrollStore) { + labelWithIcon("Trollstore", iconName: "stroller") + } + .tint(.blue) + VStack(alignment: .leading, spacing: 10) { HStack { labelWithIcon("Resolution Scale", iconName: "magnifyingglass")