In order to edit this wiki, you must register and verify your account.

System RPL Files: Difference between revisions

From Cemu Wiki
Jump to:navigation Jump to:search
(Many fixes, tweaks and additions. Wikitable is currently broken, so changed the table class to "table")
Line 1: Line 1:
== Description ==
== Description ==
RPL files are utility libraries and or drivers which contains important code and functions that are used by the Wii U's applications and software to interface with the OS or make it easier for developers to develop software for the Wii U. The system RPL files that are included with every Wii U are part the Wii U's OS and are used by all Wii U games or software. The system RPL files are located inside a separate storage chip inside the Wii U called: SLC or <code>storage_slc</code> internally, which contains a lot of critical system files.  
RPL files are utility libraries and or drivers which contains important code and functions that are used by the Wii U's applications and software to interface with the OS. The system RPL files are included with every Wii U are part the Wii U's OS and are used by all Wii U games, applications and software. The system RPL files are located inside a separate storage chip inside the Wii U called: SLC or <code>storage_slc</code> internally, which contains a lot of critical system files such as the Wii U's firmware.  


Cemu emulates parts of these libraries, however Cemu's implantation of these System RPL files is largely incomplete and as a result some fratures might not work correctly.
Cemu emulates parts of these libraries, however Cemu's implantation of these System RPL files is largely incomplete and as a result some fratures might not work correctly.


Providing Cemu with system RPL files can improve compatibility with some software features that Cemu doesn't emulate correctly.
Providing Cemu with system RPL files can improve compatibility with some software features that Cemu doesn't emulate fully or correctly.


