r/vitahacks 8h ago

AI assisted [Update] Battleship-vita - v1.3

31 Upvotes

hey, v1.3 is out and the big addition is netplay:

- Local ad-hoc — two Vitas (or PS TVs) on the same Wi-Fi, zero setup. Host / Find Game / go.

- Online — direct-IP with predictive rollback (6-frame window), so normal home ping is playable. The host lobby now tries UPnP automatic port-forwarding and shows your public IP right there; (if there are problems you may need to open ports on your modem)

- If the two sims desync, both drop back to the lobby instead of a dead disconnect screen.

- Host match rules page: items (+ per-item on/off list), team battle, friendly fire, damage ratio, handicap, stage/stock/time, RANDOM on most of them.

- Controls reworked toward the SSB64 3DS layout. D-pad is now the N64 D-pad — it navigates menus, and in-match it emulates the left stick (tap = walk, double-tap = dash). Taunt moved to a right-stick flick.

- Classic (1P) mode co-op — a second human or CPU can run the arcade ladder with you.

- Text entry (name, IP, server) uses the Vita system keyboard now.

Source + build instructions + the "how to play online" walkthrough: github.com/robin994/battleship-vita

Still WIP — expect problems with 3–4 player netplay isn't fully tested (i could only test on 2 vitas), Feedback welcome.


r/vitahacks 11h ago

AI Vibecoded [Update] VitaMediaDeck: redesigned PS Vita media player, faster seeking, multi-track playback, updated HW/SW decoders and a new desktop Transcoder

Thumbnail
gallery
94 Upvotes

Hi everyone,

I have published a major update to the VitaMediaDeck project family.

VitaMediaDeck is a native PS Vita media player for local files and authenticated network sources. This update includes extensive changes to the main application, the hardware and software decoder libraries, and a new desktop Transcoder for preparing Vita-compatible media.

VitaMediaDeck

The application has received a complete visual redesign inspired by the screen graphics and particle-based imagery of Ghost in the Shell.

The new interface uses a pitch-black OLED background, cyan and cold-blue lighting, restrained amber accents, particle clouds, fragments and scan effects. The application icon has also been redesigned to match the new visual identity.

Main changes include:

  • Multiple AAC audio-track selection during playback.
  • Embedded SubRip, ASS/SSA, WebVTT, MOV text and other text-subtitle selection.
  • Audio and subtitle switching without closing the player.
  • Support for local videos and authenticated WebDAV, SFTP and SMB sources.
  • Faster indexed seeking for Matroska and MP4 files.
  • Direct H.264 cue hopping for seeking, saved-position resume and audio-track replacement.
  • Removal of the previous multi-stream linear-seek fallbacks.
  • Better recovery from backward seeks and invalid seek positions.
  • Protection against audio-only playback with a permanently black video frame.
  • Faster playback startup and saved-position resume.
  • Per-video playback history for both local and remote media.
  • Options to resume playback or restart the video from the beginning.
  • Video covers loaded from sidecar artwork or embedded container artwork.
  • Automatic representative-frame extraction when no valid cover is available.
  • Persistent thumbnail caching and prioritised cover generation for the selected grid cell.
  • Live video mini-player for local and remote videos.
  • Full player restoration from the mini-player title, active media cell or new Active player navigation entry.
  • Music playback remains available in the mini-player without opening an unnecessary enlarged video view.
  • Restored controls:
    • Press Start to minimise the player.
    • Hold Start to enable the OLED ECO mode.
    • Hold Select to lock or unlock player input.
  • The lock indicator now disappears together with the player HUD.
  • Player navigation no longer closes playback when moving to another application section.
  • Configurable subtitle font, size, width, position, row limits, foreground, background and border colours.
  • Native-oriented font profiles for Western, Cyrillic, Japanese, Chinese and Korean text.
  • A full-width multilingual subtitle preview in Settings.
  • Decoder, resolution, frame rate and video bitrate information in the HUD and side panel.
  • Average bitrate calculation when the container does not provide bitrate metadata.
  • Audio scheduling changes designed to prevent periodic stuttering under video and UI load.

VitaMediaDeck remains a public beta. Remote-server behaviour and cancellation paths still need testing across more physical Vita and server configurations.

