Virtual Pro Wrestling 2: Recompiled is a project that uses N64Recomp to statically recompile the Nintendo 64 game Virtual Pro Wrestling 2 - Ōdō Keishō (Japan) into a native PC port, running on the N64ModernRuntime with RT64 as the rendering engine. It is the sixth and final N64-era project in the AKI wrestling recompilation family, after WCW vs. nWo World Tour: Recompiled, WCW/nWo Revenge: Recompiled, WWF WrestleMania 2000: Recompiled, Virtual Pro Wrestling 64: Recompiled, and WWF No Mercy: Recompiled, sharing their runtime stack and conventions. VPW2 is VPW64's sequel and sits between WrestleMania 2000 and No Mercy on the same engine, so those two projects are this one's closest references.
This repository and its releases do not contain game assets. The original game is required to build or run this project.
Status: beta. The game boots, renders at high resolution, plays music and sound effects at full quality, takes keyboard and gamepad input (two controllers verified) through the menus and full matches with clean post-match transitions, and cartridge SRAM saves persist automatically. See Known Issues for what's still rough.
- System Requirements
- Features
- Known Issues
- FAQ
- Building
- Libraries Used and Projects Referenced
- Special Thanks
Currently a Windows build is targeted; other operating systems may be supported later.
A GPU supporting Direct3D 12.0 (Shader Model 6) or Vulkan 1.2 is required. A CPU supporting the SSE4.1 instruction set is also required (Intel Core 2 Penryn series or AMD Bulldozer and newer).
Live today, matching the sister projects:
- Plug and play — assets load directly from your ROM, no extraction step
- Hardware-accelerated high-resolution rendering through RT64 with the original N64 visual effects intact
- Widescreen support
- In-game config menus with full input rebinding for keyboard and controller
- Default mappings tailored to the AKI control scheme (d-pad movement, analog taunts)
- Multiplayer with multiple controllers
- Cartridge SRAM save emulation with automatic persistence
Planned:
- High framerate support (frame interpolation) later, pending the family's matrix-group work
- Linux support
- Mod support — the natural home for the community English translation
- Rumble and Controller Pak behavior have not been through a full verification pass yet.
- Continuous integration is still being wired up for this repository.
- The port runs the original Japanese game; there is no built-in translation (see the FAQ).
Static recompilation is the process of automatically translating an application from one platform to another — here, the game's original MIPS machine code is translated into C and compiled for modern PCs. For details, see N64Recomp. This is not an emulator and not a decompilation.
It isn't — no public decompilation of Virtual Pro Wrestling 2 exists. Unlike most
recompilation ports, which borrow symbol names from a decomp, this project generates
its own symbol metadata from scratch via a splat
disassembly (see disasm/ and syms/), transferring libultra identifications from
its sister projects WWF No Mercy and WWF WrestleMania 2000 by machine-code
fingerprinting.
This project is only a port of Virtual Pro Wrestling 2, and it only accepts one
specific ROM: the Japanese release Virtual Pro Wrestling 2 - Ōdō Keishō (NA2J,
SHA1 82DD25A044689EAB57AB362FE10C0DA6388C217A). VPW2 was never released outside
Japan, so there is only one cartridge revision. Fan-translation patched ROMs are
not accepted (their hashes differ) — a translation may become a mod on top of
the clean ROM later.
It is not an emulator and it cannot run any arbitrary ROM.
The port runs the original Japanese game. The well-known community English translation cannot be applied to the ROM this project consumes, but the family's planned mod support is the natural home for it eventually.
- Windows:
%LOCALAPPDATA%\Vpw2Recompiled\saves\
VPW2 saves to the cartridge's battery-backed SRAM (256 Kbit, confirmed during bring-up — the ROM contains no flash driver); the port persists the save image to disk automatically. Configuration files and the log file live one level up in the same app folder.
Yes — place a file named portable.txt in the same folder as the executable and
saves, config files, and the stored ROM will be kept next to the executable instead.
See BUILDING.md.
- N64Recomp — the static recompiler this port is built with
- N64ModernRuntime — the modern runtime (ultramodern + librecomp)
- RT64 — the rendering engine
- RecompFrontend — launcher, config menus, and input stack
- RmlUi for building the menus and launcher
- lunasvg for SVG rendering, used by RmlUi
- FreeType for font rendering, used by RmlUi
- SDL2 for windowing, input, and audio
- moodycamel::ConcurrentQueue for semaphores and fast, lock-free MPMC queues
- Gamepad Motion Helpers for sensor fusion and calibration algorithms
- DirectX Shader Compiler, zstd, nativefiledialog-extended, and plume via RT64
- splat / spimdisasm for the disassembly that produces this project's symbol metadata
- Inter, Noto Emoji, and
PromptFont fonts (OFL; PromptFont license in
assets/promptfont/) - SDL_GameControllerDB for community controller mappings
- WCW vs. nWo World Tour: Recompiled, WCW/nWo Revenge: Recompiled, WWF WrestleMania 2000: Recompiled, Virtual Pro Wrestling 64: Recompiled, WWF No Mercy: Recompiled, Bomberman Hero: Recompiled, and Zelda64Recomp as reference projects for structure and conventions
- Wiseguy and DarioSamo for creating N64Recomp and RT64.
- RevoSucks and the Bomberman Hero: Recompiled project, the template for this port's sister projects and therefore for this one.
- The Zelda64Recomp team for establishing the conventions the whole recomp ecosystem follows.
- ethteck and the splat/spimdisasm contributors — the disassembly tooling that made a no-decomp recompilation possible.