This wiki page provides information on how to dump them the system RPLs and which RPL files are considered compatible with Cemu.
This wiki page provides information on how to dump them the system RPLs and which RPL files are considered compatible with Cemu.
Line 10: Line 10:
== Dumping ==
== Dumping ==
=== Using Ftpiiu ===
=== Using Ftpiiu ===
[https://github.com/wiiu-env/ftpiiu_plugin Ftpiiu] is a program that hosts a FTP server from a Wii U. It allows an external PC to remotely upload, copy and delete files from the Wii U's system files or inserted SD card. This option is only available on a modded Wii U with the Ftpiiu plugin installed.
[https://github.com/wiiu-env/ftpiiu_plugin Ftpiiu] is a program that hosts a FTP server from a Wii U. It allows an external PC to remotely upload, copy and delete files from the Wii U's system files or the inserted SD card. This option is only available on a modded Wii U with the Ftpiiu plugin installed.
Additional software may be required to connect to a FTP server on a PC. You can use one of the methods below:
Additional software may be required to connect to a FTP server on a PC. You can use one of the programs below:
* FileZilla FTP Client. [https://filezilla-project.org/ Download Page]
* FileZilla FTP Client. [https://filezilla-project.org/ Download Page]


* Windows File Explorer (Windows) <br> Windows has a build in FTP-server features in File Explorer, however these features are disabled in Windows by default and need to be activated. This can be done very easily inside the "'''Turn Windows features on or off'''" section inside the Windows Control Panel. To activate, open the page in the Control Panel and expand "Internet Information Services" Then check the box "FTP-server". Press ok and restart if prompted. You can now use FTP features in Windows Explorer. To use this function type <code>ftp://[ip-address]</code> into the address bar of the File Explorer and you will be connected to the FTP-server. <!-- May need to be referenced to an external site instead -->
* Windows File Explorer (Windows) <br> Windows has a build in FTP-server feature in File Explorer, however these features are disabled in Windows by default and need to be activated. This can be done very easily inside the "'''Turn Windows features on or off'''" section inside the Windows Control Panel. To activate, open the page in the Control Panel and expand "Internet Information Services" Then check the box "FTP-server". Press ok and restart if prompted. You can now use FTP features in Windows Explorer. To use this function type <code>ftp://[ip-address]</code> into the address bar of the File Explorer and you will be connected to the FTP-server. <!-- May need to be referenced to an external site instead -->


Enter the IP-address, seen in the Ftpiiu plugin settings, into your FTP client and navigate to the path below:
Enter the IP-address, seen in the Ftpiiu plugin settings, into your FTP client and navigate to the path below:
Line 22: Line 22:
Copy all or some of the files of your choosing. '''DO NOT DELETE THEM FROM YOUR WII U AS THIS WILL BRICK YOUR WII U'''
Copy all or some of the files of your choosing. '''DO NOT DELETE THEM FROM YOUR WII U AS THIS WILL BRICK YOUR WII U'''


You may find other folders of containing similar files in the Wii U SLC, but they're old versions of the system RPL files that may not have up to date functions that Cemu aren't compatible with.
You may find other folders containing similar files in the Wii U SLC, but they're old versions of the system RPL files that may not have up to date functions that Cemu aren't compatible with.


=== Using a Nand dump ===
=== Using a Nand dump ===
The alternative, and more complicated, method is to use nanddumper on Wii U to dump the SLC nand image(<code>slc.bin</code>) and then decrypt and extract the files from it via one of the options below:
The alternative, and more complicated, method is to use nanddumper on Wii U to dump the SLC nand image(<code>slc.bin</code>) and then decrypt and extract the files from it via one of the options below:
* [https://github.com/koolkdev/wfs-tools wfs-extract]. (Command line only)
<!--* [https://github.com/koolkdev/wfs-tools wfs-extract]. (Command line only)-->
* [https://github.com/koolkdev/wiiu-nandextract Nandextract] (Provides a GUI interface)
* [https://github.com/koolkdev/wiiu-nandextract Nandextract] (GUI)
You need the Wii U common key to decrypt a <code>slc.bin</code> nand image. You can extract the key from your <code>opt.bin</code> file used for online play. For more information follow this guide: [https://wiki.cemu.info/wiki/Obtaining_Keys_for_Keys.txt Optaining Keys for Keys.txt].
You need the Wii U common key to decrypt a <code>slc.bin</code> nand image. You can extract the key from your <code>opt.bin</code> file used for online play. For more information follow this guide: [https://wiki.cemu.info/wiki/Obtaining_Keys_for_Keys.txt Optaining Keys for Keys.txt].


== Loading ==
== Loading ==
Cemu normally emulates parts of the system RPLs in high level internally.
Cemu normally emulates parts of the system RPLs in high level.
To force Cemu to load a system RPL file instead of emulating it, create a folder named <code>cafeLibs</code> inside the same directory as the Cemu.exe file and then place the <code>.rpl</code> files of your choosing inside the folder.  
To force Cemu to load a system RPL file instead of emulating it, create a folder named <code>cafeLibs</code> inside the same directory as the Cemu.exe file and then place the <code>.rpl</code> files of your choosing inside the folder.


Make sure "Load Shared Libraries" checkbox is set in the software's game profile or it won't use system RPL files and instead use Cemu's build in implementation (if available). Some predefined game profiles have this feature disabled by standard, so make sure to check the game profile if you wish to use system RPL files.
Make sure the "Load Shared Libraries" checkbox is set in the software's game profile or it won't use system RPL files and instead use Cemu's build in implementation (if available). Some predefined game profiles have this feature disabled by default, so make sure to check the game profile if you wish to use system RPL files.


* '''If you're planning to use native system libraries, please make sure you have made a full MLC dump from your Wii U as many of these libraries uses files from the Wii U system files.'''
* '''If you're planning to use native system libraries, please make sure you have made a full MLC dump from your Wii U as many of these libraries uses files from the Wii U system files.'''


* '''Do not copy all the <code>.rpl</code> files because many of them will cause Cemu to crash or cause general compatibility issues.'''
* '''Do not copy all of the <code>.rpl</code> files because many of them will cause Cemu to crash or cause general compatibility issues.'''
 
* '''Cemu only loads the RPL file if the title uses code and functions from it.'''


* '''Some games are packaged with <code>.rpl</code> files in their <code>code</code> folder and are loaded by the game automatically and should therefore not be placed in the <code>cafeLibs</code> folder.'''
* '''Some games are packaged with <code>.rpl</code> files in their <code>code</code> folder and are loaded by the game automatically and should therefore not be placed in the <code>cafeLibs</code> folder.'''
Line 46: Line 48:
*'''Title data required''', means that the RPL file expects some system files to be present and will cause issues or crash Cemu if not present.
*'''Title data required''', means that the RPL file expects some system files to be present and will cause issues or crash Cemu if not present.


{| class="wikitable sortable"
{| class="table sortable" border="1"
|-
! Filename !! Usage !! Size in bytes !! Cemu version
! Filename !! Usage !! Size in bytes !! Cemu version
|-
|-
| <code>drmapp.rpl</code> || Digital rights management. Checks validity of the launched software tile in the Wii U Menu. Required to boot downloaded software titles directly from the Wii U Menu (Title data required) || style="text-align:right" | 603,968 || ?
| <code>drmapp.rpl</code> || Digital rights management. Used by the Wii U Menu to check if the title that is being launched is legit. Required to boot downloaded software titles directly from the Wii U Menu (Title data required) || style="text-align:right" | 603,968 || ?
|-
|-
| <code>erreula.rpl</code> || Error System Applet (Title data required). Displays the Native error applet when an error code is being displayed. || style="text-align:right" | 790,080 || ?
| <code>erreula.rpl</code> || Error System Applet (Title data required). Displays the Native error applet when an error code is being displayed, which may display more informative errors to the users. || style="text-align:right" | 790,080 || ?
|-
|-
| <code>nn_ec.rpl</code> || E-Commerce library. Gathers info about downloadable content and your eShop balance and information as well as allowing in-game purchases and downloads via the AOC overlay app.|| style="text-align:right" | 176,128 || ?
| <code>nn_ec.rpl</code> || E-Commerce library. Used to interface whith Nintendo eShop to gather info about Add-On Content and your eShop balance and information as well as allowing in-game purchases and downloads via the AOC overlay app. Largely useless due to missing logic to tile switching in Cemu.|| style="text-align:right" | 176,128 || ?
|-
|-
| <code>nn_fp.rpl</code> || Friend Presence (Friend list library). Uses the official native functions from the Wii U to use friend features.  || style="text-align:right" | 21,824 || 2.0-57+
| <code>nn_fp.rpl</code> || Friend Presence (Friend list library). Uses the official native functions from the Wii U to use friend features.  || style="text-align:right" | 21,824 || 2.0-57+
|-
|-
| <code>nn_olv.rpl</code> ||Olive (Miiverse) library (Title data required). Implements Miiverse features utilized by serveral Wii U titles and system software. This library is hardcoded to connect to Nintendo's Miiverse servers.  || style="text-align:right" | 131,072 || 2.0-77+ Recommended  
| <code>nn_olv.rpl</code> ||Olive (Miiverse) library (Title data required). Implements Miiverse features by adding support for the Miiverse API utilized by serveral Wii U titles and the system software. This library is hardcoded to connect to Nintendo's Miiverse servers.  || style="text-align:right" | 131,072 || 2.0-77+ Recommended  
|-
|-
| <code>nn_sl.rpl</code> || Title management for Wii U Menu || style="text-align:right" |403,904 || ?
| <code>nn_sl.rpl</code> || Title management for Wii U Menu || style="text-align:right" |403,904 || ?
Line 64: Line 65:
| <code>nsyskbd.rpl</code> || Keyboard driver for software keyboard || style="text-align:right" | 20,416 || ?
| <code>nsyskbd.rpl</code> || Keyboard driver for software keyboard || style="text-align:right" | 20,416 || ?
|-
|-
| <code>snd_user.rpl</code> || Extended sound effects for Sound driver. Implements missing sound effects in affected software || style="text-align:right" | 84,032 || 1.11.5+
| <code>snd_user.rpl</code> || Extended sound effects for Sound driver 1. Fixes missing sound effects in affected software || style="text-align:right" | 84,032 || 1.11.5+
|-
|-
| <code>snduser2.rpl</code> || Updated extended sound effects for Sound driver. Implements missing sound effects in affected software. Used by Software titles released later in the Wii U's lifespan.  || style="text-align:right" |111,360 || 1.11.5+
| <code>snduser2.rpl</code> || Extended sound effects for Sound driver 2. Fixes missing sound effects in affected software.  || style="text-align:right" |111,360 || 1.11.5+
|-
|-
| <code>swkbd.rpl</code> || Software keyboard (Title data required). Displays the native Wii U software keyboard on the screen when opened.|| style="text-align:right" | 1,116,288 || ?
| <code>swkbd.rpl</code> || Software keyboard (Title data required). Displays the native Wii U software keyboard on the screen when opened.|| style="text-align:right" | 1,116,288 || ?
<!--|- No longer works with 2.0-82 update.
| <code>sysapp.rpl</code> || System app title switching initializer. Tells the Wii U OS to jump to a specific game or application when the correct function is called by the software. It doesn't bring improvements to tile switching in Cemu.|| style="text-align:right" | 18,688 || 2.0-80+ -->
|}
|}


===Notes===
===Compatibility Notes===
====Software specific====
====Title specific compatibility improvements====
* The keyboard files make name entry work in [[Pokkén Tournament]].
* The keyboard files make name entry work in [[Pokkén Tournament]].
* Monster Hunter 3 Tri G(JP) requires <code>snd_user.rpl</code>, <code>swkbd.rpl</code>, <code>nsyskbd.rpl</code> and <code>nn_sl.rpl</code> to boot  
* Monster Hunter 3 Tri G(JP) requires <code>snd_user.rpl</code>, <code>swkbd.rpl</code>, <code>nsyskbd.rpl</code> and <code>nn_sl.rpl</code> to boot  
Line 80: Line 79:
* The <code>drmapp.rpl</code> and <code>nn_sl.rpl</code> system libraries allows Cemu to title switch from the Wii U Menu.
* The <code>drmapp.rpl</code> and <code>nn_sl.rpl</code> system libraries allows Cemu to title switch from the Wii U Menu.
* The <code>nn_olv.rpl</code> library fixes a crash in the Miiverse applet, as well as allowing a connection to the Miiverse servers in games that use it, however this just results in an error code since the service is discontinued.  
* The <code>nn_olv.rpl</code> library fixes a crash in the Miiverse applet, as well as allowing a connection to the Miiverse servers in games that use it, however this just results in an error code since the service is discontinued.  
====Library warnings====
====RPL Compatibility warnings====
* The <code>swkbd.rpl</code> being present will crash Cemu if the corresponding Title files for the Software Keyboard are not present in <code>mlc01\sys\title\0005001b\1004F000</code>
* The <code>swkbd.rpl</code> being present will crash Cemu if the corresponding Title files for the Software Keyboard are not present in <code>mlc01\sys\title\0005001b\1004F000</code>
* The <code>erreula.rpl</code> being present will crash Cemu if the corresponding Title files for the ErrEula are not present in <code>mlc01\sys\title\0005001b\10051000</code>
* The <code>erreula.rpl</code> being present will crash Cemu if the corresponding Title files for the ErrEula are not present in <code>mlc01\sys\title\0005001b\10051000</code>
* The <code>drmapp.rpl</code> being present will crash Cemu if the files are not present in <code>mlc01\sys\title\0005001b\10058000</code>
* The <code>drmapp.rpl</code> being present will crash Cemu if the files are not present in <code>mlc01\sys\title\0005001b\10058000</code>
* The <code>nn_olv.rpl</code> library may have compatibility issues in a small amount of software. This library is broken in offline mode. If the proper files are not pressent in the MLC folder then this library will not work correctly.
* The <code>nn_olv.rpl</code> library may have compatibility issues in a small amount of software. This library is broken in offline mode. If the proper files are not pressent in the MLC folder then this library will not work correctly.
* The <code>nn_ec.rpl</code> library may have compatibility issues or cause crashes in a small amount of games that use it, such as "Minecraft: Wii U Edition" in online mode.
* The <code>nn_ec.rpl</code> library may have compatibility issues or cause crashes in a small amount of games that use it, such as "Minecraft: Wii U Edition" in online mode. This is partly due to missing logic in Cemu that this library uses.
[[Category:Cemu]]
[[Category:Cemu]]

Revision as of 03:36, 14 July 2024

Description

RPL files are utility libraries and or drivers which contains important code and functions that are used by the Wii U's applications and software to interface with the OS. The system RPL files are included with every Wii U are part the Wii U's OS and are used by all Wii U games, applications and software. The system RPL files are located inside a separate storage chip inside the Wii U called: SLC or storage_slc internally, which contains a lot of critical system files such as the Wii U's firmware.

Cemu emulates parts of these libraries, however Cemu's implantation of these System RPL files is largely incomplete and as a result some fratures might not work correctly.

Providing Cemu with system RPL files can improve compatibility with some software features that Cemu doesn't emulate fully or correctly.

This wiki page provides information on how to dump them the system RPLs and which RPL files are considered compatible with Cemu.

Dumping

Using Ftpiiu

Ftpiiu is a program that hosts a FTP server from a Wii U. It allows an external PC to remotely upload, copy and delete files from the Wii U's system files or the inserted SD card. This option is only available on a modded Wii U with the Ftpiiu plugin installed. Additional software may be required to connect to a FTP server on a PC. You can use one of the programs below:

  • Windows File Explorer (Windows)
    Windows has a build in FTP-server feature in File Explorer, however these features are disabled in Windows by default and need to be activated. This can be done very easily inside the "Turn Windows features on or off" section inside the Windows Control Panel. To activate, open the page in the Control Panel and expand "Internet Information Services" Then check the box "FTP-server". Press ok and restart if prompted. You can now use FTP features in Windows Explorer. To use this function type ftp://[ip-address] into the address bar of the File Explorer and you will be connected to the FTP-server.

Enter the IP-address, seen in the Ftpiiu plugin settings, into your FTP client and navigate to the path below:

storage_slc/sys/title/00050010/1000400a/code

Copy all or some of the files of your choosing. DO NOT DELETE THEM FROM YOUR WII U AS THIS WILL BRICK YOUR WII U

You may find other folders containing similar files in the Wii U SLC, but they're old versions of the system RPL files that may not have up to date functions that Cemu aren't compatible with.

Using a Nand dump

The alternative, and more complicated, method is to use nanddumper on Wii U to dump the SLC nand image(slc.bin) and then decrypt and extract the files from it via one of the options below:

You need the Wii U common key to decrypt a slc.bin nand image. You can extract the key from your opt.bin file used for online play. For more information follow this guide: Optaining Keys for Keys.txt.

Loading

Cemu normally emulates parts of the system RPLs in high level. To force Cemu to load a system RPL file instead of emulating it, create a folder named cafeLibs inside the same directory as the Cemu.exe file and then place the .rpl files of your choosing inside the folder.

Make sure the "Load Shared Libraries" checkbox is set in the software's game profile or it won't use system RPL files and instead use Cemu's build in implementation (if available). Some predefined game profiles have this feature disabled by default, so make sure to check the game profile if you wish to use system RPL files.

  • If you're planning to use native system libraries, please make sure you have made a full MLC dump from your Wii U as many of these libraries uses files from the Wii U system files.
  • Do not copy all of the .rpl files because many of them will cause Cemu to crash or cause general compatibility issues.
  • Cemu only loads the RPL file if the title uses code and functions from it.
  • Some games are packaged with .rpl files in their code folder and are loaded by the game automatically and should therefore not be placed in the cafeLibs folder.

Tested files

These below are the files tested and known to work. Other files probably will properly just lead to games crashing on boot.

  • Title data required, means that the RPL file expects some system files to be present and will cause issues or crash Cemu if not present.
Filename Usage Size in bytes Cemu version
drmapp.rpl Digital rights management. Used by the Wii U Menu to check if the title that is being launched is legit. Required to boot downloaded software titles directly from the Wii U Menu (Title data required) 603,968 ?
erreula.rpl Error System Applet (Title data required). Displays the Native error applet when an error code is being displayed, which may display more informative errors to the users. 790,080 ?
nn_ec.rpl E-Commerce library. Used to interface whith Nintendo eShop to gather info about Add-On Content and your eShop balance and information as well as allowing in-game purchases and downloads via the AOC overlay app. Largely useless due to missing logic to tile switching in Cemu. 176,128 ?
nn_fp.rpl Friend Presence (Friend list library). Uses the official native functions from the Wii U to use friend features. 21,824 2.0-57+
nn_olv.rpl Olive (Miiverse) library (Title data required). Implements Miiverse features by adding support for the Miiverse API utilized by serveral Wii U titles and the system software. This library is hardcoded to connect to Nintendo's Miiverse servers. 131,072 2.0-77+ Recommended
nn_sl.rpl Title management for Wii U Menu 403,904 ?
nsyskbd.rpl Keyboard driver for software keyboard 20,416 ?
snd_user.rpl Extended sound effects for Sound driver 1. Fixes missing sound effects in affected software 84,032 1.11.5+
snduser2.rpl Extended sound effects for Sound driver 2. Fixes missing sound effects in affected software. 111,360 1.11.5+
swkbd.rpl Software keyboard (Title data required). Displays the native Wii U software keyboard on the screen when opened. 1,116,288 ?

Compatibility Notes

Title specific compatibility improvements

  • The keyboard files make name entry work in Pokkén Tournament.
  • Monster Hunter 3 Tri G(JP) requires snd_user.rpl, swkbd.rpl, nsyskbd.rpl and nn_sl.rpl to boot
  • The nn_ec.rpl is required to successfully start Lego Dimensions when erreula.rpl is present.
  • The drmapp.rpl and nn_sl.rpl system libraries allows Cemu to title switch from the Wii U Menu.
  • The nn_olv.rpl library fixes a crash in the Miiverse applet, as well as allowing a connection to the Miiverse servers in games that use it, however this just results in an error code since the service is discontinued.

RPL Compatibility warnings

  • The swkbd.rpl being present will crash Cemu if the corresponding Title files for the Software Keyboard are not present in mlc01\sys\title\0005001b\1004F000
  • The erreula.rpl being present will crash Cemu if the corresponding Title files for the ErrEula are not present in mlc01\sys\title\0005001b\10051000
  • The drmapp.rpl being present will crash Cemu if the files are not present in mlc01\sys\title\0005001b\10058000
  • The nn_olv.rpl library may have compatibility issues in a small amount of software. This library is broken in offline mode. If the proper files are not pressent in the MLC folder then this library will not work correctly.
  • The nn_ec.rpl library may have compatibility issues or cause crashes in a small amount of games that use it, such as "Minecraft: Wii U Edition" in online mode. This is partly due to missing logic in Cemu that this library uses.