Added 6.61 support.

This commit is contained in:
qwikrazor87 2015-01-20 11:12:51 -09:00
parent 4d523e1ef9
commit 5ac833fe9d
44 changed files with 449 additions and 81 deletions

View File

@ -9,6 +9,11 @@ endif
ifeq ($(CONFIG_660), 1)
CFLAGS += -DCONFIG_660=1
PSP_FW_VERSION = 660
endif
ifeq ($(CONFIG_661), 1)
CFLAGS += -DCONFIG_661=1
PSP_FW_VERSION = 661
endif
all:

View File

@ -23,6 +23,19 @@
#define SEEDKEY_RETURN_ADDR 0x11F4
#define SYSCON_DWORD_ADDR 0x0400714C;
#endif
#elif _PSP_FW_VERSION == 661
#if PSP_MODEL == 0
#define REBOOTEX_ADDR_PATCH 0xCF18
#define SYSCON_DWORD_ADDR 0x04006440
#elif PSP_MODEL == 1
#define REBOOTEX_ADDR_PATCH 0xDC98
#define SEEDKEY_PATCH_ADDR 0x1170
#define SEEDKEY_RETURN_ADDR 0x11F4
#define SYSCON_DWORD_ADDR 0x0400714C;
#endif
#else

View File

@ -41,6 +41,28 @@ const unsigned int seed_key[] = {
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000
};
#elif _PSP_FW_VERSION == 661
const unsigned int seed_key[] = {
0x830D9389,
0xF2027F71,
0x2D060DC5,
0xBA78A905,
0x26C9824D,
0x3335A7A5,
0xD5CD6368,
0xD136A11D,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,

View File

@ -86,6 +86,8 @@ int (* memlmd_3F2AC9C6)(void *a0,void *a1) = NULL;
#define DEVKIT_VER 0x06030910
#elif _PSP_FW_VERSION == 660
#define DEVKIT_VER 0x06060010
#elif _PSP_FW_VERSION == 661
#define DEVKIT_VER 0x06060110
#endif
void ClearCaches()

View File

@ -156,6 +156,63 @@ static const struct AddrList payloadex_patch_list = {
};
#elif _PSP_FW_VERSION == 661
static const struct AddrList payloadex_patch_list = {
#if PSP_MODEL == 0
.function_list = {
.BootLfatOpen = 0x88604B38,
.BootLfatRead = 0x88604CAC,
.BootLfatClose = 0x88604C50,
.CheckPspConfig = 0x8860A9C0,
.DcacheClearAddr= 0x88601614,
.IcacheClearAddr= 0x88600EC0,
},
.patch_list = {
.BootLfatOpenPatch = 0x88603FD0,
.BootLfatReadPatch = 0x88604038,
.BootLfatClosePatch = 0x88604058,
.CheckPspConfigPatch= 0x886036AC,
.KdebugPatchAddr = 0x8860C8EC,
.BtHeaderPatchAddr = 0x8860A9F4,
.LfatMountPatchAddr = 0x88603FC8,
.LfatSeekPatchAddr1 = 0x88604018,
.LfatSeekPatchAddr2 = 0x88604028,
.LoadCorePatchAddr = 0x886034B4,
.HashCheckPatchAddr = 0x88603A6C,
},
#elif (PSP_MODEL == 1)
.function_list = {
.BootLfatOpen = 0x88604C00,
.BootLfatRead = 0x88604D74,
.BootLfatClose = 0x88604D18,
.CheckPspConfig = 0x8860AA80,
.DcacheClearAddr= 0x886016DC,
.IcacheClearAddr= 0x88600F88,
},
.patch_list = {
.BootLfatOpenPatch = 0x88604098,
.BootLfatReadPatch = 0x88604100,
.BootLfatClosePatch = 0x88604120,
.CheckPspConfigPatch= 0x88603790,
.KdebugPatchAddr = 0x8860C9AC,
.BtHeaderPatchAddr = 0x8860AAB4,
.LfatMountPatchAddr = 0x88604090,
.LfatSeekPatchAddr1 = 0x886040E0,
.LfatSeekPatchAddr2 = 0x886040F0,
.LoadCorePatchAddr = 0x8860357C,
.HashCheckPatchAddr = 0x88603B34,
},
#endif
.memlmd_list = {
.ModuleOffsetAddr = 0x00000AF8,
.SigcheckPatchAddr = 0x00005994,
.SigcheckFuncAddr = 0x00007824,//memlmd_6192F715
.DecryptPatchAddr = 0x00005970,
.DecryptFuncAddr = 0x0000783C,//memlmd_EF73E85B
},
};
#else
#error Target PatchList is not found !

View File

@ -20,6 +20,10 @@ CFLAGS += -DCONFIG_660=1
PSP_FW_VERSION = 660
endif
ifeq ($(CONFIG_661), 1)
CFLAGS += -DCONFIG_661=1
PSP_FW_VERSION = 661
endif
CFLAGS = -O2 -G0 -Wall -fshort-wchar
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti

View File

@ -24,6 +24,9 @@ PSP_MAIN_THREAD_ATTR(PSP_THREAD_ATTR_VSH);
#elif _PSP_FW_VERSION == 660
#define DEVKIT_VER 0x06060010
#define VERSION_STR "6.60"
#elif _PSP_FW_VERSION == 661
#define DEVKIT_VER 0x06060110
#define VERSION_STR "6.61"
#endif
#define printf pspDebugScreenPrintf

View File

@ -20,6 +20,7 @@
typedef unsigned int uint;
#define FW_661 0x06060110
#define FW_660 0x06060010
#define FW_639 0x06030910
#define FW_635 0x06030510

View File

@ -36,6 +36,11 @@ CFLAGS += -DCONFIG_660=1
PSP_FW_VERSION = 660
endif
ifeq ($(CONFIG_661), 1)
CFLAGS += -DCONFIG_661=1
PSP_FW_VERSION = 661
endif
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)

View File

@ -121,8 +121,9 @@ int sctrlKernelExitVSH(struct SceKernelLoadExecVSHParam *param)
k1 = pspSdkSetK1(0);
switch(psp_fw_version) {
#ifdef CONFIG_660
#if defined(CONFIG_660) || defined(CONFIG_661)
case FW_660:
case FW_661:
ret = sceKernelExitVSH_660(param);
break;
#endif
@ -156,8 +157,9 @@ int sctrlKernelLoadExecVSHDisc(const char *file, struct SceKernelLoadExecVSHPara
k1 = pspSdkSetK1(0);
switch(psp_fw_version) {
#ifdef CONFIG_660
#if defined(CONFIG_660) || defined(CONFIG_661)
case FW_660:
case FW_661:
ret = sceKernelLoadExecVSHDisc_660(file, param);
break;
#endif
@ -191,8 +193,9 @@ int sctrlKernelLoadExecVSHDiscUpdater(const char *file, struct SceKernelLoadExec
k1 = pspSdkSetK1(0);
switch(psp_fw_version) {
#ifdef CONFIG_660
#if defined(CONFIG_660) || defined(CONFIG_661)
case FW_660:
case FW_661:
ret = sceKernelLoadExecVSHDiscUpdater_660(file, param);
break;
#endif
@ -226,8 +229,9 @@ int sctrlKernelLoadExecVSHMs1(const char *file, struct SceKernelLoadExecVSHParam
k1 = pspSdkSetK1(0);
switch(psp_fw_version) {
#ifdef CONFIG_660
#if defined(CONFIG_660) || defined(CONFIG_661)
case FW_660:
case FW_661:
ret = sceKernelLoadExecVSHMs1_660(file, param);
break;
#endif
@ -261,8 +265,9 @@ int sctrlKernelLoadExecVSHMs2(const char *file, struct SceKernelLoadExecVSHParam
k1 = pspSdkSetK1(0);
switch(psp_fw_version) {
#ifdef CONFIG_660
#if defined(CONFIG_660) || defined(CONFIG_661)
case FW_660:
case FW_661:
ret = sceKernelLoadExecVSHMs2_660(file, param);
break;
#endif
@ -296,8 +301,9 @@ int sctrlKernelLoadExecVSHEf2(const char *file, struct SceKernelLoadExecVSHParam
k1 = pspSdkSetK1(0);
switch(psp_fw_version) {
#ifdef CONFIG_660
#if defined(CONFIG_660) || defined(CONFIG_661)
case FW_660:
case FW_661:
ret = sceKernelLoadExecVSHEf2_660(file, param);
break;
#endif
@ -331,8 +337,9 @@ int sctrlKernelLoadExecVSHMs3(const char *file, struct SceKernelLoadExecVSHParam
k1 = pspSdkSetK1(0);
switch(psp_fw_version) {
#ifdef CONFIG_660
#if defined(CONFIG_660) || defined(CONFIG_661)
case FW_660:
case FW_661:
ret = sceKernelLoadExecVSHMs3_660(file, param);
break;
#endif
@ -366,8 +373,9 @@ int sctrlKernelLoadExecVSHMs4(const char *file, struct SceKernelLoadExecVSHParam
k1 = pspSdkSetK1(0);
switch(psp_fw_version) {
#ifdef CONFIG_660
#if defined(CONFIG_660) || defined(CONFIG_661)
case FW_660:
case FW_661:
ret = sceKernelLoadExecVSHMs4_660(file, param);
break;
#endif
@ -401,8 +409,9 @@ SceUID sctrlKernelAllocPartitionMemory(SceUID partitionid, const char * name, in
k1 = pspSdkSetK1(0);
switch(psp_fw_version) {
#ifdef CONFIG_660
#if defined(CONFIG_660) || defined(CONFIG_661)
case FW_660:
case FW_661:
ret = sceKernelAllocPartitionMemory_660(partitionid, name, type, size, addr);
break;
#endif
@ -436,8 +445,9 @@ void* sctrlKernelGetBlockHeadAddr(SceUID blockid)
k1 = pspSdkSetK1(0);
switch(psp_fw_version) {
#ifdef CONFIG_660
#if defined(CONFIG_660) || defined(CONFIG_661)
case FW_660:
case FW_661:
ret = sceKernelGetBlockHeadAddr_660(blockid);
break;
#endif
@ -468,8 +478,9 @@ u32 sctrlKernelGetModel(void)
u32 model = -1;
switch(psp_fw_version) {
#ifdef CONFIG_660
#if defined(CONFIG_660) || defined(CONFIG_661)
case FW_660:
case FW_661:
model = sceKernelGetModel_660();
break;
#endif
@ -515,8 +526,9 @@ SceModule* sctrlKernelFindModuleByName(char *modname)
SceModule *mod = NULL;
switch(psp_fw_version) {
#ifdef CONFIG_660
#if defined(CONFIG_660) || defined(CONFIG_661)
case FW_660:
case FW_661:
mod = sceKernelFindModuleByName_660(modname);
break;
#endif
@ -545,8 +557,9 @@ int sctrlKernelSetDdrMemoryProtection(void *addr, int size, int prot)
int ret = -1;
switch(psp_fw_version) {
#ifdef CONFIG_660
#if defined(CONFIG_660) || defined(CONFIG_661)
case FW_660:
case FW_661:
ret = sceKernelSetDdrMemoryProtection_660(addr, size, prot);
break;
#endif
@ -575,8 +588,9 @@ SceUID sctrlKernelCreateHeap(SceUID partitionid, SceSize size, int unk, const ch
SceUID ret = -1;
switch(psp_fw_version) {
#ifdef CONFIG_660
#if defined(CONFIG_660) || defined(CONFIG_661)
case FW_660:
case FW_661:
ret = sceKernelCreateHeap_660(partitionid, size, unk, name);
break;
#endif
@ -605,8 +619,9 @@ int sctrlKernelDeleteHeap(SceUID heapid)
int ret = -1;
switch(psp_fw_version) {
#ifdef CONFIG_660
#if defined(CONFIG_660) || defined(CONFIG_661)
case FW_660:
case FW_661:
ret = sceKernelDeleteHeap_660(heapid);
break;
#endif
@ -635,8 +650,9 @@ int sctrlKernelFreeHeapMemory(SceUID heapid, void *block)
int ret = -1;
switch(psp_fw_version) {
#ifdef CONFIG_660
#if defined(CONFIG_660) || defined(CONFIG_661)
case FW_660:
case FW_661:
ret = sceKernelFreeHeapMemory_660(heapid, block);
break;
#endif
@ -665,8 +681,9 @@ void* sctrlKernelAllocHeapMemory(SceUID heapid, SceSize size)
void *p = NULL;
switch(psp_fw_version) {
#ifdef CONFIG_660
#if defined(CONFIG_660) || defined(CONFIG_661)
case FW_660:
case FW_661:
p = sceKernelAllocHeapMemory_660(heapid, size);
break;
#endif
@ -695,8 +712,9 @@ int sctrlKernelGetSystemStatus(void)
int ret = -1;
switch(psp_fw_version) {
#ifdef CONFIG_660
#if defined(CONFIG_660) || defined(CONFIG_661)
case FW_660:
case FW_661:
ret = sceKernelGetSystemStatus_660();
break;
#endif
@ -725,8 +743,9 @@ int sctrlKernelQueryMemoryPartitionInfo(int pid, PspSysmemPartitionInfo *info)
int ret = -1;
switch(psp_fw_version) {
#ifdef CONFIG_660
#if defined(CONFIG_660) || defined(CONFIG_661)
case FW_660:
case FW_661:
ret = sceKernelQueryMemoryPartitionInfo_660(pid, info);
break;
#endif
@ -755,8 +774,9 @@ int sctrlKernelPartitionMaxFreeMemSize(int pid)
int ret = -1;
switch(psp_fw_version) {
#ifdef CONFIG_660
#if defined(CONFIG_660) || defined(CONFIG_661)
case FW_660:
case FW_661:
ret = sceKernelPartitionMaxFreeMemSize_660(pid);
break;
#endif
@ -785,8 +805,9 @@ int sctrlKernelPartitionTotalFreeMemSize(int pid)
int ret = -1;
switch(psp_fw_version) {
#ifdef CONFIG_660
#if defined(CONFIG_660) || defined(CONFIG_661)
case FW_660:
case FW_661:
ret = sceKernelPartitionTotalFreeMemSize_660(pid);
break;
#endif
@ -818,8 +839,9 @@ int sctrlKernelQuerySystemCall(void *func_addr)
k1 = pspSdkSetK1(0);
switch(psp_fw_version) {
#ifdef CONFIG_660
#if defined(CONFIG_660) || defined(CONFIG_661)
case FW_660:
case FW_661:
ret = sceKernelQuerySystemCall_660(func_addr);
break;
#endif
@ -850,8 +872,9 @@ SceModule* sctrlKernelFindModuleByUID(SceUID modid)
SceModule *mod = NULL;
switch(psp_fw_version) {
#ifdef CONFIG_660
#if defined(CONFIG_660) || defined(CONFIG_661)
case FW_660:
case FW_661:
mod = sceKernelFindModuleByUID_660(modid);
break;
#endif
@ -880,8 +903,9 @@ SceModule* sctrlKernelFindModuleByAddress(u32 address)
SceModule *mod = NULL;
switch(psp_fw_version) {
#ifdef CONFIG_660
#if defined(CONFIG_660) || defined(CONFIG_661)
case FW_660:
case FW_661:
mod = sceKernelFindModuleByAddress_660(address);
break;
#endif
@ -910,8 +934,9 @@ int sctrlKernelCheckExecFile(unsigned char * buffer, int * check)
int ret = -1;
switch(psp_fw_version) {
#ifdef CONFIG_660
#if defined(CONFIG_660) || defined(CONFIG_661)
case FW_660:
case FW_661:
ret = sceKernelCheckExecFile_660(buffer, check);
break;
#endif
@ -940,8 +965,9 @@ int sctrlKernelLoadModule(const char *path, int flags, SceKernelLMOption *option
int ret = -1;
switch(psp_fw_version) {
#ifdef CONFIG_660
#if defined(CONFIG_660) || defined(CONFIG_661)
case FW_660:
case FW_661:
ret = sceKernelLoadModule_660(path, flags, option);
break;
#endif
@ -970,8 +996,9 @@ int sctrlKernelStartModule(SceUID modid, SceSize argsize, void *argp, int *statu
int ret = -1;
switch(psp_fw_version) {
#ifdef CONFIG_660
#if defined(CONFIG_660) || defined(CONFIG_661)
case FW_660:
case FW_661:
ret = sceKernelStartModule_660(modid, argsize, argp, status, option);
break;
#endif
@ -1000,8 +1027,9 @@ int sctrlKernelUnloadModule(SceUID modid)
int ret = -1;
switch(psp_fw_version) {
#ifdef CONFIG_660
#if defined(CONFIG_660) || defined(CONFIG_661)
case FW_660:
case FW_661:
ret = sceKernelUnloadModule_660(modid);
break;
#endif
@ -1030,8 +1058,9 @@ SceUID sctrlKernelLoadModuleWithApitype2(int apitype, const char *path, int flag
SceUID ret = -1;
switch(psp_fw_version) {
#ifdef CONFIG_660
#if defined(CONFIG_660) || defined(CONFIG_661)
case FW_660:
case FW_661:
ret = sceKernelLoadModuleWithApitype2_660(apitype, path, flags, option);
break;
#endif
@ -1058,7 +1087,7 @@ SceUID sctrlKernelLoadModuleWithApitype2(int apitype, const char *path, int flag
int sctrlKernelBootFrom(void)
{
if(psp_model == PSP_GO) {
if(psp_fw_version == FW_660) {
if((psp_fw_version == FW_660) || (psp_fw_version == FW_661)) {
return sceKernelBootFromGo_660();
} else if(psp_fw_version == FW_639) {
return sceKernelBootFromGo_635();
@ -1077,8 +1106,9 @@ int sctrlReadBufferPositive(SceCtrlData *pad_data, int count)
int ret = -1;
switch(psp_fw_version) {
#ifdef CONFIG_660
#if defined(CONFIG_660) || defined(CONFIG_661)
case FW_660:
case FW_661:
ret = sceCtrlReadBufferPositive_660(pad_data, count);
break;
#endif

View File

@ -39,6 +39,13 @@ PSP_FW_VERSION = 660
PSP_EBOOT_TITLE = 660
endif
ifeq ($(CONFIG_661), 1)
CFLAGS += -DCONFIG_661=1
OBJS += ../PXE/Launcher/kxp_660.o
PSP_FW_VERSION = 661
PSP_EBOOT_TITLE = 661
endif
BUILD_PRX = 1
PSP_EBOOT_TITLE += PRO-C Fast Recovery

View File

@ -262,7 +262,7 @@ void recovery_sysmem_635(void)
}
#endif
#ifdef CONFIG_660
#if defined(CONFIG_660) || defined(CONFIG_661)
void recovery_sysmem_660()
{
_sw(0x3C058801, SYSMEM_TEXT_ADDR + g_offs->sysmem_patch.sceKernelPowerLockForUser); // lui $a1, 0x8801
@ -284,8 +284,8 @@ int kernel_permission_call(void)
void (* _sceKernelIcacheInvalidateAll)(void) = (void *)(SYSMEM_TEXT_ADDR + g_offs->sysmem_patch.sceKernelIcacheInvalidateAll);
void (* _sceKernelDcacheWritebackInvalidateAll)(void) = (void *)(SYSMEM_TEXT_ADDR + g_offs->sysmem_patch.sceKernelDcacheWritebackInvalidateAll);
#ifdef CONFIG_660
if(psp_fw_version == FW_660) {
#if defined(CONFIG_660) || defined(CONFIG_661)
if((psp_fw_version == FW_660) || (psp_fw_version == FW_661)) {
recovery_sysmem_660();
}
#endif
@ -545,7 +545,7 @@ int main(int argc, char * argv[])
}
#endif
#ifdef CONFIG_660
#if defined(CONFIG_660) || defined(CONFIG_661)
{
do_exploit_660();
}

View File

@ -35,6 +35,11 @@ CFLAGS += -DCONFIG_660=1
PSP_FW_VERSION = 660
endif
ifeq ($(CONFIG_661), 1)
CFLAGS += -DCONFIG_661=1
PSP_FW_VERSION = 661
endif
BUILD_PRX=1
USE_KERNEL_LIBS=1
USE_KERNEL_LIBC=1

View File

@ -18,13 +18,19 @@
#include <pspsdk.h>
#include "galaxy_patch_offset.h"
#if !defined(CONFIG_635) && !defined(CONFIG_620) && !defined(CONFIG_639) && !defined(CONFIG_660)
#error You have to define CONFIG_620 or CONFIG_635 or CONFIG_639 or CONFIG_660
#if !defined(CONFIG_635) && !defined(CONFIG_620) && !defined(CONFIG_639) && !defined(CONFIG_660) && !defined(CONFIG_661)
#error You have to define CONFIG_620 or CONFIG_635 or CONFIG_639 or CONFIG_660 or CONFIG_661
#endif
#if defined(CONFIG_660) || defined(CONFIG_661)
#ifdef CONFIG_660
PatchOffset g_660_offsets = {
.fw_version = FW_660,
#endif
#ifdef CONFIG_661
PatchOffset g_661_offsets = {
.fw_version = FW_661,
#endif
.StoreFd = 0x00000188 + 0x00008900, /* See 0x00004D98 */
.Data1 = 0x00005BB4 - 0x00005BA4 + 0x00000188 + 0x00008900,
.Data2 = 0x00005BBC - 0x00005BA4 + 0x00000188 + 0x00008900,
@ -114,6 +120,12 @@ PatchOffset *g_offs = NULL;
void setup_patch_offset_table(u32 fw_version)
{
#ifdef CONFIG_661
if(fw_version == g_661_offsets.fw_version) {
g_offs = &g_661_offsets;
}
#endif
#ifdef CONFIG_660
if(fw_version == g_660_offsets.fw_version) {
g_offs = &g_660_offsets;

View File

@ -36,6 +36,11 @@ CFLAGS += -DCONFIG_660=1
PSP_FW_VERSION = 660
endif
ifeq ($(CONFIG_661), 1)
CFLAGS += -DCONFIG_661=1
PSP_FW_VERSION = 661
endif
PRX_EXPORTS = exports.exp
BUILD_PRX=1

View File

@ -18,13 +18,19 @@
#include <pspsdk.h>
#include "inferno_patch_offset.h"
#if !defined(CONFIG_635) && !defined(CONFIG_620) && !defined(CONFIG_639) && !defined(CONFIG_660)
#error You have to define CONFIG_620 or CONFIG_635 or CONFIG_639 or CONFIG_660
#if !defined(CONFIG_635) && !defined(CONFIG_620) && !defined(CONFIG_639) && !defined(CONFIG_660) && !defined(CONFIG_661)
#error You have to define CONFIG_620 or CONFIG_635 or CONFIG_639 or CONFIG_660 or CONFIG_661
#endif
#if defined(CONFIG_660) || defined(CONFIG_661)
#ifdef CONFIG_660
PatchOffset g_660_offsets = {
.fw_version = FW_660,
#endif
#ifdef CONFIG_661
PatchOffset g_661_offsets = {
.fw_version = FW_661,
#endif
.patches = {
0x00003FEC,
0x00004024,
@ -74,6 +80,12 @@ PatchOffset *g_offs = NULL;
void setup_patch_offset_table(u32 fw_version)
{
#ifdef CONFIG_661
if(fw_version == g_661_offsets.fw_version) {
g_offs = &g_661_offsets;
}
#endif
#ifdef CONFIG_660
if(fw_version == g_660_offsets.fw_version) {
g_offs = &g_660_offsets;

View File

@ -37,6 +37,11 @@ CFLAGS += -DCONFIG_660=1
PSP_FW_VERSION = 660
endif
ifeq ($(CONFIG_661), 1)
CFLAGS += -DCONFIG_661=1
PSP_FW_VERSION = 661
endif
LIBDIR = ../libs
LDFLAGS =
LIBS = -lpspkubridge -lpsppower

View File

@ -28,7 +28,7 @@
#include "galaxy.h"
#include "inferno.h"
#ifdef CONFIG_660
#if defined(CONFIG_660) || defined(CONFIG_661)
#include "march33_660.h"
#endif
@ -238,8 +238,8 @@ int install_cfw(void)
sceIoRemove(g_old_cfw_files[i]);
}
#ifdef CONFIG_660
if(psp_fw_version == FW_660) {
#if defined(CONFIG_660) || defined(CONFIG_661)
if((psp_fw_version == FW_660) || (psp_fw_version == FW_661)) {
g_file_lists[4].buf = march33_660;
g_file_lists[4].size = &size_march33_660;
}
@ -576,8 +576,8 @@ int main(int argc, char *argv[])
}
#endif
#ifdef CONFIG_660
if(psp_fw_version == FW_660) {
#if defined(CONFIG_660) || defined(CONFIG_661)
if((psp_fw_version == FW_660) || (psp_fw_version == FW_661)) {
goto version_OK;
}
#endif

View File

@ -39,6 +39,10 @@ ifeq ($(CONFIG_660), 1)
OPT_FLAGS+=CONFIG_660=1
endif
ifeq ($(CONFIG_661), 1)
OPT_FLAGS+=CONFIG_661=1
endif
ifeq ($(PSID_CHECK), 1)
RELEASE_OPTION=PSID_CHECK=1
endif
@ -69,6 +73,9 @@ ifeq ($(CONFIG_639), 1)
endif
ifeq ($(CONFIG_660), 1)
@mkdir $(DISTRIBUTE)/PSP/GAME/CIPL_Flasher || true
endif
ifeq ($(CONFIG_661), 1)
@mkdir $(DISTRIBUTE)/PSP/GAME/CIPL_Flasher || true
endif
@rm -f ./Common/*.o
@ -124,6 +131,14 @@ ifeq ($(CONFIG_660), 1)
@cp $(CIPL_INSTALLER)/EBOOT.PBP $(DISTRIBUTE)/PSP/GAME/CIPL_Flasher
@cp $(CIPL_INSTALLER)/kpspident/kpspident.prx $(DISTRIBUTE)/PSP/GAME/CIPL_Flasher
endif
ifeq ($(CONFIG_661), 1)
@cd $(CIPL); make $(OPT_FLAGS) $(DEBUG_OPTION)
@cd $(CIPL_INSTALLER); make $(OPT_FLAGS) $(DEBUG_OPTION)
@cd $(CIPL_INSTALLER)/kpspident; make $(OPT_FLAGS) $(DEBUG_OPTION)
@cp $(CIPL_INSTALLER)/ipl_update.prx $(DISTRIBUTE)/PSP/GAME/CIPL_Flasher
@cp $(CIPL_INSTALLER)/EBOOT.PBP $(DISTRIBUTE)/PSP/GAME/CIPL_Flasher
@cp $(CIPL_INSTALLER)/kpspident/kpspident.prx $(DISTRIBUTE)/PSP/GAME/CIPL_Flasher
endif
clean:
@cd $(REBOOTEXBIN); make clean $(DEBUG_OPTION)
@ -149,6 +164,11 @@ ifeq ($(CONFIG_660), 1)
@cd $(CIPL); make clean $(OPT_FLAGS) $(DEBUG_OPTION)
@cd $(CIPL_INSTALLER); make clean $(OPT_FLAGS) $(DEBUG_OPTION)
@cd $(CIPL_INSTALLER)/kpspident; make clean $(OPT_FLAGS) $(DEBUG_OPTION)
endif
ifeq ($(CONFIG_661), 1)
@cd $(CIPL); make clean $(OPT_FLAGS) $(DEBUG_OPTION)
@cd $(CIPL_INSTALLER); make clean $(OPT_FLAGS) $(DEBUG_OPTION)
@cd $(CIPL_INSTALLER)/kpspident; make clean $(OPT_FLAGS) $(DEBUG_OPTION)
endif
@cd $(SATELITE); make clean $(DEBUG_OPTION)
@cd $(LAUNCHER); make clean $(DEBUG_OPTION)

View File

@ -51,6 +51,13 @@ PSP_FW_VERSION = 660
PSP_EBOOT_TITLE = 660
endif
ifeq ($(CONFIG_661), 1)
OBJS += kxp_660.o
CFLAGS += -DCONFIG_661=1
PSP_FW_VERSION = 661
PSP_EBOOT_TITLE = 661
endif
BUILD_PRX = 1
PSP_EBOOT_TITLE += PRO-C Updater

View File

@ -18,13 +18,19 @@
#include <pspsdk.h>
#include "launcher_patch_offset.h"
#if !defined(CONFIG_635) && !defined(CONFIG_620) && !defined(CONFIG_639) && !defined(CONFIG_660)
#error You have to define CONFIG_620 or CONFIG_635 or CONFIG_639 or CONFIG_660
#if !defined(CONFIG_635) && !defined(CONFIG_620) && !defined(CONFIG_639) && !defined(CONFIG_660) && !defined(CONFIG_661)
#error You have to define CONFIG_620 or CONFIG_635 or CONFIG_639 or CONFIG_660 or CONFIG_661
#endif
#if defined(CONFIG_660) || defined(CONFIG_661)
#ifdef CONFIG_660
PatchOffset g_660_offsets = {
.fw_version = FW_660,
#endif
#ifdef CONFIG_661
PatchOffset g_661_offsets = {
.fw_version = FW_661,
#endif
.sysmem_patch = {
.sceKernelIcacheInvalidateAll = 0x00000E98,
.sceKernelDcacheWritebackInvalidateAll = 0x00000744,
@ -130,6 +136,12 @@ PatchOffset *g_offs = NULL;
void setup_patch_offset_table(u32 fw_version)
{
#ifdef CONFIG_661
if(fw_version == g_661_offsets.fw_version) {
g_offs = &g_661_offsets;
}
#endif
#ifdef CONFIG_660
if(fw_version == g_660_offsets.fw_version) {
g_offs = &g_660_offsets;

View File

@ -593,8 +593,8 @@ int main(int argc, char * argv[])
psp_fw_version = sceKernelDevkitVersion();
#ifdef CONFIG_660
if(psp_fw_version == FW_660) {
#if defined(CONFIG_660) || defined(CONFIG_661)
if((psp_fw_version == FW_660) || (psp_fw_version == FW_661)) {
goto version_OK;
}
#endif
@ -642,8 +642,8 @@ version_OK:
return 0;
}
#ifdef CONFIG_660
if(psp_fw_version == FW_660) {
#if defined(CONFIG_660) || defined(CONFIG_661)
if((psp_fw_version == FW_660) || (psp_fw_version == FW_661)) {
do_exploit_660();
}
#endif

View File

@ -21,6 +21,10 @@ ifeq ($(CONFIG_660), 1)
CFLAGS+=-DCONFIG_660=1
endif
ifeq ($(CONFIG_661), 1)
CFLAGS+=-DCONFIG_661=1
endif
a.bin:
bin2c systemctrl.prx systemctrl.h systemcontrol
psp-gcc $(CFLAGS) main.c -o main.s

View File

@ -35,6 +35,11 @@ CFLAGS += -DCONFIG_660=1
PSP_FW_VERSION = 660
endif
ifeq ($(CONFIG_661), 1)
CFLAGS += -DCONFIG_661=1
PSP_FW_VERSION = 661
endif
BUILD_PRX = 1
PRX_EXPORTS = exports.exp

View File

@ -18,13 +18,19 @@
#include <pspsdk.h>
#include "systemctrl_pxe_patch_offset.h"
#if !defined(CONFIG_635) && !defined(CONFIG_620) && !defined(CONFIG_639) && !defined(CONFIG_660)
#error You have to define CONFIG_620 or CONFIG_635 or CONFIG_639 or CONFIG_660
#if !defined(CONFIG_635) && !defined(CONFIG_620) && !defined(CONFIG_639) && !defined(CONFIG_660) && !defined(CONFIG_661)
#error You have to define CONFIG_620 or CONFIG_635 or CONFIG_639 or CONFIG_660 or CONFIG_661
#endif
#if defined(CONFIG_660) || defined(CONFIG_661)
#ifdef CONFIG_660
PXEPatchOffset g_pxe_660_offsets = {
.fw_version = FW_660,
#endif
#ifdef CONFIG_661
PXEPatchOffset g_pxe_661_offsets = {
.fw_version = FW_661,
#endif
.vsh_module_patch = {
.module_start = 0x0000F5F0,
},
@ -62,6 +68,12 @@ PXEPatchOffset *g_pxe_offs = NULL;
void setup_pxe_patch_offset_table(u32 fw_version)
{
#ifdef CONFIG_661
if(fw_version == g_pxe_661_offsets.fw_version) {
g_pxe_offs = &g_pxe_661_offsets;
}
#endif
#ifdef CONFIG_660
if(fw_version == g_pxe_660_offsets.fw_version) {
g_pxe_offs = &g_pxe_660_offsets;

View File

@ -34,6 +34,11 @@ CFLAGS += -DCONFIG_660=1
PSP_FW_VERSION = 660
endif
ifeq ($(CONFIG_661), 1)
CFLAGS += -DCONFIG_661=1
PSP_FW_VERSION = 661
endif
LDFLAGS = -mno-crt0 -nostartfiles -L. -L../libs
LIBS += -lpspmodulemgr_kernel -lpspsystemctrl_kernel -lpspkubridge
LIBS += -lpspsemaphore

View File

@ -18,13 +18,19 @@
#include <pspsdk.h>
#include "popcorn_patch_offset.h"
#if !defined(CONFIG_635) && !defined(CONFIG_620) && !defined(CONFIG_639) && !defined(CONFIG_660)
#error You have to define CONFIG_620 or CONFIG_635 or CONFIG_639 or CONFIG_660
#if !defined(CONFIG_635) && !defined(CONFIG_620) && !defined(CONFIG_639) && !defined(CONFIG_660) && !defined(CONFIG_661)
#error You have to define CONFIG_620 or CONFIG_635 or CONFIG_639 or CONFIG_660 or CONFIG_661
#endif
#if defined(CONFIG_660) || defined(CONFIG_661)
#ifdef CONFIG_660
PatchOffset g_660_offsets = {
.fw_version = FW_660,
#endif
#ifdef CONFIG_661
PatchOffset g_661_offsets = {
.fw_version = FW_661,
#endif
.popsman_patch = {
.get_rif_path = 0x00000190,
.get_rif_path_call1 = 0x00002798,
@ -250,6 +256,12 @@ PatchOffset *g_offs = NULL;
void setup_patch_offset_table(u32 fw_version)
{
#ifdef CONFIG_661
if(fw_version == g_661_offsets.fw_version) {
g_offs = &g_661_offsets;
}
#endif
#ifdef CONFIG_660
if(fw_version == g_660_offsets.fw_version) {
g_offs = &g_660_offsets;

View File

@ -23,6 +23,11 @@ CFLAGS += -DCONFIG_660=1
PSP_FW_VERSION = 660
endif
ifeq ($(CONFIG_661), 1)
CFLAGS += -DCONFIG_661=1
PSP_FW_VERSION = 661
endif
LDFLAGS = -mno-crt0 -nostartfiles -L ../libs
LIBS += -lpspkubridge ../CrossFW/cross_fw.a

View File

@ -21,6 +21,10 @@ ifeq ($(CONFIG_660), 1)
CFLAGS+=-DCONFIG_660=1
endif
ifeq ($(CONFIG_661), 1)
CFLAGS+=-DCONFIG_661=1
endif
a.bin:
psp-gcc $(CFLAGS) main.c -o main.s
psp-as main.s -o main.o

View File

@ -21,8 +21,8 @@
#include <pspsdk.h>
#include "utils.h"
#if !defined(CONFIG_635) && !defined(CONFIG_620) && !defined(CONFIG_639) && !defined(CONFIG_660)
#error You have to define CONFIG_620 or CONFIG_635 or CONFIG_639 or CONFIG_660
#if !defined(CONFIG_635) && !defined(CONFIG_620) && !defined(CONFIG_639) && !defined(CONFIG_660) && !defined(CONFIG_661)
#error You have to define CONFIG_620 or CONFIG_635 or CONFIG_639 or CONFIG_660 or CONFIG_661
#endif
struct RebootexPatch {
@ -64,15 +64,28 @@ typedef struct _PatchOffset {
extern PatchOffset *g_offs;
#if defined(CONFIG_660) || defined(CONFIG_661)
#ifdef CONFIG_660
PatchOffset g_660_offsets = {
.fw_version = FW_660,
#endif
#ifdef CONFIG_661
PatchOffset g_661_offsets = {
.fw_version = FW_661,
#endif
.iCacheFlushAll = 0x0000013C,
.dCacheFlushAll = 0x00000890,
.rebootex_patch_01g = {
#ifdef CONFIG_660
.sceBootLfatOpen = 0x0000822C,
.sceBootLfatRead = 0x000083A0,
.sceBootLfatClose = 0x00008344,
#endif
#ifdef CONFIG_661
.sceBootLfatOpen = 0x0000B6C0,
.sceBootLfatRead = 0x0000AD58,
.sceBootLfatClose = 0x00009C78,
#endif
.UnpackBootConfig = 0x0000574C,
.sceBootLfatOpenCall = 0x000027C4,
.sceBootLfatReadCall = 0x00002834,
@ -87,9 +100,16 @@ PatchOffset g_660_offsets = {
.UnpackBootConfigBufferAddress = 0x000070D4,
},
.rebootex_patch_other = {
#ifdef CONFIG_660
.sceBootLfatOpen = 0x000082EC,
.sceBootLfatRead = 0x00008460,
.sceBootLfatClose = 0x00008404,
#endif
#ifdef CONFIG_661
.sceBootLfatOpen = 0x0000B780,
.sceBootLfatRead = 0x0000AE18,
.sceBootLfatClose = 0x00009D38,
#endif
.UnpackBootConfig = 0x0000580C,
.sceBootLfatOpenCall = 0x0000288C,
.sceBootLfatReadCall = 0x000028FC,
@ -272,6 +292,12 @@ PatchOffset *g_offs = NULL;
static inline void setup_patch_offset_table(u32 fw_version)
{
#ifdef CONFIG_661
if(fw_version == g_661_offsets.fw_version) {
g_offs = &g_661_offsets;
}
#endif
#ifdef CONFIG_660
if(fw_version == g_660_offsets.fw_version) {
g_offs = &g_660_offsets;

View File

@ -25,6 +25,11 @@ CFLAGS += -DCONFIG_660=1
PSP_FW_VERSION = 660
endif
ifeq ($(CONFIG_661), 1)
CFLAGS += -DCONFIG_661=1
PSP_FW_VERSION = 661
endif
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)

View File

@ -33,6 +33,11 @@ CFLAGS += -DCONFIG_660=1
PSP_FW_VERSION = 660
endif
ifeq ($(CONFIG_661), 1)
CFLAGS += -DCONFIG_661=1
PSP_FW_VERSION = 661
endif
PRX_EXPORTS = exports.exp
LIBS = -lpspsystemctrl_user -lpspkubridge

View File

@ -150,8 +150,8 @@ int blit_string_ctr(int sy,const char *msg)
sx = 480/2-scePaf_strlen_620(msg)*(8/2);
#endif
#ifdef CONFIG_660
if(psp_fw_version == FW_660)
#if defined(CONFIG_660) || defined(CONFIG_661)
if((psp_fw_version == FW_660) || (psp_fw_version == FW_661))
sx = 480/2-scePaf_strlen_660(msg)*(8/2);
#endif

View File

@ -31,8 +31,8 @@
#include "blit.h"
#include "utils.h"
#if !defined(CONFIG_635) && !defined(CONFIG_620) && !defined(CONFIG_639) && !defined(CONFIG_660)
#error You have to define CONFIG_620 or CONFIG_635 or CONFIG_639 or CONFIG_660
#if !defined(CONFIG_635) && !defined(CONFIG_620) && !defined(CONFIG_639) && !defined(CONFIG_660) && !defined(CONFIG_661)
#error You have to define CONFIG_620 or CONFIG_635 or CONFIG_639 or CONFIG_660 or CONFIG_661
#endif
extern u32 psp_model;

View File

@ -120,8 +120,8 @@ int EatKey(SceCtrlData *pad_data, int count)
scePaf_memcpy_620(&ctrl_pad, pad_data, sizeof(SceCtrlData));
#endif
#ifdef CONFIG_660
if (psp_fw_version == FW_660)
#if defined(CONFIG_660) || defined(CONFIG_661)
if ((psp_fw_version == FW_660) || (psp_fw_version == FW_661))
scePaf_memcpy_660(&ctrl_pad, pad_data, sizeof(SceCtrlData));
#endif
@ -225,8 +225,8 @@ static int get_umdvideo(UmdVideoList *list, char *path)
scePaf_sprintf_620(fullpath, "%s/%s", path, dir.d_name);
#endif
#ifdef CONFIG_660
if (psp_fw_version == FW_660)
#if defined(CONFIG_660) || defined(CONFIG_661)
if ((psp_fw_version == FW_660) || (psp_fw_version == FW_661))
scePaf_sprintf_660(fullpath, "%s/%s", path, dir.d_name);
#endif
@ -448,8 +448,8 @@ int TSRThread(SceSize args, void *argp)
scePaf_memcpy_620(&cnf_old, &cnf, sizeof(SEConfig));
#endif
#ifdef CONFIG_660
if (psp_fw_version == FW_660)
#if defined(CONFIG_660) || defined(CONFIG_661)
if ((psp_fw_version == FW_660) || (psp_fw_version == FW_661))
scePaf_memcpy_660(&cnf_old, &cnf, sizeof(SEConfig));
#endif

View File

@ -187,8 +187,8 @@ int menu_setup(void)
scePaf_sprintf_620(freq_buf, "%d/%d", cnf.vshcpuspeed, cnf.vshbusspeed);
#endif
#ifdef CONFIG_660
if (psp_fw_version == FW_660)
#if defined(CONFIG_660) || defined(CONFIG_661)
if ((psp_fw_version == FW_660) || (psp_fw_version == FW_661))
scePaf_sprintf_660(freq_buf, "%d/%d", cnf.vshcpuspeed, cnf.vshbusspeed);
#endif
@ -216,8 +216,8 @@ int menu_setup(void)
scePaf_sprintf_620(freq2_buf, "%d/%d", cnf.umdisocpuspeed, cnf.umdisobusspeed);
#endif
#ifdef CONFIG_660
if (psp_fw_version == FW_660)
#if defined(CONFIG_660) || defined(CONFIG_661)
if ((psp_fw_version == FW_660) || (psp_fw_version == FW_661))
scePaf_sprintf_660(freq2_buf, "%d/%d", cnf.umdisocpuspeed, cnf.umdisobusspeed);
#endif
@ -245,8 +245,8 @@ int menu_setup(void)
scePaf_sprintf_620(device_buf, "%s %d", g_messages[MSG_FLASH], cnf.usbdevice-1);
#endif
#ifdef CONFIG_660
if (psp_fw_version == FW_660)
#if defined(CONFIG_660) || defined(CONFIG_661)
if ((psp_fw_version == FW_660) || (psp_fw_version == FW_661))
scePaf_sprintf_660(device_buf, "%s %d", g_messages[MSG_FLASH], cnf.usbdevice-1);
#endif

View File

@ -51,8 +51,8 @@ int get_max_len(char **str_list,int nums)
len = scePaf_strlen_620(str_list[i]);
#endif
#ifdef CONFIG_660
if(psp_fw_version == FW_660)
#if defined(CONFIG_660) || defined(CONFIG_661)
if((psp_fw_version == FW_660) || (psp_fw_version == FW_661))
len = scePaf_strlen_660(str_list[i]);
#endif

View File

@ -37,6 +37,11 @@ CFLAGS += -DCONFIG_660=1
PSP_FW_VERSION = 660
endif
ifeq ($(CONFIG_661), 1)
CFLAGS += -DCONFIG_661=1
PSP_FW_VERSION = 661
endif
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)

View File

@ -18,13 +18,19 @@
#include <pspsdk.h>
#include "stargate_patch_offset.h"
#if !defined(CONFIG_635) && !defined(CONFIG_620) && !defined(CONFIG_639) && !defined(CONFIG_660)
#error You have to define CONFIG_620 or CONFIG_635 or CONFIG_639 or CONFIG_660
#if !defined(CONFIG_635) && !defined(CONFIG_620) && !defined(CONFIG_639) && !defined(CONFIG_660) && !defined(CONFIG_661)
#error You have to define CONFIG_620 or CONFIG_635 or CONFIG_639 or CONFIG_660 or CONFIG_661
#endif
#if defined(CONFIG_660) || defined(CONFIG_661)
#ifdef CONFIG_660
PatchOffset g_660_offsets = {
.fw_version = FW_660,
#endif
#ifdef CONFIG_661
PatchOffset g_661_offsets = {
.fw_version = FW_661,
#endif
.sceMesgLedDecryptGame1 = {
0x00003160, // 01g
0x000034F8, // 02g
@ -162,6 +168,12 @@ PatchOffset *g_offs = NULL;
void setup_patch_offset_table(u32 fw_version)
{
#ifdef CONFIG_661
if(fw_version == g_661_offsets.fw_version) {
g_offs = &g_661_offsets;
}
#endif
#ifdef CONFIG_660
if(fw_version == g_660_offsets.fw_version) {
g_offs = &g_660_offsets;

View File

@ -70,6 +70,12 @@ OBJS += nid_660_data.o
PSP_FW_VERSION = 660
endif
ifeq ($(CONFIG_661), 1)
CFLAGS += -DCONFIG_661=1
OBJS += nid_660_data.o
PSP_FW_VERSION = 661
endif
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)

View File

@ -393,8 +393,9 @@ void setup_nid_resolver(void)
_sw(MAKE_CALL(_sceKernelLinkLibraryEntriesForUser), modmgr->text_addr + g_offs->modulemgr_patch.sceKernelLinkLibraryEntriesForUserCall);
switch(psp_fw_version) {
#ifdef CONFIG_660
#if defined(CONFIG_660) || defined(CONFIG_661)
case FW_660:
case FW_661:
nid_fix = nid_660_fix;
nid_fix_size = nid_660_fix_size;
break;

View File

@ -18,13 +18,19 @@
#include <pspsdk.h>
#include "systemctrl_patch_offset.h"
#if !defined(CONFIG_635) && !defined(CONFIG_620) && !defined(CONFIG_639) && !defined(CONFIG_660)
#error You have to define CONFIG_620 or CONFIG_635 or CONFIG_639 or CONFIG_660
#if !defined(CONFIG_635) && !defined(CONFIG_620) && !defined(CONFIG_639) && !defined(CONFIG_660) && !defined(CONFIG_661)
#error You have to define CONFIG_620 or CONFIG_635 or CONFIG_639 or CONFIG_660 or CONFIG_661
#endif
#if defined(CONFIG_660) || defined(CONFIG_661)
#ifdef CONFIG_660
PatchOffset g_660_offsets = {
.fw_version = FW_660,
#endif
#ifdef CONFIG_661
PatchOffset g_661_offsets = {
.fw_version = FW_661,
#endif
.interruptman_patch = {
.InvalidSyscallCheck1 = 0x00000DEC,
.InvalidSyscallCheck2 = 0x00000E98,
@ -766,6 +772,12 @@ PatchOffset *g_offs = NULL;
void setup_patch_offset_table(u32 fw_version)
{
#ifdef CONFIG_661
if(fw_version == g_661_offsets.fw_version) {
g_offs = &g_661_offsets;
}
#endif
#ifdef CONFIG_660
if(fw_version == g_660_offsets.fw_version) {
g_offs = &g_660_offsets;

View File

@ -37,6 +37,11 @@ CFLAGS += -DCONFIG_660=1
PSP_FW_VERSION = 660
endif
ifeq ($(CONFIG_661), 1)
CFLAGS += -DCONFIG_661=1
PSP_FW_VERSION = 661
endif
OBJS += $(IMPORTS)
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti

View File

@ -18,13 +18,19 @@
#include <pspsdk.h>
#include "vshctrl_patch_offset.h"
#if !defined(CONFIG_635) && !defined(CONFIG_620) && !defined(CONFIG_639) && !defined(CONFIG_660)
#error You have to define CONFIG_620 or CONFIG_635 or CONFIG_639 or CONFIG_660
#if !defined(CONFIG_635) && !defined(CONFIG_620) && !defined(CONFIG_639) && !defined(CONFIG_660) && !defined(CONFIG_661)
#error You have to define CONFIG_620 or CONFIG_635 or CONFIG_639 or CONFIG_660 or CONFIG_661
#endif
#if defined(CONFIG_660) || defined(CONFIG_661)
#ifdef CONFIG_660
PatchOffset g_660_offsets = {
.fw_version = FW_660,
#endif
#ifdef CONFIG_661
PatchOffset g_661_offsets = {
.fw_version = FW_661,
#endif
.vshbridge_patch = {
.sceDisplaySetHoldMode = 0x00005630,
.sceDisplaySetHoldModeCall = 0x00001A34,
@ -33,7 +39,12 @@ PatchOffset g_660_offsets = {
},
.sysconf_plugin_patch = {
.SystemVersionStr = 0x0002A62C,
#ifdef CONFIG_660
.SystemVersionMessage = "6.60 PRO-%c",
#endif
#ifdef CONFIG_661
.SystemVersionMessage = "6.61 PRO-%c",
#endif
.SystemVersion = 0x000192E0,
.MacAddressStr = 0x0002E9A0,
.SlimColor = 0x000076EC,
@ -374,6 +385,12 @@ PatchOffset *g_offs = NULL;
void setup_patch_offset_table(u32 fw_version)
{
#ifdef CONFIG_661
if(fw_version == g_661_offsets.fw_version) {
g_offs = &g_661_offsets;
}
#endif
#ifdef CONFIG_660
if(fw_version == g_660_offsets.fw_version) {
g_offs = &g_660_offsets;