From 501e6b414a9531083219a4a327fa0e653c502d9a Mon Sep 17 00:00:00 2001 From: bunnei Date: Sat, 20 Jul 2019 04:06:24 -0400 Subject: [PATCH] android: frontend: StartupHandler: Add an intro sequence to pick game dir. --- .../citra/citra_android/ui/main/MainView.java | 1 - .../utils/PermissionsHandler.java | 10 ++- .../citra_android/utils/StartupHandler.java | 33 +++++++- .../src/main/res/drawable-xhdpi/ic_citra.png | Bin 0 -> 11816 bytes .../src/main/res/drawable-xxhdpi/ic_citra.png | Bin 0 -> 18058 bytes .../main/res/drawable-xxxhdpi/ic_citra.png | Bin 0 -> 18058 bytes .../app/src/main/res/values/strings.xml | 75 +++--------------- 7 files changed, 51 insertions(+), 68 deletions(-) create mode 100644 src/android/app/src/main/res/drawable-xhdpi/ic_citra.png create mode 100644 src/android/app/src/main/res/drawable-xxhdpi/ic_citra.png create mode 100644 src/android/app/src/main/res/drawable-xxxhdpi/ic_citra.png diff --git a/src/android/app/src/main/java/org/citra/citra_android/ui/main/MainView.java b/src/android/app/src/main/java/org/citra/citra_android/ui/main/MainView.java index 01858d318..9c04afd99 100644 --- a/src/android/app/src/main/java/org/citra/citra_android/ui/main/MainView.java +++ b/src/android/app/src/main/java/org/citra/citra_android/ui/main/MainView.java @@ -29,7 +29,6 @@ public interface MainView { */ void refreshFragmentScreenshot(int fragmentPosition); - void launchSettingsActivity(String menuTag); void launchFileListActivity(); diff --git a/src/android/app/src/main/java/org/citra/citra_android/utils/PermissionsHandler.java b/src/android/app/src/main/java/org/citra/citra_android/utils/PermissionsHandler.java index def47ef49..0ce1abd71 100644 --- a/src/android/app/src/main/java/org/citra/citra_android/utils/PermissionsHandler.java +++ b/src/android/app/src/main/java/org/citra/citra_android/utils/PermissionsHandler.java @@ -17,15 +17,18 @@ import static android.Manifest.permission.WRITE_EXTERNAL_STORAGE; public class PermissionsHandler { public static final int REQUEST_CODE_WRITE_PERMISSION = 500; + // We use permissions acceptance as an indicator if this is a first boot for the user. + public static boolean isFirstBoot(final FragmentActivity activity) { + return ContextCompat.checkSelfPermission(activity, WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED; + } + @TargetApi(Build.VERSION_CODES.M) public static boolean checkWritePermission(final FragmentActivity activity) { if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.M) { return true; } - int hasWritePermission = ContextCompat.checkSelfPermission(activity, WRITE_EXTERNAL_STORAGE); - - if (hasWritePermission != PackageManager.PERMISSION_GRANTED) { + if (isFirstBoot(activity)) { if (activity.shouldShowRequestPermissionRationale(WRITE_EXTERNAL_STORAGE)) { showMessageOKCancel(activity, activity.getString(R.string.write_permission_needed), (dialog, which) -> activity.requestPermissions(new String[]{WRITE_EXTERNAL_STORAGE}, @@ -53,6 +56,7 @@ public class PermissionsHandler { private static void showMessageOKCancel(final FragmentActivity activity, String message, DialogInterface.OnClickListener okListener) { new AlertDialog.Builder(activity) + .setIcon(R.drawable.ic_citra) .setMessage(message) .setPositiveButton(android.R.string.ok, okListener) .setNegativeButton(android.R.string.cancel, (dialogInterface, i) -> diff --git a/src/android/app/src/main/java/org/citra/citra_android/utils/StartupHandler.java b/src/android/app/src/main/java/org/citra/citra_android/utils/StartupHandler.java index 12a406f7c..b5c75e65d 100644 --- a/src/android/app/src/main/java/org/citra/citra_android/utils/StartupHandler.java +++ b/src/android/app/src/main/java/org/citra/citra_android/utils/StartupHandler.java @@ -1,21 +1,26 @@ package org.citra.citra_android.utils; +import android.app.AlertDialog; +import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.text.TextUtils; +import android.view.View; +import org.citra.citra_android.R; import org.citra.citra_android.activities.EmulationActivity; public final class StartupHandler { - public static void HandleInit(FragmentActivity parent) { + private static void handlePermissionsCheck(FragmentActivity parent) { // Ask the user to grant write permission if it's not already granted PermissionsHandler.checkWritePermission(parent); String start_file = ""; Bundle extras = parent.getIntent().getExtras(); - if (extras != null) + if (extras != null) { start_file = extras.getString("AutoStartFile"); + } if (!TextUtils.isEmpty(start_file)) { // Start the emulation activity, send the ISO passed in and finish the main activity @@ -25,4 +30,28 @@ public final class StartupHandler { parent.finish(); } } + + public static void HandleInit(FragmentActivity parent) { + if (PermissionsHandler.isFirstBoot(parent)) { + // Prompt user with standard first boot disclaimer + AlertDialog.Builder builder = new AlertDialog.Builder(parent); + builder.setTitle(R.string.app_name); + builder.setIcon(R.drawable.ic_citra); + builder.setMessage(parent.getResources().getString(R.string.app_disclaimer)); + builder.setPositiveButton("OK", null); + + builder.setOnDismissListener(new DialogInterface.OnDismissListener() { + public void onDismiss(DialogInterface dialog) { + // Ensure user agrees to any necessary app permissions + handlePermissionsCheck(parent); + + // Immediately prompt user to select a game directory on first boot + View view = parent.findViewById(R.id.button_add_directory); + view.callOnClick(); + } + }); + + builder.show(); + } + } } diff --git a/src/android/app/src/main/res/drawable-xhdpi/ic_citra.png b/src/android/app/src/main/res/drawable-xhdpi/ic_citra.png new file mode 100644 index 0000000000000000000000000000000000000000..8a9e4cb2d49c80466b4d5503223341c74308ccaa GIT binary patch literal 11816 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 literal 0 HcmV?d00001 diff --git a/src/android/app/src/main/res/drawable-xxxhdpi/ic_citra.png b/src/android/app/src/main/res/drawable-xxxhdpi/ic_citra.png new file mode 100644 index 0000000000000000000000000000000000000000..11a5dd384139f884aca3cc598aa7043c6576dd5a GIT binary patch literal 18058 zcmV)SK(fDyP)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0029+NklIuImyh3Zu_!u8Ma>(&17$4)H8z1AK8z19i9CYJj9CYJje2jx`e2jx`e2kBA z(2b9A(2b9A(2bArF%G)%F%G)%F+N5--0>;crAHlb2(TA01K1as2221Z1MNUPpzU`B z&F zZucFNfj0vm0Nwx`xSO2!uYoIp<>R2+Jw`ilrj=%Ix5oeOI0k`l0^b@3-L5;%0Nw+< z&q}yGW&8#BXJFYl=yr{9Fz_+pEbDphsbc{6IB>@}=yuMiw^A(t+v{mu0Q}ELb}&v3 zS2w2Fr~Lw8|JUgp{1Qk4KOL8JV>=E6J_USa53|)qGTsZ^GY-1ZA8!OMwP4#hacZ45 zhZeh>QX0najn9vRZgj@6z{OULiXC#q)GLr)3h7SBbV6n|cwON4fJlP7543*(+RojT z=Bd*#1c*n{k478=;tt+_!_{VY3RX^qems{ypKQ@O@FuV|Y z?|{L_Vfb$bNWqW+*qn%Z4Z!4s+YI|Ig~W^)ux)_eA3^U8klvL0ZFmdbOU#D$e}oB_ zfirP5F76ym+;$vv6^u6EGP_L}lOv>;L;qdSdmE&lgN$#$4FmZ`^W-MgXbB**Y5{2e+G^JFw(1BXSGCX9CW3}`Iy+^+%ehv z&=auzrv`ATJ|oE-Kvn^?V0b$w89U1_DI16t-wHBG$K)5<&m8kqZA zXdSVw_+P*m#z7Z9P6V#Nq!f+v@Syj0==on5co38YniEl(q5`00f#MrGZ`Li)^5Oi? zx1JAuzqWpL()=I_G!-Z9!V)xNRQf)TL&KX!gIaoZ9CW!c5%^CG-!}TA@3+u>6%4;% z?IvrV=^FjtKozDHOu7)J{37&OA8b1Z2L5CKtsT(15Ky{^U8f@7NoSz(5ZLEA5Q&&` z(I6_ih~HRxX&iLGdBAso>7&o14Z?==Vf!6M;$=D`-9*X8k?nk95Jd zcf-&EaD+KvF^8cP(4wj~<-=Y#L0h5Yu2VzkjjNDz52|EFjs#vP^@TmXFy~O7R&c{BK(;3UlPDv@qwjjJg5bs6=g8j{v~L({Hj_4eQyP|0c4^AXP}(wjN60(9Kg(9L*3z}wQ*}J z?rcfsfuDnyE;o}G7Bg>lXV7(E%H@6rG>m9Z{x<0P39L91mK+JM91Fb<7V%hL0&jz% zMk)bYIm2FBey#NaXuZk;?q%qIy9wUQM1=sV#9;{UL>u6^tuXseXf2=PAX?gxQ>UPo zK1=$qca{74B;bR466pQ`c)SuKvb5A1fKA_lR}P2H`Otkoq}D>uLg@UU$W~4mx_DZ>5oES%+>`tJYhDne9+KBct@Ho7B60H0r46KAY7u;knGgnwCCV`=+i-S%S zqegUy9JX8BdrCoaKj?S>NPyl1gQtP&G=ckoKPzUdRV?X*u^IieQR6M|gINoqcAP`FE)V7i*xGIcoM~&2Lbp7B+7?|6JY9nF!fGI z9$DKQ4)sF14;+c8PvSrO5PE2!+^^mj#o6uvx-S8LWhCtww%uy%wzXHA;B_)-bJ=um z7UDJrBY^7y-Bl>rL?rB0O0}Xv3TV3*oP!K7hRy_kp(SQT41jcTa1rM`WGvVe)Extp zegjkg1`S1mGk!k|y#lGulGCVrH^bl-L?Vf7YeTJEi1+McmC#vv=_|W(31TB~9VYLs zwvky2Yc7NCJI&wqiJW8;p~p@{ZmuZuIQnaV-VoS|-1IngsIl1^K+B!ro?zY_dN*YL zn#;4(g-&K}2coDWn*EOQ%-_kQq3LtbP{b=8dKtFg3;oZ+;PWuF9CQQB`aH~zw_tSt zHW)}Fnp}_qnE>ypKae=#UFGh?nZOgfI_UPp1nG~jUAo-@YrhCXYatO-Q|TPw%Be*O zI1wgBuQkTFC?REv8T^{Q};RfirAG&XXz6B1e@!=~47RKccC* z)Y-lb_>Wx~bf*Bnr`E`VP8;dA@uy}YlZpJB9#(;+0`!uQK_61D6tU+@g3fYr_1}lY z1r~6hfb<H|yIYpe^A|X4Pr{xUWL;bLPGDry=tz3pl3;po&RL z`$cWlsN5eK=R@5;fe1+(Z#``NU)XjV3@$QY5|v=v z3$&9!q`Ofs{tZfl&c(#Tuiw=`_n*L*YvXXq&y| z0vwqSvgo<$(7d=Eg>YZ}G;CQ7$vOlYEsXss+MDo~K3<86Jz-Y^-Oqtf*8J;rUx0Q0 zWhN|<%%52i^)yR?PUmM`$O!1@D-PBI^=c(t;yg%RZEdQnApITtxl?$@i>gvTCo$bQ zki6W0EgahHyB)S)550eajNN?_o5~(T*~B?5S+zT}kSSXFD5|F)(LT{WCQKU2q542op ztQha7wULzVg_W6V;Z5j)474>Pd}GfU;F&5h(NKr#>O}W!L$r02I{MMTgF6Fs`(Rqg z?_FCc=6P6tCJe2Ex~J@z}mx!c~Y|AWl?bAT&K zfv6m1;v5gjOThg|4iu@!q5pqi;1GhuO$liy;=Ex@+lo2|+9E`6st5J_ z9gq;Y`Ld>m0iJ@UX7u_O@n3lw_qdX2jq`SfO}95@y@J{RmtFzO&VbZ%*wHTdI ziU^KMEDgxE$i7R|CI~>D4DxQE4)k(JpACB0kiWW^8V#)LlOXYFa6^^$!w*6Kbue@{ zWGvua5dm5VIF$fR7uV=aJOvu^lS1@Mcc9mHB3fHPYlAmwoQQ11F5yBZgX-Q;?hfv| zqd~VH@CY!gHo$ellDEL{MkC=$O|SqQT`0+9+^Pr-r2Y%`os2)0!fP7$ju83N02kt1xFE`vn0^y}VGhK5?Bf zZ5@g7bH@-u8@tX*KG7&qt6nU3pjnv2u^k4uN3Hi#{qTF>wXH@-sar~=23U}~ zxHsxditN8g;9Z^#@}}HQGv|VOH6L(7nfy5b*$DE(koY9XH{~KJL;np!H$m$8P)mv! zeytP*A}Ua?QDCNhXg{_pfjG4eDPx{ zFlR@AZaQWSs+l$KVe|K4`wNCmr;LP)do7Ep#3HITu-#AA-~#csZ8 ziUVC-WqlSzF)CHYs9;IIGk}Qq99D zPcuM9N;ln0tQhJC=WGxMN6dg98?`9x$tK?u0?axX{)q{NdD|`6M9vcx@y=yc z>ax<``o1~#%>OF1^8Wl~gb!M}7GIG>S0NBm8^~!5jtl+UP-~XLeg~K2XU7V361WS~ zyLS{=y?=wm1lasD7<|sK^uYu;fRiLo7gbs;lc#cZ#Gac+;aYL^;C{CFdAeT)v6tE8 zM{+6@K(B}Nb&$RmysbIOrXonuVsxZf*`ZCiY}V&YflhcVyAPH=iEd8hqAOT#E@YZ$ z1Okl`0^zuj-UgdrD|g^AQ?EB-*2NmVG4W!Uco7Ud3H^VAzK39F5u`Sm{Qqc-U%D|K zW)ZcT_nw{BL=A0+#VO#P5_xkF(%*;lk3n@?Du#T+Ul-xdN~JZ4GGuQ#(54hL?*-Gp zTL4D=$d}A_5(&uKZALo?-+)h94;D)lBL(;h)xW*$og53$eUmY36fL0Xc(YCY0(hHX z;0Z$*rxrl^MPrz2-;~%nVQD7|RRkiUYVGIl8$f<+pdC*i>M7~ zqdl}$t8>2v&2P>BtZyCs?J8r9J8rhqyUz3WMK1iM!#uS{BtZ}M>`>61$OzYr%D-{_ zpfjeSi)^e+b;wqzf1}y5`{^;#Pi-+ER2wmiH+O>=0MTn)GH0dm4&K%A zU@Msgyd#D-YIV}PVDgs=KmN;Spt}d!6M_EBd8Za(*<89H_NsHy8c`=r@y-qc-E2(8 zNbMuN3bx-3L(hP>(tw1tiGMmRruBScD!7wOOM7P~xU<2T15QVN)@&XS+iW=NKujLt z7!EZb)O8_AC2Gb-Y_saJhFY1OrWLdu0dsCE{CN4j@XVdiBJ=gR)ZhzygusR~(TKp- z6H=IVERKU7?nS3Fh-9MJiL{Ic=p5i~OsZ1#V`wpK{1Nor0-3>Fzg{Q8tLc!p8q~44 z0%Vg(#YyY~iTzA=hC9pTpE-x-a?f_ePAy_iwNqhuyZ6TGYIKas5YgLN*fK({S1?`QvKNQJy`Q))5s-> zt!r@N>qoQishn4;wN=CYpw>d_uc4G{OqQ*?H@HWEJOP{|OijU94fzG|zYe-LzVUP= z5=o2dK&oRvnFmHI;oJt;`(8-yRd~z?FNSsNpd-|nJ6wZqod-=2a}{~cn85ONQbMW^ zof<+k7foH4BL&@snDw)&AItv{*56=&R_ErzPvzPr2w}XyV!e6;V1nrhqE>_V7|0(P z%eB42=l%QJXc2;0pfcl-M^85?g-$Tntr+T1F-Q9)2r8U z^JhN%q?MY`vcM!J$@Sea%(*V zQYp4Ie-$m7f^{c?jF3s^!_;qs8`I~zrxWhIBz~=n$V6*l_&ODoABtR*PgLh>j|g

$39ndI31<*Cx#+3k5M825i>c(bOrowY<0dWk-WAeRRwaGNiQLDjw)o^+K z8k35ywwc~5YP$uH&Pm9)w)`rzIY4qYG@Jw-^Gh#Ca@RSqy%#39MQ?)^xt`kOlx&tJ z$#Rb(GQY(~qE^sdiz&3IZmj(#tokK12%AZ(%d3c5C0+rks&lUs-vM#_2+_3N^pc|w zQ@hXzOaRenwvwt_f}9Ra2j@uRIOSc}fN6-RyDSL1P2)z@1^yQBwwU)d=D4y0oN18Q z*EmxRZz)VbjgE&dfu+wtdyxcFE7`IZK!~5qWmt<`X(Xaj1EHpsYtN*XRcE%`3d_E1 zY&hxW`g)WFOBE6>E)yf`Z~)0;A@Ox^-ZcWSb%FOy@PBK-pfaFcQ|hPcK(~UJ0b(DJ zdz*A7ISbtV!L6_dkZ3Xv5PKH_vZ|-D$XI+M{NJ_4j+0LD%$-OkK>>#?veupb&_}!V z`OO>)hgU7=S}`@M)s4ZIVev;T#1U(ya^9 zZv}rzWc@AAMm$m`Dx%kd|CBj)Hruxe_384t7`zvgR=QoVXs#y(q3eh|f zk#I`w)vpwEiJH{vx}QSlEyi)60tr=2Rf;Hi8gdGPcKAM!Xn>~kpy`W7jb$hNanRQR z4}jbTdM^;ms4A%M{V_*F=yIEgUnDN?Zdzw5h_EQ%c&V9|cQXACqJtZw0Ym z3%l zjf8k$wTRGd%JVLSEw`v^Dy!rx0o@Up_3f)0FMracmp3KylNBqq*NOtuf=vMR)1l>` zpyd*9tf{G9gY-?Nm4kjY7p(}6At!_UE!l2ldNueLf&Nntl>7pm??gb?X&o3*T#ZH- z^^J9K^69#w{YDf<5(n#5Xazmb!q)R(?&GlUPh!d&W5$!;hR3dfHeovfRFm40y9rtc zE<_={5HNQ_gJ>#ikM>srx@)R-lh*wb);$J|GCzkcu3<|-a-zuhZnNu^TBaSKX)kEK z7~1CNmKXP)HMIxc?c`dtlH-z;HaE$+2ZSx#&`TlxHdD6{2BumRX=0f&#I2^px~Zbf z^5s+@0ZVzM(p2DQGO*&O(0UR~`B3Tm@WRjG{(m$1ajsh>;PM4ov>$ju`k(U9b@hlT zW$Wk%%7N|!z+0+1%XAmK`bGPMI+2G)?^S)4uYC*p zx}m|TOs$F{#E`PBNFAW6rM z+YPgbeU*K$$50*x>QWS^P0D43lmlB-4QJK7Z|=;*5~~}$dKdieqsBI@Pt**!lGjuK zIv<<{idq5#CxY%afKxHRkG6ePJs~M4Vgm9tdbF`p zO~lVtaD77>_PH3Ei!{7ic|Y8CwmIJ>cf^1b5v{L9{zDLC6|1y@wi(EdvN7$hVxa2) zzEbrWuKI5nPC;WL9{_pkQp9+%7HrBsnUg*OlP`eg6LY?J&(+ZXD@eVV%a_Z7En;{m za;Z3tmqPMuR!Z1~-c+|y!Mcbf(vdKZ+GZOL%6P}15-_P^-fje#MF9s4`!L}^*!KtV z^WXU=xcMw|u1)T!ro-zZQdnD2tOhjV$TyYa=m54B1KnqUDOH`7KLi_o9ow6*Kz#CYYp#(2HSd7bwckMW+_WY z6ptimO#Cztbba{}u^i}1Q6#03E=v*3!yeSN!XdYV6SJb_iu>T!_ZgaH6ag2GC>CAf zLI`v}I5X!}vb$LI+5%iw_1Sel2t8|{PL!rZg8mt4`}c%{V9JFs<)e_8X1||;?rUKC zk6~zyjT4d|oDRoeqc<+2q5e2%zT1LkJ#0J4*O-lr{lo3AD_BX=lT< z^Pn|UCg}G<*H6ttzp2$$jY_h84D#rdNYp}wNcN0^-iFPC5T4I>1XRm{MK5edP3;>rUgLNE#l5@J$Fo?Ma zA(|V@?Qjh-!N(5)ldC?r%r@wI-kwY*m&KaFG>4jY63qBGOgR%0q222t*mxam{t@)A zF;qYzP@|EH3rn+r?+Z&GUxC{U6CMI*Uvu!TcS35hk#KpzLy_M>J#TF-$aYrB0?{ii z>7o=06*?3})v7j5LtQ%@{s=T3SvcoUd;=c%ikYv5QKUuUoClFVcR5l*poKzv0(r>W zD%s_tDCmS$tUk;qP!uh6vO9DH0QyL>tdx_MJwcmAxkAN&Zn^6f)aLSCE>5=@0D+OxCw87d3Tsvhw$(Q;GXl~nY*Ax z)EwHXjSCi`=@;4ORrL&_XTKe1c13NZUyg$A+!38&{T!J4nG*5XU%;9lK+h6$)H-ZP zC(bd5ByJU`*FZ8@zGeC?&|p*0H=k#gluQCj7OyPRCA`rBNoS9zN)%96l3y29sVa26 zUItRYjC0|@TPRq;aJU<8IRjo@VB9=8wtx$>!MRAHP2SX)G1mSc+ok>H;poel z0xs;i#`MnfQ>bJ+iNh+g=bi?J!k{|=m@}&9-2W0R|0Zm>HAj;K6<~2rLTs=<61@oO zB77Svn|UR)+3;5P6~_B@BO$nA5-yGxP=M0}Vq)YsPU$qHN+ez}8fDls4$%JBz?6>{ z?*FA5;l7Jua2O^yJGSYLT}oExIr~9vghmZzV8VeU4y(wXdn)S!gzUM|8!NvB%f1G~ z86!jMlQ~x?8nV)qCwud}RNsJj`e$K+jnr+w9@bxJBwVm6jTZ51L&PN@h|qDI7I0>a zOwyH$NN53m#yt1!hr<3hLQ{-6{n%IF!EYE-p(U{cq+8T;6$K8H4qi)*>e9$l--W18 zRIkQG=vM5wk%LH_2pBT3gV|RfKwg} z0}WGQ|L?)%^9uL3@p-uKBe3ojnAmJGhLuOYeivg8xR3`H4u1u)ZMA(EW}b+9@Ea@H z;{)WP?6{cj=hH@Xk{f;v3vI4jV zz?>MqNp^%fF3I9#RvZuKd*=LG_J-MCgURO??myiHPk+|LQ5##Kd5!_7N`SOrlb(%? zr0xGcg~@=U$exYa-GaRNXY{-+FdMIuNrwS03nUU&%%*cxArH>S#<>Zg*7D z4mHR|Nom7f?eklE6MJC!dtqRmA(o3Rnp^e#uq)dn_KS(QOfXpURW7Hl9O!(TN#g=@ zE`wSBW;%&R$M!$N%a=meD=@9zlp?2kA(Mb~0{n!j6crxGG$_Y_(9hV;0zNgjmnbV3 zgb}Qv_k@7V#$h=4G@O|g6|mn03`RjWx8{@E_E+e7(xfw0W9Y_`y&+x>VJ3DMnE8I# z|F^l{zWP4cw#cT#M-tpLrI%|GrOYC2dT=CS(sPn?z?lH)t)*%Ez-|i~j88fP=3D{I zZ-}3V*RFsSSDN2VwAbwQLn;BOB&1x(Bq3dAK&TvJY6wd|1(MJAMo;AyBrJ%08&9S1 z(+wm}JipRC{;J>^rrI_Uc~9y888uMn)+)pEJy~V@$_4p$v(AA7Lx5ZH3Fvyn04^_{ zDni{kBVdc8N#clM-$qpud&Nk)$&lP11{TB@g$pb7Q_8&VI1y(3J9HG`+xwn|rSoCS zQ-%(4om{qa(gW8w|0fcV^1<~i_>$n&S=ejU#Jj8BOjK!c1NYnDaq6@YdXS*L)4u{>n<#n8iJ^ zYeJS#;YDm_H0I%PXUEVbcC?)iTNYSDK6KGRj-UYAPk`x{z~m1XKi-<}!^*G1@E|nE zJOe!|VFZxO81N;0lW~&vLHY)GnS^BrY?+*}+0?!*XsY>sM4}LRUbq11<8^`i?vGV^ z-*1kaeHR!(cR*+4Pgd4(u&qN=z~1MiX)Ed2~@c+kvxy;GjDkO~@7=6}bx z|0@$F$Rt74gGlGw4?=|0ZFQ%Pi3-D6!9!G+F@Ose%|jdeHj$5t4B8J_iSU zKlfSx^RVb#Yx7mnX(+ZrSQr1EkIe}@x%9pp=fS+2jK?S{c;Nb;Hel!tg+0W^7ct#Txbz)ru%wU^w_e3Yc(~aTqE( z?=pbXDOhzStofF?wmNb#;lL_U5hA;ik??^`OthmObkg>S)A?;V{7hx4HVZPlc7zIn zPr`qDkT;AlS-uVDe{1$5hyIJFL0_dS14vxkujUJi^vMQN!PU7Eg_kMZo&aZ(Lqq( zf?8+rHh_Ej<;cd0nlt`6jwXppy6q#H>;t|HoBm|F2_-6tN@y7LpiaUu_ZR{-JXT%_ zD{qG;8Inff8zXWKLNTdF3<(^^(WQK7*%xO2cmxxWhV@s$imM=#%JFU$+r=R@tE&KB z(lcD8l9nowX48(ntu{uh91B8CF1(QMtOO>n&Le~c!qIr^htd0QMqyH-n zLmo8FfrI{NR$8oSJZo5iZP!97WoVFEJbF>3rqCE~*7c3Fb1i}FdRB6}<~+hAa@={@ zc~nYTYhMDuB?JZSa(-KUI{|ZA{(1dYKTVcziu;g|tQAQ9GR8`n@;dxL3hLScxAYsB} zsicv7%En|>Cb#(+PztRiSm0?TOroX^LTM?6mwLFLxsSTHRnTyuhAM)-Ul200t0E=&fYTkQBPQ_+yW&*W=8@@v_kWN zF!3GG{$`kPs_8UP)!2+FK!3r$7FM!3A#qx7{vKEYD}N8&osbke2XJ|k&Pq6`^TDU= zA{D}>D`{!%I*GPjO0()!2-Ls;>1}P)eg5aj)}~6&plaL%pj%-5|D$)x#LbxxjeEm} z+hE{j7+4CazIcKs*#Y&lp5FxVHN;`be5)mxms?(%aXxtB7MdIj+SBU(c zm2_2}ZjQ`-KX7|xMz4?V>qfLq8JkHQdJWQ>OznWzYrM=vn`r}Bm9aq2P9qTjfOC8+Iv|jP5n7DoNs~Gcjx(iNKi% z(%qGB9EwZ^?RjX=v&HJZ&2*OtSCd*YfI8$tn*QS#l^%I1rl^aNfDYhs;LR186RTc8 zty+Y0!bgg%ioA=B;g!&R8*KYC^gNvF1nK~FZO}Xe8Ye@t+1P-72GYGSv>66B!f>DE z5UD|;j*<6Djs`W}Yv94!Et3FGgO@@37I2;qzK8Y{D2;G6nbm`2nopwXTYo|{R`f7y zOjn2}Mgw$5SPQx`<@D6u_|M*fd-~^)bC25ffY$c}^ga&T{s4VXLdw>MBtpQ^cJ;nE znk~!^N-;7@WK2OPVAwUF%OrE4OC?MOyPtuKhxV(DNwt zFETkaj@=S5Qc8rEFN&mmh!Ev4)?Vm{3;0Dr)JBIwh&t#xr36|@gsbqk43OS3iTW#U zss?b6j|6aWk}d$^3skXOy7$Cy@NfJGV%k*X2^S#`co%Z!u_nV|EQi-^5+!^8YL>9< ze+q`Xa`sVl)t+5-RFl*hC+U1)NntDDh7)M}T4%6z9A?wLLI@Alvz_79E!2JXE)vIA z+{&g4(+#3)v_TiB*@aY51mVB9{~$f?Ib+X0BS14jS=1*tX0 zE=zU7;49F-5C&f~&PFB#GG`}oW+Rnyszzxiw5bRS?73mPr4s0L5}na#&qF8=?fD4d zqqcW5yrzl7g*Q_7wzH}^+8LMxO~wLr02czksAgyWE05vbekQW6-}H+1YyXA=M zwq7;poE*@Gk|EH!rVw8F25@+&ZCwnlNRpg?D|M&5rOr4tBGqg4hW6l%*BhF3R`y!Zx^r@XtGBm9_Jy6)EqI*I8kR#k-DU$qeLjaE+Oiv-=oIqKDjUR{%X6*mI6q;@tJ| z*Q_PgJBPZ9t|xI^RqY7xz^sPJjshK+V(bM}8Jks`H;}pgJ;?rNU{V7(Nu=}*xGeCp z(k}bA1)gL0qdgjP(f0l|?n8SL22C3ZJ?!SxYAOM~Lv@eP* zEV_rO)fxe(ePIBXmT1pGX9V~X?U}h0LLjt9YVle!t*6oWpAS|GxJQ8Zj>Y9yBI$y0 zET+#`Rc$D=2bl-{1HI^5$VotBD?(^+lvShJaIUV-NS z_-B!g{fG%oMz2a`KqkYgH3U3KPVLG)K;7yQNI6@-pnZ{D^hA5ofNeN|NV#Y)fk5J~ z>?XCk0r%{0QGd?G)t==Om>$%_V>J!cf)3zB;64i0GOEDASh*PQfeR5sPa>z(fv7`B zg_a@d<{0TFTx;tI3q;#iK{)z#1vniP%Y-*=8#JXIW5cBqpk2gZhSUq)sP=c)zEHb;MN9Aes9<3u}IXGXZF91_Z(}QV-WS7}|QUGLUl8 zc(_Ia?q*W2Rtcxb*||Z*y^4om^TZ-Fyw-9hGW zzr%m>D@eT*ITf?0Zs6etYBdOZg@GnQYBx~1yNc?qRKkVoP7UbDX8D>D5Mj#&wFxPv z(|9WsUS~7x^9aoRn^q&icvZowrS z&_d@5oTRoT08zl@q@EBVQ0@r85#izT8vj_887$UofhJUL?FQ|eUcV$2WIViOKHi3U zbn81woO&6_x12nZv+M>wVeL5f1keSZ?RA*+sG9Gcx8RSc=dXjU_aQqJvcmzl9<3~} z9MdOKTkwex=ydS6t@zir*j)=9Dg_NS7p!{LC|p#pV6kA^)iU%tkYXbH9cd+=@lplG zJJ)E`)--A@c$?c{#(Qz!@L>`soi@_s<)<*&Loe=3%VR7+hf#c74Sae;g2M-I;UoCZ zT?1Qwk8JaCCIL>pEl~{FaTaJ=2<*v{#)mOE zShGe1KEQwear{L$p*P)wloc)i%*=x>N%&%`B>~8}7?4n~wgDw~+VwxeJJlZ=}y*|2U1OCzn(OX|b_r3^Q zp8~%JSvL$xWfsM;>G2}yo#IG@l(yc&F4kdJQb22y_or-Cyk`UMzG=g!hd^Z{ddLB< z5t`>AS`UZj8OT{j;_P!Aa>4{-0*u|b7gHMe6ubD?S)dE6+%E$Mj2U(2fm*i~-QR=W zx)ilxA!_S#ggINX#mO z%6yS_~V{( zQM)?mf-wctKkvPm%CtRsC`kvEwti!bHe%*~d33PE|8Ybc32n)s|fa&)Av9ib3TXne@_&cVv=_+93 zxC8$B0A1Xe1niAj;bj(ZATS40$J=JNV1cP5CP-*BIlv d(cOLg{{SbIzyBbmG>rfN002ovPDHLkV1oUkaM%C< literal 0 HcmV?d00001 diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml index 511276b63..ad249e883 100644 --- a/src/android/app/src/main/res/values/strings.xml +++ b/src/android/app/src/main/res/values/strings.xml @@ -1,17 +1,11 @@ - - Citra Emulator - - - GameCube Controller 1 - GameCube Controller 2 - GameCube Controller 3 - GameCube Controller 4 - + + Citra + This software will run games for the Nintendo 3DS handheld game console. No game titles are included.\n\nBefore you run, please place your rightfully owned 3DS game files onto your device storage. + Control Stick C Stick Triggers @@ -19,7 +13,6 @@ Modifier Range Analog Radius (High value = High sensitivity) Analog Threshold (Low value = High sensitivity) - Input Binding Press or move an input to bind it to %1$s. @@ -48,55 +41,26 @@ L R - - C - ZL ZR Left Stick Right Stick - - Frets - Strum - Whammy - Bar - - - Pads - Bass - - - Green Left - Red Left - Blue Left - Green Right - Red Right - Blue Right - Euphoria - Table Left - Table Right - Effect - Dial - Crossfade - - + Enable CPU JIT %s Dual Core Split workload to two CPU cores instead of one. Increases speed. System clock type Set the simulated 3DS\'s clock to either reflect that of your device or start at a fixed point. + + System clock starting time override If the System clock type is Fixed, this changes at which Date/Time it starts - GameCube Slot A Device - GameCube Slot B Device - Audio Stretching - Stretches audio to reduce stuttering. Increases latency. Emulated region - + Video Backend Select the API used for graphics rendering. Show FPS @@ -111,27 +75,14 @@ When enabled, emulation speed will be limited to a specified percentage of normal speed. Limit Speed Percent Specifies the percentage to limit emulation speed. With the default of 100% emulation will be limited to normal speed. Values higher or lower will increase or decrease the speed limit. - - Enhancements Internal Resolution Specifies the resolution used to render at. A high resolution will improve visual quality a lot but is also quite heavy on performance and might cause glitches in certain games. Use zero(0) for auto scaling - Full-scene Anti-aliasing - Reduces the amount of aliasing caused by rasterizing 3D graphics. This makes the rendered picture look less blocky. Heavily decreases emulation speed and sometimes causes issues. - Anisotropic Filtering - Enhances visual quality of textures that are at oblique viewing angles. Might cause issues in a small number of games. - Post Processing Shader - Apply a post-processing effect after finishing a frame. - Scaled EFB Copy - Greatly increases quality of textures generated using render to texture effects. Raising the internal resolution will improve the effect of this setting. Slightly decreases performance and possibly causes issues (although unlikely). - Per-Pixel Lighting - Calculate lighting of 3D graphics per-pixel rather than per vertex. Decreases emulation speed by some percent (depending on your GPU). This usually is a safe enhancement, but might cause issues sometimes. - Force Texture Filtering - Force texture filtering even if the emulated game explicitly disabled it. Improves texture quality slightly but causes glitches in some games. - Disable Fog - Makes distant objects more visible by removing fog, thus increasing the overall detail. Disabling fog will break some games which rely on proper fog emulation. - Disable Copy Filter - Disables the blending of adjacent rows when copying the EFB. This is known in some games as \"deflickering\" or \"smoothing\". Disabling the filter is usually safe, and may result in a sharper image. + + Audio Stretching + Stretches audio to reduce stuttering. Increases latency. + + Hacks Embedded Frame Buffer Skip EFB Access from CPU