Need help using SYSLaunchTitle function.

Discussion in 'Wii U - Homebrew' started by Demothens, Aug 12, 2018.

  1. Demothens
    OP

    Demothens Member

    Newcomer
    1
    Jul 27, 2018
    United States
    I recently started a homebrew project and I'm trying to figure out how to launch an installed game from my app. This appears to be doable using the SYSLaunchTitle function from the sysapp library, but every implementation i have tried using leads to the console hanging on a black screen. My understanding from looking at how other apps use the function is that once called the homebrew needs to exit and return 0xFFFFFFFD as an exitcode for homebrew launcher, but this is results in the previously mentioned black screen. I'm also using the function SYSCheckTitleExists before calling SYSLaunchTitle to make sure I'm not messing up on the title id, and SYSCheckTitleExists returns true.

    I'm completely new to Wii U programming and C as well so I'm sure I'm doing something dumb. Any help would be appreciated. For clarification I'm creating the homebrew using WUT.

    Thanks.
     
  2. NexoCube

    NexoCube stop using piracy :(

    Member
    6
    Nov 3, 2015
    France
    Stack Pointer
    By looking at the .RPL (sysapp) on IDA, i've seen that every function (SYSLaunchMiiStudio, SYSLaunchSettngs, SYSLaunchAccount and many more) call a function (at base+0x1060):

    What it does:

    1) It will pack arguments and preload the app. (it will warn the loader/kernel that you want to switch app using OSSendAppSwitchRequest)
    2) It will check the Title you are trying to launch isn't gonna launch the "Account" app (because it is a custom launch process for it)
    3) it will call SYSLaunchMenu
    4) Then it finally calls OSLaunchTitlel (which alloc/free stuff, play with argv/argc and call a bunch of syscalls like "OS_LaunchTitleArgvStr", "launch_title", "call_title")

    "Every" SYSLaunch function goes through this process except SYSLaunchTitle which is weird, it only goes through step1 then stops.

    So you either implement the 3 last steps yourself, or you use the export "_SYSLaunchTitleDirect" (which have yet unknown arguments), you can play with it to figure out the arguments needed !

    I hope i helped. Respond if you need more help or if it didn't worked

    EDIT: im a noob and might be interpreting stuff the wrong way
     
    Last edited by NexoCube, Aug 18, 2018
    Demothens likes this.
Loading...