Skip to content

Controller and keyboard

Autopilot

The VPK (v5+) embeds an autopilot (menus → game) that automatically switches off on the player's first physical action: touch nothing and it drives all the way into play; touch anything and control is handed back immediately. It stays continuously active for headless testing.

In game

Vita input Diablo II action
Left stick Direct movement (cursor orbits the character + held left click)
Right stick Free mouse, no click (aiming, menus, hover)
Touch screen Absolute cursor; short tap = left click
L (held) Left click
R (held) Right click (also serves as a combo layer, see below)
Cross R — toggle walk/run
Circle Shift (held) — attack in place / forced cast
Square (held) Alt — show items on the ground
Triangle W — weapon swap
D-pad ↑ / ← / ↓ / → Belt potions 1 / 2 / 3 / 4
Start Esc (menu / close)
Select Radial menu (see below)

R layer (R held + …)

Combo Action
R + Triangle Virtual keyboard (open; close with Select)
R + D-pad F1 / F2 / F3 / F4 — quick skills
R + Select Space — close all panels

Radial menu (Select)

Pressing Select immediately opens a 7-sector menu centered on screen. The left stick points at a sector (it lights up gold); releasing Select confirms whichever sector is pointed at that exact instant. Bringing the stick back to center before releasing Select cancels (no sector is then selected, even if one had been hovered just before).

Sector D2 action
Skills (top) T — skill tree
Quests Q — quest log
Map Tab — automap
Inventory I — inventory
Chat Enter — chat line
Party P — party screen
Character C — character sheet

This menu replaces the old dedicated shortcuts for each of these actions (character, skills, quests, automap, inventory): one gesture for all seven, instead of seven combinations to remember. The virtual keyboard is deliberately not included — used too often to justify going through a menu every time, it stays on its own dedicated gesture (R + Triangle).

Virtual keyboard (R + Triangle)

Input Action
D-pad Navigate keys
Cross Type the selected key
Circle Backspace
Start Enter
Select (or the CLOSE key) Close the keyboard
Touch tap on a key Type it directly

The virtual keyboard's own rendering (font, layout) comes from the generic winx86 engine (src/platform/vita_kb.h/vita_kb_font.h). The trigger (R + Triangle) is d2vita-specific.

Remapping without a rebuild

File ux0:data/d2vita/controls.txt, one line per input:

cross=rclick
r+triangle=f5
orbit=70         # direct-movement radius (px)
sens=10          # right stick speed
deadzone=0.25
anchor_y=470     # character's vertical anchor (for a 1000-tall resolution)

Buttons: cross/croix, circle/rond, square/carre, triangle, up, down, left, right, start, select (prefix with r+ for the R layer).

Actions: lclick, rclick, alt, shift, tab/automap, esc/echap, inv, perso, skills, quests, swap, space, run, enter, pot1-pot4, f1-f8, vk:0xNN (raw key code), none.

Diagnostics

D2_INPUTLOG=1 in env.txt logs the raw button words received — useful for debugging a remap that doesn't behave as expected. Only enable it for diagnostics, not for normal play (logging has a cost).

Known gotcha

If the chat box is open, Esc closes it first (a second press is needed to open the menu).