Skip to content

Releases: LiquidAzir/animal-crossing-vr

VR20 - PC VR and standalone Quest 3

Choose a tag to compare

@LiquidAzir LiquidAzir released this 30 Sep 17:13

VR20 — PC VR and standalone Quest 3

The latest Windows fixes and the standalone Quest 3 version are now available together. Choose one installation path:

Download Use it for
AnimalCrossing-VR-v0.9.3-vr20-win32.zip Windows + SteamVR; install the recompiled PC version first
AnimalCrossing-Quest-v0.9.3-vr20.zip Standalone Quest 3; includes APK and Windows ROM installer
AnimalCrossing-Quest-v0.9.3-vr20.apk Manual sideloading; ROM import is still required

Both versions require your own Animal Crossing USA Rev 0 (GAFE01_00) .iso, .gcm, or .ciso. Downloads contain no ROMs, extracted game assets, personal saves, settings, or signing keys. GitHub's Source code archives are for developers.

Windows PC VR

  1. Install and test ACGC-PC-Port v0.9.3 with your own ROM in rom beside the executable. Close the game and back up its folder.
  2. Extract the VR zip. Copy everything inside its AnimalCrossing-VR folder into the working PC game folder, replacing the supplied program files.
  3. Start SteamVR, connect your headset/controllers, and launch AnimalCrossing.exe. F5 or left grip + Y enables first person.

Already using PC VR? Back up your save and apply the complete zip over the existing installation. Keep your ROM, saves, and settings.

Standalone Quest 3

  1. Set up SideQuest Advanced Installer on Windows, enable Developer Mode, connect Quest by USB, and approve USB debugging in the headset.
  2. Extract the Quest zip, close Animal Crossing on the headset, then run Install-Quest.cmd. Select your own supported ROM when asked.
  3. After setup succeeds, unplug USB and launch Animal Crossing from Unknown Sources. No PC game installation or streaming is needed.

For updates, run the new installer again; it preserves existing ROMs, saves, and settings. Do not uninstall or clear app data. Quest setup/manual import.

VR controls: Quest / Touch and Valve Index — movement, inventory, map, tools, and the settings menu.

Changes since VR19

  • Standalone Quest 3 runtime with OpenXR tracking, motion tools, and separate local saves.
  • VR Settings opens with both stick clicks: hand visuals, turning, motion swings, and volume. Hand markers default off.
  • First-person fishing remains first person after casting; rod bend points downward.
  • Corrected hand depth and shop-carpet overlap; fish-room aquariums stay visible.
  • Island scenery-transition crash and return-boat lifecycle fixes.
  • Matching island-house backs, roof undersides, dock/bridge faces, and wooden bridge post backs.

The Quest package uses the existing tested APK build 14; this release does not lower resolution or change gameplay/rendering settings.

Verification and limits

Native PC and Quest builds and focused geometry, island-transition, menu, and rendering checks passed. The Windows setup helper and release contents are checked separately; checksums are included. Quest playtesting confirmed playable performance, the settings menu, and arrival on the island. A complete island return/save-reload cycle and sleep/resume remain unverified. Some structures and later Nook shop upgrades retain approximate rear fills. Standalone testing covers Quest 3 only.

Source is kept in this same repo on master (PC) and quest/standalone (Quest). The companion quest-v0.1.0-build14 tag records the source for the Quest download; the VR20 tag records the PC source.

v0.9.3-vr19 - hands, buildings, sky, and first-person polish

Choose a tag to compare

@LiquidAzir LiquidAzir released this 28 Sep 19:29

v0.9.3-vr19 — VR hands, building repairs, sky, and first-person polish

This release brings the current VR improvements into one Windows download.
It is based on ACGC-PC-Port v0.9.3. Start with a working installation of
that recompiled PC version, then apply this update to its game folder.

Download

Under Assets, choose AnimalCrossing-VR-v0.9.3-vr19-win32.zip.
GitHub's Source code downloads are for developers and do not contain the
playable executable. A separate .sha256 file is provided to check the zip.
The archive contains the VR executable, supporting DLLs, shaders, controller
bindings, documentation, and license notices. It contains no disc image,
game assets, saves, texture packs, or personal settings.

