2015-08-04 21:57:37 -04:00
|
|
|
/*
|
|
|
|
|
* patches.h
|
|
|
|
|
*/
|
2016-03-06 03:41:07 +01:00
|
|
|
|
2016-03-11 15:08:05 +01:00
|
|
|
#pragma once
|
2015-08-04 21:57:37 -04:00
|
|
|
|
|
|
|
|
#include "types.h"
|
|
|
|
|
|
2016-05-25 14:34:43 +02:00
|
|
|
typedef struct patchData {
|
|
|
|
|
u32 offset[2];
|
|
|
|
|
union {
|
|
|
|
|
u8 type0[8];
|
|
|
|
|
u16 type1;
|
|
|
|
|
} patch;
|
|
|
|
|
u32 type;
|
|
|
|
|
} patchData;
|
2015-08-21 14:11:23 -04:00
|
|
|
|
2016-05-11 19:28:28 +02:00
|
|
|
u8 *getProcess9(u8 *pos, u32 size, u32 *process9Size, u32 *process9MemAddr);
|
2016-05-25 14:34:43 +02:00
|
|
|
void patchSignatureChecks(u8 *pos, u32 size);
|
2016-05-25 20:50:45 +02:00
|
|
|
void patchTitleInstallMinVersionCheck(u8 *pos, u32 size);
|
2016-05-25 14:34:43 +02:00
|
|
|
void patchFirmlaunches(u8 *pos, u32 size, u32 process9MemAddr);
|
|
|
|
|
void patchFirmWrites(u8 *pos, u32 size);
|
|
|
|
|
void patchFirmWriteSafe(u8 *pos, u32 size);
|
|
|
|
|
void reimplementSvcBackdoor(u8 *pos, u32 size);
|
2016-07-02 14:44:01 +02:00
|
|
|
void applyLegacyFirmPatches(u8 *pos, FirmwareType firmType, bool isN3DS);
|
2016-05-25 14:34:43 +02:00
|
|
|
u32 getLoader(u8 *pos, u32 *loaderSize);
|