From fc110dfebb00cd051616d59dadbb8e17b2917d33 Mon Sep 17 00:00:00 2001 From: Xpndable Date: Tue, 21 Mar 2023 21:05:44 +1000 Subject: [PATCH] beta changes for mini plus --- README.md | 53 +------- github/main.png | Bin 31563 -> 41431 bytes makefile | 18 +-- skeleton/.system/paks/MiniUI.pak/launch.sh | 4 +- skeleton/.system/res/charging.png | Bin 5319 -> 5139 bytes skeleton/.system/res/logo.png | Bin 1777 -> 6424 bytes skeleton/README.txt | 38 +++--- skeleton/{miyoo => miyoo354}/app/MainUI | 10 +- skeleton/{miyoo => miyoo354}/app/keymon.sh | 0 src/batmon/batmon.c | 20 +-- src/common/common.c | 20 ++- src/keymon/keymon.c | 115 +++++++----------- third-party/latency_reduction/audioserver.mod | Bin 13964 -> 13928 bytes 13 files changed, 124 insertions(+), 154 deletions(-) rename skeleton/{miyoo => miyoo354}/app/MainUI (89%) rename skeleton/{miyoo => miyoo354}/app/keymon.sh (100%) mode change 100644 => 100755 third-party/latency_reduction/audioserver.mod diff --git a/README.md b/README.md index 5a621cd..a7f16bf 100644 --- a/README.md +++ b/README.md @@ -1,54 +1,13 @@ -# MiniUI +# DotUI -_MiniUI is a custom launcher and integrated in-game menu for the [Miyoo Mini](https://lemiyoo.cn/product/143.html) handheld emulator_ +_DotUI is a port of the popular [MiniUI](https://github.com/shauninman/MiniUI) custom launcher and integrated in-game menu, compatible with the [Miyoo Mini Plus](https://www.aliexpress.com/item/1005005215387485.html) handheld emulator_ -MiniUI is simple, some might say to a fault. That's okay. I think it's one of those things where, if you like it, even just a little bit, you'll love it. (For the uninitiated, MiniUI is a direct descendent of [MinUI](https://github.com/shauninman/MinUI) which itself is a distillation of the stock launcher and menu of the [Trimui Model S](http://www.trimui.com).) +# Important Notice -MiniUI is defined by no. No boxart. No video previews. No background menu music. No custom themes. No runners-up. MiniUI wants to disappear and speed you on your way. MiniUI is unapologetically opinionated software. Sorry not sorry. +All support for this port on the Mini Plus will be provided on this project by Xpndable. Please raise issues here, or discuss them on the [Retro Gaming Handhelds discord server](https://discord.gg/retro-game-handhelds-529983248114122762). -Check the [Releases](https://github.com/shauninman/MiniUI/releases) for the latest and if you want more info about features and setup before downloading, the readme included in every release is also available [here](https://github.com/shauninman/MiniUI/tree/main/skeleton) (without formatting). +# Project Information -MiniUI maybe be simple but it's also extensible. See the [Extras readme](https://github.com/shauninman/MiniUI/tree/main/extras) for info on adding additional paks or creating your own. - -## Key features - -- Simple launcher, simple SD card -- No launcher settings or configuration -- Automatically hides extension and region/version cruft in display names -- Consistent in-emulator menu with quick access to save states, disc changing, and emulator options -- Automatically sleeps after 30 seconds or press POWER to sleep (and later, wake) -- Automatically powers off while asleep after two minutes or hold POWER for one second -- Automatically resumes right where you left off if powered off while in-game -- Resume from manually created, last used save state by pressing X in the launcher instead of A -- Streamlined emulator frontend (picoarch + libretro cores) - -## Stock systems - -- Game Boy -- Game Boy Color -- Game Boy Advance -- Nintendo Entertainment System -- Super Nintendo Entertainment System -- Sega Genesis -- Sony PlayStation - -## Extras - -- Sega Game Gear -- Sega Master System -- Pokémon mini -- TurboGrafx-16 - -## Extra Extras - -The community has created a bunch of additional paks, some tools and utilities, others paks based on cores created for Onion. I do not support these paks, nor have I done any sort of quality checks on them. They may lack the polish, features, and performance of my official stock and extras paks. - -- [tiduscrying](https://github.com/tiduscrying/MiniUI-Extra-Extras) -- [westoncampbell](https://github.com/westoncampbell/MiyooMini/releases/tag/MiniUI-OnionPAKs) -- [eggs](https://www.dropbox.com/sh/hqcsr1h1d7f8nr3/AABtSOygIX_e4mio3rkLetWTa?preview=MiniUI_Tools.zip) - -## What happened to Union? - -The Miyoo Mini happened. The idea behind [Union](https://github.com/shauninman/Union) was the result of having a few of these handhelds but never being fully happy with any one of them in every context. One had a beautiful screen but was too heavy to carry casually. One was perfectly pocketable and had amazingly clicky buttons but the tiny screen wasn't great for long play sessions. So Union allowed easily moving games and save data between devices depending on context. Literally just swapping the SD card from one device to the other. But the Miyoo Mini is pocketable enough, its screen gloriously 640 by 480 enough, that I stopped using the other devices supported by Union. In a past life I learned not to develop features I won't use. Maybe I'll revisit the Union idea in the future or maybe the Mini will remain enough for a long while. +Currently, this project is in open beta and feedback is welcomed. Any features related to WiFi capabilities of the Mini Plus will be considered once the port has had a full release. \ No newline at end of file diff --git a/github/main.png b/github/main.png index e5be12d7e851685dbec3e00d0979bacf406c80d2..19e6a5366f9c0d9cb8c9168d58c5a5949f5de60f 100755 GIT binary patch literal 41431 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%0DqvdTkDO{y2Q(2R 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 literal 31563 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%0ALW+j$d5upjBYOUIqth}jew?n?vA@{g`Q4O`KZ zWX~aQ=IG_6=gJB^lAf`{tJ;4xm2TRNn!R_M83f zys>u`#kbOodsS-z%926k^tXzlbW6q&){A`3-m-tVN^zcQQEeQb9tE1u`dG(2b1@`J zlPf?YzBn5jaqH@0!yP)q$xqL|2F2?E(i;sp5|@{9jkRH>s71B&H77Xc=xp3S^LxqL zmhDswTJndq5IRliJ-oA&^|cdni0bB;)YZFD|c@t8%-kB3#vUaz=2?5w{7ct>n+ zhS{KR)1;b25=TaErq@Z8hQOl9&WlpssN}7{BjqQ@GJ{~PGBG*4p_Wq!*&%6`q#~?c z0C=G4zsIDD*4dD9S6;egfltT=8>&_lX&|udh&*Q_knx>DM_r7ZRp70Vu4ov=fA%3y zf{63rD&lLhj^=mkP4O-PeAg)C>-iGQlps(zEm>0>_I69Ihr_9u-LS-5wwv(ngkHVN z7^Q;YMMJautZ$~z0X0cwbnnA?p00Q(S6=2CW}Bp8=ZZ*Tv%LBQ8M%)OC#A9M*xg6^ zxi&U2GkovQsSWg;p5$W>|KKzFirA?rtzKkQ@?qoaW!OPbm!+TSwgvM9hex4XmoHoq ze*=MV4(OFgZUzUD4IR`fwB7J#Nb!OCRO%H=_g2mzUU7HDzqkA$hADv0fAiKd4zKDFh#|wsINgqrp+kV-Iim?+mYW7pA6b|O)&x-M!S0Wwc3QHq+9p1VdjOYnl z7B-Om_D?gen&HyxZ!Hw~Y#)SqdJOYyX0T#*6;d%kZo&>)Bs?uT{{;;{65Roe^e>M^ zN&lbbi}%ozUt1VzqGh^J{`w!<7a-Y#TlB+7)o4-e?MMe#K;e^#26o1KmWFzHjteN| zp-N!CE4mC56L^>8!5}T3SYKm6S91CoX)OdzzKV+Dd zm3P7H?@e&x5|irFveQDYDw+GMBAfph+{Lw5ItK~#+XYehxyWIj@G>2~AHfMHu!7G< zvoJ)<6k(7a_*^z@p+O=72{Cj#ob0_k5M;0xZB6^l_cn8c2Qa6nZ9c`t2ti+}GUO|b zd~L7=xWE+{f@u}oQbe$3;VrD`bH?I7eGe|-tvHY;`2`HY8d<7%ErattHG-}gPWx*h z?k)RIy1-RWWaOEfCi|_6jW4>EY6LI5ZtWVD08WFQ)x2+JdX3DZ8AG-0kGxt=d}7V~ z*b_J|^du_s*K=MyEO#az5tY=-x#jBvbE02>LI*(i1G&{AI^sZaOy|83+ffiC0kCas zdOt$TRT@+QT8M1)t&?Pj{)2JKegi=&(nOqHc?Hj3eZFT2;IixhXehQ? z8qY;phJ3tM<;jExbSH(5BBV5km;mIZwN4*$VS}83&(0Q(-$y%bFH|qBtD8^o&~wBF z;Ka)Qi}7?}cU`LQ$<>q2mo|5H4HHgTdd-rxE*svhyr|qWyht6j4O7)M$dQheHswj{ z8ugz4;dw;dutQ1yz56L=$Z9nGizS56onwI7muJQuA92UqC7KQ5v2-FVB`%$w(EXV2 zIb|tp%bj@jw#K^um34P{c-++FC7}8+7-S;;3&@2xTQgOBq><>LpBXqH7siRvSMuqt zyQ|;%lP19vdusL@yL;w8*eV_TuD}*68S3&6bWt`wBiGwravH_yIPH8{rcI=~ljUJ> z-kpQ0`aGt?wkI^tkF$vs8FQb8IXYi+wVm3O15Kq)ycAcS_2EVy5b>Ba&sf+1VTW2M zr3M<*tb9!ok@hhrV8Z9}uRS(t^xyvU<`sw@q1P)Gi23+^3xzuM`n#^y z){qivlrf~?5DK%JFT8Exh_M;4=Gc}8_BMH0<`ZlUudDPo;8BY6`kjx@(L5?~dzdX-2MftovbD65Z zcf9N9OwN4WP{Of!R#R`s-xpr`TlF~F=0KD$@$n~q#6r!q(?#ylBe-1m-bxGQr)kzc zaSDa$<|1FB+9aMW)?09^`N2E1HdwPY+)aOH0Q6QMpymmkS(Kqc4@m02`1IkmSO5Tl zFImN;{y!7yhc5S}Z&cEdvWFl3KC`hv)gHwQ(0`V%{%Yi4g;se%C=-_SmVE9bM-}4Lg{I#Pk?VrS*3!&(XV@x7cN(oo2|VnSv{C z30Qen-W{ChHpVUSmTUJ1(?B(8O=^;);dZ8o+|$*CSv;Z3Zq+Jf;Dwc+wK}-#%N#TG?4~wf7|7Z~PYm&Y_M4>a zU9q;Lz3%ZwBFBG;zhc?)ua6K6zQSZg3Macpum%D(y0b2f^z#c#y)j^pb z*DIhDAB=nbfEfChuU}V2+*X?U%fpG(rVzcefEsr8ruRNV#jZsRE>F7X5*X&(B$`fl z&(t?wI|1Tr_$w!k##MiEpJo6m->XK?j!#z9@6EtdMpB=U8Z*1rGW3BJB!e-o(2GWg zKgA2W|A8~?l&AQ}=j~k7rv~?MKSHqf^ILQ5G(u({$OC)H>#D@_Ot}4;OKIEal{H+k z@Z1AEyUX(3I1aeEcv;%_P(NsJS7>kPM$!FTXWtSN7~b4>V3u?{-R_NDjd7IiM3y(R_|0BC`Dn3|Qg^tT-?o;# z*fKXR>kFj?z)z_+&Mdi=Qa?*Vm~eV2h8LR$M6{8`PkvbIzQKnsdAGgp;HXWZ{VTh( zUVn)$KY#u}dfHbeUzlZaE$qsYb?)p6RNsA8s0|h5bv4vmSKI}r*5w_3fIL;`9na{< z=oAIq1UT(le2rcWV(VJFUcy982r`@ZjhDRu{VYNWb>HAegJkXt)Wyk+&~|>Y!>mi6 z%U?-gF~X6yl12gcB&OQcN1Ab}wx+Mr*{GM#aooXoVV1ELHfxl`1&wwwK)#ql+y?BQ z)qmdhioYxokuiV+pOL!`@Y_O%F%k15J&3)%@ZWik*%Ns0#N?HoXOF$PuxrZt9cnhG z5zJ>hA9HvYw%^a10?Z-MO9(4hXB}<+Wit#2)56v9N+oZ+VC|sb>#b}8bSAs|e&bW! z@kZ^s(Y@xLGe1zRDVs1bec^aN^~Wq?TM($}I;#~YTOD!H8m(#x=y?YHpcmg8T^CNA zW|PXCZ~VXvKR49N4XW`O?`ascwnjM5{(V-|*Mn#sNav=atW$O%6%c z#L$zhcg4j+U0&~^qdUaH;{9r?0zIWfRIGlwToW!d+wm1e17YkFQW~sTfXMa<9UyAJ zPGXZ)kl!mN_Eug{q!zRzw#)RlC5yeYBJB*AqppAW^*M8^wv78qK=QqarU#0dthi2? zLS(9SVO8kLp!a;X;VCE|t`|MWdZfe;6R*Si2Izy*H0V25_DcAxTs)-+9n`zDu!eB4 zgTCgS%FU;>A zHi9Aw(CWbE7C4C9z&=Z1nbJ6>KUxI4_JkomOz5E|(BYlqTSuBHoMvB@A+wL7j^0H^ zMptI5LO`ud!Q&qNpE+;nU&ti|IQy5gOFpUx_JN4g)78+V165zS0G8-wNKp+1phy2j zId!@U5IvAdM^Jk52H$_z3QLr+LZ}|J|I(xp#dJ2g&i=C5Q|JXnSFaD5ig4iD#G~qlr-GthTFtjr5 zR~Qw;X9sl`pt6)={F@7JJq{-;(klraq>Ktj&1|j-C-=4}GeWrEcOxc0@e&SbW~rPx z0SWfGmlsumea;_4@_OU?Howhx1lU#bDG`mx=SLUgZOx@XD+d5cQRef57E+6&t$Ehw zw~oQSf?o1KC+QK^W0>#qEbmwCT}0j;grxI>uj)W87SHLvnT#6pC*C-0~Um--)QDX^?v;0mL5C1mojRJIcpx zq;D&(S4f>wE50~O5mJ}#ST#uxwroLqNbpF1^!(U%GW&bG&Cf~|h!f(kOR4_=K?XMY z<-*i+3N_!LEBDcUqZMaS;hC*H?)jwRNH&c;eexEm-?w7OoZ8#hKFf%?$1vk|m5gY3GCok7_a zlu?*=-L0`n5XSZLZ#Yv1;cNuY_<#@JfSr=k|3J#R`&j~w<;M$z z+YvHVhAZSkT64-BxR$U?#t~4C7C=oFw2gdSiMa}JTUP~o(!5nXPvQBx`O+~q#-~H+ zPk*qaR)%6%CbdoY7UfjCbvN)?3kFoS-$}B5(69<551&b4$A~yVTkggz(0;H7E3{f~ zK3OCRT>Old*z!MVEbg{|dbSSSM4KLya$kYXd()yi{GnownI3ub2{aa7vS-T8K<~X$ zO9#bt9UBKHXpP$kAGZ(om?gu4eVJ6GYaSka`v%mywv&(gcMO^u*54ik2gy}Hk%6%0 ztNstZj0PZ+7&Lqt`_o9KDBZfSiEck-wDy!1M=hQiL)vs4iuY`%`8ey1xAi{|G-h5r zS)UtpWLfd^z>J|cWk9$SBmS;D6uo?XHDxp_;M`o?_X%M3Zvg&}jgjJeh@Ayg#+but zF)!$AWW$t@YwqC#0?-Q6ah@@)`_Y=1Xaj}5vg;guKOFNw>~7SH$;Po&(zhv>M9P4a@+JG zRK&+;$5NdIU?=u6maW9LoAzaVjLP`mN&Cb3!Hm6#9}s=oxs zN1>+wRH3gll11SrZM7%XY9)r${D*Y~^ymF)lo{vcEAWt!iB{6w8uJ=NC)WPNx1uvx zf0!I75`XV{S`DF*cpFOd_MbxZqS7o_Bfrxl)(?8y*X%*MDVw%A;u?H)-+(_yz|Vf( z28bt)`d{^{rpke7gNzQ#8gI0*{=Fl9aGz&HTQ|W}2(xIg=8}fsXC=ge9SeJXozZYMO+U1udJ*dcRHJ#&hm#2 zmY@H5Z0;vd|F?wmUT-4E%roWdRY4rA)$3Y$aJ3NZk4<3}Fh#lsvy1s^Jy5KuE1R`@ z;H39iXZP_cH75nZy`wR0fPrt;vN7WtI%a|P1O5Es;*s{77h;|k+`ERdU+^9C6Si|> zHb(9fzy)jI^KDmj8y#HI`fkCa_B2i1o*opOjq~9{*Vq;Dffn2eJCFl3L`0nuXa%7r zRecs2uOlOWS@KdSKnzY_Q~w{ueRWWj(fcn5f+8Uzh)5`@v~*+8NOy}gOG)Q~(n^T} z(kTr~Be5)@fHV>-xgecOEw#iw_`SdX?##V2_c!wSV-BHNz<*OU&Wh zt-+Fh#FclR+9bl3P6qQCs8>B|Vn~7Uh-Q3osy3ND1T+zFaXH^u2_AoXL-J-0aHaw)&4l{wwQ$=a8G1sD_kP{PnqD8ECwzqr=37 zLaMs`9*u>>R8hG|4}dijt^#{&oC>}P;LjreEOP^tvCS2=&b0}b-FOz(>uk0yBAvEL z4V+ouMaLt4zR~HYS9NUf26+$x4JCftjoj8eePM|#2>LWqftZ(#)h0mcmeTTdRA^wSDNXN z{`WjXUN@;@-1ExS?xdi@<9TKa3=c>ujw1l#Ag_yY8^Ruc09uA35?cnlK9%-(vTkcb ziNJow`N~)a4*m?ktVZ({BLKYFAd&La6xcL=z$VZG_#Y647_vDq+_T97{=<`7YD02C zb=@qulo+(m_~2)wUXR+&J;2C+%goj}f-*1HJic%^mQ}gbFB+6ffg^{`5`zD|a#jW! zG9jQCZ4snSof4fj!`^eTL6FS{>$W=U!go=8SMWZJ<9}()OM1)~6%zp$5@@eQHlTlh z6<=2OOf4$@p!G`&*l#fltyQH=!#_bqATacSRmR&tXF0nCMk{F_xxsg%*50)wtjQ~! z+Tqs5ax|76y^<2XD*+~fT8iGe`S7QfZ{s;9SrnkTKBhrlw{oauT{%TTES-jook#8U!rEu!#dwC`&_%UMj9w( zEh&Y&X$RvKv*0EulGgv>bb9VuNQh8RZLa9!R(M19Wq{Lrk(2rN0AD4mC0xmxwVSk0 zfm9eG>hiL88vj>Cu%*-cN#2RAfil9{N6#Hy)bDo=^+#uaeCcpc{C(p+rTV7EjP>I6 z%dHFO9Bxrl$!Sr!^dKx_rD!Evssrb0<+j2>UYx5n+1B}q|1H&aN{sjHs+#xz_18t* z@yyR33_n!VEU3OJPr}8>;(T}ax!GV$ianKDMrEMgJ$+5xB|f~!4uWsefB4CmUyv`J z&a&<*LFi`&K3A6h9fuI!q7T|^ad zBq3&~qgUd;=s3jaw~o@6G;HOIPEalWL}?Y(>uHm@&t zK!eFx^%mIS`_}StR0`Y?Eq@{U!UpKlBoSi)6IUNOxuBLFevlK{9T`=5UN7_V(kDr1D9hbjV-VQ-?e6D`}!EYmrC*4)xXMhFYjoezU&lLZ1Gn{eofF<(?>cR zdmWHFSpSx*X|bhROJtq%HAcLJqmKgE_9n~SDo|S0hh>GRd@DMWSgo}$kjz%llB2t* zEJ_3+#mLClnCxD~_>dp{_??Uv9xw~+p-`Q(v+z^BHz~^whNGs|ZWiL{nG$Hjj)D!b zgK%HvminZ_|Jt=61l4I8D{877m|SNP&Nis>=49Qqp*Q+My=$FqMyGm8d4)xz$s+*g z2Cd-rL4;&12ZLD=#78l{=lo~9S3IxE$YD#)W0AmZiB}^(I?JM6aULn&vCg;7f|q9R zV6X8V@d@6l>}d&4fXQ~{KBoHEJ>4tP(!@u`uf-n$r+@kQ?t5lMAZ8S~6QyQ4GWxKs zox=Nj0>Axo`y3G{Osb<}PEAmE;d84bvvhpSpS_oFAX7YcHTf}+9a>v)+)d=yKi<6~ zOrhc!uQIDhU}y$I`+4a9JQx)KXS2>$vV@Kp?0kBX^f`|CX0qRX&cK=|e<_r@sg;48 z10#WlzU=DB?Wis}(Zccs`K*AIEFdQ3ZYY4EGPM6_5t`I-+V9at@(x^|_*<&t;ulDd zO>56j4M{}}jtRYAqCCZh$BsXUG{9g7W$AsJ*17phZlM2G!lsZ8v6e`SgIkqvSxP4L{*FnsF=5Re!AiY2;JmUU9UoE_-@$!z=Ej>SgY}o3X*3X~Cu& zpWgPbd1fX1PF)8TT{^-VJ{M=qhIo)5&% z_H46^&Hx_!J@$rU_{SCm>r%Qd#t^ny?vp}HKhv!(EwRTA(;g?rQY+pnH7YqsC6y{=2JY+hRYlVbmAwPKx(wkm zn04>F>$-TWhj|8832;4)Dx|chPlSvdi&f+ zwSDa;*L6(Xb_LK_`)|ulzI*IF%4NxqID4x=3YvnFjyGi}fqRa$fcx&OJBfz}ZyUiD zSB_mv$laSVw8sr~g(;H0*pJFg!TmiZKE%kEtrgjEfP8U&F{Uy)<84~^7jzi=haM7m z<+!gM7+L+{RW!{yS8sJMqNd_*jJ5R~jMgmhJ9WhLnS7;i(!=~T7-fJ}HPjfKco~64 zGAX-dWYsbwrDvcn)0Nvkh<`tyr4ZcesXeug7PW6$)A3_{Gdoo2vckhx+p_WsQahf zC{k5G&2iEF$8Li$H}c@@Be#7{a}$Q7xLM)Db|XjNzM&7Se5^3xz0x`BT(?NV&wQ%S+CMtYEi&h^KgM3A+I zYbm*xuk22AiG3%T5H4%<}8&?r8by!(bF9!jvOL z7K!nk5}mdWGk?7cm*q4wDZhUsF(1tteLv-b&+%3%=wu)@#WRc2>rb}89sM5Wy6^M& zR@nL4(~M}1D9kFpnNJT5!)tSz$b26AGDq$}2Ip%-Qrq9AkNT%BzYcwe*nTwrjFT80 z+MB>mGOsVAw&q42{=0hK7( z&I%vMh==?8Rqwk11eOLghJ8de=^r^y!myuDjnwdiaCX{arCLuAV(62v{yZ*C`z7TU z_X4bWn!?Gr1BXV>BDQ%UW2GOsXIXL_Z_x}%_TT&MG<9Tp74RmHl;W8&oBjH5Uq@-7 zRCDUD$r(=uNww?*Bn&Ua-}29|E|ZJWJzw>~3bqNTfE?@YuO^k*rEf{RJ0X%NW$X&y zjT-EHt0``9^d2D^XeaPL0cV(rALP~j78{}icBeLTj<(TQK?MmaERP>G%9M4 z7t#5=?l4=VWASGL+#|oD&CjxG2a`~TgwcCX$~mOY5D<@ES@;h9)Zh02KRag^bxQ@#|ux;31Yo>rgglG?fkv_;FEm6NK`_=Gd z(U@n;58*>8Sis`M>X44%KjPCrPd@4pRLfOG%YS;``~G1Ej)D9yT+fi zsN-tdA~$iI=GvF7K-hy2e<_~k3vl&u`f78h(Hk+T!~I67BGNvym9IQrPyEB87;Op{ z#iA$Qr|3g@?h?fyL59f=%wNDNuE^i}(Op6=UzS>E zU9O=g)%f?A9sooq>w6mr{cwL{Ie($;4Pi47#$2Y9)HZRSoi)9k_bk1rseIjDa>(n$ z7Fk_ct%A1sql}$(HkHMSNj;E1Ea3#mH_qyQ?!1QiLll`9oI&Me`u%)}kH>*%$SM2Ek96i1yT z@8hhKd2lvY2PHuMp0JDm+*0gTmX=6C9QSnT_29<+!{jCHK6J`2X}{aaGBj+Sa|$^- zig8=6R~QZi#(9(lG%kNvuxFyFtDEWiJHoK8j~zABQita(X!HT-P6i#FR-J;^pwE|e zv`4smt1KMqp<`?3tBGvn!*BIrhHYktP^t}KBpu8dTDRs)M;Gp^%HNimVz~nWQ^|G{| zG{>f%mK~@>Gw0XD)PaD%>OG45SyN;39P2qQK5KSZl8eeQJA_A|nlq$VB+LIUm#N72 zJ1(I|05O}u@_(*mXac7M{RmRlyVqUWsmW`}&z@(2rqZ|U!yLQaT9v5{{N~@u`lcmz z|H|tT5_!u<&d4yl!RFVEC&KZBR556 z^sSX4u73Uo0H{1Jx^x!iXHOQ@?GQ3I$t72FM%^K=7kD3#AC%(f( zl{gS+Fz)JnKKccq^ysGm1iY5%2HgV%CxEHmSiy1y=sp61IOwiW10o;Ex#bzdJ>|avixt z4D018yJL4{-vPS+`ZZ2tx%61I{K0Rfm_hKs0GjQqX9Tp6#p}sx+}3;nHf|pTAR9J` zEie#H@4$e;I%-Z??0fJ94vt}6-7+{2ZgNbE$1ib3f3{OP6v~Xo#oyNU2Ecn5>e6pX z1IjtN7C2xoHW!oP9oL353xaH6ly~(KSpfN`rt(!h@QqplfQm75g90i8d@o1MucV?v zE1Bw02h{BLhSN2fnIK%Sl4xyToW!DcnVC)OqjlE*Y;y-uA&e;pBNyBDl+m6}3Lj`Y zT$ECjogl3>CC`+n_of%3{!4*!_*ZZ8|67T=s!RAkRl(d!GrU;PEOcmPd1ar#ji=hs z-}2BHDapBn%;F`MHpq6b!l9MKKE49|)D2>7xIR7(F>MJHet0ChcTmd2R%eBGURNt+ z<||(@9W-@{k6OA&ZS>!N3S0Uy9XnBs!hYS+Ir6|xQnfV+1{&Qs%$*XtF|N6rjGKfE z4e@bB4c0lspooLZ?5RdVf3uhV=#QEi4qdT!gGHzH%$cOhZezf9I2*!#7|A!=)j{#s zBHNxMoEtsb^N|TnsZ7|TyoIh>>9RuWY&Jc^KKoA6KSLcG6qk%uQKQ@fUB(MXX7E}P4|OB8s3 zLK#7wJDJ#=>4LTeJOLe9FMIZ}Y1!;M14kmoa#yajP z{GLW0eU>DxgSn4v!lcwXS?}8q;u!U#hEL)9>L<|t2O7^wAB-iERSdj1Q zoSe<~^-_7sK=}%!=`pnbAh#h}p`*w^zUaR=-t_&#T*%W(BYO z*;i$c0}TiyDT^>>cj#gbBQY`~q!PZ2fFtKD468E8yt;asd^I$=s3Klp8=d6&>IWH^ z46Hy^1;=tiF56lJkH(D)$e91_jazAp9qbL`VBi1Y+w)(BfJ#(d4DDIO0>Xar+5pH2 z2EQMcEF^#Z`t?-QBk#=W{;1npEN*iw>t_NMP7~91)a4AyEi2jcglVo;&#VJTanOAj zqHR8q)>BL#EQxPT$8oj)v_$+MG~)7NxJ}+snCgB9|DZ(hqAHl-1{N(7+HgPV~5A$R_GM>Sn~*8gWSyS%e8gd)>9;*zlCbc;2rIc6o}5+>qV z+Jfr?4iT155H!5|7}|VbK}^SBKh9o6ABbBOXL7@?r|ouTLjvyDCjKKOyZyHDxpgrL_(Br4$67g$_^ixD^PZA76*S@keq zVZ2bzJdf$gt>(QR4)5)T6?K7+A|fI?rg8T6lOYg*guZ5^IE}Br7Z)(6rH+eHj3ZbY zSjzqQN==37#ODqm7$>H3@yw;hM$Z9C_2xOZq5+~C)47%5vB@sF(>#S$H?Z!**3{Iy zJsMHEw)UfYJtMapo)Y7gNE^xS4Sc>}iROHe8ezU&CQ3{aiB9?Wlkp&2EIyO166z+| zN(GXUJkyf%g$C7iCN_VyOZJ;v-)v`2iVKL@KUv)eyylIyJ;8^+X_d@wJYaRGa^LbM z1LUz>Pcq1JpmUL)_|x|?a51^@Xt~j?SA6(JmINxQz}|NO{VO~<@fEaU7qL@sA77@* zu{mRSe0nZ$K=>r z%BhAI%VrZp296M_?Z+lmd;2Ln_}$QSneFEU+4nl?j+A>T$$r*a;RW*vaDm-9_AVYo z9oJJ6J=fI^Q4M*dSQ~ij)8dL^TDrsrq=z0zuj5->g&no%<8kM53v1u}vn!{-48?Ql zoWdFw7Uqwn?x~70=3eo`z8aAMy0kep30KKuB3IGfP&H-%Zfy>Jeau$h?L_{OeK3;E&MfY37Tc z&c>>kb~t`XPRnl3bB}&{D#Nzy@GkE{g{EjQcAMs~MfJ^cdrH|jub*?%nN*AFwS3&I zLAGA>3WHVe2@;`bZp({rr7v#i9KFRpf!z|ao>h7l&%AmB;nA9Hw7Anb@Br8#mA@=YqBgB#rI;RjDFG^9I=xTRFA(WFyDN%w7O_- zIq`W?5!IWpm#kD^=*f47{5oaLSy?^`c3x8sl@8rm`<0Se#G-H?pZ0nnu!T??K(T(9 zplS|U8NhV3;06t<&lU7=hv~`IE3V3-h~dkHMb+i?+4WR6+OQ1}oHpbjGVs6Vwf;_OeyY^#y0+5M-`e^tYcMt6U|WB>y9zT} zc&!!4^=4lAGBRaU;DYj``?6MtHFE>Uj$OE+`=BbPuCD$X%#2PqbS5UnBih+hG?%nQ zzol`r(I0+7T0Bql%tOCcN2l(^=^@bzRKRciltwuFW;JhKAsFP{l2u5FCHief>{P!i zm#Ni02hLsgYnmehbQ|2%qF)K+8WJmZ{?MALHly}d7><=SnPaoN4V;dEV&Kx{YJp;44dgRtl~9 z&_5{jsdoviX0tq-;^yGB=#CFaf=yFWc#P93aO?46b$6a{j~A=#NC;H==9V_`iM+uo>JMbDIMt^g4{s`yD@R>p zB8puI1+KxBGjLy5m+wY@;b)1&;A`t_>5Kk$ zq1dtYu9<(O;Cf^4?RD_ebCYB;Q;pGeIcJMsZhN(LqW4dU&&!V7h!!d5jRiK6o(L5# zi`Nx@i!xtUPmgkt^iUUm?|m#WAZZtWp8j1?sKBOY;|aY)au=rl%wPPa03!qI0R3cEei;7daIOlDLm`U}F~`MxtiUAZuk z-q9Sp7lD8D9h3A-Wyz|%b%eAD9dXvVtHnH`V+T9QQw!Z%w+IBM@k`-a>XAQ4 z==98~eT>4#9*JsK8yfmO`7pzCXX!HfgGbm4c2~+a%k4_i6YuWfz=}L?^&s;_4Ur1r zOVY8`k4gQ^j)EWdGD)A)MG~xE+DHsAd32e6Goho!&evv^`@4f@I2qT&sQ?>ObtSyI zhb>Li-VO-4AD65#)9B5%x(oHAu>%k`oMg!05n*%>8SRsNd(B1!9GA>|0_Jlc^@J_P zqSX(Z zg%}T-u(l^L5rw(yT!En~ja_-JK?NV90t=_W z1Y*a!vLhOlg6L;>X6;x6`-k^qkdk-31#*J4I6}D}+=by9`{$2D@f|IReRa0d1Xd+i z=7;9uwp2R>R1|{at0PY;N!LCF1kCH%#5H5`J~T{|Rk#9jw9s=-B1!PwlmB#`cyXaE zHT`_E0Ej_%`*U2VZqKcfIto``39&9q3mol(HHJ(&OVGrb-qQz(@}mc!_o-qM5o0ft zaa(_Vs&sA0i;0>r9PH^0_+0E~9cSo67oTp`aM6k)sVkqtdj>=0jUm0Im->F9P27py zB_#!;fAHLKbhLx?h=3J}54R{<@N}MQc|>PL*y)bZK>dywdp~g9;HTf{KHpXh66F=a z2Z4Oc{L@*73AN7H-{-+kF`<=>!HCM;H8gN1(K*&kjxs3M=0YJZRW%1KFvDP+P8 z&6gT8sSOU_`rxm6^Oqkn+OzDp-uCp+G=tvx^Q($+b9OZ9Den2YCBueX`7X34*_fNn zf0d;&!*;_{*ccD!U5g84zjoqs7{w~pNvnz>XT{+bZ$$*Qf{p1vJGAL3X!NqZ7#7ed zU8T@iH!38KO|)TslEV6dk}Ps`{gMzT_tSoz`Rly4M}t9c6-X0~l(N^~Q7D!p8YC4^ z?*Xg1cy-PXK&u4^H|8rd%F@jtz?!WSAWT{%^DsV}l|_>Y`An>1`d-!6r({GZ*=}KHpJW@Z$K^AQXb9#NqC-<_2i%#v8SrDwd9g3d>U=M5d4MzDv|?B zsq81{eWj)l)Z+(WXf*hj&*P{Em=ohsYQWCYJ`BAb8&*?Gq$F1O{dpIcj7X5Muy3|r z&n>)oTv(eNNB33{>M+#%Z7D5|nAF1X83#wPOUArm=RjXVk|N6Vr|HjMDe$K2pnaxt z1jpPouM~9P|APw?7n{5$pZ+?PTstxY(yh~gs==s!l0b+ z7a_e!Q9X)L#NAHSr@xBJ(2;g2-Aiu3 zOR77+$;Fss_&yQQxzLeFv|y8e&t6c5#MQK8y9c^3hgb4+71W=L}=y)7X_6$d23^Oxz?qeR^|U z`EVfFiOhwVm^7i}JBwm_TnRf$T3~W znbQRwLj7!t6kePIG2Gvout!?w%wzRh!?FWE0wjs~PS>Nja7Gb|ZM@dkj@ou6)g~jt zKs*6;)@4&hF}txqP47Y@6?DWw$q=jU2?xzt1O4*?rt8i7jfZPAiLlAc=IFuBZ0Vs; zGE3%hikM2g>Z59fK!YZNiU(Xk-2Wp}x>chP50Ee4Pj5~HT-6bR1 z4#23|mg|h?Ou{uU5qEUxI%b`>RDRax2bJ_`?Y5ryK7zf3n(kvn;DuDYwhU2cxe|O{ zGgx+o_z-O|s}dztb8RFbK8t&zQE)NVX7M7OF{z_^xANHC)cnZBbj$vxieuD|(B67q z1I8Rv^1QQt>7L2_r(B{w>;!9SGvV63YfUjql;=>IPj4@Av-ALd$KW;Z?Nat395YYd z*E(3DTKGQH1{%K1Ru3vJ{(fA4kFJfuMZm+jNuWCI=|7EM;oHxruSx)30EPxYS5ME8 z7vkJXc!$AdzTWo+mk6z7E?vog87XI+-+uvcPVviPE~#=VN#vOh4WCu7N}j2FTTIVeVV)j4e+=~QH+yM*ads)z{i4L@ z+BTV^s*M@UroFMUoyO<`8iT}$LOuK^ff&Mpxi_y}Rtp7-2|PriqRsxK8p7#YOP6&B z5k_icmz`fQ7L?+bK_f+j@x53 zNjW!2V&6QAciH=9YZ5SNY0$Q~Nz~bC!|OhM^4)tiBy6?e`j3k}&Hh$Sf8Q#J6HM#e z?STxVyHKgqQ;8RBHMuPzJW-GMw*6lj2bgc#Qr{!Xrl1-9lshTC^=)<7g|CabkjbLm z+V150`%353D1iO4;Is~`w_)d6>!^D&XVKmb$=_!S-aJUQId<6$HcNa7O8iiG+J*< zD~KlculcnkVvGoMSg(o?`I}nC5ul91cgAU4uqAydN+?IP=WoL;w=ywkN_Eb$gTxM* zOxeB6Xe=U5A>Lz+Fsamdz()hrlZ}rbCVnF=X}2mU$Pev}ybFvJP)%5O20n)2)O;aR zj8CcB?5R!2O$~pM?cdG^P6-3bBrd4Hh8s!B@y@}O(tsJWAf2kz*$N@3lno11 z%yA3)X$Ni`$5$xUZ}QcR1YcN4xb%-qpBr6&W2dm@0I>4wfFpyJ0A^+BOkcT+N&l-s zf2@25vts*XbZs5!8-?03l(9T$B@>mJ4>`~1be{?cgg6Lolw1-3?qyb=h=~63Jb_t} z{YYnUWuG%PrOdV(CPzoaswdwf*UZba@j#pygwpt+ZT!26% zaF`yEl8aM7elM_SC%v2tPYR4MyMUQ_ih+l6jS`sXTnT|URY<_oleZBwKdbQu{{pEF zvTXk(hzz=i3*F1jbQgO7HkF&vyxNpRg$xJxAtq3hnwq*5cvsktQEfe`miJe(SjVNv zrn@c>I{U@`>5Ft+H*v@=7j7d?kf^yUZyKm}VrFzRWTdg%jkAa|slMP&vFSVH8qVwb zS0W!P&ytv9c{eSs&@+H}xJ>)vkOh^q5cqz)N%9Ou&{r-Od-U4a~ diff --git a/makefile b/makefile index 11524a4..5170043 100644 --- a/makefile +++ b/makefile @@ -19,7 +19,7 @@ BUILD_REPO=https://github.com/shauninman/MiniUI BUILD_GCC:=$(shell $(CROSS_COMPILE)gcc -dumpfullversion -dumpversion) RELEASE_TIME!=date +%Y%m%d -RELEASE_BASE=MiniUI-$(RELEASE_TIME) +RELEASE_BASE=DotUI-$(RELEASE_TIME) RELEASE_DOT!=find ./releases/. -regex ".*/$(RELEASE_BASE)-[0-9]+-base\.zip" -printf '.' | wc -m RELEASE_NAME=$(RELEASE_BASE)-$(RELEASE_DOT) @@ -55,7 +55,7 @@ core: emu: cd ./third-party/picoarch && make platform=miyoomini -j - cd ./third-party/vvvvvv && make -j + # cd ./third-party/vvvvvv && make -j ./bits/commits.sh > ./commits.txt tools: @@ -75,7 +75,7 @@ payload: mkdir -p ./build cp -R ./skeleton/. ./build/PAYLOAD cp -R ./extras/. ./build/EXTRAS - mv ./build/PAYLOAD/miyoo/app/keymon.sh ./build/PAYLOAD/miyoo/app/keymon + mv ./build/PAYLOAD/miyoo354/app/keymon.sh ./build/PAYLOAD/miyoo354/app/keymon cd ./build && find . -type f -name '.keep' -delete cd ./build && find . -type f -name '.DS_Store' -delete cp ./src/libmsettings/libmsettings.so ./build/PAYLOAD/.system/lib/ @@ -93,8 +93,8 @@ payload: cp ./src/confirm/confirm ./build/PAYLOAD/.system/bin/ cp ./src/say/say ./build/PAYLOAD/.system/bin/ cp ./src/blank/blank ./build/PAYLOAD/.system/bin/ - cp ./src/say/say ./build/PAYLOAD/miyoo/app/ - cp ./src/blank/blank ./build/PAYLOAD/miyoo/app/ + cp ./src/say/say ./build/PAYLOAD/miyoo354/app/ + cp ./src/blank/blank ./build/PAYLOAD/miyoo354/app/ cp ./third-party/picoarch/output/picoarch ./build/PAYLOAD/.system/bin/ cp ./third-party/picoarch/output/fceumm_libretro.so ./build/PAYLOAD/.system/cores/ cp ./third-party/picoarch/output/gambatte_libretro.so ./build/PAYLOAD/.system/cores/ @@ -113,7 +113,7 @@ payload: cp ./third-party/picoarch/output/mgba_libretro.so ./build/EXTRAS/Emus/SGB.pak/ cp ./third-party/picoarch/output/fake-08_libretro.so ./build/EXTRAS/Emus/P8.pak/ cp ./third-party/picoarch/output/nxengine_libretro.so "./build/EXTRAS/Roms/Native Games (SH)/Cave Story/" - cp ./third-party/vvvvvv/vvvvvv "./build/EXTRAS/Roms/Native Games (SH)/VVVVVV/" + # cp ./third-party/vvvvvv/vvvvvv "./build/EXTRAS/Roms/Native Games (SH)/VVVVVV/" # cp -R ./bits/bootlogos/pak/. ./build/EXTRAS/Tools/Single-use/bootlogo.tmp # cp ./third-party/logotweak/logomake/logomake ./build/EXTRAS/Tools/Single-use/bootlogo.tmp/ # cp ./third-party/logotweak/logowrite/logowrite ./build/EXTRAS/Tools/Single-use/bootlogo.tmp/ @@ -139,8 +139,8 @@ zip: cd ./build/PAYLOAD/.system/paks/MiniUI.pak && echo "$(RELEASE_NAME)-base.zip\n$(BUILD_HASH)" > version.txt cp ./commits.txt ./build/PAYLOAD/.system/paks/MiniUI.pak cd ./build/PAYLOAD && zip -r MiniUI.zip .system .tmp_update - mv ./build/PAYLOAD/MiniUI.zip ./build/PAYLOAD/miyoo/app/ - cd ./build/PAYLOAD && zip -r ../../releases/$(RELEASE_NAME)-base.zip Bios Roms Saves miyoo README.txt + mv ./build/PAYLOAD/MiniUI.zip ./build/PAYLOAD/miyoo354/app/ + cd ./build/PAYLOAD && zip -r ../../releases/$(RELEASE_NAME)-base.zip Bios Roms Saves miyoo354 README.txt cd ./build/EXTRAS && zip -r ../../releases/$(RELEASE_NAME)-extras.zip Bios Emus Roms Saves Tools README.txt echo "$(RELEASE_NAME)" > ./build/latest.txt @@ -161,4 +161,4 @@ clean: cd ./src/say && make clean cd ./src/blank && make clean cd ./third-party/picoarch && make platform=miyoomini clean - cd ./third-party/DinguxCommander && make clean \ No newline at end of file + cd ./third-party/DinguxCommander && make clean diff --git a/skeleton/.system/paks/MiniUI.pak/launch.sh b/skeleton/.system/paks/MiniUI.pak/launch.sh index 4c42e66..79a5f91 100755 --- a/skeleton/.system/paks/MiniUI.pak/launch.sh +++ b/skeleton/.system/paks/MiniUI.pak/launch.sh @@ -43,8 +43,8 @@ fi lumon & # adjust lcd luma and saturation -CHARGING=`cat /sys/devices/gpiochip0/gpio/gpio59/value` -if [ "$CHARGING" == "1" ]; then +CHARGING=`/customer/app/axp_test | awk -F'[,: {}]+' '{print $7}'` +if [ "$CHARGING" == "3" ]; then batmon fi diff --git a/skeleton/.system/res/charging.png b/skeleton/.system/res/charging.png index 536408d24be82a7d3c955b15aa5a53abfaa6cf1b..f93bd4bf8e0574f7f0d39e5e25e7a6fe92f4c86c 100755 GIT binary patch literal 5139 zcmeHL^;cBy_MTzLAyrBl1cMS3q#Fhp;sXpIpmc|Wlypf9h$vku(t=10AYBg9El7uS zH^R{MJ#fAE{s-Tm?z`4mXPBTW$ACqw9M;493p)OtuRA1#> z)?(|g0#3`Sg5dxKpB`-2*E6?HdeW91kLk0=Pg-lS#9m#I!$(?MYz7YSgFt6}`4ThYJ7}5nQY*-B}*m~Uvd<}WTJ^UiL|BvSH6Ia0` zfdg^y5t@?lr&2h5w%pxxL^66`0QreW!=uF9BE_JfN-v3_hm=Kxjldga84oRD-NI-8 zvfWQxjVo84%7k`@7R8Y?EKi@PSs#xzGKpw5fs>Ynoh5w;Y7Tiwtzh#%Y4SkC&Ebhg z6ux2(hr42CjJeSFqpuAE&0A%g)Q_7mPBR8Y$j6d0Au)yeAOrjfsChOhz*Z|Rte8*i z+Nlm${mp_w5D^u#wh>Rv7wWlrgQMjZG32n`Q$fl8HdT;JC=HPy#>JoI^K_&#!JBGY z8f^hrj8dW-Cu^3~qFao?!R+kn;^tuDfnKf_=IQsLF&l^9P^UD(7n3$GFz!gkccK=q z`CA`vig!e%HwH(FjxFE7CGfhA;dHGNU;TMNiZUDB(SD}?N^`7@TEEe{>*Q!ulo-iG5IvS=Pt*xa8F?kMS>vdzS4S#zPV2NHec-_S0W`5x`3hV%SSW7r z=r@x3cIqN}xpCLfdv;7sW35i~oEGOt4E>W1KHe8;r0uTfEX_#iO3^ngql%P}*wv{D zLG1ln*^agiV4aS}6gWSWS7&D@6{OtKaH*!%L-#(I&eVx7gS^gDVIk-6_D9Spe()IW zD<_aB{$ar|VfpTEalHxYgt*nZgxjQGR0h$l>J@B$IwPFk>6c~&EIyA_WxX#ksAeIn zYEPiF>ulsarH$aMy2qHQzk=4sn=3DTg@X#?oo|T8FiB1zqSIT0xXobYnNgj^kDjo+ zb+GXGrj>Q%#`iM2(f6AKTLt|s9N|xGCNgh$ za+-9uMSY9OC_YG+*J{26+MZaVz%e&Qk45!JL#GklKa~+5C=hwAWxP@OywA6OGfFz$ z`i)e3M?JU9tDgGeVPCGNIeairF}j*6ne^gQ5x7a_PL@^r#Ln#$>n)IHG_zvNzod|k9&Ch#g z`a+JW{nj~kv)I!=D#(Yzie!gA_a6OfZ{IvTRWunlWtM)yKJ*>xGx+r8t1#1tphJ^h z8BbxamfNGX!FlO5x-3@k-mRy$_k)+LX`AjdO+F8g5K^~{Vv{ynIoTH6&&ES$7*X&r z?A+pc6GDDSSCFTxDpX?i^3wF^*0|M2bZ_j$bGJoqgAg(s-KQu!R6r`9S@h~hVDiEE-HxYOA%d7`(U)5j7sdON>}LCQE3nG_qMn8c<>=hnMJUdTv+%G$oT zp)KTIyvR_Mp6a`1^PFFl@BG0hdLJqaI<0_D^#~U;RXQvJDc?!TI2IUlOoRFGq{*vg zvpXsj>WYK4>3QGhq2yV7J*FNlz-%_WTh_;lE%{Y;tsF7n(TtG9%^qjWx^e##3xC&qk$->Qd3XjC(*^FN5MNT{Ur9q2os>J~4n145I^? zLbZwLtPL3r2;ke0rom>VUx`)FiSvw^QR zS#3ikkIb^Hv{_b47njwH2zGO3Zp|>v+B5aUnd|{UELbwyBVr{OQ41F@L9HYmyuFvt z#nH6XG)HI{br`)?-06^{OhGEnXJ*mA+jPzB+d#7uT}g5Jb+sD`G};+Hcb1A9JVQ(L zFeUpEN2GxSb}WsqpYAD|kSJv`%g8g*Xqn!T&y#=mmVcvF;Y_2R)IOvF(XDHSszgCfLr8Y20lMe_IOjOt01W1zt&NrjV!}j+odE zLO0B)Ith8??w`(P$a`O5r=R*AV)`r$%Rw3B5D*|xQL!(HWb)^7E%SlEV0h*%9YzNp z?tbnL7b&QN0|+J9$&WL7n-&=4gl5VLa=;x}N3u13z>UOFQP&v+BE4~WfkB^==m8~> zi;^mWXbEzIl8Dwx-8u?*H>o5C*8+z8goCa2-c6!y=W!>L9chRj`)kow*fi_w4yI6* z66Tk)w6O>_$eY@2HCXnIxpLe7s_yT+jTicYC5W$g6UU9ZFjfhn(QiXczyc3Klk?T} z97WSG4G$~axfRo-y{qhcP+J>kK1Ko+Y(jOrr+q$KRT4eU=u5u;TmRaDGzYVPK)RMP zh*8Y&&+J59T^KiXft->hrqKR{=XU$UZtt;pI((kqz_)W9Lj^`IEgxfgr#$_})0^D~ zww_C-wMDT&<3Po&cAZx8(O5WD*dwMY8&3>05Jc$Zs9~q=;vgy2Aw-1FGhfuN5FWPK zt^6)jiyof`L~H_*20?xleI+N65nM>>udCkv9crzu9nQ(15jURt@^%5U_D<4NZ~teQOob>35j#%eCCcKkt~)k&DC@4bWi z?)G=m{>+PL4xU*WL!(D<9M*#>A|<{P5d{Tt8-!r8(b+egj|_why*yIqGCOu+q7iEq z>*W(v4NH0~{sD=Cp6l8lk`pPdtJgbrCA9@QA_76d`9-)+O;R(@mkJ0|)AhAyDrIxb z{&zULFgaZrvB{E?S2jH9pZWceZnKBHViXW-L9U=bO63PzsqR~Le#yX}4E zYl$P<;KlAVs~L;u+5BPL6Z=FtLQQXhMF-z;94}6gO~ESsJ#0oWn9OtL^H}b>Zr7=; z9vQI-v&`4XTL}`O931{LHM%>G~ym<)tR-}V&4^Bn7ma1BHG**`>1*al0^o|Ln@1bu4qFmOd!tK{+!1uSlz_31x74x6 z-W<8a`6_9N_#!br4^?>TsgJq7!sk|FL*7nCol9P|Md>TA$yFuJbE}JMz0kMs1Cd9@ zM6Vy5o0&V*4f^Bb(T6mVXtJrLfk^-aEKZY6fH?p}*zjRlW%6u0_(m4eO~|^M@XGJD z_dcd2>lKRPqhG+4Cfh4fbTs)&{Paf#}~e*TsayRjs#>dw#J;; zv;DSyeI~;a)nuSLTP-AAo&0a+4*;8J&YLPq0`P?;s3pVF2wVqq$pM~dNn|oCWT)@Y zP^d@S5!hBL+{@K@>EFJF8o^|`w4P&e*W#(!dr&_gWkWbu z)*^r{sg}H6u~v9|I=}iDN`Xhe+%wRAo*<6GsSYOo60AQC zo=9M_UA+&aj!$%>J$zh`SA1kZ2}n#>@cXD2PxMOdGDCr&>vf=Tg8l66e{Q$6$I4F~ z3TUzcgiJk9&hqXi30GLEK$!l`a+L`FE9=Px2P<;LEF>Bzv^Y~pOinD2X|KhIzr|HF zmBQ~YR|)T5!QAma+S3$b{uj(B2SXIV6ex}LxWE2)D^De~{~~OEPbvquUokwSV2vr< zoBRuSedVv8++Eebw%M5|>FTvaXVoh>ZdFJhx_VW4EjRx1L#khJ;QlxMfd0Qda6|rD z-bT%{2+aXta!|d!%@7r#lFaXNnSVU+aK%h+ZClMuC>3w|&$blYp z*({m;O%I>1DO&WHA#ZyCB}tzmi2e0RBGmI?A}s{?l6xU){1)wqZ8jpxsSA(5s}7j{ za_OAKU9!%;zo79=O|T7lyM;~T(0f32v3bHYdX3)a*x&Sd?Lq1*p^4o{9WHk6aLRVP zF)`7aCmal5Jo+7t2Q;wfYT1zaJI3&{}K%F!cSi{uY4{*{yi0L!XzZQMHKe{F=fy zL?Po+dIwH?J-PibB;~^VIH9EVbSH%%N6W3-51EngA_wPszv%zU?#;R|u}K>gb8%K# zT`b-W{-(o|%O$CT+z+GxrrHwcbK?5Niv9VXcKeR6u>@c;-Hn{3$@bWsh<1zBggX0* ztGQU)fB1{(e812~xS#Ff^yf*<{`gCJ;qZN`h&_G1NBK96J)f@dNVbye>tio|92Y!_ zbOd_3?!D3YT;mG!_2pSqY->y3BqAx+`hyAvGj;y`WSC8~W?dlYZWcaOLC#W`p-*!h z(5LgnOG-0^D;UT{Dcv`0?ZzuHdnFP6tI0i20GG z+Fe8c@r|kTv6eo`G~2tA@GUz*p$oPzxdmhdEIDsoP_Z<5cay)g!k^-@>C?<~4F7sU zL?{hr%e+{a%Bn>1rP~u>v%fT+%Dq&fkds(w)Oeq0zctoNEf|-$DpLf9_3iEkDc>{e z$D@>*NKIed$#q!r!Ok6vj^WYe@60Mk)vHO@b2YHl z;LO7+ON9}JXCUhFTky46c%ML|&65BVfMO=v~Simi0>}hW79d(#{)$kDeErV_6+_#Bi$O`%$;y+*A^uU%YOM zB=$z~SQ*bnsgABf=pWR_=^P*8_ow0yPQ3R9jTG`+){*TloqgYxUAzu;_)=~=s}b*7 zSiWD6dIkzBukDss3b zBB_qgbd}*LC=B+fv&*%iiU1Ep?C^)C=^^KPlBO+=XV(JZ7pNpoeXRnbR4KCKy0{zl zy6wJl@LpnB_FJ}vy>9Ear17xj9~;#NX+{&iM)EwT>g-DC_Ony?aE6;3W4FbSqngV) zd=)cgk+6yVtT>9PZuS0tO1D}^t(a`w14=EtdyQ|NBn1Wg(Q`Qi^-R56%byKy@rOQP z<{XAXgCnlr+%{qc7+h!ug`OS#=lo=3o?A6uFHS6Ao5)mjiz~L$G6>9(nV#nhMAqiG zpD+oBC628T$S~BR{Sbw5vx;-@a!b7W&_PZH2Lr7Q{|n>Ba^!6K-V&HfqCePqowG3r zTc)Gap(I;bKimzN(O>CkBCLNMWvUF^KIX{iIaM;68z5$+7P%4$A9JthFak5zl9G;s z4;$ew>zw9Fu-JD>E?zZ9^N1mOe{+Cc4s{Hs=_)h3rQ=b&1n`#whZv z)Dj1kgoic(6KBr#0aM5%ri@QjF7B;Jj@aPtyy z9c3@)0xF((^{i-iefw5Gq|+yPBO({a9nya6_ud0=#-Npuf~dF*(M6`WH=?~;4)FIX zCN9}`ibjtM>ig+D4Vb|@Yu$c1icfN8-sGd(DTumv`ntW)7uyrk;@2{~*OVCGq;0bP zxKHUA3!C0Y-!+difa8jC8x7l(*QOyJ1Te|sa?{?;)a$(|+ABE%oRgh?FrvAptOMr1 zFNU}Gf&P#Q2T@r5fsQ)MKrgnK7b0kJZRO2x8zEf8)|D(^GZ>OKWRYYqV-f5&=o#s1d3zCeBT4D|K+8nEWs^4o-_{+&Ow|3WT_ z^SG=0hACl`;a`xF^ zt!C=a6Hux9XBKxUr1^W2mG+g&I+88}d#6iiIxqd(lt!A`zg5y98U|RopqArTOEjmq zX46eYe%wcY=+s?#<#m6oIaf4L{D$pv9rK+0LrzKM%#vRA zb}*|1*3RZh&Xb8J;iHy_!_O8)A6_Rf4#ELgKZorBcIw+PF`vLd1fHfVDhd1Oh`jOL z>shXC_kl|0XujXtyL;U+K%RvXNC0U_Udu$m$eFg0J#2tY=I<@POf1IXYT9!ct3G*r&LeQvsjWg7bpg5pDHl| z;#DW^+IqY)+t?=gs@&@hM^GB!>%Bb@?G)79IXRwR0dwX*YYzH<{u&Gg@2IU?zj-Gh z?yDCs$!N8F#pz`;9yK-M2iu5f+_gOwC9b+#Z(XtC;o?l<4G3!ZT{*vV9gq*m^@D7% zRn?||0Q`??~58|&^C zn%ZX%U4$zzt#n-O3#oFOPoUHl`>z|ntIU$;cK4bnOF}Mvg~&hhCJRu~)6;u7yKq%* zVuC!|NXf{2is-K1XdT6e{hf9+j9ixNk?lYks@%-8Y;fyqq#T+02XRe{8!%8Sw!PS1O zf6kZY%aGq@K5_2c@mAjlkv!*QTfhwLYYc}6Q3&26pHa~EdWXGkIn5|Wu~C^9BZOA= z8a9iIQ^>JNRj$AktLdc;4(=f?N0Ynu z;4BLc;T)FcAN`0zjyzr(weeo`|6HK;E)w6WH!E`Fod%-?7o<+=R)zETAOiWb^a8H zF<{tXIaSuy=|TEKksn*k&Gz*-4OCLSdKTkIdrNWxLset%XK~w-Pvop)RtTgQ&Q-~cbXm4_DCsvAiVUdb4UoZ9~ExN0Z zDXF`wZI4uNIaC1AEuXPbxt`^>>>d@4r4duCL4Xyr3U;5=OLY5 zW8r(}WNK$;P)AJui7z-Wune zR&vqSmtv;Dym7g>AdR#0?>jYD%A>VjY&>--&yi&TRaxj(o=o;W<`W+hwcDb{6< zJk!xR;Y9@^szzd+KK!GV3OrSITS1JL`|T#pg}jeyJaY;wT@xbZ36@oufJHWmn+uos zGSS3|;GjOP@VdgVJgSN3fAPi}%3K7pNr}jes%vGrV4a!>q`ovaAV||j*@&01LZv|4 z*9V8Bv;!HC{V<=%-6V@TOjE5 zaYYpD{f>Zv=&|qY)z%^lXWGV}g^{a3lUD#d{5I@OQd>Mz{P)I!^S75aTa%F)cIOx< z-Zx%q?!-7D;>^h`;aq&3Yh|SfY?GjwYN=#w1aJkOv3T5>&)`YeIVA!U_g6A`5I;#* zy~%lpuoNiTh=Pp1$TO((9!v}CM}CyYpOXaYC>qS22lmSAP*=DKaao!9FrO!;1ayrn z!4YvMx-$N+d~+~}c~$JI9E8c;gCIzYOy^SGsR9AnbU&>2yRL9$RHB(Ajn{S~Y-L1UTg#*YzVPvsb-OT4orVv7K_QIlL z_SQMzF{e#G)1_+FKqtRJ8a1T$D3{u0dYtRIdQJ%DvszNe_to}9S=PN3Vv@|^pf$p%h?(LzaDj-u5jr`&Y3JSBXA^9#`(bHIoF>Fc%=NxdE5s0VL zpHQopB*|M!^QjhPk|H9$`)_}}5@MiJrdRMaxn^<7a$(WEG*!sN_Xxk7;?g?#iq-G~ z4C+7rT%hF=a;;O9VoPPRYj8y2O(FR9hnP>DL7mb*H#Bbx{3VUiS}i5StxBYu5^SdPREcfETM z(UY}KG*DM+53d+3CrgSch_HI~0*;(d2{$e>tIA%-h4UMp?5M{ z)}_u!nW$9XwQYLGDBU|7hirb(23r@Q5abPKCljDqIOyXcPs_~THkm%sBzXlb24-L2+5T{X;KHc$TtV%!vo diff --git a/skeleton/.system/res/logo.png b/skeleton/.system/res/logo.png index aad0fccc66c4c041e0bf20fd070de963acb75020..3bdd1a95db05cc315a45957050f993617d861846 100755 GIT binary patch literal 6424 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 O0000 /mnt/SDCARD/miyoo.txt 2>&1 # let's do this -/mnt/SDCARD/.tmp_update/updater \ No newline at end of file +/mnt/SDCARD/.tmp_update/updater diff --git a/skeleton/miyoo/app/keymon.sh b/skeleton/miyoo354/app/keymon.sh similarity index 100% rename from skeleton/miyoo/app/keymon.sh rename to skeleton/miyoo354/app/keymon.sh diff --git a/src/batmon/batmon.c b/src/batmon/batmon.c index 825502e..25663a5 100644 --- a/src/batmon/batmon.c +++ b/src/batmon/batmon.c @@ -22,13 +22,19 @@ void screenOff(void) { screen_on = 0; } void checkCharging(void) { - int i = 0; - FILE *file = fopen("/sys/devices/gpiochip0/gpio/gpio59/value", "r"); - if (file!=NULL) { - fscanf(file, "%i", &i); - fclose(file); + // Code adapted from OnionOS + char *cmd = "cd /customer/app/ ; ./axp_test"; + int batJsonSize = 100; + char buf[batJsonSize]; + int charge_number; + + FILE *fp; + fp = popen(cmd, "r"); + if (fgets(buf, batJsonSize, fp) != NULL) { + sscanf(buf, "{\"battery\":%*d, \"voltage\":%*d, \"charging\":%d}", &charge_number); + is_charging = (charge_number==3); } - is_charging = i; + pclose(fp); } static pthread_t charging_pt; void* chargingThread(void* arg) { @@ -101,7 +107,7 @@ int main(void) { close(fb0_fd); if (!launch) { - system("shutdown"); + system("poweroff"); while (1) pause(); } diff --git a/src/common/common.c b/src/common/common.c index 947f261..ab80300 100644 --- a/src/common/common.c +++ b/src/common/common.c @@ -797,7 +797,22 @@ void fauxSleep(void) { } int isCharging(void) { - return getInt("/sys/devices/gpiochip0/gpio/gpio59/value"); + // Code adapted from OnionOS + char *cmd = "cd /customer/app/ ; ./axp_test"; + int batJsonSize = 100; + char buf[batJsonSize]; + int charge_number; + int result; + + FILE *fp; + fp = popen(cmd, "r"); + if (fgets(buf, batJsonSize, fp) != NULL) { + sscanf(buf, "{\"battery\":%*d, \"voltage\":%*d, \"charging\":%d}", &charge_number); + result = (charge_number==3); + } + pclose(fp); + + return result; } #define GOVERNOR_PATH "/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor" @@ -840,7 +855,8 @@ void powerOff(void) { SDL_FillRect(screen, NULL, 0); GFX_blitBodyCopy(screen, msg, 0,0,Screen.width,Screen.height); SDL_Flip(screen); - system("shutdown"); + sleep(1); + system("poweroff"); while (1) pause(); } } \ No newline at end of file diff --git a/src/keymon/keymon.c b/src/keymon/keymon.c index f406359..a5c2fe1 100644 --- a/src/keymon/keymon.c +++ b/src/keymon/keymon.c @@ -25,6 +25,8 @@ #define BUTTON_R1 KEY_T #define BUTTON_L2 KEY_TAB #define BUTTON_R2 KEY_BACKSPACE +#define BUTTON_VOLUP KEY_VOLUMEUP +#define BUTTON_VOLDOWN KEY_VOLUMEDOWN // for keyshm #define VOLUME 0 @@ -80,74 +82,58 @@ void quit(int exitcode) { } static int isCharging(void) { - int i = 0; - FILE *file = fopen("/sys/devices/gpiochip0/gpio/gpio59/value", "r"); - if (file!=NULL) { - fscanf(file, "%i", &i); - fclose(file); - } - return i; -} + // Code adapted from OnionOS + char *cmd = "cd /customer/app/ ; ./axp_test"; + int batJsonSize = 100; + char buf[batJsonSize]; + int charge_number; + int result; + + FILE *fp; + fp = popen(cmd, "r"); + if (fgets(buf, batJsonSize, fp) != NULL) { + sscanf(buf, "{\"battery\":%*d, \"voltage\":%*d, \"charging\":%d}", &charge_number); + result = (charge_number==3); + } + pclose(fp); -static void initADC(void) { - sar_fd = open("/dev/sar", O_WRONLY); - ioctl(sar_fd, IOCTL_SAR_INIT, NULL); + return result; } -static void checkADC(void) { - int was_charging = is_charging; - is_charging = isCharging(); - ioctl(sar_fd, IOCTL_SAR_SET_CHANNEL_READ_VALUE, &adc_config); - - int current_charge = 0; - if (adc_config.adc_value>=528) { - current_charge = adc_config.adc_value - 478; - } - else if (adc_config.adc_value>=512){ - current_charge = adc_config.adc_value * 2.125 - 1068; - } - else if (adc_config.adc_value>=480){ - current_charge = adc_config.adc_value * 0.51613 - 243.742; - } - - if (current_charge<0) current_charge = 0; - else if (current_charge>100) current_charge = 100; - - static int first_run = 1; - if (first_run || (was_charging && !is_charging)) { - first_run = 0; - eased_charge = current_charge; - } - else if (eased_charge100) eased_charge = 100; - } - else if (eased_charge>current_charge) { - eased_charge -= 1; - if (eased_charge<0) eased_charge = 0; - } - - // new implementation - int bat_fd = open("/tmp/battery", O_CREAT | O_WRONLY | O_TRUNC); +void checkAXP() { + // Code adapted from OnionOS + char *cmd = "cd /customer/app/ ; ./axp_test"; + int batJsonSize = 100; + char buf[batJsonSize]; + int battery_number; + + FILE *fp; + fp = popen(cmd, "r"); + if (fgets(buf, batJsonSize, fp) != NULL) { + sscanf(buf, "{\"battery\":%d, \"voltage\":%*d, \"charging\":%*d}", &battery_number); + } + pclose(fp); + + int bat_fd = open("/tmp/battery", O_CREAT | O_WRONLY | O_TRUNC); if (bat_fd>0) { char value[3]; - sprintf(value, "%d", eased_charge); + sprintf(value, "%d", battery_number); write(bat_fd, value, strlen(value)); close(bat_fd); } } -static void* runADC(void *arg) { + +static void* runAXP(void *arg) { while(1) { sleep(5); - checkADC(); + checkAXP(); } return 0; } int main (int argc, char *argv[]) { - initADC(); - checkADC(); - pthread_create(&adc_pt, NULL, &runADC, NULL); + checkAXP(); + pthread_create(&adc_pt, NULL, &runAXP, NULL); // Set Initial Volume / Brightness InitSettings(); @@ -170,11 +156,6 @@ int main (int argc, char *argv[]) { case BUTTON_POWER: if ( val != REPEAT ) power_pressed = val; break; - case BUTTON_SELECT: - if ( val != REPEAT ) { - button_flag = button_flag & (~SELECT) | (val<0) SetVolume(--val); - break; case START: // START + L : brightness down val = GetBrightness(); @@ -217,11 +193,6 @@ int main (int argc, char *argv[]) { } if ( val == PRESSED ) { switch (button_flag) { - case SELECT: - // SELECT + R : volume up - val = GetVolume(); - if (val0) SetVolume(--val); + break; default: break; } if (menu_pressed && power_pressed) { menu_pressed = power_pressed = 0; - system("shutdown"); + system("poweroff"); while (1) pause(); } } diff --git a/third-party/latency_reduction/audioserver.mod b/third-party/latency_reduction/audioserver.mod old mode 100644 new mode 100755 index e7b4209f21560e03e1a92afbbc0fac207d098e7f..5670cda3f61e5ee93136eb5da2bb4e38a18b6906 GIT binary patch literal 13928 zcmeHOeSFi^)xW>IHElyFFG_(5zqCcmOG{c%E5q5e>8~xI6{u4uE)8uU8Eq4rRDn8) z;PcEW(+arp;s$fh`NFga%e*rIL&lGvYoN!?C%*x^jFdm~t-TStewY*(8$N zXH8>l)-+CpCa4f7lAr>nvU8zHz@q?xGAWk>H-c|Oy#y1%6Hs|%ivX0QIM$822&gj#0fN2g^K=dmty!p#TBNQ$E_k+fg@x0r>;n0dbM}lMOlpEK|WI= z8{+|#NAh!9HvaM_+sog0>f7!I->p=a{Vn%zHy{*j9$*%r5ReJT0gz2fHv?_}Tt^I2 z8G!oZ8e)(p1IULP0aRZF;3j|;paT>Ds19kOVK5!Q14;nJfEfU4)NBC4&29nwvm|Y! zREJ`kA<584Xd=~sF_OIOB%KGGCCMKLn&Os9V?kV-WN6$JCFxPXG}f+9@+mYrNlZ=R zDM_3UJTpm80G^bj(@}3K_z+OtFQoC;raCw&m$r#V-uyKA=rsN(;Lqw3nYnBNTaPlS zMD^X6roS6}gx&Y3GgH3uVvp%^Y7I(eN6w$iR_DQ+Db9)-! zpH{vxO}_VX?TL7PJB@EhD}R3)A4ua@r`flq@jsQ==RqHa{0tgJ^J5G~(te4Y+IL-A z`5&gqJ&^ZH%3IUqmnSRo$==K~dqrvd-_pvvA(!@VEUmrTH2(W(<=;#zZ%V808So?H zWdf6>$!|}y_d!~Hv__;74X8T zy*g&BZ@k^uV(u`nv^t#Tj>g-oTW#&;M$__Eb3*pDlIB*M!_1O~jNi3c+b=WCuy1nAU20rvc2-;38#;#8;@J zcuGCdhLtN;CmY~!NN7vjgQgA=beOCNE_7EmHyf#WrDceW$!uC~HFmZ?WNmLTHrwq+ zdxwscnn~d%=CC!dGCP^W+0krY!|VvYt%D&94%XR@4R;mM%@$J!ilCp{nQ1xV!|WZ_ zcIOHz<+QaDYK5rH+~$C(<*10+ZLO`8K}L~Dwb<-VX0{9EEG9fL8p+jU&$gK`UX11zlhcHTEq6E)`BECapOBc*TB4H} zh&h&;+U%|7B{a+&)fN-RRjY&5E~>ApHkOypWwq7S#yO?5i_36cpp{C2KTf0*rzDyb zlsEFH6i*hZTskvQNx6sG+~?aa1_KR>2Pc_Fr6cKz<8^56rIpcBx);~@9~;W>=G zL>Py{-GniOdI;kXxR3D7jP(-6!SEnq9PHGUB?Fxt^Q&EbXBGV=pDOxyewx$&biX?I z)~5#x(NVv9`s1Cr4-) zKKa0#i&h)rkrU^BT}Rx*2IAg7w@>7V{^Pkf>R17%C3@Mpo`qb=aknifQ+65hnv|#Q zmaGD%jYr-MD1}!Rs;+-!LBnvRooTxaZx5)O-X2hndH$ZU7TJsw%N1^};Dkx$;by4a zADDi&knume|b<>3}#3-CWEh^#RI%@fffDX}O zCKl9QTC=drV40)Z%(Qi=ef&A~Uas)yfTmf|ACH_0a2Cb%oMR2cu?|klL+%Vz=Z8I9 zafOE!e|jPwIRXu}pnN7Cc_||$?K1ns|V*!(&tl#719HS`^?PNaH=W-sKXVLVylk?z2cy(M)M#TM)y zBF`TW%&5x{W0W6I2?p;CVws-~o$+2TQrm|<@)n8ImZ1~gj2#8Z(oYTD<*ma0@E{K0 zF662rwUc-vWLO@KzFz1HT0L4$rY& z_+m*meJJCZ%CYs>t9}al&ww+46M#I(8-gqwkRv3$i%*^6H}KA94q&At0&+;{dmjva!})#0-Q z@vZo;!*J1QMT7mo} zL)H08p>^i)ahdR<{T87=KOXt(p!`Nyb20v%D7!PIIe%zXu~O(iUX_1~unSth9rSz2 zf^LX~G|E*a?;Teyd@;YvknxAZQGE9c<*)~uZV}#Sibp;i{Hym2&I`KzJA1MP*{{Y3 z3SowjCvdOEBQM8UapuYC0=J!J-orzzSay;ZruOLi;N{#eywUyRF{4KdtUxPpd^}P& zq@1EYSt!gC%Ao&OlvbQ97NVqmW6WDD5RONLp<%?qzJC|$Q@l0?u}})-s8NO*?I<(( zBsZU%HSPmW%fG59sE#_XD;C%$SpiB8mI<=$#jt&9kQHaZHs53K8xlcrYYd3wWQeV_I6{H}}+p z<*J%+R>o>WO*l6T@fcJJ&((3-ny^w`6CRaW6V_y}HXI2nRPjjrAnTqkJX;4Y<8WA! z1+0E2oSO-N4%Slt)38g_bA!29@8r9W4#=0%iq|rjSn)V5t$7spm|rihcoQ+>Kf#K( z1R83AVa3x8%7jPim^ho?@_$d9wUY*^HCqN5KTcf5xNhakc?FdBhM$|l?Wpt|3cuk} zZd;IF@7Ytuf^WF4J$(T9h|6@kCd|pVfj;D_Jip#m6IP4dUf1Fp{@99zs#g{ZU54-U z*Muj?-w7*3*>kR@Q#IkyNq&t7k-03}0t?xfxy`O?3(-I2n$0!+jiRS5e)6hva7mp^ zjKuqXrQq;3)TzYwe9N!e#%N3pK903{p;%&(KWqDp1NjBnFEgy=QU5Zp>g7={#UqRS z!`>|Dp795~`kGrknI~()Dmh{fAKyN9>q6D`F2nYw`PgSvuh6P^j~}bPUv6Oqn$6jp z-uKqmrs70Rcr5(Ypwvsp%AoD_mMz?KVOK+!;bYHEZw*$4gw1WoW-Vj|s%>3{ zdz(J=&RB>DaEJ)kW%#4_2E<8^IK7MYbh^0i27P5-tmOrT_1#r#40&!@;gd~odwJM@ zQ~ccLoeFx7`1zW53g}nysd@#y0gEqs^FiMNi$C+ehHoMSF9Lc2j{}AQYbSFojI;l@ z0UGcGzn#RfgMg<1j{#Z%%K%FN1<;!ZTnZ>A9*_^X7LWyC09vQE3PpGPXOBV{B|Ku7 zV_CIVdj~6=F7V(Uvh>zw2)!XTI?uD$LV5C6w$>`Q_FS;rMt@)kS88`%us0n-TpEVk ztFRKvSmCaV9LIvUUCKL9A*g6<;^eW_m!h*VlekSZBX;>R>vc_QKz-A%uD3VoEJRoM zx$QkoectU8IkpiX;9FB8;2yx93$Cg5{W-!GH}**F`kuu;kFx-0hDS|GjIe#as(el; z_T-CWXojy`s0?T5Y3#k^W5w5;Bt7DG`KqCp?-?iRUF+io8CI8Ek<0O6?CL)E=7`)Z zkvr$*y0b;T$j5C{3tsSQkLWVz!%LruN7aZi)?g88!Sh@DifcLv^ z27bRbBcNRMX5e>SFCf3AX6P8(fm2q9%f5dix1-vxQq|X}-EY@qT~s}UI#oyBs}$-5 zc~9S<;z>GRAx{m+yfPQtF;Y;U#J48!S7Y|bzlhoQV_%I~p(JMih>gT-X)I?k7YeFD*UQtx`jh33T|4a0K|L;Z5os8Sp#jiGNCr+2!WwXb4xY-+p9|>E9T#t;O z=+9JSbyo{Hbsd69Sm4i69vx8EtTv#JYU7b=_r1O>x!;qqP*%bG^;nUpRgYJF+f^7< z%#0rU5c_Q|){7|SB-_8ChiNUCOTA~g?S{|aTl$;uayi@9Fud0O{6%@;j!bru)5&}8 zk18(epxcJC1`~JRU1!-2tQtJG4QmF=S->vJ$E`JZEP0doNj(>0Htuvhvi>a20or)v ziG*$e_Z)O(ih9P&F3PLd82->C$I0aSYv9Xxjy)P=dRaenZwRt#-TnrjUeVyIR&Mbr zN2}f4KH2E0?nWQe+~t#L*7;hNt@D|evEaw9247?2`~JJ`>UFnOX->~FxO_6%qdvKO zy^paCK8{QAH%3tIgQzr9NR+;>IZk(7epR>p}ZjQ{eq^j9p zEvK4U@RzO^LY(3+AwFl+Nm(rCQb9}^cID|qjFZQ5Kvl<-=kL|$^#3BnD|4X5%|QO8 zV)vq;Ohd9md5is@JirB6O~zj^cXCdJnC1~bW9@#9qg8P7dwVXhshaod)kdF=HTdRh z6sWJkXIL`!f@`!ZxZQOy#2VCYqwh}5ogv2be#K(FPs!=}jJ`#hO1&O-#tgfrl9vO= zo(Zzi_?{^+eoySt^J+Ig=jWkp`Q8vO)11(ht53^9<2AnxX=GeX6V%3JAx%GWWXIjV z4e=TdJRj3sI_1{;G+cM(nMu#PIn*}2TGwauDHK!Z=bzBb%{iqAjaM9oMLwnoqRjb9 zpPXr9it{x-IlMX?(j=uaNEM=Vx}fWWMv(9pc(`HMHBRMzbl5e9o6FsLhnM;@&rLl# z-80hPN)Pq7!aY&QMY(5u^3hYUTj1w2w7hYd@>nIS*B86>7&W@S@fTc*`EKrlYmBas zVqFvbQm-GjbBH+8^^yHaq8+Lu-;GnVaHo%(t8y>#$!{df`eCNk^)Yw17(b@9*J16s_l%tJs+D34!h``p)?JdFD#4 z$H{#xsNYsayFb>TDuqyiD2)&F7=5r&jl&|MykRhb2zPdXM8@n9QKXLxW*fn*ABd ziPf0%qi^x7Q#bf-QY{y<`hPwd`B^9Pu-0cS%U=*;N^V|;Ct)f0=c0*idTw6iSW!%K zUKz{$Vp>cSo)%L_*~Ds`BC36AMGaPoYXo>DQ$j}pPZTj(7@lcR=F+%o*W_xSMsD)U zxwlX==lSCRtDzl#U+l3EU-qo`joA82)IJSLu#z7h3uBCy3`DClgzP&W7oHKaZhyq^ zWu$!Qdxi%m|2j9*!-}}McSRN7SRm+y3Sn#Qi&dW=>pL6WkTnW>4uE1!zvI$xxb#Y5 zc8mGJ*@^oUy259(oo)8nrp^|t%}AFTM)C5)*kOL)U&tJgiA8v;jZfUS@#3`>KdlAF zIEhV%x#K}|hw*_0dGUetYjIwSG!WW z!eniwg1Gi+Uuota6z{O881mqYv(v#(TMdPDKk1HTHm>VdSXU;VY=}2+()+WeP!T#z zmv6)tcbYra;5Kb3tl~F&6GRF3wWx~jhj_cyZsr}gZhmM)KWQVq&k|8a+^KI{9Cq?6arHNHJtrFEVE{o%$VP7ZzA8&x z8A|gLadb4>a1r-)eg1X5`ppfoIKWF{(0=JOqB$gPriNc2ZUZ2mxeUC-+kt``R5>oB9( z@DTWyr?~h)eBG<+J+4OJo>!*2UP|(V#J@h)bt(kBTj_FzNzS>7&nL;GG#_wlJT7w!E22ITu0#IGNaN{C6^_1}p%^^{9A-pbA6 zix*kjO&vBK41aU!jV0x}vRg{a%BK^9C!+dtD2vYz8AtEil{c5@nJOzoujVpkS&FfW zaol+B8g7C-kDJI%lI3%_&o6aY=ux3*IV;5rLvx3nmA2cQ=2CrCeTmbwGRduM?<`&3 zX~q8pSX)@B#pJNC(v~&t^y*W@cwt#eI{2FFpf{va#t2!5xs~)1guT^CmEmi2snfg~ zpDVyXWE0;Rmg<+>UTR)#ZCTAq%@*Sd@!PAYZZvgt;NhaEo}yvY)Mjl)g*F&U7{EJ4 zR!Z+r&F#n|b0$0iwJz^;n(5pAzn5s7(`cml)BkwT|9jB8`&3GeR2t720MfHVkNz)% z2c1eZwkc@=DZOs!bwjU6lq5bOaXns~;BJKj< z$)M;r>EJmas{+s*B|VzY$Du&;IF(>pObhTybCEpR&{S{AH;`-v04BsTH2-^{NB;{UZ3pqTq+S&;trv%&N9zdb(HcWGNpCfPe5HD5 zJu9X=P|&GFdX%V#Q+kQD0Kesuv&oe5@e%MTJqzBDSnxLDaq7%uqBHP#W)l2p^;{TL3 zP8*RS>$2W2LBn;ij}!k-G$KpskGySO795tjzEw0np8^p@E$VAF4;Q^y|d73RZz)9 zO6eU3OSuq>iS&w+G$E1^{2c&Wb|5in@OE@giUB4aN`%EWh#X_LK@S%ums3jbe*kB% BMsxrG literal 13964 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