First-time installation

  1. Download ACGC-PC-Port0.9.3.zip from the upstream
    v0.9.3 PC-port release.
  2. Extract the PC port to a writable folder. Put your own USA Rev 0
    (GAFE01_00)
    Animal Crossing disc image (.iso, .gcm, or .ciso) in
    rom next to AnimalCrossing.exe.
  3. Run the original PC executable to confirm it reaches the title screen.
    Close it and back up the entire game folder before applying VR.
  4. Download and extract the VR19 zip below. Open its AnimalCrossing-VR
    folder and copy everything inside it into the working PC game folder.
    Accept replacement of the supplied files. Do not create a nested game folder.
  5. Keep AnimalCrossing.exe, SDL2.dll, openvr_api.dll, shaders, and
    vr_actions together. Preserve your existing rom, save, texture_pack,
    settings.ini, and keybindings.ini; these are not included in the update.
  6. Start SteamVR and connect the headset and controllers, then run the updated
    AnimalCrossing.exe. Quest users must first connect to the PC through
    Steam Link, Virtual Desktop, or Quest Link/Air Link.
  7. Press F5 or left grip + Y for first person. X + Y together
    recenters the view. To start in first person every time, close the game and
    set fp_mode = 1 under [FirstPerson] in settings.ini.

X/Y above are Touch button names. On Index, use left grip + left B for
first person and left A + left B to recenter. Desktop shortcuts must use
the game folder as their Start in location.

The complete README walkthrough
includes a folder example. The
VR setup guide
covers controls, optional settings, and troubleshooting.

Updating from an older VR release

Close the game, back up the folder, and overlay the complete VR19 package
as in steps 4–5. You do not need to reinstall the PC port for an already
working VR installation. Keep your saves and settings.

Replace vr_actions along with the executable. VR19 corrects the optional
hand pose bindings for Touch and Index controllers. Updating only the exe can
leave the hands invisible. Custom SteamVR bindings may need the new empty-hand
actions added, or you can select the updated defaults. An existing setting
that turns hands off remains respected.

Changes since VR18

  • Outdoor gradient sky, clouds, and horizon that follow game time and weather.
  • Improved tool/net alignment, controller tool targeting, and gaze-directed
    running and tool actions.
  • Fitted seasonal backs for houses and several civic buildings, Able Sisters,
    Nook's Cranny, and the fountain, plus repaired ramp-side cliff gaps.
  • Controller-tracked floating hands, shown during ordinary first-person VR
    play with no item equipped; no arms or finger tracking.
  • First-person catch/discovery sequences, with presented items in front of
    the headset and dialogue placed higher.
  • Small CPU scenery and GPU sky optimizations that preserve the existing
    appearance and gameplay defaults.

Verification and remaining limits

The complete Windows build and isolated startup checks passed. Focused
regressions cover geometry, bindings, hand visibility, tool placement, and
item presentation. The performance changes passed 1,344 scenery checks and
1,176 sky image comparisons with no pixel differences. These component results
are not a claim of a particular game framerate or minimum hardware requirement.

No new physical-headset or lower-end-PC test was performed for this packaging
update. Some building types and later Nook shop upgrades still use approximate
rear fill. For slower GPUs, start with a lower SteamVR per-application render
resolution and restart the game; see the setup guide for the tradeoffs.

v0.9.3-vr18 - the navy world, root-caused and fixed

Choose a tag to compare

@LiquidAzir LiquidAzir released this 12 Aug 05:11

Fixes the whole-world navy/blue tint: a fog decoding bug pushed the fog band past the far plane, saturating everything to fog color — navy at night, sky blue by day (it looked like nothing rendered past ~2.5 acres). Fog now clamps safely at the decoder, and VR outdoors runs fog-free since the whole town is always drawn.

Also new: set fp_mode = 1 under [FirstPerson] in settings.ini to start the game in first person (F5 still toggles).

Updating? Just replace AnimalCrossing.exe. New here? Download the zip below and follow the README's installation steps.

v0.9.3-vr17 - museum, police, lighthouse, rocks + Bluetooth pads

Choose a tag to compare

@LiquidAzir LiquidAzir released this 07 Aug 03:21

The remaining hollow objects, plus controller support.

New solid backs in this build:

  • Museum and police station — these two draw as plain models rather than animated skeletons, which is why the building fix skipped them. They now use the same measured-centre fill.
  • The lighthouse — turns out to be a skeleton building that was simply missing from the list. Two subtle catches fixed in review: its glass lamp parts leave tint state behind (the tower would have rendered blue), and its idle animation parks on a frame that permanently blocked the measuring gate.
  • The big tree at the wishing well — filled, minus its translucent water effects.
  • Rocks — every rock (all five shapes, all seasons) now gets a per-instance fill. Rocks sit with no rotation of their own, so the spin trick is safe on them.

Controller / Bluetooth support:

  • Pads that connect after the game starts — or reconnect after auto-sleeping, which Bluetooth pads always do — are now picked up immediately. Previously only a controller present at boot worked reliably.
  • Pad input keeps working when the game window isn't in the foreground — the normal situation in VR.
  • If your pad is an off-brand one SDL doesn't recognize, the log now names it and its GUID instead of ignoring it silently — and you can drop the community gamecontrollerdb.txt (github.com/mdqinc/SDL_GameControllerDB) next to the exe to add support for practically any pad. If yours doesn't work, send the log line and I'll bake its mapping in.

Works the same flat and in VR; in VR the pad simply merges with motion controls, so you can use either at any moment.

Update: replace AnimalCrossing.exe.

v0.9.3-vr16 - fix the flat first-person blue-out

Choose a tag to compare

@LiquidAzir LiquidAzir released this 06 Aug 23:50

Fast fix for the "everything is blue" bug in flat first person from vr15.

What it was: fog, not a rendering failure. The clue in the screenshot was the strip of real texture at the bottom (close ground) with everything beyond drowned in solid sky colour. The game's fog values turn out not to be distances at all — they're positions on a 0–1000 scale relative to the camera's far plane. vr15 multiplied them as if they were distances, which pushed them past a mathematical pole in the emulated fog formula, and the fog factor saturated to 100% at every pixel.

The fix does it properly instead:

  • Flat first person now gets a far plane that covers the entire town corner-to-corner, so the whole-town rendering from vr15 is actually visible flat (before, even without the fog bug, distance would have clipped it).
  • The fog band is set to the tightest legal value ending exactly at that far plane — a gentle haze starting ~2.6 acres out, reaching full only at the horizon, so the far clip is never visible. The arithmetic was verified to round-trip exactly through the emulated fog pipeline.

Untouched, verified per-branch: VR (both views — identical to what you've been playing), flat third person, interiors.

Flat first person should now look like the VR intent: whole town visible, distant edges fading into haze instead of a wall of blue.

Update: replace AnimalCrossing.exe.

v0.9.3-vr15 - measured back walls + full world in flat first person

Choose a tag to compare

@LiquidAzir LiquidAzir released this 06 Aug 22:51

This release fixes both problems from the screenshots, properly.

The "second overlapping house": my vr13 shell rotated each building around a point I assumed was its centre. It wasn't — building models pivot way off-centre (one shop's pivot sits 56,000 model units from its middle), so the copy landed displaced and poked out as a ghost house. The pivot is now measured, not guessed: at first draw, the game reads the building's actual vertex data (loaded from your disc) and computes its true centre, then spins the fill exactly there. Correctly centred, the copy hides inside the real walls everywhere they exist — what remains visible is only the fill closing the open back. Just a wall, not a second house.

Safety nets, because "no mistakes" was the brief:

  • Any model whose data can't be parsed skips the fill entirely and prints one log line — nothing broken is ever shown.
  • Measurement is deferred if a door is mid-animation (a save that resumes on your doorstep boots with the door open — measuring then would skew the centre for the whole session).
  • --verbose now logs each building's measured centre and size, so a log alone can confirm the alignment.

The pop-in on your monitor: those screenshots were flat first-person — and every draw-everything system I'd built was VR-only by (my bad) design. Flat first person now gets the full treatment: whole town terrain, every building and prop loaded, trees/items in all 30 acres, fog pushed to town scale, culling off. It switches on when you enter first person (F5) or VR, and stays on for the session. Flat third-person before ever pressing F5 remains exactly stock.

