github dubrovskiy-yevhen-stakelogic/vice-city-vr v0.5.2

latest release: v0.5.5
22 days ago

Standalone Quest parity on PC

  • Ported the portable gameplay and rendering fixes from the current public
    standalone Quest source kit while retaining the PC renderer, OpenXR runtime,
    DLAA/FSR paths, and the newer PC cutscene presentation safeguards.
  • Added the experimental immersive HUD preset: the minimap, player status and
    clock can live on real stereo wrist panels with independent hand, side,
    on-foot/car/bike placement and scale calibration. The Classic head-locked HUD
    remains the default, and every panel fails open to its Classic copy if its
    render target or tracked-hand anchor is unavailable.
  • Shipped the maintainer-tested Immersive HUD placements as the fresh preset
    defaults. Motorcycle panels now have a shared global layout plus optional
    per-model overrides created only when calibration is changed while seated;
    resetting a model returns it to global inheritance.
  • Immersive motorcycles now accelerate with the right trigger by default. The
    advanced physical wrist-twist throttle remains available through a strongly
    highlighted Vehicle Settings row, avoiding the appearance of broken controls
    for players who do not know the gesture.
  • Updated Modern vehicle and motorcycle view/handle baselines, including the
    PCJ600 and Sanchez, without replacing the PC one-hand steering solver.
  • Head-relative locomotion now applies the requested lateral direction without
    the original 50-degree movement gate, and Tommy's body aligns before the
    animation group is selected.
  • Physical bat and other melee swings keep publishing their short follow-through
    after the fast trigger sample, so a standing swing can connect instead of
    requiring the player to walk into the target.
  • Stereo occlusion now tests all eight transformed entity bounds against exact
    authored world volumes from both physical eyes. It no longer depends on a
    rolled or asymmetric 2D eye projection, reducing mid-view geometry cuts.
  • A full transparent-object list no longer makes a fading object disappear for
    the frame; it falls back to the normal opaque path.
  • Modern wheels bind while their verified wheel TXD is current, avoiding white
    dummy textures caused by load-order collisions.
  • Bullet-trace visibility and fly-by audio use a last-valid physical headset
    view basis even when the simulation emits a trace before the next stereo
    frame, instead of silently falling back to Tommy's body-facing camera.
  • Rain emission is normalized to the original 30 Hz authored rate. Fountain
    particles gain Original, Optimized, Low and Off modes; Optimized is the fresh
    default and Original remains the exact-behaviour fallback.
  • Save loading now rejects malformed or oversized blocks before alignment or
    buffer reads and reports read failures instead of continuing with partial
    data.
  • SWAT rope spawning now fails safely when the population pool cannot allocate
    the descending officer instead of dereferencing a null ped.
  • Added a one-click PC Modern-model preparation script. It asks for the legal
    Vice City installation, caches and verifies the two external source packs,
    excludes the known-heavy replacement palms, builds into staging, validates
    the result and only then replaces modelsets\\modern.
  • Fresh model-category defaults match the tested standalone profile: Modern
    World / Buildings and Weapons, with Classic Vehicles, Pedestrians and
    Vegetation / Palms. A missing overlay falls back to Classic for the session
    without erasing the requested Modern preference.
  • Occlusion Culling now exposes Off, Stereo Safe, Authored and Aggressive modes.
    The default Authored path uses the union of both tracked-eye frustums before
    applying exact dual-eye authored-volume occlusion; Off remains the exact
    full-360 fallback.
  • Locomotion Settings now exposes a direct RECENTER VIEW action; the obsolete
    no-op teleport/movement row is no longer shown.

SteamVR: cutscenes and menus at full frame rate

  • Fixed cutscenes, loading screens, and menus dropping to ~15 fps on SteamVR
    after the first moment of gameplay. SteamVR deliberately throttles sessions
    that stop submitting stereo frames; flat content on the theater screen
    qualified. The game now renders the theater screen into a real stereo
    projection pass during flat content, so the session is never throttled.
    Confirmed fixed by the reporting player: full-rate cutscenes, menus, and
    saves on SteamVR.
  • The screen keeps its world-anchored position, size, and the VR settings
    overlay; other runtimes (Oculus, VDXR) keep their existing proven path.
  • Opt out with [VR] CinemaProjection=0 in vr_settings.ini (returns to the
    0.5.0 behavior including the SteamVR throttle). The experimental
    CinemaKeepAlive key from interim test builds is retired and ignored.

