Project64
About Project64
Project64 is the Nintendo 64 emulator that built its reputation on being the easiest way to run N64 games on a Windows PC. Where most N64 emulators expose plugin choices, microcode decisions, and per-game configuration as the user’s problem, Project64 solves this through its ROM database. The emulator recognizes each game by its internal ID, looks up the known-good settings for that title, applies them automatically, and runs. For the vast majority of the catalog, the experience is genuinely double-click-and-play.
The application has been around since the early days of N64 emulation and built up a polished GUI, a working netplay implementation, integrated cheat support, and a library browser that handles large ROM collections with cover art and metadata.
It is the closest thing N64 emulation has to a turnkey product, and that positioning is exactly what differentiates it from more modular alternatives that demand more setup in exchange for more control.
The ROM database and why it matters
This is the feature that defines Project64 more than any other. The RDB is a database of per-game configuration data that ships with the emulator. Each N64 game has known quirks (specific RSP behavior it needs, particular memory size requirements, save type expectations, plugin compatibility notes), and the database stores the right settings for each one. When you load a ROM, the emulator identifies the game from its internal header, looks up the entry, and applies the recommended settings before launch.
The practical effect is that games which require manual configuration in other emulators just run. Conker’s Bad Fur Day with its unusual microcode, Goldeneye with its specific rendering quirks, Donkey Kong 64 with its expansion pak requirement, all get the correct settings applied automatically. New users opening the application for the first time encounter a working experience without learning what RSP, microcode, or expansion pak emulation even mean.
The database is community-maintained and updated periodically. Updates ship with new versions of the emulator, and the file itself can be replaced manually with a newer RDB from community sources if a specific game has been improved since the last release.
For users who prefer the deepest configuration control over this kind of automation, a more modular alternative like Mupen64Plus takes the opposite approach and exposes every setting directly. The two emulators serve different audiences with different priorities.
Netplay and the local multiplayer revival
The N64 was a multiplayer console. Mario Kart 64, Goldeneye, Smash Bros, Mario Party, all defined as four-player experiences on a single TV. Modern PC emulation rebuilds this differently. Project64 includes netplay support that lets players in different locations share a synchronized game session over the internet, with each player using their own controller and seeing the same screen.
The netplay implementation handles input synchronization, frame-perfect timing, and disconnection recovery. Setup involves one player hosting a session and others joining through a server address. The protocol handles the strict timing N64 multiplayer games expect, with rollback netcode that hides minor network latency from the gameplay.
In practice, netplay works well for games designed around a single shared screen. Mario Kart 64 is the obvious classic. Goldeneye, Smash Bros, and Mario Party all play decently over modern broadband connections.
Games that require precise input timing within a single frame (some racing games, certain fighting game inputs) are more sensitive to network conditions. The implementation is one of the better netplay solutions in retro emulation today.
Cheat system and the GameShark legacy
The cheat menu accepts GameShark codes in the standard eight-character hex format, which is the same format used by the physical GameShark device sold for the original console. Decades of community-collected codes still work without conversion. The Cheats menu lets you browse codes per game, toggle them on or off, and add custom codes by entering the hex values directly.
The application also includes a search function for finding codes yourself. You can scan memory for specific values, narrow the results by comparison (greater than, less than, equal to the current value), and isolate the address holding any stat or counter in the game. This is the same workflow GameShark Pro devices originally used, recreated in software. For other cheat-friendly retro emulators in the broader ecosystem, DeSmuME handles DS games with similar depth, and ePSXe covers the PS1 side with its own cheat tooling.
The cheat database itself comes pre-populated for major games. Mario 64 has codes for infinite lives, all stars unlocked, level skip. Ocarina of Time has codes for all items, infinite rupees, and developer debug features. Each cheat has a description, category, and optional sub-options (some codes have multiple variants depending on what you want).
Controller support and the analog stick mapping
Controller setup is one area where Project64 is genuinely user-friendly. Xbox controllers connected through XInput are detected automatically with a sensible default mapping. The analog stick goes to the left thumbstick, C-buttons go to the right thumbstick or face buttons, the Z trigger goes to the left or right trigger depending on preference, and the four shoulder buttons map to the available bumpers.
DualShock controllers work through DirectInput, sometimes requiring DS4Windows to expose them as XInput devices for the smoothest experience. Switch Pro Controllers can be mapped manually through the controller configuration. The application handles up to four simultaneous controllers, which is essential for multiplayer titles where each port needs its own input device.
The mapping interface is straightforward. Click the field for each N64 button, press the corresponding button on your controller, and the binding registers immediately. The configuration is per-controller, so two players using different gamepads can each have their preferred mapping.
This level of polish is something users of more technical emulators do not get out of the box.
Video plugins and the visual upgrade path
While the RDB handles most per-game configuration, users who want to push graphics further can install GLideN64 or other modern video plugins. Project64 supports the same plugin architecture descended from earlier N64 emulators, so plugins designed for the broader N64 emulation ecosystem generally work here.
GLideN64 is the standard modern choice. It renders at high internal resolutions (up to 4K and beyond on capable GPUs), supports HD texture pack loading, and includes frame buffer emulation modes that fix specific visual effects some games require. The result is N64 games looking sharper than they ever did on the original hardware, with the original polygon models exposed in detail the 240p output never showed.
HD texture packs replace the original low-resolution textures with community-created high-resolution versions. Mario 64, Ocarina of Time, Banjo-Kazooie, and Goldeneye all have substantial pack ecosystems. Installing a pack involves placing the .htc files in the configured texture directory and enabling pack loading in the plugin settings. The first launch with a new pack caches the textures, and subsequent launches load quickly.
The donation prompt history and current state
Anyone researching Project64 runs into discussions of a support prompt that appeared in older versions, asking users to contribute to development through specific monetary or other actions. The prompt was controversial because it appeared at launch and required dismissal each session. Current versions handle this differently and the prompt is no longer a significant friction in normal use.
The history is worth knowing because it shaped community perception. Some users gravitated toward alternatives during the prompt era and never came back. Others stayed because the underlying emulation quality remained strong despite the user-facing friction. The current state of the application is significantly cleaner than what some older articles describe, and the core emulation features remain among the best in the N64 space.
For users who want a unified launcher across multiple emulators rather than a single integrated frontend like the one Project64 provides, Emu Loader sits on top of the emulator itself and adds catalog management for collections that span N64 and other systems.
Save handling and game compatibility
Save support handles both cartridge-style saves (SRAM, EEPROM, Flash RAM, and Controller Pak depending on what the game used) and emulator save states. Cartridge saves are written automatically when the game saves internally, just like the original hardware. Save states snapshot the entire emulator state at any moment and can be loaded back instantly through F1-F10 hotkeys, with multiple slots per game.
Compatibility is strong across the catalog. The vast majority of N64 games run correctly with the default settings the RDB applies. Some titles have known issues that no current emulator handles perfectly, including specific edge cases in Indiana Jones and the Infernal Machine, certain transitions in Banjo-Tooie, and a few obscure titles using unusual microcode. These are documented in community compatibility databases.
The Controller Pak emulation deserves a mention. Several N64 games saved data to a memory expansion card that fit into the controller, separate from the cartridge save. Project64 emulates this through virtual Controller Pak files that can be configured per controller port.
Games like Mario Kart 64 and Wave Race 64 use this for ghost data and time trial records that persist across sessions.
Real limitations
The emulator is closed source, which sets it apart from much of the modern N64 emulation ecosystem. This affects how quickly community improvements can be integrated and how much insight users have into how specific features work. For users who value the open development model, this is a real consideration.
Performance can vary by game. Most titles run at full speed on modern hardware without issue. A small handful (Indiana Jones, certain test cases) push the emulator harder and may exhibit slowdowns or audio stutters depending on the system. The RDB tries to apply optimal settings, but the underlying difficulty of N64 emulation means perfection across the entire catalog is not yet achieved by any emulator.
The plugin ecosystem is also smaller than it was a decade ago. Some of the older video plugins (Jabo’s Direct3D, Rice) have not been updated in years and produce noticeably worse output than GLideN64. New users sometimes try the older plugins for nostalgia reasons and end up disappointed. The recommendation is consistently GLideN64 for new setups.
Conclusion
Project64 is the right choice for users who want N64 emulation to work without becoming a hobby in itself. The ROM database handles the per-game configuration that other emulators leave to user knowledge, the controller mapping uses sensible defaults that just work with modern gamepads, and the netplay implementation revives the multiplayer dimension the console was built around. For the audience that wants to play Mario 64 or Goldeneye on a modern PC tonight rather than spending an afternoon configuring plugins, this is the answer.
The application is not the right choice for users who want the deepest configuration control or who specifically prefer open-source emulation. The closed development model, the older plugin ecosystem, and the historical perception issues mean the audience here is users who value working over working their way.
Within that lane, the emulator delivers what it promises, and the years of refinement around the user experience are evident in how few questions a new user actually has to answer before their first game is running.
Pros & Cons
- ROM database applies known-good settings automatically for the vast majority of N64 games
- Netplay implementation handles multiplayer sessions over the internet with synchronized timing
- Comprehensive GameShark cheat support with pre-populated codes for major titles
- Controller auto-detection and clean default mappings make setup genuinely simple
- Built-in library browser with cover art and metadata displays large ROM collections cleanly
- Integrated cheat search lets users find new codes through memory comparison workflows
- Closed source approach limits community insight and contribution compared to open alternatives
- Older video plugins still bundled produce visibly worse output than current GLideN64 defaults
- Some users remain wary due to historical donation prompt controversies in earlier releases
- Performance edge cases exist for specific games with unusual emulation demands
- Plugin ecosystem is smaller and less actively maintained than for fully open emulators
- Configuration philosophy assumes the RDB is correct, which makes manual overrides less obvious
Frequently asked questions
The RDB is a database of per-game configuration data that tells the emulator which settings each N64 game needs. It applies plugin choices, memory configuration, and save type expectations automatically when you load a ROM, making the experience close to plug-and-play for most of the catalog.
Yes. The application includes a netplay implementation that synchronizes input between players in different locations, letting Mario Kart 64, Smash Bros, Goldeneye, and other multiplayer titles play over the internet with frame-perfect timing.
Open the Cheats menu while a game is running. The application includes pre-populated codes for major games, and you can add custom GameShark codes through the Add Cheat dialog by entering the standard eight-character hex format.
Check the controller configuration is mapped to the correct port. Some N64 games require specific ports (Mario Kart needs port 1 by default), and the application's default mapping assigns Xbox controllers to port 1 only. Configuring additional ports in the input settings adds support for multiplayer.
Yes, through GLideN64 or other compatible video plugins. Place the texture pack files in the configured texture directory and enable pack loading in the plugin settings. The first game launch with a new pack caches the textures.
Older versions included a launch-time prompt asking users to support development. Current versions handle this differently and the prompt should not appear as a significant friction in normal use. Users still seeing it may be running an outdated version.
Yes. The cartridge-style save data the game writes is preserved automatically in the configured save directory. Save states are also available for snapshot saves at any point through the F-key hotkeys.
The application emphasizes ease of use through its ROM database and integrated features like netplay and the library browser. More modular alternatives expose plugin architecture and per-component configuration directly, trading user-friendliness for fine-grained control.

(7 votes, average: 4.14 out of 5)