citra

A Nintendo 3DS Emulator

GPL-2.0 License

Stars
3.4K

Bot releases are hidden (Show)

citra - Ñ - v2.2

Published by PabloMK7 8 months ago

Ñ

citra - Citra Online Multiplayer Support

Published by PabloMK7 8 months ago

Citra Online Multiplayer Support

This build of Citra includes support for real online multiplayer. Currently, it only supports connecting to Nintendo Network, but support for Pretendo Network will come eventually.

Changes in v2.1

  • Rebased to the latest Citra changes.
  • Fixed an issue that would produce costant crashes when playing online.
  • Fixed Android compatibility.

Changes in v2.0

  • Rebased to the latest Citra changes, which includes many stability improvements and better Android UI.
  • Fixed crashes in many games when going online (affecting some Monster Hunter games and others).
  • Implemented missing functionality needed by some games (fixes Zelda: Tri Force Heroes and others).
  • Added CTCert.bin support, which:
    • Allows linking and using a Nintendo Network ID.
    • Allows using Miiverse replacement servers (such as rverse and Juxtaposition).
    • Allows launching the eShop (only if the NIM save data is dumped from a real console).
    • Allows using Nintendo Badge Arcade.
  • Many improvements to SpotPass Services, by allowing the usage of LLE BOSS.

Updating from v1.0

A few sections of the installation instructions have been updated and need to be done again if you had used this fork in the past:

  • Section II: Download System Files from Nintendo servers
  • Section IV. Dump Console Unique Secure Data (CTCert.bin)
  • Section V. Enabling LLE system modules.

Why is this not in official Citra builds?

Citra team is currently in talks with lawyers to consider if they want to support online multiplayer in their emulator (either Nintendo or Pretendo). In the meantime, I decided to provide a fork with online multiplayer support. I will try to keep this build updated to reflect latest nightly changes periodically, so keep an eye on this page for updates.

Once online support is added to official Citra, this fork will be discontinued.

Compatibility

Things working

  • Friend list: Creating a new friend code and managing friends, even with real 3DS users.
  • Online multiplayer: Playing online in most games, even with real 3DS users.
  • Nintendo Network: Accessing NNID settings and creating/linking a Nintendo Network ID (needed for miiverse and some other games).

Things not working

  • eShop only works if a dump of the NIM save data is provided from a real 3DS (system save data ID: 0x0001002C). Only browsing the games can be done, as trying to download updates doesn't work.
  • Anything related to title installs, such as downloading things from the eShop or installing system updates.

Installation instructions

In order to enable online functionality follow these steps (real 3DS is required). The steps only need to be done once and persist between updates. Keep in mind that while the steps are very safe and bans are extremely unlikely, we cannot guarantee that you will not be banned from Nintendo Network by doing this.

Section I. AES Keys

Follow this guide to dump AES Keys.

Section II. Download System Files from Nintendo servers

  1. Open Citra and go to Emulation -> Configure...
  2. Go to the Sytem category and find the drop down box next to "Download System Files from Nintendo servers".
  3. Select New 3DS from the drop down box, and your region in the box next to it. Finally, press the Download button.
    -If something fails at this point, you may have done Section 1 AES Keys incorrectly.
  4. Repeat step 3, but select Old 3DS from the drop down box.
  5. Close the configuration menu, and go to File -> Boot Home Menu -> (your region).
    -Verify that the home menu is booting properly.
  6. Close the Home Menu by doing Emulation -> Stop.

Section III. Dump Console Unique Secure Data (SecureInfo_A/B and LocalFriendCodeSeed_A/B)

NOTE: This section dumps data from your 3DS that is tied to your console. NEVER SHARE THE FILES DUMPED IN THIS SECTION WITH ANYONE.
Depending on how your console was manufactured, the letter after SecureInfo_ and LocalFriendCodeSeed_may beAorB(for example, you may haveSecureInfo_AandLocalFriendCodeSeed_B, or SecureInfo_BandLocalFriendCodeSeed_A`). This detail has no impact on the behaviour of Citra.

  1. Launch GodMode9 on your 3DS.
  2. Go to SYSNAND CTRNAND -> rw -> sys.
  3. Press A on SecureInfo_A/B and select Copy to 0:/gm9/out. Then press A to continue.
  4. Press A on LocalFriendCodeSeed_A/B and select Copy to 0:/gm9/out. Then press A to continue.
  5. Power off your 3DS and copy the previously dumped file to your PC. The files should be in the gm9 -> out folder in your SD.
  6. Open Citra and go to Emulation -> Configure then System category.
  7. Please the Choose button next to SecureInfo_A/B and LocalFriendCodeSeed_A/B and choose the respective files you have just dumped.
  8. Verify that the text next to the buttons have changed to Status: Loaded.

NOTE: Android lacks the UI to do this section. instead you can place both files in the citra-emu/nand/rw/sys folder manually, with the names SecureInfo_A and LocalFriendCodeSeed_B.

Section IV. Dump Console Unique Secure Data (CTCert.bin)

NOTE: This section dumps data from your 3DS that is tied to your console. NEVER SHARE THE FILES DUMPED IN THIS SECTION WITH ANYONE.

  1. Download the homebrew app CTCert Dumper (the .3dsx file) and place it in the 3ds folder in your 3DS SD card.
  2. Launch the Homebrew Launcher in your 3DS and choose CTCert Dumper.
    • Make sure it says the dumping of CTCert.bin has succeeded.
  3. Power off your 3DS and copy the previously dumped file to your PC. The file should be in the root of your SD card as CTCert.bin.
  4. Open Citra and go to Emulation -> Configure then System category.
  5. Press the Choose button next to CTCert.bin and choose the file you have just dumped.
  6. Verify that the text next to the button has changed to Status: Loaded.

NOTE: Android lacks the UI to do this section. Instead you can place the file in the citra-emu/sysdata folder manually, with the name CTCert.bin.

Section V. Enabling LLE system modules.

  1. In Citra, go to View -> Debugging and enable Toggle LLE Service Modules. A list should have opened to the right side of the emulator window.
  2. Find the following entries and enable the checkboxes next to them.
    • HTTP, NIM, SSL, FRD, BOSS, ACT.
  3. Go to View -> Debugging and disable Toggle LLE Service Modules, so that the list is hidden again.

NOTE: Android lacks the UI to do this section. Instead you have to edit citra-emu/config/config.ini manually with a text editor, and add the following lines in the section [Debugging]:

LLE\HTTP = true
LLE\NIM = true
LLE\SSL = true
LLE\FRD = true
LLE\BOSS = true
LLE\ACT = true

Section VI. Verify everything is working

  1. In Citra, go to File -> Boot Home Menu -> (your region).
  2. Once the home menu opens, go to the friend list and select your friend card. After a few seconds you should get a friend code assigned and show as being online.
    -If an error is shown, please dump the Citra log and ask for help in the issues section.
  3. Close the Home Menu by doing Emulation -> Stop.

After following all the steps, you should be able to play online. You can even share the friend code with other users the same way you would with a real 3DS, and even play with other 3DS users.