Forum: PS2 Homebrew/Dev & Emu Scene - Topics relating to homebrew PS2 development and emulation. Stay current and up to date on the latest homebrew releases from the best devs on the scene.


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: Ps2 dev reference ?
  

Results 1 to 5 of 5
  1. #1 Question Ps2 dev reference ? 
    pant3k is offline Member
    Join Date
    Nov 2012
    Location
    Poland
    Posts
    32
    Downloads
    0
    Uploads
    0
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Likes Given
    2
    Likes Received
    3
    Can i find any reference like this:
    aHR0cDovL3d3dy5jcGx1c3BsdXMuY29tL3JlZmVyZW5jZS9jc3 RkaW8v (base64encode)
    for ps2?

    for example functions:
    SifInitRpc
    FlushCache
    SifExitCmd
    SifLoadFileExit
    SifExitIopHeap
    SifExecModuleBuffer
    SifIopReset


    Maybe on archive sites ? (base64 encoded):
    aHR0cDovL3dlYi5hcmNoaXZlLm9yZy93ZWIvMjAwNjEyMDUwMz UxMDYvaHR0cDovL3BzMmRldi5vcmcvDQpodHRwOi8vd2ViLmFy Y2hpdmUub3JnL3dlYi8yMDEwMTAyMzEwMjQ1My9odHRwOi8vcH MyZGV2Lm9yZy9wczIvVHV0b3JpYWxzDQpodHRwOi8vd2ViLmFy Y2hpdmUub3JnL3dlYi8yMDA1MDUyMTEyNDM0NC9odHRwOi8vcH MyZGV2LmxpdmVtZWRpYS5jb20uYXUva2IuYXNwP3Q9MQ0KaHR0 cDovL3dlYi5hcmNoaXZlLm9yZy93ZWIvMjAwODA1MTQwNjQ1NT kvaHR0cDovL3BzMmRldi5vZmNvZGUuY29tL21vZHVsZXMvd29y ZHByZXNzLz9wYWdlX2lkPTM3DQpodHRwOi8vd2ViLmFyY2hpdm Uub3JnL3dlYi8yMDAyMDEyODIyMzQ1NS9odHRwOi8vcHMyZGV2 LmxpdmVtZWRpYS5jb20uYXUva2IuYXNwP1Q9Nzg=

    on last link we can see English scelib(dot)txt but not available (no copy of this link on web archive)


    Any help, hints?
    Maybe someone has a copy of function references(if any exist)?
    Thanks.
    PS2 NOT DEAD !!!
    Reply With Quote  

  2. #2  
    SP193's Avatar
    SP193 is offline The fallen spartan...
    Join Date
    May 2009
    Location
    シンガポール
    Posts
    1,943
    Downloads
    0
    Uploads
    0
    Mentioned
    14 Post(s)
    Tagged
    3 Thread(s)
    Likes Given
    33
    Likes Received
    208
    Quote Originally Posted by pant3k View Post
    Can i find any reference like this:
    aHR0cDovL3d3dy5jcGx1c3BsdXMuY29tL3JlZmVyZW5jZS9jc3 RkaW8v (base64encode)
    for ps2?

    for example functions:
    SifInitRpc
    FlushCache
    SifExitCmd
    SifLoadFileExit
    SifExitIopHeap
    SifExecModuleBuffer
    SifIopReset


    Maybe on archive sites ? (base64 encoded):
    aHR0cDovL3dlYi5hcmNoaXZlLm9yZy93ZWIvMjAwNjEyMDUwMz UxMDYvaHR0cDovL3BzMmRldi5vcmcvDQpodHRwOi8vd2ViLmFy Y2hpdmUub3JnL3dlYi8yMDEwMTAyMzEwMjQ1My9odHRwOi8vcH MyZGV2Lm9yZy9wczIvVHV0b3JpYWxzDQpodHRwOi8vd2ViLmFy Y2hpdmUub3JnL3dlYi8yMDA1MDUyMTEyNDM0NC9odHRwOi8vcH MyZGV2LmxpdmVtZWRpYS5jb20uYXUva2IuYXNwP3Q9MQ0KaHR0 cDovL3dlYi5hcmNoaXZlLm9yZy93ZWIvMjAwODA1MTQwNjQ1NT kvaHR0cDovL3BzMmRldi5vZmNvZGUuY29tL21vZHVsZXMvd29y ZHByZXNzLz9wYWdlX2lkPTM3DQpodHRwOi8vd2ViLmFyY2hpdm Uub3JnL3dlYi8yMDAyMDEyODIyMzQ1NS9odHRwOi8vcHMyZGV2 LmxpdmVtZWRpYS5jb20uYXUva2IuYXNwP1Q9Nzg=

    on last link we can see English scelib(dot)txt but not available (no copy of this link on web archive)


    Any help, hints?
    Maybe someone has a copy of function references(if any exist)?
    Thanks.
    You need to get a copy of the Sony PS2SDK. Sorry, but such information is a bit hard to come across.

    There are samples in the homebrew PS2SDK that shows that the SIF needs to be initialized (And how the IOP should be reset), but they don't explain what each function does, when to and when not to invoke them, and are sometimes redundant/incorrect.

    I've struggled in 2009 to understand all that, so here is what I've learned:

    1. The Playstation 2 has two MIPS processors: The Emotion Engine (EE), which is the CPU, and the I/O Processor (IOP) which deals with I/O requests to the peripherals.
    2. These two processors are interconnected by the Sub-processor InterFace (SIF), which consists of three DMA channels. SIF0 and SIF1 are used for EE<->IOP communication, and both of them are unidirectional. Only SIF2 is bidirectional, but it's not used on retail consoles (It's used for debugging on TEST/debug units).
    3. Functions on the other processor are invoked from the processor that the calling function is running on through Remote Procedure Calls (RPCs) that run over the SIF.
    4. When your program starts up, you should reset the IOP to initialize it into a known state, and to clear off whatever modules there are running on it. It's not only to save IOP RAM, but to prevent potential module conflicts.

    Standard IOP initialization and deinitialization sequence:
    Code:
    SifInitRpc(0); // Initialize the SIF RPC interface to set up the location for receiving SIF command packets on the IOP side, for the IOP reset to work properly.
    while(!SifIopReset(NULL, 0)){};
    //Feel free to do anything here that does not involve the IOP.
    while(!SifIopSync()){}; //Wait for the IOP to reset.
    
    // Bring up the SIF RPC
    SifInitRpc(0);
    //Initialize other RPC services...
    
    ...
    
    // Deinitialize RPC services
    ...
    
    //Shut down the SIF RPC
    SifExitRpc();
    
    return 0;
    In this example, I reset the IOP with the default IOP image. Some homebrew may use rom0:EELOADCNF, but this IOPRP image is missing from all Protokernel boot ROMs (SCPH-10000 and SCPH-15000) and the Playstation 3.

    To reset the IOP with an external IOP image, the syntax passed as the first argument to SifIopReset() would be in this format: "rom0:UDNL <Full path to IOPRP image>".

    The only supported devices for retrieving IOPRP images from are the ROM, CD/DVD drive, and the Memory Card (However, a Magicgate-encrypted updater program must be specified in place of rom0:UDNL).

    The 2nd argument to SifIopReset() is the flags field, and setting it to 0x100 enables decrypting the specified updater program. However, nobody will usually use it.

    Sony has the following restrictions placed on IOP module loading, and this applies to IOP resets too:
    1. Unencrypted modules may only be loaded from read-only devices, such as the ROM and CD/DVD drive.
    2. Modules loaded from user-modifiable devices like the HDD unit and memory card must be encrypted.
    3. For IOPRP images, #2 is performed by using a special, encrypted updater program which contains the IOPRP image embedded in it, in place of rom0:UDNL.
    4. The rom0:LOADFILE module in the boot ROM does not support sceSifLoadModuleBuffer(), hence a call to sbv_patch_enable_lmb() is required to enable this RPC after the IOP is reset. This is required to enable SifExecModuleBuffer().
    5. Sony does #4 as well, when the HDDOSD is booted.
    Unmodified SCPH-77006 with SM 3.6
    SCPH-39006 with M-chip modchip, SCPH-10281 NA and refurb Seagate 80GB HDD
    SCPH-10000 v1.00 with SCPH-10190 PCMCIA NA and SCPH-20400 HDD unit
    PS2ESDL v0.823B

    やっほー 汗がひかる♪
    Reply With Quote  

  3. #3  
    pant3k is offline Member
    Join Date
    Nov 2012
    Location
    Poland
    Posts
    32
    Downloads
    0
    Uploads
    0
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Likes Given
    2
    Likes Received
    3
    Thanks.
    Returning to the questions:
    1. Any reference of example sifrpc(dot)h library has been created?
    2. Only materials are
    files : PS2Basics(dot)pdf, PS2IOP(dot)pdf ,PS2BMP1(dot)pdf ,PS2BMP2(dot)pdf, PS2ANIM(dot)pdf ,PS2FONTS(dot)pdf on philvaz(dot)com site
    info on lukasz(dot)dk site
    info about arch and examples?


    *edit

    Ok i found official 2. 7 sdk docs a i have 2 new questions
    1. Are sceSifMInitRpc and SifInitRpc the same? If not then what is the difference?(i am guessing official and unofficial sdk)
    2. I don't see "SifIopReset" in PS2 IOP Reference Sif 2(dot)7(dot)pdf . ?
    Last edited by pant3k; 12-04-2012 at 10:13 AM.
    PS2 NOT DEAD !!!
    Reply With Quote  

  4. #4  
    SP193's Avatar
    SP193 is offline The fallen spartan...
    Join Date
    May 2009
    Location
    シンガポール
    Posts
    1,943
    Downloads
    0
    Uploads
    0
    Mentioned
    14 Post(s)
    Tagged
    3 Thread(s)
    Likes Given
    33
    Likes Received
    208
    Quote Originally Posted by pant3k View Post
    Ok i found official 2. 7 sdk docs a i have 2 new questions
    1. Are sceSifMInitRpc and SifInitRpc the same? If not then what is the difference?(i am guessing official and unofficial sdk)
    Sorry, but I don't have my reference now. Why don't you spend some time studying those documents and finding out? Most of the functions in the homebrew PS2SDK were derived from the Sony SDK, but with the "sce" prefix removed.

    Quote Originally Posted by pant3k View Post
    2. I don't see "SifIopReset" in PS2 IOP Reference Sif 2(dot)7(dot)pdf . ?
    It's in the EE SIF documentation.

    EDIT: Or if it's not there either, it's because it's used internally by SifIopReboot(), which is a high-level wrapper function to make resetting the IOP easier for the developers.
    Unmodified SCPH-77006 with SM 3.6
    SCPH-39006 with M-chip modchip, SCPH-10281 NA and refurb Seagate 80GB HDD
    SCPH-10000 v1.00 with SCPH-10190 PCMCIA NA and SCPH-20400 HDD unit
    PS2ESDL v0.823B

    やっほー 汗がひかる♪
    Reply With Quote  

  5. #5  
    pant3k is offline Member
    Join Date
    Nov 2012
    Location
    Poland
    Posts
    32
    Downloads
    0
    Uploads
    0
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Likes Given
    2
    Likes Received
    3
    I think that this is what I wanted to know.
    Thanks.
    PS2 NOT DEAD !!!
    Reply With Quote  

Tags for this Thread

View Tag Cloud

Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •