Announcing SMS project

Discuss the development of software, tools, libraries and anything else that helps make ps2dev happen.

Moderators: cheriff, Herben

taz030485
Posts: 27
Joined: Thu May 27, 2004 3:37 pm

Post by taz030485 »

fringo wrote:alwsome!!! cd/dvd iso suppor & host support !!!
Now I can read it from normal cd/dvd iso compilation!!!!

NoW !!! What do I need to burn a bootable SMS cd ?
Sms.elf,audserv.irx(where do I get one?),netsupport(what file do I need to include?),usbd.irx,system.cnf
AFAIK all u need to boot SMS is SMS.ELF and USB.IRX all the rest are embeded in SMS.ELF. To make a CD all u should need is SYSTEM.CNF (pointing to SMS of course) SMS.ELF. For network support you'll also need a config file, I'm not sure whether SMS uses CONFIG.DAT or IPCONFIG.DAT. Also I don't know if it is setup to look for USB.IRX or then config from CD.
EEUG
Posts: 136
Joined: Fri May 13, 2005 4:49 am
Location: The Netherlands

Post by EEUG »

...for network 'mc0:/SYS-CONF/IPCONFIG.DAT' is used. For USBD.IRX see README :)...
fringo
Posts: 13
Joined: Fri Jul 15, 2005 5:19 am

Post by fringo »

Thanks....for the info!!!!
fringo
Posts: 13
Joined: Fri Jul 15, 2005 5:19 am

Post by fringo »

hi wondering whether anyone having this problem with
cd/dvd iso support . I' use launchElf3.41 copy Sms.elf & usbd.irx to Memory card.

I have tested couple of movie different file sizes, burned method(DAO,Mode-2)
70mb-no problem playing
200mb-no problem playing
300mb -no problem playing
700mb- played for the first 20 - 25 min of the movie ..........then all of the sudden player hang !!!! and a loud noise emmiting.At first I tought is my avi files that are corrupted ..but then I tried 6 of my movie all behave in this manner

I haven't tried the sms player on cdda format though.
EEUG
Posts: 136
Joined: Fri May 13, 2005 4:49 am
Location: The Netherlands

Post by EEUG »

...no way for me to use burned CD/DVD (no modchip) :)...
EEUG
Posts: 136
Joined: Fri May 13, 2005 4:49 am
Location: The Netherlands

Post by EEUG »

Version 1.4 (Rev.2) stuff is commited to SVN. There's only one new feature: new CDVD.IRX allowing to read files from DVD video disks on unmodded consoles. SMS.elf is no longer available in SVN. It is located at the main page in PS2->Projects section.
Best regards
Eugene
EEUG
Posts: 136
Joined: Fri May 13, 2005 4:49 am
Location: The Netherlands

Post by EEUG »

...Version 1.4 (Rev.3) stuff is commited to SVN. Added support for some "old" codecs etc. (README)...
EEUG
Posts: 136
Joined: Fri May 13, 2005 4:49 am
Location: The Netherlands

Post by EEUG »

...Version 1.4 (Rev.4) is in the SVN...
EEUG
Posts: 136
Joined: Fri May 13, 2005 4:49 am
Location: The Netherlands

Post by EEUG »

...Version 1.4 (Rev.5) is in the SVN. Source code of modified IOP drivers is also commited...
bix64
Posts: 38
Joined: Mon Oct 17, 2005 6:40 am

Post by bix64 »

Hello EEUG.
I just finish some work on a skinned version, integreted and test on rev5, i've only port some fonction of gskit in your GS and DMA sources codes, that work whit libjpg.
I don't know if my code interest you...

Bye
jacky400
Posts: 9
Joined: Mon Oct 17, 2005 2:09 pm

Can anyone help to compile a SMS (rev 5) binary/elf for me ?

Post by jacky400 »

Thanks
jacky400
Posts: 9
Joined: Mon Oct 17, 2005 2:09 pm

SMS

Post by jacky400 »

Can anyone help to compile a SMS (rev5) binary/elf and associated files( audsrv.irx ,etc ) for me to use ?Thx a lot .
EEUG
Posts: 136
Joined: Fri May 13, 2005 4:49 am
Location: The Netherlands

Post by EEUG »

@bix64: if you want, I can integrate your changes and put them to SVN. Just share your changes somewhere (or use e-mail). Thank you...

@jacky400: some time ago I've posted a message to ps2-scene forums about compilation process etc. Here's the quote:
Get this first: http://rapidshare.de/files/4426296/ps2dev_bin.rar.html
Extract the archive somewhere (just note that path used for extraction does not contain spaces). There's ps2dev.bat file in the root of extracted directory. Change lines #2 and #3 in accordance to the extracted path. Save the file. Launch it from the explorer. Command window will open. Type 'make'<enter> in it. If following line will appear:

make: *** No targets specified and no makefile found. Stop.

then changes were correct and ps2dev environment is ready for use. Go to the SMS root folder. Type 'make clean'<enter>. Then 'make'<enter>. After some time and a lot of cryptic things 'bin' directory will contain 'SMS.elf' . It will be 'starting point'...
jacky400
Posts: 9
Joined: Mon Oct 17, 2005 2:09 pm

