Implement NS_LaunchFIRM and NS_LaunchApplicationFIRM
This commit is contained in:
parent
bd34fd59db
commit
7bb9a7ef99
@ -10,6 +10,12 @@ Result nsInit(void);
|
||||
/// Exits NS.
|
||||
void nsExit(void);
|
||||
|
||||
/**
|
||||
* @brief Launches a title and the required firmware (only if necessary).
|
||||
* @param titleid ID of the title to launch, 0 for gamecard, JPN System Settings' titleID for System Settings.
|
||||
*/
|
||||
Result NS_LaunchFIRM(u64 titleid);
|
||||
|
||||
/**
|
||||
* @brief Launches a title.
|
||||
* @param titleid ID of the title to launch, or 0 for gamecard.
|
||||
@ -18,6 +24,13 @@ void nsExit(void);
|
||||
*/
|
||||
Result NS_LaunchTitle(u64 titleid, u32 launch_flags, u32 *procid);
|
||||
|
||||
/**
|
||||
* @brief Launches a title and the required firmware.
|
||||
* @param titleid ID of the title to launch, 0 for gamecard.
|
||||
* @param flags Flags for firm-launch. bit0: require an application title-info structure in FIRM paramters to be specified via FIRM parameters. bit1: if clear, NS will check certain Configuration Memory fields.
|
||||
*/
|
||||
Result NS_LaunchApplicationFIRM(u64 titleid, u32 flags);
|
||||
|
||||
/**
|
||||
* @brief Reboots to a title.
|
||||
* @param mediatype Mediatype of the title.
|
||||
|
@ -25,6 +25,20 @@ void nsExit(void)
|
||||
svcCloseHandle(nsHandle);
|
||||
}
|
||||
|
||||
Result NS_LaunchFIRM(u64 titleid)
|
||||
{
|
||||
Result ret = 0;
|
||||
u32 *cmdbuf = getThreadCommandBuffer();
|
||||
|
||||
cmdbuf[0] = IPC_MakeHeader(0x1,3,0); // 0x100C0
|
||||
cmdbuf[1] = titleid & 0xffffffff;
|
||||
cmdbuf[2] = (titleid >> 32) & 0xffffffff;
|
||||
|
||||
if(R_FAILED(ret = svcSendSyncRequest(nsHandle)))return ret;
|
||||
|
||||
return (Result)cmdbuf[1];
|
||||
}
|
||||
|
||||
Result NS_LaunchTitle(u64 titleid, u32 launch_flags, u32 *procid)
|
||||
{
|
||||
Result ret = 0;
|
||||
@ -42,6 +56,21 @@ Result NS_LaunchTitle(u64 titleid, u32 launch_flags, u32 *procid)
|
||||
return (Result)cmdbuf[1];
|
||||
}
|
||||
|
||||
Result NS_LaunchApplicationFIRM(u64 titleid, u32 flags)
|
||||
{
|
||||
Result ret = 0;
|
||||
u32 *cmdbuf = getThreadCommandBuffer();
|
||||
|
||||
cmdbuf[0] = IPC_MakeHeader(0x5,3,0); // 0x500C0
|
||||
cmdbuf[1] = titleid & 0xffffffff;
|
||||
cmdbuf[2] = (titleid >> 32) & 0xffffffff;
|
||||
cmdbuf[3] = flags;
|
||||
|
||||
if(R_FAILED(ret = svcSendSyncRequest(nsHandle)))return ret;
|
||||
|
||||
return (Result)cmdbuf[1];
|
||||
}
|
||||
|
||||
Result NS_RebootToTitle(u8 mediatype, u64 titleid)
|
||||
{
|
||||
Result ret = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user