[{"data":1,"prerenderedAt":16168},["ShallowReactive",2],{"articles-list":3},[4,237,380,614,765,947,1104,1262,1398,1715,2086,2236,2407,2549,2728,2842,3100,3284,3681,3836,4218,4804,4963,5037,5416,5678,5940,6094,6509,6685,6867,7085,7249,7383,7821,7953,8397,8687,8909,9051,9336,9447,9584,9705,10760,10961,11147,11218,11282,11342,11406,11468,11584,12408,12533,12719,12801,12884,13080,13244,13365,13556,13651,13755,13807,13922,14061,14159,14269,14338,14376,14414,14445,14508,14536,14566,14699,14811,14883,14988,15068,15101,15194,15260,15327,15402,15655,15768,15823,15851,16092],{"_path":5,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":8,"description":9,"date":10,"slug":11,"category":12,"generated":13,"media":14,"source":22,"project_page":23,"body":24,"_type":231,"_id":232,"_source":233,"_file":234,"_stem":235,"_extension":236},"\u002Fff7recomp","",false,"FF7Recomp","FINAL FANTASY VII (PC) recompiled to native ARM64 Android, with a dual-screen HUD on the AYN Thor and a 7th Heaven-style mod launcher.","2026-11-10 06:58","ff7recomp","game","ai",[15,18,20],{"type":16,"url":17},"image","\u002Fcontent\u002Fff7recomp\u002Fpreview.webp",{"type":16,"url":19},"\u002Fcontent\u002Fff7recomp\u002Fscreenshot-2.webp",{"type":16,"url":21},"\u002Fcontent\u002Fff7recomp\u002Fscreenshot-3.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1xs4cn3\u002Fff7recomp_final_fantasy_vii_pc_recompiled_to\u002F","https:\u002F\u002Fgithub.com\u002Fbhuiyah\u002Fff7-recomp-android",{"type":25,"children":26,"toc":224},"root",[27,36,51,57,97,103,177,190,196],{"type":28,"tag":29,"props":30,"children":32},"element","h2",{"id":31},"description",[33],{"type":34,"value":35},"text","Description",{"type":28,"tag":37,"props":38,"children":39},"p",{},[40,42,49],{"type":34,"value":41},"FF7Recomp takes the Steam release of FINAL FANTASY VII (1.02 US), statically recompiles it to native ARM64, and renders it with FFNx on Vulkan. It runs natively at 30\u002F60 FPS (120 is experimental) in 16:9 widescreen, with controller support and save states. The APK contains no game code or data: you point it at your own Steam FF7 folder, and it recompiles your ",{"type":28,"tag":43,"props":44,"children":46},"code",{"className":45},[],[47],{"type":34,"value":48},"ff7_en.exe",{"type":34,"value":50}," on the device once, which takes about 8 minutes on the AYN Thor. It is built for the AYN Thor's dual screen and is meant to run on other Android handhelds and phones.",{"type":28,"tag":29,"props":52,"children":54},{"id":53},"features",[55],{"type":34,"value":56},"Features",{"type":28,"tag":58,"props":59,"children":60},"ul",{},[61,67,72,77,82,87,92],{"type":28,"tag":62,"props":63,"children":64},"li",{},[65],{"type":34,"value":66},"Runs natively at 30\u002F60 FPS (120 is experimental), in 16:9 widescreen, with controller support and save states",{"type":28,"tag":62,"props":68,"children":69},{},[70],{"type":34,"value":71},"A 7th Heaven-style launcher: browse and install mods from the Qhimm and Sega catalogs, and set mod order and options",{"type":28,"tag":62,"props":73,"children":74},{},[75],{"type":34,"value":76},"On the Thor's bottom screen: party status, location, enemy HP in battle, and a touch deck (menu, save\u002Fload state, speed toggle, random battles on\u002Foff, battle enhancement)",{"type":28,"tag":62,"props":78,"children":79},{},[80],{"type":34,"value":81},"Boosters like the console re-releases (speed, no random battles, battle enhancement)",{"type":28,"tag":62,"props":83,"children":84},{},[85],{"type":34,"value":86},"English, French, German or Spanish, from the languages your Steam copy includes",{"type":28,"tag":62,"props":88,"children":89},{},[90],{"type":34,"value":91},"On-screen touch controls for single-screen devices with no controller; they hide when a controller is used",{"type":28,"tag":62,"props":93,"children":94},{},[95],{"type":34,"value":96},"Steam achievements on your own Steam account, plus a local RetroAchievements-format set (offline only)",{"type":28,"tag":29,"props":98,"children":100},{"id":99},"setup-guide",[101],{"type":34,"value":102},"Setup guide",{"type":28,"tag":104,"props":105,"children":106},"ol",{},[107,112,133,153,165],{"type":28,"tag":62,"props":108,"children":109},{},[110],{"type":34,"value":111},"Download the APK from the latest release and install it (allow installing from your browser or file manager when Android asks).",{"type":28,"tag":62,"props":113,"children":114},{},[115,117,123,125,131],{"type":34,"value":116},"Install FINAL FANTASY VII from Steam and put its install folder, ",{"type":28,"tag":43,"props":118,"children":120},{"className":119},[],[121],{"type":34,"value":122},"FINAL FANTASY VII Steam Edition",{"type":34,"value":124}," (the one with ",{"type":28,"tag":43,"props":126,"children":128},{"className":127},[],[129],{"type":34,"value":130},"ff7",{"type":34,"value":132}," inside), on the device: internal storage, an SD card or a USB drive.",{"type":28,"tag":62,"props":134,"children":135},{},[136,138,144,146,151],{"type":34,"value":137},"Open FF7Recomp → ",{"type":28,"tag":139,"props":140,"children":141},"strong",{},[142],{"type":34,"value":143},"Game files",{"type":34,"value":145}," → ",{"type":28,"tag":139,"props":147,"children":148},{},[149],{"type":34,"value":150},"Find my FF7 folder…",{"type":34,"value":152}," and pick that folder.",{"type":28,"tag":62,"props":154,"children":155},{},[156,158,163],{"type":34,"value":157},"The launcher copies the game files, then builds the game for your device. This happens once; on an AYN Thor it takes about 8 minutes and carries on in the background (a notification shows the progress). ",{"type":28,"tag":139,"props":159,"children":160},{},[161],{"type":34,"value":162},"Quiet build",{"type":34,"value":164}," halves the speed to keep the fan low.",{"type":28,"tag":62,"props":166,"children":167},{},[168,170,175],{"type":34,"value":169},"Press ",{"type":28,"tag":139,"props":171,"children":172},{},[173],{"type":34,"value":174},"Play",{"type":34,"value":176},".",{"type":28,"tag":37,"props":178,"children":179},{},[180,182,188],{"type":34,"value":181},"No patch or older version is needed: FINAL FANTASY VII as Steam installs it today has everything FF7Recomp uses. Pick its main folder (not ",{"type":28,"tag":43,"props":183,"children":185},{"className":184},[],[186],{"type":34,"value":187},"ff7\u002Fworkingdir",{"type":34,"value":189},"); the launcher checks the game files when you import and tells you if the folder is not the right one. Patched game files and the 2013 release are not supported yet.",{"type":28,"tag":29,"props":191,"children":193},{"id":192},"known-issues",[194],{"type":34,"value":195},"Known issues",{"type":28,"tag":58,"props":197,"children":198},{},[199,204,209,214,219],{"type":28,"tag":62,"props":200,"children":201},{},[202],{"type":34,"value":203},"Only the Steam 1.02 US exe is supported; the Japanese edition is not supported yet",{"type":28,"tag":62,"props":205,"children":206},{},[207],{"type":34,"value":208},"Movies decode on the CPU (no hardware decoding yet): upscaled 30 FPS movie mods work on the Thor but run warmer",{"type":28,"tag":62,"props":210,"children":211},{},[212],{"type":34,"value":213},"The 120 FPS mode is experimental",{"type":28,"tag":62,"props":215,"children":216},{},[217],{"type":34,"value":218},"RetroAchievements are offline only, until the port is approved by RetroAchievements",{"type":28,"tag":62,"props":220,"children":221},{},[222],{"type":34,"value":223},"Steam playtime and cloud saves are not synced",{"title":6,"searchDepth":225,"depth":225,"links":226},2,[227,228,229,230],{"id":31,"depth":225,"text":35},{"id":53,"depth":225,"text":56},{"id":99,"depth":225,"text":102},{"id":192,"depth":225,"text":195},"markdown","content:ff7recomp:index.md","content","ff7recomp\u002Findex.md","ff7recomp\u002Findex","md",{"_path":238,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":239,"description":240,"date":10,"slug":241,"category":242,"generated":13,"media":243,"source":247,"project_page":248,"body":249,"_type":231,"_id":377,"_source":233,"_file":378,"_stem":379,"_extension":236},"\u002Fthor-pip-boy","Thor Pip-Boy","A live Pip-Boy companion for Fallout 4 on the AYN Thor's second screen.","thor-pip-boy","companion",[244],{"type":245,"url":246},"video","https:\u002F\u002Fyoutu.be\u002FdQ\\_Nsl6ExDk","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1xrm7l2\u002Ffallout_4_on_the_thor_with_a_live_pipboy_on_the\u002F","https:\u002F\u002Fgithub.com\u002Fharmssi\u002Fthor-pipboy",{"type":25,"children":250,"toc":371},[251,255,260,264,312,316,321,354,358],{"type":28,"tag":29,"props":252,"children":253},{"id":31},[254],{"type":34,"value":35},{"type":28,"tag":37,"props":256,"children":257},{},[258],{"type":34,"value":259},"Thor Pip-Boy is a second-screen Pip-Boy for Fallout 4 on the dual-screen AYN Thor handheld. The game runs on the top screen (Steam via DroidDeck) while a green phosphor Pip-Boy with live game data runs on the bottom screen. Tap an item to equip or use it. It replaces the official Pip-Boy companion app interface, which no longer works in the current Fallout 4 release (1.11.240). The app contains no game files and no Bethesda artwork – all graphics are drawn by the app itself. It is an unofficial fan project, not affiliated with Bethesda, ZeniMax, Microsoft or AYN.",{"type":28,"tag":29,"props":261,"children":262},{"id":53},[263],{"type":34,"value":56},{"type":28,"tag":58,"props":265,"children":266},{},[267,272,277,282,287,292,297,302,307],{"type":28,"tag":62,"props":268,"children":269},{},[270],{"type":34,"value":271},"STAT: status figure with limb condition, HP\u002FAP\u002Flevel\u002FXP, rads, resistances; S.P.E.C.I.A.L.",{"type":28,"tag":62,"props":273,"children":274},{},[275],{"type":34,"value":276},"INV: weapons, apparel, aid, misc, junk, ammo with weight\u002Fvalue – tap = equip \u002F unequip \u002F use",{"type":28,"tag":62,"props":278,"children":279},{},[280],{"type":34,"value":281},"DATA: quests with objectives (active quest first); world info: date, location, caps, weight",{"type":28,"tag":62,"props":283,"children":284},{},[285],{"type":34,"value":286},"MAP: world map markers, quest markers and player arrow; local map indoors (doors, quest marker)",{"type":28,"tag":62,"props":288,"children":289},{},[290],{"type":34,"value":291},"RADIO: stations in range, radio on\u002Foff",{"type":28,"tag":62,"props":293,"children":294},{},[295],{"type":34,"value":296},"FAV: quick keys 1–12 (your in-game favorites) as big tiles – tap = equip \u002F use; Stimpak and RadAway buttons with count",{"type":28,"tag":62,"props":298,"children":299},{},[300],{"type":34,"value":301},"English and German UI, auto-reconnect, \"waiting for Fallout 4…\" screen",{"type":28,"tag":62,"props":303,"children":304},{},[305],{"type":34,"value":306},"One launcher icon starts the Pip-Boy and the game together",{"type":28,"tag":62,"props":308,"children":309},{},[310],{"type":34,"value":311},"Auto-reopen guard that brings the Pip-Boy back about 20 s after the game is stable",{"type":28,"tag":29,"props":313,"children":314},{"id":99},[315],{"type":34,"value":102},{"type":28,"tag":37,"props":317,"children":318},{},[319],{"type":34,"value":320},"You need your own Fallout 4 on Steam (runtime 1.11.240), running on the AYN Thor through DroidDeck. No game files are included.",{"type":28,"tag":58,"props":322,"children":323},{},[324,329,334,339,344,349],{"type":28,"tag":62,"props":325,"children":326},{},[327],{"type":34,"value":328},"Download the latest release: ThorPipBoy.apk and ThorPipBoy.dll (plus optional ThorPipBoy.ini).",{"type":28,"tag":62,"props":330,"children":331},{},[332],{"type":34,"value":333},"Install the runtime dependencies yourself (they may not be redistributed): F4SE 0.7.9 (build for runtime 1.11.240) and the Address Library for F4SE Plugins (the file containing version-1-11-240-0.bin) from Nexus Mods.",{"type":28,"tag":62,"props":335,"children":336},{},[337],{"type":34,"value":338},"Copy the files into the Fallout 4 folder (…\u002Fsteamapps\u002Fcommon\u002FFallout 4\u002F, on the Thor under Android\u002Fdata\u002Fcom.droiddeck.launcher\u002Ffiles\u002Fsteam\u002Fsteamapps\u002Fcommon\u002FFallout 4\u002F): f4se_loader.exe, f4se_1_11_240.dll and Data\u002FScripts\u002F* (from F4SE), Data\u002FF4SE\u002FPlugins\u002Fversion-1-11-240-0.bin (Address Library), Data\u002FF4SE\u002FPlugins\u002FThorPipBoy.dll and Data\u002FF4SE\u002FPlugins\u002FThorPipBoy.ini (optional).",{"type":28,"tag":62,"props":340,"children":341},{},[342],{"type":34,"value":343},"Set the Steam launch option for Fallout 4 so Steam starts F4SE (f4se_loader.exe) instead of the launcher.",{"type":28,"tag":62,"props":345,"children":346},{},[347],{"type":34,"value":348},"Install the APK on the device. For the auto-reopen guard, grant the SYSTEM_ALERT_WINDOW and SCHEDULE_EXACT_ALARM permissions once.",{"type":28,"tag":62,"props":350,"children":351},{},[352],{"type":34,"value":353},"Start \"Thor Pip-Boy\" from the launcher: it opens the Pip-Boy on the bottom screen and starts Fallout 4 via DroidDeck on the top screen. Load a save – the Pip-Boy fills with live data.",{"type":28,"tag":29,"props":355,"children":356},{"id":192},[357],{"type":34,"value":195},{"type":28,"tag":58,"props":359,"children":360},{},[361,366],{"type":28,"tag":62,"props":362,"children":363},{},[364],{"type":34,"value":365},"Fallout 4 uses almost all of the Thor's RAM. While a save loads, Android may close the Pip-Boy for a moment; a built-in guard reopens it about 20 s after the game is stable again. It never reopens it during loading.",{"type":28,"tag":62,"props":367,"children":368},{},[369],{"type":34,"value":370},"A Stimpak tapped while a weapon is being drawn may be ignored by the game – tap again.",{"title":6,"searchDepth":225,"depth":225,"links":372},[373,374,375,376],{"id":31,"depth":225,"text":35},{"id":53,"depth":225,"text":56},{"id":99,"depth":225,"text":102},{"id":192,"depth":225,"text":195},"content:thor-pip-boy:index.md","thor-pip-boy\u002Findex.md","thor-pip-boy\u002Findex",{"_path":381,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":382,"description":383,"date":384,"slug":385,"category":12,"generated":13,"media":386,"source":389,"project_page":390,"body":391,"_type":231,"_id":611,"_source":233,"_file":612,"_stem":613,"_extension":236},"\u002Fheroes-of-might-and-magic-iii","Heroes of Might and Magic III","Play Heroes of Might and Magic III on the AYN Thor with the adventure map on the top screen and a touch deck on the second screen.","2026-11-09 07:15","heroes-of-might-and-magic-iii",[387],{"type":245,"url":388},"https:\u002F\u002Fyoutu.be\u002FV5BhReTPpsc","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1xqtew7\u002Fheroes_of_might_and_magic_iii_on_the_thor\u002F","https:\u002F\u002Fgithub.com\u002Fharmssi\u002Fthor-heroes3",{"type":25,"children":392,"toc":605},[393,397,402,407,411,444,448,556,568,572],{"type":28,"tag":29,"props":394,"children":395},{"id":31},[396],{"type":34,"value":35},{"type":28,"tag":37,"props":398,"children":399},{},[400],{"type":34,"value":401},"Thor Edition for VCMI is an unofficial dual-screen build of VCMI, the open-source engine for Heroes of Might and Magic III, made for the AYN Thor handheld. The top screen shows the adventure map in full screen (no side panel), with towns and battles as usual. The bottom screen is a touch deck that gives you quick access to the game's key information and actions, and it switches to a battle layout during combat. The controller keeps working as in VCMI, and the deck never takes the controller focus.",{"type":28,"tag":37,"props":403,"children":404},{},[405],{"type":34,"value":406},"The build also supports the Steam HD Edition: that edition only ships Restoration of Erathia, which stock VCMI cannot start. On first start the app converts your own text tables on the device (about a second), hides the Armageddon's Blade \u002F Shadow of Death content and repacks the seven original RoE campaigns. Complete editions (GOG etc.) are used as-is.",{"type":28,"tag":29,"props":408,"children":409},{"id":53},[410],{"type":34,"value":56},{"type":28,"tag":58,"props":412,"children":413},{},[414,419,424,429,434,439],{"type":28,"tag":62,"props":415,"children":416},{},[417],{"type":34,"value":418},"Top screen: the adventure map fills the whole screen, with battles and towns as usual.",{"type":28,"tag":62,"props":420,"children":421},{},[422],{"type":34,"value":423},"Bottom screen (deck): tap the minimap to move the camera, hero and town lists (tap = select, tap again = open), army of the selection, resources, month\u002Fweek\u002Fday, movement and spell points.",{"type":28,"tag":62,"props":425,"children":426},{},[427],{"type":34,"value":428},"Deck buttons: End turn, Spellbook, Sleep\u002FWake, Next hero, Game menu, Save.",{"type":28,"tag":62,"props":430,"children":431},{},[432],{"type":34,"value":433},"In battle the deck switches to: active unit, hero spell points, battle log, Spellbook, Wait, Defend, Auto, Retreat, Surrender.",{"type":28,"tag":62,"props":435,"children":436},{},[437],{"type":34,"value":438},"Controller works as in VCMI; the deck never takes the controller focus.",{"type":28,"tag":62,"props":440,"children":441},{},[442],{"type":34,"value":443},"Steam HD Edition support (RoE bridge): converts the owner's text tables, installs the roe-support mod and repacks the seven RoE campaigns as VCMI campaigns.",{"type":28,"tag":29,"props":445,"children":446},{"id":99},[447],{"type":34,"value":102},{"type":28,"tag":104,"props":449,"children":450},{},[451,456,534,539,551],{"type":28,"tag":62,"props":452,"children":453},{},[454],{"type":34,"value":455},"Own the game. The app needs Heroes of Might and Magic III – HD Edition (Steam) or a complete edition (GOG \"Complete\", original SoD CD). It contains no game data.",{"type":28,"tag":62,"props":457,"children":458},{},[459,461,467,469],{"type":34,"value":460},"Get the game folder onto the Thor – the whole folder ",{"type":28,"tag":43,"props":462,"children":464},{"className":463},[],[465],{"type":34,"value":466},"Heroes of Might & Magic III - HD Edition",{"type":34,"value":468},":\n",{"type":28,"tag":58,"props":470,"children":471},{},[472,485,505],{"type":28,"tag":62,"props":473,"children":474},{},[475,477,483],{"type":34,"value":476},"From a PC: in Steam, right-click the game → Manage → Browse local files, go one folder up and copy the folder over USB to the Thor, e.g. into ",{"type":28,"tag":43,"props":478,"children":480},{"className":479},[],[481],{"type":34,"value":482},"Download",{"type":34,"value":484},"; or",{"type":28,"tag":62,"props":486,"children":487},{},[488,490,496,498,503],{"type":34,"value":489},"With DroidDeck on the Thor: install the game in DroidDeck's Steam, then copy the same folder from ",{"type":28,"tag":43,"props":491,"children":493},{"className":492},[],[494],{"type":34,"value":495},"Android\u002Fdata\u002Fcom.droiddeck.launcher\u002Ffiles\u002Fsteam\u002Fsteamapps\u002Fcommon\u002F",{"type":34,"value":497}," to ",{"type":28,"tag":43,"props":499,"children":501},{"className":500},[],[502],{"type":34,"value":482},{"type":34,"value":504}," with a PC over USB.",{"type":28,"tag":62,"props":506,"children":507},{},[508,510,516,518,524,526,532],{"type":34,"value":509},"Only ",{"type":28,"tag":43,"props":511,"children":513},{"className":512},[],[514],{"type":34,"value":515},"HOMM3 2.0.exe",{"type":34,"value":517}," and the ",{"type":28,"tag":43,"props":519,"children":521},{"className":520},[],[522],{"type":34,"value":523},"data",{"type":34,"value":525}," folder are needed; the large ",{"type":28,"tag":43,"props":527,"children":529},{"className":528},[],[530],{"type":34,"value":531},"*.pak",{"type":34,"value":533}," files are skipped.",{"type":28,"tag":62,"props":535,"children":536},{},[537],{"type":34,"value":538},"Install the APK from the latest release (allow installing from your browser).",{"type":28,"tag":62,"props":540,"children":541},{},[542,544,549],{"type":34,"value":543},"First start: choose your language → Heroes III data → Copy existing data → pick the folder ",{"type":28,"tag":43,"props":545,"children":547},{"className":546},[],[548],{"type":34,"value":466},{"type":34,"value":550}," → Use this folder → Allow. The app copies about 330 MB, converts the tables for VCMI (RoE bridge, about a second) and shows Finish.",{"type":28,"tag":62,"props":552,"children":553},{},[554],{"type":34,"value":555},"Play. Tap Play; the game opens on the top screen, the deck on the bottom screen. German HD Edition = German game; the deck follows the Android system language.",{"type":28,"tag":37,"props":557,"children":558},{},[559,561,567],{"type":34,"value":560},"Saves live in ",{"type":28,"tag":43,"props":562,"children":564},{"className":563},[],[565],{"type":34,"value":566},"Android\u002Fdata\u002Fde.harmssi.thorheroes\u002Ffiles\u002Fvcmi-data\u002FSaves",{"type":34,"value":176},{"type":28,"tag":29,"props":569,"children":570},{"id":192},[571],{"type":34,"value":195},{"type":28,"tag":58,"props":573,"children":574},{},[575,580,585,590,595,600],{"type":28,"tag":62,"props":576,"children":577},{},[578],{"type":34,"value":579},"Tested with the German Steam HD Edition. Other languages use the same layout and should work, but are untested.",{"type":28,"tag":62,"props":581,"children":582},{},[583],{"type":34,"value":584},"RoE 1.0 campaigns run as plain scenario chains: no start-bonus choice and no hero carry-over.",{"type":28,"tag":62,"props":586,"children":587},{},[588],{"type":34,"value":589},"The in-game console (Tab, cheats) lives in the hidden status bar of the full-screen map.",{"type":28,"tag":62,"props":591,"children":592},{},[593],{"type":34,"value":594},"Arrow towers use the ballista portrait (RoE has no tower portrait).",{"type":28,"tag":62,"props":596,"children":597},{},[598],{"type":34,"value":599},"German HD Edition: some buttons inside the game keep their English artwork.",{"type":28,"tag":62,"props":601,"children":602},{},[603],{"type":34,"value":604},"Random maps, Armageddon's Blade and Shadow of Death content need a complete edition (GOG Complete etc. works as-is).",{"title":6,"searchDepth":225,"depth":225,"links":606},[607,608,609,610],{"id":31,"depth":225,"text":35},{"id":53,"depth":225,"text":56},{"id":99,"depth":225,"text":102},{"id":192,"depth":225,"text":195},"content:heroes-of-might-and-magic-iii:index.md","heroes-of-might-and-magic-iii\u002Findex.md","heroes-of-might-and-magic-iii\u002Findex",{"_path":615,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":616,"description":617,"date":384,"slug":618,"category":12,"generated":13,"media":619,"source":622,"project_page":623,"body":624,"_type":231,"_id":762,"_source":233,"_file":763,"_stem":764,"_extension":236},"\u002Fkknd2-krossfire","KKND2 Krossfire","Native dual-screen port of Krush Kill 'N Destroy 2: Krossfire for the AYN Thor, with the full RTS build menu on the second screen.","kknd2-krossfire",[620],{"type":245,"url":621},"https:\u002F\u002Fyoutu.be\u002FqjxeIWKOAXM","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1xqybtn\u002Fkknd2_krossfire_on_the_thor_battlefield_full\u002F","https:\u002F\u002Fgithub.com\u002Fharmssi\u002Fthor-kknd2",{"type":25,"children":625,"toc":756},[626,630,635,639,682,686,724,728],{"type":28,"tag":29,"props":627,"children":628},{"id":31},[629],{"type":34,"value":35},{"type":28,"tag":37,"props":631,"children":632},{},[633],{"type":34,"value":634},"Krush Kill 'N Destroy 2: Krossfire on the AYN Thor as a native arm64 Android app built on OpenRA and OpenKrush – no Wine, no Box64, no emulation, 60 fps. The top screen shows the battlefield in full screen with no sidebar, while the bottom screen acts as the Thor deck with the complete build menu (Infantry \u002F Vehicles \u002F Buildings \u002F Defense) using the original pictures from your own game files, cost in oil, progress and one queue per factory; locked or too expensive entries are greyed out. Tap to build, long-press to hold or cancel; buildings are tapped on the deck and placed on the top screen. The deck also shows the minimap (tap to jump), oil, selection, control groups and Deploy \u002F Stop \u002F Attack \u002F Move \u002F Waypoint \u002F Sell \u002F Repair \u002F Menu \u002F Save. Survivors, Evolved and Series 9 are playable in skirmish against the AI on the 15 original multiplayer maps, with the original announcer, voices, effects, music and intro videos, plus save\u002Fload.",{"type":28,"tag":29,"props":636,"children":637},{"id":53},[638],{"type":34,"value":56},{"type":28,"tag":58,"props":640,"children":641},{},[642,647,652,657,662,667,672,677],{"type":28,"tag":62,"props":643,"children":644},{},[645],{"type":34,"value":646},"Native arm64 Android app built on OpenRA + OpenKrush – no Wine, no Box64, no emulation, 60 fps",{"type":28,"tag":62,"props":648,"children":649},{},[650],{"type":34,"value":651},"Top screen: battlefield in full screen, no sidebar",{"type":28,"tag":62,"props":653,"children":654},{},[655],{"type":34,"value":656},"Bottom screen (deck): complete build menu with the game's own unit and building pictures, cost in oil, progress and one queue per factory; locked or unaffordable entries are greyed out",{"type":28,"tag":62,"props":658,"children":659},{},[660],{"type":34,"value":661},"Deck also includes minimap (tap\u002Fdrag to jump), oil, selection, control groups and Deploy, Stop, Attack, Move, Waypoint, Sell, Repair, Menu, Save",{"type":28,"tag":62,"props":663,"children":664},{},[665],{"type":34,"value":666},"Touch: tap = select \u002F command, drag = selection box, two-finger drag = scroll, two-finger tap = deselect",{"type":28,"tag":62,"props":668,"children":669},{},[670],{"type":34,"value":671},"Controller: left stick = cursor, right stick = scroll, A = left click, B = right click \u002F deselect, X = stop, Y = attack-move, L3 = deploy, L1\u002FR1 = focus ring over the build cards, L2\u002FR2 = deck tab, D-pad = groups 1–4, Select = menu, Start = Enter",{"type":28,"tag":62,"props":673,"children":674},{},[675],{"type":34,"value":676},"Survivors, Evolved and Series 9 in skirmish against the AI on the 15 original multiplayer maps (converted on the device)",{"type":28,"tag":62,"props":678,"children":679},{},[680],{"type":34,"value":681},"Original announcer, unit voices, sound effects and music; intro videos play; save and load work",{"type":28,"tag":29,"props":683,"children":684},{"id":99},[685],{"type":34,"value":102},{"type":28,"tag":58,"props":687,"children":688},{},[689,694,699,714,719],{"type":28,"tag":62,"props":690,"children":691},{},[692],{"type":34,"value":693},"You need your own copy of Krush Kill 'N Destroy 2: Krossfire on Steam (App 1292180). The app contains no game data.",{"type":28,"tag":62,"props":695,"children":696},{},[697],{"type":34,"value":698},"Copy the game folder \"KKND 2 Krossfire\" to the Thor (at least the levels, music and fmv folders).",{"type":28,"tag":62,"props":700,"children":701},{},[702,704,713],{"type":34,"value":703},"Install the APK from the ",{"type":28,"tag":705,"props":706,"children":710},"a",{"href":707,"rel":708},"https:\u002F\u002Fgithub.com\u002Fharmssi\u002Fthor-kknd2\u002Freleases\u002Flatest",[709],"nofollow",[711],{"type":34,"value":712},"latest release",{"type":34,"value":176},{"type":28,"tag":62,"props":715,"children":716},{},[717],{"type":34,"value":718},"On first start, tap \"Choose Steam folder\" and pick the KKND 2 Krossfire folder. About 560 MB are imported and the 15 maps are built.",{"type":28,"tag":62,"props":720,"children":721},{},[722],{"type":34,"value":723},"Play: Singleplayer → Skirmish, add a computer player, Start Game. Tap Deploy on the deck to set up your Outpost.",{"type":28,"tag":29,"props":725,"children":726},{"id":192},[727],{"type":34,"value":195},{"type":28,"tag":58,"props":729,"children":730},{},[731,736,741,746,751],{"type":28,"tag":62,"props":732,"children":733},{},[734],{"type":34,"value":735},"No campaigns yet – skirmish only",{"type":28,"tag":62,"props":737,"children":738},{},[739],{"type":34,"value":740},"No aircraft",{"type":28,"tag":62,"props":742,"children":743},{},[744],{"type":34,"value":745},"Balance follows OpenKrush's unfinished 2020 KKND2 rules, not tuned against the original",{"type":28,"tag":62,"props":747,"children":748},{},[749],{"type":34,"value":750},"Only the English sound set and English video sound tracks are used",{"type":28,"tag":62,"props":752,"children":753},{},[754],{"type":34,"value":755},"Network play is untested",{"title":6,"searchDepth":225,"depth":225,"links":757},[758,759,760,761],{"id":31,"depth":225,"text":35},{"id":53,"depth":225,"text":56},{"id":99,"depth":225,"text":102},{"id":192,"depth":225,"text":195},"content:kknd2-krossfire:index.md","kknd2-krossfire\u002Findex.md","kknd2-krossfire\u002Findex",{"_path":766,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":767,"description":768,"date":769,"slug":770,"category":12,"generated":13,"media":771,"source":774,"project_page":775,"body":776,"_type":231,"_id":944,"_source":233,"_file":945,"_stem":946,"_extension":236},"\u002Fthor-edition-for-d3","Thor Edition for D3","A dual-screen port of Diablo III for the AYN Thor with a touch control deck on the second screen.","2026-11-08 06:31","thor-edition-for-d3",[772],{"type":245,"url":773},"https:\u002F\u002Fyoutu.be\u002FefP39kseEDo","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1xq0r82\u002Fdiablo_iii_on_the_thor_game_on_top_a_touch_skill\u002F","https:\u002F\u002Fgithub.com\u002Fharmssi\u002Fthor-d3",{"type":25,"children":777,"toc":938},[778,782,787,791,853,857,916,920],{"type":28,"tag":29,"props":779,"children":780},{"id":31},[781],{"type":34,"value":35},{"type":28,"tag":37,"props":783,"children":784},{},[785],{"type":34,"value":786},"Thor Edition for D3 is a fork of Desm0nt's Diablo III Mobile port that brings Diablo III to the AYN Thor's dual screens. The game runs natively as ARM64 code on the top screen (1920×1080, 16:9) with no touch overlay, while the bottom screen shows a control deck with six skill buttons, a potion button, a live life bar and resource globe, and one-tap access to inventory, skills, quests, map, town portal, lock target, game menu and port settings. The deck never takes focus, so the built-in controller works as usual. It requires your own legally purchased copy of the Nintendo Switch version (Eternal Collection, update 2.7.7). The repository and APK contain no game files, art or keys.",{"type":28,"tag":29,"props":788,"children":789},{"id":53},[790],{"type":34,"value":56},{"type":28,"tag":58,"props":792,"children":793},{},[794,799,804,832],{"type":28,"tag":62,"props":795,"children":796},{},[797],{"type":34,"value":798},"Control deck on the bottom screen (1240×1080) with life bar and resource globe read live from the game's HUD, six skill buttons with equipped skill icons, a large potion button, and buttons for Inventory, Skills, Quests, Map, Town Portal, Lock Target, Game Menu and port settings.",{"type":28,"tag":62,"props":800,"children":801},{},[802],{"type":34,"value":803},"Clean top screen: the on-screen touch pad and FPS counter are off; the game fills the 1920×1080 screen (16:9).",{"type":28,"tag":62,"props":805,"children":806},{},[807,809,815,817,823,825,831],{"type":34,"value":808},"Game data on the SD card: if ",{"type":28,"tag":43,"props":810,"children":812},{"className":811},[],[813],{"type":34,"value":814},"Download\u002FDiablo3Mobile",{"type":34,"value":816}," has no ",{"type":28,"tag":43,"props":818,"children":820},{"className":819},[],[821],{"type":34,"value":822},"romfs",{"type":34,"value":824},", the app uses ",{"type":28,"tag":43,"props":826,"children":828},{"className":827},[],[829],{"type":34,"value":830},"\u003CSD card>\u002FDiablo3Mobile",{"type":34,"value":176},{"type":28,"tag":62,"props":833,"children":834},{},[835,837,843,845,851],{"type":34,"value":836},"Buttons as printed: right face button = A confirms; put ",{"type":28,"tag":43,"props":838,"children":840},{"className":839},[],[841],{"type":34,"value":842},"DM_PAD_LAYOUT=label",{"type":34,"value":844}," into ",{"type":28,"tag":43,"props":846,"children":848},{"className":847},[],[849],{"type":34,"value":850},"Diablo3Mobile\u002Fdm\u002Fenv",{"type":34,"value":852}," to use printed labels.",{"type":28,"tag":29,"props":854,"children":855},{"id":99},[856],{"type":34,"value":102},{"type":28,"tag":58,"props":858,"children":859},{},[860,865,878,899,911],{"type":28,"tag":62,"props":861,"children":862},{},[863],{"type":34,"value":864},"Obtain a legally purchased copy of Diablo III: Eternal Collection for Nintendo Switch (update 2.7.7).",{"type":28,"tag":62,"props":866,"children":867},{},[868,870,876],{"type":34,"value":869},"Follow the upstream project's installation guide at ",{"type":28,"tag":705,"props":871,"children":874},{"href":872,"rel":873},"https:\u002F\u002Fgithub.com\u002FDesm0nt\u002Fdiablo3-port",[709],[875],{"type":34,"value":872},{"type":34,"value":877}," (docs\u002FINSTALL.md) to prepare the game folder.",{"type":28,"tag":62,"props":879,"children":880},{},[881,883,889,891,897],{"type":34,"value":882},"Copy the finished ",{"type":28,"tag":43,"props":884,"children":886},{"className":885},[],[887],{"type":34,"value":888},"Diablo3Mobile",{"type":34,"value":890}," folder to the Thor's SD card root (or ",{"type":28,"tag":43,"props":892,"children":894},{"className":893},[],[895],{"type":34,"value":896},"Download\u002F",{"type":34,"value":898},").",{"type":28,"tag":62,"props":900,"children":901},{},[902,904,910],{"type":34,"value":903},"Install the APK from the latest release: ",{"type":28,"tag":705,"props":905,"children":908},{"href":906,"rel":907},"https:\u002F\u002Fgithub.com\u002Fharmssi\u002Fthor-d3\u002Freleases\u002Flatest",[709],[909],{"type":34,"value":906},{"type":34,"value":176},{"type":28,"tag":62,"props":912,"children":913},{},[914],{"type":34,"value":915},"Launch the app; the game appears on the top screen and the control deck on the bottom.",{"type":28,"tag":29,"props":917,"children":918},{"id":192},[919],{"type":34,"value":195},{"type":28,"tag":58,"props":921,"children":922},{},[923,928,933],{"type":28,"tag":62,"props":924,"children":925},{},[926],{"type":34,"value":927},"v0.1.0 beta: only Act 1 has been tested so far.",{"type":28,"tag":62,"props":929,"children":930},{},[931],{"type":34,"value":932},"The town portal button is not yet confirmed.",{"type":28,"tag":62,"props":934,"children":935},{},[936],{"type":34,"value":937},"Offline only: single player, local saves.",{"title":6,"searchDepth":225,"depth":225,"links":939},[940,941,942,943],{"id":31,"depth":225,"text":35},{"id":53,"depth":225,"text":56},{"id":99,"depth":225,"text":102},{"id":192,"depth":225,"text":195},"content:thor-edition-for-d3:index.md","thor-edition-for-d3\u002Findex.md","thor-edition-for-d3\u002Findex",{"_path":948,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":949,"description":950,"date":951,"slug":952,"category":12,"generated":13,"media":953,"source":956,"project_page":957,"body":958,"_type":231,"_id":1101,"_source":233,"_file":1102,"_stem":1103,"_extension":236},"\u002Fdonkey-kong-64-recompiled-android-ds","Donkey Kong 64: Recompiled — Android & Dual Screen","An unofficial Android port of Donkey Kong 64: Recompiled with full dual-screen support for the AYN Thor.","2026-11-06 08:04","donkey-kong-64-recompiled-android-ds",[954],{"type":16,"url":955},"\u002Fcontent\u002Fdonkey-kong-64-recompiled-android-ds\u002Fpreview.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1xp0z3u\u002Fclaude_ported_donkey_kong_64_recompiled_to\u002F","https:\u002F\u002Fgithub.com\u002FBownz\u002FDonkey-Kong-64-Recompiled-Android-DS",{"type":25,"children":959,"toc":1095},[960,964,969,973,1041,1047,1060,1064],{"type":28,"tag":29,"props":961,"children":962},{"id":31},[963],{"type":34,"value":35},{"type":28,"tag":37,"props":965,"children":966},{},[967],{"type":34,"value":968},"Donkey Kong 64: Recompiled — Android & Dual Screen is an unofficial Android port of Donkey Kong 64: Recompiled, built for dual-screen Android handhelds such as the AYN Thor. The game runs natively on the top screen (a recompilation, not emulation), while the bottom screen becomes a DK-themed companion showing your health, collectibles and touch buttons for moves. It is a beta release tested on an AYN Thor (Adreno 740, Android 13) and a Samsung Galaxy Z Fold 7 (Adreno 830).",{"type":28,"tag":29,"props":970,"children":971},{"id":53},[972],{"type":34,"value":56},{"type":28,"tag":58,"props":974,"children":975},{},[976,981,986,991,996,1001,1006,1011,1016,1021,1026,1031,1036],{"type":28,"tag":62,"props":977,"children":978},{},[979],{"type":34,"value":980},"DK64 runs natively on the top screen, built on Donkey Kong 64: Recompiled by Rainchus and team.",{"type":28,"tag":62,"props":982,"children":983},{},[984],{"type":34,"value":985},"The bottom screen is a DK-themed companion: health melons, the current Kong's collectibles for the level (golden bananas, bananas, blueprints, medals, coins) and Kong tabs.",{"type":28,"tag":62,"props":987,"children":988},{},[989],{"type":34,"value":990},"Touch buttons for oranges, the gun, instruments, the camera and first person, which press the real game buttons (Z + C) and grey out when they can't be used (no ammo, swimming, climbing, on a vine, paused).",{"type":28,"tag":62,"props":992,"children":993},{},[994],{"type":34,"value":995},"A move button that changes with the Kong: Lanky's Orangstand toggle, Diddy's Chimpy Charge, Chunky's Primate Punch, or Cancel while a barrel ability is active.",{"type":28,"tag":62,"props":997,"children":998},{},[999],{"type":34,"value":1000},"Pause the game and the bottom screen shows a progress table for every Kong in the level, with fairies, crowns, keys and rainbow coins, plus arrows to browse the levels you've reached.",{"type":28,"tag":62,"props":1002,"children":1003},{},[1004],{"type":34,"value":1005},"Optional Touch Kong Swap: tap a Kong on the bottom screen to swap straight to them, using the bundled Tag Anywhere mod (off by default; enable it in Mods).",{"type":28,"tag":62,"props":1007,"children":1008},{},[1009],{"type":34,"value":1010},"Classic and Modern control presets. Modern gives you an analog camera on the right stick, gyro aiming and non-inverted controls.",{"type":28,"tag":62,"props":1012,"children":1013},{},[1014],{"type":34,"value":1015},"Configure Inputs detects your controller, and the in-game button prompts change to match your buttons.",{"type":28,"tag":62,"props":1017,"children":1018},{},[1019],{"type":34,"value":1020},"Touch controls on screen when no controller is connected, with a second camera stick for the Analog Camera and a layout editor (Input → Touch → Edit Touch Layout).",{"type":28,"tag":62,"props":1022,"children":1023},{},[1024],{"type":34,"value":1025},"Rendering fixes for Adreno GPUs, and an optional custom Vulkan driver (e.g. Turnip) chosen in Video → GPU Driver.",{"type":28,"tag":62,"props":1027,"children":1028},{},[1029],{"type":34,"value":1030},"Optional on-screen frame rate (Video → Show FPS).",{"type":28,"tag":62,"props":1032,"children":1033},{},[1034],{"type":34,"value":1035},"Mod support, including browsing and installing mods in the app.",{"type":28,"tag":62,"props":1037,"children":1038},{},[1039],{"type":34,"value":1040},"Works on phones and foldables too, with touch controls you can rearrange and resize.",{"type":28,"tag":29,"props":1042,"children":1044},{"id":1043},"requirements",[1045],{"type":34,"value":1046},"Requirements",{"type":28,"tag":58,"props":1048,"children":1049},{},[1050,1055],{"type":28,"tag":62,"props":1051,"children":1052},{},[1053],{"type":34,"value":1054},"An arm64 Android device running Android 9+ with Vulkan 1.1 support.",{"type":28,"tag":62,"props":1056,"children":1057},{},[1058],{"type":34,"value":1059},"Your own NTSC-U 1.0 Donkey Kong 64 ROM. The repository and its builds contain no game assets or ROM data; icons on the bottom screen are read from your ROM on the device.",{"type":28,"tag":29,"props":1061,"children":1062},{"id":99},[1063],{"type":34,"value":102},{"type":28,"tag":58,"props":1065,"children":1066},{},[1067,1080,1085,1090],{"type":28,"tag":62,"props":1068,"children":1069},{},[1070,1072,1079],{"type":34,"value":1071},"Download and install the latest APK from the ",{"type":28,"tag":705,"props":1073,"children":1076},{"href":1074,"rel":1075},"https:\u002F\u002Fgithub.com\u002FBownz\u002FDonkey-Kong-64-Recompiled-Android-DS\u002Freleases\u002Flatest",[709],[1077],{"type":34,"value":1078},"releases page",{"type":34,"value":176},{"type":28,"tag":62,"props":1081,"children":1082},{},[1083],{"type":34,"value":1084},"Provide your own Donkey Kong 64 (USA) ROM when prompted; nothing from the game is included.",{"type":28,"tag":62,"props":1086,"children":1087},{},[1088],{"type":34,"value":1089},"Launch the game on the top screen; the DK-themed companion appears on the bottom screen.",{"type":28,"tag":62,"props":1091,"children":1092},{},[1093],{"type":34,"value":1094},"Configure controls, touch layout, gyro and the bottom screen under Input and Video settings.",{"title":6,"searchDepth":225,"depth":225,"links":1096},[1097,1098,1099,1100],{"id":31,"depth":225,"text":35},{"id":53,"depth":225,"text":56},{"id":1043,"depth":225,"text":1046},{"id":99,"depth":225,"text":102},"content:donkey-kong-64-recompiled-android-ds:index.md","donkey-kong-64-recompiled-android-ds\u002Findex.md","donkey-kong-64-recompiled-android-ds\u002Findex",{"_path":1105,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":1106,"description":1107,"date":951,"slug":1108,"category":242,"generated":13,"media":1109,"source":1114,"project_page":1115,"body":1116,"_type":231,"_id":1259,"_source":233,"_file":1260,"_stem":1261,"_extension":236},"\u002Fskyrimse-dualscreen","SkyrimSE-DualScreen","Play your own Steam copy of Skyrim Special Edition on the AYN Thor with a live dual-screen companion on the bottom screen.","skyrimse-dualscreen",[1110,1112],{"type":16,"url":1111},"\u002Fcontent\u002Fskyrimse-dualscreen\u002Fpreview.webp",{"type":16,"url":1113},"\u002Fcontent\u002Fskyrimse-dualscreen\u002Fscreenshot-2.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1xp53zx\u002Frelease_skyrimsedualscreen_10_skyrim_se_with_a\u002F","https:\u002F\u002Fgithub.com\u002FPlus-Cloud\u002FSkyrimSE-DualScreen",{"type":25,"children":1117,"toc":1253},[1118,1122,1127,1131,1189,1193,1221,1225],{"type":28,"tag":29,"props":1119,"children":1120},{"id":31},[1121],{"type":34,"value":35},{"type":28,"tag":37,"props":1123,"children":1124},{},[1125],{"type":34,"value":1126},"SkyrimSE-DualScreen runs the Steam copy of Skyrim Special Edition you already own on the AYN Thor's top screen and turns the bottom screen into a companion styled like Skyrim's own menus. Everything on the bottom screen is live while you play, and the game keeps running while you use it. Hide the in-game compass and health bars in ⚙ and the top screen is just Skyrim. Nothing from Skyrim is included — the game files, the map and the icons all come from your own copy, and saves sync with Steam Cloud.",{"type":28,"tag":29,"props":1128,"children":1129},{"id":53},[1130],{"type":34,"value":56},{"type":28,"tag":58,"props":1132,"children":1133},{},[1134,1139,1144,1149,1154,1159,1164,1169,1174,1179,1184],{"type":28,"tag":62,"props":1135,"children":1136},{},[1137],{"type":34,"value":1138},"Character: stats, gear, effects, skills, minimap",{"type":28,"tag":62,"props":1140,"children":1141},{},[1142],{"type":34,"value":1143},"Compass: the game's own compass, mirrored every frame",{"type":28,"tag":62,"props":1145,"children":1146},{},[1147],{"type":34,"value":1148},"Quests: objectives, tracking, \"Show on map\"",{"type":28,"tag":62,"props":1150,"children":1151},{},[1152],{"type":34,"value":1153},"Items & Magic: equip to either hand, use potions",{"type":28,"tag":62,"props":1155,"children":1156},{},[1157],{"type":34,"value":1158},"World map: with fast travel",{"type":28,"tag":62,"props":1160,"children":1161},{},[1162],{"type":34,"value":1163},"Favourites bar: tap to equip",{"type":28,"tag":62,"props":1165,"children":1166},{},[1167],{"type":34,"value":1168},"60 FPS at 720p by default, with Balanced (45) and Cool (30) options",{"type":28,"tag":62,"props":1170,"children":1171},{},[1172],{"type":34,"value":1173},"Overheat protection, and sleep any time (the game freezes and resumes)",{"type":28,"tag":62,"props":1175,"children":1176},{},[1177],{"type":34,"value":1178},"FPS\u002Fstats overlay, and optional frame gen with your own Lossless.dll",{"type":28,"tag":62,"props":1180,"children":1181},{},[1182],{"type":34,"value":1183},"In-app Nexus Mods browser and mod manager",{"type":28,"tag":62,"props":1185,"children":1186},{},[1187],{"type":34,"value":1188},"No Script Extender needed",{"type":28,"tag":29,"props":1190,"children":1191},{"id":1043},[1192],{"type":34,"value":1046},{"type":28,"tag":58,"props":1194,"children":1195},{},[1196,1201,1206,1211,1216],{"type":28,"tag":62,"props":1197,"children":1198},{},[1199],{"type":34,"value":1200},"An AYN Thor",{"type":28,"tag":62,"props":1202,"children":1203},{},[1204],{"type":34,"value":1205},"Skyrim Special Edition on your Steam account (version 1.7.104, the current Steam build)",{"type":28,"tag":62,"props":1207,"children":1208},{},[1209],{"type":34,"value":1210},"A PC to copy the game folder from once",{"type":28,"tag":62,"props":1212,"children":1213},{},[1214],{"type":34,"value":1215},"About 3 GB free",{"type":28,"tag":62,"props":1217,"children":1218},{},[1219],{"type":34,"value":1220},"Optional: a Nexus Mods account (free is fine) if you want mods",{"type":28,"tag":29,"props":1222,"children":1223},{"id":99},[1224],{"type":34,"value":102},{"type":28,"tag":58,"props":1226,"children":1227},{},[1228,1233,1238,1243,1248],{"type":28,"tag":62,"props":1229,"children":1230},{},[1231],{"type":34,"value":1232},"On your PC, copy Steam\u002Fsteamapps\u002Fcommon\u002FSkyrim Special Edition to the Thor.",{"type":28,"tag":62,"props":1234,"children":1235},{},[1236],{"type":34,"value":1237},"Download and install the latest SkyrimSE-DualScreen APK from the Releases page.",{"type":28,"tag":62,"props":1239,"children":1240},{},[1241],{"type":34,"value":1242},"Open the app and follow the three steps: allow file access, pick your Skyrim folder, and sign in to Steam (QR code or password). The engine downloads in the background while you do this.",{"type":28,"tag":62,"props":1244,"children":1245},{},[1246],{"type":34,"value":1247},"Press Play and accept the EULA. The first launch takes a few minutes, once; after that you reach the menu.",{"type":28,"tag":62,"props":1249,"children":1250},{},[1251],{"type":34,"value":1252},"After signing in to Steam once, you can also play offline.",{"title":6,"searchDepth":225,"depth":225,"links":1254},[1255,1256,1257,1258],{"id":31,"depth":225,"text":35},{"id":53,"depth":225,"text":56},{"id":1043,"depth":225,"text":1046},{"id":99,"depth":225,"text":102},"content:skyrimse-dualscreen:index.md","skyrimse-dualscreen\u002Findex.md","skyrimse-dualscreen\u002Findex",{"_path":1263,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":1264,"description":1265,"date":951,"slug":1266,"category":12,"generated":13,"media":1267,"source":1270,"project_page":1271,"body":1272,"_type":231,"_id":1395,"_source":233,"_file":1396,"_stem":1397,"_extension":236},"\u002Fthor-aok","Thor AoK","Native Age of Empires II port for the AYN Thor with the map on the top screen and a touch command deck on the bottom.","thor-aok",[1268],{"type":245,"url":1269},"https:\u002F\u002Fyoutu.be\u002FcT8PKuzvq-g","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1xooizx\u002Fage_of_empires_ii_on_the_ayn_thor_full_map_on_top\u002F","https:\u002F\u002Fgithub.com\u002Fharmssi\u002Fthor-aok",{"type":25,"children":1273,"toc":1389},[1274,1278,1283,1287,1320,1324,1362,1366],{"type":28,"tag":29,"props":1275,"children":1276},{"id":31},[1277],{"type":34,"value":35},{"type":28,"tag":37,"props":1279,"children":1280},{},[1281],{"type":34,"value":1282},"Thor AoK is a native Android (arm64) port of Age of Empires II for the AYN Thor dual-screen handheld, built on the open-source OpenAoK engine — no Wine and no emulator. It plays from your own Age of Empires II HD (Steam) files; no game data is included in the APK. The top screen shows only the map at full 1920×1080, while the bottom screen (1240×1080) becomes a touch command deck. The game plays The Age of Kings' rules from The Conquerors' data: the 13 original civilisations, the original random maps and the computer player from HD's scripts. Fan project, not affiliated with Microsoft, Ensemble Studios or AYN.",{"type":28,"tag":29,"props":1284,"children":1285},{"id":99},[1286],{"type":34,"value":102},{"type":28,"tag":58,"props":1288,"children":1289},{},[1290,1295,1300,1305,1310,1315],{"type":28,"tag":62,"props":1291,"children":1292},{},[1293],{"type":34,"value":1294},"Download ThorAoK-0.1.0.apk from the latest release and install it on the Thor (allow installing from your browser or file manager once).",{"type":28,"tag":62,"props":1296,"children":1297},{},[1298],{"type":34,"value":1299},"Install Age of Empires II HD from your Steam library on a PC or Mac (or on the Thor through a Steam client such as DroiDeck — the files are what matters).",{"type":28,"tag":62,"props":1301,"children":1302},{},[1303],{"type":34,"value":1304},"Convert the data on a PC or Mac with the script from the repository (Python 3, CMake and a C++ compiler; Pillow and NumPy for the terrain). This writes android\u002Fbuild\u002FOpenAoK-data\u002F (about 300 MB) from your own files.",{"type":28,"tag":62,"props":1306,"children":1307},{},[1308],{"type":34,"value":1309},"Copy OpenAoK-data to the Thor (SD card or internal storage, USB or adb push).",{"type":28,"tag":62,"props":1311,"children":1312},{},[1313],{"type":34,"value":1314},"Start Thor AoK, tap Choose data folder, open OpenAoK-data, Use this folder → Allow. The app checks every file against the manifest and copies it in; after that it starts straight away (Play). The folder on the card can be deleted afterwards.",{"type":28,"tag":62,"props":1316,"children":1317},{},[1318],{"type":34,"value":1319},"No permissions to grant — the import uses Android's folder picker.",{"type":28,"tag":29,"props":1321,"children":1322},{"id":53},[1323],{"type":34,"value":56},{"type":28,"tag":58,"props":1325,"children":1326},{},[1327,1332,1337,1342,1347,1352,1357],{"type":28,"tag":62,"props":1328,"children":1329},{},[1330],{"type":34,"value":1331},"Top screen (1920×1080): only the map. The top bar and bottom panel are gone; menus, dialogs and messages are unchanged.",{"type":28,"tag":62,"props":1333,"children":1334},{},[1335],{"type":34,"value":1336},"Bottom screen (1240×1080): a touch command deck with wood, food, gold, stone, population and the age; the mini-map (tap or drag to move the view); the selection with its hit points and production queue (tap a queued item to cancel it); quick buttons for the idle villager, idle army, Town Center, the next age, delete and the menu; and the selection's commands as big tiles with the original icons.",{"type":28,"tag":62,"props":1338,"children":1339},{},[1340],{"type":34,"value":1341},"Tap a tile to press the button (train, research, build menu, stop, bell, …); long-press shows the button's help.",{"type":28,"tag":62,"props":1343,"children":1344},{},[1345],{"type":34,"value":1346},"Placing a building: pick it on the deck, then tap the spot on the top screen. Delete asks first: tap it again within 3 seconds.",{"type":28,"tag":62,"props":1348,"children":1349},{},[1350],{"type":34,"value":1351},"Mini-map drawn by the engine's mini-map code (terrain, fog, units) with the view frame.",{"type":28,"tag":62,"props":1353,"children":1354},{},[1355],{"type":34,"value":1356},"Deck and launcher in English, Deutsch, Español, Français; the game's own text comes from your HD files (English).",{"type":28,"tag":62,"props":1358,"children":1359},{},[1360],{"type":34,"value":1361},"Without a second screen everything stays as in OpenAoK.",{"type":28,"tag":29,"props":1363,"children":1364},{"id":192},[1365],{"type":34,"value":195},{"type":28,"tag":58,"props":1367,"children":1368},{},[1369,1374,1379,1384],{"type":28,"tag":62,"props":1370,"children":1371},{},[1372],{"type":34,"value":1373},"The Conquerors' civilisations, units and technologies are in the data but not playable; the computer player skips rules that need them.",{"type":28,"tag":62,"props":1375,"children":1376},{},[1377],{"type":34,"value":1378},"No default hotkeys (they come from the CD's EMPIRES2.EXE, which HD does not have); campaigns and the 1999 bonus scenario are not converted.",{"type":28,"tag":62,"props":1380,"children":1381},{},[1382],{"type":34,"value":1383},"The game's text is English (from HD's English strings).",{"type":28,"tag":62,"props":1385,"children":1386},{},[1387],{"type":34,"value":1388},"v0.1.0: economy and building work well; combat and aging up are still early. Game music is muted for now.",{"title":6,"searchDepth":225,"depth":225,"links":1390},[1391,1392,1393,1394],{"id":31,"depth":225,"text":35},{"id":99,"depth":225,"text":102},{"id":53,"depth":225,"text":56},{"id":192,"depth":225,"text":195},"content:thor-aok:index.md","thor-aok\u002Findex.md","thor-aok\u002Findex",{"_path":1399,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":1400,"description":1401,"date":951,"slug":1402,"category":12,"generated":13,"media":1403,"source":1406,"project_page":1407,"body":1408,"_type":231,"_id":1712,"_source":233,"_file":1713,"_stem":1714,"_extension":236},"\u002Fthor-ra2","Thor RA2","Native port of Red Alert 2 \u002F Yuri's Revenge for the AYN Thor with the full map on the top screen and a touch command deck on the second screen.","thor-ra2",[1404],{"type":245,"url":1405},"https:\u002F\u002Fyoutu.be\u002FhMupGiEim60","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1xofkqe\u002Fred_alert_2_on_the_thor_with_the_whole_map_on_top\u002F","https:\u002F\u002Fgithub.com\u002Fharmssi\u002Fthor-ra2",{"type":25,"children":1409,"toc":1706},[1410,1414,1419,1423,1567,1571,1664,1668],{"type":28,"tag":29,"props":1411,"children":1412},{"id":31},[1413],{"type":34,"value":35},{"type":28,"tag":37,"props":1415,"children":1416},{},[1417],{"type":34,"value":1418},"Thor RA2 is an Android (arm64) build of the open-source RA2 Engine that runs Red Alert 2 \u002F Yuri's Revenge natively on the AYN Thor — no Wine, no emulator. The top screen (1920×1080) shows only the map at full width, with the sidebar gone; menus, briefings and movies stay original. The bottom screen (1240×1080) is a touch command deck with credits, a power meter (red on low power), the radar, REPAIR \u002F SELL \u002F MENU \u002F ZOOM, control groups 1–5, superweapons with their timers, and four build tabs (buildings, defenses, infantry, vehicles) with cameos, build progress, READY and ON HOLD. The deck is available in English, German, Spanish and French. The app ships no game data — it runs on the original files from your own copy of the game.",{"type":28,"tag":29,"props":1420,"children":1421},{"id":99},[1422],{"type":34,"value":102},{"type":28,"tag":58,"props":1424,"children":1425},{},[1426,1431,1463,1521,1548],{"type":28,"tag":62,"props":1427,"children":1428},{},[1429],{"type":34,"value":1430},"Download the latest release APK on the Thor.",{"type":28,"tag":62,"props":1432,"children":1433},{},[1434,1436,1441,1443,1448,1450,1455,1457,1462],{"type":34,"value":1435},"In Chrome tap ",{"type":28,"tag":139,"props":1437,"children":1438},{},[1439],{"type":34,"value":1440},"Download anyway",{"type":34,"value":1442},", open the file, and when the Package installer asks for permission choose ",{"type":28,"tag":139,"props":1444,"children":1445},{},[1446],{"type":34,"value":1447},"Settings → Allow from this source",{"type":34,"value":1449},", go back (you land in the download list) and ",{"type":28,"tag":139,"props":1451,"children":1452},{},[1453],{"type":34,"value":1454},"tap the APK again",{"type":34,"value":1456},", then ",{"type":28,"tag":139,"props":1458,"children":1459},{},[1460],{"type":34,"value":1461},"Install",{"type":34,"value":176},{"type":28,"tag":62,"props":1464,"children":1465},{},[1466,1468,1474,1476,1482,1484,1490,1492,1498,1500,1506,1507,1513,1514,1520],{"type":34,"value":1467},"Copy every ",{"type":28,"tag":43,"props":1469,"children":1471},{"className":1470},[],[1472],{"type":34,"value":1473},".mix",{"type":34,"value":1475}," and ",{"type":28,"tag":43,"props":1477,"children":1479},{"className":1478},[],[1480],{"type":34,"value":1481},".csf",{"type":34,"value":1483}," file from your Red Alert 2 \u002F Yuri's Revenge install (about 1 GB) into a ",{"type":28,"tag":43,"props":1485,"children":1487},{"className":1486},[],[1488],{"type":34,"value":1489},"Download\u002FRA2",{"type":34,"value":1491}," folder on the Thor. Required: ",{"type":28,"tag":43,"props":1493,"children":1495},{"className":1494},[],[1496],{"type":34,"value":1497},"ra2.mix",{"type":34,"value":1499},", ",{"type":28,"tag":43,"props":1501,"children":1503},{"className":1502},[],[1504],{"type":34,"value":1505},"ra2md.mix",{"type":34,"value":1499},{"type":28,"tag":43,"props":1508,"children":1510},{"className":1509},[],[1511],{"type":34,"value":1512},"language.mix",{"type":34,"value":1499},{"type":28,"tag":43,"props":1515,"children":1517},{"className":1516},[],[1518],{"type":34,"value":1519},"multimd.mix",{"type":34,"value":176},{"type":28,"tag":62,"props":1522,"children":1523},{},[1524,1526,1531,1533,1539,1541,1546],{"type":34,"value":1525},"Start Thor RA2, tap ",{"type":28,"tag":139,"props":1527,"children":1528},{},[1529],{"type":34,"value":1530},"Game files → Import or update game files",{"type":34,"value":1532},", open the ",{"type":28,"tag":43,"props":1534,"children":1536},{"className":1535},[],[1537],{"type":34,"value":1538},"RA2",{"type":34,"value":1540}," folder, then ",{"type":28,"tag":139,"props":1542,"children":1543},{},[1544],{"type":34,"value":1545},"Use this folder → Allow",{"type":34,"value":1547},". The files are copied into the app's own folder.",{"type":28,"tag":62,"props":1549,"children":1550},{},[1551,1553,1558,1560,1565],{"type":34,"value":1552},"Pick ",{"type":28,"tag":139,"props":1554,"children":1555},{},[1556],{"type":34,"value":1557},"Red Alert 2",{"type":34,"value":1559}," or ",{"type":28,"tag":139,"props":1561,"children":1562},{},[1563],{"type":34,"value":1564},"Yuri's Revenge",{"type":34,"value":1566}," on the bottom screen.",{"type":28,"tag":29,"props":1568,"children":1569},{"id":53},[1570],{"type":34,"value":56},{"type":28,"tag":58,"props":1572,"children":1573},{},[1574,1584,1594,1604,1614,1624,1634,1644,1654],{"type":28,"tag":62,"props":1575,"children":1576},{},[1577,1582],{"type":28,"tag":139,"props":1578,"children":1579},{},[1580],{"type":34,"value":1581},"Dual screen:",{"type":34,"value":1583}," map on the top screen, touch command deck on the second screen; without a second screen the original sidebar is shown.",{"type":28,"tag":62,"props":1585,"children":1586},{},[1587,1592],{"type":28,"tag":139,"props":1588,"children":1589},{},[1590],{"type":34,"value":1591},"Build deck:",{"type":34,"value":1593}," tap to build, or place when READY (then tap the spot on the top screen); units queue with every tap, long-press holds or cancels; the accent color follows the side (Allies blue, Soviets red, Yuri violet).",{"type":28,"tag":62,"props":1595,"children":1596},{},[1597,1602],{"type":28,"tag":139,"props":1598,"children":1599},{},[1600],{"type":34,"value":1601},"Radar:",{"type":34,"value":1603}," rendered from the engine's own radar picture; tap or drag to scroll the map.",{"type":28,"tag":62,"props":1605,"children":1606},{},[1607,1612],{"type":28,"tag":139,"props":1608,"children":1609},{},[1610],{"type":34,"value":1611},"Control groups:",{"type":34,"value":1613}," groups 1–5 with unit count; tap to select, tap again to move the camera, long-press to save the current selection.",{"type":28,"tag":62,"props":1615,"children":1616},{},[1617,1622],{"type":28,"tag":139,"props":1618,"children":1619},{},[1620],{"type":34,"value":1621},"Zoom:",{"type":34,"value":1623}," cycles the game picture 100 % → 125 % → 150 % live, mid-game; the setting is kept.",{"type":28,"tag":62,"props":1625,"children":1626},{},[1627,1632],{"type":28,"tag":139,"props":1628,"children":1629},{},[1630],{"type":34,"value":1631},"Superweapons:",{"type":34,"value":1633}," each with its cameo, countdown and charge bar; tap when READY to pick a target.",{"type":28,"tag":62,"props":1635,"children":1636},{},[1637,1642],{"type":28,"tag":139,"props":1638,"children":1639},{},[1640],{"type":34,"value":1641},"Controller:",{"type":34,"value":1643}," left stick = cursor, A = left click, B = right click, right stick \u002F D-pad = scroll, Start = options, Back = centre on base, X = deploy, Y = stop, L3 (hold) = force fire; L1 \u002F R1 switch the deck's build tab.",{"type":28,"tag":62,"props":1645,"children":1646},{},[1647,1652],{"type":28,"tag":139,"props":1648,"children":1649},{},[1650],{"type":34,"value":1651},"Launcher:",{"type":34,"value":1653}," title screen on top, choice on the bottom screen (Red Alert 2 or Yuri's Revenge), game files, ZOOM, language, info.",{"type":28,"tag":62,"props":1655,"children":1656},{},[1657,1662],{"type":28,"tag":139,"props":1658,"children":1659},{},[1660],{"type":34,"value":1661},"Languages:",{"type":34,"value":1663}," deck in English, German, Spanish and French, following the system \u002F per-app language.",{"type":28,"tag":29,"props":1665,"children":1666},{"id":192},[1667],{"type":34,"value":195},{"type":28,"tag":58,"props":1669,"children":1670},{},[1671,1676,1681,1686,1691,1696,1701],{"type":28,"tag":62,"props":1672,"children":1673},{},[1674],{"type":34,"value":1675},"Yuri is playable in skirmish only (no Yuri campaign); several Yuri abilities are still approximations or missing.",{"type":28,"tag":62,"props":1677,"children":1678},{},[1679],{"type":34,"value":1680},"Menu D-pad navigation jumps between buttons, list entries and checkboxes; sliders and some drop-down lists still need the stick cursor.",{"type":28,"tag":62,"props":1682,"children":1683},{},[1684],{"type":34,"value":1685},"\"Red Alert 2\" in the launcher only hides Yuri in the skirmish lobby; the engine always plays Yuri's Revenge rules.",{"type":28,"tag":62,"props":1687,"children":1688},{},[1689],{"type":34,"value":1690},"Saves from 0.2.x do not load in 0.3.0 (they are kept, not deleted).",{"type":28,"tag":62,"props":1692,"children":1693},{},[1694],{"type":34,"value":1695},"Ares \u002F Phobos overhaul mods such as Mental Omega do not run.",{"type":28,"tag":62,"props":1697,"children":1698},{},[1699],{"type":34,"value":1700},"The shell menu font has no ß; menus spell it \"ss\". Umlauts and accents are shown.",{"type":28,"tag":62,"props":1702,"children":1703},{},[1704],{"type":34,"value":1705},"Requires Android 8.0 or later (arm64); made and tested for the AYN Thor.",{"title":6,"searchDepth":225,"depth":225,"links":1707},[1708,1709,1710,1711],{"id":31,"depth":225,"text":35},{"id":99,"depth":225,"text":102},{"id":53,"depth":225,"text":56},{"id":192,"depth":225,"text":195},"content:thor-ra2:index.md","thor-ra2\u002Findex.md","thor-ra2\u002Findex",{"_path":1716,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":1717,"description":1718,"date":1719,"slug":1720,"category":242,"generated":13,"media":1721,"source":1728,"project_page":1729,"body":1730,"_type":231,"_id":2083,"_source":233,"_file":2084,"_stem":2085,"_extension":236},"\u002Fdelphis","Delphis","A companion app for the Dolphin emulator that auto-maps your controller and turns the Thor's bottom screen into a live button guide.","2026-11-06 08:03","delphis",[1722,1724,1726],{"type":16,"url":1723},"\u002Fcontent\u002Fdelphis\u002Fpreview.webp",{"type":16,"url":1725},"\u002Fcontent\u002Fdelphis\u002Fscreenshot-2.webp",{"type":16,"url":1727},"\u002Fcontent\u002Fdelphis\u002Fscreenshot-3.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1xow1hd\u002Fdelphis_a_dolphincompanion_app_for_emulating\u002F","https:\u002F\u002Fgithub.com\u002FHiramRG\u002FDelphis",{"type":25,"children":1731,"toc":2077},[1732,1736,1741,1745,1904,1910,1963,1967],{"type":28,"tag":29,"props":1733,"children":1734},{"id":31},[1735],{"type":34,"value":35},{"type":28,"tag":37,"props":1737,"children":1738},{},[1739],{"type":34,"value":1740},"Pick a game and Delphis sets up the controls that suit it (pointer, sideways Wii Remote, wheel, gyro aiming…), launches it in Dolphin on the top screen, and turns the bottom screen into a live guide to your buttons. It lets you change controls mid-game, autosaves when you quit and picks up where you left off.",{"type":28,"tag":29,"props":1742,"children":1743},{"id":53},[1744],{"type":34,"value":56},{"type":28,"tag":58,"props":1746,"children":1747},{},[1748,1758,1782,1792,1802,1812,1822,1851,1867,1884,1894],{"type":28,"tag":62,"props":1749,"children":1750},{},[1751,1756],{"type":28,"tag":139,"props":1752,"children":1753},{},[1754],{"type":34,"value":1755},"Game-aware presets.",{"type":34,"value":1757}," Delphis reads the game ID from the disc and suggests layouts built for that game.",{"type":28,"tag":62,"props":1759,"children":1760},{},[1761,1766,1768,1774,1775,1780],{"type":28,"tag":139,"props":1762,"children":1763},{},[1764],{"type":34,"value":1765},"Gyro aiming (Experimental).",{"type":34,"value":1767}," Aim the Wii pointer by moving the Thor, with two styles: ",{"type":28,"tag":1769,"props":1770,"children":1771},"em",{},[1772],{"type":34,"value":1773},"Gyro aiming",{"type":34,"value":1475},{"type":28,"tag":1769,"props":1776,"children":1777},{},[1778],{"type":34,"value":1779},"Precision gyro",{"type":34,"value":1781},", which moves finely when you move slowly and far when you move fast, and lets you hold R1 to freeze the pointer and re-position. Invert up\u002Fdown or left\u002Fright in Settings, and try it on the built-in test screen.",{"type":28,"tag":62,"props":1783,"children":1784},{},[1785,1790],{"type":28,"tag":139,"props":1786,"children":1787},{},[1788],{"type":34,"value":1789},"Edit any preset.",{"type":34,"value":1791}," Change what any button does for one game; your version is saved for that game.",{"type":28,"tag":62,"props":1793,"children":1794},{},[1795,1800],{"type":28,"tag":139,"props":1796,"children":1797},{},[1798],{"type":34,"value":1799},"Change controls mid-game.",{"type":34,"value":1801}," Pick another layout from the bottom screen; the game restarts with it and, with autosave on, continues from the same spot.",{"type":28,"tag":62,"props":1803,"children":1804},{},[1805,1810],{"type":28,"tag":139,"props":1806,"children":1807},{},[1808],{"type":34,"value":1809},"Top screen.",{"type":34,"value":1811}," Delphis' menus, then the game in Dolphin.",{"type":28,"tag":62,"props":1813,"children":1814},{},[1815,1820],{"type":28,"tag":139,"props":1816,"children":1817},{},[1818],{"type":34,"value":1819},"Bottom screen in the menus.",{"type":34,"value":1821}," Quick tiles, a touch picker for control styles, and details for the game you're on.",{"type":28,"tag":62,"props":1823,"children":1824},{},[1825,1830,1832,1837,1838,1843,1844,1849],{"type":28,"tag":139,"props":1826,"children":1827},{},[1828],{"type":34,"value":1829},"Bottom screen while playing.",{"type":34,"value":1831}," Big tiles for the main buttons (colour-coded A, B, X, Y), the rest in a short list, plus ",{"type":28,"tag":1769,"props":1833,"children":1834},{},[1835],{"type":34,"value":1836},"Change controls",{"type":34,"value":1499},{"type":28,"tag":1769,"props":1839,"children":1840},{},[1841],{"type":34,"value":1842},"Edit preset",{"type":34,"value":1475},{"type":28,"tag":1769,"props":1845,"children":1846},{},[1847],{"type":34,"value":1848},"Main menu",{"type":34,"value":1850},". A thin bar shows the time and battery.",{"type":28,"tag":62,"props":1852,"children":1853},{},[1854,1859,1861,1866],{"type":28,"tag":139,"props":1855,"children":1856},{},[1857],{"type":34,"value":1858},"Autosave and resume.",{"type":34,"value":1860}," When you close a game from Delphis, it saves a Dolphin save state first, and the next time you start that game it continues from there. You can turn this off in ",{"type":28,"tag":1769,"props":1862,"children":1863},{},[1864],{"type":34,"value":1865},"Settings → Closing games",{"type":34,"value":176},{"type":28,"tag":62,"props":1868,"children":1869},{},[1870,1875,1877,1882],{"type":28,"tag":139,"props":1871,"children":1872},{},[1873],{"type":34,"value":1874},"A Wii-style home.",{"type":34,"value":1876}," A ",{"type":28,"tag":1769,"props":1878,"children":1879},{},[1880],{"type":34,"value":1881},"Continue playing",{"type":34,"value":1883}," card for your last game, a recently played row, then your whole library, with a retractable column for All games, Favorites, Wii and GameCube, plus search and sorting by Recent \u002F A–Z \u002F Most played.",{"type":28,"tag":62,"props":1885,"children":1886},{},[1887,1892],{"type":28,"tag":139,"props":1888,"children":1889},{},[1890],{"type":34,"value":1891},"Menu music.",{"type":34,"value":1893}," An original, Wii-style loop that plays only in the menus, or your own audio file, with its own volume slider.",{"type":28,"tag":62,"props":1895,"children":1896},{},[1897,1902],{"type":28,"tag":139,"props":1898,"children":1899},{},[1900],{"type":34,"value":1901},"In-app updates",{"type":34,"value":1903}," from the repository's releases.",{"type":28,"tag":29,"props":1905,"children":1907},{"id":1906},"supported-games",[1908],{"type":34,"value":1909},"Supported games",{"type":28,"tag":58,"props":1911,"children":1912},{},[1913,1918,1923,1928,1933,1938,1943,1948,1953,1958],{"type":28,"tag":62,"props":1914,"children":1915},{},[1916],{"type":34,"value":1917},"Super Mario Galaxy 1 & 2",{"type":28,"tag":62,"props":1919,"children":1920},{},[1921],{"type":34,"value":1922},"Mario Kart Wii",{"type":28,"tag":62,"props":1924,"children":1925},{},[1926],{"type":34,"value":1927},"New Super Mario Bros. Wii",{"type":28,"tag":62,"props":1929,"children":1930},{},[1931],{"type":34,"value":1932},"Metroid Prime 3 \u002F Trilogy",{"type":28,"tag":62,"props":1934,"children":1935},{},[1936],{"type":34,"value":1937},"Twilight Princess",{"type":28,"tag":62,"props":1939,"children":1940},{},[1941],{"type":34,"value":1942},"Donkey Kong Country Returns",{"type":28,"tag":62,"props":1944,"children":1945},{},[1946],{"type":34,"value":1947},"Kirby's Return to Dream Land",{"type":28,"tag":62,"props":1949,"children":1950},{},[1951],{"type":34,"value":1952},"Super Paper Mario",{"type":28,"tag":62,"props":1954,"children":1955},{},[1956],{"type":34,"value":1957},"Smash Bros. Brawl",{"type":28,"tag":62,"props":1959,"children":1960},{},[1961],{"type":34,"value":1962},"Plus generic presets for everything else (pointer, sideways, Classic Controller, GameCube).",{"type":28,"tag":29,"props":1964,"children":1965},{"id":99},[1966],{"type":34,"value":102},{"type":28,"tag":58,"props":1968,"children":1969},{},[1970,1990,1995,2065],{"type":28,"tag":62,"props":1971,"children":1972},{},[1973,1975,1980,1982,1988],{"type":34,"value":1974},"Download ",{"type":28,"tag":139,"props":1976,"children":1977},{},[1978],{"type":34,"value":1979},"Delphis.apk",{"type":34,"value":1981}," from the ",{"type":28,"tag":705,"props":1983,"children":1986},{"href":1984,"rel":1985},"https:\u002F\u002Fgithub.com\u002FHiramRG\u002FDelphis\u002Freleases\u002Flatest",[709],[1987],{"type":34,"value":712},{"type":34,"value":1989}," and install it on your Thor. Android asks you to allow installing apps from your browser or file manager the first time.",{"type":28,"tag":62,"props":1991,"children":1992},{},[1993],{"type":34,"value":1994},"Open Dolphin once so its user folder exists.",{"type":28,"tag":62,"props":1996,"children":1997},{},[1998,2000],{"type":34,"value":1999},"Open Delphis and follow the walkthrough:\n",{"type":28,"tag":58,"props":2001,"children":2002},{},[2003,2026,2034,2044,2054],{"type":28,"tag":62,"props":2004,"children":2005},{},[2006,2011,2013,2018,2020,2025],{"type":28,"tag":139,"props":2007,"children":2008},{},[2009],{"type":34,"value":2010},"Connect Dolphin's folder:",{"type":34,"value":2012}," in the picker, open ",{"type":28,"tag":1769,"props":2014,"children":2015},{},[2016],{"type":34,"value":2017},"Dolphin",{"type":34,"value":2019}," in the side menu and tap ",{"type":28,"tag":1769,"props":2021,"children":2022},{},[2023],{"type":34,"value":2024},"Use this folder",{"type":34,"value":176},{"type":28,"tag":62,"props":2027,"children":2028},{},[2029],{"type":28,"tag":139,"props":2030,"children":2031},{},[2032],{"type":34,"value":2033},"Choose your games folder.",{"type":28,"tag":62,"props":2035,"children":2036},{},[2037,2042],{"type":28,"tag":139,"props":2038,"children":2039},{},[2040],{"type":34,"value":2041},"Turn on \"close games\"",{"type":34,"value":2043}," (the accessibility helper).",{"type":28,"tag":62,"props":2045,"children":2046},{},[2047,2052],{"type":28,"tag":139,"props":2048,"children":2049},{},[2050],{"type":34,"value":2051},"Controller Check",{"type":34,"value":2053}," (recommended, about a minute).",{"type":28,"tag":62,"props":2055,"children":2056},{},[2057,2059,2064],{"type":34,"value":2058},"Optionally ",{"type":28,"tag":139,"props":2060,"children":2061},{},[2062],{"type":34,"value":2063},"try gyro aiming",{"type":34,"value":176},{"type":28,"tag":62,"props":2066,"children":2067},{},[2068,2070,2075],{"type":34,"value":2069},"After that, Delphis updates itself: ",{"type":28,"tag":1769,"props":2071,"children":2072},{},[2073],{"type":34,"value":2074},"Settings → Updates",{"type":34,"value":2076}," (it also checks quietly at start-up).",{"title":6,"searchDepth":225,"depth":225,"links":2078},[2079,2080,2081,2082],{"id":31,"depth":225,"text":35},{"id":53,"depth":225,"text":56},{"id":1906,"depth":225,"text":1909},{"id":99,"depth":225,"text":102},"content:delphis:index.md","delphis\u002Findex.md","delphis\u002Findex",{"_path":2087,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":2088,"description":2089,"date":2090,"slug":2091,"category":12,"generated":13,"media":2092,"source":2095,"project_page":2096,"body":2097,"_type":231,"_id":2233,"_source":233,"_file":2234,"_stem":2235,"_extension":236},"\u002Fthor-d2","Thor D2","Diablo II: Lord of Destruction 1.13d on the AYN Thor with a live deck on the second screen.","2026-11-05 06:50","thor-d2",[2093],{"type":245,"url":2094},"https:\u002F\u002Fyoutu.be\u002F-4ygDPPjIVM","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1xno5g0\u002Fdiablo_2_lod_113d_on_the_thor_with_a_live_deck_on\u002F","https:\u002F\u002Fgithub.com\u002Fharmssi\u002Fthor-d2",{"type":25,"children":2098,"toc":2227},[2099,2103,2108,2113,2117,2165,2169,2205,2209],{"type":28,"tag":29,"props":2100,"children":2101},{"id":31},[2102],{"type":34,"value":35},{"type":28,"tag":37,"props":2104,"children":2105},{},[2106],{"type":34,"value":2107},"Thor D2 is a fork of D2Android that runs the real Diablo II: Lord of Destruction 1.13d on the AYN Thor. The game fills the upper screen as a clean widescreen picture — D2Android's 960×540 scaled exactly 2× to the 1920×1080 OLED, sharp and without borders, touch buttons or the menu row — while the lower screen shows a live deck with your character, items, skills and quests, read live from the game.",{"type":28,"tag":37,"props":2109,"children":2110},{},[2111],{"type":34,"value":2112},"The app contains no game files. You need your own, purchased copy of Diablo II and Lord of Destruction: two CD keys from your Battle.net account (Games & Subscriptions → classic games), or an existing 1.13d installation.",{"type":28,"tag":29,"props":2114,"children":2115},{"id":53},[2116],{"type":34,"value":56},{"type":28,"tag":58,"props":2118,"children":2119},{},[2120,2125,2130,2135,2140,2145,2150,2155,2160],{"type":28,"tag":62,"props":2121,"children":2122},{},[2123],{"type":34,"value":2124},"Live deck on the second screen: character name, class, level and difficulty; life, mana and experience to the next level; resistances as the character screen shows them (difficulty penalty included); strength, dexterity, vitality, energy, defense, magic find, unspent stat and skill points; gold and stash gold.",{"type":28,"tag":62,"props":2126,"children":2127},{},[2128],{"type":34,"value":2129},"Effects and auras with time left, area and act, town or not.",{"type":28,"tag":62,"props":2131,"children":2132},{},[2133],{"type":34,"value":2134},"The deck's frames, life and mana orbs, fonts, skill icons and item pictures are read at runtime from your own game files; without them it falls back to a plain dark look of its own.",{"type":28,"tag":62,"props":2136,"children":2137},{},[2138],{"type":34,"value":2139},"Items by touch: tap an item to take it (it shows gold), then tap a cell to put it there — inventory, stash, cube, belt slots and equipment slots; use, sell (with a shop open), drop and cancel work too.",{"type":28,"tag":62,"props":2141,"children":2142},{},[2143],{"type":34,"value":2144},"Skills on keys: tap a learnt skill in the Skills tab, then put it on the left\u002Fright mouse button or F1–F8, mapped to the pad.",{"type":28,"tag":62,"props":2146,"children":2147},{},[2148],{"type":34,"value":2149},"Tabs for Inventory (item names in quality colours, belt, equipped items), Stash, Cube, Mercenary (life, level, equipment) and Quests (state of every quest of the current act, next goal).",{"type":28,"tag":62,"props":2151,"children":2152},{},[2153],{"type":34,"value":2154},"Sort inventory: moves items with the game's own pick-up and put-down actions, never by writing to memory; single player only, and it does not run while a shop, trade or the stash is open, a monster is near, or the game is paused.",{"type":28,"tag":62,"props":2156,"children":2157},{},[2158],{"type":34,"value":2159},"Portal and Potion buttons; full Thor controller layout with a second skill row on RB and remappable buttons under Settings → Controls → Gamepad.",{"type":28,"tag":62,"props":2161,"children":2162},{},[2163],{"type":34,"value":2164},"Measured in play: about 118 fps on the 120 Hz OLED (frames interpolated, game logic stays at the original 25 ticks\u002Fs), about 2 of 8 CPU cores, battery at most 34 °C on AC.",{"type":28,"tag":29,"props":2166,"children":2167},{"id":99},[2168],{"type":34,"value":102},{"type":28,"tag":58,"props":2170,"children":2171},{},[2172,2185,2190,2195,2200],{"type":28,"tag":62,"props":2173,"children":2174},{},[2175,2177,2183],{"type":34,"value":2176},"Download the ThorD2 APK from the ",{"type":28,"tag":705,"props":2178,"children":2181},{"href":2179,"rel":2180},"https:\u002F\u002Fgithub.com\u002Fharmssi\u002Fthor-d2\u002Freleases\u002Flatest",[709],[2182],{"type":34,"value":712},{"type":34,"value":2184}," and install it. Play Protect may warn because the app targets an older Android version — choose More details → Install anyway. It installs next to D2Android, so both can stay.",{"type":28,"tag":62,"props":2186,"children":2187},{},[2188],{"type":34,"value":2189},"Open Thor D2 and allow storage, notifications and background running.",{"type":28,"tag":62,"props":2191,"children":2192},{},[2193],{"type":34,"value":2194},"Install the game without a PC: choose English or German and type in your two CD keys (Diablo II and Lord of Destruction). The app downloads Blizzard's official installers, installs into its own storage and patches to 1.13d (about 2 GB download — use Wi-Fi). The keys go straight to Blizzard's installer and are never stored.",{"type":28,"tag":62,"props":2196,"children":2197},{},[2198],{"type":34,"value":2199},"Or copy an existing Diablo II 1.13d folder (with Game.exe, d2data.mpq, d2exp.mpq, …) to the device and use Choose game folder.",{"type":28,"tag":62,"props":2201,"children":2202},{},[2203],{"type":34,"value":2204},"Start a character — the deck appears on the lower screen by itself.",{"type":28,"tag":29,"props":2206,"children":2207},{"id":192},[2208],{"type":34,"value":195},{"type":28,"tag":58,"props":2210,"children":2211},{},[2212,2217,2222],{"type":28,"tag":62,"props":2213,"children":2214},{},[2215],{"type":34,"value":2216},"Identifying items isn't enabled yet.",{"type":28,"tag":62,"props":2218,"children":2219},{},[2220],{"type":34,"value":2221},"The cube is untested.",{"type":28,"tag":62,"props":2223,"children":2224},{},[2225],{"type":34,"value":2226},"Screen recordings have no game audio.",{"title":6,"searchDepth":225,"depth":225,"links":2228},[2229,2230,2231,2232],{"id":31,"depth":225,"text":35},{"id":53,"depth":225,"text":56},{"id":99,"depth":225,"text":102},{"id":192,"depth":225,"text":195},"content:thor-d2:index.md","thor-d2\u002Findex.md","thor-d2\u002Findex",{"_path":2237,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":2238,"description":2239,"date":2090,"slug":2240,"category":12,"generated":13,"media":2241,"source":2244,"project_page":2245,"body":2246,"_type":231,"_id":2404,"_source":233,"_file":2405,"_stem":2406,"_extension":236},"\u002Ftotk-native","TotK Native","Native Android port of The Legend of Zelda: Tears of the Kingdom 1.4.3 with a dual-screen companion for the AYN Thor.","totk-native",[2242],{"type":16,"url":2243},"\u002Fcontent\u002Ftotk-native\u002Fpreview.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1xnhbd3\u002Fthe_legend_of_zelda_tears_of_the_kingdom_dual\u002F","https:\u002F\u002Fgithub.com\u002FAurelioB\u002Ftotk-android",{"type":25,"children":2247,"toc":2398},[2248,2252,2257,2261,2299,2303,2351,2356,2360],{"type":28,"tag":29,"props":2249,"children":2250},{"id":31},[2251],{"type":34,"value":35},{"type":28,"tag":37,"props":2253,"children":2254},{},[2255],{"type":34,"value":2256},"TotK Native runs The Legend of Zelda: Tears of the Kingdom 1.4.3 natively on Android handhelds with a Qualcomm Adreno GPU. It is not an emulator: the game's own code is prepared once, on your device, to run directly on its processor, and its graphics are drawn by a bundled Vulkan driver. The app contains no game files — you point it at your own dump of the game, and it builds everything it needs on the device. A controller-friendly pre-game menu lets you pick graphics presets, controls and saves before you play. On the AYN Thor (and the Retroid Pocket Duo), a dual-screen companion shows Link's status, the map and the inventory on the second screen, and lets you equip, eat and fuse items from it while you play.",{"type":28,"tag":29,"props":2258,"children":2259},{"id":53},[2260],{"type":34,"value":56},{"type":28,"tag":58,"props":2262,"children":2263},{},[2264,2269,2274,2279,2284,2289,2294],{"type":28,"tag":62,"props":2265,"children":2266},{},[2267],{"type":34,"value":2268},"Runs the game natively at 30 fps or 60 fps from a single APK.",{"type":28,"tag":62,"props":2270,"children":2271},{},[2272],{"type":34,"value":2273},"On-device setup from either a decrypted RomFS + ExeFS dump, or base XCI\u002FNSP + 1.4.3 update + your keys.",{"type":28,"tag":62,"props":2275,"children":2276},{},[2277],{"type":34,"value":2278},"Pre-game menu with presets, explanations for every setting, and a default profile picked for your chip.",{"type":28,"tag":62,"props":2280,"children":2281},{},[2282],{"type":34,"value":2283},"Dual-screen companion on the AYN Thor and Retroid Pocket Duo: status, map and inventory on the second screen, with item actions (equip and unequip weapons, bows, shields and armor; eat food and edible materials; drink elixirs; use fairies; take out a material or Zonai device; and fuse a material to your arrows with the bow drawn).",{"type":28,"tag":62,"props":2285,"children":2286},{},[2287],{"type":34,"value":2288},"Graphics options: presets, 30\u002F60 fps, render resolution, FSR 1 and Snapdragon GSR upscaling, FXAA\u002FSMAA, shadow quality, handheld or docked mode, a performance overlay, and experimental frame generation and native HUD.",{"type":28,"tag":62,"props":2290,"children":2291},{},[2292],{"type":34,"value":2293},"Saves: export and import (also from JKSV, Checkpoint, Ryujinx or yuzu dumps), automatic backups, and an optional synced save folder.",{"type":28,"tag":62,"props":2295,"children":2296},{},[2297],{"type":34,"value":2298},"Game data in internal storage, on an SD card, or in a folder you choose.",{"type":28,"tag":29,"props":2300,"children":2301},{"id":99},[2302],{"type":34,"value":102},{"type":28,"tag":104,"props":2304,"children":2305},{},[2306,2311,2316,2321,2326,2331,2336,2341,2346],{"type":28,"tag":62,"props":2307,"children":2308},{},[2309],{"type":34,"value":2310},"Download the latest TotK-Native APK from the Releases page and install it (allow installs from your browser or file manager).",{"type":28,"tag":62,"props":2312,"children":2313},{},[2314],{"type":34,"value":2315},"Copy your dump of the game to the device or an SD card.",{"type":28,"tag":62,"props":2317,"children":2318},{},[2319],{"type":34,"value":2320},"Open TotK Native and press Begin setup.",{"type":28,"tag":62,"props":2322,"children":2323},{},[2324],{"type":34,"value":2325},"Choose where the game data goes — internal storage is recommended (fastest); the SD card or a folder you choose work too.",{"type":28,"tag":62,"props":2327,"children":2328},{},[2329],{"type":34,"value":2330},"Pick your route: a decrypted RomFS + ExeFS dump, or the base game XCI\u002FNSP + 1.4.3 update + your keys.",{"type":28,"tag":62,"props":2332,"children":2333},{},[2334],{"type":34,"value":2335},"Choose your files with the file picker. Each file is checked as soon as you pick it; when everything is there, press + or Continue.",{"type":28,"tag":62,"props":2337,"children":2338},{},[2339],{"type":34,"value":2340},"Choose whether to check GitHub for a newer app version when the game starts (On by default).",{"type":28,"tag":62,"props":2342,"children":2343},{},[2344],{"type":34,"value":2345},"Prepare: the game is built on the device. With a decrypted dump on internal storage this took about 1 minute 45 seconds on an AYN Thor.",{"type":28,"tag":62,"props":2347,"children":2348},{},[2349],{"type":34,"value":2350},"Choose graphics opens with your device's preset selected. Press + to play.",{"type":28,"tag":37,"props":2352,"children":2353},{},[2354],{"type":34,"value":2355},"Nothing is uploaded: your files stay on the device. Export your saves before uninstalling, as uninstalling removes them.",{"type":28,"tag":29,"props":2357,"children":2358},{"id":192},[2359],{"type":34,"value":195},{"type":28,"tag":58,"props":2361,"children":2362},{},[2363,2368,2373,2378,2383,2388,2393],{"type":28,"tag":62,"props":2364,"children":2365},{},[2366],{"type":34,"value":2367},"Game version 1.4.3 only; no DLC, online features or amiibo.",{"type":28,"tag":62,"props":2369,"children":2370},{},[2371],{"type":34,"value":2372},"Adreno GPUs only.",{"type":28,"tag":62,"props":2374,"children":2375},{},[2376],{"type":34,"value":2377},"Devices other than the three tested ones start on the Light preset and are untested.",{"type":28,"tag":62,"props":2379,"children":2380},{},[2381],{"type":34,"value":2382},"Shaders the shared list does not name yet are translated while playing, which can cause a short stutter the first time a new place is seen.",{"type":28,"tag":62,"props":2384,"children":2385},{},[2386],{"type":34,"value":2387},"Frame generation and the native HUD are experimental; frame generation is limited by GPU headroom in heavy scenes on the Thor.",{"type":28,"tag":62,"props":2389,"children":2390},{},[2391],{"type":34,"value":2392},"From the second screen, energy-recovering materials and fusing Zonai devices to arrows are not available yet.",{"type":28,"tag":62,"props":2394,"children":2395},{},[2396],{"type":34,"value":2397},"Saves are removed with the app: export them first.",{"title":6,"searchDepth":225,"depth":225,"links":2399},[2400,2401,2402,2403],{"id":31,"depth":225,"text":35},{"id":53,"depth":225,"text":56},{"id":99,"depth":225,"text":102},{"id":192,"depth":225,"text":195},"content:totk-native:index.md","totk-native\u002Findex.md","totk-native\u002Findex",{"_path":2408,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":2409,"description":2410,"date":2411,"slug":2412,"category":242,"generated":13,"media":2413,"source":2416,"project_page":2417,"body":2418,"_type":231,"_id":2546,"_source":233,"_file":2547,"_stem":2548,"_extension":236},"\u002Fsa-companion","SA Companion","A PDA-style companion app that shows live data from GTA San Andreas on a second screen.","2026-11-04 07:39","sa-companion",[2414],{"type":16,"url":2415},"\u002Fcontent\u002Fsa-companion\u002Fpreview.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1xngqbw\u002Fgta_sa_dual_screen_release\u002F","https:\u002F\u002Fgithub.com\u002FGamersmood\u002FSA-Companion",{"type":25,"children":2419,"toc":2540},[2420,2424,2429,2434,2438,2476,2480,2513,2517,2522,2535],{"type":28,"tag":29,"props":2421,"children":2422},{"id":31},[2423],{"type":34,"value":35},{"type":28,"tag":37,"props":2425,"children":2426},{},[2427],{"type":34,"value":2428},"SA Companion is a PDA-style companion app for GTA San Andreas on Android. The game runs on one screen and the app runs on a second screen (made for the AYN Thor Max, Android 13, where the game is on the top screen and the app on the bottom one). It shows live data from the game and can send a few things back.",{"type":28,"tag":37,"props":2430,"children":2431},{},[2432],{"type":34,"value":2433},"A CLEO script reads the game data and a small AML plugin writes it to a shared folder, which the app reads about 20 times a second. The app can also send things back to the game, such as a weapon, radio station, waypoint and cheats.",{"type":28,"tag":29,"props":2435,"children":2436},{"id":53},[2437],{"type":34,"value":56},{"type":28,"tag":58,"props":2439,"children":2440},{},[2441,2446,2451,2456,2461,2466,2471],{"type":28,"tag":62,"props":2442,"children":2443},{},[2444],{"type":34,"value":2445},"Live position, heading, health and armor, money, wanted stars, clock and day",{"type":28,"tag":62,"props":2447,"children":2448},{},[2449],{"type":34,"value":2450},"Weapon wheel with real magazine ammo, detonator, and the ability to equip a weapon from the app",{"type":28,"tag":62,"props":2452,"children":2453},{},[2454],{"type":34,"value":2455},"Car radio control",{"type":28,"tag":62,"props":2457,"children":2458},{},[2459],{"type":34,"value":2460},"Map with the real San Andreas icons, a circular radar, gang territories (with a flash during a gang war) and waypoints that you set on the app and that show up in the game",{"type":28,"tag":62,"props":2462,"children":2463},{},[2464],{"type":34,"value":2465},"Stats (including driving, flying, bike and cycling skill), cheat entry, settings and setup",{"type":28,"tag":62,"props":2467,"children":2468},{},[2469],{"type":34,"value":2470},"Two themes: San Andreas (default) and Classic (Chinatown Wars style, with its own pause screen)",{"type":28,"tag":62,"props":2472,"children":2473},{},[2474],{"type":34,"value":2475},"Game HUD opacity slider with live preview, and auto launch of the app on the second screen when the game starts",{"type":28,"tag":29,"props":2477,"children":2478},{"id":1043},[2479],{"type":34,"value":1046},{"type":28,"tag":58,"props":2481,"children":2482},{},[2483,2488,2493,2498,2503,2508],{"type":28,"tag":62,"props":2484,"children":2485},{},[2486],{"type":34,"value":2487},"GTA San Andreas for Android, 32-bit (com.rockstargames.gtasa) — the 64-bit version is not supported",{"type":28,"tag":62,"props":2489,"children":2490},{},[2491],{"type":34,"value":2492},"AML (AndroidModLoader) already working, which loads the libPdaBridge.so mod from the game's mods folder",{"type":28,"tag":62,"props":2494,"children":2495},{},[2496],{"type":34,"value":2497},"CLEO mod for Android (libCLEOMod.so) already working, which runs the .csa scripts that read the game data",{"type":28,"tag":62,"props":2499,"children":2500},{},[2501],{"type":34,"value":2502},"Android 13 device (minSdk 33), ideally with two screens",{"type":28,"tag":62,"props":2504,"children":2505},{},[2506],{"type":34,"value":2507},"Tested only on the AYN Thor Max; other devices, screen sizes and Android versions may not work or may look wrong",{"type":28,"tag":62,"props":2509,"children":2510},{},[2511],{"type":34,"value":2512},"\"All files access\" permission for the app (it asks for it in Setup)",{"type":28,"tag":29,"props":2514,"children":2515},{"id":99},[2516],{"type":34,"value":102},{"type":28,"tag":37,"props":2518,"children":2519},{},[2520],{"type":34,"value":2521},"Download and install the latest release APK, then open the app and follow the Setup screens. Setup has two modes:",{"type":28,"tag":58,"props":2523,"children":2524},{},[2525,2530],{"type":28,"tag":62,"props":2526,"children":2527},{},[2528],{"type":34,"value":2529},"Unprotected (easiest): pick the game folder (Android_unprotected\u002Fdata\u002Fcom.rockstargames.gtasa) and the app copies the mod files in for you. The shared files are then written to cleo\u002Fpda\u002F inside the game folder. When a new app version carries newer mod files, Setup tells you and updates them.",{"type":28,"tag":62,"props":2531,"children":2532},{},[2533],{"type":34,"value":2534},"Protected: use this when the app cannot reach the game folder. The app puts the three files in Download\u002FPDA Mod Files (subfolders mods and cleo) and you copy them to the game folder by hand. The shared files are written to \u002Fstorage\u002Femulated\u002F0\u002FPDA\u002F. After you update the app, copy the files again by hand.",{"type":28,"tag":37,"props":2536,"children":2537},{},[2538],{"type":34,"value":2539},"Then start the game and load a save. The app shows a waiting screen until the game starts sending data.",{"title":6,"searchDepth":225,"depth":225,"links":2541},[2542,2543,2544,2545],{"id":31,"depth":225,"text":35},{"id":53,"depth":225,"text":56},{"id":1043,"depth":225,"text":1046},{"id":99,"depth":225,"text":102},"content:sa-companion:index.md","sa-companion\u002Findex.md","sa-companion\u002Findex",{"_path":2550,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":2551,"description":2552,"date":2553,"slug":2554,"category":12,"generated":13,"media":2555,"source":2558,"project_page":2559,"body":2560,"_type":231,"_id":2725,"_source":233,"_file":2726,"_stem":2727,"_extension":236},"\u002Fthor-halflife","Thor Half-Life","Native dual-screen Half-Life port for the AYN Thor with the full HEV suit HUD on the touch screen.","2026-11-04 07:35","thor-halflife",[2556],{"type":245,"url":2557},"https:\u002F\u002Fyoutu.be\u002FjiYEW7FgMcQ","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1xmnvqp\u002Fnative_halflife_port_for_the_thor_the_game_on_the\u002F","https:\u002F\u002Fgithub.com\u002Fharmssi\u002Fthor-halflife",{"type":25,"children":2561,"toc":2719},[2562,2566,2571,2575,2603,2607,2663,2667],{"type":28,"tag":29,"props":2563,"children":2564},{"id":31},[2565],{"type":34,"value":35},{"type":28,"tag":37,"props":2567,"children":2568},{},[2569],{"type":34,"value":2570},"Thor Half-Life is a native Android (arm64) port of Half-Life for the AYN Thor, based on Xash3D FWGS and the Half-Life SDK — no emulator, no Windows layer. The game runs on the top screen at 1920×1080 with GLES3, while the entire HEV suit HUD (health, armor and every weapon) is moved to the bottom touch screen so the HUD never covers the game. Opposing Force and Blue Shift are supported, each with its own deck. The APK contains no Valve data; you need your own copy of Half-Life.",{"type":28,"tag":29,"props":2572,"children":2573},{"id":53},[2574],{"type":34,"value":56},{"type":28,"tag":58,"props":2576,"children":2577},{},[2578,2583,2588,2593,2598],{"type":28,"tag":62,"props":2579,"children":2580},{},[2581],{"type":34,"value":2582},"Native Android port (arm64) based on Xash3D FWGS + the Half-Life SDK — no emulator, no Windows layer",{"type":28,"tag":62,"props":2584,"children":2585},{},[2586],{"type":34,"value":2587},"Top screen: just the game, 1920×1080, GLES3",{"type":28,"tag":62,"props":2589,"children":2590},{},[2591],{"type":34,"value":2592},"Bottom screen = HEV deck: health\u002Farmor, the full arsenal with ammo (tap to select), pickups, hazards (radiation, water), map name, flashlight, quicksave\u002Fquickload, menu",{"type":28,"tag":62,"props":2594,"children":2595},{},[2596],{"type":34,"value":2597},"Opposing Force and Blue Shift work too, each with its own deck (night vision, Displacer etc.)",{"type":28,"tag":62,"props":2599,"children":2600},{},[2601],{"type":34,"value":2602},"Controller: RT fire, LT alt fire, A jump, B duck, X reload, Y use, LB\u002FRB weapon, d-pad up flashlight",{"type":28,"tag":29,"props":2604,"children":2605},{"id":1043},[2606],{"type":34,"value":1046},{"type":28,"tag":58,"props":2608,"children":2609},{},[2610,2615,2634],{"type":28,"tag":62,"props":2611,"children":2612},{},[2613],{"type":34,"value":2614},"A copy of Half-Life (Steam) — the APK contains no Valve data",{"type":28,"tag":62,"props":2616,"children":2617},{},[2618,2620,2626,2628],{"type":34,"value":2619},"Copy ",{"type":28,"tag":43,"props":2621,"children":2623},{"className":2622},[],[2624],{"type":34,"value":2625},"steamapps\u002Fcommon\u002FHalf-Life\u002Fvalve",{"type":34,"value":2627}," from your Steam installation to ",{"type":28,"tag":43,"props":2629,"children":2631},{"className":2630},[],[2632],{"type":34,"value":2633},"\u002Fsdcard\u002Fxash\u002Fvalve",{"type":28,"tag":62,"props":2635,"children":2636},{},[2637,2639,2645,2647,2653,2655,2661],{"type":34,"value":2638},"For Opposing Force \u002F Blue Shift, put ",{"type":28,"tag":43,"props":2640,"children":2642},{"className":2641},[],[2643],{"type":34,"value":2644},"gearbox",{"type":34,"value":2646}," \u002F ",{"type":28,"tag":43,"props":2648,"children":2650},{"className":2649},[],[2651],{"type":34,"value":2652},"bshift",{"type":34,"value":2654}," next to it (",{"type":28,"tag":43,"props":2656,"children":2658},{"className":2657},[],[2659],{"type":34,"value":2660},"*_hd",{"type":34,"value":2662}," folders optional)",{"type":28,"tag":29,"props":2664,"children":2665},{"id":99},[2666],{"type":34,"value":102},{"type":28,"tag":58,"props":2668,"children":2669},{},[2670,2675,2710,2715],{"type":28,"tag":62,"props":2671,"children":2672},{},[2673],{"type":34,"value":2674},"Install the APK from the latest release (Chrome: Download anyway → Package installer → Settings → Allow from this source → Install)",{"type":28,"tag":62,"props":2676,"children":2677},{},[2678,2679,2684,2685,2690,2692,2697,2698,2703,2704,2709],{"type":34,"value":2619},{"type":28,"tag":43,"props":2680,"children":2682},{"className":2681},[],[2683],{"type":34,"value":2625},{"type":34,"value":2627},{"type":28,"tag":43,"props":2686,"children":2688},{"className":2687},[],[2689],{"type":34,"value":2633},{"type":34,"value":2691},"; for Opposing Force \u002F Blue Shift put ",{"type":28,"tag":43,"props":2693,"children":2695},{"className":2694},[],[2696],{"type":34,"value":2644},{"type":34,"value":2646},{"type":28,"tag":43,"props":2699,"children":2701},{"className":2700},[],[2702],{"type":34,"value":2652},{"type":34,"value":2654},{"type":28,"tag":43,"props":2705,"children":2707},{"className":2706},[],[2708],{"type":34,"value":2660},{"type":34,"value":2662},{"type":28,"tag":62,"props":2711,"children":2712},{},[2713],{"type":34,"value":2714},"Start the app and tap Allow file access",{"type":28,"tag":62,"props":2716,"children":2717},{},[2718],{"type":34,"value":174},{"title":6,"searchDepth":225,"depth":225,"links":2720},[2721,2722,2723,2724],{"id":31,"depth":225,"text":35},{"id":53,"depth":225,"text":56},{"id":1043,"depth":225,"text":1046},{"id":99,"depth":225,"text":102},"content:thor-halflife:index.md","thor-halflife\u002Findex.md","thor-halflife\u002Findex",{"_path":2729,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":2730,"description":2731,"date":2732,"slug":2733,"category":12,"generated":13,"media":2734,"source":2737,"project_page":2738,"body":2739,"_type":231,"_id":2839,"_source":233,"_file":2840,"_stem":2841,"_extension":236},"\u002Fdragon-age-origins-recomp-android-duo","Dragon Age: Origins Recomp Android Duo","A native Android port of Dragon Age: Origins for the AYN Thor's dual screens, with second-screen support, FSR 3.1 upscaling and frame generation.","2026-11-03 06:17","dragon-age-origins-recomp-android-duo",[2735],{"type":16,"url":2736},"\u002Fcontent\u002Fdragon-age-origins-recomp-android-duo\u002Fpreview.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1xm390l\u002Fopen_alpha_dragon_age_origins_recomp_android_duo\u002F","https:\u002F\u002Fgithub.com\u002F96dot\u002FDragon-Age-Origins-Recomp",{"type":25,"children":2740,"toc":2833},[2741,2745,2750,2754,2797,2801,2824,2828],{"type":28,"tag":29,"props":2742,"children":2743},{"id":31},[2744],{"type":34,"value":35},{"type":28,"tag":37,"props":2746,"children":2747},{},[2748],{"type":34,"value":2749},"Dragon Age: Origins Recomp Android Duo is a recompilation of the Xbox 360 version of Dragon Age: Origins into a native Android program, built and tested on the AYN Thor. It is based on the Dragon Age: Origins - Recompiled project. The app adds second-screen functionality for the Thor's dual displays, which may also work on other dual-screen devices, and includes an on-screen controller overlay for trying the game on a phone. The game has not been played through to completion, so bugs are expected; the parts that have been played perform very well, at 30+ fps before frame generation, with sections up to 50 fps when playing on FSR Balanced with Lossless x2.",{"type":28,"tag":29,"props":2751,"children":2752},{"id":53},[2753],{"type":34,"value":56},{"type":28,"tag":58,"props":2755,"children":2756},{},[2757,2762,2767,2772,2777,2782,2787,2792],{"type":28,"tag":62,"props":2758,"children":2759},{},[2760],{"type":34,"value":2761},"Second screen functionality for the AYN Thor's dual displays (tested only on the Thor; may work on other dual-screen devices)",{"type":28,"tag":62,"props":2763,"children":2764},{},[2765],{"type":34,"value":2766},"FSR 3.1 upscaling",{"type":28,"tag":62,"props":2768,"children":2769},{},[2770],{"type":34,"value":2771},"FSR 3.1 frame generation",{"type":28,"tag":62,"props":2773,"children":2774},{},[2775],{"type":34,"value":2776},"Lossless frame generation through LSFG-VK (the user provides their own Lossless.dll)",{"type":28,"tag":62,"props":2778,"children":2779},{},[2780],{"type":34,"value":2781},"30\u002F45\u002F60\u002F120 fps caps",{"type":28,"tag":62,"props":2783,"children":2784},{},[2785],{"type":34,"value":2786},"A converter for PC mods",{"type":28,"tag":62,"props":2788,"children":2789},{},[2790],{"type":34,"value":2791},"An on-screen controller overlay for trying the game on a phone",{"type":28,"tag":62,"props":2793,"children":2794},{},[2795],{"type":34,"value":2796},"A debug option in the launcher that creates a copy of the save on next boot and logs everything until the app closes, zipped into the download folder for bug reports",{"type":28,"tag":29,"props":2798,"children":2799},{"id":1043},[2800],{"type":34,"value":1046},{"type":28,"tag":58,"props":2802,"children":2803},{},[2804,2809,2814,2819],{"type":28,"tag":62,"props":2805,"children":2806},{},[2807],{"type":34,"value":2808},"The disc image of Dragon Age: Origins for Xbox 360 (title ID 454108C0): the English, Italian and Spanish edition (media ID 186A1115), which is also disc 1 of the Ultimate Edition",{"type":28,"tag":62,"props":2810,"children":2811},{},[2812],{"type":34,"value":2813},"Disc 2 of the Ultimate Edition for Xbox 360",{"type":28,"tag":62,"props":2815,"children":2816},{},[2817],{"type":34,"value":2818},"Title Update 7 (optional, but recommended)",{"type":28,"tag":62,"props":2820,"children":2821},{},[2822],{"type":34,"value":2823},"Lossless.dll (optional)",{"type":28,"tag":29,"props":2825,"children":2826},{"id":99},[2827],{"type":34,"value":102},{"type":28,"tag":37,"props":2829,"children":2830},{},[2831],{"type":34,"value":2832},"Download and install the latest release of Dragon Age: Origins Recomp Android Duo. The first time you launch the game it takes files from the disc and builds the code to run on Android; this takes about 10 minutes on an AYN Thor.",{"title":6,"searchDepth":225,"depth":225,"links":2834},[2835,2836,2837,2838],{"id":31,"depth":225,"text":35},{"id":53,"depth":225,"text":56},{"id":1043,"depth":225,"text":1046},{"id":99,"depth":225,"text":102},"content:dragon-age-origins-recomp-android-duo:index.md","dragon-age-origins-recomp-android-duo\u002Findex.md","dragon-age-origins-recomp-android-duo\u002Findex",{"_path":2843,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":2844,"description":2845,"date":2846,"slug":2847,"category":12,"generated":13,"media":2848,"source":2855,"project_page":2856,"body":2857,"_type":231,"_id":3097,"_source":233,"_file":3098,"_stem":3099,"_extension":236},"\u002Fpokemon-platinum","Pokémon Platinum","A native port of Pokémon Platinum for the AYN Thor that runs the decompiled game directly and adds a Gear companion on the lower screen.","2026-11-02 06:46","pokemon-platinum",[2849,2851,2853],{"type":16,"url":2850},"\u002Fcontent\u002Fpokemon-platinum\u002Fpreview.webp",{"type":16,"url":2852},"\u002Fcontent\u002Fpokemon-platinum\u002Fscreenshot-2.webp",{"type":16,"url":2854},"\u002Fcontent\u002Fpokemon-platinum\u002Fscreenshot-3.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1xle019\u002Fpokemon_platinum_recomp_with_features_for_dual\u002F","https:\u002F\u002Fgithub.com\u002FSilasMayes\u002Fpokeplatinum-thor",{"type":25,"children":2858,"toc":3091},[2859,2863,2868,2872,2979,2983,3021,3025,3038],{"type":28,"tag":29,"props":2860,"children":2861},{"id":31},[2862],{"type":34,"value":35},{"type":28,"tag":37,"props":2864,"children":2865},{},[2866],{"type":34,"value":2867},"A native port of Pokémon Platinum for the AYN Thor and other Android devices, with PC builds for Windows and Linux. It runs the decompiled game directly (no emulator), puts the DS bottom screen on the Thor's lower panel, and fills the rest of that panel with the Gear: a companion screen with the battle menu, damage and turn order, your party, the area's wild Pokémon, a Pokédex, a map with items, the PC and the bosses' teams. It also supports Renegade Platinum and randomized games. The port is built on cybervisi0n's PC port and its libntr libraries, which are built on the pret decompilation; it is an independent fork.",{"type":28,"tag":29,"props":2869,"children":2870},{"id":53},[2871],{"type":34,"value":56},{"type":28,"tag":58,"props":2873,"children":2874},{},[2875,2885,2895,2911,2929,2946,2969],{"type":28,"tag":62,"props":2876,"children":2877},{},[2878,2883],{"type":28,"tag":139,"props":2879,"children":2880},{},[2881],{"type":34,"value":2882},"Two screens on the Thor",{"type":34,"value":2884},": top screen on the main panel, touch screen on the lower one; widescreen on the overworld and in battles (experimental).",{"type":28,"tag":62,"props":2886,"children":2887},{},[2888,2893],{"type":28,"tag":139,"props":2889,"children":2890},{},[2891],{"type":34,"value":2892},"The Gear",{"type":34,"value":2894},": battle menu with damage ranges, KO marks and turn order; party, Day Care and eggs; wild Pokémon by area and time; Pokédex; map with item balls and hidden items; PC sorting; trainer card, level cap and the bosses' teams; shiny-hunt counters.",{"type":28,"tag":62,"props":2896,"children":2897},{},[2898,2903,2904,2909],{"type":28,"tag":139,"props":2899,"children":2900},{},[2901],{"type":34,"value":2902},"Renegade Platinum",{"type":34,"value":1475},{"type":28,"tag":139,"props":2905,"children":2906},{},[2907],{"type":34,"value":2908},"randomized games",{"type":34,"value":2910}," side by side with the original, each with its own saves.",{"type":28,"tag":62,"props":2912,"children":2913},{},[2914,2919,2921,2927],{"type":28,"tag":139,"props":2915,"children":2916},{},[2917],{"type":34,"value":2918},"Saves",{"type":34,"value":2920},": four slots, ",{"type":28,"tag":43,"props":2922,"children":2924},{"className":2923},[],[2925],{"type":34,"value":2926},".sav",{"type":34,"value":2928}," import and export, autosave, and sync between devices through Syncthing or any synced folder.",{"type":28,"tag":62,"props":2930,"children":2931},{},[2932,2937,2939,2944],{"type":28,"tag":139,"props":2933,"children":2934},{},[2935],{"type":34,"value":2936},"Quality of life",{"type":34,"value":2938},": 60 FPS on the overworld, instant text, fast-forward, field moves without HMs, ",{"type":28,"tag":1769,"props":2940,"children":2941},{},[2942],{"type":34,"value":2943},"Use another Repel?",{"type":34,"value":2945},", whole-party Exp. Share, game clock offset, Nuzlocke helper.",{"type":28,"tag":62,"props":2947,"children":2948},{},[2949,2954,2956,2961,2963,2968],{"type":28,"tag":139,"props":2950,"children":2951},{},[2952],{"type":34,"value":2953},"GBA slot",{"type":34,"value":2955}," for Pal Park and dual-slot encounters from a GBA save, ",{"type":28,"tag":139,"props":2957,"children":2958},{},[2959],{"type":34,"value":2960},"link play",{"type":34,"value":2962}," between two devices for trades and battles, and ",{"type":28,"tag":139,"props":2964,"children":2965},{},[2966],{"type":34,"value":2967},"texture packs",{"type":34,"value":176},{"type":28,"tag":62,"props":2970,"children":2971},{},[2972,2977],{"type":28,"tag":139,"props":2973,"children":2974},{},[2975],{"type":34,"value":2976},"Cheats and a save editor",{"type":34,"value":2978},", off unless you open them.",{"type":28,"tag":29,"props":2980,"children":2981},{"id":1043},[2982],{"type":34,"value":1046},{"type":28,"tag":58,"props":2984,"children":2985},{},[2986,3006,3011,3016],{"type":28,"tag":62,"props":2987,"children":2988},{},[2989,2991,2996,2998,3004],{"type":34,"value":2990},"A dump of ",{"type":28,"tag":139,"props":2992,"children":2993},{},[2994],{"type":34,"value":2995},"Pokémon Platinum (USA)",{"type":34,"value":2997}," (",{"type":28,"tag":43,"props":2999,"children":3001},{"className":3000},[],[3002],{"type":34,"value":3003},".nds",{"type":34,"value":3005},", game code CPUE). The repository and its releases contain no ROM and no game assets.",{"type":28,"tag":62,"props":3007,"children":3008},{},[3009],{"type":34,"value":3010},"For Renegade Platinum: Drayano's patch, which you download yourself; the app applies it to your own ROM.",{"type":28,"tag":62,"props":3012,"children":3013},{},[3014],{"type":34,"value":3015},"Android 10+ on arm64 (the AYN Thor, phones, other handhelds) for the APK.",{"type":28,"tag":62,"props":3017,"children":3018},{},[3019],{"type":34,"value":3020},"Windows 10\u002F11, 64-bit, or 64-bit Linux (glibc 2.38+) for the PC builds.",{"type":28,"tag":29,"props":3022,"children":3023},{"id":99},[3024],{"type":34,"value":102},{"type":28,"tag":37,"props":3026,"children":3027},{},[3028,3030,3037],{"type":34,"value":3029},"Download the newest release from the ",{"type":28,"tag":705,"props":3031,"children":3034},{"href":3032,"rel":3033},"https:\u002F\u002Fgithub.com\u002FSilasMayes\u002Fpokeplatinum-thor\u002Freleases\u002Flatest",[709],[3035],{"type":34,"value":3036},"Releases page",{"type":34,"value":176},{"type":28,"tag":58,"props":3039,"children":3040},{},[3041,3046,3051,3056],{"type":28,"tag":62,"props":3042,"children":3043},{},[3044],{"type":34,"value":3045},"Install the APK on Android 10+ arm64 (the AYN Thor, phones, other handhelds). Install the APK only from the repository's Releases page.",{"type":28,"tag":62,"props":3047,"children":3048},{},[3049],{"type":34,"value":3050},"On first launch, the game asks for your own dump of Pokémon Platinum (USA) and extracts what it needs from it.",{"type":28,"tag":62,"props":3052,"children":3053},{},[3054],{"type":34,"value":3055},"For Renegade Platinum, download Drayano's patch yourself; the app applies it to your own ROM.",{"type":28,"tag":62,"props":3057,"children":3058},{},[3059,3061,3067,3068,3074,3076,3082,3084,3090],{"type":34,"value":3060},"Windows: run ",{"type":28,"tag":43,"props":3062,"children":3064},{"className":3063},[],[3065],{"type":34,"value":3066},"main.exe",{"type":34,"value":1981},{"type":28,"tag":43,"props":3069,"children":3071},{"className":3070},[],[3072],{"type":34,"value":3073},"windows-x64.zip",{"type":34,"value":3075},". Linux: run ",{"type":28,"tag":43,"props":3077,"children":3079},{"className":3078},[],[3080],{"type":34,"value":3081},"main",{"type":34,"value":3083}," or the AppImage from the ",{"type":28,"tag":43,"props":3085,"children":3087},{"className":3086},[],[3088],{"type":34,"value":3089},"linux-x64.tar.gz",{"type":34,"value":176},{"title":6,"searchDepth":225,"depth":225,"links":3092},[3093,3094,3095,3096],{"id":31,"depth":225,"text":35},{"id":53,"depth":225,"text":56},{"id":1043,"depth":225,"text":1046},{"id":99,"depth":225,"text":102},"content:pokemon-platinum:index.md","pokemon-platinum\u002Findex.md","pokemon-platinum\u002Findex",{"_path":3101,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":3102,"description":3103,"date":3104,"slug":3105,"category":12,"generated":13,"media":3106,"source":3109,"project_page":3110,"body":3111,"_type":231,"_id":3281,"_source":233,"_file":3282,"_stem":3283,"_extension":236},"\u002Fthor-conquer","Thor Conquer","Native dual-screen port of Command &amp; Conquer Red Alert and Tiberian Dawn for the AYN Thor, with a touch command deck on the second screen.","2026-11-02 06:45","thor-conquer",[3107],{"type":245,"url":3108},"https:\u002F\u002Fyoutu.be\u002FZMGUqJJKna8","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1xl60a0\u002Fnative_red_alert_port_for_the_thor_battlefield_on\u002F","https:\u002F\u002Fgithub.com\u002Fharmssi\u002Fthor-conquer",{"type":25,"children":3112,"toc":3275},[3113,3117,3122,3126,3204,3208,3243,3247],{"type":28,"tag":29,"props":3114,"children":3115},{"id":31},[3116],{"type":34,"value":35},{"type":28,"tag":37,"props":3118,"children":3119},{},[3120],{"type":34,"value":3121},"Thor Conquer is a native Android (arm64) port of Command & Conquer: Tiberian Dawn and Red Alert built around the AYN Thor's two displays, based on Vanilla Conquer. The top screen shows only the battlefield: the engine renders 960×540 and scales it exactly 2× on the 1080p panel (pixel-perfect, no stretching, no bars), so you see far more of the battlefield at the classic sprite size. The sidebar and the top tab bar are gone; menus, films and the score screen keep their original 640×400 layout and are shown as a centred frame at 2×. The bottom screen is a touch command deck with credits, a power meter, a framed radar, REPAIR \u002F SELL \u002F MENU buttons and two build columns with the in-game cameos, build progress, READY and ON HOLD badges. Deck taps run the same code as clicks on the original sidebar, so nothing is faked, and the deck never steals focus, so the controller stays with the game. If there is no second screen, the classic sidebar is shown on the top screen instead. On the author's Thor (Snapdragon 8 Gen 2) the port runs at 59.8 fps average over 18 minutes with a flat battery temperature of 33 °C and about 28 % of one CPU core — native arm64, no emulator.",{"type":28,"tag":29,"props":3123,"children":3124},{"id":53},[3125],{"type":34,"value":56},{"type":28,"tag":58,"props":3127,"children":3128},{},[3129,3138,3148,3157,3166,3176,3185,3195],{"type":28,"tag":62,"props":3130,"children":3131},{},[3132,3136],{"type":28,"tag":139,"props":3133,"children":3134},{},[3135],{"type":34,"value":1581},{"type":34,"value":3137}," the deck is an Android Presentation on display 4 (FLAG_NOT_FOCUSABLE, so the controller stays with the game). If there is no second screen, the classic sidebar is shown on the top screen instead.",{"type":28,"tag":62,"props":3139,"children":3140},{},[3141,3146],{"type":28,"tag":139,"props":3142,"children":3143},{},[3144],{"type":34,"value":3145},"Engine-faithful:",{"type":34,"value":3147}," every deck action goes through the engine's normal input path — build clicks run through the original sidebar button code, a radar tap does what a radar click does, and REPAIR and SELL are the sidebar buttons. No game state is changed directly.",{"type":28,"tag":62,"props":3149,"children":3150},{},[3151,3155],{"type":28,"tag":139,"props":3152,"children":3153},{},[3154],{"type":34,"value":1591},{"type":34,"value":3156}," tap = build or deploy when READY; tap again while building = hold; long-press = hold, then cancel. The progress sweep is drawn over the cameo. The accent color follows the faction: amber for Allies\u002FGDI, red for Soviet\u002FNod.",{"type":28,"tag":62,"props":3158,"children":3159},{},[3160,3164],{"type":28,"tag":139,"props":3161,"children":3162},{},[3163],{"type":34,"value":1601},{"type":34,"value":3165}," the minimap is rendered from the engine's cell colors, with a viewport frame. Tap or drag on it to scroll the map.",{"type":28,"tag":62,"props":3167,"children":3168},{},[3169,3174],{"type":28,"tag":139,"props":3170,"children":3171},{},[3172],{"type":34,"value":3173},"Top-screen touch:",{"type":34,"value":3175}," tap = select \u002F left click, drag = selection box, two-finger drag = scroll, long-press or two-finger tap = right click (deselect \u002F cancel).",{"type":28,"tag":62,"props":3177,"children":3178},{},[3179,3183],{"type":28,"tag":139,"props":3180,"children":3181},{},[3182],{"type":34,"value":1641},{"type":34,"value":3184}," left stick = cursor, right stick = scroll, A = left click, B = right click, Select = Esc (menu), Start = Enter, X\u002FY = G\u002FF, D-pad = 1–4. L1\u002FR1 move a focus ring through the deck's build items, and A builds the focused item while the ring is visible.",{"type":28,"tag":62,"props":3186,"children":3187},{},[3188,3193],{"type":28,"tag":139,"props":3189,"children":3190},{},[3191],{"type":34,"value":3192},"Content:",{"type":34,"value":3194}," Red Alert (Allied, Soviet, Counterstrike, Aftermath) and Tiberian Dawn (GDI, Nod). Covert Operations is not supported yet.",{"type":28,"tag":62,"props":3196,"children":3197},{},[3198,3202],{"type":28,"tag":139,"props":3199,"children":3200},{},[3201],{"type":34,"value":1661},{"type":34,"value":3203}," English (default), Deutsch, Español, Français. The app follows the system language; you can override it in Settings → Language.",{"type":28,"tag":29,"props":3205,"children":3206},{"id":99},[3207],{"type":34,"value":102},{"type":28,"tag":58,"props":3209,"children":3210},{},[3211,3223,3228,3233,3238],{"type":28,"tag":62,"props":3212,"children":3213},{},[3214,3216,3222],{"type":34,"value":3215},"Download and install the latest release APK (arm64, Android 13+) from the ",{"type":28,"tag":705,"props":3217,"children":3220},{"href":3218,"rel":3219},"https:\u002F\u002Fgithub.com\u002Fharmssi\u002Fthor-conquer\u002Freleases\u002Flatest",[709],[3221],{"type":34,"value":3036},{"type":34,"value":176},{"type":28,"tag":62,"props":3224,"children":3225},{},[3226],{"type":34,"value":3227},"You need your own copy of the Command & Conquer Remastered Collection (Steam) — no game data is included.",{"type":28,"tag":62,"props":3229,"children":3230},{},[3231],{"type":34,"value":3232},"Copy the legacy game files from Data\u002FCNCDATA\u002F into the app's data folder at \u002Fsdcard\u002FAndroid\u002Fdata\u002Fde.harmssi.thorconquer\u002Ffiles\u002F, placing disc-specific files in the redalert\u002F and tiberiandawn\u002F subfolders as described in the README. A flat layout also works, but then only the first campaign or disc is playable.",{"type":28,"tag":62,"props":3234,"children":3235},{},[3236],{"type":34,"value":3237},"Minimum files: Red Alert needs REDALERT.MIX + MAIN.MIX; Tiberian Dawn needs CONQUER.MIX, GENERAL.MIX, CCLOCAL.MIX, TEMPERAT.MIX, DESERT.MIX, WINTER.MIX and SOUNDS.MIX. The launcher shows a checklist of what is missing.",{"type":28,"tag":62,"props":3239,"children":3240},{},[3241],{"type":34,"value":3242},"Launch the game. The launcher checks the data and lets you override the language in Settings → Language.",{"type":28,"tag":29,"props":3244,"children":3245},{"id":192},[3246],{"type":34,"value":195},{"type":28,"tag":58,"props":3248,"children":3249},{},[3250,3255,3260,3265,3270],{"type":28,"tag":62,"props":3251,"children":3252},{},[3253],{"type":34,"value":3254},"Multiplayer is untested.",{"type":28,"tag":62,"props":3256,"children":3257},{},[3258],{"type":34,"value":3259},"Covert Operations is not supported for Tiberian Dawn.",{"type":28,"tag":62,"props":3261,"children":3262},{},[3263],{"type":34,"value":3264},"Saves get automatic names.",{"type":28,"tag":62,"props":3266,"children":3267},{},[3268],{"type":34,"value":3269},"The APK is debug-signed.",{"type":28,"tag":62,"props":3271,"children":3272},{},[3273],{"type":34,"value":3274},"Game data lives in the app folder, so uninstalling deletes it; updating over the top keeps it.",{"title":6,"searchDepth":225,"depth":225,"links":3276},[3277,3278,3279,3280],{"id":31,"depth":225,"text":35},{"id":53,"depth":225,"text":56},{"id":99,"depth":225,"text":102},{"id":192,"depth":225,"text":195},"content:thor-conquer:index.md","thor-conquer\u002Findex.md","thor-conquer\u002Findex",{"_path":3285,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":3286,"description":3287,"date":3288,"slug":3289,"category":12,"generated":13,"media":3290,"source":3291,"project_page":3292,"body":3293,"_type":231,"_id":3678,"_source":233,"_file":3679,"_stem":3680,"_extension":236},"\u002Fbloodborne-thor-companion","Bloodborne · Thor Companion","A dual-screen build of the Bloodborne Android port that runs the game on the AYN Thor's upper screen with an integrated companion on the lower screen.","2026-11-01 06:54","bloodborne-thor-companion",[],"https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1xkrajs\u002Fbest_halloween_gaming_bloodborne_running\u002F","https:\u002F\u002Fgithub.com\u002Femerytech\u002FBloodborne-Android",{"type":25,"children":3294,"toc":3672},[3295,3299,3304,3331,3335,3400,3404,3556,3560],{"type":28,"tag":29,"props":3296,"children":3297},{"id":31},[3298],{"type":34,"value":35},{"type":28,"tag":37,"props":3300,"children":3301},{},[3302],{"type":34,"value":3303},"An unofficial fork of the Bloodborne Android port by ducvd89, reworked into a single app that builds an integrated Hunter's Companion into the game for the AYN Thor. Based on the upstream android-2.2.0 release, it installs as one app with one launch icon and one game-folder selection: the game runs on the upper screen and a touchscreen companion runs on the lower screen.",{"type":28,"tag":37,"props":3305,"children":3306},{},[3307,3309,3315,3316,3322,3323,3329],{"type":34,"value":3308},"The project includes no game files — no game, saves, game artwork, generated game code, or Lossless Scaling DLL. You provide your own Bloodborne 1.09 files (the folder with ",{"type":28,"tag":43,"props":3310,"children":3312},{"className":3311},[],[3313],{"type":34,"value":3314},"eboot.bin",{"type":34,"value":1499},{"type":28,"tag":43,"props":3317,"children":3319},{"className":3318},[],[3320],{"type":34,"value":3321},"sce_module",{"type":34,"value":1475},{"type":28,"tag":43,"props":3324,"children":3326},{"className":3325},[],[3327],{"type":34,"value":3328},"sce_sys",{"type":34,"value":3330},") extracted from a disc you legally own. It is not an official Sony or FromSoftware product.",{"type":28,"tag":29,"props":3332,"children":3333},{"id":1043},[3334],{"type":34,"value":1046},{"type":28,"tag":58,"props":3336,"children":3337},{},[3338,3357,3390,3395],{"type":28,"tag":62,"props":3339,"children":3340},{},[3341,3343,3348,3350,3356],{"type":34,"value":3342},"An ",{"type":28,"tag":139,"props":3344,"children":3345},{},[3346],{"type":34,"value":3347},"AYN Thor",{"type":34,"value":3349}," (dual-screen Android handheld). The build targets its two screens; the second-screen companion only appears on a display named ",{"type":28,"tag":43,"props":3351,"children":3353},{"className":3352},[],[3354],{"type":34,"value":3355},"Screen-2",{"type":34,"value":176},{"type":28,"tag":62,"props":3358,"children":3359},{},[3360,3362,3367,3369,3374,3375,3381,3382,3388],{"type":34,"value":3361},"Your own ",{"type":28,"tag":139,"props":3363,"children":3364},{},[3365],{"type":34,"value":3366},"Bloodborne 1.09",{"type":34,"value":3368}," game files — a folder containing ",{"type":28,"tag":43,"props":3370,"children":3372},{"className":3371},[],[3373],{"type":34,"value":3314},{"type":34,"value":1499},{"type":28,"tag":43,"props":3376,"children":3378},{"className":3377},[],[3379],{"type":34,"value":3380},"sce_module\u002F",{"type":34,"value":1475},{"type":28,"tag":43,"props":3383,"children":3385},{"className":3384},[],[3386],{"type":34,"value":3387},"sce_sys\u002F",{"type":34,"value":3389}," — extracted from a disc you own. None are included.",{"type":28,"tag":62,"props":3391,"children":3392},{},[3393],{"type":34,"value":3394},"Free storage for your extracted game files plus the on-device compiled code (several GB).",{"type":28,"tag":62,"props":3396,"children":3397},{},[3398],{"type":34,"value":3399},"The app APK from the latest release.",{"type":28,"tag":29,"props":3401,"children":3402},{"id":99},[3403],{"type":34,"value":102},{"type":28,"tag":58,"props":3405,"children":3406},{},[3407,3434,3493,3515,3533],{"type":28,"tag":62,"props":3408,"children":3409},{},[3410,3415,3417,3424,3426,3432],{"type":28,"tag":139,"props":3411,"children":3412},{},[3413],{"type":34,"value":3414},"Install the app",{"type":34,"value":3416}," — Download the APK from the ",{"type":28,"tag":705,"props":3418,"children":3421},{"href":3419,"rel":3420},"https:\u002F\u002Fgithub.com\u002Femerytech\u002FBloodborne-Android\u002Freleases\u002Flatest",[709],[3422],{"type":34,"value":3423},"latest preview release",{"type":34,"value":3425}," onto your Thor and install it, allowing installation from your browser or file manager when Android asks. Do not install an upstream APK over this fork: this build uses its own package (",{"type":28,"tag":43,"props":3427,"children":3429},{"className":3428},[],[3430],{"type":34,"value":3431},"com.emerytech.bloodbornethor",{"type":34,"value":3433},") and sits beside any existing Bloodborne app. Upgrading from an earlier preview: install the new APK over it — it is signed with the same key, so it upgrades in place and keeps its settings and saves.",{"type":28,"tag":62,"props":3435,"children":3436},{},[3437,3442,3444,3450,3451,3457,3459,3464,3465,3470,3471,3476,3478,3483,3485,3491],{"type":28,"tag":139,"props":3438,"children":3439},{},[3440],{"type":34,"value":3441},"Put your game files on the device",{"type":34,"value":3443}," — Copy your own Bloodborne 1.09 folder somewhere on the Thor's storage, for example ",{"type":28,"tag":43,"props":3445,"children":3447},{"className":3446},[],[3448],{"type":34,"value":3449},"Download\u002FBloodborne",{"type":34,"value":1559},{"type":28,"tag":43,"props":3452,"children":3454},{"className":3453},[],[3455],{"type":34,"value":3456},"Games\u002FBloodborne",{"type":34,"value":3458},". The folder must directly contain ",{"type":28,"tag":43,"props":3460,"children":3462},{"className":3461},[],[3463],{"type":34,"value":3314},{"type":34,"value":1499},{"type":28,"tag":43,"props":3466,"children":3468},{"className":3467},[],[3469],{"type":34,"value":3380},{"type":34,"value":1475},{"type":28,"tag":43,"props":3472,"children":3474},{"className":3473},[],[3475],{"type":34,"value":3387},{"type":34,"value":3477}," (artwork is read from ",{"type":28,"tag":43,"props":3479,"children":3481},{"className":3480},[],[3482],{"type":34,"value":3328},{"type":34,"value":3484}," — ",{"type":28,"tag":43,"props":3486,"children":3488},{"className":3487},[],[3489],{"type":34,"value":3490},"pic1.png",{"type":34,"value":3492}," becomes the companion background).",{"type":28,"tag":62,"props":3494,"children":3495},{},[3496,3501,3503,3507,3509,3514],{"type":28,"tag":139,"props":3497,"children":3498},{},[3499],{"type":34,"value":3500},"First launch",{"type":34,"value":3502}," — Open ",{"type":28,"tag":139,"props":3504,"children":3505},{},[3506],{"type":34,"value":3286},{"type":34,"value":3508},", grant storage access when asked, and choose the game folder from the step above (the one with ",{"type":28,"tag":43,"props":3510,"children":3512},{"className":3511},[],[3513],{"type":34,"value":3314},{"type":34,"value":898},{"type":28,"tag":62,"props":3516,"children":3517},{},[3518,3523,3525,3531],{"type":28,"tag":139,"props":3519,"children":3520},{},[3521],{"type":34,"value":3522},"Build the native code (first run only)",{"type":34,"value":3524}," — If compatible precompiled ",{"type":28,"tag":43,"props":3526,"children":3528},{"className":3527},[],[3529],{"type":34,"value":3530},"aot\u002F",{"type":34,"value":3532}," code is already in your folder, it is imported automatically. Otherwise the app compiles the game's code on-device; this one-time step takes a while, then the game boots to its title screen on the upper screen.",{"type":28,"tag":62,"props":3534,"children":3535},{},[3536,3540,3542,3547,3549,3554],{"type":28,"tag":139,"props":3537,"children":3538},{},[3539],{"type":34,"value":174},{"type":34,"value":3541}," — The game runs on the ",{"type":28,"tag":139,"props":3543,"children":3544},{},[3545],{"type":34,"value":3546},"upper",{"type":34,"value":3548}," screen with your physical controls, and the ",{"type":28,"tag":139,"props":3550,"children":3551},{},[3552],{"type":34,"value":3553},"lower",{"type":34,"value":3555}," screen is the touchscreen companion.",{"type":28,"tag":29,"props":3557,"children":3558},{"id":53},[3559],{"type":34,"value":56},{"type":28,"tag":58,"props":3561,"children":3562},{},[3563,3573,3583,3600,3610,3620,3630,3635,3654,3667],{"type":28,"tag":62,"props":3564,"children":3565},{},[3566,3571],{"type":28,"tag":139,"props":3567,"children":3568},{},[3569],{"type":34,"value":3570},"Menu tab",{"type":34,"value":3572}," — the full in-game menu (settings, cheats, mods, saves, online, graphics, controls) mirrored onto the bottom touchscreen; dialogs open on the upper screen.",{"type":28,"tag":62,"props":3574,"children":3575},{},[3576,3581],{"type":28,"tag":139,"props":3577,"children":3578},{},[3579],{"type":34,"value":3580},"Controls tab",{"type":34,"value":3582}," — a quick reference for the Bloodborne button layout (combat, parry\u002Frally, movement, menus, tips). The glyphs are a reference, not touch buttons.",{"type":28,"tag":62,"props":3584,"children":3585},{},[3586,3591,3593,3598],{"type":28,"tag":139,"props":3587,"children":3588},{},[3589],{"type":34,"value":3590},"Artwork tab",{"type":34,"value":3592}," — the home view, showing the game's own key art read from your ",{"type":28,"tag":43,"props":3594,"children":3596},{"className":3595},[],[3597],{"type":34,"value":3328},{"type":34,"value":3599}," folder.",{"type":28,"tag":62,"props":3601,"children":3602},{},[3603,3608],{"type":28,"tag":139,"props":3604,"children":3605},{},[3606],{"type":34,"value":3607},"Status tab",{"type":34,"value":3609}," — live CPU, RAM, battery and temperature, a clock, and a brightness slider for the lower screen, refreshed every second.",{"type":28,"tag":62,"props":3611,"children":3612},{},[3613,3618],{"type":28,"tag":139,"props":3614,"children":3615},{},[3616],{"type":34,"value":3617},"Couchside tab",{"type":34,"value":3619}," — a scannable QR to couchside.tv, shown only when this tab is open; tap the card to open it directly in your browser.",{"type":28,"tag":62,"props":3621,"children":3622},{},[3623,3628],{"type":28,"tag":139,"props":3624,"children":3625},{},[3626],{"type":34,"value":3627},"Help tab",{"type":34,"value":3629}," — a short how-it-works note.",{"type":28,"tag":62,"props":3631,"children":3632},{},[3633],{"type":34,"value":3634},"Artwork is the home view: tap a tab to open it, tap the same tab again to close back to the artwork. The top swipe-in drawer on the upper screen stays available, so the game menu is reachable from either screen.",{"type":28,"tag":62,"props":3636,"children":3637},{},[3638,3640,3645,3647,3652],{"type":34,"value":3639},"Upstream's ",{"type":28,"tag":139,"props":3641,"children":3642},{},[3643],{"type":34,"value":3644},"Hunter's Atlas",{"type":34,"value":3646}," second-screen map is preserved; the game menu's ",{"type":28,"tag":139,"props":3648,"children":3649},{},[3650],{"type":34,"value":3651},"Thor companion",{"type":34,"value":3653}," entry offers hide\u002Fshow and the Atlas map, which takes over the lower screen until turned off.",{"type":28,"tag":62,"props":3655,"children":3656},{},[3657,3659,3665],{"type":34,"value":3658},"Save backup and restore from the game menu, copying saves to timestamped ",{"type":28,"tag":43,"props":3660,"children":3662},{"className":3661},[],[3663],{"type":34,"value":3664},"Bloodborne-saves-…",{"type":34,"value":3666}," folders in your Download folder.",{"type":28,"tag":62,"props":3668,"children":3669},{},[3670],{"type":34,"value":3671},"Mod browser with a starter catalog: direct downloads are checksum-checked, preview their shared files, and install switched off.",{"title":6,"searchDepth":225,"depth":225,"links":3673},[3674,3675,3676,3677],{"id":31,"depth":225,"text":35},{"id":1043,"depth":225,"text":1046},{"id":99,"depth":225,"text":102},{"id":53,"depth":225,"text":56},"content:bloodborne-thor-companion:index.md","bloodborne-thor-companion\u002Findex.md","bloodborne-thor-companion\u002Findex",{"_path":3682,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":3683,"description":3684,"date":3685,"slug":3686,"category":3687,"generated":13,"media":3688,"source":3691,"project_page":3692,"body":3693,"_type":231,"_id":3833,"_source":233,"_file":3834,"_stem":3835,"_extension":236},"\u002Fbetter-dual-screen-assistant","Better Dual Screen Assistant","A drop-in replacement for AYN's DualScreenAssistant that adds customizable quick settings, live hardware telemetry, and system-wide theming for the AYN Thor's dual screens.","2026-11-01 06:53","better-dual-screen-assistant","tool",[3689],{"type":16,"url":3690},"\u002Fcontent\u002Fbetter-dual-screen-assistant\u002Fpreview.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1xk8oze\u002Fbetterdualscreenmanager_110_update\u002F","https:\u002F\u002Fgithub.com\u002Fstormpanda\u002Fbetter-dual-screen-assistant",{"type":25,"children":3694,"toc":3827},[3695,3699,3704,3709,3713,3796,3800,3818,3822],{"type":28,"tag":29,"props":3696,"children":3697},{"id":31},[3698],{"type":34,"value":35},{"type":28,"tag":37,"props":3700,"children":3701},{},[3702],{"type":34,"value":3703},"Better Dual Screen Assistant is a user-installable drop-in replacement and feature-packed upgrade for the built-in system app DualScreenAssistant on the AYN Thor (Snapdragon 8 Gen 2, Android 13) dual-screen handheld. It preserves 1:1 visual and functional parity with the stock assistant while adding a gamepad-first top-screen companion settings app, 22 customizable and reorderable Quick Setting tiles across three categories, screen task swapping, Stick LED brightness control, Megingiard theme palettes with live sync, Android 13 Monet OS theme injection, and a sub-millisecond UID 0 Binder helper daemon with automatic uninstall\u002Fforce-stop recovery.",{"type":28,"tag":37,"props":3705,"children":3706},{},[3707],{"type":34,"value":3708},"Version 1.1.0 adds an accurate FPS counter that reads real gameplay frame counts, a background service that is not killed by cleaning recents (and no longer appears in recents), Celsius\u002FFahrenheit temperature readouts, a more intuitive toggle UI, a fix that restores the GameAssistant swipe-in from the right edge of the top screen, improved Touch UI, and a much smaller app size (2.2 MB, down from 39.3 MB).",{"type":28,"tag":29,"props":3710,"children":3711},{"id":53},[3712],{"type":34,"value":56},{"type":28,"tag":58,"props":3714,"children":3715},{},[3716,3721,3726,3731,3736,3741,3746,3751,3756,3761,3766,3771,3776,3781,3786,3791],{"type":28,"tag":62,"props":3717,"children":3718},{},[3719],{"type":34,"value":3720},"Bottom-screen assistant overlay with Mode and Settings tabs",{"type":28,"tag":62,"props":3722,"children":3723},{},[3724],{"type":34,"value":3725},"Screen mode control: dual-screen display, only top screen, only bottom screen, plus a one-tap Swap Screens button",{"type":28,"tag":62,"props":3727,"children":3728},{},[3729],{"type":34,"value":3730},"Linked brightness sliders for dual, top, and bottom screens, plus an optional Stick LED brightness slider (0%–100%)",{"type":28,"tag":62,"props":3732,"children":3733},{},[3734],{"type":34,"value":3735},"Linked volume sliders for dual, top, and bottom screens",{"type":28,"tag":62,"props":3737,"children":3738},{},[3739],{"type":34,"value":3740},"One-tap 60 FPS \u002F 120 FPS mode toggle with a live SurfaceFlinger FPS readout",{"type":28,"tag":62,"props":3742,"children":3743},{},[3744],{"type":34,"value":3745},"22 customizable Quick Setting tiles in a paged 2 × 4 grid, swipeable by touch or L1\u002FR1 shoulder buttons",{"type":28,"tag":62,"props":3747,"children":3748},{},[3749],{"type":34,"value":3750},"Stock AYN toggles (10, enabled by default): Focus Lock, Performance Mode, Fan Control, Clear Memory, Controller Style, Charging Separation, Vibration, Ambient Light, Force Landscape, and Theme Mode",{"type":28,"tag":62,"props":3752,"children":3753},{},[3754],{"type":34,"value":3755},"Android system toggles (4, optional): Wi-Fi, Bluetooth, Do Not Disturb, and Airplane Mode",{"type":28,"tag":62,"props":3757,"children":3758},{},[3759],{"type":34,"value":3760},"Tools (8, optional): Bottom Touch Lock, Screenshot (top\u002Fbottom\u002Fboth), L2\u002FR2 Trigger Mode, 80% Charge Limit, Virtual Mouse, Key Mapper Overlay, Keep Screen On, and Double-Tap HOME",{"type":28,"tag":62,"props":3762,"children":3763},{},[3764],{"type":34,"value":3765},"Live hardware telemetry: SoC temperature, fan speed, CPU frequency, GPU frequency, battery power draw, and RAM usage",{"type":28,"tag":62,"props":3767,"children":3768},{},[3769],{"type":34,"value":3770},"Top status bar with live clock, Bluetooth indicator, network RX speed, Wi-Fi signal bars, and custom battery icon",{"type":28,"tag":62,"props":3772,"children":3773},{},[3774],{"type":34,"value":3775},"Gamepad-first two-pane companion settings app on the top screen with live preview on the bottom screen",{"type":28,"tag":62,"props":3777,"children":3778},{},[3779],{"type":34,"value":3780},"Visual quick-toggle reordering with touch tap-to-swap and gamepad grab-and-move",{"type":28,"tag":62,"props":3782,"children":3783},{},[3784],{"type":34,"value":3785},"Theming: Stock AYN (Follow System, Light, Dark), 8 built-in custom palettes, 11 accent presets, a custom HSV color picker, and Megingiard sync",{"type":28,"tag":62,"props":3787,"children":3788},{},[3789],{"type":34,"value":3790},"Android 13 Monet OS theme injection that themes SystemUI, Quick Settings, Notifications, and Material You apps system-wide",{"type":28,"tag":62,"props":3792,"children":3793},{},[3794],{"type":34,"value":3795},"Safe ephemeral stock suppression with automatic uninstall\u002Fforce-stop recovery that restores brightness, touch, and the stock assistant",{"type":28,"tag":29,"props":3797,"children":3798},{"id":1043},[3799],{"type":34,"value":1046},{"type":28,"tag":58,"props":3801,"children":3802},{},[3803,3808,3813],{"type":28,"tag":62,"props":3804,"children":3805},{},[3806],{"type":34,"value":3807},"AYN Thor handheld (Snapdragon 8 Gen 2, Android 13)",{"type":28,"tag":62,"props":3809,"children":3810},{},[3811],{"type":34,"value":3812},"Replaces the built-in system app DualScreenAssistant (com.odin.dualscreen.assistant)",{"type":28,"tag":62,"props":3814,"children":3815},{},[3816],{"type":34,"value":3817},"Latest release APK from the GitHub releases page",{"type":28,"tag":29,"props":3819,"children":3820},{"id":99},[3821],{"type":34,"value":102},{"type":28,"tag":37,"props":3823,"children":3824},{},[3825],{"type":34,"value":3826},"Download the latest release from the GitHub releases page and install the APK on your AYN Thor. The app is a user-installable drop-in replacement for the stock DualScreenAssistant, so no system modifications are required. For the best experience, navigate the app with the controller.",{"title":6,"searchDepth":225,"depth":225,"links":3828},[3829,3830,3831,3832],{"id":31,"depth":225,"text":35},{"id":53,"depth":225,"text":56},{"id":1043,"depth":225,"text":1046},{"id":99,"depth":225,"text":102},"content:better-dual-screen-assistant:index.md","better-dual-screen-assistant\u002Findex.md","better-dual-screen-assistant\u002Findex",{"_path":3837,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":3838,"description":3839,"date":3840,"slug":3841,"category":3687,"generated":13,"media":3842,"source":3843,"project_page":3844,"body":3845,"_type":231,"_id":4215,"_source":233,"_file":4216,"_stem":4217,"_extension":236},"\u002Fthor-back-button-hero","Thor Back Button Hero","A customizable back-button utility for the AYN Thor Android handheld.","2026-10-31 09:38","thor-back-button-hero",[],"https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1xjw6mi\u002Fthor_back_button_hero_v140_out_now\u002F","https:\u002F\u002Fgithub.com\u002Fdenissteinhorst\u002Fthor-back-button-hero",{"type":25,"children":3846,"toc":4209},[3847,3851,3856,3861,3904,3909,3914,3919,3982,3987,3991,3996,4069,4074,4117,4122,4126,4154,4158],{"type":28,"tag":29,"props":3848,"children":3849},{"id":31},[3850],{"type":34,"value":35},{"type":28,"tag":37,"props":3852,"children":3853},{},[3854],{"type":34,"value":3855},"Back Button Hero is a customizable back-button utility for the AYN Thor Android handheld. It gets more out of the Back button: double-tap for an app switcher on the bottom screen, hold to swap both screens, and put your favorite actions on L1, L2, R1, R2 and the D-pad — screenshots, volume, brightness, controller focus, minimizing or closing the app in front and more. No rooting is needed, and the app is free and open source.",{"type":28,"tag":37,"props":3857,"children":3858},{},[3859],{"type":34,"value":3860},"The four Back gestures:",{"type":28,"tag":58,"props":3862,"children":3863},{},[3864,3874,3884,3894],{"type":28,"tag":62,"props":3865,"children":3866},{},[3867,3872],{"type":28,"tag":139,"props":3868,"children":3869},{},[3870],{"type":34,"value":3871},"Single tap:",{"type":34,"value":3873}," sends a regular Back or opens the launcher on the bottom screen.",{"type":28,"tag":62,"props":3875,"children":3876},{},[3877,3882],{"type":28,"tag":139,"props":3878,"children":3879},{},[3880],{"type":34,"value":3881},"Double tap:",{"type":34,"value":3883}," opens an app switcher on the bottom screen, which the Thor does not have on its own. It shows a card for every app opened there, the available memory, and actions for a bottom-screen screenshot or closing all bottom-screen apps. Tap a card to open the app or swipe it up to close it. (Timing adjustable.)",{"type":28,"tag":62,"props":3885,"children":3886},{},[3887,3892],{"type":28,"tag":139,"props":3888,"children":3889},{},[3890],{"type":34,"value":3891},"Tap, then hold:",{"type":34,"value":3893}," opens the system's Recents on the top screen. (Timing adjustable.)",{"type":28,"tag":62,"props":3895,"children":3896},{},[3897,3902],{"type":28,"tag":139,"props":3898,"children":3899},{},[3900],{"type":34,"value":3901},"Hold:",{"type":34,"value":3903}," swaps the apps on the top and bottom screens. (Timing adjustable.)",{"type":28,"tag":37,"props":3905,"children":3906},{},[3907],{"type":34,"value":3908},"Each gesture can be switched off in the app's settings. Hold L2 + R2 together for 300 ms to deactivate all Back gestures and shortcuts; hold again to reactivate them. While deactivated, Back and its combinations reach your game normally. Stick clicks always reach the game. Settings also offer L3 + R3 or L1 + R1, and a hold time from 100 to 3000 ms. A message confirms each change. Back Button Hero starts active after a device or service restart.",{"type":28,"tag":37,"props":3910,"children":3911},{},[3912],{"type":34,"value":3913},"Hold Back and press another button to run a shortcut. The shoulder buttons L1, L2, R1, R2 and the four D-pad directions can each be assigned any action from the list below. A button without an assignment is left alone, so games and apps still receive its normal input.",{"type":28,"tag":37,"props":3915,"children":3916},{},[3917],{"type":34,"value":3918},"Available actions:",{"type":28,"tag":58,"props":3920,"children":3921},{},[3922,3927,3932,3937,3942,3947,3952,3957,3962,3967,3972,3977],{"type":28,"tag":62,"props":3923,"children":3924},{},[3925],{"type":34,"value":3926},"Launch an app on the top or bottom screen",{"type":28,"tag":62,"props":3928,"children":3929},{},[3930],{"type":34,"value":3931},"Navigation flick to the previous or next app",{"type":28,"tag":62,"props":3933,"children":3934},{},[3935],{"type":34,"value":3936},"Home",{"type":28,"tag":62,"props":3938,"children":3939},{},[3940],{"type":34,"value":3941},"Recents",{"type":28,"tag":62,"props":3943,"children":3944},{},[3945],{"type":34,"value":3946},"Screenshot of the top screen, the bottom screen, or both",{"type":28,"tag":62,"props":3948,"children":3949},{},[3950],{"type":34,"value":3951},"Volume up \u002F down on both screens, only the top, or only the bottom",{"type":28,"tag":62,"props":3953,"children":3954},{},[3955],{"type":34,"value":3956},"Brightness up \u002F down on both screens, only the top, or only the bottom",{"type":28,"tag":62,"props":3958,"children":3959},{},[3960],{"type":34,"value":3961},"Set controller focus to the top or bottom screen, either as a toggle or fixed to one screen",{"type":28,"tag":62,"props":3963,"children":3964},{},[3965],{"type":34,"value":3966},"Active App Control: minimizes the app in front or force-closes it, on the top screen, the bottom screen, both, or asks each time",{"type":28,"tag":62,"props":3968,"children":3969},{},[3970],{"type":34,"value":3971},"Quick Settings and notifications",{"type":28,"tag":62,"props":3973,"children":3974},{},[3975],{"type":34,"value":3976},"System settings pages: Wi-Fi and internet, Bluetooth, Night Light, Extra Dim, Display, Sound, Location, Cast, Do Not Disturb, Battery Saver",{"type":28,"tag":62,"props":3978,"children":3979},{},[3980],{"type":34,"value":3981},"Not set",{"type":28,"tag":37,"props":3983,"children":3984},{},[3985],{"type":34,"value":3986},"The app is completely free, with no ads, no tracking, no account and no root required. It is fully open source (0BSD) and every setting is optional.",{"type":28,"tag":29,"props":3988,"children":3989},{"id":53},[3990],{"type":34,"value":56},{"type":28,"tag":37,"props":3992,"children":3993},{},[3994],{"type":34,"value":3995},"New in v1.4.0:",{"type":28,"tag":58,"props":3997,"children":3998},{},[3999,4009,4019,4029,4039,4049,4059],{"type":28,"tag":62,"props":4000,"children":4001},{},[4002,4007],{"type":28,"tag":139,"props":4003,"children":4004},{},[4005],{"type":34,"value":4006},"Frontend compatibility:",{"type":34,"value":4008}," ES-DE Companion and NeoStation let their bottom screen step aside while you use another app there, and come back from their own card in bottom Recents. Cocoon keeps running out of sight, so its top screen stays in dual-screen layout. Swap a game away and quit it, and the other app returns to its screen, so ES-DE and Companion end up where they started. RetroArch keeps the controller after a swap (experimental). iiSU is not supported yet; Hero leaves it alone instead of fighting it.",{"type":28,"tag":62,"props":4010,"children":4011},{},[4012,4017],{"type":28,"tag":139,"props":4013,"children":4014},{},[4015],{"type":34,"value":4016},"A new bottom Recents:",{"type":34,"value":4018}," looks like the system's own Recents, with real previews and light\u002Fdark theme. Fully D-pad navigable, including Screenshot and Close all. Optionally lists the apps from both screens.",{"type":28,"tag":62,"props":4020,"children":4021},{},[4022,4027],{"type":28,"tag":139,"props":4023,"children":4024},{},[4025],{"type":34,"value":4026},"Smoother swaps:",{"type":34,"value":4028}," hold-to-swap now moves the running apps instead of restarting them, so games keep their state.",{"type":28,"tag":62,"props":4030,"children":4031},{},[4032,4037],{"type":28,"tag":139,"props":4033,"children":4034},{},[4035],{"type":34,"value":4036},"Active App Control shortcut:",{"type":34,"value":4038}," minimize or force-close the app in front, on top, bottom or both.",{"type":28,"tag":62,"props":4040,"children":4041},{},[4042,4047],{"type":28,"tag":139,"props":4043,"children":4044},{},[4045],{"type":34,"value":4046},"Pause shortcut:",{"type":34,"value":4048}," hold L2 + R2 to switch Hero off (e.g. when an emulator needs Back), hold again to resume.",{"type":28,"tag":62,"props":4050,"children":4051},{},[4052,4057],{"type":28,"tag":139,"props":4053,"children":4054},{},[4055],{"type":34,"value":4056},"Per-app exceptions:",{"type":34,"value":4058}," choose which gestures and shortcuts each app keeps for itself.",{"type":28,"tag":62,"props":4060,"children":4061},{},[4062,4067],{"type":28,"tag":139,"props":4063,"children":4064},{},[4065],{"type":34,"value":4066},"Redesigned settings:",{"type":34,"value":4068}," grouped pages, plus defaults and unbind per page with a preview.",{"type":28,"tag":37,"props":4070,"children":4071},{},[4072],{"type":34,"value":4073},"Default hotkey assignments:",{"type":28,"tag":58,"props":4075,"children":4076},{},[4077,4082,4087,4092,4097,4102,4107,4112],{"type":28,"tag":62,"props":4078,"children":4079},{},[4080],{"type":34,"value":4081},"L1: Navigation flick left",{"type":28,"tag":62,"props":4083,"children":4084},{},[4085],{"type":34,"value":4086},"R1: Navigation flick right",{"type":28,"tag":62,"props":4088,"children":4089},{},[4090],{"type":34,"value":4091},"L2: Screenshot, top screen only",{"type":28,"tag":62,"props":4093,"children":4094},{},[4095],{"type":34,"value":4096},"R2: Set controller focus: toggle between the screens",{"type":28,"tag":62,"props":4098,"children":4099},{},[4100],{"type":34,"value":4101},"D-pad up: Brightness up, both screens",{"type":28,"tag":62,"props":4103,"children":4104},{},[4105],{"type":34,"value":4106},"D-pad down: Brightness down, both screens",{"type":28,"tag":62,"props":4108,"children":4109},{},[4110],{"type":34,"value":4111},"D-pad left: Volume down, both screens",{"type":28,"tag":62,"props":4113,"children":4114},{},[4115],{"type":34,"value":4116},"D-pad right: Volume up, both screens",{"type":28,"tag":37,"props":4118,"children":4119},{},[4120],{"type":34,"value":4121},"On a fresh install, or after Reset settings, a single tap opens the launcher on the bottom screen, a double tap opens the app switcher (300 ms window), tap then hold opens Recents on the top screen (1000 ms), and hold swaps both screens (1000 ms).",{"type":28,"tag":29,"props":4123,"children":4124},{"id":1043},[4125],{"type":34,"value":1046},{"type":28,"tag":58,"props":4127,"children":4128},{},[4129,4134,4139,4144,4149],{"type":28,"tag":62,"props":4130,"children":4131},{},[4132],{"type":34,"value":4133},"AYN Thor handheld. Tested on an AYN Thor Max 16GB\u002F1TB (Rainbow), 1st Batch, Android 13, firmware Thor_V1.0.0.377_20260206_165408_user. The app uses no model-specific features, so other Thor variants (Base, Pro, Max512) should work too.",{"type":28,"tag":62,"props":4135,"children":4136},{},[4137],{"type":34,"value":4138},"Android 11 (min SDK 30) or later.",{"type":28,"tag":62,"props":4140,"children":4141},{},[4142],{"type":34,"value":4143},"No root required. The D-pad shortcuts use a root service that AYN's firmware already provides; your device is not rooted.",{"type":28,"tag":62,"props":4145,"children":4146},{},[4147],{"type":34,"value":4148},"The app is not on the Play Store; install the APK from the Releases page.",{"type":28,"tag":62,"props":4150,"children":4151},{},[4152],{"type":34,"value":4153},"The accessibility service must be enabled in Android's settings for the app to work.",{"type":28,"tag":29,"props":4155,"children":4156},{"id":99},[4157],{"type":34,"value":102},{"type":28,"tag":58,"props":4159,"children":4160},{},[4161,4173,4178,4189,4194,4199,4204],{"type":28,"tag":62,"props":4162,"children":4163},{},[4164,4166,4172],{"type":34,"value":4165},"Download the latest APK from the ",{"type":28,"tag":705,"props":4167,"children":4170},{"href":4168,"rel":4169},"https:\u002F\u002Fgithub.com\u002Fdenissteinhorst\u002Fthor-back-button-hero\u002Freleases\u002Flatest",[709],[4171],{"type":34,"value":3036},{"type":34,"value":176},{"type":28,"tag":62,"props":4174,"children":4175},{},[4176],{"type":34,"value":4177},"Install the APK on your Thor.",{"type":28,"tag":62,"props":4179,"children":4180},{},[4181,4183,4188],{"type":34,"value":4182},"Open Back Button Hero once and tap ",{"type":28,"tag":139,"props":4184,"children":4185},{},[4186],{"type":34,"value":4187},"Turn on accessibility service",{"type":34,"value":176},{"type":28,"tag":62,"props":4190,"children":4191},{},[4192],{"type":34,"value":4193},"In Android's Accessibility settings, select Back Button Hero and switch on its service. Android will show a standard warning that the service can observe your actions and see what is on the screen; this is generic and shown for every accessibility app.",{"type":28,"tag":62,"props":4195,"children":4196},{},[4197],{"type":34,"value":4198},"Return to Back Button Hero and check that the service status shows as on.",{"type":28,"tag":62,"props":4200,"children":4201},{},[4202],{"type":34,"value":4203},"On Android 13 and later, allow notifications if you want update alerts.",{"type":28,"tag":62,"props":4205,"children":4206},{},[4207],{"type":34,"value":4208},"The app checks GitHub Releases for updates and notifies you when a newer one is available — no auto-install, it just links to the release page.",{"title":6,"searchDepth":225,"depth":225,"links":4210},[4211,4212,4213,4214],{"id":31,"depth":225,"text":35},{"id":53,"depth":225,"text":56},{"id":1043,"depth":225,"text":1046},{"id":99,"depth":225,"text":102},"content:thor-back-button-hero:index.md","thor-back-button-hero\u002Findex.md","thor-back-button-hero\u002Findex",{"_path":4219,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":4220,"description":4221,"date":4222,"slug":4223,"category":242,"generated":13,"source":4224,"project_page":4225,"media":4226,"body":4231,"_type":231,"_id":4801,"_source":233,"_file":4802,"_stem":4803,"_extension":236},"\u002Farmadalive","ArmadaLive","A dual-screen companion app that shows the game you are playing and system controls on the AYN Thor's bottom screen under Armada OS.","2026-10-30 11:33","armadalive","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1xii9nh\u002Farmadalive_dual_screen_companion_app_for_the_ayn\u002F","https:\u002F\u002Fgithub.com\u002FFabianZettl\u002Farmadalive",[4227,4229],{"type":16,"url":4228},"https:\u002F\u002Fraw.githubusercontent.com\u002FFabianZettl\u002Farmadalive\u002Frefs\u002Fheads\u002Fmaster\u002Fdocs\u002Fimages\u002Fapps.png",{"type":16,"url":4230},"https:\u002F\u002Fraw.githubusercontent.com\u002FFabianZettl\u002Farmadalive\u002Frefs\u002Fheads\u002Fmaster\u002Fdocs\u002Fimages\u002Fsteam-ori.png",{"type":25,"children":4232,"toc":4795},[4233,4237,4242,4247,4251,4439,4443,4448,4521,4532,4556,4561,4630,4676,4680,4789],{"type":28,"tag":29,"props":4234,"children":4235},{"id":31},[4236],{"type":34,"value":35},{"type":28,"tag":37,"props":4238,"children":4239},{},[4240],{"type":34,"value":4241},"ArmadaLive is a companion app for the AYN Thor's bottom screen on Armada OS, for ES-DE and Steam \u002F Big Picture. Whatever you scroll through or play on the top screen, the bottom screen shows it: the game's logo and background, its manual and cheats. Next to that it holds the Thor's controls: power profiles, fan curves, brightness, volume, quick settings and an app grid. It is a native Qt app that runs full screen in the bottom Plasma session, never draws over your game, and the AYN button always brings it to the front.",{"type":28,"tag":37,"props":4243,"children":4244},{},[4245],{"type":34,"value":4246},"It is an independent re-creation that follows the idea and the look of AYN's Android companion app, and uses none of its code or assets.",{"type":28,"tag":29,"props":4248,"children":4249},{"id":53},[4250],{"type":34,"value":56},{"type":28,"tag":58,"props":4252,"children":4253},{},[4254,4272,4282,4292,4302,4312,4322,4332,4342,4352,4362,4372,4382,4392,4402,4412,4422],{"type":28,"tag":62,"props":4255,"children":4256},{},[4257,4262,4264,4270],{"type":28,"tag":139,"props":4258,"children":4259},{},[4260],{"type":34,"value":4261},"Game",{"type":34,"value":4263}," – the game in front with logo and background; it knows about the game ES-DE has selected or started, running emulators (RetroArch, Eden, Azahar, Cemu, ARMSX2, Dolphin, PPSSPP, RPCS3, xemu, DuckStation, Vita3K and more), Steam games, and the app you are highlighting in Steam Big Picture. Artwork comes from ES-DE's ",{"type":28,"tag":43,"props":4265,"children":4267},{"className":4266},[],[4268],{"type":34,"value":4269},"downloaded_media",{"type":34,"value":4271}," and Steam's own library cache.",{"type":28,"tag":62,"props":4273,"children":4274},{},[4275,4280],{"type":28,"tag":139,"props":4276,"children":4277},{},[4278],{"type":34,"value":4279},"Manual and Cheats",{"type":34,"value":4281}," – the game's PDF manual from ES-DE's media and cheats from your RetroArch cheats folder, each only shown if the current game has it.",{"type":28,"tag":62,"props":4283,"children":4284},{},[4285,4290],{"type":28,"tag":139,"props":4286,"children":4287},{},[4288],{"type":34,"value":4289},"Apps",{"type":34,"value":4291}," – a 3×3 grid of apps you choose; they open on the bottom screen.",{"type":28,"tag":62,"props":4293,"children":4294},{},[4295,4300],{"type":28,"tag":139,"props":4296,"children":4297},{},[4298],{"type":34,"value":4299},"Mode",{"type":34,"value":4301}," – brightness of both screens and the stick LEDs, volume.",{"type":28,"tag":62,"props":4303,"children":4304},{},[4305,4310],{"type":28,"tag":139,"props":4306,"children":4307},{},[4308],{"type":34,"value":4309},"System",{"type":34,"value":4311}," – FPS, a 60\u002F120 FPS limit, quick settings (power profile, fan curve, clear RAM, stick LEDs, Wi-Fi, Bluetooth, airplane mode, sound, screenshot, GPU clock, screen off), temperature, fan, and gauges for CPU, GPU, power and RAM.",{"type":28,"tag":62,"props":4313,"children":4314},{},[4315,4320],{"type":28,"tag":139,"props":4316,"children":4317},{},[4318],{"type":34,"value":4319},"Graphs",{"type":34,"value":4321}," – FPS, CPU, temperature, power and battery over the last two minutes.",{"type":28,"tag":62,"props":4323,"children":4324},{},[4325,4330],{"type":28,"tag":139,"props":4326,"children":4327},{},[4328],{"type":34,"value":4329},"Game rule and System rule",{"type":34,"value":4331}," – remember the current power profile and FPS limit for the game in front, or for its whole system, and apply them the next time that game starts.",{"type":28,"tag":62,"props":4333,"children":4334},{},[4335,4340],{"type":28,"tag":139,"props":4336,"children":4337},{},[4338],{"type":34,"value":4339},"Wi-Fi saver",{"type":34,"value":4341}," – switches Wi-Fi power saving off or on.",{"type":28,"tag":62,"props":4343,"children":4344},{},[4345,4350],{"type":28,"tag":139,"props":4346,"children":4347},{},[4348],{"type":34,"value":4349},"Resolution tile",{"type":34,"value":4351}," – for PPSSPP, Dolphin (GameCube, Wii) and ARMSX2 (PS2) steps the game's render resolution through off, 1×…5×.",{"type":28,"tag":62,"props":4353,"children":4354},{},[4355,4360],{"type":28,"tag":139,"props":4356,"children":4357},{},[4358],{"type":34,"value":4359},"Add to Steam",{"type":34,"value":4361}," – adds the game in front to Steam's library as a shortcut with its ES-DE artwork.",{"type":28,"tag":62,"props":4363,"children":4364},{},[4365,4370],{"type":28,"tag":139,"props":4366,"children":4367},{},[4368],{"type":34,"value":4369},"Keyboard",{"type":34,"value":4371}," – shows the on-screen keyboard of the bottom screen and keeps it up until you tap it again.",{"type":28,"tag":62,"props":4373,"children":4374},{},[4375,4380],{"type":28,"tag":139,"props":4376,"children":4377},{},[4378],{"type":34,"value":4379},"Tailscale",{"type":34,"value":4381}," – switches Tailscale on or off, with a shield in the status line while connected.",{"type":28,"tag":62,"props":4383,"children":4384},{},[4385,4390],{"type":28,"tag":139,"props":4386,"children":4387},{},[4388],{"type":34,"value":4389},"Heat warning",{"type":34,"value":4391}," – a popup when the device reaches 80, 85 or 90 °C, with the power profile that is running.",{"type":28,"tag":62,"props":4393,"children":4394},{},[4395,4400],{"type":28,"tag":139,"props":4396,"children":4397},{},[4398],{"type":34,"value":4399},"Media bar",{"type":34,"value":4401}," – when something plays on the main screen (anything that speaks MPRIS), a bar with title, previous, play\u002Fpause and next.",{"type":28,"tag":62,"props":4403,"children":4404},{},[4405,4410],{"type":28,"tag":139,"props":4406,"children":4407},{},[4408],{"type":34,"value":4409},"Close game",{"type":34,"value":4411}," – hold Start + Select for two seconds to close the program in front (an emulator, ES-DE or a Steam game, never Steam itself).",{"type":28,"tag":62,"props":4413,"children":4414},{},[4415,4420],{"type":28,"tag":139,"props":4416,"children":4417},{},[4418],{"type":34,"value":4419},"Tuning",{"type":34,"value":4421}," – CPU governor, underclock, GPU limits and a draggable fan-curve editor for each power profile.",{"type":28,"tag":62,"props":4423,"children":4424},{},[4425,4430,4432,4437],{"type":28,"tag":139,"props":4426,"children":4427},{},[4428],{"type":34,"value":4429},"Settings",{"type":34,"value":4431}," – a health check, English or German, eleven themes with accent colours (including a ",{"type":28,"tag":139,"props":4433,"children":4434},{},[4435],{"type":34,"value":4436},"Follow game",{"type":34,"value":4438}," theme that takes its palette from the artwork of the game in front), a low-battery warning, an optional charge limit (80 or 90 %), a one-file backup, logo animation on or off, in-app updates, and Setup.",{"type":28,"tag":29,"props":4440,"children":4441},{"id":99},[4442],{"type":34,"value":102},{"type":28,"tag":37,"props":4444,"children":4445},{},[4446],{"type":34,"value":4447},"Open a terminal on the Thor (Konsole, or SSH) and run:",{"type":28,"tag":4449,"props":4450,"children":4454},"pre",{"className":4451,"code":4452,"language":4453,"meta":6,"style":6},"language-sh shiki shiki-themes monokai","curl -L https:\u002F\u002Fgithub.com\u002FFabianZettl\u002Farmadalive\u002Freleases\u002Flatest\u002Fdownload\u002Farmadalive.tar.gz | tar xz\ncd armadalive\n.\u002Finstall.sh\n","sh",[4455],{"type":28,"tag":43,"props":4456,"children":4457},{"__ignoreMap":6},[4458,4498,4512],{"type":28,"tag":4459,"props":4460,"children":4463},"span",{"class":4461,"line":4462},"line",1,[4464,4470,4476,4482,4488,4493],{"type":28,"tag":4459,"props":4465,"children":4467},{"style":4466},"--shiki-default:#A6E22E",[4468],{"type":34,"value":4469},"curl",{"type":28,"tag":4459,"props":4471,"children":4473},{"style":4472},"--shiki-default:#AE81FF",[4474],{"type":34,"value":4475}," -L",{"type":28,"tag":4459,"props":4477,"children":4479},{"style":4478},"--shiki-default:#E6DB74",[4480],{"type":34,"value":4481}," https:\u002F\u002Fgithub.com\u002FFabianZettl\u002Farmadalive\u002Freleases\u002Flatest\u002Fdownload\u002Farmadalive.tar.gz",{"type":28,"tag":4459,"props":4483,"children":4485},{"style":4484},"--shiki-default:#F92672",[4486],{"type":34,"value":4487}," |",{"type":28,"tag":4459,"props":4489,"children":4490},{"style":4466},[4491],{"type":34,"value":4492}," tar",{"type":28,"tag":4459,"props":4494,"children":4495},{"style":4478},[4496],{"type":34,"value":4497}," xz\n",{"type":28,"tag":4459,"props":4499,"children":4500},{"class":4461,"line":225},[4501,4507],{"type":28,"tag":4459,"props":4502,"children":4504},{"style":4503},"--shiki-default:#66D9EF",[4505],{"type":34,"value":4506},"cd",{"type":28,"tag":4459,"props":4508,"children":4509},{"style":4478},[4510],{"type":34,"value":4511}," armadalive\n",{"type":28,"tag":4459,"props":4513,"children":4515},{"class":4461,"line":4514},3,[4516],{"type":28,"tag":4459,"props":4517,"children":4518},{"style":4466},[4519],{"type":34,"value":4520},".\u002Finstall.sh\n",{"type":28,"tag":37,"props":4522,"children":4523},{},[4524,4526,4530],{"type":34,"value":4525},"That installs ArmadaLive for your user only, no root needed, and starts it. It runs as a user service, starts at login and adds an ",{"type":28,"tag":139,"props":4527,"children":4528},{},[4529],{"type":34,"value":4220},{"type":34,"value":4531}," entry to the app menu.",{"type":28,"tag":37,"props":4533,"children":4534},{},[4535,4537,4542,4544,4548,4549,4554],{"type":34,"value":4536},"Then open ",{"type":28,"tag":139,"props":4538,"children":4539},{},[4540],{"type":34,"value":4541},"ArmadaLive → Settings → Setup",{"type":34,"value":4543},". The root helper (fan curves, profile tuning, stick LEDs, Clear RAM) and the AYN button are installed and activated right there: tap ",{"type":28,"tag":1769,"props":4545,"children":4546},{},[4547],{"type":34,"value":1461},{"type":34,"value":1559},{"type":28,"tag":1769,"props":4550,"children":4551},{},[4552],{"type":34,"value":4553},"Set up",{"type":34,"value":4555},", type your password, done. No terminal needed.",{"type":28,"tag":37,"props":4557,"children":4558},{},[4559],{"type":34,"value":4560},"Optional steps:",{"type":28,"tag":58,"props":4562,"children":4563},{},[4564,4594,4612],{"type":28,"tag":62,"props":4565,"children":4566},{},[4567,4572,4574,4579,4581,4586,4587,4592],{"type":28,"tag":139,"props":4568,"children":4569},{},[4570],{"type":34,"value":4571},"ES-DE events",{"type":34,"value":4573}," – in ES-DE press START, open ",{"type":28,"tag":1769,"props":4575,"children":4576},{},[4577],{"type":34,"value":4578},"Other Settings",{"type":34,"value":4580}," and turn on ",{"type":28,"tag":139,"props":4582,"children":4583},{},[4584],{"type":34,"value":4585},"Custom Event Scripts",{"type":34,"value":1475},{"type":28,"tag":139,"props":4588,"children":4589},{},[4590],{"type":34,"value":4591},"Browsing Custom Event Scripts",{"type":34,"value":4593},", then leave the menu so ES-DE saves. Without this, ArmadaLive still sees running emulators and Steam, but not what you scroll through in ES-DE.",{"type":28,"tag":62,"props":4595,"children":4596},{},[4597,4602,4604,4610],{"type":28,"tag":139,"props":4598,"children":4599},{},[4600],{"type":34,"value":4601},"Steam Big Picture highlighting",{"type":34,"value":4603}," – ArmadaLive reads the highlighted app from Steam's local debug port, which is only open while ",{"type":28,"tag":43,"props":4605,"children":4607},{"className":4606},[],[4608],{"type":34,"value":4609},"~\u002F.steam\u002Fsteam\u002F.cef-enable-remote-debugging",{"type":34,"value":4611}," exists (Decky Loader creates it). Without it, ArmadaLive still follows Steam games that are running.",{"type":28,"tag":62,"props":4613,"children":4614},{},[4615,4620,4622,4628],{"type":28,"tag":139,"props":4616,"children":4617},{},[4618],{"type":34,"value":4619},"Tailscale tile",{"type":34,"value":4621}," – the tile can only switch Tailscale if your user is its operator: run ",{"type":28,"tag":43,"props":4623,"children":4625},{"className":4624},[],[4626],{"type":34,"value":4627},"sudo tailscale set --operator=$USER",{"type":34,"value":4629}," once.",{"type":28,"tag":37,"props":4631,"children":4632},{},[4633,4635,4639,4640,4645,4646,4651,4653,4659,4661,4667,4668,4674],{"type":34,"value":4634},"Update: ",{"type":28,"tag":1769,"props":4636,"children":4637},{},[4638],{"type":34,"value":4429},{"type":34,"value":145},{"type":28,"tag":1769,"props":4641,"children":4642},{},[4643],{"type":34,"value":4644},"Check for updates",{"type":34,"value":145},{"type":28,"tag":1769,"props":4647,"children":4648},{},[4649],{"type":34,"value":4650},"Install update",{"type":34,"value":4652},". Uninstall: ",{"type":28,"tag":43,"props":4654,"children":4656},{"className":4655},[],[4657],{"type":34,"value":4658},".\u002Finstall.sh --uninstall",{"type":34,"value":4660},", plus ",{"type":28,"tag":43,"props":4662,"children":4664},{"className":4663},[],[4665],{"type":34,"value":4666},"sudo scripts\u002Finstall-helper.sh --remove",{"type":34,"value":1475},{"type":28,"tag":43,"props":4669,"children":4671},{"className":4670},[],[4672],{"type":34,"value":4673},"sudo scripts\u002Fayn-button.sh --remove",{"type":34,"value":4675}," if you installed those.",{"type":28,"tag":29,"props":4677,"children":4678},{"id":192},[4679],{"type":34,"value":195},{"type":28,"tag":58,"props":4681,"children":4682},{},[4683,4695,4707,4718,4730,4740,4745,4750,4759,4769,4780],{"type":28,"tag":62,"props":4684,"children":4685},{},[4686,4688,4693],{"type":34,"value":4687},"The ",{"type":28,"tag":139,"props":4689,"children":4690},{},[4691],{"type":34,"value":4692},"60\u002F120 FPS pill",{"type":34,"value":4694}," sets gamescope's frame limit; the panel's refresh rate stays at 120 Hz.",{"type":28,"tag":62,"props":4696,"children":4697},{},[4698,4700,4705],{"type":34,"value":4699},"Which ",{"type":28,"tag":139,"props":4701,"children":4702},{},[4703],{"type":34,"value":4704},"brightness slider belongs to which screen",{"type":34,"value":4706}," is an assumption (DSI-1 is the bottom panel, DSI-2 the top one).",{"type":28,"tag":62,"props":4708,"children":4709},{},[4710,4711,4716],{"type":34,"value":4687},{"type":28,"tag":139,"props":4712,"children":4713},{},[4714],{"type":34,"value":4715},"Wi-Fi, Bluetooth and airplane",{"type":34,"value":4717}," tiles were not switched during development.",{"type":28,"tag":62,"props":4719,"children":4720},{},[4721,4723,4728],{"type":34,"value":4722},"Staying ",{"type":28,"tag":139,"props":4724,"children":4725},{},[4726],{"type":34,"value":4727},"full screen",{"type":34,"value":4729}," relies on Plasma Mobile hiding its panels; its swipe-up gesture should bring them back.",{"type":28,"tag":62,"props":4731,"children":4732},{},[4733,4738],{"type":28,"tag":139,"props":4734,"children":4735},{},[4736],{"type":34,"value":4737},"Steam Big Picture selection",{"type":34,"value":4739}," depends on Steam's internals and can break with a Steam update.",{"type":28,"tag":62,"props":4741,"children":4742},{},[4743],{"type":34,"value":4744},"A window that you close is only hidden; the AYN button brings it back.",{"type":28,"tag":62,"props":4746,"children":4747},{},[4748],{"type":34,"value":4749},"No screen-mode switching (dual, top only, bottom only, swap) is implemented.",{"type":28,"tag":62,"props":4751,"children":4752},{},[4753,4757],{"type":28,"tag":139,"props":4754,"children":4755},{},[4756],{"type":34,"value":4409},{"type":34,"value":4758}," reads the controller directly and only works while ArmadaLive is running; emulators that ignore the polite quit are killed after three seconds, so unsaved progress is lost.",{"type":28,"tag":62,"props":4760,"children":4761},{},[4762,4763,4767],{"type":34,"value":4687},{"type":28,"tag":139,"props":4764,"children":4765},{},[4766],{"type":34,"value":4339},{"type":34,"value":4768}," setting is dropped by the kernel when Wi-Fi reconnects.",{"type":28,"tag":62,"props":4770,"children":4771},{},[4772,4773,4778],{"type":34,"value":4687},{"type":28,"tag":139,"props":4774,"children":4775},{},[4776],{"type":34,"value":4777},"resolution tile",{"type":34,"value":4779}," edits the emulators' own config files; Azahar is not supported.",{"type":28,"tag":62,"props":4781,"children":4782},{},[4783,4787],{"type":28,"tag":139,"props":4784,"children":4785},{},[4786],{"type":34,"value":4436},{"type":34,"value":4788}," uses the game's artwork, not the theme of the top screen.",{"type":28,"tag":4790,"props":4791,"children":4792},"style",{},[4793],{"type":34,"value":4794},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":6,"searchDepth":225,"depth":225,"links":4796},[4797,4798,4799,4800],{"id":31,"depth":225,"text":35},{"id":53,"depth":225,"text":56},{"id":99,"depth":225,"text":102},{"id":192,"depth":225,"text":195},"content:armadalive:index.md","armadalive\u002Findex.md","armadalive\u002Findex",{"_path":4805,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":4806,"description":4807,"date":4808,"slug":4809,"category":12,"generated":13,"media":4810,"source":4813,"project_page":4814,"body":4815,"_type":231,"_id":4960,"_source":233,"_file":4961,"_stem":4962,"_extension":236},"\u002Ffallout-2-ce-mobile-dual-screen","Fallout 2 CE Mobile + Dual Screen","A touch-first Android port of Fallout 2 that turns the second screen of dual-screen handhelds like the AYN Thor into a live console with HUD, automap and Pip-Boy.","2026-10-30 11:32","fallout-2-ce-mobile-dual-screen",[4811],{"type":16,"url":4812},"\u002Fcontent\u002Ffallout-2-ce-mobile-dual-screen\u002Fpreview.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1xiep46\u002Fdualscreen_fallout_2_on_the_ayn_thor\u002F","https:\u002F\u002Fgithub.com\u002Fsirbilliams\u002FFallout2Ce-Dualscreen-Android",{"type":25,"children":4816,"toc":4954},[4817,4821,4826,4831,4844,4849,4854,4858,4896,4900,4914,4927,4932,4936],{"type":28,"tag":29,"props":4818,"children":4819},{"id":31},[4820],{"type":34,"value":35},{"type":28,"tag":37,"props":4822,"children":4823},{},[4824],{"type":34,"value":4825},"Fallout 2 CE Mobile + Dual Screen is an unofficial, fan-made Android fork of Fallout 2: Community Edition with the game rebuilt for touch screens and for dual-screen handhelds like the AYN Thor. It is an early beta and is fully playable.",{"type":28,"tag":37,"props":4827,"children":4828},{},[4829],{"type":34,"value":4830},"On a two-screen device the game world gets the whole top screen and the bottom screen becomes a live console: the HUD, a live automap that follows you, and the game's screens — inventory, character sheet, Pip-Boy and map — open there while the world waits on top. The bottom screen offers several layouts and screen switching styles:",{"type":28,"tag":58,"props":4832,"children":4833},{},[4834,4839],{"type":28,"tag":62,"props":4835,"children":4836},{},[4837],{"type":34,"value":4838},"Bottom screen layouts: Classic, Map first, Two columns.",{"type":28,"tag":62,"props":4840,"children":4841},{},[4842],{"type":34,"value":4843},"Screen navigation styles: Rail, Slim rail, Top bar.",{"type":28,"tag":37,"props":4845,"children":4846},{},[4847],{"type":34,"value":4848},"Controls are touch-first: tap to move and act, long-press for action menus, drag and drop in the inventory, and two-finger gestures to zoom the map. The touch UI covers dialogue, barter, inventory and combat.",{"type":28,"tag":37,"props":4850,"children":4851},{},[4852],{"type":34,"value":4853},"No game files are included — the app uses your own copy of Fallout 2.",{"type":28,"tag":29,"props":4855,"children":4856},{"id":53},[4857],{"type":34,"value":56},{"type":28,"tag":58,"props":4859,"children":4860},{},[4861,4866,4871,4876,4881,4886,4891],{"type":28,"tag":62,"props":4862,"children":4863},{},[4864],{"type":34,"value":4865},"Touch UI for fingers: dialogue, barter, inventory, loot, character and level-up, character creation, Pip-Boy (quests, holodisks, maps, videos, rest), automap, world map and town maps, skills, game menu, settings, save\u002Fload, main menu, dialog boxes and called shots. There is no cursor: tap to act, long press for the action menu, drag to move items, use two fingers to zoom the map.",{"type":28,"tag":62,"props":4867,"children":4868},{},[4869],{"type":34,"value":4870},"HUD with buttons anchored to the screen edges (sized in dp), attack modes with reload, the message log, and end turn\u002Fcombat.",{"type":28,"tag":62,"props":4872,"children":4873},{},[4874],{"type":34,"value":4875},"Tactical view in combat: figures turn see-through, and the hexes you can reach plus everyone's hex are drawn on the ground, so a tile behind an enemy can be picked and an enemy chosen by its hex.",{"type":28,"tag":62,"props":4877,"children":4878},{},[4879],{"type":34,"value":4880},"Pip-Boy 2000 theme (default on first launch; Classic in Settings) with a phosphor CRT look, and an upgraded map: pinch\u002Fdrag to zoom and pan with a recenter button, a legend, elevation switching, a remembered zoom level, and a town area list to jump between a town's maps.",{"type":28,"tag":62,"props":4882,"children":4883},{},[4884],{"type":34,"value":4885},"Mod features built in where the mods cannot run on CE: Inventory Filter's filters and party tabs in loot and barter.",{"type":28,"tag":62,"props":4887,"children":4888},{},[4889],{"type":34,"value":4890},"Saves: a save list sorted by when they were made, quick saves that never overwrite manual ones (their number is a setting), a Continue option in the main menu, saves interrupted midway are restored, and optional marks for saves made with other game files or mods.",{"type":28,"tag":62,"props":4892,"children":4893},{},[4894],{"type":34,"value":4895},"Game files are imported from a folder or any archive (.zip, .7z, .rar, .tar...) copied from a computer, with RPU and other mods and the saves; a Replace game option for new builds and mod updates, and export and import of saves.",{"type":28,"tag":29,"props":4897,"children":4898},{"id":99},[4899],{"type":34,"value":102},{"type":28,"tag":37,"props":4901,"children":4902},{},[4903,4905,4912],{"type":34,"value":4904},"Download the latest build (",{"type":28,"tag":705,"props":4906,"children":4909},{"href":4907,"rel":4908},"https:\u002F\u002Fgithub.com\u002Fsirbilliams\u002FFallout2Ce-Dualscreen-Android\u002Freleases\u002Flatest",[709],[4910],{"type":34,"value":4911},"Fallout2-Dualscreen.apk",{"type":34,"value":4913},") and install it on your Android device. The app requires Android 7.0 or newer (arm64).",{"type":28,"tag":58,"props":4915,"children":4916},{},[4917,4922],{"type":28,"tag":62,"props":4918,"children":4919},{},[4920],{"type":34,"value":4921},"Copy your Fallout 2 folder from a computer to the phone — as is, or as one archive via cable, cloud drive or messenger. Mods installed there (for example the Restoration Project) and saves come along.",{"type":28,"tag":62,"props":4923,"children":4924},{},[4925],{"type":34,"value":4926},"Start the app and choose that folder or archive.",{"type":28,"tag":37,"props":4928,"children":4929},{},[4930],{"type":34,"value":4931},"Recommended setup: Fallout 2 with the Restoration Project (RPU) 2.4.34. Install RPU into the game folder on a computer, then copy the folder to the phone.",{"type":28,"tag":29,"props":4933,"children":4934},{"id":192},[4935],{"type":34,"value":195},{"type":28,"tag":58,"props":4937,"children":4938},{},[4939,4944,4949],{"type":28,"tag":62,"props":4940,"children":4941},{},[4942],{"type":34,"value":4943},"Landscape only; portrait is not available.",{"type":28,"tag":62,"props":4945,"children":4946},{},[4947],{"type":34,"value":4948},"Made for phones and tested on Android; the desktop builds keep the original CE windows and are not the focus of this fork.",{"type":28,"tag":62,"props":4950,"children":4951},{},[4952],{"type":34,"value":4953},"Mods with their own script windows are not covered by the touch UI (none of the popular ones use them).",{"title":6,"searchDepth":225,"depth":225,"links":4955},[4956,4957,4958,4959],{"id":31,"depth":225,"text":35},{"id":53,"depth":225,"text":56},{"id":99,"depth":225,"text":102},{"id":192,"depth":225,"text":195},"content:fallout-2-ce-mobile-dual-screen:index.md","fallout-2-ce-mobile-dual-screen\u002Findex.md","fallout-2-ce-mobile-dual-screen\u002Findex",{"_path":4964,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":4965,"description":4966,"date":4967,"slug":4968,"category":12,"generated":13,"media":4969,"source":4970,"project_page":4971,"body":4972,"_type":231,"_id":5034,"_source":233,"_file":5035,"_stem":5036,"_extension":236},"\u002Fzeewolf-style-helicopter-game","Zeewolf-style Helicopter Game","A Zeewolf-style low-poly helicopter game with bullet time, built for the AYN Thor's dual screens.","2026-10-29 06:58","zeewolf-style-helicopter-game",[],"https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1xi1dit\u002Fzeewolfstyle_lowpoly_helicopter_game_using_thors\u002F","https:\u002F\u002Fplay.google.com\u002Fstore\u002Fapps\u002Fdetails?id=com.bhg.game",{"type":25,"children":4973,"toc":5029},[4974,4978,4983,4987,5020,5024],{"type":28,"tag":29,"props":4975,"children":4976},{"id":31},[4977],{"type":34,"value":35},{"type":28,"tag":37,"props":4979,"children":4980},{},[4981],{"type":34,"value":4982},"A low-poly helicopter game inspired by Zeewolf on the Amiga, featuring a bullet time mechanic. The game is optimized for the AYN Thor's dual screens and includes 7 free missions, with 14 additional missions available as a one-time purchase. The game contains no ads.",{"type":28,"tag":29,"props":4984,"children":4985},{"id":53},[4986],{"type":34,"value":56},{"type":28,"tag":58,"props":4988,"children":4989},{},[4990,4995,5000,5005,5010,5015],{"type":28,"tag":62,"props":4991,"children":4992},{},[4993],{"type":34,"value":4994},"Zeewolf-style helicopter gameplay",{"type":28,"tag":62,"props":4996,"children":4997},{},[4998],{"type":34,"value":4999},"Bullet time mechanic",{"type":28,"tag":62,"props":5001,"children":5002},{},[5003],{"type":34,"value":5004},"Optimized for the AYN Thor's dual screens",{"type":28,"tag":62,"props":5006,"children":5007},{},[5008],{"type":34,"value":5009},"7 free missions",{"type":28,"tag":62,"props":5011,"children":5012},{},[5013],{"type":34,"value":5014},"14 additional missions available as a one-time purchase",{"type":28,"tag":62,"props":5016,"children":5017},{},[5018],{"type":34,"value":5019},"No ads",{"type":28,"tag":29,"props":5021,"children":5022},{"id":99},[5023],{"type":34,"value":102},{"type":28,"tag":37,"props":5025,"children":5026},{},[5027],{"type":34,"value":5028},"Download and install the game from Google Play on your AYN Thor. Launch the game to play the 7 free missions; the remaining 14 missions can be unlocked with a one-time in-app purchase.",{"title":6,"searchDepth":225,"depth":225,"links":5030},[5031,5032,5033],{"id":31,"depth":225,"text":35},{"id":53,"depth":225,"text":56},{"id":99,"depth":225,"text":102},"content:zeewolf-style-helicopter-game:index.md","zeewolf-style-helicopter-game\u002Findex.md","zeewolf-style-helicopter-game\u002Findex",{"_path":5038,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":5039,"description":5040,"date":5041,"slug":5042,"category":242,"generated":13,"media":5043,"source":5050,"project_page":5051,"body":5052,"_type":231,"_id":5413,"_source":233,"_file":5414,"_stem":5415,"_extension":236},"\u002Fwalkthor","WalkThor","A free, open-source companion app that turns the AYN Thor's bottom screen into a second screen for whatever you're playing up top, with guides, screenshots, captions and ES-DE support.","2026-10-27 07:40","walkthor",[5044,5046,5048],{"type":16,"url":5045},"\u002Fcontent\u002Fwalkthor\u002Fpreview.webp",{"type":16,"url":5047},"\u002Fcontent\u002Fwalkthor\u002Fscreenshot-2.webp",{"type":16,"url":5049},"\u002Fcontent\u002Fwalkthor\u002Fscreenshot-3.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1xn7y3f\u002Fwalkthor_your_new_thor_drawer\u002F","https:\u002F\u002Fgithub.com\u002Fnerf-herder-29\u002FWalkThor",{"type":25,"children":5053,"toc":5407},[5054,5058,5063,5068,5072,5284,5288,5307,5368,5373,5385,5389],{"type":28,"tag":29,"props":5055,"children":5056},{"id":31},[5057],{"type":34,"value":35},{"type":28,"tag":37,"props":5059,"children":5060},{},[5061],{"type":34,"value":5062},"WalkThor is a free, open-source Android companion app for the AYN Thor's bottom screen. Start a game in Cocoon or ES-DE and the bottom screen becomes that game's companion: its guide, a live mirror of part of the top screen (like a minimap), its face buttons the way the game labels them, and a live FPS and battery monitor, all one tab away, while the game keeps full speed on the top screen. It can also screenshot the top screen and show what's said in your game as live captions on the bottom screen.",{"type":28,"tag":37,"props":5064,"children":5065},{},[5066],{"type":34,"value":5067},"WalkThor works alongside Cocoon by reading a log file Cocoon writes, and alongside ES-DE by reading its es_log.txt. It is an independent, unofficial project, not affiliated with or endorsed by Cocoon, ES-DE, AYN, ScreenScraper or SteamGridDB. It doesn't include any games, ROMs or guides; you add your own, and guides belong to their authors. It only goes online if you add a scraper account to fetch artwork or to download the captions model; everything else stays on your device. It uses accessibility access only to open with a swipe, hand your game its performance back, and see which app is in front; it never reads your screen or what you type. Captions need Android's \"record audio\" permission, which Android requires for capturing another app's sound; the microphone is never used.",{"type":28,"tag":29,"props":5069,"children":5070},{"id":53},[5071],{"type":34,"value":56},{"type":28,"tag":58,"props":5073,"children":5074},{},[5075,5085,5095,5105,5115,5125,5135,5145,5155,5165,5174,5184,5194,5204,5214,5224,5234,5244,5254,5264,5274],{"type":28,"tag":62,"props":5076,"children":5077},{},[5078,5083],{"type":28,"tag":139,"props":5079,"children":5080},{},[5081],{"type":34,"value":5082},"Now playing",{"type":34,"value":5084}," — start a game in Cocoon or ES-DE and the bottom screen shows the game's hero art and logo, the emulator, and tabs across the top: Multi, Guide, Mirror, Face Buttons, Stats and Apps. Switching tabs keeps your place in each, and Back takes you to Now playing.",{"type":28,"tag":62,"props":5086,"children":5087},{},[5088,5093],{"type":28,"tag":139,"props":5089,"children":5090},{},[5091],{"type":34,"value":5092},"Your library",{"type":34,"value":5094}," — with a ROMs folder linked, the library shows your games as covers, sorted by system folder. Windows games work from .pcgame, .steam and .steamappid files. Games with a guide are tagged; long-press a game to choose its cover, its background on Now playing and its marquee, or hide it.",{"type":28,"tag":62,"props":5096,"children":5097},{},[5098,5103],{"type":28,"tag":139,"props":5099,"children":5100},{},[5101],{"type":34,"value":5102},"Guides that open themselves",{"type":34,"value":5104}," — add a PDF or TXT walkthrough and WalkThor opens it to the game you just launched, right where you left off. Search the whole guide, zoom in, and read single page or two-page spread.",{"type":28,"tag":62,"props":5106,"children":5107},{},[5108,5113],{"type":28,"tag":139,"props":5109,"children":5110},{},[5111],{"type":34,"value":5112},"Multi view",{"type":34,"value":5114}," — up to four panels on screen at once: any mix of guide, Mirror, face buttons, stats and your apps. Tap a panel to open that tab; press and hold a panel and drag it to rearrange them.",{"type":28,"tag":62,"props":5116,"children":5117},{},[5118,5123],{"type":28,"tag":139,"props":5119,"children":5120},{},[5121],{"type":34,"value":5122},"Shots",{"type":34,"value":5124}," — screenshot the whole top screen, or just the part you frame (a map or a puzzle), without leaving your game. Screenshots are saved to your gallery.",{"type":28,"tag":62,"props":5126,"children":5127},{},[5128,5133],{"type":28,"tag":139,"props":5129,"children":5130},{},[5131],{"type":34,"value":5132},"Captions",{"type":34,"value":5134}," — shows what's said in your game as text on the bottom screen, so you can play with the sound all the way down. It captures the game's own sound (never the microphone) and recognises speech on the device; after a one-time 40 MB model download it works offline.",{"type":28,"tag":62,"props":5136,"children":5137},{},[5138,5143],{"type":28,"tag":139,"props":5139,"children":5140},{},[5141],{"type":34,"value":5142},"Mirror",{"type":34,"value":5144}," — show part of the top screen, like a minimap or HUD, live on the bottom screen. Pick up to four areas per game, switch between them or see them all side by side, and WalkThor remembers them.",{"type":28,"tag":62,"props":5146,"children":5147},{},[5148,5153],{"type":28,"tag":139,"props":5149,"children":5150},{},[5151],{"type":34,"value":5152},"Face Buttons",{"type":34,"value":5154}," — the four face buttons labelled the way the game's own system labels them (shapes, or letters with A at the bottom or on the right), picked automatically from the emulator, each where its Thor button sits and lighting up as you press it.",{"type":28,"tag":62,"props":5156,"children":5157},{},[5158,5163],{"type":28,"tag":139,"props":5159,"children":5160},{},[5161],{"type":34,"value":5162},"Stats",{"type":34,"value":5164}," — live FPS with a one-minute graph, power draw and time left, heat, memory and CPU speed. It learns how much power each game uses and tells you how long that game usually lasts on a full charge.",{"type":28,"tag":62,"props":5166,"children":5167},{},[5168,5172],{"type":28,"tag":139,"props":5169,"children":5170},{},[5171],{"type":34,"value":4289},{"type":34,"value":5173}," — open any app on the bottom screen while your game keeps running up top. Pin the ones you use most; press and hold an app to open it on the top screen instead.",{"type":28,"tag":62,"props":5175,"children":5176},{},[5177,5182],{"type":28,"tag":139,"props":5178,"children":5179},{},[5180],{"type":34,"value":5181},"Artwork scraping",{"type":34,"value":5183}," — add a ScreenScraper account and\u002For a SteamGridDB API key and WalkThor scrapes box art for your guides' covers, and a screenshot and marquee for each game.",{"type":28,"tag":62,"props":5185,"children":5186},{},[5187,5192],{"type":28,"tag":139,"props":5188,"children":5189},{},[5190],{"type":34,"value":5191},"Works with your own artwork folders",{"type":34,"value":5193}," — Cocoon's media folder or ES-DE's downloaded_media, plus optional scraping, all in one settings screen.",{"type":28,"tag":62,"props":5195,"children":5196},{},[5197,5202],{"type":28,"tag":139,"props":5198,"children":5199},{},[5200],{"type":34,"value":5201},"Keeps your game at full speed",{"type":34,"value":5203}," — while a game runs, WalkThor never takes Android's top-app priority from it, and after WalkThor opens it hands priority back with one tap on the top edge of the game's screen.",{"type":28,"tag":62,"props":5205,"children":5206},{},[5207,5212],{"type":28,"tag":139,"props":5208,"children":5209},{},[5210],{"type":34,"value":5211},"Comes back if a heavy game pushes it out",{"type":34,"value":5213}," — if Android closes WalkThor while a demanding game loads, it reopens on the bottom screen right away and hands the game its priority back.",{"type":28,"tag":62,"props":5215,"children":5216},{},[5217,5222],{"type":28,"tag":139,"props":5218,"children":5219},{},[5220],{"type":34,"value":5221},"Animated book",{"type":34,"value":5223}," — pages turn in 3D around the spine; single page or two-page spread, with adjustable text size. PDFs default to a two-page spread; TXT guides to a single wide page sized to 80 columns so GameFAQs-style ASCII tables stay aligned.",{"type":28,"tag":62,"props":5225,"children":5226},{},[5227,5232],{"type":28,"tag":139,"props":5228,"children":5229},{},[5230],{"type":34,"value":5231},"Reading lens and magnifier",{"type":34,"value":5233}," — zoom a page to full width up to 500% with − \u002F +, pinch or double-tap, or press and hold on a page for a magnifier loupe.",{"type":28,"tag":62,"props":5235,"children":5236},{},[5237,5242],{"type":28,"tag":139,"props":5238,"children":5239},{},[5240],{"type":34,"value":5241},"Search",{"type":34,"value":5243}," — results as you type, a list of every matching page with snippets, ▲\u002F▼ to step through matches, and highlights on the page (PDFs included).",{"type":28,"tag":62,"props":5245,"children":5246},{},[5247,5252],{"type":28,"tag":139,"props":5248,"children":5249},{},[5250],{"type":34,"value":5251},"Swipe down to open",{"type":34,"value":5253}," — swipe from the top edge of the bottom screen to bring WalkThor up or put it away.",{"type":28,"tag":62,"props":5255,"children":5256},{},[5257,5262],{"type":28,"tag":139,"props":5258,"children":5259},{},[5260],{"type":34,"value":5261},"OLED-friendly",{"type":34,"value":5263}," — true black, auto-dim after the time you choose to the darkness you choose, and a status bar with the time, battery and how long you've been playing.",{"type":28,"tag":62,"props":5265,"children":5266},{},[5267,5272],{"type":28,"tag":139,"props":5268,"children":5269},{},[5270],{"type":34,"value":5271},"Controller support",{"type":34,"value":5273}," — L1\u002FR1 (or D-pad left\u002Fright) turn pages, in the book and in the lens.",{"type":28,"tag":62,"props":5275,"children":5276},{},[5277,5282],{"type":28,"tag":139,"props":5278,"children":5279},{},[5280],{"type":34,"value":5281},"Remembers your place",{"type":34,"value":5283}," in every guide, with a page scrubber for big jumps.",{"type":28,"tag":29,"props":5285,"children":5286},{"id":99},[5287],{"type":34,"value":102},{"type":28,"tag":37,"props":5289,"children":5290},{},[5291,5292,5298,5299,5305],{"type":34,"value":1974},{"type":28,"tag":43,"props":5293,"children":5295},{"className":5294},[],[5296],{"type":34,"value":5297},"app-release.apk",{"type":34,"value":1981},{"type":28,"tag":705,"props":5300,"children":5303},{"href":5301,"rel":5302},"https:\u002F\u002Fgithub.com\u002Fnerf-herder-29\u002FWalkThor\u002Freleases\u002Flatest",[709],[5304],{"type":34,"value":712},{"type":34,"value":5306}," and sideload it (allow \"Install unknown apps\" for your browser or file manager). To get updates automatically, add the repository to Obtainium, which installs straight from GitHub releases.",{"type":28,"tag":104,"props":5308,"children":5309},{},[5310,5315,5340,5353,5358,5363],{"type":28,"tag":62,"props":5311,"children":5312},{},[5313],{"type":34,"value":5314},"Install the APK from the latest release.",{"type":28,"tag":62,"props":5316,"children":5317},{},[5318,5320,5325,5327,5332,5333,5338],{"type":34,"value":5319},"Add a guide: ",{"type":28,"tag":1769,"props":5321,"children":5322},{},[5323],{"type":34,"value":5324},"Add guide",{"type":34,"value":5326}," in your library, or ",{"type":28,"tag":1769,"props":5328,"children":5329},{},[5330],{"type":34,"value":5331},"Open with",{"type":34,"value":2646},{"type":28,"tag":1769,"props":5334,"children":5335},{},[5336],{"type":34,"value":5337},"Share",{"type":34,"value":5339}," a PDF or TXT from a file manager.",{"type":28,"tag":62,"props":5341,"children":5342},{},[5343,5345,5351],{"type":34,"value":5344},"Link Cocoon's folder (the one with ",{"type":28,"tag":43,"props":5346,"children":5348},{"className":5347},[],[5349],{"type":34,"value":5350},"launch_debug.log",{"type":34,"value":5352},") so WalkThor knows which game you started.",{"type":28,"tag":62,"props":5354,"children":5355},{},[5356],{"type":34,"value":5357},"In Cocoon, choose WalkThor as the companion app for the bottom screen.",{"type":28,"tag":62,"props":5359,"children":5360},{},[5361],{"type":34,"value":5362},"Allow accessibility access when WalkThor asks. It's what keeps the game at full priority (and lets you swipe WalkThor up and down).",{"type":28,"tag":62,"props":5364,"children":5365},{},[5366],{"type":34,"value":5367},"For Captions, allow the \"record audio\" permission when asked. Android requires it for capturing another app's sound; the microphone is never used.",{"type":28,"tag":37,"props":5369,"children":5370},{},[5371],{"type":34,"value":5372},"Using ES-DE instead: in ES-DE, turn on Custom Event Scripts and Debug Mode (Main menu > Other settings) and restart it, then link the ES-DE folder in WalkThor under Settings > ES-DE.",{"type":28,"tag":37,"props":5374,"children":5375},{},[5376,5378,5383],{"type":34,"value":5377},"Optional: link your artwork folder (Cocoon's media folder or ES-DE's downloaded_media) for game art, logos and guide covers. Every step is also in the app under Settings (⋮) → About → ",{"type":28,"tag":1769,"props":5379,"children":5380},{},[5381],{"type":34,"value":5382},"How to set up WalkThor",{"type":34,"value":5384},", with a tick for each step that's done.",{"type":28,"tag":29,"props":5386,"children":5387},{"id":192},[5388],{"type":34,"value":195},{"type":28,"tag":58,"props":5390,"children":5391},{},[5392,5397,5402],{"type":28,"tag":62,"props":5393,"children":5394},{},[5395],{"type":34,"value":5396},"Scanned PDFs without a text layer display fine but can't be searched (no OCR).",{"type":28,"tag":62,"props":5398,"children":5399},{},[5400],{"type":34,"value":5401},"Password-protected PDFs aren't supported.",{"type":28,"tag":62,"props":5403,"children":5404},{},[5405],{"type":34,"value":5406},"Matches that span a page break in TXT guides aren't found.",{"title":6,"searchDepth":225,"depth":225,"links":5408},[5409,5410,5411,5412],{"id":31,"depth":225,"text":35},{"id":53,"depth":225,"text":56},{"id":99,"depth":225,"text":102},{"id":192,"depth":225,"text":195},"content:walkthor:index.md","walkthor\u002Findex.md","walkthor\u002Findex",{"_path":5417,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":5418,"description":5419,"date":5420,"slug":5421,"category":5422,"generated":13,"media":5423,"tags":5430,"source":5433,"project_page":5433,"body":5434,"_type":231,"_id":5675,"_source":233,"_file":5676,"_stem":5677,"_extension":236},"\u002Fgba-ds","GBA DS","A Game Boy Advance emulator with a second-screen experience for maps, HUDs and other game information","2026-10-26 12:00","gba-ds","emulator",[5424,5426,5428],{"type":16,"url":5425},"https:\u002F\u002Fraw.githubusercontent.com\u002Fkyannon\u002Fgba-ds\u002Fmain\u002Fdocs\u002Ffusion.png",{"type":16,"url":5427},"https:\u002F\u002Fraw.githubusercontent.com\u002Fkyannon\u002Fgba-ds\u002Fmain\u002Fdocs\u002Fcotm.png",{"type":16,"url":5429},"https:\u002F\u002Fraw.githubusercontent.com\u002Fkyannon\u002Fgba-ds\u002Fmain\u002Fdocs\u002Fmario-kart-race.png",[5431,5422,5432],"gba","dual-screen","https:\u002F\u002Fgithub.com\u002Fkyannon\u002Fgba-ds",{"type":25,"children":5435,"toc":5668},[5436,5440,5445,5450,5455,5461,5538,5544,5558,5563,5567,5606,5641,5645],{"type":28,"tag":29,"props":5437,"children":5438},{"id":31},[5439],{"type":34,"value":35},{"type":28,"tag":37,"props":5441,"children":5442},{},[5443],{"type":34,"value":5444},"GBA DS is a Game Boy Advance emulator for dual-screen handhelds. The game runs on one screen while the second screen displays the game's own map or other useful information, bringing a DS-style experience to GBA games.",{"type":28,"tag":37,"props":5446,"children":5447},{},[5448],{"type":34,"value":5449},"The project is built for devices such as the Anbernic RG DS Plus and Android handhelds running GammaOS. It is inspired by the way the Nintendo DS Castlevania games keep a live map visible on the second screen, making exploration more comfortable without interrupting gameplay.",{"type":28,"tag":37,"props":5451,"children":5452},{},[5453],{"type":34,"value":5454},"GBA DS supports 14 games with dedicated second-screen features. Other Game Boy Advance games also run normally on the primary screen, even when they do not yet have custom second-screen compatibility.",{"type":28,"tag":29,"props":5456,"children":5458},{"id":5457},"second-screen-features",[5459],{"type":34,"value":5460},"Second-screen features",{"type":28,"tag":58,"props":5462,"children":5463},{},[5464,5474,5491,5508,5518,5528],{"type":28,"tag":62,"props":5465,"children":5466},{},[5467,5472],{"type":28,"tag":139,"props":5468,"children":5469},{},[5470],{"type":34,"value":5471},"Live maps",{"type":34,"value":5473}," for supported games, including explored rooms, save rooms, warp rooms, area names and completion percentages.",{"type":28,"tag":62,"props":5475,"children":5476},{},[5477,5482,5484,5489],{"type":28,"tag":139,"props":5478,"children":5479},{},[5480],{"type":34,"value":5481},"Game-specific HUDs",{"type":34,"value":5483}," for games such as ",{"type":28,"tag":1769,"props":5485,"children":5486},{},[5487],{"type":34,"value":5488},"Mario Kart: Super Circuit",{"type":34,"value":5490},", including the course map, lap information, time and standings.",{"type":28,"tag":62,"props":5492,"children":5493},{},[5494,5499,5501,5506],{"type":28,"tag":139,"props":5495,"children":5496},{},[5497],{"type":34,"value":5498},"Goal sheets",{"type":34,"value":5500}," for ",{"type":28,"tag":1769,"props":5502,"children":5503},{},[5504],{"type":34,"value":5505},"Tony Hawk's Pro Skater 2",{"type":34,"value":5507},", kept visible while skating.",{"type":28,"tag":62,"props":5509,"children":5510},{},[5511,5516],{"type":28,"tag":139,"props":5512,"children":5513},{},[5514],{"type":34,"value":5515},"Animated map updates",{"type":34,"value":5517}," with blinking or pulsing player markers.",{"type":28,"tag":62,"props":5519,"children":5520},{},[5521,5526],{"type":28,"tag":139,"props":5522,"children":5523},{},[5524],{"type":34,"value":5525},"Pixel-perfect scaling",{"type":34,"value":5527}," with optional LCD grid effects.",{"type":28,"tag":62,"props":5529,"children":5530},{},[5531,5536],{"type":28,"tag":139,"props":5532,"children":5533},{},[5534],{"type":34,"value":5535},"Automatic game logo extraction",{"type":34,"value":5537}," for games without a dedicated second-screen display.",{"type":28,"tag":29,"props":5539,"children":5541},{"id":5540},"how-it-works",[5542],{"type":34,"value":5543},"How it works",{"type":28,"tag":37,"props":5545,"children":5546},{},[5547,5549,5556],{"type":34,"value":5548},"GBA DS uses ",{"type":28,"tag":705,"props":5550,"children":5553},{"href":5551,"rel":5552},"https:\u002F\u002Fmgba.io",[709],[5554],{"type":34,"value":5555},"libmgba",{"type":34,"value":5557}," for emulation and runs a second, silent copy of the emulator alongside the active game. At regular intervals and after room transitions, it copies the live game state into the silent emulator, opens the relevant map or information screen, captures a short sequence of frames and displays the result on the second screen.",{"type":28,"tag":37,"props":5559,"children":5560},{},[5561],{"type":34,"value":5562},"The active game is never paused or modified. Screens that are not valid map or HUD screens—such as title screens, menus, cutscenes and fades—are rejected so the previous useful display remains visible.",{"type":28,"tag":29,"props":5564,"children":5565},{"id":99},[5566],{"type":34,"value":102},{"type":28,"tag":104,"props":5568,"children":5569},{},[5570,5583,5596,5601],{"type":28,"tag":62,"props":5571,"children":5572},{},[5573,5575,5582],{"type":34,"value":5574},"Download the latest build from the ",{"type":28,"tag":705,"props":5576,"children":5579},{"href":5577,"rel":5578},"https:\u002F\u002Fgithub.com\u002Fkyannon\u002Fgba-ds\u002Freleases",[709],[5580],{"type":34,"value":5581},"GBA DS releases page",{"type":34,"value":176},{"type":28,"tag":62,"props":5584,"children":5585},{},[5586,5588,5595],{"type":34,"value":5587},"Follow the installation guide for your device in the project's ",{"type":28,"tag":705,"props":5589,"children":5592},{"href":5590,"rel":5591},"https:\u002F\u002Fgithub.com\u002Fkyannon\u002Fgba-ds\u002Fwiki",[709],[5593],{"type":34,"value":5594},"wiki",{"type":34,"value":176},{"type":28,"tag":62,"props":5597,"children":5598},{},[5599],{"type":34,"value":5600},"Add your legally obtained GBA ROMs according to the instructions for your operating system.",{"type":28,"tag":62,"props":5602,"children":5603},{},[5604],{"type":34,"value":5605},"Launch GBA DS and select a game. Supported titles automatically activate their second-screen mode.",{"type":28,"tag":37,"props":5607,"children":5608},{},[5609,5611,5618,5619,5625,5626,5632,5633,5640],{"type":34,"value":5610},"Documentation is available in the wiki: ",{"type":28,"tag":705,"props":5612,"children":5615},{"href":5613,"rel":5614},"https:\u002F\u002Fgithub.com\u002Fkyannon\u002Fgba-ds\u002Fwiki\u002FPlaying",[709],[5616],{"type":34,"value":5617},"Playing",{"type":34,"value":1499},{"type":28,"tag":705,"props":5620,"children":5623},{"href":5621,"rel":5622},"https:\u002F\u002Fgithub.com\u002Fkyannon\u002Fgba-ds\u002Fwiki\u002FSupported-games",[709],[5624],{"type":34,"value":1909},{"type":34,"value":1499},{"type":28,"tag":705,"props":5627,"children":5630},{"href":5628,"rel":5629},"https:\u002F\u002Fgithub.com\u002Fkyannon\u002Fgba-ds\u002Fwiki\u002FSettings",[709],[5631],{"type":34,"value":4429},{"type":34,"value":1475},{"type":28,"tag":705,"props":5634,"children":5637},{"href":5635,"rel":5636},"https:\u002F\u002Fgithub.com\u002Fkyannon\u002Fgba-ds\u002Fwiki\u002FTroubleshooting",[709],[5638],{"type":34,"value":5639},"Troubleshooting",{"type":34,"value":176},{"type":28,"tag":29,"props":5642,"children":5643},{"id":192},[5644],{"type":34,"value":195},{"type":28,"tag":58,"props":5646,"children":5647},{},[5648,5653,5658,5663],{"type":28,"tag":62,"props":5649,"children":5650},{},[5651],{"type":34,"value":5652},"Second-screen features are currently available only for the supported games listed in the project's wiki.",{"type":28,"tag":62,"props":5654,"children":5655},{},[5656],{"type":34,"value":5657},"Games without dedicated compatibility still run, but use only the primary screen.",{"type":28,"tag":62,"props":5659,"children":5660},{},[5661],{"type":34,"value":5662},"Installation steps and supported platforms vary between ROCKNIX, BananaOS, stock Linux and Android.",{"type":28,"tag":62,"props":5664,"children":5665},{},[5666],{"type":34,"value":5667},"ROM files are not included; use only games you legally own.",{"title":6,"searchDepth":225,"depth":225,"links":5669},[5670,5671,5672,5673,5674],{"id":31,"depth":225,"text":35},{"id":5457,"depth":225,"text":5460},{"id":5540,"depth":225,"text":5543},{"id":99,"depth":225,"text":102},{"id":192,"depth":225,"text":195},"content:gba-ds:index.md","gba-ds\u002Findex.md","gba-ds\u002Findex",{"_path":5679,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":5680,"description":5681,"date":5682,"slug":5683,"category":12,"generated":13,"media":5684,"source":5691,"project_page":5692,"body":5693,"_type":231,"_id":5937,"_source":233,"_file":5938,"_stem":5939,"_extension":236},"\u002Fopenfusion-pocket","OpenFusion:Pocket","An unofficial native Android client for FusionFall with optional dual-screen companion panels.","2026-10-26 07:28","openfusion-pocket",[5685,5687,5689],{"type":16,"url":5686},"\u002Fcontent\u002Fopenfusion-pocket\u002Fpreview.webp",{"type":16,"url":5688},"\u002Fcontent\u002Fopenfusion-pocket\u002Fscreenshot-2.webp",{"type":16,"url":5690},"\u002Fcontent\u002Fopenfusion-pocket\u002Fscreenshot-3.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1xew036\u002Fopenfusionpocket_v20_fusionfall_on_android_with_a\u002F","https:\u002F\u002Fgithub.com\u002Frsigristc\u002FOpenFusion-Pocket",{"type":25,"children":5694,"toc":5931},[5695,5699,5704,5716,5720,5725,5788,5793,5836,5840,5882,5894,5898],{"type":28,"tag":29,"props":5696,"children":5697},{"id":31},[5698],{"type":34,"value":35},{"type":28,"tag":37,"props":5700,"children":5701},{},[5702],{"type":34,"value":5703},"OpenFusion:Pocket is an unofficial community preservation project that provides a native Android client for FusionFall, rebuilt in Unity 2022.3 LTS. Development and device testing currently focus on FusionFall Retrobution. It runs as an Android application without running the Windows client through Wine or Winlator, and it does not compile the original client or recompile Unity on your phone.",{"type":28,"tag":37,"props":5705,"children":5706},{},[5707,5709,5714],{"type":34,"value":5708},"The client includes an optional ",{"type":28,"tag":139,"props":5710,"children":5711},{},[5712],{"type":34,"value":5713},"DS Companion",{"type":34,"value":5715}," interface that keeps the game world on the main screen and shows useful panels on a second screen. It supports compatible physical dual-screen Android handhelds and unfolded foldables, with testing on the AYN Thor and Galaxy Z Fold. Regular phones and tablets keep the full single-screen experience — there is no forced split just because the display is large.",{"type":28,"tag":29,"props":5717,"children":5718},{"id":53},[5719],{"type":34,"value":56},{"type":28,"tag":37,"props":5721,"children":5722},{},[5723],{"type":34,"value":5724},"The DS Companion panels on the second screen use your actual character data and existing game systems:",{"type":28,"tag":58,"props":5726,"children":5727},{},[5728,5738,5748,5758,5768,5778],{"type":28,"tag":62,"props":5729,"children":5730},{},[5731,5736],{"type":28,"tag":139,"props":5732,"children":5733},{},[5734],{"type":34,"value":5735},"Map:",{"type":34,"value":5737}," local\u002Fworld views, original game icons, filters, zoom and live position.",{"type":28,"tag":62,"props":5739,"children":5740},{},[5741,5746],{"type":28,"tag":139,"props":5742,"children":5743},{},[5744],{"type":34,"value":5745},"Nanos:",{"type":34,"value":5747}," animated previews, collection, energy and assigned powers. Tap an equipped Nano to summon it, or manage equipment and powers at a Nano Station.",{"type":28,"tag":62,"props":5749,"children":5750},{},[5751,5756],{"type":28,"tag":139,"props":5752,"children":5753},{},[5754],{"type":34,"value":5755},"Equipment:",{"type":34,"value":5757}," character preview with touch rotation, inventory and live stats. Selecting an item opens its original details and actions on the main screen.",{"type":28,"tag":62,"props":5759,"children":5760},{},[5761,5766],{"type":28,"tag":139,"props":5762,"children":5763},{},[5764],{"type":34,"value":5765},"Missions:",{"type":34,"value":5767}," active\u002Fcompleted lists, objectives, progress, rewards and tracking.",{"type":28,"tag":62,"props":5769,"children":5770},{},[5771,5776],{"type":28,"tag":139,"props":5772,"children":5773},{},[5774],{"type":34,"value":5775},"E-Mail (new in v2.0):",{"type":34,"value":5777}," Guide\u002FPlayer folders, unread indicators, message reading and received attachments. Composing and replying use the original interface on the main screen.",{"type":28,"tag":62,"props":5779,"children":5780},{},[5781,5786],{"type":28,"tag":139,"props":5782,"children":5783},{},[5784],{"type":34,"value":5785},"Nano Boost, Attack Boost and Taros counters",{"type":34,"value":5787},", also available in the companion interface.",{"type":28,"tag":37,"props":5789,"children":5790},{},[5791],{"type":34,"value":5792},"Additional client features include:",{"type":28,"tag":58,"props":5794,"children":5795},{},[5796,5801,5806,5811,5816,5821,5826,5831],{"type":28,"tag":62,"props":5797,"children":5798},{},[5799],{"type":34,"value":5800},"Launcher navigation with the stick\u002FD-pad and A\u002FB and L1\u002FR1.",{"type":28,"tag":62,"props":5802,"children":5803},{},[5804],{"type":34,"value":5805},"A touch layout editor, saved profiles and a controller-style preset.",{"type":28,"tag":62,"props":5807,"children":5808},{},[5809],{"type":34,"value":5810},"Optional encrypted password saving using Android Keystore.",{"type":28,"tag":62,"props":5812,"children":5813},{},[5814],{"type":34,"value":5815},"Gamepad support, launcher focus navigation and an in-game UI cursor; touch controls can hide while a controller is connected.",{"type":28,"tag":62,"props":5817,"children":5818},{},[5819],{"type":34,"value":5820},"Server selection, staged game-resource downloads and persistent caching with integrity checks.",{"type":28,"tag":62,"props":5822,"children":5823},{},[5824],{"type":34,"value":5825},"Retrobution 3.0.3 Halloween ambience, green rim lighting, audio and NPC hats.",{"type":28,"tag":62,"props":5827,"children":5828},{},[5829],{"type":34,"value":5830},"Optional experimental Vulkan, with OpenGL ES remaining the default.",{"type":28,"tag":62,"props":5832,"children":5833},{},[5834],{"type":34,"value":5835},"Opening cinematic and guided Tech Square practice.",{"type":28,"tag":29,"props":5837,"children":5838},{"id":99},[5839],{"type":34,"value":102},{"type":28,"tag":104,"props":5841,"children":5842},{},[5843,5862,5867,5872,5877],{"type":28,"tag":62,"props":5844,"children":5845},{},[5846,5848,5854,5856,5861],{"type":34,"value":5847},"Open the ",{"type":28,"tag":705,"props":5849,"children":5852},{"href":5850,"rel":5851},"https:\u002F\u002Fgithub.com\u002Frsigristc\u002FOpenFusion-Pocket\u002Freleases\u002Flatest",[709],[5853],{"type":34,"value":712},{"type":34,"value":5855}," and download the ",{"type":28,"tag":139,"props":5857,"children":5858},{},[5859],{"type":34,"value":5860},"OpenFusion-Pocket APK",{"type":34,"value":176},{"type":28,"tag":62,"props":5863,"children":5864},{},[5865],{"type":34,"value":5866},"Allow installation from your browser or file manager when Android asks, then install the APK.",{"type":28,"tag":62,"props":5868,"children":5869},{},[5870],{"type":34,"value":5871},"Open the app, choose a server and sign in with an account for that server. An internet connection is required.",{"type":28,"tag":62,"props":5873,"children":5874},{},[5875],{"type":34,"value":5876},"Initial game-resource downloads require additional storage and time; Wi-Fi is recommended. Server availability and account registration are managed by each server's operators.",{"type":28,"tag":62,"props":5878,"children":5879},{},[5880],{"type":34,"value":5881},"To update an existing installation signed with the same certificate, install the update over it to retain your data and cache.",{"type":28,"tag":37,"props":5883,"children":5884},{},[5885,5887,5892],{"type":34,"value":5886},"The build targets Android 6.0 \u002F API 23 or newer, with ARMv7 and ARM64 included. For dual-screen use, choose ",{"type":28,"tag":139,"props":5888,"children":5889},{},[5890],{"type":34,"value":5891},"Automatic \u002F Single Screen \u002F Dual Screen",{"type":34,"value":5893}," in the Dual Screen settings, available in the launcher Game Settings and in-game Settings.",{"type":28,"tag":29,"props":5895,"children":5896},{"id":192},[5897],{"type":34,"value":195},{"type":28,"tag":58,"props":5899,"children":5900},{},[5901,5906,5911,5916,5921,5926],{"type":28,"tag":62,"props":5902,"children":5903},{},[5904],{"type":34,"value":5905},"DS Chat opens the existing game interface rather than a dedicated companion panel.",{"type":28,"tag":62,"props":5907,"children":5908},{},[5909],{"type":34,"value":5910},"The tutorial is an adaptation rather than complete Legacy parity.",{"type":28,"tag":62,"props":5912,"children":5913},{},[5914],{"type":34,"value":5915},"Support depends on Android display, posture and input reporting, so it does not guarantee every dual-screen device or foldable; device and server compatibility varies.",{"type":28,"tag":62,"props":5917,"children":5918},{},[5919],{"type":34,"value":5920},"Experimental Vulkan is not a guaranteed frame-rate boost.",{"type":28,"tag":62,"props":5922,"children":5923},{},[5924],{"type":34,"value":5925},"Visual fidelity, loading time, memory use and input behavior can vary by device.",{"type":28,"tag":62,"props":5927,"children":5928},{},[5929],{"type":34,"value":5930},"An external display alone is insufficient for the companion: physical secondary screens need usable dimensions and a touch confirmation in settings.",{"title":6,"searchDepth":225,"depth":225,"links":5932},[5933,5934,5935,5936],{"id":31,"depth":225,"text":35},{"id":53,"depth":225,"text":56},{"id":99,"depth":225,"text":102},{"id":192,"depth":225,"text":195},"content:openfusion-pocket:index.md","openfusion-pocket\u002Findex.md","openfusion-pocket\u002Findex",{"_path":5941,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":5942,"description":5943,"date":5944,"slug":5945,"category":12,"generated":13,"media":5946,"source":5953,"project_page":5954,"body":5955,"_type":231,"_id":6091,"_source":233,"_file":6092,"_stem":6093,"_extension":236},"\u002Fwiids","WiiDS","WiiDS brings Wii games to the AYN Thor and puts the handheld's bottom screen to real use.","2026-10-23 06:59","wiids",[5947,5949,5951],{"type":16,"url":5948},"\u002Fcontent\u002Fwiids\u002Fpreview.webp",{"type":16,"url":5950},"\u002Fcontent\u002Fwiids\u002Fscreenshot-2.webp",{"type":16,"url":5952},"\u002Fcontent\u002Fwiids\u002Fscreenshot-3.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1xcodmi\u002Fupdate_wiids_v10_live_now\u002F","https:\u002F\u002Fgithub.com\u002FMaddex712\u002FWiiDS",{"type":25,"children":5956,"toc":6085},[5957,5961,5966,5970,6023,6027,6060,6064,6069,6074],{"type":28,"tag":29,"props":5958,"children":5959},{"id":31},[5960],{"type":34,"value":35},{"type":28,"tag":37,"props":5962,"children":5963},{},[5964],{"type":34,"value":5965},"WiiDS is a project for the AYN Thor that brings Wii and GameCube games to the handheld with full use of both screens. Making the bottom screen useful was a major focus — it isn't just something to look at every now and then. v1.1 ships with 8 games (including mods). Note that Super Mario Galaxy looks slightly different than the pictures in the post — check the GitHub for the current look.",{"type":28,"tag":29,"props":5967,"children":5968},{"id":53},[5969],{"type":34,"value":56},{"type":28,"tag":58,"props":5971,"children":5972},{},[5973,5978,5983,5988,5993,5998,6003,6008,6013,6018],{"type":28,"tag":62,"props":5974,"children":5975},{},[5976],{"type":34,"value":5977},"Makes full use of the AYN Thor's two screens, with the bottom screen serving a real purpose",{"type":28,"tag":62,"props":5979,"children":5980},{},[5981],{"type":34,"value":5982},"Ships with 8 games (including mods) in v1.1",{"type":28,"tag":62,"props":5984,"children":5985},{},[5986],{"type":34,"value":5987},"Save manager with dated backups, export\u002Frestore and supported Dolphin in-game save imports (no root needed) for all 8 game\u002Fmod profiles; your current save is backed up automatically before importing",{"type":28,"tag":62,"props":5989,"children":5990},{},[5991],{"type":34,"value":5992},"Galaxy trackpad controls: move the Star Pointer from the bottom screen, lifting and repositioning your finger without it jumping; planet mode is still available",{"type":28,"tag":62,"props":5994,"children":5995},{},[5996],{"type":34,"value":5997},"Galaxy graphics and camera fixes: corrected opening-attack colors and Toad palettes, restored camera restrictions, and Original \u002F Smooth \u002F Smooth + glow picture options",{"type":28,"tag":62,"props":5999,"children":6000},{},[6001],{"type":34,"value":6002},"Cocoon\u002Ffrontend shortcuts for individual games and mods, including returning to an already-running game",{"type":28,"tag":62,"props":6004,"children":6005},{},[6006],{"type":34,"value":6007},"NSMB\u002FMSMBWii improvements: physical tilt and shake enabled by default (unless previously turned off), plus a fix for the resume crash",{"type":28,"tag":62,"props":6009,"children":6010},{},[6011],{"type":34,"value":6012},"RetroAchievements browser with descriptions, badges and existing account progress across both screens; earning new achievements or points is not supported yet",{"type":28,"tag":62,"props":6014,"children":6015},{},[6016],{"type":34,"value":6017},"In-app updates: check for updates, download in the background and install with checksum\u002Fsignature verification and Android confirmation",{"type":28,"tag":62,"props":6019,"children":6020},{},[6021],{"type":34,"value":6022},"Fixed missing menu music and artwork on fresh installs",{"type":28,"tag":29,"props":6024,"children":6025},{"id":1906},[6026],{"type":34,"value":1909},{"type":28,"tag":58,"props":6028,"children":6029},{},[6030,6035,6040,6045,6050,6055],{"type":28,"tag":62,"props":6031,"children":6032},{},[6033],{"type":34,"value":6034},"8 games (including mods) included with v1.1",{"type":28,"tag":62,"props":6036,"children":6037},{},[6038],{"type":34,"value":6039},"Mario Kart Wii and the Retro Rewind expansion",{"type":28,"tag":62,"props":6041,"children":6042},{},[6043],{"type":34,"value":6044},"New Super Mario Bros. Wii and MSMBWii: Just a Little Adventure",{"type":28,"tag":62,"props":6046,"children":6047},{},[6048],{"type":34,"value":6049},"Super Mario Sunshine and Super Mario Eclipse 1.1.0",{"type":28,"tag":62,"props":6051,"children":6052},{},[6053],{"type":34,"value":6054},"Super Mario Galaxy 1 and Kaizo Mario Galaxy Rebalanced 2.1 (new in 1.1, with its own saves, settings and lower-screen maps)",{"type":28,"tag":62,"props":6056,"children":6057},{},[6058],{"type":34,"value":6059},"Super Mario Galaxy is among them — it looks slightly different than the pictures in the post (check the GitHub for details)",{"type":28,"tag":29,"props":6061,"children":6062},{"id":99},[6063],{"type":34,"value":102},{"type":28,"tag":37,"props":6065,"children":6066},{},[6067],{"type":34,"value":6068},"Download the latest release from the GitHub repository and install the APK on your AYN Thor. Open WiiDS and wait for it to prepare its files. You need your own compatible game dumps — games are not included. Copy a dump to the Thor through Options → Your games (it opens automatically on first use), then use Choose file on the game's card or Search again to find your dump. For Super Mario Galaxy, use a clean USA Galaxy 1 ISO (RMGE01, revision 0) and press Set up Galaxy. Return to the library, press A to choose a game (Original or its mod), A to open its case, then A to launch the disc. B goes back; X opens Options.",{"type":28,"tag":37,"props":6070,"children":6071},{},[6072],{"type":34,"value":6073},"To update from v1.0, close your game and install 1.1 over the existing app — don't uninstall or clear your data. The GitHub has a very easy-to-follow installation guide with more information.",{"type":28,"tag":37,"props":6075,"children":6076},{},[6077,6079],{"type":34,"value":6078},"Join the WiiDS Discord: ",{"type":28,"tag":705,"props":6080,"children":6083},{"href":6081,"rel":6082},"https:\u002F\u002Fdiscord.gg\u002FvTEKP8wpQm",[709],[6084],{"type":34,"value":6081},{"title":6,"searchDepth":225,"depth":225,"links":6086},[6087,6088,6089,6090],{"id":31,"depth":225,"text":35},{"id":53,"depth":225,"text":56},{"id":1906,"depth":225,"text":1909},{"id":99,"depth":225,"text":102},"content:wiids:index.md","wiids\u002Findex.md","wiids\u002Findex",{"_path":6095,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":6096,"description":6097,"date":6098,"slug":6099,"category":242,"generated":13,"media":6100,"source":6101,"project_page":6102,"body":6103,"_type":231,"_id":6506,"_source":233,"_file":6507,"_stem":6508,"_extension":236},"\u002Fffxii-thor-companion","FFXII Thor Companion","A free, open-source live second-screen companion showing your map, party HP\u002FMP, gambits, gear and License Board while playing FFXII The Zodiac Age on the AYN Thor.","2026-10-23 06:48","ffxii-thor-companion",[],"https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1xcfl3f\u002Fi_made_a_live_secondscreen_companion_for_final\u002F","https:\u002F\u002Fgithub.com\u002FCybranfox\u002Fffxii-thor-companion",{"type":25,"children":6104,"toc":6500},[6105,6109,6114,6119,6177,6181,6186,6260,6265,6270,6274,6339,6343,6348,6427,6455,6460],{"type":28,"tag":29,"props":6106,"children":6107},{"id":31},[6108],{"type":34,"value":35},{"type":28,"tag":37,"props":6110,"children":6111},{},[6112],{"type":34,"value":6113},"FFXII Thor Companion is a live second-screen companion for FINAL FANTASY XII THE ZODIAC AGE (Steam, PC) running under GameNative on the AYN Thor dual-screen handheld. The game plays on the top screen and the companion app on the bottom screen follows it in real time. It is free and open source (MIT), requires no accounts, no tracking and no internet permission, and builds its data from your own copy of the game — no game files are included. It is an unofficial fan project, not affiliated with or endorsed by Square Enix.",{"type":28,"tag":37,"props":6115,"children":6116},{},[6117],{"type":34,"value":6118},"The companion is made of three pieces, each with its own job:",{"type":28,"tag":58,"props":6120,"children":6121},{},[6122,6140,6167],{"type":28,"tag":62,"props":6123,"children":6124},{},[6125,6126,6131,6132,6138],{"type":34,"value":4687},{"type":28,"tag":139,"props":6127,"children":6128},{},[6129],{"type":34,"value":6130},"app",{"type":34,"value":2997},{"type":28,"tag":43,"props":6133,"children":6135},{"className":6134},[],[6136],{"type":34,"value":6137},".apk",{"type":34,"value":6139},") runs on the Thor's bottom screen and reads files. It has no network access.",{"type":28,"tag":62,"props":6141,"children":6142},{},[6143,6144,6149,6151,6157,6159,6165],{"type":34,"value":4687},{"type":28,"tag":139,"props":6145,"children":6146},{},[6147],{"type":34,"value":6148},"game script",{"type":34,"value":6150}," runs inside the game under ffgriever's LUA Script Loader. It reads the game's state and writes it as small JSON files to ",{"type":28,"tag":43,"props":6152,"children":6154},{"className":6153},[],[6155],{"type":34,"value":6156},"Download\u002FFFXII_companion\u002Flive",{"type":34,"value":6158}," on the device. It comes inside the app: a small loader (",{"type":28,"tag":43,"props":6160,"children":6162},{"className":6161},[],[6163],{"type":34,"value":6164},"ThorCompanion.lua",{"type":34,"value":6166},"), installed once, checks the script's signature at every game start and only runs a genuine, current copy. After the first install, updating is just installing the new app.",{"type":28,"tag":62,"props":6168,"children":6169},{},[6170,6175],{"type":28,"tag":139,"props":6171,"children":6172},{},[6173],{"type":34,"value":6174},"Your game data",{"type":34,"value":6176}," (names, licence boards, map sheets) is built from your own game files, on the Thor: the game script copies the files it needs while you play (about 5 minutes) and the app builds the data. A PC data builder is still available as an alternative.",{"type":28,"tag":29,"props":6178,"children":6179},{"id":53},[6180],{"type":34,"value":56},{"type":28,"tag":37,"props":6182,"children":6183},{},[6184],{"type":34,"value":6185},"The app offers five tabs that follow the game live:",{"type":28,"tag":58,"props":6187,"children":6188},{},[6189,6199,6223,6240,6250],{"type":28,"tag":62,"props":6190,"children":6191},{},[6192,6197],{"type":28,"tag":139,"props":6193,"children":6194},{},[6195],{"type":34,"value":6196},"Status",{"type":34,"value":6198}," – Where you are, a map of the areas you have explored with a \"you are here\" marker, the game's map symbols and exit labels (tap it for a full-size map you can zoom and drag), live party HP\u002FMP and status effects, the enemy your party is targeting (level, HP, weaknesses), the game's own \"where to go next\" hint, and (optional) your accepted hunts.",{"type":28,"tag":62,"props":6200,"children":6201},{},[6202,6207,6209,6214,6216,6221],{"type":28,"tag":139,"props":6203,"children":6204},{},[6205],{"type":34,"value":6206},"Gambits",{"type":34,"value":6208}," – Every member's gambits as the game has them right now, with item counts (\"Potion ×14\", \"0 left\" warnings). It shows one set at a time — tap I, II or III to look through them. ",{"type":28,"tag":139,"props":6210,"children":6211},{},[6212],{"type":34,"value":6213},"Suggest",{"type":34,"value":6215}," builds a gambit set from what that character owns and is licensed for. The optional ",{"type":28,"tag":139,"props":6217,"children":6218},{},[6219],{"type":34,"value":6220},"editor",{"type":34,"value":6222}," can apply a change or a whole suggested set to the running game, and switch which set (I\u002FII\u002FIII) a character uses.",{"type":28,"tag":62,"props":6224,"children":6225},{},[6226,6231,6233,6238],{"type":28,"tag":139,"props":6227,"children":6228},{},[6229],{"type":34,"value":6230},"Equip",{"type":34,"value":6232}," – Each member's equipped gear, plus what the game's own ",{"type":28,"tag":139,"props":6234,"children":6235},{},[6236],{"type":34,"value":6237},"Optimize",{"type":34,"value":6239}," would change. Descriptions come from optional mods.",{"type":28,"tag":62,"props":6241,"children":6242},{},[6243,6248],{"type":28,"tag":139,"props":6244,"children":6245},{},[6246],{"type":34,"value":6247},"Bestiary",{"type":34,"value":6249}," – Bestiary pages by location (with an optional mod).",{"type":28,"tag":62,"props":6251,"children":6252},{},[6253,6258],{"type":28,"tag":139,"props":6254,"children":6255},{},[6256],{"type":34,"value":6257},"Licenses",{"type":34,"value":6259}," – Both job boards per character: owned, buyable now (the game's exact rules, including Espers, Quickenings and the Second Board), and the cheapest route to any license.",{"type":28,"tag":37,"props":6261,"children":6262},{},[6263],{"type":34,"value":6264},"Accepted hunts have a map link under Status › Hunts that follows your progress and opens the place the game's own View Hunt Map points to. Most have a marker; one offers several regions to choose from. These are the game's hunt-map destinations, not exact spawn points, and ground you haven't explored stays hidden. Hunts remain optional.",{"type":28,"tag":37,"props":6266,"children":6267},{},[6268],{"type":34,"value":6269},"The interface brings the bottom screen closer to the game's menus, with a softly moving slate background, plain menu words down the left, a pointing-glove cursor, and paper pages for Bestiary and the full map.",{"type":28,"tag":29,"props":6271,"children":6272},{"id":1043},[6273],{"type":34,"value":1046},{"type":28,"tag":58,"props":6275,"children":6276},{},[6277,6299,6309,6319,6329,6334],{"type":28,"tag":62,"props":6278,"children":6279},{},[6280,6284,6286,6291,6292,6297],{"type":28,"tag":139,"props":6281,"children":6282},{},[6283],{"type":34,"value":3347},{"type":34,"value":6285}," (Android 13) with ",{"type":28,"tag":139,"props":6287,"children":6288},{},[6289],{"type":34,"value":6290},"GameNative",{"type":34,"value":1475},{"type":28,"tag":139,"props":6293,"children":6294},{},[6295],{"type":34,"value":6296},"FINAL FANTASY XII THE ZODIAC AGE from Steam, version 1.0.4.0",{"type":34,"value":6298},". Other game builds are detected and the companion stays read-only and blank.",{"type":28,"tag":62,"props":6300,"children":6301},{},[6302,6307],{"type":28,"tag":139,"props":6303,"children":6304},{},[6305],{"type":34,"value":6306},"Required mods:",{"type":34,"value":6308}," ffgriever's FF12 External File Loader and FF12 LUA Script Loader. Use the current versions (tested: LUA Script Loader 2.0.1 with External File Loader 1.6.1); 1.7.1 still works but often hangs when the game closes.",{"type":28,"tag":62,"props":6310,"children":6311},{},[6312,6317],{"type":28,"tag":139,"props":6313,"children":6314},{},[6315],{"type":34,"value":6316},"Optional mods",{"type":34,"value":6318}," that add text: Dynamic Equipment Description with The Insurgent's Descriptive Inventory (Equip tab descriptions), and Foedex Clan Primer Text Replacer (Bestiary tab). Everything else works without them.",{"type":28,"tag":62,"props":6320,"children":6321},{},[6322,6327],{"type":28,"tag":139,"props":6323,"children":6324},{},[6325],{"type":34,"value":6326},"No PC needed",{"type":34,"value":6328}," for the game data any more; the optional PC data builder needs Python 3.10+.",{"type":28,"tag":62,"props":6330,"children":6331},{},[6332],{"type":34,"value":6333},"If you use The Insurgent's Manifesto, its 36-slot single gambit list mode is not supported by the editor (the editor refuses to run then); everything else still works.",{"type":28,"tag":62,"props":6335,"children":6336},{},[6337],{"type":34,"value":6338},"English (US) game text only for this beta; Korean and Chinese licence boards differ.",{"type":28,"tag":29,"props":6340,"children":6341},{"id":99},[6342],{"type":34,"value":102},{"type":28,"tag":37,"props":6344,"children":6345},{},[6346],{"type":34,"value":6347},"Getting started takes a few one-time steps:",{"type":28,"tag":58,"props":6349,"children":6350},{},[6351,6371,6397,6409],{"type":28,"tag":62,"props":6352,"children":6353},{},[6354,6356,6362,6364,6369],{"type":34,"value":6355},"First, ffgriever's two mod loaders have to be working in FFXII (the companion's script runs through them): FF12 External File Loader and FF12 LUA Script Loader copied into the game's ",{"type":28,"tag":43,"props":6357,"children":6359},{"className":6358},[],[6360],{"type":34,"value":6361},"x64",{"type":34,"value":6363}," folder, the newer C++ runtime next to them, and GameNative's ",{"type":28,"tag":139,"props":6365,"children":6366},{},[6367],{"type":34,"value":6368},"Enable mod loaders",{"type":34,"value":6370}," switched on. Without them the game runs fine but the companion just waits.",{"type":28,"tag":62,"props":6372,"children":6373},{},[6374,6376,6381,6383,6388,6390,6396],{"type":34,"value":6375},"Install the ",{"type":28,"tag":139,"props":6377,"children":6378},{},[6379],{"type":34,"value":6380},"APK",{"type":34,"value":6382}," on the Thor, open it on the bottom screen and tap ",{"type":28,"tag":139,"props":6384,"children":6385},{},[6386],{"type":34,"value":6387},"Allow file access",{"type":34,"value":6389},". It puts the loader, the signed game script and the installer in ",{"type":28,"tag":43,"props":6391,"children":6393},{"className":6392},[],[6394],{"type":34,"value":6395},"Download\u002FFFXII_companion\u002Finstall",{"type":34,"value":176},{"type":28,"tag":62,"props":6398,"children":6399},{},[6400,6402,6408],{"type":34,"value":6401},"Once only: in GameNative, open the game's container and run ",{"type":28,"tag":43,"props":6403,"children":6405},{"className":6404},[],[6406],{"type":34,"value":6407},"D:\\FFXII_companion\\install\\install.cmd",{"type":34,"value":176},{"type":28,"tag":62,"props":6410,"children":6411},{},[6412,6414,6419,6420,6425],{"type":34,"value":6413},"Tap ",{"type":28,"tag":139,"props":6415,"children":6416},{},[6417],{"type":34,"value":6418},"Start FFXII",{"type":34,"value":1456},{"type":28,"tag":139,"props":6421,"children":6422},{},[6423],{"type":34,"value":6424},"Build game data",{"type":34,"value":6426},". The game data builds itself while you play (about 5 minutes).",{"type":28,"tag":37,"props":6428,"children":6429},{},[6430,6432,6438,6440,6446,6448,6454],{"type":34,"value":6431},"To update, install the new APK over the old one and restart the game. When updating from an earlier version, rebuild your game data once (Status › Details › Rebuild) with the game running until it finishes; you don't need to run ",{"type":28,"tag":43,"props":6433,"children":6435},{"className":6434},[],[6436],{"type":34,"value":6437},"install.cmd",{"type":34,"value":6439}," again. To remove, run ",{"type":28,"tag":43,"props":6441,"children":6443},{"className":6442},[],[6444],{"type":34,"value":6445},"uninstall.cmd",{"type":34,"value":6447}," the same way (it deletes the loader and its record), uninstall the app, and delete ",{"type":28,"tag":43,"props":6449,"children":6451},{"className":6450},[],[6452],{"type":34,"value":6453},"Download\u002FFFXII_companion",{"type":34,"value":176},{"type":28,"tag":37,"props":6456,"children":6457},{},[6458],{"type":34,"value":6459},"Watch:",{"type":28,"tag":58,"props":6461,"children":6462},{},[6463,6473,6482,6491],{"type":28,"tag":62,"props":6464,"children":6465},{},[6466],{"type":28,"tag":705,"props":6467,"children":6470},{"href":6468,"rel":6469},"https:\u002F\u002Fgithub.com\u002FCybranfox\u002Fffxii-thor-companion\u002Freleases\u002Flatest",[709],[6471],{"type":34,"value":6472},"0.17 video: the new look and hunt maps",{"type":28,"tag":62,"props":6474,"children":6475},{},[6476],{"type":28,"tag":705,"props":6477,"children":6479},{"href":6468,"rel":6478},[709],[6480],{"type":34,"value":6481},"0.16 video",{"type":28,"tag":62,"props":6483,"children":6484},{},[6485],{"type":28,"tag":705,"props":6486,"children":6488},{"href":6468,"rel":6487},[709],[6489],{"type":34,"value":6490},"0.15 setup walkthrough",{"type":28,"tag":62,"props":6492,"children":6493},{},[6494],{"type":28,"tag":705,"props":6495,"children":6497},{"href":6468,"rel":6496},[709],[6498],{"type":34,"value":6499},"first demo (0.9)",{"title":6,"searchDepth":225,"depth":225,"links":6501},[6502,6503,6504,6505],{"id":31,"depth":225,"text":35},{"id":53,"depth":225,"text":56},{"id":1043,"depth":225,"text":1046},{"id":99,"depth":225,"text":102},"content:ffxii-thor-companion:index.md","ffxii-thor-companion\u002Findex.md","ffxii-thor-companion\u002Findex",{"_path":6510,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":6511,"description":6512,"date":6513,"slug":6514,"category":3687,"project_page":6515,"tags":6516,"body":6519,"_type":231,"_id":6682,"_source":233,"_file":6683,"_stem":6684,"_extension":236},"\u002Fmultishot","MultiShot","Screenshots with a floating button for dual-screen devices: capture both AYN Thor screens at once.","2026-10-22 12:00","multishot","https:\u002F\u002Fgithub.com\u002Fmkaflowski\u002FMultiShot\u002Freleases\u002Flatest",[6517,5432,6518],"screenshot","open-source",{"type":25,"children":6520,"toc":6676},[6521,6525,6537,6548,6552,6618,6624,6659,6663],{"type":28,"tag":29,"props":6522,"children":6523},{"id":31},[6524],{"type":34,"value":35},{"type":28,"tag":37,"props":6526,"children":6527},{},[6528,6530,6535],{"type":34,"value":6529},"MultiShot captures ",{"type":28,"tag":139,"props":6531,"children":6532},{},[6533],{"type":34,"value":6534},"all screens at once",{"type":34,"value":6536}," on the AYN Thor and saves them as one image, stacked top to bottom. You can also capture a single screen or save each screen to its own file. No root, no internet and no storage permissions needed.",{"type":28,"tag":37,"props":6538,"children":6539},{},[6540,6542],{"type":34,"value":6541},"Source and downloads: ",{"type":28,"tag":705,"props":6543,"children":6546},{"href":6544,"rel":6545},"https:\u002F\u002Fgithub.com\u002Fmkaflowski\u002FMultiShot",[709],[6547],{"type":34,"value":6544},{"type":28,"tag":29,"props":6549,"children":6550},{"id":99},[6551],{"type":34,"value":102},{"type":28,"tag":104,"props":6553,"children":6554},{},[6555,6576,6594,6606],{"type":28,"tag":62,"props":6556,"children":6557},{},[6558,6560,6565,6567,6574],{"type":34,"value":6559},"Download the APK from the ",{"type":28,"tag":705,"props":6561,"children":6563},{"href":6515,"rel":6562},[709],[6564],{"type":34,"value":712},{"type":34,"value":6566}," (or add the repo to ",{"type":28,"tag":705,"props":6568,"children":6571},{"href":6569,"rel":6570},"https:\u002F\u002Fgithub.com\u002FImranR98\u002FObtainium",[709],[6572],{"type":34,"value":6573},"Obtainium",{"type":34,"value":6575},") and install it.",{"type":28,"tag":62,"props":6577,"children":6578},{},[6579,6581,6586,6588,6593],{"type":34,"value":6580},"Open MultiShot, tap ",{"type":28,"tag":139,"props":6582,"children":6583},{},[6584],{"type":34,"value":6585},"Accessibility settings",{"type":34,"value":6587}," and enable ",{"type":28,"tag":139,"props":6589,"children":6590},{},[6591],{"type":34,"value":6592},"MultiShot – screenshots",{"type":34,"value":176},{"type":28,"tag":62,"props":6595,"children":6596},{},[6597,6599,6604],{"type":34,"value":6598},"Android 13+, sideloaded APK: if the setting is greyed out as restricted, go to ",{"type":28,"tag":139,"props":6600,"children":6601},{},[6602],{"type":34,"value":6603},"App info → ⋮ → Allow restricted settings",{"type":34,"value":6605}," and try again.",{"type":28,"tag":62,"props":6607,"children":6608},{},[6609,6611,6616],{"type":34,"value":6610},"Optional: tap ",{"type":28,"tag":139,"props":6612,"children":6613},{},[6614],{"type":34,"value":6615},"Add tile to Quick Settings",{"type":34,"value":6617}," to show or hide the floating button from the panel.",{"type":28,"tag":29,"props":6619,"children":6621},{"id":6620},"tips",[6622],{"type":34,"value":6623},"Tips",{"type":28,"tag":58,"props":6625,"children":6626},{},[6627,6632,6637,6642,6654],{"type":28,"tag":62,"props":6628,"children":6629},{},[6630],{"type":34,"value":6631},"Tap the floating button to take a screenshot, drag it to move it, long-press it to open settings.",{"type":28,"tag":62,"props":6633,"children":6634},{},[6635],{"type":34,"value":6636},"Choose which screen the button appears on, plus its size and transparency.",{"type":28,"tag":62,"props":6638,"children":6639},{},[6640],{"type":34,"value":6641},"Capture modes: all screens stacked in one image (default), all screens as separate files, or only one selected screen.",{"type":28,"tag":62,"props":6643,"children":6644},{},[6645,6647,6653],{"type":34,"value":6646},"Screenshots are saved as PNG in ",{"type":28,"tag":43,"props":6648,"children":6650},{"className":6649},[],[6651],{"type":34,"value":6652},"Pictures\u002FScreenshots",{"type":34,"value":176},{"type":28,"tag":62,"props":6655,"children":6656},{},[6657],{"type":34,"value":6658},"The button hides itself while capturing, so it never appears in your screenshots.",{"type":28,"tag":29,"props":6660,"children":6661},{"id":192},[6662],{"type":34,"value":195},{"type":28,"tag":58,"props":6664,"children":6665},{},[6666,6671],{"type":28,"tag":62,"props":6667,"children":6668},{},[6669],{"type":34,"value":6670},"Requires an accessibility service, because it is the only non-root Android API that can capture a chosen screen. The service does not read the content of your apps.",{"type":28,"tag":62,"props":6672,"children":6673},{},[6674],{"type":34,"value":6675},"Turned-off screens are skipped.",{"title":6,"searchDepth":225,"depth":225,"links":6677},[6678,6679,6680,6681],{"id":31,"depth":225,"text":35},{"id":99,"depth":225,"text":102},{"id":6620,"depth":225,"text":6623},{"id":192,"depth":225,"text":195},"content:multishot:index.md","multishot\u002Findex.md","multishot\u002Findex",{"_path":6686,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":6687,"description":6688,"date":6689,"slug":6690,"category":5422,"generated":13,"media":6691,"source":6694,"project_page":6695,"body":6696,"_type":231,"_id":6864,"_source":233,"_file":6865,"_stem":6866,"_extension":236},"\u002Fre2ds","RE2DS: Resident Evil 2 Dual Screen","A modified Dolphin emulator that brings Resident Evil 2 to the AYN Thor's dual screens, with gameplay on top and an interactive map, health and inventory below.","2026-10-22 06:53","re2ds",[6692],{"type":16,"url":6693},"\u002Fcontent\u002Fre2ds\u002Fpreview.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1xbfm3r\u002Fre2ds_resident_evil_2_dual_screen\u002F","https:\u002F\u002Fgithub.com\u002Fmesho3d\u002FRE2DS",{"type":25,"children":6697,"toc":6858},[6698,6702,6720,6724,6762,6766,6779,6783],{"type":28,"tag":29,"props":6699,"children":6700},{"id":31},[6701],{"type":34,"value":35},{"type":28,"tag":37,"props":6703,"children":6704},{},[6705,6707,6712,6714,6718],{"type":34,"value":6706},"RE2DS is a modified Dolphin emulator that brings a new way to experience ",{"type":28,"tag":139,"props":6708,"children":6709},{},[6710],{"type":34,"value":6711},"Resident Evil 2",{"type":34,"value":6713}," on the ",{"type":28,"tag":139,"props":6715,"children":6716},{},[6717],{"type":34,"value":3347},{"type":34,"value":6719},", making use of both screens: gameplay on the upper screen, with an interactive map, health display and inventory on the lower screen.",{"type":28,"tag":29,"props":6721,"children":6722},{"id":53},[6723],{"type":34,"value":56},{"type":28,"tag":58,"props":6725,"children":6726},{},[6727,6732,6737,6742,6747,6752,6757],{"type":28,"tag":62,"props":6728,"children":6729},{},[6730],{"type":34,"value":6731},"Gameplay on the upper screen with an interactive map, health display and inventory on the lower screen.",{"type":28,"tag":62,"props":6733,"children":6734},{},[6735],{"type":34,"value":6736},"Track your character and enemies.",{"type":28,"tag":62,"props":6738,"children":6739},{},[6740],{"type":34,"value":6741},"Add notes.",{"type":28,"tag":62,"props":6743,"children":6744},{},[6745],{"type":34,"value":6746},"Switch weapons.",{"type":28,"tag":62,"props":6748,"children":6749},{},[6750],{"type":34,"value":6751},"Use healing items and tools through the lower-screen interface.",{"type":28,"tag":62,"props":6753,"children":6754},{},[6755],{"type":34,"value":6756},"Quick Save and Load controls.",{"type":28,"tag":62,"props":6758,"children":6759},{},[6760],{"type":34,"value":6761},"Customizable bezel.",{"type":28,"tag":29,"props":6763,"children":6764},{"id":1043},[6765],{"type":34,"value":1046},{"type":28,"tag":58,"props":6767,"children":6768},{},[6769,6774],{"type":28,"tag":62,"props":6770,"children":6771},{},[6772],{"type":34,"value":6773},"AYN Thor handheld.",{"type":28,"tag":62,"props":6775,"children":6776},{},[6777],{"type":34,"value":6778},"Resident Evil 2 (USA version, GHAE08). Other versions have not been tested.",{"type":28,"tag":29,"props":6780,"children":6781},{"id":99},[6782],{"type":34,"value":102},{"type":28,"tag":58,"props":6784,"children":6785},{},[6786,6791,6796,6847],{"type":28,"tag":62,"props":6787,"children":6788},{},[6789],{"type":34,"value":6790},"Download and install the latest RE2DS release (APK) on the AYN Thor.",{"type":28,"tag":62,"props":6792,"children":6793},{},[6794],{"type":34,"value":6795},"Download the included RE2DS-GameCube.json profile.",{"type":28,"tag":62,"props":6797,"children":6798},{},[6799,6801],{"type":34,"value":6800},"To make RE2DS appear in Cocoon's emulator list, import the JSON profile:\n",{"type":28,"tag":58,"props":6802,"children":6803},{},[6804,6815,6825,6836],{"type":28,"tag":62,"props":6805,"children":6806},{},[6807,6809,6814],{"type":34,"value":6808},"Go to ",{"type":28,"tag":139,"props":6810,"children":6811},{},[6812],{"type":34,"value":6813},"Add Platform",{"type":34,"value":176},{"type":28,"tag":62,"props":6816,"children":6817},{},[6818,6819,6824],{"type":34,"value":169},{"type":28,"tag":139,"props":6820,"children":6821},{},[6822],{"type":34,"value":6823},"Y",{"type":34,"value":176},{"type":28,"tag":62,"props":6826,"children":6827},{},[6828,6830,6835],{"type":34,"value":6829},"Scroll down to ",{"type":28,"tag":139,"props":6831,"children":6832},{},[6833],{"type":34,"value":6834},"Import Custom Platforms",{"type":34,"value":176},{"type":28,"tag":62,"props":6837,"children":6838},{},[6839,6841,6846],{"type":34,"value":6840},"Select ",{"type":28,"tag":139,"props":6842,"children":6843},{},[6844],{"type":34,"value":6845},"RE2DS-GameCube.json",{"type":34,"value":176},{"type":28,"tag":62,"props":6848,"children":6849},{},[6850,6851,6856],{"type":34,"value":6840},{"type":28,"tag":139,"props":6852,"children":6853},{},[6854],{"type":34,"value":6855},"RE2DS",{"type":34,"value":6857}," as the emulator for Resident Evil 2.",{"title":6,"searchDepth":225,"depth":225,"links":6859},[6860,6861,6862,6863],{"id":31,"depth":225,"text":35},{"id":53,"depth":225,"text":56},{"id":1043,"depth":225,"text":1046},{"id":99,"depth":225,"text":102},"content:re2ds:index.md","re2ds\u002Findex.md","re2ds\u002Findex",{"_path":6868,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":6869,"description":6870,"date":6871,"slug":6872,"category":242,"generated":13,"media":6873,"source":6882,"project_page":6882,"body":6883,"_type":231,"_id":7082,"_source":233,"_file":7083,"_stem":7084,"_extension":236},"\u002Fsephiria-companion","Sephiria Companion","A second-screen companion for the PC game Sephiria that shows a live HUD, floor map, backpack and combo tiers on the AYN Thor's second display. English and Russian interface.","2026-10-21 16:42","sephiria-companion",[6874,6876,6878,6880],{"type":16,"url":6875},"https:\u002F\u002Fraw.githubusercontent.com\u002FSibiryakovSA\u002FSephiriaCompanion\u002Fcodex\u002Finitial-import\u002Fdocs\u002Fscreenshots\u002Fhud.png",{"type":16,"url":6877},"https:\u002F\u002Fraw.githubusercontent.com\u002FSibiryakovSA\u002FSephiriaCompanion\u002Fcodex\u002Finitial-import\u002Fdocs\u002Fscreenshots\u002Fmap.png",{"type":16,"url":6879},"https:\u002F\u002Fraw.githubusercontent.com\u002FSibiryakovSA\u002FSephiriaCompanion\u002Fcodex\u002Finitial-import\u002Fdocs\u002Fscreenshots\u002Fbackpack.png",{"type":16,"url":6881},"https:\u002F\u002Fraw.githubusercontent.com\u002FSibiryakovSA\u002FSephiriaCompanion\u002Fcodex\u002Finitial-import\u002Fdocs\u002Fscreenshots\u002Fcombos.png","https:\u002F\u002Fgithub.com\u002FSibiryakovSA\u002FSephiriaCompanion",{"type":25,"children":6884,"toc":7075},[6885,6889,6894,6899,6903,6966,6971,6989,6993,7070],{"type":28,"tag":29,"props":6886,"children":6887},{"id":31},[6888],{"type":34,"value":35},{"type":28,"tag":37,"props":6890,"children":6891},{},[6892],{"type":34,"value":6893},"Sephiria Companion is a second-screen companion for the PC game Sephiria, built and tested on the AYN Thor. The game runs on the PC as usual, while the handheld's second display shows a touch interface driven by the running game's live state: health, mana, currency, experience, the floor map, the backpack and combo tiers. Other dual-screen Android handhelds may also work with a compatible PC game build running locally.",{"type":28,"tag":37,"props":6895,"children":6896},{},[6897],{"type":34,"value":6898},"The project has three parts: a C# AddOn that runs inside the game and reads its live state, a local HTTP\u002Fevent server that streams that state over localhost, and an Android WebView app that renders the companion interface on the second display. The interface supports English and Russian; item names and descriptions follow the game's language.",{"type":28,"tag":29,"props":6900,"children":6901},{"id":53},[6902],{"type":34,"value":56},{"type":28,"tag":58,"props":6904,"children":6905},{},[6906,6916,6926,6936,6946,6956],{"type":28,"tag":62,"props":6907,"children":6908},{},[6909,6914],{"type":28,"tag":139,"props":6910,"children":6911},{},[6912],{"type":34,"value":6913},"Live HUD",{"type":34,"value":6915}," — health, mana, currency, experience, dashes and potions, with Overview and Skills & effects pages and a room minimap.",{"type":28,"tag":62,"props":6917,"children":6918},{},[6919,6924],{"type":28,"tag":139,"props":6920,"children":6921},{},[6922],{"type":34,"value":6923},"Floor map",{"type":34,"value":6925}," — revealed rooms with an animated current-room highlight; tap a revealed room to travel, drag to pan the map, and use the zoom controls.",{"type":28,"tag":62,"props":6927,"children":6928},{},[6929,6934],{"type":28,"tag":139,"props":6930,"children":6931},{},[6932],{"type":34,"value":6933},"Backpack",{"type":34,"value":6935}," — a 24-slot grid with drag and drop between cells, tablet rotation, and visible bonuses and penalties; tap an item for its effects and conditions.",{"type":28,"tag":62,"props":6937,"children":6938},{},[6939,6944],{"type":28,"tag":139,"props":6940,"children":6941},{},[6942],{"type":34,"value":6943},"Combo tiers",{"type":34,"value":6945}," — artifact combos with levels; tap or hold a combo to view all its tiers.",{"type":28,"tag":62,"props":6947,"children":6948},{},[6949,6954],{"type":28,"tag":139,"props":6950,"children":6951},{},[6952],{"type":34,"value":6953},"Bilingual interface",{"type":34,"value":6955}," — English and Russian UI; item names and descriptions follow the game's language.",{"type":28,"tag":62,"props":6957,"children":6958},{},[6959,6964],{"type":28,"tag":139,"props":6960,"children":6961},{},[6962],{"type":34,"value":6963},"Live connection",{"type":34,"value":6965}," — the AddOn streams the running game's state to the companion over localhost, with a connection indicator and a Refresh button.",{"type":28,"tag":6967,"props":6968,"children":6969},"h3",{"id":1043},[6970],{"type":34,"value":1046},{"type":28,"tag":58,"props":6972,"children":6973},{},[6974,6979,6984],{"type":28,"tag":62,"props":6975,"children":6976},{},[6977],{"type":34,"value":6978},"Android 8.0 or newer on the handheld.",{"type":28,"tag":62,"props":6980,"children":6981},{},[6982],{"type":34,"value":6983},"A compatible PC version of Sephiria with its built-in AddOn loader.",{"type":28,"tag":62,"props":6985,"children":6986},{},[6987],{"type":34,"value":6988},"The game runtime and the Android app must share localhost networking.",{"type":28,"tag":29,"props":6990,"children":6991},{"id":99},[6992],{"type":34,"value":102},{"type":28,"tag":104,"props":6994,"children":6995},{},[6996,7024,7042,7059],{"type":28,"tag":62,"props":6997,"children":6998},{},[6999,7001,7007,7009,7015,7017,7023],{"type":34,"value":7000},"Download the latest release from the ",{"type":28,"tag":705,"props":7002,"children":7005},{"href":7003,"rel":7004},"https:\u002F\u002Fgithub.com\u002FSibiryakovSA\u002FSephiriaCompanion\u002Freleases\u002Flatest",[709],[7006],{"type":34,"value":3036},{"type":34,"value":7008},": ",{"type":28,"tag":43,"props":7010,"children":7012},{"className":7011},[],[7013],{"type":34,"value":7014},"SephiriaCompanion-\u003Cversion>.zip",{"type":34,"value":7016}," (the complete package with AddOns, APK and bilingual instructions) or the standalone ",{"type":28,"tag":43,"props":7018,"children":7020},{"className":7019},[],[7021],{"type":34,"value":7022},"SephiriaCompanion-\u003Cversion>.apk",{"type":34,"value":176},{"type":28,"tag":62,"props":7025,"children":7026},{},[7027,7029,7034,7036,7041],{"type":34,"value":7028},"Copy the release archive's ",{"type":28,"tag":139,"props":7030,"children":7031},{},[7032],{"type":34,"value":7033},"AddOns",{"type":34,"value":7035}," folder into the game directory, next to ",{"type":28,"tag":139,"props":7037,"children":7038},{},[7039],{"type":34,"value":7040},"Sephiria.exe",{"type":34,"value":176},{"type":28,"tag":62,"props":7043,"children":7044},{},[7045,7047,7057],{"type":34,"value":7046},"Install ",{"type":28,"tag":139,"props":7048,"children":7049},{},[7050,7052],{"type":34,"value":7051},"SephiriaCompanion-",{"type":28,"tag":7053,"props":7054,"children":7055},"version",{},[7056],{"type":34,"value":6137},{"type":34,"value":7058}," on the handheld.",{"type":28,"tag":62,"props":7060,"children":7061},{},[7062,7064,7069],{"type":34,"value":7063},"Start Sephiria, load a save, open the companion and tap ",{"type":28,"tag":139,"props":7065,"children":7066},{},[7067],{"type":34,"value":7068},"Refresh",{"type":34,"value":176},{"type":28,"tag":37,"props":7071,"children":7072},{},[7073],{"type":34,"value":7074},"Restart the game after replacing the AddOn. The current release is 0.4.2.",{"title":6,"searchDepth":225,"depth":225,"links":7076},[7077,7078,7081],{"id":31,"depth":225,"text":35},{"id":53,"depth":225,"text":56,"children":7079},[7080],{"id":1043,"depth":4514,"text":1046},{"id":99,"depth":225,"text":102},"content:sephiria-companion:index.md","sephiria-companion\u002Findex.md","sephiria-companion\u002Findex",{"_path":7086,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":7087,"description":7088,"date":7089,"slug":7090,"category":6130,"generated":13,"media":7091,"source":7098,"project_page":7099,"body":7100,"_type":231,"_id":7246,"_source":233,"_file":7247,"_stem":7248,"_extension":236},"\u002Fsquare-ds","SquareDS","An unofficial Spotify Premium and YouTube Music client with a Liquid Glass interface, adapted for the AYN Thor's dual screens.","2026-10-21 06:47","square-ds",[7092,7094,7096],{"type":16,"url":7093},"\u002Fcontent\u002Fsquare-ds\u002Fpreview.webp",{"type":16,"url":7095},"\u002Fcontent\u002Fsquare-ds\u002Fscreenshot-2.webp",{"type":16,"url":7097},"\u002Fcontent\u002Fsquare-ds\u002Fscreenshot-3.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1xb3zc1\u002Fsquareds_spotify_and_youtube_music\u002F","https:\u002F\u002Fgithub.com\u002FsrBenjamin1\u002FSquareDS",{"type":25,"children":7101,"toc":7240},[7102,7106,7111,7115,7163,7167,7195,7199],{"type":28,"tag":29,"props":7103,"children":7104},{"id":31},[7105],{"type":34,"value":35},{"type":28,"tag":37,"props":7107,"children":7108},{},[7109],{"type":34,"value":7110},"SquareDS is an unofficial fork of Square, adapted for Android devices with two independent displays and tested on the AYN Thor running its original Android firmware without root. Instead of duplicating the interface on both screens, the app separates music playback from navigation: the upper screen stays dedicated to the music player and synced lyrics, while the lower screen handles browsing, playlists, the queue, EQ, audio effects, and settings. It preserves Square's Liquid Glass design, music services, audio engine, and functionality, and is powered by a Rust core built on librespot. Compatibility with other dual-screen devices has not yet been verified.",{"type":28,"tag":29,"props":7112,"children":7113},{"id":53},[7114],{"type":34,"value":56},{"type":28,"tag":58,"props":7116,"children":7117},{},[7118,7123,7128,7133,7138,7143,7148,7153,7158],{"type":28,"tag":62,"props":7119,"children":7120},{},[7121],{"type":34,"value":7122},"Dual-screen layout: on the AYN Thor the upper display shows a permanent, expanded music player, while the lower display keeps Square's original navigation experience.",{"type":28,"tag":62,"props":7124,"children":7125},{},[7126],{"type":34,"value":7127},"Upper display: album artwork, playback controls, track title\u002Fartist\u002Fduration\u002Fprogress, synchronized lyrics with visual effects, lyrics translation, karaoke controls, song favorites, Spotify Connect, dynamic colors, and Liquid Glass effects.",{"type":28,"tag":62,"props":7129,"children":7130},{},[7131],{"type":34,"value":7132},"Lower display: Home, New, Radio, Library, and Search; albums, artists, and playlists; a persistent mini-player; and an expandable playback tools panel with playback queue, shuffle and repeat, Song Radio, equalizer, audio effects, track information, and playback settings.",{"type":28,"tag":62,"props":7134,"children":7135},{},[7136],{"type":34,"value":7137},"Spotify Premium: personal playlists and library, Spotify Connect, listening history, music discovery and recommendations, song credits.",{"type":28,"tag":62,"props":7139,"children":7140},{},[7141],{"type":34,"value":7142},"YouTube Music: music catalogue and search, optional Google account sign-in, personal playlists and albums, music videos.",{"type":28,"tag":62,"props":7144,"children":7145},{},[7146],{"type":34,"value":7147},"Playback: dynamic album artwork and Canvas support, synchronized lyrics, Song Radio and autoplay, crossfade, sleep timer, playback queue, shuffle and repeat, background playback.",{"type":28,"tag":62,"props":7149,"children":7150},{},[7151],{"type":34,"value":7152},"Audio effects: equalizer, playback speed and pitch, reverb, audio effect presets, karaoke vocal reduction, streaming quality settings.",{"type":28,"tag":62,"props":7154,"children":7155},{},[7156],{"type":34,"value":7157},"Library and offline: playlists, albums, artists, liked songs, search history, local music files, music downloads, offline playback, automatic downloads where supported.",{"type":28,"tag":62,"props":7159,"children":7160},{},[7161],{"type":34,"value":7162},"Interface: Liquid Glass materials, adjustable blur, refraction, and tint, dynamic colors, floating navigation elements, and eight languages (English, Italian, Spanish, French, German, Portuguese, Hindi, Turkish).",{"type":28,"tag":29,"props":7164,"children":7165},{"id":1043},[7166],{"type":34,"value":1046},{"type":28,"tag":58,"props":7168,"children":7169},{},[7170,7175,7180,7185,7190],{"type":28,"tag":62,"props":7171,"children":7172},{},[7173],{"type":34,"value":7174},"Android 8.0 or later (the original Square minimum requirement).",{"type":28,"tag":62,"props":7176,"children":7177},{},[7178],{"type":34,"value":7179},"An ARM64 Android device for the AYN Thor APK.",{"type":28,"tag":62,"props":7181,"children":7182},{},[7183],{"type":34,"value":7184},"Spotify Premium for Spotify playback.",{"type":28,"tag":62,"props":7186,"children":7187},{},[7188],{"type":34,"value":7189},"An internet connection for streaming and initial service configuration.",{"type":28,"tag":62,"props":7191,"children":7192},{},[7193],{"type":34,"value":7194},"A compatible Android multi-display configuration for dual-screen operation.",{"type":28,"tag":29,"props":7196,"children":7197},{"id":99},[7198],{"type":34,"value":102},{"type":28,"tag":58,"props":7200,"children":7201},{},[7202,7215,7220,7225,7230,7235],{"type":28,"tag":62,"props":7203,"children":7204},{},[7205,7206,7213],{"type":34,"value":4165},{"type":28,"tag":705,"props":7207,"children":7210},{"href":7208,"rel":7209},"https:\u002F\u002Fgithub.com\u002FsrBenjamin1\u002FSquareDS\u002Freleases\u002Flatest",[709],[7211],{"type":34,"value":7212},"GitHub Releases page",{"type":34,"value":7214},"; for AYN Thor, select the ARM64 APK when available.",{"type":28,"tag":62,"props":7216,"children":7217},{},[7218],{"type":34,"value":7219},"Enable installation from the appropriate source in Android settings, then install the downloaded APK.",{"type":28,"tag":62,"props":7221,"children":7222},{},[7223],{"type":34,"value":7224},"Install and open the app, then complete the initial Spotify or YouTube Music setup.",{"type":28,"tag":62,"props":7226,"children":7227},{},[7228],{"type":34,"value":7229},"Open Settings and enable the AYN Thor \u002F dual-screen option.",{"type":28,"tag":62,"props":7231,"children":7232},{},[7233],{"type":34,"value":7234},"Verify that the player appears on the upper display and navigation appears on the lower display.",{"type":28,"tag":62,"props":7236,"children":7237},{},[7238],{"type":34,"value":7239},"At first launch the app asks which music service to use: YouTube Music playback works without signing in (Google account authentication is optional for personal library features), while Spotify requires a Premium account and, per the original Square setup, registering a Spotify developer application and configuring its client ID.",{"title":6,"searchDepth":225,"depth":225,"links":7241},[7242,7243,7244,7245],{"id":31,"depth":225,"text":35},{"id":53,"depth":225,"text":56},{"id":1043,"depth":225,"text":1046},{"id":99,"depth":225,"text":102},"content:square-ds:index.md","square-ds\u002Findex.md","square-ds\u002Findex",{"_path":7250,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":7251,"description":7252,"date":7253,"slug":7254,"category":5422,"generated":13,"media":7255,"source":7256,"project_page":7257,"body":7258,"_type":231,"_id":7380,"_source":233,"_file":7381,"_stem":7382,"_extension":236},"\u002Frerac-for-android-dual-screen-mod","ReRAC for Android — Dual-Screen Mod","A dual-screen Android adaptation of Ratchet & Clank (2002) built for the AYN Thor.","2026-10-19 06:46","rerac-for-android-dual-screen-mod",[],"https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1x9la7y\u002Fratchet_and_clank_1_dual_screen_mod_rerac_fork\u002F","https:\u002F\u002Fgithub.com\u002FHighDrexler\u002Frerac-Android-APK-and-Ayn-Thor-Dual-Screen-Mod-Beta-",{"type":25,"children":7259,"toc":7374},[7260,7264,7269,7273,7316,7320,7338,7342],{"type":28,"tag":29,"props":7261,"children":7262},{"id":31},[7263],{"type":34,"value":35},{"type":28,"tag":37,"props":7265,"children":7266},{},[7267],{"type":34,"value":7268},"ReRAC for Android is a dual-screen adaptation of Ratchet & Clank (2002) for Android and the AYN Thor, based on the ReRAC project. The published ReRAC-Mobile-v1.0.zip is the verified ReRAC Mobile v16 build and contains the signed APK, not game data. No copyrighted game content is supplied, and saves are stored separately from imported game data. Android gameplay and cutscene performance can vary with device and graphics drivers.",{"type":28,"tag":29,"props":7270,"children":7271},{"id":53},[7272],{"type":34,"value":56},{"type":28,"tag":58,"props":7274,"children":7275},{},[7276,7281,7286,7291,7296,7301,7306,7311],{"type":28,"tag":62,"props":7277,"children":7278},{},[7279],{"type":34,"value":7280},"Optional companion display for maps, menus, weapons, gadgets and quick selection, with gameplay continuing on the main screen.",{"type":28,"tag":62,"props":7282,"children":7283},{},[7284],{"type":34,"value":7285},"Touchscreen and analog-stick weapon Quick Select, including secondary-screen interaction.",{"type":28,"tag":62,"props":7287,"children":7288},{},[7289],{"type":34,"value":7290},"Native-style PS2 menus with game icons, fonts and static-screen effects.",{"type":28,"tag":62,"props":7292,"children":7293},{},[7294],{"type":34,"value":7295},"Optimized mobile control preset and optional Standard DualShock-style control layout.",{"type":28,"tag":62,"props":7297,"children":7298},{},[7299],{"type":34,"value":7300},"Reposition, resize and hide controls; save settings separately for each layout.",{"type":28,"tag":62,"props":7302,"children":7303},{},[7304],{"type":34,"value":7305},"Dedicated hold-to-Crouch and sequenced Crouch + Jump controls.",{"type":28,"tag":62,"props":7307,"children":7308},{},[7309],{"type":34,"value":7310},"Physical-controller support, configurable camera input, and adjustable rendering resolution.",{"type":28,"tag":62,"props":7312,"children":7313},{},[7314],{"type":34,"value":7315},"Android ISO\u002Fgame-data importer, launcher, and mobile cutscene-processing improvements.",{"type":28,"tag":29,"props":7317,"children":7318},{"id":1043},[7319],{"type":34,"value":1046},{"type":28,"tag":58,"props":7321,"children":7322},{},[7323,7328,7333],{"type":28,"tag":62,"props":7324,"children":7325},{},[7326],{"type":34,"value":7327},"AYN Thor handheld — the dual-screen mod has only been tested on AYN Thor.",{"type":28,"tag":62,"props":7329,"children":7330},{},[7331],{"type":34,"value":7332},"A supported original USA v1.00 (SCUS-97199) Ratchet & Clank ISO or compatible extracted game-data ZIP.",{"type":28,"tag":62,"props":7334,"children":7335},{},[7336],{"type":34,"value":7337},"No copyrighted game content is supplied.",{"type":28,"tag":29,"props":7339,"children":7340},{"id":99},[7341],{"type":34,"value":102},{"type":28,"tag":58,"props":7343,"children":7344},{},[7345,7359,7364,7369],{"type":28,"tag":62,"props":7346,"children":7347},{},[7348,7350,7357],{"type":34,"value":7349},"Download the ",{"type":28,"tag":705,"props":7351,"children":7354},{"href":7352,"rel":7353},"https:\u002F\u002Fgithub.com\u002FHighDrexler\u002Frerac-Android-APK-and-Ayn-Thor-Dual-Screen-Mod-Beta-\u002Freleases\u002Flatest",[709],[7355],{"type":34,"value":7356},"latest release (v1.0 Beta)",{"type":34,"value":7358}," and install the APK from the ZIP.",{"type":28,"tag":62,"props":7360,"children":7361},{},[7362],{"type":34,"value":7363},"In the launcher, import a supported original USA v1.00 (SCUS-97199) Ratchet & Clank ISO or compatible extracted game-data ZIP.",{"type":28,"tag":62,"props":7365,"children":7366},{},[7367],{"type":34,"value":7368},"Choose the rendering resolution and enable Dual screen in Display settings for a companion display.",{"type":28,"tag":62,"props":7370,"children":7371},{},[7372],{"type":34,"value":7373},"Use Setup in-game to select and customize the mobile controls.",{"title":6,"searchDepth":225,"depth":225,"links":7375},[7376,7377,7378,7379],{"id":31,"depth":225,"text":35},{"id":53,"depth":225,"text":56},{"id":1043,"depth":225,"text":1046},{"id":99,"depth":225,"text":102},"content:rerac-for-android-dual-screen-mod:index.md","rerac-for-android-dual-screen-mod\u002Findex.md","rerac-for-android-dual-screen-mod\u002Findex",{"_path":7384,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":7385,"description":7386,"date":7387,"slug":7388,"category":242,"generated":13,"media":7389,"source":7396,"project_page":7397,"body":7398,"_type":231,"_id":7818,"_source":233,"_file":7819,"_stem":7820,"_extension":236},"\u002Fgba-duo","GBA Duo","Play GBA, GBC and GB games on the top screen with a live, customizable companion on the bottom.","2026-10-16 07:30","gba-duo",[7390,7392,7394],{"type":16,"url":7391},"\u002Fcontent\u002Fgba-duo\u002Fpreview.webp",{"type":16,"url":7393},"\u002Fcontent\u002Fgba-duo\u002Fscreenshot-2.webp",{"type":16,"url":7395},"\u002Fcontent\u002Fgba-duo\u002Fscreenshot-3.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1x74l9b\u002Fbuild_your_own_gba_companion_with_gba_duo\u002F","https:\u002F\u002Fgithub.com\u002Fkhumam\u002Fgba-duo",{"type":25,"children":7399,"toc":7812},[7400,7404,7409,7413,7556,7560,7754,7758,7783],{"type":28,"tag":29,"props":7401,"children":7402},{"id":31},[7403],{"type":34,"value":35},{"type":28,"tag":37,"props":7405,"children":7406},{},[7407],{"type":34,"value":7408},"GBADuo is a Game Boy Advance, Game Boy Color and Game Boy player for dual-screen Android handhelds, made for and tested on the AYN Thor. The game runs on the top screen; the bottom screen is a companion built from a pack that reads the game's memory as you play and shows what matters, like your party and bag in Pokémon FireRed or your rucksack and friendships in Harvest Moon. Packs are plain files (a layout, CSS and a Lua script), so anyone can build one for a favorite game. They can read live game values, display guides, extract and render in-game assets, and — with a setting enabled — modify memory in real time. It should run on any dual-screen Android 11+ device (arm64), though other devices are not yet tested. GBADuo has no accounts, ads or analytics and asks for no permissions: it never goes online, and your games, saves and packs never leave your device.",{"type":28,"tag":29,"props":7410,"children":7411},{"id":99},[7412],{"type":34,"value":102},{"type":28,"tag":58,"props":7414,"children":7415},{},[7416,7436,7441,7475,7487,7514,7526,7531,7543],{"type":28,"tag":62,"props":7417,"children":7418},{},[7419,7421,7427,7428,7434],{"type":34,"value":7420},"Download the latest ",{"type":28,"tag":43,"props":7422,"children":7424},{"className":7423},[],[7425],{"type":34,"value":7426},"gbaduo-\u003Cversion>.apk",{"type":34,"value":1981},{"type":28,"tag":705,"props":7429,"children":7432},{"href":7430,"rel":7431},"https:\u002F\u002Fgithub.com\u002Fkhumam\u002Fgba-duo\u002Freleases\u002Flatest",[709],[7433],{"type":34,"value":712},{"type":34,"value":7435}," onto your device.",{"type":28,"tag":62,"props":7437,"children":7438},{},[7439],{"type":34,"value":7440},"Open the APK; if Android asks, allow your browser or file manager to install apps.",{"type":28,"tag":62,"props":7442,"children":7443},{},[7444,7446,7451,7453,7459,7460,7466,7467,7473],{"type":34,"value":7445},"Open GBADuo and tap ",{"type":28,"tag":139,"props":7447,"children":7448},{},[7449],{"type":34,"value":7450},"+",{"type":34,"value":7452}," to add a ROM folder. Every ",{"type":28,"tag":43,"props":7454,"children":7456},{"className":7455},[],[7457],{"type":34,"value":7458},".gba",{"type":34,"value":1499},{"type":28,"tag":43,"props":7461,"children":7463},{"className":7462},[],[7464],{"type":34,"value":7465},".gbc",{"type":34,"value":1475},{"type":28,"tag":43,"props":7468,"children":7470},{"className":7469},[],[7471],{"type":34,"value":7472},".gb",{"type":34,"value":7474}," file in it shows up in your library.",{"type":28,"tag":62,"props":7476,"children":7477},{},[7478,7480,7485],{"type":34,"value":7479},"You can add more folders, or remove one, under ",{"type":28,"tag":139,"props":7481,"children":7482},{},[7483],{"type":34,"value":7484},"ROM folders",{"type":34,"value":7486},"; removing a folder never deletes its files.",{"type":28,"tag":62,"props":7488,"children":7489},{},[7490,7492,7498,7500,7505,7507,7512],{"type":34,"value":7491},"To use a companion, download a pack's ",{"type":28,"tag":43,"props":7493,"children":7495},{"className":7494},[],[7496],{"type":34,"value":7497},".zip",{"type":34,"value":7499}," from its releases and add it with ",{"type":28,"tag":139,"props":7501,"children":7502},{},[7503],{"type":34,"value":7504},"⋮ > Import pack…",{"type":34,"value":7506},"; tap ",{"type":28,"tag":139,"props":7508,"children":7509},{},[7510],{"type":34,"value":7511},"⋮",{"type":34,"value":7513}," next to a game to choose which pack it uses, and each game remembers its own.",{"type":28,"tag":62,"props":7515,"children":7516},{},[7517,7519,7524],{"type":34,"value":7518},"To keep a copy of your saves in a folder you choose (SD card, a synced folder), use ",{"type":28,"tag":139,"props":7520,"children":7521},{},[7522],{"type":34,"value":7523},"Settings > Save folder",{"type":34,"value":7525},"; back up your old saves first.",{"type":28,"tag":62,"props":7527,"children":7528},{},[7529],{"type":34,"value":7530},"No games are included: use your own legally dumped ROMs.",{"type":28,"tag":62,"props":7532,"children":7533},{},[7534,7536,7541],{"type":34,"value":7535},"GBADuo doesn't check for updates: download the newer APK from the ",{"type":28,"tag":705,"props":7537,"children":7539},{"href":7430,"rel":7538},[709],[7540],{"type":34,"value":712},{"type":34,"value":7542}," and install it over the old one; your saves stay.",{"type":28,"tag":62,"props":7544,"children":7545},{},[7546,7548,7555],{"type":34,"value":7547},"Full docs and setup guide: ",{"type":28,"tag":705,"props":7549,"children":7552},{"href":7550,"rel":7551},"https:\u002F\u002Fgbaduo.com",[709],[7553],{"type":34,"value":7554},"gbaduo.com",{"type":34,"value":176},{"type":28,"tag":29,"props":7557,"children":7558},{"id":53},[7559],{"type":34,"value":56},{"type":28,"tag":58,"props":7561,"children":7562},{},[7563,7593,7603,7613,7623,7633,7643,7653,7663,7680,7690,7700,7717,7727,7737],{"type":28,"tag":62,"props":7564,"children":7565},{},[7566,7571,7573,7577,7579,7584,7586,7591],{"type":28,"tag":139,"props":7567,"children":7568},{},[7569],{"type":34,"value":7570},"Packs per game",{"type":34,"value":7572}," - tap ",{"type":28,"tag":139,"props":7574,"children":7575},{},[7576],{"type":34,"value":7511},{"type":34,"value":7578}," next to a game in your library to choose its companion pack, or ",{"type":28,"tag":139,"props":7580,"children":7581},{},[7582],{"type":34,"value":7583},"Import pack…",{"type":34,"value":7585}," to add one from a ",{"type":28,"tag":43,"props":7587,"children":7589},{"className":7588},[],[7590],{"type":34,"value":7497},{"type":34,"value":7592},"; each game remembers its own pack.",{"type":28,"tag":62,"props":7594,"children":7595},{},[7596,7601],{"type":28,"tag":139,"props":7597,"children":7598},{},[7599],{"type":34,"value":7600},"Live",{"type":34,"value":7602}," - the pack's Lua script reads the game's memory several times a second, so the screen follows along as you play.",{"type":28,"tag":62,"props":7604,"children":7605},{},[7606,7611],{"type":28,"tag":139,"props":7607,"children":7608},{},[7609],{"type":34,"value":7610},"Touch",{"type":34,"value":7612}," - tabs, buttons and pages you can tap through; the controller keeps driving the game whichever screen has focus.",{"type":28,"tag":62,"props":7614,"children":7615},{},[7616,7621],{"type":28,"tag":139,"props":7617,"children":7618},{},[7619],{"type":34,"value":7620},"Auto-opening pages",{"type":34,"value":7622}," - a pack can switch pages when something happens in the game, like FireRed's battle page opening when a battle starts and closing when it ends.",{"type":28,"tag":62,"props":7624,"children":7625},{},[7626,7631],{"type":28,"tag":139,"props":7627,"children":7628},{},[7629],{"type":34,"value":7630},"In-game assets",{"type":34,"value":7632}," - a pack can extract and render in-game assets (icons, maps, sprites) inside its layout.",{"type":28,"tag":62,"props":7634,"children":7635},{},[7636,7641],{"type":28,"tag":139,"props":7637,"children":7638},{},[7639],{"type":34,"value":7640},"Memory manipulation",{"type":34,"value":7642}," - a pack can modify memory values in real time, letting you build interactive mechanics; it must be manually enabled in settings, as modifying memory can corrupt game states if done incorrectly.",{"type":28,"tag":62,"props":7644,"children":7645},{},[7646,7651],{"type":28,"tag":139,"props":7647,"children":7648},{},[7649],{"type":34,"value":7650},"Save states",{"type":34,"value":7652}," - 9 slots per game, each showing when it was saved.",{"type":28,"tag":62,"props":7654,"children":7655},{},[7656,7661],{"type":28,"tag":139,"props":7657,"children":7658},{},[7659],{"type":34,"value":7660},"In-game saves",{"type":34,"value":7662}," - kept per game, next to its save states.",{"type":28,"tag":62,"props":7664,"children":7665},{},[7666,7671,7673,7679],{"type":28,"tag":139,"props":7667,"children":7668},{},[7669],{"type":34,"value":7670},"Save folder",{"type":34,"value":7672}," - optionally mirror every game's saves to a folder you pick (SD card, a synced folder), so backups and moving to another device are file copies; if a save changed in both places, the newer one is kept and the other is saved next to it as ",{"type":28,"tag":43,"props":7674,"children":7676},{"className":7675},[],[7677],{"type":34,"value":7678},"game.sav.conflict-\u003Ctime>",{"type":34,"value":176},{"type":28,"tag":62,"props":7681,"children":7682},{},[7683,7688],{"type":28,"tag":139,"props":7684,"children":7685},{},[7686],{"type":34,"value":7687},"RetroAchievements",{"type":34,"value":7689}," - softcore mode is supported.",{"type":28,"tag":62,"props":7691,"children":7692},{},[7693,7698],{"type":28,"tag":139,"props":7694,"children":7695},{},[7696],{"type":34,"value":7697},"Launcher intent",{"type":34,"value":7699}," - launch games directly from third-party frontends\u002Flaunchers (some launchers may require minor setup).",{"type":28,"tag":62,"props":7701,"children":7702},{},[7703,7708,7710,7715],{"type":28,"tag":139,"props":7704,"children":7705},{},[7706],{"type":34,"value":7707},"Fast-forward",{"type":34,"value":7709}," - hold ",{"type":28,"tag":139,"props":7711,"children":7712},{},[7713],{"type":34,"value":7714},"R2",{"type":34,"value":7716},"; 2x, 3x or 4x, picked in the menu.",{"type":28,"tag":62,"props":7718,"children":7719},{},[7720,7725],{"type":28,"tag":139,"props":7721,"children":7722},{},[7723],{"type":34,"value":7724},"Shaders",{"type":34,"value":7726}," - Off, GBA Color, LCD Grid, Scanlines and Scale2x.",{"type":28,"tag":62,"props":7728,"children":7729},{},[7730,7735],{"type":28,"tag":139,"props":7731,"children":7732},{},[7733],{"type":34,"value":7734},"Swap A\u002FB",{"type":34,"value":7736}," - flips the A and B buttons if they feel the wrong way round.",{"type":28,"tag":62,"props":7738,"children":7739},{},[7740,7741,7746,7747,7752],{"type":34,"value":169},{"type":28,"tag":139,"props":7742,"children":7743},{},[7744],{"type":34,"value":7745},"L2",{"type":34,"value":1559},{"type":28,"tag":139,"props":7748,"children":7749},{},[7750],{"type":34,"value":7751},"BACK",{"type":34,"value":7753}," in a game for the menu: resume, save state, load state, fast-forward speed, shader, swap A\u002FB and quit.",{"type":28,"tag":29,"props":7755,"children":7756},{"id":1906},[7757],{"type":34,"value":1909},{"type":28,"tag":37,"props":7759,"children":7760},{},[7761,7763,7770,7772,7777,7778,7782],{"type":34,"value":7762},"Companion packs live in the ",{"type":28,"tag":705,"props":7764,"children":7767},{"href":7765,"rel":7766},"https:\u002F\u002Fgithub.com\u002Fkhumam\u002Fgba-duo-companions",[709],[7768],{"type":34,"value":7769},"gba-duo-companions",{"type":34,"value":7771}," repository. Download a pack's ",{"type":28,"tag":43,"props":7773,"children":7775},{"className":7774},[],[7776],{"type":34,"value":7497},{"type":34,"value":7499},{"type":28,"tag":139,"props":7779,"children":7780},{},[7781],{"type":34,"value":7504},{"type":34,"value":176},{"type":28,"tag":58,"props":7784,"children":7785},{},[7786,7799],{"type":28,"tag":62,"props":7787,"children":7788},{},[7789,7791,7797],{"type":34,"value":7790},"Pokémon FireRed (US) - ",{"type":28,"tag":43,"props":7792,"children":7794},{"className":7793},[],[7795],{"type":34,"value":7796},"pokemon-firered-companion",{"type":34,"value":7798},": party, bag pockets, trainer card, and a battle page with both Pokémon's live stats.",{"type":28,"tag":62,"props":7800,"children":7801},{},[7802,7804,7810],{"type":34,"value":7803},"Harvest Moon: Friends of Mineral Town (EU\u002FUS) - ",{"type":28,"tag":43,"props":7805,"children":7807},{"className":7806},[],[7808],{"type":34,"value":7809},"harvest-moon-fomt-companion",{"type":34,"value":7811},": gold, date and time, stamina, held tool and rucksack, affection, and Harvest Sprites' work.",{"title":6,"searchDepth":225,"depth":225,"links":7813},[7814,7815,7816,7817],{"id":31,"depth":225,"text":35},{"id":99,"depth":225,"text":102},{"id":53,"depth":225,"text":56},{"id":1906,"depth":225,"text":1909},"content:gba-duo:index.md","gba-duo\u002Findex.md","gba-duo\u002Findex",{"_path":7822,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":7823,"description":7824,"date":7825,"slug":7826,"category":12,"generated":13,"media":7827,"source":7830,"project_page":7831,"body":7832,"_type":231,"_id":7950,"_source":233,"_file":7951,"_stem":7952,"_extension":236},"\u002Fthor-rts","Thor RTS","A native Android port of Command & Conquer: Generals Zero Hour for the AYN Thor, with controller support and a two-screen command deck.","2026-10-15 09:09","thor-rts",[7828],{"type":16,"url":7829},"\u002Fcontent\u002Fthor-rts\u002Fpreview.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1x61fci\u002Fgenerals_zero_hour_ported_to_ayn_thor\u002F","https:\u002F\u002Fgithub.com\u002FROM-HackZ\u002Fgenerals-zero-hour-ayn-thor",{"type":25,"children":7833,"toc":7944},[7834,7838,7843,7847,7885,7889,7912,7916],{"type":28,"tag":29,"props":7835,"children":7836},{"id":31},[7837],{"type":34,"value":35},{"type":28,"tag":37,"props":7839,"children":7840},{},[7841],{"type":34,"value":7842},"Thor RTS is a native Android port of Command & Conquer: Generals Zero Hour built for the AYN Thor's two screens. The battlefield runs on the top screen, while the bottom screen shows the minimap, selected units, building commands, production queues and General's Powers. You can play with sticks and buttons, touch, or both. The game runs natively on Android with the original 30 Hz simulation. No game files are included — you need your own PC copy of Zero Hour; the Steam edition is the one tested so far. This is a development preview, currently 0.1.0-alpha.5.",{"type":28,"tag":29,"props":7844,"children":7845},{"id":53},[7846],{"type":34,"value":56},{"type":28,"tag":58,"props":7848,"children":7849},{},[7850,7855,7860,7865,7870,7875,7880],{"type":28,"tag":62,"props":7851,"children":7852},{},[7853],{"type":34,"value":7854},"Full controller support, modeled on how Age of Empires Definitive Edition works on Xbox.",{"type":28,"tag":62,"props":7856,"children":7857},{},[7858],{"type":34,"value":7859},"Dual-screen support: the bottom screen controls the minimap, action selection and more, leaving the top screen for the battlefield.",{"type":28,"tag":62,"props":7861,"children":7862},{},[7863],{"type":34,"value":7864},"Full touch screen support on both screens.",{"type":28,"tag":62,"props":7866,"children":7867},{},[7868],{"type":34,"value":7869},"On the main screen: pinch to zoom, rotate, single-finger rectangle selection and two-finger camera pan.",{"type":28,"tag":62,"props":7871,"children":7872},{},[7873],{"type":34,"value":7874},"Command wheel (RT), control groups (LB) and minimap control (RB).",{"type":28,"tag":62,"props":7876,"children":7877},{},[7878],{"type":34,"value":7879},"Bottom screen shows health, veterancy, rank progress, construction progress, reinforcement countdowns and active toggles such as Overcharge.",{"type":28,"tag":62,"props":7881,"children":7882},{},[7883],{"type":34,"value":7884},"Runs natively on Android with the original 30 Hz simulation.",{"type":28,"tag":29,"props":7886,"children":7887},{"id":1043},[7888],{"type":34,"value":1046},{"type":28,"tag":58,"props":7890,"children":7891},{},[7892,7897,7902,7907],{"type":28,"tag":62,"props":7893,"children":7894},{},[7895],{"type":34,"value":7896},"AYN Thor handheld running Android 13.",{"type":28,"tag":62,"props":7898,"children":7899},{},[7900],{"type":34,"value":7901},"Your own PC copy of Command & Conquer: Generals Zero Hour (Steam edition tested). Keep the whole folder, including ZH_Generals.",{"type":28,"tag":62,"props":7903,"children":7904},{},[7905],{"type":34,"value":7906},"A desktop computer to run the installer: Windows 10\u002F11 x64, Apple Silicon Mac (macOS 13+), Intel Mac (macOS 13+), Ubuntu\u002FDebian x64, or another Linux desktop (x64).",{"type":28,"tag":62,"props":7908,"children":7909},{},[7910],{"type":34,"value":7911},"USB data cable and USB debugging enabled on the Thor.",{"type":28,"tag":29,"props":7913,"children":7914},{"id":99},[7915],{"type":34,"value":102},{"type":28,"tag":58,"props":7917,"children":7918},{},[7919,7924,7929,7934,7939],{"type":28,"tag":62,"props":7920,"children":7921},{},[7922],{"type":34,"value":7923},"Install Zero Hour on your PC. In Steam, use Manage → Browse local files. Keep the whole folder, including ZH_Generals. On a Mac, bring that folder over from your PC.",{"type":28,"tag":62,"props":7925,"children":7926},{},[7927],{"type":34,"value":7928},"Download the desktop installer for your computer and the alpha.5 APK.",{"type":28,"tag":62,"props":7930,"children":7931},{},[7932],{"type":34,"value":7933},"Connect the Thor: enable USB debugging, connect a USB data cable and accept the debugging prompt on the Thor.",{"type":28,"tag":62,"props":7935,"children":7936},{},[7937],{"type":34,"value":7938},"Browse to the game folder. Under Advanced → Local APK, choose the alpha.5 APK. Refresh the device list and choose the Thor. The installer can download ADB if you need it.",{"type":28,"tag":62,"props":7940,"children":7941},{},[7942],{"type":34,"value":7943},"Press Install on Thor. Once it finishes, open Thor RTS on the handheld and press Play.",{"title":6,"searchDepth":225,"depth":225,"links":7945},[7946,7947,7948,7949],{"id":31,"depth":225,"text":35},{"id":53,"depth":225,"text":56},{"id":1043,"depth":225,"text":1046},{"id":99,"depth":225,"text":102},"content:thor-rts:index.md","thor-rts\u002Findex.md","thor-rts\u002Findex",{"_path":7954,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":7955,"description":7956,"date":7957,"slug":7958,"category":12,"generated":13,"media":7959,"source":7962,"project_page":7962,"body":7963,"_type":231,"_id":8394,"_source":233,"_file":8395,"_stem":8396,"_extension":236},"\u002Fzelda-wind-waker-hd","The Legend of Zelda: The Wind Waker HD","A native Android port of The Wind Waker HD (Wii U) that runs the game on the AYN Thor's second screen as a touch GamePad.","2026-10-15 06:04","zelda-wind-waker-hd",[7960],{"type":245,"url":7961},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=bkn6ne7iINI","https:\u002F\u002Fgithub.com\u002FGreenNaugahyde\u002FZeldaWWHDRecompAndroid",{"type":25,"children":7964,"toc":8387},[7965,7969,7974,8002,8006,8235,8241,8274,8278,8339,8343],{"type":28,"tag":29,"props":7966,"children":7967},{"id":31},[7968],{"type":34,"value":35},{"type":28,"tag":37,"props":7970,"children":7971},{},[7972],{"type":34,"value":7973},"The Legend of Zelda: The Wind Waker HD is a native Android port of the Wii U game, built on the ZeldaWWHDRecomp project. The game's PowerPC code is recompiled to native ARM, the Wii U system libraries it uses are reimplemented, and its graphics run directly on Vulkan — there is no emulator in between. On dual-screen devices like the AYN Thor the GamePad picture goes to the second screen by itself, with touch, while the main screen shows the TV picture.",{"type":28,"tag":37,"props":7975,"children":7976},{},[7977,7979,7985,7986,7992,7994,8000],{"type":34,"value":7978},"The app contains no game files. You bring your own copy of the game — a disc image (",{"type":28,"tag":43,"props":7980,"children":7982},{"className":7981},[],[7983],{"type":34,"value":7984},".wud",{"type":34,"value":1559},{"type":28,"tag":43,"props":7987,"children":7989},{"className":7988},[],[7990],{"type":34,"value":7991},".wux",{"type":34,"value":7993},") dumped from your own Wii U disc with its keys, or a Cemu archive (",{"type":28,"tag":43,"props":7995,"children":7997},{"className":7996},[],[7998],{"type":34,"value":7999},".wua",{"type":34,"value":8001},") made from it. On the first start the app extracts the game and recompiles its code on your device with LLVM; later starts load the compiled code in about half a second.",{"type":28,"tag":29,"props":8003,"children":8004},{"id":53},[8005],{"type":34,"value":56},{"type":28,"tag":58,"props":8007,"children":8008},{},[8009,8019,8036,8046,8056,8066,8076,8086,8096,8106,8116,8126,8136,8146,8156,8166,8175,8185,8195,8205,8215,8225],{"type":28,"tag":62,"props":8010,"children":8011},{},[8012,8017],{"type":28,"tag":139,"props":8013,"children":8014},{},[8015],{"type":34,"value":8016},"Dual-screen (AYN Thor):",{"type":34,"value":8018}," the GamePad picture goes to the second screen by itself, with touch, and the main screen shows the TV picture; Graphics › GamePad screen switches back to the screen layouts.",{"type":28,"tag":62,"props":8020,"children":8021},{},[8022,8027,8029,8034],{"type":28,"tag":139,"props":8023,"children":8024},{},[8025],{"type":34,"value":8026},"APK without game code:",{"type":34,"value":8028}," on the first start the app extracts the game from your disc image or ",{"type":28,"tag":43,"props":8030,"children":8032},{"className":8031},[],[8033],{"type":34,"value":7999},{"type":34,"value":8035}," and recompiles its code on the device with LLVM (once; a few minutes on a fast phone). The work continues in the background with a progress notification and resumes where it stopped if the app is closed.",{"type":28,"tag":62,"props":8037,"children":8038},{},[8039,8044],{"type":28,"tag":139,"props":8040,"children":8041},{},[8042],{"type":34,"value":8043},"Frame generation",{"type":34,"value":8045}," with Lossless Scaling's LSFG 3: 60, 90 or 120 fps.",{"type":28,"tag":62,"props":8047,"children":8048},{},[8049,8054],{"type":28,"tag":139,"props":8050,"children":8051},{},[8052],{"type":34,"value":8053},"60 fps by frame interpolation:",{"type":34,"value":8055}," the game draws an extra frame between its 30 steps a second; 120 fps on screens with 120 Hz or more.",{"type":28,"tag":62,"props":8057,"children":8058},{},[8059,8064],{"type":28,"tag":139,"props":8060,"children":8061},{},[8062],{"type":34,"value":8063},"In-game options menu",{"type":34,"value":8065}," in the style of the game's own menus, with tabs for saves, the game, graphics, mods and controls, usable by touch and with a controller.",{"type":28,"tag":62,"props":8067,"children":8068},{},[8069,8074],{"type":28,"tag":139,"props":8070,"children":8071},{},[8072],{"type":34,"value":8073},"Save states:",{"type":34,"value":8075}," five slots with a picture, time and place of each state, and the controls it was saved with.",{"type":28,"tag":62,"props":8077,"children":8078},{},[8079,8084],{"type":28,"tag":139,"props":8080,"children":8081},{},[8082],{"type":34,"value":8083},"Import and export",{"type":34,"value":8085}," of the game save and the save states to a folder of your choice.",{"type":28,"tag":62,"props":8087,"children":8088},{},[8089,8094],{"type":28,"tag":139,"props":8090,"children":8091},{},[8092],{"type":34,"value":8093},"Performance overlay:",{"type":34,"value":8095}," frame rate, frame time, CPU and GPU load, temperatures, the graphics settings in use, the SoC, GPU and GPU driver.",{"type":28,"tag":62,"props":8097,"children":8098},{},[8099,8104],{"type":28,"tag":139,"props":8100,"children":8101},{},[8102],{"type":34,"value":8103},"USA, European and Japanese versions",{"type":34,"value":8105}," of the game, with all features.",{"type":28,"tag":62,"props":8107,"children":8108},{},[8109,8114],{"type":28,"tag":139,"props":8110,"children":8111},{},[8112],{"type":34,"value":8113},"Game language",{"type":34,"value":8115}," from your copy (USA: English, French, Spanish; Europe: also German and Italian; Japan: Japanese).",{"type":28,"tag":62,"props":8117,"children":8118},{},[8119,8124],{"type":28,"tag":139,"props":8120,"children":8121},{},[8122],{"type":34,"value":8123},"Custom GPU drivers",{"type":34,"value":8125}," on Adreno GPUs: Mesa Turnip or newer Qualcomm drivers.",{"type":28,"tag":62,"props":8127,"children":8128},{},[8129,8134],{"type":28,"tag":139,"props":8130,"children":8131},{},[8132],{"type":34,"value":8133},"Widescreen:",{"type":34,"value":8135}," the game renders at the screen's shape and shows more to the sides.",{"type":28,"tag":62,"props":8137,"children":8138},{},[8139,8144],{"type":28,"tag":139,"props":8140,"children":8141},{},[8142],{"type":34,"value":8143},"The Wii U's sun and haze:",{"type":34,"value":8145}," the sun's corona and lens flare, the haze in the distance and the bloom around bright light.",{"type":28,"tag":62,"props":8147,"children":8148},{},[8149,8154],{"type":28,"tag":139,"props":8150,"children":8151},{},[8152],{"type":34,"value":8153},"Display options:",{"type":34,"value":8155}," rendering resolution from 0.5× to 3×, aspect ratio, and screen layouts for the TV and GamePad pictures.",{"type":28,"tag":62,"props":8157,"children":8158},{},[8159,8164],{"type":28,"tag":139,"props":8160,"children":8161},{},[8162],{"type":34,"value":8163},"On-screen controls",{"type":34,"value":8165}," for the whole GamePad, which hide while a controller is in use.",{"type":28,"tag":62,"props":8167,"children":8168},{},[8169,8173],{"type":28,"tag":139,"props":8170,"children":8171},{},[8172],{"type":34,"value":1773},{"type":34,"value":8174}," with the device's motion sensors or a controller's.",{"type":28,"tag":62,"props":8176,"children":8177},{},[8178,8183],{"type":28,"tag":139,"props":8179,"children":8180},{},[8181],{"type":34,"value":8182},"Rumble",{"type":34,"value":8184}," on the controller in use, or on the device while playing by touch.",{"type":28,"tag":62,"props":8186,"children":8187},{},[8188,8193],{"type":28,"tag":139,"props":8189,"children":8190},{},[8191],{"type":34,"value":8192},"Gameplay mods:",{"type":34,"value":8194}," climb any wall, direct right-stick camera, first person on R3, quick doors, fast scene changes.",{"type":28,"tag":62,"props":8196,"children":8197},{},[8198,8203],{"type":28,"tag":139,"props":8199,"children":8200},{},[8201],{"type":34,"value":8202},"Faster running and swimming:",{"type":34,"value":8204}," Link runs and swims 1.25 up to 4 times as fast.",{"type":28,"tag":62,"props":8206,"children":8207},{},[8208,8213],{"type":28,"tag":139,"props":8209,"children":8210},{},[8211],{"type":34,"value":8212},"Fast forward:",{"type":34,"value":8214}," hold ZR (R2) to run cutscenes and dialogues faster.",{"type":28,"tag":62,"props":8216,"children":8217},{},[8218,8223],{"type":28,"tag":139,"props":8219,"children":8220},{},[8221],{"type":34,"value":8222},"Crash logs:",{"type":34,"value":8224}," if the game crashes, the next start offers its log in Android's share menu for a bug report.",{"type":28,"tag":62,"props":8226,"children":8227},{},[8228,8233],{"type":28,"tag":139,"props":8229,"children":8230},{},[8231],{"type":34,"value":8232},"No internet access:",{"type":34,"value":8234}," the app doesn't request it, and its manifest explicitly excludes it.",{"type":28,"tag":29,"props":8236,"children":8238},{"id":8237},"enhanced-fork",[8239],{"type":34,"value":8240},"Enhanced fork",{"type":28,"tag":37,"props":8242,"children":8243},{},[8244,8256,8258,8264,8266,8272],{"type":28,"tag":705,"props":8245,"children":8248},{"href":8246,"rel":8247},"https:\u002F\u002Fgithub.com\u002FSSunnKing\u002FZeldaWWHDRecompAndroid---ENHANCED",[709],[8249,8251],{"type":34,"value":8250},"SSunnKing's ",{"type":28,"tag":139,"props":8252,"children":8253},{},[8254],{"type":34,"value":8255},"Wind Waker HD Recompiled — Android Enhanced",{"type":34,"value":8257}," is a fork of this Android port with better touch controls, graphics and performance: a floating left stick, camera by swiping, context buttons that follow your save data, a layout editor, native widescreen, fixed shadows, a pinch-to-zoom camera, and renderer and performance work. Its README does not mention dual-screen support, but it is a fork of the same project and its code still carries the second-display path (",{"type":28,"tag":43,"props":8259,"children":8261},{"className":8260},[],[8262],{"type":34,"value":8263},"DrcDisplay.java",{"type":34,"value":8265},", an Android ",{"type":28,"tag":43,"props":8267,"children":8269},{"className":8268},[],[8270],{"type":34,"value":8271},"Presentation",{"type":34,"value":8273}," on the AYN Thor's lower screen with touch), so dual-screen devices are likely supported there too.",{"type":28,"tag":29,"props":8275,"children":8276},{"id":1043},[8277],{"type":34,"value":1046},{"type":28,"tag":58,"props":8279,"children":8280},{},[8281,8286,8327],{"type":28,"tag":62,"props":8282,"children":8283},{},[8284],{"type":34,"value":8285},"Android 11 or newer, 64-bit ARM, Vulkan 1.1, about 2 GB of free storage and, for the one-time compile, about 2 GB of free memory.",{"type":28,"tag":62,"props":8287,"children":8288},{},[8289,8291,8296,8297,8302,8304,8310,8312,8318,8320,8325],{"type":34,"value":8290},"Your own dump of The Wind Waker HD (USA, Europe or Japan): the disc image (",{"type":28,"tag":43,"props":8292,"children":8294},{"className":8293},[],[8295],{"type":34,"value":7991},{"type":34,"value":1559},{"type":28,"tag":43,"props":8298,"children":8300},{"className":8299},[],[8301],{"type":34,"value":7984},{"type":34,"value":8303},"), its disc key (a ",{"type":28,"tag":43,"props":8305,"children":8307},{"className":8306},[],[8308],{"type":34,"value":8309},".key",{"type":34,"value":8311}," file with the image's name) and the Wii U common key (",{"type":28,"tag":43,"props":8313,"children":8315},{"className":8314},[],[8316],{"type":34,"value":8317},"common.key",{"type":34,"value":8319},"); or a Cemu archive of the game (",{"type":28,"tag":43,"props":8321,"children":8323},{"className":8322},[],[8324],{"type":34,"value":7999},{"type":34,"value":8326},", already decrypted: no keys needed).",{"type":28,"tag":62,"props":8328,"children":8329},{},[8330,8332,8338],{"type":34,"value":8331},"For frame generation, your own copy of Lossless Scaling (",{"type":28,"tag":43,"props":8333,"children":8335},{"className":8334},[],[8336],{"type":34,"value":8337},"Lossless.dll",{"type":34,"value":898},{"type":28,"tag":29,"props":8340,"children":8341},{"id":99},[8342],{"type":34,"value":102},{"type":28,"tag":104,"props":8344,"children":8345},{},[8346,8358,8377,8382],{"type":28,"tag":62,"props":8347,"children":8348},{},[8349,8351,8356],{"type":34,"value":8350},"Put the image and both keys in one folder on your device (or the ",{"type":28,"tag":43,"props":8352,"children":8354},{"className":8353},[],[8355],{"type":34,"value":7999},{"type":34,"value":8357}," file alone).",{"type":28,"tag":62,"props":8359,"children":8360},{},[8361,8362,8368,8370,8375],{"type":34,"value":703},{"type":28,"tag":705,"props":8363,"children":8366},{"href":8364,"rel":8365},"https:\u002F\u002Fgithub.com\u002FGreenNaugahyde\u002FZeldaWWHDRecompAndroid\u002Freleases\u002Flatest",[709],[8367],{"type":34,"value":712},{"type":34,"value":8369}," and start it. Choose ",{"type":28,"tag":139,"props":8371,"children":8372},{},[8373],{"type":34,"value":8374},"Extract from your disc image or .wua…",{"type":34,"value":8376}," and select that folder.",{"type":28,"tag":62,"props":8378,"children":8379},{},[8380],{"type":34,"value":8381},"The app extracts the game files, then prepares the game code for your device (once; about 6 minutes on a Snapdragon 7+ Gen 3, 9 minutes on a Snapdragon 855, 18 minutes on a Helio G85). A notification shows the progress and keeps the process alive.",{"type":28,"tag":62,"props":8383,"children":8384},{},[8385],{"type":34,"value":8386},"The game starts. The first visit to each place may stutter briefly while its shaders compile, then they are cached.",{"title":6,"searchDepth":225,"depth":225,"links":8388},[8389,8390,8391,8392,8393],{"id":31,"depth":225,"text":35},{"id":53,"depth":225,"text":56},{"id":8237,"depth":225,"text":8240},{"id":1043,"depth":225,"text":1046},{"id":99,"depth":225,"text":102},"content:zelda-wind-waker-hd:index.md","zelda-wind-waker-hd\u002Findex.md","zelda-wind-waker-hd\u002Findex",{"_path":8398,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":8399,"description":8400,"date":8401,"slug":8402,"category":242,"generated":13,"media":8403,"source":8404,"project_page":8405,"body":8406,"_type":231,"_id":8684,"_source":233,"_file":8685,"_stem":8686,"_extension":236},"\u002Fds-forever","DS Forever","A two-screen, controller-first companion that brings World of Warcraft: Forever to the AYN Thor's bottom screen, locally or streamed from a PC.","2026-10-14 07:45","ds-forever",[],"https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1xpmb14\u002Fwow_forever_dual_screen\u002F","https:\u002F\u002Fgithub.com\u002FJreese702\u002FDS-Forever",{"type":25,"children":8407,"toc":8678},[8408,8412,8417,8422,8427,8431,8513,8517,8565,8569],{"type":28,"tag":29,"props":8409,"children":8410},{"id":31},[8411],{"type":34,"value":35},{"type":28,"tag":37,"props":8413,"children":8414},{},[8415],{"type":34,"value":8416},"DS Forever is a dual-screen companion for WoW Forever on the AYN Thor. The game runs on the top screen, and the bottom screen becomes a controller-first UI for everything else, so the game's own windows stay out of the way. The game can run locally on the Thor or be streamed from a Windows PC.",{"type":28,"tag":37,"props":8418,"children":8419},{},[8420],{"type":34,"value":8421},"A companion add-on tells the app what's going on in the game. The app draws its own UI on the bottom screen and presses the game's own buttons for you — one action per button press, with no botting. Your saved login is encrypted, and it doesn't leave macros or keybinds behind on your character when you go back to PC.",{"type":28,"tag":37,"props":8423,"children":8424},{},[8425],{"type":34,"value":8426},"It is an unofficial community project, not affiliated with or endorsed by Blizzard, WoW Forever's maintainers or GameNative. No Blizzard client files, extracted art or QuestieDB are bundled; you supply your own authorised game installation and account.",{"type":28,"tag":29,"props":8428,"children":8429},{"id":53},[8430],{"type":34,"value":56},{"type":28,"tag":58,"props":8432,"children":8433},{},[8434,8439,8444,8449,8454,8459,8464,8469,8474,8479,8492,8497,8508],{"type":28,"tag":62,"props":8435,"children":8436},{},[8437],{"type":34,"value":8438},"Local play on the Thor or streaming from a Windows PC via DS Forever Desktop",{"type":28,"tag":62,"props":8440,"children":8441},{},[8442],{"type":34,"value":8443},"Home screen with a live minimap, quest arrow, focused quest, chat and buffs",{"type":28,"tag":62,"props":8445,"children":8446},{},[8447],{"type":34,"value":8448},"Rooms for Bags, Quests, Spellbook\u002FTalents, Character, Social, Group Finder, Professions, Map and Chat",{"type":28,"tag":62,"props":8450,"children":8451},{},[8452],{"type":34,"value":8453},"Pop-ups on the bottom screen for vendors, loot, dialogs and guild invites",{"type":28,"tag":62,"props":8455,"children":8456},{},[8457],{"type":34,"value":8458},"Radial pause menu and a consumables wheel",{"type":28,"tag":62,"props":8460,"children":8461},{},[8462],{"type":34,"value":8463},"Dynamic combat skill bar that swaps in when entering combat",{"type":28,"tag":62,"props":8465,"children":8466},{},[8467],{"type":34,"value":8468},"Companion shows observed NPCs, not database-only ghosts",{"type":28,"tag":62,"props":8470,"children":8471},{},[8472],{"type":34,"value":8473},"Old DS-created macros are removed silently, preserving user-created macros",{"type":28,"tag":62,"props":8475,"children":8476},{},[8477],{"type":34,"value":8478},"Streaming mode pairs the Thor with DS Forever Desktop over home Wi-Fi and starts WoW with the login saved on your Thor",{"type":28,"tag":62,"props":8480,"children":8481},{},[8482,8484,8490],{"type":34,"value":8483},"Your saved login stays sealed on the Thor; after pairing it is sent to the PC over an encrypted link and written to WoW's own ",{"type":28,"tag":43,"props":8485,"children":8487},{"className":8486},[],[8488],{"type":34,"value":8489},"login.txt",{"type":34,"value":8491},", readable by your Windows account only and deleted about 20 seconds after sign-in starts (5 minutes at most, or as soon as the Thor disconnects)",{"type":28,"tag":62,"props":8493,"children":8494},{},[8495],{"type":34,"value":8496},"No keys are typed during streaming; authenticator challenges stay manual",{"type":28,"tag":62,"props":8498,"children":8499},{},[8500,8502],{"type":34,"value":8501},"Desktop updates itself from these releases once no Thor is connected, checked against ",{"type":28,"tag":43,"props":8503,"children":8505},{"className":8504},[],[8506],{"type":34,"value":8507},"SHA256SUMS",{"type":28,"tag":62,"props":8509,"children":8510},{},[8511],{"type":34,"value":8512},"WoW closes itself 5 minutes after the stream ends, unless the PC is in use",{"type":28,"tag":29,"props":8514,"children":8515},{"id":1043},[8516],{"type":34,"value":1046},{"type":28,"tag":58,"props":8518,"children":8519},{},[8520,8525,8530,8535,8555,8560],{"type":28,"tag":62,"props":8521,"children":8522},{},[8523],{"type":34,"value":8524},"AYN Thor (other devices are unverified)",{"type":28,"tag":62,"props":8526,"children":8527},{},[8528],{"type":34,"value":8529},"Android 10 (API 29) or newer, arm64-v8a",{"type":28,"tag":62,"props":8531,"children":8532},{},[8533],{"type":34,"value":8534},"An authorised installation and account for World of Warcraft: Forever beta",{"type":28,"tag":62,"props":8536,"children":8537},{},[8538,8540,8546,8547,8553],{"type":34,"value":8539},"A game folder containing ",{"type":28,"tag":43,"props":8541,"children":8543},{"className":8542},[],[8544],{"type":34,"value":8545},".build.info",{"type":34,"value":1475},{"type":28,"tag":43,"props":8548,"children":8550},{"className":8549},[],[8551],{"type":34,"value":8552},"Data\u002F",{"type":34,"value":8554},", including hidden files",{"type":28,"tag":62,"props":8556,"children":8557},{},[8558],{"type":34,"value":8559},"About 250 MB free for a direct install; the game streams the rest from Blizzard as you play, up to about 50 GB, so Wi-Fi and 60 GB free are needed",{"type":28,"tag":62,"props":8561,"children":8562},{},[8563],{"type":34,"value":8564},"A Windows PC on your home Wi-Fi with DS Forever Desktop for streaming mode",{"type":28,"tag":29,"props":8566,"children":8567},{"id":99},[8568],{"type":34,"value":102},{"type":28,"tag":58,"props":8570,"children":8571},{},[8572,8589,8621,8626,8631,8636,8641,8668,8673],{"type":28,"tag":62,"props":8573,"children":8574},{},[8575,8577,8588],{"type":34,"value":8576},"Download and install the latest release APK: ",{"type":28,"tag":705,"props":8578,"children":8581},{"href":8579,"rel":8580},"https:\u002F\u002Fgithub.com\u002FJreese702\u002FDS-Forever\u002Freleases\u002Flatest",[709],[8582,8584],{"type":34,"value":8583},"DS-Forever-",{"type":28,"tag":7053,"props":8585,"children":8586},{},[8587],{"type":34,"value":6137},{"type":34,"value":176},{"type":28,"tag":62,"props":8590,"children":8591},{},[8592,8594,8599,8601,8606,8607,8612,8614,8620],{"type":34,"value":8593},"On first start, choose ",{"type":28,"tag":139,"props":8595,"children":8596},{},[8597],{"type":34,"value":8598},"Install directly",{"type":34,"value":8600}," (about 250 MB now; the game streams the rest from Blizzard as you play, up to about 50 GB; needs Wi-Fi and 60 GB free) or choose an existing folder containing ",{"type":28,"tag":43,"props":8602,"children":8604},{"className":8603},[],[8605],{"type":34,"value":8545},{"type":34,"value":1475},{"type":28,"tag":43,"props":8608,"children":8610},{"className":8609},[],[8611],{"type":34,"value":8552},{"type":34,"value":8613},", including hidden files. Thor testing used ",{"type":28,"tag":43,"props":8615,"children":8617},{"className":8616},[],[8618],{"type":34,"value":8619},"\u002Fstorage\u002Femulated\u002F0\u002FDocuments\u002FWoW Forever",{"type":34,"value":176},{"type":28,"tag":62,"props":8622,"children":8623},{},[8624],{"type":34,"value":8625},"Run the two-screen setup; it checks environment readiness and automatically prepares art from your installed game.",{"type":28,"tag":62,"props":8627,"children":8628},{},[8629],{"type":34,"value":8630},"Complete the seven required steps; any required failure offers \"Try again\". QuestieDB downloads after the art check.",{"type":28,"tag":62,"props":8632,"children":8633},{},[8634],{"type":34,"value":8635},"Use Login \u002F Update Login to manage sign-in; updating login restarts the game to read it. Refused sign-in has recovery controls. Avoid repeated wrong-password tests.",{"type":28,"tag":62,"props":8637,"children":8638},{},[8639],{"type":34,"value":8640},"The app updater checks for and installs updates; offline checks do not block play.",{"type":28,"tag":62,"props":8642,"children":8643},{},[8644,8646,8652,8654,8659,8661,8667],{"type":34,"value":8645},"For streaming, download ",{"type":28,"tag":43,"props":8647,"children":8649},{"className":8648},[],[8650],{"type":34,"value":8651},"DsForeverDesktop-\u003Cversion>-win-x64.zip",{"type":34,"value":8653}," from the same ",{"type":28,"tag":705,"props":8655,"children":8657},{"href":8579,"rel":8656},[709],[8658],{"type":34,"value":712},{"type":34,"value":8660}," as the APK, unzip it to a folder you keep, and run ",{"type":28,"tag":43,"props":8662,"children":8664},{"className":8663},[],[8665],{"type":34,"value":8666},"DsForeverDesktop.exe",{"type":34,"value":176},{"type":28,"tag":62,"props":8669,"children":8670},{},[8671],{"type":34,"value":8672},"Pick Streaming on the Thor and enter the code Desktop shows. Connect on your home Wi-Fi; Desktop starts WoW and signs in with the login saved on your Thor.",{"type":28,"tag":62,"props":8674,"children":8675},{},[8676],{"type":34,"value":8677},"Desktop is not code-signed, so Windows may warn on first run. Authenticator challenges stay manual.",{"title":6,"searchDepth":225,"depth":225,"links":8679},[8680,8681,8682,8683],{"id":31,"depth":225,"text":35},{"id":53,"depth":225,"text":56},{"id":1043,"depth":225,"text":1046},{"id":99,"depth":225,"text":102},"content:ds-forever:index.md","ds-forever\u002Findex.md","ds-forever\u002Findex",{"_path":8688,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":8689,"description":8690,"date":8691,"slug":8692,"category":242,"generated":13,"media":8693,"source":8696,"project_page":8697,"body":8698,"_type":231,"_id":8906,"_source":233,"_file":8907,"_stem":8908,"_extension":236},"\u002Fgrand-theft-companion","Grand Theft Companion","A live HUD companion that shows your GTA IV and V stats on the AYN Thor's bottom screen while you play.","2026-10-12 06:31","grand-theft-companion",[8694],{"type":16,"url":8695},"https:\u002F\u002Fraw.githubusercontent.com\u002FBrianJr03\u002FGrandTheftCompanion\u002Frefs\u002Fheads\u002Fmain\u002Fassets\u002Fscreenshot_v.png","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1x3m1nx\u002Fbuilt_a_bottom_screen_companion_app_for_gta_iv_v\u002F","https:\u002F\u002Fgithub.com\u002FBrianJr03\u002FGrandTheftCompanion",{"type":25,"children":8699,"toc":8900},[8700,8704,8709,8714,8718,8751,8755,8868,8872],{"type":28,"tag":29,"props":8701,"children":8702},{"id":31},[8703],{"type":34,"value":35},{"type":28,"tag":37,"props":8705,"children":8706},{},[8707],{"type":34,"value":8708},"Grand Theft Companion (GTC) is a live HUD companion for GTA IV and GTA V on the AYN Thor. While the game runs on the main screen, the bottom screen shows your cash, health, armor, wanted stars, current weapon and ammo, what you're driving and how fast, and the radio station. When you're in a car you can tap a station on the bottom screen to change the radio.",{"type":28,"tag":37,"props":8710,"children":8711},{},[8712],{"type":34,"value":8713},"A small plugin sits in your game folder and sends the game info to the Android app over localhost TCP at 20 Hz; nothing goes over the internet, it all stays on the device. It works with GTA IV (including both DLC episodes) and GTA V story mode. On GTA V, the colors change depending on who you're playing as, and there's a bar for the special ability. The app is the same for both games and picks the right layout by itself.",{"type":28,"tag":29,"props":8715,"children":8716},{"id":53},[8717],{"type":34,"value":56},{"type":28,"tag":58,"props":8719,"children":8720},{},[8721,8726,8731,8736,8741,8746],{"type":28,"tag":62,"props":8722,"children":8723},{},[8724],{"type":34,"value":8725},"Live HUD cards for money, weapon and ammo, vehicle and speed, and radio, with health and armor bars underneath.",{"type":28,"tag":62,"props":8727,"children":8728},{},[8729],{"type":34,"value":8730},"Tappable radio picker while driving.",{"type":28,"tag":62,"props":8732,"children":8733},{},[8734],{"type":34,"value":8735},"GTA IV: HUD tinted by episode (GTA IV, The Lost and Damned, The Ballad of Gay Tony) and six wanted stars.",{"type":28,"tag":62,"props":8737,"children":8738},{},[8739],{"type":34,"value":8740},"GTA V: accent color, name and cash follow the protagonist (Michael \u002F Franklin \u002F Trevor), a \"switching…\" screen covers the character-switch camera, and a special ability bar (ready \u002F active \u002F charging).",{"type":28,"tag":62,"props":8742,"children":8743},{},[8744],{"type":34,"value":8745},"GTA V: five wanted stars, vehicle class on the vehicle card, altitude for aircraft, \"no radio\" where the vehicle has none, and a radio picker built from the running game's own station list.",{"type":28,"tag":62,"props":8747,"children":8748},{},[8749],{"type":34,"value":8750},"Experimental map page: mirrors the game's own minimap from the top screen and enlarges it, blips and GPS route included.",{"type":28,"tag":29,"props":8752,"children":8753},{"id":99},[8754],{"type":34,"value":102},{"type":28,"tag":104,"props":8756,"children":8757},{},[8758,8763,8768,8838,8851,8863],{"type":28,"tag":62,"props":8759,"children":8760},{},[8761],{"type":34,"value":8762},"Install a launcher that lets you set per-game environment variables: GameHub Lite, Winlator (or a fork such as Winlator Cmod), or GameNative.",{"type":28,"tag":62,"props":8764,"children":8765},{},[8766],{"type":34,"value":8767},"Have your own legit copy of the game on-device: GTA IV Complete Edition 1.2.0.59, or GTA V Legacy branch on a build your Script Hook V release supports.",{"type":28,"tag":62,"props":8769,"children":8770},{},[8771,8773],{"type":34,"value":8772},"Drop the plugin files next to the game exe:\n",{"type":28,"tag":58,"props":8774,"children":8775},{},[8776,8805],{"type":28,"tag":62,"props":8777,"children":8778},{},[8779,8781,8787,8789,8795,8797,8803],{"type":34,"value":8780},"GTA IV: ",{"type":28,"tag":43,"props":8782,"children":8784},{"className":8783},[],[8785],{"type":34,"value":8786},"ThorBridge.asi",{"type":34,"value":8788}," (from the ",{"type":28,"tag":705,"props":8790,"children":8793},{"href":8791,"rel":8792},"https:\u002F\u002Fgithub.com\u002FBrianJr03\u002FGrandTheftCompanion\u002Freleases\u002Flatest",[709],[8794],{"type":34,"value":712},{"type":34,"value":8796},") and ",{"type":28,"tag":43,"props":8798,"children":8800},{"className":8799},[],[8801],{"type":34,"value":8802},"dinput8.dll",{"type":34,"value":8804}," (the 32-bit build from Ultimate ASI Loader releases).",{"type":28,"tag":62,"props":8806,"children":8807},{},[8808,8810,8816,8817,8822,8824,8830,8831,8836],{"type":34,"value":8809},"GTA V: ",{"type":28,"tag":43,"props":8811,"children":8813},{"className":8812},[],[8814],{"type":34,"value":8815},"ThorBridgeV.asi",{"type":34,"value":8788},{"type":28,"tag":705,"props":8818,"children":8820},{"href":8791,"rel":8819},[709],[8821],{"type":34,"value":712},{"type":34,"value":8823},"), plus ",{"type":28,"tag":43,"props":8825,"children":8827},{"className":8826},[],[8828],{"type":34,"value":8829},"ScriptHookV.dll",{"type":34,"value":1475},{"type":28,"tag":43,"props":8832,"children":8834},{"className":8833},[],[8835],{"type":34,"value":8802},{"type":34,"value":8837}," from the Script Hook V zip.",{"type":28,"tag":62,"props":8839,"children":8840},{},[8841,8843,8849],{"type":34,"value":8842},"Add the per-game environment variable ",{"type":28,"tag":43,"props":8844,"children":8846},{"className":8845},[],[8847],{"type":34,"value":8848},"WINEDLLOVERRIDES=dinput8=n,b",{"type":34,"value":8850}," in your launcher.",{"type":28,"tag":62,"props":8852,"children":8853},{},[8854,8856,8861],{"type":34,"value":8855},"Install the GTC APK from the ",{"type":28,"tag":705,"props":8857,"children":8859},{"href":8791,"rel":8858},[709],[8860],{"type":34,"value":712},{"type":34,"value":8862}," and launch it once; the HUD trampolines onto the bottom display.",{"type":28,"tag":62,"props":8864,"children":8865},{},[8866],{"type":34,"value":8867},"Launch the game from the launcher. The HUD lights up the moment the game is in-world.",{"type":28,"tag":29,"props":8869,"children":8870},{"id":192},[8871],{"type":34,"value":195},{"type":28,"tag":58,"props":8873,"children":8874},{},[8875,8880,8885,8890,8895],{"type":28,"tag":62,"props":8876,"children":8877},{},[8878],{"type":34,"value":8879},"Only tested on the AYN Thor with GameHub Lite; other dual-screen devices are unverified.",{"type":28,"tag":62,"props":8881,"children":8882},{},[8883],{"type":34,"value":8884},"Switching weapons from the bottom screen isn't available yet.",{"type":28,"tag":62,"props":8886,"children":8887},{},[8888],{"type":34,"value":8889},"The map page's crop is a fixed per-game preset measured on a Thor at default HUD settings; if your game resolution, aspect ratio or safe-zone differs, the minimap may sit off-centre.",{"type":28,"tag":62,"props":8891,"children":8892},{},[8893],{"type":34,"value":8894},"The map is a magnified copy of a small patch of the screen, so it is soft, and it shows whatever is in that patch when the game hides the minimap (cutscenes, pause menu).",{"type":28,"tag":62,"props":8896,"children":8897},{},[8898],{"type":34,"value":8899},"GTA V is story mode only; in GTA Online the plugin publishes nothing but an \"online\" flag.",{"title":6,"searchDepth":225,"depth":225,"links":8901},[8902,8903,8904,8905],{"id":31,"depth":225,"text":35},{"id":53,"depth":225,"text":56},{"id":99,"depth":225,"text":102},{"id":192,"depth":225,"text":195},"content:grand-theft-companion:index.md","grand-theft-companion\u002Findex.md","grand-theft-companion\u002Findex",{"_path":8910,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":8911,"description":8912,"date":8913,"slug":8914,"category":12,"generated":13,"media":8915,"source":8918,"project_page":8919,"body":8920,"_type":231,"_id":9048,"_source":233,"_file":9049,"_stem":9050,"_extension":236},"\u002Fpt-for-android","P.T. for Android","An experimental Android port of LoreanXavier's native PC version of P.T., with dual-screen support for the AYN Thor.","2026-10-11 06:20","pt-for-android",[8916],{"type":16,"url":8917},"\u002Fcontent\u002Fpt-for-android\u002Fpreview.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1x2rynn\u002Fpt_on_android_an_experimental_port_of\u002F","https:\u002F\u002Fgithub.com\u002FStoneColdOS\u002Fpt-pc",{"type":25,"children":8921,"toc":9042},[8922,8926,8931,8936,8941,8946,8951,8955,8993,8997,9020,9024],{"type":28,"tag":29,"props":8923,"children":8924},{"id":31},[8925],{"type":34,"value":35},{"type":28,"tag":37,"props":8927,"children":8928},{},[8929],{"type":34,"value":8930},"P.T. for Android is an experimental, unofficial Android build of LoreanXavier's native PC port of P.T. It runs the same native code as the PC port — not an emulator — and reads everything from your own copy of the game. No game files are included, and it was developed and tested on one device, an AYN Thor Max.",{"type":28,"tag":37,"props":8932,"children":8933},{},[8934],{"type":34,"value":8935},"On the AYN Thor it runs at about 60 fps in the start room and roughly 25 to 35 fps in the heavier later loops.",{"type":28,"tag":37,"props":8937,"children":8938},{},[8939],{"type":34,"value":8940},"On dual-screen handhelds like the Thor, the bottom screen shows the hallway's clock frozen at 23:59, the loop you're on, and the radio and other subtitle lines as they play — the whole broadcast, even the lines the main screen skips on repeat loops, with static marking where the voice drops out. You can switch it to clock and subtitles, clock only, dim clock, or off under Display > Second screen. Single-screen devices just play normally.",{"type":28,"tag":37,"props":8942,"children":8943},{},[8944],{"type":34,"value":8945},"Without a controller, on-screen touch controls appear: drag on the left half to walk, on the right half to look, with buttons for Use, Zoom, Back, Pause and Name. They fade out after a few seconds without a touch or as soon as a controller is used, and can be turned off under Display > Touch controls > Off.",{"type":28,"tag":37,"props":8947,"children":8948},{},[8949],{"type":34,"value":8950},"Near the end the game asks you to say a name: say it out loud and the game hears it through the microphone, or hold both triggers instead. The speech recognizer runs on the device and only listens in that last part; nothing is recorded or sent anywhere, and the app has no internet permission.",{"type":28,"tag":29,"props":8952,"children":8953},{"id":1043},[8954],{"type":34,"value":1046},{"type":28,"tag":58,"props":8956,"children":8957},{},[8958,8963,8968,8973,8978,8983,8988],{"type":28,"tag":62,"props":8959,"children":8960},{},[8961],{"type":34,"value":8962},"Qualcomm Adreno 6xx or 7xx (Snapdragon) GPU; tested on the Adreno 740 (Snapdragon 8 Gen 2) only.",{"type":28,"tag":62,"props":8964,"children":8965},{},[8966],{"type":34,"value":8967},"Android 10 or newer, 64-bit.",{"type":28,"tag":62,"props":8969,"children":8970},{},[8971],{"type":34,"value":8972},"Not supported: Mali, Immortalis, Samsung Xclipse, PowerVR, Google Tensor, MediaTek — the game needs a texture format those GPUs lack.",{"type":28,"tag":62,"props":8974,"children":8975},{},[8976],{"type":34,"value":8977},"A built-in or connected gamepad, or the on-screen touch controls.",{"type":28,"tag":62,"props":8979,"children":8980},{},[8981],{"type":34,"value":8982},"Your own copy of P.T. (CUSA01127, the US release; the European and Japanese releases should work too), either as a fake PKG (.pkg) made from your dump or as the three files from a dump folder: chunk1.psarc, texture.qar and pathid_list_ps4.bin.",{"type":28,"tag":62,"props":8984,"children":8985},{},[8986],{"type":34,"value":8987},"If your package came zipped (.rar, .zip, .7z), unpack it first with a file manager such as ZArchiver.",{"type":28,"tag":62,"props":8989,"children":8990},{},[8991],{"type":34,"value":8992},"A store (PlayStation Store) PKG will not work: it is encrypted for the console that owns it, and this app does not touch that.",{"type":28,"tag":29,"props":8994,"children":8995},{"id":99},[8996],{"type":34,"value":102},{"type":28,"tag":58,"props":8998,"children":8999},{},[9000,9005,9010,9015],{"type":28,"tag":62,"props":9001,"children":9002},{},[9003],{"type":34,"value":9004},"Download the latest PT-Android-*.apk from the Releases page and install it.",{"type":28,"tag":62,"props":9006,"children":9007},{},[9008],{"type":34,"value":9009},"Start P.T. and choose \"Choose your P.T. .pkg\", then pick your package in Android's file picker. Setting up takes a minute or two and needs about 1.4 GB free. Afterwards you can let the app delete the .pkg to get that space back.",{"type":28,"tag":62,"props":9011,"children":9012},{},[9013],{"type":34,"value":9014},"From then on the game starts straight away.",{"type":28,"tag":62,"props":9016,"children":9017},{},[9018],{"type":34,"value":9019},"If you have the three extracted files instead, choose \"I already have the extracted files\", copy them into your Download folder (loose or in a CUSA01127 folder), and allow \"All files access\" when asked.",{"type":28,"tag":29,"props":9021,"children":9022},{"id":192},[9023],{"type":34,"value":195},{"type":28,"tag":58,"props":9025,"children":9026},{},[9027,9032,9037],{"type":28,"tag":62,"props":9028,"children":9029},{},[9030],{"type":34,"value":9031},"The speech recognizer is new on Android: if it doesn't hear you, hold both triggers.",{"type":28,"tag":62,"props":9033,"children":9034},{},[9035],{"type":34,"value":9036},"The PC extras that need a desktop (upscalers, ray tracing, VR, enhanced textures, loop previews) are off.",{"type":28,"tag":62,"props":9038,"children":9039},{},[9040],{"type":34,"value":9041},"A phone hooked up to a TV or monitor (USB-C to HDMI, or some casting setups) counts as a second screen, so the clock may show up on the TV while the game stays on the phone. Turn it off under Display > Second screen > Off.",{"title":6,"searchDepth":225,"depth":225,"links":9043},[9044,9045,9046,9047],{"id":31,"depth":225,"text":35},{"id":1043,"depth":225,"text":1046},{"id":99,"depth":225,"text":102},{"id":192,"depth":225,"text":195},"content:pt-for-android:index.md","pt-for-android\u002Findex.md","pt-for-android\u002Findex",{"_path":9052,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":9053,"description":9054,"date":9055,"slug":9056,"category":6130,"generated":13,"media":9057,"source":9064,"project_page":9065,"body":9066,"_type":231,"_id":9333,"_source":233,"_file":9334,"_stem":9335,"_extension":236},"\u002Fthordirstat","ThorDirStat","A free WinDirStat for the AYN Thor that shows exactly what's filling your storage.","2026-10-11 06:18","thordirstat",[9058,9060,9062],{"type":16,"url":9059},"\u002Fcontent\u002Fthordirstat\u002Fpreview.webp",{"type":16,"url":9061},"\u002Fcontent\u002Fthordirstat\u002Fscreenshot-2.webp",{"type":16,"url":9063},"\u002Fcontent\u002Fthordirstat\u002Fscreenshot-3.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1x2hsll\u002Fthordirstat_windirstat_for_the_ayn_thor_see\u002F","https:\u002F\u002Fgithub.com\u002Fajhockey88\u002FThorDirStat",{"type":25,"children":9067,"toc":9328},[9068,9072,9077,9082,9086,9188,9192],{"type":28,"tag":29,"props":9069,"children":9070},{"id":31},[9071],{"type":34,"value":35},{"type":28,"tag":37,"props":9073,"children":9074},{},[9075],{"type":34,"value":9076},"ThorDirStat is a WinDirStat equivalent for the AYN Thor. It scans your internal storage, SD card or a USB drive and shows every file as a rectangle sized by how much space it takes, colored by file type and grouped by folder, so the biggest consumers of space stand out right away. The treemap runs on the big top screen while the folder tree and file type list live on the bottom screen.",{"type":28,"tag":37,"props":9078,"children":9079},{},[9080],{"type":34,"value":9081},"It also lists each installed app's own size, with App info a hold away to clear its cache or uninstall it, and measures Android\u002Fdata and Android\u002Fobb with Shizuku, which is where game data usually hides. Scanning uses WinDirStat's Pac-Man animation while file and byte counts climb.",{"type":28,"tag":29,"props":9083,"children":9084},{"id":53},[9085],{"type":34,"value":56},{"type":28,"tag":58,"props":9087,"children":9088},{},[9089,9099,9109,9119,9129,9139,9148,9158,9168,9178],{"type":28,"tag":62,"props":9090,"children":9091},{},[9092,9097],{"type":28,"tag":139,"props":9093,"children":9094},{},[9095],{"type":34,"value":9096},"Treemap:",{"type":34,"value":9098}," every file is a rectangle sized by its bytes, inside its folder's rectangle, colored by file type and shaded as a cushion so folders show as bumps, just like WinDirStat",{"type":28,"tag":62,"props":9100,"children":9101},{},[9102,9107],{"type":28,"tag":139,"props":9103,"children":9104},{},[9105],{"type":34,"value":9106},"Folders:",{"type":34,"value":9108}," the folder tree, biggest first, with each item's share of its folder as a bar, its size, item count and last change",{"type":28,"tag":62,"props":9110,"children":9111},{},[9112,9117],{"type":28,"tag":139,"props":9113,"children":9114},{},[9115],{"type":34,"value":9116},"File types:",{"type":34,"value":9118}," every extension with its treemap color, a description (videos, Android apps, disc images, Switch games, save states...), its bytes, share and number of files; tap one to outline every file of that type in the treemap",{"type":28,"tag":62,"props":9120,"children":9121},{},[9122,9127],{"type":28,"tag":139,"props":9123,"children":9124},{},[9125],{"type":34,"value":9126},"Apps:",{"type":34,"value":9128}," each installed app's own size, with App info a hold away to clear its cache or uninstall it",{"type":28,"tag":62,"props":9130,"children":9131},{},[9132,9137],{"type":28,"tag":139,"props":9133,"children":9134},{},[9135],{"type":34,"value":9136},"Drives:",{"type":34,"value":9138}," pick internal storage, the SD card, a USB drive, or all of them at once, with a used \u002F free bar for each",{"type":28,"tag":62,"props":9140,"children":9141},{},[9142,9146],{"type":28,"tag":139,"props":9143,"children":9144},{},[9145],{"type":34,"value":1621},{"type":34,"value":9147}," double-tap (or use the zoom buttons) to zoom into any folder; tap a block again to select the whole folder it belongs to",{"type":28,"tag":62,"props":9149,"children":9150},{},[9151,9156],{"type":28,"tag":139,"props":9152,"children":9153},{},[9154],{"type":34,"value":9155},"Actions:",{"type":34,"value":9157}," press and hold for zoom, open, share, properties, copy path, rescan and delete (delete always asks first)",{"type":28,"tag":62,"props":9159,"children":9160},{},[9161,9166],{"type":28,"tag":139,"props":9162,"children":9163},{},[9164],{"type":34,"value":9165},"Gamepad:",{"type":34,"value":9167}," D-pad moves through the list, A opens or closes a folder, X shows actions, Y zooms in, B zooms out, and L1 \u002F R1 switch between Folders and File types",{"type":28,"tag":62,"props":9169,"children":9170},{},[9171,9176],{"type":28,"tag":139,"props":9172,"children":9173},{},[9174],{"type":34,"value":9175},"One-screen mode:",{"type":34,"value":9177}," turn off \"Use both screens\" in Settings to show the lists and treemap side by side on one display, or swap the screens",{"type":28,"tag":62,"props":9179,"children":9180},{},[9181,9186],{"type":28,"tag":139,"props":9182,"children":9183},{},[9184],{"type":34,"value":9185},"Updates:",{"type":34,"value":9187}," Check for updates in Settings finds a newer ThorDirStat release on GitHub, shows what's new, then downloads and installs it",{"type":28,"tag":29,"props":9189,"children":9190},{"id":99},[9191],{"type":34,"value":102},{"type":28,"tag":104,"props":9193,"children":9194},{},[9195,9214,9219,9238,9272,9304],{"type":28,"tag":62,"props":9196,"children":9197},{},[9198,9199,9205,9206,9212],{"type":34,"value":1974},{"type":28,"tag":43,"props":9200,"children":9202},{"className":9201},[],[9203],{"type":34,"value":9204},"ThorDirStat.apk",{"type":34,"value":1981},{"type":28,"tag":705,"props":9207,"children":9210},{"href":9208,"rel":9209},"https:\u002F\u002Fgithub.com\u002Fajhockey88\u002FThorDirStat\u002Freleases\u002Flatest",[709],[9211],{"type":34,"value":712},{"type":34,"value":9213}," and copy it to the Thor.",{"type":28,"tag":62,"props":9215,"children":9216},{},[9217],{"type":34,"value":9218},"Open it on the Thor to install.",{"type":28,"tag":62,"props":9220,"children":9221},{},[9222,9224,9229,9231,9236],{"type":34,"value":9223},"Open ThorDirStat and tap ",{"type":28,"tag":139,"props":9225,"children":9226},{},[9227],{"type":34,"value":9228},"Allow access",{"type":34,"value":9230},", then turn on ",{"type":28,"tag":139,"props":9232,"children":9233},{},[9234],{"type":34,"value":9235},"Allow access to manage all files",{"type":34,"value":9237},". (With Shizuku allowed, ThorDirStat switches this on by itself.)",{"type":28,"tag":62,"props":9239,"children":9240},{},[9241,9243,9249,9250,9256,9258,9263,9265,9271],{"type":34,"value":9242},"Optional, for ",{"type":28,"tag":43,"props":9244,"children":9246},{"className":9245},[],[9247],{"type":34,"value":9248},"Android\u002Fdata",{"type":34,"value":1475},{"type":28,"tag":43,"props":9251,"children":9253},{"className":9252},[],[9254],{"type":34,"value":9255},"Android\u002Fobb",{"type":34,"value":9257},": start Shizuku, then tap ",{"type":28,"tag":139,"props":9259,"children":9260},{},[9261],{"type":34,"value":9262},"Allow ThorDirStat in Shizuku",{"type":34,"value":9264},". Android hides those folders from apps, and they often hold the biggest files (game data, emulator files); without Shizuku they show as \"hidden by Android\" and their space counts towards ",{"type":28,"tag":43,"props":9266,"children":9268},{"className":9267},[],[9269],{"type":34,"value":9270},"\u003CUnknown>",{"type":34,"value":176},{"type":28,"tag":62,"props":9273,"children":9274},{},[9275,9276,9282,9284,9289,9291,9296,9298,9303],{"type":34,"value":9242},{"type":28,"tag":43,"props":9277,"children":9279},{"className":9278},[],[9280],{"type":34,"value":9281},"\u003CApps>",{"type":34,"value":9283},": in ",{"type":28,"tag":139,"props":9285,"children":9286},{},[9287],{"type":34,"value":9288},"Drives",{"type":34,"value":9290},", tap ",{"type":28,"tag":139,"props":9292,"children":9293},{},[9294],{"type":34,"value":9295},"Allow usage access",{"type":34,"value":9297}," and turn it on for ThorDirStat. Without it, apps' sizes count towards ",{"type":28,"tag":43,"props":9299,"children":9301},{"className":9300},[],[9302],{"type":34,"value":9270},{"type":34,"value":176},{"type":28,"tag":62,"props":9305,"children":9306},{},[9307,9309,9313,9315,9320,9321,9326],{"type":34,"value":9308},"To update, tap ",{"type":28,"tag":139,"props":9310,"children":9311},{},[9312],{"type":34,"value":4644},{"type":34,"value":9314}," at the bottom of Settings, or install the newest ",{"type":28,"tag":43,"props":9316,"children":9318},{"className":9317},[],[9319],{"type":34,"value":9204},{"type":34,"value":1981},{"type":28,"tag":705,"props":9322,"children":9324},{"href":9208,"rel":9323},[709],[9325],{"type":34,"value":712},{"type":34,"value":9327}," over the old one.",{"title":6,"searchDepth":225,"depth":225,"links":9329},[9330,9331,9332],{"id":31,"depth":225,"text":35},{"id":53,"depth":225,"text":56},{"id":99,"depth":225,"text":102},"content:thordirstat:index.md","thordirstat\u002Findex.md","thordirstat\u002Findex",{"_path":9337,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":9338,"description":9339,"date":9340,"slug":9341,"category":242,"media":9342,"tags":9345,"project_page":9348,"body":9349,"_type":231,"_id":9444,"_source":233,"_file":9445,"_stem":9446,"_extension":236},"\u002Fthor-speedrunsplits","Thor-SpeedrunSplits","A speedrunning built for dual-screen handhelds like the AYN Thor and Retroid Pocket Duo","2026-10-09 14:07","thor-speedrunsplits",[9343],{"type":16,"url":9344},"\u002Fcontent\u002Fthor-speedrunsplits\u002Fpreview.webp",[9346,9347,242],"speedrunning","games","https:\u002F\u002Fgithub.com\u002FJonJon2005\u002FThor-SpeedrunSplits",{"type":25,"children":9350,"toc":9439},[9351,9355,9360,9364,9427,9431],{"type":28,"tag":29,"props":9352,"children":9353},{"id":99},[9354],{"type":34,"value":102},{"type":28,"tag":37,"props":9356,"children":9357},{},[9358],{"type":34,"value":9359},"Build the application yourself or download the APK via the Releases section.",{"type":28,"tag":29,"props":9361,"children":9362},{"id":53},[9363],{"type":34,"value":56},{"type":28,"tag":58,"props":9365,"children":9366},{},[9367,9372,9377,9382,9387,9392,9397,9402,9407,9412,9417,9422],{"type":28,"tag":62,"props":9368,"children":9369},{},[9370],{"type":34,"value":9371},"LiveSplit-style timer with color-coded split rows, one-decimal formatting, PB comparisons, live ahead\u002Fbehind deltas, golds\u002Fbest segments, automatic active-row scrolling, and manual scroll-back.",{"type":28,"tag":62,"props":9373,"children":9374},{},[9375],{"type":34,"value":9376},"Large touch controls for starting, splitting, undoing, resetting, and finishing runs, with haptics, pressed states, and subtle animations.",{"type":28,"tag":62,"props":9378,"children":9379},{},[9380],{"type":34,"value":9381},"Persistent PBs, Sum of Best, attempts, total run time, completed-run history, run details, PB dates, gold management, and largest segment gain\u002Floss reporting.",{"type":28,"tag":62,"props":9383,"children":9384},{},[9385],{"type":34,"value":9386},"Custom Room-backed presets with editable game\u002Fcategory, split names, colors, order, and row count; load, create, edit, delete, reset, and compatible PB-preserving updates.",{"type":28,"tag":62,"props":9388,"children":9389},{},[9390],{"type":34,"value":9391},"Validated multi-preset .thorbackup.json export\u002Fimport through Android's file picker, including definitions, PBs, golds, stats, and history with repeat-safe merging and conflict protection.",{"type":28,"tag":62,"props":9393,"children":9394},{},[9395],{"type":34,"value":9396},"Collapsible icon-based settings drawer with sticky section headers for Customization, Presets, Runs & Records, Recording, Backup & Data, and About.",{"type":28,"tag":62,"props":9398,"children":9399},{},[9400],{"type":34,"value":9401},"Light, Dark, and OLED themes, optional Android system-theme following, toggleable OLED screen shifting, and six font choices: Default, Pixel, Pixel Bold, Princess, Breathe, and Red Hat.",{"type":28,"tag":62,"props":9403,"children":9404},{},[9405],{"type":34,"value":9406},"Automatic GitHub release checks with an in-app Update Now link, About links, version display, and internal\u002Fexternal display status for dual-screen devices.",{"type":28,"tag":62,"props":9408,"children":9409},{},[9410],{"type":34,"value":9411},"Run recording of Android's internal\u002Fdefault display: starts with a run, keeps a three-second post-run tail, and saves an MP4 to app storage or a persistent custom folder using the preset game, category, run length, and date.",{"type":28,"tag":62,"props":9413,"children":9414},{},[9415],{"type":34,"value":9416},"Optional opposite-screen recording target and internal playback-audio capture (device playback, not microphone input), plus a flashing red recording indicator while capture is active.",{"type":28,"tag":62,"props":9418,"children":9419},{},[9420],{"type":34,"value":9421},"Independent recording controls for 240p, 480p, 720p, or 1080p resolution and 2–16 Mbps bitrate; settings apply at capture time and recordings remain 60 FPS.",{"type":28,"tag":62,"props":9423,"children":9424},{},[9425],{"type":34,"value":9426},"Immersive fullscreen layout optimized for the AYN Thor's 1080x1240 AMOLED display, with large targets, long-title handling, and dual-screen-aware display labeling.",{"type":28,"tag":29,"props":9428,"children":9429},{"id":192},[9430],{"type":34,"value":195},{"type":28,"tag":58,"props":9432,"children":9433},{},[9434],{"type":28,"tag":62,"props":9435,"children":9436},{},[9437],{"type":34,"value":9438},"Android currently only allows automatic screen recording on the internal screen only.",{"title":6,"searchDepth":225,"depth":225,"links":9440},[9441,9442,9443],{"id":99,"depth":225,"text":102},{"id":53,"depth":225,"text":56},{"id":192,"depth":225,"text":195},"content:thor-speedrunsplits:index.md","thor-speedrunsplits\u002Findex.md","thor-speedrunsplits\u002Findex",{"_path":9448,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":9449,"description":9450,"date":9451,"slug":9452,"category":6130,"generated":13,"media":9453,"source":9454,"project_page":9455,"body":9456,"_type":231,"_id":9581,"_source":233,"_file":9582,"_stem":9583,"_extension":236},"\u002Fayn-thor-wow-launcher","AYN Thor WoW Launcher","A launcher that plays Classic, Retail, and Forever versions of World of Warcraft on the AYN Thor with a bottom-screen control pad.","2026-10-09 06:21","ayn-thor-wow-launcher",[],"https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1x0wgrn\u002Fwow_launcher_all_versions_bottom_screen_support\u002F","https:\u002F\u002Fgithub.com\u002Fjaredgei\u002Fwow-forever-android",{"type":25,"children":9457,"toc":9575},[9458,9462,9467,9471,9514,9518,9540,9544],{"type":28,"tag":29,"props":9459,"children":9460},{"id":31},[9461],{"type":34,"value":35},{"type":28,"tag":37,"props":9463,"children":9464},{},[9465],{"type":34,"value":9466},"The AYN Thor WoW Launcher plays all versions of World of Warcraft — Classic, Retail, and Forever — on the AYN Thor handheld. It adds a bottom-screen control pad with remappable buttons, a keyboard, and a trackpad, and is built on top of the WoW Forever for Android launcher by Jaredgei. The game runs natively on the device's CPU using Blizzard's Windows ARM64 client, so nothing is emulated as x86.",{"type":28,"tag":29,"props":9468,"children":9469},{"id":53},[9470],{"type":34,"value":56},{"type":28,"tag":58,"props":9472,"children":9473},{},[9474,9479,9484,9489,9494,9499,9504,9509],{"type":28,"tag":62,"props":9475,"children":9476},{},[9477],{"type":34,"value":9478},"Supports Classic, Retail, and Forever versions of World of Warcraft; all versions are included in the Data folder and .build.info file.",{"type":28,"tag":62,"props":9480,"children":9481},{},[9482],{"type":34,"value":9483},"Bottom screen acts as extra buttons, keyboard, and trackpad, mimicking an MMO mouse.",{"type":28,"tag":62,"props":9485,"children":9486},{},[9487],{"type":34,"value":9488},"All bottom-screen buttons are remappable and use the game's default keybinds for interface menus by default.",{"type":28,"tag":62,"props":9490,"children":9491},{},[9492],{"type":34,"value":9493},"Clicking R3 toggles between mouse and camera control; in mouse control mode, A and B act as left and right click respectively.",{"type":28,"tag":62,"props":9495,"children":9496},{},[9497],{"type":34,"value":9498},"The button pad acts as extra inputs only, so there is no ban risk.",{"type":28,"tag":62,"props":9500,"children":9501},{},[9502],{"type":34,"value":9503},"Many customizable settings for the button pad.",{"type":28,"tag":62,"props":9505,"children":9506},{},[9507],{"type":34,"value":9508},"Second-screen support can be disabled from the main launcher, so it works on other devices with the Snapdragon 8 Gen 2.",{"type":28,"tag":62,"props":9510,"children":9511},{},[9512],{"type":34,"value":9513},"Everything is WoW themed.",{"type":28,"tag":29,"props":9515,"children":9516},{"id":1043},[9517],{"type":34,"value":1046},{"type":28,"tag":58,"props":9519,"children":9520},{},[9521,9526,9530,9535],{"type":28,"tag":62,"props":9522,"children":9523},{},[9524],{"type":34,"value":9525},"AYN Thor (Snapdragon 8 Gen 2 \u002F Adreno 740) or another Snapdragon 8 series device.",{"type":28,"tag":62,"props":9527,"children":9528},{},[9529],{"type":34,"value":8967},{"type":28,"tag":62,"props":9531,"children":9532},{},[9533],{"type":34,"value":9534},"About 80 GB of free space for the game data (internal storage or SD card), plus about 4 GB of internal storage for the app and its Windows environment.",{"type":28,"tag":62,"props":9536,"children":9537},{},[9538],{"type":34,"value":9539},"A Mac or PC with the WoW version you want to play (Classic, Retail, or Forever) installed through Battle.net, to copy the game data from.",{"type":28,"tag":29,"props":9541,"children":9542},{"id":99},[9543],{"type":34,"value":102},{"type":28,"tag":58,"props":9545,"children":9546},{},[9547,9560,9565,9570],{"type":28,"tag":62,"props":9548,"children":9549},{},[9550,9552,9559],{"type":34,"value":9551},"Download and install the latest release of the launcher from the ",{"type":28,"tag":705,"props":9553,"children":9556},{"href":9554,"rel":9555},"https:\u002F\u002Fgithub.com\u002Fwyattabuntjer\u002FAYN-Thor-WoW-Launcher\u002Freleases\u002Flatest",[709],[9557],{"type":34,"value":9558},"GitHub releases page",{"type":34,"value":176},{"type":28,"tag":62,"props":9561,"children":9562},{},[9563],{"type":34,"value":9564},"On your PC, make sure the WoW version you want to play (Classic, Retail, or Forever) is installed through Battle.net.",{"type":28,"tag":62,"props":9566,"children":9567},{},[9568],{"type":34,"value":9569},"Copy the Data folder and the .build.info file from your PC's WoW install into a folder on the Thor (the default is \u002Fstorage\u002Femulated\u002F0\u002FWoW Forever\u002F).",{"type":28,"tag":62,"props":9571,"children":9572},{},[9573],{"type":34,"value":9574},"Open the launcher. Once your game files are configured, the app launches straight into the game.",{"title":6,"searchDepth":225,"depth":225,"links":9576},[9577,9578,9579,9580],{"id":31,"depth":225,"text":35},{"id":53,"depth":225,"text":56},{"id":1043,"depth":225,"text":1046},{"id":99,"depth":225,"text":102},"content:ayn-thor-wow-launcher:index.md","ayn-thor-wow-launcher\u002Findex.md","ayn-thor-wow-launcher\u002Findex",{"_path":9585,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":9586,"description":9587,"date":9588,"slug":9589,"category":242,"generated":13,"media":9590,"source":9597,"project_page":9598,"body":9599,"_type":231,"_id":9702,"_source":233,"_file":9703,"_stem":9704,"_extension":236},"\u002Fmhp3rd-companion","MHP3rd Companion","An offline companion app for Monster Hunter Portable 3rd that puts the game's data on the AYN Thor's second screen.","2026-10-09 06:17","mhp3rd-companion",[9591,9593,9595],{"type":16,"url":9592},"\u002Fcontent\u002Fmhp3rd-companion\u002Fpreview.webp",{"type":16,"url":9594},"\u002Fcontent\u002Fmhp3rd-companion\u002Fscreenshot-2.webp",{"type":16,"url":9596},"\u002Fcontent\u002Fmhp3rd-companion\u002Fscreenshot-3.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1x0mlyq\u002Fmhp3rd_companion_app_release\u002F","https:\u002F\u002Fgithub.com\u002Fwaillio-pers\u002FMHP3ThorCompanion",{"type":25,"children":9600,"toc":9696},[9601,9605,9610,9614,9652,9656,9669,9673],{"type":28,"tag":29,"props":9602,"children":9603},{"id":31},[9604],{"type":34,"value":35},{"type":28,"tag":37,"props":9606,"children":9607},{},[9608],{"type":34,"value":9609},"MHP3rd Companion is an offline companion app for Monster Hunter Portable 3rd. It is a database with a UI — it does not interact with any emulator and is not a dual-screen mod. The app is designed around the AYN Thor's second screen, with adaptive layouts that also work on phones and tablets. The data was assembled from multiple (mostly Japanese) databases, cross-referenced with translations and other sources, and all English naming follows the Team Maverick ONE translation.",{"type":28,"tag":29,"props":9611,"children":9612},{"id":53},[9613],{"type":34,"value":56},{"type":28,"tag":58,"props":9615,"children":9616},{},[9617,9622,9627,9632,9637,9642,9647],{"type":28,"tag":62,"props":9618,"children":9619},{},[9620],{"type":34,"value":9621},"All monsters from the game, Large and Small, with rewards, hitzones and recommended element.",{"type":28,"tag":62,"props":9623,"children":9624},{},[9625],{"type":34,"value":9626},"All items with source information, drop percentages and amounts, cross-referenced from different sources, plus every possible use in crafting or trading.",{"type":28,"tag":62,"props":9628,"children":9629},{},[9630],{"type":34,"value":9631},"Maps with interactive nodes, each manually calibrated, with a breakdown of what you can get from the low-rank and high-rank versions of each node and a modal pop-up to pick the intended node.",{"type":28,"tag":62,"props":9633,"children":9634},{},[9635],{"type":34,"value":9636},"Complete weapon trees with crafting paths, sorting by attack power and rarity, and filters for element and decoration slots.",{"type":28,"tag":62,"props":9638,"children":9639},{},[9640],{"type":34,"value":9641},"Complete skills and decorations list with extended descriptions.",{"type":28,"tag":62,"props":9643,"children":9644},{},[9645],{"type":34,"value":9646},"Quests and trainings sections; quests are not clickable but internally contain all reward information, so you can see where to get items such as Commendations.",{"type":28,"tag":62,"props":9648,"children":9649},{},[9650],{"type":34,"value":9651},"Adjustable UI scale from 0.8 to 1.1 in settings.",{"type":28,"tag":29,"props":9653,"children":9654},{"id":99},[9655],{"type":34,"value":102},{"type":28,"tag":37,"props":9657,"children":9658},{},[9659,9661,9667],{"type":34,"value":9660},"Download the latest release APK (MHP3rd-Companion-1.0.0.apk) from the ",{"type":28,"tag":705,"props":9662,"children":9665},{"href":9663,"rel":9664},"https:\u002F\u002Fgithub.com\u002Fwaillio-pers\u002FMHP3ThorCompanion\u002Freleases\u002Flatest",[709],[9666],{"type":34,"value":7212},{"type":34,"value":9668},". Android may ask you to allow installation from the app or browser used to open the APK — only grant that permission to a source you trust. There is no need to disable Android's general security protections. After installing, open the app on the AYN Thor's second screen and adjust the UI scale in settings to your liking.",{"type":28,"tag":29,"props":9670,"children":9671},{"id":192},[9672],{"type":34,"value":195},{"type":28,"tag":58,"props":9674,"children":9675},{},[9676,9681,9686,9691],{"type":28,"tag":62,"props":9677,"children":9678},{},[9679],{"type":34,"value":9680},"The weapons section is the least polished part of the UI, especially on narrow screens.",{"type":28,"tag":62,"props":9682,"children":9683},{},[9684],{"type":34,"value":9685},"Phone layouts are tested less thoroughly than the AYN Thor second screen.",{"type":28,"tag":62,"props":9687,"children":9688},{},[9689],{"type":34,"value":9690},"Quests are not clickable.",{"type":28,"tag":62,"props":9692,"children":9693},{},[9694],{"type":34,"value":9695},"Armor and felyne skills from drinks are not included.",{"title":6,"searchDepth":225,"depth":225,"links":9697},[9698,9699,9700,9701],{"id":31,"depth":225,"text":35},{"id":53,"depth":225,"text":56},{"id":99,"depth":225,"text":102},{"id":192,"depth":225,"text":195},"content:mhp3rd-companion:index.md","mhp3rd-companion\u002Findex.md","mhp3rd-companion\u002Findex",{"_path":9706,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":9707,"description":9708,"date":9709,"slug":9710,"category":5422,"generated":13,"media":9711,"source":9718,"project_page":9719,"body":9720,"_type":231,"_id":10757,"_source":233,"_file":10758,"_stem":10759,"_extension":236},"\u002Fpokedaisy","PokeDaisy","A Game Boy, Game Boy Color, GBA and DS player for Android handhelds with two screens or one, with a live companion for Pokémon games and ROM hacks of every generation from Red to Black 2 and White 2.","2026-10-07 06:21","pokedaisy",[9712,9714,9716],{"type":16,"url":9713},"\u002Fcontent\u002Fpokedaisy\u002Fpreview.webp",{"type":16,"url":9715},"\u002Fcontent\u002Fpokedaisy\u002Fcover.webp",{"type":245,"url":9717},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=gMy6bqpS-LU","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1xn0xr9\u002Fpokedaisy_140_monomyth_black_2_and_white_2_origin\u002F","https:\u002F\u002Fgithub.com\u002Flidor30\u002Fpokedaisy",{"type":25,"children":9721,"toc":10751},[9722,9726,9731,9736,9741,9763,9767,9775,9913,9921,10128,10136,10248,10252,10257,10595,10600,10605,10610,10614,10706,10724,10729],{"type":28,"tag":29,"props":9723,"children":9724},{"id":31},[9725],{"type":34,"value":35},{"type":28,"tag":37,"props":9727,"children":9728},{},[9729],{"type":34,"value":9730},"PokeDaisy is a Game Boy, Game Boy Color, GBA and Nintendo DS player for Android handhelds with two screens or one, made for Pokémon games of every generation from Red to Black 2 and White 2 and popular ROM hacks. The game runs on the top screen. The bottom screen is a live companion that reads your game's memory as you play, so it always shows your real party, bag, map, battle matchups, Pokédex and a spoiler-free guide, drawn in the game's own menu style. It is free and open source, with no ads, accounts or tracking, and it updates itself. No games are included — bring your own legally dumped ROMs.",{"type":28,"tag":37,"props":9732,"children":9733},{},[9734],{"type":34,"value":9735},"Made for the AYN Thor. It also works on the Retroid Pocket Duo Lite (its 4:3 bottom screen has its own layout) and the Retroid Pocket 6 (single screen, tested), and should work on the Retroid Pocket Duo and the Anbernic RG DS, though not yet tested on real hardware. Any Android 8.0+ device runs the games. On a dual-screen device the companion gets the bottom screen to itself, and swapping screens is an option. On a single-screen device the companion is a panel beside the game: press BACK to slide it in over the game, tap the padlock on its edge to lock it beside the game, and drag that tab sideways to resize it; held upright, the game sits across the top with the companion docked under it. A HUD keeps your party, a minimap and your bag on the game screen, and the quick menu (L3) opens a ring of actions like a modern game's weapon wheel. For DS games, the touch screen goes on the bottom screen and one tap swaps it for the companion and back; on a one-screen device, hold it sideways and the touch screen floats in when the game needs it, with five layouts (L2 brings it in, R2 switches the layout). Cast or plug in a TV and the game goes on the big screen while the companion stays in your hand.",{"type":28,"tag":37,"props":9737,"children":9738},{},[9739],{"type":34,"value":9740},"The companion also has BOXES (your PC, laid out like the game's box screen, to move Pokémon between a box and your party), trade evolutions from a Pokémon's summary, a game volume slider with MUTE GAME and a mute hotkey, BATTLE FOCUS (battle info on one page), a DS CPU BOOST for fewer slowdowns, and TOOLS in the library: PATCH A ROM, LINK PLAY, SAVE EDITOR and TRADE SAVES, plus more save-backup options.",{"type":28,"tag":37,"props":9742,"children":9743},{},[9744,9746,9753,9755,9762],{"type":34,"value":9745},"Site and manual: ",{"type":28,"tag":705,"props":9747,"children":9750},{"href":9748,"rel":9749},"https:\u002F\u002Fpokedaisy.com",[709],[9751],{"type":34,"value":9752},"pokedaisy.com",{"type":34,"value":9754},". Video review: ",{"type":28,"tag":705,"props":9756,"children":9759},{"href":9757,"rel":9758},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=wgIa9PFvwXo",[709],[9760],{"type":34,"value":9761},"youtube.com",{"type":34,"value":176},{"type":28,"tag":29,"props":9764,"children":9765},{"id":53},[9766],{"type":34,"value":56},{"type":28,"tag":37,"props":9768,"children":9769},{},[9770],{"type":28,"tag":139,"props":9771,"children":9772},{},[9773],{"type":34,"value":9774},"The companion",{"type":28,"tag":58,"props":9776,"children":9777},{},[9778,9788,9798,9808,9818,9828,9838,9848,9858,9868,9878,9888,9898,9908],{"type":28,"tag":62,"props":9779,"children":9780},{},[9781,9786],{"type":28,"tag":139,"props":9782,"children":9783},{},[9784],{"type":34,"value":9785},"PARTY",{"type":34,"value":9787}," – your team with HP, levels and status, in your game's own party screen. Tap a Pokémon for its full summary: stats, moves, EXP, and what it's weak or resistant to. STATS shows its exact IVs, EVs, nature and Hidden Power. LEARN lists the moves it learns next and the TMs in your bag it can use, each rated LEARN \u002F FORGET a move \u002F SKIP, with the reasons (original games so far).",{"type":28,"tag":62,"props":9789,"children":9790},{},[9791,9796],{"type":28,"tag":139,"props":9792,"children":9793},{},[9794],{"type":34,"value":9795},"BAG",{"type":34,"value":9797}," – every pocket, with item icons and descriptions. Pick a TM to see who can learn it, and who it suits best (original games so far).",{"type":28,"tag":62,"props":9799,"children":9800},{},[9801,9806],{"type":28,"tag":139,"props":9802,"children":9803},{},[9804],{"type":34,"value":9805},"BATTLE",{"type":34,"value":9807}," – opens by itself when a battle starts. Shows move effectiveness, the foe's weaknesses, the best Pokémon and move for the fight, and the trainer's remaining team. INFO has a STATS button that puts your numbers next to the foe's (foe IVs are off by default; turn on FOE IVS in Settings). BATTLE FOCUS puts the battle INFO on one page. Touch buttons to fight, switch or run (FireRed and Emerald).",{"type":28,"tag":62,"props":9809,"children":9810},{},[9811,9816],{"type":28,"tag":139,"props":9812,"children":9813},{},[9814],{"type":34,"value":9815},"MAP",{"type":34,"value":9817}," – the game's region map with you on it. Tap any place to name it, or search the list of every town and route.",{"type":28,"tag":62,"props":9819,"children":9820},{},[9821,9826],{"type":28,"tag":139,"props":9822,"children":9823},{},[9824],{"type":34,"value":9825},"DEX",{"type":34,"value":9827}," – your Pokédex with seen\u002Fcaught marks and full entries: sprite, types, stats, abilities, dex text, evolutions, wild locations by route and movesets.",{"type":28,"tag":62,"props":9829,"children":9830},{},[9831,9836],{"type":28,"tag":139,"props":9832,"children":9833},{},[9834],{"type":34,"value":9835},"GUIDE",{"type":34,"value":9837}," – hints first, answers on a second tap: what's catchable here, the next gym leader's team, evolutions, plus \"WHERE IS\" and \"STUCK?\" pages.",{"type":28,"tag":62,"props":9839,"children":9840},{},[9841,9846],{"type":28,"tag":139,"props":9842,"children":9843},{},[9844],{"type":34,"value":9845},"BOXES",{"type":34,"value":9847}," – your PC in the companion, laid out like the game's box screen. Tap a Pokémon for its summary, WITHDRAW it into your party (or swap it with one there), or DEPOSIT a party Pokémon from its summary. Works on FireRed, LeafGreen, Emerald, Ruby and Sapphire in every language, Unbound, Radical Red, SoulGold and most hacks built on those games; depositing works on FireRed, LeafGreen and Emerald in English, German, French, Italian and Spanish, and a few FireRed hacks.",{"type":28,"tag":62,"props":9849,"children":9850},{},[9851,9856],{"type":28,"tag":139,"props":9852,"children":9853},{},[9854],{"type":34,"value":9855},"TRADE EVOLUTIONS",{"type":34,"value":9857}," – evolve a trade-evolving Pokémon straight from its summary, no trade needed.",{"type":28,"tag":62,"props":9859,"children":9860},{},[9861,9866],{"type":28,"tag":139,"props":9862,"children":9863},{},[9864],{"type":34,"value":9865},"CARD",{"type":34,"value":9867}," – your trainer card, drawn exactly like the game's, front and back.",{"type":28,"tag":62,"props":9869,"children":9870},{},[9871,9876],{"type":28,"tag":139,"props":9872,"children":9873},{},[9874],{"type":34,"value":9875},"STATES",{"type":34,"value":9877}," – 10 save-state slots with screenshots.",{"type":28,"tag":62,"props":9879,"children":9880},{},[9881,9886],{"type":28,"tag":139,"props":9882,"children":9883},{},[9884],{"type":34,"value":9885},"CHEEVOS",{"type":34,"value":9887}," – RetroAchievements (beta, softcore): your progress and challenges, unlock popups, leaderboards and the game's own level-up fanfare on every unlock. Sign in from the top-screen Settings; your password is used once and never stored, only your username and RA's login token stay on the device, and the app talks only to RetroAchievements. Hardcore isn't available yet: RetroAchievements only accepts it from emulators it has validated, which takes 6+ months of the app being public.",{"type":28,"tag":62,"props":9889,"children":9890},{},[9891,9896],{"type":28,"tag":139,"props":9892,"children":9893},{},[9894],{"type":34,"value":9895},"NUZLOCKE",{"type":34,"value":9897}," – per game (GBA games, except Emerald Rogue): keeps score of a Nuzlocke run, the first encounter in each area and every fainted Pokémon out for good, with a gravestone on its party slot.",{"type":28,"tag":62,"props":9899,"children":9900},{},[9901,9906],{"type":28,"tag":139,"props":9902,"children":9903},{},[9904],{"type":34,"value":9905},"CHEATS",{"type":34,"value":9907}," – GameShark, Action Replay and CodeBreaker, toggled from the companion.",{"type":28,"tag":62,"props":9909,"children":9910},{},[9911],{"type":34,"value":9912},"Customizable tabs: pick which ones show up in the tab bar; the rest wait as app icons in the MORE tab.",{"type":28,"tag":37,"props":9914,"children":9915},{},[9916],{"type":28,"tag":139,"props":9917,"children":9918},{},[9919],{"type":34,"value":9920},"On the game screen",{"type":28,"tag":58,"props":9922,"children":9923},{},[9924,9934,9944,9954,9964,9974,9984,9994,10004,10014,10024,10034,10044,10053,10078,10088,10098,10108,10118],{"type":28,"tag":62,"props":9925,"children":9926},{},[9927,9932],{"type":28,"tag":139,"props":9928,"children":9929},{},[9930],{"type":34,"value":9931},"HUD",{"type":34,"value":9933}," – your party (levels, HP, status), a minimap, your Poké Balls and PC \u002F BAG \u002F WILD buttons on the game screen while you walk around, like a modern Pokémon game. A tap opens a Pokémon's summary, the whole map (with FLY), your game's own PC, a compact bag with USE, or the area's wild Pokémon; the game keeps running under them. Four layouts, three looks, three sizes, and each part can be hidden. It steps aside for battles and menus.",{"type":28,"tag":62,"props":9935,"children":9936},{},[9937,9942],{"type":28,"tag":139,"props":9938,"children":9939},{},[9940],{"type":34,"value":9941},"Quick menu",{"type":34,"value":9943}," (L3) – PC, FLY, the keep-away spray, BIKE, ROD, WILD encounters on \u002F off, SAVE STATE, LOAD STATE, fast-forward and the companion, as a ring you aim with the left stick (or rows of tiles). Pick which actions show; anything that can't be used right now is greyed out and says why.",{"type":28,"tag":62,"props":9945,"children":9946},{},[9947,9952],{"type":28,"tag":139,"props":9948,"children":9949},{},[9950],{"type":34,"value":9951},"Battle buttons",{"type":34,"value":9953}," – FIGHT, POKéMON and RUN at the top right, beside the battle. FIGHT lists your moves with how well each one hits, POKéMON your party with the best pick tagged.",{"type":28,"tag":62,"props":9955,"children":9956},{},[9957,9962],{"type":28,"tag":139,"props":9958,"children":9959},{},[9960],{"type":34,"value":9961},"EXPAND + ZOOM",{"type":34,"value":9963}," – the overworld drawn past the screen's edges to fill a wide screen, with zoom out (R3) and look-around with the right stick. Battles are wide too. Works on FireRed, LeafGreen, Emerald, Ruby and Sapphire, many ROM hacks, Pokémon Yellow and Crystal on the Game Boy, and Platinum, HeartGold and SoulSilver on the DS.",{"type":28,"tag":62,"props":9965,"children":9966},{},[9967,9972],{"type":28,"tag":139,"props":9968,"children":9969},{},[9970],{"type":34,"value":9971},"QoL",{"type":34,"value":9973}," – auto-run, running indoors, PC from anywhere, FLY, bike, fishing rod and Repel in one press, a switch to turn wild encounters off, and reusable TMs.",{"type":28,"tag":62,"props":9975,"children":9976},{},[9977,9982],{"type":28,"tag":139,"props":9978,"children":9979},{},[9980],{"type":34,"value":9981},"Smart fast-forward",{"type":34,"value":9983}," – drops to 1x in menus and on the map, keeps battles fast, plus slow motion and a speed cap (1.5× to 10×, or no cap).",{"type":28,"tag":62,"props":9985,"children":9986},{},[9987,9992],{"type":28,"tag":139,"props":9988,"children":9989},{},[9990],{"type":34,"value":9991},"Fast-forward music",{"type":34,"value":9993}," (alpha) that keeps playing the song at its normal speed instead of chipmunk sound.",{"type":28,"tag":62,"props":9995,"children":9996},{},[9997,10002],{"type":28,"tag":139,"props":9998,"children":9999},{},[10000],{"type":34,"value":10001},"Rewind",{"type":34,"value":10003}," (optional) – hold the REWIND HOLD hotkey to play the last ~20 seconds backwards. It never touches your save file.",{"type":28,"tag":62,"props":10005,"children":10006},{},[10007,10012],{"type":28,"tag":139,"props":10008,"children":10009},{},[10010],{"type":34,"value":10011},"Real-time clock",{"type":34,"value":10013}," for the games that use one (Ruby, Sapphire, Emerald and ROM hacks): day and night, berries, tides and daily events follow the device's clock.",{"type":28,"tag":62,"props":10015,"children":10016},{},[10017,10022],{"type":28,"tag":139,"props":10018,"children":10019},{},[10020],{"type":34,"value":10021},"Game speed",{"type":34,"value":10023}," – a pace that stays per game: 0.25×, 0.5×, 1×, 1.5×, 2×, 3× or 4×.",{"type":28,"tag":62,"props":10025,"children":10026},{},[10027,10032],{"type":28,"tag":139,"props":10028,"children":10029},{},[10030],{"type":34,"value":10031},"Game volume",{"type":34,"value":10033}," – a GAME VOLUME slider, MUTE GAME and a MUTE hotkey.",{"type":28,"tag":62,"props":10035,"children":10036},{},[10037,10042],{"type":28,"tag":139,"props":10038,"children":10039},{},[10040],{"type":34,"value":10041},"DS CPU BOOST",{"type":34,"value":10043}," – fewer slowdowns in DS games.",{"type":28,"tag":62,"props":10045,"children":10046},{},[10047,10051],{"type":28,"tag":139,"props":10048,"children":10049},{},[10050],{"type":34,"value":7724},{"type":34,"value":10052}," (optional) – an LCD grid, scanlines or a CRT look, and the colours as the GBA's own screen showed them, on the game and, if you like, the companion screen too. Edge smoothing (xBRZ, xBR, ScaleFX) on the game. UNLIT SCREEN shows the first GBA's screen with no light behind it.",{"type":28,"tag":62,"props":10054,"children":10055},{},[10056,10061,10063,10069,10071,10076],{"type":28,"tag":139,"props":10057,"children":10058},{},[10059],{"type":34,"value":10060},"Overlays",{"type":34,"value":10062}," (optional) – a frame around the game: two of PokeDaisy's own, or your own RetroArch overlays (a ",{"type":28,"tag":43,"props":10064,"children":10066},{"className":10065},[],[10067],{"type":34,"value":10068},".cfg",{"type":34,"value":10070}," with its PNG, a ",{"type":28,"tag":43,"props":10072,"children":10074},{"className":10073},[],[10075],{"type":34,"value":7497},{"type":34,"value":10077}," of them, or any PNG with a see-through screen). None come bundled.",{"type":28,"tag":62,"props":10079,"children":10080},{},[10081,10086],{"type":28,"tag":139,"props":10082,"children":10083},{},[10084],{"type":34,"value":10085},"Controls",{"type":34,"value":10087}," – remap every game button and hotkey, or turn hotkeys off. X and Y act as a second START\u002FSELECT (configurable). TURBO A and TURBO B can go on any button. Touch controls appear when no controller is connected, with ready-made layouts, size, opacity and EDIT LAYOUT to drag and resize each button. Bluetooth and USB controllers (8BitDo, GameSir, Xbox, ...) connect while a game is running without restarting it, and HOME \u002F guide works like a BACK tap for the companion.",{"type":28,"tag":62,"props":10089,"children":10090},{},[10091,10096],{"type":28,"tag":139,"props":10092,"children":10093},{},[10094],{"type":34,"value":10095},"Settings search",{"type":34,"value":10097}," – type what you're after and the matching settings show, whatever PokeDaisy calls them.",{"type":28,"tag":62,"props":10099,"children":10100},{},[10101,10106],{"type":28,"tag":139,"props":10102,"children":10103},{},[10104],{"type":34,"value":10105},"Themes",{"type":34,"value":10107}," – PokeDaisy (the default) or game-coloured ones for the library and settings, with 8 new themes and a few for the holidays.",{"type":28,"tag":62,"props":10109,"children":10110},{},[10111,10116],{"type":28,"tag":139,"props":10112,"children":10113},{},[10114],{"type":34,"value":10115},"Makeovers",{"type":34,"value":10117}," – play one game as another game's hero, a Pokémon following you, and day and night tints.",{"type":28,"tag":62,"props":10119,"children":10120},{},[10121,10126],{"type":28,"tag":139,"props":10122,"children":10123},{},[10124],{"type":34,"value":10125},"Stretch option",{"type":34,"value":10127}," for 16:9 top screens.",{"type":28,"tag":37,"props":10129,"children":10130},{},[10131],{"type":28,"tag":139,"props":10132,"children":10133},{},[10134],{"type":34,"value":10135},"Saves, library and more",{"type":28,"tag":58,"props":10137,"children":10138},{},[10139,10159,10164,10174,10184,10228,10233,10238,10243],{"type":28,"tag":62,"props":10140,"children":10141},{},[10142,10144,10149,10151,10157],{"type":34,"value":10143},"Saves are standard ",{"type":28,"tag":43,"props":10145,"children":10147},{"className":10146},[],[10148],{"type":34,"value":2926},{"type":34,"value":10150},"\u002F",{"type":28,"tag":43,"props":10152,"children":10154},{"className":10153},[],[10155],{"type":34,"value":10156},".srm",{"type":34,"value":10158}," files, the same format as mGBA and RetroArch, so you can move them between emulators freely. Every start backs up your save (see RESTORE BACKUP in the Library), with more SAVE BACKUPS options. To share saves with RetroArch, add its save folders under Settings > FOLDERS > ALSO LOOK IN.",{"type":28,"tag":62,"props":10160,"children":10161},{},[10162],{"type":34,"value":10163},"Library with SteamGridDB or RetroAchievements box art, list or grid view, recently played, favorites, clean game names, and long-press options to rename, hide, load a save or see game info. Refresh rescans your ROMs folder and tells you what it found.",{"type":28,"tag":62,"props":10165,"children":10166},{},[10167,10172],{"type":28,"tag":139,"props":10168,"children":10169},{},[10170],{"type":34,"value":10171},"TOOLS",{"type":34,"value":10173}," in the library: PATCH A ROM (BPS patching that finds the base ROM by itself), LINK PLAY (two to four GBA games at once on one link cable, to trade — trade evolutions too — battle and mix records between your games or two saves of one), SAVE EDITOR (rearrange a game's PC, change its bag and moves) and TRADE SAVES (trade Pokémon between two of your games' save files with the games closed; FireRed, LeafGreen, Emerald, Ruby and Sapphire, by the games' own rules).",{"type":28,"tag":62,"props":10175,"children":10176},{},[10177,10182],{"type":28,"tag":139,"props":10178,"children":10179},{},[10180],{"type":34,"value":10181},"Dual-screen launcher",{"type":34,"value":10183}," – with two screens, the game list is on one and the game you're on on the other: its cover, when you last played it and whether it has a save. X swaps the screens, A opens the game, B its options, Y Settings.",{"type":28,"tag":62,"props":10185,"children":10186},{},[10187,10189,10194,10195,10201,10203,10208,10209,10214,10215,10220,10221,10226],{"type":34,"value":10188},"Zipped ",{"type":28,"tag":43,"props":10190,"children":10192},{"className":10191},[],[10193],{"type":34,"value":7497},{"type":34,"value":1475},{"type":28,"tag":43,"props":10196,"children":10198},{"className":10197},[],[10199],{"type":34,"value":10200},".7z",{"type":34,"value":10202}," ROMs work in your ROMs folder, the + import and frontends; plain ",{"type":28,"tag":43,"props":10204,"children":10206},{"className":10205},[],[10207],{"type":34,"value":7458},{"type":34,"value":1499},{"type":28,"tag":43,"props":10210,"children":10212},{"className":10211},[],[10213],{"type":34,"value":7472},{"type":34,"value":1499},{"type":28,"tag":43,"props":10216,"children":10218},{"className":10217},[],[10219],{"type":34,"value":7465},{"type":34,"value":1475},{"type":28,"tag":43,"props":10222,"children":10224},{"className":10223},[],[10225],{"type":34,"value":3003},{"type":34,"value":10227}," files work too.",{"type":28,"tag":62,"props":10229,"children":10230},{},[10231],{"type":34,"value":10232},"Games the companion can't read yet are tagged NOT SUPPORTED, with an ASK FOR SUPPORT button. Best effort: PokeDaisy reads the ROM as each game it knows and keeps the one that fits; when no game clearly fits, the companion asks WHICH GAME IS THIS? with the likely ones first.",{"type":28,"tag":62,"props":10234,"children":10235},{},[10236],{"type":34,"value":10237},"Works with frontends like ES-DE, Cocoon and iiSU. They can launch a game straight into PokeDaisy.",{"type":28,"tag":62,"props":10239,"children":10240},{},[10241],{"type":34,"value":10242},"App text in English, Japanese, French, German, Italian, Spanish and Portuguese (Brazil's and Portugal's). It follows the ROM's language by default; change it with the LANGUAGE row in Settings. Pokémon, move and item names stay as the game has them.",{"type":28,"tag":62,"props":10244,"children":10245},{},[10246],{"type":34,"value":10247},"Save states on hotkeys, with undo, full button remapping, themes, and an optional status bar (game, location, money, clock and battery).",{"type":28,"tag":29,"props":10249,"children":10250},{"id":1906},[10251],{"type":34,"value":1909},{"type":28,"tag":37,"props":10253,"children":10254},{},[10255],{"type":34,"value":10256},"Any Game Boy, Game Boy Color, GBA or DS game plays. The companion needs one of the games below, in the exact version listed (ROM hacks are recognized by their file, so another version shows a \"not supported\" notice). ✅ works · ◐ partly · — not yet.",{"type":28,"tag":58,"props":10258,"children":10259},{},[10260,10265,10270,10275,10280,10285,10290,10295,10300,10305,10310,10315,10320,10325,10330,10335,10340,10345,10350,10355,10360,10365,10370,10375,10380,10385,10390,10395,10400,10405,10410,10415,10420,10425,10430,10435,10440,10445,10450,10455,10460,10465,10470,10475,10480,10485,10490,10495,10500,10505,10510,10515,10520,10525,10530,10535,10540,10545,10550,10555,10560,10565,10570,10575,10580,10585,10590],{"type":28,"tag":62,"props":10261,"children":10262},{},[10263],{"type":34,"value":10264},"Pokémon Red \u002F Blue (GB, USA\u002FEurope): ✅ Party, Bag, Map, Dex, Guide · ◐ Battle",{"type":28,"tag":62,"props":10266,"children":10267},{},[10268],{"type":34,"value":10269},"PureRed \u002F PureBlue (GB, 2.7.6): ✅ Party, Bag, Map, Dex · ◐ Battle · — Guide",{"type":28,"tag":62,"props":10271,"children":10272},{},[10273],{"type":34,"value":10274},"Pokémon Yellow (GB, USA\u002FEurope): ✅ Party, Bag, Map, Dex, Guide · ◐ Battle",{"type":28,"tag":62,"props":10276,"children":10277},{},[10278],{"type":34,"value":10279},"Pokémon Yellow (GB, DE \u002F FR \u002F IT \u002F ES): ✅ Party, Bag, Map, Dex, Guide · ◐ Battle",{"type":28,"tag":62,"props":10281,"children":10282},{},[10283],{"type":34,"value":10284},"Pokémon Gold \u002F Silver (GBC, USA\u002FEurope): ✅ Party, Bag, Map, Dex · ◐ Battle · — Guide",{"type":28,"tag":62,"props":10286,"children":10287},{},[10288],{"type":34,"value":10289},"Pokémon Crystal (GBC, USA, USA\u002FEurope rev 1, AU): ✅ Party, Bag, Map, Dex, Guide · ◐ Battle",{"type":28,"tag":62,"props":10291,"children":10292},{},[10293],{"type":34,"value":10294},"Crystal Clear (GBC, 2.5.11, 2.6.0): ✅ Party, Bag, Map, Dex · ◐ Battle · — Guide",{"type":28,"tag":62,"props":10296,"children":10297},{},[10298],{"type":34,"value":10299},"Prism (GBC, 0.95 build 254): ✅ Party, Bag, Map, Dex · ◐ Battle · — Guide",{"type":28,"tag":62,"props":10301,"children":10302},{},[10303],{"type":34,"value":10304},"Polished Crystal (GBC, 3.2.0–3.2.3): ✅ all features",{"type":28,"tag":62,"props":10306,"children":10307},{},[10308],{"type":34,"value":10309},"Pokémon FireRed (USA\u002FEurope, rev 0 and 1): ✅ all features",{"type":28,"tag":62,"props":10311,"children":10312},{},[10313],{"type":34,"value":10314},"Pokémon FireRed (ES \u002F DE \u002F FR \u002F IT \u002F JP): ✅ all features",{"type":28,"tag":62,"props":10316,"children":10317},{},[10318],{"type":34,"value":10319},"Pokémon LeafGreen (USA\u002FEurope, rev 0 and 1): ✅ Party, Bag, Map, Dex, Guide · ◐ Battle",{"type":28,"tag":62,"props":10321,"children":10322},{},[10323],{"type":34,"value":10324},"Pokémon LeafGreen (ES \u002F DE \u002F FR \u002F IT \u002F JP): ✅ Party, Bag, Map, Dex, Guide · ◐ Battle",{"type":28,"tag":62,"props":10326,"children":10327},{},[10328],{"type":34,"value":10329},"Pokémon Emerald (USA\u002FEurope): ✅ all features",{"type":28,"tag":62,"props":10331,"children":10332},{},[10333],{"type":34,"value":10334},"Pokémon Emerald (ES \u002F DE \u002F FR \u002F IT \u002F JP): ✅ all features",{"type":28,"tag":62,"props":10336,"children":10337},{},[10338],{"type":34,"value":10339},"FireRed \u002F Emerald, randomized (UPR ZX 4.6.1, USA\u002FEurope): ✅ Party, Bag, Battle, Map, Dex · ◐ Guide",{"type":28,"tag":62,"props":10341,"children":10342},{},[10343],{"type":34,"value":10344},"Pokémon Ruby (USA, rev 0, 1 and 2): ✅ Party, Bag, Map, Dex, Guide · ◐ Battle",{"type":28,"tag":62,"props":10346,"children":10347},{},[10348],{"type":34,"value":10349},"Pokémon Ruby (ES \u002F DE \u002F FR \u002F IT \u002F JP, rev 0–1): ✅ Party, Bag, Map, Dex, Guide · ◐ Battle",{"type":28,"tag":62,"props":10351,"children":10352},{},[10353],{"type":34,"value":10354},"Pokémon Sapphire (USA, rev 0, 1 and 2): ✅ Party, Bag, Map, Dex, Guide · ◐ Battle",{"type":28,"tag":62,"props":10356,"children":10357},{},[10358],{"type":34,"value":10359},"Pokémon Sapphire (ES \u002F DE \u002F FR \u002F IT \u002F JP, rev 0–1): ✅ Party, Bag, Map, Dex, Guide · ◐ Battle",{"type":28,"tag":62,"props":10361,"children":10362},{},[10363],{"type":34,"value":10364},"Pokémon Platinum (DS, USA rev 1): ✅ Party, Bag, Map, Dex, Guide · ◐ Battle",{"type":28,"tag":62,"props":10366,"children":10367},{},[10368],{"type":34,"value":10369},"Pokémon HeartGold (DS, USA, Germany rev 0): ✅ Party, Bag, Map, Dex, Guide · — Battle",{"type":28,"tag":62,"props":10371,"children":10372},{},[10373],{"type":34,"value":10374},"Pokémon SoulSilver (DS, USA, Germany rev 0): ✅ Party, Bag, Map, Dex, Guide · — Battle",{"type":28,"tag":62,"props":10376,"children":10377},{},[10378],{"type":34,"value":10379},"Pokémon Black (DS, USA\u002FEurope): ✅ Party, Bag, Map, Dex, Guide · ◐ Battle",{"type":28,"tag":62,"props":10381,"children":10382},{},[10383],{"type":34,"value":10384},"Pokémon White (DS, USA\u002FEurope): ✅ Party, Bag, Map, Dex, Guide · ◐ Battle",{"type":28,"tag":62,"props":10386,"children":10387},{},[10388],{"type":34,"value":10389},"Pokémon Black 2 (DS, USA\u002FEurope): ✅ Party, Bag, Map, Dex, Guide · ◐ Battle",{"type":28,"tag":62,"props":10391,"children":10392},{},[10393],{"type":34,"value":10394},"Pokémon White 2 (DS, USA\u002FEurope): ✅ Party, Bag, Map, Dex, Guide · ◐ Battle",{"type":28,"tag":62,"props":10396,"children":10397},{},[10398],{"type":34,"value":10399},"Origin HeartGold (DS, 4.0.3 English 1.0.0): ✅ Party, Bag, Map, Dex · ◐ Battle · — Guide",{"type":28,"tag":62,"props":10401,"children":10402},{},[10403],{"type":34,"value":10404},"Pokémon Unbound (2.1.1.1): ✅ Party, Bag, Map, Dex, Guide · ◐ Battle",{"type":28,"tag":62,"props":10406,"children":10407},{},[10408],{"type":34,"value":10409},"Pokémon Unbound (2.1.1.1 French): ✅ Party, Bag, Map, Dex, Guide · ◐ Battle",{"type":28,"tag":62,"props":10411,"children":10412},{},[10413],{"type":34,"value":10414},"Pokémon Radical Red (4.1): ✅ Party, Bag, Map, Dex, Guide · ◐ Battle",{"type":28,"tag":62,"props":10416,"children":10417},{},[10418],{"type":34,"value":10419},"Pokémon Gaia (3.2): ✅ Party, Bag, Map, Dex, Guide · ◐ Battle",{"type":28,"tag":62,"props":10421,"children":10422},{},[10423],{"type":34,"value":10424},"Pokémon Odyssey (4.1.1): ✅ Party, Bag, Map, Dex, Guide · ◐ Battle",{"type":28,"tag":62,"props":10426,"children":10427},{},[10428],{"type":34,"value":10429},"Pokémon Heart and Soul (2.0.6): ✅ all features",{"type":28,"tag":62,"props":10431,"children":10432},{},[10433],{"type":34,"value":10434},"Pokémon Amethyst (1.3.0, 1.4.1): ✅ Party, Bag, Map, Dex, Guide · ◐ Battle",{"type":28,"tag":62,"props":10436,"children":10437},{},[10438],{"type":34,"value":10439},"Celia's Stupid Romhack (1.1.4): ✅ Party, Bag, Map, Dex, Guide · ◐ Battle",{"type":28,"tag":62,"props":10441,"children":10442},{},[10443],{"type":34,"value":10444},"Orange Islands (Beta 5.7, an older beta): ✅ Party, Bag, Map, Dex, Guide · ◐ Battle",{"type":28,"tag":62,"props":10446,"children":10447},{},[10448],{"type":34,"value":10449},"Ultra Violet (1.22): ✅ Party, Bag, Map, Dex, Guide · ◐ Battle",{"type":28,"tag":62,"props":10451,"children":10452},{},[10453],{"type":34,"value":10454},"FireRed Rocket Edition (the one release): ✅ Party, Bag, Map, Dex, Guide · ◐ Battle",{"type":28,"tag":62,"props":10456,"children":10457},{},[10458],{"type":34,"value":10459},"Ash Gray (4.5.3, Fork Bug Fix 1.0): ✅ Party, Bag, Map, Dex, Guide · ◐ Battle",{"type":28,"tag":62,"props":10461,"children":10462},{},[10463],{"type":34,"value":10464},"Ghost Grey (1.0.1, 1.0.2, 1.0.4): ✅ Party, Bag, Map, Dex, Guide · ◐ Battle",{"type":28,"tag":62,"props":10466,"children":10467},{},[10468],{"type":34,"value":10469},"Let's Go Pikachu \u002F Eevee (English, 4 builds): ✅ Party, Bag, Map, Dex, Guide · ◐ Battle",{"type":28,"tag":62,"props":10471,"children":10472},{},[10473],{"type":34,"value":10474},"Sword and Shield Ultimate Plus (1.2.1.2 + its 3 patches): ✅ Party, Bag, Map, Dex, Guide · ◐ Battle",{"type":28,"tag":62,"props":10476,"children":10477},{},[10478],{"type":34,"value":10479},"GS Chronicles (2.7.6): ✅ Party, Bag, Map, Dex, Guide · ◐ Battle",{"type":28,"tag":62,"props":10481,"children":10482},{},[10483],{"type":34,"value":10484},"Recharged Yellow (1.8.0, 1.9.0, 1.9.4, 1.9.7): ✅ Party, Bag, Map, Dex, Guide · ◐ Battle",{"type":28,"tag":62,"props":10486,"children":10487},{},[10488],{"type":34,"value":10489},"Emerald Legacy (1.1.4): ✅ Party, Bag, Map, Dex, Guide · ◐ Battle",{"type":28,"tag":62,"props":10491,"children":10492},{},[10493],{"type":34,"value":10494},"Pokémon Lazarus (2.0): ✅ Party, Bag, Map, Dex · ◐ Battle, ◐ Guide",{"type":28,"tag":62,"props":10496,"children":10497},{},[10498],{"type":34,"value":10499},"Emerald Seaglass (3.0): ✅ Party, Bag, Map, Dex · ◐ Battle, ◐ Guide",{"type":28,"tag":62,"props":10501,"children":10502},{},[10503],{"type":34,"value":10504},"Too Many Types 2 (1.5.2): ✅ Party, Bag, Map, Dex · ◐ Battle, ◐ Guide",{"type":28,"tag":62,"props":10506,"children":10507},{},[10508],{"type":34,"value":10509},"Glazed (9.2.0): ✅ Party, Bag, Map, Dex · ◐ Battle, ◐ Guide",{"type":28,"tag":62,"props":10511,"children":10512},{},[10513],{"type":34,"value":10514},"Emerald Imperium (1.3.1): ✅ Party, Bag, Map, Dex · ◐ Battle, ◐ Guide",{"type":28,"tag":62,"props":10516,"children":10517},{},[10518],{"type":34,"value":10519},"Quetzal (English Alpha 9 v0): ✅ Party, Bag, Map, Dex · ◐ Battle, ◐ Guide",{"type":28,"tag":62,"props":10521,"children":10522},{},[10523],{"type":34,"value":10524},"Quetzal (Spanish Alpha 9 v0): ✅ Party, Bag, Map, Dex · ◐ Battle, ◐ Guide",{"type":28,"tag":62,"props":10526,"children":10527},{},[10528],{"type":34,"value":10529},"Quetzal (Alpha 9 v1, EN \u002F ES): ✅ Party, Bag, Map, Dex · ◐ Battle, ◐ Guide",{"type":28,"tag":62,"props":10531,"children":10532},{},[10533],{"type":34,"value":10534},"Quetzal (Alpha 0.8.4, EN \u002F ES): ✅ Party, Bag, Map, Dex · ◐ Battle, ◐ Guide",{"type":28,"tag":62,"props":10536,"children":10537},{},[10538],{"type":34,"value":10539},"Moemon Quetzal (Alpha 0.8.4 Hotfix, EN \u002F ES): ✅ Party, Bag, Map, Dex · ◐ Battle, ◐ Guide",{"type":28,"tag":62,"props":10541,"children":10542},{},[10543],{"type":34,"value":10544},"Super Mariomon (1.2.1–1.3, 1.5.1, 1.5.2): ✅ Party, Bag, Map, Dex · ◐ Battle, ◐ Guide",{"type":28,"tag":62,"props":10546,"children":10547},{},[10548],{"type":34,"value":10549},"Recharged Emerald (2.2.5, 2.2.8, Rebalanced): ✅ Party, Bag, Map, Dex · ◐ Battle, ◐ Guide",{"type":28,"tag":62,"props":10551,"children":10552},{},[10553],{"type":34,"value":10554},"Elite Redux (2.65.3b, 2.65.4.1b): ✅ Party, Bag, Map, Dex · ◐ Battle, ◐ Guide",{"type":28,"tag":62,"props":10556,"children":10557},{},[10558],{"type":34,"value":10559},"Team Rocket Dragonsden (1.5): ✅ Party, Bag · ◐ Battle, ◐ Map · — Dex · ◐ Guide",{"type":28,"tag":62,"props":10561,"children":10562},{},[10563],{"type":34,"value":10564},"Team Rocket Dragonsden (2026 3.0.9, Spanish): ✅ Party, Bag, Map, Dex · ◐ Battle, ◐ Guide",{"type":28,"tag":62,"props":10566,"children":10567},{},[10568],{"type":34,"value":10569},"Wishes of Tomorrow (1.2.6): ✅ Party, Bag, Map, Dex · ◐ Battle, ◐ Guide",{"type":28,"tag":62,"props":10571,"children":10572},{},[10573],{"type":34,"value":10574},"Dreamstone Mysteries (the one release): ✅ Party, Bag, Map, Dex · ◐ Battle, ◐ Guide",{"type":28,"tag":62,"props":10576,"children":10577},{},[10578],{"type":34,"value":10579},"Monomyth (1.0): ✅ Party, Bag, Map, Dex · ◐ Battle, ◐ Guide",{"type":28,"tag":62,"props":10581,"children":10582},{},[10583],{"type":34,"value":10584},"Emerald Rogue (2.2.1-EX): ✅ Party, Bag, Battle, Map, Dex · — Guide",{"type":28,"tag":62,"props":10586,"children":10587},{},[10588],{"type":34,"value":10589},"Pokémon SoulGold (1.1.4, 1.2, 1.2.1): ✅ Party, Bag, Map, Dex · ◐ Battle, ◐ Guide",{"type":28,"tag":62,"props":10591,"children":10592},{},[10593],{"type":34,"value":10594},"Pokémon R.O.W.E. (2.1.9.1 Experimental): ✅ Party, Bag · ◐ Battle, ◐ Map, ◐ Dex · — Guide",{"type":28,"tag":37,"props":10596,"children":10597},{},[10598],{"type":34,"value":10599},"Red, Blue, Yellow, Gold, Silver, Crystal and the Crystal hacks Crystal Clear, Prism and Polished Crystal are the Game Boy games the companion reads, each in the game's own look (its font, icons and town maps, rebuilt from your ROM; Red and Blue in the colours a Super Game Boy gives them). The German, French, Italian and Spanish Yellows show their own names, Pokédex pages and battle words. Prism shows its own Pokémon, moves, types, six town maps and its own Pokédex. Polished Crystal shows its own Pokémon (regional forms included), moves, types, items, its Johto, Kanto and Orange Islands maps and its 289 in National order; its faithful builds keep the original games' types and moves.",{"type":28,"tag":37,"props":10601,"children":10602},{},[10603],{"type":34,"value":10604},"Platinum, HeartGold, SoulSilver, Black, White, Black 2, White 2 and the Origin HeartGold hack are the DS games the companion reads, in the releases listed (Platinum's revision 1, Black's, White's, Black 2's and White 2's USA\u002FEurope releases, HeartGold's and SoulSilver's USA and German releases); their pictures, Pokédex pages and maps come from your cart. Platinum's, Black's, White's, Black 2's and White 2's battles show in the BATTLE tab, HeartGold's and SoulSilver's not yet, and on the DS the battle buttons don't press the game's menus yet. Origin HeartGold's battle system is its own: the battle panes read it, but their buttons can't press its menus, and it has no guide yet. On a one-screen device, hold it sideways and the touch screen floats in when the game needs it, with five layouts (L2 brings it in, R2 switches the layout).",{"type":28,"tag":37,"props":10606,"children":10607},{},[10608],{"type":34,"value":10609},"Map ◐ means place names only, without the map picture. Guide ◐ means the live pages only (the wild encounters here and the next boss), without the area lists. Battle ◐ means the battle panes work but haven't been checked in every kind of battle. Team Rocket Dragonsden is DragonsdenTV's Team Rocket Edition, not FireRed Rocket Edition. FireRed (rev 0 and 1) and Emerald randomized with Universal Pokémon Randomizer ZX 4.6.1 work with any settings and seed: the companion reads the randomized types, moves, teams, wild Pokémon and items from the ROM, and the guide leaves out the gift and legendary Pokémon it can't know. Monomyth's natures are its own: the summary names them, and they change no stat. With Wishes of Tomorrow's randomizer on, the guide and the Pokédex's AREA show the wild Pokémon your save meets. The guides were written from each game's own data and may contain mistakes; the app says so the first time you open one.",{"type":28,"tag":29,"props":10611,"children":10612},{"id":99},[10613],{"type":34,"value":102},{"type":28,"tag":58,"props":10615,"children":10616},{},[10617,10636,10641,10692],{"type":28,"tag":62,"props":10618,"children":10619},{},[10620,10621,10627,10628,10634],{"type":34,"value":1974},{"type":28,"tag":43,"props":10622,"children":10624},{"className":10623},[],[10625],{"type":34,"value":10626},"PokeDaisy-\u003Cversion>.apk",{"type":34,"value":1981},{"type":28,"tag":705,"props":10629,"children":10632},{"href":10630,"rel":10631},"https:\u002F\u002Fgithub.com\u002Flidor30\u002Fpokedaisy\u002Freleases\u002Flatest",[709],[10633],{"type":34,"value":712},{"type":34,"value":10635}," on the device.",{"type":28,"tag":62,"props":10637,"children":10638},{},[10639],{"type":34,"value":10640},"Open it. If Android asks, allow your browser or file manager to install apps.",{"type":28,"tag":62,"props":10642,"children":10643},{},[10644,10646],{"type":34,"value":10645},"Open PokeDaisy. A short setup helps you:\n",{"type":28,"tag":58,"props":10647,"children":10648},{},[10649,10672,10682],{"type":28,"tag":62,"props":10650,"children":10651},{},[10652,10657,10659,10664,10665,10670],{"type":28,"tag":139,"props":10653,"children":10654},{},[10655],{"type":34,"value":10656},"Link your ROMs folder",{"type":34,"value":10658}," (optional). Every supported game in it shows up in your library, played right where it is. New games are picked up every time you open the app. ",{"type":28,"tag":43,"props":10660,"children":10662},{"className":10661},[],[10663],{"type":34,"value":7497},{"type":34,"value":1475},{"type":28,"tag":43,"props":10666,"children":10668},{"className":10667},[],[10669],{"type":34,"value":10200},{"type":34,"value":10671}," ROMs work too.",{"type":28,"tag":62,"props":10673,"children":10674},{},[10675,10680],{"type":28,"tag":139,"props":10676,"children":10677},{},[10678],{"type":34,"value":10679},"Choose where saves go.",{"type":34,"value":10681}," Use PokeDaisy's own folder, or point it at another emulator's (like RetroArch's) to keep playing the same saves.",{"type":28,"tag":62,"props":10683,"children":10684},{},[10685,10690],{"type":28,"tag":139,"props":10686,"children":10687},{},[10688],{"type":34,"value":10689},"Add cover art",{"type":34,"value":10691}," (optional) with a free SteamGridDB or RetroAchievements Web API key.",{"type":28,"tag":62,"props":10693,"children":10694},{},[10695,10697,10704],{"type":34,"value":10696},"You can change all of this later in Settings. The full manual is at ",{"type":28,"tag":705,"props":10698,"children":10701},{"href":10699,"rel":10700},"https:\u002F\u002Fpokedaisy.com\u002Fdocs\u002F",[709],[10702],{"type":34,"value":10703},"pokedaisy.com\u002Fdocs",{"type":34,"value":10705},", and inside the app under Settings > HELP.",{"type":28,"tag":37,"props":10707,"children":10708},{},[10709,10714,10716,10722],{"type":28,"tag":139,"props":10710,"children":10711},{},[10712],{"type":34,"value":10713},"Updating from the old PokeDaisey:",{"type":34,"value":10715}," the app was renamed from PokeDaisey to PokeDaisy, and Android treats it as a brand new app, so uninstall the old PokeDaisey to avoid having both on your device. If your ROMs and saves live in your own folders (like RetroArch's), nothing is lost — just point the new app at them in the first-time setup. If you kept saves in the old app's own folder (",{"type":28,"tag":43,"props":10717,"children":10719},{"className":10718},[],[10720],{"type":34,"value":10721},"Android\u002Fdata\u002Fcom.pokedaisey.app\u002F",{"type":34,"value":10723},"), copy them out before uninstalling, since Android deletes that folder with the app. Settings start fresh in the new app.",{"type":28,"tag":37,"props":10725,"children":10726},{},[10727],{"type":34,"value":10728},"No games are included — use your own legally dumped ROMs. PokeDaisy checks for a new version each time you open it and offers to install it; you can also check from Settings > VERSION.",{"type":28,"tag":37,"props":10730,"children":10731},{},[10732,10734,10741,10742,10749],{"type":34,"value":10733},"Frontends: step-by-step guides to launch games from ",{"type":28,"tag":705,"props":10735,"children":10738},{"href":10736,"rel":10737},"https:\u002F\u002Fgithub.com\u002Flidor30\u002Fpokedaisy\u002Fblob\u002Fmain\u002Fdocs\u002Fiisu\u002FREADME.md",[709],[10739],{"type":34,"value":10740},"iiSU",{"type":34,"value":1475},{"type":28,"tag":705,"props":10743,"children":10746},{"href":10744,"rel":10745},"https:\u002F\u002Fgithub.com\u002Flidor30\u002Fpokedaisy\u002Fblob\u002Fmain\u002Fdocs\u002Fes-de\u002FREADME.md",[709],[10747],{"type":34,"value":10748},"ES-DE",{"type":34,"value":10750},". ES-DE, Cocoon and iiSU can launch a game straight into PokeDaisy.",{"title":6,"searchDepth":225,"depth":225,"links":10752},[10753,10754,10755,10756],{"id":31,"depth":225,"text":35},{"id":53,"depth":225,"text":56},{"id":1906,"depth":225,"text":1909},{"id":99,"depth":225,"text":102},"content:pokedaisy:index.md","pokedaisy\u002Findex.md","pokedaisy\u002Findex",{"_path":10761,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":10762,"description":10763,"date":10764,"slug":10765,"category":12,"generated":13,"media":10766,"source":10773,"project_page":10774,"body":10775,"_type":231,"_id":10958,"_source":233,"_file":10959,"_stem":10960,"_extension":236},"\u002Fcinderbox-ds","Cinderbox Dual Screen","A free, open-source SMAPI mod that turns the AYN Thor's second screen into a touch companion for Stardew Valley running in Cinderbox.","2026-10-06 06:24","cinderbox-ds",[10767,10769,10771],{"type":16,"url":10768},"\u002Fcontent\u002Fcinderbox-ds\u002Fpreview.webp",{"type":16,"url":10770},"\u002Fcontent\u002Fcinderbox-ds\u002Fscreenshot-2.webp",{"type":16,"url":10772},"\u002Fcontent\u002Fcinderbox-ds\u002Fscreenshot-3.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1wycrwz\u002Ffree_opensource_dualscreen_mod_for_stardew_valley\u002F","https:\u002F\u002Fgithub.com\u002Fhung-eggie-do-covergo\u002Fstardew-thor-dual-screen",{"type":25,"children":10776,"toc":10952},[10777,10781,10786,10790,10883,10887,10905,10909],{"type":28,"tag":29,"props":10778,"children":10779},{"id":31},[10780],{"type":34,"value":35},{"type":28,"tag":37,"props":10782,"children":10783},{},[10784],{"type":34,"value":10785},"Thor Dual Screen is a free, open-source SMAPI mod that turns the AYN Thor's bottom screen into a touch companion for Stardew Valley running in Cinderbox. There is no extra app to juggle — it is just a SMAPI mod. Every feature adds something additive to the gameplay instead of being a second copy of the top screen: it does not mirror the map, repeat the HUD, or reveal anything the game hides from you. Every menu goes through the game's own code, so prices, rules and sounds are exactly the game's. The mod deliberately does not duplicate the top screen, does not change the game (no free items, money or skips), does not keep the screen awake, and never takes button focus away from the controller.",{"type":28,"tag":29,"props":10787,"children":10788},{"id":53},[10789],{"type":34,"value":56},{"type":28,"tag":58,"props":10791,"children":10792},{},[10793,10803,10813,10823,10833,10843,10853,10863,10873],{"type":28,"tag":62,"props":10794,"children":10795},{},[10796,10801],{"type":28,"tag":139,"props":10797,"children":10798},{},[10799],{"type":34,"value":10800},"Today:",{"type":34,"value":10802}," luck, tomorrow's weather, crops ready and dry, birthdays this week",{"type":28,"tag":62,"props":10804,"children":10805},{},[10806,10811],{"type":28,"tag":139,"props":10807,"children":10808},{},[10809],{"type":34,"value":10810},"Gifts:",{"type":34,"value":10812}," who loves the item you're holding, and the nearest villager's hearts",{"type":28,"tag":62,"props":10814,"children":10815},{},[10816,10821],{"type":28,"tag":139,"props":10817,"children":10818},{},[10819],{"type":34,"value":10820},"Bag:",{"type":34,"value":10822}," touch inventory with drag to rearrange, trash, and stack to chests",{"type":28,"tag":62,"props":10824,"children":10825},{},[10826,10831],{"type":28,"tag":139,"props":10827,"children":10828},{},[10829],{"type":34,"value":10830},"Craft:",{"type":34,"value":10832}," recipes with have\u002Fneed counts, one tap to craft",{"type":28,"tag":62,"props":10834,"children":10835},{},[10836,10841],{"type":28,"tag":139,"props":10837,"children":10838},{},[10839],{"type":34,"value":10840},"Aim:",{"type":34,"value":10842}," tap the exact tile to place things or swing your tool",{"type":28,"tag":62,"props":10844,"children":10845},{},[10846,10851],{"type":28,"tag":139,"props":10847,"children":10848},{},[10849],{"type":34,"value":10850},"Chests, shops, shipping bin and Clint's geodes:",{"type":34,"value":10852}," touch layouts while they're open — buy 1\u002F5\u002F25, sell any amount, pick an amount to ship, tap a geode to crack it",{"type":28,"tag":62,"props":10854,"children":10855},{},[10856,10861],{"type":28,"tag":139,"props":10857,"children":10858},{},[10859],{"type":34,"value":10860},"Title screen:",{"type":34,"value":10862}," buttons on the bottom",{"type":28,"tag":62,"props":10864,"children":10865},{},[10866,10871],{"type":28,"tag":139,"props":10867,"children":10868},{},[10869],{"type":34,"value":10870},"People:",{"type":34,"value":10872}," where everyone is right now",{"type":28,"tag":62,"props":10874,"children":10875},{},[10876,10881],{"type":28,"tag":139,"props":10877,"children":10878},{},[10879],{"type":34,"value":10880},"Tabs:",{"type":34,"value":10882}," hide and reorder tabs",{"type":28,"tag":29,"props":10884,"children":10885},{"id":1043},[10886],{"type":34,"value":1046},{"type":28,"tag":58,"props":10888,"children":10889},{},[10890,10895,10900],{"type":28,"tag":62,"props":10891,"children":10892},{},[10893],{"type":34,"value":10894},"AYN Thor (the bottom screen is the Android \"presentation\" display)",{"type":28,"tag":62,"props":10896,"children":10897},{},[10898],{"type":34,"value":10899},"Cinderbox with its SMAPI",{"type":28,"tag":62,"props":10901,"children":10902},{},[10903],{"type":34,"value":10904},"Your own copy of Stardew Valley from Steam or GOG — no game files ship with the mod",{"type":28,"tag":29,"props":10906,"children":10907},{"id":99},[10908],{"type":34,"value":102},{"type":28,"tag":58,"props":10910,"children":10911},{},[10912,10923,10934,10939],{"type":28,"tag":62,"props":10913,"children":10914},{},[10915,10917],{"type":34,"value":10916},"Download ThorDualScreen from the ",{"type":28,"tag":705,"props":10918,"children":10921},{"href":10919,"rel":10920},"https:\u002F\u002Fgithub.com\u002Fhung-eggie-do-covergo\u002Fstardew-thor-dual-screen\u002Freleases\u002Flatest",[709],[10922],{"type":34,"value":712},{"type":28,"tag":62,"props":10924,"children":10925},{},[10926,10928],{"type":34,"value":10927},"Copy the folder to ",{"type":28,"tag":43,"props":10929,"children":10931},{"className":10930},[],[10932],{"type":34,"value":10933},"\u002Fsdcard\u002FStardewValley\u002Fdesktop\u002FMods\u002FThorDualScreen\u002F",{"type":28,"tag":62,"props":10935,"children":10936},{},[10937],{"type":34,"value":10938},"Start the game from Cinderbox. The bottom screen lights up on the title screen",{"type":28,"tag":62,"props":10940,"children":10941},{},[10942,10944,10950],{"type":34,"value":10943},"Back up ",{"type":28,"tag":43,"props":10945,"children":10947},{"className":10946},[],[10948],{"type":34,"value":10949},"\u002Fsdcard\u002FStardewValley\u002Fdesktop\u002FSaves",{"type":34,"value":10951}," before trying any new mod",{"title":6,"searchDepth":225,"depth":225,"links":10953},[10954,10955,10956,10957],{"id":31,"depth":225,"text":35},{"id":53,"depth":225,"text":56},{"id":1043,"depth":225,"text":1046},{"id":99,"depth":225,"text":102},"content:cinderbox-ds:index.md","cinderbox-ds\u002Findex.md","cinderbox-ds\u002Findex",{"_path":10962,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":10963,"description":10964,"date":10965,"slug":10966,"category":242,"generated":13,"media":10967,"source":10970,"project_page":10971,"body":10972,"_type":231,"_id":11144,"_source":233,"_file":11145,"_stem":11146,"_extension":236},"\u002Fpixel-guide","Pixel Guide","A free companion app that shows guides, PDFs, maps, manuals and web content on the AYN Thor's second screen while you play.","2026-10-04 08:40","pixel-guide",[10968],{"type":16,"url":10969},"\u002Fcontent\u002Fpixel-guide\u002Fpreview.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1wwrxit\u002Fpixel_guide_dev_here_a_quick_update\u002F","https:\u002F\u002Fgithub.com\u002Frexmont\u002FPixel-Guide-Android",{"type":25,"children":10973,"toc":11139},[10974,10978,10983,10988,10993,10997,11130,11134],{"type":28,"tag":29,"props":10975,"children":10976},{"id":31},[10977],{"type":34,"value":35},{"type":28,"tag":37,"props":10979,"children":10980},{},[10981],{"type":34,"value":10982},"Pixel Guide is a free Android app for collecting and reading game reference material in one place. It was built as an Android alternative to the iOS-only Pocket Codex app and is designed and optimized for Android devices, including the AYN Thor's OLED screen. It lets you browse GameFAQs and Neoseeker guides, save complete HTML walkthroughs directly on your device, download manuals, import your own files, track RetroAchievements progress, and keep saved content available for local rendering.",{"type":28,"tag":37,"props":10984,"children":10985},{},[10986],{"type":34,"value":10987},"Pixel Guide is not a fully offline app. An internet connection is required to browse online guide sources, find new guides, download guides, save web pages, download manuals, use Pixie AI, and open external shortcut URLs. Once guide content has been saved or imported, Pixel Guide can render that content locally on your device, including without a network connection. TXT guide translation also works without a connection after the required Google ML Kit language models have been downloaded.",{"type":28,"tag":37,"props":10989,"children":10990},{},[10991],{"type":34,"value":10992},"The app is privacy-first: no telemetry, no tracking, and no background analytics. The only network call is a single proxy endpoint to IGDB for game search, hosted by Cloudflare.",{"type":28,"tag":29,"props":10994,"children":10995},{"id":53},[10996],{"type":34,"value":56},{"type":28,"tag":58,"props":10998,"children":10999},{},[11000,11005,11010,11015,11020,11025,11030,11035,11040,11045,11050,11055,11060,11065,11070,11075,11080,11085,11090,11095,11100,11105,11110,11115,11120,11125],{"type":28,"tag":62,"props":11001,"children":11002},{},[11003],{"type":34,"value":11004},"Browse and download guides directly from GameFAQs, including TXT and HTML walkthroughs",{"type":28,"tag":62,"props":11006,"children":11007},{},[11008],{"type":34,"value":11009},"Support for Neoseeker TXT guides and HTML walkthrough downloads, including multi-page guide saving",{"type":28,"tag":62,"props":11011,"children":11012},{},[11013],{"type":34,"value":11014},"Save complete single-file HTML guides directly on your device",{"type":28,"tag":62,"props":11016,"children":11017},{},[11018],{"type":34,"value":11019},"Built-in ad blocking while browsing supported web guides",{"type":28,"tag":62,"props":11021,"children":11022},{},[11023],{"type":34,"value":11024},"Add shortcut URLs for external guides, wikis, and custom resources",{"type":28,"tag":62,"props":11026,"children":11027},{},[11028],{"type":34,"value":11029},"Clean, distraction-free guide reader with Smart Text Formatting for classic TXT guides",{"type":28,"tag":62,"props":11031,"children":11032},{},[11033],{"type":34,"value":11034},"Table of Contents support and fast in-guide text search for TXT and HTML guides",{"type":28,"tag":62,"props":11036,"children":11037},{},[11038],{"type":34,"value":11039},"PDF fit-to-width reading",{"type":28,"tag":62,"props":11041,"children":11042},{},[11043],{"type":34,"value":11044},"Resume reading from where you last stopped",{"type":28,"tag":62,"props":11046,"children":11047},{},[11048],{"type":34,"value":11049},"Per-guide font size and font selection",{"type":28,"tag":62,"props":11051,"children":11052},{},[11053],{"type":34,"value":11054},"Theme-aware TXT and HTML guide display",{"type":28,"tag":62,"props":11056,"children":11057},{},[11058],{"type":34,"value":11059},"Controller navigation for readers, including page turning and scrolling",{"type":28,"tag":62,"props":11061,"children":11062},{},[11063],{"type":34,"value":11064},"Multi-window support for launching two Pixel Guide instances side by side",{"type":28,"tag":62,"props":11066,"children":11067},{},[11068],{"type":34,"value":11069},"Saved guide content can render locally without network access",{"type":28,"tag":62,"props":11071,"children":11072},{},[11073],{"type":34,"value":11074},"Download PDF manuals via ScreenScraper",{"type":28,"tag":62,"props":11076,"children":11077},{},[11078],{"type":34,"value":11079},"Download or import maps and charts",{"type":28,"tag":62,"props":11081,"children":11082},{},[11083],{"type":34,"value":11084},"Annotate image guides with text, shapes, and freehand doodles",{"type":28,"tag":62,"props":11086,"children":11087},{},[11088],{"type":34,"value":11089},"Library management: browse guides per game, manually add custom games, grid or list layout, custom artwork",{"type":28,"tag":62,"props":11091,"children":11092},{},[11093],{"type":34,"value":11094},"Game of the Month: discover the monthly retro game selected by the SBCGaming subreddit",{"type":28,"tag":62,"props":11096,"children":11097},{},[11098],{"type":34,"value":11099},"RetroAchievements: link your account, see progress, filter and sort achievements, and identify Missable, Progression, and Win Condition achievements",{"type":28,"tag":62,"props":11101,"children":11102},{},[11103],{"type":34,"value":11104},"Pixie AI: ask questions using Gemini AI with web search (requires your own Gemini API key; can be turned off)",{"type":28,"tag":62,"props":11106,"children":11107},{},[11108],{"type":34,"value":11109},"Supported file types: TXT, HTML, PDF, XLSX, CBZ, image-based maps and charts, imported local guides, and shortcut URLs",{"type":28,"tag":62,"props":11111,"children":11112},{},[11113],{"type":34,"value":11114},"Multiple reader themes, including OLED Black, Paperwhite, Matrix, Midnight, Plum, Dune Night, Dune Day, Cyberguide, Pumpkin, Velvet, Sage, Fuchsia, Harbor, and Rose",{"type":28,"tag":62,"props":11116,"children":11117},{},[11118],{"type":34,"value":11119},"Multi-language interface: English, Spanish, Portuguese, German, French, Italian, Turkish, and Polish",{"type":28,"tag":62,"props":11121,"children":11122},{},[11123],{"type":34,"value":11124},"On-device TXT guide translation powered by Google ML Kit, supporting 59 translation languages",{"type":28,"tag":62,"props":11126,"children":11127},{},[11128],{"type":34,"value":11129},"Supports Android 8.0 and newer, with a Universal APK option for broad device compatibility",{"type":28,"tag":29,"props":11131,"children":11132},{"id":99},[11133],{"type":34,"value":102},{"type":28,"tag":37,"props":11135,"children":11136},{},[11137],{"type":34,"value":11138},"Download and install the latest release of Pixel Guide from GitHub Releases on your AYN Thor. The app supports Android 8.0 and newer, and a Universal APK option is available for broad device compatibility. Open the app on the second screen while playing a game to view guides, PDFs, maps, manuals or web content. Browse GameFAQs and Neoseeker guides, save walkthroughs, download manuals, or import your own files; saved and imported guide content can be read locally without a network connection.",{"title":6,"searchDepth":225,"depth":225,"links":11140},[11141,11142,11143],{"id":31,"depth":225,"text":35},{"id":53,"depth":225,"text":56},{"id":99,"depth":225,"text":102},"content:pixel-guide:index.md","pixel-guide\u002Findex.md","pixel-guide\u002Findex",{"_path":11148,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":11149,"description":11150,"date":11151,"slug":11152,"category":242,"generated":13,"media":11153,"source":11160,"project_page":11161,"body":11162,"_type":231,"_id":11215,"_source":233,"_file":11216,"_stem":11217,"_extension":236},"\u002Fpokemmo-companion","PokeMMO Companion","A companion app for PokeMMO that watches the game on the Thor's top screen and shows alerts, battle help and Pokédex tools on the bottom screen.","2026-10-03 06:20","pokemmo-companion",[11154,11156,11158],{"type":16,"url":11155},"\u002Fcontent\u002Fpokemmo-companion\u002Fpreview.webp",{"type":16,"url":11157},"\u002Fcontent\u002Fpokemmo-companion\u002Fscreenshot-2.webp",{"type":16,"url":11159},"\u002Fcontent\u002Fpokemmo-companion\u002Fscreenshot-3.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1wvy4r1\u002Fi_made_a_companion_app_for_pokemmo_for_the_thor\u002F","https:\u002F\u002Fgithub.com\u002FPokeMMOCompanion\u002Fpokemmo-companion",{"type":25,"children":11163,"toc":11209},[11164,11168,11173,11177,11189,11193,11198,11204],{"type":28,"tag":29,"props":11165,"children":11166},{"id":31},[11167],{"type":34,"value":35},{"type":28,"tag":37,"props":11169,"children":11170},{},[11171],{"type":34,"value":11172},"PokeMMO Companion is a free, open-source Android app built for dual-screen handhelds like the AYN Thor: the game runs on the top screen and the companion on the bottom. It watches the game through Android's screen capture and reacts to what's happening on screen. It buzzes and plays a sound when a shiny shows up, and a different buzz when a wild Pokémon is still missing from your Pokédex. It also includes a battle helper that pops up on its own and ranks your moves by damage using PokeMMO's numbers, reads your party from the in-game summary screens, and offers a Pokédex with spawn locations, an EV horde finder, berry timers, breeding and egg-move tools, GTL prices and an encounter counter. The app never touches the game — no inputs, no memory reading — and nothing gets saved or uploaded. It is built around the Thor's dual screens, so it probably won't work right on other devices, and OCR isn't perfect: if something reads wrong you can edit it by hand in the app.",{"type":28,"tag":29,"props":11174,"children":11175},{"id":99},[11176],{"type":34,"value":102},{"type":28,"tag":37,"props":11178,"children":11179},{},[11180,11181,11187],{"type":34,"value":4165},{"type":28,"tag":705,"props":11182,"children":11185},{"href":11183,"rel":11184},"https:\u002F\u002Fgithub.com\u002FPokeMMOCompanion\u002Fpokemmo-companion\u002Freleases\u002Flatest",[709],[11186],{"type":34,"value":1078},{"type":34,"value":11188}," and open it on your device to install — Android will ask you to allow installs from your browser or file manager. Put the app on the bottom screen and PokeMMO on the top screen, then tap the lens icon (top left) and allow screen capture of the entire screen. In the app, go to Party → Read party, then open each Pokémon's summary in the game and page through its tabs. Optional: Tools → Settings → Pokémon sprites → Download to fetch sprites. The app is built for a 1920×1080 top screen running PokeMMO in landscape and requires Android 10 or newer (arm64). When a new version is out, the app tells you (Settings → Updates); install the newer APK over the old one and your data is kept.",{"type":28,"tag":29,"props":11190,"children":11191},{"id":53},[11192],{"type":34,"value":56},{"type":28,"tag":37,"props":11194,"children":11195},{},[11196],{"type":34,"value":11197},"Alerts: a strong buzz and sound for shinies and for Pokémon still needed for your Pokédex. Battle Assistant: reads your Pokémon and the opponent, ranks your moves by damage using PokeMMO mechanics (weather, screens, burn, stat stages), shows threats, speed and possible abilities, and remembers what trainers reveal — moves, abilities, items and stats worked out from the damage dealt and taken — plus catch chances per ball and a team builder for test matchups. Party: read from the in-game summary screens or entered by hand, with HP from the overworld rings, EV tracking toward targets, and level-up \u002F new-move detection. Pokédex: all 649 Pokémon with stats, EV yields, evolutions and wild locations; the Here view shows what spawns where you are right now (from the pause menu); an EV horde finder; caught \u002F needed tracking. Tools: berry farm timers with water, harvest and wither reminders, a breeding planner, egg-move chains, GTL prices and an encounter counter. Quests: a gym and League checklist per region, with your party's matchup against the next one.",{"type":28,"tag":29,"props":11199,"children":11201},{"id":11200},"privacy",[11202],{"type":34,"value":11203},"Privacy",{"type":28,"tag":37,"props":11205,"children":11206},{},[11207],{"type":34,"value":11208},"Screen capture sounds scary, but nothing leaves your phone: frames are looked at in memory a couple of times a second and then thrown away — the app never saves screenshots or recordings and never uploads what's on your screen. There is no account, login, ads or tracking, and the app never asks for your PokeMMO login and has no way to control the game. Internet is only used when you tap Download (Pokémon sprites from PokemonDB), open GTL prices (PokeMMO Hub's price API), or check for app updates (at most twice a day; can be turned off in Settings → Updates) — none of these requests contain anything from your screen. Text recognition runs on the phone (Google ML Kit, bundled model); ML Kit sends Google anonymous performance stats (phone model, OS version, timing), never the images or the text it reads. What it keeps on the phone: your party, settings, berry timers, encounter counts and Pokédex progress. A diagnostic log of what it reads is off unless you turn it on (Settings → Privacy), and turning it off deletes it. Android shows its own warning when capture starts and a notification while it runs — tap the lens or the notification's Stop to end it any time. PokeMMO's rules forbid automating the game, modifying the client and reading its memory or network traffic; this app does none of that. It only looks at the screen and only notifies, vibrates, plays sounds and counts — a person always plays the game.",{"title":6,"searchDepth":225,"depth":225,"links":11210},[11211,11212,11213,11214],{"id":31,"depth":225,"text":35},{"id":99,"depth":225,"text":102},{"id":53,"depth":225,"text":56},{"id":11200,"depth":225,"text":11203},"content:pokemmo-companion:index.md","pokemmo-companion\u002Findex.md","pokemmo-companion\u002Findex",{"_path":11219,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":11220,"description":11221,"date":11222,"slug":11223,"category":5422,"generated":13,"media":11224,"source":11231,"project_page":11232,"body":11233,"_type":231,"_id":11279,"_source":233,"_file":11280,"_stem":11281,"_extension":236},"\u002Fppsspp-duo","PPSSPP Duo","A fork of PPSSPP that keeps the game on the main screen and puts mods, quick actions or a touch gamepad on the AYN Thor's second screen.","2026-10-03 06:19","ppsspp-duo",[11225,11227,11229],{"type":16,"url":11226},"\u002Fcontent\u002Fppsspp-duo\u002Fpreview.webp",{"type":16,"url":11228},"\u002Fcontent\u002Fppsspp-duo\u002Fscreenshot-2.webp",{"type":16,"url":11230},"\u002Fcontent\u002Fppsspp-duo\u002Fscreenshot-3.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1wvsixa\u002Fppsspp_duo_dual_screen_psp_emulator\u002F","https:\u002F\u002Fgithub.com\u002Fmkaflowski\u002FPPSSPP-Duo",{"type":25,"children":11234,"toc":11273},[11235,11239,11244,11248,11253,11259,11264,11268],{"type":28,"tag":29,"props":11236,"children":11237},{"id":31},[11238],{"type":34,"value":35},{"type":28,"tag":37,"props":11240,"children":11241},{},[11242],{"type":34,"value":11243},"PPSSPP Duo is a fork of PPSSPP, the PSP emulator by Henrik Rydgård and the PPSSPP team. All the emulation is theirs; Duo adds the second screen. It installs as a separate app (org.ppsspp.ppssppduo) next to regular PPSSPP, so it doesn't replace it. The game stays on the main screen while the second screen shows a mod: quick actions, a gamepad, or a companion made for the game you're playing. It doesn't affect performance. No games are included — bring your own legally purchased games (dumped from your own UMDs or bought digitally).",{"type":28,"tag":29,"props":11245,"children":11246},{"id":53},[11247],{"type":34,"value":56},{"type":28,"tag":37,"props":11249,"children":11250},{},[11251],{"type":34,"value":11252},"A dashboard shows the game icon and title, FPS and speed, clock and battery, plus save\u002Fload state with a slot picker, fast forward, alternative speed, rewind, pause menu, pause, screenshot and mute. A gamepad provides every PSP button and the analog stick with multi-touch. A screen-off mode shows a black screen with the tabs hidden to save power, and a diagnostics tab exposes emulator status, display info and a memory view. Switch mods with the tabs at the top of the second screen; the choice is remembered per game. The gear tab holds the settings (default mod, haptics, which display to use).",{"type":28,"tag":29,"props":11254,"children":11256},{"id":11255},"games-with-dual-screen-mods",[11257],{"type":34,"value":11258},"Games with dual-screen mods",{"type":28,"tag":37,"props":11260,"children":11261},{},[11262],{"type":34,"value":11263},"When one of these games starts, its mod opens on the second screen by itself: Patapon gets big PATA \u002F PON \u002F CHAKA \u002F DON drum pads and a song book that lights up as you drum; Grand Theft Auto: Liberty City Stories gets a full city map with your position and heading, the route you drove, mission targets and destinations; Lumines: Puzzle Fusion gets a big preview of the next blocks, score, high score, squares deleted, time and board fullness; Gran Turismo gets a telemetry view with speedometer, tachometer with the car's red line, gear, throttle and brake, and a track map that draws itself as you drive. Other releases of these games are recognized too, and the mods look up game data at runtime rather than relying on fixed addresses, but only the listed versions have been tested.",{"type":28,"tag":29,"props":11265,"children":11266},{"id":99},[11267],{"type":34,"value":102},{"type":28,"tag":37,"props":11269,"children":11270},{},[11271],{"type":34,"value":11272},"Download the APK from the latest release and install it — it doesn't replace regular PPSSPP. Start a game: the second screen turns on by itself on dual-screen devices, while on a single-screen phone the app works like plain PPSSPP. The second screen can be turned off in Settings → System → Use second screen, or with the button at the bottom of its own settings page.",{"title":6,"searchDepth":225,"depth":225,"links":11274},[11275,11276,11277,11278],{"id":31,"depth":225,"text":35},{"id":53,"depth":225,"text":56},{"id":11255,"depth":225,"text":11258},{"id":99,"depth":225,"text":102},"content:ppsspp-duo:index.md","ppsspp-duo\u002Findex.md","ppsspp-duo\u002Findex",{"_path":11283,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":11284,"description":11285,"date":11286,"slug":11287,"category":5422,"generated":13,"media":11288,"source":11291,"project_page":11292,"body":11293,"_type":231,"_id":11339,"_source":233,"_file":11340,"_stem":11341,"_extension":236},"\u002Fpadport","PadPort","Play RPG Maker games on Android with gamepad support, touch controls, and game-specific dual-screen features.","2026-10-02 06:21","padport",[11289],{"type":16,"url":11290},"\u002Fcontent\u002Fpadport\u002Fpreview.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1wuxhuo\u002Flook_outside_on_android_consoles_and_phones\u002F","https:\u002F\u002Fgithub.com\u002Fmkaflowski\u002FPadPort",{"type":25,"children":11294,"toc":11333},[11295,11299,11304,11308,11313,11317,11322,11328],{"type":28,"tag":29,"props":11296,"children":11297},{"id":31},[11298],{"type":34,"value":35},{"type":28,"tag":37,"props":11300,"children":11301},{},[11302],{"type":34,"value":11303},"PadPort is an Android app for playing RPG Maker games with a controller. It runs RPG Maker MV and MZ games straight from their original PC folder, and also plays XP, VX and VX Ace games (experimental). No converting and no PC needed — PadPort never changes your game files. It supports Bluetooth and USB controllers, the built-in controls of handhelds like the AYN Thor, an optional on-screen controller for touch screens, and experimental second-screen panels for supported games.",{"type":28,"tag":29,"props":11305,"children":11306},{"id":99},[11307],{"type":34,"value":102},{"type":28,"tag":37,"props":11309,"children":11310},{},[11311],{"type":34,"value":11312},"Download the APK from the Releases page and install it — Android will ask you to allow installing apps from this source. Copy the whole game folder from your PC to the device (unpack it first if it is in a ZIP). Open PadPort, tap Add game folder, pick the game folder (the one with index.html, or the one that contains www) and allow access when asked. Then tap Play. When a game gets an update on PC, copy the new files over and use Refresh files after a game update in the game's ⋮ menu.",{"type":28,"tag":29,"props":11314,"children":11315},{"id":53},[11316],{"type":34,"value":56},{"type":28,"tag":37,"props":11318,"children":11319},{},[11320],{"type":34,"value":11321},"PadPort plays RPG Maker MV and MZ games from their original PC folder, plus XP, VX and VX Ace games (experimental). It works with Bluetooth and USB controllers and with the built-in controls of handhelds like the AYN Thor, and offers an optional on-screen controller for touch screens. There is button mapping and a controller tester, a keyboard mode for games that only listen to the keyboard, a game library with artwork from the game, Steam or your own pictures, and save backups that let you export and import saves. MV \u002F MZ games can run on two browser engines: GeckoView (the 64-bit Firefox engine built into PadPort, default) or the Android System WebView. The app is available in English and Polish.",{"type":28,"tag":29,"props":11323,"children":11325},{"id":11324},"two-screens",[11326],{"type":34,"value":11327},"Two screens",{"type":28,"tag":37,"props":11329,"children":11330},{},[11331],{"type":34,"value":11332},"On devices with a second screen, such as the AYN Thor, PadPort can show extras there. This is experimental and works only with specific games: Look Outside (MZ) shows your party with portraits, HP, stamina, status and gear, plus an inventory button to pick and use items on the bottom screen; To the Moon (XP) shows a notebook with Characters, Notes and Items; Fear & Hunger (MV) shows your party with Body and Mind, lost limbs, conditions and equipment. When you add one of these games, PadPort asks if you want the second screen, and you can turn it on or off any time in the game's ⋮ menu. Battle commands and the game's own menus stay on the main screen.",{"title":6,"searchDepth":225,"depth":225,"links":11334},[11335,11336,11337,11338],{"id":31,"depth":225,"text":35},{"id":99,"depth":225,"text":102},{"id":53,"depth":225,"text":56},{"id":11324,"depth":225,"text":11327},"content:padport:index.md","padport\u002Findex.md","padport\u002Findex",{"_path":11343,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":11344,"description":11345,"date":11346,"slug":11347,"category":6130,"generated":13,"media":11348,"source":11349,"project_page":11350,"body":11351,"_type":231,"_id":11403,"_source":233,"_file":11404,"_stem":11405,"_extension":236},"\u002Fthorstream","ThorStream","A Twitch viewer built for the AYN Thor's dual screens — stream on one screen, chat with 7TV emotes on the other.","2026-09-29 06:23","thorstream",[],"https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1wt09b4\u002Fthorstream_a_twitch_viewer_built_for_the_ayn\u002F","https:\u002F\u002Fgithub.com\u002Fajhockey88\u002Fajhockey88.github.io",{"type":25,"children":11352,"toc":11397},[11353,11357,11362,11366,11371,11375,11388,11392],{"type":28,"tag":29,"props":11354,"children":11355},{"id":31},[11356],{"type":34,"value":35},{"type":28,"tag":37,"props":11358,"children":11359},{},[11360],{"type":34,"value":11361},"ThorStream is a Twitch viewer built specifically for the AYN Thor's dual-screen hardware. It installs and runs like a normal app — no browser bar, no status bar, no clutter. Watch a live stream on one screen while reading and sending chat on the other, with 7TV emotes shown right alongside native Twitch emotes. Sign in with Twitch to see which of your followed channels are live right now and jump in with one tap. The app adapts automatically to the Thor's wide top screen and its squarer bottom one.",{"type":28,"tag":29,"props":11363,"children":11364},{"id":53},[11365],{"type":34,"value":56},{"type":28,"tag":37,"props":11367,"children":11368},{},[11369],{"type":34,"value":11370},"Live stream playback runs through Twitch's official player, with real-time chat connected straight to Twitch — and once you're signed in you can send messages right from the app. True dual-screen mode fills the top screen with the stream and the bottom screen with full-screen chat at the tap of a button — switching streamers on the top screen makes the bottom chat follow along, and closing the app closes the bottom chat too. Tower Mode stands the Thor on its edge: the small screen shows the stream rotated upright while the big screen shows a tall chat with a longer history (150 messages, 75 in Battery Saver). A message preview card shows your full message at the top of the screen while typing, whether you're on the top or bottom screen. Settings include a font size slider with live preview and toggles for subscriber and bit badges, plus haptic feedback on every button press. Battery Saver lowers video quality, swaps animated emotes for still ones and lightens chat; even without it, chat pauses in the background, emote lists are remembered instead of re-downloaded, and animated emotes only animate while visible. Chat stays put — it only pauses when you scroll up — and keeps a light 30-message history (20 in Battery Saver). The chat window is clutter-free: no banners, footers or headers, and the menu bar tucks itself away so the stream and chat get the whole screen. One-tap updates in the info screen find a newer version and reload into it automatically.",{"type":28,"tag":29,"props":11372,"children":11373},{"id":99},[11374],{"type":34,"value":102},{"type":28,"tag":37,"props":11376,"children":11377},{},[11378,11380,11386],{"type":34,"value":11379},"Download and install the latest release from the ",{"type":28,"tag":705,"props":11381,"children":11384},{"href":11382,"rel":11383},"https:\u002F\u002Fgithub.com\u002Fajhockey88\u002Fajhockey88.github.io\u002Freleases\u002Flatest",[709],[11385],{"type":34,"value":9558},{"type":34,"value":11387}," on your Thor like any other app. Sign in with Twitch to see which of your followed channels are live, pick a stream, and tap the dual-screen button to put the stream on the top screen and chat on the bottom. Use Tower Mode to stand the Thor on its edge, and check the info screen for one-tap updates.",{"type":28,"tag":29,"props":11389,"children":11390},{"id":11200},[11391],{"type":34,"value":11203},{"type":28,"tag":37,"props":11393,"children":11394},{},[11395],{"type":34,"value":11396},"There's no backend, no database and no analytics anywhere in the app. Signing in with Twitch happens directly between you and Twitch, and your sign-in stays on your device — nothing about how you use the app is ever visible to anyone else.",{"title":6,"searchDepth":225,"depth":225,"links":11398},[11399,11400,11401,11402],{"id":31,"depth":225,"text":35},{"id":53,"depth":225,"text":56},{"id":99,"depth":225,"text":102},{"id":11200,"depth":225,"text":11203},"content:thorstream:index.md","thorstream\u002Findex.md","thorstream\u002Findex",{"_path":11407,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":11408,"description":11409,"date":11410,"slug":11411,"category":3687,"generated":13,"media":11412,"source":11419,"project_page":11420,"body":11421,"_type":231,"_id":11465,"_source":233,"_file":11466,"_stem":11467,"_extension":236},"\u002Fwayfinder","Wayfinder","Wayfinder moves apps between the AYN Thor's two screens, sends the controller where you want it, and puts the Thor's settings one press away.","2026-09-29 06:17","wayfinder",[11413,11415,11417],{"type":16,"url":11414},"\u002Fcontent\u002Fwayfinder\u002Fpreview.webp",{"type":16,"url":11416},"\u002Fcontent\u002Fwayfinder\u002Fscreenshot-2.webp",{"type":245,"url":11418},"https:\u002F\u002Fyoutu.be\u002FYkOjooy4elU?is=mel4LaQrhch-pV4Z","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1wsiwyo\u002Fwayfinder_is_a_necessity\u002F","https:\u002F\u002Fgithub.com\u002FThor-Wayfinder\u002Fthor-wayfinder",{"type":25,"children":11422,"toc":11459},[11423,11427,11432,11436,11441,11445,11450,11454],{"type":28,"tag":29,"props":11424,"children":11425},{"id":31},[11426],{"type":34,"value":35},{"type":28,"tag":37,"props":11428,"children":11429},{},[11430],{"type":34,"value":11431},"Wayfinder is a free app for the AYN Thor that makes its two screens work as one. It moves and swaps apps between the screens live — the app keeps running and keeps its state — sends the controller to the screen you want, gives every game its own buttons, and puts the Thor's settings one press away, all without leaving your game. A quick review calls it much better than the default AYN home button menu, solving major complaints with the system's UI and navigation: better controller assignment between the top and bottom screens, a more intelligent keyboard, audio mixing, volume button fixes and much more.",{"type":28,"tag":29,"props":11433,"children":11434},{"id":53},[11435],{"type":34,"value":56},{"type":28,"tag":37,"props":11437,"children":11438},{},[11439],{"type":34,"value":11440},"Move and swap apps between the screens live — the app keeps running (hold Back). Combos on Home, Back and the AYN button for 30+ actions, with a cheat sheet when you hold Home. Game controls (Home + X): remap any button per app or per game — keys, mouse, macros, gyro. Keyboard & mouse (Home + Y) on the other screen: PC keys, a trackpad (with a Touch mode), your own pad, the game's guide. Quick panel (AYN button) over your game: brightness, volume, performance, fan, 45 shortcut tiles. Display & sound: brightness and volume per screen, volume boost up to +12 dB, a speaker fix with EQ, 60\u002F120 Hz, and an FPS counter with battery and temperatures. Per-app profiles: screen, performance, fan, refresh rate, lights, controls. Stick lights, sleep & standby actions, a game guide with notes, screenshots and screen recording. No root, no PC: one-press setup.",{"type":28,"tag":29,"props":11442,"children":11443},{"id":99},[11444],{"type":34,"value":102},{"type":28,"tag":37,"props":11446,"children":11447},{},[11448],{"type":34,"value":11449},"Download the latest release from the GitHub releases page and install the APK on your Thor (stock system, \"Force SELinux\" off — the default). No root, no computer and no Shizuku are needed. If you used the beta, uninstall \"Thor Wayfinder\" first. Open Wayfinder: the welcome tour sets everything up and teaches the combos by doing them. For step-by-step help on every feature, check the project's wiki.",{"type":28,"tag":29,"props":11451,"children":11452},{"id":192},[11453],{"type":34,"value":195},{"type":28,"tag":37,"props":11455,"children":11456},{},[11457],{"type":34,"value":11458},"Since version 1.4, Wayfinder leaves the CPU to ClusterTune and Pulse, so they can stay installed together. With SleepManager, Wayfinder's sleep actions and lid guard stay off unless you turn them on. If another app does the same job as a part of Wayfinder (Mjolnir, BiFrost, OdinTools), the Hub tells you what to do. If ClusterTune and Wayfinder gave you trouble before, restart your Thor once after updating. A few heavy or unusual apps may restart or refuse to move when switched between screens.",{"title":6,"searchDepth":225,"depth":225,"links":11460},[11461,11462,11463,11464],{"id":31,"depth":225,"text":35},{"id":53,"depth":225,"text":56},{"id":99,"depth":225,"text":102},{"id":192,"depth":225,"text":195},"content:wayfinder:index.md","wayfinder\u002Findex.md","wayfinder\u002Findex",{"_path":11469,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":11470,"description":11471,"date":11472,"slug":11473,"category":3687,"generated":13,"media":11474,"source":11475,"project_page":11476,"body":11477,"_type":231,"_id":11581,"_source":233,"_file":11582,"_stem":11583,"_extension":236},"\u002Fjesty-thor-fix","Jesty Thor Fix","A free, open-source utility that truly powers off the Thor's bottom display, stops AYN Dashboard from pinning CPU clocks, and shows live CPU\u002Fdisplay telemetry.","2026-09-28 03:58","jesty-thor-fix",[],"https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1wrsmmo\u002Ffound_two_weird_ayn_thor_issues_top_only_doesnt\u002F","https:\u002F\u002Fgithub.com\u002FJestyLabs\u002FJesty-Thor-Fix",{"type":25,"children":11478,"toc":11576},[11479,11483,11488,11494,11499,11522,11546,11551,11555],{"type":28,"tag":29,"props":11480,"children":11481},{"id":31},[11482],{"type":34,"value":35},{"type":28,"tag":37,"props":11484,"children":11485},{},[11486],{"type":34,"value":11487},"Jesty Thor Fix addresses two separate AYN Thor firmware problems. First, Top Only mode can leave the lower display looking black while its physical display hardware is still active — the display controller stays on and can even come back after wake. Second, the AYN Dashboard can leave LITTLE\u002FBIG CPU cores pinned at maximum clocks instead of letting them scale down at low load, which wastes power and produces extra heat. The same pinned-core behavior can also appear when using apps in single-screen mode through AYN's own implementation. The app is free and open source, and requires no accounts, credentials or cloud services.",{"type":28,"tag":29,"props":11489,"children":11491},{"id":11490},"what-it-fixes",[11492],{"type":34,"value":11493},"What it fixes",{"type":28,"tag":37,"props":11495,"children":11496},{},[11497],{"type":34,"value":11498},"The app provides two independent switches, because the Thor has two different problems:",{"type":28,"tag":58,"props":11500,"children":11501},{},[11502,11512],{"type":28,"tag":62,"props":11503,"children":11504},{},[11505,11510],{"type":28,"tag":139,"props":11506,"children":11507},{},[11508],{"type":34,"value":11509},"True Bottom Display Fix",{"type":34,"value":11511}," — in TOP mode it powers down the lower display hardware; after sleep or wake it checks and restores true-off if Android reactivated it; in BOTH or BOTTOM mode it leaves the lower display available normally. It never chooses a display mode for you.",{"type":28,"tag":62,"props":11513,"children":11514},{},[11515,11520],{"type":28,"tag":139,"props":11516,"children":11517},{},[11518],{"type":34,"value":11519},"AYN Dashboard CPU Fix",{"type":34,"value":11521}," — stops CPU cores from staying pinned at maximum clocks while the AYN Dashboard is open, and also fixes the same pinned-core behavior when using apps in single-screen mode through AYN's own implementation.",{"type":28,"tag":37,"props":11523,"children":11524},{},[11525,11527,11531,11533,11537,11539,11544],{"type":34,"value":11526},"Which switches should you use? If you use TOP mode and want the lower display truly powered off, enable ",{"type":28,"tag":139,"props":11528,"children":11529},{},[11530],{"type":34,"value":11509},{"type":34,"value":11532},". If you use the AYN Dashboard or regularly use both screens, enable ",{"type":28,"tag":139,"props":11534,"children":11535},{},[11536],{"type":34,"value":11519},{"type":34,"value":11538},". If you switch between TOP and BOTH, enable ",{"type":28,"tag":139,"props":11540,"children":11541},{},[11542],{"type":34,"value":11543},"both fixes",{"type":34,"value":11545},". Your choices are saved and restored after a normal reboot.",{"type":28,"tag":37,"props":11547,"children":11548},{},[11549],{"type":34,"value":11550},"The app also shows live telemetry — the current display mode, CPU clocks and a live power estimate — so you can see both fixes working.",{"type":28,"tag":29,"props":11552,"children":11553},{"id":99},[11554],{"type":34,"value":102},{"type":28,"tag":37,"props":11556,"children":11557},{},[11558,11560,11567,11569,11574],{"type":34,"value":11559},"Download and install the latest release (",{"type":28,"tag":705,"props":11561,"children":11564},{"href":11562,"rel":11563},"https:\u002F\u002Fgithub.com\u002FJestyLabs\u002FJesty-Thor-Fix\u002Freleases\u002Flatest",[709],[11565],{"type":34,"value":11566},"v1.3.0",{"type":34,"value":11568},"). No Magisk, no terminal and no rooting are required. Open the app once, enable the fix or fixes you need, then close it — the fixes keep working in the background. Use ",{"type":28,"tag":139,"props":11570,"children":11571},{},[11572],{"type":34,"value":11573},"Check now",{"type":34,"value":11575}," to verify the current display and CPU state. Note that enabling or changing the AYN Dashboard CPU Fix restarts the Android framework once and closes open apps; the displays stay black briefly while Android returns.",{"title":6,"searchDepth":225,"depth":225,"links":11577},[11578,11579,11580],{"id":31,"depth":225,"text":35},{"id":11490,"depth":225,"text":11493},{"id":99,"depth":225,"text":102},"content:jesty-thor-fix:index.md","jesty-thor-fix\u002Findex.md","jesty-thor-fix\u002Findex",{"_path":11585,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":11586,"description":11587,"date":11588,"slug":11589,"category":5422,"generated":13,"media":11590,"source":11599,"project_page":11600,"body":11601,"_type":231,"_id":12405,"_source":233,"_file":12406,"_stem":12407,"_extension":236},"\u002Feden-duo","Eden Duo","A Nintendo Switch emulator for dual-screen Android handhelds that adds live touch companion screens on the second display.","2026-09-27 18:26","eden-duo",[11591,11593,11595,11597],{"type":16,"url":11592},"\u002Fcontent\u002Feden-duo\u002Fpreview.webp",{"type":16,"url":11594},"\u002Fcontent\u002Feden-duo\u002Fscreenshot-2.webp",{"type":16,"url":11596},"\u002Fcontent\u002Feden-duo\u002Fscreenshot-3.webp",{"type":245,"url":11598},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=LaLfNIwAwHU","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1xlb9gj\u002Feden_duo_pokémon_swordshield_fire_emblem_engage\u002F","https:\u002F\u002Fgithub.com\u002Figawa6\u002Feden-duo",{"type":25,"children":11602,"toc":12399},[11603,11607,11612,11788,11792,11919,11924,11947,11951,12211,12216,12229,12233,12330,12335,12353],{"type":28,"tag":29,"props":11604,"children":11605},{"id":31},[11606],{"type":34,"value":35},{"type":28,"tag":37,"props":11608,"children":11609},{},[11610],{"type":34,"value":11611},"Eden Duo is a fork of the Eden Nintendo Switch emulator for Android devices with two screens, such as the AYN Thor. The game runs on the top screen as usual, while the bottom screen shows a touch companion for the game you are playing: maps, party and inventory menus, status, and more, all driven by the running game's live state.",{"type":28,"tag":37,"props":11613,"children":11614},{},[11615,11617,11623,11625,11630,11631,11636,11637,11642,11643,11648,11649,11654,11655,11660,11661,11666,11667,11672,11673,11678,11679,11684,11685,11690,11691,11696,11697,11702,11703,11708,11709,11714,11715,11720,11721,11726,11727,11732,11733,11738,11739,11744,11745,11750,11751,11756,11757,11762,11763,11768,11769,11774,11775,11780,11782,11787],{"type":34,"value":11616},"Companions are separate, installable ",{"type":28,"tag":43,"props":11618,"children":11620},{"className":11619},[],[11621],{"type":34,"value":11622},".dsmod.zip",{"type":34,"value":11624}," packages, one per game, so a companion can be updated without updating the emulator. They ship no game assets — all art and text comes from your own game files. Dual-screen support is available for 27 games: ",{"type":28,"tag":139,"props":11626,"children":11627},{},[11628],{"type":34,"value":11629},"Persona 5 Royal",{"type":34,"value":1499},{"type":28,"tag":139,"props":11632,"children":11633},{},[11634],{"type":34,"value":11635},"Metroid Dread",{"type":34,"value":1499},{"type":28,"tag":139,"props":11638,"children":11639},{},[11640],{"type":34,"value":11641},"Link's Awakening",{"type":34,"value":1499},{"type":28,"tag":139,"props":11644,"children":11645},{},[11646],{"type":34,"value":11647},"Mario Kart 8 Deluxe",{"type":34,"value":1499},{"type":28,"tag":139,"props":11650,"children":11651},{},[11652],{"type":34,"value":11653},"Super Mario Bros. Wonder",{"type":34,"value":1499},{"type":28,"tag":139,"props":11656,"children":11657},{},[11658],{"type":34,"value":11659},"Animal Crossing: New Horizons",{"type":34,"value":1499},{"type":28,"tag":139,"props":11662,"children":11663},{},[11664],{"type":34,"value":11665},"Fire Emblem: Three Houses",{"type":34,"value":1499},{"type":28,"tag":139,"props":11668,"children":11669},{},[11670],{"type":34,"value":11671},"The Binding of Isaac: Afterbirth+ and Repentance DLC",{"type":34,"value":1499},{"type":28,"tag":139,"props":11674,"children":11675},{},[11676],{"type":34,"value":11677},"Pokémon Brilliant Diamond",{"type":34,"value":1499},{"type":28,"tag":139,"props":11680,"children":11681},{},[11682],{"type":34,"value":11683},"Pokémon Shining Pearl",{"type":34,"value":1499},{"type":28,"tag":139,"props":11686,"children":11687},{},[11688],{"type":34,"value":11689},"Crash Team Racing Nitro-Fueled",{"type":34,"value":1499},{"type":28,"tag":139,"props":11692,"children":11693},{},[11694],{"type":34,"value":11695},"Dragon Quest III HD-2D Remake",{"type":34,"value":1499},{"type":28,"tag":139,"props":11698,"children":11699},{},[11700],{"type":34,"value":11701},"Chained Echoes",{"type":34,"value":1499},{"type":28,"tag":139,"props":11704,"children":11705},{},[11706],{"type":34,"value":11707},"Yoru Tomosu",{"type":34,"value":1499},{"type":28,"tag":139,"props":11710,"children":11711},{},[11712],{"type":34,"value":11713},"Diablo III: Eternal Collection",{"type":34,"value":1499},{"type":28,"tag":139,"props":11716,"children":11717},{},[11718],{"type":34,"value":11719},"Farming Simulator: Nintendo Switch Edition",{"type":34,"value":1499},{"type":28,"tag":139,"props":11722,"children":11723},{},[11724],{"type":34,"value":11725},"VA-11 Hall-A: Cyberpunk Bartender Action",{"type":34,"value":1499},{"type":28,"tag":139,"props":11728,"children":11729},{},[11730],{"type":34,"value":11731},"The Legend of Zelda: Breath of the Wild",{"type":34,"value":1499},{"type":28,"tag":139,"props":11734,"children":11735},{},[11736],{"type":34,"value":11737},"Castlevania: Belmont's Curse",{"type":34,"value":1499},{"type":28,"tag":139,"props":11740,"children":11741},{},[11742],{"type":34,"value":11743},"Super Mario Odyssey",{"type":34,"value":1499},{"type":28,"tag":139,"props":11746,"children":11747},{},[11748],{"type":34,"value":11749},"The Legend of Zelda: Echoes of Wisdom",{"type":34,"value":1499},{"type":28,"tag":139,"props":11752,"children":11753},{},[11754],{"type":34,"value":11755},"Dave the Diver",{"type":34,"value":1499},{"type":28,"tag":139,"props":11758,"children":11759},{},[11760],{"type":34,"value":11761},"Persona 3 Portable",{"type":34,"value":1499},{"type":28,"tag":139,"props":11764,"children":11765},{},[11766],{"type":34,"value":11767},"Fire Emblem Engage",{"type":34,"value":1499},{"type":28,"tag":139,"props":11770,"children":11771},{},[11772],{"type":34,"value":11773},"Octopath Traveler 0",{"type":34,"value":1499},{"type":28,"tag":139,"props":11776,"children":11777},{},[11778],{"type":34,"value":11779},"Pokémon Sword",{"type":34,"value":11781},", and ",{"type":28,"tag":139,"props":11783,"children":11784},{},[11785],{"type":34,"value":11786},"Pokémon Shield",{"type":34,"value":176},{"type":28,"tag":29,"props":11789,"children":11790},{"id":53},[11791],{"type":34,"value":56},{"type":28,"tag":58,"props":11793,"children":11794},{},[11795,11805,11815,11839,11849,11859,11869,11879,11889,11899,11909],{"type":28,"tag":62,"props":11796,"children":11797},{},[11798,11803],{"type":28,"tag":139,"props":11799,"children":11800},{},[11801],{"type":34,"value":11802},"Second-screen companion",{"type":34,"value":11804}," — the game on the main screen and a touch companion page on the second display.",{"type":28,"tag":62,"props":11806,"children":11807},{},[11808,11813],{"type":28,"tag":139,"props":11809,"children":11810},{},[11811],{"type":34,"value":11812},"Live game state",{"type":34,"value":11814}," — companions read the running game's memory every frame: no save-file snapshots and no polling delays.",{"type":28,"tag":62,"props":11816,"children":11817},{},[11818,11823,11825,11830,11832,11837],{"type":28,"tag":139,"props":11819,"children":11820},{},[11821],{"type":34,"value":11822},"Installable packages",{"type":34,"value":11824}," — add a companion from the game's ",{"type":28,"tag":139,"props":11826,"children":11827},{},[11828],{"type":34,"value":11829},"Add-ons",{"type":34,"value":11831}," menu with its ",{"type":28,"tag":43,"props":11833,"children":11835},{"className":11834},[],[11836],{"type":34,"value":11622},{"type":34,"value":11838},"; packages are validated (title, build, file layout and module checksums) before they are installed.",{"type":28,"tag":62,"props":11840,"children":11841},{},[11842,11847],{"type":28,"tag":139,"props":11843,"children":11844},{},[11845],{"type":34,"value":11846},"Native companion modules",{"type":34,"value":11848}," — a package can carry a small native module for games whose data is too complex for a declarative manifest; modules talk to the emulator through a small, versioned C interface and never ship inside the APK.",{"type":28,"tag":62,"props":11850,"children":11851},{},[11852,11857],{"type":28,"tag":139,"props":11853,"children":11854},{},[11855],{"type":34,"value":11856},"Touch that feels native",{"type":34,"value":11858}," — taps, press-and-hold gestures, drag and drop, animated page and layout changes, and haptic feedback on the second screen.",{"type":28,"tag":62,"props":11860,"children":11861},{},[11862,11867],{"type":28,"tag":139,"props":11863,"children":11864},{},[11865],{"type":34,"value":11866},"Second screen your way",{"type":34,"value":11868}," — swap the screens, stretch the companion, or open another app on the second screen for games without a companion.",{"type":28,"tag":62,"props":11870,"children":11871},{},[11872,11877],{"type":28,"tag":139,"props":11873,"children":11874},{},[11875],{"type":34,"value":11876},"Built for handhelds",{"type":34,"value":11878}," — change-driven partial redraws, tile-based texture uploads and an optional GPU compositor keep the second screen at full frame rate without costing the game frames.",{"type":28,"tag":62,"props":11880,"children":11881},{},[11882,11887],{"type":28,"tag":139,"props":11883,"children":11884},{},[11885],{"type":34,"value":11886},"Every dual-screen game listed",{"type":34,"value":11888}," — the game list ends with every game that has a companion, so you can see what is supported.",{"type":28,"tag":62,"props":11890,"children":11891},{},[11892,11897],{"type":28,"tag":139,"props":11893,"children":11894},{},[11895],{"type":34,"value":11896},"Hide the companion mid-game",{"type":34,"value":11898}," — tap the game screen with four fingers (or use the Quick Settings tile) to free the second screen for another app; tap again to bring the companion back.",{"type":28,"tag":62,"props":11900,"children":11901},{},[11902,11907],{"type":28,"tag":139,"props":11903,"children":11904},{},[11905],{"type":34,"value":11906},"Improved import",{"type":34,"value":11908}," — a clearer \"Import from another emulator\" flow and a fixed save import from Eden.",{"type":28,"tag":62,"props":11910,"children":11911},{},[11912,11917],{"type":28,"tag":139,"props":11913,"children":11914},{},[11915],{"type":34,"value":11916},"Follows Eden Nightly",{"type":34,"value":11918}," — upstream fixes and improvements arrive sooner; version 1.3.3 is based on Eden's latest nightly.",{"type":28,"tag":37,"props":11920,"children":11921},{},[11922],{"type":34,"value":11923},"Requirements:",{"type":28,"tag":58,"props":11925,"children":11926},{},[11927,11932,11937,11942],{"type":28,"tag":62,"props":11928,"children":11929},{},[11930],{"type":34,"value":11931},"Android 13 or newer (arm64).",{"type":28,"tag":62,"props":11933,"children":11934},{},[11935],{"type":34,"value":11936},"A device with a second display.",{"type":28,"tag":62,"props":11938,"children":11939},{},[11940],{"type":34,"value":11941},"Your own legally obtained game dump with the matching update.",{"type":28,"tag":62,"props":11943,"children":11944},{},[11945],{"type":34,"value":11946},"Your console's keys and firmware.",{"type":28,"tag":29,"props":11948,"children":11949},{"id":1906},[11950],{"type":34,"value":1909},{"type":28,"tag":58,"props":11952,"children":11953},{},[11954,11964,11974,11991,12001,12011,12019,12036,12044,12054,12064,12074,12084,12092,12100,12108,12116,12126,12136,12144,12152,12162,12172,12182,12192,12202],{"type":28,"tag":62,"props":11955,"children":11956},{},[11957,11962],{"type":28,"tag":139,"props":11958,"children":11959},{},[11960],{"type":34,"value":11961},"Persona 5 Royal (1.0.2)",{"type":34,"value":11963}," — the full start menu on the bottom screen: skills, items, equipment, Persona, stats, confidants, requests and the calendar with the Daily Log. You can use items and change equipment or Persona by tapping, and see enemy affinities in battle.",{"type":28,"tag":62,"props":11965,"children":11966},{},[11967,11972],{"type":28,"tag":139,"props":11968,"children":11969},{},[11970],{"type":34,"value":11971},"Metroid Dread (2.1.0)",{"type":34,"value":11973}," — a live area map with Samus's position, EMMI zones, water levels, and energy and missiles.",{"type":28,"tag":62,"props":11975,"children":11976},{},[11977,11982,11984,11990],{"type":28,"tag":139,"props":11978,"children":11979},{},[11980],{"type":34,"value":11981},"The Legend of Zelda: Link's Awakening (1.0.1)",{"type":34,"value":11983}," — a live map with your own pins, plus gear and items, with X\u002FY equip from the touch screen. ",{"type":28,"tag":705,"props":11985,"children":11987},{"href":11598,"rel":11986},[709],[11988],{"type":34,"value":11989},"Watch a video showcase",{"type":34,"value":176},{"type":28,"tag":62,"props":11992,"children":11993},{},[11994,11999],{"type":28,"tag":139,"props":11995,"children":11996},{},[11997],{"type":34,"value":11998},"Mario Kart 8 Deluxe (4.0.1, 4.0.0, 3.0.3)",{"type":34,"value":12000}," — a live rank bar with every racer's items, a course map showing all racers, and a big horn button. Also works with CTGP-DX v1.1.1 custom tracks.",{"type":28,"tag":62,"props":12002,"children":12003},{},[12004,12009],{"type":28,"tag":139,"props":12005,"children":12006},{},[12007],{"type":34,"value":12008},"Super Mario Bros. Wonder (1.2.1)",{"type":34,"value":12010}," — a course page with a progress rail from start to goal, your 10-flower coins, world Wonder Seeds, current form and item balloon, and a world map page with the selected course and an Open Courses button.",{"type":28,"tag":62,"props":12012,"children":12013},{},[12014],{"type":28,"tag":139,"props":12015,"children":12016},{},[12017],{"type":34,"value":12018},"Animal Crossing: New Horizons (3.0.3)",{"type":28,"tag":62,"props":12020,"children":12021},{},[12022,12027,12029,12035],{"type":28,"tag":139,"props":12023,"children":12024},{},[12025],{"type":34,"value":12026},"Fire Emblem: Three Houses (1.2.0)",{"type":34,"value":12028}," — combat information, maps, academy information and more on the second screen. ",{"type":28,"tag":705,"props":12030,"children":12033},{"href":12031,"rel":12032},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=gt7DaUXBABY",[709],[12034],{"type":34,"value":11989},{"type":34,"value":176},{"type":28,"tag":62,"props":12037,"children":12038},{},[12039],{"type":28,"tag":139,"props":12040,"children":12041},{},[12042],{"type":34,"value":12043},"The Binding of Isaac: Afterbirth+ and Repentance DLC (1.7.9b)",{"type":28,"tag":62,"props":12045,"children":12046},{},[12047,12052],{"type":28,"tag":139,"props":12048,"children":12049},{},[12050],{"type":34,"value":12051},"Pokémon Brilliant Diamond \u002F Shining Pearl (1.3.0)",{"type":34,"value":12053}," — a field map, party, bag, Pokédex, Pokétch and battle controls. Two packages, one for Brilliant Diamond and one for Shining Pearl; each works with vanilla or Luminescent Platinum 2.2F.",{"type":28,"tag":62,"props":12055,"children":12056},{},[12057,12062],{"type":28,"tag":139,"props":12058,"children":12059},{},[12060],{"type":34,"value":12061},"Crash Team Racing Nitro-Fueled (1.0.15)",{"type":34,"value":12063}," — live standings with portraits, racer positions on the course map, lap and race clock, and options to hide the native HUD.",{"type":28,"tag":62,"props":12065,"children":12066},{},[12067,12072],{"type":28,"tag":139,"props":12068,"children":12069},{},[12070],{"type":34,"value":12071},"Dragon Quest III HD-2D Remake (1.1.0.0)",{"type":34,"value":12073}," — field map, party status and gear, bag, journal, Heal All and battle info, including possible enemy spells.",{"type":28,"tag":62,"props":12075,"children":12076},{},[12077,12082],{"type":28,"tag":139,"props":12078,"children":12079},{},[12080],{"type":34,"value":12081},"Chained Echoes (1.41)",{"type":34,"value":12083}," — area map and objectives, battle turn strip and Overdrive, skills, crystals and formation.",{"type":28,"tag":62,"props":12085,"children":12086},{},[12087],{"type":28,"tag":139,"props":12088,"children":12089},{},[12090],{"type":34,"value":12091},"Yoru Tomosu (1.0.0)",{"type":28,"tag":62,"props":12093,"children":12094},{},[12095],{"type":28,"tag":139,"props":12096,"children":12097},{},[12098],{"type":34,"value":12099},"Diablo III: Eternal Collection (2.7.7, 2.7.6)",{"type":28,"tag":62,"props":12101,"children":12102},{},[12103],{"type":28,"tag":139,"props":12104,"children":12105},{},[12106],{"type":34,"value":12107},"Farming Simulator: Nintendo Switch Edition (1.5.0.1)",{"type":28,"tag":62,"props":12109,"children":12110},{},[12111],{"type":28,"tag":139,"props":12112,"children":12113},{},[12114],{"type":34,"value":12115},"VA-11 Hall-A: Cyberpunk Bartender Action (1.0.0)",{"type":28,"tag":62,"props":12117,"children":12118},{},[12119,12124],{"type":28,"tag":139,"props":12120,"children":12121},{},[12122],{"type":34,"value":12123},"The Legend of Zelda: Breath of the Wild (1.6.0)",{"type":34,"value":12125}," — the Sheikah Slate on the second screen: a live map with your pins and quest markers, secondary weapon, inventory with instant equip, sort and eat, Champion abilities, and the Travel Medallion.",{"type":28,"tag":62,"props":12127,"children":12128},{},[12129,12134],{"type":28,"tag":139,"props":12130,"children":12131},{},[12132],{"type":34,"value":12133},"Castlevania: Belmont's Curse (1.1.0)",{"type":34,"value":12135}," — the pause-menu map always open with fog and landmarks, pins placed straight from the touch screen, and the equipment screen with arcana, weapons, relics and stats.",{"type":28,"tag":62,"props":12137,"children":12138},{},[12139],{"type":28,"tag":139,"props":12140,"children":12141},{},[12142],{"type":34,"value":12143},"Super Mario Odyssey (1.4.1)",{"type":28,"tag":62,"props":12145,"children":12146},{},[12147],{"type":28,"tag":139,"props":12148,"children":12149},{},[12150],{"type":34,"value":12151},"The Legend of Zelda: Echoes of Wisdom (1.1.0)",{"type":28,"tag":62,"props":12153,"children":12154},{},[12155,12160],{"type":28,"tag":139,"props":12156,"children":12157},{},[12158],{"type":34,"value":12159},"Dave the Diver (1.0.6.1267)",{"type":34,"value":12161}," — companion contributed by a community member.",{"type":28,"tag":62,"props":12163,"children":12164},{},[12165,12170],{"type":28,"tag":139,"props":12166,"children":12167},{},[12168],{"type":34,"value":12169},"Persona 3 Portable (1.0.0)",{"type":34,"value":12171}," — companion for the base game, contributed by a community member.",{"type":28,"tag":62,"props":12173,"children":12174},{},[12175,12180],{"type":28,"tag":139,"props":12176,"children":12177},{},[12178],{"type":34,"value":12179},"Fire Emblem Engage (2.0.0)",{"type":34,"value":12181}," — the War map with the danger zone on the second screen, unit details, Engage and Emblem bonds, the attack Matchup forecast, a live Somniel map with everyone's location, Units, Roster and the World Map.",{"type":28,"tag":62,"props":12183,"children":12184},{},[12185,12190],{"type":28,"tag":139,"props":12186,"children":12187},{},[12188],{"type":34,"value":12189},"Octopath Traveler 0 (1.0.5)",{"type":34,"value":12191}," — a live map, party status and equipment, items and quests, and a battle screen with BP forecast, shields, Break and revealed weaknesses.",{"type":28,"tag":62,"props":12193,"children":12194},{},[12195,12200],{"type":28,"tag":139,"props":12196,"children":12197},{},[12198],{"type":34,"value":12199},"Pokémon Sword (1.3.2)",{"type":34,"value":12201}," — Town Map with wild Pokémon and Fly, party (drag to reorder), Pokédex, Bag (use items right from the bottom screen), League Card, and touch battles with type matchups and Max Raids. Includes Isle of Armor and Crown Tundra; runs in multiple languages.",{"type":28,"tag":62,"props":12203,"children":12204},{},[12205,12210],{"type":28,"tag":139,"props":12206,"children":12207},{},[12208],{"type":34,"value":12209},"Pokémon Shield (1.3.2)",{"type":34,"value":12201},{"type":28,"tag":37,"props":12212,"children":12213},{},[12214],{"type":34,"value":12215},"Compatibility is intentionally strict: each companion is written for one exact game build and checks the running build before it loads. On any other version it does not load and shows a notice, instead of reading memory it does not understand.",{"type":28,"tag":37,"props":12217,"children":12218},{},[12219,12221,12228],{"type":34,"value":12220},"Details, screenshots and downloads for each companion: ",{"type":28,"tag":705,"props":12222,"children":12225},{"href":12223,"rel":12224},"https:\u002F\u002Fgithub.com\u002Figawa6\u002Feden-duo-companions",[709],[12226],{"type":34,"value":12227},"Eden Duo Companions",{"type":34,"value":176},{"type":28,"tag":29,"props":12230,"children":12231},{"id":99},[12232],{"type":34,"value":102},{"type":28,"tag":104,"props":12234,"children":12235},{},[12236,12249,12254,12266,12325],{"type":28,"tag":62,"props":12237,"children":12238},{},[12239,12241,12247],{"type":34,"value":12240},"Download the latest EdenDuo APK (1.3.3 or newer) from the ",{"type":28,"tag":705,"props":12242,"children":12245},{"href":12243,"rel":12244},"https:\u002F\u002Fgithub.com\u002Figawa6\u002Feden-duo\u002Freleases\u002Flatest",[709],[12246],{"type":34,"value":3036},{"type":34,"value":12248}," and install it.",{"type":28,"tag":62,"props":12250,"children":12251},{},[12252],{"type":34,"value":12253},"Set up the emulator as usual: keys, firmware, and your games folder.",{"type":28,"tag":62,"props":12255,"children":12256},{},[12257,12259,12265],{"type":34,"value":12258},"Download a companion package from the ",{"type":28,"tag":705,"props":12260,"children":12262},{"href":12223,"rel":12261},[709],[12263],{"type":34,"value":12264},"Eden Duo Companions repository",{"type":34,"value":176},{"type":28,"tag":62,"props":12267,"children":12268},{},[12269,12271,12275,12277,12281,12283,12288,12290,12295,12296,12301,12303,12308,12310,12316,12318,12324],{"type":34,"value":12270},"In Eden Duo, long-press the game, open ",{"type":28,"tag":139,"props":12272,"children":12273},{},[12274],{"type":34,"value":11829},{"type":34,"value":12276}," and tap ",{"type":28,"tag":139,"props":12278,"children":12279},{},[12280],{"type":34,"value":1461},{"type":34,"value":12282},". In the ",{"type":28,"tag":139,"props":12284,"children":12285},{},[12286],{"type":34,"value":12287},"Content type",{"type":34,"value":12289}," dialog choose ",{"type":28,"tag":139,"props":12291,"children":12292},{},[12293],{"type":34,"value":12294},"Dual screen mods",{"type":34,"value":9290},{"type":28,"tag":139,"props":12297,"children":12298},{},[12299],{"type":34,"value":12300},"OK",{"type":34,"value":12302},", then select the ",{"type":28,"tag":43,"props":12304,"children":12306},{"className":12305},[],[12307],{"type":34,"value":11622},{"type":34,"value":12309}," file. The companion appears in the Add-ons list as ",{"type":28,"tag":43,"props":12311,"children":12313},{"className":12312},[],[12314],{"type":34,"value":12315},"Name-version",{"type":34,"value":12317},", for example ",{"type":28,"tag":43,"props":12319,"children":12321},{"className":12320},[],[12322],{"type":34,"value":12323},"MetroidDreadDS-1.0.0",{"type":34,"value":176},{"type":28,"tag":62,"props":12326,"children":12327},{},[12328],{"type":34,"value":12329},"Launch the game — the companion appears on the second screen once the game reaches gameplay.",{"type":28,"tag":37,"props":12331,"children":12332},{},[12333],{"type":34,"value":12334},"Each companion needs an exact game version, listed in the companion repository. Eden Duo uses its own app ID, so it installs alongside other Eden builds and keeps separate data.",{"type":28,"tag":37,"props":12336,"children":12337},{},[12338,12340,12345,12347,12351],{"type":34,"value":12339},"Second-screen options are in ",{"type":28,"tag":139,"props":12341,"children":12342},{},[12343],{"type":34,"value":12344},"Settings → Graphics → Second Screen",{"type":34,"value":12346},", and each game can have its own values (long-press the game, then ",{"type":28,"tag":139,"props":12348,"children":12349},{},[12350],{"type":34,"value":12344},{"type":34,"value":12352},"). You can swap which display runs the game, stretch the companion, or choose what the second screen shows for games without a companion — including launching another installed app on it.",{"type":28,"tag":37,"props":12354,"children":12355},{},[12356,12358,12363,12365,12370,12371,12375,12377,12383,12384,12390,12391,12397],{"type":34,"value":12357},"Eden Duo can also be launched from frontends: CocoonFE has built-in support (open ",{"type":28,"tag":139,"props":12359,"children":12360},{},[12361],{"type":34,"value":12362},"Settings → Library & Data → Refetch Platforms",{"type":34,"value":12364},", then set ",{"type":28,"tag":139,"props":12366,"children":12367},{},[12368],{"type":34,"value":12369},"Player Override",{"type":34,"value":497},{"type":28,"tag":139,"props":12372,"children":12373},{},[12374],{"type":34,"value":11586},{"type":34,"value":12376}," for each game), and ES-DE (Android) works by copying the provided ",{"type":28,"tag":43,"props":12378,"children":12380},{"className":12379},[],[12381],{"type":34,"value":12382},"es_systems.xml",{"type":34,"value":1475},{"type":28,"tag":43,"props":12385,"children":12387},{"className":12386},[],[12388],{"type":34,"value":12389},"es_find_rules.xml",{"type":34,"value":844},{"type":28,"tag":43,"props":12392,"children":12394},{"className":12393},[],[12395],{"type":34,"value":12396},"ES-DE\u002Fcustom_systems\u002F",{"type":34,"value":12398}," and restarting.",{"title":6,"searchDepth":225,"depth":225,"links":12400},[12401,12402,12403,12404],{"id":31,"depth":225,"text":35},{"id":53,"depth":225,"text":56},{"id":1906,"depth":225,"text":1909},{"id":99,"depth":225,"text":102},"content:eden-duo:index.md","eden-duo\u002Findex.md","eden-duo\u002Findex",{"_path":12409,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":12410,"description":12411,"date":12412,"slug":12413,"category":12,"generated":13,"media":12414,"source":12417,"project_page":12418,"body":12419,"_type":231,"_id":12530,"_source":233,"_file":12531,"_stem":12532,"_extension":236},"\u002Fselaco","Selaco","The handheld's bottom panel becomes Selaco's own codex — datalogs, objectives, milestones, statistics and the manual — while the top screen stays the game.","2026-09-27 18:23","selaco",[12415],{"type":16,"url":12416},"\u002Fcontent\u002Fselaco\u002Fpreview.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1wr9m6u\u002Fselaco_android_port_with_dual_screen_support\u002F","https:\u002F\u002Fgithub.com\u002Fdanillogical\u002FGZSelaco-android",{"type":25,"children":12420,"toc":12525},[12421,12427,12464,12470,12500,12504],{"type":28,"tag":29,"props":12422,"children":12424},{"id":12423},"whats-on-the-panel",[12425],{"type":34,"value":12426},"What's on the panel",{"type":28,"tag":58,"props":12428,"children":12429},{},[12430,12440],{"type":28,"tag":62,"props":12431,"children":12432},{},[12433,12438],{"type":28,"tag":139,"props":12434,"children":12435},{},[12436],{"type":34,"value":12437},"Codex",{"type":34,"value":12439}," — the game's own PDA rather than a reproduction: datalogs,\nobjectives, milestones, statistics and the manual. Open your codex and the\nlower panel goes live and gamepad-driven; close it and it becomes the standby\ncodex, which keeps your last tab and refreshes when you find a secret.",{"type":28,"tag":62,"props":12441,"children":12442},{},[12443,12448,12450,12455,12457,12462],{"type":28,"tag":139,"props":12444,"children":12445},{},[12446],{"type":34,"value":12447},"Size",{"type":34,"value":12449}," — adjustable in ",{"type":28,"tag":139,"props":12451,"children":12452},{},[12453],{"type":34,"value":12454},"Options → Handhelds",{"type":34,"value":12456},", from 1.00 to 2.00\n(default ",{"type":28,"tag":139,"props":12458,"children":12459},{},[12460],{"type":34,"value":12461},"1.75",{"type":34,"value":12463},"), along with turning the panel off entirely.",{"type":28,"tag":29,"props":12465,"children":12467},{"id":12466},"pick-your-device-on-first-launch",[12468],{"type":34,"value":12469},"Pick your device on first launch",{"type":28,"tag":37,"props":12471,"children":12472},{},[12473,12475,12479,12481,12486,12487,12492,12494,12499],{"type":34,"value":12474},"Selaco's two first-run dialogs are replaced by one device picker: ",{"type":28,"tag":139,"props":12476,"children":12477},{},[12478],{"type":34,"value":3347},{"type":34,"value":12480},",\n",{"type":28,"tag":139,"props":12482,"children":12483},{},[12484],{"type":34,"value":12485},"AYN Odin 2",{"type":34,"value":1499},{"type":28,"tag":139,"props":12488,"children":12489},{},[12490],{"type":34,"value":12491},"AYN Odin",{"type":34,"value":12493},", or a Steam Deck preset. That choice sets graphics,\nhandheld UI, controls and the second screen together. Change it later with\n",{"type":28,"tag":139,"props":12495,"children":12496},{},[12497],{"type":34,"value":12498},"Options → Handhelds → Reset Device Choice",{"type":34,"value":176},{"type":28,"tag":29,"props":12501,"children":12502},{"id":99},[12503],{"type":34,"value":102},{"type":28,"tag":37,"props":12505,"children":12506},{},[12507,12509,12515,12517,12523],{"type":34,"value":12508},"You need to own Selaco — no game data is included. Copy ",{"type":28,"tag":43,"props":12510,"children":12512},{"className":12511},[],[12513],{"type":34,"value":12514},"Selaco.ipk3",{"type":34,"value":12516}," from your\nSteam install to ",{"type":28,"tag":43,"props":12518,"children":12520},{"className":12519},[],[12521],{"type":34,"value":12522},"Internal storage\u002FSelaco\u002F",{"type":34,"value":12524},", install the APK, then pick your\ndevice on first launch. A gamepad is required (there are no touch controls) and\nVulkan 1.1+ is mandatory.",{"title":6,"searchDepth":225,"depth":225,"links":12526},[12527,12528,12529],{"id":12423,"depth":225,"text":12426},{"id":12466,"depth":225,"text":12469},{"id":99,"depth":225,"text":102},"content:selaco:index.md","selaco\u002Findex.md","selaco\u002Findex",{"_path":12534,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":12535,"description":12536,"date":12537,"slug":12538,"category":3687,"generated":13,"media":12539,"source":12542,"project_page":12543,"body":12544,"_type":231,"_id":12716,"_source":233,"_file":12717,"_stem":12718,"_extension":236},"\u002Fsleepmanager","SleepManager","Android sleep\u002Fwake manager that cuts standby battery drain on the AYN Thor and other handhelds.","2026-09-27 18:22","sleepmanager",[12540],{"type":245,"url":12541},"https:\u002F\u002Fyoutu.be\u002FMATer9L8E1s?si=uhFrzt0F5maFB6eY","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1wr105i\u002Fmake_your_ayn_thor_run_even_longer_sleepmanager\u002F","https:\u002F\u002Fgithub.com\u002FBaggio94\u002FSleepManager",{"type":25,"children":12545,"toc":12710},[12546,12550,12555,12559,12595,12600,12604,12674,12679],{"type":28,"tag":29,"props":12547,"children":12548},{"id":31},[12549],{"type":34,"value":35},{"type":28,"tag":37,"props":12551,"children":12552},{},[12553],{"type":34,"value":12554},"SleepManager is an Android app that reduces standby battery drain on handhelds like the AYN Thor. The basic idea: when your handheld sleeps, stop or disable what doesn't need to be running, and restore it properly when you wake the device. It can manage Wi-Fi, Bluetooth, Syncthing-Fork, BasicSync, Tailscale and JamesDSP, and it was born out of the developer's frustration with Android handheld standby drain — some devices lost around 14% overnight or were completely dead after a few days. No root, Shizuku or ADB is required for normal use.",{"type":28,"tag":29,"props":12556,"children":12557},{"id":99},[12558],{"type":34,"value":102},{"type":28,"tag":104,"props":12560,"children":12561},{},[12562,12574,12579,12584],{"type":28,"tag":62,"props":12563,"children":12564},{},[12565,12567,12573],{"type":34,"value":12566},"Download and install the latest SleepManager APK from the ",{"type":28,"tag":705,"props":12568,"children":12571},{"href":12569,"rel":12570},"https:\u002F\u002Fgithub.com\u002FBaggio94\u002FSleepManager\u002Freleases\u002Flatest",[709],[12572],{"type":34,"value":712},{"type":34,"value":176},{"type":28,"tag":62,"props":12575,"children":12576},{},[12577],{"type":34,"value":12578},"Install the optional SleepManager Helper if you want Wi-Fi or Bluetooth control.",{"type":28,"tag":62,"props":12580,"children":12581},{},[12582],{"type":34,"value":12583},"Open SleepManager and choose what you want it to manage during sleep.",{"type":28,"tag":62,"props":12585,"children":12586},{},[12587,12589,12594],{"type":34,"value":12588},"Enable SleepManager, then tap ",{"type":28,"tag":139,"props":12590,"children":12591},{},[12592],{"type":34,"value":12593},"Finish setup",{"type":34,"value":176},{"type":28,"tag":37,"props":12596,"children":12597},{},[12598],{"type":34,"value":12599},"SleepManager always tries to restore only what it changed — for example, if Wi-Fi was already off before sleep, it stays off after wake.",{"type":28,"tag":29,"props":12601,"children":12602},{"id":53},[12603],{"type":34,"value":56},{"type":28,"tag":58,"props":12605,"children":12606},{},[12607,12625,12654,12659,12664,12669],{"type":28,"tag":62,"props":12608,"children":12609},{},[12610,12612,12617,12618,12623],{"type":34,"value":12611},"Turn ",{"type":28,"tag":139,"props":12613,"children":12614},{},[12615],{"type":34,"value":12616},"Wi-Fi",{"type":34,"value":1475},{"type":28,"tag":139,"props":12619,"children":12620},{},[12621],{"type":34,"value":12622},"Bluetooth",{"type":34,"value":12624}," off during sleep and restore them safely on wake.",{"type":28,"tag":62,"props":12626,"children":12627},{},[12628,12630,12635,12637,12642,12643,12647,12648,12653],{"type":34,"value":12629},"Pause and resume ",{"type":28,"tag":139,"props":12631,"children":12632},{},[12633],{"type":34,"value":12634},"Syncthing-Fork",{"type":34,"value":12636},"; manage ",{"type":28,"tag":139,"props":12638,"children":12639},{},[12640],{"type":34,"value":12641},"BasicSync",{"type":34,"value":1499},{"type":28,"tag":139,"props":12644,"children":12645},{},[12646],{"type":34,"value":4379},{"type":34,"value":1475},{"type":28,"tag":139,"props":12649,"children":12650},{},[12651],{"type":34,"value":12652},"JamesDSP",{"type":34,"value":176},{"type":28,"tag":62,"props":12655,"children":12656},{},[12657],{"type":34,"value":12658},"Run optional syncs before sleep, after wake or periodically while sleeping with supported providers (advanced sync modes require BasicSync 3.19+).",{"type":28,"tag":62,"props":12660,"children":12661},{},[12662],{"type":34,"value":12663},"Track sleep battery drain, mAh use, deep sleep and standby estimates, including a 7-day average and best\u002Fworst measured drain.",{"type":28,"tag":62,"props":12665,"children":12666},{},[12667],{"type":34,"value":12668},"Keep an activity log and copyable diagnostics.",{"type":28,"tag":62,"props":12670,"children":12671},{},[12672],{"type":34,"value":12673},"Check and install stable updates from inside the app.",{"type":28,"tag":29,"props":12675,"children":12677},{"id":12676},"ayn-thor",[12678],{"type":34,"value":3347},{"type":28,"tag":37,"props":12680,"children":12681},{},[12682,12684,12689,12691,12696,12698,12703,12704,12709],{"type":34,"value":12683},"SleepManager adds extra options when it detects the Thor lid sensor. ",{"type":28,"tag":139,"props":12685,"children":12686},{},[12687],{"type":34,"value":12688},"Closed-lid protection",{"type":34,"value":12690}," puts the Thor back to sleep if it wakes unexpectedly while the lid is still closed, instead of restoring Wi-Fi, Bluetooth and other services too early — this needs Android ",{"type":28,"tag":139,"props":12692,"children":12693},{},[12694],{"type":34,"value":12695},"Device Admin",{"type":34,"value":12697}," permission. It understands when an external display is connected, so docked use is not treated as a false wake. Optional Thor controls include ",{"type":28,"tag":139,"props":12699,"children":12700},{},[12701],{"type":34,"value":12702},"Sleep when external display disconnects",{"type":34,"value":1475},{"type":28,"tag":139,"props":12705,"children":12706},{},[12707],{"type":34,"value":12708},"Power button sleeps with lid closed",{"type":34,"value":176},{"title":6,"searchDepth":225,"depth":225,"links":12711},[12712,12713,12714,12715],{"id":31,"depth":225,"text":35},{"id":99,"depth":225,"text":102},{"id":53,"depth":225,"text":56},{"id":12676,"depth":225,"text":3347},"content:sleepmanager:index.md","sleepmanager\u002Findex.md","sleepmanager\u002Findex",{"_path":12720,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":12721,"description":12722,"date":12723,"slug":12724,"category":242,"media":12725,"project_page":12730,"body":12731,"_type":231,"_id":12798,"_source":233,"_file":12799,"_stem":12800,"_extension":236},"\u002Fshowdown-ds","Showdown!","Native Android Pokémon Showdown! client for the AYN Thor dual screens: live battles, replays and teams with two-screen playback.","2026-09-26 10:23","showdown-ds",[12726,12728],{"type":16,"url":12727},"\u002Fcontent\u002Fshowdown-ds\u002Fpreview.webp",{"type":16,"url":12729},"\u002Fcontent\u002Fshowdown-ds\u002Fscreenshot-2.webp","https:\u002F\u002Fgithub.com\u002Fcastdrian\u002Fshowdown-ds",{"type":25,"children":12732,"toc":12794},[12733,12737,12742,12747,12752,12757,12761],{"type":28,"tag":29,"props":12734,"children":12735},{"id":31},[12736],{"type":34,"value":35},{"type":28,"tag":37,"props":12738,"children":12739},{},[12740],{"type":34,"value":12741},"Showdown! is a native Android Pokémon Showdown! client built for the AYN Thor dual-screen handheld. It is not an emulator: it is a standalone app (Android Canvas + WebView) that connects to the official Pokémon Showdown! servers.",{"type":28,"tag":37,"props":12743,"children":12744},{},[12745],{"type":34,"value":12746},"The client is designed around the Thor's display configuration: a 1920×1080 upper screen at 120 Hz and a 1240×1080 lower screen at 60 Hz. Battles are rendered across both screens in a readable two-screen layout, with HD-first battle and team-preview sprites, including shiny front and rear variants.",{"type":28,"tag":37,"props":12748,"children":12749},{},[12750],{"type":34,"value":12751},"Features: live battles, two-screen playback, an optional Pokémon Battle Revolution announcer mode, searchable battle and team formats, searchable team selection, replays, rooms, tournaments, public ladders, player profiles, a team library with four move slots per Pokémon, shared team-link imports, chat, and account tools.",{"type":28,"tag":37,"props":12753,"children":12754},{},[12755],{"type":34,"value":12756},"No ROM or BIOS dumps are required — everything runs through the official Pokémon Showdown! servers. Install the APK, sign in (or play as a guest) and battle.",{"type":28,"tag":29,"props":12758,"children":12759},{"id":99},[12760],{"type":34,"value":102},{"type":28,"tag":104,"props":12762,"children":12763},{},[12764,12784,12789],{"type":28,"tag":62,"props":12765,"children":12766},{},[12767,12769,12775,12777,12783],{"type":34,"value":12768},"Download the APK from the repository's ",{"type":28,"tag":705,"props":12770,"children":12773},{"href":12771,"rel":12772},"https:\u002F\u002Fgithub.com\u002Fcastdrian\u002Fshowdown-ds\u002Freleases\u002Flatest",[709],[12774],{"type":34,"value":712},{"type":34,"value":12776}," (file named ",{"type":28,"tag":43,"props":12778,"children":12780},{"className":12779},[],[12781],{"type":34,"value":12782},"showdown-\u003Ctag>.apk",{"type":34,"value":898},{"type":28,"tag":62,"props":12785,"children":12786},{},[12787],{"type":34,"value":12788},"Install the APK on the Thor and launch the app.",{"type":28,"tag":62,"props":12790,"children":12791},{},[12792],{"type":34,"value":12793},"Sign in to your Pokémon Showdown! account or play as a guest.",{"title":6,"searchDepth":225,"depth":225,"links":12795},[12796,12797],{"id":31,"depth":225,"text":35},{"id":99,"depth":225,"text":102},"content:showdown-ds:index.md","showdown-ds\u002Findex.md","showdown-ds\u002Findex",{"_path":12802,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":12803,"description":12804,"date":12805,"slug":12806,"category":242,"media":12807,"source":12810,"project_page":12811,"body":12812,"_type":231,"_id":12881,"_source":233,"_file":12882,"_stem":12883,"_extension":236},"\u002Fpixel-navigator","Pixel Navigator","Android map companion for emulated games — maps, player tracking and BattleDex for dozens of Pokémon ROM hacks, Zelda and more, ideal for the Thor's second screen.","2026-09-26 10:16","pixel-navigator",[12808],{"type":16,"url":12809},"\u002Fcontent\u002Fpixel-navigator\u002Fpreview.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1wfm4hc\u002Fits_amazing_how_every_rom_can_be_so_diverse_also\u002F","https:\u002F\u002Fgithub.com\u002FChimeraGaming\u002FPixelNavigator",{"type":25,"children":12813,"toc":12877},[12814,12818,12832,12837,12842,12847,12851],{"type":28,"tag":29,"props":12815,"children":12816},{"id":31},[12817],{"type":34,"value":35},{"type":28,"tag":37,"props":12819,"children":12820},{},[12821,12823,12830],{"type":34,"value":12822},"Pixel Navigator is an Android map companion app for emulated games. It grew out of the author's earlier project ",{"type":28,"tag":705,"props":12824,"children":12827},{"href":12825,"rel":12826},"https:\u002F\u002Fgithub.com\u002FChimeraGaming\u002FFanmakePokemonMaps_Android",[709],[12828],{"type":34,"value":12829},"Fanmake Pokémon Maps",{"type":34,"value":12831},", which provided maps and player tracking for RPG Maker XP Pokémon fangames. Pixel Navigator extends the same concept to ROMs and other emulated games across multiple systems.",{"type":28,"tag":37,"props":12833,"children":12834},{},[12835],{"type":34,"value":12836},"The app shows game maps on a second screen while you play, tracks the player's position, and includes extras like a BattleDex and quest tracking for supported titles. The supported game list is large and growing: dozens of GBA Pokémon ROM hacks (Pokémon Unbound, Emerald Rogue, Radical Red, Gaia, Glazed, Clover, Crown, Odyssey and more), Dragon Ball Z: The Legacy of Goku I\u002FII and Buu's Fury, The Legend of Zelda: The Minish Cap, NES Zelda titles, Pokémon Crystal Awakening on GB\u002FGBC, and Breath of Fire III\u002FIV on PlayStation.",{"type":28,"tag":37,"props":12838,"children":12839},{},[12840],{"type":34,"value":12841},"The app is in beta and the author actively asks for testing feedback — just play normally and report when maps break, don't line up correctly, or don't work as expected. Since ROM hacks change frequently (some update every couple of days), map compatibility can vary between ROM revisions.",{"type":28,"tag":37,"props":12843,"children":12844},{},[12845],{"type":34,"value":12846},"Game data is not included — you need your own legally obtained ROMs. Pixel Navigator is an independent project, not affiliated with Nintendo, Sony, or any game or emulator developers.",{"type":28,"tag":29,"props":12848,"children":12849},{"id":99},[12850],{"type":34,"value":102},{"type":28,"tag":104,"props":12852,"children":12853},{},[12854,12867,12872],{"type":28,"tag":62,"props":12855,"children":12856},{},[12857,12858,12865],{"type":34,"value":6559},{"type":28,"tag":705,"props":12859,"children":12862},{"href":12860,"rel":12861},"https:\u002F\u002Fgithub.com\u002FChimeraGaming\u002FPixelNavigator\u002Freleases",[709],[12863],{"type":34,"value":12864},"Releases",{"type":34,"value":12866}," page and install it on the AYN Thor.",{"type":28,"tag":62,"props":12868,"children":12869},{},[12870],{"type":34,"value":12871},"Open the app and pick a supported game from the built-in game list (the full list is in the repository README).",{"type":28,"tag":62,"props":12873,"children":12874},{},[12875],{"type":34,"value":12876},"Play the game in your emulator as usual — the map and tracking appear on the second screen.",{"title":6,"searchDepth":225,"depth":225,"links":12878},[12879,12880],{"id":31,"depth":225,"text":35},{"id":99,"depth":225,"text":102},"content:pixel-navigator:index.md","pixel-navigator\u002Findex.md","pixel-navigator\u002Findex",{"_path":12885,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":12886,"description":12887,"date":12888,"slug":12889,"category":242,"media":12890,"source":12895,"project_page":12896,"body":12897,"_type":231,"_id":13077,"_source":233,"_file":13078,"_stem":13079,"_extension":236},"\u002Fpokemon-emerald-companion","Pokémon Emerald Companion","Companion app for the Thor's bottom screen that reads Pokémon Emerald's memory via RetroArch and shows live party, battle, IVs\u002FEVs, encounters and map info.","2026-09-26 09:53","pokemon-emerald-companion",[12891,12893],{"type":16,"url":12892},"\u002Fcontent\u002Fpokemon-emerald-companion\u002Fpreview.webp",{"type":245,"url":12894},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=FVqNzKuIjeQ","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1wngmnf\u002Fpok%C3%A9mon_emerald_companion\u002F","https:\u002F\u002Fgithub.com\u002Fpazukishin\u002FPokeEmeraldThorCompanion",{"type":25,"children":12898,"toc":13073},[12899,12903,12916,12921,13016,13021,13025],{"type":28,"tag":29,"props":12900,"children":12901},{"id":31},[12902],{"type":34,"value":35},{"type":28,"tag":37,"props":12904,"children":12905},{},[12906,12908,12914],{"type":34,"value":12907},"Thor Companion is an Android companion app for playing Pokémon Emerald on RetroArch from an AYN Thor. The game runs on the main screen; the app occupies the compact 3.92-inch secondary display and shows live game info read over RetroArch's network control interface (",{"type":28,"tag":43,"props":12909,"children":12911},{"className":12910},[],[12912],{"type":34,"value":12913},"READ_CORE_MEMORY",{"type":34,"value":12915}," over UDP, with a short timeout so gameplay is never blocked).",{"type":28,"tag":37,"props":12917,"children":12918},{},[12919],{"type":34,"value":12920},"What it shows on the bottom screen:",{"type":28,"tag":58,"props":12922,"children":12923},{},[12924,12977,12987,12997],{"type":28,"tag":62,"props":12925,"children":12926},{},[12927,12932,12934,12940,12941,12947,12948,12954,12955,12961,12962,12968,12969,12975],{"type":28,"tag":139,"props":12928,"children":12929},{},[12930],{"type":34,"value":12931},"Live party \u002F battle info",{"type":34,"value":12933}," — stats in a 2×3 grid, IVs\u002FEVs with perfect-31 values highlighted, nature with stat modifiers, ability with its description, happiness, Hidden Power type, held items (marked with a Poké Ball badge), HP colour-coded, and status badges (",{"type":28,"tag":43,"props":12935,"children":12937},{"className":12936},[],[12938],{"type":34,"value":12939},"SLP",{"type":34,"value":1499},{"type":28,"tag":43,"props":12942,"children":12944},{"className":12943},[],[12945],{"type":34,"value":12946},"PSN",{"type":34,"value":1499},{"type":28,"tag":43,"props":12949,"children":12951},{"className":12950},[],[12952],{"type":34,"value":12953},"TOX",{"type":34,"value":1499},{"type":28,"tag":43,"props":12956,"children":12958},{"className":12957},[],[12959],{"type":34,"value":12960},"BRN",{"type":34,"value":1499},{"type":28,"tag":43,"props":12963,"children":12965},{"className":12964},[],[12966],{"type":34,"value":12967},"FRZ",{"type":34,"value":1499},{"type":28,"tag":43,"props":12970,"children":12972},{"className":12971},[],[12973],{"type":34,"value":12974},"PAR",{"type":34,"value":12976},"). Wild and trainer battles are detected automatically; trainer battles show the opponent's full team of 6.",{"type":28,"tag":62,"props":12978,"children":12979},{},[12980,12985],{"type":28,"tag":139,"props":12981,"children":12982},{},[12983],{"type":34,"value":12984},"Evolution chains",{"type":34,"value":12986}," — shown as a tree with the method (level, stone, trade, happiness, special form, ...), including branching evolutions like Eevee or Wurmple, filtered to species obtainable in Emerald (national dex ≤ 386).",{"type":28,"tag":62,"props":12988,"children":12989},{},[12990,12995],{"type":28,"tag":139,"props":12991,"children":12992},{},[12993],{"type":34,"value":12994},"Map and encounters",{"type":34,"value":12996}," — current map and encounter list with species, levels, method and capture rate.",{"type":28,"tag":62,"props":12998,"children":12999},{},[13000,13005,13007,13014],{"type":28,"tag":139,"props":13001,"children":13002},{},[13003],{"type":34,"value":13004},"Offline-first data",{"type":34,"value":13006}," — encounters, trainers, items (including hidden ones), sprites, types, abilities, Pokédex flavor text and evolution chains are bundled locally, generated from ",{"type":28,"tag":705,"props":13008,"children":13011},{"href":13009,"rel":13010},"https:\u002F\u002Fgithub.com\u002Fpret\u002Fpokeemerald",[709],[13012],{"type":34,"value":13013},"pret\u002Fpokeemerald",{"type":34,"value":13015}," data. Only item detail descriptions fall back to the network.",{"type":28,"tag":37,"props":13017,"children":13018},{},[13019],{"type":34,"value":13020},"The project was developed entirely with AI assistance; the author notes it worked well in early game but is not fully tested — use at your own risk.",{"type":28,"tag":29,"props":13022,"children":13023},{"id":99},[13024],{"type":34,"value":102},{"type":28,"tag":104,"props":13026,"children":13027},{},[13028,13047,13060],{"type":28,"tag":62,"props":13029,"children":13030},{},[13031,13033,13038,13040,13045],{"type":34,"value":13032},"You need your own ",{"type":28,"tag":139,"props":13034,"children":13035},{},[13036],{"type":34,"value":13037},"Pokémon Emerald Version 1.0 (USA)",{"type":34,"value":13039}," ROM (the RetroAchievements version) running in RetroArch with the ",{"type":28,"tag":139,"props":13041,"children":13042},{},[13043],{"type":34,"value":13044},"V.GBA-Next",{"type":34,"value":13046}," core. No ROM is included with the app.",{"type":28,"tag":62,"props":13048,"children":13049},{},[13050,13052,13058],{"type":34,"value":13051},"In RetroArch, enable ",{"type":28,"tag":43,"props":13053,"children":13055},{"className":13054},[],[13056],{"type":34,"value":13057},"Settings > Network > Network Control Interface or Network Commands",{"type":34,"value":13059}," (with memory reading allowed) and configure the UDP port used by the app. Note: some RetroArch builds show the option but it doesn't actually work — enable it, save, restart RetroArch, and check it's still enabled; if not, use another build.",{"type":28,"tag":62,"props":13061,"children":13062},{},[13063,13065,13071],{"type":34,"value":13064},"Install a prebuilt APK from the repository's ",{"type":28,"tag":43,"props":13066,"children":13068},{"className":13067},[],[13069],{"type":34,"value":13070},"releases\u002F",{"type":34,"value":13072}," folder (or build from Android Studio, Android SDK 35). The device must be able to reach the Thor's IP address.",{"title":6,"searchDepth":225,"depth":225,"links":13074},[13075,13076],{"id":31,"depth":225,"text":35},{"id":99,"depth":225,"text":102},"content:pokemon-emerald-companion:index.md","pokemon-emerald-companion\u002Findex.md","pokemon-emerald-companion\u002Findex",{"_path":13081,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":13082,"description":13083,"date":13084,"slug":13085,"category":242,"generated":13,"media":13086,"source":13093,"project_page":13094,"body":13095,"_type":231,"_id":13241,"_source":233,"_file":13242,"_stem":13243,"_extension":236},"\u002Fzomboidds","ZomboidDS","Dual-screen companion app for Project Zomboid (Build 42) via Zomdroid: the game on the top screen, inventory, crafting, status, map and vehicle controls on the Thor's bottom screen.","2026-09-26 09:47","zomboidds",[13087,13089,13091],{"type":16,"url":13088},"\u002Fcontent\u002Fzomboidds\u002Fpreview.webp",{"type":16,"url":13090},"\u002Fcontent\u002Fzomboidds\u002Fscreenshot-2.webp",{"type":16,"url":13092},"\u002Fcontent\u002Fzomboidds\u002Fscreenshot-3.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1wptab9\u002Fzomboidds_dualscreen_mod_for_pz_on_zomdroid\u002F","https:\u002F\u002Fgithub.com\u002FSpace001000\u002FZomboidDS",{"type":25,"children":13096,"toc":13237},[13097,13101,13106,13111,13183,13188,13193,13198,13202,13232],{"type":28,"tag":29,"props":13098,"children":13099},{"id":31},[13100],{"type":34,"value":35},{"type":28,"tag":37,"props":13102,"children":13103},{},[13104],{"type":34,"value":13105},"ZomboidDS is a Nintendo DS-style dual-screen setup for Project Zomboid on handhelds like the AYN Thor. The game runs on the top screen through Zomdroid, while the ZomboidDS Companion app runs on the bottom screen and renders everything in the game's own art — icons are read from the player's own installation on the device, no game files are shipped.",{"type":28,"tag":37,"props":13107,"children":13108},{},[13109],{"type":34,"value":13110},"The bottom screen has these panels:",{"type":28,"tag":58,"props":13112,"children":13113},{},[13114,13124,13134,13144,13154,13163,13173],{"type":28,"tag":62,"props":13115,"children":13116},{},[13117,13122],{"type":28,"tag":139,"props":13118,"children":13119},{},[13120],{"type":34,"value":13121},"Map",{"type":34,"value":13123}," — the game's minimap on the bottom screen. It follows you (or your car), only shows what you've explored, and can show your own map symbols and notes. It sits next to the Here tab or on its own tab, and only shows on saves that allow the minimap unless you tick \"Map on every save\" in the mod options.",{"type":28,"tag":62,"props":13125,"children":13126},{},[13127,13132],{"type":28,"tag":139,"props":13128,"children":13129},{},[13130],{"type":34,"value":13131},"Inventory",{"type":34,"value":13133}," — your bags and every container around you, with the game's icons; move items with a tap or by dragging, and use them through the game's own item menu (read, eat, apply, craft, ...). A new side-by-side layout, plus multi-select: hold an item for half a second or draw a box over several, then move them all at once.",{"type":28,"tag":62,"props":13135,"children":13136},{},[13137,13142],{"type":28,"tag":139,"props":13138,"children":13139},{},[13140],{"type":34,"value":13141},"Here",{"type":34,"value":13143}," — its own tab with what you can do where you stand, one card per object (fridge, sink, door, ...). In a car it turns into the vehicle view with the car's own menu as big buttons.",{"type":28,"tag":62,"props":13145,"children":13146},{},[13147,13152],{"type":28,"tag":139,"props":13148,"children":13149},{},[13150],{"type":34,"value":13151},"Deck",{"type":34,"value":13153}," — the game's speed buttons, the time and your alarm, plus commands you pick yourself (zoom, search mode, flashlight, map, sit, shout, drop bag, ...). Weapons shows your hotbar, so you can switch weapons with one tap.",{"type":28,"tag":62,"props":13155,"children":13156},{},[13157,13161],{"type":28,"tag":139,"props":13158,"children":13159},{},[13160],{"type":34,"value":6196},{"type":34,"value":13162}," — the game's moodles, your body with its injuries, and the game's treatments.",{"type":28,"tag":62,"props":13164,"children":13165},{},[13166,13171],{"type":28,"tag":139,"props":13167,"children":13168},{},[13169],{"type":34,"value":13170},"Craft",{"type":34,"value":13172}," — the recipes you can make with what's in reach, what each needs, and crafting them.",{"type":28,"tag":62,"props":13174,"children":13175},{},[13176,13181],{"type":28,"tag":139,"props":13177,"children":13178},{},[13179],{"type":34,"value":13180},"Vehicle",{"type":34,"value":13182}," — while you drive, speed, engine and fuel with the car's controls.",{"type":28,"tag":37,"props":13184,"children":13185},{},[13186],{"type":34,"value":13187},"An item's main uses (eat, drink, wear, read, bandage, reload, ...) are buttons now, taken from the game's own menu.",{"type":28,"tag":37,"props":13189,"children":13190},{},[13191],{"type":34,"value":13192},"Because everything is driven by the game's own data, most mods should stay compatible. The mod's bridge listens only on 127.0.0.1 (loopback), so nothing on the network can reach it; the app has no analytics and no accounts. On the Thor, the companion app launches on the bottom screen (display 4).",{"type":28,"tag":37,"props":13194,"children":13195},{},[13196],{"type":34,"value":13197},"ZomboidDS is an unofficial mod, not affiliated with or endorsed by The Indie Stone. It requires your own copy of Project Zomboid (Build 42) running in Zomdroid — no game data is included. It builds on ZombieBuddy (MIT) as the Java mod loader. Licensed under GPLv3.",{"type":28,"tag":29,"props":13199,"children":13200},{"id":99},[13201],{"type":34,"value":102},{"type":28,"tag":104,"props":13203,"children":13204},{},[13205,13210,13222,13227],{"type":28,"tag":62,"props":13206,"children":13207},{},[13208],{"type":34,"value":13209},"Install Zomdroid and set up your own copy of Project Zomboid (Build 42) in it.",{"type":28,"tag":62,"props":13211,"children":13212},{},[13213,13214,13220],{"type":34,"value":1974},{"type":28,"tag":43,"props":13215,"children":13217},{"className":13216},[],[13218],{"type":34,"value":13219},"ZomboidDS-\u003Cversion>.apk",{"type":34,"value":13221}," from the latest release and install it.",{"type":28,"tag":62,"props":13223,"children":13224},{},[13225],{"type":34,"value":13226},"Follow the in-app setup checklist: it installs the mod for you (through Android's folder picker, no storage permission needed), downloads ZombieBuddy from its GitHub releases (a pinned version verified against built-in SHA-256 hashes), and checks the prerequisites. The app updates itself from the setup screen and shows what's new after an update.",{"type":28,"tag":62,"props":13228,"children":13229},{},[13230],{"type":34,"value":13231},"Launch the game in Zomdroid on the top screen and the companion app on the bottom screen.",{"type":28,"tag":37,"props":13233,"children":13234},{},[13235],{"type":34,"value":13236},"A detailed user guide is included in the repository.",{"title":6,"searchDepth":225,"depth":225,"links":13238},[13239,13240],{"id":31,"depth":225,"text":35},{"id":99,"depth":225,"text":102},"content:zomboidds:index.md","zomboidds\u002Findex.md","zomboidds\u002Findex",{"_path":13245,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":13246,"description":13247,"date":13248,"slug":13249,"category":12,"media":13250,"source":13253,"project_page":13254,"body":13255,"_type":231,"_id":13362,"_source":233,"_file":13363,"_stem":13364,"_extension":236},"\u002Ftomba-2","Tomba! 2 Recompiled Dual Screen","A native Android recompilation of Tomba! 2 with a live second-screen companion — items, events, status and a walkthrough reader on the AYN Thor","2026-09-12 04:05","tomba-2",[13251],{"type":16,"url":13252},"\u002Fcontent\u002Ftomba-2\u002Fpreview.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1wdwd2w\u002Ftomba_2_recompiled_dual_screen\u002F","https:\u002F\u002Fgithub.com\u002Figawa6\u002FTomba2RecompDS",{"type":25,"children":13256,"toc":13358},[13257,13261,13273,13278,13283,13317,13321],{"type":28,"tag":29,"props":13258,"children":13259},{"id":31},[13260],{"type":34,"value":35},{"type":28,"tag":37,"props":13262,"children":13263},{},[13264,13266,13271],{"type":34,"value":13265},"Tomba! 2 Recompiled Dual Screen is a static recompilation of ",{"type":28,"tag":139,"props":13267,"children":13268},{},[13269],{"type":34,"value":13270},"Tomba! 2 — The Evil Swine Return (USA, SCUS-94454)",{"type":34,"value":13272}," running natively on Android, with a live second-screen companion for clamshell handhelds like the AYN Thor. This fork adds the Android port and the dual-screen features.",{"type":28,"tag":37,"props":13274,"children":13275},{},[13276],{"type":34,"value":13277},"The whole idea is the second screen: your items, events and status live down there permanently, read live from the game's memory rather than a static overlay, while the game keeps running untouched up top — no pausing the world to check what you're carrying. The companion has Equip \u002F Usable \u002F Key tabs, and tapping an item uses or equips it without opening the game's own book. There's also a Help tab where you can load any plain-text walkthrough from your device and read it on the bottom screen while you play.",{"type":28,"tag":37,"props":13279,"children":13280},{},[13281],{"type":34,"value":13282},"Other features include native widescreen (16:9 \u002F adaptive rendering that reveals more of the world instead of stretching it, with movies and 2D screens pillarboxed at their authored 4:3), optional 60 FPS frame interpolation built from true intermediate geometry, a multi-pass CRT Royale filter (Curved or Flat, on either screen or both), an on-screen pad with a custom layout editor, physical-controller mapping, and memory-card import\u002Fexport. A prebuilt native code cache ships with the APK, so the game dispatches compiled ARM64 instead of interpreting. No PlayStation BIOS is needed — the MIT-licensed OpenBIOS from PCSX-Redux is used.",{"type":28,"tag":37,"props":13284,"children":13285},{},[13286,13291,13293,13299,13301,13307,13309,13315],{"type":28,"tag":139,"props":13287,"children":13288},{},[13289],{"type":34,"value":13290},"You must supply your own copy of the game",{"type":34,"value":13292}," — no game data is redistributed. Requires a Tomba! 2 (USA, SCUS-94454) disc image (",{"type":28,"tag":43,"props":13294,"children":13296},{"className":13295},[],[13297],{"type":34,"value":13298},".chd",{"type":34,"value":13300},", or ",{"type":28,"tag":43,"props":13302,"children":13304},{"className":13303},[],[13305],{"type":34,"value":13306},".cue",{"type":34,"value":13308}," + ",{"type":28,"tag":43,"props":13310,"children":13312},{"className":13311},[],[13313],{"type":34,"value":13314},".bin",{"type":34,"value":13316},") and Android 9+ arm64.",{"type":28,"tag":29,"props":13318,"children":13319},{"id":99},[13320],{"type":34,"value":102},{"type":28,"tag":104,"props":13322,"children":13323},{},[13324,13336,13348],{"type":28,"tag":62,"props":13325,"children":13326},{},[13327,13328,13334],{"type":34,"value":703},{"type":28,"tag":705,"props":13329,"children":13332},{"href":13330,"rel":13331},"https:\u002F\u002Fgithub.com\u002Figawa6\u002FTomba2RecompDS\u002Freleases",[709],[13333],{"type":34,"value":12864},{"type":34,"value":13335}," page.",{"type":28,"tag":62,"props":13337,"children":13338},{},[13339,13341,13346],{"type":34,"value":13340},"Open it, choose ",{"type":28,"tag":139,"props":13342,"children":13343},{},[13344],{"type":34,"value":13345},"Add your disc",{"type":34,"value":13347},", and pick your disc image.",{"type":28,"tag":62,"props":13349,"children":13350},{},[13351,13352,13356],{"type":34,"value":169},{"type":28,"tag":139,"props":13353,"children":13354},{},[13355],{"type":34,"value":174},{"type":34,"value":13357},". (First launch unpacks the native code cache, so it takes longer than later ones.)",{"title":6,"searchDepth":225,"depth":225,"links":13359},[13360,13361],{"id":31,"depth":225,"text":35},{"id":99,"depth":225,"text":102},"content:tomba-2:index.md","tomba-2\u002Findex.md","tomba-2\u002Findex",{"_path":13366,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":13367,"description":13368,"date":13369,"slug":242,"category":12,"media":13370,"tags":13377,"source":13379,"project_page":13379,"body":13380,"_type":231,"_id":13553,"_source":233,"_file":13554,"_stem":13555,"_extension":236},"\u002Fchronoduo","ChronoDuo","A DS-style second screen for the official Chrono Trigger Android game: live world map, party status and the battle menu on the bottom display","2026-09-08 12:00",[13371,13373,13375],{"type":16,"url":13372},"\u002Fcontent\u002Fchronoduo\u002Fpreview.webp",{"type":16,"url":13374},"\u002Fcontent\u002Fchronoduo\u002Fbattle.webp",{"type":16,"url":13376},"\u002Fcontent\u002Fchronoduo\u002Fforest.webp",[13378,5432,242],"chrono-trigger","https:\u002F\u002Fgithub.com\u002Fkalenjohnson\u002Fchrono-duo",{"type":25,"children":13381,"toc":13548},[13382,13386,13398,13410,13415,13468,13472,13518,13523,13527],{"type":28,"tag":29,"props":13383,"children":13384},{"id":31},[13385],{"type":34,"value":35},{"type":28,"tag":37,"props":13387,"children":13388},{},[13389,13391,13396],{"type":34,"value":13390},"ChronoDuo is a dual-screen host for ",{"type":28,"tag":139,"props":13392,"children":13393},{},[13394],{"type":34,"value":13395},"Chrono Trigger (Upgrade Ver.)",{"type":34,"value":13397}," on the AYN Thor. The real game runs full-widescreen on the top screen while the bottom screen becomes a DS-style companion display, much like the Nintendo DS release.",{"type":28,"tag":37,"props":13399,"children":13400},{},[13401,13403,13408],{"type":34,"value":13402},"ChronoDuo ships no game code or assets. It loads the official Chrono Trigger Android app you already own inside its own process and drives the second screen through Android's standard ",{"type":28,"tag":43,"props":13404,"children":13406},{"className":13405},[],[13407],{"type":34,"value":8271},{"type":34,"value":13409}," API.",{"type":28,"tag":37,"props":13411,"children":13412},{},[13413],{"type":34,"value":13414},"The bottom screen shows:",{"type":28,"tag":58,"props":13416,"children":13417},{},[13418,13428,13438,13448,13458],{"type":28,"tag":62,"props":13419,"children":13420},{},[13421,13426],{"type":28,"tag":139,"props":13422,"children":13423},{},[13424],{"type":34,"value":13425},"Overworld map",{"type":34,"value":13427}," in a sepia, torn-parchment style with a live position marker, the current location name, gold and play time. All eight era maps are rendered on first launch from the game's own map data, and story changes such as bridges and craters show up as they happen.",{"type":28,"tag":62,"props":13429,"children":13430},{},[13431,13436],{"type":28,"tag":139,"props":13432,"children":13433},{},[13434],{"type":34,"value":13435},"Party status",{"type":34,"value":13437}," with real portraits in the game's own window chrome and live HP and MP.",{"type":28,"tag":62,"props":13439,"children":13440},{},[13441,13446],{"type":28,"tag":139,"props":13442,"children":13443},{},[13444],{"type":34,"value":13445},"Battle mirroring",{"type":34,"value":13447}," — the Attack\u002FTech\u002FItem menu and the Tech and Item lists move to the bottom screen, driven by the d-pad, so the top screen stays HUD-free. Enemy HP bars stay hidden by default, with an eye toggle to reveal them.",{"type":28,"tag":62,"props":13449,"children":13450},{},[13451,13456],{"type":28,"tag":139,"props":13452,"children":13453},{},[13454],{"type":34,"value":13455},"Indoor area maps",{"type":34,"value":13457}," with a live marker once you import your own Chrono Trigger DS ROM (decoded on-device, nothing is shipped or uploaded).",{"type":28,"tag":62,"props":13459,"children":13460},{},[13461,13466],{"type":28,"tag":139,"props":13462,"children":13463},{},[13464],{"type":34,"value":13465},"Original pixel art",{"type":34,"value":13467}," — an optional toggle rebuilds the unfiltered SNES-style sprites, field chips and overworld tiles from the 1x art the game itself ships.",{"type":28,"tag":29,"props":13469,"children":13470},{"id":99},[13471],{"type":34,"value":102},{"type":28,"tag":104,"props":13473,"children":13474},{},[13475,13489,13507],{"type":28,"tag":62,"props":13476,"children":13477},{},[13478,13480,13487],{"type":34,"value":13479},"Install the official ",{"type":28,"tag":705,"props":13481,"children":13484},{"href":13482,"rel":13483},"https:\u002F\u002Fplay.google.com\u002Fstore\u002Fapps\u002Fdetails?id=com.square_enix.android_googleplay.chrono",[709],[13485],{"type":34,"value":13486},"CHRONO TRIGGER (Upgrade Ver.)",{"type":34,"value":13488}," from Google Play (version 2.1.5 or newer) and launch it once.",{"type":28,"tag":62,"props":13490,"children":13491},{},[13492,13493,13499,13500,13506],{"type":34,"value":7420},{"type":28,"tag":43,"props":13494,"children":13496},{"className":13495},[],[13497],{"type":34,"value":13498},"ChronoDuo-\u003Cversion>.apk",{"type":34,"value":1981},{"type":28,"tag":705,"props":13501,"children":13504},{"href":13502,"rel":13503},"https:\u002F\u002Fgithub.com\u002Fkalenjohnson\u002Fchrono-duo\u002Freleases",[709],[13505],{"type":34,"value":3036},{"type":34,"value":12248},{"type":28,"tag":62,"props":13508,"children":13509},{},[13510,13512,13516],{"type":34,"value":13511},"Launch ",{"type":28,"tag":139,"props":13513,"children":13514},{},[13515],{"type":34,"value":13367},{"type":34,"value":13517}," instead of Chrono Trigger. The game boots on the top screen and the companion display appears on the bottom.",{"type":28,"tag":37,"props":13519,"children":13520},{},[13521],{"type":34,"value":13522},"Tap the gear in the top-left corner of the bottom screen (outside battle) to open settings, import a DS ROM, or build the original pixel-art sheets.",{"type":28,"tag":29,"props":13524,"children":13525},{"id":192},[13526],{"type":34,"value":195},{"type":28,"tag":58,"props":13528,"children":13529},{},[13530,13535],{"type":28,"tag":62,"props":13531,"children":13532},{},[13533],{"type":34,"value":13534},"Requires Android 8.0+ on an arm64 device; developed and tested on the AYN Thor Lite.",{"type":28,"tag":62,"props":13536,"children":13537},{},[13538,13540,13547],{"type":34,"value":13539},"Early release (0.1). Report problems on the project's ",{"type":28,"tag":705,"props":13541,"children":13544},{"href":13542,"rel":13543},"https:\u002F\u002Fgithub.com\u002Fkalenjohnson\u002Fchrono-duo\u002Fissues",[709],[13545],{"type":34,"value":13546},"issue tracker",{"type":34,"value":176},{"title":6,"searchDepth":225,"depth":225,"links":13549},[13550,13551,13552],{"id":31,"depth":225,"text":35},{"id":99,"depth":225,"text":102},{"id":192,"depth":225,"text":195},"content:chronoduo:index.md","chronoduo\u002Findex.md","chronoduo\u002Findex",{"_path":13557,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":13558,"description":13559,"date":13560,"slug":13561,"category":3687,"media":13562,"project_page":13565,"body":13566,"_type":231,"_id":13648,"_source":233,"_file":13649,"_stem":13650,"_extension":236},"\u002Fdualscreen-launcher","DualScreen Launcher","An Android game launcher that adds dual-screen mods and configs for supported PC and Switch games","2026-09-07 15:00","dualscreen-launcher",[13563],{"type":245,"url":13564},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=sxXRPmRHnT8","https:\u002F\u002Fgithub.com\u002FJoeCorrell\u002FDualScreen-Launcher",{"type":25,"children":13567,"toc":13644},[13568,13572,13577,13582,13588,13593,13631],{"type":28,"tag":29,"props":13569,"children":13570},{"id":31},[13571],{"type":34,"value":35},{"type":28,"tag":37,"props":13573,"children":13574},{},[13575],{"type":34,"value":13576},"DualScreen Launcher is an Android game launcher built for dual-screen handhelds such as the AYN Thor. It brings supported PC and Nintendo Switch games into one interface and applies tested configurations and custom dual-screen mods so gameplay can use both displays.",{"type":28,"tag":37,"props":13578,"children":13579},{},[13580],{"type":34,"value":13581},"Supported titles include some PC games, Super Mario Odyssey, Minecraft, and a Switch library with per-game required-version indicators. Each game gets a custom second-screen companion where the bottom display shows maps, inventories and other interactive info.",{"type":28,"tag":29,"props":13583,"children":13585},{"id":13584},"access",[13586],{"type":34,"value":13587},"Access",{"type":28,"tag":37,"props":13589,"children":13590},{},[13591],{"type":34,"value":13592},"Access is available to active Patreon supporters or people who receive an access code directly from the developer:",{"type":28,"tag":104,"props":13594,"children":13595},{},[13596,13606,13616,13626],{"type":28,"tag":62,"props":13597,"children":13598},{},[13599],{"type":28,"tag":705,"props":13600,"children":13603},{"href":13601,"rel":13602},"https:\u002F\u002Fwww.patreon.com\u002Fc\u002FProfMags",[709],[13604],{"type":34,"value":13605},"Join the Patreon",{"type":28,"tag":62,"props":13607,"children":13608},{},[13609,13610],{"type":34,"value":4165},{"type":28,"tag":705,"props":13611,"children":13614},{"href":13612,"rel":13613},"https:\u002F\u002Fgithub.com\u002FJoeCorrell\u002FDualScreen-Launcher\u002Freleases\u002Flatest",[709],[13615],{"type":34,"value":1078},{"type":28,"tag":62,"props":13617,"children":13618},{},[13619,13621],{"type":34,"value":13620},"Install and open the app, then choose ",{"type":28,"tag":139,"props":13622,"children":13623},{},[13624],{"type":34,"value":13625},"Sign in with Patreon",{"type":28,"tag":62,"props":13627,"children":13628},{},[13629],{"type":34,"value":13630},"Sign in with the Patreon account that has the active membership, or enter your access code on the same screen",{"type":28,"tag":37,"props":13632,"children":13633},{},[13634,13636,13643],{"type":34,"value":13635},"Patreon memberships are securely rechecked periodically and must remain active. If you need help, join the ",{"type":28,"tag":705,"props":13637,"children":13640},{"href":13638,"rel":13639},"https:\u002F\u002Fdiscord.gg\u002Fj4tTYMHYRn",[709],[13641],{"type":34,"value":13642},"Discord server",{"type":34,"value":176},{"title":6,"searchDepth":225,"depth":225,"links":13645},[13646,13647],{"id":31,"depth":225,"text":35},{"id":13584,"depth":225,"text":13587},"content:dualscreen-launcher:index.md","dualscreen-launcher\u002Findex.md","dualscreen-launcher\u002Findex",{"_path":13652,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":13653,"description":13654,"date":13655,"slug":13656,"category":12,"media":13657,"source":13660,"project_page":13661,"body":13662,"_type":231,"_id":13752,"_source":233,"_file":13753,"_stem":13754,"_extension":236},"\u002Fdigimon-world-2003","Digimon World 2003 Dual Screen","An Android DS companion for Digimon World 2003 (PAL) + Flawe's Mod 2.0 — live maps, battle stats and digivolution info on the AYN Thor's second screen","2026-09-05 12:40","digimon-world-2003",[13658],{"type":16,"url":13659},"\u002Fcontent\u002Fdigimon-world-2003\u002Fpreview.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1w7jiau\u002Fandroid_ds_companion_for_digimon_world_2003_pal\u002F","https:\u002F\u002Fgithub.com\u002Frsigristc\u002FDW3-DS-Android",{"type":25,"children":13663,"toc":13749},[13664,13668,13681,13686,13729,13734,13744],{"type":28,"tag":29,"props":13665,"children":13666},{"id":31},[13667],{"type":34,"value":35},{"type":28,"tag":37,"props":13669,"children":13670},{},[13671,13673,13679],{"type":34,"value":13672},"DW2003 Dual Screen runs the PAL version of Digimon World 2003 (",{"type":28,"tag":43,"props":13674,"children":13676},{"className":13675},[],[13677],{"type":34,"value":13678},"SLES-03936",{"type":34,"value":13680},") through PCSX-ReARMed on Android and shows a live companion pane on a second display — the AYN Thor's second screen, a Galaxy Z Fold (hinge or split), or a tablet.",{"type":28,"tag":37,"props":13682,"children":13683},{},[13684],{"type":34,"value":13685},"The companion reads the emulated RAM and updates in real time while you play:",{"type":28,"tag":58,"props":13687,"children":13688},{},[13689,13699,13709,13719],{"type":28,"tag":62,"props":13690,"children":13691},{},[13692,13697],{"type":28,"tag":139,"props":13693,"children":13694},{},[13695],{"type":34,"value":13696},"Exploration",{"type":34,"value":13698}," — current area, story stage, walkthrough hint, regional radar, Tamer level and Bits",{"type":28,"tag":62,"props":13700,"children":13701},{},[13702,13707],{"type":28,"tag":139,"props":13703,"children":13704},{},[13705],{"type":34,"value":13706},"Battle",{"type":34,"value":13708}," — party HP \u002F MP \u002F EXP, party reordering, unlocked digivolutions",{"type":28,"tag":62,"props":13710,"children":13711},{},[13712,13717],{"type":28,"tag":139,"props":13713,"children":13714},{},[13715],{"type":34,"value":13716},"Management",{"type":34,"value":13718}," — stats, elemental resists, skills and equipment",{"type":28,"tag":62,"props":13720,"children":13721},{},[13722,13727],{"type":28,"tag":139,"props":13723,"children":13724},{},[13725],{"type":34,"value":13726},"Flawe MOD Fast Travel",{"type":34,"value":13728}," — a list of visited map icons",{"type":28,"tag":37,"props":13730,"children":13731},{},[13732],{"type":34,"value":13733},"Other features include a Spanish \u002F English panel, a virtual pad, physical controller support, Memory Card import\u002Fexport, default and optional GameShark cheats, and in-app updates from GitHub Releases.",{"type":28,"tag":37,"props":13735,"children":13736},{},[13737,13742],{"type":28,"tag":139,"props":13738,"children":13739},{},[13740],{"type":34,"value":13741},"The APK does not include a ROM, BIOS, or Flawe's patch",{"type":34,"value":13743}," — you need your own legal copy of the game. Combined with Flawe's Mod 2.0 it's the best match for travel plus an in-game walkthrough.",{"type":28,"tag":37,"props":13745,"children":13746},{},[13747],{"type":34,"value":13748},"The companion is built on top of markisha64's decompilation project for DW3\u002F2003.",{"title":6,"searchDepth":225,"depth":225,"links":13750},[13751],{"id":31,"depth":225,"text":35},"content:digimon-world-2003:index.md","digimon-world-2003\u002Findex.md","digimon-world-2003\u002Findex",{"_path":13756,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":13757,"description":13758,"date":13759,"slug":13760,"category":6130,"media":13761,"source":13764,"project_page":13765,"body":13766,"_type":231,"_id":13804,"_source":233,"_file":13805,"_stem":13806,"_extension":236},"\u002Fbluejay","Bluejay","A dual screen media app for the AYN Thor — YouTube, Twitch and more on the top screen, with playback controls, comments and queue on the second screen","2026-09-05 07:05","bluejay",[13762],{"type":16,"url":13763},"\u002Fcontent\u002Fbluejay\u002Fpreview.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1w74fsv\u002Fhuge_update_of_my_dual_screen_youtube_and_twitch\u002F","https:\u002F\u002Fgithub.com\u002Ftsutsen\u002Fbluejay",{"type":25,"children":13767,"toc":13801},[13768,13772,13786,13791,13796],{"type":28,"tag":29,"props":13769,"children":13770},{"id":31},[13771],{"type":34,"value":35},{"type":28,"tag":37,"props":13773,"children":13774},{},[13775,13777,13784],{"type":34,"value":13776},"Bluejay is a dual screen media app built around the ",{"type":28,"tag":705,"props":13778,"children":13781},{"href":13779,"rel":13780},"https:\u002F\u002Fgitlab.futo.org\u002Fvideostreaming\u002Fgrayjay",[709],[13782],{"type":34,"value":13783},"Grayjay",{"type":34,"value":13785}," core — a powerful media aggregator. It fetches content from YouTube, Twitch, BiliBili, Odysee and many other platforms, so you get pretty much everything Grayjay offers, but with a modern sheen and proper dual-screen support.",{"type":28,"tag":37,"props":13787,"children":13788},{},[13789],{"type":34,"value":13790},"On the main screen you browse and watch videos from different platforms, manage playlists, and download content for offline viewing. The second screen of the Thor becomes a full companion panel: it can control playback, show stats, comments, the queue, recommended videos, your pinned playlists, and the home feed.",{"type":28,"tag":37,"props":13792,"children":13793},{},[13794],{"type":34,"value":13795},"The latest update brings more dual screen features, a more consistent UI, custom color themes (light and dark), configurable player gestures, new animations throughout the app, and local watch stats tracking, along with improved stability.",{"type":28,"tag":37,"props":13797,"children":13798},{},[13799],{"type":34,"value":13800},"Bluejay is in active development — more quality-of-life, stability, and prettification updates are on the roadmap, including local media management and music features.",{"title":6,"searchDepth":225,"depth":225,"links":13802},[13803],{"id":31,"depth":225,"text":35},"content:bluejay:index.md","bluejay\u002Findex.md","bluejay\u002Findex",{"_path":13808,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":13809,"description":13810,"date":13811,"slug":13812,"category":12,"media":13813,"project_page":13816,"body":13817,"_type":231,"_id":13919,"_source":233,"_file":13920,"_stem":13921,"_extension":236},"\u002Fmetroid-prime-hunters","Metroid Prime Hunters","A native Android port of the Metroid Prime Hunters recompilation with true dual-screen support and touch controls for the AYN Thor","2026-09-05 07:00","metroid-prime-hunters",[13814],{"type":245,"url":13815},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=tvqnW6J6KU0","https:\u002F\u002Fgithub.com\u002Faabrole\u002FHuntersRecomp",{"type":25,"children":13818,"toc":13915},[13819,13823,13828,13833,13858,13862],{"type":28,"tag":29,"props":13820,"children":13821},{"id":31},[13822],{"type":34,"value":35},{"type":28,"tag":37,"props":13824,"children":13825},{},[13826],{"type":34,"value":13827},"The top screen fills the Thor's main display, while the bottom screen lives on the second panel with working touch (stylus) input. Controls are twin-stick Prime-style: the left stick moves, the right stick aims, and the triggers shoot — melonPrimeDS-style bindings. Rendering is handled by the desktop GL 4.3 compute renderer ported to GLES 3.2, running on the Adreno 740 with up to 4x internal resolution and xBR texture upscaling.",{"type":28,"tag":37,"props":13829,"children":13830},{},[13831],{"type":34,"value":13832},"Every touchscreen-mapped action can be rebound to physical buttons from the settings launcher, where you can also tune aim\u002Fstylus sensitivity and pick video quality. Holding SELECT fast-forwards through cinematics.",{"type":28,"tag":37,"props":13834,"children":13835},{},[13836,13841,13843,13849,13851,13857],{"type":28,"tag":139,"props":13837,"children":13838},{},[13839],{"type":34,"value":13840},"No game data is included.",{"type":34,"value":13842}," You must supply your own dump of your own cartridge — the app hash-verifies it and refuses anything else. Requires the USA revision 0 release of Metroid Prime Hunters (",{"type":28,"tag":43,"props":13844,"children":13846},{"className":13845},[],[13847],{"type":34,"value":13848},"AMHE",{"type":34,"value":13850},", 64 MiB, SHA-1 ",{"type":28,"tag":43,"props":13852,"children":13854},{"className":13853},[],[13855],{"type":34,"value":13856},"90164d1ac127ee5f9815ea4ae7de798c7b5fc629",{"type":34,"value":898},{"type":28,"tag":29,"props":13859,"children":13860},{"id":99},[13861],{"type":34,"value":102},{"type":28,"tag":104,"props":13863,"children":13864},{},[13865,13876,13898],{"type":28,"tag":62,"props":13866,"children":13867},{},[13868,13869,13875],{"type":34,"value":703},{"type":28,"tag":705,"props":13870,"children":13873},{"href":13871,"rel":13872},"https:\u002F\u002Fgithub.com\u002Faabrole\u002FHuntersRecomp\u002Freleases",[709],[13874],{"type":34,"value":12864},{"type":34,"value":13335},{"type":28,"tag":62,"props":13877,"children":13878},{},[13879,13881,13887,13888,13896],{"type":34,"value":13880},"Copy your ROM dump to the app's data folder as ",{"type":28,"tag":43,"props":13882,"children":13884},{"className":13883},[],[13885],{"type":34,"value":13886},"mph.nds",{"type":34,"value":468},{"type":28,"tag":4449,"props":13889,"children":13891},{"code":13890},"adb push \"Metroid Prime Hunters.nds\" \u002Fsdcard\u002FAndroid\u002Fdata\u002Fcom.thor.mph\u002Ffiles\u002Fmph.nds\n",[13892],{"type":28,"tag":43,"props":13893,"children":13894},{"__ignoreMap":6},[13895],{"type":34,"value":13890},{"type":34,"value":13897},"\n(or copy it there with any file manager after launching the app once)",{"type":28,"tag":62,"props":13899,"children":13900},{},[13901,13902,13907,13909,13914],{"type":34,"value":13511},{"type":28,"tag":139,"props":13903,"children":13904},{},[13905],{"type":34,"value":13906},"Hunters Recomp",{"type":34,"value":13908},", adjust settings if you like, press ",{"type":28,"tag":139,"props":13910,"children":13911},{},[13912],{"type":34,"value":13913},"PLAY",{"type":34,"value":176},{"title":6,"searchDepth":225,"depth":225,"links":13916},[13917,13918],{"id":31,"depth":225,"text":35},{"id":99,"depth":225,"text":102},"content:metroid-prime-hunters:index.md","metroid-prime-hunters\u002Findex.md","metroid-prime-hunters\u002Findex",{"_path":13923,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":13924,"description":13925,"date":13926,"slug":13927,"category":5422,"media":13928,"source":13931,"project_page":13932,"body":13933,"_type":231,"_id":14058,"_source":233,"_file":14059,"_stem":14060,"_extension":236},"\u002Fzedex","Zedex","A modern ZX Spectrum emulator for Android with full dual-screen support — controls, menus and indicators on the second display of the AYN Thor","2026-09-01 09:35","zedex",[13929],{"type":16,"url":13930},"\u002Fcontent\u002Fzedex\u002Fpreview.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1w36zwn\u002Fzedex_zx_spectrum_emulator_with_dual_screen\u002F","https:\u002F\u002Fgithub.com\u002Fdimitriuz\u002Fzedex",{"type":25,"children":13934,"toc":14052},[13935,13939,13953,13958,13963,13968,13972],{"type":28,"tag":29,"props":13936,"children":13937},{"id":31},[13938],{"type":34,"value":35},{"type":28,"tag":37,"props":13940,"children":13941},{},[13942,13944,13951],{"type":34,"value":13943},"Zedex is a ZX Spectrum that behaves like a modern console. Save at any moment, put the picture through the CRT you remember, pick up a controller and play. It runs on Android 11 and later, with unmodified ",{"type":28,"tag":705,"props":13945,"children":13948},{"href":13946,"rel":13947},"http:\u002F\u002Ffuse-emulator.sourceforge.net\u002F",[709],[13949],{"type":34,"value":13950},"Fuse",{"type":34,"value":13952}," as the emulation core and a native front end.",{"type":28,"tag":6967,"props":13954,"children":13955},{"id":5432},[13956],{"type":34,"value":13957},"Dual screen",{"type":28,"tag":37,"props":13959,"children":13960},{},[13961],{"type":34,"value":13962},"On a dual-screen handheld — an AYN Thor and its like — the controls, the menu and the indicators move to the second panel entirely, leaving the first screen showing nothing but the machine. The setting cannot be switched on with no panel to move to, and unplugging one brings everything back.",{"type":28,"tag":37,"props":13964,"children":13965},{},[13966],{"type":34,"value":13967},"With the library on, the panel shows whichever game is selected — its artwork, the facts and the description — and the list gets the whole first screen. Once a game is running, a corner switch flips the panel between the controls and that same page.",{"type":28,"tag":29,"props":13969,"children":13970},{"id":53},[13971],{"type":34,"value":56},{"type":28,"tag":58,"props":13973,"children":13974},{},[13975,13984,13993,14003,14013,14022,14032,14042],{"type":28,"tag":62,"props":13976,"children":13977},{},[13978,13982],{"type":28,"tag":139,"props":13979,"children":13980},{},[13981],{"type":34,"value":7650},{"type":34,"value":13983}," — a grid of cards, each showing the screen it holds; quick save and quick load on the shoulder buttons (Select + R1 \u002F Select + L1)",{"type":28,"tag":62,"props":13985,"children":13986},{},[13987,13991],{"type":28,"tag":139,"props":13988,"children":13989},{},[13990],{"type":34,"value":7724},{"type":34,"value":13992}," — scanlines, a CRT with curvature and glow, RGB\u002Fcomposite\u002FRF signal, a black-and-white television",{"type":28,"tag":62,"props":13994,"children":13995},{},[13996,14001],{"type":28,"tag":139,"props":13997,"children":13998},{},[13999],{"type":34,"value":14000},"Controllers",{"type":34,"value":14002}," — plug one in and it works, with RetroArch-style hotkeys",{"type":28,"tag":62,"props":14004,"children":14005},{},[14006,14011],{"type":28,"tag":139,"props":14007,"children":14008},{},[14009],{"type":34,"value":14010},"Profiles",{"type":34,"value":14012}," — the joystick as any of the Spectrum's seven interfaces, plus editable key profiles",{"type":28,"tag":62,"props":14014,"children":14015},{},[14016,14020],{"type":28,"tag":139,"props":14017,"children":14018},{},[14019],{"type":34,"value":7610},{"type":34,"value":14021}," — a thumb pad, four drawn keyboards and a Kempston mouse mode",{"type":28,"tag":62,"props":14023,"children":14024},{},[14025,14030],{"type":28,"tag":139,"props":14026,"children":14027},{},[14028],{"type":34,"value":14029},"Cheats",{"type":34,"value":14031}," — built-in pokes for 3,682 games, matched by file fingerprint",{"type":28,"tag":62,"props":14033,"children":14034},{},[14035,14040],{"type":28,"tag":139,"props":14036,"children":14037},{},[14038],{"type":34,"value":14039},"Capture",{"type":34,"value":14041}," — screenshots as PNG, recordings to GIF or MP4",{"type":28,"tag":62,"props":14043,"children":14044},{},[14045,14050],{"type":28,"tag":139,"props":14046,"children":14047},{},[14048],{"type":34,"value":14049},"Machines",{"type":34,"value":14051}," — Sinclair 16K–+3e, Timex, Pentagon, Scorpion and Spectrum SE",{"title":6,"searchDepth":225,"depth":225,"links":14053},[14054,14057],{"id":31,"depth":225,"text":35,"children":14055},[14056],{"id":5432,"depth":4514,"text":13957},{"id":53,"depth":225,"text":56},"content:zedex:index.md","zedex\u002Findex.md","zedex\u002Findex",{"_path":14062,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":14063,"description":14064,"date":14065,"slug":14066,"category":12,"media":14067,"source":14070,"project_page":14071,"body":14072,"_type":231,"_id":14156,"_source":233,"_file":14157,"_stem":14158,"_extension":236},"\u002Fctr","Crash Team Racing: CTR-DS","Native port of Crash Team Racing with a second screen companion display","2026-08-31 13:46","ctr",[14068],{"type":245,"url":14069},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=z-IvchKvkf4","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1w2mw0s\u002Fcrash_team_racing_ps1_dual_screen\u002F","https:\u002F\u002Fgithub.com\u002Figawa6\u002Fctr-native-android",{"type":25,"children":14073,"toc":14153},[14074,14078,14092,14097,14102],{"type":28,"tag":29,"props":14075,"children":14076},{"id":31},[14077],{"type":34,"value":35},{"type":28,"tag":37,"props":14079,"children":14080},{},[14081,14083,14090],{"type":34,"value":14082},"CTR-DS is a fork of ",{"type":28,"tag":705,"props":14084,"children":14087},{"href":14085,"rel":14086},"https:\u002F\u002Fgithub.com\u002FSimon358\u002Fctr-native-android",[709],[14088],{"type":34,"value":14089},"CTR Native",{"type":34,"value":14091}," — a native port of Crash Team Racing (PS1, 1999) built on the CTR-ModSDK decompilation — that adds a second screen, a 64-bit build, and a set of graphics and frame-rate options.",{"type":28,"tag":37,"props":14093,"children":14094},{},[14095],{"type":34,"value":14096},"On a dual-screen handheld like the AYN Thor the HUD, the live map and a settings panel move to the bottom display, leaving the top one entirely to the game. The map draws driver portraits instead of coloured dots, because there is room for them.",{"type":28,"tag":37,"props":14098,"children":14099},{},[14100],{"type":34,"value":14101},"The fork also adds:",{"type":28,"tag":58,"props":14103,"children":14104},{},[14105,14115,14125,14143],{"type":28,"tag":62,"props":14106,"children":14107},{},[14108,14113],{"type":28,"tag":139,"props":14109,"children":14110},{},[14111],{"type":34,"value":14112},"64-bit build",{"type":34,"value":14114}," — runs on devices with no 32-bit runtime at all, like modern phones",{"type":28,"tag":62,"props":14116,"children":14117},{},[14118,14123],{"type":28,"tag":139,"props":14119,"children":14120},{},[14121],{"type":34,"value":14122},"Frame caps above 30",{"type":34,"value":14124}," — up to 120fps without the game running at four times speed",{"type":28,"tag":62,"props":14126,"children":14127},{},[14128,14133,14135,14141],{"type":28,"tag":139,"props":14129,"children":14130},{},[14131],{"type":34,"value":14132},"Internal resolution up to 8x",{"type":34,"value":14134}," — geometry is rendered into a target of ",{"type":28,"tag":43,"props":14136,"children":14138},{"className":14137},[],[14139],{"type":34,"value":14140},"240 × scale",{"type":34,"value":14142}," lines",{"type":28,"tag":62,"props":14144,"children":14145},{},[14146,14151],{"type":28,"tag":139,"props":14147,"children":14148},{},[14149],{"type":34,"value":14150},"Widescreen",{"type":34,"value":14152},", HD replacement art for the 2D HUD, CHD disc images, on-screen touch controls, and a launcher for picking a disc and settings without editing a file",{"title":6,"searchDepth":225,"depth":225,"links":14154},[14155],{"id":31,"depth":225,"text":35},"content:ctr:index.md","ctr\u002Findex.md","ctr\u002Findex",{"_path":14160,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":14161,"description":14162,"date":14163,"slug":14164,"category":12,"media":14165,"source":14168,"project_page":14169,"body":14170,"_type":231,"_id":14266,"_source":233,"_file":14267,"_stem":14268,"_extension":236},"\u002Fstardew-valley","Stardew Valley","Native lower-screen companion for Stardew Valley on the AYN Thor: Today, Map, Farm, Journal, Bundles and Calendar pages with touch inventory controls.","2026-08-29 21:35","stardew",[14166],{"type":16,"url":14167},"\u002Fcontent\u002Fstardew-valley\u002Fpreview.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1tt6ued\u002Fplaying_stardew_vallew_at_work_3\u002F","https:\u002F\u002Fgithub.com\u002FJoeCorrell\u002FAYN-Thor-Dualscreen-Mods",{"type":25,"children":14171,"toc":14262},[14172,14176,14181,14227,14232,14236],{"type":28,"tag":29,"props":14173,"children":14174},{"id":31},[14175],{"type":34,"value":35},{"type":28,"tag":37,"props":14177,"children":14178},{},[14179],{"type":34,"value":14180},"AYN Thor DualScreen Mods provides native lower-screen companions for games running through WEMU on the AYN Thor. The Android companion keeps useful information and touch controls on the lower display while the game remains playable on the upper display. The current release includes the DualScreen Android app and the Stardew Valley SMAPI integration.",{"type":28,"tag":37,"props":14182,"children":14183},{},[14184,14186,14191,14193,14197,14199,14204,14206,14211,14213,14218,14220,14225],{"type":34,"value":14185},"For Stardew Valley the companion shows a ",{"type":28,"tag":139,"props":14187,"children":14188},{},[14189],{"type":34,"value":14190},"Today",{"type":34,"value":14192}," page (weekday, date, time, weather, luck, gold, energy, health, shipping, skills, hotbar and all unlocked backpack rows), a live ",{"type":28,"tag":139,"props":14194,"children":14195},{},[14196],{"type":34,"value":13121},{"type":34,"value":14198}," with the current location and farmer marker, a ",{"type":28,"tag":139,"props":14200,"children":14201},{},[14202],{"type":34,"value":14203},"Farm",{"type":34,"value":14205}," page with scrollable machine, animal and fruit-tree lists, a ",{"type":28,"tag":139,"props":14207,"children":14208},{},[14209],{"type":34,"value":14210},"Journal",{"type":34,"value":14212}," with active quests and rewards, ",{"type":28,"tag":139,"props":14214,"children":14215},{},[14216],{"type":34,"value":14217},"Bundles",{"type":34,"value":14219}," with Community Center progress, and a four-week season ",{"type":28,"tag":139,"props":14221,"children":14222},{},[14223],{"type":34,"value":14224},"Calendar",{"type":34,"value":14226}," with birthdays, festivals and travelling-cart days.",{"type":28,"tag":37,"props":14228,"children":14229},{},[14230],{"type":34,"value":14231},"The Today page places the backpack directly below the hotbar, L\u002FR rotates every unlocked backpack row through the active hotbar, tap selects or moves items, and hold uses or eats them. Watering cans show a capacity bar, weapons show their special-action cooldown, and skills show their current level.",{"type":28,"tag":29,"props":14233,"children":14234},{"id":6620},[14235],{"type":34,"value":6623},{"type":28,"tag":58,"props":14237,"children":14238},{},[14239],{"type":28,"tag":62,"props":14240,"children":14241},{},[14242,14244,14251,14253,14260],{"type":34,"value":14243},"Other way to launch Stardew Valley on Ayn Thor is ",{"type":28,"tag":705,"props":14245,"children":14248},{"href":14246,"rel":14247},"https:\u002F\u002Fgithub.com\u002FEkyso\u002FCinderbox",[709],[14249],{"type":34,"value":14250},"Cinderbox",{"type":34,"value":14252}," — a mods-compatible Android launcher for the PC version — together with ",{"type":28,"tag":705,"props":14254,"children":14257},{"href":14255,"rel":14256},"https:\u002F\u002Fplay.google.com\u002Fstore\u002Fapps\u002Fdetails?id=com.guntherslibrary.app",[709],[14258],{"type":34,"value":14259},"Gunther's Library",{"type":34,"value":14261},", a comprehensive, ad-free, and offline Stardew Valley wiki app with databases for items, villager preferences, community center bundles, and Ginger Island secrets.",{"title":6,"searchDepth":225,"depth":225,"links":14263},[14264,14265],{"id":31,"depth":225,"text":35},{"id":6620,"depth":225,"text":6623},"content:stardew-valley:index.md","stardew-valley\u002Findex.md","stardew-valley\u002Findex",{"_path":14270,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":14271,"description":14272,"date":14273,"slug":14274,"category":5422,"media":14275,"source":14278,"project_page":14279,"body":14280,"_type":231,"_id":14335,"_source":233,"_file":14336,"_stem":14337,"_extension":236},"\u002Feden-ds","Eden DS","An Android-focused fork of the Eden emulator with a dedicated dual-screen companion for the AYN Thor. Currently supports The Legend of Zelda: Breath of the Wild and Mario Kart 8 Deluxe.","2026-08-29 12:59","eden-ds",[14276],{"type":16,"url":14277},"\u002Fcontent\u002Feden-ds\u002Fpreview.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1vya2n0\u002Fmario_kart_8_dualscreen_update_breath_of_the_wild\u002F","https:\u002F\u002Fgithub.com\u002FJoeCorrell\u002FEden-DS",{"type":25,"children":14281,"toc":14331},[14282,14286,14291,14295,14300,14321,14326],{"type":28,"tag":29,"props":14283,"children":14284},{"id":31},[14285],{"type":34,"value":35},{"type":28,"tag":37,"props":14287,"children":14288},{},[14289],{"type":34,"value":14290},"Eden DS is an Android-focused fork of the Eden emulator, that adds a dedicated, always-on companion interface for dual-screen devices. Gameplay stays on the primary display while a touch-first UI runs on Android's presentation display. The companion is integrated into the emulator and reads live guest state through build-checked bridges — it does not mirror the primary display or run a second copy of the game renderer.",{"type":28,"tag":29,"props":14292,"children":14293},{"id":1906},[14294],{"type":34,"value":1909},{"type":28,"tag":37,"props":14296,"children":14297},{},[14298],{"type":34,"value":14299},"The current supported games are:",{"type":28,"tag":58,"props":14301,"children":14302},{},[14303,14312],{"type":28,"tag":62,"props":14304,"children":14305},{},[14306,14310],{"type":28,"tag":139,"props":14307,"children":14308},{},[14309],{"type":34,"value":11731},{"type":34,"value":14311}," — always-on Inventory, Map and Quests pages designed for touch, live health, stamina, rupees, equipment, runes and Champion abilities, terrain map with player position, shrines, pan and pinch-to-zoom, fast-travel requests, and live quest tracking.",{"type":28,"tag":62,"props":14313,"children":14314},{},[14315,14319],{"type":28,"tag":139,"props":14316,"children":14317},{},[14318],{"type":34,"value":11647},{"type":34,"value":14320}," — Wii U GamePad-inspired layout, live 12-racer standings with portraits, course-specific track maps with real-time racer projection, two live item slots with touch activation, and live coin count.",{"type":28,"tag":37,"props":14322,"children":14323},{},[14324],{"type":34,"value":14325},"Compatibility is intentionally strict: the live-memory bridge is enabled only when both the title ID and the main-module Build ID match, so unsupported builds fail closed instead of reading unknown memory layouts.",{"type":28,"tag":37,"props":14327,"children":14328},{},[14329],{"type":34,"value":14330},"The actual list of supported games is on the project page and may change as new companions are added.",{"title":6,"searchDepth":225,"depth":225,"links":14332},[14333,14334],{"id":31,"depth":225,"text":35},{"id":1906,"depth":225,"text":1909},"content:eden-ds:index.md","eden-ds\u002Findex.md","eden-ds\u002Findex",{"_path":14339,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":14340,"description":14341,"date":14342,"slug":14343,"category":12,"media":14344,"source":14347,"project_page":14348,"body":14349,"_type":231,"_id":14373,"_source":233,"_file":14374,"_stem":14375,"_extension":236},"\u002Fsilksong","Hollow Knight: Silksong","Hollow Knight: Silksong with an interactive map, inventory, crests, tasks and journal on the second screen, plus optional Steam integration for game files and cloud saves.","2026-08-29 12:56","silksong",[14345],{"type":16,"url":14346},"\u002Fcontent\u002Fsilksong\u002Fpreview.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1vurkwf\u002Fhollow_knight_silksong_dualscreen_android_port\u002F","https:\u002F\u002Fgithub.com\u002Fjakobkhansen\u002FSilksongAndroid",{"type":25,"children":14350,"toc":14370},[14351,14355,14360,14365],{"type":28,"tag":29,"props":14352,"children":14353},{"id":31},[14354],{"type":34,"value":35},{"type":28,"tag":37,"props":14356,"children":14357},{},[14358],{"type":34,"value":14359},"A native Android port of Hollow Knight: Silksong with dual-screen capabilities and optional Steam integration. It compiles to native arm64 via IL2CPP with Vulkan shaders, and the porting happens entirely on the device — just install the APK and supply your own game files, either by copying them from your PC or by signing in to Steam and letting the app download them for you.",{"type":28,"tag":37,"props":14361,"children":14362},{},[14363],{"type":34,"value":14364},"The bottom screen shows an interactive map, inventory, crests, tasks and journal while the game runs on top. Quality-of-life settings include skipping the intro, resolution control, and automatic cloud save upload\u002Fdownload. Any Android device works, single screen as well (tested on the AYN Thor and the Retroid Pocket Flip 2).",{"type":28,"tag":37,"props":14366,"children":14367},{},[14368],{"type":34,"value":14369},"The app contains no game content — it is a build system that takes your own game files and compiles a playable build on your device.",{"title":6,"searchDepth":225,"depth":225,"links":14371},[14372],{"id":31,"depth":225,"text":35},"content:silksong:index.md","silksong\u002Findex.md","silksong\u002Findex",{"_path":14377,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":14378,"description":14379,"date":14380,"slug":14381,"category":12,"media":14382,"source":14385,"project_page":14386,"body":14387,"_type":231,"_id":14411,"_source":233,"_file":14412,"_stem":14413,"_extension":236},"\u002Fdualsouls","Hollow Knight: Dual Souls","A native Android port of Hollow Knight for the AYN Thor with a full dual-screen companion: live HUD, map, inventory, charms and story overlays on the bottom screen.","2026-08-29 12:54","dualsouls",[14383],{"type":16,"url":14384},"\u002Fcontent\u002Fdualsouls\u002Fpreview.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1vv1adg\u002Fhollow_knight_dual_souls_unofficial_dualscreen\u002F","https:\u002F\u002Fgithub.com\u002Figawa6\u002Fdualsouls",{"type":25,"children":14388,"toc":14408},[14389,14393,14398,14403],{"type":28,"tag":29,"props":14390,"children":14391},{"id":31},[14392],{"type":34,"value":35},{"type":28,"tag":37,"props":14394,"children":14395},{},[14396],{"type":34,"value":14397},"A native Android port of Hollow Knight (GOG\u002FSteam, v1.5.12620 \"Voidheart\") built for the AYN Thor dual-screen handheld, in the spirit of the PS Vita port. It is a same-version Unity rebuild that you provision from your own copy of the game — no PC step needed, the patch applier is compiled into the APK.",{"type":28,"tag":37,"props":14399,"children":14400},{},[14401],{"type":34,"value":14402},"The bottom screen shows a live HUD (masks, soul vessel, geo) mirrored from the game, plus touch-driven companion panes that keep running while you play: a live quick-map with \"you are here\" compass, pinch-zoom and drag-pan, an inventory with item descriptions and controller glyphs, and a full charms grid with equipped row and notch count. Story overlays — tutorials, lore tablets, NPC dialogue, item popups — render on the bottom panel, and room transitions, deaths and cutscene fades sync 1:1 on both screens.",{"type":28,"tag":37,"props":14404,"children":14405},{},[14406],{"type":34,"value":14407},"It also supports plug-and-play controllers with automatic button glyphs, touch controls when no gamepad is present, rumble, 120 fps, CustomKnight-format skins, and an optional mod menu with quality-of-life toggles and cheats.",{"title":6,"searchDepth":225,"depth":225,"links":14409},[14410],{"id":31,"depth":225,"text":35},"content:dualsouls:index.md","dualsouls\u002Findex.md","dualsouls\u002Findex",{"_path":14415,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":14416,"description":14417,"date":14418,"slug":14419,"category":12,"media":14420,"source":14423,"project_page":14424,"body":14425,"_type":231,"_id":14442,"_source":233,"_file":14443,"_stem":14444,"_extension":236},"\u002Fgolden-eye","GoldenEye 007","A native PC port of GoldenEye 007 (Xbox 360 \u002F XBLA)","2026-08-11 20:13","golden-eye-007",[14421],{"type":16,"url":14422},"\u002Fcontent\u002Fgolden-eye-007\u002Fpreview.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1vk0fce\u002Fdual_screen_support_on_goldeneye007_recomp\u002F","https:\u002F\u002Fgithub.com\u002Fjeffory\u002FGoldenEye-Recomp",{"type":25,"children":14426,"toc":14439},[14427,14431],{"type":28,"tag":29,"props":14428,"children":14429},{"id":53},[14430],{"type":34,"value":56},{"type":28,"tag":58,"props":14432,"children":14433},{},[14434],{"type":28,"tag":62,"props":14435,"children":14436},{},[14437],{"type":34,"value":14438},"Weapon quick select: the bottom touch panel shows a live weapon menu — every carried weapon with its ammo count, with the currently equipped one highlighted. Tap a weapon to switch to it. The main game on the top screen is unaffected. On single-screen devices the menu simply doesn't appear; nothing else changes.",{"title":6,"searchDepth":225,"depth":225,"links":14440},[14441],{"id":53,"depth":225,"text":56},"content:golden-eye:index.md","golden-eye\u002Findex.md","golden-eye\u002Findex",{"_path":14446,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":14447,"description":14448,"date":14449,"slug":14450,"category":242,"media":14451,"source":14456,"project_page":14457,"body":14458,"_type":231,"_id":14505,"_source":233,"_file":14506,"_stem":14507,"_extension":236},"\u002Fminecraft","Minecraft","Minecraft Second Screen app and mod for Minecraft!","2026-08-11 20:11","minecraft",[14452,14454],{"type":16,"url":14453},"\u002Fcontent\u002Fminecraft\u002Fpreview.webp",{"type":245,"url":14455},"https:\u002F\u002Fwww.youtube.com\u002Fshorts\u002FoZP2SdNAIPc","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1vjvo8t\u002Fversion_10_of_the_minecraft_dual_screen_mod_is\u002F","https:\u002F\u002Fgithub.com\u002Fexojosh\u002FAynThorSecondScreen",{"type":25,"children":14459,"toc":14502},[14460,14464],{"type":28,"tag":29,"props":14461,"children":14462},{"id":53},[14463],{"type":34,"value":56},{"type":28,"tag":58,"props":14465,"children":14466},{},[14467,14472,14477,14482,14487,14492,14497],{"type":28,"tag":62,"props":14468,"children":14469},{},[14470],{"type":34,"value":14471},"Full HUD on bottom screen including absorption hearts, heart effects, hunger, armor, breathing, off-hand slot, touch to select item, mini map, etc.",{"type":28,"tag":62,"props":14473,"children":14474},{},[14475],{"type":34,"value":14476},"Useable chat on the bottom screen either with a built-in keyboard or android keyboard (toggleable in settings)",{"type":28,"tag":62,"props":14478,"children":14479},{},[14480],{"type":34,"value":14481},"Customizable background textures (mossy cobble, bricks, dirt, stone, etc.).",{"type":28,"tag":62,"props":14483,"children":14484},{},[14485],{"type":34,"value":14486},"Touch screen inventory and block entity interaction including enchantment tables, anvils, beacons, chests, looms, grindstones, etc.",{"type":28,"tag":62,"props":14488,"children":14489},{},[14490],{"type":34,"value":14491},"Ability to bind extra keybinds to the Input tab (for extra keybinds for modded)",{"type":28,"tag":62,"props":14493,"children":14494},{},[14495],{"type":34,"value":14496},"Ability to individually enable and disable HUD elements on the bottom screen in the settings",{"type":28,"tag":62,"props":14498,"children":14499},{},[14500],{"type":34,"value":14501},"Creative Mode menus (though they are currently a little buggy but useable).",{"title":6,"searchDepth":225,"depth":225,"links":14503},[14504],{"id":53,"depth":225,"text":56},"content:minecraft:index.md","minecraft\u002Findex.md","minecraft\u002Findex",{"_path":14509,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":14510,"description":14511,"date":14512,"slug":14513,"category":12,"media":14514,"source":14517,"project_page":14518,"body":14519,"_type":231,"_id":14533,"_source":233,"_file":14534,"_stem":14535,"_extension":236},"\u002Fharvest-moon","Harvest Moon 64","An Android port of Harvest Moon 64: Recompiled, the static recompilation of Harvest Moon 64 built on N64: Recompiled and RT64.","2026-08-11 20:09","harvest-moon",[14515],{"type":16,"url":14516},"\u002Fcontent\u002Fharvest-moon\u002Fpreview.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1vfwkmy\u002Fharvest_moon_64_recomps_android_port_with_dual\u002F","https:\u002F\u002Fgithub.com\u002Figawa6\u002FHarvestMoon64Recomp",{"type":25,"children":14520,"toc":14530},[14521,14525],{"type":28,"tag":29,"props":14522,"children":14523},{"id":31},[14524],{"type":34,"value":35},{"type":28,"tag":37,"props":14526,"children":14527},{},[14528],{"type":34,"value":14529},"This fork adds touch controls, an Android launcher and file picker, and a second-screen companion dashboard for dual-display handhelds such as the AYN Thor.",{"title":6,"searchDepth":225,"depth":225,"links":14531},[14532],{"id":31,"depth":225,"text":35},"content:harvest-moon:index.md","harvest-moon\u002Findex.md","harvest-moon\u002Findex",{"_path":14537,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":14538,"description":14539,"date":14540,"slug":14541,"category":12,"media":14542,"source":14547,"project_page":14548,"body":14549,"_type":231,"_id":14563,"_source":233,"_file":14564,"_stem":14565,"_extension":236},"\u002Fkanto-gear","Kanto Gear","A Nintendo DS-style second screen for Pokémon Red, Blue and Yellow","2026-08-11 19:59","kanto-gear",[14543,14545],{"type":16,"url":14544},"\u002Fcontent\u002Fkanto-gear\u002Fpreview.webp",{"type":245,"url":14546},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=k98_kGSJot4","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1vc1awh\u002Fgen1recomp_dualscreen_mod_voxel_mod_performance\u002F","https:\u002F\u002Fgithub.com\u002FAverageConsumer\u002Fkanto-gear",{"type":25,"children":14550,"toc":14560},[14551,14555],{"type":28,"tag":29,"props":14552,"children":14553},{"id":31},[14554],{"type":34,"value":35},{"type":28,"tag":37,"props":14556,"children":14557},{},[14558],{"type":34,"value":14559},"Turn a dual-screen Android handheld into a complete Gen 1 companion for Gen1Recomp: keep the game on one display and put maps, party data, battles and touch controls on the other.",{"title":6,"searchDepth":225,"depth":225,"links":14561},[14562],{"id":31,"depth":225,"text":35},"content:kanto-gear:index.md","kanto-gear\u002Findex.md","kanto-gear\u002Findex",{"_path":14567,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":14568,"description":14569,"date":14570,"slug":14571,"category":12,"media":14572,"source":14575,"project_page":14576,"body":14577,"_type":231,"_id":14696,"_source":233,"_file":14697,"_stem":14698,"_extension":236},"\u002Fsuper-metroid","Super Metroid Android","An Android port of Super Metroid with a second screen mod for dual screen devices like the AYN Thor","2026-08-02 20:00","super-metroid",[14573],{"type":16,"url":14574},"\u002Fcontent\u002Fsuper-metroid\u002Fpreview.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1vdopik\u002Fsuper_metroid_dual_screen_mod\u002F","https:\u002F\u002Fgithub.com\u002FRaekwon1603\u002Fsuper_metroid-android",{"type":25,"children":14578,"toc":14690},[14579,14583,14588,14593,14599,14604,14613,14618,14628,14638,14643,14648,14666,14670],{"type":28,"tag":29,"props":14580,"children":14581},{"id":31},[14582],{"type":34,"value":35},{"type":28,"tag":37,"props":14584,"children":14585},{},[14586],{"type":34,"value":14587},"While you play on the main screen, the second panel shows a live map, your equipment, and your ammo, so you don't have to pause and dig through menus to check where you are or what you're carrying.",{"type":28,"tag":37,"props":14589,"children":14590},{},[14591],{"type":34,"value":14592},"The second screen graphics are decoded straight from your own ROM at runtime, so there is no extra setup and the app contains no game assets.",{"type":28,"tag":29,"props":14594,"children":14596},{"id":14595},"dual-screen-mod",[14597],{"type":34,"value":14598},"Dual-screen mod",{"type":28,"tag":37,"props":14600,"children":14601},{},[14602],{"type":34,"value":14603},"On a device with a second physical display (e.g. the AYN Thor), the second screen shows automatically once you're in-game, with three tabs along the bottom:",{"type":28,"tag":37,"props":14605,"children":14606},{},[14607,14611],{"type":28,"tag":139,"props":14608,"children":14609},{},[14610],{"type":34,"value":13121},{"type":34,"value":14612}," tab. The real in-game pause-menu map tiles, decoded from your ROM. Pinch or use the +\u002F- buttons to zoom from a single room out to the full connected world map, and pan with a drag. The nested-squares button snaps between a close-up of the room you're standing in and the full world view.",{"type":28,"tag":37,"props":14614,"children":14615},{},[14616],{"type":34,"value":14617},"By default, only rooms you've actually explored are shown. Once you collect an area's Map Station item, that area's entire known room layout is also shown - including rooms you've never visited - the same way the real in-game pause map works. Rooms revealed this way but not yet visited are rendered dimmer than rooms you've walked through.",{"type":28,"tag":37,"props":14619,"children":14620},{},[14621,14626],{"type":28,"tag":139,"props":14622,"children":14623},{},[14624],{"type":34,"value":14625},"Items",{"type":34,"value":14627}," tab. Your currently equipped suit, boots, beams, and misc items, shown as a list next to a full-color Samus sprite with callout lines to each equipped item. The suit art is recolored live to match whichever suit you actually have equipped (Power, Varia, or Gravity).",{"type":28,"tag":37,"props":14629,"children":14630},{},[14631,14636],{"type":28,"tag":139,"props":14632,"children":14633},{},[14634],{"type":34,"value":14635},"Ammo",{"type":34,"value":14637}," tab. Tap a missile, super missile, or power bomb slot to arm it, the same effect as pressing Select on the controller. Tap the already-armed slot again to disarm it back to your plain beam.",{"type":28,"tag":29,"props":14639,"children":14641},{"id":14640},"controls",[14642],{"type":34,"value":10085},{"type":28,"tag":37,"props":14644,"children":14645},{},[14646],{"type":34,"value":14647},"Gamepad input works out of the box. On the Thor specifically:",{"type":28,"tag":58,"props":14649,"children":14650},{},[14651,14656,14661],{"type":28,"tag":62,"props":14652,"children":14653},{},[14654],{"type":34,"value":14655},"A\u002FB are remapped to match its Nintendo-style physical layout.",{"type":28,"tag":62,"props":14657,"children":14658},{},[14659],{"type":34,"value":14660},"L2\u002FR2 cycle your armed ammo type without needing to open the second screen's Ammo tab.",{"type":28,"tag":62,"props":14662,"children":14663},{},[14664],{"type":34,"value":14665},"Quicksave\u002Fquickload: hold L1+R1 and press Start to save, Back\u002FSelect to load.",{"type":28,"tag":29,"props":14667,"children":14668},{"id":99},[14669],{"type":34,"value":102},{"type":28,"tag":37,"props":14671,"children":14672},{},[14673,14675,14681,14682,14688],{"type":34,"value":14674},"You need your own legally-dumped copy of the ROM (",{"type":28,"tag":43,"props":14676,"children":14678},{"className":14677},[],[14679],{"type":34,"value":14680},"sm.smc",{"type":34,"value":10150},{"type":28,"tag":43,"props":14683,"children":14685},{"className":14684},[],[14686],{"type":34,"value":14687},".sfc",{"type":34,"value":14689},") to build or run this. The app reads graphics, audio, and level data from your ROM at runtime. No game assets are included anywhere in the repository or shipped in the built app.",{"title":6,"searchDepth":225,"depth":225,"links":14691},[14692,14693,14694,14695],{"id":31,"depth":225,"text":35},{"id":14595,"depth":225,"text":14598},{"id":14640,"depth":225,"text":10085},{"id":99,"depth":225,"text":102},"content:super-metroid:index.md","super-metroid\u002Findex.md","super-metroid\u002Findex",{"_path":14700,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":14701,"description":14702,"date":14703,"slug":14704,"category":12,"media":14705,"source":14708,"project_page":14709,"body":14710,"_type":231,"_id":14808,"_source":233,"_file":14809,"_stem":14810,"_extension":236},"\u002Fbalatro","Balatro Dual Screen","Play Balatro across both screens of a dual-screen Android handheld. Your hand, the Play\u002FSort\u002FDiscard buttons and the shop live on the lower touchscreen; the table, jokers and score stay on top.","2026-08-02 18:59","balatro",[14706],{"type":16,"url":14707},"\u002Fcontent\u002Fbalatro\u002Fpreview.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1vcz076\u002Ffirst_release_of_balatro_dual_screen_mod_for_the\u002F","https:\u002F\u002Fgithub.com\u002Frosbean\u002Fbalatro-dualscreen",{"type":25,"children":14711,"toc":14805},[14712,14718],{"type":28,"tag":29,"props":14713,"children":14715},{"id":14714},"what-it-does",[14716],{"type":34,"value":14717},"What it does",{"type":28,"tag":58,"props":14719,"children":14720},{},[14721,14731,14741,14785,14795],{"type":28,"tag":62,"props":14722,"children":14723},{},[14724,14729],{"type":28,"tag":139,"props":14725,"children":14726},{},[14727],{"type":34,"value":14728},"Hand on the lower screen",{"type":34,"value":14730}," — cards, Play \u002F Sort \u002F Discard, all touch-driven.",{"type":28,"tag":62,"props":14732,"children":14733},{},[14734,14739],{"type":28,"tag":139,"props":14735,"children":14736},{},[14737],{"type":34,"value":14738},"Shop, blind select, booster packs and menus",{"type":34,"value":14740}," move down too, so whatever\nyou are interacting with is under your thumbs.",{"type":28,"tag":62,"props":14742,"children":14743},{},[14744,14749,14751,14756,14757],{"type":28,"tag":139,"props":14745,"children":14746},{},[14747],{"type":34,"value":14748},"Optional extras",{"type":34,"value":14750},", each a toggle in ",{"type":28,"tag":1769,"props":14752,"children":14753},{},[14754],{"type":34,"value":14755},"Options → Settings → Dual Screen",{"type":34,"value":468},{"type":28,"tag":58,"props":14758,"children":14759},{},[14760,14765,14770,14775,14780],{"type":28,"tag":62,"props":14761,"children":14762},{},[14763],{"type":34,"value":14764},"hand score and consumables on the lower screen",{"type":28,"tag":62,"props":14766,"children":14767},{},[14768],{"type":34,"value":14769},"a wider joker row that uses the space freed up top",{"type":28,"tag":62,"props":14771,"children":14772},{},[14773],{"type":34,"value":14774},"the game's CRT effect applied to the lower screen as well",{"type":28,"tag":62,"props":14776,"children":14777},{},[14778],{"type":34,"value":14779},"RGB stick lighting that follows the on-screen colours (AYN Thor)",{"type":28,"tag":62,"props":14781,"children":14782},{},[14783],{"type":34,"value":14784},"a 60 FPS cap to save battery, or 120 if you prefer",{"type":28,"tag":62,"props":14786,"children":14787},{},[14788,14793],{"type":28,"tag":139,"props":14789,"children":14790},{},[14791],{"type":34,"value":14792},"Controller and touch",{"type":34,"value":14794}," both work throughout.",{"type":28,"tag":62,"props":14796,"children":14797},{},[14798,14803],{"type":28,"tag":139,"props":14799,"children":14800},{},[14801],{"type":34,"value":14802},"Single-screen safe",{"type":34,"value":14804}," — with the second screen switched off, or on a device\nthat has only one, the game behaves exactly like vanilla.",{"title":6,"searchDepth":225,"depth":225,"links":14806},[14807],{"id":14714,"depth":225,"text":14717},"content:balatro:index.md","balatro\u002Findex.md","balatro\u002Findex",{"_path":14812,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":14813,"description":14814,"date":14815,"slug":14816,"category":12,"media":14817,"project_page":14820,"body":14821,"_type":231,"_id":14880,"_source":233,"_file":14881,"_stem":14882,"_extension":236},"\u002Fzelda-minish-cap","The Legend of Zelda: The Minish Cap","The handheld's bottom panel becomes a live map, quest status and touch inventory, so the top screen can be nothing but the game.","2026-08-01 13:59","zelda-minish-cap",[14818],{"type":16,"url":14819},"\u002Fcontent\u002Fzelda-minish-cap\u002Fpreview.webp","https:\u002F\u002Fgithub.com\u002Fsamyost1\u002Ftmc-android",{"type":25,"children":14822,"toc":14877},[14823,14827],{"type":28,"tag":29,"props":14824,"children":14825},{"id":12423},[14826],{"type":34,"value":12426},{"type":28,"tag":58,"props":14828,"children":14829},{},[14830,14839,14849,14859,14868],{"type":28,"tag":62,"props":14831,"children":14832},{},[14833,14837],{"type":28,"tag":139,"props":14834,"children":14835},{},[14836],{"type":34,"value":13121},{"type":34,"value":14838}," — Hyrule with a follow cam. ZOOM steps out to the whole kingdom;\ntap a region to open the game's own enlarged map of it. Windcrest warps\nshow as pins.",{"type":28,"tag":62,"props":14840,"children":14841},{},[14842,14847],{"type":28,"tag":139,"props":14843,"children":14844},{},[14845],{"type":34,"value":14846},"Dungeon",{"type":34,"value":14848}," — the real automap: floor plaques, explored rooms, Link's\nposition, and the small-key count beside your rupees.",{"type":28,"tag":62,"props":14850,"children":14851},{},[14852,14857],{"type":28,"tag":139,"props":14853,"children":14854},{},[14855],{"type":34,"value":14856},"Quest",{"type":34,"value":14858}," — the pause menu's quest screen, reflowed for a square panel. Tap\nthe kinstone bag or the technique scroll to open those lists.",{"type":28,"tag":62,"props":14860,"children":14861},{},[14862,14866],{"type":28,"tag":139,"props":14863,"children":14864},{},[14865],{"type":34,"value":14625},{"type":34,"value":14867}," — tap a ring to arm it, then tap an item to equip that slot.",{"type":28,"tag":62,"props":14869,"children":14870},{},[14871,14875],{"type":28,"tag":139,"props":14872,"children":14873},{},[14874],{"type":34,"value":4429},{"type":34,"value":14876}," — hide the top HUD (the panel takes over your vitals), true\nwidescreen, and the port-wide toggles the desktop build puts behind F8.",{"title":6,"searchDepth":225,"depth":225,"links":14878},[14879],{"id":12423,"depth":225,"text":12426},"content:zelda-minish-cap:index.md","zelda-minish-cap\u002Findex.md","zelda-minish-cap\u002Findex",{"_path":14884,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":14885,"description":14886,"date":14887,"slug":14888,"category":12,"media":14889,"project_page":14894,"body":14895,"_type":231,"_id":14985,"_source":233,"_file":14986,"_stem":14987,"_extension":236},"\u002Fmorrowind","OpenMW-DS","A second-screen for OpenMW on the AYN Thor handheld. The game plays on the top screen while the bottom screen shows live stats, inventory, magic, journal, and a minimap.","2026-07-27 09:44","morrowind",[14890,14892],{"type":16,"url":14891},"\u002Fcontent\u002Fmorrowind\u002Fpreview.webp",{"type":245,"url":14893},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=kmzqThgJWYY&start=375","https:\u002F\u002Fgithub.com\u002FJosh-Daniels\u002FOpenMW-DS",{"type":25,"children":14896,"toc":14982},[14897,14901],{"type":28,"tag":29,"props":14898,"children":14899},{"id":53},[14900],{"type":34,"value":56},{"type":28,"tag":58,"props":14902,"children":14903},{},[14904,14914,14924,14934,14943,14953,14962,14972],{"type":28,"tag":62,"props":14905,"children":14906},{},[14907,14912],{"type":28,"tag":139,"props":14908,"children":14909},{},[14910],{"type":34,"value":14911},"Minimap",{"type":34,"value":14913},": a live, player-centered, rotating map of the current cell, rendered by the engine itself and streamed to\nthe second screen (uses the same system as the vanilla in game minimap would).",{"type":28,"tag":62,"props":14915,"children":14916},{},[14917,14922],{"type":28,"tag":139,"props":14918,"children":14919},{},[14920],{"type":34,"value":14921},"Live character stats",{"type":34,"value":14923},": health, magicka, fatigue, & active effects, updated continuously.",{"type":28,"tag":62,"props":14925,"children":14926},{},[14927,14932],{"type":28,"tag":139,"props":14928,"children":14929},{},[14930],{"type":34,"value":14931},"Favourite items & spells",{"type":34,"value":14933},": Added little buttons on the minimap that can be used to store favourites for faster\nswapping of weapons or spells.",{"type":28,"tag":62,"props":14935,"children":14936},{},[14937,14941],{"type":28,"tag":139,"props":14938,"children":14939},{},[14940],{"type":34,"value":13131},{"type":34,"value":14942},": full list of inventory with tap to equip\u002Funequip, long press for info, drop, add to favourites.",{"type":28,"tag":62,"props":14944,"children":14945},{},[14946,14951],{"type":28,"tag":139,"props":14947,"children":14948},{},[14949],{"type":34,"value":14950},"Magic",{"type":34,"value":14952},": spells, powers, and scrolls with tap to equip\u002Funequip, long press for info or add to favourites.",{"type":28,"tag":62,"props":14954,"children":14955},{},[14956,14960],{"type":28,"tag":139,"props":14957,"children":14958},{},[14959],{"type":34,"value":14210},{"type":34,"value":14961},": Lower screen version of the in game journal (with all functionality: quests, topics, etc).",{"type":28,"tag":62,"props":14963,"children":14964},{},[14965,14970],{"type":28,"tag":139,"props":14966,"children":14967},{},[14968],{"type":34,"value":14969},"Optional UI Overhaul",{"type":34,"value":14971},": an overhaul of the in game UI to make it look more like the companion UI on the bottom\nscreen. Completely optional and can be turned off in the options menu (on pause). This is just to help with the stark\ncontrast between vanilla resolution and OpenMW-DS lower screen resolution.",{"type":28,"tag":62,"props":14973,"children":14974},{},[14975,14980],{"type":28,"tag":139,"props":14976,"children":14977},{},[14978],{"type":34,"value":14979},"Optional Touch Contols",{"type":34,"value":14981},": Alpha3 uses the left thumbstick as a mouse for menus. This version allows the use of touch\ninput instead (Activated at the bottom of the OpenMW-DS Options page).",{"title":6,"searchDepth":225,"depth":225,"links":14983},[14984],{"id":53,"depth":225,"text":56},"content:morrowind:index.md","morrowind\u002Findex.md","morrowind\u002Findex",{"_path":14989,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":14990,"description":14991,"date":14992,"slug":14993,"category":12,"media":14994,"source":14999,"project_page":15000,"body":15001,"_type":231,"_id":15065,"_source":233,"_file":15066,"_stem":15067,"_extension":236},"\u002Fdusklight","The Legend of Zelda: Twilight Princess dualscreen","This project is a fork of the original Dusklight project, specifically ported to Android and featuring a second-screen mod designed for dual-screen devices","2026-07-27 08:59","dusklught-ds",[14995,14997],{"type":245,"url":14996},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=JfCHTzwi9Ik",{"type":16,"url":14998},"\u002Fcontent\u002Fdusklight\u002Fpreview.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1v53jcn\u002Ftwilight_princess_dusklight_dualscreen_companion\u002F","https:\u002F\u002Fgithub.com\u002Figawa6\u002Fdusklight",{"type":25,"children":15002,"toc":15062},[15003,15009],{"type":28,"tag":29,"props":15004,"children":15006},{"id":15005},"dual-screen-features",[15007],{"type":34,"value":15008},"Dual-Screen Features",{"type":28,"tag":58,"props":15010,"children":15011},{},[15012,15022,15032,15042,15052],{"type":28,"tag":62,"props":15013,"children":15014},{},[15015,15020],{"type":28,"tag":139,"props":15016,"children":15017},{},[15018],{"type":34,"value":15019},"Decluttered Main Screen",{"type":34,"value":15021},": Most HUD elements—including the controller layout, minimap, health (hearts), and rupees—have been moved to the bottom screen, leaving the top screen clean and cinematic.",{"type":28,"tag":62,"props":15023,"children":15024},{},[15025,15030],{"type":28,"tag":139,"props":15026,"children":15027},{},[15028],{"type":34,"value":15029},"Interactive Maps",{"type":34,"value":15031},": Features a dedicated minimap and dungeon map with icon overlays. The map is fully touch-responsive, allowing you to drag to pan and pinch to zoom.\nQuick Inventory Management: View item information and equip items entirely from the bottom screen.",{"type":28,"tag":62,"props":15033,"children":15034},{},[15035,15040],{"type":28,"tag":139,"props":15036,"children":15037},{},[15038],{"type":34,"value":15039},"Comprehensive Collection Screen",{"type":34,"value":15041},": Instantly check your progress on heart containers, caught fish, golden bugs, hidden skills, and mail. You can also swap your sword, shield, and other gear directly without ever opening the pause menu.",{"type":28,"tag":62,"props":15043,"children":15044},{},[15045,15050],{"type":28,"tag":139,"props":15046,"children":15047},{},[15048],{"type":34,"value":15049},"Quest & Achievement Tracking",{"type":34,"value":15051},": Easily monitor your active quests and Dusklight achievements from the second screen.",{"type":28,"tag":62,"props":15053,"children":15054},{},[15055,15060],{"type":28,"tag":139,"props":15056,"children":15057},{},[15058],{"type":34,"value":15059},"Instant Form Toggle",{"type":34,"value":15061},": Transform between human and wolf forms instantly using a dedicated button on the bottom screen.",{"title":6,"searchDepth":225,"depth":225,"links":15063},[15064],{"id":15005,"depth":225,"text":15008},"content:dusklight:index.md","dusklight\u002Findex.md","dusklight\u002Findex",{"_path":15069,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":15070,"description":15071,"date":15072,"slug":15073,"category":12,"media":15074,"source":15077,"project_page":15078,"body":15079,"_type":231,"_id":15098,"_source":233,"_file":15099,"_stem":15100,"_extension":236},"\u002Fzelda-link-to-the-past","The Legend of Zelda: A Link to the Past","A port of Zelda3 to Android with a second screen mod for dual screen devices like the AYN Thor","2026-07-10 13:59","zelda-link-to-the-past",[15075],{"type":16,"url":15076},"\u002Fcontent\u002Fzelda-link-to-the-past\u002Fpreview.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1us1t54\u002Fzelda_a_link_to_the_past_dual_screen_mod\u002F","https:\u002F\u002Fgithub.com\u002Fsamyost1\u002Fzelda3-android",{"type":25,"children":15080,"toc":15095},[15081,15085,15090],{"type":28,"tag":29,"props":15082,"children":15083},{"id":31},[15084],{"type":34,"value":35},{"type":28,"tag":37,"props":15086,"children":15087},{},[15088],{"type":34,"value":15089},"The bottom screen shows a live world map, a dungeon map with the rooms you visited, and a touch inventory where you can tap an item to equip it. On the title screen and during cutscenes it just shows a triforce.",{"type":28,"tag":37,"props":15091,"children":15092},{},[15093],{"type":34,"value":15094},"The second screen graphics are made from your zelda3_assets.dat while the game runs, so there is no extra setup and the app contains no game assets.",{"title":6,"searchDepth":225,"depth":225,"links":15096},[15097],{"id":31,"depth":225,"text":35},"content:zelda-link-to-the-past:index.md","zelda-link-to-the-past\u002Findex.md","zelda-link-to-the-past\u002Findex",{"_path":15102,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":15103,"description":15104,"date":15105,"slug":15106,"category":242,"generated":13,"media":15107,"source":15110,"project_page":15111,"body":15112,"_type":231,"_id":15191,"_source":233,"_file":15192,"_stem":15193,"_extension":236},"\u002Fmegingiard","Megingiard","Allows you to customize the bottom screen with screen mirroring, virtual keyboard\u002Fmouse controls, custom gamepad inputs, and macro execution.","2026-06-19 14:44","megingiard",[15108],{"type":245,"url":15109},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=vgs6X9piswA","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1tlids6\u002Frerelease_source_available_megingiard_a\u002F","https:\u002F\u002Fgithub.com\u002Fstormpanda\u002Fmegingiard",{"type":25,"children":15113,"toc":15186},[15114,15118,15123,15129,15139,15149,15159,15169,15173],{"type":28,"tag":29,"props":15115,"children":15116},{"id":31},[15117],{"type":34,"value":35},{"type":28,"tag":37,"props":15119,"children":15120},{},[15121],{"type":34,"value":15122},"Megingiard is a bespoke companion application designed specifically for the AYN Thor dual-screen Android handheld. It combines deep Android hardware video stream manipulation with modern Jetpack Compose interfaces to turn the secondary display into a fully interactive tool belt: a latency-free, multi-cutout mirror of the primary screen, a virtual keyboard, a virtual touchpad, a configurable MacroPad, and a virtual gamepad — all driven by native input injection for sub-millisecond response. The app requires Android 13 or newer and only supports the AYN Thor; single-screen devices are permanently unsupported.",{"type":28,"tag":29,"props":15124,"children":15126},{"id":15125},"main-features",[15127],{"type":34,"value":15128},"Main Features",{"type":28,"tag":37,"props":15130,"children":15131},{},[15132,15137],{"type":28,"tag":139,"props":15133,"children":15134},{},[15135],{"type":34,"value":15136},"Latency-Free Multi-Cutout Screen Mirroring",{"type":34,"value":15138}," — Define up to 10 cropped regions of the primary screen and arrange them freely on the secondary display. Pan and pinch-to-zoom up to 10×, rotate cutouts in 90° steps, flip axes, and lock aspect ratios. Isolate stationary HUD elements (minimaps, health meters, dials) from moving scenery, freeze frames, and link MacroPad layouts to visual anchors that auto-switch when the HUD disappears. Includes smart alignment guides, edge blending, circular cutouts, temporal motion smoothing, and a Follow Touch mode that centers the viewport on your last touch.",{"type":28,"tag":37,"props":15140,"children":15141},{},[15142,15147],{"type":28,"tag":139,"props":15143,"children":15144},{},[15145],{"type":34,"value":15146},"MacroPad Central Mode",{"type":34,"value":15148}," — Create named profiles with custom button layouts and bind buttons to keyboard keystrokes, gamepad buttons, mouse actions, scroll wheels, layout\u002Fmirror actions, or app launchers using visual pickers. Profiles can auto-switch per app, and a visual macro editor lets you record or hand-craft timed sequences of key, mouse, and gamepad events with human-like timing randomizers.",{"type":28,"tag":37,"props":15150,"children":15151},{},[15152,15157],{"type":28,"tag":139,"props":15153,"children":15154},{},[15155],{"type":34,"value":15156},"Virtual Keyboard",{"type":34,"value":15158}," — Compact full keyboard and ergonomic split layouts with QWERTY\u002FQWERTZ\u002FAZERTY variants, auto-open when a text field is focused on the primary screen, sticky modifiers, spacebar cursor scrubbing, an integrated trackpoint, and a quick macro toolbar.",{"type":28,"tag":37,"props":15160,"children":15161},{},[15162,15167],{"type":28,"tag":139,"props":15163,"children":15164},{},[15165],{"type":34,"value":15166},"Virtual Touchpad",{"type":34,"value":15168}," — Relative mouse mode turns the bottom screen into a trackpad with tap-to-click, two-finger scrolling, and physical LMB\u002FMMB\u002FRMB buttons; Absolute Touch mode projects touches directly to matching coordinates on the primary screen.",{"type":28,"tag":29,"props":15170,"children":15171},{"id":99},[15172],{"type":34,"value":102},{"type":28,"tag":37,"props":15174,"children":15175},{},[15176,15178,15184],{"type":34,"value":15177},"Download and install the latest release of Megingiard from the ",{"type":28,"tag":705,"props":15179,"children":15182},{"href":15180,"rel":15181},"https:\u002F\u002Fgithub.com\u002Fstormpanda\u002Fmegingiard\u002Freleases\u002Flatest",[709],[15183],{"type":34,"value":1078},{"type":34,"value":15185},". The app targets the AYN Thor running Android 13 or newer; single-screen devices are not supported. After installation, launch the app and grant the requested permissions to use the mirror, MacroPad, keyboard, and touchpad on the secondary display.",{"title":6,"searchDepth":225,"depth":225,"links":15187},[15188,15189,15190],{"id":31,"depth":225,"text":35},{"id":15125,"depth":225,"text":15128},{"id":99,"depth":225,"text":102},"content:megingiard:index.md","megingiard\u002Findex.md","megingiard\u002Findex",{"_path":15195,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":15196,"description":15197,"date":15198,"slug":15199,"category":242,"media":15200,"source":15203,"project_page":15204,"body":15205,"_type":231,"_id":15257,"_source":233,"_file":15258,"_stem":15259,"_extension":236},"\u002Fthornotes","ThorNotes","Small bottom-screen notebook app","2026-06-19 13:44","thornotes",[15201],{"type":16,"url":15202},"\u002Fcontent\u002Fthornotes\u002Fpreview.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1u7i7p1\u002Fthornotes_yet_another_bottom_screen_companion\u002F","https:\u002F\u002Fgithub.com\u002Fxade93\u002Fthornote",{"type":25,"children":15206,"toc":15253},[15207,15211,15216,15220],{"type":28,"tag":29,"props":15208,"children":15209},{"id":31},[15210],{"type":34,"value":35},{"type":28,"tag":37,"props":15212,"children":15213},{},[15214],{"type":34,"value":15215},"When you play lots of games and switch between them, it is easy to forget what was happening in each one. ThorNotes helps by letting you quickly save in-game screenshots or OCR text from a selected screen region, then browse everything later in a clean bottom-screen interface.",{"type":28,"tag":29,"props":15217,"children":15218},{"id":15125},[15219],{"type":34,"value":15128},{"type":28,"tag":58,"props":15221,"children":15222},{},[15223,15228,15233,15238,15243,15248],{"type":28,"tag":62,"props":15224,"children":15225},{},[15226],{"type":34,"value":15227},"Save screenshots into notebook pages; or OCR a selected screen region and save the recognized text",{"type":28,"tag":62,"props":15229,"children":15230},{},[15231],{"type":34,"value":15232},"Multiple notebook pages for quick switch between different games",{"type":28,"tag":62,"props":15234,"children":15235},{},[15236],{"type":34,"value":15237},"Browsing: screenshot thumbnails for quick jumping; pin\u002Fstar important screenshots",{"type":28,"tag":62,"props":15239,"children":15240},{},[15241],{"type":34,"value":15242},"OLED blackout mode: double-tap the time to make the bottom screen black, double-tap again to restore",{"type":28,"tag":62,"props":15244,"children":15245},{},[15246],{"type":34,"value":15247},"Floating overlay button to hide\u002Frestore the app",{"type":28,"tag":62,"props":15249,"children":15250},{},[15251],{"type":34,"value":15252},"Data safety: every notebook page is stored in json and plain image files, can be migrated if needed",{"title":6,"searchDepth":225,"depth":225,"links":15254},[15255,15256],{"id":31,"depth":225,"text":35},{"id":15125,"depth":225,"text":15128},"content:thornotes:index.md","thornotes\u002Findex.md","thornotes\u002Findex",{"_path":15261,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":15262,"description":15263,"date":15264,"slug":15265,"category":12,"media":15266,"source":15269,"project_page":15270,"body":15271,"_type":231,"_id":15324,"_source":233,"_file":15325,"_stem":15326,"_extension":236},"\u002Fbanjo-kazooie","Banjo - Kazooie","Android port of BanjoRecomp, with dual-screen support","2026-06-16 13:59","banjo-kazooie",[15267],{"type":16,"url":15268},"\u002Fcontent\u002Fbanjo-kazooie\u002Fpreview.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1u5bmr9\u002Fbanjo_kazooie_port_with_dual_screen_support\u002F","https:\u002F\u002Fgithub.com\u002FAurelioB\u002FBanjoRecomp-Android",{"type":25,"children":15272,"toc":15320},[15273,15277,15290,15294],{"type":28,"tag":29,"props":15274,"children":15275},{"id":99},[15276],{"type":34,"value":102},{"type":28,"tag":58,"props":15278,"children":15279},{},[15280,15285],{"type":28,"tag":62,"props":15281,"children":15282},{},[15283],{"type":34,"value":15284},"Download the latest .apk file from GitHub.",{"type":28,"tag":62,"props":15286,"children":15287},{},[15288],{"type":34,"value":15289},"Add your own ROM file. You need the 1.0 ROM version.",{"type":28,"tag":29,"props":15291,"children":15292},{"id":6620},[15293],{"type":34,"value":6623},{"type":28,"tag":58,"props":15295,"children":15296},{},[15297],{"type":28,"tag":62,"props":15298,"children":15299},{},[15300,15302,15309,15311,15318],{"type":34,"value":15301},"The port has mod support, such as ",{"type":28,"tag":705,"props":15303,"children":15306},{"href":15304,"rel":15305},"https:\u002F\u002Fthunderstore.io\u002Fc\u002Fbanjo-recompiled\u002Fp\u002FGhostlyDark\u002FBK_Reloaded\u002F",[709],[15307],{"type":34,"value":15308},"BK Reloaded texture pack",{"type":34,"value":15310},". Other mods have not been tested by the author. For extra mod info, visit the original ",{"type":28,"tag":705,"props":15312,"children":15315},{"href":15313,"rel":15314},"https:\u002F\u002Fgithub.com\u002FBanjoRecomp\u002FBanjoRecomp#mod-support",[709],[15316],{"type":34,"value":15317},"BanjoRecomp",{"type":34,"value":15319}," project page.",{"title":6,"searchDepth":225,"depth":225,"links":15321},[15322,15323],{"id":99,"depth":225,"text":102},{"id":6620,"depth":225,"text":6623},"content:banjo-kazooie:index.md","banjo-kazooie\u002Findex.md","banjo-kazooie\u002Findex",{"_path":15328,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":15329,"description":15330,"date":15331,"slug":15332,"category":12,"media":15333,"source":15336,"project_page":15337,"body":15338,"_type":231,"_id":15399,"_source":233,"_file":15400,"_stem":15401,"_extension":236},"\u002Fdoom","DOOM (1993)","Implementation of UZDoom android port for dual-screen devices","2026-06-16 12:44","doom",[15334],{"type":245,"url":15335},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=FAGRYqWGUQw","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1tvk122\u002Fdoom_but_on_2_screens\u002F","https:\u002F\u002Fgithub.com\u002Fandreyvelsk\u002Fcom.mobilerpgpack.phone",{"type":25,"children":15339,"toc":15395},[15340,15344,15361,15365,15373,15382],{"type":28,"tag":29,"props":15341,"children":15342},{"id":99},[15343],{"type":34,"value":102},{"type":28,"tag":58,"props":15345,"children":15346},{},[15347,15351,15356],{"type":28,"tag":62,"props":15348,"children":15349},{},[15350],{"type":34,"value":15284},{"type":28,"tag":62,"props":15352,"children":15353},{},[15354],{"type":34,"value":15355},"Add your own .WAD files.",{"type":28,"tag":62,"props":15357,"children":15358},{},[15359],{"type":34,"value":15360},"Configure the controls to your liking.",{"type":28,"tag":29,"props":15362,"children":15363},{"id":192},[15364],{"type":34,"value":195},{"type":28,"tag":58,"props":15366,"children":15367},{},[15368],{"type":28,"tag":62,"props":15369,"children":15370},{},[15371],{"type":34,"value":15372},"At the start of the game, you can see the following issue:",{"type":28,"tag":15374,"props":15375,"children":15376},"blockquote",{},[15377],{"type":28,"tag":37,"props":15378,"children":15379},{},[15380],{"type":34,"value":15381},"failed to create \"....\\uzdoom\\config\\uzdoom\" folder",{"type":28,"tag":37,"props":15383,"children":15384},{},[15385,15387,15393],{"type":34,"value":15386},"Just create this folder manually, or set another path in the ",{"type":28,"tag":43,"props":15388,"children":15390},{"className":15389},[],[15391],{"type":34,"value":15392},"Paths to user folder",{"type":34,"value":15394}," option.",{"title":6,"searchDepth":225,"depth":225,"links":15396},[15397,15398],{"id":99,"depth":225,"text":102},{"id":192,"depth":225,"text":195},"content:doom:index.md","doom\u002Findex.md","doom\u002Findex",{"_path":15403,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":15404,"description":15405,"date":15406,"slug":15407,"category":242,"media":15408,"tags":15417,"project_page":15421,"body":15422,"_type":231,"_id":15652,"_source":233,"_file":15653,"_stem":15654,"_extension":236},"\u002Fdualscreendex","Pokemon game + DualScreenDex","Automatically detect the Pokémon currently on your screen and display their stats, weaknesses, and resistances instantly.","2026-06-15 15:31","dualscreendex",[15409,15411,15413,15415],{"type":245,"url":15410},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=JMTiW8wY358",{"type":16,"url":15412},"https:\u002F\u002Fraw.githubusercontent.com\u002FDarkaxt\u002FDualScreenDex\u002Fmaster\u002Fdocs\u002Fimages\u002Fdualdex-v1-pokedex-browse.png",{"type":16,"url":15414},"https:\u002F\u002Fraw.githubusercontent.com\u002FDarkaxt\u002FDualScreenDex\u002Fmaster\u002Fdocs\u002Fimages\u002Fdualdex-v1-charizard-entry.png",{"type":16,"url":15416},"https:\u002F\u002Fraw.githubusercontent.com\u002FDarkaxt\u002FDualScreenDex\u002Fmaster\u002Fdocs\u002Fimages\u002Fdualdex-v1-move-detail.png",[15418,15419,12676,15420,5432],"pokemon","pokedex","retroarch","https:\u002F\u002Fgithub.com\u002Fenrique-paulino\u002FDualScreenDex",{"type":25,"children":15423,"toc":15646},[15424,15428,15433,15439,15445,15450,15455,15463,15501,15506,15596,15602,15607,15629,15634],{"type":28,"tag":29,"props":15425,"children":15426},{"id":31},[15427],{"type":34,"value":35},{"type":28,"tag":37,"props":15429,"children":15430},{},[15431],{"type":34,"value":15432},"DualScreenDex is a companion Pokedex app designed specifically for dual-screen Android gaming handhelds (like the Ayn Thor). It uses live OCR screen scanning to automatically detect the Pokémon currently on your screen and display their stats, weaknesses, and resistances instantly.",{"type":28,"tag":29,"props":15434,"children":15436},{"id":15435},"forks",[15437],{"type":34,"value":15438},"Forks",{"type":28,"tag":6967,"props":15440,"children":15442},{"id":15441},"dualdex",[15443],{"type":34,"value":15444},"DualDex",{"type":28,"tag":37,"props":15446,"children":15447},{},[15448],{"type":34,"value":15449},"DualDex is a passive Pokédex companion for mainline-family Pokémon games running in RetroArch. Keep the game on the AYN Thor's upper display and DualDex on the lower display, or use its optional resizable overlay on a single screen.",{"type":28,"tag":37,"props":15451,"children":15452},{},[15453],{"type":34,"value":15454},"Unlike the original OCR-based approach, DualDex parses the user's own GB, GBC, or GBA ROM into a local Pokédex and combines it with checksum-valid SaveRAM and supported read-only live-memory layouts. It does not use OCR, screenshots, cheats, memory writes, bundled Pokémon data, or per-ROM-hack profiles. Unsupported capabilities fail independently, so a ROM can retain its static Pokédex even when a live-memory feature is unavailable.",{"type":28,"tag":37,"props":15456,"children":15457},{},[15458],{"type":28,"tag":139,"props":15459,"children":15460},{},[15461],{"type":34,"value":15462},"Advantages over the original:",{"type":28,"tag":58,"props":15464,"children":15465},{},[15466,15471,15476,15481,15486,15491,15496],{"type":28,"tag":62,"props":15467,"children":15468},{},[15469],{"type":34,"value":15470},"ROM-derived species, forms, types, moves, descriptions, sprites, encounters, and type mechanics",{"type":28,"tag":62,"props":15472,"children":15473},{},[15474],{"type":34,"value":15475},"Seen, caught, team, Area, rarity, and battle context where the selected ROM exposes validated structures",{"type":28,"tag":62,"props":15477,"children":15478},{},[15479],{"type":34,"value":15480},"Live Gen III party detection where the ROM exposes a structurally validated party layout, without waiting for an in-game save",{"type":28,"tag":62,"props":15482,"children":15483},{},[15484],{"type":34,"value":15485},"Organic discovery mode that conceals information until it has been observed or captured",{"type":28,"tag":62,"props":15487,"children":15488},{},[15489],{"type":34,"value":15490},"An Area roster that puts known Pokémon first and masks unseen local encounters without revealing their identities",{"type":28,"tag":62,"props":15492,"children":15493},{},[15494],{"type":34,"value":15495},"Docked lower-screen mode and an optional floating 4:3 overlay",{"type":28,"tag":62,"props":15497,"children":15498},{},[15499],{"type":34,"value":15500},"Automatic RetroArch content detection with manual ROM selection as a fallback",{"type":28,"tag":15502,"props":15503,"children":15504},"h4",{"id":99},[15505],{"type":34,"value":102},{"type":28,"tag":104,"props":15507,"children":15508},{},[15509,15522,15534,15546,15558,15563],{"type":28,"tag":62,"props":15510,"children":15511},{},[15512,15514,15521],{"type":34,"value":15513},"Download the signed ",{"type":28,"tag":705,"props":15515,"children":15518},{"href":15516,"rel":15517},"https:\u002F\u002Fgithub.com\u002FDarkaxt\u002FDualScreenDex\u002Freleases\u002Flatest",[709],[15519],{"type":34,"value":15520},"latest prerelease",{"type":34,"value":176},{"type":28,"tag":62,"props":15523,"children":15524},{},[15525,15527,15532],{"type":34,"value":15526},"Install the production APK and open ",{"type":28,"tag":139,"props":15528,"children":15529},{},[15530],{"type":34,"value":15531},"RetroArch Setup",{"type":34,"value":15533}," in DualDex.",{"type":28,"tag":62,"props":15535,"children":15536},{},[15537,15539,15544],{"type":34,"value":15538},"Grant Android's ",{"type":28,"tag":139,"props":15540,"children":15541},{},[15542],{"type":34,"value":15543},"All files access",{"type":34,"value":15545}," when prompted. DualDex uses it to discover sibling ROM folders, RetroArch SaveRAM, and the public RetroArch configuration.",{"type":28,"tag":62,"props":15547,"children":15548},{},[15549,15551,15556],{"type":34,"value":15550},"Let the setup page enable RetroArch ",{"type":28,"tag":139,"props":15552,"children":15553},{},[15554],{"type":34,"value":15555},"Network Commands",{"type":34,"value":15557}," and the recommended SaveRAM autosave setting, then restart RetroArch if DualDex reports that the configuration changed.",{"type":28,"tag":62,"props":15559,"children":15560},{},[15561],{"type":34,"value":15562},"Start a supported Pokémon ROM in RetroArch. DualDex should activate the matching local catalog automatically; manual ROM selection remains available when automatic activation cannot resolve it.",{"type":28,"tag":62,"props":15564,"children":15565},{},[15566,15568,15573,15575,15580,15582,15587,15589,15594],{"type":34,"value":15567},"Leave ",{"type":28,"tag":139,"props":15569,"children":15570},{},[15571],{"type":34,"value":15572},"Display mode",{"type":34,"value":15574}," on ",{"type":28,"tag":139,"props":15576,"children":15577},{},[15578],{"type":34,"value":15579},"Docked",{"type":34,"value":15581}," for the Thor's lower screen, or explicitly enable ",{"type":28,"tag":139,"props":15583,"children":15584},{},[15585],{"type":34,"value":15586},"Overlay",{"type":34,"value":15588}," and grant ",{"type":28,"tag":139,"props":15590,"children":15591},{},[15592],{"type":34,"value":15593},"Display over other apps",{"type":34,"value":15595}," for the floating companion.",{"type":28,"tag":15502,"props":15597,"children":15599},{"id":15598},"compatibility-and-limitations",[15600],{"type":34,"value":15601},"Compatibility and limitations",{"type":28,"tag":37,"props":15603,"children":15604},{},[15605],{"type":34,"value":15606},"The latest prerelease keeps the stable companion layout and adds structurally resolved live Gen III party reading, so a newly received starter can appear in Team before the player performs an in-game save. The Area filter retains the newer Organic-mode encounter visibility: known local Pokémon are listed first, while unseen parsed encounters appear as disabled silhouettes with masked names. Experimental world maps and THUMB ability-mechanics decoding are not included in this APK.",{"type":28,"tag":37,"props":15608,"children":15609},{},[15610,15612,15619,15620,15627],{"type":34,"value":15611},"The parser has been exercised against a documented ROM-hack corpus, but support is capability-based rather than an all-or-nothing compatibility claim. See the current ",{"type":28,"tag":705,"props":15613,"children":15616},{"href":15614,"rel":15615},"https:\u002F\u002Fgithub.com\u002FDarkaxt\u002FDualScreenDex\u002Fblob\u002Fmaster\u002Freports\u002Fdualdex-rom-hacks-compatibility.md",[709],[15617],{"type":34,"value":15618},"ROM Hacks Compatibility report",{"type":34,"value":1475},{"type":28,"tag":705,"props":15621,"children":15624},{"href":15622,"rel":15623},"https:\u002F\u002Fgithub.com\u002FDarkaxt\u002FDualScreenDex\u002Fblob\u002Fmaster\u002Freports\u002Fdualdex-parser-compatibility.md",[709],[15625],{"type":34,"value":15626},"Parser Compatibility report",{"type":34,"value":15628}," before testing a particular hack.",{"type":28,"tag":37,"props":15630,"children":15631},{},[15632],{"type":34,"value":15633},"The protected workflow signs production APKs. The package, version, download hash, signer, and installation on a Thor are verified before the registry entry is finalized; hands-on gameplay validation remains part of prerelease testing.",{"type":28,"tag":37,"props":15635,"children":15636},{},[15637,15639],{"type":34,"value":15638},"Project and issue tracker: ",{"type":28,"tag":705,"props":15640,"children":15643},{"href":15641,"rel":15642},"https:\u002F\u002Fgithub.com\u002FDarkaxt\u002FDualScreenDex",[709],[15644],{"type":34,"value":15645},"github.com\u002FDarkaxt\u002FDualScreenDex",{"title":6,"searchDepth":225,"depth":225,"links":15647},[15648,15649],{"id":31,"depth":225,"text":35},{"id":15435,"depth":225,"text":15438,"children":15650},[15651],{"id":15441,"depth":4514,"text":15444},"content:dualscreendex:index.md","dualscreendex\u002Findex.md","dualscreendex\u002Findex",{"_path":15656,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":15657,"description":15658,"date":15659,"slug":15660,"category":242,"media":15661,"project_page":15664,"body":15665,"_type":231,"_id":15765,"_source":233,"_file":15766,"_stem":15767,"_extension":236},"\u002Fskyrim","The Elder Scrolls V: Skyrim + companion app","Companion app, inspired by pipboy app","2026-06-15 14:40","skyrim",[15662],{"type":245,"url":15663},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=mN9_XvTjSi4","https:\u002F\u002Fgithub.com\u002Fandreyvelsk\u002FSkyrimWebMonitor",{"type":25,"children":15666,"toc":15760},[15667,15671,15683,15687,15731,15735],{"type":28,"tag":29,"props":15668,"children":15669},{"id":99},[15670],{"type":34,"value":102},{"type":28,"tag":37,"props":15672,"children":15673},{},[15674,15676],{"type":34,"value":15675},"You can find the manual at the source: ",{"type":28,"tag":705,"props":15677,"children":15680},{"href":15678,"rel":15679},"https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1sz0prj\u002Fskyrim_companion_app_you_already_can_try_it\u002F",[709],[15681],{"type":34,"value":15682},"reddit.com",{"type":28,"tag":29,"props":15684,"children":15685},{"id":6620},[15686],{"type":34,"value":6623},{"type":28,"tag":58,"props":15688,"children":15689},{},[15690,15695,15712,15717],{"type":28,"tag":62,"props":15691,"children":15692},{},[15693],{"type":34,"value":15694},"Tested and developed on the latest Steam version",{"type":28,"tag":62,"props":15696,"children":15697},{},[15698,15700,15710],{"type":34,"value":15699},"Also has ",{"type":28,"tag":139,"props":15701,"children":15702},{},[15703],{"type":28,"tag":705,"props":15704,"children":15707},{"href":15705,"rel":15706},"http:\u002F\u002Fsureai.net\u002Fgames\u002Fenderal\u002F",[709],[15708],{"type":34,"value":15709},"Enderal SE",{"type":34,"value":15711}," support (tested on latest GOG version)",{"type":28,"tag":62,"props":15713,"children":15714},{},[15715],{"type":34,"value":15716},"Can be launched as a web app or standard .apk",{"type":28,"tag":62,"props":15718,"children":15719},{},[15720,15722,15729],{"type":34,"value":15721},"Using ",{"type":28,"tag":705,"props":15723,"children":15726},{"href":15724,"rel":15725},"https:\u002F\u002Fgithub.com\u002FAurelioB\u002FClusterTune",[709],[15727],{"type":34,"value":15728},"Cluster Tune",{"type":34,"value":15730}," may significantly reduce CPU temperature, fan noise, and battery drain.",{"type":28,"tag":29,"props":15732,"children":15733},{"id":192},[15734],{"type":34,"value":195},{"type":28,"tag":58,"props":15736,"children":15737},{},[15738],{"type":28,"tag":62,"props":15739,"children":15740},{},[15741,15743,15749,15751,15758],{"type":34,"value":15742},"The game may have no sound on startup (same issue as ",{"type":28,"tag":705,"props":15744,"children":15746},{"href":15745},"\u002Fproject\u002Ffallout-4",[15747],{"type":34,"value":15748},"Fallout 4",{"type":34,"value":15750},"). Use the DXSetup fix (",{"type":28,"tag":705,"props":15752,"children":15755},{"href":15753,"rel":15754},"https:\u002F\u002Fwww.emuready.com\u002Flistings\u002F80f24173-dec8-4e44-acff-dfabc2b5d085",[709],[15756],{"type":34,"value":15757},"here",{"type":34,"value":15759},")",{"title":6,"searchDepth":225,"depth":225,"links":15761},[15762,15763,15764],{"id":99,"depth":225,"text":102},{"id":6620,"depth":225,"text":6623},{"id":192,"depth":225,"text":195},"content:skyrim:index.md","skyrim\u002Findex.md","skyrim\u002Findex",{"_path":15769,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":15770,"description":15771,"date":15772,"slug":15773,"category":242,"media":15774,"source":15777,"body":15778,"_type":231,"_id":15820,"_source":233,"_file":15821,"_stem":15822,"_extension":236},"\u002Fcivilization-6","Civilization 6 + Civilopedia app","Setup for playing Civilization 6 with an offline companion app","2026-06-15 14:31","civilization-6",[15775],{"type":16,"url":15776},"\u002Fcontent\u002Fcivilization-6\u002Fpreview.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1u3cn0b\u002Fmy_civilization_vi_setup_on_the_ayn_thor\u002F",{"type":25,"children":15779,"toc":15817},[15780,15784,15789],{"type":28,"tag":29,"props":15781,"children":15782},{"id":31},[15783],{"type":34,"value":35},{"type":28,"tag":37,"props":15785,"children":15786},{},[15787],{"type":34,"value":15788},"Here is the description from the source:",{"type":28,"tag":104,"props":15790,"children":15791},{},[15792,15797,15802,15807,15812],{"type":28,"tag":62,"props":15793,"children":15794},{},[15795],{"type":34,"value":15796},"Steam version running through GameNative.",{"type":28,"tag":62,"props":15798,"children":15799},{},[15800],{"type":34,"value":15801},"Graphics settings set to the lowest preset, with the physical controls mapped to keyboard and mouse inputs using GameNative's quick menu.",{"type":28,"tag":62,"props":15803,"children":15804},{},[15805],{"type":34,"value":15806},"Workshop mods downloaded and installed through GameNative's menu.",{"type":28,"tag":62,"props":15808,"children":15809},{},[15810],{"type":34,"value":15811},"Custom GPU drivers and a CPU underclock for better thermals and battery life.",{"type":28,"tag":62,"props":15813,"children":15814},{},[15815],{"type":34,"value":15816},"On the lower screen, I'm running the Civilopedia app from the Google Play Store, which is incredibly useful for quickly checking units, technologies, civ abilities, and game mechanics without leaving the game.",{"title":6,"searchDepth":225,"depth":225,"links":15818},[15819],{"id":31,"depth":225,"text":35},"content:civilization-6:index.md","civilization-6\u002Findex.md","civilization-6\u002Findex",{"_path":15824,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":15825,"description":15826,"date":15827,"slug":15828,"category":242,"media":15829,"source":15832,"project_page":15833,"body":15834,"_type":231,"_id":15848,"_source":233,"_file":15849,"_stem":15850,"_extension":236},"\u002Fthortranslate","ThorLens","Android app that translates and explains foreign-language game screens using AI vision.","2026-06-15 14:00","thortranslate",[15830],{"type":16,"url":15831},"\u002Fcontent\u002Fthortranslate\u002Fpreview.webp","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1rofite\u002Fi_made_an_ayn_thor_ingame_translation_app\u002F","https:\u002F\u002Fgithub.com\u002Fmagiobus\u002Fthortranslate",{"type":25,"children":15835,"toc":15845},[15836,15840],{"type":28,"tag":29,"props":15837,"children":15838},{"id":31},[15839],{"type":34,"value":35},{"type":28,"tag":37,"props":15841,"children":15842},{},[15843],{"type":34,"value":15844},"An awesome Android app for translating and understanding foreign-language game screens in real time. Built for dual-screen devices like the Ayn Thor, where the game runs on the top screen and ThorLens runs on the bottom.",{"title":6,"searchDepth":225,"depth":225,"links":15846},[15847],{"id":31,"depth":225,"text":35},"content:thortranslate:index.md","thortranslate\u002Findex.md","thortranslate\u002Findex",{"_path":15852,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":15853,"description":15854,"date":15855,"slug":15856,"category":5422,"media":15857,"project_page":15860,"body":15861,"_type":231,"_id":16089,"_source":233,"_file":16090,"_stem":16091,"_extension":236},"\u002Femulnk","Emulnk","Emulator companion app that turns your second screen into a themed dashboard, built for dual-display handhelds","2026-06-15 11:00","emulnk",[15858],{"type":245,"url":15859},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=u7MSK2YUFw8","https:\u002F\u002Fgithub.com\u002FEmuLnk\u002Femulnk",{"type":25,"children":15862,"toc":16084},[15863,15867,15872,15878,16060,16068,16072],{"type":28,"tag":29,"props":15864,"children":15865},{"id":31},[15866],{"type":34,"value":35},{"type":28,"tag":37,"props":15868,"children":15869},{},[15870],{"type":34,"value":15871},"EmuLnk connects to emulators over UDP, reads game memory in real time, and renders it as themed HTML pages. It supports three modes: full-screen dashboards on a second screen, floating overlay widgets on top of the game, or both at once (bundle). Themes are HTML\u002FCSS\u002FJS WebViews driven by live data from JSON profiles. Themes can also write back to game memory, run macros, play sounds, and trigger haptic feedback.",{"type":28,"tag":29,"props":15873,"children":15875},{"id":15874},"supported-emulators",[15876],{"type":34,"value":15877},"Supported Emulators",{"type":28,"tag":15879,"props":15880,"children":15881},"table",{},[15882,15906],{"type":28,"tag":15883,"props":15884,"children":15885},"thead",{},[15886],{"type":28,"tag":15887,"props":15888,"children":15889},"tr",{},[15890,15896,15901],{"type":28,"tag":15891,"props":15892,"children":15893},"th",{},[15894],{"type":34,"value":15895},"Emulator",{"type":28,"tag":15891,"props":15897,"children":15898},{},[15899],{"type":34,"value":15900},"Systems",{"type":28,"tag":15891,"props":15902,"children":15903},{},[15904],{"type":34,"value":15905},"Fork",{"type":28,"tag":15907,"props":15908,"children":15909},"tbody",{},[15910,15941,15970,16000,16030],{"type":28,"tag":15887,"props":15911,"children":15912},{},[15913,15922,15927],{"type":28,"tag":15914,"props":15915,"children":15916},"td",{},[15917],{"type":28,"tag":139,"props":15918,"children":15919},{},[15920],{"type":34,"value":15921},"RetroArch",{"type":28,"tag":15914,"props":15923,"children":15924},{},[15925],{"type":34,"value":15926},"SNES, Genesis, NES, GB, GBC, GBA, PS1, N64",{"type":28,"tag":15914,"props":15928,"children":15929},{},[15930],{"type":28,"tag":705,"props":15931,"children":15934},{"href":15932,"rel":15933},"https:\u002F\u002Fgithub.com\u002FEmuLnk\u002Fretroarch-lnk",[709],[15935],{"type":28,"tag":43,"props":15936,"children":15938},{"className":15937},[],[15939],{"type":34,"value":15940},"retroarch-lnk",{"type":28,"tag":15887,"props":15942,"children":15943},{},[15944,15951,15956],{"type":28,"tag":15914,"props":15945,"children":15946},{},[15947],{"type":28,"tag":139,"props":15948,"children":15949},{},[15950],{"type":34,"value":2017},{"type":28,"tag":15914,"props":15952,"children":15953},{},[15954],{"type":34,"value":15955},"GameCube, Wii",{"type":28,"tag":15914,"props":15957,"children":15958},{},[15959],{"type":28,"tag":705,"props":15960,"children":15963},{"href":15961,"rel":15962},"https:\u002F\u002Fgithub.com\u002FEmuLnk\u002Fdolphin-lnk",[709],[15964],{"type":28,"tag":43,"props":15965,"children":15967},{"className":15966},[],[15968],{"type":34,"value":15969},"dolphin-lnk",{"type":28,"tag":15887,"props":15971,"children":15972},{},[15973,15981,15986],{"type":28,"tag":15914,"props":15974,"children":15975},{},[15976],{"type":28,"tag":139,"props":15977,"children":15978},{},[15979],{"type":34,"value":15980},"PPSSPP",{"type":28,"tag":15914,"props":15982,"children":15983},{},[15984],{"type":34,"value":15985},"PSP",{"type":28,"tag":15914,"props":15987,"children":15988},{},[15989],{"type":28,"tag":705,"props":15990,"children":15993},{"href":15991,"rel":15992},"https:\u002F\u002Fgithub.com\u002FEmuLnk\u002Fppsspp-lnk",[709],[15994],{"type":28,"tag":43,"props":15995,"children":15997},{"className":15996},[],[15998],{"type":34,"value":15999},"ppsspp-lnk",{"type":28,"tag":15887,"props":16001,"children":16002},{},[16003,16011,16016],{"type":28,"tag":15914,"props":16004,"children":16005},{},[16006],{"type":28,"tag":139,"props":16007,"children":16008},{},[16009],{"type":34,"value":16010},"melonDS",{"type":28,"tag":15914,"props":16012,"children":16013},{},[16014],{"type":34,"value":16015},"NDS, DSi",{"type":28,"tag":15914,"props":16017,"children":16018},{},[16019],{"type":28,"tag":705,"props":16020,"children":16023},{"href":16021,"rel":16022},"https:\u002F\u002Fgithub.com\u002FEmuLnk\u002FmelonDS-lnk",[709],[16024],{"type":28,"tag":43,"props":16025,"children":16027},{"className":16026},[],[16028],{"type":34,"value":16029},"melonds-lnk",{"type":28,"tag":15887,"props":16031,"children":16032},{},[16033,16041,16046],{"type":28,"tag":15914,"props":16034,"children":16035},{},[16036],{"type":28,"tag":139,"props":16037,"children":16038},{},[16039],{"type":34,"value":16040},"Azahar",{"type":28,"tag":15914,"props":16042,"children":16043},{},[16044],{"type":34,"value":16045},"3DS",{"type":28,"tag":15914,"props":16047,"children":16048},{},[16049],{"type":28,"tag":705,"props":16050,"children":16053},{"href":16051,"rel":16052},"https:\u002F\u002Fgithub.com\u002FEmuLnk\u002Fazahar-lnk",[709],[16054],{"type":28,"tag":43,"props":16055,"children":16057},{"className":16056},[],[16058],{"type":34,"value":16059},"azahar-lnk",{"type":28,"tag":15374,"props":16061,"children":16062},{},[16063],{"type":28,"tag":37,"props":16064,"children":16065},{},[16066],{"type":34,"value":16067},"Each emulator fork adds the EmuLnk binary UDP protocol. Install the fork alongside EmuLnk to use it.",{"type":28,"tag":29,"props":16069,"children":16070},{"id":99},[16071],{"type":34,"value":102},{"type":28,"tag":37,"props":16073,"children":16074},{},[16075,16077],{"type":34,"value":16076},"List of supported games: ",{"type":28,"tag":705,"props":16078,"children":16081},{"href":16079,"rel":16080},"https:\u002F\u002Fgithub.com\u002FEmuLnk\u002Femulnk-repo",[709],[16082],{"type":34,"value":16083},"github.com",{"title":6,"searchDepth":225,"depth":225,"links":16085},[16086,16087,16088],{"id":31,"depth":225,"text":35},{"id":15874,"depth":225,"text":15877},{"id":99,"depth":225,"text":102},"content:emulnk:index.md","emulnk\u002Findex.md","emulnk\u002Findex",{"_path":16093,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":16094,"description":16095,"date":16096,"slug":16097,"category":242,"media":16098,"source":16103,"body":16104,"_type":231,"_id":16165,"_source":233,"_file":16166,"_stem":16167,"_extension":236},"\u002Ffallout-4","Fallout 4 + Pipboy App","Playing game using official companion game app - looks perfect on Ayn Thor!","2026-06-15 10:00","fallout-4",[16099,16101],{"type":245,"url":16100},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=hJZytgCXtF8&t=205s",{"type":245,"url":16102},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=rz2uE7rdKvI","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FAynThor\u002Fcomments\u002F1rs6c7r\u002Fsetup_guide_fallout_4_goty_pipboy_app_on_ayn_thor\u002F",{"type":25,"children":16105,"toc":16161},[16106,16110,16143,16147],{"type":28,"tag":29,"props":16107,"children":16108},{"id":6620},[16109],{"type":34,"value":6623},{"type":28,"tag":58,"props":16111,"children":16112},{},[16113,16118,16132],{"type":28,"tag":62,"props":16114,"children":16115},{},[16116],{"type":34,"value":16117},"Use only the latest GOG game version — the Steam version does NOT support the Pip-Boy app. Don't forget to check \"use Pip-Boy app\" in the game menu.",{"type":28,"tag":62,"props":16119,"children":16120},{},[16121,16123,16130],{"type":34,"value":16122},"You need a Wi-Fi connection to get a network link between the game and the app. There is a project on ",{"type":28,"tag":705,"props":16124,"children":16127},{"href":16125,"rel":16126},"https:\u002F\u002Fgithub.com\u002FKuriGohan-Kamehameha\u002FStrip-Boy",[709],[16128],{"type":34,"value":16129},"GitHub.com",{"type":34,"value":16131}," that bypasses this restriction (not tested).",{"type":28,"tag":62,"props":16133,"children":16134},{},[16135,16137,16142],{"type":34,"value":16136},"Usage of ",{"type":28,"tag":705,"props":16138,"children":16140},{"href":15724,"rel":16139},[709],[16141],{"type":34,"value":15728},{"type":34,"value":15730},{"type":28,"tag":29,"props":16144,"children":16145},{"id":192},[16146],{"type":34,"value":195},{"type":28,"tag":58,"props":16148,"children":16149},{},[16150],{"type":28,"tag":62,"props":16151,"children":16152},{},[16153,16155,16160],{"type":34,"value":16154},"The game may have no sound on startup. Use the DXSetup fix (mentioned in the setup guide, or you can find the solution ",{"type":28,"tag":705,"props":16156,"children":16158},{"href":15753,"rel":16157},[709],[16159],{"type":34,"value":15757},{"type":34,"value":898},{"title":6,"searchDepth":225,"depth":225,"links":16162},[16163,16164],{"id":6620,"depth":225,"text":6623},{"id":192,"depth":225,"text":195},"content:fallout-4:index.md","fallout-4\u002Findex.md","fallout-4\u002Findex",1794296045149]