Patterns, tiles, characters - just few different terms for the same thing. In the NES context they are called characters (hence CHR-ROM), and patterns (in NesDev wiki). 'Tile' could mean more than simply a graphics, though - this word is also used to refer to a cell of the nametable.

CHR file is the content of CHR-ROM, contains graphics (characters).

Unusual thing in the NES architecture is that it completely separates program memory from graphics memory. Cartridge has two separate ROMs and two busses for them - one for code and various data (PRG-ROM), and other for graphics (CHR-ROM). CPU can only access the PRG-ROM, while PPU (graphics controller) can only access CHR-ROM. When CPU access to any video memory is needed, it is done indirectly, by asking PPU to do that.

Patterns, tiles, characters  - small pieces of graphics that are 8x8 pixels. NES can handle two sets of 256 characters. They are used for backgrounds and sprites. Only one set can be assigned to background or sprites, i.e. you can't use characters from different sets on a single screen (without tricks), but you can use one set for background and other for sprites.

Sprites - small movable objects that are overlayed on the background and can move independently. Graphically one sprite represented with one character 8x8 pixels, taken from one of the character sets. Up to 64 sprites could be displayed on a screen, but only 8 on a scanline (one horizontal line of pixels).

Background - an array of 32x28 cells. Sort of a text screen, one byte per cell - a number of a character in bank. It could be scrolled by two axises, but the cells always keep their relation to each other.

Nametable - part of video RAM that forms the background, 32x28 bytes. There are two nametables (technically four, but console only has enough video RAM for two), to organize a bit larger scroll area, also useful for some tricks.


Tricky part of NES graphics is the color.

There is general palette of 56 colors, defined by the hardware design, and a programmable palette of 32 entries. Each entry could have an assigned color. The entires are divided into two halves - 16 entires for background graphics, 16 for sprites. These further divided by four parts by 4 colors each, these are called palettes too. One sprite can have one of the four sprite palettes assigned. For background it is more complex, palettes assigned to blocks of 2x2 cells rather than individual cells.

Despite there are 32 palette entries, only 25 colors could be displayed at once (without tricks). That's because first color of all four background palettes is always the same, the background color - so 1+3+3+3+3=13 colors for background. First color of a sprite palette considered 'transparent', i.e. you can see background through it - so 3+3+3+3=12 colors for sprites. 13+12=25 colors on the screen at once.

There are many little details as well, ask if you want to know something specific.


You can try and see all these NES graphics components and their relation in action using my NES Screen Tool - a specialized nametable editor that also allow to create graphics.

51

(174 replies, posted in Sega)

There is no way to detect that the amplitude of a channel is zero. Also, amplitude decay time defined by the ADSR envelope, it easily can be set to seconds or inifinite, and that is actually useful - so even if there would be a way to detect the amplitude, such approach would not work.

I don't see any way to get rid of the popping automatically. As wedanced say, it could be done manually.

OP wants to convert SPC to MOD, not make SNES music.

53

(24 replies, posted in Nintendo Consoles)

There are converters from IT and XM (with many limitations, not for random files).

SPC is not a standartized format like MOD, it is code+data dump, like SID or NSF file formats. So music by itself can't be automatically converted to MOD (not to mention that SNES always has 16-bit samples), the best that is possible in theory is something like NSF to MIDI results (no patterns, glitchy). The samples, however, are always in standart ADPCM compressed format, because that's how the hardware works, so they could be ripped 100%.

55

(174 replies, posted in Sega)

That's because you change the level by large step by doing this. It is common problem in digital sound, not related to the editor.

Before specialized sound chips were created, computer music mostly used DACs, starting from one or few 1-bit DACs (check my article on this). It is ~1959.

The problem is that generally you can't make a sinewave horizontal scroller on NES, i.e. no easy way to make a scroller where every character has different Y coord. You can easily make a sinewave scroller where the whole line of text jumps up and down, all characters at once.

Isn't LSDJ is there for like 11 years now?

This one was a computer music album, predecessor of chiptune, but technically not a chiptune yet, because no dedicated sound chips were used (as far as I know from description of the devices). Early sound chips appeared circa 1978, so I think the first legitimate chiptune album could not be earlier or too near to the date.

I think better arrangement and production value would help this. I hear some potential to be likeable for me (there is a melody), but it just does not sounds well, not up to an album quality. Tweak the instruments, maybe add echoes or harmonization, some EQ etc, and it could be nice. In my personal opinion, of course.

62

(9 replies, posted in Sega)

Yes, I noticed that - the code that gets TL changes is too simple to make a mistake, so my guess is that the music was made with slightly randomized TL for some reason.

63

(9 replies, posted in Sega)

VGM2TFI is updated, test it please. It produced seemingly correct set of instruments for the file, at least.

64

(9 replies, posted in Sega)

You can modify vgm2tfi, shouldn't be too difficult. Alternatively, if you have a VGM file that uses YM2151, send it to me, and I'll modify the tool.