jelos.org/configure/cloud-sync/index.html

5331 lines
No EOL
110 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="canonical" href="https://jelos.org/configure/cloud-sync/">
<link rel="prev" href="../networking/">
<link rel="next" href="../vpn/">
<link rel="icon" href="../../assets/images/favicon.png">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.13">
<title>Cloud Sync - JELOS Wiki</title>
<link rel="stylesheet" href="../../assets/stylesheets/main.7e359304.min.css">
<link rel="stylesheet" href="../../assets/stylesheets/palette.06af60db.min.css">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Oxygen:300,300i,400,400i,700,700i%7COxygen+Mono:400,400i,700,700i&display=fallback">
<style>:root{--md-text-font:"Oxygen";--md-code-font:"Oxygen Mono"}</style>
<link rel="stylesheet" href="../../_inc/css/custom.css">
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
<link href="../../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>
html.glightbox-open { overflow: initial; height: 100%; }
.gslide-title { margin-top: 0px; user-select: text; }
.gslide-desc { color: #666; user-select: text; }
.gslide-image img { background: white; }
.gscrollbar-fixer { padding-right: 15px; }
.gdesc-inner { font-size: 0.75rem; }
body[data-md-color-scheme="slate"] .gdesc-inner { background: var(--md-default-bg-color);}
body[data-md-color-scheme="slate"] .gslide-title { color: var(--md-default-fg-color);}
body[data-md-color-scheme="slate"] .gslide-desc { color: var(--md-default-fg-color);}</style> <script src="../../assets/javascripts/glightbox.min.js"></script></head>
<body dir="ltr" data-md-color-scheme="art-book" data-md-color-primary="indigo" data-md-color-accent="indigo">
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a href="#cloud-sync" class="md-skip">
Skip to content
</a>
</div>
<div data-md-component="announce">
</div>
<header class="md-header md-header--shadow" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="../.." title="JELOS Wiki" class="md-header__button md-logo" aria-label="JELOS Wiki" data-md-component="logo">
<img src="../../_inc/images/logo.png" alt="logo">
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
JELOS Wiki
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
Cloud Sync
</span>
</div>
</div>
</div>
<form class="md-header__option" data-md-component="palette">
<input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="art-book" data-md-color-primary="indigo" data-md-color-accent="indigo" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_0">
<label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_1" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69Z"/></svg>
</label>
<input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="art-book-next" data-md-color-primary="indigo" data-md-color-accent="indigo" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_1">
<label class="md-header__button md-icon" title="Switch to light mode" for="__palette_0" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12c0-2.42-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69Z"/></svg>
</label>
</form>
<script>var media,input,key,value,palette=__md_get("__palette");if(palette&&palette.color){"(prefers-color-scheme)"===palette.color.media&&(media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']"),palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent"));for([key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
</label>
<nav class="md-search__options" aria-label="Search">
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
</button>
</nav>
<div class="md-search__suggest" data-md-component="search-suggest"></div>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix>
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
Initializing search
</div>
<ol class="md-search-result__list" role="presentation"></ol>
</div>
</div>
</div>
</div>
</div>
<div class="md-header__source">
<a href="https://github.com/JustEnoughLinuxOS/jelos.org" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
</div>
<div class="md-source__repository">
jelos.org
</div>
</a>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="../.." title="JELOS Wiki" class="md-nav__button md-logo" aria-label="JELOS Wiki" data-md-component="logo">
<img src="../../_inc/images/logo.png" alt="logo">
</a>
JELOS Wiki
</label>
<div class="md-nav__source">
<a href="https://github.com/JustEnoughLinuxOS/jelos.org" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
</div>
<div class="md-source__repository">
jelos.org
</div>
</a>
</div>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../.." class="md-nav__link">
<span class="md-ellipsis">
Home
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../faqs/" class="md-nav__link">
<span class="md-ellipsis">
FAQs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../donations/" class="md-nav__link">
<span class="md-ellipsis">
Donations
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" >
<div class="md-nav__link md-nav__container">
<a href="../../contribute/" class="md-nav__link ">
<span class="md-ellipsis">
Contribute
</span>
</a>
<label class="md-nav__link " for="__nav_4" id="__nav_4_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4">
<span class="md-nav__icon md-icon"></span>
Contribute
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../contribute/code-of-conduct/" class="md-nav__link">
<span class="md-ellipsis">
Code of Conduct
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../contribute/build/" class="md-nav__link">
<span class="md-ellipsis">
Build
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../contribute/modify/" class="md-nav__link">
<span class="md-ellipsis">
Modify
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../contribute/quirks/" class="md-nav__link">
<span class="md-ellipsis">
Quirks
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../contribute/packages/" class="md-nav__link">
<span class="md-ellipsis">
Packages
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" >
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="">
<span class="md-ellipsis">
Play
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_5">
<span class="md-nav__icon md-icon"></span>
Play
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../play/install/" class="md-nav__link">
<span class="md-ellipsis">
Install
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../play/update/" class="md-nav__link">
<span class="md-ellipsis">
Update
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../play/add-games/" class="md-nav__link">
<span class="md-ellipsis">
Add Games
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../play/retro-achievements/" class="md-nav__link">
<span class="md-ellipsis">
Achievements
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../play/controls/" class="md-nav__link">
<span class="md-ellipsis">
Controls
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../play/netplay/" class="md-nav__link">
<span class="md-ellipsis">
Netplay
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" checked>
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="">
<span class="md-ellipsis">
Configure
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_6">
<span class="md-nav__icon md-icon"></span>
Configure
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../themes/" class="md-nav__link">
<span class="md-ellipsis">
Themes
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../scraper/" class="md-nav__link">
<span class="md-ellipsis">
Scraping
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../collections/" class="md-nav__link">
<span class="md-ellipsis">
Collections
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../optimizations/" class="md-nav__link">
<span class="md-ellipsis">
Optimizations
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../shaders/" class="md-nav__link">
<span class="md-ellipsis">
Shaders
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../overlays/" class="md-nav__link">
<span class="md-ellipsis">
Overlays
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../networking/" class="md-nav__link">
<span class="md-ellipsis">
Networking
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
<label class="md-nav__link md-nav__link--active" for="__toc">
<span class="md-ellipsis">
Cloud Sync
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active">
<span class="md-ellipsis">
Cloud Sync
</span>
</a>
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#syncthing" class="md-nav__link">
<span class="md-ellipsis">
Syncthing
</span>
</a>
<nav class="md-nav" aria-label="Syncthing">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#setup" class="md-nav__link">
<span class="md-ellipsis">
Setup
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#things-to-keep-in-mind" class="md-nav__link">
<span class="md-ellipsis">
Things to Keep in Mind
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#synchronizing-with-android" class="md-nav__link">
<span class="md-ellipsis">
Synchronizing with Android
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#further-documentation" class="md-nav__link">
<span class="md-ellipsis">
Further Documentation
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#rclone" class="md-nav__link">
<span class="md-ellipsis">
Rclone
</span>
</a>
<nav class="md-nav" aria-label="Rclone">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#setup-rclone" class="md-nav__link">
<span class="md-ellipsis">
Setup Rclone
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#using-rclone" class="md-nav__link">
<span class="md-ellipsis">
Using Rclone
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#using-cloud-backup-and-restore" class="md-nav__link">
<span class="md-ellipsis">
Using Cloud Backup and Restore
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#detailed-example" class="md-nav__link">
<span class="md-ellipsis">
Detailed Example
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../vpn/" class="md-nav__link">
<span class="md-ellipsis">
VPN
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../packages/" class="md-nav__link">
<span class="md-ellipsis">
Packages
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_7" >
<label class="md-nav__link" for="__nav_7" id="__nav_7_label" tabindex="">
<span class="md-ellipsis">
Systems
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_7_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_7">
<span class="md-nav__icon md-icon"></span>
Systems
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_7_1" >
<label class="md-nav__link" for="__nav_7_1" id="__nav_7_1_label" tabindex="0">
<span class="md-ellipsis">
Arcade
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_7_1_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_7_1">
<span class="md-nav__icon md-icon"></span>
Arcade
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../systems/cps1/" class="md-nav__link">
<span class="md-ellipsis">
Capcom CPS-1
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/cps2/" class="md-nav__link">
<span class="md-ellipsis">
Capcom CPS-2
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/cps3/" class="md-nav__link">
<span class="md-ellipsis">
Capcom CPS-3
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/daphne/" class="md-nav__link">
<span class="md-ellipsis">
Daphne
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/fbn/" class="md-nav__link">
<span class="md-ellipsis">
Final Burn Neo
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/mame/" class="md-nav__link">
<span class="md-ellipsis">
MAME
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/atomiswave/" class="md-nav__link">
<span class="md-ellipsis">
Sammy Atomiswave
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/naomi/" class="md-nav__link">
<span class="md-ellipsis">
Sega Naomi
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/neogeo/" class="md-nav__link">
<span class="md-ellipsis">
SNK Neo Geo
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_7_2" >
<label class="md-nav__link" for="__nav_7_2" id="__nav_7_2_label" tabindex="0">
<span class="md-ellipsis">
Consoles
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_7_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_7_2">
<span class="md-nav__icon md-icon"></span>
Consoles
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../systems/amigacd32/" class="md-nav__link">
<span class="md-ellipsis">
Amiga CD32
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/atari2600/" class="md-nav__link">
<span class="md-ellipsis">
Atari 2600
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/atari5200/" class="md-nav__link">
<span class="md-ellipsis">
Atari 5200
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/atari7800/" class="md-nav__link">
<span class="md-ellipsis">
Atari 7800
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/atarijaguar/" class="md-nav__link">
<span class="md-ellipsis">
Atari Jaguar
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/colecovision/" class="md-nav__link">
<span class="md-ellipsis">
ColecoVision
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/channelf/" class="md-nav__link">
<span class="md-ellipsis">
Fairchild Channel F
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/intellivision/" class="md-nav__link">
<span class="md-ellipsis">
Mattel Intellivision
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/odyssey2/" class="md-nav__link">
<span class="md-ellipsis">
Magnavox Odyssey 2
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/xbox/" class="md-nav__link">
<span class="md-ellipsis">
Microsoft Xbox
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/pcengine/" class="md-nav__link">
<span class="md-ellipsis">
NEC PC-Engine / TurboGrafx-16
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/supergrafx/" class="md-nav__link">
<span class="md-ellipsis">
NEC SuperGrafx
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/pcfx/" class="md-nav__link">
<span class="md-ellipsis">
NEC PC-FX
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/nes/" class="md-nav__link">
<span class="md-ellipsis">
Nintendo NES / Famicom
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/fds/" class="md-nav__link">
<span class="md-ellipsis">
Nintendo Famicom Disk System (FDS)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/snes/" class="md-nav__link">
<span class="md-ellipsis">
Nintendo Super Nintendo / Super Famicom
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/n64/" class="md-nav__link">
<span class="md-ellipsis">
Nintendo 64
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/gamecube/" class="md-nav__link">
<span class="md-ellipsis">
Nintendo Gamecube
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/wii/" class="md-nav__link">
<span class="md-ellipsis">
Nintendo Wii
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/wiiu/" class="md-nav__link">
<span class="md-ellipsis">
Nintendo Wii U
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/3do/" class="md-nav__link">
<span class="md-ellipsis">
Panasonic 3DO
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/videopac/" class="md-nav__link">
<span class="md-ellipsis">
Philips Videopac
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/sg-1000/" class="md-nav__link">
<span class="md-ellipsis">
Sega SG-1000
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/mastersystem/" class="md-nav__link">
<span class="md-ellipsis">
Sega Master System
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/genesis/" class="md-nav__link">
<span class="md-ellipsis">
Sega Genesis / Megadrive
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/segacd/" class="md-nav__link">
<span class="md-ellipsis">
Sega CD / Mega CD
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/sega32x/" class="md-nav__link">
<span class="md-ellipsis">
Sega 32X
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/saturn/" class="md-nav__link">
<span class="md-ellipsis">
Sega Saturn
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/dreamcast/" class="md-nav__link">
<span class="md-ellipsis">
Sega Dreamcast
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/neogeo/" class="md-nav__link">
<span class="md-ellipsis">
SNK Neo Geo
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/neogeocd/" class="md-nav__link">
<span class="md-ellipsis">
SNK Neo Geo CD
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/psx/" class="md-nav__link">
<span class="md-ellipsis">
Sony PlayStation
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/ps2/" class="md-nav__link">
<span class="md-ellipsis">
Sony PlayStation 2
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/ps3/" class="md-nav__link">
<span class="md-ellipsis">
Sony PlayStation 3
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/uzebox/" class="md-nav__link">
<span class="md-ellipsis">
Uzebox
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/vectrex/" class="md-nav__link">
<span class="md-ellipsis">
Vectrex
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_7_3" >
<label class="md-nav__link" for="__nav_7_3" id="__nav_7_3_label" tabindex="0">
<span class="md-ellipsis">
Portables
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_7_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_7_3">
<span class="md-nav__icon md-icon"></span>
Portables
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../systems/arduboy/" class="md-nav__link">
<span class="md-ellipsis">
Arduboy
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/atarilynx/" class="md-nav__link">
<span class="md-ellipsis">
Atari Lynx
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/wonderswan/" class="md-nav__link">
<span class="md-ellipsis">
Bandai Wonderswan / Wonderswan Color
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/megaduck/" class="md-nav__link">
<span class="md-ellipsis">
Mega Duck
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/gameandwatch/" class="md-nav__link">
<span class="md-ellipsis">
Nintendo Game & Watch
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/gb/" class="md-nav__link">
<span class="md-ellipsis">
Nintendo Gameboy
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/virtualboy/" class="md-nav__link">
<span class="md-ellipsis">
Nintendo Virtual Boy
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/gbc/" class="md-nav__link">
<span class="md-ellipsis">
Nintendo Gameboy Color
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/gba/" class="md-nav__link">
<span class="md-ellipsis">
Nintendo Gameboy Advance
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/pokemini/" class="md-nav__link">
<span class="md-ellipsis">
Nintendo Pokémon Mini
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/nds/" class="md-nav__link">
<span class="md-ellipsis">
Nintendo DS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/3ds/" class="md-nav__link">
<span class="md-ellipsis">
Nintendo 3DS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/gamegear/" class="md-nav__link">
<span class="md-ellipsis">
Sega Game Gear
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/ngp/" class="md-nav__link">
<span class="md-ellipsis">
SNK Neo Geo Pocket
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/psp/" class="md-nav__link">
<span class="md-ellipsis">
Sony PlayStation Portable
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/psvita/" class="md-nav__link">
<span class="md-ellipsis">
Sony PlayStation Vita
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/supervision/" class="md-nav__link">
<span class="md-ellipsis">
Watara Supervision
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_7_4" >
<label class="md-nav__link" for="__nav_7_4" id="__nav_7_4_label" tabindex="0">
<span class="md-ellipsis">
Computers
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_7_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_7_4">
<span class="md-nav__icon md-icon"></span>
Computers
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../systems/amiga/" class="md-nav__link">
<span class="md-ellipsis">
Amiga
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/amstradcpc/" class="md-nav__link">
<span class="md-ellipsis">
Amstrad CPC
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/atari800/" class="md-nav__link">
<span class="md-ellipsis">
Atari 800
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/atarist/" class="md-nav__link">
<span class="md-ellipsis">
Atari ST
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/c16/" class="md-nav__link">
<span class="md-ellipsis">
Commodore 16
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/c64/" class="md-nav__link">
<span class="md-ellipsis">
Commodore 64
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/c128/" class="md-nav__link">
<span class="md-ellipsis">
Commodore 128
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/pet/" class="md-nav__link">
<span class="md-ellipsis">
Commodore PET
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/vic20/" class="md-nav__link">
<span class="md-ellipsis">
Commodore VIC-20
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/msx/" class="md-nav__link">
<span class="md-ellipsis">
MSX
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/pc/" class="md-nav__link">
<span class="md-ellipsis">
MS-DOS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/pc88/" class="md-nav__link">
<span class="md-ellipsis">
NEC PC-88
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/pc98/" class="md-nav__link">
<span class="md-ellipsis">
NEC PC-98
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/x1/" class="md-nav__link">
<span class="md-ellipsis">
Sharp X1
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/x68000/" class="md-nav__link">
<span class="md-ellipsis">
Sharp X68000
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/zx81/" class="md-nav__link">
<span class="md-ellipsis">
Sinclair ZX81
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/zxspectrum/" class="md-nav__link">
<span class="md-ellipsis">
Sinclair ZX Spectrum
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_7_5" >
<label class="md-nav__link" for="__nav_7_5" id="__nav_7_5_label" tabindex="0">
<span class="md-ellipsis">
Engines
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_7_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_7_5">
<span class="md-nav__icon md-icon"></span>
Engines
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../systems/build-engine/" class="md-nav__link">
<span class="md-ellipsis">
Build Engine
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/doom/" class="md-nav__link">
<span class="md-ellipsis">
Doom
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/easyrpg/" class="md-nav__link">
<span class="md-ellipsis">
EasyRPG
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/zmachine/" class="md-nav__link">
<span class="md-ellipsis">
Infocom Zmachine
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/j2me/" class="md-nav__link">
<span class="md-ellipsis">
J2ME
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/openbor/" class="md-nav__link">
<span class="md-ellipsis">
Open Beats of Rage
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/pico-8/" class="md-nav__link">
<span class="md-ellipsis">
Pico-8
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/scummvm/" class="md-nav__link">
<span class="md-ellipsis">
SCUMMVM
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/tic-80/" class="md-nav__link">
<span class="md-ellipsis">
TIC-80
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_7_6" >
<label class="md-nav__link" for="__nav_7_6" id="__nav_7_6_label" tabindex="0">
<span class="md-ellipsis">
Other
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_7_6_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_7_6">
<span class="md-nav__icon md-icon"></span>
Other
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../systems/moonlight/" class="md-nav__link">
<span class="md-ellipsis">
Moonlight
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/mplayer/" class="md-nav__link">
<span class="md-ellipsis">
Media Player
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/music/" class="md-nav__link">
<span class="md-ellipsis">
Music Player
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../systems/ports/" class="md-nav__link">
<span class="md-ellipsis">
Ports
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8" >
<div class="md-nav__link md-nav__container">
<a href="../../devices/" class="md-nav__link ">
<span class="md-ellipsis">
Devices
</span>
</a>
<label class="md-nav__link " for="__nav_8" id="__nav_8_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_8_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_8">
<span class="md-nav__icon md-icon"></span>
Devices
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8_2" >
<label class="md-nav__link" for="__nav_8_2" id="__nav_8_2_label" tabindex="0">
<span class="md-ellipsis">
Anbernic
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_8_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_8_2">
<span class="md-nav__icon md-icon"></span>
Anbernic
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../devices/anbernic/rg351pmv/" class="md-nav__link">
<span class="md-ellipsis">
RG351 [P/M/V]
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../devices/anbernic/rg353pmvvs/" class="md-nav__link">
<span class="md-ellipsis">
RG353 [P/M/V/VS]
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../devices/anbernic/rg503/" class="md-nav__link">
<span class="md-ellipsis">
RG503
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../devices/anbernic/rg552/" class="md-nav__link">
<span class="md-ellipsis">
RG552
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../devices/anbernic/win600/" class="md-nav__link">
<span class="md-ellipsis">
Win600
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8_3" >
<label class="md-nav__link" for="__nav_8_3" id="__nav_8_3_label" tabindex="0">
<span class="md-ellipsis">
AOKZOE
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_8_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_8_3">
<span class="md-nav__icon md-icon"></span>
AOKZOE
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../devices/aokzoe/a1-pro/" class="md-nav__link">
<span class="md-ellipsis">
A1 Pro
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8_4" >
<label class="md-nav__link" for="__nav_8_4" id="__nav_8_4_label" tabindex="0">
<span class="md-ellipsis">
Atari
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_8_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_8_4">
<span class="md-nav__icon md-icon"></span>
Atari
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../devices/atari/vcs/" class="md-nav__link">
<span class="md-ellipsis">
VCS
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8_5" >
<label class="md-nav__link" for="__nav_8_5" id="__nav_8_5_label" tabindex="0">
<span class="md-ellipsis">
AYANEO
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_8_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_8_5">
<span class="md-nav__icon md-icon"></span>
AYANEO
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../devices/ayaneo/air/" class="md-nav__link">
<span class="md-ellipsis">
Air / Air Pro
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../devices/ayaneo/air-plus/" class="md-nav__link">
<span class="md-ellipsis">
Air Plus
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../devices/ayaneo/ayaneo-2/" class="md-nav__link">
<span class="md-ellipsis">
AYANEO 2/2s
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8_6" >
<label class="md-nav__link" for="__nav_8_6" id="__nav_8_6_label" tabindex="0">
<span class="md-ellipsis">
AYN
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_8_6_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_8_6">
<span class="md-nav__icon md-icon"></span>
AYN
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../devices/ayn/loki-zero/" class="md-nav__link">
<span class="md-ellipsis">
Loki Zero
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../devices/ayn/loki-max/" class="md-nav__link">
<span class="md-ellipsis">
Loki Max
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8_7" >
<label class="md-nav__link" for="__nav_8_7" id="__nav_8_7_label" tabindex="0">
<span class="md-ellipsis">
GameForce
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_8_7_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_8_7">
<span class="md-nav__icon md-icon"></span>
GameForce
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../devices/gameforce/gameforce-ace/" class="md-nav__link">
<span class="md-ellipsis">
GameForce Ace
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8_8" >
<label class="md-nav__link" for="__nav_8_8" id="__nav_8_8_label" tabindex="0">
<span class="md-ellipsis">
GPD
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_8_8_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_8_8">
<span class="md-nav__icon md-icon"></span>
GPD
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../devices/gpd/win4/" class="md-nav__link">
<span class="md-ellipsis">
Win 4
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../devices/gpd/win-max-2/" class="md-nav__link">
<span class="md-ellipsis">
Win Max 2
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8_9" >
<label class="md-nav__link" for="__nav_8_9" id="__nav_8_9_label" tabindex="0">
<span class="md-ellipsis">
Hardkernel
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_8_9_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_8_9">
<span class="md-nav__icon md-icon"></span>
Hardkernel
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../devices/hardkernel/odroid-go-advance/" class="md-nav__link">
<span class="md-ellipsis">
Odroid Go Advance
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../devices/hardkernel/odroid-go-super/" class="md-nav__link">
<span class="md-ellipsis">
Odroid Go Super
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../devices/hardkernel/odroid-go-ultra/" class="md-nav__link">
<span class="md-ellipsis">
Odroid Go Ultra
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../devices/hardkernel/odroid-n2/" class="md-nav__link">
<span class="md-ellipsis">
Odroid N2/N2+/N2L
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8_10" >
<label class="md-nav__link" for="__nav_8_10" id="__nav_8_10_label" tabindex="0">
<span class="md-ellipsis">
Indiedroid
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_8_10_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_8_10">
<span class="md-nav__icon md-icon"></span>
Indiedroid
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../devices/indiedroid/nova/" class="md-nav__link">
<span class="md-ellipsis">
Nova
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8_11" >
<label class="md-nav__link" for="__nav_8_11" id="__nav_8_11_label" tabindex="0">
<span class="md-ellipsis">
Orange Pi
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_8_11_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_8_11">
<span class="md-nav__icon md-icon"></span>
Orange Pi
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../devices/orange-pi/orange-pi-5/" class="md-nav__link">
<span class="md-ellipsis">
Orange Pi 5
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8_12" >
<label class="md-nav__link" for="__nav_8_12" id="__nav_8_12_label" tabindex="0">
<span class="md-ellipsis">
Powkiddy
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_8_12_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_8_12">
<span class="md-nav__icon md-icon"></span>
Powkiddy
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../devices/powkiddy/rgb10-max-3-pro/" class="md-nav__link">
<span class="md-ellipsis">
RGB10 Max 3 Pro
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../devices/powkiddy/rgb10-max-3/" class="md-nav__link">
<span class="md-ellipsis">
RGB10 Max 3
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../devices/powkiddy/rgb30/" class="md-nav__link">
<span class="md-ellipsis">
RGB30
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../devices/powkiddy/rk2023/" class="md-nav__link">
<span class="md-ellipsis">
RK2023
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../devices/powkiddy/x55/" class="md-nav__link">
<span class="md-ellipsis">
x55
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../devices/powkiddy/rgb10/" class="md-nav__link">
<span class="md-ellipsis">
RGB10
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../devices/powkiddy/xu10/" class="md-nav__link">
<span class="md-ellipsis">
XU10
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8_13" >
<label class="md-nav__link" for="__nav_8_13" id="__nav_8_13_label" tabindex="0">
<span class="md-ellipsis">
Unbranded
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_8_13_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_8_13">
<span class="md-nav__icon md-icon"></span>
Unbranded
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../devices/unbranded/game-console-r33s/" class="md-nav__link">
<span class="md-ellipsis">
Game Console R33S
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../devices/unbranded/game-console-r35s-r36s/" class="md-nav__link">
<span class="md-ellipsis">
Game Console R35S/R36S
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#syncthing" class="md-nav__link">
<span class="md-ellipsis">
Syncthing
</span>
</a>
<nav class="md-nav" aria-label="Syncthing">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#setup" class="md-nav__link">
<span class="md-ellipsis">
Setup
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#things-to-keep-in-mind" class="md-nav__link">
<span class="md-ellipsis">
Things to Keep in Mind
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#synchronizing-with-android" class="md-nav__link">
<span class="md-ellipsis">
Synchronizing with Android
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#further-documentation" class="md-nav__link">
<span class="md-ellipsis">
Further Documentation
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#rclone" class="md-nav__link">
<span class="md-ellipsis">
Rclone
</span>
</a>
<nav class="md-nav" aria-label="Rclone">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#setup-rclone" class="md-nav__link">
<span class="md-ellipsis">
Setup Rclone
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#using-rclone" class="md-nav__link">
<span class="md-ellipsis">
Using Rclone
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#using-cloud-backup-and-restore" class="md-nav__link">
<span class="md-ellipsis">
Using Cloud Backup and Restore
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#detailed-example" class="md-nav__link">
<span class="md-ellipsis">
Detailed Example
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<h1 id="cloud-sync"><span class="twemoji"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 17.5c0 .89.18 1.73.5 2.5h-7c-1.5 0-2.81-.5-3.89-1.57C1.54 17.38 1 16.09 1 14.58c0-1.3.39-2.46 1.17-3.48S4 9.43 5.25 9.15c.42-1.53 1.25-2.77 2.5-3.72S10.42 4 12 4c1.95 0 3.6.68 4.96 2.04C18.32 7.4 19 9.05 19 11h.1c-3.4.23-6.1 3.05-6.1 6.5m6-4V12l-2.25 2.25L19 16.5V15a2.5 2.5 0 0 1 2.5 2.5c0 .4-.09.78-.26 1.12l1.09 1.09c.42-.63.67-1.39.67-2.21 0-2.21-1.79-4-4-4m0 6.5a2.5 2.5 0 0 1-2.5-2.5c0-.4.09-.78.26-1.12l-1.09-1.09c-.42.63-.67 1.39-.67 2.21 0 2.21 1.79 4 4 4V23l2.25-2.25L19 18.5V20Z"/></svg></span> Cloud Sync<a class="headerlink" href="#cloud-sync" title="Permanent link"></a></h1>
<p>JELOS has built in support for multiple cloud sync options. These can be used to sync save files, games and other files between multiple devices. </p>
<h2 id="syncthing">Syncthing<a class="headerlink" href="#syncthing" title="Permanent link"></a></h2>
<p>Syncthing is a tool that lets you synchronize the contents of folders across multiple devices. It is different from cloud storage in that devices are updated directly with the latest changes from their peer(s) whenever they are online at the same time.
Some things you can use it for with JELOS:</p>
<ul>
<li>Keep your game library synchronized between your computer and JELOS device(s),</li>
<li>Keep all your handhelds synchronized (including those that run Android),</li>
<li>Copy savegames as they are created and seamlessly continue playing on another device,</li>
<li>Keep a copy of your configuration files for easier editing.</li>
</ul>
<h3 id="setup">Setup<a class="headerlink" href="#setup" title="Permanent link"></a></h3>
<h4 id="setup-on-jelos">Setup on JELOS<a class="headerlink" href="#setup-on-jelos" title="Permanent link"></a></h4>
<ul>
<li>Make sure you are connected to a WiFi network before continuing.</li>
<li>Go to "Network Settings" and set "Enable Syncthing" to "on". Make a note of your device's IP address, as well as the root password in the System Settings menu.</li>
<li>On a computer or mobile device in the same network, open a browser and point it to "http://a.b.c.d:8384" where "a.b.c.d" is the IP address of your JELOS device.</li>
<li>When prompted for a user name and password, enter "root" as user and the password you noted earlier.</li>
<li>You should now be directed to a configuration page running on your JELOS device - we'll come back to this shortly.</li>
</ul>
<h4 id="setup-on-peers">Setup on Peer(s)<a class="headerlink" href="#setup-on-peers" title="Permanent link"></a></h4>
<p>Install Syncthing on the device or computer that you want to synchronize with your JELOS device. If your other device also runs JELOS, simply repeat the above steps. Otherwise go to https://syncthing.net to download Syncthing for your platform. You may also find it in your Linux distribution's package manager, the Android Play Store, etc. Generally it is not required to install the same version of Syncthing on all devices. You can synchronize a folder across any number of peers.</p>
<h4 id="connecting-folders">Connecting Folders<a class="headerlink" href="#connecting-folders" title="Permanent link"></a></h4>
<ol>
<li>Go to the web interface of your JELOS device (see above). Don't worry about notices about upgrading or the file system being read-only, nothing you can do.
(Note: You can also go to the web interface of any of the peers, it'll work the same - but for this documentation it is assumed that you're on a JELOS device.)</li>
<li>Under "Remote Devices", click "Add Remote Device". Enter the Device ID of the peer you want to synchronize with. If the remote is in the same network as your JELOS device the ID will be shown automatically. Otherwise, you'll find it in the remote's web interface by clicking "Actions" at the top and then "Show ID". Give the device a name if you like.</li>
<li>In the "Folders" section, click "Add Folder". In the popup window that opens, set a label and specify the path on the device (e.g. /storage/roms). This is the folder you will be sharing with other peers.</li>
<li>In the same popup window, go to the "Sharing" tab and select the remote device you just set up. Optionally, go to the "Ignore Patterns" tab and configure those. Click "Save" to close the window.</li>
<li>On the remote's interface you should receive a popup that a new device wants to connect. Click "Add Device" and then "Save" to accept. It should now show up under "Remote Devices".</li>
<li>Still on the remote, you should receive a new popup saying that the JELOS device wants to share a folder. Click "Add", then in the popup window, specify the path to an empty local folder to store the synchronized contents. Click "Save".</li>
<li>The folder should now be copied from the JELOS device to the remote.</li>
</ol>
<h4 id="adding-more-peers">Adding more Peers<a class="headerlink" href="#adding-more-peers" title="Permanent link"></a></h4>
<ul>
<li>To share the folder with more peers, first follow step 2 on your JELOS device to add another remote.</li>
<li>Find the folder you want to add another peer to and click "Edit".</li>
<li>In the popup window, go to the "Sharing" tab. The new remote should appear as an option. Select it and then click "Save".</li>
<li>Follow steps 5 and 6 on the new remote to connect the folder.</li>
</ul>
<h3 id="things-to-keep-in-mind">Things to Keep in Mind<a class="headerlink" href="#things-to-keep-in-mind" title="Permanent link"></a></h3>
<h4 id="syncthing-is-not-a-cloud-storage">Syncthing is not a cloud storage<a class="headerlink" href="#syncthing-is-not-a-cloud-storage" title="Permanent link"></a></h4>
<p>In order for devices to synchronize, they need to be online at the same time. Unless you have one peer that is always on, this is different from an online storage like Dropbox or Nextcloud. However, this behaviour can be emulated (no pun intended) by installing Syncthing on a cloud server or an always-on Raspberry Pi.</p>
<h4 id="syncthing-is-not-a-backup">Syncthing is not a backup<a class="headerlink" href="#syncthing-is-not-a-backup" title="Permanent link"></a></h4>
<p>Folders are synchronized with other peers immediately as they come online at the same time - this includes changes and deletions! Be sure to make regular backups of your folders.</p>
<h4 id="devices-do-not-need-to-be-on-the-same-network">Devices do not need to be on the same network<a class="headerlink" href="#devices-do-not-need-to-be-on-the-same-network" title="Permanent link"></a></h4>
<p>Syncthing uses relay servers to ensure communication between peers. This means that there does not need to be a direct connection between your devices, no port forwarding, etc - as soon as they are both online they will find each other and synchronize. Although file transfers are end-to-end encrypted when they are sent through relays, be aware of this if you plan on using Syncthing for anything more sensitive than your save files.</p>
<h4 id="using-syncthing-for-savesstates">Using Syncthing for Saves/States<a class="headerlink" href="#using-syncthing-for-savesstates" title="Permanent link"></a></h4>
<p>Using Syncthing for savegames is great because it allows you to seamlessly play a game across multiple handhelds, or even other devices. For example, you can play a game of Super Mario 64 on your RG353 while on the go, then launch the game on a RetroPie or PC running RetroArch and your save game will be transferred automatically to be continued on the big screen. However, this comes with a few caveats.</p>
<p>RetroArch differentiates between <em>saves</em>, i.e. the battery or memory card storage featured in the original game, and <em>states</em>, i.e. the save state feature that is part of the emulator. While <em>saves</em> are often compatible across different versions of RetroArch cores, <em>states</em> tend to break more frequently. This means that if you create states with two incompatible versions of an emulator and they are synchronized, you may lose one of them.</p>
<ul>
<li>For maximum compatibility, make sure to use the same cores on all devices and update them at similar frequencies.</li>
<li>RetroArch uses two separate folders for <em>saves</em> and <em>states</em>. This makes it easy to choose whether you want to synchronize only saves, states, or both.</li>
<li>In the RetroArch settings under "Saving", you can tell RetroArch to sort saves and states into subfolders based on content directory or core name. It is highly recommended to make use of this to reduce the risk of accidentally overwriting an incompatible save or state.</li>
<li>Make regular backups of your save folders.</li>
</ul>
<h3 id="synchronizing-with-android">Synchronizing with Android<a class="headerlink" href="#synchronizing-with-android" title="Permanent link"></a></h3>
<ul>
<li>For Android-based handhelds people seem to be recommending the <a href="https://f-droid.org/en/packages/com.github.catfriend1.syncthingandroid">Syncthing-Fork from F-Droid</a>.</li>
<li>Keeping Syncthing running in the background on Anroid may severely impact your battery life and reduce standby time. Check out <a href="https://github.com/Catfriend1/syncthing-android/wiki/Info-on-battery-optimization-and-settings-affecting-battery-usage">these tips</a> to help you balance battery life and synchronization times.</li>
<li>Using cross-platform versions of emulators is much more likely to introduce incompatibilities so be extra careful when syncing savegames.</li>
</ul>
<h3 id="further-documentation">Further Documentation<a class="headerlink" href="#further-documentation" title="Permanent link"></a></h3>
<p>For any questions and advanced configuration, be sure to check out the full documentation at https://docs.syncthing.net/index.html.</p>
<hr />
<h2 id="rclone">Rclone<a class="headerlink" href="#rclone" title="Permanent link"></a></h2>
<p>Using Rclone is easy, however configuration must be performed manually before it will function correctly.</p>
<p>rclone.cfg is stored in <code>/storage/.config/rclone/rclone.conf</code> and can be copied from another device but only after the destination device has booted into Jelos (so copy to secondary sd, boot device, launch 351files, copy from there to proper path above)</p>
<h3 id="setup-rclone">Setup Rclone<a class="headerlink" href="#setup-rclone" title="Permanent link"></a></h3>
<h4 id="credentialed-access">Credentialed Access<a class="headerlink" href="#credentialed-access" title="Permanent link"></a></h4>
<p>To set up rclone, open an ssh connection to your handheld using PowerShell ssh, putty, or ssh on Linux and Mac.
* Username: root (all lower case!)
* Password: (To get the root password, press Start, then Select System Settings.)
* Connection: (Your device, example RG552 or RG351MP.)</p>
<h4 id="example-using-powershell-ssh-linux-or-macos">Example using PowerShell ssh, Linux, or macOS:<a class="headerlink" href="#example-using-powershell-ssh-linux-or-macos" title="Permanent link"></a></h4>
<p><code>ssh root@RG552</code></p>
<h4 id="setting-up-rclone">Setting up Rclone<a class="headerlink" href="#setting-up-rclone" title="Permanent link"></a></h4>
<p>Now that you're connected you will need to configure Rclone. This process is menu driven, but also requires steps on your PC. To complete configuration of Rclone, run <code>rclone config</code> in your ssh session and then follow the provider documentation and headless configuration steps to configure it for your cloud provider of choice.</p>
<ul>
<li><a href="https://rclone.org/#providers">Rclone Provider Documentation</a></li>
<li><a href="https://rclone.org/remote_setup/">Rclone Headless Configuration</a></li>
</ul>
<p><a href="https://github.com/JustEnoughLinuxOS/distribution/documentation/SETUP_CLOUD_DRIVES.md#setting-up-rclone-detailed-example">See detailed setup example below</a> </p>
<h3 id="using-rclone">Using Rclone<a class="headerlink" href="#using-rclone" title="Permanent link"></a></h3>
<p>In JELOS you are able to mount your cloud drive like any other storage device, as long as you are network connected. To mount your cloud drive, press Start, select Network Settings, and then select the Mount Cloud Drive option. This drive is available on /storage/cloud by default, and is accessible from ssh and from 351Files. To mount the cloud drive over ssh use <code>rclonectl mount</code> to mount the drive and <code>rclonectl unmount</code> to unmount it.</p>
<blockquote>
<p>Note: Mounting the cloud drive is not persistent, you will need to select it before use.</p>
</blockquote>
<h3 id="using-cloud-backup-and-restore">Using Cloud Backup and Restore<a class="headerlink" href="#using-cloud-backup-and-restore" title="Permanent link"></a></h3>
<p>In the tools menu you will find two options, <code>Cloud Backup</code>, and <code>Cloud Restore</code>. These tools will back up or restore your save games and save states by connecting your cloud drive and copying them. These tools are configurable by editing /storage/.config/rsync.conf and /storage/.config/rsync-rules.conf.</p>
<blockquote>
<p>Note: The cloud backup and restore tools are destructive, but they do not delete data by default. Deletes are left to the user to manage.</p>
</blockquote>
<h4 id="rsyncconf">rsync.conf<a class="headerlink" href="#rsyncconf" title="Permanent link"></a></h4>
<p>The rsync.conf configuration file contains parameters used by the cloud tools that provide the path for your cloud drive to be mounted, the path to sync the data from, the destination for the sync and rsync options for cloud backup and restore. The configuration is user editable, and the defaults are as follows:
<div class="language-text highlight"><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a>### This is the path where your cloud volume is mounted.
</span><span id="__span-0-2"><a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a>MOUNTPATH=&quot;/storage/cloud&quot;
</span><span id="__span-0-3"><a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a>
</span><span id="__span-0-4"><a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a>### This is the path to your game folder on your cloud drive.
</span><span id="__span-0-5"><a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a>SYNCPATH=&quot;GAMES&quot;
</span><span id="__span-0-6"><a id="__codelineno-0-6" name="__codelineno-0-6" href="#__codelineno-0-6"></a>
</span><span id="__span-0-7"><a id="__codelineno-0-7" name="__codelineno-0-7" href="#__codelineno-0-7"></a>### This is the path we are backup up from.
</span><span id="__span-0-8"><a id="__codelineno-0-8" name="__codelineno-0-8" href="#__codelineno-0-8"></a>BACKUPPATH=&quot;/storage/roms&quot;
</span><span id="__span-0-9"><a id="__codelineno-0-9" name="__codelineno-0-9" href="#__codelineno-0-9"></a>
</span><span id="__span-0-10"><a id="__codelineno-0-10" name="__codelineno-0-10" href="#__codelineno-0-10"></a>### This allows changes to the rsync options for cloud_backup (pending stable release)
</span><span id="__span-0-11"><a id="__codelineno-0-11" name="__codelineno-0-11" href="#__codelineno-0-11"></a>RSYNCOPTSBACKUP=&quot;-raiv --prune-empty-dirs&quot;
</span><span id="__span-0-12"><a id="__codelineno-0-12" name="__codelineno-0-12" href="#__codelineno-0-12"></a>
</span><span id="__span-0-13"><a id="__codelineno-0-13" name="__codelineno-0-13" href="#__codelineno-0-13"></a>### This allows changes to the rsync options for cloud_restore (pending stable release)
</span><span id="__span-0-14"><a id="__codelineno-0-14" name="__codelineno-0-14" href="#__codelineno-0-14"></a>RSYNCOPTSRESTORE=&quot;-raiv&quot;
</span></code></pre></div></p>
<h4 id="rsync-rulesconf">rsync-rules.conf<a class="headerlink" href="#rsync-rulesconf" title="Permanent link"></a></h4>
<p>The rsync-rules.conf configuration file contains the pattern used by rsync to know which files to backup and restore. This file is user editable. The default settings are as follows:
<div class="language-text highlight"><pre><span></span><code><span id="__span-1-1"><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a># This is a required rule for subdirectory matching.
</span><span id="__span-1-2"><a id="__codelineno-1-2" name="__codelineno-1-2" href="#__codelineno-1-2"></a>+ */
</span><span id="__span-1-3"><a id="__codelineno-1-3" name="__codelineno-1-3" href="#__codelineno-1-3"></a>
</span><span id="__span-1-4"><a id="__codelineno-1-4" name="__codelineno-1-4" href="#__codelineno-1-4"></a>### Do not include BIOS.
</span><span id="__span-1-5"><a id="__codelineno-1-5" name="__codelineno-1-5" href="#__codelineno-1-5"></a>- bios/**
</span><span id="__span-1-6"><a id="__codelineno-1-6" name="__codelineno-1-6" href="#__codelineno-1-6"></a>
</span><span id="__span-1-7"><a id="__codelineno-1-7" name="__codelineno-1-7" href="#__codelineno-1-7"></a>### Retroarch saves
</span><span id="__span-1-8"><a id="__codelineno-1-8" name="__codelineno-1-8" href="#__codelineno-1-8"></a>+ *.sav
</span><span id="__span-1-9"><a id="__codelineno-1-9" name="__codelineno-1-9" href="#__codelineno-1-9"></a>+ *.srm
</span><span id="__span-1-10"><a id="__codelineno-1-10" name="__codelineno-1-10" href="#__codelineno-1-10"></a>+ *.auto
</span><span id="__span-1-11"><a id="__codelineno-1-11" name="__codelineno-1-11" href="#__codelineno-1-11"></a>+ *.state*
</span><span id="__span-1-12"><a id="__codelineno-1-12" name="__codelineno-1-12" href="#__codelineno-1-12"></a>
</span><span id="__span-1-13"><a id="__codelineno-1-13" name="__codelineno-1-13" href="#__codelineno-1-13"></a>### This is a required rule to exclude all other file types.
</span><span id="__span-1-14"><a id="__codelineno-1-14" name="__codelineno-1-14" href="#__codelineno-1-14"></a>- *
</span></code></pre></div></p>
<p>To create custom match rules, use - to exclude and + to include. Use caution as a mismatched rule can copy every single file from the source path or no files at all.</p>
<h3 id="detailed-example">Detailed Example<a class="headerlink" href="#detailed-example" title="Permanent link"></a></h3>
<p>This example configures rclone to use Dropbox</p>
<p>Rclone provide detailed examples for connecting to all supported cloud servers, including <a href="https://rclone.org/dropbox/">Rclone Dropbox example</a></p>
<h4 id="configure-cloud-backup-connection-on-jelos-device-using-ssh">Configure cloud backup connection on JELOS device using ssh<a class="headerlink" href="#configure-cloud-backup-connection-on-jelos-device-using-ssh" title="Permanent link"></a></h4>
<p>From the terminal command line type
<div class="language-text highlight"><pre><span></span><code><span id="__span-2-1"><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a>rclone version
</span></code></pre></div></p>
<p>and press <code>enter</code></p>
<p>Note the version number, which is required for a later step</p>
<p><a class="glightbox" href="https://raw.githubusercontent.com/JustEnoughLinuxOS/distribution/gh-pages/images/ssh%20rclone%20version.png" data-type="image" data-width="auto" data-height="auto" data-desc-position="bottom"><img alt="Rclone version installed in JELOS" src="https://raw.githubusercontent.com/JustEnoughLinuxOS/distribution/gh-pages/images/ssh%20rclone%20version.png" /></a></p>
<p>Now type
<div class="language-text highlight"><pre><span></span><code><span id="__span-3-1"><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a>rclone config
</span></code></pre></div></p>
<p>and press <code>enter</code></p>
<p>type <code>n</code> to create a new remote site</p>
<p>type in a name for the site (use a name without spaces), then press <code>enter</code></p>
<blockquote>
<p>rclone suggest using <code>remote</code>, but in this example the remote site is called <code>rg503</code></p>
<p>dont include spaces in the sites name. Rclone does allow names that include spaces, but rsync will fail if a site name with spaces is used in the cloud backup script.</p>
</blockquote>
<p><a class="glightbox" href="https://raw.githubusercontent.com/JustEnoughLinuxOS/distribution/gh-pages/images/ssh%20rclone%20config.png" data-type="image" data-width="auto" data-height="auto" data-desc-position="bottom"><img alt="Type: rclone config" src="https://raw.githubusercontent.com/JustEnoughLinuxOS/distribution/gh-pages/images/ssh%20rclone%20config.png" /></a></p>
<p>Choose from the list of cloud providers that is displayed. For Dropbox, type <code>12</code> and <code>enter</code> in this example</p>
<p><a class="glightbox" href="https://raw.githubusercontent.com/JustEnoughLinuxOS/distribution/gh-pages/images/ssh%20rclone%20config%20select%20dropbox.png" data-type="image" data-width="auto" data-height="auto" data-desc-position="bottom"><img alt="Select cloud provider" src="https://raw.githubusercontent.com/JustEnoughLinuxOS/distribution/gh-pages/images/ssh%20rclone%20config%20select%20dropbox.png" /></a></p>
<p><em>The next options displayed are slightly different from the Dropbox example on rclone website</em></p>
<p>For client_id and client_secret press <code>enter</code> and <code>enter</code> to skip, or read <a href="https://rclone.org/dropbox/">Rclone Dropbox example</a> for details about setting up your own App ID (rclone App ID is shared with all rclone users by default)</p>
<p>Type <code>n</code> to skip editing the advanced config</p>
<p><a class="glightbox" href="https://raw.githubusercontent.com/JustEnoughLinuxOS/distribution/gh-pages/images/ssh%20rclone%20config%20client%20id.png" data-type="image" data-width="auto" data-height="auto" data-desc-position="bottom"><img alt="Skip Client ID, secret and advanced config" src="https://raw.githubusercontent.com/JustEnoughLinuxOS/distribution/gh-pages/images/ssh%20rclone%20config%20client%20id.png" /></a></p>
<p>For auto config, select <code>n</code> for remote or headless machine (i.e. JELOS device that doesn't have a web browser)</p>
<p><a class="glightbox" href="https://raw.githubusercontent.com/JustEnoughLinuxOS/distribution/gh-pages/images/ssh%20rclone%20config%20remote%20machine.png" data-type="image" data-width="auto" data-height="auto" data-desc-position="bottom"><img alt="No auto-config for remote or headless machine" src="https://raw.githubusercontent.com/JustEnoughLinuxOS/distribution/gh-pages/images/ssh%20rclone%20config%20remote%20machine.png" /></a></p>
<p>Instructions are provided explaining how to authorize the connection from the remote device to the cloud service</p>
<p><a class="glightbox" href="https://raw.githubusercontent.com/JustEnoughLinuxOS/distribution/gh-pages/images/ssh%20rclone%20config%20authorize%20and%20paste%20token.png" data-type="image" data-width="auto" data-height="auto" data-desc-position="bottom"><img alt="Device with web-browser is required for authorization" src="https://raw.githubusercontent.com/JustEnoughLinuxOS/distribution/gh-pages/images/ssh%20rclone%20config%20authorize%20and%20paste%20token.png" /></a></p>
<h4 id="install-and-run-rclone-on-machine-with-a-web-browser-to-authorize-connection-to-cloud-service">Install and run rclone on machine with a web-browser to authorize connection to cloud service<a class="headerlink" href="#install-and-run-rclone-on-machine-with-a-web-browser-to-authorize-connection-to-cloud-service" title="Permanent link"></a></h4>
<p>Download rclone on a device with a web-browser so rclone can use a web-page to authorize the connection by allowing you to login with your authorization credentials for the cloud service</p>
<p><a href="https://downloads.rclone.org/">Rclone download server</a></p>
<blockquote>
<p>Download the same version of rclone as is installed on JELOS device, as noted above.</p>
</blockquote>
<p>Use terminal window (e.g. <code>CMD</code> on Windows) to browse to rclone executable and run </p>
<div class="language-text highlight"><pre><span></span><code><span id="__span-4-1"><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a>rclone authorize dropbox
</span></code></pre></div>
<p>and press <code>enter</code></p>
<p><a class="glightbox" href="https://raw.githubusercontent.com/JustEnoughLinuxOS/distribution/gh-pages/images/rclone%20authorise%20dropbox.png" data-type="image" data-width="auto" data-height="auto" data-desc-position="bottom"><img alt="Authorize dropbox for rclone" src="https://raw.githubusercontent.com/JustEnoughLinuxOS/distribution/gh-pages/images/rclone%20authorise%20dropbox.png" /></a></p>
<p>Rclone will launch a web page to enable login to the cloud service and authorization of the connection</p>
<p><a class="glightbox" href="https://raw.githubusercontent.com/JustEnoughLinuxOS/distribution/gh-pages/images/rclone%20authorise%20from%20pc.png" data-type="image" data-width="auto" data-height="auto" data-desc-position="bottom"><img alt="Authorize dropbox for rclone" src="https://raw.githubusercontent.com/JustEnoughLinuxOS/distribution/gh-pages/images/rclone%20authorise%20from%20pc.png" /></a></p>
<p>After successful authorization, the terminal window will display the authorization token that needs to be pasted into JELOS ssh</p>
<p><a class="glightbox" href="https://raw.githubusercontent.com/JustEnoughLinuxOS/distribution/gh-pages/images/rclone%20authorise%20login%20then%20paste%20into%20remote%20ssh.png" data-type="image" data-width="auto" data-height="auto" data-desc-position="bottom"><img alt="Copy authorization token" src="https://raw.githubusercontent.com/JustEnoughLinuxOS/distribution/gh-pages/images/rclone%20authorise%20login%20then%20paste%20into%20remote%20ssh.png" /></a></p>
<p>Copy the entire token</p>
<h4 id="update-jelos-with-authorization-token">Update JELOS with authorization token<a class="headerlink" href="#update-jelos-with-authorization-token" title="Permanent link"></a></h4>
<p>Paste authorization token into JELOS command prompt, then type <code>y</code> to confirm that the remote connection is correct</p>
<p><a class="glightbox" href="https://raw.githubusercontent.com/JustEnoughLinuxOS/distribution/gh-pages/images/ssh%20rclone%20config%20authorize%20and%20paste%20token.png" data-type="image" data-width="auto" data-height="auto" data-desc-position="bottom"><img alt="Paste authorization token into ssh" src="https://raw.githubusercontent.com/JustEnoughLinuxOS/distribution/gh-pages/images/ssh%20rclone%20config%20authorize%20and%20paste%20token.png" /></a></p>
<p>The connection is now configured and can be tested (<code>q</code> to quit rclone config)</p>
<p>Type
<div class="language-text highlight"><pre><span></span><code><span id="__span-5-1"><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a>rclone lsd rg503:
</span></code></pre></div></p>
<p>where <code>rg503</code> is the name of the remote connection (rclone example names the remote connection as <code>remote</code>)</p>
<blockquote>
<p><strong>don't forget to add <code>:</code> to the name of remote connection</strong></p>
</blockquote>
<p>The names of the top-level folders within Dropbox cloud service will be displayed</p>
<p><a class="glightbox" href="https://raw.githubusercontent.com/JustEnoughLinuxOS/distribution/gh-pages/images/ssh%20rclone%20list%20top-level%20directories%20on%20dropbox.png" data-type="image" data-width="auto" data-height="auto" data-desc-position="bottom"><img alt="Dropbox folder names are displayed" src="https://raw.githubusercontent.com/JustEnoughLinuxOS/distribution/gh-pages/images/ssh%20rclone%20list%20top-level%20directories%20on%20dropbox.png" /></a></p>
</article>
</div>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
<button type="button" class="md-top md-icon" data-md-component="top" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12Z"/></svg>
Back to top
</button>
</main>
<footer class="md-footer">
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
<div class="md-copyright__highlight">
Copyright Creative Commons Attribution-ShareAlike 4.0 International
</div>
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</a>
</div>
<div class="md-social">
<a href="https://github.com/JustEnoughLinuxOS/distribution" target="_blank" rel="noopener" title="github.com" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
</a>
<a href="https://discord.gg/seTxckZjJy" target="_blank" rel="noopener" title="discord.gg" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M524.531 69.836a1.5 1.5 0 0 0-.764-.7A485.065 485.065 0 0 0 404.081 32.03a1.816 1.816 0 0 0-1.923.91 337.461 337.461 0 0 0-14.9 30.6 447.848 447.848 0 0 0-134.426 0 309.541 309.541 0 0 0-15.135-30.6 1.89 1.89 0 0 0-1.924-.91 483.689 483.689 0 0 0-119.688 37.107 1.712 1.712 0 0 0-.788.676C39.068 183.651 18.186 294.69 28.43 404.354a2.016 2.016 0 0 0 .765 1.375 487.666 487.666 0 0 0 146.825 74.189 1.9 1.9 0 0 0 2.063-.676A348.2 348.2 0 0 0 208.12 430.4a1.86 1.86 0 0 0-1.019-2.588 321.173 321.173 0 0 1-45.868-21.853 1.885 1.885 0 0 1-.185-3.126 251.047 251.047 0 0 0 9.109-7.137 1.819 1.819 0 0 1 1.9-.256c96.229 43.917 200.41 43.917 295.5 0a1.812 1.812 0 0 1 1.924.233 234.533 234.533 0 0 0 9.132 7.16 1.884 1.884 0 0 1-.162 3.126 301.407 301.407 0 0 1-45.89 21.83 1.875 1.875 0 0 0-1 2.611 391.055 391.055 0 0 0 30.014 48.815 1.864 1.864 0 0 0 2.063.7A486.048 486.048 0 0 0 610.7 405.729a1.882 1.882 0 0 0 .765-1.352c12.264-126.783-20.532-236.912-86.934-334.541ZM222.491 337.58c-28.972 0-52.844-26.587-52.844-59.239s23.409-59.241 52.844-59.241c29.665 0 53.306 26.82 52.843 59.239 0 32.654-23.41 59.241-52.843 59.241Zm195.38 0c-28.971 0-52.843-26.587-52.843-59.239s23.409-59.241 52.843-59.241c29.667 0 53.307 26.82 52.844 59.239 0 32.654-23.177 59.241-52.844 59.241Z"/></svg>
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.top", "navigation.sections", "navigation.indexes", "toc.follow", "search.suggest", "content.tooltips", "content.code.copy", "content.code.annotate"], "search": "../../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../../assets/javascripts/bundle.c8d2eff1.min.js"></script>
<script>document$.subscribe(() => {const lightbox = GLightbox({"touchNavigation": true, "loop": false, "zoomable": true, "draggable": true, "openEffect": "zoom", "closeEffect": "zoom", "slideEffect": "slide"});})</script></body>
</html>