Before the basics: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
(Null edit, mostly skipping redirects, now that the interwiki table uses HTTPS for Wikipedia and several other Wikimedia sites)
(Begin to move allegedly more advanced topics to a holding section for later disposal)
Line 11: Line 11:
*[[wikipedia:Bit|Bit]]
*[[wikipedia:Bit|Bit]]
**[[wikipedia:Boolean algebra|Boolean logic]]
**[[wikipedia:Boolean algebra|Boolean logic]]
**[[wikipedia:Logic gate|Logic gate]]
**[[wikipedia:Linear feedback shift register|Linear feedback shift register]]
**[[wikipedia:Ring counter|Ring counter]]
*[[wikipedia:Binary number|Binary number]]
*[[wikipedia:Binary number|Binary number]]
**[[wikipedia:Byte|Byte]]
**[[wikipedia:Byte|Byte]]
Line 20: Line 17:
*[[wikipedia:Random-access memory|Random-access memory]] (RAM)
*[[wikipedia:Random-access memory|Random-access memory]] (RAM)
*[[wikipedia:Read-only memory|Read-only memory]] (ROM)
*[[wikipedia:Read-only memory|Read-only memory]] (ROM)
*[[wikipedia:Bus (computing)|Bus]]
**[[wikipedia:Bank switching|Bank switching]]
*[[wikipedia:Integrated circuit|Integrated circuit]] (IC)
**[[wikipedia:7400 series|7400 series]]
*[[wikipedia:Central processing unit|Central processing unit]] (CPU)
*[[wikipedia:Central processing unit|Central processing unit]] (CPU)
**[[wikipedia:MOS Technology 6502|MOS Technology 6502]]
**[[wikipedia:MOS Technology 6502|MOS Technology 6502]]
Line 34: Line 27:
**[[wikipedia:Source code|Source code]]
**[[wikipedia:Source code|Source code]]
**[[wikipedia:Object file|Object file]]
**[[wikipedia:Object file|Object file]]
**[[wikipedia:Compiler|Compiler]]
**[[wikipedia:Parallel computing|Parallel computing]]
**[[wikipedia:Parallel computing|Parallel computing]]
**[[wikipedia:Thread (computing)|Thread]]
**[[wikipedia:Thread (computing)|Thread]]
Line 42: Line 34:
**[[wikipedia:Interrupt|Interrupt]]
**[[wikipedia:Interrupt|Interrupt]]
**[[wikipedia:Serial Peripheral Interface Bus|Serial Peripheral Interface Bus]] (SPI)
**[[wikipedia:Serial Peripheral Interface Bus|Serial Peripheral Interface Bus]] (SPI)
*[[wikipedia:Digital signal|Digital signal]]
**[[wikipedia:Digital audio|Digital audio]]
**[[wikipedia:Signal generator|Signal generator]]
**[[wikipedia:Delta modulation|Delta modulation]]
**[[wikipedia:Frequency divider#Digital dividers|Digital frequency divider]] (also [[wikia:c:electronicmusic:Pulse divider|on Wikia]])
*[[wikipedia:Raster graphics|Raster graphics]]
*[[wikipedia:Raster graphics|Raster graphics]]
**[[wikipedia:Pixel|Pixel]]
**[[wikipedia:Pixel|Pixel]]
Line 57: Line 44:
**[[wikipedia:Text-based user interface|Text-based user interface]]
**[[wikipedia:Text-based user interface|Text-based user interface]]
**[[wikipedia:ASCII art|ASCII art]]
**[[wikipedia:ASCII art|ASCII art]]
**[[wikipedia:Scrolling|Scrolling]]
**[[wikipedia:Sprite (computer graphics)|Sprite]]
**[[wikipedia:Sprite (computer graphics)|Sprite]]
**[[wikipedia:Display list|Display list]]
**[[wikipedia:Display list|Display list]]
Line 68: Line 54:
**[[wikipedia:Zip (file format)|Zip file]]
**[[wikipedia:Zip (file format)|Zip file]]
**[[wikipedia:Environment variable|Environment variable]]
**[[wikipedia:Environment variable|Environment variable]]
=== More advanced topics ===
It has been suggested that understanding these topics is not necessary to program low-complexity games in assembly language without sound, such as a workalike of Magnavox Odyssey tennis. They are held here for forthcoming sorting into a separate page.
*Games larger than one screen
**[[wikipedia:Scrolling|Scrolling]]
*Audio
**[[wikipedia:Digital signal|Digital signal]]
**[[wikipedia:Digital audio|Digital audio]]
**[[wikipedia:Signal generator|Signal generator]]
**[[wikipedia:Delta modulation|Delta modulation]]
**[[wikipedia:Frequency divider#Digital dividers|Digital frequency divider]] (also [[wikia:c:electronicmusic:Pulse divider|on Wikia]])
*Mapper
**[[wikipedia:Logic gate|Logic gate]]
**[[wikipedia:Linear feedback shift register|Linear feedback shift register]]
**[[wikipedia:Ring counter|Ring counter]]
**[[wikipedia:Bus (computing)|Bus]]
**[[wikipedia:Bank switching|Bank switching]]
**[[wikipedia:Integrated circuit|Integrated circuit]] (IC)
**[[wikipedia:7400 series|7400 series]]
*High-level languages
**[[wikipedia:Compiler|Compiler]]


== Introducing the NES ==
== Introducing the NES ==

Revision as of 00:59, 14 June 2022

Background

A digital computer, such as a PC or NES, is filled with millions of tiny switches that can be turned on or off. Some switches store information for short time; these are called memory. Other switches calculate things based on the output of other switches; these are called logic. Each switch can be on or off, representing true or false, or the numbers 1 or 0. Multiple switches grouped together can represent larger values. A CPU reads machine code from a memory and treats it as instructions to perform arithmetic and logic operations on other values in memory or to perform input and output. Some of the input and output involve user interaction: the user gives commands to the computer, and the computer displays the result.

If you're confused, now is the opportunity to become familiar with the following basic concepts from computer engineering and computer science. These articles from Wikipedia are in English, and many have been translated into other languages.

More advanced topics

It has been suggested that understanding these topics is not necessary to program low-complexity games in assembly language without sound, such as a workalike of Magnavox Odyssey tennis. They are held here for forthcoming sorting into a separate page.

Introducing the NES

The Nintendo Entertainment System has the following components:

  • 2A03 CPU IC made by Ricoh
    • CPU based on the MOS Technology 6502 8-bit microprocessor
    • serial input for game controllers
    • audio output comprising four tone generators and a delta modulation playback device
  • 2 KiB of RAM for use by the CPU
  • 2C02 PPU (picture processing unit)
    • tile-based background image
    • 64 sprites (individually moving objects)
    • 25 colors out of 53
    • 256x240 pixel progressive picture generator
    • NTSC color encoder
  • 2 KiB of RAM for use by the PPU

Cartridges have the following components:

  • 16 KiB or more PRG ROM, for use by the CPU
  • 8 KiB or more CHR ROM or CHR RAM, for use by the PPU (and in some cases by the CPU)
  • (optional) Bank switching hardware for the ROMs
  • (optional) Logic to generate interrupts

External links