From d3a746d6f0e01f1eb8602337ab5c104684e3fb71 Mon Sep 17 00:00:00 2001 From: hrimfaxi Date: Fri, 24 Jun 2011 22:19:26 +0800 Subject: [PATCH] support target 6.39 on 6.20 --- popsloader/Makefile | 1 + popsloader/core/main.c | 6 ++++-- popsloader/core/nid_635_to_639.c | 5 ----- popsloader/core/resolve_nid.c | 14 +++++++++++++- 4 files changed, 18 insertions(+), 8 deletions(-) diff --git a/popsloader/Makefile b/popsloader/Makefile index ad5fa86..b47e7b8 100644 --- a/popsloader/Makefile +++ b/popsloader/Makefile @@ -10,6 +10,7 @@ all: @cp -rf modules dist @cp -f popcorn/popcorn.prx dist/modules/620/ @cp -f popcorn/popcorn.prx dist/modules/635/ + @cp -f popcorn/popcorn.prx dist/modules/639/ clean: make clean -C popcorn diff --git a/popsloader/core/main.c b/popsloader/core/main.c index 2a1e606..89058c9 100644 --- a/popsloader/core/main.c +++ b/popsloader/core/main.c @@ -96,7 +96,9 @@ static inline const char *get_module_prefix(void) { static char buf[80]; - if(pops_fw_version == FW_635) { + if(pops_fw_version == FW_639) { + sprintf(buf, "%s%s/", MODULE_PATH, "639"); + } else if(pops_fw_version == FW_635) { sprintf(buf, "%s%s/", MODULE_PATH, "635"); } else if(pops_fw_version == FW_620) { sprintf(buf, "%s%s/", MODULE_PATH, "620"); @@ -263,7 +265,7 @@ int module_start(SceSize args, void* argp) { int thid; - pops_fw_version = FW_635; + pops_fw_version = FW_639; psp_fw_version = sceKernelDevkitVersion(); psp_model = sceKernelGetModel(); printk_init(); diff --git a/popsloader/core/nid_635_to_639.c b/popsloader/core/nid_635_to_639.c index cdf2efb..0475cca 100644 --- a/popsloader/core/nid_635_to_639.c +++ b/popsloader/core/nid_635_to_639.c @@ -30,12 +30,7 @@ #include "systemctrl.h" #include "main.h" -static nid_entry testLibrary_nid[] = { - { 0x11111111, 0x22222222, }, -}; - resolver_config nid_fix_635_to_639[] = { - NID_ENTRY(testLibrary), }; u32 nid_fix_635_to_639_size = NELEMS(nid_fix_635_to_639); diff --git a/popsloader/core/resolve_nid.c b/popsloader/core/resolve_nid.c index 0c15915..3ce1c9c 100644 --- a/popsloader/core/resolve_nid.c +++ b/popsloader/core/resolve_nid.c @@ -35,23 +35,35 @@ u32 nid_fix_size = 0; void setup_nid_resolver(void) { + if(pops_fw_version == FW_639 && psp_fw_version == FW_620) { + nid_fix_size = nid_fix_635_to_620_size; + nid_fix = nid_fix_635_to_620; + } + if(pops_fw_version == FW_635 && psp_fw_version == FW_620) { nid_fix_size = nid_fix_635_to_620_size; nid_fix = nid_fix_635_to_620; } +#if 0 if(pops_fw_version == FW_635 && psp_fw_version == FW_639) { nid_fix_size = nid_fix_635_to_639_size; nid_fix = nid_fix_635_to_639; } +#endif if(pops_fw_version == FW_620 && psp_fw_version == FW_639) { nid_fix_size = nid_fix_620_to_635_size; nid_fix = nid_fix_620_to_635; } -#if 0 + if(pops_fw_version == FW_620 && psp_fw_version == FW_635) { + nid_fix_size = nid_fix_620_to_635_size; + nid_fix = nid_fix_620_to_635; + } + // try built in NID resolver first +#if 0 if(pops_fw_version == FW_500 && psp_fw_version == FW_639) { nid_fix_size = nid_fix_500_to_635_size; nid_fix = nid_fix_500_to_635;