Crash and freeze fixes

  • An IMG archive that exists but cannot be opened (an antivirus still
    scanning a freshly built Modern overlay, or an incomplete build) no longer
    crashes the game with an assertion. The session falls back to Classic
    assets and logs the file and error code.
  • Fixed a crash when raising Render Scale to very high values (the
    post-effects buffer exceeded the D3D12 texture size limit); the effect now
    skips and retries instead.
  • Fixed a startup crash window during the intro movie state when the VR
    runtime shuffled window focus.
  • The game now refuses to start a second instance (previously invisible
    duplicate processes fought over the headset).
  • Fixed a GPU memory spiral on 8 GB cards with Modern assets: the streaming
    cache is now sized from actual adapter VRAM, and GPU allocation failures
    shrink it further instead of escalating into paging and a DEVICE_HUNG
    device removal.
  • Added [VR] StreamlineEnabled=0 to bypass DLSS/Streamline initialization
    on machines where the interposer delivers black frames (some VDXR setups);
    DLAA is unavailable in that mode.

Memory leaks

A full audit of the D3D12 backend found and fixed nine leaks and lifetime
bugs, including a use-after-free in deferred resource release (the root of
several DEVICE_HUNG and wrong-texture reports), post-effect buffers leaking
on pause-menu exit, texture heap pages that were never returned, an upload
pool that only grew, and stale queues surviving a device reset. Long
sessions no longer grow GPU or system memory to their peak forever.

Saves

  • A save that cannot be written now reports failure honestly. Previously a
    blocked save folder showed "saved successfully" with an empty slot list
    (stock bug, typically triggered by installs in write-protected folders).
  • If the game folder refuses writes, saves automatically go to
    Documents\GTA Vice City User Files instead of silently going nowhere.
  • The save folder is resolved absolutely from the executable location, so
    launchers with a different working directory can no longer scatter saves.
  • The log now records the active save folder and every save with its path.

Movement and input

  • Fixed movement drifting or walking sideways for the whole session when the
    game was launched with the headset on the desk: the gameplay-space anchor
    is now latched only while the headset is actually worn, and re-latches
    after the headset has been set down for 30+ seconds.
  • Added a proper stick deadzone (12% radial with rescale, plus cross-axis
    filtering) to VR locomotion; worn sticks no longer pull the player.
  • Legacy DirectInput gamepads are ignored by default: phantom HID devices
    (RGB controllers, wheels) fed constant input under the VR sticks. Real
    pads and wheels can opt back in with [VR] LegacyGamepad=1.

Cutscene stability on all runtimes

  • Fixed the headset view slamming between the theater screen and the world
    when scripted sequences flickered their cutscene flags between stages.
  • Fixed the theater screen re-centering onto the player's head several times
    within one scripted scene.
  • Fixed visible shaking during DLAA warm-up frames after cutscene
    transitions.
  • Render Scale and Temporal AA menu rows no longer trigger a full render
    target rebuild when the effective resolution did not change, and the
    graphics menu warns about the per-eye GPU cost above 100%.

Diagnostics

  • A failed presentation now writes d3d12_device_removed.log with the exact
    device-removal reason.
  • The OpenXR log gained: cinema pacing telemetry (separates content judder,
    head-locked fallback, and anchor jumps), movement-input telemetry, a step
    trace for the first cinema frames, the resolved user-files folder, save
    results, and the cinema projection mode state.
  • All vr_settings.ini reads now resolve the file relative to the
    executable; launching via a launcher or "Run as administrator" previously
    made some settings silently read from a nonexistent file.

Don't miss a new vice-city-vr release

NewReleases is sending notifications on new releases.