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

VitaMonoLoader: Difference between revisions

From GameBrew
No edit summary
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{cleanup|article|Needs cleanup}}
{{#seo:
{{#seo:
|title=Vita Homebrew PC Tools (Developments) - GameBrew
|title=Vita Homebrew PC Tools (Developments) - GameBrew
|title_mode=append
|title_mode=append
|image=vitamonoloadervita.jpg
|image=vitamonoloader2.png
|image_alt=VitaMonoLoader
|image_alt=VitaMonoLoader
}}
}}
{{Infobox Vita Homebrews
{{Infobox Vita Homebrews
|title=VitaMonoLoader
|title=VitaMonoLoader
|image=vitamonoloadervita.jpg
|image=vitamonoloader2.png
|description=Standalone Mono (C#) execution on PS Vita.
|description=Standalone Mono (C#) execution on PS Vita.
|author=GrapheneCt
|author=GrapheneCt
Line 15: Line 14:
|version=1.0
|version=1.0
|license=MIT
|license=MIT
|download=https://dlhb.gamebrew.org/vitahomebrews/vitamonoloadervita.7z
|download=https://dlhb.gamebrew.org/vitahomebrews/vitamonoloader.7z
|website=https://github.com/GrapheneCt/VitaMonoLoader
|website=https://github.com/GrapheneCt/VitaMonoLoader
|source=https://github.com/GrapheneCt/VitaMonoLoader
|source=https://github.com/GrapheneCt/VitaMonoLoader
Line 24: Line 23:


==User guide==
==User guide==
Installation (host side):
'''Installation (host side):'''
*Download and install latest [https://www.mono-project.com/download/stable/ Mono for Windows].
*Download and install latest [https://www.mono-project.com/download/stable/ Mono for Windows].
*Download <code>UnitySetup-Playstation-Vita-Support-for-Editor-2018.3.0a2.exe</code>, open it as archive and extract <code>$INSTDIR$_59_</code> folder
*Download <code>UnitySetup-Playstation-Vita-Support-for-Editor-2018.3.0a2.exe</code>, open it as archive and extract <code>$INSTDIR$_59_</code> folder
Line 31: Line 30:
*<code><UnitySupportExtractPath>/Tools</code> (where mono-xcompiler.exe is located).
*<code><UnitySupportExtractPath>/Tools</code> (where mono-xcompiler.exe is located).


Installation (PSP2 side):
'''Installation (PSP2 side):'''
*Download and install [[CapUnlocker_Vita|CapUnlocker plugin]].
*Download and install [[CapUnlocker_Vita|CapUnlocker plugin]].
*Copy <code>Media</code> folder from extracted Unity support installer to <code>app0</code>:.
*Copy <code>Media</code> folder from extracted Unity support installer to <code>app0:</code>.
*Copy <code>machine.config</code> from extracted Unity support installer to <code>app0:Media/Managed/mono/2.0</code>.
*Copy <code>machine.config</code> from extracted Unity support installer to <code>app0:Media/Managed/mono/2.0</code>.
*Copy modules from current release to <code>app0:Media/Modules</code>.
*Copy modules from current release to <code>app0:Media/Modules</code>.


Compiling C# code:
'''Compiling C# code:'''
*Compile your C# code to managed .dll by executing: <code>mcs -sdk:2 -target:library -out:<MyDllName>.dll <MySrcName>.cs</code>
*Compile your C# code to managed .dll by executing: <code>mcs -sdk:2 -target:library -out:<MyDllName>.dll <MySrcName>.cs</code>
*Compile your managed .dll to AOT assembly .s by executing: <code>mono-xcompiler.exe --aot=full,asmonly,nodebug,static <MyDllName>.dll</code>
*Compile your managed .dll to AOT assembly .s by executing: <code>mono-xcompiler.exe --aot=full,asmonly,nodebug,static <MyDllName>.dll</code>
Line 45: Line 44:
**For vitasdk: compile with -marm
**For vitasdk: compile with -marm


Using AOT assembly on PSP2:
'''Using AOT assembly on PSP2:'''
*Copy managed .dll file to <code>app0:Media/Managed</code>.
*Copy managed .dll file to <code>app0:Media/Managed</code>.
*Add AOT assembly .s file as compilation target in your PSP2 self project.
*Add AOT assembly .s file as compilation target in your PSP2 self project.
Line 52: Line 51:
   
   
  VMLRegisterAssembly(mono_aot_module_<MyDllName>_info);
  VMLRegisterAssembly(mono_aot_module_<MyDllName>_info);
==Changelog==
'''v1.0'''
*Upload core assemblies.


== External links ==
== External links ==
* GitHub - https://github.com/GrapheneCt/VitaMonoLoader
* GitHub - https://github.com/GrapheneCt/VitaMonoLoader
* Reddit - https://www.reddit.com/r/vitahacks/comments/v73coz/release_vitamonoloader_standalone_mono_c/
* Reddit - https://www.reddit.com/r/vitahacks/comments/v73coz/release_vitamonoloader_standalone_mono_c/

Latest revision as of 02:45, 19 Ocak 2023

VitaMonoLoader
Vitamonoloader2.png
General
AuthorGrapheneCt
TypeDevelopments
Version1.0
LicenseMIT License
Last Updated2022/06/08
Links
Download
Website
Source

VitaMonoLoader is a simple Mono library for developing C# applications mostly used on Linux.

Currently only Windows is supported for host. VDS (SCE SDK) and vitasdk are supported for PSP2.

User guide

Installation (host side):

  • Download and install latest Mono for Windows.
  • Download UnitySetup-Playstation-Vita-Support-for-Editor-2018.3.0a2.exe, open it as archive and extract $INSTDIR$_59_ folder
  • Add following to your PATH enviroment variable:
  • <MonoInstallPath>/bin (where mono.exe is located).
  • <UnitySupportExtractPath>/Tools (where mono-xcompiler.exe is located).

Installation (PSP2 side):

  • Download and install CapUnlocker plugin.
  • Copy Media folder from extracted Unity support installer to app0:.
  • Copy machine.config from extracted Unity support installer to app0:Media/Managed/mono/2.0.
  • Copy modules from current release to app0:Media/Modules.

Compiling C# code:

  • Compile your C# code to managed .dll by executing: mcs -sdk:2 -target:library -out:<MyDllName>.dll <MySrcName>.cs
  • Compile your managed .dll to AOT assembly .s by executing: mono-xcompiler.exe --aot=full,asmonly,nodebug,static <MyDllName>.dll
  • Add AOT assembly .s files as compile targets in your Vita app project.
  • Your PSP2 application must be compiled in ARM mode:
    • For VDS (SCE SDK): use -Xthumb=0 (can also be set in project settings)
    • For vitasdk: compile with -marm

Using AOT assembly on PSP2:

  • Copy managed .dll file to app0:Media/Managed.
  • Add AOT assembly .s file as compilation target in your PSP2 self project.
  • To load AOT assembly on PSP2, call:
extern void** mono_aot_module_<MyDllName>_info;

VMLRegisterAssembly(mono_aot_module_<MyDllName>_info);

Changelog

v1.0

  • Upload core assemblies.

External links

Advertising: