Developing for PS3 – Part 1 – setup

I got an email requesting a tutorial on how to develop for PS3. Its something that other people have previously asked me for assistance with which leads me to believe that there are probably more people lurking around here that want to get into homebrew development but need a little help doing it. So I figured I would write up a series of short tutorial and post them here for public consumption.

This initial tutorial covers how to first get everything setup. Its something that’s already been covered repeatedly but regardless its still something that you obviously cant begin developing without doing.

Step 1

The first thing you need to do is decide what software development kit you are going to use. I use the leaked official PS3 SDK v1.92 so that is what this tutorial will focus on. But its worth noting that PSL1GHT is definitely more appealing for ideological and legal reasons, is catching up with the official SDK in terms of functionality and is what most other developers in the PS3 homebrew community are either already using or moving towards using. There have also been more recent versions leaked then 1.92 of the official SDK which may differ slightly.

Also worth noting is that I use Windows. Things may vary depending on your OS of choice but unless I’m mistaken it should be possible to get any of the available SDKs working on almost any major platform.

You can find still active links for the 1.92 PS3 SDK at the address bellow. Its not where I got my copy (I don’t remember where I got it) and the image included in the post is of community made software that isnt actually included with the SDK which makes me think that the person who posted it didn’t actually know what they where posting. But I’m fairly certain the files linked to are correct.

If anyone requests it I’ll upload the SDK elsewhere. Sony seems to have made some amount of effort to purge the SDK from the internet. There are a lot of dead links floating around to hosting services that have removed it for copyright reasons.

Step 2

At the root of your C drive create a folder named “usr”. Within that create another folder named “local” and within that one make a folder named “cell”.

Extract the contents of the rar file you just downloaded and copy it all to “C:\usr\local\cell”.

Step 3

The following two (inclusive of this one) steps can be found in PS3_SDKDoc_e.chm which should now be located at C:\usr\local\cell\doc\SDK_doc\en\chm. If you get stuck on anything then try consulting that document.

Download and install

You might as well download CFWProphet’s PS3 PKG Tool now as it includes the three installers and your going to want it later anyways.

Step 4

Edit your environment variable (Right-click on “My Computer”, select “Properties”, open the “Advanced” tab and click the “Environment Variables” button) to include the following.

name: CELL_SDK
value: /c/usr/local/cell

name: LANG
value: C

name: DTNETM
value: hostname or IP address of the Reference Tool

name: PATH
value: c:\msys\1.0\bin;

Step 5

Start MSYS and enter “$ cd /c/usr/local/cell/samples/fw/testapp/” (without the quotation marks). That will change MSYS’s current working directory to that of a simple test program that is included with the 1.92 SDK. Next enter “make”. That will make it compile the test program.

Now just wait for it to finish compiling.

If all has gone well you should have a newly generated “testapp.elf” file and a “testapp.self” file located at “C:\usr\local\cell\samples\fw\testapp”.


