Nintendo Entertainment System ROM MIME Type

Learn what application/x-nintendo-nes-rom identifies, how iNES and NES 2.0 ROM images work, and how Poly handles .nes files.

MIME type details for application/x-nintendo-nes-rom

In active use
MIME typeapplication/x-nintendo-nes-rom
Extensions
.nes
Magic number4E 45 53 1A
Alternate versions
application/x-nes-rom
First standardized1996
Created byMarat Fayzullin
Browser supportNo native browser support
Example applicationsMesen, RetroArch
Poly supportPartial. Poly recognizes .nes as application/x-nintendo-nes-rom and stores, syncs, shares, and versions the file, but does not emulate or parse the ROM.
Indexed by PolyPartial. Poly indexes the filename and ordinary file properties, but not header fields, program code, graphics, audio, or other ROM contents.
Preview in PolyNo. Poly has no NES emulator or ROM inspector; download the file and open it with a compatible emulator or analysis tool.
Poly agentNo. The Poly agent cannot read or reason about the program, assets, or cartridge metadata inside a NES ROM image.

What is application/x-nintendo-nes-rom?

application/x-nintendo-nes-rom identifies a Nintendo Entertainment System or Family Computer cartridge image, normally in the iNES or NES 2.0 container and stored with the .nes extension. The file can hold program ROM, graphics ROM, and header fields that tell an emulator how the original cartridge hardware was arranged.1

The media type is a convention, not an IANA registration. IANA's application registry does not list application/x-nintendo-nes-rom. Other software uses application/x-nes-rom for the same broad class of files, so a .nes filename and a validated header are more interoperable identifiers than either MIME string alone.23

The x- prefix does not mean that Nintendo created or registered this media type. The iNES container was created for an emulator and later became a de facto exchange format.1

Where did the .nes format come from?

Marat Fayzullin introduced the format in his iNES emulator in 1996. His format description says that other emulator authors adopted it as a de facto standard for storing NES cartridge images.14

That history explains the name iNES. It is a software container for a cartridge dump, not the original physical cartridge layout. A real cartridge can include separate program and character ROM chips, RAM, and mapper circuitry. The header describes enough of that arrangement for an emulator to recreate the expected memory mapping.

The original format evolved as emulators encountered more cartridge boards. NES 2.0 later extended the same 16-byte header to represent more mappers, submappers, larger ROMs, RAM sizes, timing modes, console variants, and expansion devices.5

How do you identify a .nes file?

An iNES-family file starts with these four bytes:1

4E 45 53 1A
 N  E  S ^Z

The signature is followed by a 16-byte header. In the original iNES layout, bytes 4 and 5 give program-ROM and character-ROM sizes. Bytes 6 and 7 contain mapper and cartridge flags such as mirroring, battery-backed memory, and trainer presence.1

The signature alone does not distinguish classic iNES from NES 2.0. NES 2.0 also requires bits 2 and 3 of header byte 7 to equal binary 10. A careful detector should validate the declared sections against the actual file size instead of trusting the extension or first four bytes alone.5

Header propertyiNESNES 2.0
Opening signature4E 45 53 1A4E 45 53 1A
Header length16 bytes16 bytes
Mapper rangeUp to 256 mapper numbersUp to 4,096 mapper numbers
Submapper fieldNoYes
RAM and timing descriptionLimited and sometimes ambiguousExpanded fields
Common extension.nes.nes
Changing a filename to end in .nes does not create a valid cartridge image. Likewise, changing an iNES header to claim NES 2.0 without correcting all dependent fields can make a previously working ROM fail to load.

How do you open an NES ROM file?

Current web browsers do not natively execute or inspect .nes ROM images. They ordinarily download the file. Use an NES emulator or a ROM-analysis tool when you have the legal right to use the contents.

Mesen supports NES and Famicom emulation on desktop systems. RetroArch's Mesen and FCEUmm cores both list .nes among the content extensions they can load.67

For a file that does not load:

  1. Confirm that its first four bytes are 4E 45 53 1A.
  2. Check whether the emulator reports an invalid size, unsupported mapper, or corrupt header.
  3. Try a current emulator with NES 2.0 support.
  4. Preserve the original before repairing a header or applying a patch.

Headerless dumps and other NES-family formats need separate identification. Files ending in .unf or .unif use the UNIF container, while .fds normally represents Famicom Disk System media. An emulator may support all of them, but their extensions are not interchangeable with .nes.6

Support in Poly

Poly recognizes a .nes filename as application/x-nintendo-nes-rom and classifies it in the archive category. Poly can store, sync, share, version, download, and find the outer file by name.

Poly treats the payload as opaque:

  • It does not validate the iNES or NES 2.0 header.
  • It does not extract mapper, mirroring, ROM-size, or cartridge metadata.
  • It does not emulate the game or generate screenshots, audio, or thumbnails.
  • It does not disassemble or index program code and embedded assets.
  • The Poly agent cannot read the ROM's internal content.

The repository's filename inference maps only .nes to this media type. It does not map .unf, .unif, .nez, or .fds to application/x-nintendo-nes-rom. Supplying the MIME string explicitly lets Poly preserve that label, but it does not enable format-specific processing.

Can you convert a .nes file?

There is no useful conversion from a ROM image to an ordinary video, audio, or image format. An emulator can run an authorized ROM and capture gameplay, screenshots, or audio, but those outputs do not preserve the executable cartridge image.

Converting iNES to NES 2.0 is really a header migration. It can clarify mapper and hardware details that old iNES fields cannot express, but the correct values depend on the cartridge board. A checksum database or trusted board record may be needed. Guessing a mapper or RAM size can silently change emulation behavior.

UNIF conversion is also not a simple rename. UNIF describes boards differently, and NES 2.0 is now the recommended iNES-family representation for details that classic iNES cannot encode.5

A ROM image contains executable machine code and data that an emulator parses. Keep emulators and inspection tools current, and treat ROMs from unknown sources as untrusted input. Running the emulator with ordinary user privileges and without unnecessary filesystem access limits the damage from a malformed file or emulator bug.

The container format itself provides no authentication. A valid header does not prove that the dump is accurate, complete, or authorized. Preservation workflows commonly retain a cryptographic hash and provenance record alongside the untouched original.

Copyright rules depend on jurisdiction and circumstances. Nintendo states that uploading and downloading unauthorized copies of its games is illegal and notes that pirate game files are often called ROMs.8 Homebrew programs and files distributed with permission can use the same .nes container, so the extension alone says nothing about a file's licensing.

Footnotes

  1. Fayzullin, Marat. Nintendo Entertainment System Architecture: .NES File Format. The format author's description covers the signature, header fields, cartridge sections, and de facto adoption. 2 3 4 5
  2. Internet Assigned Numbers Authority. Media Types Registry. The application registry contains no x-nintendo-nes-rom entry.
  3. freedesktop.org shared-mime-info, mirrored by Debian Sources. application/x-nes-rom definition. The desktop MIME database associates the alternate label with .nes and related NES-family extensions.
  4. NESdev community. iNES. The format history identifies Marat Fayzullin as its creator and describes its evolution from archaic iNES through NES 2.0.
  5. NESdev community. NES 2.0. The maintained specification documents identification bits, expanded header fields, compatibility, and the 2006 origin of NES 2.0. 2 3
  6. Libretro Project. Nintendo - NES / Famicom (Mesen). The core documentation lists supported systems and the .nes, .fds, .unf, and .unif extensions. 2
  7. Libretro Project. Nintendo - NES / Famicom (FCEUmm). The core documentation lists .nes as supported content.
  8. Nintendo UK. Online Piracy. Nintendo describes unauthorized game copies commonly called ROMs and its legal position on distributing them.
© Poly Corp. 2026