Skip to content

Instantly share code, notes, and snippets.

@cb109
Last active April 24, 2025 07:37
Show Gist options
  • Save cb109/361add3129d64fa81824bae049b1b0c9 to your computer and use it in GitHub Desktop.
Save cb109/361add3129d64fa81824bae049b1b0c9 to your computer and use it in GitHub Desktop.
How to: Gothic 1 on the Retroid Pocket 5

How to play Gothic 1 on the Retroid Pocket 5 using Winlator

This guide explains how to run the classic Gothic 1 PC game on the Retroid Pocket 5 (or potentially any recent Android device), by emulating Windows via Winlator and using a Vulkan based renderer.

Recorded gameplay video (using Box 64 "Compatibility" preset, way more FPS possible with higher presets). Click screenshot below to play the video:

Watch the video

Terminology

  • RP5 = Retroid Pocket 5

Update February 2025

I played through the entire game's main story on the device: I started my playthrough on Winlator 8.x from brunodev85, but finished it on Winlator 7.1.4 from ajay9634, the settings below have been adapted to that. The 8.x version gave me increasing problems with some areas being very laggy (not FPS, just giant input lag, hard to control the character) and I could not figure out any settings to combat this. The 7.x glibc version does not have those problems, but FPS fluctuate more wildly, it has sound crackling to some degree and you cannot hide the mouse cursor :) So your mileage may vary depending on the Winlator version you are using and it may help to test a few of them. You can change them during your playthrough, as button mappings can be exported/imported and Gothic's save files are just stored in the game folder and do not depend on the Winlator version used.

Preparation of Game Files on your PC

  • Buy and install Gothic 1 Classic on Steam (GOG version should also work), the Steam version at the time of writing is: 1.08k_mod.
  • Make sure to install the language you want under Steam > Gothic 1 Classic > Properties > General > Language, this may download new audio files etc.
  • When on Steam, you may want to install the mods Gothic 1 Community Patch (and its dependency Ninja) via the Steam Workshop by subscribing to them and waiting for Steam to download the files, I did that and had no conflicts so far.
  • We need to install the LegacyAltRenderer from https://github.com/SaiyansKing/Gothic-LegacyAltRenderer/releases (v1.3 at the time of writing). This will give us the option to use a Vulkan based renderer that massively improves performance on the RP5. The file to download is under Assets > LegacyAltRenderer.zip. There is also a version on Steam Workshop which did not install properly for me, so better do it manually. Simply extract the contents of the LegacyAltRenderer.zip into the Gothic\system folder.
  • Copy the game e.g. via Steam > Gothic 1 Classic > Manage > Browse local files to your SDCard and insert it into your RP5.

