Advertising (This ad goes away for registered users. You can Login or Register)

PSVita homebrew packaging standards discussion

Rejuvenate is a native homebrew platform for PS Vita. Read more about Rejuvenate here.
hgoel0974
Retired Mod
Posts: 2155
Joined: Mon Jul 23, 2012 11:42 pm
Location: New York

Re: PSVita homebrew packaging standards discussion

Post by hgoel0974 »

173210 wrote:So menu will load something like hblconf.txt and change the button combination, right?
It makes sense that VHL just loads homebrews. It shouldn't get large.
Well currently VHL exports a 'vhl_setIntSetting' function to allow a menu to set the button combination. I can see why you would suggest using a config file though, so I'm not exactly sure what I should settle with, maybe the config file is the better option after all?
While we're on the topic, I wanted to ask you about what you think the plugin support should be like, I don't know much about how the suprx format differs from a standard sce elf, faked plugins are possible by exporting the functions to register hooks, but that wouldn't be compatible with future stuff.
Advertising
"If the truth is a cruel mistress, then a lie must be a nice girl"
psgarsenal
Posts: 84
Joined: Sun Feb 03, 2013 10:37 am
Location: /home/psgarsenal
Contact:

Re: PSVita homebrew packaging standards discussion

Post by psgarsenal »

Not really an idea, but more like a personal preference,

I think instead of xml for any config files, we should use json because it is shorter in terms of characters, witch can mean faster reading times

[Edit]
Sorry, didn't see yifan's post, wich makes a lot of sense, then xml is a good format
Advertising
173210
Guru
Posts: 195
Joined: Fri Jul 15, 2011 11:32 pm

Re: PSVita homebrew packaging standards discussion

Post by 173210 »

hgoel0974 wrote:
173210 wrote:So menu will load something like hblconf.txt and change the button combination, right?
It makes sense that VHL just loads homebrews. It shouldn't get large.
Well currently VHL exports a 'vhl_setIntSetting' function to allow a menu to set the button combination. I can see why you would suggest using a config file though, so I'm not exactly sure what I should settle with, maybe the config file is the better option after all?
While we're on the topic, I wanted to ask you about what you think the plugin support should be like, I don't know much about how the suprx format differs from a standard sce elf, faked plugins are possible by exporting the functions to register hooks, but that wouldn't be compatible with future stuff.
Some users may want to use different settings on game. Menu may allow to do that with configuration files. Anyway, it depends on the implementation of menu.
Well, I don't think suprx is different from self. However, suprx should be SCE Usermode PS? Relocatable eXecutable file.
This page on vitadevwiki may be helpful. Yifan's specifications describes the same thing.
http://vitadevwiki.com/index.php?title=SELF_File_Format
Donate!
Bitconin: 1Aq3NruiohEvUsGJAmHoXjTq764HDS5zef
Paypal: http://173210.github.io/
hgoel0974
Retired Mod
Posts: 2155
Joined: Mon Jul 23, 2012 11:42 pm
Location: New York

Re: PSVita homebrew packaging standards discussion

Post by hgoel0974 »

So there's an issue with implementing the force kill, there isn't any way to kill threads from another thread and the only way to kill a thread seems to be to hook function calls, but not all threads can be expected to call imported function calls. Which means the only way would be to have an exit option in all homebrew. If anyone knows of a way to kill threads, I'd like to know about it.
"If the truth is a cruel mistress, then a lie must be a nice girl"
173210
Guru
Posts: 195
Joined: Fri Jul 15, 2011 11:32 pm

Re: PSVita homebrew packaging standards discussion

Post by 173210 »

hgoel0974 wrote:So there's an issue with implementing the force kill, there isn't any way to kill threads from another thread and the only way to kill a thread seems to be to hook function calls, but not all threads can be expected to call imported function calls. Which means the only way would be to have an exit option in all homebrew. If anyone knows of a way to kill threads, I'd like to know about it.
https://code.google.com/p/valentine-hbl ... ader.c#102
Donate!
Bitconin: 1Aq3NruiohEvUsGJAmHoXjTq764HDS5zef
Paypal: http://173210.github.io/
NullMan
Posts: 7
Joined: Sun Jan 12, 2014 11:15 pm

Re: PSVita homebrew packaging standards discussion

Post by NullMan »

hgoel0974 wrote:there isn't any way to kill threads from another thread.
Is that a rejuvenate issue or the Vita usr mode design?

--

Oh yeah and to stay on topic :D Using a Sony container is the best solution as others have said - for future compatibility. Going with a custom one would mean someone would have to maintain it indefinitely, for now and all future playstation consoles. Having to maintain less stuff makes sense, it allows developers to work on new things in the future. Sure, in an ideal world we could have super cool custom formats and all that. Unfortunately the amount of active developers is so small, furthermore the amount of developers who stick around is less.

The only time a custom format could make sense is if it was decoupled from the system implementation and external libraries. That way it could be portable between devices. Thing is it requires brilliant architecture design - not something we have around here, nor is it something everyone would understand. So while going with a Sony format is the boring pragmatic choice, it no doubt is the right one.
173210
Guru
Posts: 195
Joined: Fri Jul 15, 2011 11:32 pm

