Pokémon Legends: Arceus

How to play Pokémon Legends: Arceus (PLA) on a PC emulator.

Legal disclaimer: This guide is intended for educational purposes only. Readers are not encouraged in any way to use the technology described unless they already own a physical or digital copy of Nintendo’s products.

P.S.: Always use a VPN, if one is available.
P.S.: Always reboot the PC, if it is requested.

Prerequisites

  1. At least 4 GB of RAM;
  2. Update your GPU to the latest graphics drivers;
  3. Install the free version of uTorrent Web;
  4. Install the Cheat Engine software.

At the time of writing, I have the following setup:

  • GPU: Intel Iris Xe (8 GB);
  • CPU: Intel i7-11370H;
  • RAM: 16 GB @ 3.2 GHz;
  • OS: Windows 10;
  • Graphics driver: v27.20.100.9749;
  • uTorrent Web: v3.5.5;
  • Cheat Engine: v7.4.

Installation

1. Install the Ryujinx emulator compatible with the Vulkan backend

Ryujinx is a Nintendo Switch (NS) emulator for PC written in C#. For this specific project we opt for the newly released version compatible with the Vulkan backend, i.e., a high-performance cross-platform 3D graphics library.

This version of Ryujinx can be downloaded directly from its GitHub repo.

  1. Download the compressed folder from the above link;
  2. Unzip it in a non-protected folder (i.e., not in “C:\Program Files”)

P.S.: If “Ryujinx.exe” complains about missing keys, follow this fix. Otherwise, skip to the next section.

Missing Ryujinx keys

  1. Download the missing keys from MEGA;
  2. Unzip the folder into two files: “prod.keys” and “title.keys”;
  3. Copypaste both keyfiles in Ryujinx’s system folder.

If you are on Windows, Ryujinx’s system folder can be found in “C:\Users\<USER>\AppData\Roaming\Ryujinx\system”. Remember to change “<USER>” to your actual Windows username.

Install the NS firmware

  1. Download from here the NS firmware whose version matches that of Ryujinx keys;
  2. Launch the Ryujinx emulator;
  3. Click on “Tools” in Ryujinx tab bar;
  4. Click on “Install Firmware” → “Install a firmware from XCI or ZIP”;
  5. Select the compressed folder you have just downloaded;
  6. Wait for the installation process to complete.

At the time of writing, I have the following setup:

  • Ryujinx: v1.0.0
  • Ryujinx keys: v13.2.1
  • NS firmware: v13.2.1

2. Install the Vulkan drivers

P.S.: Sometimes, the Vukan drivers are shipped with your GPU drivers. If you want to check if you already have them installed in your PC before proceeding with the following steps, just download GL-Z from here. If you see some cards starting with the name “Vulkan” at startup, it means that the Vulkan drivers are already installed correctly in your PC.

  1. Download from here the Vulkan drivers compatible with your GPU;
  2. Click on the icon of your GPU manufacturer (i.e., AMD, Intel, NVIDIA, etc.);
  3. Install the drivers in your PC following the instructions on screen.

Install the runtime and SDK

Download all the installers from here:

  1. Click on the icon corresponding to your OS;
  2. Download and install the “SDK installer” executable;
  3. Download and install the “Runtime installer” executable;
  4. Download the “config.json” and “Runtime components” files;
  5. Place the two of them in a non-protected folder.

P.S.: Ensure that both the runtime and SDK have the same version!

At the time of writing, I have the following setup:

  • Vulkan runtime: v1.2.176.1
  • Vulkan SDK: v1.2.176.1

3. Download the PLA image

You can download the PLA image from many different repositories. I suggest sticking to the base image in XCI format, while avoiding any converted images in NSZ format, as they tend to be unstable.

I will not provide any direct download link to avoid breaking the EU Anti-piracy Mandate (EUAPM). Nonetheless, you can decode from here the following Base64-encoded string to gain access to a working URL:

  • aHR0cHM6Ly9uc3cydS54eXovcG9rZW1vbi1sZWdlbmRzLWFyY2V1cy1zd2l0Y2gtbnNwLXhjaQ==

There, you can find the base image in XCI format, and any future updates as NSP patches to apply.

P.S.: If you cannot access the provider from your country, follow this fix. Otherwise, skip to the next section.

No access to the provider

If you have a VPN service at your disposable, just access the URL setting a location from the USA. If you do not have it, though, like myself, you can either try using a free DNS proxy, or follow along, because I have a foolproof workaround:

  1. Log in your Google account on your web browser of choice (any Chromium-based browser is fine);
  2. Create a new IPYNB notebook on Google Colab. (Don’t worry, it’s free!);
  3. Paste the following Python code in an empty code block:
import requests

from google.colab import files


URL = '<URL_provider>'
FILENAME = '<FILE>'

r = requests.get(URL)

if r.status_code != 200:
    raise ConnectionError()

with open(FILENAME + '.html', 'w+') as f:
    f.write(r.text)

files.download(FILENAME + '.html')

Remember to change “<URL_provider>” to the decoded URL and “<FILE>” to a filename of choice. 4. Unless you see some kind of error, you will find a file called “<FILE>.html” in your Downloads folder.

P.S. for computer savvies: This method works because Google DNS service and locator, which the VM instance behind Google Colab uses internally, are rarely blocked by other services/websites.

Setup

1. Set Vulkan as the default backend

  1. Launch the Ryujinx emulator;
  2. Click on “Options” in Ryujinx tab bar;
  3. Click on “Settings” and wait for a pop-up to appear;
  4. Click on “Graphics” in the pop-up tab bar;
  5. Select “Vulkan” in the “Graphics backend” option;
  6. Select “On” in the “Graphics backend multithreading” option.

Update your graphics settings for PLA

This step depends solely on your GPU manufacturer’s softwares to maximize performance.

Run PLA in the emulator

  1. Click on “File” in Ryujinx tab bar;
  2. Click on “Load Application File”;
  3. Select the executable in XCI format.

Update PLA in-game settings with Cheat Engine

The game won’t run at very high FPS for the time being, often ranging between six and 10. This issue depends mainly on two independent factors: First, the game is brand new; hence, the compatibility is not 100% yet. Secondly, Ryujinx itself as an emulator tends to cut the frame rate to a maximum of 30 to 60 FPS regardless of the compatibility.

This is where Cheat Engine comes into play, as it is able to speedhack any game. The overall look and feel will mimic a 30 to 60 FPS game running smoothly in the emulator, while actually never running at more than 10 FPS.

  1. Ensure the PLA game is running;
  2. Launch the Cheat Engine software;
  3. Click on the first icon (Process list) from the left underneath “File”;
  4. Click on the only process whose name contains “Ryujinx.exe”;
  5. Toggle the “Enable Speedhack” checkbox;
  6. Select thre desired hackspeed;
  7. Click on the “Apply” button to confirm.

Of course, there is no need for such a hack if the game happens to run with high FPS already. From my personal experience, I can suggest to always choose a hackspeed between 1.3 and five. At least, for now.

2. Patch PLA base image with updates

I could make a long written guide on using NSC builder to update PLA, but I would repeat word for word what this YouTube guide already proposes beautifully. Credits to its creator.

P.S.: There is no need to start over with a fresh XCI base image every time you have to apply a patch.

Roadmap

An updated version of this guide with step-by-step snapshots will be made available soon. If you have any unexpected issues or get stuck at any point of this guide, feel free to contact me on Netlify.

Happy playing! It’s Pokémon time.

Federico Minutoli
Federico Minutoli
MSc graduate in Computer Science

I am just a stupid person that somehow happens to get it right.

comments powered by Disqus