PS2 [$200 U.S. BOUNTY] MX4SIO Support in SMS Media Player

I only have a USB device\disk...
Additionally I deleted SMS folder from a memory card.
So yeah, it even freezes with only a USB disk.

EDIT: I also freezes without a USB disk loaded from a memory card:
IMG-20240811-121521.png
All good thanks for testing.. I inadvertently used iomanx and filexio modules from ps2dev 1.0 without thinking since that's what sms compiles on currently since libmpeg is broken in latest however all the other mass modules etc are from latest so it might be a incompatibility problem cause by mixing module versions.. if it's not that then.. its going to be even more annoying
 
Ripto is testing on real hw for me as there was every console but my ps2 in the shed.. I have no idea where it's gone. exFat bdm usb is working, mx4 lists but gets stuck somewhere getting the video container when trying to play the video.. still investigating.
 
Ripto is testing on real hw for me as there was every console but my ps2 in the shed.. I have no idea where it's gone. exFat bdm usb is working, mx4 lists but gets stuck somewhere getting the video container when trying to play the video.. still investigating.
I use it only for music, if get exFat, that would the best.
 
test version here if anyone wants to verify that.. Riptos mx gets stuck trying to open the video but exfat usb works..no fat32 drivers though
The music .m4a file work.
Works exFat and Fat32, the only visual issue is show me and a third blank usb, while i have connected only 2.
And something in the setting, can't save setting but after press again say is save, and the other visual like the autostart HDD is check but the usb autostart.
Besides the visual issue, all work good until now with music in usb.

Thank you.
 

Attachments

  • SMS.jpg
    SMS.jpg
    1.4 MB · Views: 1,083
Last edited:
I did not try to load any music, to save or load settings.

But as Vision mentioned FAT32 and exFAT are now recognized by SMS.
The 1st downside is that you have 3 removable media even if only one or even two are connected:
IMG-20240813-110024-2.png


The second downside it that you have these blinking messages and the bottom when you play a movie:
IMG-20240814-115923.png


I tried to get rid of them by changing a Synch. parameter 1 (video),
but it did not help:
IMG-20240814-120953.png


BTW: The Start USB suport option has gone:
IMG-20240814-121016.png

The Autostart USB option even when it is off it will eventually launch a USB disk.

Anyway thanks for this new version. :encouragement:
 
The 1st downside is that you have 3 removable media even if only one or even two are connected:
Hackish trick to circumvent shitty SMS code


The Start USB suport option has gone
Hackish trick to circumvent shitty SMS code

The Autostart USB option even when it is off it will eventually launch a USB disk.
Hackish trick to circumvent shitty SMS code


The second downside it that you have these blinking messages and the bottom when you play a movie:
Fixable
 
The second downside it that you have these blinking messages and the bottom when you
It's a test build, those messages are so ripto can tell me where the app stalls since I don't have an mx4sio or even my ps2 it seems.

And yea like el_isra said, we're forcing it to try connect mass0 1 & 2 even if they aren't present.. it's a workaround for the meantime.

When it tries to play a video it calls smsinitplayer() which calls smsgetcontainer() which calls an array of possible functions in the test case, smsgetcontaineravi() which calls _readheader() which calls _loadindex() which calls _loadidx1() which calls fd->stream which is stio_stream() in filecontext.c which calls fioRead() and that's where it stalls.. it was fun to trace :s so I would image all subsequent calls to fioRead() for mx4 would fail.. I don't know why as calling read() is pretty standard but that is as far as I've gotten and it might not be possible to figure out why without an actual ps2 to try debug. Quickly tried swapping to filexio module and functions; no dice.

As far as I can tell the function call is receiving all the correct data.. filepath device etc but I will check the contents of the file pointer at this point to be sure.. since usb works it seems everything in sms itself is functioning properly (sans the gui stuff)
 
Last edited:
@Krah, what about the CLA approach I mentioned?
It makes no difference, the issue isn't GUI related.

What we know so far: fioOpen(), fioLSeek(), fioOpenDir(), fioReadDir() (and corresponding close functions) all work as expected.. we are able to detect the mx4sio device and list its contents.. we can open the file and seek it since we know its calculating the size of the file correctly in this printf just before trying to read() the file
Code:
fp=mass0:/intro.avi fs=2172928
.. when trying to stream the file from the device with fioRead() calls it shits the bed..why? I don't know and I don't have an mx4sio to be able to test (thanks to @Ripto for testing so many versions I sent him).. Initially I had replaced fio calls with filexio and replaced the module but it later became evident that this was not necessary and simply loading the iomanx module fixes the dirent issues so I reverted the filexio stuff in order to retain SMS original code as much as possible.

What does work: BDM USB & exFat, saving and loading cfg should work also but I don't know about Exit?.. I've removed all the GUI nonsense from the test build just in case anyone is curious as is.. I removed the hack around devices auto loading 3 usbs BUT with the caveat we lose hot plugging so when you START USB you wanna make sure your devices are connected.. as El_Isra explained earlier the custom usb module in SMS sends sif cmds to the EE telling it when a device has been connected or disconnected.. sdk modules don't do this.. this could obviously be expanded on and we get hot plugging back but I went back to do some stuff on OPL and with mx4sio not streaming the video there is not a lot of point spending time on other aspects (at least in regards to the bounty).

Current changes can be found here:
https://github.com/KrahJohlito/SMS/commit/f716b3a5bde5a8e3c148cc14ce6d576cd0922b2a

Along with the binary in actions or I'll just upload the elf anyway for those without a github account.
 

Attachments

Last edited:
as El_Isra explained earlier the custom usb module in SMS sends sif cmds to the EE telling it when a device has been connected or disconnected.. sdk modules don't do this.. this could obviously be expanded on and we get hot plugging back
:eek:

Even OPL could make good use of it!
 
It makes no difference, the issue isn't GUI related.

What we know so far: fioOpen(), fioLSeek(), fioOpenDir(), fioReadDir() (and corresponding close functions) all work as expected.. we are able to detect the mx4sio device and list its contents.. we can open the file and seek it since we know its calculating the size of the file correctly in this printf just before trying to read() the file
Code:
fp=mass0:/intro.avi fs=2172928
.. when trying to stream the file from the device with fioRead() calls it shits the bed..why? I don't know and I don't have an mx4sio to be able to test (thanks to @Ripto for testing so many versions I sent him).. Initially I had replaced fio calls with filexio and replaced the module but it later became evident that this was not necessary and simply loading the iomanx module fixes the dirent issues so I reverted the filexio stuff in order to retain SMS original code as much as possible.

What does work: BDM USB & exFat, saving and loading cfg should work also but I don't know about Exit?.. I've removed all the GUI nonsense from the test build just in case anyone is curious as is.. I removed the hack around devices auto loading 3 usbs BUT with the caveat we lose hot plugging so when you START USB you wanna make sure your devices are connected.. as El_Isra explained earlier the custom usb module in SMS sends sif cmds to the EE telling it when a device has been connected or disconnected.. sdk modules don't do this.. this could obviously be expanded on and we get hot plugging back but I went back to do some stuff on OPL and with mx4sio not streaming the video there is not a lot of point spending time on other aspects (at least in regards to the bounty).

Current changes can be found here:
https://github.com/KrahJohlito/SMS/commit/f716b3a5bde5a8e3c148cc14ce6d576cd0922b2a

Along with the binary in actions or I'll just upload the elf anyway for those without a github account.

Although it saves the settings, i can see the SMS folder in MC, after exit and go again to SMS, need again from beggined like no save.
I run the original SMS and the setting which make it with your version is detected.
On USB.
 
Last edited:

Similar threads

Back
Top