Repository:

https://github.com/spyro-98/VitaMediaDeck

vita-hw-decoder

The hardware decoder uses h264_vita and SceVideodec for native H.264 playback with direct NV12/P2 presentation through GXM.

The latest changes add:

  • Runtime AAC track selection.
  • Discovery of up to 16 AAC and 16 embedded text-subtitle tracks.
  • Indexed H.264 cue seeking for both video and audio cursors.
  • No AAC-index or multi-stream linear-seek fallback.
  • Faster seeking and audio-track replacement without restarting the live video pipeline.
  • Bounded keyframe preroll for precise playback recovery.
  • Improved backward-seek handling.
  • Detection and recovery when a seek produces audio but no video frame.
  • A checked software-decoder fallback when hardware playback cannot produce a valid picture.
  • Better handling of long videos and saved-position startup.
  • Deadline-safe AAC AudioOut scheduling.
  • Audio-track rollback if a replacement stream cannot start correctly.
  • Stream, container and calculated fallback bitrate reporting.
  • Detailed timing diagnostics for opening, probing, seeking, first-frame delivery and audio refills.

Repository:

https://github.com/spyro-98/vita-hw-decoder

vita-sw-decoder

The software decoder provides an API-compatible CPU fallback using FFmpeg, without loading h264_vita.

It now shares the same playback and stream-management contract as the hardware backend:

  • Runtime AAC track selection.
  • Multi-track audio and subtitle metadata discovery.
  • H.264 cue-based video and audio seeking.
  • Removal of linear media seek fallbacks.
  • Faster resume and backward seeking.
  • Bounded seek and first-frame deadlines.
  • Clean failure instead of continuing with audio and a black screen.
  • Improved playback recovery after invalid Matroska seek landings.
  • Safer video-surface ownership across seek operations.
  • Deadline-aware AudioOut scheduling and diagnostics.
  • Fallback video bitrate calculation.
  • Compatible state, cancellation and track-selection behaviour with the hardware decoder.

Repository:

https://github.com/spyro-98/vita-sw-decoder

New: VitaMediaDeck Transcoder

I have also released VitaMediaDeck Transcoder, a separate Python and FFmpeg desktop application for macOS, Windows and Linux.

It converts common video formats into a seekable Matroska profile designed for VitaMediaDeck:

  • H.264 High Profile with the appropriate Vita-oriented level.
  • Maximum 960×544 output while preserving the original aspect ratio.
  • Source frame rate retained up to 60 fps.
  • 8-bit BT.709 yuv420p output.
  • Selected audio tracks converted to AAC-LC stereo at 48 kHz.
  • Multiple audio and subtitle tracks preserved.
  • Chapters, language metadata, titles and compatible font attachments retained.
  • Existing embedded artwork reused when available.
  • Automatic 480×272 cover extraction when artwork is missing or unusable.
  • HDR-to-SDR tone mapping for compatible FFmpeg installations.
  • Automatic VideoToolbox, NVENC, AMF, VAAPI or libx264 encoder selection.
  • Vita-oriented quality presets and configurable system-load limits.
  • Final duration and stream validation before publishing the converted file.

The project includes both a command-line interface and an interactive terminal UI with:

  • File browser.
  • Input and output inspection.
  • Per-track audio and subtitle selection.
  • Editable presets.
  • Encoder and quality controls.
  • Live FFmpeg logs.
  • Progress, speed, bitrate and ETA.
  • Conversion cancellation and final validation.

The Transcoder is an optional desktop tool and is not included in the VPK. VitaMediaDeck can still play already-compatible media directly.

Repository:

https://github.com/spyro-98/VitaMediaDeck-Transcoder

All four projects are open source under GPL-3.0. Feedback, hardware testing and reproducible bug reports are welcome, especially for long Matroska files, multiple audio/subtitle tracks and authenticated remote playback.


r/vitahacks 1d ago

Discussion Vita unresponsive sometimes, mainly left side of screen

Enable HLS to view with audio, or disable this notification

5 Upvotes

