PS3 syscalls on OtherOS

chiekku

Member
Hi all,

TL;DR does anyone know how to properly make PS3 syscalls in C/C++ from within OtherOS?

I recently jailbroke a PS3 with a dead disc drive and got Fedora 12 installed with XFCE4 (3.15 OFW DEX downgrade, OtherOS regular). Been playing around with the SDK, since in school I learned on C. My goal for now is to write some Linux utilities to better understand the platform, and benchmark SPU multithreading performance.

First thing I wanted to try was getting temp readings of the CBE and RSX, but the lm_sensors package doesn't provide support for Cell BE. I also couldn't find anything in the Cell SDK, but I assume there has to be something there. I noticed there's an LV2 syscall for this (sys_game_get_temperature), but it looks like these are intended to be called from GameOS.

In C you can also make a syscall, but it requires you knowing the architecture and how to call it. The wiki talks about tables and offsets and packets...I don't get it at all. The discussion page kind of describes it, but a lot of the variables don't make sense.

Example: syscall(621,packet_id,r4,r5)

Don't know what r4 or r5 are supposed to be. The wiki is lacking any complete examples, and I can't find anything anywhere else. Any help would be greatly appreciated :)
 
Hi all,

TL;DR does anyone know how to properly make PS3 syscalls in C/C++ from within OtherOS?

I recently jailbroke a PS3 with a dead disc drive and got Fedora 12 installed with XFCE4 (3.15 OFW DEX downgrade, OtherOS regular). Been playing around with the SDK, since in school I learned on C. My goal for now is to write some Linux utilities to better understand the platform, and benchmark SPU multithreading performance.

First thing I wanted to try was getting temp readings of the CBE and RSX, but the lm_sensors package doesn't provide support for Cell BE. I also couldn't find anything in the Cell SDK, but I assume there has to be something there. I noticed there's an LV2 syscall for this (sys_game_get_temperature), but it looks like these are intended to be called from GameOS.

In C you can also make a syscall, but it requires you knowing the architecture and how to call it. The wiki talks about tables and offsets and packets...I don't get it at all. The discussion page kind of describes it, but a lot of the variables don't make sense.

Example: syscall(621,packet_id,r4,r5)

Don't know what r4 or r5 are supposed to be. The wiki is lacking any complete examples, and I can't find anything anywhere else. Any help would be greatly appreciated :)
In OtherOS, you are in Linux (or potentially BSD), whatever distro you install, any syscall your app needs to use will therefore have to be that Linux kernel distro syscalls, nothing to do with GameOS lv2 syscalls described in cellsdk or wiki.

In theory you should be able to compile regular Linux apps for ppc within specs directly on the PS3 or cross compile on PC with a standard GCC.
 
In OtherOS, you are in Linux (or potentially BSD), whatever distro you install, any syscall your app needs to use will therefore have to be that Linux kernel distro syscalls, nothing to do with GameOS lv2 syscalls described in cellsdk or wiki.

In theory you should be able to compile regular Linux apps for ppc within specs directly on the PS3 or cross compile on PC with a standard GCC.

I think the normal oos doesnt have that much access than oos++ does because oos+ includes much more patches than regular oos, maybe he should install oos++ and something like red ribbon or t2 where all patches are implemented
 
Back
Top