Codex Gamicus
Explore
Main Page
Discuss
All Pages
Interactive Maps
navigation
Main page
Community portal
Recent changes
Random page
Admin noticeboard
Forums
Company Index
Character Index
Hardware Index
In-Game Index
Ratings Index
Video Game Index
Fandom
Gamepedia support
Report a bad ad
Help Wiki
Contact us
FANDOM
Fan Central
BETA
Games
Anime
Movies
TV
Video
Wikis
Explore Wikis
Community Central
Start a Wiki
Don't have an account?
Register
Sign In
Sign In
Register
Fandom's centric source of video game knowledge
42,423
pages
Explore
Main Page
Discuss
All Pages
Interactive Maps
navigation
Main page
Community portal
Recent changes
Random page
Admin noticeboard
Forums
Company Index
Character Index
Hardware Index
In-Game Index
Ratings Index
Video Game Index
Fandom
Gamepedia support
Report a bad ad
Help Wiki
Contact us
Editing
Super Nintendo Entertainment System
(section)
Back to page
Edit
VisualEditor
View history
Talk (4)
Edit Page
Super Nintendo Entertainment System
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Technical specifications== The design of the SNES incorporates powerful graphics and sound co-processors that allowed impressive tiling and [[Mode 7]] effects, many times more colors, and audio quality that represented a massive leap over the competition.<ref>{{Cite web |url=http://www.1up.com/do/feature?cId=3143409 |title=PS1 10th Anniversary retrospective |author=Jeremy Parish |publisher=1UP.com|date=2005-09-06|accessdate=2007-05-27}}</ref> Individual game cartridges can supply further custom chips as needed. ===Central processing unit=== {{CPUHardwareSpecs | cpu = Ricoh 5A22, based on a [[16-bit]] 65C816 core | clock_rates_ntsc = 21.47727 MHz | clock_bus_ntsc = 3.58 [[MHz]], 2.68 MHz, or 1.79 MHz | clock_rates_pal = 21.28137 MHz | clock_bus_pal = 3.55 [[MHz]], 2.66 MHz, or 1.77 MHz | bus = [[24-bit]] and [[8-bit]] address buses, 8-bit data bus | features = DMA and HDMA<br>Timed IRQ<br>Parallel I/O processing<br>Hardware multiplication and division }} The [[Central processing unit|CPU]] is a Nintendo-custom [[Ricoh 5A22|5A22]] processor, based on a 16-bit [[WDC 65816|65c816]] core. The CPU employs a variable bus speed depending on the memory region being accessed for each instruction cycle: the input clock is divided by 6, 8, or 12 to obtain the bus clock rate. Non-access cycles, most [[Memory-mapped I/O|register]] accesses, and some general accesses use the divisor of 6. WRAM accesses and other general accesses use the divisor of 8. Only the controller port serial-access registers use the divisor of 12.<ref name="anomie_memmap">{{Cite web |url=http://www.romhacking.net/docs/193/ |title=Anomie's SNES Memory Mapping Doc |accessdate=2009-02-12 |author=anomie |publisher=[http://www.romhacking.net/ Romhacking.net] |format=text }}</ref> The chip has an 8-bit data bus, controlled by two address buses. The 24-bit "Bus A" is used for general accesses, while the 8-bit "Bus B" is used for support chip registers (mainly the video and audio processors).<ref name="anomie_memmap"/> Normally only one bus is used at a time, however the built in [[direct memory access|direct memory access (DMA)]] unit places a read signal on one bus and a write signal on the other to achieve block transfer speeds of up to 2.68 MB/s.<ref group="cn">This quantity uses the standard decimal meaning of [[megabyte]]: 1000000 bytes.</ref><ref name="anomie_regs">{{Cite web |url=http://www.romhacking.net/docs/196/ |title=Anomie's Register Doc |accessdate=2007-04-21 |author=anomie |publisher=[http://www.romhacking.net/ Romhacking.net] |format=text }}</ref> The DMA unit has 8 independent channels, each of which can be used in two modes. General DMA transfers up to 64 kB<ref group="cn" name="binary prefix">Unless otherwise specified, [[kilobyte]] (kB), [[megabyte]] (MB), and [[megabit]] (Mbit) are used in the [[binary prefix|binary sense]] in this article, referring to quantities of 1024 or 1048576.</ref> in one shot, while [[Horizontal blanking interval|H-blank]] DMA (HDMA) transfers 1–4 bytes at the end of each video [[scanline]]. HDMA is typically used to change video parameters to achieve effects such as perspective, split-screen, and non-rectangular windowing without tying up the main CPU.<ref name="anomie_regs"/> The 5A22 also contains an 8-bit parallel I/O port (which was mostly unused in the SNES); controller port interface circuits, including both [[Serial communications|serial]] and [[Parallel communications|parallel]] access to controller data; a 16-bit multiplication and division unit; and circuitry for generating [[non-maskable interrupt]]s on [[Vertical blanking interval|V-blank]] and [[Interrupt request|IRQ]] interrupts on calculated screen positions.<ref name="anomie_regs"/> {{-}} ===Video=== {|class="infobox" style="width:23em;font-size:90%;text-align:left;" |- !colspan="2" style="text-align:center;font-size:larger;background-color:#eeeeee"|Video reference |- |style="background-color:#eeeeee"|'''Resolutions''' |''Progressive:'' 256x224, 512x224, 256x239, 512x239<br>''Interlaced:'' 512x448, 512x478 |- |style="background-color:#eeeeee"|'''Pixel depth''' |2, 4, 7, or 8 [[Color depth|bpp]] indexed; 8 or 11 bpp direct |- |style="background-color:#eeeeee"|'''Total colors''' |32768 (15-bit) |- |style="background-color:#eeeeee"|'''Sprites''' |128, 32 max per line; up to 64x64 pixels |- |style="background-color:#eeeeee"|'''Backgrounds''' |Up to 4 planes; each up to 1024x1024 pixels |- |style="background-color:#eeeeee"|'''Effects''' | * Pixelization (mosaic) per background * Color addition and subtraction * Clipping windows (per background, affecting color, math, or both) * Scrolling per 8x8 tile * Mode 7 matrix operations |} The picture processing unit (PPU) consists of two separate but closely tied IC packages, which may be considered as a single entity. It also contains 64 kB<ref group="cn" name="binary prefix"/> of [[Static random access memory|SRAM]] for storing video data (VRAM), 544 bytes of object attribute memory (OAM) for storing [[Sprite (computer graphics)|sprite]] data, and 512 bytes of color generator RAM (CGRAM) for storing [[Palette (computing)|palette]] data. The PPU is clocked by the same signal as the CPU, and generates a pixel every two or four cycles. Both NTSC and PAL systems use the same PPU chips, with one pin per chip selecting NTSC or PAL operation.<ref name="anomie_regs"/> Images may be output at 256 or 512 pixels horizontal resolution and 224, 239, 448, or 478 pixels vertically. Vertical resolutions of 224 or 239 are usually output in [[progressive scan]], while 448 and 478 resolutions are [[interlace]]d. Colors are chosen from the [[List of monochrome and RGB palettes#15-bit RGB|15-bit RGB color space]], for a total of 32,768 possible colors. Graphics consist of up to 128 sprites and up to 4 background layers, all made up of combinations of 8x8 pixel ''tiles''. Most graphics use palettes stored in CGRAM, with color 0 of any palette representing transparency.<ref name="anomie_regs"/> Sprites can be 8x8, 16x16, 32x32, or 64x64 pixels, each using one of eight 16-color palettes and tiles from one of two blocks of 256 in VRAM. Sprites may be flipped horizontally and vertically as a whole. Up to 32 sprites and 34 8x8 sprite tiles may appear on any one line; exceeding these limits causes excess sprites or tiles to be dropped. Each sprite lies on one of 4 planes, however a lower-numbered sprite will always cover a higher-numbered sprite even if the latter is on a higher priority plane. This quirk is often used for complex clipping effects.<ref name="anomie_regs"/> Background layers in most modes range from 32x32 to 128x128 tiles, with each tile on one of two planes ("foreground" and "background") and using one of 8 palettes. Tiles are taken from a per-layer set of up to 1024 (as VRAM permits) and can be flipped horizontally and vertically. Each layer may be scrolled both horizontally and vertically. The number of background layers and the size of the palettes depends on the mode:<ref name="anomie_regs"/> * '''Mode 0''': 4 layers, all using 4-color palettes. Each BG uses its own section of the SNES palette. * '''Mode 1''': 3 layers, two using 16-color palettes and one using 4-color palettes. * '''Mode 2''': 2 layers, both using 16-color palettes. Each tile can be individually scrolled. * '''Mode 3''': 2 layers, one using the full 256-color palette and one using 16-color palettes. The 256-color layer can also directly specify colors from an 11-bit (RGB443) colorspace. * '''Mode 4''': 2 layers, one using the full 256-color palette and one using 4-color palettes. The 256-color layer can directly specify colors, and each tile can be individually scrolled. * '''Mode 5''': 2 layers, one using 16-color palettes and one using 4-color palettes. Tile decoding is altered to facilitate use of the 512-width and interlaced resolutions. * '''Mode 6''': 1 layer, using 16-color palettes. Tile decoding is as in Mode 5, and each tile can be individually scrolled. * '''Mode 7''': 1 layer of 128x128 tiles from a set of 256, which may be interpreted as a 256-color one-plane layer or a 128-color two-plane layer. The layer may be rotated and scaled using [[matrix transformations]]. HDMA is often used to change the matrix parameters for each scanline to generate perspective effects. Background layers may be individually [[pixelization|pixelized]], and layers and sprites can be individually [[Clipping (computer graphics)|clipped]] and combined by color addition or subtraction to generate more complex effects and greater color depths than can be specified directly.<ref name="anomie_regs"/> The PPU may be instructed to ''latch'' the current pixel position at any time during image output, both by game software and by the device attached to controller port 2. The game software may then read back this latched position. The PPU may also be used for fast 16-bit by 8-bit signed multiplication.<ref name="anomie_regs"/> {{-}} ===Audio=== {|class="infobox" style="width:23em;font-size:90%;text-align:left;" |- !colspan="2" style="text-align:center;font-size:larger;background-color:#eeeeee"|Audio reference |- |style="background-color:#eeeeee"|'''Processors''' |Sony SPC700, Sony DSP |- |style="background-color:#eeeeee"|'''Clock rates''' |''Input:'' 24.576 MHz<br>''SPC700:'' 1.024 MHz |- |style="background-color:#eeeeee"|'''Format''' |16-bit ADPCM, 8 channels |- |style="background-color:#eeeeee"|'''Output''' |32 kHz 16-bit stereo |- |style="background-color:#eeeeee"|'''Effects''' | * ADSR envelope control * Frequency scaling and modulation using Gaussian interpolation * Echo: 8-tap FIR filter, with up to .24s delay * Noise generation |} The audio subsystem consists of an 8-bit [[Sony]] [[SPC700]], a 16-bit [[Digital signal processor|DSP]], 64 kB<ref group="cn" name="binary prefix"/> of [[Static random access memory|SRAM]] shared by the two chips, and a 64 byte [[Boot loader|boot ROM]]. The audio subsystem is almost completely independent from the rest of the system: it is clocked at a nominal 24.576 MHz in both NTSC and PAL systems, and can only communicate with the CPU via 4 registers on Bus B.<ref name="anomie_apudsp">{{Cite web |url=http://www.romhacking.net/docs/191/ |title=Anomie's S-DSP Doc |accessdate=2007-04-21 |author=anomie |publisher=[http://www.romhacking.net/ Romhacking.net] |format=text }}</ref><ref name="anomie_spc700">{{Cite web |url=http://www.romhacking.net/docs/197/ |title=Anomie's SPC700 Doc |accessdate=2007-04-21 |author=anomie |publisher=[http://www.romhacking.net/ Romhacking.net] |format=text }}</ref> RAM is accessed at 3.072 MHz, with accesses [[Time-division multiplexing|multiplexed]] between the SPC700 ({{Frac|1|3}}) and the DSP ({{Frac|2|3}}). This RAM is used to store the SPC700 program and [[Call stack|stack]], the audio sample data and [[Pointer (computing)|pointer]] table, and the DSP's echo buffer.<ref name="anomie_apudsp"/> The SPC700 runs programs (uploaded using the boot ROM program) to accept instructions and data from the CPU and to manipulate the DSP registers to generate the appropriate music and sound effects. The DSP generates a 16-bit waveform at 32& kHz by mixing input from 8 independent voices and an 8-tap [[Finite impulse response|FIR filter]] typically used for [[reverberation]]. Each voice can play its PCM sample at a [[Frequency modulation synthesis|variable rate]], with [[Gaussian interpolation]], [[Panning (audio)|stereo panning]], and [[ADSR envelope|ADSR]], linear, non-linear, or direct volume envelope adjustment. The voice and FIR filter outputs are mixed both for direct output and for future input into the FIR filter. All audio samples are [[ADPCM]] compressed using [[Bit Rate Reduction]].<ref name="anomie_apudsp"/> Hardware on the cartridge, expansion port, or both can provide stereo audio data for mixing into the DSP's analog audio output before it leaves the console.<ref name="anomie_ports"/> Since the audio subsystem is mostly self-contained, the state of the audio subsystem can be saved as an [[SPC700 sound format|.SPC]] file, and the subsystem can be emulated in a stand-alone manner to play back all game music (except for a few games that constantly stream their samples from ROM). Custom cartridges or [[hardware hacking|PC interfaces]] can be used to load .SPC files onto a real SNES SPC700 and DSP. {{-}} ===Onboard RAM=== {|class="infobox" style="width:23em;font-size:90%;text-align:left;" |- !colspan="2" style="text-align:center;font-size:larger;background-color:#eeeeee"|Memory reference |- |style="background-color:#eeeeee"|'''Main RAM''' |128 kB<ref group="cn" name="binary prefix"/> |- |style="background-color:#eeeeee"|'''Video RAM''' |64 kB main RAM<br>512 + 32 bytes sprite RAM<br>256 × 15 bits palette RAM |- |style="background-color:#eeeeee"|'''Audio RAM''' |64 kB |} The console contains 128 kB<ref group="cn" name="binary prefix"/> of [[Dynamic random access memory|DRAM]]. This is mapped to various segments of Bus A, and can also be accessed in a serial fashion via registers on Bus B. The video and audio subsystems contain additional RAM reserved for use by those processors.<ref name="anomie_regs"/> {{-}} ===Regional lockout=== Nintendo employed several types of [[regional lockout]], including both physical and hardware incompatibilities. [[File:SNES Cartridge Comparison bottom.jpg|thumb|A cartridge shape comparison<br>''Top'': Japanese and PAL design<br>''Bottom'': North American design<br><hr />The top image also illustrates the optional pins used by enhancement chips.]] On a physical level, the cartridges are shaped differently for different regions. North American cartridges have a rectangular bottom with inset grooves matching protruding tabs in the console, while other regions' cartridges are narrower with a smooth curve on the front and no grooves. The physical incompatibility can be overcome with use of various adapters, or through [[modding|modification]] of the console.<ref name="SNES-faq">{{Cite web|url= http://www.gamersgraveyard.com/repository/snes/snesfaq.txt |title=Super Nintendo/Famicom F.A.Q.|accessdate=2007-04-14|author= Lou Cassaniti |publisher=Gamers Graveyard|date=1999-03-03}}</ref> Internally, a regional lockout chip (CIC) within the console and in each cartridge prevents PAL region games from being played on Japanese or North American consoles and vice versa. The Japanese and North American machines have the same region chip. The console CIC releases the reset signal to the rest of the system only after completing a handshake with the chip in the cartridge.<ref name="SNES-faq"/> This can be overcome through the use of adapters, typically by inserting the imported cartridge in one slot and a cartridge with the correct region chip in a second slot. Alternatively, disconnecting one pin of the console's lockout chip will prevent it from locking the console; hardware in later games can detect this situation, so it later became common to install a switch to reconnect the lockout chip as needed.<ref>{{Cite web|url= http://home.freeuk.com/markk/Consoles/SNES_Lockout.txt |title=Disabling the Super NES/Super Famicom "Lockout Chip"|accessdate= 2007-04-14 |author=Mark Knibbs|date=1997-12-27}}</ref> PAL consoles face another incompatibility when playing out-of-region cartridges: the [[NTSC|NTSC video standard]] specifies video at 60 [[Hz]] while [[PAL]] operates at 50 Hz, resulting in approximately 16.7% slower gameplay. Additionally, PAL's higher resolution results in [[letterbox]]ing of the output image. Some commercial PAL region releases exhibit this same problem and therefore can be played in NTSC systems without issue, while others will face a 20% speedup if played in an NTSC console. To mostly correct this issue, a switch can be added to place the SNES PPU into a 60 Hz mode supported by most newer PAL televisions. Later games will detect this setting and refuse to run, requiring the switch to be thrown only after the check is completed by the console.<ref name="SNES-pal-switch">{{Cite web |url=http://home.freeuk.net/markk/Consoles/SNES_50-60Hz_Switch.txt |title=Super NES/Super Famicom 50/60Hz Switch Modification |accessdate=2007-04-14 |author=Mark Knibbs|date=1998-01-25}}</ref> {{-}} All versions of the SNES are predominantly grey, although the exact shade may differ. The original North American version has a boxy design with purple sliding switches and a dark grey eject lever. The Japanese and European versions are more rounded, with darker grey accents and buttons. The North American [[SNS-101]] model and the Japanese Super Famicom Jr. (the [[SHVC-101]] model) are both smaller with a rounded contour, however the SNS-101 buttons are purple where the Super Famicom Jr. buttons are grey. All versions incorporate a top-loading slot for game cartridges, although the shape of the slot differs between regions to match the different shapes of the cartridges. The card-edge connector has 62 pads, however many cartridges only connect to the middle 46. All versions also incorporate two 7-pin controller ports on the front of the unit, and a plug for a power supply and a Nintendo-proprietary "MULTI OUT" A/V connector on the back.<ref name="anomie_ports">{{Cite web |url=http://www.romhacking.net/docs/195/ |title=Anomie's SNES Port Doc |accessdate=2007-07-13 |author=anomie |publisher=[http://www.romhacking.net/ Romhacking.net] |format=text }}</ref> The MULTI OUT connector (later used on the [[Nintendo 64]] and [[Nintendo GameCube|GameCube]]) can output [[composite video]], [[S-Video]] and [[RGB#Video electronics|RGB]] signals, as well as [[RF connector|RF]] with an external [[RF modulator]].<ref name="SNES-faq"/> Original versions additionally include a 28-pin expansion port under a small cover on the bottom of the unit<ref name="anomie_ports"/> and a standard RF output with channel selection switch on the back;<ref>{{Cite web|url=http://www.nintendo.com/consumer/systems/supernes/hook_rftotv_sns.jsp|title=Nintendo Support: Original-Style Super NES RF to TV Hookup|accessdate=2010-02-28|publisher=Nintendo}}</ref> the redesigned models output composite video only, requiring an external modulator for RF.<ref>{{Cite web|url=http://www.nintendo.com/consumer/systems/supernes/hook_rftotv_snn.jsp|title=Nintendo Support: New-Style Super NES RF to TV Hookup|accessdate=2010-06-30|publisher=Nintendo}}</ref> The [[Acrylonitrile butadiene styrene|ABS plastic]] used in the casing of some older SNES consoles is particularly susceptible to oxidization on exposure to air, likely due to an incorrect mixture of the stabilizing or flame retarding additives. This, along with the particularly light color of the original plastic, causes affected consoles to quickly become yellow; if the sections of the casing came from different batches of plastic, a "two-tone" effect results.<ref>{{Cite web |first=Benj |last=Edwards |title=Why Super Nintendos Lose Their Color: Plastic Discoloration in Classic Machines |url=http://www.vintagecomputing.com/index.php/archives/189 |publisher=Vintagecomputing.com |date=2007-01-12 |accessdate=2009-08-19}}</ref> {{-}} ===Game cartridge=== The cartridge media of the console is officially referred to as [[Game Pak]] in Western regions,<ref>{{Cite web |url=http://www.nintendo.com/consumer/systems/general/trouble_game.jsp |title=Game Pak Troubleshooting |work=Customer Service |publisher=Nintendo of America, Inc. |accessdate=2010-08-23}}</ref> and as {{Nihongo|Cassette|カセット|Kasetto}} in Japan.<ref>{{Cite manual |title=ゼルダの伝説 神々のトライフォース 取扱説明書 |publisher=Nintendo Co., Ltd. |date=1991-11-21 |page=1}}</ref> While the SNES can address 128 Mbit,<ref group="cn" name="binary prefix"/> only 117.75 Mbit are actually available for cartridge use. A fairly normal mapping could easily address up to 95 Mbit of ROM data (48 Mbit at FastROM speed) with 8 Mbit of battery-backed RAM.<ref name="anomie_memmap"/> However, most available memory access controllers only support mappings of up to 32 Mbit. The largest games released (''[[Tales of Phantasia]]'' and ''[[Star Ocean]]'') contain 48 Mbit of ROM data,<ref>{{Cite journal |last=Ogasawara |first=Nob |year=1995 |month=November |title=Future Fantasies from overseas |journal=GamePro |volume=7 |issue=11 |page=126 |publisher=Infotainment World |location=San Mateo, CA |issn=1042-8658}}</ref><ref>{{Cite journal |year=1996 |month=July |title=Star Ocean |journal=Nintendo Power |issue=86 |pages=60–61 |publisher=Nintendo of America |location=Redmond, WA |issn=1041-9551}}</ref> while the smallest games contain only 2 Mbit. Cartridges may also contain battery-backed SRAM to save the game state, extra working RAM, custom co-processors, or any other hardware that will not exceed the maximum current rating of the console.
Summary:
Please note that all contributions to the Codex Gamicus are considered to be released under the CC BY-SA 3.0
Cancel
Editing help
(opens in new window)
Follow on IG
TikTok
Join Fan Lab