Forum: PS3 Technical Development - Topics relating to Playstation 3 Technical development ONLY! Read and discuss the latest Cobra USB updates, tutorials and explanations or find out about bluray drive bypass firmwares plus much more.


The above video goes away if you are a member and logged in, so log in now!




 
Would you like to get all the new info from
PSX-Scene in your email each day?




Want to learn more about the team keeping you up to date with the latest scene news?

Read about them now!

Check out our Developer bios, too!

 


User Tag List

Thread: Help to Help others
  

Page 1 of 2 1 2 LastLast
Results 1 to 10 of 20
  1. #1 Smile Help to Help others 
    Slynk is offline Member
    Join Date
    Sep 2010
    Posts
    754
    Downloads
    0
    Uploads
    0
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Likes Given
    4
    Likes Received
    361
    So I want to be a part of the scene but i know nothing about developing for the PS3. I know very little about the architecture of both the hardware I'll be coding on as well as the the software I'll be making. I've coded on the ds with an open sdk and made quite a few apps in quite a few languages but the purpose of this thread is this: I want information on PS3 development.

    I want to make a comprehensive guide as to the development process for the PS3. I'll need to know a lot of things and I think everyone can help out. Any information you'll need to know to develop on the PS3 could help. I want to know the physical components of the ps3 to work with, the logical components to work with. The structure of a pkg file. The file types associated with building a pkg file. If I can't find help here, know I'll be researching the sdk docs as to what to do. My goal is to make a learning tool to help others, as well as myself, enter the scene. I know there is still much unknown and what we can do is limited, but I think there are a lot of talented people that could help out if we had a good solid place to start from.

    *I think I should make it clear that I'm requesting information on making homebrew, not cracking the encryption of the ps3, or making custom firmware etc etc.*

    If I sound like a big newb, I apologize in advance. ^^
    --------------------
    information posted--
    --------------------
    basic controller use: http://psx-scene.com/forums/554874-post10.html (Help to Help others)
    controller stick use: http://psx-scene.com/forums/555740-post15.html (Help to Help others)
    Last edited by Slynk; 10-14-2010 at 06:54 PM.
    Reply With Quote  

  2. #2  
    id10terror's Avatar
    id10terror is offline Member
    Join Date
    Sep 2010
    Posts
    131
    Downloads
    0
    Uploads
    0
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Likes Given
    4
    Likes Received
    3
    Reply With Quote  

  3. #3 Smile  
    Zeratul is offline Registered User
    Join Date
    Sep 2010
    Posts
    22
    Downloads
    0
    Uploads
    0
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Likes Given
    0
    Likes Received
    0
    I make my list on one Russian forum.
    There are has most links about ps3 hacks:
    http://translate.googleusercontent.c...U2cQ45R2-qlUbw

    In this list I collect only non Russian language resources and it very useful.
    You could not read description, because google translate is suck. But you can find interesting links for you.

    And one more info about IRC channels:
    1 - Go to http://www.efnet.org/
    2 - Find for channels with `ps3` in name
    3 - Choose one of the few: ps3, ps3dev, ps3fw, ps3lv2
    Or more.
    This channels are very useful for devs.
    Reply With Quote  

  4. #4  
    Slynk is offline Member
    Join Date
    Sep 2010
    Posts
    754
    Downloads
    0
    Uploads
    0
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Likes Given
    4
    Likes Received
    361
    Ok so I thought I'd post my findings real quick. I've been busy recently with work so I haven't had much time to figure this stuff out. From what I can tell the average pkg project is split into the following format(I'm looking at the source of open manager as a reference):

    ProjectFolder\
    ---main.cpp
    ---headers/souce files
    ---fpshader.cg/fpshader2.cg (not sure what these do yet, some sort of required definition file?)
    ---vpshader.cg/vpshader2.cg (same)
    ---project.conf (holds the ID of the pkg as well as some other stuff I don't think needs changing)
    ---icon.cpp(I'm pretty sure this is a pixel array of an icon... is it the icon you select in the apps folder?)
    ---PS3_GAME\
    ------USRDIR\(Your stuff goes in here like images and sounds and what not. They would need to be in the appropriate format which I haven't looked into yet. Also when you compile the project, the eboot.bin goes in here.)
    ------ICON0.png (The icon associated with the app, I'm sure there is a dimension limit but I haven't looked at it yet)
    ------PARAM.SFO (I wasn't too terribly sure about this one until I found an SFO editor. It holds a bunch of information about your pkg from what it's called, to what version it is, to whether it's an HD game/install pkg etc. etc.)

    Anyway, that's the break down of what I've found so far. Can anyone shed light on some of the things I don't get?
    Reply With Quote  

  5. #5  
    Slynk is offline Member
    Join Date
    Sep 2010
    Posts
    754
    Downloads
    0
    Uploads
    0
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Likes Given
    4
    Likes Received
    361
    So I've been reading and reading and reading for days now through the sdk. I'm finally getting some of this stuff. I've managed to take the breakout game and strip it all the way down into a hello world app basically. From here I want to swap out dbgfont for font so that I can load up some cool fonts. I'll have to make my own font initialization/print functions. Anyway, my questions are:

    Is 0,0 top left of the screen like usual?

    Is there anything useful in the leaked 3.41 sdk for general development? I know there are things to make dynamic themes and what not. But it doesn't come with documentation so I don't know what's changed/been added.
    Reply With Quote  

  6. #6  
    xwolfi is offline Registered User
    Join Date
    Sep 2010
    Posts
    20
    Downloads
    0
    Uploads
    0
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Likes Given
    1
    Likes Received
    4
    Quote Originally Posted by Slynk View Post
    So I've been reading and reading and reading for days now through the sdk. I'm finally getting some of this stuff. I've managed to take the breakout game and strip it all the way down into a hello world app basically. From here I want to swap out dbgfont for font so that I can load up some cool fonts. I'll have to make my own font initialization/print functions. Anyway, my questions are:

    Is 0,0 top left of the screen like usual?

    Is there anything useful in the leaked 3.41 sdk for general development? I know there are things to make dynamic themes and what not. But it doesn't come with documentation so I don't know what's changed/been added.
    If you're interested, I'm doing the exact same thing, but for french people on a little forum, I'm making a cpp library, handling various stuff, for now it has multi threading support with Java-style classes, pad management, and PSGL initialization. I think there's a lot to say about ps3 dev, and a forum thread would be too tiny for this, would you mind giving me a way to contact you by instant messaging, like an irc chan you're on, or stuff like that ?

    To begin with, don't rely too much on other ps3 homebrew, a lot of them use the GCM library for handling graphics, and I find it a bit complicated: PSGL is a breeze compared to it, also, be sure you know your way around standard openGL/other graphic library, it's the only way to really understand the ps3 way of doing things, and last but not least, code in real C++, it's much more easier for beginners to understand, since the object oriented concepts are more natural, imho.

    So well, let's speak directly, I can show you my little lib which is sadly commented only in french, but is readable in english, and help you see an example on how to do clear code for beginners (for exemple, the open backup manager source code is totally the contrary: impossible to read if you're beginning, and even I who did an OpenGL 3D engine on PC couldn't crasp anything except for the Makefile which had good stuff in it, that's why I wanted to do something clear)
    Reply With Quote  

  7. #7  
    Slynk is offline Member
    Join Date
    Sep 2010
    Posts
    754
    Downloads
    0
    Uploads
    0
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Likes Given
    4
    Likes Received
    361
    I sent you a PM. ^^
    Reply With Quote  

  8. #8  
    flare is offline Registered User
    Join Date
    Feb 2010
    Posts
    5
    Downloads
    0
    Uploads
    0
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Likes Given
    1
    Likes Received
    0
    Is there any chance you could share with a few others or post more here xwolfi, as I am very interested in the help you were offering Slynk
    Reply With Quote  

  9. #9  
    Slynk is offline Member
    Join Date
    Sep 2010
    Posts
    754
    Downloads
    0
    Uploads
    0
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Likes Given
    4
    Likes Received
    361
    I'll write up what all he taught me sometime soon. Would you be interested in my bare minimum hello world source?
    Reply With Quote  

  10. #10  
    Slynk is offline Member
    Join Date
    Sep 2010
    Posts
    754
    Downloads
    0
    Uploads
    0
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Likes Given
    4
    Likes Received
    361
    Quote Originally Posted by flare View Post
    Is there any chance you could share with a few others or post more here xwolfi, as I am very interested in the help you were offering Slynk
    here you go. I wrote up what I learned. I also included my source which is very loosely based off of the breakout code:
    http://psx-scene.com/forums/f6/lachr...eleased-68272/ (Lachrymose BreakOutX 0.2 Released)

    but I stripped it down as much as I could.

    ///////////////////////////////////////////
    ///////////////////////////////////////////
    First thing's first, xwolfi wrote a tutorial here in french:
    [TUTO HOMEBREW] Faire son premier homebrew, et surtout le comprendre - Metagames

    And I got a rundown of libpthread, which is used for multithreading (plenty of tutorials online for this though).

    I was told how to make apps not restart your ps3 when you exit the program, which I included in my source, and I wrote up a controller input tutorial below based off of the info I was provided. ^^
    -------------------------------------------------
    To use input in your application, you'll have to #include <cell/pad/libpad.h>

    and make an instance of CellPadData

    Code:
    struct CellPadData padData;
    Before your loop call:

    Code:
    cellPadInit(1);
    In your loop, make a chek with:

    Code:
    cellPadGetData(controller_port_number, &PadData);
    first you want to test if padData.len > 0

    if so, then you can check for what was pressed using the following format:

    Code:
    padData.button[num] & CELL_PAD_CTRL_
    
    ex.
    
    if(padData.button[2] & CELL_PAD_CTRL_LEFT)
    {
    	//move left
    }
    bellow are all the codes for the controller in a more easy to read format than the sdk details:

    button[2]
    CELL_PAD_CTRL_LEFT
    CELL_PAD_CTRL_DOWN
    CELL_PAD_CTRL_RIGHT
    CELL_PAD_CTRL_UP
    CELL_PAD_CTRL_START
    CELL_PAD_CTRL_R3
    CELL_PAD_CTRL_L3
    CELL_PAD_CTRL_SELECT

    button[3]
    CELL_PAD_CTRL_SQUARE
    CELL_PAD_CTRL_CROSS
    CELL_PAD_CTRL_CIRCLE
    CELL_PAD_CTRL_TRIANGLE
    CELL_PAD_CTRL_R1
    CELL_PAD_CTRL_L1
    CELL_PAD_CTRL_R2
    CELL_PAD_CTRL_L2

    button[4]
    //holds the right analog stick's x direction
    //0x0000 all the way to the Left
    //0x00FF all the way to the Right

    button[5]
    //holds the right analog stick's y direction
    //0x0000 all the way Up
    //0x00FF all the way Down

    button[6]
    //holds the left analog stick's x direction
    //0x0000 all the way to the Left
    //0x00FF all the way to the Right

    button[7]
    //holds the left analog stick's y direction
    //0x0000 all the way Up
    //0x00FF all the way Down

    button[8]
    //holds Pressure-sensitive (Right)
    //0x0000 - 0x00FF

    button[9]
    //holds Pressure-sensitive (Left)
    //0x0000 - 0x00FF

    button[10]
    //holds Pressure-sensitive (Up)
    //0x0000 - 0x00FF

    button[11]
    //holds Pressure-sensitive (Down)
    //0x0000 - 0x00FF

    button[12]
    //holds Pressure-sensitive (Triangle)
    //0x0000 - 0x00FF

    button[13]
    //holds Pressure-sensitive (Circle)
    //0x0000 - 0x00FF

    button[14]
    //holds Pressure-sensitive (Cross)
    //0x0000 - 0x00FF

    button[15]
    //holds Pressure-sensitive (Square)
    //0x0000 - 0x00FF

    button[16]
    //holds Pressure-sensitive (L1)
    //0x0000 - 0x00FF

    button[17]
    //holds Pressure-sensitive (R1)
    //0x0000 - 0x00FF

    button[18]
    //holds Pressure-sensitive (L2)
    //0x0000 - 0x00FF

    button[19]
    //holds Pressure-sensitive (R2)
    //0x0000 - 0x00FF

    button[20]
    //holds Pressure-sensitive (X Axis)
    //0x0000 - 0x03FF

    button[21]
    //holds Pressure-sensitive (Y Axis)
    //0x0000 - 0x03FF

    button[22]
    //holds Pressure-sensitive (Z Axis)
    //0x0000 - 0x03FF

    button[23]
    //holds Pressure-sensitive (Angular Rate)
    //0x0000 - 0x03FF

    After you're done, make sure to clear the buffer with:
    cellPadClearBuf(controller_port_number);
    Attached Files
    Last edited by Slynk; 10-14-2010 at 01:16 AM. Reason: Some of the code was a bit off. This works though ^^.
    Reply With Quote  

Page 1 of 2 1 2 LastLast
Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •