Skip to content

reVC for Mac — Native Metal build (Apple Silicon)

Latest

Choose a tag to compare

@coldcue coldcue released this 08 Sep 10:17
4a51ba4

Play GTA Vice City natively on your Mac. This is a native Apple Silicon build that renders through Metal, runs sharp at full Retina resolution, and is optimized for macOS — Game Mode turns on automatically while you play. One command turns your own copy of the game — Steam, retail disc, or files from an old PC — into a ready-to-play reVC.app. No administrator password needed.

Install

You need: an Apple Silicon Mac (M1 or newer) on macOS 15.7.9 or later, and your own copy of GTA Vice City (Steam works out of the box — you never have to launch it).

  1. Open Terminal (Cmd+Space, type Terminal, press Enter) and install the Xcode Command Line Tools (skip this if you already have them — it will just tell you so):

    xcode-select --install

    If a dialog appears, click Install and wait for it to finish.

  2. Paste this line and press Enter:

    curl -fsSL https://github.com/coldcue/reVC/releases/download/revc-metal-macos-arm64/quick-install.sh | bash

    It finds your game files automatically (Steam copy or an already-installed reVC.app) and puts reVC.app in your Downloads folder — about a minute, the app is ~1.6 GB with the game inside.

  3. When Finder opens, drag reVC into Applications — or just double-click it to play right away.

Using a non-Steam copy? Add the path to the end of the command — a game folder (the one with models, data, audio, …) or a Vice City .app that contains the files both work:

curl -fsSL https://github.com/coldcue/reVC/releases/download/revc-metal-macos-arm64/quick-install.sh | bash -s -- ~/Downloads/"Grand Theft Auto - Vice City.app"

Upgrading? Run the same one-liner again — it reuses the game files from your installed reVC.app.

Prefer a classic disk image? Add --dmg to get a drag-to-Applications reVC.dmg instead: ... | bash -s -- --dmg.

What's changed in this port

Everything below is on top of upstream reVC (the miami branch), which itself is the reversed Vice City source. The goal is a faithful native Mac experience — original gameplay and look, modern rendering underneath.

Rendering: OpenGL → Metal

  • librw's GL3 renderer now runs through ANGLE (OpenGL ES on Metal) on macOS, so every draw call ends up on Metal — no OpenGL deprecation warnings, no Rosetta, native arm64 all the way down. The ANGLE dylibs ship inside the app (and as a separate prebuilt archive below).
  • HDR rendering (new in-game Display option): the swap chain uses a float16 EDR surface in the Display P3 colorspace via a small ANGLE patch, so highlights like sun glare, headlights, and neon get real extended-range brightness on XDR/HDR displays.
  • MetalFX upscaling (new in-game Graphics option, on by default at 75%): the game renders at a lower internal resolution and Apple's MetalFX spatial scaler upscales it to your display resolution at present time — big GPU savings at Retina resolutions. Pick the render scale (85–50%, shown as the actual pixel size) right under the Screen Resolution selector, or turn it off for native rendering. 4x MSAA is on by default to keep the upscaled edges clean, and it is now a regular menu option instead of being forced internally — turn it off or change the level in the Advanced tab.

Graphics quality

  • Textures are now mipmapped with trilinear and anisotropic filtering (plus fixes to librw's mipmap generation), which kills the shimmering on distant roads and buildings.
  • Extended draw distance for the map while keeping the stock fog look, and vehicles now fade in smoothly at every detail level instead of popping.
  • Better defaults: PS2 alpha test (cleaner transparency edges) now starts on — and stays on after "restore defaults" — while the Neo world lightmaps option starts off.

macOS integration

  • reVC ships as a self-contained reVC.app bundle: binary, dylibs, and reVC's game data inside, ad-hoc signed — so macOS treats it as a real game and enables Game Mode automatically.
  • The game always starts windowed and then enters native macOS fullscreen, so Spaces, Mission Control, and Cmd+Tab behave like they should.
  • A one-line installer script finds your game files (an existing reVC.app or Steam install auto-detected, or any folder or Vice City .app you point it at), bakes them into the app, and can also produce a drag-to-install DMG — so upgrades re-run the same one-liner without needing the original game around.
  • Update notification: an installed reVC.app checks this release page on launch and, when a newer build is out, offers Install (quits the game and runs the one-line updater in Terminal, reusing your existing game files) or Ignore. The check is silent when you're offline or already up to date.
  • Advanced graphics tab: the Graphics menu keeps the essentials (resolution, HDR, MetalFX, widescreen, frame limiter) and moves the rest — MSAA, windowed/fullscreen, VSync, island loading, PS2 alpha test, colour filter, motion blur, and the Neo pipeline options — to a new Advanced sub-page, which also adds a Metal performance HUD toggle (the same overlay as the -metalhud launch flag).

Fixes

  • Mouse input randomly not being detected — the infamous Vice City mouse bug — is fixed in the GLFW backend.
  • HUD and camera misaligned on HiDPI/Retina displays right after launch (cropped, off-center view; radar and mission text pushed toward the screen edges) — fixed by seeding the first camera resize from the real framebuffer size. Thanks to @KreamBrulee for the report and fix (#1).
  • First launch now defaults to your display's actual pixel resolution (e.g. 3840x2160 on a 4K screen) instead of the scaled macOS desktop size.
  • Multi-display setups: the game now opens on the screen you launch it from instead of always on the primary display.
  • The mouse cursor can no longer leave the game in fullscreen: menus keep the cursor captured (like exclusive fullscreen always did), so it can't wander onto another display, reveal the Dock, or click you out of the game — and it now reaches the whole screen with MetalFX on instead of stopping at two thirds.