How to verify without the headset: launch flat, F5, walk behind your house and Nook's, then look across town. Expect: no second house, no black holes in walls, no acre-boundary pop. Known honest cosmetics: the fill is the building's own front, so a faint door shape can appear on the back; oddly-shaped buildings (station, post office) may show small fill edges — screenshot anything weird and send the --verbose log.

Update: replace AnimalCrossing.exe.

v0.9.3-vr14 - integration audit: invisible-flora fix + hardening

Choose a tag to compare

@LiquidAzir LiquidAzir released this 06 Aug 18:05

A deep bug-hunting round over everything shipped since the second playtest (vr10 through vr13). Each of those releases was reviewed on its own; this round audited how they interact — six investigators over the combined change set, every finding independently verified three times before being fixed.

The big catch — this one you would have hit immediately: with the whole town kept loaded, the game's "rebuild the tree/flower draw tables" trigger never fired on entering town, because the table it watches for changes never changes anymore. Result: trees and flowers outside your starting acres were invisible — but still solid — every time you entered town, until the first world change (chopping, digging, dropping something) forced a rebuild. Fixed by forcing one full build at town entry, in all four seasonal variants of the system.

Also fixed:

  • A render buffer that saturates exactly at the new actor cap on night scenes — the overflow silently drops every frame, permanently. Now double the size.
  • A linking correctness issue on the town-residency flag (worked by compiler accident; now declared properly).
  • The GameCube build paths are pristine again — two of my earlier fixes had leaked into what would be the console version of the code.
  • vr_town_residency is now documented as requiring a restart to take effect.
  • Assorted comment and constant corrections.

Also worth knowing — things the audit checked and cleared:

  • Flat (non-VR) play verified behaviourally identical to the stock port at every single VR gate.
  • The solid-buildings shell verified clean across all 11 building types — Nook's really was the only model needing the state-reset treatment.
  • Memory budgets have real headroom on the 32-bit build, whole town + shells + both eyes included.
  • Fish/insect despawn distance deliberately left alone: holding distant fish alive would re-break fishing town-wide (the game has only 2 fish slots).

Update: replace AnimalCrossing.exe.

v0.9.3-vr13 - solid buildings: the missing back walls

Choose a tag to compare

@LiquidAzir LiquidAzir released this 06 Aug 08:22

Buildings are solid from every angle now.

Why they weren't: the far side of buildings was never modelled. Every camera in the original game looks from one fixed direction, so the art only needed the sides you could see — Nook's shop is provably open-backed (all 50 of its vertices are used by six parts, none of them a back wall). No render setting can show geometry that doesn't exist.

The fix: each building is drawn twice — once as a "shell" spun 180° and shrunk to 97%, then normally on top. Where real walls exist the shell hides inside the building; where the back is missing, the front wall's geometry closes the gap. It's generic, so it works on every building without hand-measuring models (which isn't possible anyway — the model data only exists at runtime from your disc).

Two traps had to be handled, either of which would have looked ridiculous: building models don't pivot at their centre (a house's root sits 2000 units off, so a naive spin would have parked a ghost house in the next yard), and the island houses are stored rotated onto their side, so spinning them the obvious way would have stood the copy on its head.

Review also caught that the shell could leave graphics state behind that the real building then inherited — Nook's would have rendered as a flat black silhouette in daylight. Fixed before shipping.

Try it on your monitor first — this works in flat first person (F5) too, so you can judge it without the headset.

Two switches in settings.ini:

  • vr_solid_buildings = 0 turns it off entirely (restores the old see-through behaviour exactly).
  • vr_solid_shell (50–100) shrinks the shell if an edge ever pokes through a wall or roof.

Known cosmetic quirk: since the shell is the building's own front, a faint copy of the front door may be visible on the back face. Solid and plausible beats a hole, but if it bothers you, say so.

The mailbox is deliberately excluded — its flag arm ends up on the wrong side when mirrored. If mailbox backs still look wrong, that's the next small job.

If anything looks off, run with --verbose and send the log: it now prints one line per building model with its pivot data, which will tell me exactly which model misbehaves and why.

Update: replace AnimalCrossing.exe.

v0.9.3-vr12 - everything loaded: trees and items town-wide

Choose a tag to compare

@LiquidAzir LiquidAzir released this 06 Aug 06:31

The last streaming layer is gone. Trees, flowers, rocks and dropped items live in per-acre tables that only ever covered about four acres — everything past that didn't just go unrendered, it didn't exist. In VR the game now keeps all 30 playable acres loaded at once, in a fixed order that never shuffles.

Combined with vr11 (whole-town terrain, permanently-loaded buildings and props, fog pushed out to town scale), the world should now be there — all of it, all the time.

Two blocking bugs were caught in review before this shipped, both worth knowing about because they'd have been nasty:

  • Animal Island sits outside the town grid. Loading "every town acre" would have left the island's own acre out of the table entirely — its palms invisible but still solid, and every one of them felling in a single axe swing. The island now uses the original code path.
  • The flag that drives tree-attribute clearing turned out to be a background-loading completion signal, not what an earlier code comment claimed. Neutralising it would have meant freshly planted trees needing ~255 axe swings, chopped stumps falling in one, and dug holes never clearing. It's now translated correctly for the wider table.

Memory use is up modestly (about half a megabyte of extra tables); the game's heap was raised once to suit.

About missing back walls: unchanged in this build — that's a separate problem and the fix for it shipped in vr11. If houses still look hollow from behind, the models genuinely lack back polygons (proven for Nook's shop), and the next step is generating them. You can settle it in a minute without the headset: run AnimalCrossing.exe --model-viewer 8 and orbit to the back of the house. That viewer forces double-sided drawing, so a solid back there means the geometry exists.

Performance note: this build asks a lot more of the CPU — the entire town, every frame, twice over for stereo. If the frame rate drops, don't shrink the world: set vr_draw_radius = 3 in settings.ini and say so, and the transform path can be optimised instead.

Update: replace AnimalCrossing.exe.

v0.9.3-vr11 - the whole town, always loaded

Choose a tag to compare

@LiquidAzir LiquidAzir released this 06 Aug 05:34

Round three on pop-in — this time a full forensic audit of every visibility system in the engine, which found that the game has three independent residency layers plus a fog ceiling, and earlier rounds had only been fixing the drawing layer.

The back walls — real root cause found. The vr10 fix had a genuine bug: it was gated on first-person mode rather than VR, making it the only one of the VR patches keyed to the wrong flag — so it never ran in the diorama view or during any scripted camera. It also lived one layer too deep, where other code paths could bypass it. It's now in the port's single cull-mode entry point, where nothing can miss it, and covers both facing directions.

One honest caveat: the audit proved Nook's shop model genuinely has no back geometry at all (all 50 of its vertices are consumed by six named parts, none of which is a back). If a structure still looks open after this build, that's why — and there's a way to confirm it per building: run AnimalCrossing.exe --model-viewer 8 and orbit; the viewer forces double-sided drawing, so a solid back there means the geometry exists.

Pop-in — all three layers lifted:

  • Terrain was a window that followed you. VR now draws the entire 7×10 town at fixed coordinates — there is no window left to stream.
  • Buildings and props were spawned only in a 2×2 acre quadrant and deleted once you were one acre away. A background sweep now keeps every acre's structures and props permanently loaded — the whole town in about half a second, then it keeps re-checking forever as a self-repair pass.
  • Fog saturated at 1600 units — about 2.5 acres — so even geometry we were drawing dissolved into flat colour. The fog band is now pushed out to town scale in VR only; flat play keeps its original atmosphere.
  • Actor and building limits raised to fit a whole town at once, and the render buffers grown again (the previous sizes would have silently dropped entire frames under this load).

A ship blocker caught in review, worth knowing about: the first version of town residency also held villagers resident — but the villager pool is a fixed 9 slots, so once nine distinct villagers had loaded, villagers 10–15 could never spawn again for the rest of the session. Villagers are now excluded and cycle normally (they wander anyway). Two pre-existing memory bugs turned up in the same pass and are fixed.

If your machine struggles, two new settings.ini knobs: vr_draw_radius (0 = whole town, or a radius in acres) and vr_town_residency (0/1).

Update: replace AnimalCrossing.exe.