DSVita
From GameBrew
More actions
| DSVita | |
|---|---|
| General | |
| Author | Grarak |
| Type | Handheld |
| Version | 0.9.2 |
| License | GPL-3.0 |
| Last Updated | 2026/04/19 |
| Links | |
| Download | |
| Website | |
| Source | |
A very early experimental version of DS console emulator for ARM32/PS Vita.
This runs most games, however consider:
- 3D rendering
- Mostly implemented
- Z fighting can occur
- Games using 3D on both screen will have bad framerates
- Some effects like fog are unimplemented
- Mostly implemented
- 2D rendering is mostly complete
- ARM7 HLE will not work with most games
- Disable it if certain games don't boot further, get struck, crash or have any issues
- There are other emulation modes like SoundHle. You can pick them if full HLE breaks anything
- Auto frameskip is always used
- Games will feel choppy, you will most likely hover around 20-30 fps, even if they run at full game speed
- No scanline rendering, thus games that update VRAM mid frame will not render correctly
- Not many games do this, however games that do use it for scrolling texts
Installation
Download the latest vpk from releases and install it through VitaShell.
Install libshacccg.suprx, follow this guide or just install and open VitaDB.
Install kubridge.skprx from releases.
It's recommend overclocking your Vita to 500MHz, by default they are unchanged.
Create the folder ux0:dsvita and put your roms there.
Screenshots
Media
DSVita Ace Attorney (Willi Ye)
Changelog
v0.9.2
- Fix screen layout settings not being persistent
- Fix some 3d translucent rendering bugs
- Minor gx fifo parsing speedup
- Minor CPU emulation speedup
- Add widescreen options
- Add more upscaling options
- Improve 3d rendering framerate
- Implement Retroachievements (very experimental)
v0.9.1
- Allow palette I/O operations outside of mapped memory (fixes Newer Super Mario Bros. DS).
- Add option to simulate mic blow in pause menu.
- Implement 3D texture cache.
- Add default 3D upscaling.
- Implement w depth buffering.
- Implement 3D face culling.
- Implement basic 3D shadows.
- Improve HLE compatibility (HLE now works with Pokemon HG/SS, Ni no kuni, Ghost Trick, Yu-Gi-Oh! 5D's World Championship 2011, Ace Attorney Investigations 2, possibly more games).
- Add more framelimit options (1x, 1.25x, 1.5, 1.75x, 2x, etc.).
- Add basic custom screen layout creator.
- Add option to hide debug stats.
v0.9.0
- Generate function for each possible MMIO access.
- Make PS button more responsive.
- Remove unnecessary memory copies in dma.
- Implement hle context switching for divsqrt.
- Implement hle handling of irq.
- Optimize constant loadings.
- Use fs overlay functions for jit invalidation.
- Process 3d polygons/vertices in separate thread.
- Remove double copies from rendering pipeline.
- Switch to usampler in shader to read vram.
- Optimize 3d rendering shader.
- Implement missing bg affine shader.
- Fix blending with 3d bg.
- Initial implemention of display capture.
- Bypass twl sdk CPU synchronization, fixes HLE for Pokemon BW/BW2.
- Implement swap buffers for 3d frames.
- Add option to disable geometry 3d frameskips.
- Improve translucent 3d polygon rendering.
- Display progressbar when compiling shaders.
- Implement 3d lights.
v0.8.2
- Don't hle copy32 (Fixes Kingdom Hearts 358/2 Days).
- Reduce jit protection range from 16kb to 4kb (Gives slight performance boost to some games).
- Auto detect if arm7 block validation is required.
- Improve HLE compability.
- Consider packed 3ds commands after 0 (Fixes Need for Speed: Most Wanted).
v0.8.1
- Added pause menu (press PS Button).
- Minor optimizations in CPU Emulation (up to 8% faster).
- Mapped vram to software mmu.
- Mapped palettes and oam to hardware and software mmu.
- Added language setting.
- Added more screen layouts.
- Added scaling options for each screens.
- Added options to swap screens.
- Joystick can now be used as Dpad.
- Added option to disable audio stretching.
- Implemented microphone.
- Improved HLE compability.
- Removed PartialHle (speedup was too insignificant).
- Renamed PartialSoundHle to SoundHle.
v0.8.0
- Only invalidate wram when cnt has changed (fixes WarioWare: Touched!)
- Allocate frequently used objects at fixed addresses.
- Print CPU clock on top right.
- Always set irq flag when waiting for irq (Fixes Pokemon BW/2).
- Disable checks for self modifying code by default for ARM7.
- Implement edge cases of multiple word transfer with fastmem.
- Small CPU emulation speedup.
- Fix slowmem patching of swb instruction (Fixes Luminous Arc).
- Implement sound stretching.
- Implement missing HLE sound commands.
v0.7.0
- Rotate and size screens by @Schluss-S in #49
- Rewrite JIT compiler with vixl
- Reducing stuttering
- Increase JIT cache
- Reuse JIT blocks as often as possible
- Small performance increase
v0.6.1
- Ignore invalid gx cmds (fixes freeze in Final Fantasy XII: Revenant Wings).
- Fix wifi rx buffer overflow.
- Small 3d speed up.
- Fix 3d texture transformations.
- Improve HLE compatibility (Mario Kart, Castlevania: Dawn of Sorrow, Super Mario 64, Need for Speed: Underground 2).
- Some 3d drawing fixes.
v0.6.0
- Fix right audio channel.
- Implement hardware fastmem for writes.
- Implement bios sqrt.
- Read vram in render thread.
- Accelerate all fixed point matrix operations with neon.
- Implement auto frameskip for 3d geometry engine.
- Don't exit guest context when handling interrupts or idle loops.
- Speed up jit assembly generation.
- Increase cartridge cache size.
- Implement Wifi in HLE.
- Add option for partial HLE Arm7.
- Speed up sound mixing.
- Speed up gfx fifo cmds queuing.
- Fix 3d polygon clipping.
- Implement missing 3d texture sampling.
- Fix CPU register store when switching between modes.
- Fix excessive jit block invalidations.
- Fix ROMs limit in menu.
- Implement sound capture.
v0.5.0
- Implement fast mem for reading with kubridge.
- Implement software fast mem for writing.
- Accelerate 3d operations with neon.
- Accelerate audio sampling with neon.
- Faster JIT compilation.
- Implement lookup tables for I/O ports operations.
- Faster ROM word lookups.
- Remove polygon clipping.
- Run scheduler inside guest context.
- Use batch I/O operations for DMA and ldm/stm.
- Reset jit blocks in chunks.
v0.4.0
- Jit rewrite.
- Blocklinking.
- Return stack buffer optimization.
- Implement 3d tests.
- Improve Arm7 hle compatibility.
v0.3.1
- Change ux0:dsvita to ux0:data/dsvita (normal vpks don't have permission to create directories/files at the root).
v0.3.0
- Implement vram display (some games use that mode for cutscenes).
- Implement saving.
- Enable shader cache (long loading times will only happen once).
- Increase game compatibilities.
- New UI.
v0.2.0-alpha
- Basic 3D rendering (still very broken).
- Display emulation stats on top right of screen.
v0.1.0-alpha
- First Release.
Credits
- NooDS was used as reference. A lot of code was taken from there.
- melonDS for ARM7 HLE implementation and jit optimizations.
- DesmumePSPExperimental for ARM7 HLE implementation.
- pokediamond for ARM7 HLE implementation.
- DSHBA Copied some PPU hardware acceleration implementation (Thanks for xiro28 linking me the repo).
- vitaGL 2D hardware acceleration wouldn't be possible without it.
- Tonc GBA PPU documentation.
- GBATEK GBA/NDS documentation.
- kubridge For fastmem implementation.
- @TheIronUniverse for livearea assets.