Post by jacky400 »

Bix64, i am so interest about your skinned version ,can i have some screenshot of it ?

EEMG: Thanks a lot .By the way ,i want to stream the media through network.Is it i need a IPCONFIG.DAT or etc?
EEUG
Posts: 136
Joined: Fri May 13, 2005 4:49 am
Location: The Netherlands

Post by EEUG »

Is it i need a IPCONFIG.DAT or etc?
...it's not mandatory if your network configuration matches one declared in 'getIpConfig' function from SMS.c file...
bix64
Posts: 38
Joined: Mon Oct 17, 2005 6:40 am

ScreenShoot skinned version

Post by bix64 »

Hello

voici 2 screen of my version.
NTSC MODE:
Image
PAL MODE:
Image

bye
bix64
Posts: 38
Joined: Mon Oct 17, 2005 6:40 am

Codes for EEUG

Post by bix64 »

Hello,

Here is the link for my files:
http://www.fileshack.us/files/131/Files ... kinned.rar

Bye
EEUG
Posts: 136
Joined: Fri May 13, 2005 4:49 am
Location: The Netherlands

Post by EEUG »

...OK, I've got your files. Thank you. I'll integrate it as soon as I'll have time for it (there's still a problem with A/V sync, so first I'll try to fix that)...
bix64
Posts: 38
Joined: Mon Oct 17, 2005 6:40 am

Post by bix64 »

I hope my work can interest and give idea to some other programer.
I'm still working on it.
bye
EEUG
Posts: 136
Joined: Fri May 13, 2005 4:49 am
Location: The Netherlands

Post by EEUG »

...the interesting thing would be to have a DivX/XviD encoded I-Frame instead of jpeg image, so skin drawing routine will use existing functionality of SMS. There will be no dependency on libjpeg, SMS.elf will be smaller and there will be no problem with full-screen image :)...
jacky400
Posts: 9
Joined: Mon Oct 17, 2005 2:09 pm

Post by jacky400 »

EEUG

I just tested the SMS rev5 and feel it is very good and have high potential but i also encountered some problems .

1.Movie play smooth through network even at high resolution (960x528) but the quality is not so good ( no image filtering so have block )
2.When i press 'select' button to pause the move and the 'triangle' button to stop the movie ,sometime the movie stop responding and show the 'Stopping' message forever.
3.If have subtitle (srt,sub/idx) support , will be very nice .
bix64
Posts: 38
Joined: Mon Oct 17, 2005 6:40 am

Post by bix64 »

That's a good idea, but which functionality of SMS can load only one I-frame and freeze it.
EEUG
Posts: 136
Joined: Fri May 13, 2005 4:49 am
Location: The Netherlands

Post by EEUG »

