Answering a post from
another thread:
rainwarrior wrote: ↑Mon Jan 30, 2023 8:26 pm
Pokun wrote: ↑Mon Jan 30, 2023 2:39 pmNintendo and possibly Sega both officially use this terminology [nametable]...
I'm curious about examples. The only place I can remember Nintendo using "name" in a related way was in the SNES manual where it refers to "CHR name" for a tile's index and "name base address" as the position of CHR index 0. This seems compatible with the concept of a "nametable" but I don't think I've seen an example of them ever using that term specifically.
Sega definitely does use "name table" in its official developer manual, but this terminology comes directly from TI.
TI also used the term "pattern table" for the concept which Nintendo seems to only refer to as CHR, but we
similarly seem to have adopted for NESDev (but less pervasive in its use).
I can't recall if Nintendo ever used the full word "nametable" anywhere, but they indeed used "name" in both the Famicom and SNES documents (in the case of both tiles and sprites in the latter).
In the Famicom devdocs on page "NES_CUSTOM_CPU_PPU_0022" Nintendo/Ricoh mentions OAM and say "VPOS, NAME, ATTB, HPOS", but on two pages previously they said "キャラクタNo." ("character No.") for the same OAM byte.
But yeah, a nametable is a table of tile names so the term makes a lot of sense. By contrast, a sprite attribute table ("OAM" in Nintendo terms) contains much more than sprite names so it's not really called a "sprite nametable" or anything like that.
The pattern table is also often called "pattern generator table" or "character generator table", and pattern is often synonymous to character/tile. For example TI call the background the "pattern plane" IIRC, and Nintendo's "CHR" is just an abbreviation of "character" and does not necessarily have the narrow meaning it usually has on Nesdev (which is almost exclusively CHR ROM/RAM and pattern table contexts).
I like to use "pattern" when I want to refer to this memory area or its data and not just the name/index or characters/tiles as a concept.
Confusingly sprites uses "sprite patterns/characters/tiles". A character/pattern/tile and a sprite are two different concepts (one is in a grid and one is free-floating), and I prefer to keep them apart with different terms. But that means it's hard to refer to the pattern data of a sprite without using a synonym of tile. I typically use "character pattern" for the tile pixel data and "sprite pattern" for the sprite pixel data, but this partly clashes with TI's terminology.
Hudson bases most of their terminology in the PC-Engine chips on the TI TMS9918 VDP terms, but they don't use "nametable" or "name". Name is "Character Code" in the case of tile names and "Pattern Code" in the case of sprite names for some reason. The nametable is called "Background Attribute Table" or BAT, the pattern generator table is "Character Generator" or CG (clashes with Nintendo's use for CG which is Color Generator, AKA the palette memory) and the sprite pattern generator table is simply "Sprite Generator" or SG.