mirror of
https://github.com/marcriera/ddgo-controller-docs.git
synced 2025-04-18 09:39:28 +02:00
119 lines
No EOL
25 KiB
HTML
119 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="Overview While Densha de GO! 3 and Densha de GO! Shinkansen officially support the original (non-USB) PlayStation controllers, other games are only compatible with USB controllers. Via cheat codes, it is possible to use the original PlayStation controllers on real hardware, either with retail discs or via OPL.
|
|
The codes emulate a Type 2 controller. You will need to connect the controller as follows:
|
|
Port 1: Dualshock or Dualshock 2 (D-pad, SELECT) Port 2: PlayStation controller (handles and buttons, SELECT is mapped to D) Note Other controllers may be used like this with an adapter (Titan One/Two + Brook/PADEMU). In this case, buttons are not remapped and the Dualshock on port 1 is not needed. More information"><meta name=author content><meta name=twitter:card content="summary"><meta name=twitter:title content="PlayStation 2 cheat codes :: Densha de GO! controller documentation"><meta name=twitter:description content="Overview While Densha de GO! 3 and Densha de GO! Shinkansen officially support the original (non-USB) PlayStation controllers, other games are only compatible with USB controllers. Via cheat codes, it is possible to use the original PlayStation controllers on real hardware, either with retail discs or via OPL.
|
|
The codes emulate a Type 2 controller. You will need to connect the controller as follows:
|
|
Port 1: Dualshock or Dualshock 2 (D-pad, SELECT) Port 2: PlayStation controller (handles and buttons, SELECT is mapped to D) Note Other controllers may be used like this with an adapter (Titan One/Two + Brook/PADEMU). In this case, buttons are not remapped and the Dualshock on port 1 is not needed. More information"><meta property="og:url" content="https://marcriera.github.io/ddgo-controller-docs/adapters/cheats/index.html"><meta property="og:site_name" content="Densha de GO! controller documentation"><meta property="og:title" content="PlayStation 2 cheat codes :: Densha de GO! controller documentation"><meta property="og:description" content="Overview While Densha de GO! 3 and Densha de GO! Shinkansen officially support the original (non-USB) PlayStation controllers, other games are only compatible with USB controllers. Via cheat codes, it is possible to use the original PlayStation controllers on real hardware, either with retail discs or via OPL.
|
|
The codes emulate a Type 2 controller. You will need to connect the controller as follows:
|
|
Port 1: Dualshock or Dualshock 2 (D-pad, SELECT) Port 2: PlayStation controller (handles and buttons, SELECT is mapped to D) Note Other controllers may be used like this with an adapter (Titan One/Two + Brook/PADEMU). In this case, buttons are not remapped and the Dualshock on port 1 is not needed. More information"><meta property="og:locale" content="en_us"><meta property="og:type" content="website"><meta itemprop=name content="PlayStation 2 cheat codes :: Densha de GO! controller documentation"><meta itemprop=description content="Overview While Densha de GO! 3 and Densha de GO! Shinkansen officially support the original (non-USB) PlayStation controllers, other games are only compatible with USB controllers. Via cheat codes, it is possible to use the original PlayStation controllers on real hardware, either with retail discs or via OPL.
|
|
The codes emulate a Type 2 controller. You will need to connect the controller as follows:
|
|
Port 1: Dualshock or Dualshock 2 (D-pad, SELECT) Port 2: PlayStation controller (handles and buttons, SELECT is mapped to D) Note Other controllers may be used like this with an adapter (Titan One/Two + Brook/PADEMU). In this case, buttons are not remapped and the Dualshock on port 1 is not needed. More information"><meta itemprop=wordCount content="861"><title>PlayStation 2 cheat codes :: Densha de GO! controller documentation</title>
|
|
<link href=https://marcriera.github.io/ddgo-controller-docs/adapters/cheats/index.xml rel=alternate type=application/rss+xml title="PlayStation 2 cheat codes :: Densha de GO! controller documentation"><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/adapters/cheats/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=#overview>Overview</a></li><li><a href=#technical-description>Technical description</a><ul><li><a href=#memory-addresses>Memory addresses</a></li></ul></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/adapters/index.html><span itemprop=name>Adapters and hacks</span></a><meta itemprop=position content="1"> > </li><li itemscope itemtype=https://schema.org/ListItem itemprop=itemListElement><span itemprop=name>PlayStation 2 cheat codes</span><meta itemprop=position content="2"></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 adapters" tabindex=-1><div class=flex-block-wrapper><article class=default><header class=headline></header><h1 id=playstation-2-cheat-codes>PlayStation 2 cheat codes</h1><h2 id=overview>Overview</h2><p>While <strong>Densha de GO! 3</strong> and <strong>Densha de GO! Shinkansen</strong> officially support the original (non-USB) PlayStation controllers, other games are only compatible with USB controllers. Via cheat codes, it is possible to use the original PlayStation controllers on real hardware, either with retail discs or via OPL.</p><p>The codes emulate a Type 2 controller. You will need to connect the controller as follows:</p><ul><li>Port 1: Dualshock or Dualshock 2 (D-pad, <strong>SELECT</strong>)</li><li>Port 2: PlayStation controller (handles and buttons, <strong>SELECT</strong> is mapped to <strong>D</strong>)</li></ul><details open class="box cstyle notices note"><summary class=box-label tabindex=-1><i class="fa-fw fas fa-exclamation-circle"></i>
|
|
Note</summary><div class=box-content><p>Other controllers may be used like this with an adapter (Titan One/Two + Brook/PADEMU). In this case, buttons are not remapped and the Dualshock on port 1 is not needed. <a href=https://github.com/MarcRiera/ddgo-scripts/tree/main/Densha%20de%20GO!%20(PS1-PS2) rel=external target=_blank>More information</a></p></div></details><p>Each game requires a specific cheat code:</p><ul><li><a href=https://marcriera.github.io/ddgo-controller-docs/ddgo-controller-docs/adapters/cheats/controller-cheat_ryojouhen.txt>Densha de GO! Ryojouhen</a></li><li><a href=https://marcriera.github.io/ddgo-controller-docs/ddgo-controller-docs/adapters/cheats/controller-cheat_pro2.txt>Densha de GO! Professional 2</a></li><li><a href=https://marcriera.github.io/ddgo-controller-docs/ddgo-controller-docs/adapters/cheats/controller-cheat_pro2best.txt>Densha de GO! Professional 2 (Taito Best)</a></li><li><a href=https://marcriera.github.io/ddgo-controller-docs/ddgo-controller-docs/adapters/cheats/controller-cheat_final.txt>Densha de GO! Final</a></li></ul><p>There are also cheat codes available for games in the <strong>Train Simulator</strong> series, emulating a Multi Train Controller (MTC):</p><ul><li><a href=https://marcriera.github.io/ddgo-controller-docs/ddgo-controller-docs/adapters/cheats/controller-cheat_midosuji.txt>Train Simulator: Midosuji Line</a></li><li><a href=https://marcriera.github.io/ddgo-controller-docs/ddgo-controller-docs/adapters/cheats/controller-cheat_tsddgo.txt>Train Simulator + Densha de GO!</a></li></ul><p>For retail discs, the codes can be loaded with <a href=https://github.com/mlafeldt/ps2rd rel=external target=_blank>ps2rd</a> or <a href=https://github.com/root670/CheatDevicePS2 rel=external target=_blank>Cheat Device</a>. If you are using OPL, it already includes ps2rd and you just need to copy the codes and enable cheats.</p><h2 id=technical-description>Technical description</h2><p>These cheat codes have become possible after disassembling and inspecting each game with <a href=https://ghidra-sre.org/ rel=external target=_blank>Ghidra</a> and the <a href=https://github.com/beardypig/ghidra-emotionengine rel=external target=_blank>ghidra-emotionengine</a> plugin. The format of cheat codes is described <a href=https://github.com/root670/CheatDevicePS2/wiki/Code-Types rel=external target=_blank>here</a>.</p><p>Here you can find a commented version of the cheat code for <em><strong>Densha de GO! Professional 2 (Taito Best)</strong></em>. Input data is copied to 0xFE000 (two bytes for button data and one byte for D-pad data) before processing. Simulated controller data is first written to 0xFE004 before being copied all at once to the final location in memory where the game expects USB input data.</p><div class="highlight wrap-code"><pre tabindex=0><code>202D3CAC 00000000 // By default, set number of connected USB devices to 0
|
|
D02DBA32 5A010001 // If there's a controller connected to P2, run the following 0x5A lines (everything)
|
|
502DB9C2 00000002 // Copy button data to 0xFE000
|
|
000FE000 00000000
|
|
D00FE000 57400050 // If the controller in P2 has UP+DOWN pressed, run the following 0x57 lines (everything)
|
|
203790F0 40000202 // Set USB controller model to Type 2
|
|
202D3CAC 00000001 // Set number of connected USB devices to 1
|
|
|
|
// Remapping
|
|
D02DB9C1 07010041 // If the controller in P2 is a digital gamepad (PS1 mascon), run the following 0x7 lines
|
|
D00FE000 01400001 // Remap SELECT to L3 (for use as "D")
|
|
700FE000 00500002
|
|
700FE000 00100001 // Clear SELECT
|
|
D02DBAC2 01400001 // Remap P1 SELECT to SELECT
|
|
700FE000 00500001
|
|
502DBAC2 00000001 // Remap P1 D-pad to D-pad
|
|
000FE002 00000000
|
|
D02DB9C1 09010073 // If the controller in P2 is a Dualshock (mascon connected via adapter or PADEMU), run the following 0x9 lines
|
|
000FE002 000000FF // Clear D-pad data
|
|
D02DB9C6 01010000 // LEFT
|
|
700FE002 00400080
|
|
D02DB9C6 010100FF // RIGHT
|
|
700FE002 00400020
|
|
D02DB9C7 01010000 // UP
|
|
700FE002 00400010
|
|
D02DB9C7 010100FF // DOWN
|
|
700FE002 00400040
|
|
|
|
// Buttons
|
|
2012BDC0 34420000 // ASM patch (disables game function that reads input from P2)
|
|
000FE008 00000000 // Clear button data for Type 2 controller
|
|
D00FE000 01408000 // A
|
|
000FE008 00000002
|
|
D00FE000 01404000 // B
|
|
000FE008 00000001
|
|
D00FE000 01402000 // C
|
|
000FE008 00000004
|
|
D00FE000 01400002 // D (L3)
|
|
000FE008 00000008
|
|
D00FE000 01400008 // START
|
|
000FE008 00000020
|
|
D00FE000 01400001 // SELECT
|
|
000FE008 00000010
|
|
|
|
// D-Pad
|
|
D00FE002 010100EF // N
|
|
000FE007 00000000
|
|
D00FE002 010100CF // NE
|
|
000FE007 00000001
|
|
D00FE002 010100DF // E
|
|
000FE007 00000002
|
|
D00FE002 0101009F // SE
|
|
000FE007 00000003
|
|
D00FE002 010100BF // S
|
|
000FE007 00000004
|
|
D00FE002 0101003F // SW
|
|
000FE007 00000005
|
|
D00FE002 0101007F // W
|
|
000FE007 00000006
|
|
D00FE002 0101006F // NW
|
|
000FE007 00000007
|
|
D00FE002 010100FF // CENTER
|
|
000FE007 00000008
|
|
|
|
// Power handle
|
|
D00FE000 01401000 // P5
|
|
000FE005 00000005
|
|
D00FE000 01400080 // P4
|
|
000FE005 00000004
|
|
D00FE000 01401080 // P3
|
|
000FE005 00000003
|
|
D00FE000 01400020 // P2
|
|
000FE005 00000002
|
|
D00FE000 01401020 // P1
|
|
000FE005 00000001
|
|
D00FE000 014000A0 // P0
|
|
000FE005 00000000
|
|
|
|
// Brake handle
|
|
700FE000 00300F00 // Bitmask: discard all button data besides the 4 bits for brake notche
|
|
D00FE000 01000F00 // EB
|
|
000FE004 00000009
|
|
D00FE000 01000600 // B8
|
|
000FE004 00000008
|
|
D00FE000 01000200 // B7
|
|
000FE004 00000007
|
|
D00FE000 01000D00 // B6
|
|
000FE004 00000006
|
|
D00FE000 01000900 // B5
|
|
000FE004 00000005
|
|
D00FE000 01000C00 // B4
|
|
000FE004 00000004
|
|
D00FE000 01000800 // B3
|
|
000FE004 00000003
|
|
D00FE000 01000500 // B2
|
|
000FE004 00000002
|
|
D00FE000 01000100 // B1
|
|
000FE004 00000001
|
|
D00FE000 01000400 // B0
|
|
000FE004 00000000
|
|
|
|
// Send data to game
|
|
500FE004 00000006 // Copy 6 bytes (all input) to memory location where game expects USB input data
|
|
003794C2 00000000</code></pre></div><h3 id=memory-addresses>Memory addresses</h3><table><thead><tr><th style=text-align:left></th><th style=text-align:left>Professional 2 (Taito Best)</th><th style=text-align:left>Professional 2</th><th style=text-align:left>Ryojōhen</th><th style=text-align:left>Final</th><th style=text-align:left>Notes</th></tr></thead><tbody><tr><td style=text-align:left><strong>USB mascon count (int32)</strong></td><td style=text-align:left>0x2D3CAC</td><td style=text-align:left>0x2C852C</td><td style=text-align:left>0x24B6DC</td><td style=text-align:left>0x2C1464</td><td style=text-align:left></td></tr><tr><td style=text-align:left><strong>USB mascon model (int32)</strong></td><td style=text-align:left>0x3790F0</td><td style=text-align:left>0x36EAF0</td><td style=text-align:left>0x2F24E0</td><td style=text-align:left>0x3DEA10</td><td style=text-align:left>0x40000202=Type 2</td></tr><tr><td style=text-align:left><strong>Type 2 USB data (5 bytes)</strong></td><td style=text-align:left>0x3794C2</td><td style=text-align:left>0x36EEC2</td><td style=text-align:left>0x2F28C2</td><td style=text-align:left>0x3DF242</td><td style=text-align:left>Raw USB data, except notches, which are preprocessed to notch index</td></tr><tr><td style=text-align:left><strong>P2 controller connected (byte)</strong></td><td style=text-align:left>0x2DBA32</td><td style=text-align:left>0x2D14F2</td><td style=text-align:left>0x2548F2</td><td style=text-align:left>0x2C8172</td><td style=text-align:left>0x00=Disconnected, 0x01=Connected</td></tr><tr><td style=text-align:left><strong>P2 controller type (byte)</strong></td><td style=text-align:left>0x2DB9C1</td><td style=text-align:left>0x2D1481</td><td style=text-align:left>0x254881</td><td style=text-align:left>0x2C8101</td><td style=text-align:left>0x41=Digital, 0x73=Dualshock</td></tr><tr><td style=text-align:left><strong>P2 button input (int16)</strong></td><td style=text-align:left>0x2DB9C2</td><td style=text-align:left>0x2D1482</td><td style=text-align:left>0x254882</td><td style=text-align:left>0x2C8102</td><td style=text-align:left></td></tr><tr><td style=text-align:left><strong>P2 L-stick input (int16)</strong></td><td style=text-align:left>0x2DB9C6</td><td style=text-align:left>0x2D1486</td><td style=text-align:left>0x254886</td><td style=text-align:left>0x2C8106</td><td style=text-align:left></td></tr><tr><td style=text-align:left><strong>P1 button input (int16)</strong></td><td style=text-align:left>0x2DBAC2</td><td style=text-align:left>0x2D1582</td><td style=text-align:left>0x254982</td><td style=text-align:left>0x2C8202</td><td style=text-align:left></td></tr><tr><td style=text-align:left><strong>ASM patch</strong></td><td style=text-align:left>0x12BDC0</td><td style=text-align:left>0x12CB60</td><td style=text-align:left>0x135B90</td><td style=text-align:left>0x148928</td><td style=text-align:left>Leftover game code binds the C button to the horn and needs to be disabled.</td></tr></tbody></table><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 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></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 class=parent 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><li data-nav-id=/adapters/autotraintas/index.html><a class=padding href=https://marcriera.github.io/ddgo-controller-docs/adapters/autotraintas/index.html>Converter tool by Autotraintas</a></li><li data-nav-id=/adapters/plugins/index.html><a class=padding href=https://marcriera.github.io/ddgo-controller-docs/adapters/plugins/index.html>Input plugins for BVE Trainsim/OpenBVE</a></li><li class=active data-nav-id=/adapters/cheats/index.html><a class=padding href=https://marcriera.github.io/ddgo-controller-docs/adapters/cheats/index.html>PlayStation 2 cheat codes</a></li><li data-nav-id=/adapters/titan/index.html><a class=padding href=https://marcriera.github.io/ddgo-controller-docs/adapters/titan/index.html>Titan One/Two adapters</a></li></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/adapters/cheats/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> |