What is VROM?

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
What is VROM?
by on (#22614)
What is VROM? Is it a chip?

by on (#22623)
Yes. VROM (or CHR-ROM) is a ROM chip inside a NES cartridge that contains all of the "tile data" (the bitmaps of the 8 pixel by 8 pixel "tiles" used to make up the background and sprites). However, what colors the background/sprites are (the palette) and where they go (name tables, SPR-RAM) have to be loaded into the PPU's VRAM by the CPU.

by on (#22625)
CartCollector wrote:
Yes. VROM (or CHR-ROM) is a ROM chip inside a NES cartridge that contains all of the "tile data" (the bitmaps of the 8 pixel by 8 pixel "tiles" used to make up the background and sprites). However, what colors the background/sprites are (the palette) and where they go (name tables, SPR-RAM) have to be loaded into the PPU's VRAM by the CPU.


Do you happen to know a few common games that have CHR-ROM in them? Thanks! (Also, are they in the chr slot?)

by on (#22626)
Super Mario Bros. is incredibly common and has an 8 KiB CHR ROM. It is shipped on the NROM-256 board.

Super Mario Bros. and Duck Hunt is also incredibly common and has a 16 KiB CHR ROM. It is shipped on a GNROM-compatible board.

by on (#22771)
Pretty much any first-generation NES game (black with pixelly art) has CHR-ROM. There's a .txt on the main site that has how much PRG-ROM and CHR-ROM/RAM each NES game has.

by on (#22871)
So what's the difference between VROM and CHR-ROM?

by on (#22873)
Both terms rever to the same thing.
Actually Nintendo used CHRROM and CHRRAM therms for pattern table memories, while they use VRAM for Name table memories (both in the NES control deck and the few cartridges that have extanded name table RAM).
But the SNES's memory refered as VRAM can be used for both nametables and pattern tables (well, their SNES equivalent precisely) and everything is selectable by the software (no need for VRAM or CHRRAM on the cart) so there is definitely no difference.

by on (#22877)
The confusion is probably coming from the mixing of abstraction levels. At one level you have RAM and ROM: read-write and read-only memory chips. At a higher level you have CPU memory and video memory, which are both RAM or ROM but connected to either the CPU or PPU's memory bus. To be concise, there are terms that refer to both abstraction levels at once, like VROM (read-only memory on the PPU bus) or CHR RAM (read-write memory on the PPU bus, the CHR referring to the fact that it's mapped into the graphics data address range and not the nametable range).