From de686a180d4d6b14aee512f05d9c5127684bcf58 Mon Sep 17 00:00:00 2001 From: CatcherITGF Date: Tue, 13 Aug 2024 14:19:51 +0300 Subject: [PATCH] Update SC to 1.3.7 --- .../atmosphere/kips/.bak/Venom Defaults.kip | Bin 384496 -> 381088 bytes Sources/NXVenom/atmosphere/kips/loader.kip | Bin 384496 -> 381088 bytes .../Configure/RAM/Timing Presets/config.ini | 92 +- .../SC Wizard/Help/CPU/High Freq UV Level.txt | 5 + .../.packages/SC Wizard/Help/CPU/Max Freq.txt | 8 +- .../.packages/SC Wizard/Help/CPU/UV Level.txt | 5 + .../switch/.packages/SC Wizard/config.ini | 2 +- Sources/Tools/Web Configurator/loader.kip | Bin 384496 -> 381088 bytes Sources/Tools/Web Configurator/main.js | 1388 ++++++++--------- 9 files changed, 799 insertions(+), 701 deletions(-) diff --git a/Sources/NXVenom/atmosphere/kips/.bak/Venom Defaults.kip b/Sources/NXVenom/atmosphere/kips/.bak/Venom Defaults.kip index f4b9012b8971ee14295852823b3ede04ebb051e1..83de646e82f51501fefc1c4b4d446f10d39c18ad 100644 GIT binary patch delta 59322 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%0DZlV?&9Xj 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 delta 59602 zcmb4s33wF67H(DbBr_oavXTvwnS?cA39==ulLSZ*R0ybS$|PY&ArN+uOajX0lCguu z6_o*0NZbYyht`V>;DVwu1O*h81UI}~HGl}CLf&89Gmtd*d*6HWeNA_r|I|6Bwo|97 ztAle}Y{R>;mF#!hV{yvC|o-f~^-9rcMB2~5^i14(N`>~AC4aA=0xGoXLAB~Ni7)b-! zH&XevTGits*M=$o2|RzAEi2g;iM$ocE{~G7;DjNp%!LztA`LTT)dF zeN&yC)v~d5_S&-1(aQuzJe?g|O(bg?c&36!@D$}J^CT5@?*SF zNwQj%mxv*BO^i`l6GkFhBQ4|%YiU%bMi><#l8}Dst6*gsBi@%t zA4k+wtI`-m=I4Yzna~PY2(H#8Rz>KlX<<|hqpZr$-SSa5Y)VgnqQTb_U^4Q3w zR>eXhMt)6-lY*0siUqXj2@Cg`kn6j|6-hnYlZYHbL;C?gyIPXB1a-Xo%V1?<`l6)9 zXfj{A7_7YWh;;qA#8pYp9iE!hn7%UUg+OF@t$>gf5JE>=6(iE; z8rK$F9-CeL?UM1yjp-|re((m%8-wqN{8Y$Xp7fqgx?Tr8wj;svv0!t%hQl4sUkbE@ zsLcpm;kbl+In0sCUSX znK1t!Vb8?GvZUf?jLH(!frUhm{9}B{K4DP~2^lHcV_1Pv$yt~*wlms-pha`dB%&91 z%h4{P-b8ssYp=p{9Q570U%GxZZDrDqzq(CGN<*e(wA8uAtp#a!8I{AcjLKC-y1pWD zxmvNJ62HUs&TdKGY062u)2KXgFM1#`h91sEd55F-4MtxJttAs;k+-;Z<9>FksWOk z=>++;HY4esvJe0El8434p>gu=*hw@(ZW%Y0zAqQX4WQfP=i^f8KKWo=n!#0Uj*x$k zYezqjTgDGIxYi(fPrQY`D$kGKNY~5P<44j3@`!{X^gDTdLMQsEyc^G>x6gs7wEOlv~3jV!A{-swc4U${-j%AH~ztp=2JG+S|^))2O4ZY*&hjK`tRQj>ptxpfSUw)v^J%;D|kSf{Jvz`1I zfXC&FeR9LrZX(g&AyoJhm+b9hrX_M=-vJ#WFf!|;=$f6Sq{?2Ao#jC-+jE9pJArf^ zC4KA#R^x_?SNcw&Z^%6}6XlYA9=a4yr6FglG;@EEU&~Bp zUslPjdbgp+_WYQ6wgr{4dpBy_< zCRO*MTRY!Ob)0^jRE@*4{ZKpk==cN!NbqOl+qOk4*bh3Q412aR(aZ_p`uH*oJOKWLkE1sv_1PL z>V+`2HHc9gpm_M?@Exg(>283MtPZxph$+cE~7qD(Xqw$P6c*(_;*{6C z)n`kw`l6tDM)CCM;(?Bo-0UpDo7$fEQmiyvWnnqdw@!+!$zr78Cs~=AZYo`@ z4QDyyT=cMq(8H~i^cArA`$3K$#=+wg(g*#lKx8W{7@Tz!qJD(w!UvGz!C1j$S6`Ww zQ+>5KxBB{uk9HlFhfOoHoWb&pX&vHU0<*p2sw_`1^uoGm^QtUc&R}%Vm!>_%E+3Nn zP9NMQw+zcEc$#_?RxqVNTSdpgSwjf9_=j<8LbQ2s)*)y-EhlxNJ&VJ8O5ugvZi^G+s4${ee5S)yt4V0PVrY~Nn_*V#Mh5!o?k zq?r5XywRE=<1l-Ic@p9qZwvqNBjz6Xl zU)@;Z(-bDiPt7f4|MZhD&F$FpyA|-AT}W?VuGM!9Wlh?K3!;Fy8?S19@u3k8W7Re!t26XFj03qE9tMWa@%sFVPdsn!Cn6$mfa}G4&NMTJ{G3wJR&tDW3 z+Y3ltIO+4#Q|PeNUT_s|?drJ%dCQ{ShK59Rh7*hKqUUAH;yvA7@jyt zhx)FEy}jkaB?Bz$5qW%cy)pKwji|$%2lkyqpAt(3^eZfIqc;wc_b*ANedKSKB*%1H z4R@q8_QAXwE9w-btZ6StEbT@4o?%PNC~Yl&uq>S#Eh}Hs{I&?gzTNZLsvb1v;H%jG5CsG2FFeE5_5MMQun!68 z3T8oFzGs5n&FD}$VzremTQ84YJ)9M6khiSvMjwZJD!)iXS-;q-oDU_+ zy5&~oKT$;aC6OrSQ%RXJ?%!er#neI)v*( zTv3(tl9CtYUKe~H;rblcFu*x_f?o7G=zYQa33vyal<$PDH$#;& zVPWB5s+>3FDM7H*IQmF!VXZ+iwmpC8RC(_8?gAffQnHYt?)Y%!42%<1E%qA<-w9R9 zzZkB3j*?7$XMMrYuSy~DaG%FDiT>!P)wW)V1=GU4OXGESde|VVUfTg0X=X^X| z`7m>3QYhjre#RYmC+R}#moO4vQUKsQl(g$dpIj=dMNm!iI#&HGdDI{)APUYsZ zgdA8tgv8FVRPqFDppIP<+1`;01D2la>9F9=&<@*Hv9T$5F1%!P6hmRRw+45ypep*9 zXcua&sGXI-lsSuolpN4LdwXz~FI&(qvtAEU=KRN`{EGAyq?Z&J9kWtGlsONEDX*m1 zYg@Vpcex;yc`n6-(k@H4$2d};=$X5%%B*L?lv#{!+=SBqdr_zPaT+JTG1>Dfg0PNv#G9>GIkm zZ*I8*&m<4|{sD&PRoGQrRkk42VOtQSymo!TiIU|(%I9GAfT?g*3#Blpr^EJ>Nh$fw zq;$_5(&cj)XdX(s97N{%*id@-QcFb`X8R91$EqO3cFCmJCWa~Rp;MI`Zv`*aX`@A9OwqGyot6`(q|PNyP#vF z@@5c;xL%lhy|w4*0$W0eGIx2Ha<_p*Fd_WOFvUzvp@or=m?Vs$goKA$aFLaC?86D5 z;ZEAdjoptvU}+mZ_BBiPiMfAKg%FyS4XmhtWSR0^=mHfaq-9zkTTI&ACxeuh>*RvD z49XUVDYm;Km6A4*N_d8&;2=u9I4M&3v$3LJW?G~&qkE(>KPOU|Jv>rbbZ4Ye$RgDy zdmS|;nyvy@VL^d1_cyA{tw8@+`Qnzjf0~rJv%{2DyPkmyE`ufiOg~{wBE5=D2NMVh zYhf#hRMN9e*NV0mD1|Q0*>wnr*m z9xz1~9V$?|P?A>oa-?EHy0ErDF(LgkcxTl_DnEmF_J^9hnQulaIb|Ts`UFB$VUbGF zAyJhiO;~>C^FlzRawi0AM7j&oNnwV&g#ytzMQIj48L2#u=Q)qOxFrV#DLhwz4*B91 z*5XjY%+CvyIoGG3D0v688`Do%o`bXi6s3t6@%i5Cp*#CLG>TXLnM8*eL)P=&v#&Mn;M9aOb zzGOtLHbTaUXyz+9VpBT(ULLe5)kN^aD!)PgV%?BnZ%2>8@q=8yAxiGLekI%Rj$E@o ziPgI0Pu5qk!gu7mH{5NwPcS<-^r9~Liw)1QxOe1d-ATbVH{y(r@_X({Ep3?&88sy4 z{ws=nW8(tZw&}D{!W*w*BFRIZ>1Kq|N)v6dr}UZmB9i)%&ymCbHI5mTJ=6b{7EC|g z zsN1;7HhPnX40^u68Km)CMLfq&tSv}E8n3=$St?8ablmcC-L=r zgRzr6|E<)r1D6_kD<=Xi?9U1{Vvjb^DA!l~TYZajHIex4$F|{B#6aTpm)J(BPqQjR zV74cWj627&l_4-4OTuv!%fcY%y4v86*4Eaupp92p@Wv^G%-_q(pEVK^Efs92HKcC@ zCIK@TH84{C>+SJ0Mo!<@C%X-iHd>qsSo*c8iTcW3+X|aIFh0#({#-#FCcbh5=_5jP z5ikj!``$q02Wvz(a2n7J`5_@9ak3|r; z5V77u#CmU3PmD*H^r!j-8N!Py4UGw+nC5m>YKd`U;{J>hf6myAL|XoVkp*At)1p7bO_K{b0gL zIsU`W%o-`@e%M2J#SeFf#f#Ojg zN-jSU8~-Fw%Ivk)>weUuq3h(`Kq~}lLf*gqD2Y=guaxV7E*7X6dH?dGRt+tYBfg03 zG8<@}!EcdWL#Bad573+%%_fieB5KeiARfujU8f=Ufo2QPNW7|f3~1H>&8*Qz$=kk& zqIvS(FJ|C9Si3J{yLA#=CciYN#ubfC3Jd6Vqo3~4=xyb~FJoic05J#q5h8qLR855Z z#Fw#Up+GzVo9!ABEVu(Sk4B?H_D#zYRSExK6QmB?=xVFjG}=|rtSn%IM!N)>lLoZ6 zRrCG|8lj|BZ()kotZg0V<(?<=x||eHh+nKnV?QoLga$;kQ$>6#Z#x+^=p!KZFh63~ zkVBx=wG0@c(e{I8Z55D^q)ON)Uxb7`Ku7?=VGv=_>w>#=K!QfA2F)3ukz|$cMLGLa zRHv;#ZrPwA&w}P@Mf!+=Uy99w(uz2F#i?#|gIs+o@&467QFU6Eb#_u^tpd$5kLFHc&;J0f0rvJe|Qk5U9^3Q85^IK%sGW_%2?Fxpd3XE!o;(!8= z#^3Ni_fY~)ct#1lyuNwYb6W(b7-ZdJpA;9a@cpXi6CkA-eX}mtM zZ7X_{xr1ilV@;Uv2{1n{$;Zyb3|avU&RKI~q$3Q8saXt~Jup74l1iH|WZbN2jqf4Z z@=esp8G`%k#y&QT!sNQPSz_be>QqDA_xqPbb672WxqSUTR| zy?iK&e-um225(hG6u%Hld(ziWRAEq04bsRlQxAXP!RA$$4mLP%N+tz#H zP?Xlb#b{rXFes|#Ui5{%5c5<5ZAU}+YY7nJ3Fk)>Xa-sj)zk<|XRojw)#RhC5P6Ux zCq>q-5QEN$_j*w^E%AI3>T?rm3CiTb;Xg($*il*nKQcAa`d2w($)+)36)@2ZXA^0h z3G%gOXiTKzG`;t?rJV&`)yvnmrIR)K&&}wu?E>^A?V9rMyh%4EHKq4UqLcss>^qRu z)V{Mxw5q+ZTW#I=BDL45E&Fw$`ZE4zNq90{qgkA6rsi8E$ukE^xV0JmBQqV82Da_3_mqzG#}InhJuHLf(v}PGjz}y$JUEm!&%LQ9O{VQSf#wTV-$mBo z?7>@m8QCb_BJRC3CDZIaeh1w`sp5XPHyufho3RXwle+T*eP~Q*4ys)+=D-o0?L&{J zqgErdnTRic$}M}OMkCVEVd zUhYqSyosJ2pvx-_Y?8OfKpi@EApP~Ws(5kYt*V%Y=cbiCXApJVmSGW?JO-_G`sy-t z8ce^uEkmCs8UCEmTtlZJ^!UxmbIS*t)V{iEPHCAOt)E+#`;o zgJv<@qSt{YrZ;CnYL<|j4!Ppw#@7g+gxsaLd~*!d%#)Apd>j*v>XMo@1-o(i!DQSr zfPE#4qn?rm3+d`e1q0k&C9z>+E7iaoN7C-y{K}E`5$SdVoRqxP*n{{EHa1pT2%k8L zCbOti_li-}M8ojrSKHYjo_zk)U6^IncDZnu)-IY;Y<)Lf+P)#+a>w1L&e^KVjlr`; zZCQ1;a=&sn9Zd}l#DnSc9_pjdaNlTpKdp3+8AFYf4(1aI=ti2(e=MM>G?Ismg-7ej z?-~o9ME=rPTGR>W)T10zqpj6u%+JIejd#z{>KpyGDJPXa#9>;gwOFJ^$kKRjbncSUky^j{s=QwO_%eHrSC*MymF-qK#6X_(} z`P|7U8sUFUraN)l{s3J9FyTSEo*Gb)2i!ZS(CsE_b>BIY9xzZVZ}BiKWgf=M9;VMC znJ||gV4h@tW-fgX$!F(@WJf-!L?qn_^XWa5dAhmhETG+S0D?bTO1CmkC?BwpzQ;Tg z|9c_*oOz7==py>L$iA4K!fnA4`k@hZQuzn#&4(;Sd2pYxl#Vb?2k|87!QD$KhGq|b zW+^=(HC`TR|U)2;HY`LKFOGh`rXxUs^$XbQ-dhR3#JZrP9c) z&x#o|a7b8enH54o3c71bLwEl73i>7eH$T3T&ZACu_9HZ%(Jt_7;3vDU-mI8UvmGc{j$ADoG>=|^w`qUo3M z%$j)A8SCg5)&>!8(>3hcrZ!d|LV&l%qD~gWJ&OJRSXD}!8Ygl(joN@H)Jeesjsga+ zd~7|!kDK-I`+AHt!k^qg2WigX*ai*OoWt)M=xo3fH>%y9Jx+VJS0@5t@-M^H(S*?# zT~mW+t$MY5_dibaJF5*LVm;A&J_AP}mV5Fhx7HXR-NwDU3HJgWcfTj}vNwT4cygiV zz9!rjbgrFGs6%Y}lk@=Iez-eU(ryx#7^sN*Wvp<#B9EB1R?BocwY&c#(+8;8+rb{~ z*iMNnu#1{w?&?6d^%k#*c679lbI;gBUt|XFRfuW58Qv6Pw27$KX8MiP-WzbImvRE3 zbX3hAJfn`ls+GFeb97~Al`~LBAA=)MM;mn9r=CNpn{mI^gnMptZg<}E)Jktf^y2_K z6GR0?*Tmdpja8S3ue?C(={EkvR{92ABzT&y-=L|O8QqO<&=Q*OA~u8LjlKvr1t(%*E9M;$CjDI+RNVph z$w=pj3(IjscyX3Tgij>Okqw#!%k`}ri0{$EX71ii)B10)`nDilB$3-=Ibc?VQdka461c?(TZNr9m$d}8MTyzV#lVv{3L6j6K? zxfT+Vab#D0H4N??(vJ6Y(`x#VyWUOP3TJj>A03OhA)JqWhgQIOoqUHzQFeGRzwj3!_`JpRVN>9Ej=P&6LxJPGT?#(&fJJYkdHkNL_Q zvrh=S>Tm$`)&6kw?L`QcSn~v)C#q#msCgOBwiMAB64WwJM;hheQ})xCD7AoXnip{G ze#(U18{VTYBVvR)i>;j-A7VVKT7BXmeJqj;b|AuX{an|_Va5#CmJH!@4$%)2>hkag ze2By156T5baaNm0d!?$6%iKF}*^+bPxK38br*N^C=y4Yq~m#ZbV`=AIR}s zkEmO8RWZnRd`g$YuB6Wp{vqSy=Ci(~kW=W_#~mReVg%#}JA4K&r3U5D<^kz7X#|^#}S}>`g)EASe}jD1=$;yv3ii z&>-aSd4D2y@KS%Sr~VX<)LRPRz*VtVB!Ycm?ax;cC*3SpeL58T%e5WPqFmxYui#vA zjsE)rdqeFAD>zvQN-oaX_G?C_za4<7NnHKWL;nJ;jV}7BGDp< z6k7Kb#qg&RS=%^oU!kla^ z?efi_0 zAoj<4T2Ws{f>K6#3~pl%yA($m|7#-qi9XKjC$T6xgQHePp%^)nSr6P6OlI@gVZy(k z%%;Q0J0D=P(2e(2q`KV?vTJzEv8VDqHs+)8{Ix=sPFwM>3Zdj3UR}hB={9%EVirqd z&LIA_QL-1^Buy+t7vhcjNq5#%7R9K=eb;ohmCVA04V2valSvqX3NGnF~67E9G) zn?y|O54hW{WMPz5r1JDf*wf;E;1Sj(3J2^lwWm9*aYTI9f?bj{{`VuyGQ@{OYHBCP z-wU#Pz|Az*EaumJuHjRj#phbr+YhmXyYE93>k!=D2@b$9795m)Hufh@8ZCKF->QyPPc1QJ+kFrx1+UK|S+0OAC%n%mST< zKEZl-c5S;fQQiL%aqeY&n2?S47>mxKsdEVGJf_Bbv5}V!&gC<}-P`3km*992vYg0e z#x}bRoMO1c6;&s%WYya)C1fS9M8shyxJ%XG=f|F4;}JHd#PjqgnKj5IwD6KAS$0C? zge)u6EoO0!ld8HlHA{p#mdlSm$$FQ$>R7x3Z&kSmoT@r-HdS{pGQOF*06)GjRC`n4 zV|jIh4{8@45{E9LYlK&Y-xG%@FndMUpp&`KwpCYfx6d7}Y@0n?v9d0tPa)n#CH4R# z-pC0+DBm_aSfOyarK+%~n)129?wwDu-UfrZMm#ISqkBcwAxv;L%4{6f7GWQ%0dZ7~ z({O9uQHbYqdTW8VViOysi8;E7scS?v+Hn8AiHXG{-dl0Lnc;<3^y(=7?q=49F69?D zv*?biqZ}!z#6e1Pd{MB`V#J1{k@!*##79dRKEfeB@m4DRU+nD!Pq@Q^@P7y)7lfIJ z7RP;oAtx3LfB#F7gW(LkQ{hhs337Hq8jXRaxjv;`6Fme}?-j)vQ}o zK-Eyu`e2}cCx9mY*nle5n#dDtSclfCzrp9)s;_~RdurIlWZ@F3Zj3r{ z4fm6uFMJwrC>+A`#jQ3wp7WUblvmhpqblZ~Tps%>d)O$dru2}RZ+w+?NEXO;bPIx` z66Lrrgkp4$J}Og=nIC(V#l#Bp#os2VpH%uL&c4;wHLiYosyCVc4GEfTV& z;?CjZ8zE-LLEP_zIJ`pZZB8#Q7>nS98l1Hf*;T6=1fCRZ&%VamaOZ0*e5^*aIPS)K za^dX*>Dm5tU;{dEq%MH}fs;0mU>BEQgI>_iVce?ml-10o*WvBe&X9w@mx2k)gO~HA zITk+Tb=JmQkgpV?F>&D5cLCN3+zD%Kpo7QZ<-1*Qhn26hXrpMYJt-Fc%Ihq_m|}6H zK_T}9v1nfRIx}?_dh5eHmk3UHyxRfa7NfseAqrn&TQE_?-++m|!MhKT z5_rZNEHm^cWV{@TMdavwUit>xmZz4=W4ZZ$b4eG(Qed*Bq&g@9po2Kakc}yHA=08J zB5?NEKFL=~0tJ9$Dosh{t<6$L2|T>Ap2oBR!{h)1PSlAEg6Rzxsz>yzK%Js4)2v7G z-4|S#HcbsU37JMb7T&m<4K+0EJ!Ii|Z?d7`4T4>r7f|&!uy1*jb#20aY!AyfG+YIH z;#+KVxVqga4p#mtNojVluXqbFl8_#&NP>=@38hw z47&QRFz6(-ux{rEn7X{H&8htC2kZ{y=TRTBml=?EKV(zQUb#X$&2$Ohev3XXroKY- zag4*>_6iKKk634e_e*rMIUlj@O!UbkY(oq5NfA?eKFQ}hjbL17ts9TCoI9>je>!# zkFrdI_eGdK@+ccFOz-hI8^%u`Ws8LU_k7B_YK&!{iaAp-?)X$=yznWzTks6{OlTFz z&!62C@t#0_|2$AbdB*}ZRCbK@6>8kaP*U(r^0LPb-cyGx{DK!v;aUedy^gax1y9*= z_6!3OTg#RjT&M9Q*P^CeMc_G5tI4@q%LWUceka&}4K5+4(-&-@!SynDW_-c!6LJoG z0bU?izrdvF5-oP(OW5NQEf#uGlaqUry%2QR;z%^}2feI-XP#n146bX)wc-@ZG`nV+ zQyn50CubJz`w%W(%mM3hGSPr_cQJIFIK>_mI(nUE-xyrc&=K_&I=kxw=qUb5E6*EW zu^P3^U$cc8&xxFtZqem=D zvhG=wM5+!U)*6buSK&j;f0}wiZim0)fbh8(uQEqK!r5;S$-|P;Z`l`_E;KhJMAcly ztgbErFz8w~kpjP?N=esADf^CnC!|a{%O1boj+el#x8rcz=5{34X?E~TmHg1R& z#FC94fMpx_lYd5!L+wua8NKVU#qIu?#napjHRG*8b_(2=4_O?afG%o%W+JIN4BAw* z7hGOi#f_;a9!tPPkM^>ly=FmT)GzEe(TAk}u;l9G|g)njLZ(6$?5O*;!e`8;D675p>2tp#%(4dCK*ubYYqOXeAZScF5Vtily zopmt=Bz0=gBu!~x8-%0_4Q#TZ0Ts_jUS#b<8=%dx9`V(SkMJjdV?9)F@EhyGzqrWe z2cdbeiofw2OW-DObI#UyzC+tmZFO^unyew2YWz_pX4k4QE-K=>>*54M`N2ft*ZLPHm|B3 z_;x;EeEU^5jeqJ-t;Rn3ll{;OAOZY(uKJ_d239Pq1X*C4Y-B0C9)$LKBFh=38f0_-;}1x*=`-{O!%0W* z@p(7cI#YuPs0CZ&4TjGSARV2?W7)JtD$(Zg)>Il5?$x}HnD&EeJmAKsb~DvES&MSc zFbOL-VRpJCS;JIz5fnMWxnPT1ZiFKK$3(#6A{@ZCQI*UxNH@=WdYJRmj&nYmDOSXb&XgSRQQ(# z;8B+a$zYflU=Yg!q`~AE2U^)GQq9dXrD$$9ORdc=xk%e;d#3(>M0-V8N|+_YFkeE& z8MCxq>_e4VqzZADQl!D`9OAnaX>lZ^G>h+$^Jt2++xQmTAXM+;>X?WI1n^>$FK zpdfSY#JYUGwu7`kRIr)-Z1;4O_EMu@%e5n7>MY&Cz&50_w71v^qWE(bWaUuxJ4l<6 z?A-&}!ix6lD$=ReW_yR=Bc#1URF;Y#YVYu1@6wKN*p9CkZAhzh*1=H@TJlQ#NluX$ z4pgi_S;`1LuZz^CSIP(_6#2vlB4X#%mNVk!$~4h0406^}qIHBjHC_6O(qa61S80#R6+|EhT<><17PW?7 zt}ODjcVL-cTbL2Thjf<)g^9|tfH(wJi>?sIo!zClD8U<80E*brmN9}K?Jn(3Ron28 z)=j?t_J4GfL#cdg4=KKvu!(kiqP9HDd5OS`$FReOD~CKRtji&!Sua7x3q7Ph zMp2ign9@3BNL^yJ%J1Ot;0%%2FHqBu4|UJTkRFGZR>NA9@9&<{Tj320i#ps|{}*Ys z-)Z8lT0UxQvi=9X6#OpGZViL*UJ_=|JvkkCdM_!#nA5@00%cV909xBIty%7RthP`T z$ku_+>m?;Ia6Z*b$}lv@cskq*{Tlb5dr3H4KO8)*drN6-{0R4e-qIQd0}nMZ@Q~lY z1-A^um!!8gC_pa-|Er+gGSJ))o?;`P)=%0>B_5P1J=JnZI7SH~7luLfjeA?Blt^1% zX?=_KH2*kDx`9${@4%1tN2#`VaHO2^mnu}0s{F1eYl)`=4;_FKfh&E0gui+tJVqpBW(485%l(a$q3JSTe$WVW3oLFnQG`2_MNi@4IphY~vcx*5E6R z90PXv{#bS5F?=Vv{e1&}H%ICm?rjh5_IOXN=CpR?mvdks?#a1Q?=IdGO#8ay$J5O_ zuNnQ)159k7-T)?hS4H#6T&XY-MDg`O)6OawzYZ{&he}3+w;ZKQABxI}4CVI>m8LVK z-9tq4dD&jyLMh8b=~+qqtIc%H*XXsP_GTrND%2=2(2HD zl6G0W=Fa#-&`$IKe7sVQHZx};UDwq?0_l9D&9K+k*asca%WT~oWc)})@LHVR_#1ag zSmIlt>B3!-Io$geY{ljt77%UbIG2y)iFZq*M|je}a7UT9EH; za1=jgt*!t~rPqP}O_0ykRH7+Nc@=31hhBUJzX}Mj+H_F;i6=)iTKPZ9m1g|ar z%9Qz))#_htd>A{Wz+I#=1GRs49a%~u1D-vQA64YC05|`$b)CSP@vlrCD`?q-eBp6V z7$eON#zBa<;ryffrMu`9cg%QcETskRSreqzl>Wq*O_bI|+V4?@VMBOE2-%CuapjPn zy!9k$Sx1zzat*fHJK){KORiks8WOZI6{khouOZiRaT#!0VU5fE`Xnip^7_eAI{nez z@&Tze3)zNuePU;EEAKEx8sN51kv=iec=yPeQh#bR4|cTaO`;uz(cC#p3Tm46%#zY* zg8RZODc?xF?%wmIuBI@QuacNej--sHnY1(?^M|3g+p|n6Swuf`_xxQtLrtq;mK~Qn z`l7UND80fz>tjey>VZ}z-PZ%W!32Ksr@~FOsVaa{Kuon#CrHbZNXxe8@ zn3nW4Om5pitfA@`OUT+_v4@Jm)-W|P`!519zxOp*=y-QTKSOI4+8*NYzNN+-e^@hS>NLxMA@-pBSXxCA5P0nfY-6hkLc;H63i{bR1xpA2zjZp4-EF0_GXx z45o-U9ahH+fsM#Ojfr2T4sO67s~113j-GKiqDIAU zrVg&;mV1$#T-V^GI@r#~01j~lYc{Rph4-OY>+Us#$9suJ+pNoC=DUSNGmcM)-!2^- z&g)f$1`Xb)g9(p-hIrR8&7LDV*u%30?D50rb#OSJ4>+X6Uxn9rPhsw^`(SQK3r(S^ zUGtW5^5ftc;q;fVvkq>+kw5Xv(9ykq3o>tGu{uIgT?!83KRmD7pnAEZWu*XiJfmo$2%j$Y?C zX0wj&!n;NhVaIHB=KmQwKNrm6qt} z_7shOsg9n(vnRtCSE2^5)4^6gU%<9MG-EdFU_0L?V5cA6rGq{ExPa^Y@ID<(IDG)H z`HCj|hz_>$o&vV{;nO-_LF9ZdK^RrjBo?l^PvHbMswu-9M9 znK~F9;6cFFRIS$Xbui&$RJg4MkJrIgUM^spU-wKMZ0EZL?DWG+buc=Bfb0D5W*wZt zBc=%9VVdrJI=GT&3z%3m_=pa+@%aL_Cus0#9gOxCu*dH|&g)=I0f0k1Ew$X&cp;M9 zWW%gc=ck!0%`4i>d)kCTKOCony}VGsPDFa**I5S>?hvr`JFOKnb+D5k6tKCKmOEbu zTlqx+m;6`DJzfWUxupgeVZxirnKYU&X+xc+; zn;W#;*L1L%(_+BZ)>@sLQku6n;yD4E{cxNPw(&v%+x>879qi-|0ek##rVcLQ2L&9C zT`Td+*TI<91zhLPJzfVpxn(L~60TW3QwN**7y(=T@KPP@eb$;P-I+*Z60eb`ETL+hLhkz^n!ZUTSmmd_c>j!^(>tH9p zC}5|5l#JKGE^e72g!^;P)WK+P0SD@QsSZYaH-*>T2JaTIHA3r5n{_bSTfl*G@6y3` z9x)T}=ol^c5gkl;wt(w?)XIHY2cx|Kj|lg#bI$AF20y()NB8;{KG$?~7e6kvRr(h` zCM+PuFR;EV;dGWT<{!aoG!Td(Qh(Y#*3wo0v>aUGhQYUUAh09Ve`;7lEi zb%B7x{V{mH4$k271?=*N!{c?Zm2VTUeU2u4sSZX|AmEG#HF%v4_Hg>$4ldz^fGw4?HTZ}QZt#cbUS1Bii1Rww&JTjjJr7}b!PK#Nl_3NaiYvEk zlH+u+om(CT?3$s$nK~FDAYhB#@7VHnaD!9JHk!`|Tf|Hqj1W)=uiT<>Exiq{2RtHt zx(2V)!41?BJeqG4Su^G#>uDWU z$B&DwbrZF$=Wm1Qye9B99gIK$Ft3DUoS`ol&ok$V-IB$cxVTQuo6E%=;0Xzov9p%t z2(qX$A~JRS2nK}uO8@plz79q(Py&?=qG027n1_!6mKE4LS*n8@CTkYjb#yzvI}^Wk ze7+F9uLPyBZ`5d;b-alGz!Oi_YVbZC9L^)=1J3B9!AEX`vjyz!tHGyra3!BF;L({H zd|n5K^KAky>94`pbg-8n7qD}n2AeuJZwJH!3jlkLt7Ro|x4}IHY#*ZK?yQ3m{|VTf zt-+Z(81cSL~&(y($Ulef3V_NQ|Iv6{6rDzv(DSF&G9wDB`m!kWq zgv}aZogj=B9J_e7;MgY!E)XL2>BPBsJs9Ha9?-NM(ZN`!EkyqCg<|CBuo9jvFrhf& zybeR-39JP9D7NLq^R9*HNrB#I>e9SDJp4F#;;sHp*;xmpxfVf0fjRI6EOFRtm||bnowj7^z+R+80#XyApv+7A0s3kSs_N6-}rsH zEFOMQNW9tobuhx2l>%{+0}`*g6GI|SUYNP~~) zU>83Kn0r=Xl%M9i#q+gQVrWdz_^;{sF;vThG5(0u)UA0NVWtGKr7qDlI zCOlIIBVZM9LttXo!B$?c3LmfK99 zT*=ET3_U1@r{FT5)O4KJahZ9&fW!Y!bLSrBRJyB*c zfdPNbLLvhZ(`%JFN@DeeK%u@cbqUH2zj066fjfOkmkM#N@48P1gqVAw5y(E_V zPs-VtR83y0s9q$=VnSuMQi)??N$%}?zPoo$zZRlUWdGp2^Znd=`u6YX?t2cj`Ns^) z-=ZIuxO7}EBY)B42CRsAg`*2KE-+jYOA3z&ml<}&n!>>odT7-Y-cs25vBouqeIe`9 z$>8VeW!D*&w^50&F1<+OWroo$V7f!?TTJ)Fs=2fd!;aW6m)2z%OY1QmOY1XT{#yNr zT(`#Kdew&vdtyOhS59YCe>)7z(^=t|Hr$xuwm2d2)zP*No-a-A(-G+o)7?jO`vTKF zG4scAX#wFP!}4{t!ZG18!;V-|xbj0CyvlGxtSKB4t}!ehR}^m0POCF4@6jJsy=gNp zGaQIHg+~;;#jw0hE8M2wofKYGxJS6luzX#uFoxD=*b%#C@J)v0sozpV`I}8V6 zLE+LrYCL9Gp85($V~z83lY2N6Clv0{nNwg`-mxXV+NZ5nW_WasKI%NC`=8c&jp-#Z zf3v&}$y@c!a-rTA>3qC+a!m4FgTnDo^^iLZm)5s#&b@PLuY38Gy!*n(jOeu#UNP}< z3ZF1>Cxy37+)d$`j~mPGr|`Uqhbg>d;&BSEnYbV)6sbSFrS!y>iOVTG^$BBW)fApH zaV>=xO(7DZFdqP72R{(inL+g%?b`nZhe3-bvvTCLX8owu$p{j@INh zpZSzAv|31v8M3A*5^T;VfnysF1y9BC#Kr!-64Gh=rW9t z13jh>=;J`2={>P1!|i<>*ko8fs3?q&14D*Av7xX>9|v|AmM?51-upN(W*8p_tV<@h z{%DFWYFwYzy2EsQ94K&|J`Q|zRlb+URjI}r$%oWcxe670t!LO5+X@GSTMWzR)jyFq z!pD4uV==EVmOW(H6H5wLXnw_*VPC8%91zZ5I=Pubv6U>FaDid@Z1ZW^+oA~+MTT85 zr*MUEnPK@NPvL-Ym0|fISK)|ojp0~qB+I7FQfJr|y9#5obQzXUI-ikvfG?IQyr3|8 z7s`{HB@inLV~#_SVR>gv@bmStRA#s#wiU*7hbqIanE6wQ@!`J4uzb={7~dT03|nGJ zVN7>eW>`MyD2(Y2Eru&%OJPiR=rAmwbZ(Ux(;d1Dhhk1)On2xrEUyC!W4gm8!vnFJ zV4ChQWH=NX3S+v%4#Tn7O?uNdA2Zw&vqBAxraR;>o7|z6SWp<#9SRJW#EQb0?oeb{ zKG`aa=?-Ov<-?J}6`E5}WjGQu9n~9C4jA^uyutzDI>Vt@QaB>K%&`3Bt1zZJv>1-X zmclXh?l2sRsoNyRbcZg(^88j9(;fN@hhkA-On2C1Snh9yG2LOvurD?g#&m}rhC{Kd zFiwMU3eVnd;QZy2`&-VxRM?@@zmUQ!NpDA=z(t0AaYEq|rW`OFifx5G!c~Ul{{F1Q znC?(x*b?&!1iFs3^U8J7E7VXXHK!-3dU7+2){t0s4-yq<@ z;S(mVrSP_i>nS|*1!HK-DLilDRthhfxRb(bChn&2mWlf*JoRVB&^A+e&cwqMUNrGe z3a^@YoWdI>&cB-P&|MQ3Qg}8rMqW(e1rwK3c*Vrk6h2|%S_*HQxSql@YsS!)Q+VFQ ztrT7|aVLe>Ox#W3Efe=sc&c7zLzfD|7;n^=4 zBQK`#f{Dv1ykg>N3ZF1>ErqvDTu9R-7s;H;YjQ%jLG+9hFvlH=MrP`eU)KfEGUf0_cey) zw=1KU1~DnhGdCs;Q>! zyK;`&RuaorTgn7t>TU#a@6Hu(y<0}}I_F>Lt(uBUuM`9y9#^s z9>2wKAZGtU;vV4+!?9RU*r8YLU4|=SMd1eFKEv{{T;T!XO@`%Tc@ms<(~#j%%=F|- zv4GxZ?=Xzl|0Aa3z5kf&Vo8SE`z(;Za&o`P7kCQey?=q>hS*Zrp|KVjZi}fCaz6(5 z$uE*s#yl}6+1~E0Gb~@qD2z`{%M3eWRpPzxVJ(Kyt<7`{w8L~y?3zpKGVF-i`;4Xa z8OG8grekTFOqU-tWVpTWVLJ@V+k(P4@bkYhxl1Ckt#J4gy1X#l6ElA)@qj*u6d9I} z@d_h&m0|gs&cyW;UNiA>3U8UXmBO;d`TnvyDLiN5ZVE4&xSztSCf-cp4HNIA@UDsT zzd5XP&zX2Lg%?e{lftVe&cB}Tu?-U!Qh3+I#T1_H%aOC5ZljQex1IJ-qWV!SQhc7N`o zgJJDJGT5P5l7kc7`*SmMfsQz0Jw{7fA2WT}7eBf`_l~A@zaF7m)fV69tQ&Q|BGV&^ zS7Q2mXidvZ-=y{xrgv^g;-6`G47fLnli$p}{#_LsK!foSZR%yFM<3SPBw)HP|6d2{ zuf=riQTeg_0l5vsZ{?iDF%33kZ7YAIV|1B5dPHxu9@BmLR@`U0yrIiwozw7ixJ`zg z4ROT-xz|tE*TpRl$fKY@n_$e^`C{t<`5Vv|Q{T>AHC?)K{hDv*9-f+Re@YyGF!!A) zM?Cgm?xN}VZgEbOd&P9v6W1sk-6L*_WVgP!OPiBQ9sHFzw2`}N>LKx_4e16#d`MYO zi2F8j@0bowh%+9_UD6zWZSwFK(d@^V>F{?l^a>p&ILz8KgVSSrOz~@4Z|;3Jc3!Fn zf-?(&mMK8M0?~11wV3WT^zq$hdY%q}9XiZ({HA3gkV7X77K{_9kfFOwNB?4mUSfLE zUoPJ&p9)C5!gK_vX6PQ%(Z80V`%+iS-`fQUP-h*WH<+#hsK4b5JzzTexAyg9`4&KX zA0&Yhpp&78Oh^B2hTda(cz;u`K|ckw9x)vOHZ$}A)6svJp~p=I5MU=mA2B^9f1IIP z-_$FDgBtzwq&GQmSO)|sWauu_(Z86XmnQY5g#hJAu%}m;jsVpR-D5iX*G{R+Is$BF z=mVys|1hoV^FL+)0d_L<5!2CsoS|FaVrK!h%YTc`f9wJTc31}lC}ij^)6u_}p_iaH zbIFCyLVz*=(<@9zfNF;BF&+JDOm71C3?M)~LvJu0{g*TJfa%n~X|+xbWL@aVeTD#? z3_WBz`gb$*UZTt65BnYg`m6)=i0L|jWo>5Y1E!<@(A3rO4-lI`>Ikrtp^uo3{^JbY zdSG&ks{YCOmp=tiho!@G1Sn+aF4NJ!n4y;*u=V+mU4Q^()&Y8j=`w&Cr&Z0+J*K07 zZBN(Bw*dS-ki@kRpq`;On2!F-8G696j{yYeXXp{r z(SI{TA21#Lhg#qN{SOec4hXQ5p^uo3{^JbY`nGu%$o-E1`3bPEJ4{D_LWb@#9sP@^ z($(=-VgLck8G423=wHpyJ*K07P3p<F8gCj^F?>XC%>GbSD23e)ePNZdJ_R^3_$mpjsW!xy}@+!Up}?ov;qbYpp~Jw znU4OQ3_WBz`gapu9)CFf0D7zg0`xQVi0SCRnV}C%T^;`jFf@Uo$4p0noeX`%bo3ve zLf7YC#Ey1qn9tB1rd#9}GIW>e=wFQ3?|*<2>wo~|486j1^si><-kz@4-$H=e9#EGb z`3jbNpXmrt&(Ir8NB?E6H%SN>K!8?;-ex-bcQW*l>FD3=W`G{k5ul%;M@&cm%?y2@ zb>sIxH5{@I2plt=0$4j4`iSZ1Kc3L#{s*u&*jYdg^BMYx>EXZWk3VCk2U}XtKQtM? ze?a=`_;VO&JgP7L1*X>@(Yl+V7c=xyhF+F>a{S{8hy_$KI#e@sFGH_o=+VBe&%gK) zy=gZ0L2~*HNFOjgA|0RUumV0MdX9;6UHvbk)!)9})IvT5wC-f+g$&)z(2E&*shI)F z8G0o{uV(08hF&B6`2MEQYwTxqsQ+;N@`rOLU-p9d_nhdun|cpF=TmRFTHN#Qdn^C^ zv2Uyw581=#9*e2C6-u+aRFuh~V(S4}nLu-veMD5xvYlp$iqxTcdWjMR9ZCQkksbUb z*>hHp$^y3kNBby%9{h~>X?jYHdr(_cJ9jBb59Q6B0|`HBSvu>^vM9f?M=OEKC6QQr ziCsWAR45-{RjE3;OjkN=AHD+B$WeV9%`7Smj`HFj`KTw}Ccl>#i-+v9=1bS=(W7E` z{7F3}4<*7qss)ak;DcKiBeM|c zi^v9wD0i+w?PK!Yf2IE956DLzkVO@UDd(_h0k{BUkyeNtALJ3Dy-)3WR8Bb{e*m9S z14GgyvN2h`V)FLXqlQTLvnam}`F*8-*K34?zJPpW@VV5!LN=m8#?XDz1F|97DXVUe zja|I} z>a>(_evX9<^ATl~BZGV(R?e5#1Qe1T>67*#3dN4Zw!{Zf2iDVWn?@gssUwn(XrswQ zed(UzxAi)@U)Hu=Pc8(rsJ4oltthXGBCT@1wCsKbnuXLI%_1tdin6OcDjSA6s|_ls z+P*$n+#wWFwLYNzfa=(_-=Fw1{vr+Ui`oWa-n9=OMR`=~b0pKANBvW4E$KcV{4RC> z>|{HXI7LZQ6bcNf^l6W*%pZ`8Yobi4ce4&NplVjAQJ7^TYR4^#jrNFR@w^?yJ!+vM zTSz}gMhHxPB<5ah%aT#QL#ug{wic~E%7KPrV^*#X%6~d7-3;|U9V+aJ0-xoi7X z%{Hx0n6l#bqxSi4i%9Q%M)!-!$H7^lxoQovh{LyTKz#qFq1w7l)Vd6B(cypDqadW> zl~40ga6DYm<3r8Kh-yiquH(KHhh8E#8)`@T9o-MbB1hEEqI23Ii~fAGxx`CkBQbS> zU8vA#dbjK7J=(Y))pkUUN7tuO(-~i(hYJ1Mbk?JNiK>l0`KZ{K9NL8v6=<~X)xl7a z5w#UlRxG~MKKwQ((9IikQEaSgzfD&!tSKzQz{hEcB8ig+&eZ|^c0(1!n66eRdx(N9 zsB?%4Ehub=k}NWtK>pfq26XbHa$)!$TG>C)*8M|mW3u55#2ebSm&j7}!T96aN4Y_t z;-S8v_g>AZpx{xUZvX%y|luS5|(Sc{rDWCzr|GHoXdly&%47tg!0^nD#2b@xJgAVZ-&mn!N- zWZQ4o4`>alE@&N3!l0xcENbXEkLvI!npb(b?v5&XB`U=y%i^srzOd<1`8$-sb7R_O zRKCsM);@A(kRwx~6e6yB8G1(hLst87y?}<;JuVMykH&-QauJOO<>Zh*hWc?x7(;zH zWQd_498$ti0S-A}DEWq@FRJm@w2IBCLr5a>lWloG)=HDR_#jH7$!a7ovoAQ{UXl|_ z*V&IBL{5>c;x%U%@;}wFOJd_fTNrSqBq7a(_e9z&fjw1wiWsMmnol*{Gt^GVf_yWR z>s@@Ri(;#D;v&0Hq=H;e?fPzP{*??BCkEvbr=0%vBe$vvLSgb0wJUYK8>$E)bfAcTaULS z4W9Pb9%Ab}`9fg-7ND-{&-Nv^xi_4rdZB%K+cm9ccL4HGdsYXa4)teq0B=@@`qMrD zb~9G@)4BiqcZikp#GPUBLF$}yyKd|AateC&dJ~EG5vnZgEYQ~Oj z$5mU$*gj(IGW#NS2ICjXlLi%MUv3{UI?qe@SWJ~JQ1QZdlO z^ElOf@m024{5!q1cMzXMrRx8~J$d05 zUYV?oc8Zm(WVL1b^Yqzjjb5W?$2_0>;`&m>{*|e{{Qm~^Lwa~m+%|6?X(GWNX~#(5 zN7}LF=od9e+;3BczLnQHGWH|rw0H|?`;>M(q_pGswYpz2`$zqfEK(qgGB}Z+k9>UO z-y`21>B?A+OS$CEX*#fTNL!@YBds23^hlf6+d`^*ES8&6+fd%wMNV7>Q#`#+~e{AD}8 zUb@C^soeL~#lvFjx9mG)`uqFdU?=JCcfG+*(%(-iE7RW(U2CiK_sg}p{#vQZ^!MA9 z`;h9seXV+vC&Yg%B8v`5Y5tA&RWb>F{gyY{Z=X6?!qybKzipp;t7qrdpXb@XcJ^uR zch9lD`(AN+!@l^mt3P?J^}-w1KiIHuni9cvc6q(@ZhM$}@;34G`tZH>c*tH0Z7;0fChYIqcZ9dv&zWvLU!1(vzGQv)dHc2l z>v!I6|9BdjklM}bw|&7LPOJ61^bB4MApY9=ht}-3OwY9GWxc**$~ko6u`k(2Uc7hG z(B{Okiky6zgRfpQeO>L~aJqAY_|RAEU)`%zfiu9NGXd5mAGSn3Y=wMSk9=64eAov0 zWaSiO5@6fp!-nL;_Q;2g$cG(}4;zyYJ0f3ObqZ2GDy&03tV=#@iG0`!`LG`Ous->) z4e}GKmLHG++a@12Bpyr=LAYWR&{D1`5HuVPo=PM~N?wKm8AR7EqcAtb?=@ zvM#eF@?k6F!+PYy`sBkll&_Be#}{h;+zYxFx diff --git a/Sources/NXVenom/atmosphere/kips/loader.kip b/Sources/NXVenom/atmosphere/kips/loader.kip index f4b9012b8971ee14295852823b3ede04ebb051e1..83de646e82f51501fefc1c4b4d446f10d39c18ad 100644 GIT binary patch delta 59322 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%0DZlV?&9Xj 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 delta 59602 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 z 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 diff --git a/Sources/NXVenom/switch/.packages/SC Wizard/Configure/RAM/Timing Presets/config.ini b/Sources/NXVenom/switch/.packages/SC Wizard/Configure/RAM/Timing Presets/config.ini index 80b8375a..dbbfb1ac 100644 --- a/Sources/NXVenom/switch/.packages/SC Wizard/Configure/RAM/Timing Presets/config.ini +++ b/Sources/NXVenom/switch/.packages/SC Wizard/Configure/RAM/Timing Presets/config.ini @@ -4,7 +4,19 @@ ; Mariko hex-by-cust-offset /atmosphere/kips/loader.kip 88 0E hex-by-cust-offset /atmosphere/kips/loader.kip 92 0E -hex-by-cust-offset /atmosphere/kips/loader.kip 96 1A +hex-by-cust-offset /atmosphere/kips/loader.kip 96 1D +hex-by-cust-offset /atmosphere/kips/loader.kip 100 04 +hex-by-cust-offset /atmosphere/kips/loader.kip 104 04 +hex-by-cust-offset /atmosphere/kips/loader.kip 108 04 +hex-by-cust-offset /atmosphere/kips/loader.kip 112 05 +hex-by-cust-offset /atmosphere/kips/loader.kip 116 04 +hex-by-cust-offset /atmosphere/kips/loader.kip 120 04 + +[AA-MGCL - HP] +; Mariko +hex-by-cust-offset /atmosphere/kips/loader.kip 88 0D +hex-by-cust-offset /atmosphere/kips/loader.kip 92 0E +hex-by-cust-offset /atmosphere/kips/loader.kip 96 16 hex-by-cust-offset /atmosphere/kips/loader.kip 100 04 hex-by-cust-offset /atmosphere/kips/loader.kip 104 04 hex-by-cust-offset /atmosphere/kips/loader.kip 108 04 @@ -14,6 +26,18 @@ hex-by-cust-offset /atmosphere/kips/loader.kip 120 04 [AM-MGCJ] ; Mariko +hex-by-cust-offset /atmosphere/kips/loader.kip 88 10 +hex-by-cust-offset /atmosphere/kips/loader.kip 92 10 +hex-by-cust-offset /atmosphere/kips/loader.kip 96 1E +hex-by-cust-offset /atmosphere/kips/loader.kip 100 03 +hex-by-cust-offset /atmosphere/kips/loader.kip 104 03 +hex-by-cust-offset /atmosphere/kips/loader.kip 108 02 +hex-by-cust-offset /atmosphere/kips/loader.kip 112 05 +hex-by-cust-offset /atmosphere/kips/loader.kip 116 02 +hex-by-cust-offset /atmosphere/kips/loader.kip 120 02 + +[AM-MGCJ - HP] +; Mariko hex-by-cust-offset /atmosphere/kips/loader.kip 88 0E hex-by-cust-offset /atmosphere/kips/loader.kip 92 0E hex-by-cust-offset /atmosphere/kips/loader.kip 96 1E @@ -52,6 +76,18 @@ hex-by-cust-offset /atmosphere/kips/loader.kip 120 03 [WT:F] ; Mariko +hex-by-cust-offset /atmosphere/kips/loader.kip 88 0E +hex-by-cust-offset /atmosphere/kips/loader.kip 92 0E +hex-by-cust-offset /atmosphere/kips/loader.kip 96 21 +hex-by-cust-offset /atmosphere/kips/loader.kip 100 04 +hex-by-cust-offset /atmosphere/kips/loader.kip 104 03 +hex-by-cust-offset /atmosphere/kips/loader.kip 108 03 +hex-by-cust-offset /atmosphere/kips/loader.kip 112 05 +hex-by-cust-offset /atmosphere/kips/loader.kip 116 04 +hex-by-cust-offset /atmosphere/kips/loader.kip 120 04 + +[WT:F - HP] +; Mariko hex-by-cust-offset /atmosphere/kips/loader.kip 88 0D hex-by-cust-offset /atmosphere/kips/loader.kip 92 0D hex-by-cust-offset /atmosphere/kips/loader.kip 96 1E @@ -64,6 +100,18 @@ hex-by-cust-offset /atmosphere/kips/loader.kip 120 05 [WT:E] ; Mariko +hex-by-cust-offset /atmosphere/kips/loader.kip 88 10 +hex-by-cust-offset /atmosphere/kips/loader.kip 92 10 +hex-by-cust-offset /atmosphere/kips/loader.kip 96 21 +hex-by-cust-offset /atmosphere/kips/loader.kip 100 04 +hex-by-cust-offset /atmosphere/kips/loader.kip 104 03 +hex-by-cust-offset /atmosphere/kips/loader.kip 108 02 +hex-by-cust-offset /atmosphere/kips/loader.kip 112 05 +hex-by-cust-offset /atmosphere/kips/loader.kip 116 03 +hex-by-cust-offset /atmosphere/kips/loader.kip 120 03 + +[WT:E - HP] +; Mariko hex-by-cust-offset /atmosphere/kips/loader.kip 88 0F hex-by-cust-offset /atmosphere/kips/loader.kip 92 0F hex-by-cust-offset /atmosphere/kips/loader.kip 96 21 @@ -76,6 +124,18 @@ hex-by-cust-offset /atmosphere/kips/loader.kip 120 04 [WT:B] ; Mariko +hex-by-cust-offset /atmosphere/kips/loader.kip 88 0E +hex-by-cust-offset /atmosphere/kips/loader.kip 92 0E +hex-by-cust-offset /atmosphere/kips/loader.kip 96 1C +hex-by-cust-offset /atmosphere/kips/loader.kip 100 04 +hex-by-cust-offset /atmosphere/kips/loader.kip 104 02 +hex-by-cust-offset /atmosphere/kips/loader.kip 108 02 +hex-by-cust-offset /atmosphere/kips/loader.kip 112 05 +hex-by-cust-offset /atmosphere/kips/loader.kip 116 04 +hex-by-cust-offset /atmosphere/kips/loader.kip 120 04 + +[WT:B - HP] +; Mariko hex-by-cust-offset /atmosphere/kips/loader.kip 88 0C hex-by-cust-offset /atmosphere/kips/loader.kip 92 0C hex-by-cust-offset /atmosphere/kips/loader.kip 96 18 @@ -84,12 +144,24 @@ hex-by-cust-offset /atmosphere/kips/loader.kip 104 02 hex-by-cust-offset /atmosphere/kips/loader.kip 108 03 hex-by-cust-offset /atmosphere/kips/loader.kip 112 05 hex-by-cust-offset /atmosphere/kips/loader.kip 116 06 -hex-by-cust-offset /atmosphere/kips/loader.kip 120 05 +hex-by-cust-offset /atmosphere/kips/loader.kip 120 04 -- Hynix ; Mariko [NEE] ; Mariko +hex-by-cust-offset /atmosphere/kips/loader.kip 88 0F +hex-by-cust-offset /atmosphere/kips/loader.kip 92 0F +hex-by-cust-offset /atmosphere/kips/loader.kip 96 21 +hex-by-cust-offset /atmosphere/kips/loader.kip 100 01 +hex-by-cust-offset /atmosphere/kips/loader.kip 104 03 +hex-by-cust-offset /atmosphere/kips/loader.kip 108 02 +hex-by-cust-offset /atmosphere/kips/loader.kip 112 05 +hex-by-cust-offset /atmosphere/kips/loader.kip 116 02 +hex-by-cust-offset /atmosphere/kips/loader.kip 120 02 + +[NEE - HP] +; Mariko hex-by-cust-offset /atmosphere/kips/loader.kip 88 0E hex-by-cust-offset /atmosphere/kips/loader.kip 92 0E hex-by-cust-offset /atmosphere/kips/loader.kip 96 20 @@ -102,8 +174,8 @@ hex-by-cust-offset /atmosphere/kips/loader.kip 120 03 [NME] ; Mariko -hex-by-cust-offset /atmosphere/kips/loader.kip 88 0F -hex-by-cust-offset /atmosphere/kips/loader.kip 92 0F +hex-by-cust-offset /atmosphere/kips/loader.kip 88 10 +hex-by-cust-offset /atmosphere/kips/loader.kip 92 10 hex-by-cust-offset /atmosphere/kips/loader.kip 96 24 hex-by-cust-offset /atmosphere/kips/loader.kip 100 00 hex-by-cust-offset /atmosphere/kips/loader.kip 104 01 @@ -112,6 +184,18 @@ hex-by-cust-offset /atmosphere/kips/loader.kip 112 05 hex-by-cust-offset /atmosphere/kips/loader.kip 116 01 hex-by-cust-offset /atmosphere/kips/loader.kip 120 01 +[NME - HP] +; Mariko +hex-by-cust-offset /atmosphere/kips/loader.kip 88 0F +hex-by-cust-offset /atmosphere/kips/loader.kip 92 0F +hex-by-cust-offset /atmosphere/kips/loader.kip 96 1E +hex-by-cust-offset /atmosphere/kips/loader.kip 100 00 +hex-by-cust-offset /atmosphere/kips/loader.kip 104 01 +hex-by-cust-offset /atmosphere/kips/loader.kip 108 01 +hex-by-cust-offset /atmosphere/kips/loader.kip 112 05 +hex-by-cust-offset /atmosphere/kips/loader.kip 116 02 +hex-by-cust-offset /atmosphere/kips/loader.kip 120 02 + -- Default [Venom Default] diff --git a/Sources/NXVenom/switch/.packages/SC Wizard/Help/CPU/High Freq UV Level.txt b/Sources/NXVenom/switch/.packages/SC Wizard/Help/CPU/High Freq UV Level.txt index 63efa47b..4bd815c0 100644 --- a/Sources/NXVenom/switch/.packages/SC Wizard/Help/CPU/High Freq UV Level.txt +++ b/Sources/NXVenom/switch/.packages/SC Wizard/Help/CPU/High Freq UV Level.txt @@ -1 +1,6 @@ High Freq UV Level: 1683-2601 MHz (UV7: 1581-2601 MHz) + +Mariko +--- + +1963 MHz default freq when no UV is selected diff --git a/Sources/NXVenom/switch/.packages/SC Wizard/Help/CPU/Max Freq.txt b/Sources/NXVenom/switch/.packages/SC Wizard/Help/CPU/Max Freq.txt index 3e854136..bcdd6522 100644 --- a/Sources/NXVenom/switch/.packages/SC Wizard/Help/CPU/Max Freq.txt +++ b/Sources/NXVenom/switch/.packages/SC Wizard/Help/CPU/Max Freq.txt @@ -3,11 +3,15 @@ High frequencies are not recommended for use with high voltages Mariko --- +1963 MHz +Default freq when no UV is selected +Recommended Volt Limit up to 1235 + 2397 MHz -Volt Limit up to 1235 +Recommended Volt Limit up to 1235 2601 MHz -Volt Limit up to 1160 +Recommended Volt Limit up to 1160 Erista --- diff --git a/Sources/NXVenom/switch/.packages/SC Wizard/Help/CPU/UV Level.txt b/Sources/NXVenom/switch/.packages/SC Wizard/Help/CPU/UV Level.txt index ee0063dd..2f2affd9 100644 --- a/Sources/NXVenom/switch/.packages/SC Wizard/Help/CPU/UV Level.txt +++ b/Sources/NXVenom/switch/.packages/SC Wizard/Help/CPU/UV Level.txt @@ -1 +1,6 @@ Low Freq UV: 0-1581 MHz (UV7: 0-1428 MHz) + +Mariko +--- + +1963 MHz default freq when no UV is selected diff --git a/Sources/NXVenom/switch/.packages/SC Wizard/config.ini b/Sources/NXVenom/switch/.packages/SC Wizard/config.ini index 81f1fa23..65b293a4 100644 --- a/Sources/NXVenom/switch/.packages/SC Wizard/config.ini +++ b/Sources/NXVenom/switch/.packages/SC Wizard/config.ini @@ -2,7 +2,7 @@ ;about='Switchcraft overclocking configuration tool' ;enableConfigNav ;showCurInMenu -;version=1.3.5 +;version=1.3.7 ;kipVer=44 [>Configure] diff --git a/Sources/Tools/Web Configurator/loader.kip b/Sources/Tools/Web Configurator/loader.kip index 70f6f4957993c3034b37cab0fe55d303181a8bf4..858e3bd89a6e4c5b89177f70a86e0b30fd7b8737 100755 GIT binary patch delta 59344 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%0DZlV?&9Xj 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 KT>qwDE&MMF4)Klv delta 59616 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 z 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 TA^AlARX=O4S+9N1u1@_glQa$L diff --git a/Sources/Tools/Web Configurator/main.js b/Sources/Tools/Web Configurator/main.js index 7f69d948..e9825a30 100755 --- a/Sources/Tools/Web Configurator/main.js +++ b/Sources/Tools/Web Configurator/main.js @@ -1,737 +1,737 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); }; /* Config: Cust */ const CUST_REV_ADV = 44; var CustPlatform; (function (CustPlatform) { - CustPlatform[CustPlatform["Undefined"] = 0] = "Undefined"; - CustPlatform[CustPlatform["Erista"] = 1] = "Erista"; - CustPlatform[CustPlatform["Mariko"] = 2] = "Mariko"; - CustPlatform[CustPlatform["All"] = 3] = "All"; + CustPlatform[CustPlatform["Undefined"] = 0] = "Undefined"; + CustPlatform[CustPlatform["Erista"] = 1] = "Erista"; + CustPlatform[CustPlatform["Mariko"] = 2] = "Mariko"; + CustPlatform[CustPlatform["All"] = 3] = "All"; })(CustPlatform || (CustPlatform = {})); ; class CustEntry { - constructor(id, name, platform, size, desc, defval, minmax = [0, 1000000], step = 1, zeroable = true) { - this.id = id; - this.name = name; - this.platform = platform; - this.size = size; - this.desc = desc; - this.defval = defval; - this.step = step; - this.zeroable = zeroable; - this.min = minmax[0]; - this.max = minmax[1]; - } - ; - validate() { - let tip = new ErrorToolTip(this.id).clear(); - if (Number.isNaN(this.value) || this.value === undefined) { - tip.setMsg(`Invalid value: Not a number`).show(); - return false; - } - if (this.zeroable && this.value == 0) - return true; - if (this.value < this.min || this.value > this.max) { - tip.setMsg(`Expected range: [${this.min}, ${this.max}], got ${this.value}.`).show(); - return false; - } - if (this.value % this.step != 0) { - tip.setMsg(`${this.value} % ${this.step} ≠ 0`).show(); - return false; - } - return true; - } - ; - getInputElement() { - return document.getElementById(this.id); - } - updateValueFromElement() { - var _a; - this.value = Number((_a = this.getInputElement()) === null || _a === void 0 ? void 0 : _a.value); - } - isAvailableFor(platform) { - return platform === CustPlatform.Undefined || this.platform === platform || this.platform === CustPlatform.All; - } - createElement() { - let input = this.getInputElement(); - if (!input) { - let grid = document.createElement("div"); - grid.classList.add("grid", "cust-element"); - // Label and input - input = document.createElement("input"); - input.min = String(this.zeroable ? 0 : this.min); - input.max = String(this.max); - input.id = this.id; - input.type = "number"; - input.step = String(this.step); - let label = document.createElement("label"); - label.setAttribute("for", this.id); - label.innerHTML = this.name; - label.appendChild(input); - grid.appendChild(label); - // Description in blockquote style - let desc = document.createElement("blockquote"); - desc.innerHTML = "
    " + this.desc.map(i => `
  • ${i}
  • `).join('') + "
"; - desc.setAttribute("for", this.id); - grid.appendChild(desc); - document.getElementById("config-list-basic").appendChild(grid); - new ErrorToolTip(this.id).addChangeListener(); - } - input.value = String(this.value); - } - setElementValue() { - this.getInputElement().value = String(this.value); - } - setElementDefaultValue() { - this.getInputElement().value = String(this.defval); - } - removeElement() { - let input = this.getInputElement(); - if (input) { - input.parentElement.parentElement.remove(); - } - } - showElement() { - let input = this.getInputElement(); - if (input) { - input.parentElement.parentElement.style.removeProperty("display"); - } - } - hideElement() { - let input = this.getInputElement(); - if (input) { - input.parentElement.parentElement.style.setProperty("display", "none"); - } - } + constructor(id, name, platform, size, desc, defval, minmax = [0, 1000000], step = 1, zeroable = true) { + this.id = id; + this.name = name; + this.platform = platform; + this.size = size; + this.desc = desc; + this.defval = defval; + this.step = step; + this.zeroable = zeroable; + this.min = minmax[0]; + this.max = minmax[1]; + } + ; + validate() { + let tip = new ErrorToolTip(this.id).clear(); + if (Number.isNaN(this.value) || this.value === undefined) { + tip.setMsg(`Invalid value: Not a number`).show(); + return false; + } + if (this.zeroable && this.value == 0) + return true; + if (this.value < this.min || this.value > this.max) { + tip.setMsg(`Expected range: [${this.min}, ${this.max}], got ${this.value}.`).show(); + return false; + } + if (this.value % this.step != 0) { + tip.setMsg(`${this.value} % ${this.step} ≠ 0`).show(); + return false; + } + return true; + } + ; + getInputElement() { + return document.getElementById(this.id); + } + updateValueFromElement() { + var _a; + this.value = Number((_a = this.getInputElement()) === null || _a === void 0 ? void 0 : _a.value); + } + isAvailableFor(platform) { + return platform === CustPlatform.Undefined || this.platform === platform || this.platform === CustPlatform.All; + } + createElement() { + let input = this.getInputElement(); + if (!input) { + let grid = document.createElement("div"); + grid.classList.add("grid", "cust-element"); + // Label and input + input = document.createElement("input"); + input.min = String(this.zeroable ? 0 : this.min); + input.max = String(this.max); + input.id = this.id; + input.type = "number"; + input.step = String(this.step); + let label = document.createElement("label"); + label.setAttribute("for", this.id); + label.innerHTML = this.name; + label.appendChild(input); + grid.appendChild(label); + // Description in blockquote style + let desc = document.createElement("blockquote"); + desc.innerHTML = "
    " + this.desc.map(i => `
  • ${i}
  • `).join('') + "
"; + desc.setAttribute("for", this.id); + grid.appendChild(desc); + document.getElementById("config-list-basic").appendChild(grid); + new ErrorToolTip(this.id).addChangeListener(); + } + input.value = String(this.value); + } + setElementValue() { + this.getInputElement().value = String(this.value); + } + setElementDefaultValue() { + this.getInputElement().value = String(this.defval); + } + removeElement() { + let input = this.getInputElement(); + if (input) { + input.parentElement.parentElement.remove(); + } + } + showElement() { + let input = this.getInputElement(); + if (input) { + input.parentElement.parentElement.style.removeProperty("display"); + } + } + hideElement() { + let input = this.getInputElement(); + if (input) { + input.parentElement.parentElement.style.setProperty("display", "none"); + } + } } class AdvEntry extends CustEntry { - createElement() { - let input = this.getInputElement(); - if (!input) { - let grid = document.createElement("div"); - grid.classList.add("grid", "cust-element"); - // Label and input - input = document.createElement("input"); - input.min = String(this.zeroable ? 0 : this.min); - input.max = String(this.max); - input.id = this.id; - input.type = "number"; - input.step = String(this.step); - let label = document.createElement("label"); - label.setAttribute("for", this.id); - label.innerHTML = this.name; - label.appendChild(input); - grid.appendChild(label); - // Description in blockquote style - let desc = document.createElement("blockquote"); - desc.innerHTML = "
    " + this.desc.map(i => `
  • ${i}
  • `).join('') + "
"; - desc.setAttribute("for", this.id); - grid.appendChild(desc); - document.getElementById("config-list-advanced").appendChild(grid); - new ErrorToolTip(this.id).addChangeListener(); - } - input.value = String(this.value); - } + createElement() { + let input = this.getInputElement(); + if (!input) { + let grid = document.createElement("div"); + grid.classList.add("grid", "cust-element"); + // Label and input + input = document.createElement("input"); + input.min = String(this.zeroable ? 0 : this.min); + input.max = String(this.max); + input.id = this.id; + input.type = "number"; + input.step = String(this.step); + let label = document.createElement("label"); + label.setAttribute("for", this.id); + label.innerHTML = this.name; + label.appendChild(input); + grid.appendChild(label); + // Description in blockquote style + let desc = document.createElement("blockquote"); + desc.innerHTML = "
    " + this.desc.map(i => `
  • ${i}
  • `).join('') + "
"; + desc.setAttribute("for", this.id); + grid.appendChild(desc); + document.getElementById("config-list-advanced").appendChild(grid); + new ErrorToolTip(this.id).addChangeListener(); + } + input.value = String(this.value); + } } class GpuEntry extends CustEntry { - constructor(id, name, platform = CustPlatform.Mariko, size = 4, desc = ["range: 500 ≤ x ≤ 1050"], defval = 610, minmax = [500, 1050], step = 5, zeroable = false) { - super(id, name, platform, size, desc, defval, minmax, step, zeroable); - this.id = id; - this.name = name; - this.platform = platform; - this.size = size; - this.desc = desc; - this.defval = defval; - this.step = step; - this.zeroable = zeroable; - } - ; - createElement() { - let input = this.getInputElement(); - if (!input) { - let grid = document.createElement("div"); - grid.classList.add("grid", "cust-element"); - // Label and input - input = document.createElement("input"); - input.min = String(this.zeroable ? 0 : this.min); - input.max = String(this.max); - input.id = this.id; - input.type = "number"; - input.step = String(this.step); - let label = document.createElement("label"); - label.setAttribute("for", this.id); - label.innerHTML = this.name; - label.appendChild(input); - grid.appendChild(label); - // Description in blockquote style - let desc = document.createElement("blockquote"); - desc.innerHTML = "
    " + this.desc.map(i => `
  • ${i}
  • `).join('') + "
"; - desc.setAttribute("for", this.id); - grid.appendChild(desc); - document.getElementById("config-list-gpu").appendChild(grid); - new ErrorToolTip(this.id).addChangeListener(); - } - input.value = String(this.value); - } + constructor(id, name, platform = CustPlatform.Mariko, size = 4, desc = ["range: 500 ≤ x ≤ 1050"], defval = 610, minmax = [500, 1050], step = 5, zeroable = false) { + super(id, name, platform, size, desc, defval, minmax, step, zeroable); + this.id = id; + this.name = name; + this.platform = platform; + this.size = size; + this.desc = desc; + this.defval = defval; + this.step = step; + this.zeroable = zeroable; + } + ; + createElement() { + let input = this.getInputElement(); + if (!input) { + let grid = document.createElement("div"); + grid.classList.add("grid", "cust-element"); + // Label and input + input = document.createElement("input"); + input.min = String(this.zeroable ? 0 : this.min); + input.max = String(this.max); + input.id = this.id; + input.type = "number"; + input.step = String(this.step); + let label = document.createElement("label"); + label.setAttribute("for", this.id); + label.innerHTML = this.name; + label.appendChild(input); + grid.appendChild(label); + // Description in blockquote style + let desc = document.createElement("blockquote"); + desc.innerHTML = "
    " + this.desc.map(i => `
  • ${i}
  • `).join('') + "
"; + desc.setAttribute("for", this.id); + grid.appendChild(desc); + document.getElementById("config-list-gpu").appendChild(grid); + new ErrorToolTip(this.id).addChangeListener(); + } + input.value = String(this.value); + } } var CustTable = [ - new CustEntry("commonCpuBoostClock", "Boost Clock in kHz", CustPlatform.All, 4, ["System default: 1785000", - "This value patches Boost Mode CPU clock"], 1785000, [1020000, 3000000], 1, false), - new CustEntry("commonCpuUV", "CPU Undervolt", CustPlatform.All, 4, ["0 : Default Table", - "Acceptable range mariko : 0 - 8", - "Acceptable range erista : 0 - 5",], 0, [0, 8], 1), - new CustEntry("eristaCpuMinVolt", "Erista CPU Min Voltage in mV", CustPlatform.Erista, 4, ["Acceptable range: 750 ≤ x ≤ 850", - "System Default: 825"], 800, [750, 850], 25), - new CustEntry("eristaCpuMaxVolt", "Erista CPU Max Voltage in mV", CustPlatform.Erista, 4, ["Acceptable range: 1200 ≤ x ≤ 1257", - "System Default: 1227, L4T OC: 1257", - "Changing this value affects cpu voltage calculation"], 1257, [1200, 1257], 1), - new CustEntry("marikoCpuMinVolt", "Mariko CPU Min Voltage in mV", CustPlatform.Mariko, 4, ["Acceptable range: 550 < x ≤ 1120", - "System Default: 620"], 620, [550, 1120], 5), - new CustEntry("marikoCpuHighMinVolt", "Mariko CPU Tune High Min Voltage in mV", CustPlatform.Mariko, 4, ["Acceptable range: 710 ≤ x ≤ 850", - "System Default: 850"], 850, [710, 850], 5), - new CustEntry("marikoCpuMaxVolt", "Mariko CPU Max Voltage in mV", CustPlatform.Mariko, 4, ["Acceptable range: 900 ≤ x ≤ 1235", - "System default: 1120, L4T OC: 1235", - "Changing this value affects cpu voltage calculation"], 1125, [900, 1235], 5), - new CustEntry("eristaGpuUV", "Erista GPU Undervolt", CustPlatform.Erista, 4, ["GPU voltages are dynamic and will change with temperature and gpu speedo", - "0 : Undervolt Level 0 (Default Table)", - "1 : Undervolt Level 1 (M static +30mV)", - "2 : Undervolt Level 2 (high UV table)", - "3 : Custom static GPU Voltage Table (Use Gpu Configuator below)"], 0, [0, 3], 1), - new CustEntry("marikoGpuUV", "Mariko GPU Undervolt", CustPlatform.Mariko, 4, ["GPU voltages are dynamic and will change with temperature and gpu speedo", - "0 : Undervolt Level 0 (HiOPT)", - "1 : Undervolt Level 1 (HiOPT -20mV(3))", - "2 : Undervolt Level 2 (high UV table)", - "3 : Custom static GPU Voltage Table (Use Gpu Configuator below)"], 0, [0, 3], 1), - new CustEntry("commonGpuVoltOffset", "GPU Volt Offset", CustPlatform.All, 4, ["Negative Offset value for gpu dynamic voltage calculation", - "For example, value of 10 will decrease 10mV gpu volt from all frequencies", - "Default gpu vmin: Erista - 810mV / Mariko - 610mV", - "Acceptable range: 0 ~ 50"], 0, [0, 50], 1), - new CustEntry("eristaGpuMinVolt", "Erista GPU Vmin", CustPlatform.Erista, 4, ["GPU Vmin for Erista", - "Default gpu vmin: 810mV", - "Regulator step: 6.25mV", - "With 810mV vmin, 812.mV will be lowest voltage because of 6.25mV regulator step", - "Acceptable range: 0 ~ 1132"], 810, [0, 1132], 1), - new CustEntry("marikoGpuSpeedo", "Mariko GPU Speedo", CustPlatform.Mariko, 4, ["GPU Speedo for Mariko"], 1660, [1480, 1800], 5), - new CustEntry("marikoGpuMinVolt", "Mariko GPU Vmin", CustPlatform.Mariko, 4, ["GPU Vmin for Mariko", - "High EMC Clocks will require gpu minimum voltage to be raised", - "Default gpu vmin: 610mV", - "Regulator step: 5mV", - "slt and hiopt uses 590mV as minimum voltage", - "Acceptable range: 0 ~ 800"], 610, [0, 800], 5), - new CustEntry("marikoGpuMaxVolt", "Mariko GPU Vmax", CustPlatform.Mariko, 4, ["GPU Vmax for Mariko", - "System Default: 850, L4T: 800", - "Not recommended to increase value in order to protect from going over gpu pmic limits", - "Recommended limit: 800mV@1228Mhz with HiOPT", - "Any GPU Frequency that needs higher than vmax will be automatically removed and not available", - "This means max available GPU freq will be adjusted depending on your speedo", - "Acceptable range: 800 ~ 850"], 800, [800, 850], 5), - new CustEntry("mtcConf", "DRAM Timing", CustPlatform.All, 4, ["0: AUTO_ADJ: Auto adjust mtc table with LPDDR4 3733 Mbps specs, 16Gb density. Change timing with Advanced Config (Default)", - "1: AUTO_ADJ_LV: Less tight timings. It can help to achieve higher frequencies or lower voltages. Mainly for Erista.", - "3: NO_ADJ: Use 1600 mtc table wihout adjusting (Timing becomes tighter if you raise dram clock)."], 0, [0, 3], 1), - new CustEntry("commonEmcMemVolt", "EMC Vdd2 Voltage in uV", CustPlatform.All, 4, ["Acceptable range: 1050000 ≤ x ≤ 1212500, and it should be divided evenly by 12500.", - "Erista Default: 1125000", - "Mariko Default: 1100000", - "Official lpddr4(x) range: 1060mV~1175mV (1100mV nominal)", - "OCS need high voltage unlike l4t because of not scaling mtc table well. However it is recommended to stay within official limits", - "Not enabled by default"], 0, [1050000, 1212500], 12500), - new CustEntry("marikoEmcVddqVolt", "EMC Vddq (Mariko Only) Voltage in uV", CustPlatform.Mariko, 4, ["Acceptable range: 550000 ≤ x ≤ 650000", - "Value should be divided evenly by 5000", - "Default: 600000", - "Official lpddr4(x) range: 570mV~650mV (600mV nominal)", - "Not enabled by default."], 0, [550000, 650000], 5000), - new CustEntry("eristaEmcMaxClock", "Erista RAM Max Clock in kHz", CustPlatform.Erista, 4, ["Values should be ≥ 1600000, and divided evenly by 9600.", - "Recommended Clocks: 1862400, 2131200 (JEDEC)"], 1862400, [1600000, 2600000], 9600), - new CustEntry("marikoEmcMaxClock", "Mariko RAM Max Clock in kHz", CustPlatform.Mariko, 4, ["Values should be ≥ 1600000, and accepts any natural number.", - "Actual dram clock is exactly same as this value.", - "Spread Spectrum is enabled for frequencies in range of (2366000, 2500000] to mitigate EMI with wifi(2.4Ghz).", - "Recommended Clocks: 1866000, 2133000, 2400000, 2533000, 2666000, ..."], 1966000, [1600000, 3200000], 1), - new CustEntry("commonEmcDvbShift", "EMC DVB Voltage Shift", CustPlatform.All, 4, ["EMC DVB table is EMC clock to SOC voltage mapping", - "SOC voltage automatically gets raised on higher emc clock with this table", - "Each shift number raises 25mV more, up to max SoC voltage. Leave at 0 and only raise if unstable", - "Acceptable range : 0~5"], 0, [0, 5], 1), + new CustEntry("commonCpuBoostClock", "Boost Clock in kHz", CustPlatform.All, 4, ["System default: 1785000", + "This value patches Boost Mode CPU clock"], 1785000, [1020000, 3000000], 1, false), + new CustEntry("commonCpuUV", "CPU Undervolt", CustPlatform.All, 4, ["0 : Default Table", + "Acceptable range mariko : 0 - 8", + "Acceptable range erista : 0 - 5",], 0, [0, 8], 1), + new CustEntry("eristaCpuMinVolt", "Erista CPU Min Voltage in mV", CustPlatform.Erista, 4, ["Acceptable range: 750 ≤ x ≤ 850", + "System Default: 825"], 800, [750, 850], 25), + new CustEntry("eristaCpuMaxVolt", "Erista CPU Max Voltage in mV", CustPlatform.Erista, 4, ["Acceptable range: 1200 ≤ x ≤ 1257", + "System Default: 1227, L4T OC: 1257", + "Changing this value affects cpu voltage calculation"], 1257, [1200, 1257], 1), + new CustEntry("marikoCpuMinVolt", "Mariko CPU Min Voltage in mV", CustPlatform.Mariko, 4, ["Acceptable range: 550 < x ≤ 1120", + "System Default: 620"], 620, [550, 1120], 5), + new CustEntry("marikoCpuHighMinVolt", "Mariko CPU Tune High Min Voltage in mV", CustPlatform.Mariko, 4, ["Acceptable range: 710 ≤ x ≤ 850", + "System Default: 850"], 850, [710, 850], 5), + new CustEntry("marikoCpuMaxVolt", "Mariko CPU Max Voltage in mV", CustPlatform.Mariko, 4, ["Acceptable range: 1100 ≤ x ≤ 1160", + "System default: 1120, L4T OC: 1235", + "Changing this value affects cpu voltage calculation"], 1125, [1100, 1160], 5), + new CustEntry("eristaGpuUV", "Erista GPU Undervolt", CustPlatform.Erista, 4, ["GPU voltages are dynamic and will change with temperature and gpu speedo", + "0 : Undervolt Level 0 (Default Table)", + "1 : Undervolt Level 1 (M static +30mV)", + "2 : Undervolt Level 2 (high UV table)", + "3 : Custom static GPU Voltage Table (Use Gpu Configuator below)"], 0, [0, 3], 1), + new CustEntry("marikoGpuUV", "Mariko GPU Undervolt", CustPlatform.Mariko, 4, ["GPU voltages are dynamic and will change with temperature and gpu speedo", + "0 : Undervolt Level 0 (HiOPT)", + "1 : Undervolt Level 1 (HiOPT -20mV(3))", + "2 : Undervolt Level 2 (high UV table)", + "3 : Custom static GPU Voltage Table (Use Gpu Configuator below)"], 0, [0, 3], 1), + new CustEntry("commonGpuVoltOffset", "GPU Volt Offset", CustPlatform.All, 4, ["Negative Offset value for gpu dynamic voltage calculation", + "For example, value of 10 will decrease 10mV gpu volt from all frequencies", + "Default gpu vmin: Erista - 810mV / Mariko - 610mV", + "Acceptable range: 0 ~ 50"], 0, [0, 50], 1), + new CustEntry("eristaGpuMinVolt", "Erista GPU Vmin", CustPlatform.Erista, 4, ["GPU Vmin for Erista", + "Default gpu vmin: 810mV", + "Regulator step: 6.25mV", + "With 810mV vmin, 812.mV will be lowest voltage because of 6.25mV regulator step", + "Acceptable range: 0 ~ 1132"], 810, [0, 1132], 1), + new CustEntry("marikoGpuSpeedo", "Mariko GPU Speedo", CustPlatform.Mariko, 4, ["GPU Speedo for Mariko"], 1660, [1480, 1800], 5), + new CustEntry("marikoGpuMinVolt", "Mariko GPU Vmin", CustPlatform.Mariko, 4, ["GPU Vmin for Mariko", + "High EMC Clocks will require gpu minimum voltage to be raised", + "Default gpu vmin: 610mV", + "Regulator step: 5mV", + "slt and hiopt uses 590mV as minimum voltage", + "Acceptable range: 0 ~ 800"], 610, [0, 800], 5), + new CustEntry("marikoGpuMaxVolt", "Mariko GPU Vmax", CustPlatform.Mariko, 4, ["GPU Vmax for Mariko", + "System Default: 850, L4T: 800", + "Not recommended to increase value in order to protect from going over gpu pmic limits", + "Recommended limit: 800mV@1228Mhz with HiOPT", + "Any GPU Frequency that needs higher than vmax will be automatically removed and not available", + "This means max available GPU freq will be adjusted depending on your speedo", + "Acceptable range: 800 ~ 850"], 800, [800, 850], 5), + new CustEntry("mtcConf", "DRAM Timing", CustPlatform.All, 4, ["0: AUTO_ADJ: Auto adjust mtc table with LPDDR4 3733 Mbps specs, 16Gb density. Change timing with Advanced Config (Default)", + "1: AUTO_ADJ_LV: Less tight timings. It can help to achieve higher frequencies or lower voltages. Mainly for Erista.", + "3: NO_ADJ: Use 1600 mtc table wihout adjusting (Timing becomes tighter if you raise dram clock)."], 0, [0, 3], 1), + new CustEntry("commonEmcMemVolt", "EMC Vdd2 Voltage in uV", CustPlatform.All, 4, ["Acceptable range: 1050000 ≤ x ≤ 1212500, and it should be divided evenly by 12500.", + "Erista Default: 1125000", + "Mariko Default: 1100000", + "Official lpddr4(x) range: 1060mV~1175mV (1100mV nominal)", + "OCS need high voltage unlike l4t because of not scaling mtc table well. However it is recommended to stay within official limits", + "Not enabled by default"], 0, [1050000, 1212500], 12500), + new CustEntry("marikoEmcVddqVolt", "EMC Vddq (Mariko Only) Voltage in uV", CustPlatform.Mariko, 4, ["Acceptable range: 550000 ≤ x ≤ 650000", + "Value should be divided evenly by 5000", + "Default: 600000", + "Official lpddr4(x) range: 570mV~650mV (600mV nominal)", + "Not enabled by default."], 0, [550000, 650000], 5000), + new CustEntry("eristaEmcMaxClock", "Erista RAM Max Clock in kHz", CustPlatform.Erista, 4, ["Values should be ≥ 1600000, and divided evenly by 9600.", + "Recommended Clocks: 1862400, 2131200 (JEDEC)"], 1862400, [1600000, 2600000], 9600), + new CustEntry("marikoEmcMaxClock", "Mariko RAM Max Clock in kHz", CustPlatform.Mariko, 4, ["Values should be ≥ 1600000, and accepts any natural number.", + "Actual dram clock is exactly same as this value.", + "Spread Spectrum is enabled for frequencies in range of (2366000, 2500000] to mitigate EMI with wifi(2.4Ghz).", + "Recommended Clocks: 1866000, 2133000, 2400000, 2533000, 2666000, ..."], 1966000, [1600000, 3200000], 1), + new CustEntry("commonEmcDvbShift", "EMC DVB Voltage Shift", CustPlatform.All, 4, ["EMC DVB table is EMC clock to SOC voltage mapping", + "SOC voltage automatically gets raised on higher emc clock with this table", + "Each shift number raises 25mV more, up to max SoC voltage. Leave at 0 and only raise if unstable", + "Acceptable range : 0~5"], 0, [0, 5], 1), ]; var AdvTable = [ - new AdvEntry("ramTimingTRCD", "T1 tRCD", CustPlatform.All, 4, ["WARNING: Unstable timings can corrupt your nand", - "18 : 0 (Default timing)", - "17 : 1", - "16 : 2", - "15 : 3", - "14 : 4", - "13 : 5", - "12 : 6", - "11 : 7",], 18, [11, 18], 1), - new AdvEntry("ramTimingTRP", "T2 tRP", CustPlatform.All, 4, ["WARNING: Unstable timings can corrupt your nand", - "18 : 0 (Default timing)", - "17 : 1", - "16 : 2", - "15 : 3", - "14 : 4", - "13 : 5", - "12 : 6", - "11 : 7",], 18, [11, 18], 1), - new AdvEntry("ramTimingTRAS", "T3 tRAS", CustPlatform.All, 4, ["WARNING: Unstable timings can corrupt your nand", - "Acceptable range: 19 ≤ x ≤ 42", - "42 : 0 (Default timing)", - "39 : 1", - "36 : 2", - "33 : 3", - "30 : 4", - "27 : 5", - "24 : 6", - "21 : 7",], 42, [19, 42], 1), - new AdvEntry("ramTimingTRRD", "T4 tRRD", CustPlatform.All, 4, ["WARNING: Unstable timings can corrupt your nand", - "0 : 10 (Default timing)", - "1 : 7.5", - "2 : 6", - "3 : 4", - "4 : 3", - "5 : 2",], 1, [0, 5], 1), - new AdvEntry("ramTimingTRFC", "T5 tRFC", CustPlatform.All, 4, ["WARNING: Unstable timings can corrupt your nand", - "0 : 140 (Default timing)", - "1 : 120", - "2 : 100", - "3 : 80", - "4 : 70", - "5 : 60",], 1, [0, 5], 1), - new AdvEntry("ramTimingTWTR", "T6 tWTR", CustPlatform.All, 4, ["WARNING: Unstable timings can corrupt your nand", - "Values are : tWTR", - "0 : 10 (Default timing)", - "1 : 8", - "2 : 6", - "3 : 4", - "4 : 2", - "5 : 1",], 1, [0, 5], 1), - new AdvEntry("ramTimingTREFI", "T7 tREFI", CustPlatform.All, 4, ["WARNING: Unstable timings can corrupt your nand", - "0 : 1x REFI (3900us) (Default timing)", - "1 : 1.5x REFI", - "2 : 2x REFI", - "3 : 3x REFI", - "4 : 4x REFI", - "5 : MAX REFRESH (2400: 7x REFI / 2666: 6.3x REFI / 2933: 5.7x REFI /...",], 1, [0, 5], 1), - new AdvEntry("ramTimingTWLWL", "T8 tWLWL", CustPlatform.All, 4, ["WARNING: Unstable timings can corrupt your nand", - "tWLWL decreases timings related to write.", - "Values are Write", - "0 : 0", - "1 : '-2'", - "2 : '-4'", - "3 : '-6'", - "4 : '-8'", - "5 : '-10'", - "6 : '-12'",], 1, [0, 6], 1), - new AdvEntry("ramTimingTRDRD", "T9 tRDRD", CustPlatform.All, 4, ["WARNING: Unstable timings can corrupt your nand", - "tRDRD decreases timings related to read.", - "Values are Read", - "0 : 0", - "1 : '-4'", - "2 : '-8'", - "3 : '-12'", - "4 : '-16'", - "5 : '-20'", - "6 : '-24'",], 1, [0, 6], 1), + new AdvEntry("ramTimingTRCD", "T1 tRCD", CustPlatform.All, 4, ["WARNING: Unstable timings can corrupt your nand", + "18 : 0 (Default timing)", + "17 : 1", + "16 : 2", + "15 : 3", + "14 : 4", + "13 : 5", + "12 : 6", + "11 : 7",], 18, [11, 18], 1), + new AdvEntry("ramTimingTRP", "T2 tRP", CustPlatform.All, 4, ["WARNING: Unstable timings can corrupt your nand", + "18 : 0 (Default timing)", + "17 : 1", + "16 : 2", + "15 : 3", + "14 : 4", + "13 : 5", + "12 : 6", + "11 : 7",], 18, [11, 18], 1), + new AdvEntry("ramTimingTRAS", "T3 tRAS", CustPlatform.All, 4, ["WARNING: Unstable timings can corrupt your nand", + "Acceptable range: 19 ≤ x ≤ 42", + "42 : 0 (Default timing)", + "39 : 1", + "36 : 2", + "33 : 3", + "30 : 4", + "27 : 5", + "24 : 6", + "21 : 7",], 42, [19, 42], 1), + new AdvEntry("ramTimingTRRD", "T4 tRRD", CustPlatform.All, 4, ["WARNING: Unstable timings can corrupt your nand", + "0 : 10 (Default timing)", + "1 : 7.5", + "2 : 6", + "3 : 4", + "4 : 3", + "5 : 2",], 1, [0, 5], 1), + new AdvEntry("ramTimingTRFC", "T5 tRFC", CustPlatform.All, 4, ["WARNING: Unstable timings can corrupt your nand", + "0 : 140 (Default timing)", + "1 : 120", + "2 : 100", + "3 : 80", + "4 : 70", + "5 : 60",], 1, [0, 5], 1), + new AdvEntry("ramTimingTWTR", "T6 tWTR", CustPlatform.All, 4, ["WARNING: Unstable timings can corrupt your nand", + "Values are : tWTR", + "0 : 10 (Default timing)", + "1 : 8", + "2 : 6", + "3 : 4", + "4 : 2", + "5 : 1",], 1, [0, 5], 1), + new AdvEntry("ramTimingTREFI", "T7 tREFI", CustPlatform.All, 4, ["WARNING: Unstable timings can corrupt your nand", + "0 : 1x REFI (3900us) (Default timing)", + "1 : 1.5x REFI", + "2 : 2x REFI", + "3 : 3x REFI", + "4 : 4x REFI", + "5 : MAX REFRESH (2400: 7x REFI / 2666: 6.3x REFI / 2933: 5.7x REFI /...",], 1, [0, 5], 1), + new AdvEntry("ramTimingTWLWL", "T8 tWLWL", CustPlatform.All, 4, ["WARNING: Unstable timings can corrupt your nand", + "tWLWL decreases timings related to write.", + "Values are Write", + "0 : 0", + "1 : '-2'", + "2 : '-4'", + "3 : '-6'", + "4 : '-8'", + "5 : '-10'", + "6 : '-12'",], 1, [0, 6], 1), + new AdvEntry("ramTimingTRDRD", "T9 tRDRD", CustPlatform.All, 4, ["WARNING: Unstable timings can corrupt your nand", + "tRDRD decreases timings related to read.", + "Values are Read", + "0 : 0", + "1 : '-4'", + "2 : '-8'", + "3 : '-12'", + "4 : '-16'", + "5 : '-20'", + "6 : '-24'",], 1, [0, 6], 1), ]; var GpuTable = [ - new GpuEntry("0", "76.8"), - new GpuEntry("1", "153.6"), - new GpuEntry("2", "230.4"), - new GpuEntry("3", "307.2"), - new GpuEntry("4", "384.0"), - new GpuEntry("5", "460.8"), - new GpuEntry("6", "537.6"), - new GpuEntry("7", "614.4"), - new GpuEntry("8", "691.2"), - new GpuEntry("9", "768.0"), - new GpuEntry("10", "844.8"), - new GpuEntry("11", "921.6"), - new GpuEntry("12", "998.4"), - new GpuEntry("13", "1075.2"), - new GpuEntry("14", "1152.0"), - new GpuEntry("15", "1228.8"), - new GpuEntry("16", "1267.2"), - new GpuEntry("17", "1305.6"), + new GpuEntry("0", "76.8"), + new GpuEntry("1", "153.6"), + new GpuEntry("2", "230.4"), + new GpuEntry("3", "307.2"), + new GpuEntry("4", "384.0"), + new GpuEntry("5", "460.8"), + new GpuEntry("6", "537.6"), + new GpuEntry("7", "614.4"), + new GpuEntry("8", "691.2"), + new GpuEntry("9", "768.0"), + new GpuEntry("10", "844.8"), + new GpuEntry("11", "921.6"), + new GpuEntry("12", "998.4"), + new GpuEntry("13", "1075.2"), + new GpuEntry("14", "1152.0"), + new GpuEntry("15", "1228.8"), + new GpuEntry("16", "1267.2"), + new GpuEntry("17", "1305.6"), ]; class ErrorToolTip { - constructor(id, msg) { - this.id = id; - this.msg = msg; - this.id = id; - this.element = document.getElementById(id); - if (msg) { - this.setMsg(msg); - } - } - ; - setMsg(msg) { - this.msg = msg; - return this; - } - show() { - var _a, _b, _c, _d, _e, _f; - (_a = this.element) === null || _a === void 0 ? void 0 : _a.setAttribute("aria-invalid", "true"); - if (this.msg) { - (_b = this.element) === null || _b === void 0 ? void 0 : _b.setAttribute("title", this.msg); - (_d = (_c = this.element) === null || _c === void 0 ? void 0 : _c.parentElement) === null || _d === void 0 ? void 0 : _d.setAttribute("data-tooltip", this.msg); - (_f = (_e = this.element) === null || _e === void 0 ? void 0 : _e.parentElement) === null || _f === void 0 ? void 0 : _f.setAttribute("data-placement", "top"); - } - return this; - } - ; - clear() { - var _a, _b, _c, _d, _e, _f; - (_a = this.element) === null || _a === void 0 ? void 0 : _a.removeAttribute("aria-invalid"); - (_b = this.element) === null || _b === void 0 ? void 0 : _b.removeAttribute("title"); - (_d = (_c = this.element) === null || _c === void 0 ? void 0 : _c.parentElement) === null || _d === void 0 ? void 0 : _d.removeAttribute("data-tooltip"); - (_f = (_e = this.element) === null || _e === void 0 ? void 0 : _e.parentElement) === null || _f === void 0 ? void 0 : _f.removeAttribute("data-placement"); - return this; - } - addChangeListener() { - var _a; - (_a = this.element) === null || _a === void 0 ? void 0 : _a.addEventListener('change', (_evt) => { - let obj = CustTable.filter((obj) => { return obj.id === this.id; })[0]; - obj.value = Number(this.element.value); - obj.validate(); - }); - } + constructor(id, msg) { + this.id = id; + this.msg = msg; + this.id = id; + this.element = document.getElementById(id); + if (msg) { + this.setMsg(msg); + } + } + ; + setMsg(msg) { + this.msg = msg; + return this; + } + show() { + var _a, _b, _c, _d, _e, _f; + (_a = this.element) === null || _a === void 0 ? void 0 : _a.setAttribute("aria-invalid", "true"); + if (this.msg) { + (_b = this.element) === null || _b === void 0 ? void 0 : _b.setAttribute("title", this.msg); + (_d = (_c = this.element) === null || _c === void 0 ? void 0 : _c.parentElement) === null || _d === void 0 ? void 0 : _d.setAttribute("data-tooltip", this.msg); + (_f = (_e = this.element) === null || _e === void 0 ? void 0 : _e.parentElement) === null || _f === void 0 ? void 0 : _f.setAttribute("data-placement", "top"); + } + return this; + } + ; + clear() { + var _a, _b, _c, _d, _e, _f; + (_a = this.element) === null || _a === void 0 ? void 0 : _a.removeAttribute("aria-invalid"); + (_b = this.element) === null || _b === void 0 ? void 0 : _b.removeAttribute("title"); + (_d = (_c = this.element) === null || _c === void 0 ? void 0 : _c.parentElement) === null || _d === void 0 ? void 0 : _d.removeAttribute("data-tooltip"); + (_f = (_e = this.element) === null || _e === void 0 ? void 0 : _e.parentElement) === null || _f === void 0 ? void 0 : _f.removeAttribute("data-placement"); + return this; + } + addChangeListener() { + var _a; + (_a = this.element) === null || _a === void 0 ? void 0 : _a.addEventListener('change', (_evt) => { + let obj = CustTable.filter((obj) => { return obj.id === this.id; })[0]; + obj.value = Number(this.element.value); + obj.validate(); + }); + } } ; class CustStorage { - constructor() { - this.storage = {}; - this.key = "last_saved"; - } - updateFromTable() { - let update = (i => { - var _a; - i.updateValueFromElement(); - if (!i.validate()) { - (_a = i.getInputElement()) === null || _a === void 0 ? void 0 : _a.focus(); - throw new Error(`Invalid ${i.name}`); - } - }); - CustTable.forEach(update); - AdvTable.forEach(update); - GpuTable.forEach(update); - this.storage = {}; - let kv = Object.fromEntries(CustTable.map((i) => [i.id, i.value])); - Object.keys(kv) - .forEach(k => this.storage[k] = kv[k]); - kv = Object.fromEntries(AdvTable.map((i) => [i.id, i.value])); - Object.keys(kv) - .forEach(k => this.storage[k] = kv[k]); - } - setTable() { - let keys = Object.keys(this.storage); - keys.forEach(k => CustTable.filter(i => i.id == k)[0].value = this.storage[k]); - keys.forEach(k => AdvTable.filter(i => i.id == k)[0].value = this.storage[k]); - // Set default for missing values - CustTable.filter(i => !keys.includes(i.id)) - .forEach(i => i.value = i.defval); - AdvTable.filter(i => !keys.includes(i.id)) - .forEach(i => i.value = i.defval); - CustTable.forEach(i => { - var _a; - if (!i.validate()) { - (_a = i.getInputElement()) === null || _a === void 0 ? void 0 : _a.focus(); - throw new Error(`Invalid ${i.name}`); - } - i.setElementValue(); - }); - AdvTable.forEach(i => { - var _a; - if (!i.validate()) { - (_a = i.getInputElement()) === null || _a === void 0 ? void 0 : _a.focus(); - throw new Error(`Invalid ${i.name}`); - } - i.setElementValue(); - }); - GpuTable.forEach(i => { - var _a; - if (!i.validate()) { - (_a = i.getInputElement()) === null || _a === void 0 ? void 0 : _a.focus(); - throw new Error(`Invalid ${i.name}`); - } - i.setElementValue(); - }); - } - save() { - localStorage.setItem(this.key, JSON.stringify(this.storage)); - } - load() { - let s = localStorage.getItem(this.key); - if (!s) { - return null; - } - let dict = JSON.parse(s); - let keys = CustTable.map(i => i.id); - let ignoredKeys = Object.keys(dict).filter(k => !keys.includes(k)); - if (ignoredKeys.length) { - console.log(`Ignored: ${ignoredKeys}`); - } - Object.keys(dict) - .filter(k => keys.includes(k)) - .forEach(k => this.storage[k] = dict[k]); - keys = AdvTable.map(i => i.id); - ignoredKeys = Object.keys(dict).filter(k => !keys.includes(k)); - if (ignoredKeys.length) { - console.log(`Ignored: ${ignoredKeys}`); - } - Object.keys(dict) - .filter(k => keys.includes(k)) - .forEach(k => this.storage[k] = dict[k]); - return this.storage; - } + constructor() { + this.storage = {}; + this.key = "last_saved"; + } + updateFromTable() { + let update = (i => { + var _a; + i.updateValueFromElement(); + if (!i.validate()) { + (_a = i.getInputElement()) === null || _a === void 0 ? void 0 : _a.focus(); + throw new Error(`Invalid ${i.name}`); + } + }); + CustTable.forEach(update); + AdvTable.forEach(update); + GpuTable.forEach(update); + this.storage = {}; + let kv = Object.fromEntries(CustTable.map((i) => [i.id, i.value])); + Object.keys(kv) + .forEach(k => this.storage[k] = kv[k]); + kv = Object.fromEntries(AdvTable.map((i) => [i.id, i.value])); + Object.keys(kv) + .forEach(k => this.storage[k] = kv[k]); + } + setTable() { + let keys = Object.keys(this.storage); + keys.forEach(k => CustTable.filter(i => i.id == k)[0].value = this.storage[k]); + keys.forEach(k => AdvTable.filter(i => i.id == k)[0].value = this.storage[k]); + // Set default for missing values + CustTable.filter(i => !keys.includes(i.id)) + .forEach(i => i.value = i.defval); + AdvTable.filter(i => !keys.includes(i.id)) + .forEach(i => i.value = i.defval); + CustTable.forEach(i => { + var _a; + if (!i.validate()) { + (_a = i.getInputElement()) === null || _a === void 0 ? void 0 : _a.focus(); + throw new Error(`Invalid ${i.name}`); + } + i.setElementValue(); + }); + AdvTable.forEach(i => { + var _a; + if (!i.validate()) { + (_a = i.getInputElement()) === null || _a === void 0 ? void 0 : _a.focus(); + throw new Error(`Invalid ${i.name}`); + } + i.setElementValue(); + }); + GpuTable.forEach(i => { + var _a; + if (!i.validate()) { + (_a = i.getInputElement()) === null || _a === void 0 ? void 0 : _a.focus(); + throw new Error(`Invalid ${i.name}`); + } + i.setElementValue(); + }); + } + save() { + localStorage.setItem(this.key, JSON.stringify(this.storage)); + } + load() { + let s = localStorage.getItem(this.key); + if (!s) { + return null; + } + let dict = JSON.parse(s); + let keys = CustTable.map(i => i.id); + let ignoredKeys = Object.keys(dict).filter(k => !keys.includes(k)); + if (ignoredKeys.length) { + console.log(`Ignored: ${ignoredKeys}`); + } + Object.keys(dict) + .filter(k => keys.includes(k)) + .forEach(k => this.storage[k] = dict[k]); + keys = AdvTable.map(i => i.id); + ignoredKeys = Object.keys(dict).filter(k => !keys.includes(k)); + if (ignoredKeys.length) { + console.log(`Ignored: ${ignoredKeys}`); + } + Object.keys(dict) + .filter(k => keys.includes(k)) + .forEach(k => this.storage[k] = dict[k]); + return this.storage; + } } class Cust { - constructor() { - this.storage = new CustStorage(); - this.magic = 0x54535543; // "CUST" - this.magicLen = 4; - this.mapper = { - 2: { - get: (offset) => this.view.getUint16(offset, true), - set: (offset, value) => this.view.setUint16(offset, value, true), - }, - 4: { - get: (offset) => this.view.getUint32(offset, true), - set: (offset, value) => this.view.setUint32(offset, value, true) - }, - }; - } - findMagicOffset() { - this.view = new DataView(this.buffer); - for (let offset = 0; offset < this.view.byteLength; offset += this.magicLen) { - if (this.mapper[this.magicLen].get(offset) == this.magic) { - this.beginOffset = offset; - return; - } - } - throw new Error("Invalid loader.kip file"); - } - save() { - this.storage.updateFromTable(); - let saveValue = (i => { - var _a, _b; - if (!i.offset) { - (_a = i.getInputElement()) === null || _a === void 0 ? void 0 : _a.focus(); - throw new Error(`Failed to get offset for ${i.name}`); - } - let mapper = this.mapper[i.size]; - if (!mapper) { - (_b = i.getInputElement()) === null || _b === void 0 ? void 0 : _b.focus(); - throw new Error(`Unknown size at ${i.name}`); - } - mapper.set(i.offset, i.value); - }); - CustTable.forEach(saveValue); - AdvTable.forEach(saveValue); - GpuTable.forEach(saveValue); - this.storage.save(); - let a = document.createElement("a"); - a.href = window.URL.createObjectURL(new Blob([this.buffer], { type: "application/octet-stream" })); - a.download = "loader.kip"; - a.click(); - this.toggleLoadLastSavedBtn(true); - } - removeHTMLForm() { - CustTable.forEach(i => i.removeElement()); - } - toggleLoadLastSavedBtn(enable) { - let last_btn = document.getElementById("load_saved"); - if (enable) { - last_btn.addEventListener('click', () => { - if (this.storage.load()) { - this.storage.setTable(); + constructor() { + this.storage = new CustStorage(); + this.magic = 0x54535543; // "CUST" + this.magicLen = 4; + this.mapper = { + 2: { + get: (offset) => this.view.getUint16(offset, true), + set: (offset, value) => this.view.setUint16(offset, value, true), + }, + 4: { + get: (offset) => this.view.getUint32(offset, true), + set: (offset, value) => this.view.setUint32(offset, value, true) + }, + }; + } + findMagicOffset() { + this.view = new DataView(this.buffer); + for (let offset = 0; offset < this.view.byteLength; offset += this.magicLen) { + if (this.mapper[this.magicLen].get(offset) == this.magic) { + this.beginOffset = offset; + return; + } } - }); - last_btn.style.removeProperty("display"); - last_btn.removeAttribute("disabled"); - } - else { - last_btn.style.setProperty("display", "none"); - } - } - createHTMLForm() { - var _a, _b; - CustTable.forEach(i => i.createElement()); - let advanced = document.createElement("p"); - advanced.innerHTML = "Advanced configuration"; - (_a = document.getElementById("config-list-advanced")) === null || _a === void 0 ? void 0 : _a.appendChild(advanced); - let gpu = document.createElement("p"); - gpu.innerHTML = "Gpu Volt configuration"; - (_b = document.getElementById("config-list-gpu")) === null || _b === void 0 ? void 0 : _b.appendChild(gpu); - AdvTable.forEach(i => i.createElement()); - GpuTable.forEach(i => i.createElement()); - let default_btn = document.getElementById("load_default"); - default_btn.removeAttribute("disabled"); - default_btn.addEventListener('click', () => { - CustTable.forEach(i => i.setElementDefaultValue()); - }); - this.toggleLoadLastSavedBtn(this.storage.load() !== null); - let save_btn = document.getElementById("save"); - save_btn.removeAttribute("disabled"); - save_btn.addEventListener('click', () => { - try { - this.save(); - } - catch (e) { - console.error(e); - alert(e); - } - }); - } - initCustTabs() { - const custTabs = Array.from(document.querySelectorAll(`nav[role="tablist"] > button`)); - custTabs.forEach(tab => { - tab.removeAttribute("disabled"); - let platform = Number(tab.getAttribute("data-platform")); - tab.addEventListener('click', (_evt) => { - // Set other tabs to unfocused state - const unfocusedClasses = ["outline"]; - tab.classList.remove(...unfocusedClasses); - let otherTabs = custTabs.filter(j => j != tab); - otherTabs.forEach(k => k.classList.add(...unfocusedClasses)); - CustTable.forEach(e => { - e.isAvailableFor(platform) ? e.showElement() : e.hideElement(); + throw new Error("Invalid loader.kip file"); + } + save() { + this.storage.updateFromTable(); + let saveValue = (i => { + var _a, _b; + if (!i.offset) { + (_a = i.getInputElement()) === null || _a === void 0 ? void 0 : _a.focus(); + throw new Error(`Failed to get offset for ${i.name}`); + } + let mapper = this.mapper[i.size]; + if (!mapper) { + (_b = i.getInputElement()) === null || _b === void 0 ? void 0 : _b.focus(); + throw new Error(`Unknown size at ${i.name}`); + } + mapper.set(i.offset, i.value); }); - }); - }); - } - parse() { - let offset = this.beginOffset + this.magicLen; - let revLen = 4; - this.rev = this.mapper[revLen].get(offset); - if (this.rev != CUST_REV_ADV) { - throw new Error(`Unsupported custRev, expected: ${CUST_REV_ADV}, got ${this.rev}`); - } - offset += revLen; - document.getElementById("cust_rev").innerHTML = `Cust v${this.rev} is loaded.`; - let loadValue = (i => { - var _a; - i.offset = offset; - let mapper = this.mapper[i.size]; - if (!mapper) { - (_a = i.getInputElement()) === null || _a === void 0 ? void 0 : _a.focus(); - throw new Error(`Unknown size at ${i}`); - } - i.value = mapper.get(offset); - offset += i.size; - i.validate(); - }); - CustTable.forEach(loadValue); - AdvTable.forEach(loadValue); - GpuTable.forEach(loadValue); - } - load(buffer) { - try { - this.buffer = buffer; - this.findMagicOffset(); - this.removeHTMLForm(); - this.parse(); - this.initCustTabs(); - this.createHTMLForm(); - } - catch (e) { - console.error(e); - alert(e); - } - } + CustTable.forEach(saveValue); + AdvTable.forEach(saveValue); + GpuTable.forEach(saveValue); + this.storage.save(); + let a = document.createElement("a"); + a.href = window.URL.createObjectURL(new Blob([this.buffer], { type: "application/octet-stream" })); + a.download = "loader.kip"; + a.click(); + this.toggleLoadLastSavedBtn(true); + } + removeHTMLForm() { + CustTable.forEach(i => i.removeElement()); + } + toggleLoadLastSavedBtn(enable) { + let last_btn = document.getElementById("load_saved"); + if (enable) { + last_btn.addEventListener('click', () => { + if (this.storage.load()) { + this.storage.setTable(); + } + }); + last_btn.style.removeProperty("display"); + last_btn.removeAttribute("disabled"); + } + else { + last_btn.style.setProperty("display", "none"); + } + } + createHTMLForm() { + var _a, _b; + CustTable.forEach(i => i.createElement()); + let advanced = document.createElement("p"); + advanced.innerHTML = "Advanced configuration"; + (_a = document.getElementById("config-list-advanced")) === null || _a === void 0 ? void 0 : _a.appendChild(advanced); + let gpu = document.createElement("p"); + gpu.innerHTML = "Gpu Volt configuration"; + (_b = document.getElementById("config-list-gpu")) === null || _b === void 0 ? void 0 : _b.appendChild(gpu); + AdvTable.forEach(i => i.createElement()); + GpuTable.forEach(i => i.createElement()); + let default_btn = document.getElementById("load_default"); + default_btn.removeAttribute("disabled"); + default_btn.addEventListener('click', () => { + CustTable.forEach(i => i.setElementDefaultValue()); + }); + this.toggleLoadLastSavedBtn(this.storage.load() !== null); + let save_btn = document.getElementById("save"); + save_btn.removeAttribute("disabled"); + save_btn.addEventListener('click', () => { + try { + this.save(); + } + catch (e) { + console.error(e); + alert(e); + } + }); + } + initCustTabs() { + const custTabs = Array.from(document.querySelectorAll(`nav[role="tablist"] > button`)); + custTabs.forEach(tab => { + tab.removeAttribute("disabled"); + let platform = Number(tab.getAttribute("data-platform")); + tab.addEventListener('click', (_evt) => { + // Set other tabs to unfocused state + const unfocusedClasses = ["outline"]; + tab.classList.remove(...unfocusedClasses); + let otherTabs = custTabs.filter(j => j != tab); + otherTabs.forEach(k => k.classList.add(...unfocusedClasses)); + CustTable.forEach(e => { + e.isAvailableFor(platform) ? e.showElement() : e.hideElement(); + }); + }); + }); + } + parse() { + let offset = this.beginOffset + this.magicLen; + let revLen = 4; + this.rev = this.mapper[revLen].get(offset); + if (this.rev != CUST_REV_ADV) { + throw new Error(`Unsupported custRev, expected: ${CUST_REV_ADV}, got ${this.rev}`); + } + offset += revLen; + document.getElementById("cust_rev").innerHTML = `Cust v${this.rev} is loaded.`; + let loadValue = (i => { + var _a; + i.offset = offset; + let mapper = this.mapper[i.size]; + if (!mapper) { + (_a = i.getInputElement()) === null || _a === void 0 ? void 0 : _a.focus(); + throw new Error(`Unknown size at ${i}`); + } + i.value = mapper.get(offset); + offset += i.size; + i.validate(); + }); + CustTable.forEach(loadValue); + AdvTable.forEach(loadValue); + GpuTable.forEach(loadValue); + } + load(buffer) { + try { + this.buffer = buffer; + this.findMagicOffset(); + this.removeHTMLForm(); + this.parse(); + this.initCustTabs(); + this.createHTMLForm(); + } + catch (e) { + console.error(e); + alert(e); + } + } } /* GitHub Release fetch */ class ReleaseAsset { - constructor(obj) { - this.downloadUrl = obj.browser_download_url; - this.updatedAt = obj.updated_at; - } - ; + constructor(obj) { + this.downloadUrl = obj.browser_download_url; + this.updatedAt = obj.updated_at; + } + ; } ; class ReleaseInfo { - constructor() { - this.ocLatestApi = "https://api.github.com/repos/hanai3Bi/Switch-OC-Suite/releases/latest"; - } - load() { - return __awaiter(this, void 0, void 0, function* () { - try { - this.parseOcResponse(yield this.responseFromApi(this.ocLatestApi).catch()); - } - catch (e) { - console.error(e); - alert(e); - } - }); - } - ; - responseFromApi(apiUrl) { - return __awaiter(this, void 0, void 0, function* () { - const response = yield fetch(apiUrl, { method: 'GET', headers: { Accept: 'application/json' } }); - if (response.ok) { - return yield response.json(); - } - throw new Error(`Failed to connect to "${apiUrl}": ${response.status}`); - }); - } - ; - parseOcResponse(response) { - this.ocVer = response.tag_name; - this.loaderKipAsset = new ReleaseAsset(response.assets.filter(a => a.name.endsWith("loader.kip"))[0]); - this.sdOutZipAsset = new ReleaseAsset(response.assets.filter(a => a.name.endsWith("SdOut.zip"))[0]); - this.sysclkOCAsset = new ReleaseAsset(response.assets.filter(a => a.name.endsWith("sys-clk-oc.zip"))[0]); - } - ; + constructor() { + this.ocLatestApi = "https://api.github.com/repos/hanai3Bi/Switch-OC-Suite/releases/latest"; + } + load() { + return __awaiter(this, void 0, void 0, function* () { + try { + this.parseOcResponse(yield this.responseFromApi(this.ocLatestApi).catch()); + } + catch (e) { + console.error(e); + alert(e); + } + }); + } + ; + responseFromApi(apiUrl) { + return __awaiter(this, void 0, void 0, function* () { + const response = yield fetch(apiUrl, { method: 'GET', headers: { Accept: 'application/json' } }); + if (response.ok) { + return yield response.json(); + } + throw new Error(`Failed to connect to "${apiUrl}": ${response.status}`); + }); + } + ; + parseOcResponse(response) { + this.ocVer = response.tag_name; + this.loaderKipAsset = new ReleaseAsset(response.assets.filter(a => a.name.endsWith("loader.kip"))[0]); + this.sdOutZipAsset = new ReleaseAsset(response.assets.filter(a => a.name.endsWith("SdOut.zip"))[0]); + this.sysclkOCAsset = new ReleaseAsset(response.assets.filter(a => a.name.endsWith("sys-clk-oc.zip"))[0]); + } + ; } ; class DownloadSection { - constructor() { - this.element = document.getElementById("download_btn_grid"); - } - load() { - return __awaiter(this, void 0, void 0, function* () { - while (!this.isVisible()) { - yield new Promise(r => setTimeout(r, 1000)); - } - const info = new ReleaseInfo(); - yield info.load(); - this.update("loader_kip_btn", `loader.kip ${info.ocVer}
${info.loaderKipAsset.updatedAt}`, info.loaderKipAsset.downloadUrl); - this.update("sdout_zip_btn", `SdOut.zip ${info.ocVer}
${info.sdOutZipAsset.updatedAt}`, info.sdOutZipAsset.downloadUrl); - this.update("ams_btn", `sys-clk-oc ${info.ocVer}
${info.sysclkOCAsset.updatedAt}`, info.sysclkOCAsset.downloadUrl); - }); - } - isVisible() { - let rect = this.element.getBoundingClientRect(); - return (rect.top > 0 && - rect.left > 0 && - rect.bottom - rect.height < (window.innerHeight || document.documentElement.clientHeight) && - rect.right - rect.width < (window.innerWidth || document.documentElement.clientWidth)); - } - update(id, name, url) { - let element = document.getElementById(id); - element.innerHTML = name; - element.removeAttribute("aria-busy"); - element.setAttribute("href", url); - } + constructor() { + this.element = document.getElementById("download_btn_grid"); + } + load() { + return __awaiter(this, void 0, void 0, function* () { + while (!this.isVisible()) { + yield new Promise(r => setTimeout(r, 1000)); + } + const info = new ReleaseInfo(); + yield info.load(); + this.update("loader_kip_btn", `loader.kip ${info.ocVer}
${info.loaderKipAsset.updatedAt}`, info.loaderKipAsset.downloadUrl); + this.update("sdout_zip_btn", `SdOut.zip ${info.ocVer}
${info.sdOutZipAsset.updatedAt}`, info.sdOutZipAsset.downloadUrl); + this.update("ams_btn", `sys-clk-oc ${info.ocVer}
${info.sysclkOCAsset.updatedAt}`, info.sysclkOCAsset.downloadUrl); + }); + } + isVisible() { + let rect = this.element.getBoundingClientRect(); + return (rect.top > 0 && + rect.left > 0 && + rect.bottom - rect.height < (window.innerHeight || document.documentElement.clientHeight) && + rect.right - rect.width < (window.innerWidth || document.documentElement.clientWidth)); + } + update(id, name, url) { + let element = document.getElementById(id); + element.innerHTML = name; + element.removeAttribute("aria-busy"); + element.setAttribute("href", url); + } } const fileInput = document.getElementById("file"); fileInput.addEventListener('change', (event) => { - var cust = new Cust(); - // User canceled or non files selected - if (!event.target || !event.target.files) { - return; - } - let reader = new FileReader(); - reader.readAsArrayBuffer(event.target.files[0]); - reader.onloadend = (progEvent) => { - if (progEvent.target.readyState == FileReader.DONE) { - cust.load(progEvent.target.result); - } - }; + var cust = new Cust(); + // User canceled or non files selected + if (!event.target || !event.target.files) { + return; + } + let reader = new FileReader(); + reader.readAsArrayBuffer(event.target.files[0]); + reader.onloadend = (progEvent) => { + if (progEvent.target.readyState == FileReader.DONE) { + cust.load(progEvent.target.result); + } + }; }); addEventListener('DOMContentLoaded', (_evt) => __awaiter(this, void 0, void 0, function* () { - yield new DownloadSection().load(); + yield new DownloadSection().load(); }));