16w ago - Today PlayStation 3 homebrew developer
BigBoss has released PS3Dev Builder with OSX Mountain Lion alongside some details below from the included ReadMe file.
Download:
PS3Dev Builder with OSX Mountain Lion /
GIT
To quote from his blog (linked above): I have just released a tool to let you build under Osx Mountain Lion:
- Sony binutils and toolchain gcc 4.1.1 for SDK 3.60. Don't ask about how to get SDK 3.60
- ps3dev binutils, toolchain, psl1ght and ps3libraries
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 support.apple.com/kb/PH11331
3) Install xquartz (x11) Ref xquartz.macosforge.org/landing/
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 distfiles.macports.org/MacPorts/MacPorts-2.1.3-10.8-MountainLion.pkg
6) Update macport and enable +universal
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
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 https://github.com/bigboss-ps3dev/ps3dev-mountain-lion.git
11) Install a good and light editor
I am using one of the best editor ever made Textmate you can get it from github.com/textmate/textmate 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 scedev.net 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 build_sony.sh or change
filenames:
- [159]-PS3_SDK-360_002.zip
- [166]-PS3_SDK_Samples-360_001.zip
- [78]-PS3_SDK-360_001.zip
- toolchain-src-3.6.0-GCC411.zip
These files are optional put on /usr/local/cell/work/sdk
- [28]-PS3_SDKDoc-360_01-CHM-English.zip
- [29]-PS3_SDKDoc-360_01-Help2-English.zip
- [30]-PS3_SDKDoc-360_01-HTML-English.zip
- [31]-PS3_SDKDoc-360_01-Latest-English.zip
These files are not needed to build toolchain but you can use them with wine to work with your PlayStation 3 DEX
- [84]-SNCPPUToolchainforPlayStation3v360.1.zip
- [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
4) Run build.sh script for sony
You must overwrite some files choosing A option asked with prompt
5) Wait until finish
You can test your new toolchain compiling some sample for example
You will need profile variables
. ./sce_profile
cd $CELL_SDK/samples/sdk/usbd/usbdesc
make
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
/usr/local/cell/samples/sdk/usbd/usbdesc
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
2) Run build.sh for ps3dev
3) Wait until finish ignore errors in last lib NoRSX
How to load samples to PS3 CEX and DEX?
TODO