18 Responses to Developing for PS3 – Part 1 – setup

  1. 315Groove says:

    Thanks a bunch, more info on this is always welcome.

  2. PuppetMaster says:

    Wow! This is nice. Thanks for taking the time to write this up. I’m sure it will help a lot of people, (Including me) to get up and running writing homebrew for the ps3. Nice job.

  3. ylpkm says:

    can’t wait for part 2, i looked at many source codes, hopefully other parts of this instructable will cover it

  4. owen says:

    whats the advantage of developing on ps3? more power? how are the tools?

    • thatotherdev says:

      It depends on what you are comparing it to.

      Its obviously more powerful then Wii. Essentially all I’ve done on Wii has been 2D SDL games so I cant compare working in 3D on Wii to PS3. But I imagine the main benefit of PS3 is just the higher resolution. That and you just don’t need to worry as much about the efficiency of things on PS3 (assuming that what you are doing isn’t particularly ambitious). Beyond allowing for laziness and better graphics the improved specs do occasionally allow for gameplay that wouldn’t otherwise be possible. I wouldn’t have been able to make Cubicle Shooter for example on Wii without drastically simplifying the way its destructible walls work in some way (like limiting them to large minecraft style grid tiles).

      A reasonably high end modern computer built of gaming can do anything that a PS3 can. But my computer is crap in every way lol. As a result of that the PC builds of my PS3 stuff always run far worse for me then their PS3 counterparts. Its nice to actually be able to play what you make.

      Its really a matter of preference though.

      I just like working on consoles.

      It sounds contradictory considering that I listed PS3s enabling of laziness as a positive thing but having fixed, unchanging and limited hardware specs is nice at times. Then you need to accept when what your doing cant be done and it forces you to figure out a way to work around it or how to do it more efficiently. There is something fun about that. On PC my mentality relating to performance tends to inevitably be that if its running poorly then that is not my fault or problem and it will work fine when I or whoever is playing upgrades their box.

      Plus console homebrew communities tend to be a lot more desperate for content and as a result more friendly to developers. There are so many games released for PC that its difficult to get the same level of recognition. That makes me sound like a total attention whore but it can be difficult to stay motivated and continue developing if you aren’t receiving feedback on what you make.

    • thatotherdev says:

      As for the tools your kinda expected to bring your own IDE.

  5. JL says:

    I have already done this. I’m not trying to be unappreciative or rude in any way, but I would really like to see something on IDE integration. I’m not that strong with C++/C# or much other low level languages. My experience is primarily with languages that are compiled and run locally or on a server (Java, Actionscript, PHP, etc.). Coding in these languages usually has all the functions and such right there for autocompletion or quick lookup. I would really LOVE to have such features with this rather foreign SDK. Following the documentation, I still didn’t really figure out how to actually interact effectively with the hardware for text output, sound, controller input, etc. I obviously have a lot of reading to do but a good IDE integration would help out a lot. If you decide to throw something up about this I would really appreciate it, as would many others I’m sure.

  6. PuppetMaster says:

    Sorry if this may sound off topic but, could you write up a tut on what you need to compile source code from places like git hub and such? It seems like a simple enough task but, a well written tut would be of great help. All I want to do is be able to compile the latest commits without needing to wait on others to do it first. Like for example the snes emu or the mednafen emu. Thanks bud.

    • ThatOtherDev says:

      To be honest I’m not incredibly familiar with using github (I’ve used it before but not often) and more importantly I still haven’t gotten around to setting up and trying out compiling anything with PSL1GHT which is what I’m assuming the overwhelming majority of peoples projects are done with (I’m fairly certain that I’m the only person still using the leaked SDK).

      I’ll consider writing up a step by step guide on how to do that in the future but at the moment I’m really not equipped to do it.

  7. zoom says:

    hello that otherdev

    can u answer this on equestion for me please,

    can the ps3 display text like it would on a normal computer terminal.

    cout << "Game Over!" << endl; would the text show up or would nothing show up at all like that or has it got to be a sprite image for the letter,

    • ThatOtherDev says:

      It is definitely possible but I haven’t done that. You should ask somebody else. Sorry I can’t be any more help.

      • zoom says:

        sorry if it sounded like i was asking for u to tell me how to do it, i wasnt, just wanted to know if it was possible. i have bin reading thru emerson35’s tutorials and he uses sprites, just thought it was weird to use sprites for words instead of text.

        • ThatOtherDev says:

          It’s totally alright. Sorry if It sounded like I was mad in my response.

          Most modern games end up rendering text as a series of polygons with images of letters textured on to them. But yeah I’m pretty sure that even on PS3 there must be a simpler way to go about getting text on screen if you don’t care much about how it looks and aren’t going to be mixing it with other kinds of graphical elements.

  8. zoom says:

    what books would u recommend for game programming, i have bought Game Coding Complete Third Edition by Mike Mcshaffry and Accelerated C++ Practical Programming by Example by Andrew Koenig and Barbara E Moo, is there any book or books that u would recommend, that was my last question.

  9. dc says:

    Link is dead.

  10. Hello otherdev. my name is SnakePlisskenPMW and im working on some homebrew that I feel you may be proud of. If you were to Youtube “PMW NATION THE VIDEO GAME Release Trailer” you could see what I have going on so far compared to when I first posted at
    the homebrew in its basic form is a First Person View Homebrew engine suite. It can be used to make first person view scenerios.

    Im trying to port to the PS3 at any costs. and I find there is very few forms of information out there to aid me. This is when I came across your tutorials. I want you to know that you wrote those tutorials for a good reason. I feel as I read through the tutorials that you were not to sure why you were doing it. well they helped me. and I feel as if im getting closer to my goal thanks to your tuts I have a understanding of the procsess needed in everything from packaging to signing elfs.

    But I come to you today for your help. I feel that my homebrew would open doors for other users to make homebrew with using a pre compiled engine. it may put fual back into the scene.

    I was going to ask you if there is a better way for me to contact you. and if you could possibly re upload the “testapps” that you added keybindings to and striped of its camera functions. Ill try to contact you again in the future im sure as I learn more and more by the day as this will probly come in hand with new sets of questions. I hope you find this interesting and hopefully you can see some light in what im trying to accomplish. thanks for any help. yours truly Snake Plissken

    P.S: I enclosed my email address in case you want to reply to this comment in form of email.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: