VNES64 is a homebrewn emulator that runs NES games on the Nintendo 64. It was made for the Presence of Mind ’98 competition by JL_Picard and Firebug.

You can download the ROM here by using the password virtualNES. There is the original version that was made for the POM98 competition and there is also the revised version released a few days later with some bugfixes.

Basic emulation

The game boots up with an intro by JL_Picard as a small credit sequence.

The zip come with an included ROM that works right out of the box, but only displays a simple homebrew NES ROM called (aptly enough) CARTIDG.NES. It’s pretty much just a simple light show that has some colours moving around the screen alongside a RAM test and controller test.

How to get it to work

You’ll get the above if you run the N64 ROM as-is. To get some real NES games working, you’ll have to take a few other steps.

First of all, you’ll need the downloadable file at the top of this page plus an NES ROM. Obviously, I’m not going to say how to get these, but you know what I mean.

Then you need to boot up your trusty Windows XP and transfer your files over there. The utility we’re going to use is a 16-bit executable, so it’s not going to work on a more modern version of Windows. If you want to know how to do that, see my instructions here.

Then once you have all your files in the same folder, open up Command Prompt (CMD) and go into that folder by using the command cd c:\path\to\folder. Then run MERGE.EXE by typing in MERGE nesrom.nes VNES64.V64 or whatever the name of your NES rom is called. The V64 file should now be patched with the new NES ROM. It’s still going to have the same file name, so be sure to copy and rename if you’re doing this with multiple games.


I tried this with a few games but only got Excitebike and River City Ransom to work. I tried others like Legend of Zelda and Super Mario Bros but they failed. The N64 ROM just crashes after the three intro screens.

It’s quite a pain to transfer everything to a VM, do the patch, then back out and onto an SD card to put back into the Everdrive so I didn’t test that many games to be honest.

I’d rather just use the Everdrive’s in-built NES emulator since it supports fullscreen, a better framerate and no ear-bleeding audio (Rocky & Bullwinkle still kills me) though.


This is the readme text. This is for the 0.12 version which is essentially the same readme but with more sections added. I also edited it slightly for better formatting. The original was monospace with manual word wrap in a word doc which was an abomination to mankind.

vNES N64 0.12

by JL_Picard

Original version by JL_Picard and \Firebug\ of Vertigo 2099

=- originally for POM ’98 (Presence of Mind ’98) -=

What’s new since 0.1 (POM release):

  • Fixed a bug with scrolling.
  • Made it full screen (centered and scaled).
  • Padded the rom.  you _dont_ need to pad it I hope, please let me know about this.
  • Fixed a more or less major problem with the menu (you couldn’t exit πŸ™‚
  • Included talk64 with the distrobution. use TALK64 -l VNES64.V64 to send. Thats an “L”

The next release will have:

  • A totally re-written sound core, I want to UN-FUCK this fucker.
  • Hopefully a bit faster due to a new screen redraw method
  • More mappers
  • Multi-rom support.  this will fix some problems with sram too.
  • Sram compression.  this will allow for more sram’s for games to be stored on one pak.
  • A new gui and menu system, with a star trek tng LCARS theme. hehehehe.
  • Realtime save/load, if you don’t know what these are check out other emu’s.
  • A TOTALLY revamped merge.exe, with support for multi-roms, possible windows 95 long filename support, “friendly” naming of the roms,
  • A cool interface and fileselector, native padding/checksum/sending.
  • It will r0x0r j00.
  • More.

_DON’T_ ask me when it will be out.

Note: people have asked to have merge do a “conversion” of nes roms to n64… and I respond: you can do this already by yourself with a little bit of DOS batch file coding.  in specific: research the for loop command.

How to use:

It’s simple.  Got an N64? Got a backup device such as the Doctor V64 or the Z64? Then you have all the necessary requirements for using this emulator.

Button configuration:

  • Start = START
  • A = A
  • B = B
  • Digital Pad = Digital Pad
  • Analog = Not used
  • Top Right = In-game Options
  • Top Left = Quit (used for saving SRAM)
  • Z= Select

Note: you must QUIT the emulation (Top Left) to save the SRAM to the pak. (if required)

Pretty easy eh?

In-game options:

Press Top-Right and you will get a menu.  (Press & Release) The menu will go away if you press Top-Right again.

There are various options available to you while in the menu… You can access them with the up/down C buttons.  To change a value, press the left/right C buttons.

Memory PAK support:

If the game has battery backed-up memory, vNES 64 will attempt to create a SRAM save-file on the mem-pak.  you can insert a mem-pak into any controller. It will look for the one closest to controller 1.  for example if you have 2 paks inserted in controllers 1 and 3, it will use the one in #1. If there are not enough free pages to create a file (currently requires 8K) Then it will probably give you an error.

also: if there are no paks inserted it will also probably give you an error. Or it may not, depending. I will expand support for the mem-paks in a future release, this is only meant to be a small bugfix release.

The game writes the sram upon emulator exit…this means to actually _SAVE_

The sram to the pak you must do the following:

  • Press top-right (get the menu) press top-left.
  • Exit the menu by pressing top-right you will see a screen saying it is ok to turn the n64 off… it has then saved the sram. (if applicable)


The file MERGE.EXE is a utility that lets you use your own NES ROMs with my emulator.  To use it, simply type MERGE <nes rom> <n64 rom>. Example: MERGE zelda2.nes vnes64.bin.  It supports ROMs in the iNES cart format.

I recommend using TALK64 (by Stan) to send the image to the copier.

You don’t have to byteflip anything! πŸ™‚

If you’re using a Z64, don’t byteflip.

If you’re using a V64, don’t byteflip, use TALK64 to send, it will take care of the rest.

If you byteflip, I cannot guarantee what will happen when you insert a new NES ROM.

About that file setcsum.exe in the distrobution — leave it, it’s necessary to update the checksum of the ROM.  MERGE.EXE will take care of it, just make sure that MERGE and setcsum.exe are in the same directory.  In future releases I will build in support for native checksumming.  It’s not a pain. πŸ™‚

Features of the emulator:

All the standard NES stuff:

  • 6502
  • PPU
  • Sound channels (5 of em)
  • Mappers

N64 port specific:

  • Simultaneous dual controller pad emulation! It’s the same as on the NES, just hook a controller in the second port and you’re good.
  • SRAM support, just put a controller Pak inside of the first controller. Don’t put a rumble pak there, I don’t know what’ll happen. πŸ™‚ If no controller pak is present, it will display a message saying you won’t be able to save anything (if a battery is required for the NES ROM).
  • Sound support.  At this point it’s pretty shitty, if you want to enable or disable it, there’s an option in the menu.  Don’t enable it. Why? Because it’s shitty.
  • RCP Usage.  This emulator uses the N64’s hardware.  Using the sprite microcode.  No, it won’t run on Project UnReality (or any other current N64 emulator).

Things you should know:

  • It’s not full speed at all times, you should recognize it in certain games.
  • It will become full speed in a later release.
  • Sound is pretty shitty.  I will make it un-shitty in a later release.

Future goodies to look forward to:

  •  SRAM support to the EEPROM on the cart, not just the pak.
  •  RTS/RTL support, these will be compressed and stored either on the pak or the EEPROM.
  •  More mappers, I already have info on these.
  •  A more user-friendly GUI.
  •  Rumble pak support in the GUI.
  •  Multi button configurations.
  •  Configuration for the whole emulator stored on EEPROM or something.
  •  Multi-ROM support (multi NES ROM).  Meaning…you load multiple ROMs and you get to choose which one to play at startup. This will also allow for multiple SRAM files, although you can only have 2 on a Pak πŸ™‚
  • There are some bugs, such as scrolling, etc…these will be ironed out.
  • your suggestions here (email em to me)


Greets and thanks:

Thanks to rider, and _Demo_ for all their help! and __especially__ to LaC, I couldn’t have done it without you man! =)

Greets to everyone in , everyone in #emu, all Vertigo 2099 members, Dextrose, and BlackBag, and to all n64 coders. and to Acey, for setting up an unofficial site for vNES64:

Contacting the author:

Don’t ask me about where to get roms, or if I will send you any.
Don’t ask me about when a new release will be out, or what will be in it.
New stuff will always be mentioned here.
Don’t ask me if you can be a beta tester.  I already have enough.
Don’t ask me if _X_ will be supported.  Hardware or software.

Feel free to ask me about anything else! (sensibly)

JL_Picard on EFNET irc.
[email protected]
ICQ: Yozozzo

Thanks for using vNES64 πŸ™‚

  • Email your bug reports and features you would like…I’m very accomodating.
  • Flames will be joyfully ignored and trashed.



Articles across the web

The VNES64 is a homebrew emulator by JL_Picard for the Nintendo 64 that lets you play NES games right on your 64-bit console.
Article published on N64 Squid


Subscribe to the mailing list

Follow N64 Squid

  • RSS Feed
  • YouTube

Random featured posts

Leave a Reply

Your Name (required)

Your Email (required)


Your Message