Setup on your RP5

  • Copy the game files from your SDCard to a folder that is visible to Winlator. By default your internal device's Downloads folder will be mapped to the D:\ drive and we will use that. You can customize this, but for now we assume the game to reside at: Downloads/Gothic on your RP5, which inside Winlator will then be D:\Gothic.
  • Changing resolution and other video settings in game will not possible when using the Legacy Alt Renderer. Instead you can modify it in the Gothic\system\Gothic.ini file. You could use a simple text editor app on the RP5 (probably most convenient) or even just Notepad within the Winlator container. The settings are fairly well documented, e.g. you can modify visibility range, blood display, animation of windows, toggle sky effects etc.
    • To speedup startup you should disable the piranha bytes logo video, also update the resolution to match your container. Find the relevant settings and modify them like:
      playLogoVideos=0
      zVidResFullscreenX=1280
      zVidResFullscreenY=720
      
  • On your RP5 install Winlator 8 (from https://github.com/brunodev85/winlator/releases, I used Winlator 8.0 (Revision 1), or using the Obtainium app). Other versions or forks may work, too.

Setup in Winlator

  • In Winlator, create a new Container. There are a ton of settings and I can't say for sure which may make a difference, but through trial and error these seem the most important ones to get right:

    • Screen Size: 1280x720 is the lowest I would aim for on this screen. This does limit the game as well, even if you set higher resolutions in the Gothic.ini, so keep that in mind if you want more. You can certainly crank this up (I've used 1920x1080 with no significant loss in FPS), but it also affects UI size and how usable the container explorer is.
    • Graphics Driver: Turnip (Adreno)
    • Audio Driver: Pulse Audio
    • DX Wrapper: DXVK. VKD3D also works fine, but I seem to get a few more FPS with DXVK in comparison.
    • Show FPS: I would check this in the beginning to confirm results on first launch of the game, you can turn it off later.
    • WINE CONFIGURATION:
      • GPU Name: Nvidia GeForce GTX 550 Ti. I don't think this setting is super critical though, saw no difference using others.
      • Offscreen Rendering Mode: Backbuffer. Had a black screen with the default, so this one is important.
      • Video Memory Size: 1024 MB. Doubling this made no difference to me.
    • WIN COMPONENTS:
      • Set all dropdowns to Native (Windows), except Direct Sound which needs to be 'Builtin (Wine)' to mitigate sound crackling.
    • ADVANCED:
      • Windows Version: Windows 7. I also tried 8.1 with no difference, pick whatever.
      • Box64 Preset: Start with Compatibility, increase to Intermediate or even Performance for potential huge FPS gains (150+ possible), as long as things are still stable. Might increase battery drain though, don't know yet.
      • I think it also helped to force the game to "Fullscreen" mode.
  • Start the container, navigate to D:\Gothic\system and doubleclick the GothicMod.exe. Using that instead of the Gothic.exe or GothicStarter.exe will skip an obsolete additional starter window to launch the game.

  • You should now see a dialog to pick the renderer and some options. We want to use a Vulkan based renderer: The Vulkan (DXVK 1.10.3) gave me the best FPS with significantly less screen tearing than its newer 2.2 version, so choose that one. The first two checkboxes below should be unchecked (see recommendation at https://github.com/SaiyansKing/Gothic-LegacyAltRenderer/releases/tag/v1.3), the third vsync option didn't really make a difference for me.

  • Once the .exe file is started, we need to select the renderer and launch the game.

Setup of Controls in Winlator

  • When you see the Gothic logo/menu we can swap from mouse control to a mapping actually intended to play the game. You can setup your own within the Winlator Input Controls or use my mapping below as a starting point.
  • You can find an overview of the original button layout here: https://strategywiki.org/wiki/Gothic/Controls
  • This is my exported controls profile:
    {
      "id": 4,
      "name": "Gothic 1",
      "cursorSpeed": 1,
      "disableMouseInput": true,
      "elements": [
        {
          "type": "TRACKPAD",
          "shape": "CIRCLE",
          "bindings": [
            "MOUSE_MOVE_UP",
            "MOUSE_MOVE_RIGHT",
            "MOUSE_MOVE_DOWN",
            "MOUSE_MOVE_LEFT"
          ],
          "scale": 1.5,
          "x": 0.9108911156654358,
          "y": 0.8392857313156128,
          "toggleSwitch": false,
          "text": "",
          "iconId": 0
        },
        {
          "type": "TRACKPAD",
          "shape": "CIRCLE",
          "bindings": [
            "MOUSE_MOVE_UP",
            "MOUSE_MOVE_RIGHT",
            "MOUSE_MOVE_DOWN",
            "MOUSE_MOVE_LEFT"
          ],
          "scale": 1.5,
          "x": 0.7425742745399475,
          "y": 0.5357142686843872,
          "toggleSwitch": false,
          "text": "",
          "iconId": 0
        },
        {
          "type": "TRACKPAD",
          "shape": "CIRCLE",
          "bindings": [
            "MOUSE_MOVE_UP",
            "MOUSE_MOVE_RIGHT",
            "MOUSE_MOVE_DOWN",
            "MOUSE_MOVE_LEFT"
          ],
          "scale": 1.5,
          "x": 0.9108911156654358,
          "y": 0.5357142686843872,
          "toggleSwitch": false,
          "text": "",
          "iconId": 0
        },
        {
          "type": "TRACKPAD",
          "shape": "CIRCLE",
          "bindings": [
            "MOUSE_MOVE_UP",
            "MOUSE_MOVE_RIGHT",
            "MOUSE_MOVE_DOWN",
            "MOUSE_MOVE_LEFT"
          ],
          "scale": 1.5,
          "x": 0.7425742745399475,
          "y": 0.8392857313156128,
          "toggleSwitch": false,
          "text": "",
          "iconId": 0
        }
      ],
      "controllers": [
        {
          "id": "dc75afea56e3c3a269b97967aa26b8c93c0bd3fb",
          "name": "Retroid Pocket Controller",
          "controllerBindings": [
            {
              "keyCode": 96,
              "binding": "KEY_CTRL_L"
            },
            {
              "keyCode": 97,
              "binding": "KEY_ESC"
            },
            {
              "keyCode": 100,
              "binding": "KEY_ENTER"
            },
            {
              "keyCode": 99,
              "binding": "KEY_ALT_L"
            },
            {
              "keyCode": 102,
              "binding": "KEY_1"
            },
            {
              "keyCode": 103,
              "binding": "KEY_2"
            },
            {
              "keyCode": 104,
              "binding": "KEY_B"
            },
            {
              "keyCode": 105,
              "binding": "KEY_TAB"
            },
            {
              "keyCode": 4,
              "binding": "KEY_4"
            },
            {
              "keyCode": 109,
              "binding": "KEY_N"
            },
            {
              "keyCode": 108,
              "binding": "KEY_M"
            },
            {
              "keyCode": 106,
              "binding": "KEY_F5"
            },
            {
              "keyCode": 107,
              "binding": "KEY_F9"
            },
            {
              "keyCode": -1,
              "binding": "KEY_DEL"
            },
            {
              "keyCode": -2,
              "binding": "KEY_PG_DOWN"
            },
            {
              "keyCode": 19,
              "binding": "KEY_W"
            },
            {
              "keyCode": 20,
              "binding": "KEY_S"
            },
            {
              "keyCode": 21,
              "binding": "KEY_A"
            },
            {
              "keyCode": 22,
              "binding": "KEY_D"
            }
          ]
        }
      ]
    }
    This uses the dpad for running and the X-axis of the left thumbstick for strafing (binding both to the same inputs would unfortunately override the first one). It also disables mouse input so there's no visible cursor, but defines a few trackpads on the right lower screen that you can use instead to modify where you look/move via the touch screen, I found that very handy. These trackpads can be hidden, but are still responsive to input, so they don't visually disturb the game.
  • Save the above content to a new text file named: Gothic 1.icp
  • Copy it to your RP5 and use Import Profile within the Winlator Input Controls

Optional: Winlator Shortcut

  • Within your container you can navigate to D:\Gothic\system and rightclick (two finger tap) the GothicMod.exe and Create Shortcut which will make this available within the Winlator app, so next time you can immediately launch the game instead of clicking through the Windows explorer.
  • That shortcut can also preselect an input controls profile, however: Since we can currently not skip the mouse based interaction to select the renderer on launch, if you use a custom profile it should not disable mouse controls. I prefer to just switch the profile once fully in game.

Super Optional: Skip the select-renderer step

You can use my modified build of LegacyAltRenderer that allows skipping the dialog: https://github.com/cb109/Gothic-LegacyAltRenderer/releases/tag/v1.3-skipui

  1. Launch the game as usual and select your desired options so the legacyaltrenderer.ini is updated accordingly
  2. Modify legacyaltrenderer.ini to include SkipUi = True

On next launch the dialog won't show, instead the values from the config file are reused.

Optional: Adjusting the Size of in-game UI

You can modify the size of UI and text etc. via the Scale=1 parameter (within the [INTERFACE] section) in the Gothic\system\SystemPack.ini file. It can only scale so much, though (see comments in the file). I am using Scale=2.1 for 1920x1080, as the max. value depends on your resolution.

Known Issues

The Vulkan based rendering is not without glitches: Loading screens are mostly invisible and there is some screen tearing and flickering here and there. Since it does however give me at least 2-3 times more FPS than the other renderers I think this isn't too bad.

Thanks to

Enjoy!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment