Skip to content

Commit 2e6e2a5

Browse files
committed
Added 3.02U support
1 parent 2538e12 commit 2e6e2a5

6 files changed

Lines changed: 32 additions & 1 deletion

File tree

.github/workflows/compile.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ jobs:
3333
mv build/exploit.iso release/exploit_3.02J.iso
3434
./compile.sh 3.02K
3535
mv build/exploit.iso release/exploit_3.02K.iso
36+
./compile.sh 3.02U
37+
mv build/exploit.iso release/exploit_3.02U.iso
3638
3739
- name: Upload ISO Artifact
3840
uses: actions/upload-artifact@v6

compile.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ elif [[ "$1" == "3.02j" || "$1" == "3.02J" ]]; then
2626
elif [[ "$1" == "3.02k" || "$1" == "3.02K" ]]; then
2727
echo "Building for DVD Player v3.02K"
2828
dvd_ver="302K"
29+
elif [[ "$1" == "3.02u" || "$1" == "3.02U" ]]; then
30+
echo "Building for DVD Player v3.02U"
31+
dvd_ver="302U"
2932
else
3033
echo "Building for DVD Player v3.00E/A"
3134
fi

src/code/code.c

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ static void setup_pointers() {
1818
u32 *video_ts_ifo_302g = (u32 *)0x00683d90;
1919
u32 *video_ts_ifo_302j = (u32 *)0x00685f10;
2020
u32 *video_ts_ifo_302k = (u32 *)0x00682810;
21+
u32 *video_ts_ifo_302u = (u32 *)0x0090c210;
2122
if (video_ts_ifo_300e[0] == 0x45444956) {
2223
sceSifSyncIop = (sceSifSyncIop_t)0x00283460;
2324
sceSifResetIop = (sceSifResetIop_t)0x002832f8;
@@ -163,6 +164,22 @@ static void setup_pointers() {
163164
_sceCd_c_cb_sem = (int *)0x004d43b0;
164165
_sceCd_cd_ncmd = (void *)0x004d5550;
165166
_sceCd_ncmd_semid = (int *)0x004d43a8;
167+
} else if (video_ts_ifo_302u[0] == 0x45444956) {
168+
sceSifSyncIop = (sceSifSyncIop_t)0x00284c10;
169+
sceSifResetIop = (sceSifResetIop_t)0x00284aa8;
170+
sceSifInitRpc = (sceSifInitRpc_t)0x00207d20;
171+
sceSifExitRpc = (sceSifExitRpc_t)0x00207ec0;
172+
sceSifCallRpc = (sceSifCallRpc_t)0x00208560;
173+
sceSifWriteBackDCache = (sceSifWriteBackDCache_t)0x0020a080;
174+
sceCdNCmdDiskReady = (sceCdNCmdDiskReady_t)0x00258a90;
175+
_sceCd_ncmd_prechk = (_sceCd_ncmd_prechk_t)0x00258920;
176+
_sceCd_cd_read_intr = (_sceCd_cd_read_intr_t)0x002582e8;
177+
sceCdSync = (sceCdSync_t)0x00258b28;
178+
sceCdDiskReady = (sceCdDiskReady_t)0x00259028;
179+
sceCdCbfunc_num = (int *)0x004d4154;
180+
_sceCd_c_cb_sem = (int *)0x004d4130;
181+
_sceCd_cd_ncmd = (void *)0x004d52d0;
182+
_sceCd_ncmd_semid = (int *)0x004d4128;
166183
}
167184
}
168185

src/injector/injector.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,13 @@ int generate_exploit_pgc(char *out_path, uint32_t off, uint32_t len, uint32_t ea
186186
#define JUMP_POINTER 0x00687748
187187
#define CMD_DATA_ADDR 0x013154b0
188188
#define IFO_BUFFER 0x01318d00
189+
#elif V302U
190+
#define VM_CMD_PARSER_SWITCH_ADDR 0x0090c278
191+
#define VM_ADDR 0x013cfac0
192+
#define VOB_BUFFER_ADDR 0x013d84c0
193+
#define JUMP_POINTER 0x009111c0
194+
#define CMD_DATA_ADDR 0x013c9a30
195+
#define IFO_BUFFER 0x013cd280
189196
#endif
190197

191198
#define CTRL_DATA_ADDR (VOB_BUFFER_ADDR + 0x0c + 0x629)

src/jump/jump.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
#define RBI_ADDR 0x00256330
1919
#elif V302K
2020
#define RBI_ADDR 0x002566a8
21+
#elif V302U
22+
#define RBI_ADDR 0x00256668
2123
#endif
2224

2325
typedef int (*readBufferInternal_t)(char *, int, int, void *, int, int);

src/ld/jump.ld

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ BV300E = 0x0155d510;
1616
BV300U = 0x01387f10;
1717
BV300J = 0x01103710;
1818
BV302J = 0x01152790;
19-
BV302U = 0;
19+
BV302U = 0x013d8b10;
2020
BV302A = 0;
2121
BV302E = 0x015ae110;
2222
BV302K = 0x01324590;

0 commit comments

Comments
 (0)