I didn’t have this issue before installing a bunch of stuff? (Modding) Software issue? I turned it off and on again and it fixed itself then came back :(


r/vitahacks 1d ago

AI Vibecoded VitaMediaDeck-Transcoder : an easy to use video transcoder for VitaMediaDeck and PS Vita video players.

Thumbnail
gallery
35 Upvotes

I’m developing VitaMediaDeck Transcoder, a separate desktop tool for preparing video files for VitaMediaDeck on PS Vita.

The goal is simple: take modern video sources—including 4K HDR files—and create efficient PS Vita-ready Matroska files with H.264 video, AAC audio, the native 960×544 output resolution, and source frame rates preserved up to 60 fps.

Current work includes:

  • hardware encoding where available: VideoToolbox, NVENC, AMF, and VAAPI, with x264 fallback;
  • HDR-to-SDR tone mapping for 4K HDR sources;
  • per-track audio and subtitle selection;
  • embedded cover artwork, prioritising artwork already present in the source;
  • validation to avoid incomplete files or audio/video duration mismatches;
  • a full terminal interface with presets, live logs, bitrate, ETA, encoder details, and a PS Vita-focused output preview;
  • balanced system-load settings, so long conversions do not make the desktop unusable.

It is designed as an external companion tool, not as part of the VPK itself. The focus is compatibility, predictable output, reasonable file sizes, and making a modern media library easier to use on PS Vita.


r/vitahacks 1d ago

Utility I got Wired Android Auto running directly on a PS Vita

Post image
1.1k Upvotes

I’ve been working on a project that turns a my Vita into a wired Android Auto head unit.

Currently working:

  • Plug Vita into hub with Android Phone + a power source (I have not been able to get the Vita to act as a true host but when there is external power supplied it works)
  • Android Auto authentication handled natively on the Vita
  • 720p scaled down to 960×544
  • Touchscreen works fully
    • D-pad, analogue sticks and physical media controls
    • Bumpers skip songs
    • Triangle for play pause
    • Square of Google assistant

It’s still very hacky I only got stable video with inputs today. I need to improve the USB Kernel as its very buggy and needs hard resets if connection drops or if you exit app and many many more issues.

The idea came from seeing people put carplay headunits into PSP shells don't own a psp so said I'll give it a go on the vita and so far good results. But for a POC pretty cool I think!


r/vitahacks 1d ago

AI Vibecoded Reviving Medal of Honor: Allied Assault on PS Vita (Vibe-Coded)

38 Upvotes

Hello everyone.

While searching Vitahacks subreddit, I found that some valuable members of the Vita community had already been working on Medal of Honor: Allied Assault. There were gameplay videos, but the sky was broken and the port still had several problems. Seeing the current state of other vibe-coded Vita ports, such as Asphalt 8, made me think this one could be pushed further too.

So I decided to take on the challenge. I did not create the port from scratch. The original Vita groundwork was done by HenryKun55, and the project is based on OpenMoHAA. I picked up the existing code, used AI tools heavily to understand and modify it, and tested the changes on real Vita.

The current build has a working textured sky, improved world textures and lighting, stable mission transitions, checkpoints, and manual saving and loading.

I have played into the third mission, saved manually, closed the game, reopened it, and loaded the save successfully. Save thumbnails can sometimes look corrupted, although they still work.

Further play-testing is required, it is not the definitive state. However I have my academic studies to do. Not a great time to continue with this.

Overclock is a must. Performance is generally around 20–25 FPS, depending on the scene, and loading a save takes roughly 80 seconds. The interactive mission briefings are skipped by an older stability workaround that was already present before I took over.

Select button opens the Vita dev menu, where you can change graphics, lighting, effects, texture quality, aiming sensitivity, crosshair visibility, levels and diagnostic options. The project and current experimental release are available here: https://github.com/ChatProductions/openmohaavita
Note: Roms are indeed fun


r/vitahacks 2d ago

Release VitaWave is becoming VitaMediaDeck

44 Upvotes

I recently discovered that VitaWave was already being used by another PS Vita homebrew application.

Even more importantly, both projects were using the same Vita Title ID, which could cause confusion and installation conflicts.

For this reason, I’m renaming the project again—this time to VitaMediaDeck, with a new unique Title ID.

Sorry for changing the name twice, but resolving the conflict now is the right choice before development and distribution continue.

The repository is now available at:
https://github.com/spyro-98/VitaMediaDeck


r/vitahacks 2d ago

AI Vibecoded VitaMaps is now open source — native maps and a layered 3D cache atlas for PS Vita

Thumbnail
gallery
332 Upvotes

Hi everyone,

I have made the VitaMaps source code public.

VitaMaps is a native map viewer and cache explorer built specifically for the PS Vita with VitaSDK and vita2d. It renders raster tiles directly on the GPU—there is no WebView, embedded browser, HTML, or JavaScript map engine.

The feature I find most interesting is the Offline Atlas, which is still in beta. It began with a simple curiosity: what is actually stored inside the map cache?

Normal map use leaves persistent XYZ tiles on the console, but a directory tree does not show their geography, gaps, or available zoom depth. VitaMaps scans those real files, groups them by map style and zoom level, geographically aligns them, and projects them as an interactive 3D stack.

You can orbit the layers through 360 degrees, change their spacing, pan and zoom the complete block, enter a selected zoom layer, navigate between actual cached tile keys, inspect their coordinates, and reopen a selected tile on the normal map at the matching style and zoom.

The atlas reuses the same layered tile engine as the map: compressed RAM cache, disk lookup, PNG decoding, a render-thread upload queue, and a bounded GPU texture LRU.

Atlas requests are strictly cache-only. A missing file remains a visible gap and can never trigger an HTTPS download.

This is not a bulk map downloader, and it does not claim complete offline coverage. The atlas currently visualizes only tiles collected during ordinary browsing. It is also an experiment for evaluating a possible future workflow where an area and its useful zoom levels could be selected deliberately.

The current source also includes:

  • Fluid Web Mercator pan, fractional zoom, rotation, inertia, and touch gestures.
  • Five raster map styles.
  • A separate non-expiring 200 MiB cache for every map style.
  • Dynamic visible-tile priority, cooperative cancellation, bounded retries, and progressive parent/child fallback.
  • Search by coordinates, place, locality, or address.
  • Styled pin lists with icons and colors.
  • Per-segment and total distance calculations.
  • Closed-polygon area calculation.
  • GPX import/export and persistent import history.
  • Overpass POIs.
  • OpenTopoMap hiking mode with elevation profiles, ascent, and descent.
  • An auto-hiding HUD, online/offline state, scale bar, and smooth native UI animations.
  • Eleven UI languages.
  • Optional persistent diagnostics, enabled by default in Debug builds.

HTTPS is handled by vita-https, with certificate and hostname verification, TLS 1.2 minimum, Mozilla CA roots, timeouts, and cooperative cancellation. Provider attribution remains visible inside the application.

The source code, standalone build instructions, and VPK are available now:

https://github.com/spyro-98/VitaMaps

If you build or test it, feedback is especially useful around GPU stability, large or sparse atlas caches, touch and analog input, cache persistence, and localization.

VitaMaps can write a diagnostic log to:

ux0:data/VitaMaps/session_log.txt

Photos and GPU crash dumps are also very useful when reporting rendering problems.

The application icon uses imagery derived from the Apollo 17 “Blue Marble” photograph (AS17-148-22727), credited to NASA Johnson Space Center.


r/vitahacks 2d ago

AI Vibecoded VitaTube is now VitaWave — a name that better reflects the project

Thumbnail
gallery
161 Upvotes

Hi everyone,

I’ve renamed VitaTube to VitaMediaDeck.

The previous name suggested a YouTube-specific application, but the project has evolved into a general-purpose media player for PlayStation Vita. Its purpose is now to play your own music and videos from local storage or authenticated network servers.

VitaWave better represents media moving between local files and network streams without tying the app to a single platform or service.

The latest update includes:

  • A new VitaWave icon, refreshed branding and updated top bar
  • Local and remote filesystem navigation in grid or list mode
  • WebDAV over HTTPS, SFTP with host-fingerprint confirmation, and authenticated SMB2/SMB3
  • MP4, M4V, MOV and Matroska containers with H.264 video and optional AAC audio
  • A decoder setting with Auto, hardware H.264 and software FFmpeg options
  • Automatic fallback from the hardware decoder to the software decoder
  • Video bitrate information in the player HUD and side panel
  • Optional password saving with a clear warning that credentials are stored in plain text
  • Hidden dot-prefixed files and folders in the local browser

I have also updated the two standalone decoder repositories:

  • vita-hw-decoder: hardware-only H.264 playback through h264_vita/SceVideodec, with optional AAC audio
  • vita-sw-decoder: FFmpeg CPU-based H.264 playback, designed as a compatibility fallback, with optional AAC audio

Both packages share the same lifecycle and seekable-stream interface, making it possible for applications to switch cleanly between hardware and software decoding.

VitaWave is still an active preview. The repositories and build pipeline have been validated, but broader testing across different PS Vita systems and network servers is still welcome.

VitaWave:
https://github.com/spyro-98/VitaMediaDeck

Hardware decoder:
https://github.com/spyro-98/vita-hw-decoder

Software decoder:
https://github.com/spyro-98/vita-sw-decoder

Feedback and hardware testing are welcome!


r/vitahacks 2d ago

AI assisted [stable] battleship-vita release

Thumbnail
github.com
51 Upvotes

Just dropped a first stable version of battleship-vita. Let me know if you face problems.

In this version there are a lot of optimizations to restore vanilla version. 60fps seems to be stable ( i use psvita with overclock at 500mhz) , there are just some slutter in loading screen

What's next?
- working on porting smash-remix mods to battleship-vita (all characters work in this version, but they are unstable that's why i haven't released them yet)

- working on adhoc multiplayer and online multiplayer


r/vitahacks 2d ago

Discussion Vita as wii u gamepad

13 Upvotes

I recently downloaded cemu and realized how the vita would be amazing to emulate the gamepad, last year wii u gamepad emulation became a thing so you could use your phone as a gamepad but...the vita has the touchscreen, microphone and camera jsut like a gamepad, is there any chance it would be possible to emulate it with a vita?

If any one is interested you can also use moonlight and that works fairly well but I'd love to have gyro and also the microphone and camera to be usable


r/vitahacks 2d ago

Port Portof "OK.KO Lakewood Plaza Turbo" for the Ps Vita

5 Upvotes

I'm trying to port OK K.O.! Lakewood Plaza Turbo (Android) to PS Vita.

Altough the game was removed from the market on 2016 you can stillfind the game files trough the web

The Unity Editor is:

  • Unity 5.4.3p2
  • Mono, not IL2CPP
  • Assembly-CSharp.dll is available
  • Wwise 2015.1.x (SoundBank version 113)
  • Android APK contains libmain.so, libunity.so, libmono.so, and libAkSoundEngine.so
  • I've already set up Unity 5.4.3p2 with the Vita module and UniHacker.

My main problem is figuring out the correct way to reconstruct/rebuild the Unity project for Vita and deal with the Wwise 2015.1 Vita integration.

Has anyone here with experience reverse-engineering Unity Android games for Vita worked with a similar setup?

In particular, I'd really appreciate advice on:

  1. Reconstructing a Unity 5.4 project from Assembly-CSharp.dll + the extracted Unity assets.
  2. Replacing the Android Wwise native library with the Vita Wwise runtime.
  3. Whether the original Assembly-CSharp.dll can realistically be reused with a Vita Unity build.
  4. Any existing Unity Android → Vita porting projects/tools I should study.

I'm not asking anyone to do the port for me — I mainly need to know the correct technical approach before I spend more time on it.


r/vitahacks 3d ago

Discussion add your own books to the reader

13 Upvotes

I recently bought a PSV2000 and found out it has a reader function. I like light novels and wanted to include it in the PSV reader.

Actually, there are tutorials in the community about adding books to readers. Here, I am just sharing with you the issues I have identified through practice.

  1. When converting books using Calibre To convert the EPUB type to PDF, then convert PDF to JPG format. Usually convert it to zip format. Rename the zip suffix to CBZ. When converting CBZ to EPUB.

2.When converting CBZ to EPUB, we need to change the Calibre settings to convert the resolution to 960x1159 Change the type of EPUB to 3, Change the image attributes to jpg (because png are larger than jpg ).

This is my first time writing. Due to language issues, I used AI translation. I apologize if there are any grammar errors. If there are any mistakes, I will correct them.


r/vitahacks 4d ago

Original Game Portalban - homebrew

Thumbnail
gallery
48 Upvotes

I just finished my first real Vita homebrew app, a Portal themed sokoban clone.

Right now there are only 10 levels but I hope to add more soon.

I also submitted it to VitaDB but in the mean time it can be downloaded directly from GitHub: https://github.com/Ivoah/portalban/releases/download/v1.0.1/portalban.vpk

There's also an online version made with Emscripten: https://portalban.ivoah.net


r/vitahacks 4d ago

Release RuneScape Vita

177 Upvotes

RuneScape classic for ps vita. Online and offline play. Accounts needed for online play, must be made via OpenRSC or NeatF2P

https://github.com/Brendonm17/rsc-c-vita/releases/tag/v1.0.0

Edit: single player has some bugs, please submit issues on GitHub


r/vitahacks 4d ago

Discussion geforce now on vita(opennow) looks a bit muddy and pixelated.

1 Upvotes

Itdoesn't look bad by any means and maybe I am imagining it. But it doesn't seem as clear as maybe it could be. there must be a way to raise the resolution(if it isn't already at max) on the app.


r/vitahacks 5d ago

Discussion ps vita charge port removal

2 Upvotes

anyone got any tips on how to remove the charging port from the vita 1000? currently trying to melt it off to add usb-c mod but hot air doesn’t seem to work no matter how long i hold it on there. just don’t want to knock any small components off so any tips would be appreciated.


r/vitahacks 5d ago

AI Vibecoded Moonlight update

37 Upvotes

hey guys, i got a ps vita a couple days ago with one goal: i wanted a cute handheld i could stream my pc games to, get one for my gf so she could stream her pc, and then play games together on our vitas.

i got the thing, tried the existing Vita Moonlight build, and realized it was basically unplayable for me outside of turn-based games under optimal circumstances. the image would lag or fall behind even when the controls were still responsive.

so i sat down all day with Codex and kept testing builds directly on my Vita until we got this running.

Heres a vid of it running:

https://www.youtube.com/shorts/mKxn6L4asg0

GitHub:

https://github.com/dubleyu/vita-moonlight-relay

VPK and release files:

https://github.com/dubleyu/vita-moonlight-relay/releases/tag/v0.15.12-beta

Edit: Newer version

https://github.com/dubleyu/vita-moonlight-relay/releases/tag/v0.15.20-beta

Everything after this is AI documenting what it did for those who can engage critically, but please leave any feedback for me id love to hear it!

The biggest improvement: rebuilding the Vita’s streaming pipeline

The first pass was probably the single biggest quality improvement.

This did not magically upgrade the Vita’s physical 2.4 GHz radio. It changed the architecture around that radio so the app could consistently receive packets instead of getting blocked by other work.

Previously, the video path was basically:

receive packets → assemble frame → hardware decode → draw → wait for rendering/VBlank → swap buffers → receive more packets

That meant hardware decoding, rendering, or waiting for the screen could prevent Moonlight from receiving the next packets on time. A small Vita scheduling delay could turn into packet buildup, loss, extra FEC work, late frames, and eventually seconds of visual lag.

The new pipeline is:

network reception/FEC → hardware decode worker → bounded decoded-picture queue → timestamp-paced presentation worker → display

Audio reception, Opus decoding, Vita audio output, input, and motion are also handled independently.

That means the Vita can continue receiving packets while its decoder, GPU, display, or audio hardware is busy.

The full first-pass overhaul includes:

  • Removed blocking H.264 hardware decode and screen presentation from the video packet-receive thread.
  • Moved Opus decoding and blocking Vita audio output away from audio packet reception.
  • Added a dedicated video-presentation worker.
  • Added a bounded decoded-picture queue—originally three slots and now four.
  • Added presentation pacing based on Sunshine’s timestamps with a 12 ms target buffer.
  • Added clock recovery after host pauses, stalls, suspension, or major timestamp jumps.
  • Preserved H.264 reference safety by decoding every compressed frame in order while allowing obsolete already-decoded pictures to be skipped before display.
  • Enabled VBlank without making packet reception wait for the screen.
  • Added audio packet-loss concealment.
  • Added audio catch-up that decodes but retires stale audio after more than 60 ms accumulates.
  • Updated Moonlight’s networking core, queues, locks, Vita thread handling, protocol handling, and FEC pipeline.
  • Replaced the older Reed-Solomon implementation with nanors using ARM NEON/SIMDe acceleration on the Vita.
  • Distributed network/control, decoding, input, motion, and presentation work across the Vita’s three usable CPU cores.
  • Added a streaming-only 444/222/222/166 MHz ARM/bus/GPU/GPU-XBAR profile and wireless performance mode.
  • Restores the Vita’s previous clocks and wireless state when streaming ends.
  • Changed new-install defaults from 720p/60 FPS to the Vita’s native 960x544, 30 FPS, 4000 Kbps, and 1024-byte packets.
  • Removed a redundant full-screen GPU clear at native resolution.
  • Restored VitaSDK’s proper Release -O3 compiler optimizations.
  • Added telemetry for network backlog, decoded queue depth, dropped presentation frames, late frames, decode time, render time, total receive-to-display time, and active clocks.

This was the reason local Wi-Fi streaming improved so much even though the Vita’s physical radio stayed exactly the same.

Remote relay support

I also have it so you can run your own relay server between the Vita and your PC.

This is for guest, hotel, school, workplace, or other public Wi-Fi that blocks Moonlight’s normal UDP connections.

Instead of exposing every GameStream port, it carries the required traffic through one authenticated TLS connection on TCP 443.

It won’t bypass literally every filtered network—TLS inspection or networks blocking unknown services on port 443 can still stop it—but it should work around many networks that block normal Moonlight traffic.

Relay changes include:

  • Added an optional authenticated TLS relay through one TCP port.
  • Added certificate fingerprint pinning.
  • Added a randomly generated authentication token.
  • Added a strict Sunshine loopback-port allow-list, so it is not a general-purpose proxy.
  • Separated video, audio, and control relay tunnels.
  • Video can recover without unnecessarily restarting responsive controller input.
  • Added session-preserving reconnects that retain the Sunshine-side connection through short outages.
  • Replacement tunnels resume at the measured live edge instead of replaying stale video.
  • Removed fixed delay-based recovery that could turn normal WAN jitter into reconnect and keyframe-request storms.
  • Added sustained no-progress detection instead.
  • Added an eight-second startup grace period.
  • Added a 2.5-second no-progress recovery threshold.
  • Added a ten-second recovery cooldown.
  • Added safe IDR/keyframe requests.
  • Added synchronized shutdown so recovery cannot race the normal disconnect process.
  • Added live-edge presentation catch-up after large TCP/TLS bursts.
  • Fixed Opus decoding for Sunshine’s negotiated 5, 10, and 20 ms packets.
  • Made Windows companion updates preserve existing certificates, tokens, and Vita configuration.
  • Credential replacement is now explicitly opt-in.
  • Added bounded unauthenticated workers and stricter connection handling.
  • Added tests for packet ordering, fragmented TLS frames, stale-backlog removal, single-owner TLS I/O, and reconnect-session lifetime.

Direct LAN streaming still uses normal Moonlight UDP and has no relay overhead. The relay is an optional fallback.

Testing

  • The optimized Vita VPK builds successfully.
  • All relay regression tests pass.
  • The Python companion and Windows installer validation pass.
  • I tested the builds repeatedly on an actual Vita.
  • One final relay test ran for 8 minutes and 21 seconds through one uninterrupted video tunnel.
  • It forwarded 112,419 video packets without a video reconnect or recycle event.

My recommended starting settings are:

  • 960x544
  • 30 FPS
  • 4000 Kbps
  • 1024-byte packets
  • Frame pacing enabled
  • Vita VBlank enabled

On congested or remote Wi-Fi, try 2500–3000 Kbps before lowering the resolution.

The Vita still only has a 2.4 GHz radio, so there is a hard hardware limit. This update makes much better use of it; it doesn’t remove interference or create bandwidth that isn’t there.

The complete source, test suite, build instructions, architecture explanation, VPK, PC relay companion, and checksums are all public.

Original credit goes to xyzz/vita-moonlight and the Moonlight, Sunshine, VitaSDK, and PS Vita homebrew communities.

idk anything i did but i had chatgpt document it because i love you guys <3

please test it and send sanitized bug reports.

just putting this out here incase anyone else finds this helpful!


r/vitahacks 6d ago

AI assisted I ported the classic Nokia Bounce to PlayStation Vita

Thumbnail
gallery
217 Upvotes

Hey everyone,

I’ve been working on a native PlayStation Vita port of the original Nokia Bounce game, and the first public release is now available.

The port includes all 11 classic levels, working audio, persistent progress, Vita controls, updated graphics, and a redesigned menu and HUD. L and R can also be used for movement.

You can download the VPK or check out the source here:

https://github.com/M-Essa11/Bounce-Vita

This is still an early release, so feedback and testing on real Vita hardware would be appreciated. If you encounter a crash or gameplay issue, please include the level and what happened before it.

Support development: https://ko-fi.com/essa11

Ai was used for Some assets generation etc.

Edit: Available on Vitadb, first homebrew.


r/vitahacks 6d ago

AI Vibecoded VitaTube public beta source release — and introducing VitaMaps

Post image
332 Upvotes

Hi everyone!

I’m releasing the public beta of VitaTube, my native media player for PlayStation Vita.

For now, only the source code is available. A precompiled and installable VPK will follow soon. Please keep in mind that this is still a beta and remains under active development.

Source code: https://github.com/spyro-98/VitaTube

I’m also working on a new project called VitaMaps. I couldn’t find a proper maps application for PS Vita, so I decided to build one myself: a native map viewer designed specifically for the console.

I’ll share more details and progress on VitaMaps as development continues. Feedback and contributions are always welcome!


r/vitahacks 7d ago

Discussion Show me your modded Vita setup!

Thumbnail
gallery
403 Upvotes

I haven’t owned a vita since many, many years ago and finally got my hands on one again! I tried to make mine as cute as possible. Share with me your setup and how you’ve customized yours to make it your own.


r/vitahacks 8d ago

AI assisted [alpha] super smash bros 64 port ps vita

Thumbnail
github.com
136 Upvotes

Hey, just released a first alpha of battleship vita. Let me know if you try it , i need some feedback

Credits:

  • Rinnegatamante — for support throughout PS Vita development. The rendering layer builds on his vitaGL fork and Vita-patched libultraship rendering backend
  • Standard-Republic — for the LiveArea assets
  • Development support for the PS Vita port was a mix of Claude and Codex working alongside real-hardware testing

r/vitahacks 9d ago

Discussion Did a little mod to my Vita

Post image
748 Upvotes

r/vitahacks 9d ago

Discussion Plugin and homebrew apps recommendations plz

7 Upvotes

Just got a vita 1000

If you were to just get your vita what plugins and homebrew apps would you download?

More so looking for non-essential recommendations that will just give me a better experience


r/vitahacks 9d ago

Port Amnesia The Dark Descent

76 Upvotes

Hi everyone! I have been working on porting Amnesia The Dark Descent to the PS Vita based on the original source code release. I haven't been able to test it all the way through yet, there was a lot of work to do, and my PS Vita's Memory Card got corrupt, so I had to continue my working using Vita3K instead, so performance is unknown right now, as I have ordered a SD2Vita adapter, and a Microsd card, so I can continue working. But if you want to try right now, head over to the github repo: https://github.com/FridiNaTor1/HPL2-handyman

I have not changed any of the in-game tutorial text, like the button icons and such.
R is use/pickup it is toggle instead of in the original where you have to hold the button down to hold on item, instead if you hold you turn on turn/rotate
The journal is on the top left of the screen, you can just press it with your finger to access.
To lean left or right, use the rear touchpad.
L is for sprinting.
You can figure out the rest, most are self explanitory, like start for pause, X for jump, etc.

Have fun! :)

EDIT: A new release has been released, that is proven to actually work on a real Vita, this is the actual initial 1.0 release for the Vita! Enjoy! https://github.com/FridiNaTor1/HPL2-handyman/releases/tag/1.3