From 28cd9360621ea5a75a2c13461007ed44bf739ccf Mon Sep 17 00:00:00 2001 From: theheroGAC Date: Wed, 17 Apr 2019 23:45:16 +0200 Subject: [PATCH 1/7] Add files via upload --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index ec2661a..f1ca2a0 100644 --- a/Makefile +++ b/Makefile @@ -15,7 +15,7 @@ include $(PSL1GHT)/ppu_rules # SOURCES is a list of directories containing source code # INCLUDES is a list of directories containing extra header files #--------------------------------------------------------------------------------- -VERSION := 0.89 +VERSION := 0.90 NAME := IDPSet TARGET := $(NAME)_v$(VERSION) From 0fbc9ddde0f1a311843e8b6aef09e4b82c495cc1 Mon Sep 17 00:00:00 2001 From: theheroGAC Date: Wed, 17 Apr 2019 23:45:44 +0200 Subject: [PATCH 2/7] Add files via upload --- source/firmware.h | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/source/firmware.h b/source/firmware.h index c88b9a2..624c701 100644 --- a/source/firmware.h +++ b/source/firmware.h @@ -444,4 +444,30 @@ #define OFFSET_1_IDPS_483C 0x80000000003E2E30ULL #define OFFSET_2_IDPS_483C 0x8000000000474AF4ULL +#define HTAB_OFFSET_484C 0x2DD70C +#define MMAP_OFFSET1_484C 0x2DCF54 +#define MMAP_OFFSET2_484C 0x2DD284 +#define SPE_OFFSET_484C 0x2F9EB8 +#define HV_START_OFFSET_484C 0x370F28 +#define TOC_OFFSET_484C 0x800000000034FBB0ULL +#define SYSCALL_TABLE_484C 0x8000000000363BE0ULL +#define FW_DATE_OFFSET_484C 0x80000000002FCB68ULL +#define FW_DATE_1_484C 0x323031392F30312FULL +#define FW_DATE_2_484C 0x30382031343A3238ULL +#define OFFSET_1_IDPS_484C 0x80000000003E2E30ULL +#define OFFSET_2_IDPS_484C 0x8000000000474AF4ULL + +#define HTAB_OFFSET_484D 0x2DD70C +#define MMAP_OFFSET1_484D 0x2DCF54 +#define MMAP_OFFSET2_484D 0x2DD284 +#define SPE_OFFSET_484D 0x2F9EB8 +#define HV_START_OFFSET_484D 0x370F28 +#define TOC_OFFSET_484D 0x80000000003759C0ULL +#define SYSCALL_TABLE_484D 0x800000000038A4E8ULL +#define FW_DATE_OFFSET_484D 0x800000000031F028ULL +#define FW_DATE_1_484D 0x323031392F30312FULL +#define FW_DATE_2_484D 0x30382031343A3237ULL +#define OFFSET_1_IDPS_484D 0x8000000000409A30ULL +#define OFFSET_2_IDPS_484D 0x800000000049CAF4ULL + #endif /* __FIRMWARE_H__ */ From 3ebc26358df829f55a78d4b054495236552e5bfb Mon Sep 17 00:00:00 2001 From: theheroGAC Date: Wed, 17 Apr 2019 23:46:37 +0200 Subject: [PATCH 3/7] Add files via upload --- payload/source/Makefile | 2 +- payload/source/symbols.h | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/payload/source/Makefile b/payload/source/Makefile index b4aff69..5b7b6f2 100644 --- a/payload/source/Makefile +++ b/payload/source/Makefile @@ -16,7 +16,7 @@ endif LDFLAGS = -Tldscript.ld -nostartfiles -nostdlib -nodefaultlibs -Wl,--gc-sections -Wl,-Map=$(TARGET)_$@.map PAYLOADS := 421C 421D 430C 430D 431C 440C 441C 441D 446C 446D 450C 450D 453C 453D 455C 455D 460C \ - 465C 465D 470C 470D 475C 475D 476C 476D 478C 478D 480C 480D 481C 481D 482C 482D 483C + 465C 465D 470C 470D 475C 475D 476C 476D 478C 478D 480C 480D 481C 481D 482C 482D 483C 484C 484D define do_payload $(CC) $(ASFLAGS) -DFIRMWARE_$@ -c start.S -o start.S.o diff --git a/payload/source/symbols.h b/payload/source/symbols.h index ddeece8..3d12f1a 100644 --- a/payload/source/symbols.h +++ b/payload/source/symbols.h @@ -343,5 +343,24 @@ #define GAMEOS_LPAR_SIZE_PTR 0x800000000037A640ULL #endif +#ifdef FIRMWARE_484C + #define KERNEL_TOC 0x34FBB0 + #define KERNEL_SYMBOL_EXTEND_KSTACK 0x0700A4 + #define KERNEL_SYMBOL_COPY_TO_USER 0x00F86C + #define KERNEL_SYMBOL_MEMSET 0x04D66C + #define KERNEL_SYMBOL_MEMCPY 0x07E92C + #define GAMEOS_LPAR_BASE_PTR 0x800000000037A638ULL + #define GAMEOS_LPAR_SIZE_PTR 0x800000000037A640ULL +#endif + +#ifdef FIRMWARE_484D + #define KERNEL_TOC 0x3759C0 + #define KERNEL_SYMBOL_EXTEND_KSTACK 0x073BF4 + #define KERNEL_SYMBOL_COPY_TO_USER 0x00FEB4 + #define KERNEL_SYMBOL_MEMSET 0x051014 + #define KERNEL_SYMBOL_MEMCPY 0x082A08 + #define GAMEOS_LPAR_BASE_PTR 0x80000000003A1238ULL + #define GAMEOS_LPAR_SIZE_PTR 0x80000000003A1240ULL +#endif #endif /* __SYMBOLS_H__ */ From 053a687e4b70f8bcdfb9229f36ceefceb50de7bd Mon Sep 17 00:00:00 2001 From: theheroGAC Date: Wed, 17 Apr 2019 23:47:46 +0200 Subject: [PATCH 4/7] Add files via upload --- data/payload_484C.bin | Bin 0 -> 824 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 data/payload_484C.bin diff --git a/data/payload_484C.bin b/data/payload_484C.bin new file mode 100644 index 0000000000000000000000000000000000000000..55ea8a9cc79ae4bbed542ead88da71cbd037ec1f GIT binary patch literal 824 zcmZ9KziSg=7{|Zo9qEZhGGqvJXxcH zAb2e|a~X6jU;|LkdcwfMK@aq*R)8rDr_C~As}(5XzE}>q;e;W3IO5LkLMetka=QyS z#RWgO38c>hi)G|X>w)X9k)7(qIth?oO4#hhM9hBxU1*UVW6ng((w_dJ ze1>OlAf5}u4?@Sv81ZunDEBiwvYY`58FSk^O4@)z`AoIPJ)P-C8oBTfw<&Lr9^gV% za#ixNWL@&PWK*)$=X_1tZzaD9WsfTnm^FNG~A0fb;^=3rNo=J!1?n znXWd(Eaz-bu^p(?vmL_@L*n<+miVS6=)P~*sxIQJp{=^5J=tM*)W+aHBF2j7t`!+> z^=D~r*NT8)_xFS?jktpu`{d`(q+ix6YU3-g{R(t{9Z~-i;{F~IZ58Qu64~}e7;Oip z?*Ny8@pb_=ze_rgpz}9~@^6Uq0Ex~qq&t(yc5*Nd*Jo@(bvK8W(kFl`W!m9w>eGI9 zn(fU@8(*NYlWEf|hX*}>B+>lG_nSd$_Wh^+^XF-$MNc^GIYYcD;uuDo1OH&Ie*ybZ B09XJ3 literal 0 HcmV?d00001 From 39d40efd953133bdea9ed25910c0109945f5a78a Mon Sep 17 00:00:00 2001 From: theheroGAC Date: Thu, 18 Apr 2019 00:06:51 +0200 Subject: [PATCH 5/7] Delete payload_484C.bin --- data/payload_484C.bin | Bin 824 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 data/payload_484C.bin diff --git a/data/payload_484C.bin b/data/payload_484C.bin deleted file mode 100644 index 55ea8a9cc79ae4bbed542ead88da71cbd037ec1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 824 zcmZ9KziSg=7{|Zo9qEZhGGqvJXxcH zAb2e|a~X6jU;|LkdcwfMK@aq*R)8rDr_C~As}(5XzE}>q;e;W3IO5LkLMetka=QyS z#RWgO38c>hi)G|X>w)X9k)7(qIth?oO4#hhM9hBxU1*UVW6ng((w_dJ ze1>OlAf5}u4?@Sv81ZunDEBiwvYY`58FSk^O4@)z`AoIPJ)P-C8oBTfw<&Lr9^gV% za#ixNWL@&PWK*)$=X_1tZzaD9WsfTnm^FNG~A0fb;^=3rNo=J!1?n znXWd(Eaz-bu^p(?vmL_@L*n<+miVS6=)P~*sxIQJp{=^5J=tM*)W+aHBF2j7t`!+> z^=D~r*NT8)_xFS?jktpu`{d`(q+ix6YU3-g{R(t{9Z~-i;{F~IZ58Qu64~}e7;Oip z?*Ny8@pb_=ze_rgpz}9~@^6Uq0Ex~qq&t(yc5*Nd*Jo@(bvK8W(kFl`W!m9w>eGI9 zn(fU@8(*NYlWEf|hX*}>B+>lG_nSd$_Wh^+^XF-$MNc^GIYYcD;uuDo1OH&Ie*ybZ B09XJ3 From 737ee77087a4954f83443563b58487c2707d7688 Mon Sep 17 00:00:00 2001 From: theheroGAC Date: Thu, 18 Apr 2019 00:09:38 +0200 Subject: [PATCH 6/7] Add files via upload --- source/main.c | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/source/main.c b/source/main.c index 953f95a..a44abee 100644 --- a/source/main.c +++ b/source/main.c @@ -79,6 +79,8 @@ #include "payload_482C_bin.h" #include "payload_482D_bin.h" #include "payload_483C_bin.h" +#include "payload_484C_bin.h" +#include "payload_484D_bin.h" #include "NOT_PNG_bin.h" @@ -1020,7 +1022,7 @@ int init_IDPSet() if(( lv2peek(FW_DATE_OFFSET_483C )==FW_DATE_1_483C) && ( lv2peek(FW_DATE_OFFSET_483C + 8)==FW_DATE_2_483C) ) { - firmware = 0x482D; + firmware = 0x483C; TOC_OFFSET = TOC_OFFSET_483C; HV_START_OFFSET = HV_START_OFFSET_483C; @@ -1034,6 +1036,42 @@ int init_IDPSet() payload = (u64 *) payload_483C_bin; payload_size = payload_483C_bin_size; + } else + if(( lv2peek(FW_DATE_OFFSET_484C )==FW_DATE_1_484C) && + ( lv2peek(FW_DATE_OFFSET_484C + 8)==FW_DATE_2_484C) ) + { + firmware = 0x484C; + + TOC_OFFSET = TOC_OFFSET_484C; + HV_START_OFFSET = HV_START_OFFSET_484C; + HTAB_OFFSET = HTAB_OFFSET_484C; + SYSCALL_TABLE_OFFSET = SYSCALL_TABLE_484C; + MMAP_OFFSET1 = MMAP_OFFSET1_484C; + MMAP_OFFSET2 = MMAP_OFFSET2_484C; + SPE_OFFSET = SPE_OFFSET_484C; + OFFSET_1_IDPS = OFFSET_1_IDPS_484C; + OFFSET_2_IDPS = OFFSET_2_IDPS_484C; + + payload = (u64 *) payload_484C_bin; + payload_size = payload_484C_bin_size; + } else + if(( lv2peek(FW_DATE_OFFSET_484D )==FW_DATE_1_484D) && + ( lv2peek(FW_DATE_OFFSET_484D + 8)==FW_DATE_2_484D) ) + { + firmware = 0x484D; + + TOC_OFFSET = TOC_OFFSET_484D; + HV_START_OFFSET = HV_START_OFFSET_484D; + HTAB_OFFSET = HTAB_OFFSET_484D; + SYSCALL_TABLE_OFFSET = SYSCALL_TABLE_484D; + MMAP_OFFSET1 = MMAP_OFFSET1_484D; + MMAP_OFFSET2 = MMAP_OFFSET2_484D; + SPE_OFFSET = SPE_OFFSET_484D; + OFFSET_1_IDPS = OFFSET_1_IDPS_484D; + OFFSET_2_IDPS = OFFSET_2_IDPS_484D; + + payload = (u64 *) payload_484D_bin; + payload_size = payload_484D_bin_size; } else { // firmware inconnu u64 n; From a2842184c031252e7c8b09cc59480521743b34eb Mon Sep 17 00:00:00 2001 From: theheroGAC Date: Thu, 18 Apr 2019 00:46:25 +0200 Subject: [PATCH 7/7] Add files via upload --- data/payload_484C.bin | Bin 0 -> 10936 bytes data/payload_484D.bin | Bin 0 -> 10936 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 data/payload_484C.bin create mode 100644 data/payload_484D.bin diff --git a/data/payload_484C.bin b/data/payload_484C.bin new file mode 100644 index 0000000000000000000000000000000000000000..bb581d8ab03a4337693f2c504404e8ba24fbe9ae GIT binary patch literal 10936 zcmbta3s@6p);>c*2sM@{SXr?e1Xom@8Y4KjQRBH`JRMhsTt(Q@TKLb*$ zR$bKU>Q*rnrFiKsTIwAIwcdJ>TI+gcLD`ysuBg~1pv<0cGM}b4H=mv78D{3Z?|IMp z&iBp9I3uU@E3q-4wuKAt+S6f?JrQ_&IIwmGvTSuQ%~k~lTM?w$a$$rm9a3zGpx5ew zVUui%$w^=`B$YO$K<7Y$SrD_3BXTY1V?kdFYFJUrikeo`wqguzI22egCa08@4C6rq z9=4p=q!Pro^ZLWB+-W)%`&Kr;X#&I2r7#a$_P&Q)=ZeDH2_#=0K{wq7+MG# z%M9QtZpnlcEr1`#Fq0p%fdP0wP9xt=F;1#aoB?(X2I#>ph+v&_cfxlQoWym;F)tu7 zYzqK5=)QdjFwyjy9JvKOLRh0Bl8eyj^*nUtAao`N7+>OQjlic0LOtPPO(9wapwER+ zE>l(#-4h@&5AB-)l0ayduGN+dP-~6Ced0s%5#!K#t`lr_M!1dR0dYLWfO4DREuN2fc^?6|0wED$Bajd?Q5|HwYEm_c;4R5Z7l+*maF&}E6@x6lo!067hL59 zZ|?;U@`88pgxk`^`RGVF-sS`A5lp#m>J{ns6dNiMPsMm$^F}B9rT)K%FMm5~v zUA^GXdcnJS!Ml6GqrKn*J>l5Pr(vDqCmB3CA@+`am+}cw2YUI(^AkK5D;0xvs`1>Agxh-r}R)P|9_w z=NQj0%JD&OIOV$1!+7I7;n)Xl_HeOBkEcA0>1+Rgllr)cJ;4)>b7#YT+=Ttuf_c

0aCK`XZ}CxY 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 USG%!Cxv}fr*cZ96|0d7>0>znx82|tP literal 0 HcmV?d00001 diff --git a/data/payload_484D.bin b/data/payload_484D.bin new file mode 100644 index 0000000000000000000000000000000000000000..ce0d1cc34d83e17128e02fe9307d01afe06be91a GIT binary patch literal 10936 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 literal 0 HcmV?d00001