Sony and ps3dev toolchain and lib builder for Osx Mountain Lion
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

==================== What does this do?

This program will automatically build and install a compiler and other tools official and homebrew used in the creation of official and homebrew software for the Sony PlayStation 3 videogame system using Osx Mountain Lion

=================== What do i need ?

You will need a few tool installed before:

1) Your mac with Osx Mountain Lion. All was tested with mac mini late 2012
2) Enable root account. Ref
3) Install xquartz (x11) Ref
4) Install xcode from app store.
After install it, open it and install command line tools. You must go yo Downloads section of Xcode's preferences to do it
5) Install macport
6) Update macport and enable +universal

sudo port -v selfupdate

it will ask you root password, after finish it execute the following line:

if [ \`sysctl -n hw.cpu64bit_capable\` -eq 1 ] ; then echo "+universal" | sudo tee -a /opt/local/etc/macports/variants.conf; else echo "not 64bit capable"; fi

7) Install port utils (I installed these, you can have other requirements)
sudo port install autoconf automake bison flex texinfo ncurses wget libelf zlib libtool git-core gmp openssl mpfr libmpc unrar subversion bzip2
8) Install wine port i use it when some Sony tools are not availables in osx

sudo port install wine

after finish it open a new terminal and run


it will create basic wine configuration needed later

Run these commands from terminal

sudo launchctl load -w /Library/LaunchDaemons/org.freedesktop.dbus-system.plist

launchctl load -w /Library/LaunchAgents/org.freedesktop.dbus-session.plist

9) Create /usr/local/cell and /usr/local/ps3dev folder:

su -

it will ask you root password

mkdir -p /usr/local/cell

mkdir -p /usr/local/ps3dev

I am using my own user and group, use your own configuration as you like

chown -R bigboss:staff /usr/local/cell

chown -R bigboss:staff /usr/local/ps3dev

10) Go to /usr/local/cell and get my repository

mkdir /usr/local/cell/work

cd /usr/local/cell/work

git clone .

11) Install a good and light editor

I am using one of the best editor ever made Textmate you can get it from there are prebuilt binaries

=================== How do I use it to build Sony toolchain? ===================
1) Get Sony SDK 3.60 full
google for it or if you are a Sony PlayStation licensee get it from as usual
2) You will need to put some files on /usr/local/cell/work/sdk this directory is not in my repo, don't upload illegal stuff to github please.

These files are mandatory put on /usr/local/cell/work/sdk if you have other names change the script or change filenames:

  • [159]
  • [166]
  • [78]

These files are optional put on /usr/local/cell/work/sdk

  • [28]
  • [29]
  • [30]
  • [31]

These files are not needed to build toolchain but you can use them with wine to work with your PlayStation 3 DEX

  • [84]
  • [85]-ProDGforPlayStation3v360.2.0.exe
  • [86]-TargetManagerForPlayStation3v360.2.0.exe
  • [87]-TunerforPS3v360.2.0.exe
3) Open a new terminal and go to work directory
cd /usr/local/cell/work
4) Run script for sony

./ sony

You must overwrite some files choosing A option asked with propmt

5) Wait until finish

You can test your new toolchain compiling some sample for example

cd /usr/local/cell/work

You will need profile variables

. ./sce_profile

cd $CELL_SDK/samples/sdk/usbd/usbdesc


This sample is compiled natively in osx, only when elf is linked it will call ppu-lv2-prx-fixup wine wrapper. This tool is used to fix lib stub counts and some other things (you have a source example of this part for elf files and --stub-fix-only option implemented if you like to know what is Sony doing when it is calling this tool from linker, i lose some time making it but prx use other options that i have not implemented yet so for this, wrapper is enabled)

Making fself for DEX is using a wine wrapper if you have a legal native solution for osx share sources for it

Sample output:

bigmini:usbdesc bigboss$ pwd


bigmini:usbdesc bigboss$ ls

Makefile main.c readme_e.txt readme_j.txt usbdesc.vcproj

bigmini:usbdesc bigboss$ make

/usr/local/cell/host-osx/ppu/bin/ppu-lv2-gcc -c -g -O2 -std=c99 -W -Wall -Wuninitialized -Wcomment -Wchar-subscripts -Wdeprecated-declarations -Wendif-labels -Wformat=2 -Wformat-extra-args -Wimplicit -Wimport -Winline -Wmissing-braces -Wparentheses -Wpointer-arith -Wredundant-decls -Wreturn-type -Wshadow -Wsign-compare -Wswitch -Wunknown-pragmas -Wunused -Wwrite-strings -Wmain -Wbad-function-cast -Wmissing-declarations -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -I/usr/local/cell/target/ppu/include/cell/usbd -DCELL_DATA_DIR="/usr/local/cell/sample_data" -Wp,-MMD,objs/main.ppu.d,-MT,objs/main.ppu.o -o objs/main.ppu.o main.c

/usr/local/cell/host-osx/ppu/bin/ppu-lv2-g++ -mno-sn-ld objs/main.ppu.o -lusbd_stub -lsysmodule_stub -lsysutil_stub -o sample.elf

calling ppu-lv2-prx-fixup with --stub-fix-only sample.elf

finished ppu-lv2-prx-fixup process with 0

/usr/local/cell/host-osx/bin/make_fself sample.elf sample.self

calling make_fself with sample.elf sample.self

fixme:msvcrt:MSVCRT__sopen_s : pmode 0x01c0 ignored

finished make_fself process with 0

bigmini:usbdesc bigboss$ ls

Makefile objs readme_j.txt sample.self main.c readme_e.txt sample.elf usbdesc.vcproj

=================== How do I use it to build homebrew toolchain?

1) Open a new terminal

cd /usr/local/cell/work

2) Run for ps3dev
./ ps3dev
3) Wait until finish ignore errors in last lib NoRSX

=================== How to load samples to PS3 CEX and DEX?