mirror of
https://github.com/marcriera/ddgo-controller-docs.git
synced 2025-04-20 02:29:29 +02:00
7 lines
No EOL
25 KiB
HTML
7 lines
No EOL
25 KiB
HTML
<!doctype html><html lang=en-us dir=ltr itemscope itemtype=http://schema.org/Article data-r-output-format=html><head><meta charset=utf-8><meta name=viewport content="height=device-height,width=device-width,initial-scale=1,minimum-scale=1"><meta name=generator content="Hugo 0.140.2"><meta name=generator content="Relearn 7.3.1"><meta name=description content="Internally, these controllers use the same protocol as a standard controller for the corresponding console and input is reported in the data bytes corresponding to buttons (where each bit reports the state of a single button). Only the regular physical buttons have dedicated bits for them; the handles combine three and four bits for the power notches and brake notches, respectively (you can find an example with the Nintendo 64 here)."><meta name=author content><meta name=twitter:card content="summary"><meta name=twitter:title content="Classic controllers - Technical details :: Densha de GO! controller documentation"><meta name=twitter:description content="Internally, these controllers use the same protocol as a standard controller for the corresponding console and input is reported in the data bytes corresponding to buttons (where each bit reports the state of a single button). Only the regular physical buttons have dedicated bits for them; the handles combine three and four bits for the power notches and brake notches, respectively (you can find an example with the Nintendo 64 here)."><meta property="og:url" content="https://marcriera.github.io/ddgo-controller-docs/controllers/classic/tech/index.html"><meta property="og:site_name" content="Densha de GO! controller documentation"><meta property="og:title" content="Classic controllers - Technical details :: Densha de GO! controller documentation"><meta property="og:description" content="Internally, these controllers use the same protocol as a standard controller for the corresponding console and input is reported in the data bytes corresponding to buttons (where each bit reports the state of a single button). Only the regular physical buttons have dedicated bits for them; the handles combine three and four bits for the power notches and brake notches, respectively (you can find an example with the Nintendo 64 here)."><meta property="og:locale" content="en_us"><meta property="og:type" content="article"><meta property="article:section" content="Controllers"><meta itemprop=name content="Classic controllers - Technical details :: Densha de GO! controller documentation"><meta itemprop=description content="Internally, these controllers use the same protocol as a standard controller for the corresponding console and input is reported in the data bytes corresponding to buttons (where each bit reports the state of a single button). Only the regular physical buttons have dedicated bits for them; the handles combine three and four bits for the power notches and brake notches, respectively (you can find an example with the Nintendo 64 here)."><meta itemprop=wordCount content="386"><title>Classic controllers - Technical details :: Densha de GO! controller documentation</title>
|
|
<link href=https://marcriera.github.io/ddgo-controller-docs/css/fontawesome-all.min.css?1735921884 rel=stylesheet media=print onload='this.media="all",this.onload=null'><noscript><link href=https://marcriera.github.io/ddgo-controller-docs/css/fontawesome-all.min.css?1735921884 rel=stylesheet></noscript><link href=https://marcriera.github.io/ddgo-controller-docs/css/auto-complete.css?1735921884 rel=stylesheet media=print onload='this.media="all",this.onload=null'><noscript><link href=https://marcriera.github.io/ddgo-controller-docs/css/auto-complete.css?1735921884 rel=stylesheet></noscript><link href=https://marcriera.github.io/ddgo-controller-docs/css/perfect-scrollbar.min.css?1735921884 rel=stylesheet><link href=https://marcriera.github.io/ddgo-controller-docs/css/theme.min.css?1735921884 rel=stylesheet><link href=https://marcriera.github.io/ddgo-controller-docs/css/format-html.min.css?1735921884 rel=stylesheet id=R-format-style><script>window.relearn=window.relearn||{},window.relearn.relBasePath="../../..",window.relearn.relBaseUri="../../..",window.relearn.absBaseUri="https://marcriera.github.io/ddgo-controller-docs",window.relearn.min=`.min`,window.relearn.disableAnchorCopy=!1,window.relearn.disableAnchorScrolling=!1,window.relearn.themevariants=["relearn-light","relearn-dark"],window.relearn.customvariantname="my-custom-variant",window.relearn.changeVariant=function(e){var t=document.documentElement.dataset.rThemeVariant;window.localStorage.setItem(window.relearn.absBaseUri+"/variant",e),document.documentElement.dataset.rThemeVariant=e,t!=e&&document.dispatchEvent(new CustomEvent("themeVariantLoaded",{detail:{variant:e,oldVariant:t}}))},window.relearn.markVariant=function(){var t=window.localStorage.getItem(window.relearn.absBaseUri+"/variant"),e=document.querySelector("#R-select-variant");e&&(e.value=t)},window.relearn.initVariant=function(){var e=window.localStorage.getItem(window.relearn.absBaseUri+"/variant")??"";e==window.relearn.customvariantname||(!e||!window.relearn.themevariants.includes(e))&&(e=window.relearn.themevariants[0],window.localStorage.setItem(window.relearn.absBaseUri+"/variant",e)),document.documentElement.dataset.rThemeVariant=e},window.relearn.initVariant(),window.relearn.markVariant(),window.T_Copy_to_clipboard=`Copy to clipboard`,window.T_Copied_to_clipboard=`Copied to clipboard!`,window.T_Copy_link_to_clipboard=`Copy link to clipboard`,window.T_Link_copied_to_clipboard=`Copied link to clipboard!`,window.T_Reset_view=`Reset view`,window.T_View_reset=`View reset!`,window.T_No_results_found=`No results found for "{0}"`,window.T_N_results_found=`{1} results found for "{0}"`</script><style type=text/css><!--general --> #body .flex-block-wrapper{max-width:100%;min-width:100%}.flex-block-wrapper table{overflow-x:auto;width:100%}<!--detail pages --> .datatable{table-layout:fixed;width:100%}.datatable .col-pic{width:20%}.datatable .col-headers{width:20%}.datatable .col-data{width:60%}.datatable img{max-height:180px}.compattable{table-layout:fixed;width:100%}.compattable .col-model{width:40%}.compattable .col-support{width:10%}.compattable .col-notes{width:50%}table #native{background-color:rgba(189,233,186,.35)}table #partial{background-color:rgba(255,215,140,.35)}</style></head><body class="mobile-support html" data-url=https://marcriera.github.io/ddgo-controller-docs/controllers/classic/tech/index.html><div id=R-body class=default-animation><div id=R-body-overlay></div><nav id=R-topbar><div class=topbar-wrapper><div class=topbar-sidebar-divider></div><div class="topbar-area topbar-area-start" data-area=start><div class="topbar-button topbar-button-sidebar" data-content-empty=disable data-width-s=show data-width-m=hide data-width-l=hide><button class=topbar-control onclick=toggleNav() type=button title="Menu (CTRL+ALT+n)"><i class="fa-fw fas fa-bars"></i></button></div><div class="topbar-button topbar-button-toc" data-content-empty=hide data-width-s=show data-width-m=show data-width-l=show><button class=topbar-control onclick=toggleTopbarFlyout(this) type=button title="Table of Contents (CTRL+ALT+t)"><i class="fa-fw fas fa-list-alt"></i></button><div class=topbar-content><div class=topbar-content-wrapper><nav class=TableOfContents><ul><li><a href=#power-handle-bit-usage>Power handle bit usage</a></li><li><a href=#brake-handle-bit-usage>Brake handle bit usage</a></li><li><a href=#button-mapping-to-a-standard-controller>Button mapping to a standard controller</a></li></ul></nav></div></div></div></div><ol class="topbar-breadcrumbs breadcrumbs highlightable" itemscope itemtype=http://schema.org/BreadcrumbList><li itemscope itemtype=https://schema.org/ListItem itemprop=itemListElement><a itemprop=item href=https://marcriera.github.io/ddgo-controller-docs/controllers/index.html><span itemprop=name>Controllers</span></a><meta itemprop=position content="1"> > </li><li itemscope itemtype=https://schema.org/ListItem itemprop=itemListElement><a itemprop=item href=https://marcriera.github.io/ddgo-controller-docs/controllers/classic/index.html><span itemprop=name>Classic consoles</span></a><meta itemprop=position content="2"> > </li><li itemscope itemtype=https://schema.org/ListItem itemprop=itemListElement><span itemprop=name>Classic controllers - Technical details</span><meta itemprop=position content="3"></li></ol><div class="topbar-area topbar-area-end" data-area=end><div class="topbar-button topbar-button-more" data-content-empty=hide data-width-s=show data-width-m=show data-width-l=show><button class=topbar-control onclick=toggleTopbarFlyout(this) type=button title=More><i class="fa-fw fas fa-ellipsis-v"></i></button><div class=topbar-content><div class=topbar-content-wrapper><div class="topbar-area topbar-area-more" data-area=more></div></div></div></div></div></div></nav><div id=R-main-overlay></div><main id=R-body-inner class="highlightable controllers" tabindex=-1><div class=flex-block-wrapper><article class=default><header class=headline></header><h1 id=classic-controllers---technical-details>Classic controllers - Technical details</h1><p>Internally, these controllers use the same protocol as a standard controller for the corresponding console and input is reported in the data bytes corresponding to buttons (where each bit reports the state of a single button). Only the regular physical buttons have dedicated bits for them; the handles combine three and four bits for the power notches and brake notches, respectively (you can find an example with the Nintendo 64 <a href=https://sites.google.com/site/consoleprotocols/home/nintendo-joy-bus-documentation/n64-specific/train-controller rel=external target=_blank>here</a>).</p><h2 id=power-handle-bit-usage>Power handle bit usage</h2><p>The power handle uses a combination of three bits (buttons) to represent each notch.</p><table><thead><tr><th style=text-align:center>Position</th><th style=text-align:center>POWER 1</th><th style=text-align:center>POWER 2</th><th style=text-align:center>POWER 3</th></tr></thead><tbody><tr><td style=text-align:center>N</td><td style=text-align:center>-</td><td style=text-align:center>X</td><td style=text-align:center>X</td></tr><tr><td style=text-align:center>P1</td><td style=text-align:center>X</td><td style=text-align:center>-</td><td style=text-align:center>X</td></tr><tr><td style=text-align:center>P2</td><td style=text-align:center>-</td><td style=text-align:center>-</td><td style=text-align:center>X</td></tr><tr><td style=text-align:center>P3</td><td style=text-align:center>X</td><td style=text-align:center>X</td><td style=text-align:center>-</td></tr><tr><td style=text-align:center>P4</td><td style=text-align:center>-</td><td style=text-align:center>X</td><td style=text-align:center>-</td></tr><tr><td style=text-align:center>P5</td><td style=text-align:center>X</td><td style=text-align:center>-</td><td style=text-align:center>-</td></tr><tr><td style=text-align:center>Transition</td><td style=text-align:center>-</td><td style=text-align:center>-</td><td style=text-align:center>-</td></tr></tbody></table><h2 id=brake-handle-bit-usage>Brake handle bit usage</h2><p>The brake handle uses a combination of four bits (buttons) to represent each notch.</p><table><thead><tr><th style=text-align:center>Position</th><th style=text-align:center>BRAKE 1</th><th style=text-align:center>BRAKE 2</th><th style=text-align:center>BRAKE 3</th><th style=text-align:center>BRAKE 4</th></tr></thead><tbody><tr><td style=text-align:center>Released</td><td style=text-align:center>-</td><td style=text-align:center>X</td><td style=text-align:center>X</td><td style=text-align:center>X</td></tr><tr><td style=text-align:center>B1</td><td style=text-align:center>X</td><td style=text-align:center>-</td><td style=text-align:center>X</td><td style=text-align:center>X</td></tr><tr><td style=text-align:center>B2</td><td style=text-align:center>-</td><td style=text-align:center>-</td><td style=text-align:center>X</td><td style=text-align:center>X</td></tr><tr><td style=text-align:center>B3</td><td style=text-align:center>X</td><td style=text-align:center>X</td><td style=text-align:center>-</td><td style=text-align:center>X</td></tr><tr><td style=text-align:center>B4</td><td style=text-align:center>-</td><td style=text-align:center>X</td><td style=text-align:center>-</td><td style=text-align:center>X</td></tr><tr><td style=text-align:center>B5</td><td style=text-align:center>X</td><td style=text-align:center>-</td><td style=text-align:center>-</td><td style=text-align:center>X</td></tr><tr><td style=text-align:center>B6</td><td style=text-align:center>-</td><td style=text-align:center>-</td><td style=text-align:center>-</td><td style=text-align:center>X</td></tr><tr><td style=text-align:center>B7</td><td style=text-align:center>X</td><td style=text-align:center>X</td><td style=text-align:center>X</td><td style=text-align:center>-</td></tr><tr><td style=text-align:center>B8</td><td style=text-align:center>-</td><td style=text-align:center>X</td><td style=text-align:center>X</td><td style=text-align:center>-</td></tr><tr><td style=text-align:center>Unmarked 1</td><td style=text-align:center>X</td><td style=text-align:center>-</td><td style=text-align:center>X</td><td style=text-align:center>-</td></tr><tr><td style=text-align:center>Unmarked 2</td><td style=text-align:center>-</td><td style=text-align:center>-</td><td style=text-align:center>X</td><td style=text-align:center>-</td></tr><tr><td style=text-align:center>Unmarked 3</td><td style=text-align:center>X</td><td style=text-align:center>X</td><td style=text-align:center>-</td><td style=text-align:center>-</td></tr><tr><td style=text-align:center>Unmarked 4</td><td style=text-align:center>-</td><td style=text-align:center>X</td><td style=text-align:center>-</td><td style=text-align:center>-</td></tr><tr><td style=text-align:center>Unmarked 5</td><td style=text-align:center>X</td><td style=text-align:center>-</td><td style=text-align:center>-</td><td style=text-align:center>-</td></tr><tr><td style=text-align:center>Emergency</td><td style=text-align:center>-</td><td style=text-align:center>-</td><td style=text-align:center>-</td><td style=text-align:center>-</td></tr><tr><td style=text-align:center>Transition</td><td style=text-align:center>X</td><td style=text-align:center>X</td><td style=text-align:center>X</td><td style=text-align:center>X</td></tr></tbody></table><p>The unmarked positions can be found between <strong>B8</strong> and <strong>Emergency</strong> and produce no click when moving the handle.</p><h2 id=button-mapping-to-a-standard-controller>Button mapping to a standard controller</h2><p>Because they use the same data bytes, the input between a Densha de GO! controller and a standard controller for each console can be matched as follows:</p><table><thead><tr><th style=text-align:center>Densha de GO!</th><th style=text-align:center>Nintendo 64</th><th style=text-align:center>Sony PlayStation 1</th><th style=text-align:center>Sega Dreamcast</th><th style=text-align:center>Sega Saturn</th></tr></thead><tbody><tr><td style=text-align:center>SELECT</td><td style=text-align:center>R</td><td style=text-align:center>SELECT</td><td style=text-align:center>D</td><td style=text-align:center>??</td></tr><tr><td style=text-align:center>START</td><td style=text-align:center>START</td><td style=text-align:center>START</td><td style=text-align:center>START</td><td style=text-align:center>START</td></tr><tr><td style=text-align:center>A</td><td style=text-align:center>B</td><td style=text-align:center>SQUARE</td><td style=text-align:center>A</td><td style=text-align:center>A</td></tr><tr><td style=text-align:center>B</td><td style=text-align:center>A</td><td style=text-align:center>CROSS</td><td style=text-align:center>??</td><td style=text-align:center>B</td></tr><tr><td style=text-align:center>C</td><td style=text-align:center>L</td><td style=text-align:center>CIRCLE</td><td style=text-align:center>C</td><td style=text-align:center>C</td></tr><tr><td style=text-align:center>POWER 1</td><td style=text-align:center>RIGHT</td><td style=text-align:center>TRIANGLE</td><td style=text-align:center>Z</td><td style=text-align:center>X</td></tr><tr><td style=text-align:center>POWER 2</td><td style=text-align:center>UP</td><td style=text-align:center>LEFT</td><td style=text-align:center>Y</td><td style=text-align:center>Y</td></tr><tr><td style=text-align:center>POWER 3</td><td style=text-align:center>Z</td><td style=text-align:center>RIGHT</td><td style=text-align:center>X</td><td style=text-align:center>Z</td></tr><tr><td style=text-align:center>BRAKE 1</td><td style=text-align:center>C RIGHT</td><td style=text-align:center>L1</td><td style=text-align:center>UP</td><td style=text-align:center>L</td></tr><tr><td style=text-align:center>BRAKE 2</td><td style=text-align:center>C LEFT</td><td style=text-align:center>L2</td><td style=text-align:center>DOWN</td><td style=text-align:center>R</td></tr><tr><td style=text-align:center>BRAKE 3</td><td style=text-align:center>C DOWN</td><td style=text-align:center>R1</td><td style=text-align:center>LEFT</td><td style=text-align:center>DOWN</td></tr><tr><td style=text-align:center>BRAKE 4</td><td style=text-align:center>C UP</td><td style=text-align:center>R2</td><td style=text-align:center>RIGHT</td><td style=text-align:center>LEFT</td></tr></tbody></table><p>This can be used with a USB adapter to read the controller input from a PC.</p><footer class=footline></footer></article></div></main></div><aside id=R-sidebar class=default-animation><div id=R-header-topbar class=default-animation></div><div id=R-header-wrapper class=default-animation><div id=R-header class=default-animation><style>a#logo{color:#282828;color:var(--MENU-SECTIONS-BG-color);font-family:work sans,helvetica,tahoma,geneva,arial,sans-serif;font-size:20px;font-weight:400;max-width:60%;text-transform:uppercase;width:60%;margin-left:-10px}a#logo:hover{color:#282828;color:var(--MENU-SECTIONS-BG-color)}@media only all and (max-width:59.938em){a#logo{font-size:15px;margin-top:-3px}}@media all and (-ms-high-contrast:none){a#logo{margin-top:-58px}}</style><a id=logo href=https://marcriera.github.io/ddgo-controller-docs/><img src=https://marcriera.github.io/ddgo-controller-docs/images/logo_big.png><br>controller documentation</a></div></div><div id=R-homelinks class=default-animation><hr class=padding></div><div id=R-content-wrapper class=highlightable><div id=R-shortcutmenu-home class=R-sidebarmenu><ul class="enlarge morespace collapsible-menu"><li class=parent data-nav-id=/controllers/index.html><a class=padding href=https://marcriera.github.io/ddgo-controller-docs/controllers/index.html>Controllers</a><ul id=R-subsections-9c8e4e9727e93b008bd76782f7080a70 class=collapsible-menu><li class=parent data-nav-id=/controllers/classic/index.html><a class=padding href=https://marcriera.github.io/ddgo-controller-docs/controllers/classic/index.html>Classic consoles</a><ul id=R-subsections-546db4a91ccdc03de8c5a3d2fef05a12 class=collapsible-menu><li class="active hidden" data-nav-id=/controllers/classic/tech/index.html><a class=padding href=https://marcriera.github.io/ddgo-controller-docs/controllers/classic/tech/index.html>Classic controllers - Technical details</a></li><li data-nav-id=/controllers/classic/tcpp20002/index.html><a class=padding href=https://marcriera.github.io/ddgo-controller-docs/controllers/classic/tcpp20002/index.html>Mamecon (Sony PlayStation)</a></li><li data-nav-id=/controllers/classic/tcpp20001/index.html><a class=padding href=https://marcriera.github.io/ddgo-controller-docs/controllers/classic/tcpp20001/index.html>One handle controller (Sony PlayStation)</a></li><li data-nav-id=/controllers/classic/tcpp20003/index.html><a class=padding href=https://marcriera.github.io/ddgo-controller-docs/controllers/classic/tcpp20003/index.html>Two handle controller (Nintendo 64)</a></li><li data-nav-id=/controllers/classic/tcpp20004/index.html><a class=padding href=https://marcriera.github.io/ddgo-controller-docs/controllers/classic/tcpp20004/index.html>Two handle controller (Sega Dreamcast)</a></li><li data-nav-id=/controllers/classic/tc5175290/index.html><a class=padding href=https://marcriera.github.io/ddgo-controller-docs/controllers/classic/tc5175290/index.html>Two handle controller (Sega Saturn)</a></li><li data-nav-id=/controllers/classic/slph00051/index.html><a class=padding href=https://marcriera.github.io/ddgo-controller-docs/controllers/classic/slph00051/index.html>Two handle controller (Sony PlayStation)</a></li></ul></li><li data-nav-id=/controllers/gameport/index.html><a class=padding href=https://marcriera.github.io/ddgo-controller-docs/controllers/gameport/index.html>Game port</a><ul id=R-subsections-0350c4e43859ccf5b09aea293a745dd7 class=collapsible-menu></ul></li><li data-nav-id=/controllers/wii/index.html><a class=padding href=https://marcriera.github.io/ddgo-controller-docs/controllers/wii/index.html>Nintendo Wii</a><ul id=R-subsections-c2b49f8a4e3f416081916b087b266395 class=collapsible-menu></ul></li><li data-nav-id=/controllers/serial/index.html><a class=padding href=https://marcriera.github.io/ddgo-controller-docs/controllers/serial/index.html>Serial port</a><ul id=R-subsections-96c5a2a0eb86bb379262612eeef3c218 class=collapsible-menu></ul></li><li data-nav-id=/controllers/standalone/index.html><a class=padding href=https://marcriera.github.io/ddgo-controller-docs/controllers/standalone/index.html>Standalone</a><ul id=R-subsections-19e06109004b47d068ad8e1642d86d43 class=collapsible-menu></ul></li><li data-nav-id=/controllers/usb/index.html><a class=padding href=https://marcriera.github.io/ddgo-controller-docs/controllers/usb/index.html>USB</a><ul id=R-subsections-abbbb8eae2a12314c4c27d105f9b2206 class=collapsible-menu></ul></li></ul></li><li data-nav-id=/software/index.html><a class=padding href=https://marcriera.github.io/ddgo-controller-docs/software/index.html>Densha de GO! series</a><ul id=R-subsections-3cdb59a63a3cd12f868155fa9018f956 class=collapsible-menu></ul></li><li data-nav-id=/software_ts/index.html><a class=padding href=https://marcriera.github.io/ddgo-controller-docs/software_ts/index.html>Train Simulator series</a><ul id=R-subsections-5c24038ffa8f4f3d0af9f58ceddbdef6 class=collapsible-menu></ul></li><li data-nav-id=/software_other/index.html><a class=padding href=https://marcriera.github.io/ddgo-controller-docs/software_other/index.html>Other software</a><ul id=R-subsections-164410091153d7ae6328b9e7309f955b class=collapsible-menu></ul></li><li data-nav-id=/adapters/index.html><a class=padding href=https://marcriera.github.io/ddgo-controller-docs/adapters/index.html>Adapters and hacks</a><ul id=R-subsections-0631b6d8a62fdffe56164fc0b145d368 class=collapsible-menu></ul></li></ul></div><div id=R-shortcutmenu-shortcuts class=R-sidebarmenu><ul class="space collapsible-menu"><li data-nav-id=/references><a class=padding href=https://marcriera.github.io/ddgo-controller-docs/references><i class='fas fa-fw fa-bookmark'></i> References</a></li><li data-nav-id=/acknowledgements><a class=padding href=https://marcriera.github.io/ddgo-controller-docs/acknowledgements><i class='fas fa-fw fa-bullhorn'></i> Acknowledgements</a></li><li data-nav-id=https://github.com/MarcRiera/ddgo-controller-docs><a class=padding href=https://github.com/MarcRiera/ddgo-controller-docs target=_blank><i class='fab fa-fw fa-github'></i> GitHub repository</a></li></ul></div><div class="padding footermargin footerLangSwitch footerVariantSwitch footerVisitedLinks footerFooter showVariantSwitch showFooter"></div><div id=R-menu-footer><hr class="padding default-animation footerLangSwitch footerVariantSwitch footerVisitedLinks footerFooter showVariantSwitch showFooter"><div id=R-prefooter class="footerLangSwitch footerVariantSwitch footerVisitedLinks showVariantSwitch"><ul><li id=R-select-language-container class=footerLangSwitch><div class="padding menu-control"><i class="fa-fw fas fa-language"></i>
|
|
<span> </span><div class=control-style><label class=a11y-only for=R-select-language>Language</label>
|
|
<select id=R-select-language onchange="location=this.querySelector(this.value).dataset.url"><option id=R-select-language-en value=#R-select-language-en data-url=https://marcriera.github.io/ddgo-controller-docs/controllers/classic/tech/index.html lang=en-us selected></option></select></div><div class=clear></div></div></li><li id=R-select-variant-container class="footerVariantSwitch showVariantSwitch"><div class="padding menu-control"><i class="fa-fw fas fa-paint-brush"></i>
|
|
<span> </span><div class=control-style><label class=a11y-only for=R-select-variant>Theme</label>
|
|
<select id=R-select-variant onchange=window.relearn.changeVariant(this.value)><option id=R-select-variant-relearn-light value=relearn-light selected>Relearn Light</option><option id=R-select-variant-relearn-dark value=relearn-dark>Relearn Dark</option></select></div><div class=clear></div></div><script>window.relearn.markVariant()</script></li><li class=footerVisitedLinks><div class="padding menu-control"><i class="fa-fw fas fa-history"></i>
|
|
<span> </span><div class=control-style><button onclick=clearHistory()>Clear History</button></div><div class=clear></div></div></li></ul></div><div id=R-footer class="footerFooter showFooter"><p>Built with <a href=https://github.com/McShelby/hugo-theme-relearn title=love><i class="fas fa-heart"></i></a> by <a href=https://gohugo.io/>Hugo</a></p></div></div></div></aside><script src=https://marcriera.github.io/ddgo-controller-docs/js/clipboard.min.js?1735921884 defer></script><script src=https://marcriera.github.io/ddgo-controller-docs/js/perfect-scrollbar.min.js?1735921884 defer></script><script src=https://marcriera.github.io/ddgo-controller-docs/js/theme.js?1735921884 defer></script></body></html> |