@jacky400: I will let someone to practice with creation of the image postprocessor :). Concerning "Stopping" thingy: did not encounter such a behaviour yet. Sometimes it takes some time to stop (while all asynchronous read operations will finish (I didn't find a way to terminate them immediately));

@bix64: well, let's have a look: we have DivX/XviD decoder routines. Suppose we'll use DivX5xxx. Then following could be done (this is only a rough estimation, I have to dig source code to make exact procedure, so I'll let you to do that (maybe it would be interesting for you to understand how the whole stuff works)):
- create and fill SMS_CodecContext structure;
- call SMS_CodecOpen function passing that structure to it;
- call 'Initialize' method of 'SMS_Codec' structure (member of SMS_CodecContext structure initialized by previous step) to initialize codec;
- call IPU_InitContext function supplying GS_Context and image dimensions to it;
- read I-Frame from a file to the buffer;
- call 'Decode' method of 'SMS_Codec' structure to get decoded picture;
- call 'Display' method of 'IPUContext' to display picture;
- perform cleanup (destroy all contexts etc.);

This has to be done inside 'GUIStub_DrawBackground' function (which is empty in SVN). No modifications of other files are necessary. In my case
'GUIStub_DrawBackground' draws that blue balls and version number. You are free to make any implementation of that function (it has one parameter: pointer to the GSContext)...

P.S. You can create and test aforementioned things on PC/Windows/MSVC environment first (that will save a lot of time while debugging). Use 'DDrawSrv' application from SVN as your drawing board. And all that codecs, GS and IPU things are fully functional under Windows. Just make an MSVC console project, include necessary files from SVN to it and compile :)...
bix64
Posts: 38
Joined: Mon Oct 17, 2005 6:40 am

Post by bix64 »

Thanks for your explication.

So, let's go...

I've a lot of time.

bye
bix64
Posts: 38
Joined: Mon Oct 17, 2005 6:40 am

Post by bix64 »

@EEUG:

I've got some problem to pass my I-Frame file to the buffer without initializing FileContext, cause if i do that it crash.
I can use fioOpen directly, but i have to use FileContext whit it.

For my I-Frame, I use a 1 frame avi file, code in Divx5, DX50, 640*512, ~20KB.
Is it OK?

Bye
EEUG
Posts: 136
Joined: Fri May 13, 2005 4:49 am
Location: The Netherlands

Post by EEUG »

...I wouldn't use .avi file for that, just raw I-Frame (which could be read using even standard 'fopen'/'fread' functions). If you'd like, you can send me your work (e-mail can be found at SMS's sources), so I'll try to take a look at it tomorrow at work and I'll get back to you with my remarks.
Best reagrds
Eugene
bix64
Posts: 38
Joined: Mon Oct 17, 2005 6:40 am

Post by bix64 »

I don't understand Raw I-frame???
*.c file??? *.raw file???
EEUG
Posts: 136
Joined: Fri May 13, 2005 4:49 am
Location: The Netherlands

Post by EEUG »

...well, .avi file contains so-called streams. Stream is a sequence of so-called packets. SMS processes video streams and audio streams. Packets in video stream are compressed pictures (aka. "frames"). Mainly there're I-Frames (which contain whole picture, just like jpeg image) and P-Frames (they are generated from I-Frames and some other information like motion vectors etc., i.e. to get certain P-Frame we have to decode I-Frame and all P-Frames between that I-Frame and our "certain P-Frame"). So, if we have only a P-Frame (which also contains image dimensions and other information) we can get the whole picture. I'm not sure that there're tools to extract one packet with I-Frame from .avi file. I did it "manually" on PC with help of modified SMS. Quite fuzzy, isn't it? :)...

Edit: and this is actual test function which displays I-Frame. I've just typed it in and tested it on PC (I believe it will also work on PS2).

Code: Select all

static void IFrameTest &#40; void &#41; &#123;

 SMS_CodecContext lCodecCtx;

 GSContext*  lpGSCtx  = GS_InitContext  &#40; GSDisplayMode_AutoDetect &#41;;
 IPUContext* lpIPUCtx = IPU_InitContext &#40; lpGSCtx, 688, 512 &#41;;

 lCodecCtx.m_Width     = 688;
 lCodecCtx.m_Height    = 512;
 lCodecCtx.m_pIntBuf   = NULL;
 lCodecCtx.m_IntBufCnt = 0;
 lCodecCtx.m_ID        = SMS_CodecID_MPEG4;

 if &#40;  SMS_CodecOpen &#40; &lCodecCtx &#41;  &#41; &#123;

  if &#40;  lCodecCtx.m_pCodec -> Init &#40; &lCodecCtx &#41;  &#41; &#123;

   FILE* lpFile = fopen &#40; "D&#58;\\IF.bin", "rb" &#41;;

   if &#40; lpFile != NULL &#41; &#123;

    long  lSize;
    void* lpData;

    fseek &#40; lpFile, 0, SEEK_END &#41;;
    lSize = ftell &#40; lpFile &#41;;
    fseek &#40; lpFile, 0, SEEK_SET &#41;;

    lpData = malloc &#40; lSize &#41;;

    if &#40; lpData &#41; &#123;

     SMS_Frame* lpFrame = NULL;

     fread &#40; lpData, 1, lSize, lpFile &#41;;

     lCodecCtx.m_pCodec -> Decode &#40;
      &lCodecCtx, &#40; void** &#41;&lpFrame, lpData, lSize
     &#41;;

     if &#40; lpFrame &#41; &#123;

      if &#40; !lpFrame -> m_pData &#41; lpFrame = &g_MPEGCtx.m_CurPic;

      lpIPUCtx -> Display &#40; lpFrame -> m_pData &#41;;
      lpIPUCtx -> Sync &#40;&#41;;

     &#125;  /* end if */

     free &#40; lpData &#41;;

    &#125;  /* end if */

    fclose &#40; lpFile &#41;;

   &#125;  /* end if */

   lCodecCtx.m_pCodec -> Destroy &#40; &lCodecCtx &#41;;

  &#125;  /* end if */

  SMS_CodecClose &#40; &lCodecCtx &#41;;

 &#125;  /* end if */

 lpIPUCtx -> Destroy &#40;&#41;;
 lpGSCtx  -> Destroy &#40;&#41;;

&#125;  /* end IFrameTest */
bix64
Posts: 38
Joined: Mon Oct 17, 2005 6:40 am

Post by bix64 »

??????????????!!!!!!!!!!!!!!!!!!!!!!!!!!????????????????
Hey, that fonction is what i want to do!!!
There is just some modification to make, but it's very good.
The file IF.bin is the I-Frame file, isn't it?
I'm searching a tool which can extract it from avi.
EEUG
Posts: 136
Joined: Fri May 13, 2005 4:49 am
Location: The Netherlands

Post by EEUG »

...yes, IF.bin is just "Columbia Pictures presents" XviD's I-Frame :). In your case you have GSContext already, so just drop it here. Another problem is that we have to know picture dimensions before initialization of SMS_CodecContext. In fact I-Frame contains them but we can't extract it without codec :) (SMS uses dimensions from avi file)...
Post Reply