Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is an initial implementation of Download Play (
nn_dlp
) on the Wii U. Research has revealed that there aren't any Wii U games that used this feature nor there could have been any, because the IOSU requires system archives that aren't present on the Wii U in order to initialize.Homebrew that want to use this library must use Aroma 22 or later, as it adds the necessary permission group to let homebrew access DLP, and applies the necessary patches to make DLP usable. Otherwise, the console would crash as it doesn't have permission to use DLP.
The name of the DLP child MUST be like this:
00040001XXXXXXYY.cia
, whereXXXXXX
is the inputuniqueId
andYY
is thechildIndex
from theInitialize
functions.It should be noted that while the DLP child that is distributed is intended to be stored at
/vol/content/dlp/app/TITLE_ID.cia
, the reading of the file is performed on IOSU land, so Aroma's content redirection doesn't work here. This is worked around in Aroma 22 or later, which tries to read the DLP child from the SD card instead, insidesd:/dlp/app/TITLE_ID.cia
.Most of the input parameters have been named using the print logging that was present on the IOSU.
The mangled symbols of DLP seem to have the
static
label on them. Because of that, it's very likely thatServer
andServerPrivate
are classes, so they have been classified that way. I'm not sure ifServerPrivate
should inheritServer
, so at the moment it doesn't.Research note: the
State
functions output the state as auint32_t
. However, they are stored internally as auint8_t
This PR has been tested successfully using the Download Play client from the 3DS. A working example can be found here: https://github.com/DaniElectra/dlp-wiiu-test