Re: PSVita homebrew packaging standards discussion

Post by 173210 »

NullMan wrote:
hgoel0974 wrote:there isn't any way to kill threads from another thread.
Is that a rejuvenate issue or the Vita usr mode design?

--

Oh yeah and to stay on topic :D Using a Sony container is the best solution as others have said - for future compatibility. Going with a custom one would mean someone would have to maintain it indefinitely, for now and all future playstation consoles. Having to maintain less stuff makes sense, it allows developers to work on new things in the future. Sure, in an ideal world we could have super cool custom formats and all that. Unfortunately the amount of active developers is so small, furthermore the amount of developers who stick around is less.

The only time a custom format could make sense is if it was decoupled from the system implementation and external libraries. That way it could be portable between devices. Thing is it requires brilliant architecture design - not something we have around here, nor is it something everyone would understand. So while going with a Sony format is the boring pragmatic choice, it no doubt is the right one.
Both of them. VHL is also not so good to kill threads. I'm planning to implement a system to do that with callbacks. Fortunately, PS Vita has callback system better than PSP one.
Donate!
Bitconin: 1Aq3NruiohEvUsGJAmHoXjTq764HDS5zef
Paypal: http://173210.github.io/
hgoel0974
Retired Mod
Posts: 2155
Joined: Mon Jul 23, 2012 11:42 pm
Location: New York

Re: PSVita homebrew packaging standards discussion

Post by hgoel0974 »

I think we've spent enough time on this without a lot of contribution. So, I've decided on the following:

Using a PKG style file structure as described in VitaDevWiki - Packages (.PKG)
The following files are mandatory:
  • sce_sys/param.sfo
The following files should (recommended) be provided for menus to utilize:
  • sce_sys/icon0.png [128x128]
  • livearea/contents/bg0.png [840x500]
  • livearea/contents/startup.png [960x544]
  • Applications should use the vfs0:/ root for paths (automatically translated by the loader).
  • All homebrew will have a folder in vfs0:app/ (maps to vfs0:/app/) and should avoid accessing other paths outside its directory.
  • The homebrew directory name should be a 9 character unique string (like for Quake, it could be "QUAKE1234") with only letters and digits, no special characters.
  • All homebrew must have a safe exit option, even though the loader can kill a homebrew. Exit using sceKernelExitProcess
  • Calls to VHL specific functions should be avoided, and at most should only be called by homebrew menus.
  • Homebrew can be loaded using sceAppMgrLoadExec (check the PSP2SDK docs for more information)
  • At the moment Live Area XML doesn't seem necessary however by following the above PKG layout, proper Live Area XML can be generated if necessary.
  • Keep save files/configuration data in the homebrew directory.
Last edited by hgoel0974 on Sat Jul 18, 2015 11:40 pm, edited 1 time in total.
"If the truth is a cruel mistress, then a lie must be a nice girl"
173210
Guru
Posts: 195
Joined: Fri Jul 15, 2011 11:32 pm

Re: PSVita homebrew packaging standards discussion

Post by 173210 »

hgoel0974 wrote:I think we've spent enough time on this without a lot of contribution. So, I've decided on the following:

Using a PKG style file structure as described in VitaDevWiki - Packages (.PKG)
The following files are mandatory:
  • sce_sys/param.sfo
The following files should (recommended) be provided for menus to utilize:
  • sce_sys/icon0.png [128x128]
  • livearea/contents/bg0.png [840x500]
  • livearea/contents/startup.png [960x544]
  • Applications should use the vfs0:/ root for paths (automatically translated by the loader).
  • All homebrew will have a folder in vfs0:/apps/ and should avoid accessing other paths outside its directory.
  • The homebrew directory name should be a 9 character unique string (like for Quake, it could be "QUAKE1234") with only letters and digits, no special characters.
  • All homebrew must have a safe exit option, even though the loader can kill a homebrew. Exit using sceKernelExitProcess
  • Calls to VHL specific functions should be avoided, and at most should only be called by homebrew menus.
  • Homebrew can be loaded using sceAppMgrLoadExec (check the PSP2SDK docs for more information)
  • At the moment Live Area XML doesn't seem necessary however by following the above PKG layout, proper Live Area XML can be generated if necessary.
  • Keep save files/configuration data in the homebrew directory.
According to Vita Dev Wiki, all applications are in *:/app. Shouldn't we use vfs0:/app instead of vfs0:/apps?
Donate!
Bitconin: 1Aq3NruiohEvUsGJAmHoXjTq764HDS5zef
Paypal: http://173210.github.io/
hgoel0974
Retired Mod
Posts: 2155
Joined: Mon Jul 23, 2012 11:42 pm
Location: New York

Re: PSVita homebrew packaging standards discussion

Post by hgoel0974 »

Ah yes, I meant that, error on my part. Thanks for pointing it out.
It's supposed to be vfs0:app/ to match ux0:app/
It should map to pss0:/top/Documents/app/
"If the truth is a cruel mistress, then a lie must be a nice girl"
Locked

Return to “Rejuvenate”