Editing PSM Unity

Jump to navigation Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
[[Category:Software]]<noinclude>[[Category:Main]]</noinclude>
[[Category:Software]]<noinclude>[[Category:Main]]</noinclude>
<div style="float:right">[[File:Unity-icon0.png|left|thumb|Unity logo inside the device]]</div>
<div style="float:right">[[File:Unity-icon0.png|left]]</div>


<div style="color: #000000; background-color: #e5e4e2; border: 1px solid #808000; padding: 5px; {{box-shadow|4px|4px|8px|#b0b090}}">
<div style="color: #000000; background-color: #e5e4e2; border: 1px solid #808000; padding: 5px; {{box-shadow|4px|4px|8px|#b0b090}}">
Line 11: Line 11:


== PSM Development Assistant for Unity ==
== PSM Development Assistant for Unity ==
Vita app.


{| class="wikitable" style="font-size:small; text-align: center;border:3px ridge #123AAA;"
{| class="wikitable" style="font-size:small; text-align: center;border:3px ridge #123AAA;"
Line 23: Line 21:
| style="background-color:#FFFFFF; color:#123AAA;" |'''Hash SHA1'''
| style="background-color:#FFFFFF; color:#123AAA;" |'''Hash SHA1'''
| style="background-color:#FFFFFF; color:#123AAA;" |'''Links'''
| style="background-color:#FFFFFF; color:#123AAA;" |'''Links'''
| style="background-color:#FFFFFF; color:#123AAA;" |'''Size'''
| style="background-color:#FFFFFF; color:#123AAA;" |'''Notes'''
| style="background-color:#FFFFFF; color:#123AAA;" |'''Notes'''
|-
|-
| 1.00 || [[03.000.000_CEX|3.00]] || gd || {{dts|2013|11|26}} || {{md5|D207A1663E4778BE4CC8818506D05DE4}} ||  {{sha1|CD3A66939E2E4DBF698314921A49C13A66315C78}} || [https://mega.co.nz/#!y91mVSbR!mAu8cnI29XojMrVqorg0RaphMqPoCXsyxXg0lFwBL1c mega.co.nz] || - || -  
| 1.00 || [[03.000.000_CEX|3.00]] || gd || {{dts|2013|11|26}} || {{md5|D207A1663E4778BE4CC8818506D05DE4}} ||  {{sha1|CD3A66939E2E4DBF698314921A49C13A66315C78}} || [https://mega.co.nz/#!y91mVSbR!mAu8cnI29XojMrVqorg0RaphMqPoCXsyxXg0lFwBL1c mega.co.nz] || -  
|-
|-
| 1.01 || [[03.010.000_CEX|3.01]] || gp || - || - ||  - || - || - || -  
| 1.01 || [[03.010.000_CEX|3.01]] || gp || - || - ||  - || - || -  
|-
|-
| 1.02 || [[03.100.000_CEX|3.10]] || gp || - || - ||  - || - || - || -  
| 1.02 || [[03.100.000_CEX|3.10]] || gp || - || - ||  - || - || -  
|-
|-
| 1.03 || [[03.120.000_CEX|3.12]] || gp || - || - ||  - || - || - || -  
| 1.03 || [[03.120.000_CEX|3.12]] || gp || - || - ||  - || - || -  
|-
|-
| 1.04 || [[03.150.000_CEX|3.15]] || gp || - || - ||  - || - || - || -  
| 1.04 || [[03.150.000_CEX|3.15]] || gp || - || - ||  - || - || -  
|-
|-
| 1.05 || [[03.150.000_CEX|3.15]] || gp || {{dts|2014|07|12}} || {{md5|1FAA126521DFABFF9032EBB12F79D2CF}} ||  {{sha1|A78E54CE19D7E015AE8D6684EF8E7F8866CD94B6}} || [https://mega.co.nz/#!DttyWBaS!oj3jB-yCalXGv9qikaPrRn4G3ZJ5DIAZ5VEq2v0hLHY mega.co.nz] || - || -  
| 1.05 || [[03.150.000_CEX|3.15]] || gp || {{dts|2014|07|12}} || {{md5|1FAA126521DFABFF9032EBB12F79D2CF}} ||  {{sha1|A78E54CE19D7E015AE8D6684EF8E7F8866CD94B6}} || [https://mega.co.nz/#!DttyWBaS!oj3jB-yCalXGv9qikaPrRn4G3ZJ5DIAZ5VEq2v0hLHY mega.co.nz] || -  
|-
|-
| 1.06 || [[03.300.000_CEX|3.30]] || gp || {{dts|2014|10|17}} || {{md5|1673FA51A732347C4B8319986DB79BA3}} ||  {{sha1|D73875D9FFC51F61AD55E0C16C756C8071703AE6}} || [https://mega.co.nz/#!L9NXnAKY!t6eOo5jMaCSsy8kxS5uLYkutlAsziy-HzK4SCRHbpws mega.co.nz] || - || -  
| 1.06 || [[03.300.000_CEX|3.30]] || gp || {{dts|2014|10|17}} || {{md5|1673FA51A732347C4B8319986DB79BA3}} ||  {{sha1|D73875D9FFC51F61AD55E0C16C756C8071703AE6}} || [https://mega.co.nz/#!L9NXnAKY!t6eOo5jMaCSsy8kxS5uLYkutlAsziy-HzK4SCRHbpws mega.co.nz] || -  
|-
|-
|}
|}
Line 44: Line 41:
*http://www.psdevwiki.com/ps4/Template:Media_Services:PSM_Development_Assistant_for_Unity
*http://www.psdevwiki.com/ps4/Template:Media_Services:PSM_Development_Assistant_for_Unity


== Unity SDK ==
== CPU  ==


Computer app.
The CPU has 3 hardware threads available to the application.
Unity uses at least 2 (main and rendering), so creating more than one additional worker thread from managed  code is not likely to yield any additional benefit.
But this of course depends on how the application itself is behaving. For example, a GPU-limited application might have plenty of CPU time to spare.


{| class="wikitable" style="font-size:small; text-align: center;border:3px ridge #123AAA;"
== Graphics ==
| style="background-color:#FFFFFF; color:#123AAA;" |'''Version'''
| style="background-color:#FFFFFF; color:#123AAA;" |'''PSM Development Assistant version'''
| style="background-color:#FFFFFF; color:#123AAA;" |'''Hash MD5'''
| style="background-color:#FFFFFF; color:#123AAA;" |'''Hash SHA1'''
| style="background-color:#FFFFFF; color:#123AAA;" |'''Links'''
| style="background-color:#FFFFFF; color:#123AAA;" |'''Size'''
| style="background-color:#FFFFFF; color:#123AAA;" |'''Notes'''
|-
| 4.3.4f1 || 1.05 || {{md5|ae713bbdca0ecbcfbaf451d765cc0d20}} || {{sha1|5d0f96a3c5a060930f01a639b842a1ffa8e5b222}} || [http://beta.unity3d.com/download/psm_official_release/UnitySetup_update-4.3.4f1.exe beta.unity3d.com] || 488 MB || There may also be another version which is 436 MB but the difference is unknown.
|-
| 4.3.7p3 || 1.06 || {{md5|a8c4f3e57bf884140734eb4413b1347f}} || {{sha1|bbe7e70c97bc99565adf7f634a07b6cab89d9762}} || [http://beta.unity3d.com/download/psm_official_release_hotfix2/UnitySetup_update-4.3.7p3.exe beta.unity3d.com] || 488 MB ||
|}
 
== CPU  ==
The CPU has 3 hardware threads available to the application. <br />
Unity uses at least 2 (main and rendering), so creating more than one additional worker thread from managed  code is not likely to yield any additional benefit. <br />
But this of course depends on how the application itself is behaving. For example, a GPU-limited application might have plenty of CPU time to spare.


== Graphics ==
PowerVR-based graphics core. Shaders are written in Cg. Textures are compressed using [[DXT]] or [[PVRTC]] (PVRTC is currently not supported by Unity).
PowerVR-based graphics core. Shaders are written in Cg. Textures are compressed using [[DXT]] or [[PVRTC]] (PVRTC is currently not supported by Unity).<br />
Screen resolution is 960 × 544.
Screen resolution is 960 × 544.


== Memory ==
== Memory ==
The physical memory available in the PS Vita is 256MB of system memory, and 128MB of video memory.<br />
 
Not all of this is available to a "Unity for PSM" application - below is a breakdown of how much is reserved, for what, and how much is available to the application.
The physical memory available in the PS Vita is 256MB of system memory, and 128MB of video memory.  
Not all of this is available to a "Unity for PSM" application - below is a breakdown of how much is reserved, for what, and how much is available to the application.


=== System Memory ===
=== System Memory ===
{| class="wikitable" style="font-size:small; text-align: center;border:3px ridge #123AAA;"
{| class="wikitable" style="font-size:small; text-align: center;border:3px ridge #123AAA;"
|-
|-
Line 91: Line 74:
| Buffers (sub-system allocations) || -32 MB
| Buffers (sub-system allocations) || -32 MB
|-
|-
| {{cellcolors|lightblue|black}} Available to App || {{cellcolors|lightblue|black}} 184 MB
| Available to App || 184 MB
|-
|-
|}
|}


=== Video Memory ===
=== Video Memory ===
{| class="wikitable" style="font-size:small; text-align: center;border:3px ridge #123AAA;"
{| class="wikitable" style="font-size:small; text-align: center;border:3px ridge #123AAA;"
|-
|-
Line 109: Line 93:
| Buffers (screen and commands) || -25 MB
| Buffers (screen and commands) || -25 MB
|-
|-
| {{cellcolors|lightblue|black}} Available to App || {{cellcolors|lightblue|black}} 87 MB
| Available to App || 87 MB
|-
|-
|}
|}
* The numbers above are theoretical limits. It's good practice to allow for a few MB of unused buffer space, to not run out of memory while running the application.
 
* The memory listed as "Available to App" is used not only for scripts, but also for any kind of additional game data, such as meshes, physics/collision structures, etc.
The numbers above are theoretical limits. It's good practice to allow for a few MB of unused buffer space, to not run out of memory while running the application.
The memory listed as "Available to App" is used not only for scripts, but also for any kind of additional game data, such as meshes, physics/collision structures, etc.


== Input / Output ==
== Input / Output ==
The PS Vita has these input / sensor capabilities, all which are available from a "Unity for PSM" application:
 
* Directional input and × ○ □ △ buttons (digital)
The PS Vita has these input / sensor capabilities, all which are available from a "Unity for PSM" application
* Left and right shoulder buttons (digital)
 
* Left and right analog sticks (x/y axis)
*Directional input and × ○ □ △ buttons (digital)
* On-screen touch input + rear touch pad
*Left and right shoulder buttons (digital)
* Compass / Gyro / Accelerometer / Location
*Left and right analog sticks (x/y axis)
* Front and rear camera
*On-screen touch input + rear touch pad
* Speaker and microphone
*Compass / Gyro / Accelerometer / Location
*Front and rear camera
*Speaker and microphone


== Runtime ==
== Runtime ==
Application code runs in a Mono 'sandboxed' environment where only managed (C# / UnityScript / Boo) code is allowed.<br />
 
Application code runs in a Mono 'sandboxed' environment where only managed (C# / UnityScript / Boo) code is allowed.
The Mono runtime uses Just-In-Time (JIT) compilation of application (user) scripts.
The Mono runtime uses Just-In-Time (JIT) compilation of application (user) scripts.


== Rendering ==
== Rendering ==
Unity for PSM reuses the same graphics driver used in the "Unity PS Vita" <br />
This ensures that a high-performance rendering path is available also with Unity for PSM.<br />
But the graphics driver behaves quite differently in one key aspect : A shader instance is only compiled when it's actually used, i.e. right before rendering the material from which it is referenced.


This means that the classic fallback shader mechanism provided in Unity is not available on PSM. <br />
Unity for PSM reuses the same graphics driver used in the "Unity PS Vita"
An unsupported shader (a shader with a programming error, or otherwise fails to compile) will simply be replaced with the Default Shader,  which usually produce a pink color output (and the compilation error output written to the device log).
This ensures that a high-performance rendering path is available also with Unity for PSM.
Because this step can sometimes be computationally intensive, shaders already compiled are cached, and can be reused on subsequent application runs (provided the shader hasn't changed). One benefit of compiling shaders at runtime is that Unity for PSM also supports the older Unity "fixed function" shaders.
But the graphics driver behaves quite differently in one key aspect : A shader instance is only compiled when it's actually used -
i.e. right before rendering the material from which it is referenced.
 
This means that the classic fallback shader mechanism provided in Unity is not available on PSM.  
An unsupported shader (a shader with a programming error, or otherwise fails to compile) will simply be replaced with the Default Shader,  
  which usually produce a pink color output (and the compilation error output written to the device log).
 
And because this step can sometimes be computationally intensive, shaders already compiled are cached, and can be reused on subsequent application runs  
(provided the shader hasn't changed).
 
One benefit of compiling shaders at runtime is that Unity for PSM also supports the older Unity "fixed function" shaders.
Please note that all contributions to Vita Developer wiki are considered to be released under the GNU Free Documentation License 1.2 (see Vita Developer wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following hCaptcha:

Cancel Editing help (opens in new window)