Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

VVNZRunner Vita: Difference between revisions

From GameBrew
m (Text replacement - "GameBrew!" to "GameBrew")
No edit summary
 
(3 intermediate revisions by the same user not shown)
Line 2: Line 2:
|title=Vita Homebrew Apps (Plugins) - GameBrew
|title=Vita Homebrew Apps (Plugins) - GameBrew
|title_mode=append
|title_mode=append
|image=vvnzrunnervita.jpg
|image=vvnzrunnervita2.png
|image_alt=VVNZRunner
|image_alt=VVNZRunner
}}
}}
{{Infobox Vita Homebrews
{{Infobox Vita Homebrews
|title=VVNZRunner
|title=VVNZRunner
|image=vvnzrunnervita.jpg
|image=vvnzrunnervita2.png
|description=Kernel plugin for PS Vita that provides API to run Toshiba MeP code on Venezia
|description=Kernel plugin for PS Vita that provides API to run Toshiba MeP code on Venezia.
|author=GrapheneCt
|author=GrapheneCt
|lastupdated=2021/09/02
|lastupdated=2022/09/02
|type=Plugins
|type=Plugins
|version=2.1
|version=2.1
|license=Mixed
|license=Mixed
|download=https://dlhb.gamebrew.org/vitahomebrews/vvnzrunnervita.7z
|download=https://dlhb.gamebrew.org/vitahomebrews/vvnzrunnervita.7z
|website=
|website=https://www.reddit.com/r/vitahacks/comments/pfg4he/release_vvnzrunner_run_custom_code_on_venezia/
|source=https://github.com/GrapheneCt/VVNZRunner
|source=https://github.com/GrapheneCt/VVNZRunner
}}
}}
'''VVNZRunner''' is a kernel plugin for PS Vita that provides API to run Toshiba MeP code on Venezia. It supports execution of MeP ELFs directly from userland-allocated memblock.
VVNZRunner is kernel plugin for PS Vita that provides API to run Toshiba MeP code on Venezia.  


Original idea from PS Vita Henkaku wiki [https://wiki.henkaku.xyz/vita/Venezia article].
Original idea from PS Vita Henkaku wiki [https://wiki.henkaku.xyz/vita/Venezia article].
Line 24: Line 24:
VVNZRunner provides safe way to run MeP code on Venezia processor and functions to transfer data from and to Venezia SPRAM.
VVNZRunner provides safe way to run MeP code on Venezia processor and functions to transfer data from and to Venezia SPRAM.


==V-Thread support ==
==User guide==
V-Threads are threads that run on Venezia cores. Up to 6 cores can run tasks simultaneously in normal mode and up to 7 in extended mode (enabled with sceCodecEngineChangeNumWorkerCoresMax()). All tasks that fall outside of limit will be automatically scheduled for execution. Note that even when running V-Thread, vnzBridgeExec() is blocking on ARM side. Refer to sample_mep for V-Thread creation procedure.
===V-Thread support ===
V-Threads are threads that run on Venezia cores. Up to 6 cores can run tasks simultaneously in normal mode and up to 7 in extended mode (enabled with sceCodecEngineChangeNumWorkerCoresMax()).  


==Screenshot==
All tasks that fall outside of limit will be automatically scheduled for execution.  
[[image:vvnzrunnervita.jpg|600px]]


== Venezia memory management system ==
Note that even when running V-Thread, vnzBridgeExec() is blocking on ARM side. Refer to sample_mep for V-Thread creation procedure.
Venezia uses specific memory management system for all external memory. You must use it for any memory passed to Venezia from ARM side to ensure cache consistency. More info can be found [https://github.com/GrapheneCt/VVNZRunner/blob/main/sample_mep/include/vnz/memory.h here].


== Sample ==
=== Venezia memory management system ===
Sample blits some text to screen on Venezia side and displays it on ARM side
Venezia uses specific memory management system for all external memory.
 
You must use it for any memory passed to Venezia from ARM side to ensure cache consistency.
 
More info can be found [https://github.com/GrapheneCt/VVNZRunner/blob/main/sample_mep/include/vnz/memory.h here].
 
=== Sample ===
Sample blits some text to screen on Venezia side and displays it on ARM side.


To compile MeP code use [https://github.com/TeamMolecule/mepsdk mepsdk].
To compile MeP code use [https://github.com/TeamMolecule/mepsdk mepsdk].
Line 40: Line 46:
Check sample Makefile for flags used to compile MeP code for Venezia.
Check sample Makefile for flags used to compile MeP code for Venezia.


== Usage notes ==
=== Usage notes ===
* Due to the address restrictions any global variables in MeP code should be used with GET_SYMBOL_ADDR() macro. That also includes operations with function addresses.
Due to the address restrictions any global variables in MeP code should be used with GET_SYMBOL_ADDR() macro.  
 
That also includes operations with function addresses.
 
==Screenshots==
https://dlhb.gamebrew.org/vitahomebrews/vvnzrunnervita3.png


==Changelog==
==Changelog==
'''(v.2.1)'''
'''v2.1'''
*Various improvements and bugfixes
*Various improvements and bugfixes.
*Added some comments in the runner header to explain plugin operation
*Added some comments in the runner header to explain plugin operation.


'''(v.2.0)'''
'''v2.0'''
*This release adds support for direct execution of MeP ELF.
*This release adds support for direct execution of MeP ELF.


'''(v.1.0)'''
'''v1.0'''
* First Release.
* First Release.


== External links ==
== External links ==
* Github - https://github.com/GrapheneCt/VVNZRunner
* GitHub - https://github.com/GrapheneCt/VVNZRunner
* CBPS Forums - https://forum.devchroma.nl/index.php?topic=375.0
* Reddit - https://www.reddit.com/r/vitahacks/comments/pfg4he/release_vvnzrunner_run_custom_code_on_venezia/

Latest revision as of 03:37, 12 Ocak 2023

VVNZRunner
Vvnzrunnervita2.png
General
AuthorGrapheneCt
TypePlugins
Version2.1
LicenseMixed
Last Updated2022/09/02
Links
Download
Website
Source

VVNZRunner is kernel plugin for PS Vita that provides API to run Toshiba MeP code on Venezia.

Original idea from PS Vita Henkaku wiki article.

VVNZRunner provides safe way to run MeP code on Venezia processor and functions to transfer data from and to Venezia SPRAM.

User guide

V-Thread support

V-Threads are threads that run on Venezia cores. Up to 6 cores can run tasks simultaneously in normal mode and up to 7 in extended mode (enabled with sceCodecEngineChangeNumWorkerCoresMax()).

All tasks that fall outside of limit will be automatically scheduled for execution.

Note that even when running V-Thread, vnzBridgeExec() is blocking on ARM side. Refer to sample_mep for V-Thread creation procedure.

Venezia memory management system

Venezia uses specific memory management system for all external memory.

You must use it for any memory passed to Venezia from ARM side to ensure cache consistency.

More info can be found here.

Sample

Sample blits some text to screen on Venezia side and displays it on ARM side.

To compile MeP code use mepsdk.

Check sample Makefile for flags used to compile MeP code for Venezia.

Usage notes

Due to the address restrictions any global variables in MeP code should be used with GET_SYMBOL_ADDR() macro.

That also includes operations with function addresses.

Screenshots

vvnzrunnervita3.png

Changelog

v2.1

  • Various improvements and bugfixes.
  • Added some comments in the runner header to explain plugin operation.

v2.0

  • This release adds support for direct execution of MeP ELF.

v1.0

  • First Release.

External links

Advertising: