• Stars
    star
    1,104
  • Rank 42,038 (Top 0.9 %)
  • Language
    C
  • License
    GNU General Publi...
  • Created almost 3 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

[WIP] PlayStation Vita to Horizon OS (Nintendo Switch OS) translation layer

vita2hos

A PlayStation Vita to Horizon OS (Nintendo Switch OS) translation layer (not an emulator)

How does it work?

PlayStation Vita (ARMv7 CPU) executables can be run natively on Nintendo Switch ARMv8 CPU in 32-bit execution mode.

When loading a PlayStation Vita executable, vita2hos redirects the module imports of said executable to jump to routines that implement the same behavior, by using native Horizon OS services, like the one exposed by the original PlayStation Vita OS modules.

How can I use it?

Running it on a real console

  1. Copy vita2hos.nsp to your microSD card (i.e. to: atmosphere/vita2hos.nsp)

  2. Create atmosphere/config/override_config.ini and add the following lines to it:

    [hbl_config]
    override_any_app=true
    override_any_app_key=R
    override_any_app_address_space=32_bit
    ; adjust the path according to the location of your file
    path=atmosphere/vita2hos.nsp
    • Note: As long as this file exists you won't be able to use the homebrew menu and instead will always run vita2hos.

      A quick workaround would be to rename the file and restart your Switch. Unfortunately override_config.ini doesn't allow multiple path entries which is why it has to be done this way.

  3. Copy a PlayStation Vita executable (.velf or .self/eboot.bin) to sd:/vita2hos/test.elf

  4. Boot (or reboot) your Switch and start any game while holding down R

    • Attempting to use vita2hos via applet mode (album button) will currently result in a fatal error and wouldn't be recommended anyway.
  5. Enjoy!

Running it on yuzu

  1. Copy a PlayStation Vita executable (.velf or .self/eboot.bin) to sd:/vita2hos/test.elf (File → Open yuzu Folder → sdmc/)
  2. Run vita2hos.nsp
  3. Enjoy!

Running it on Ryujinx

  1. Copy a PlayStation Vita executable (.velf or .self/eboot.bin) to sd:/vita2hos/test.elf (File → Open Ryujinx Folder → sdcard/)
  2. Disable PPTC (Options → Settings → System → Unselect Enable PPTC (Profiled Persistent Translation Cache))
  3. Run vita2hos.nsp
  4. Enjoy!

Project status, compatibility and supported features

This is still in very early stages and therefore it can only run very simple CPU-rendered PlayStation Vita homebrews.

There is very initial 3D graphics support (it can run vitasdk's GXM triangle and cube samples by hardcoding vita2hos's GLSL shaders to match the Cg shaders the samples use).

Special Thanks

A few noteworthy teams/projects who've helped along the way are:

Also special thanks to @PixelyIon and @SciresM for their help, and to all the testers, especially @TSRBerry.

Disclaimer

  • Nintendo Switch is a trademark of Nintendo Co., Ltd
  • PlayStation Vita is a trademark of Sony Interactive Entertainment

More Repositories

1

vita-udcd-uvc

PSVita UDCD USB Video Class plugin
C
468
star
2

ds4vita

Use a DS4 on your PSVita
C
175
star
3

fakemote

A Wii cIOS module that fakes Wiimotes from the input of USB game controllers
C
171
star
4

vita-linux-loader

Linux Loader for the PlayStation Vita
C
143
star
5

libvita2d

Simple and Fast (using the GPU) 2D library for the PSVita
C
136
star
6

vitastick

PSVita as a USB game controller
C
122
star
7

linux_vita

Linux kernel source tree (PlayStation Vita port)
C
88
star
8

GhidraVitaLoader

VitaLoader script for Ghidra
Java
81
star
9

sf2dlib

Simple and Fast 2D library for the Nintendo 3DS (using ctrulib)
C
77
star
10

psp-uvc-usb-video-class

PSP - UVC - USB Video Class
C
63
star
11

ds3vita

C
61
star
12

vita-libbaremetal

PSVita bare-metal payload library and sample
C
55
star
13

gxmfun

PSVita's 3D Graphics API (GXM) fun
C
53
star
14

libds4ps2

C
43
star
15

libftpvita

FTP Server for the PSVita
C
42
star
16

firm_linux_loader

Development has been moved to: https://github.com/linux-3ds/firm_linux_loader
C
41
star
17

viimote

C
41
star
18

play-switch

Play! - PlayStation2 Emulator (Nintendo Switch port)
C++
40
star
19

libds3ps2

C
36
star
20

SDL-3DS

SDL 3DS port
C
35
star
21

realboy-vita

Complete, Fast, Accurate, Game Boy/CGB/SGB Emulator (for the PSVita).
C
32
star
22

vita-baremetal-linux-loader

PSVita bare-metal Linux Loader
C
31
star
23

sftdlib

Simple and Fast Text Drawing library for the Nintendo 3DS
C
30
star
24

3DS-Linux-Loader

3DS Linux loader [DEPRECATED]
C
28
star
25

sfillib

Simple and Fast Image Loading library for the Nintendo 3DS (using sf2dlib and ctrulib)
C
26
star
26

tiny5

RISC-V Processor Implementation (RV32IM, TileLink-UL)
SystemVerilog
22
star
27

vitahelloworld

PSVita homebrew sample
C
21
star
28

desmume-vita

DeSmuME is a Nintendo DS emulator
C++
21
star
29

libsicksaxis

SickSaxis is a C library that lets you connect a Sixaxis or a DualShock3 to the Wii and read its data. It also lets you turn on and off the controller LEDs, enable or disable the rumble and get and set the controllers' bluetooth MAC address.
C
20
star
30

FTPS4

FTP server for PS4
C
19
star
31

vita-baremetal-loader

PSVita bare-metal payload loader
C
18
star
32

VITA-8

CHIP-8 emulator for the PSVita
C
17
star
33

arm9linuxfw

Nintendo 3DS: Linux <-> ARM9
C
14
star
34

vita_portlibs

Portlibs for the PSVita
Makefile
12
star
35

a9lh_linux_loader

arm9loaderhax Linux Loader for the Nintendo 3DS
C
11
star
36

3ds-arm9-linux

C
10
star
37

ds4pair_wii

DS4 pair tool
C
10
star
38

nunchuk2pi

Connect Wii nunchuk to the Raspberry Pi (Linux)
C
7
star
39

CHIP-3DS

CHIP-8 emulator for the Nintendo3DS
C
7
star
40

ds4wiibt-test

C
6
star
41

ya2d

Yet Another 2D library (for PSP)
C
5
star
42

PEC-OS

Operating System for the SISA Architecture
C
5
star
43

mload-mod

d2x-cios's mload mod with mload.txt support to load modules from SD at IOS startup
C
4
star
44

ds4wii_gyro_test

C
4
star
45

WiiCraft

Voxel game.
C++
3
star
46

ultra96v2_mipi_csi_imx219

Avnet Ultra96-V2 video pipeline for camera module with SONY IMX219 sensor using MIPI Adapter Mezzanine
Tcl
3
star
47

sixpair_wii

sixpair tool for the Wii
C
3
star
48

sisa-emu

SISA Architecture Emulator
C
3
star
49

vitareadelf

C
3
star
50

PS2InfoGB_rev6c_dsmod

C
2
star
51

xerpi

2
star
52

pspload

pspload - send executables to the PSP over the network
C
2
star
53

pspnetcat

C
2
star
54

miniomp

OpenMP runtime
C
2
star
55

NeHe-SFML2.0

NeHe tutorials with SFML 2.0
C++
2
star
56

ya2d_ps3

YA2D library for PS3
C
2
star
57

nidsparser

C++
1
star
58

FatFs-vita

FatFs with PSVita Memory Card support
C
1
star
59

ftpsp

FTP server for the PSP
C
1
star
60

PEC-SISA

SISA Architecture implementation
VHDL
1
star
61

Lua4PS3

Lua4PS3 - LuaPlayer for PS3
C
1
star
62

vita-libs-gen

vita-libs-gen (PoC)
C
1
star
63

intraFont-G-3DS

C
1
star
64

libds3wiibt

C
1
star
65

libds4wiibt

C
1
star
66

deko3d

C++
1
star
67

vita-elf-create

vita-elf-create (PoC)
C
1
star
68

play-switch-dependencies

C
1
star
69

circt_test

C++
1
star
70

play-switch-codegen

C++
1
star
71

Halide_test_circt

C++
1
star
72

Kamera

SFML and OpenGL tests
C++
1
star
73

play-switch-framework

C++
1
star
74

nunchuk-i2c-input-driver

Linux kernel driver to use Nintendo Wii's Wiimote Nunchuk as a joystick
C
1
star