From 795925b73f68b230f86887d02ab870fd28151f45 Mon Sep 17 00:00:00 2001 From: Joshua Tam <297250+joshuatam@users.noreply.github.com> Date: Thu, 23 May 2024 00:54:29 +0900 Subject: [PATCH 1/3] Add X1 support --- HandheldCompanion/Devices/IDevice.cs | 6 ++ .../Devices/OneXPlayer/OneXPlayerX1.cs | 60 ++++++++++++++++++ .../Devices/OneXPlayer/OneXPlayerX1AMD.cs | 22 +++++++ .../Devices/OneXPlayer/OneXPlayerX1Intel.cs | 14 ++++ HandheldCompanion/HandheldCompanion.csproj | 2 + .../Resources/device_onexplayer_x1.png | Bin 0 -> 14446 bytes HandheldCompanion/Views/Pages/AboutPage.xaml | 2 +- 7 files changed, 105 insertions(+), 1 deletion(-) create mode 100644 HandheldCompanion/Devices/OneXPlayer/OneXPlayerX1.cs create mode 100644 HandheldCompanion/Devices/OneXPlayer/OneXPlayerX1AMD.cs create mode 100644 HandheldCompanion/Devices/OneXPlayer/OneXPlayerX1Intel.cs create mode 100644 HandheldCompanion/Resources/device_onexplayer_x1.png diff --git a/HandheldCompanion/Devices/IDevice.cs b/HandheldCompanion/Devices/IDevice.cs index 37b62377f..07a708b64 100644 --- a/HandheldCompanion/Devices/IDevice.cs +++ b/HandheldCompanion/Devices/IDevice.cs @@ -368,6 +368,12 @@ public static IDevice GetCurrent() { switch (ProductName) { + case "ONEXPLAYER X1 i": + device = new OneXPlayerX1Intel(); + break; + case "ONEXPLAYER X1 a": // TDOO: check name after release + device = new OneXPlayerX1AMD(); + break; case "ONEXPLAYER F1": { switch (Version) diff --git a/HandheldCompanion/Devices/OneXPlayer/OneXPlayerX1.cs b/HandheldCompanion/Devices/OneXPlayer/OneXPlayerX1.cs new file mode 100644 index 000000000..49507a401 --- /dev/null +++ b/HandheldCompanion/Devices/OneXPlayer/OneXPlayerX1.cs @@ -0,0 +1,60 @@ +using HandheldCompanion.Inputs; +using HandheldCompanion.Managers; +using System.Collections.Generic; +using WindowsInput.Events; + +namespace HandheldCompanion.Devices; + +public class OneXPlayerX1 : IDevice +{ + public OneXPlayerX1() + { + // device specific settings + ProductIllustration = "device_onexplayer_x1"; + ProductModel = "ONEXPLAYERX1"; + + ECDetails = new ECDetails + { + AddressStatusCommandPort = 0x4E, + AddressDataPort = 0x4F, + }; + + OEMChords.Add(new DeviceChord("Turbo", + new List { KeyCode.RControlKey, KeyCode.LWin, KeyCode.LMenu }, + new List { KeyCode.LMenu, KeyCode.LWin, KeyCode.RControlKey }, + false, ButtonFlags.OEM1 + )); + } + + public override string GetGlyph(ButtonFlags button) + { + switch (button) + { + case ButtonFlags.OEM1: + return "\u2211"; + } + + return defaultGlyph; + } + + public override bool Open() + { + var success = base.Open(); + if (!success) + return false; + + // allow OneX button to pass key inputs + LogManager.LogInformation("Unlocked {0} OEM button", ButtonFlags.OEM1); + + ECRamDirectWrite(0x4EB, ECDetails, 0x40); + + return ECRamReadByte(0x4EB, ECDetails) == 0x40; + } + + public override void Close() + { + LogManager.LogInformation("Locked {0} OEM button", ButtonFlags.OEM1); + ECRamDirectWrite(0x4EB, ECDetails, 0x00); + base.Close(); + } +} diff --git a/HandheldCompanion/Devices/OneXPlayer/OneXPlayerX1AMD.cs b/HandheldCompanion/Devices/OneXPlayer/OneXPlayerX1AMD.cs new file mode 100644 index 000000000..a8af602c0 --- /dev/null +++ b/HandheldCompanion/Devices/OneXPlayer/OneXPlayerX1AMD.cs @@ -0,0 +1,22 @@ +using HandheldCompanion.Inputs; +using HandheldCompanion.Managers; +using HandheldCompanion.Misc; +using System; +using System.Collections.Generic; +using System.Numerics; +using WindowsInput.Events; +using static HandheldCompanion.Utils.DeviceUtils; + +namespace HandheldCompanion.Devices; + +public class OneXPlayerX1AMD : OneXPlayerX1 +{ + public OneXPlayerX1AMD() + { + // https://www.amd.com/en/products/apu/amd-ryzen-7-8840u + nTDP = new double[] { 15, 15, 28 }; + cTDP = new double[] { 15, 30 }; + GfxClock = new double[] { 100, 2700 }; + CpuClock = 5100; + } +} diff --git a/HandheldCompanion/Devices/OneXPlayer/OneXPlayerX1Intel.cs b/HandheldCompanion/Devices/OneXPlayer/OneXPlayerX1Intel.cs new file mode 100644 index 000000000..21cb4dc6c --- /dev/null +++ b/HandheldCompanion/Devices/OneXPlayer/OneXPlayerX1Intel.cs @@ -0,0 +1,14 @@ +namespace HandheldCompanion.Devices; + +public class OneXPlayerX1Intel : OneXPlayerX1 +{ + public OneXPlayerX1Intel() + { + // https://www.intel.com/content/www/us/en/products/sku/236847/intel-core-ultra-7-processor-155h-24m-cache-up-to-4-80-ghz/specifications.html + // follow some of the values presented in OneXConsole at the moment + nTDP = new double[] { 15, 15, 65 }; + cTDP = new double[] { 15, 65 }; + GfxClock = new double[] { 100, 2250 }; + CpuClock = 4800; + } +} diff --git a/HandheldCompanion/HandheldCompanion.csproj b/HandheldCompanion/HandheldCompanion.csproj index b6e102c4b..6f4437aca 100644 --- a/HandheldCompanion/HandheldCompanion.csproj +++ b/HandheldCompanion/HandheldCompanion.csproj @@ -80,6 +80,7 @@ + @@ -139,6 +140,7 @@ + diff --git a/HandheldCompanion/Resources/device_onexplayer_x1.png b/HandheldCompanion/Resources/device_onexplayer_x1.png new file mode 100644 index 0000000000000000000000000000000000000000..e02c87368204838456f41912291148d17a1fb413 GIT binary patch literal 14446 zcmV-!IFZMRP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!T|GJ+$>(Sfho$~yiIy3LF{r~j; zc5130UvwH88tMuLgRjr$^S*30TWM-)s&KoiXPj3nB(K-otb3eRd04fIikLMwHyiJj zxv%qPkH=%xYPE@D6Yu=QKJrX;ShZY!-gC88J1grS&OKHxyK}wc?x}qpb)nR_R(rZu z+d3{uO?s1B+&kympx+u$z2ELuBh}k#q;vJDRGIoUPIukh?9OSkxuvDWN8J;TJo3ml zcvRB!7n^<}@qV7Pef#zgCX>m(oSU5$fs9_)pFEcujfs2>7?d1!`D;=M_g}4~Xb=bl z+?C2S>eO|uMD4xW$+=SQzglfoD;A3elL!=7tdZ&^U2<)6LuDG!>blDHb7km{p1X@$ z?W$7O%6j))3-$9xo9-P>-I(>PeqTv->RF{+v0xx*(OA^t@%XxX?z!i9y~vA7FGS(z zOh}-AZf?#HLpt1Sl8G`|$6Br;0c0I1;_h*5lo8RY$fTH~cC1*jRI*&YaIS2L!X-{z zMk-6CGSaDgsu`3jibXO@WAzqrR$~+U{-8*`ha~;)3 zZq~}wpSi4oNv~9>b4k{}%RZ1Rrl%}Xj zmFg3iDySz?p3R)OTY66~)&KROaDzTSmqkkzigc$geH7HuodX_*#l0(u%Vu-t^LWkg zgZ5x3$xwedRblhGcWduA(~OfG`r^i;e!5Fl=Kj+omvm^NP$e3&QZ#H{OwY=dD>oy- zM`|TrTyp(*DN@bmxZxqG;%J5~hGqn{%rjAgqkE=7k)M06bG@)cB2=6Vtzj6n1Yne$ zl++}@N?XcJ?kLJN0lWty`Bb5$(;4%i*8N`k#tXSLAT{|MX!&9e^=Q@_@KdJA0pzC+ zAN6{9*9!t(kn;0>DVMj)F4|?A2YaoG1p28?-h{8YVt&f`smJGX)g8U`#>Zfl{V=ni z>j2rWYaOXyM_=P!wQL>{%cHTpwCN=SSV@GdC918`S#qt3TF2{h;?5e(a4xH?-jO>a zTk9&TOB4W<3MJdUW2>$0>vrnbgJ|NPKG4|^+CTfVH*e({|*K}56keA3pf zT4lH1`W9;s1ufR>vk;P4f@`9bZvins#0}zO1@Y;03~?RuQE!=cw{NvuufM`No5~iZ z%@FN`Ksby<2lO6&h;XhP<~j^R1vw8j*K$CTU(W%`2B<@fQ#%)IG7OJ_e{ub%p>vOg$mkBM8VX(EH&#zH2iRvlb4~AKnQ< zx&X|GK0r$81IOCAIjQ#Xjz?O+Np&r|`_M<)La~9e-U;x&(|~3;;nml7+`Z7m-RaB}RtTIQv>ssch#NGP2Oo^TmLh-L8 ziCD;uS42OT1vd9fexK#&J8WJJhr^#eefsn)k6(0p$pG%`?7SGFU90l|opqQx@MuH; z!kx7NFA>1=!V0V;ymL!vrC;~)F=S#LcV3sYK%|l=>&%6NOLFxoh zZ+nY<=$1Fw8{hO=d-SmbcJRk==!?Xds=R}hMHC?Y1P#A30}y;J~;v3~A!@ZdpQ(ON1L5G&zCs?8HfLg7ap zv90d|mK{UaCBTIoWI_jp5lwQkkdRVYj#ZIoWy^9sg?e3%;VN-mqa+)HPkCR(rtT>=YcsGhkiJ}c6+zVslBLE+U z3?XU?fqaB=t(57Yo;FlZ3+T2|z6Au@JXMSFOjN0xFW9J--uvG7iVuG7REOkeryFj# zp>t+tW;d$qV(jA<@|sX66!ZCf`!{Xc^hA&=qzl z*BL+$>pc*sx!W#5UcORNj`%QjwhwY>P^CMP$^iliLfBwiav|K@Y(=dr* zQc17urBiLrtC#%*3~mI<&6ZG?>6*IgTtJ?yr+QBV5XVR9bG1^mf;{6YG7IC#ZwgUJ zFiQSKmLm0sd8eEENAVvXi?&Fzi)+@bUVrrHQCqie-M_W9wY5U889+Y*J@*lcK6dAw zckbi$0{Leqb?c|5`|i8Xd)sZd-H^>@-%90ILF7&Vbq#yj2dC zmpEP6xgeiZn{3b-119B>gff78AZ#tEut0UP3@`96kGOP1^!Wi85aoR3GX=XU+GJfg zT;858RA@~FE}}rH>Ad-3VSD(3$3NK#U9=JxRn6!WiPwH#*RO0r;eYr>#n-U zJo}%v)4s5sIx}i1x|uE_H1wf1Spgu@Cj4naG>kXYfwT$qv$XHVE(Ybfx{7eByNsu5 zodJ)nK;7mEr>1CEWAoI8?bNjbx{@P?7_(wAB)%Q`9LJG-BHn_N*i>z8Z5@W*QE1&E zdTTZ>8jV^@ON%?_-U%@I_K_n;{uzv(sMY?HQ-i`UNV|9Mz9pGVeuUF4k{)F>regzO zsS`=5?ky}V*ohM-xTo*~CxjOrPC|*~$mIrx^5Y;$uStM=?7RULZLV^{y((0x5f1x> zo%TWqiOxbcZ|8X{wkjO3`-`>EMs}?TF$banYYT<#=-j*o72jf?7m#2{O-D<}=oocW zZABzv-AMI`WZEJSZU!*&yf2Ls_66JwS|wKih>8`Y#sNa0b@BW(OzHk$Pyvj`;QFZ) zqThWO^)TmC)SrY|YBso5HUzyidzPmjHwS=(YeJ}*I;X-hJKElky{}kDM~99JLWeSR2!et!O2&ph+YAKi1$J$qb%A4_7&=cSDsH?F0UZ>3VHU!{?5 zRftz-sAC7P8g?8^&gb(EY~6#S)R+Syhn;lOhYX@j=he4!*W`1cl3ZO#Ap**|)Sdon zGeZHw7$5a343gvK1Lz{o(KsMq8uZ)IV#N_rs=G}2zIfC!nT)f|#X{c7#e$1D6>p-$ zae&YU0$I`;@H*QXz*$RN-+*)bZm?(@8XEfH`1tra`>pf>fKd9gC_gx=QYol%m5Wex#uDP z7>LuIBgVN8f@!c)%RU~;Th?TTX0y_$ zjtJ6U0joCSlnZ)%Hn4HEMRD9#$0C*hK$(yLW5{IE=53E#rBJpp!lH{+Kh$rmAL{{;BY^SWI^iIN(O{|hQSAaOOnycUD`cNZeSy$xetcZJray?fq9=Xcxv{lw`^}78mWJ){wpB$_uP~{HPViC#?bzLlCG0QHxX> z4TNpuuATPO!GqR4unKTDA-y>po0viy;e^pg&5~_L>IYG!o%BI7TpjeOo4$6y{_XUz zjbkfzw2iT}bH5eAh!AoG&?F&_Jyg~YL&vBqL>)oiSGc7)aXFriB~f|w0lex;G-4HK zr6l^w1l0j`KsO{Cu$ut=lNVidQMw&G9;96B*SKSwVBocoO>zZ!UC%E{*GT5+=86{t=t2s{Ta zQp!PqDlTp!%L$2E=8?<BF`GmcMxo>Ko^Jcm$zdDM~ms*1U&!7d??$~CDg@k?o z?)xmyIAud+hdUYLO2!e!L-ApnR_F2eI5{(^i9 z55P(dyJ=d+s|AN%qsC8@jzPRC_|=<>nPDRvg04ZKxKrR#~;t7T@`0^WJs8EkE?rYB*(f>eNZpjIYLt42CCwDD;Gs3aU9WV+b%%F>8@{Q5}@5Hs|4T z^rw({41%_1G`*eA2Z+@eji z|Aloo%~?zSPl@5NG7wxHk)d}019}M{YxY=DTmw%YvhD~d{iFC*0E%HX3)O=Sef{}s ztUVfZ9M1S$r^Q4XpcjYa=-GsQ?U5rkmcm;{wXg5*w`Oe6oQME7;}c+lGZ|^Q;(c5FZY7$`mBnr zELX6vsIk#;5Oj!^+K6up{YuVIhUp}0*+wU8-R)txSu#?P&ZzHwb1>-3^ zA|!H5tmpEs-}I(8nI=UJ95~?a1M)+7*p~@YrE@BpaOf&3e2WJaTP)`-|A9^B`OyQ` zbpVb-4SJe`=B;FGYI(aY4sEyY;qSqf;JC-w|;F2^qcV`bp%DS%ig;~_KD6SSMec~SV&l*!vvE@frB?ks9`*UlaEKVkcy z*l#7qkfm%6#uIZ^I zR!HI?rE``)HEp?xgcYV!R+>p$IaRQHvZ#?em5+~T@eOSjyZLH+Ce&^B{^!$>x;ASk zsT325wo=Oic*BMbcKY;bMLN)rSbJ*9cI?<;38IGK;bBJyBshj9{%fA)ROXxn4-O9g zAy*}!Lh-zo&>szDN*NGu}3 zn&`m3A%!6YfN-j$Q_~(QBj>5n=?dPXR&y|^IAqiz&ywew4Di!dfHvga%CVH=A-gVB z><@;QSC3%;wX0 z=K%}Ba~}Fps1|M2;A*?}wXd>M`w!T`eNO=?|Hu=%W5MyY@yyTu3wliPZZ+S60 zwMWB#TlU_IEq?tD`|3Ss?eJo$*qos(d=;$skgND~^G+UuCe+Ihde#%7ZVR7=7#)trsrw8Bbn-)4P( zbBBd+Mk-E%Av}ON2}VtGVIjQ4HsaDSEUNPe#MOjCEuK|uTZ?hEI3K`K3geZAyncw! zvmn%AHJ&Dw5Q9XpF$e~gtcLlg6 zE>tW&*l(|S z-_6$7*=8N>F}vtpH(Sc0cHsV}VMbJYqG-9p!o^Tu|put0Xf4&8mk9!Wq0A2&$?wvjX^(U|Pegc1@e zfzvh1-~UD8~8S6S1E zP6U*>mU=H{3+4+nThH=N+qq+_wYNrX+hrHR1VJQr#JakBEJ!=gBE25ki6OBim?Mns zDr57*FjO8}t;LTZT0x5r^4v9H(bwB&-2l36*H(M<-XGdo;%5){yNSgUNK3IbZnu5m zPi+3|h@HgwdjIGCmp%1^J@$p){FKdAqn3#;v(Yn?w(R;L>wWv>7TCVr0xw%{u?q%Z z&Z2oDX8w4@ylcBH{IYcxy=JHR;vrl7-Vu5VT`*0eO?*p_`8tC3%<-f>wy3>gwF#sK zz>ZcVNv^b@B($xq&4o#tb_@&p|D}LcRd;IA`_L`etZ{NM|AsZi?$MMLb9fFp@ z{>)-KJ=p5r!2z3{oQ0hfexTN=I}NdNvH^;@MF?tcBaU3Pa;2pf<}I6Ew1Wo@ySR8m zM+=ghx8b>@U3B%8_L_IT!Jc|#uf6>vAF!#@BlbtPe8^t+@ekUYf9F^2p1=P$yYH@t zXv1qATQ^vksG|Zy<})qk3#L)sE3AonO2@`5bMHw@egBAM_no!$ELudpaC{6C#(WkS zXt$GjzdbUXbE{+Wn3qbhk^q#msc>`j>?lA_xas2t12mFwK+5L;_{+L>wY0alZ|3HE zRjB}OY@vw~MpUX{TNuIN7?X?0T!S>T<&HZs2s$~a6gxa$f!oGu;g__ z{b`az=Q;}QA|Pb3omz;Jh4y>_1_{68&^j#*M zvaCF2?BzJ2!{C}Bo0^!mIr>1zNk3|8&@mK@q`w?CzfDdYl0G{&W?8(`(KBb=qCyjH zdy)Q>T4T0i^^l$a%1bSPbGHnj{Fs=}ee8C7?FVnMH-7ki_7AuHfjxM~_ifGj+bx^- z*hBw#pM_f2SQdch#~8rf4_fJ&Vav}GlNVtsoIZaGj#HHoYBcFK5Z2bkiI00i7FyO~ zN2d$+@MzI3O)iySC5eal-thiI5v>hG@Nojp8FSB<;34L~>&^l2=XLFB!FXQ+KsPl2 zcKf61s#MO8KS-z%0ANZxNn28((vJfi4b!-vZq;qBCN8uau>t|J;!es((Go$pRkK48 z?5`xJ9lKfu@M1A%@A;KmY~%J#mL`VHYEG8HeB!tN*cK8gOQAxQ7t>i=SWM$Tv^Z`a zL1npZIMk^vLsEg7|5YjjVk?rX8LQDrdEPKdHbejL1Bg3IgjT*-t9AAD+l~u&T4H3x zzWb$rwf*<}$R7OX|F9fh_a^Rt^UuCukKA>i-SCn3St$zx&(2$}sbo)n_a0j~GGh71 zAGbLD>VM;f79i~Nt?k0$>bGhtYt^xYWoI+uH^4=|;k~z9yV0WWxYUkK=j=y&2>0lB z>Bl5k9~1?S9k}oca^MfePX@$v#U5`v5_XP8pS>IoKT+ zY`1MYw^<>TwD)}A78^b@YEM3O*dF-7k6d5&?>}OX?cHmkIBJylF50!z!qJG0jgHv* zjT`VZr!5U&>j|B1M)H>tyHA`Zbf6t+{wR)$QfFtYec;0%w5zYYz?x@fZDf4PO`S&K zF>6J-Juu_>7oTU-*t)st87mU|YgS1NHG^s_WlDDaFTcyW`+DpkeVclA7(XCj8O{7L z7Cc253;G`#Hhc7>Ek1a{G7q1!3Nd_OS=>@nSu3HzL^G{9$2Kps5KQp&JxA?6fXWjlP2_HP}0Qh_nvperl0__`l zaH+s`68vKT>s)F>?z%iTC3$XoRt=lkUfBt7*v||Sj+R+muw(s$$2=cpaYBA;J zo+AwY{O#-PBe(sk&CV?l+|S$DkujvTWbgW=H`~>(xXixwkN;|AO=;p-#o|$mN27S3 zy*3B~Jhf-9oj82N-uK4qktDN|BU3K6l;&DYEdp}cc3*ml9oo0wEiY;&DqAFO#_p9e zIZG!OZ5YozOC(W1Gn7%m(rjWRsrxdjIE)mpeb;3cxf1()(P|6yM6IdCZ;MB!&=$^y z01O%?)@+eAE%wYr(e^x(h5optfTXo-rRHMRW>#EdCkB7ZvZJH6m_1@;{|4&`zuwBZ zgO>B+@Rl`-8V+?qY(`ao2{k?Ld~zOi>R|)0M$)w!6L@;D0krPRUDwP>17KHPgXB7m ziY>X-8SG9lU^zV91hzXB@LSH~Lwy500sYK;%EqQrc6w&f?tkDh^C1BF(HZ;GKmA+m zaluyNA$FmDckSK{&?m9E8PsCYHm+WUnw_?(nQ2?i`LidUC2Uw>D^aihXv_{Bc*c^% z>_yELceUCzH@wo;Y+Pe`r0np)BX<7FF0u1peuW(^VSbS8PVBDc$wS1^@Sy$RJNMY_ zAN~!SI6H0&j4^|EEp6oY1~3^}JM_pNJ9FTOb(RaZ4y}|#bL2`@w<-jW*&+ar5kgJQ zCd@k&x8`miZ7*P^Fawl_Oit=tbO9}h)6CP==B6iWt4BP><7_S#EYsC%Be%WZf|xnNj_v}n|{TrX=Jonto2+HPDrp@bZ`=k+kFcFZjb~^^)8iQ0l9PM zP6)Z$x$4Pe(y3}4m2^+imU9u&k1cN{?(_ikndyY> zdv?smlUXYuOYI?_rIKkIBYxCke-ZVX!5)oGPXXqfoNu?xxM9;;d&7;d!sjU95Up`) zw|9AuJ^0Y$_WgT)VEd8$x4!G`wgD&T#$R}~?OwgyIVBTlnBV>5Pgr+%yFE^5v^X|n zV`oNej`rjPcA|M?Iu>CB?I6)4jlO?^yWPTo*043%qUl#jm{y1K*uoTmDFh=DbDB%@ z;y$!gjIeI--Pb!cTY37l`Jv1FQxjH9QzvH0sptzw1^jz_LzTNgn9!s^#Tf z){i5l-4e3Nnt765)3-rl22EQgK+(rD)jXZf*bKymxT%@?nc9GCf!Md_GrmvUq=}uY>yvJ!_I%V*oNl(B~;tvSMO+ z=$Qo03u;%Z%-VG*!udSfvZ8&@C^2lHrYggMkXug$N|zV>xu)Vpo=Kq^&S9T`IA(%t{d~8 zO1iJlLBTUkl0z*iuw(RJc+f+tJwR)`jrD9-i6`P!4^@%n7Xs$N?Wg%Kt*w&&=G?Vp^nxx^wITeU|XddMEU?;(43 zWWuHvuR-TwZ?WfEa3ftt_5j%9~kd5Qiz3j3}trsnm*5p0vat_IG-$&6k?SIzh z1DOVx-tU%!DDu0ByIcfA3V-1z(Dk=3SBD;RqLH9+3pYbTGJ-V4^?gE{e9-y z61JBA`E`rWV;aJm^RA@^z%a=-P|*h*B?*&mMWlZsz>TD5TGdcinFhE@O97Vc+SuQT zU4Q|3E*qfT``TTo_Y|X6alk|{O(Tv?&RUjIVK_GefG4sL3CR$F)7U~uJ;LL5J+2MP@1sH--s-Xyz=z%}%v(sp#eW>Inw1Z5dXysZ%btjG$th6_2 zD_2LYbtq>3<5~0m@gWP3FveDG6rx-mt0fZr&7}apl}cCtG=O!~wf1Rgu3F$O1^+pK zYhlvXm0fNk!w2F0fTo22?TFOgDFQUgXs4tW7;0;pBlAg%(#b(6cofdp*8xR{l|!nu zH%nTe!obs7-$i-|MJ)jUqJchbN#o#1h3aE*xBV4{l8RGAst?LEsiD2dniPfB76wo_ z!3ucV@@f|VHx2O4oIrCCNfRSna!#ghX&pCa2d-9m060X1!1ybucR4t2BRk`gzUvBm zZC5O6G5RR_IA4R;CB2H0_bM6m6n3|%QnY?N+D$7uYzj%6;N2kMR2rM7$@B{^+=aRVh+LjF znvlM{jU`I}T(%Yn(MP#_Hb+%l$7A-|*SrcxaH~xx2~VhR2+3-vPR(fLB$+UcPp&w~ zX|lf!=cXORTPdNiw8B3M^BkcVN|845NOf6U0V8RaOdrz)VAKkIpHD70#*?G6`Q(rqsTJ=dw5%FC_Q}BiZ zRGzm!X<62WBkKv;gW1|fe$if`j_4~|H?kAJ=Ma4!K8eDZS_?#Jm8yoBN)SWt zd@(0RNLn_Xwn8drO-Nr16}l=Ov3{ie8KlySvd{cTveucK zqhXtdsS;AFNM#fomQH2pyVv&Y*^9(y?Se}$wn?P;=*ZYP)vPb}w_b9g-T02TGMMhv!k4qQbd0x~m`3KAIVmdRFzkYRlt6J4q`K(TR}HQ-z-Rh7-*Ks;+L&0j$)( zq=8W*>AnPx_o{@le@L`5?EoGe91OxS?^GoXfR&b3pqCp`tA@p4+#93(AK+2{Mko}T zO{S8Udyu|$?X3_1)gz#isNTs%o19v-iRrXW%;-30!{hU|n5*qgh6Luv)0KC72m*R! zhww~ca9cqbweHMmi=g&Wgf*k1<2H*lPZ1l>kW(;=RDTwm+S%P@8`f>Gg9i`W{SW-m zPMQ1fEa63nJHMHEG)l0He9K$g^6T!NkW;l_;{uRD0~;D2h)v$eH#YbKL@6)(8u zx*WtooZXI%D1%pcA&*eGvn7Ue(rgP-_q3H1@v(J}PS2wzAuQ@v`-bP?{3r2-Ct;Q? zIBmw`nFi@N$Mnhlao_64fwjJ#s76{*W0Geo7~J)W^uu~d_ha#5KT_a z*yO}C<0#lNG{d^B8?CE%xzi@|Xr%(<^Wz=MK`9}D0=a}{(Nv-~T%>6WTDo}IeGo_A zQEW)396Sh~E!*Z5al7gIEw*7Bng=JTirVj4S>Pvt^)@Sd`83+RheupoTcDmedDY5Zo1P^~092?$zdiI%yR(}t;ty%I!y@#pLciyE z?>Z!R>+i6wgWa~gJ#HO%e)&=Xo3~)|I85?hwfJ9x z7!?L5CYa9T?Wy4j_l;0QwvKpZ0STig4y-coPrwu_B2h>qYff+JZ7oFozGI z6?aRb=TN&NBWE4MZrQZXwg95G#3nHZUVzSHZnD_vGk~cH5UomeEbFn2JGa}GT{|t0 zpOHW-TzUC!+j`k%8$CN|lhcbdUDIlQe2fUp){K^spP}Ci@!@>Q!PKWL;bN1e@Hylu ztAF}omK;Fl@EZiKQ?f8^1Rg)ic%L8#@Vc;{pFMfs_5mRmmhzyl9BAkP7eQJ+MLm+^u=@^<%hY`iRhd3J*E<=VUNzI)mgSduzA zy4+7Vh%I{XCi`0h))5WiFrjX#qmoG4JXv2ptXtM%`Yo+A00&Tok`Q^ftBC7H-71h5 z`;4OkVYItM#6ZbGOuw}uIg9Eaj1dWk9guREr1C1Lz&uhVm93~(6x7z9*|}LaL6gDD z?rLkZ86a&DhX*V;rWycn~_5HV4Pe-f0?YcD&=>xlU-G~B<2$Hh5)P0A2fnO%ko^yi25Z0O{g>+tP;c$^Xe=AqgAgx zCGQ(9jmKl3TMDoeAfE=G!(j2|`Yo4)k4&e8PZ`tsi{Jd_H_v_9a1LOltFF50UR1&* z06D0aB+WW1Q_+5G!>h3kBlY6XOYwO8;!HMst-eZFjw&8OojrbP(oUS2v4!y&3lRTC zaKJQi-`5ebnN*Qnup}J5K-`>OOxr5r$ivv-8GzN?t~SQYpVc5VA)z?c{Xvv8VCpNq z6`k!?z%i5E*B6YJ6CciCO9{A~)W}xL3!Rynx3TeYXI}?btgtQ|K>?$Md@*GN2TW_u zGk`pN^0b|N<{0*T+IC-ZzJOTAIIArp0|lS=7IJRfm)wvU-nuX{S+H_ z==&o)wKQ$y(Z|&aAt+_joNK-dO^xEwSoG@w&32;dv8MqzfPI3NF929+Zf@>KXJ_X# zfc$E(A;POgHFA74Mi}*XPoF;h#d>jD?XC?U|_Y~8x` zmV58LcdAzMg{iHr?P56ST5WLO3^C+bDNv82!rB!wA#se|@~H2HeAT{n;FKL1nX+dm zXYHx8G-MZ{^sq5!>LzysEf422;%q$Gy- ztyp{p(DmiNm_ZU+iw>II=c3aybMAMtHm+T1UBuGaY!RuQcbaNw-Fl?JXA`GK?C29u z+ulbWw`4kH?VESnLZr?9{m%RChFI8+!LYN~a`($Qw4*i@P)VYb*jmNO?X>Ooelr$n z6b)w)6|D`xW%?qC#}jei4J%A~hB5lE!FbW1Z`j};PxJHhhtQ(m1<>Vy+YQKNuzDQ7 z=wo=zZXedtBt8t4v^&3AA7 z(J8#^an!cY0;q&IKqWCD+RYJ*gj}5`u+x8X-fC+tl5MY(h)7cDy_`Pk4cK>ZM5Cx^Jm<}K-F4T`{3*lB zF1xHtlKk+)50BMvy&yeLf|n+Yba{AqcyZ63Jqq-GWws`Xi=dH3M#~jQhOX? zDt=T$C7z|>(pfy(^VEkf(r(zUboJwsG@D>s`LgTHE4II(wVT_UWB# zZCTi7Umu?(9BHxwY@jJVt=`DKWl>kM)QUF+yq|NacY!Mv-$+g~0Hy<4(uR{YH9hNo z*lg|U6?oD8*zFt++9JT!v``ZcS(z|tfpAMdw{&Gki*3bz=V=;` zT5~LFlZ^8j-Z>?8zHY50vF&X*WHCUUL#4}CaKz>PvzV`8Xi%5n&mKE=>?ca_(gZ%4 zk&%(w&WoRtek#EK-P8bBVD>^3?Q#gf%^JMEn2R!~9EPf(iGPm6iEPa&!693&35vBt zZnONElPBF*_2=!}>UL?Q2)AOnG>lTUd!`fi^kNE$D!MQIwJXy7Iv$V(iE$M!iPka& zLHbbpwx|{(Hj-4fLKDsJYTj3NUg6qoGHugS({3VTXkgIVu+e815|+eqao;B^6yx2i zTL70@OBK|4kkAjQJ&L+6Fs2M;qOn$MjkTa5@|MnLZDu}UTduy`!ad9EfqhTeAf{m% z9h}hgDb>2gf9Nm;vyIYcFWlGK+WJ#f^nW)=i@hWX!nwL6EZU(Fg?G9koK}hCNf(fu zoMJ#Edu_bc;t)pmsfaC|J9^S)rzRjw)OKv&=DypNdY&R~ZNdwlsd((47IS!+A&Z8H zIcZ93wu*tJYSpF|>J>8SzVc#0>pX&+LDp@sw$^G-b?vTZ8odB49>+g`QMBB5_|%v^ z{^UVKt7zNSt+w8d4y&SalYn(OUj7F+blb*dVQXPLWf<%{-s=RFENWQ4N22xZiK!_o zVs^C0Odo3x46U(;zx8bxui4_z#jmdm)d^`6*=Gh&(<|-^kR}*XeEE{3mr{Z+!^wK3 zq^Lw!MRdv29K;?+lEyiXp;PtKLQ+kd;#&li2pp~9&Cbu;$y29n-@Yg9D6y)x&m28= z+%j`Bc1c&45gnYSg>l-SfLT*o z`c%lJm7tcG`-BE=vOs&AO)$1;K=d+ZM)Huo3_kqJBv2Phr=PaIHLZkoaWOT zA(X1nE)99n?iYVtC+l@{p-Z>^OPx6_=yFHD1tyu(Gxx=Q?IlN1G0nMt(I15~>W9Xa z*FFBkeCJ-l1k^|4_Ph1>_iwrL&N~m)p1!zLZ{o$LZQHiJg?Q}qxbYq&q(&7y!si;O zNwphPePkMt5@gbtafWNe(?0^NcBZ?svUMhLsc}-LB8l=$HBY%_)FPNaM#Vu0N~ykmSzP8I*!+yMDJ`0aQ@0 zL=;`?#0{0CvQ-U_pcoU<6b^?+VZh73{q1kRBsRFw!^nm zPv^B`{e=IBtnmTR^Ww4O+z(3B5{n+TCox8HvI|5fDjvy<8X0rn4wBu@w_cmMzZ07*qoM6N<$g7|`L Axc~qF literal 0 HcmV?d00001 diff --git a/HandheldCompanion/Views/Pages/AboutPage.xaml b/HandheldCompanion/Views/Pages/AboutPage.xaml index 372f01bc4..abcca9358 100644 --- a/HandheldCompanion/Views/Pages/AboutPage.xaml +++ b/HandheldCompanion/Views/Pages/AboutPage.xaml @@ -193,7 +193,7 @@ Margin="0,0,0,5" Foreground="{DynamicResource SystemControlForegroundBaseMediumBrush}" Style="{StaticResource BodyTextBlockStyle}" - Text="Nefarius, CasperH2O, B-Core, Frank东, Toomy, Havner, CoryManson, MSeys, ShadowFlare, trippyone, MiguelLedesmaC, Cheng77777, thororen1234, fighterguard, micdah, Geckon01, Bagboii, MeikoMenmaHonma, cerahmed, indiesaudi, Radther, Staubgeborener, twjmy, m33ts4k0z, howanghk, Creaous, xerootg, quangmach, MrCivsteR, 0SkillAllLuck, DevL0rd, romracer" /> + Text="Nefarius, CasperH2O, B-Core, Frank东, Toomy, Havner, CoryManson, MSeys, ShadowFlare, trippyone, MiguelLedesmaC, Cheng77777, thororen1234, fighterguard, micdah, Geckon01, Bagboii, MeikoMenmaHonma, cerahmed, indiesaudi, Radther, Staubgeborener, twjmy, m33ts4k0z, howanghk, Creaous, xerootg, quangmach, MrCivsteR, 0SkillAllLuck, DevL0rd, romracer, JT" /> Date: Thu, 23 May 2024 01:54:57 +0900 Subject: [PATCH 2/3] update X1 TDP values --- HandheldCompanion/Devices/OneXPlayer/OneXPlayerX1Intel.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/HandheldCompanion/Devices/OneXPlayer/OneXPlayerX1Intel.cs b/HandheldCompanion/Devices/OneXPlayer/OneXPlayerX1Intel.cs index 21cb4dc6c..5919b66db 100644 --- a/HandheldCompanion/Devices/OneXPlayer/OneXPlayerX1Intel.cs +++ b/HandheldCompanion/Devices/OneXPlayer/OneXPlayerX1Intel.cs @@ -5,9 +5,9 @@ public class OneXPlayerX1Intel : OneXPlayerX1 public OneXPlayerX1Intel() { // https://www.intel.com/content/www/us/en/products/sku/236847/intel-core-ultra-7-processor-155h-24m-cache-up-to-4-80-ghz/specifications.html - // follow some of the values presented in OneXConsole at the moment - nTDP = new double[] { 15, 15, 65 }; - cTDP = new double[] { 15, 65 }; + // follow the values presented in OneXConsole + nTDP = new double[] { 15, 15, 35 }; + cTDP = new double[] { 6, 35 }; GfxClock = new double[] { 100, 2250 }; CpuClock = 4800; } From 3b55800994b5cb321a1993de04cf085d6b64935f Mon Sep 17 00:00:00 2001 From: Joshua Tam <297250+joshuatam@users.noreply.github.com> Date: Fri, 24 May 2024 18:01:02 +0800 Subject: [PATCH 3/3] Add X1 software fan control --- HandheldCompanion/Devices/OneXPlayer/OneXPlayerX1.cs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/HandheldCompanion/Devices/OneXPlayer/OneXPlayerX1.cs b/HandheldCompanion/Devices/OneXPlayer/OneXPlayerX1.cs index 49507a401..0e9fc71be 100644 --- a/HandheldCompanion/Devices/OneXPlayer/OneXPlayerX1.cs +++ b/HandheldCompanion/Devices/OneXPlayer/OneXPlayerX1.cs @@ -12,11 +12,18 @@ public OneXPlayerX1() // device specific settings ProductIllustration = "device_onexplayer_x1"; ProductModel = "ONEXPLAYERX1"; + + // device specific capacities + Capabilities = DeviceCapabilities.FanControl; ECDetails = new ECDetails { + AddressFanControl = 0x44A, + AddressFanDuty = 0x44B, AddressStatusCommandPort = 0x4E, AddressDataPort = 0x4F, + FanValueMin = 0, + FanValueMax = 184 }; OEMChords.Add(new DeviceChord("Turbo",