How hard is it to implement IsolatedStorage on PSM?

I was thinking of porting my game to PSM. Everything was going well until I realized there is no IsolatedStorage support on that platform, which is really bad for me since my game’s save data class is based on IsolatedStorage.

I understand it is not supposed to be part of MonoGame, so I posted on the PSM dev forum ( http://community.eu.playstation.com/t5/General/IsolatedStorage-implementation/td-p/23071143 ), but got no replies so far.

I also found the source of Mono’s implementation of IsolatedStorage ( https://github.com/mono/mono/tree/master/mcs/class/corlib/System.IO.IsolatedStorage ), but sadly it is not working on PSM.

I’m not a hardcore programmer but just curious how hard is it to implement a platform-specific feature like IsolatedStorage on PSM?

I’d suggest taking a look at Steve’s implementation for Windows Store (mentioned here Saving data to file on windows 8) and try swapping out the internal read/write stuff for the PSM API (metioned here IsolatedStorage not available on PSM?)

I’m not sure how hard it will be though.

Thanks @Aranda and Steve @KonajuGames ! I’ll see if I make it work with PSM… One thing that concerns me though is the lack of documentation and examples on the PSM Dev site. Hopefully it is not that different from the standard .Net stuff…

I’m not familiar with PSM APIs, but you should at least be able to use standard file I/O behind the IsolatedStorage APIs.

Well, after reading that post @Aranda linked, it would seem to be quite easy. IsolatedStorageFile will simply prefix the given path with “/Documents/” and then IsolatedStorageFileStream will simply wrap a FileStream.

I see. Thanks @KonajuGames! I’ll give it a try later today! =)

Hi @KonajuGames,

I played a bit with your implementation of IsolatedStorage, and these two lines are not working:
(In IsolatedStorageFile.cs)
using Windows.Storage;
using Windows.Storage.Search;

And I can’t seem to find the counterpart of Windows.Storage in the PSM SDK documentation (https://psm.playstation.net/static/general/all/psm_sdk/2/doc/en/).

Also, System.IO.Stream.CopyToAsync(System.IO.Stream, int, System.Threading.CancellationToken) doesn’t seem to be available on PSM…

I wonder if there are any MG devs who are familiar with PSM and are willing to help implement this helper assembly? >_<

Windows.Storage and Windows.Storage.Search are only need for Win8, so delete them. They’re part of WinRT.

You don’t want to do a port of my Win8 code. You want to gut most of the methods and write your own implementation for them using standard file I/O.

Thanks for the advice @KonajuGames! Well, I can try, but I’m pretty sure I won’t be able to implement a fully functional assembly like yours on my own, since I’m not familiar with non-XNA .Net stuff and PSM APIs… :frowning:

Gave it another shot and failed… Too many differences between the Windows API and PSM API… Somebody please help me… :frowning:

At this point, you shouldn’t bother with PlayStation Mobile, because it’s being shut down in a few months. May 31st is the last day you’ll be able to submit your PSM game for release, and all PSM games will be taken down from the store on July 15th.

Also, after September 10th, anyone who did buy your PSM game will no longer be able to download it.

More information here: http://www.vitaplayer.co.uk/playstation-mobile-closure-update-12th-march-2015/

Also saw that announcement yesterday… What a shame… Sony should have done better with this program…