Difference between revisions of "Sega Master System/Hardware comparison"

From Sega Retro

m (→‎Vs. NES: moved)
 
(278 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
{{otherPage|desc=technical details on the Sega Master System|page=Sega Master System/Technical specifications}}
 
{{otherPage|desc=technical details on the Sega Master System|page=Sega Master System/Technical specifications}}
 +
{{rewrite}}
 +
{{cleanup}}
 +
This article presents a hardware comparison between the [[Sega Master System]] (SMS) and other rival systems in its time, most notably the [[NES]]. The article compares the technical specifications and hardware advantages/disadvantages between the systems.
  
This article presents a hardware comparison between the [[Sega Master System]] and other rival systems in its time, most notably the [[NES]]. It compares the technical specifications and hardware advantages/disadvantages between the systems.
+
==Vs. Game Gear==
 +
As was tradition with Sega consoles at the time, the handheld [[Sega Game Gear]] is backwards compatible with the Master System and can run Master System carts through an adapter. The most noticeable hardware difference is the VDP's color palette allows selecting 32 out of 4,096 possible colors (12-bit). The Master System VDP has the same number of active colors, but can only select out of 64 colors (6-bit). Due to the higher color depth, the Game Gear has twice as much color RAM, and it doesn't use the same format as the Master System. As such, if you attempt to run a Game Gear game on a Master System, it will run, but the colors will be incorrect.
 +
 
 +
The Game Gear's display is also lower resolution than the Master System: 160x144 compared to 256x192. For Game Gear games, the 160x144 is a window within the 256x192 SMS display. When using the Master Gear adapter, the 256x192 SMS display is shrunken to fit, which can result in image artifacting.
 +
 
 +
Finally, the Game Gear has a Start button, and it also has an extra register for PSG stereo. The Start button is technically a separate register, not part of the controller, which prevents Game Gear games from being run on Master System without modifications.
 +
 
 +
==Vs. 8-Bit Consoles==
 +
===Vs. NES===
 +
The Master System is generally a more powerful console than its main rival, the [[Nintendo Entertainment System]] (NES), also known as the [[Famicom]] in [https://gamicus.gamepedia.com/Japan Japan]. The NES has an 8-bit memory architecture, with its [[Ricoh]] [[wikipedia:Ricoh 2A03|2A03]] CPU (an adaptation of the MOS 6502 with additional features) and [[wikipedia:Picture Processing Unit|Ricoh PPU]] graphics processor each having an 8-bit data bus. In comparison, the Master System has a hybrid 8/16-bit memory architecture, with its [[NEC]] [[Z80|780C]] CPU (essentially a second-sourced [[Zilog]] [[Z80]]) having an 8-bit data bus and its [[Sega]] [[VDP]] graphics processor having a 16-bit graphics data bus.{{intref|Sega Master System/Technical specifications}}{{fileref|SMSServiceManualEU.pdf}}{{fileref|SMS2ServiceManualEU.pdf}} This makes the Master System's hybrid 8/16-bit memory architecture comparable to the PC-Engine/TurboGrafx-16, which similarly has an 8-bit CPU bus and 16-bit graphics data bus ([[#Vs. PC Engine|see below]]). In addition, the Z80 supports both 8-bit and 16-bit registers,{{ref|[https://drolez.com/retro/ Obsolete Microprocessors]}} whereas the 2A03 only supports 8-bit registers. However, the Z80 and 2A03/6502 both have 4-bit ALUs (arithmetic logic units).{{ref|[http://www.righto.com/2013/09/the-z-80-has-4-bit-alu-heres-how-it.html The Z-80 has a 4-bit ALU. Here's how it works.]}}
 +
 
 +
The Master System's Z80 CPU has approximately twice the clock rate (MHz) of the NES's 2A03 CPU, but this does not necessarily mean twice the performance. The 2A03 requires less cycles per instruction, thus it can actually output slightly more instructions per second (MIPS) than the Z80. However, comparing the MIPS of both CPUs would be just as misleading as comparing their MHz. The Z80 has a more powerful hybrid 8/16-bit instruction set, so it requires fewer instructions to perform similar tasks. The performance of each CPU varies depending on the tasks. For accessing memory, the 2A03 is faster in that regard, but the Z80 doesn't need to access the memory as much since it requires fewer instructions to perform similar tasks. Where the Z80 has a clear performance advantage is the arithmetic. While the Z80 only has a single 4-bit ALU, compared to the 2A03's dual 4-bit ALU, the Z80 has native support for 16-bit arithmetic and is faster for most arithmetic operations. Both CPUs have similar performance when it comes to the addition and subtraction of smaller 8-bit numbers (up to 256), but the Z80 has a clear performance advantage for most other arithmetic operations, including the addition and subtraction of larger 16-bit numbers (up to 65,536) due to the Z80's native 16-bit support, as well as faster multiplications and divisions in general (for both 8-bit and 16-bit numbers). The faster arithmetic of the Z80 gives it an overall performance advantage over the 2A03.
 +
 
 +
The Master System's VDP has a 16-bit data bus,{{intref|Sega Master System/Technical specifications}}{{fileref|SMSServiceManualEU.pdf}}{{fileref|SMS2ServiceManualEU.pdf}} compared to the NES's PPU which has an 8-bit data bus, thus the Master System has a higher memory [[Byte|bandwidth]] than the NES. The SMS VDP's wider 16-bit data bus allows it to access 16-bit data in a single cycle, whereas the NES PPU can only access 8-bit data in a single cycle, giving the SMS VDP a faster data transfer speed. The higher bandwidth allows the SMS to access and transfer more graphics data. The VDP is essentially a hybrid 8/16-bit graphics processor, as it receives instructions from the Z80 via an 8-bit port while the VDP accesses graphics data from the [[VRAM]] via a 16-bit data bus.
  
==Vs. Game Gear==
+
The Master System displays 32 colors on screen, compared to the Nintendo's 25 colors on screen. The Master System also displays 16 colors (15 colors plus transparency) per tile and 16 colors per [[sprite]], like the 16-bit [[Mega Drive]] and [[SNES]], compared to 4 colors (3 colors plus transparency) per tile and 4 colors per sprite for the NES. It is technically possible on the NES to overlay sprites to display 6-color sprites (5 colors plus transparency), but that would require using two sprites to simulate a single 6-color sprite,{{ref|1=[http://forums.nesdev.com/viewtopic.php?t=5851 More than 3 colors in a sprite]}} which could potentially cause flickering as there is a limit of 8 sprites per scanline. However, because the SMS uses 4-bit (16-color) tiles and the NES uses 2-bit (4-color) tiles, this means SMS tiles typically require twice as much [[cartridge]] space, which was an issue with smaller cartridges early on but was no longer an issue with larger cartridges later on.
As was tradition with Sega consoles at the time, the handheld [[Sega Game Gear]] is backwards compatible with the Master System and can run Master System carts through an adapter. The only hardware difference known between the two on a chip level is that the Game Gear can define 4096 possible colors, while the Master System can only define 64 colors. As the GG has more colors, it has a different method of setting each of the color registers than the SMS did; the SMS color can be determined by one byte and hence only needed one register, whereas a number from 0 to 4095 needs two bytes, and so the GG VDP has two color registers. Game Gear games which use the expanded graphics mode will run on an Master System, but with scrambled colors.
+
 
 +
The NES can flip sprites but not background tiles, whereas the SMS can flip background tiles (BG tiles) but not sprites. Both features save memory and bandwidth in different ways. Out of the two flipping features, the Master System's BG tile flipping saves considerably more memory and bandwidth, as the number of BG tiles on a screen significantly outnumbers the number of sprites on a screen. This allows the Master System to have more detailed and animated backgrounds, with some games even making use of BG tile flipping to render software sprites, or a bitmap, using the BG tiles (such as ''[[Golden Axe]]'', ''[[Phantasy Star]]'', ''[[Space Harrier]]'', ''[[Altered Beast]]'', ''[[Road Rash]]'' and ''[[Mortal Kombat (8-bit)|Mortal Kombat]]''). On the other hand, the Nintendo's sprite flipping can save more bandwidth for the sprites. However, the SMS already has more memory bandwidth, and with its BG tile flipping feature saving bandwidth on the more intensive background, that can allow the SMS to use more tiles for the sprites. But an advantage of the Nintendo's sprite flipping is that it's easier and more convenient to program sprites. However, it is technically possible to flip sprites on the SMS using CPU software routines, which would require a 256-byte table in the [[RAM]]. A number of SMS games use software routines for sprite flipping.
 +
 
 +
The Master System hardware supports IRQ interrupts, diagonal scrolling, and line scrolling, the latter allowing a simulated [[wikipedia:Parallax scrolling|parallax scrolling]] effect. The NES lacks these features in its hardware, but the NES had enhancement chips which could add IRQ interrupt, diagonal scrolling and/or line scrolling capabilities.
 +
 
 +
A hardware feature that the NES has (as well as the Atari 7800) which the SMS hardware lacks is DMA (direct memory access), which allows data transfers between different parts of the memory architecture. The NES (like the 7800) relies on DMA to transfer sprite display lists between the GPU cache and the RAM. However, the SMS doesn't need to use DMA for such a task, as the SMS accesses sprite display information directly from its [[VRAM]], which has a higher bandwidth, bypassing the need for DMA to access a sprite display list. Both of their 16-bit successors, the [[Mega Drive]] and [[SNES]], have DMA controllers which make more extensive use of DMA, particularly the Mega Drive which has faster DMA bandwidth.
 +
 
 +
A clear advantage of the NES its its [[Ricoh]] sound chip, which is more advanced than the [[SN76489|PSG]] in Western Master System hardware, but not quite as advanced as the [[Yamaha]] FM synthesis chip in Japanese Master System hardware. The NES had enhancement chips that could add FM synthesis capabilities, which only the Japanese Master System was capable of. However, FM enhancement chips of the NES were also limited to the Famicom in Japan.
 +
 
 +
===Vs. 7800===
 +
The Master System is also a more powerful system than the [[Atari]] 7800. Its CPU, the MOS 6502, is nearly identical to the 6502-based 2A03 CPU of the NES, except the 2A03 has a few additional features. The SMS has most of the same advantages over the 7800 CPU as it does over the NES CPU, for the same reasons ([[#Vs. NES|see above]]). However, the performance of the 7800's CPU is negatively impacted by its memory architecture. Both the NES and SMS have separate data buses for the CPU and graphics processor, with a combined system data bus width of 16-bit for the NES (8-bit CPU bus and 8-bit PPU bus) and 24-bit for the SMS (8-bit CPU bus and 16-bit VDP bus). In comparison, the 7800 only has a single 8-bit data bus, which is shared by both its CPU and MARIA graphics chip. This means the 7800 has a smaller bus width and thus a lower memory bandwidth than both the NES and SMS. This negatively affects the performance of both the CPU and MARIA, as the CPU has to be halted whenever MARIA accesses the bus, since only one of the two processors can access the memory at any one time. The 7800's CPU thus cannot perform as well as either the SMS or NES CPUs, due to the 7800's CPU being routinely halted by the MARIA.
 +
 
 +
Both the NES and SMS use tile-based graphics compression, where the graphics are rendered tile-by-tile, rather than pixel-by-pixel. They have two planes, a background (BG) tilemap plane below and hardware sprites on top, each referencing and recycling sets of tiles. In comparison, the 7800 uses uncompressed bitmap rendering, where the graphics are rendered pixel-by-pixel and line-by-line. As the 7800 doesn't have enough RAM for a framebuffer, it renders graphics by "zones" which typically refers to a set of 4-16 scanlines. The 7800 does not have hardware sprites or a BG tilemap plane, but can use software rendering routines accelerated by its MARIA graphics chip to draw software sprites and tiles, but this can strain the MARIA which has to draw them pixel-by-pixel and line-by-line. The tile-based compression of the NES and SMS allows much more efficient usage of resources, including a significant reduction in processing, memory and bandwidth requirements for rendering graphics.
  
Another hardware difference is [[resolution]]. The Game Gear has a lower resolution compared to the Master System.
+
The lack of tile compression, combined with the lack of bandwidth, means that the 7800 cannot push as much graphics data as the NES or SMS. The 7800 also lacks smooth per-pixel hardware scrolling, but supports coarse scrolling, which scrolls in 8-pixel increments (though smooth scrolling is possible on the 7800, with intensive software routines).
  
The lack of a "Start" button on a Master System also prevents many Game Gear games from being played without minor changes, however in many cases Game Gear titles are identical to their Master System counterparts, resolution included, meaning it was very common to see both Master System and Game Gear releases of games in regions such as Europe.
+
On the other hand, the 7800's bitmap rendering is more flexible in some ways. While its ability to render large, detailed, scrolling backgrounds is inferior to the NES and especially the SMS, the 7800 can push a large amount of software sprites for games that have no backgrounds, such as ''Robotron''. However, such games without backgrounds became rare in the NES/SMS era, where games with full scrolling backgrounds became the norm. The SMS's ability to flip background tiles also allows it to essentially manipulate background tiles as if they are sprites, or manipulate its tilemap background as if it was a bitmap, thus the SMS could technically also push a large amount of software sprites in a similar manner in addition to having a full background (as seen in SMS titles such as ''[[Golden Axe]]'', ''[[Altered Beast]]'' and ''[[Mortal Kombat]]''). The 7800's bitmap rendering is also easier to program pseudo-3D graphics, though pseudo-3D is also possible on the NES and SMS using forms of tiled rendering or scanline rendering (as seen in SMS titles such as ''[[Phantasy Star]]'', ''[[Space Harrier]]'' and ''[[Road Rash]]'').
  
==Vs. NES==
+
An advantage of the 7800 is that it has access to a larger selectable color palette. While this allows more shades, its overall palette is darker and more muted compared to the NES and SMS, both of which have brighter palettes with more contrast and luminance.{{ref|[https://sites.google.com/site/atari7800wiki/7800-compared-to-the-nes 7800 compared to the NES]}} The number of colors the 7800 can practically display on each scanline is also more limited than the NES and SMS, as the 7800 is limited to 12 colors per "zone" (4-16 scanlines), whereas the NES and SMS can display up to 25 colors and 32 colors per scanline, respectively.{{ref|[https://atariage.com/forums/topic/119653-can-an-nes-game-be-made-into-a-7800-version/ Can an NES game be made into a 7800 version?]}} The 7800 also displays less colors on screen than the SMS, as well as less colors per tile. The 7800 also has a hi-res mode that displays a higher resolution than the NES and SMS resolutions, but the 7800's hi-res mode was rarely used by games as it displays significantly less colors on screen, and the MARIA did not have enough processing power to render a full background in this mode.
Its main rival, the [[NES]], is an entirely 8-bit console, with an 8-bit [[Ricoh]] [[wikipedia:Ricoh 2A03|2A03]] (6502) CPU and 8-bit [[wikipedia:Picture Processing Unit|Ricoh PPU]] graphics processor, each with an 8-bit data bus. In comparison, the Master System's [[NEC]] [[Z80|780C]] (Z80) CPU has a hybrid 8/16-bit design, supporting both 8-bit and 16-bit instructions and with an 8-bit data bus, while its [[Sega]] [[VDP]] graphics processor has a 16-bit data bus.
 
  
The Master System's 780C CPU has approximately twice the clock rate (MHz) of the NES's 2A03 CPU, but this does not necessarily mean twice the performance. The 2A03 requires less cycles per instruction, thus it can actually output slightly more instructions per second (MIPS) than the 780C. However, comparing the MIPS of both CPUs would be just as misleading as comparing their MHz. The 780C has a more powerful hybrid 8/16-bit instruction set, so it requires fewer instructions to perform similar tasks. The performance of each varies depending on the tasks. For reading or writing to memory, the 2A03 has a performance advantage, but the 780C doesn't need to access the memory as much since it requires fewer instructions to perform similar tasks. Where the 780C has a significant performance advantage is the arithmetic. While both CPUs have similar performance when it comes to 8-bit additions and subtractions, the 780C has a significant performance advantage for most other arithmetic, including multiplications, divisions, and 16-bit operations. The faster arithmetic thus gives the 780C an overall performance advantage over the 2A03.
+
==Vs. PC Engine==
 +
The Master System has a similar 8/16-bit hybrid design as the [[NEC]] [https://necretro.org/PC_Engine PC Engine] ([https://necretro.org/TurboGrafx-16 TurboGrafx-16]). The Master System has an 8/16-bit [[NEC]] [[Z80|780C]] ([[Zilog]] [[Z80]]) CPU, supporting both 8-bit and 16-bit instructions and with an 8-bit data bus, compared to the PC Engine which has an entirely 8-bit CPU. The Master System's [[Sega]] [[VDP]] graphics processor has a 16-bit data bus, while the PC-Engine has a dual-GPU setup sharing a 16-bit data bus. The Master System is thus no less of a "16-bit" system than the TurboGrafx-16. Nevertheless, the PC Engine is a more powerful system than the Master System, and can be considered a next-generation system, even if both systems have a similar number of "bits".
  
The Master System's VDP has has 16-bit data bus, compared to the NES's PPU which has an 8-bit data bus, thus the Master System has a higher memory bandwidth than the NES. The Master System displays 16 colors per tile and 16 colors per [[sprite]], like the Mega Drive, compared to 4 colors per tile and 4 colors per sprite for the NES. The Master System displays 32 colors on screen, compared to the Nintendo's 25 colors on screen. The Master System also supports diagonal scrolling as well as line scrolling, allowing it to simulate [[wikipedia:Parallax scrolling|parallax scrolling]]. The Master System is thus a more powerful console than the NES. On the other hand, the NES had a [[Ricoh]] sound chip that was more advanced than the [[SN76489|PSG]] in Western Master System hardware, but not as advanced as the [[Yamaha]] FM synthesis chip in Japanese Master System hardware. The NES was also capable of enhancement chips, some of which added diagonal scrolling, line scrolling and FM synthesis capabilities, but the Master System nevertheless remained the more powerful console.
+
==Vs. Home Computers==
 +
===Vs. C64 and ZX===
 +
The Master System's main rivals in Europe were the 8-bit home computers, the [[ZX Spectrum]] and [[Commodore 64]] (C64). Despite the rivalry, however, Sega supported these platforms as a third-party licensor of arcade ports. The Master System was the most powerful 8-bit home system released outside of Japan during the 1980s (Japan had the [[Fujitsu]] FM-77 AV and [[NEC]] [https://necretro.org/PC-88_VA PC-88 VA] computers), surpassing the NES, ZX, and C64, while at the same time the SMS had a lower price point than the ZX and C64.
  
==Vs. 7800==
+
===Vs. Amiga===
 +
The [[Amiga|Commodore Amiga 500]] (A500) released just a month after the Master System's European release in 1987. However, they were generally not in direct competition, as the Amiga was significantly more expensive than the Master System. The Amiga's direct competitor would later be the [[Sega Mega Drive]]. The Master System was instead competing with the 8-bit home computers, particularly the ZX and C64, though the Master System's hardware capabilities were closer to the Amiga than to the ZX or C64.
  
==Vs. C64 and ZX==
+
Compared to the 16-bit [[Amiga|Amiga 500]], the A500 was generally more powerful overall, with a more powerful 16-bit [[68000]] CPU, higher resolution, larger color palette, larger sprites, faster blitting, and superior audio capabilities (like the Mega Drive released a year later). However, the Master System did have several advantages, with its VDP graphics chip supporting more hardware sprites, superior hardware tile capabilities, and smoother scrolling. Its [[wikipedia:Tile-based video games|tilemap]] backgrounds require up to 64 times less processing, memory and bandwidth than the A500's [[wikipedia:Bitmap|bitmap]] backgrounds,{{ref|1=[http://books.google.co.uk/books?id=oK3D4i5ldKgC&pg=PA173 ''Before the Crash: Early Video Game History'', page 173]}} allowing the Master System to produce smoother scrolling and animations. The Master System displays 32 hardware sprites on screen, compared to the A500's 8 hardware sprites (though blitting allows the A500 to exceed this limit). The Master System displays 32 colors on screen and 16 colors per sprite, while for the A500, colors range from 2 to 32 on screen and it displays 2 to 4 colors per sprite. The A500's parallax scrolling reduces performance and colors, while the Master System's line scrolling simulates parallax scrolling without affecting performance or colors.
The Master System's main rivals in Europe were the home computers [[ZX Spectrum]], [[Commodore 64]] (C64), and [[Amiga|Commodore Amiga 500]] (A500), the latter releasing a month after the Master System's European release in 1987; though, despite the rivalry, Sega supported these platforms as a third-party licensor of arcade ports. The Master System was the most powerful 8-bit home system, surpassing the NES, ZX, and C64, while at the same time the SMS had a lower price point than the ZX and C64.
 
  
==Vs. Amiga==
+
However, it is worth noting that most of the built-in hardware features of the SMS graphics chip mentioned above can be achieved on the Amiga with software rendering, using its 68000 CPU along with its blitter. A clear advantage the Master System does have, however, it that its cartridges load faster than the Amiga's floppy disks. Nevertheless, the A500 was more advanced overall, but the Master System hardware was strong enough to remain competitive at a significantly lower price point, up until the release of the more advanced Mega Drive (see ''[[Sega Mega Drive/Hardware comparison]]'' for a technical comparison between the Mega Drive and Amiga).
Compared to the 16-bit [[Amiga|Amiga 500]], the A500 was generally more powerful overall, with a more powerful 16-bit [[68000]] CPU, higher resolution, larger color palette, larger sprites, faster blitting, and superior audio capabilities (like the Mega Drive released a year later). However, the Master had several advantages, including more hardware sprite, superior tile capabilities, and smoother scrolling. Its [[wikipedia:Tile-based video games|tilemap]] backgrounds require up to 64 times less processing, memory and bandwidth than the A500's [[wikipedia:Bitmap|bitmap]] backgrounds,{{ref|1=[http://books.google.co.uk/books?id=oK3D4i5ldKgC&pg=PA173 ''Before the Crash: Early Video Game History'', page 173]}} allowing the Master System to produce smoother scrolling and animations. The Master System displays 32 hardware sprites on screen, compared to the A500's 8 hardware sprites (though blitting allows the A500 to exceed this limit). The Master System displays 32 colors on screen and 16 colors per sprite, while for the A500, colors range from 2 to 32 on screen and it displays 2 to 4 colors per sprite. The A500's parallax scrolling reduces performance and colors, while the Master System's line scrolling simulates parallax scrolling without affecting performance or colors. The Master System's cartridges also have faster loading than the Amiga's floppy disks. While the A500 was still more advanced overall, the Master System hardware was strong enough to remain competitive at a significantly lower price point, up until the release of the more advanced Mega Drive.
 
  
==Comparison table==
+
==Comparison Tables==
{| class="wikitable" style="width: 950px;"
+
{| class="wikitable"
 
|-
 
|-
 
! colspan=2 | Console
 
! colspan=2 | Console
! [[Sega Master System]]{{intref|Sega Master System/Technical specifications}}
+
! [[Sega Master System]] (SMS){{intref|Sega Master System/Technical specifications}}
! [[Nintendo Entertainment System]]{{ref|[https://problemkaputt.de/everynes.htm NES hardware specifications]}}{{ref|[http://www.gamepilgrimage.com/content/sega-master-system-vs-nintendo-entertainment-system Sega Master System vs Nintendo Entertainment System]}}{{ref|[https://console5.com/wiki/Nintendo_NES-001 Nintendo NES-001]}}
+
! [[Nintendo Entertainment System]] (NES){{ref|[https://problemkaputt.de/everynes.htm NES hardware specifications]}}{{ref|[http://www.gamepilgrimage.com/content/sega-master-system-vs-nintendo-entertainment-system Sega Master System vs Nintendo Entertainment System]}}{{ref|[https://console5.com/wiki/Nintendo_NES-001 Nintendo NES-001]}}{{ref|[https://wiki.nesdev.com/w/index.php/Cycle_reference_chart Cycle reference chart]}}{{ref|1=[http://forums.nesdev.com/viewtopic.php?f=10&t=17693 Screen flashes garbage chars when I update background tiles]}}
 +
! [[Atari]] 7800{{ref|[https://liberator.atariage.com/forums/topic/224025-7800-hardware-facts/ 7800 hardware facts]}}{{ref|[https://sites.google.com/site/atari7800wiki Atari 7800 Progamming]}}{{ref|[http://www.atarimuseum.com/ahs_archives/archives/archives-techdocs-7800.htm Video Game Systems: Atari 7800]}}
 
|-
 
|-
! rowspan=2 | System master clock rate
+
! rowspan=2 | System master <br> clock rate
! NTSC
+
! [[NTSC]]
 
| 53.693175 MHz
 
| 53.693175 MHz
 
| 21.47727 MHz
 
| 21.47727 MHz
 +
| 14.31818 MHz
 
|-
 
|-
! PAL
+
! [[PAL]]
 
| 53.203424 MHz
 
| 53.203424 MHz
 
| 26.6017125 MHz
 
| 26.6017125 MHz
 +
| 14.187576 MHz
 
|-
 
|-
! colspan=2 | CPU
+
! colspan=2 | System [[wikipedia:Memory bus|data bus]] width
 +
| 24-bit (8-bit CPU bus, 16-bit [[VDP]] bus)
 +
| 16-bit (8-bit CPU bus, 8-bit PPU bus)
 +
| 8-bit (shared by CPU and MARIA)
 +
|-
 +
! colspan=2 | Central processing unit (CPU)
 
! [[NEC]] [[Z80|780C]] ([[Zilog]] [[Z80]])
 
! [[NEC]] [[Z80|780C]] ([[Zilog]] [[Z80]])
! [[Ricoh]] 2A03 ([[wikipedia:MOS Technology 6502|MOS 6502]])
+
! [[Ricoh]] 2A03 (based on MOS 6502)
 +
! [[wikipedia:MOS Technology 6502|MOS 6502]]
 
|-
 
|-
 
! rowspan=2 | Clock rate
 
! rowspan=2 | Clock rate
Line 49: Line 87:
 
| 3.579545 MHz
 
| 3.579545 MHz
 
| 1.789773 MHz
 
| 1.789773 MHz
 +
| 1.789773 MHz (inactive display), <br> 868,820 Hz (active display){{ref|6502 loses at least 920,953 Hz from MARIA stealing cycles during visible active display{{ref|[http://7800.8bitdev.org/index.php/7800_Software_Guide 7800 Software Guide]}}|group=n}}
 
|-
 
|-
 
! PAL
 
! PAL
 
| 3.546894 MHz
 
| 3.546894 MHz
 
| 1.662607 MHz
 
| 1.662607 MHz
 +
| 1.773447 MHz (inactive display), <br> 806,988 Hz (active display){{ref|6502 loses at least 966,459 Hz from MARIA stealing cycles during visible active display{{ref|[http://7800.8bitdev.org/index.php/7800_Software_Guide 7800 Software Guide]}}|group=n}}
 +
|-
 +
! colspan=2 | Data bus width
 +
| 8-bit (dedicated)
 +
| 8-bit (dedicated)
 +
| 8-bit (shared with MARIA)
 
|-
 
|-
! colspan="2" | Bus width
+
! colspan=2 | Word length
| 8-bit
 
 
| 8-bit
 
| 8-bit
|-
 
! colspan="2" | Word length
 
 
| 8-bit
 
| 8-bit
 
| 8-bit
 
| 8-bit
 
|-
 
|-
 
! rowspan=2 | Instructions
 
! rowspan=2 | Instructions
! [[wikipedia:Instruction set|Instruction set]]
+
! [[wikipedia:Instruction set|Instruction set]] (registers)
| 8-bit, 16-bit
+
| 8-bit, 16-bit{{ref|[https://drolez.com/retro/ Obsolete Microprocessors]}}
 +
| 8-bit
 
| 8-bit
 
| 8-bit
 
|-
 
|-
 
! [[wikipedia:Instructions per second|Instructions per second]]
 
! [[wikipedia:Instructions per second|Instructions per second]]
| 0.52 [[wikipedia:Instructions per second|MIPS]] (8/16-bit instructions)
+
| 0.52 [[wikipedia:Instructions per second|MIPS]] (8-bit and 16-bit instructions)
 
| 0.7 MIPS (8-bit instructions){{ref|[https://drolez.com/retro/ Obsolete Microprocessors]}}
 
| 0.7 MIPS (8-bit instructions){{ref|[https://drolez.com/retro/ Obsolete Microprocessors]}}
 +
| Inactive display: 0.7 MIPS (8-bit instructions) <br> Active display: 0.37 MIPS (8-bit instructions){{ref|[https://drolez.com/retro/ Obsolete Microprocessors]}}
 
|-
 
|-
! rowspan=3 | Main RAM
+
! rowspan=2 | Arithmetic logic unit(s)
! Memory
+
! ALU(s)
| 8 KB ([[SRAM|XRAM/SRAM]], 8-bit)
+
| 4-bit ALU{{ref|[http://www.righto.com/2013/09/the-z-80-has-4-bit-alu-heres-how-it.html The Z-80 has a 4-bit ALU. Here's how it works.]}}
| 2 KB ([[SRAM]], 8-bit)
+
| 2× 4-bit ALU{{ref|[http://www.righto.com/2013/09/the-z-80-has-4-bit-alu-heres-how-it.html The Z-80 has a 4-bit ALU. Here's how it works.]}}
 +
| 2× 4-bit ALU{{ref|[http://www.righto.com/2013/09/the-z-80-has-4-bit-alu-heres-how-it.html The Z-80 has a 4-bit ALU. Here's how it works.]}}
 
|-
 
|-
! Bandwidth
+
! Arithmetic values
| 3.579545 MB/s (NTSC), <br> 3.546894 MB/s (PAL)
+
| 8-bit, 16-bit{{ref|[http://www.smspower.org/Development/InstructionSet Instruction Set]}}
| 1.789773 MB/s (NTSC), <br> 1.662607 MB/s (PAL)
+
| 8-bit{{ref|[https://www.masswerk.at/6502/6502_instruction_set.html 6502 Instruction Set]}}
|-
+
| 8-bit{{ref|[https://www.masswerk.at/6502/6502_instruction_set.html 6502 Instruction Set]}}
! CPU read/write
 
| 1.2 MB/s{{ref|3 cycles per byte{{fileref|Zilog Z80 Programmer's Reference Manual.pdf|page=33}}|group=n}}
 
| Up to 1.6 MB/s{{ref|Minimum 1 cycle per byte|group=n}}
 
 
|-
 
|-
! rowspan=3 | 8-bit arithmetic
+
! rowspan=3 | 8-bit arithmetic <br> (-128 to 256)
 
! Additions{{ref|Same performance for subtractions|group=n}}
 
! Additions{{ref|Same performance for subtractions|group=n}}
 
| Up to 800,000 adds/sec{{ref|Minimum 4 cycles per 8-bit add{{ref|[http://www.smspower.org/Development/InstructionSet Instruction Set]}}|group=n}}
 
| Up to 800,000 adds/sec{{ref|Minimum 4 cycles per 8-bit add{{ref|[http://www.smspower.org/Development/InstructionSet Instruction Set]}}|group=n}}
 
| Up to 800,000 adds/sec{{ref|Minimum 2 cycles per 8-bit add{{ref|[https://www.masswerk.at/6502/6502_instruction_set.html 6502 Instruction Set]}}|group=n}}
 
| Up to 800,000 adds/sec{{ref|Minimum 2 cycles per 8-bit add{{ref|[https://www.masswerk.at/6502/6502_instruction_set.html 6502 Instruction Set]}}|group=n}}
 +
| Up to 800,000 adds/sec (inactive display) <br> 400,000 adds/sec (active display){{ref|Minimum 2 cycles per 8-bit add|group=n}}
 
|-
 
|-
 
! Multiplications
 
! Multiplications
 
| Up to 140,000 multiplies/sec{{ref|Minimum 25 cycles per 8-bit multiply{{ref|[http://www.cpcwiki.eu/forum/programming/the-fast-multiplication/ The fast multiplication]}}|group=n}}
 
| Up to 140,000 multiplies/sec{{ref|Minimum 25 cycles per 8-bit multiply{{ref|[http://www.cpcwiki.eu/forum/programming/the-fast-multiplication/ The fast multiplication]}}|group=n}}
 
| Up to 100,000 multiplies/sec{{ref|Minimum 17 cycles per 8-bit multiply{{ref|[https://wiki.nesdev.com/w/index.php/8-bit_Multiply 8-bit Multiply]}}|group=n}}
 
| Up to 100,000 multiplies/sec{{ref|Minimum 17 cycles per 8-bit multiply{{ref|[https://wiki.nesdev.com/w/index.php/8-bit_Multiply 8-bit Multiply]}}|group=n}}
 +
| Up to 100,000 multiplies/sec (inactive display) <br> 50,000 multiplies/sec (active display){{ref|Minimum 17 cycles per 8-bit multiply|group=n}}
 
|-
 
|-
 
! Divisions
 
! Divisions
 
| Up to 40,000 divides/sec{{ref|Minimum 81 cycles per 8-bit divide{{ref|[http://z80-heaven.wikidot.com/math Math]}}|group=n}}
 
| Up to 40,000 divides/sec{{ref|Minimum 81 cycles per 8-bit divide{{ref|[http://z80-heaven.wikidot.com/math Math]}}|group=n}}
 
| Up to 18,000 divides/sec{{ref|Minimum 98 cycles per 8-bit divide{{ref|1=[http://codebase64.org/doku.php?id=base:8bit_divide_8bit_product 8bit Divide - 8bit Result]}}|group=n}}
 
| Up to 18,000 divides/sec{{ref|Minimum 98 cycles per 8-bit divide{{ref|1=[http://codebase64.org/doku.php?id=base:8bit_divide_8bit_product 8bit Divide - 8bit Result]}}|group=n}}
 +
| Up to 18,000 divides/sec (inactive display) <br> 8,000 divides/sec (active display){{ref|Minimum 98 cycles per 8-bit divide|group=n}}
 
|-
 
|-
! rowspan=3 | 16-bit arithmetic
+
! rowspan=3 | 16-bit arithmetic <br> (-32,768 to 65,536)
 
! Additions{{ref|Same performance for subtractions|group=n}}
 
! Additions{{ref|Same performance for subtractions|group=n}}
 
| Up to 300,000 adds/sec{{ref|Minimum 11 cycles per 16-bit add{{ref|[http://www.smspower.org/Development/InstructionSet Instruction Set]}}|group=n}}
 
| Up to 300,000 adds/sec{{ref|Minimum 11 cycles per 16-bit add{{ref|[http://www.smspower.org/Development/InstructionSet Instruction Set]}}|group=n}}
 
| Up to 80,000 adds/sec{{ref|Minimum 22 cycles per 16-bit add (2 cycles CLC, 4 cycles LDA, 4 cycles ADC, 6 cycles STA, 6 cycles RTS){{ref|1=[http://codebase64.org/doku.php?id=base:16bit_addition_and_subtraction 16-bit addition and subtraction]}}{{ref|[https://www.masswerk.at/6502/6502_instruction_set.html 6502 Instruction Set]}}|group=n}}
 
| Up to 80,000 adds/sec{{ref|Minimum 22 cycles per 16-bit add (2 cycles CLC, 4 cycles LDA, 4 cycles ADC, 6 cycles STA, 6 cycles RTS){{ref|1=[http://codebase64.org/doku.php?id=base:16bit_addition_and_subtraction 16-bit addition and subtraction]}}{{ref|[https://www.masswerk.at/6502/6502_instruction_set.html 6502 Instruction Set]}}|group=n}}
 +
| Up to 80,000 adds/sec (inactive display) <br> 30,000 adds/sec (active display){{ref|Minimum 22 cycles per 16-bit add (2 cycles CLC, 4 cycles LDA, 4 cycles ADC, 6 cycles STA, 6 cycles RTS)|group=n}}
 
|-
 
|-
 
! Multiplications
 
! Multiplications
 
| Up to 30,000 multiplies/sec{{ref|Minimum 95 cycles per 16-bit multiply (10 cycles LD HL, 7 cycles LD A, 22 cycles ADD HL, 16 cycles RL, 10 cycles JP NC, 6 cycles INC DE, 4 cycles DEC A, 10 cycles JP NZ, 10 cycles RET){{ref|https://web.archive.org/web/20110102160653/sgate.emt.bme.hu/patai/publications/z80guide/part4.html}}{{ref|[http://www.smspower.org/Development/InstructionSet Instruction Set]}}|group=n}}
 
| Up to 30,000 multiplies/sec{{ref|Minimum 95 cycles per 16-bit multiply (10 cycles LD HL, 7 cycles LD A, 22 cycles ADD HL, 16 cycles RL, 10 cycles JP NC, 6 cycles INC DE, 4 cycles DEC A, 10 cycles JP NZ, 10 cycles RET){{ref|https://web.archive.org/web/20110102160653/sgate.emt.bme.hu/patai/publications/z80guide/part4.html}}{{ref|[http://www.smspower.org/Development/InstructionSet Instruction Set]}}|group=n}}
 
| Up to 9,000 multiplies/sec{{ref|Minimum 192 cycles per 16-bit multiply{{ref|1=[http://codebase64.org/doku.php?id=base:fastest_multiplication Fastest 16x16 unsigned multiplication]}}|group=n}}
 
| Up to 9,000 multiplies/sec{{ref|Minimum 192 cycles per 16-bit multiply{{ref|1=[http://codebase64.org/doku.php?id=base:fastest_multiplication Fastest 16x16 unsigned multiplication]}}|group=n}}
 +
| Up to 9,000 multiplies/sec (inactive display) <br> 4,000 multiplies/sec (active display){{ref|Minimum 192 cycles per 16-bit multiply|group=n}}
 
|-
 
|-
 
! Divisions
 
! Divisions
| Up to 3,000 divides/sec{{ref|Approximately 1,070 cycles per 16-bit divide{{ref|[http://map.grauw.nl/articles/mult_div_shifts.php Multiplications, divisions and shifts]}}|group=n}}
+
| Up to 3,000 divides/sec{{ref|Approximately 1070 cycles per 16-bit divide{{ref|[http://map.grauw.nl/articles/mult_div_shifts.php Multiplications, divisions and shifts]}}|group=n}}
| Up to 1,000 divides/sec{{ref|Approximately 1,900 cycles per 16-bit divide{{ref|1=[http://forum.6502.org/viewtopic.php?f=2&t=578 Math stuff]}}|group=n}}
+
| Up to 1,000 divides/sec{{ref|Approximately 1900 cycles per 16-bit divide{{ref|1=[http://forum.6502.org/viewtopic.php?f=2&t=578 Math stuff]}}|group=n}}
 +
| Up to 1,000 divides/sec (inactive display) <br> 400 divides/sec (active display){{ref|Approximately 1900 cycles per 16-bit divide|group=n}}
 +
|-
 +
|-
 +
! colspan=2 | Random access memory ([[RAM]])
 +
! [[Sega Master System/Technical specifications|Sega Master System (SMS)]]
 +
! Nintendo Entertainment System (NES)
 +
! Atari 7800
 +
|-
 +
! rowspan=5 | Total RAM
 +
! Memory
 +
| 24 KB ([[SRAM|XRAM/SRAM]], PSRAM)
 +
| 4 KB ([[SRAM]])
 +
| 4 KB (SRAM)
 +
|-
 +
! Data bus width
 +
| 24-bit (8-bit WRAM, 16-bit [[VRAM]])
 +
| 16-bit (8-bit WRAM, 8-bit VRAM)
 +
| 8-bit (shared by CPU and MARIA)
 +
|-
 +
! Bandwidth
 +
| 11 MB/s
 +
| 7.15 MB/s (NTSC), 6.66 MB/s (PAL)
 +
| 3.5 MB/s{{ref|8-bit, 285 ns{{ref|1=[http://www.atarimuseum.com/ahs_archives/archives/pdf/videogames/7800/gcc1702b_maria_specs.pdf#page=28 170B timing]}}|group=n}}
 +
|-
 +
! CPU instruction fetch
 +
| 1.2 MB/s{{ref|3 cycles per byte{{fileref|Zilog Z80 Programmer's Reference Manual.pdf|page=33}}|group=n}}
 +
| Up to 1.6 MB/s{{ref|Minimum 1 cycle per byte|group=n}}
 +
| Up to 1.6 MB/s (inactive display), <br> 800,000 KB/s (active display){{ref|Minimum 1 cycle per byte|group=n}}
 +
|-
 +
! GPU tile fetch (8×8 tiles)
 +
| 2.208 [[Byte|MB/s]] (NTSC), 1.832 MB/s (PAL)
 +
| 1.107 MB/s (NTSC), 921,728 KB/s (PAL)
 +
| 241.75 KB/s (NTSC), 201.279 KB/s (PAL){{ref|[http://atariage.com/forums/topic/131226-realistic-sprite-limits/ Realistic Sprite Limits?]}}
 +
|-
 +
! rowspan=2 | Work RAM (WRAM)
 +
! Memory
 +
| 8 KB ([[SRAM|XRAM/SRAM]], 8-bit)
 +
| 2 KB ([[SRAM]], 8-bit)
 +
| rowspan=7 | N/A
 +
|-
 +
! [[Byte|Bandwidth]]
 +
| 3.579545 MB/s (NTSC), 3.546894 MB/s (PAL)
 +
| 1.789773 MB/s (NTSC), 1.662607 MB/s (PAL)
 +
|-
 +
! rowspan=5 | Video RAM ([[VRAM]])
 +
! Memory
 +
| 16 KB (XRAM/[[wikipedia:Pseudostatic RAM|PSRAM]])
 +
| 2 KB (SRAM)
 +
|-
 +
! Bandwidth
 +
| 7.692306 MB/s{{ref|16-bit, 260 ns|group=n}}
 +
| 5.369317 MB/s (NTSC), 5 MB/s (PAL){{ref|8-bit, 150 ns (NTSC), 200 ns (PAL){{ref|[https://console5.com/wiki/Nintendo_NES-001 Nintendo NES-001]}}|group=n}}
 +
|-
 +
! Transfer (inactive display)
 +
| 298.295 KB/s (NTSC), 295.574 KB/s (PAL){{ref|12 CPU cycles per byte|group=n}}
 +
| 298.295 KB/s (NTSC), 277.101 KB/s (PAL){{ref|6 CPU cycles per byte|group=n}}
 +
|-
 +
! Transfer (256×192 display)
 +
| 174.794 KB/s (NTSC),{{ref|2.917 KB per frame|group=n}} 181.112 KB/s (PAL){{ref|3.644 KB per frame|group=n}}
 +
| 59.137 KB/s (NTSC),{{ref|984 bytes per frame: 52 VBlank scanlines, 5909 CPU cycles, 6 cycles per byte|group=n}} 90.562 KB/s (PAL){{ref|1.811 KB per frame: 102 VBlank scanlines, 7459 CPU cycles, 6 cycles per byte|group=n}}
 +
|-
 +
! Transfer (256×224 display)
 +
| 81.914 KB/s (NTSC),{{ref|1.367 KB per frame: 224 active scanlines (2.5 bytes per line), 38 VBlank scanlines (21.25 bytes per line)|group=n}} 121.818 KB/s (PAL){{ref|2.451 KB per frame: 224 active scanlines (2.5 bytes per line), 89 VBlank scanlines (21.25 bytes per line)|group=n}}
 +
| 22.717 KB/s (NTSC),{{ref|378 bytes per frame: 20 VBlank scanlines, 2273 CPU cycles, 6 cycles per byte|group=n}} 62.158 KB/s (PAL){{ref|1.243 KB per frame: 70 VBlank scanlines, 7459 CPU cycles, 6 cycles per byte|group=n}}
 +
|}
 +
 
 +
===Graphics===
 +
{| class="wikitable"
 +
|-
 +
! colspan=2 | Console
 +
! [[Sega Master System/Technical specifications|Sega Master System (SMS)]]{{intref|Sega Master System/Technical specifications}}{{ref|[http://www.smspower.org/forums/14599-HowManyBytesCanIWriteToVRAMPerFrame How many bytes can I write to VRAM per frame?]}}
 +
! [[Nintendo Entertainment System]] (NES){{ref|[https://problemkaputt.de/everynes.htm NES hardware specifications]}}{{ref|[http://www.gamepilgrimage.com/content/sega-master-system-vs-nintendo-entertainment-system Sega Master System vs Nintendo Entertainment System]}}{{ref|[https://console5.com/wiki/Nintendo_NES-001 Nintendo NES-001]}}{{ref|[https://wiki.nesdev.com/w/index.php/Cycle_reference_chart Cycle reference chart]}}{{ref|1=[http://forums.nesdev.com/viewtopic.php?f=10&t=17693 Screen flashes garbage chars when I update background tiles]}}
 +
! Atari 7800{{ref|[https://liberator.atariage.com/forums/topic/224025-7800-hardware-facts/ 7800 hardware facts]}}{{ref|[https://sites.google.com/site/atari7800wiki Atari 7800 Progamming]}}{{ref|[http://www.atarimuseum.com/ahs_archives/archives/archives-techdocs-7800.htm Video Game Systems: Atari 7800]}}
 +
|-
 +
! colspan=2 | [[Sprite|Graphics processing unit (GPU)]]
 +
! [[Sega Master System/Technical specifications|Sega VDP]]
 +
! [[Ricoh]] [[wikipedia:Picture Processing Unit|PPU]]
 +
! GCC MARIA
 +
|-
 +
! rowspan=2 | Clock rate <br> (internal)
 +
! NTSC
 +
| 10.738635 MHz
 +
| 5.369317 MHz
 +
| 7.159091 MHz
 +
|-
 +
! PAL
 +
| 10.640685 MHz
 +
| 5.320342 MHz
 +
| 7.093788 MHz
 +
|-
 +
! rowspan=2 | Data bus <br> clock rate
 +
! NTSC
 +
| 5.369318 MHz
 +
| 5.369318 MHz
 +
| 4.984658 MHz{{ref|[http://7800.8bitdev.org/index.php/7800_Software_Guide 7800 Software Guide]}}
 +
|-
 +
! PAL
 +
| 5.320342 MHz
 +
| 5.320342 MHz
 +
| 5.230959 MHz{{ref|[http://7800.8bitdev.org/index.php/7800_Software_Guide 7800 Software Guide]}}
 +
|-
 +
! rowspan=2 | Bits
 +
! Data bus width
 +
| 16-bit (dedicated)
 +
| 8-bit (dedicated)
 +
| 8-bit (shared with CPU)
 +
|-
 +
! Registers
 +
| 8-bit, 16-bit
 +
| 8-bit
 +
| 8-bit
 +
|-
 +
! rowspan=2 | [[wikipedia:GPU cache|Internal cache]]
 +
! Cache
 +
| 64 [[byte]]s (32 bytes [[Palette|CRAM]], 32 bytes [[sprite]] line [[wikipedia:Data buffer|buffer]])
 +
| 256 bytes ([[Sprite|OAM]])
 +
| 225 bytes (200 bytes line buffer, 25 bytes color map)
 +
|-
 +
! [[Byte|Bandwidth]]
 +
| 10 [[Byte|MB/s]]
 +
| 5.369317 MB/s (NTSC), 5.320342 MB/s (PAL)
 +
| 6.060606 MB/s{{ref|8-bit, 165 ns{{ref|1=[http://www.atarimuseum.com/ahs_archives/archives/pdf/videogames/7800/gcc1702b_maria_specs.pdf#page=28 170B timing]}}|group=n}}
 +
|-
 +
! rowspan=6 | Hardware <br> rendering
 +
! Tile compression
 +
| Yes
 +
| Yes
 +
| No
 +
|-
 +
! [[Sprite|Hardware sprites]]
 +
| Yes
 +
| Yes
 +
| No
 +
|-
 +
! Bitmap rendering
 +
| [[SG-1000]] mode only
 +
| No
 +
| Yes
 +
|-
 +
! Graphical planes
 +
| 2 planes (hardware sprites, tilemap background)
 +
| 2 planes (hardware sprites, tilemap background)
 +
| 1 plane (bitmap)
 +
|-
 +
! [[wikipedia:Scrolling|Scrolling]] capabilities
 +
| Per-[[pixel]] scrolling, vertical/horizontal scrolling, <br> diagonal scrolling, line scrolling, split-screen scrolling
 +
| Per-pixel scrolling, vertical/horizontal scrolling, <br> split-screen scrolling
 +
| Coarse scrolling (8-pixel increments), <br> vertical/horizontal scrolling
 +
|-
 +
! IRQ interrupt
 +
| Yes
 +
| MMC enhancement chips only
 +
| No
 +
|-
 +
! rowspan=4 | [[Resolution]]
 +
! [[Pixel]] clock rate
 +
| 5.369318 MHz (NTSC), 5.320342 MHz (PAL)
 +
| 5.369318 MHz (NTSC), 5.320342 MHz (PAL)
 +
| Default: 3.579546 MHz (NTSC), 3.546894 MHz (PAL) <br> Hi-res: 7.159091 MHz (NTSC), 7.093788 MHz (PAL)
 +
|-
 +
! Overscan
 +
| 342×262 (NTSC), 342×313 (PAL)
 +
| 341×262 (NTSC), 341×312 (PAL){{ref|[https://wiki.nesdev.com/w/index.php/NTSC_video NTSC video]}}{{ref|[https://wiki.nesdev.com/w/index.php/PAL_video PAL video]}}
 +
| 227×263 (NTSC), 227×313 (PAL)
 +
|-
 +
! Display resolution
 +
| Default: 256×192 (32 colors) <br> Alternate: 256×224 (32 colors), 256×240 (32 colors)
 +
| Default: 256×224 (25 colors) <br> Alternate: 256×192 (25 colors), 256×240 (25 colors)
 +
| Default: 160×192 (25 colors) <br> Alternate: 160×242 (25 colors),{{ref|[http://7800.8bitdev.org/index.php/7800_Software_Guide 7800 Software Guide]}} 320×192 (6 colors){{ref|[http://atariage.com/forums/topic/175802-testing-320-mode-with-pac-man/ Testing 320 mode with Pac-Man]}}
 +
|-
 +
! Refresh rate
 +
| 59.922743 Hz (NTSC), 49.701459 Hz (PAL)
 +
| 60.099143 Hz (NTSC), 50.006979 Hz (PAL)
 +
| 59.957873 Hz (NTSC), 49.920395 Hz (PAL)
 +
|-
 +
! rowspan=6 | [[Palette|Colors]]
 +
! Color format
 +
| [[RGB]] (6-bit)
 +
| [[wikipedia:YIQ|YIQ]]
 +
| [[wikipedia:Y/C|Y/C]]{{ref|[https://sites.google.com/site/atari7800wiki/7800-compared-to-the-nes 7800 compared to the NES]}}
 +
|-
 +
! Luma brightness
 +
| 100%
 +
| 100%
 +
| 50%{{ref|[https://sites.google.com/site/atari7800wiki/7800-compared-to-the-nes 7800 compared to the NES]}}
 +
|-
 +
! Total [[palette]]
 +
| 64 colors (absolute)
 +
| 54 colors (absolute)
 +
| 16 colors (absolute), 256 colors (relative){{ref|[https://sites.google.com/site/atari7800wiki/7800-compared-to-the-nes 7800 compared to the NES]}}
 +
|-
 +
! Colors on screen
 +
| 32 colors
 +
| 25 colors
 +
| 25 colors (160×192 mode), 6 colors (320×192 mode){{ref|[http://atariage.com/forums/topic/175802-testing-320-mode-with-pac-man/ Testing 320 mode with Pac-Man]}}
 +
|-
 +
! Colors per scanline
 +
| 32 colors
 +
| 25 colors
 +
| 12 colors (160×192 mode),{{ref|[http://atariage.com/forums/topic/119653-can-an-nes-game-be-made-into-a-7800-version/ Can an NES game be made into a 7800 version?]}} 6 colors (320×192 mode)
 +
|-
 +
! Colors per tile
 +
| 16 colors (default), 2 colors (SG-1000 mode)
 +
| 4 colors (default), 6 colors (sprite overlay){{ref|1=[http://forums.nesdev.com/viewtopic.php?t=5851 More than 3 colors in a sprite]}}
 +
| 3-8 colors (160×192 mode),{{ref|[http://7800.8bitdev.org/index.php/7800_Software_Guide 7800 Software Guide]}} <br> 1-3 colors (320×192 mode){{ref|[http://www.randomterrain.com/7800basic.html 7800basic Guide]}}
 +
|-
 +
! rowspan=4 | Tiles <br> (8×8 [[pixel]] tiles)
 +
! Tiles on screen
 +
| 1152 tiles (16-color), 1280 tiles (2-color)
 +
| 1152 tiles (4-color)
 +
| 252 tiles (4-color), 324 tiles (2-color), <br> 192 tiles (8-color){{ref|[http://atariage.com/forums/topic/131226-realistic-sprite-limits/ Realistic Sprite Limits?]}}
 +
|-
 +
! Unique tiles on screen
 +
| 488 tiles (16-color), 1024 tiles (2-color) <br> Tile flipping: 1152 tiles (16-color)
 +
| 512 tiles (4-color) <br> Tile flipping: 640 tiles (4-color)
 +
| 252 tiles (4-color), 324 tiles (2-color), <br> 192 tiles (8-color)
 +
|-
 +
! Tiles per scanline
 +
| 40 tiles (16-color), 48 tiles (2-color)
 +
| 40 tiles (4-color)
 +
| 21 tiles (4-color), 27 tiles (2-color), 16 tiles (8-color){{ref|[http://atariage.com/forums/topic/131226-realistic-sprite-limits/ Realistic Sprite Limits?]}}
 +
|-
 +
! Tile draw [[fillrate]]
 +
| 16-color tiles: 69,030 tiles/sec (NTSC), 57,256 tiles/sec (PAL) <br> 2-color tiles: 76,701 tiles/sec (NTSC), 63,617 tiles/sec (PAL)
 +
| 4-color tiles: 69,234 tiles/sec (NTSC), 57,608 tiles/sec (PAL)
 +
| 4-color tiles: <br> 15,109 tiles/sec (NTSC), 12,579 tiles/sec (PAL)
 +
|-
 +
! rowspan=2 | Tile [[texel]]s
 +
! Tile [[texel]]s per scanline
 +
| 320 texels (16-color tiles), 342 texels (2-color tiles)
 +
| 320 texels (4-color tiles)
 +
| 168 texels (4-color tiles), 216 texels (2-color tiles), <br> 128 texels (8-color tiles)
 +
|-
 +
! Tile draw fillrate
 +
| 16-color tiles: 4.417 [[Texel|MTexels/s]] (NTSC), 3.664 MTexels/s (PAL) <br> 2-color tiles: 4.908 MTexels/s, 4.071 MTexels/s (PAL)
 +
| 4-color tiles: 4.43 MTexels/s (NTSC), 3.686 MTexels/s (PAL)
 +
| 4-color tiles: 0.9 MTexels/s (NTSC), 0.8 MTexels/s (PAL) <br> 2-color tiles: 1.2 MTexels/s (NTSC), 1.0 MTexels/s (PAL)
 +
|-
 +
! rowspan=6 | [[VRAM]] tile transfer
 +
! Texel fillrate <br> (256×192 display)
 +
| 16-color tiles: 348,990 [[Texel|texels/s]] (NTSC), 359,440 texels/s (PAL){{ref|NTSC: 91 tiles per frame <br> 113 tiles per frame|group=n}} <br> 2-color tiles: 1.395 [[Texel|MTexels/s]] (NTSC), 1.447 MTExels/s (PAL){{ref|NTSC: 2.917 KB (364 tiles) per frame <br> PAL: 3.644 KB (455 tiles) per frame|group=n}}
 +
| 4-color tiles: 234,627 texels/s (NTSC), 361,650 texels/s (PAL){{ref|NTSC: 984 bytes (61 tiles) per frame, 52 VBlank scanlines, 5909 CPU cycles, 6 cycles per byte <br> PAL: 1.811 KB (113 tiles) per frame, 102 VBlank scanlines, 7459 CPU cycles, 6 cycles per byte|group=n}}
 +
| rowspan=6 | N/A
 +
|-
 +
! Texel fillrate <br> (256×224 display)
 +
| 16-color tiles: 161,072 texels/s (NTSC), 241,747 texels/s (PAL){{ref|NTSC: 1.367 KB (42 tiles) per frame, 224 active scanlines (2.5 bytes per line), 38 VBlank scanlines (21.25 bytes per line) <br> PAL: 2.451 KB (76 tiles) per frame, 224 active scanlines (2.5 bytes per line), 89 VBlank scanlines (21.25 bytes per line)|group=n}} <br> 2-color tiles: 651,959 texels/s (NTSC), 973,353 texels/s (PAL){{ref|NTSC: 1.367 KB (170 tiles) per frame <br> PAL: 2.451 KB (306 tiles) per frame|group=n}}
 +
| 4-color tiles: 88,465 texels/s (NTSC), 246,434 texels/s (PAL){{ref|NTSC: 378 bytes (23 tiles) per frame, 20 VBlank scanlines, 2273 CPU cycles, 6 cycles per byte <br> PAL: 1.243 KB (77 tiles) per frame, 70 VBlank scanlines, 7459 CPU cycles, 6 cycles per byte|group=n}}
 +
|-
 +
! Tile fillrate <br> (256×192 display)
 +
| 16-color tiles: 5452 tiles/sec (NTSC), 5616 tiles/sec (PAL) <br> 2-color tiles: 21,811 tiles/sec (NTSC), 22,614 tiles/sec (PAL)
 +
| 4-color tiles: 3666 tiles/sec (NTSC), 5650 tiles/sec (PAL)
 +
|-
 +
! Tile fillrate <br> (256×224 display)
 +
| 16-color tiles: 2516 tiles/sec (NTSC), 3777 tiles/sec (PAL) <br> 2-color tiles: 10,186 tiles/sec (NTSC), 15,208 tiles/sec (PAL)
 +
| 4-color tiles: 1382 tiles/sec (NTSC), 3850 tiles/sec (PAL)
 +
|-
 +
! Transfer per refresh <br> (256×192 display)
 +
| 16-color tiles: 91 tiles (NTSC), 113 tiles (PAL) <br> 2-color tiles: 364 tiles (NTSC), 455 tiles (PAL){{ref|NTSC: 2.917 KB per frame <br> PAL: 3.644 KB per frame|group=n}}
 +
| 4-color tiles: 61 tiles (NTSC), 113 tiles (PAL){{ref|NTSC: 984 bytes per frame, 52 VBlank scanlines, 5909 CPU cycles, 6 cycles per byte <br> PAL: 1.811 KB per frame, 102 VBlank scanlines, 7459 CPU cycles, 6 cycles per byte|group=n}}
 +
|-
 +
! Transfer per refresh <br> (256×224 display)
 +
| 16-color tiles: 42 tiles (NTSC), 76 tiles (PAL){{ref|NTSC: 1.367 KB per frame, 224 active scanlines (2.5 bytes per line), 38 VBlank scanlines (21.25 bytes per line) <br> PAL: 2.451 KB per frame, 224 active scanlines (2.5 bytes per line), 89 VBlank scanlines (21.25 bytes per line)|group=n}} <br> 2-color tiles: 170 tiles (NTSC), 306 tiles (PAL){{ref|NTSC: 1.367 KB per frame <br> PAL: 2.451 KB per frame|group=n}}
 +
| 4-color tiles: 23 tiles (NTSC), 77 tiles (PAL){{ref|NTSC: 378 bytes per frame, 20 VBlank scanlines, 2273 CPU cycles, 6 cycles per byte <br> PAL: 1.243 KB per frame, 70 VBlank scanlines, 7459 CPU cycles, 6 cycles per byte|group=n}}
 +
|-
 +
! rowspan=14 | [[Sprite|Hardware sprite <br> plane]]
 +
! Colors per sprite
 +
| 16 colors (default), 2 colors (SG-1000 mode)
 +
| 4 colors (default), 6 colors (sprite overlay){{ref|1=[http://forums.nesdev.com/viewtopic.php?t=5851 More than 3 colors in a sprite]}}
 +
| rowspan=14 | N/A
 +
|-
 +
! Sprites on screen
 +
| 64 sprites (16-color)
 +
| 64 sprites (4-color), 32 sprites (6-color)
 +
|-
 +
! Sprite tiles on screen
 +
| 128 sprite tiles (16-color), 256 sprite tiles (2-color)
 +
| 128 sprite tiles (4-color), 64 sprite tiles (6-color)
 +
|-
 +
! Sprite sizes
 +
| 16-color sprites: 8×8, 8×16 <br> 2-color sprites: 8×8, 16×16
 +
| 4-color sprites: 8x8, 8x16
 +
|-
 +
! Sprite zooming
 +
| 16-color sprites: 16×16, 16×32 <br> 2-color sprites: 16×16, 32×32
 +
| N/A
 +
|-
 +
! Sprites per scanline
 +
| 8 sprites (16-color)
 +
| 8 sprites (4-color), 4 sprites (6-color)
 +
|-
 +
! Sprite tiles per scanline
 +
| 8 sprite tiles (16-color), <br> 16 sprite tiles (2-color)
 +
| 8 sprite tiles (4-color), 4 sprite tiles (6-color)
 +
|-
 +
! Sprite texels per scanline
 +
| 64 texels (16-color), 128 texels (2-color)
 +
| 64 texels (4-color), 32 texels (6-color)
 +
|-
 +
! Sprite flipping
 +
| No
 +
| Yes
 +
|-
 +
! Draw fillrate
 +
| 490,000 [[Texel|texels/s]] (16-color sprites), <br> 980,000 texels/s (2-color sprites)
 +
| 490,000 texels/s (4-color sprites), <br> 240,000 texels/s (6-color sprites)
 +
|-
 +
! Write fillrate <br> (256×192 display)
 +
| 16-color sprites: 349,000 texels/s (NTSC), 362,000 texels/s <br> 2-color sprites: 980,000 texels/s
 +
| 4-color sprites: 236,000 texels/s (NTSC), 362,000 texels/s (PAL) <br> 6-color sprites: 110,000 texels/s (NTSC), 180,000 texels/s (PAL)
 +
|-
 +
! Write fillrate <br> (256×224 display)
 +
| 16-color sprites: 163,000 pixels/s (NTSC), 243,000 pixels/s (PAL) <br> 2-color sprites: 655,000 pixels/s (NTSC), 974,000 pixels/s (PAL)
 +
| 4-color sprites: 90,000 pixels/s (NTSC), 248,000 pixels/s (PAL) <br> 6-color sprites: 110,000 texels/s (NTSC), 180,000 texels/s (PAL)
 +
|-
 +
! Transfer per frame (256×192)
 +
| 16-color sprites: 64 sprites{{ref|[http://www.smspower.org/forums/14599-HowManyBytesCanIWriteToVRAMPerFrame How many bytes can I write to VRAM per frame?]}}
 +
| 4-color sprites: 61 sprites (NTSC), 64 sprites (PAL)
 +
|-
 +
! Transfer per frame (256×224)
 +
| 16-color tiles: 42 sprites (NTSC), 64 sprites (PAL), <br> 2-color sprites: 64 sprites
 +
| 4-color tiles: 23 sprites (NTSC), 64 sprites (PAL)
 +
|-
 +
! rowspan=7 | Background (BG) <br> tilemap plane
 +
! Tilemap resolution
 +
| 256×256 texels
 +
| 256×256 texels
 +
| rowspan=7 | N/A
 +
|-
 +
! Colors per BG tile
 +
| 16 colors (default), 2 colors (SG-1000 mode)
 +
| 4 colors
 +
|-
 +
! BG tile flipping
 +
| Yes
 +
| No
 +
|-
 +
! BG tiles on screen
 +
| 1024 tiles
 +
| 1024 tiles
 +
|-
 +
! Unique BG tiles on screen
 +
| 448 tiles (16-color), 768 tiles (2-color) <br> Tile flipping: 1024 tiles (16-color)
 +
| 512 tiles (4-color)
 +
|-
 +
! BG tiles per scanline
 +
| 32 tiles
 +
| 32 tiles
 +
|-
 +
! BG texels per scanline
 +
| 256 texels
 +
| 256 texels
 +
|}
 +
 
 +
===Audio===
 +
{| class="wikitable"
 +
|-
 +
! colspan=2 | Console
 +
! colspan=2 | [[Sega Master System/Technical specifications|Sega Master System (SMS)]]{{intref|Sega Master System/Technical specifications}}
 +
! [[Nintendo Entertainment System]] (NES){{ref|[https://problemkaputt.de/everynes.htm NES hardware specifications]}}{{ref|[http://www.gamepilgrimage.com/content/sega-master-system-vs-nintendo-entertainment-system Sega Master System vs Nintendo Entertainment System]}}
 +
! Atari 7800
 +
|-
 +
! colspan=2 | [https://gamicus.gamepedia.com/Sound_chip Sound chip]
 +
! [[Sega Master System/Technical specifications|Sega PSG]] ([[SN76496]])
 +
! [[Yamaha]] [[YM2413]]
 +
! [[Ricoh]] 2A03
 +
! [[Atari]] TIA
 +
|-
 +
! rowspan=2 | Clock rate
 +
! NTSC
 +
| 3.579545 MHz
 +
| 3.579545 MHz
 +
| 1.789773 MHz
 +
| 1.193182 MHz
 +
|-
 +
! PAL
 +
| 3.546894 MHz
 +
| N/A
 +
| 1.662607 MHz
 +
| 1.182298 MHz
 +
|-
 +
! rowspan=4 | Sound channels
 +
! All sound channels
 +
| 4 channels
 +
| 9 channels
 +
| 5 channels
 +
| 2 channels
 +
|-
 +
! [[wikipedia:Programmable sound generator|PSG]] channels
 +
| 4 channels
 +
| N/A
 +
| 4 channels
 +
| 2 channels
 +
|-
 +
! [https://electronicmusic.fandom.com/wiki/Frequency_modulation FM synthesis]
 +
| N/A
 +
| 9 channels
 +
| N/A
 +
| N/A
 +
|-
 +
! [[PCM]] sampling
 +
| 1 PCM channel (using 1-3 PSG channels){{ref|[http://www.smspower.org/Development/SN76489 Sega SN76489]}}{{ref|[https://github.com/maxim-zhao/pcmenc pcmenc: Advanced PCM encoder for 8-bit sound chips]}}
 +
| N/A
 +
| 1 PCM channel (dedicated)
 +
| N/A
 +
|-
 +
! rowspan=5 | Sound synthesis
 +
! Square waves
 +
| 3 channels
 +
| Up to 9 channels
 +
| 2 channels
 +
| 2 channels
 +
|-
 +
! Triangle waves
 +
| No
 +
| Yes
 +
| Yes
 +
| No
 +
|-
 +
! White noise
 +
| Yes
 +
| Yes
 +
| Yes
 +
| No
 +
|-
 +
! FM synthesis
 +
| N/A
 +
| 18 operators (2 operators per channel)
 +
| N/A
 +
| N/A
 +
|-
 +
! Sine waves
 +
| No
 +
| Yes
 +
| No
 +
| No
 +
|-
 +
! rowspan=3 | [[PCM]] sampling
 +
! Maximum sample depth
 +
| 12-bit (at 11.025 kHz){{ref|[https://github.com/maxim-zhao/pcmenc pcmenc: Advanced PCM encoder for 8-bit sound chips]}}
 +
| N/A
 +
| 7-bit (at 15.745 kHz){{ref|[http://www.nesdev.com/2A03%20technical%20reference.txt 2A03 technical reference]}}
 +
| rowspan=3 | N/A
 +
|-
 +
! Maximum sample rate
 +
| 44.1 kHz (at 4-bit depth){{ref|[https://github.com/maxim-zhao/pcmenc pcmenc: Advanced PCM encoder for 8-bit sound chips]}}
 +
| N/A
 +
| 15.745 kHz (at 7-bit depth){{ref|[http://www.nesdev.com/2A03%20technical%20reference.txt 2A03 technical reference]}}
 +
|-
 +
! Maximum bitrate
 +
| 176.4 Kbps (22.05 KB/s){{ref|[http://www.smspower.org/forums/15964-HighQualityPCMWithPcmencFeedbackRequested High-quality PCM with pcmenc]}}{{ref|1=[https://www.youtube.com/watch?v=ZX4A2EYAYfU Sega Master System high-fidelity audio]}}
 +
| N/A
 +
| 110.2 Kbps (13.77 KB/s)
 
|}
 
|}
  

Latest revision as of 02:33, 31 March 2024

For technical details on the Sega Master System, see Sega Master System/Technical specifications.


Rewrite.svg
This article needs to be rewritten.
This article needs to be rewritten to conform to a higher standard of article quality. After the article has been rewritten, you may remove this message. For help, see the How to Edit a Page article.
Cleanup.svg
This article needs cleanup.
This article needs to be edited to conform to a higher standard of article quality. After the article has been cleaned up, you may remove this message. For help, see the How to Edit a Page article.

This article presents a hardware comparison between the Sega Master System (SMS) and other rival systems in its time, most notably the NES. The article compares the technical specifications and hardware advantages/disadvantages between the systems.

Vs. Game Gear

As was tradition with Sega consoles at the time, the handheld Sega Game Gear is backwards compatible with the Master System and can run Master System carts through an adapter. The most noticeable hardware difference is the VDP's color palette allows selecting 32 out of 4,096 possible colors (12-bit). The Master System VDP has the same number of active colors, but can only select out of 64 colors (6-bit). Due to the higher color depth, the Game Gear has twice as much color RAM, and it doesn't use the same format as the Master System. As such, if you attempt to run a Game Gear game on a Master System, it will run, but the colors will be incorrect.

The Game Gear's display is also lower resolution than the Master System: 160x144 compared to 256x192. For Game Gear games, the 160x144 is a window within the 256x192 SMS display. When using the Master Gear adapter, the 256x192 SMS display is shrunken to fit, which can result in image artifacting.

Finally, the Game Gear has a Start button, and it also has an extra register for PSG stereo. The Start button is technically a separate register, not part of the controller, which prevents Game Gear games from being run on Master System without modifications.

Vs. 8-Bit Consoles

Vs. NES

The Master System is generally a more powerful console than its main rival, the Nintendo Entertainment System (NES), also known as the Famicom in Japan. The NES has an 8-bit memory architecture, with its Ricoh 2A03 CPU (an adaptation of the MOS 6502 with additional features) and Ricoh PPU graphics processor each having an 8-bit data bus. In comparison, the Master System has a hybrid 8/16-bit memory architecture, with its NEC 780C CPU (essentially a second-sourced Zilog Z80) having an 8-bit data bus and its Sega VDP graphics processor having a 16-bit graphics data bus.[1][2][3] This makes the Master System's hybrid 8/16-bit memory architecture comparable to the PC-Engine/TurboGrafx-16, which similarly has an 8-bit CPU bus and 16-bit graphics data bus (see below). In addition, the Z80 supports both 8-bit and 16-bit registers,[4] whereas the 2A03 only supports 8-bit registers. However, the Z80 and 2A03/6502 both have 4-bit ALUs (arithmetic logic units).[5]

The Master System's Z80 CPU has approximately twice the clock rate (MHz) of the NES's 2A03 CPU, but this does not necessarily mean twice the performance. The 2A03 requires less cycles per instruction, thus it can actually output slightly more instructions per second (MIPS) than the Z80. However, comparing the MIPS of both CPUs would be just as misleading as comparing their MHz. The Z80 has a more powerful hybrid 8/16-bit instruction set, so it requires fewer instructions to perform similar tasks. The performance of each CPU varies depending on the tasks. For accessing memory, the 2A03 is faster in that regard, but the Z80 doesn't need to access the memory as much since it requires fewer instructions to perform similar tasks. Where the Z80 has a clear performance advantage is the arithmetic. While the Z80 only has a single 4-bit ALU, compared to the 2A03's dual 4-bit ALU, the Z80 has native support for 16-bit arithmetic and is faster for most arithmetic operations. Both CPUs have similar performance when it comes to the addition and subtraction of smaller 8-bit numbers (up to 256), but the Z80 has a clear performance advantage for most other arithmetic operations, including the addition and subtraction of larger 16-bit numbers (up to 65,536) due to the Z80's native 16-bit support, as well as faster multiplications and divisions in general (for both 8-bit and 16-bit numbers). The faster arithmetic of the Z80 gives it an overall performance advantage over the 2A03.

The Master System's VDP has a 16-bit data bus,[1][2][3] compared to the NES's PPU which has an 8-bit data bus, thus the Master System has a higher memory bandwidth than the NES. The SMS VDP's wider 16-bit data bus allows it to access 16-bit data in a single cycle, whereas the NES PPU can only access 8-bit data in a single cycle, giving the SMS VDP a faster data transfer speed. The higher bandwidth allows the SMS to access and transfer more graphics data. The VDP is essentially a hybrid 8/16-bit graphics processor, as it receives instructions from the Z80 via an 8-bit port while the VDP accesses graphics data from the VRAM via a 16-bit data bus.

The Master System displays 32 colors on screen, compared to the Nintendo's 25 colors on screen. The Master System also displays 16 colors (15 colors plus transparency) per tile and 16 colors per sprite, like the 16-bit Mega Drive and SNES, compared to 4 colors (3 colors plus transparency) per tile and 4 colors per sprite for the NES. It is technically possible on the NES to overlay sprites to display 6-color sprites (5 colors plus transparency), but that would require using two sprites to simulate a single 6-color sprite,[6] which could potentially cause flickering as there is a limit of 8 sprites per scanline. However, because the SMS uses 4-bit (16-color) tiles and the NES uses 2-bit (4-color) tiles, this means SMS tiles typically require twice as much cartridge space, which was an issue with smaller cartridges early on but was no longer an issue with larger cartridges later on.

The NES can flip sprites but not background tiles, whereas the SMS can flip background tiles (BG tiles) but not sprites. Both features save memory and bandwidth in different ways. Out of the two flipping features, the Master System's BG tile flipping saves considerably more memory and bandwidth, as the number of BG tiles on a screen significantly outnumbers the number of sprites on a screen. This allows the Master System to have more detailed and animated backgrounds, with some games even making use of BG tile flipping to render software sprites, or a bitmap, using the BG tiles (such as Golden Axe, Phantasy Star, Space Harrier, Altered Beast, Road Rash and Mortal Kombat). On the other hand, the Nintendo's sprite flipping can save more bandwidth for the sprites. However, the SMS already has more memory bandwidth, and with its BG tile flipping feature saving bandwidth on the more intensive background, that can allow the SMS to use more tiles for the sprites. But an advantage of the Nintendo's sprite flipping is that it's easier and more convenient to program sprites. However, it is technically possible to flip sprites on the SMS using CPU software routines, which would require a 256-byte table in the RAM. A number of SMS games use software routines for sprite flipping.

The Master System hardware supports IRQ interrupts, diagonal scrolling, and line scrolling, the latter allowing a simulated parallax scrolling effect. The NES lacks these features in its hardware, but the NES had enhancement chips which could add IRQ interrupt, diagonal scrolling and/or line scrolling capabilities.

A hardware feature that the NES has (as well as the Atari 7800) which the SMS hardware lacks is DMA (direct memory access), which allows data transfers between different parts of the memory architecture. The NES (like the 7800) relies on DMA to transfer sprite display lists between the GPU cache and the RAM. However, the SMS doesn't need to use DMA for such a task, as the SMS accesses sprite display information directly from its VRAM, which has a higher bandwidth, bypassing the need for DMA to access a sprite display list. Both of their 16-bit successors, the Mega Drive and SNES, have DMA controllers which make more extensive use of DMA, particularly the Mega Drive which has faster DMA bandwidth.

A clear advantage of the NES its its Ricoh sound chip, which is more advanced than the PSG in Western Master System hardware, but not quite as advanced as the Yamaha FM synthesis chip in Japanese Master System hardware. The NES had enhancement chips that could add FM synthesis capabilities, which only the Japanese Master System was capable of. However, FM enhancement chips of the NES were also limited to the Famicom in Japan.

Vs. 7800

The Master System is also a more powerful system than the Atari 7800. Its CPU, the MOS 6502, is nearly identical to the 6502-based 2A03 CPU of the NES, except the 2A03 has a few additional features. The SMS has most of the same advantages over the 7800 CPU as it does over the NES CPU, for the same reasons (see above). However, the performance of the 7800's CPU is negatively impacted by its memory architecture. Both the NES and SMS have separate data buses for the CPU and graphics processor, with a combined system data bus width of 16-bit for the NES (8-bit CPU bus and 8-bit PPU bus) and 24-bit for the SMS (8-bit CPU bus and 16-bit VDP bus). In comparison, the 7800 only has a single 8-bit data bus, which is shared by both its CPU and MARIA graphics chip. This means the 7800 has a smaller bus width and thus a lower memory bandwidth than both the NES and SMS. This negatively affects the performance of both the CPU and MARIA, as the CPU has to be halted whenever MARIA accesses the bus, since only one of the two processors can access the memory at any one time. The 7800's CPU thus cannot perform as well as either the SMS or NES CPUs, due to the 7800's CPU being routinely halted by the MARIA.

Both the NES and SMS use tile-based graphics compression, where the graphics are rendered tile-by-tile, rather than pixel-by-pixel. They have two planes, a background (BG) tilemap plane below and hardware sprites on top, each referencing and recycling sets of tiles. In comparison, the 7800 uses uncompressed bitmap rendering, where the graphics are rendered pixel-by-pixel and line-by-line. As the 7800 doesn't have enough RAM for a framebuffer, it renders graphics by "zones" which typically refers to a set of 4-16 scanlines. The 7800 does not have hardware sprites or a BG tilemap plane, but can use software rendering routines accelerated by its MARIA graphics chip to draw software sprites and tiles, but this can strain the MARIA which has to draw them pixel-by-pixel and line-by-line. The tile-based compression of the NES and SMS allows much more efficient usage of resources, including a significant reduction in processing, memory and bandwidth requirements for rendering graphics.

The lack of tile compression, combined with the lack of bandwidth, means that the 7800 cannot push as much graphics data as the NES or SMS. The 7800 also lacks smooth per-pixel hardware scrolling, but supports coarse scrolling, which scrolls in 8-pixel increments (though smooth scrolling is possible on the 7800, with intensive software routines).

On the other hand, the 7800's bitmap rendering is more flexible in some ways. While its ability to render large, detailed, scrolling backgrounds is inferior to the NES and especially the SMS, the 7800 can push a large amount of software sprites for games that have no backgrounds, such as Robotron. However, such games without backgrounds became rare in the NES/SMS era, where games with full scrolling backgrounds became the norm. The SMS's ability to flip background tiles also allows it to essentially manipulate background tiles as if they are sprites, or manipulate its tilemap background as if it was a bitmap, thus the SMS could technically also push a large amount of software sprites in a similar manner in addition to having a full background (as seen in SMS titles such as Golden Axe, Altered Beast and Mortal Kombat). The 7800's bitmap rendering is also easier to program pseudo-3D graphics, though pseudo-3D is also possible on the NES and SMS using forms of tiled rendering or scanline rendering (as seen in SMS titles such as Phantasy Star, Space Harrier and Road Rash).

An advantage of the 7800 is that it has access to a larger selectable color palette. While this allows more shades, its overall palette is darker and more muted compared to the NES and SMS, both of which have brighter palettes with more contrast and luminance.[7] The number of colors the 7800 can practically display on each scanline is also more limited than the NES and SMS, as the 7800 is limited to 12 colors per "zone" (4-16 scanlines), whereas the NES and SMS can display up to 25 colors and 32 colors per scanline, respectively.[8] The 7800 also displays less colors on screen than the SMS, as well as less colors per tile. The 7800 also has a hi-res mode that displays a higher resolution than the NES and SMS resolutions, but the 7800's hi-res mode was rarely used by games as it displays significantly less colors on screen, and the MARIA did not have enough processing power to render a full background in this mode.

Vs. PC Engine

The Master System has a similar 8/16-bit hybrid design as the NEC PC Engine (TurboGrafx-16). The Master System has an 8/16-bit NEC 780C (Zilog Z80) CPU, supporting both 8-bit and 16-bit instructions and with an 8-bit data bus, compared to the PC Engine which has an entirely 8-bit CPU. The Master System's Sega VDP graphics processor has a 16-bit data bus, while the PC-Engine has a dual-GPU setup sharing a 16-bit data bus. The Master System is thus no less of a "16-bit" system than the TurboGrafx-16. Nevertheless, the PC Engine is a more powerful system than the Master System, and can be considered a next-generation system, even if both systems have a similar number of "bits".

Vs. Home Computers

Vs. C64 and ZX

The Master System's main rivals in Europe were the 8-bit home computers, the ZX Spectrum and Commodore 64 (C64). Despite the rivalry, however, Sega supported these platforms as a third-party licensor of arcade ports. The Master System was the most powerful 8-bit home system released outside of Japan during the 1980s (Japan had the Fujitsu FM-77 AV and NEC PC-88 VA computers), surpassing the NES, ZX, and C64, while at the same time the SMS had a lower price point than the ZX and C64.

Vs. Amiga

The Commodore Amiga 500 (A500) released just a month after the Master System's European release in 1987. However, they were generally not in direct competition, as the Amiga was significantly more expensive than the Master System. The Amiga's direct competitor would later be the Sega Mega Drive. The Master System was instead competing with the 8-bit home computers, particularly the ZX and C64, though the Master System's hardware capabilities were closer to the Amiga than to the ZX or C64.

Compared to the 16-bit Amiga 500, the A500 was generally more powerful overall, with a more powerful 16-bit 68000 CPU, higher resolution, larger color palette, larger sprites, faster blitting, and superior audio capabilities (like the Mega Drive released a year later). However, the Master System did have several advantages, with its VDP graphics chip supporting more hardware sprites, superior hardware tile capabilities, and smoother scrolling. Its tilemap backgrounds require up to 64 times less processing, memory and bandwidth than the A500's bitmap backgrounds,[9] allowing the Master System to produce smoother scrolling and animations. The Master System displays 32 hardware sprites on screen, compared to the A500's 8 hardware sprites (though blitting allows the A500 to exceed this limit). The Master System displays 32 colors on screen and 16 colors per sprite, while for the A500, colors range from 2 to 32 on screen and it displays 2 to 4 colors per sprite. The A500's parallax scrolling reduces performance and colors, while the Master System's line scrolling simulates parallax scrolling without affecting performance or colors.

However, it is worth noting that most of the built-in hardware features of the SMS graphics chip mentioned above can be achieved on the Amiga with software rendering, using its 68000 CPU along with its blitter. A clear advantage the Master System does have, however, it that its cartridges load faster than the Amiga's floppy disks. Nevertheless, the A500 was more advanced overall, but the Master System hardware was strong enough to remain competitive at a significantly lower price point, up until the release of the more advanced Mega Drive (see Sega Mega Drive/Hardware comparison for a technical comparison between the Mega Drive and Amiga).

Comparison Tables

Console Sega Master System (SMS)[1] Nintendo Entertainment System (NES)[10][11][12][13][14] Atari 7800[15][16][17]
System master
clock rate
NTSC 53.693175 MHz 21.47727 MHz 14.31818 MHz
PAL 53.203424 MHz 26.6017125 MHz 14.187576 MHz
System data bus width 24-bit (8-bit CPU bus, 16-bit VDP bus) 16-bit (8-bit CPU bus, 8-bit PPU bus) 8-bit (shared by CPU and MARIA)
Central processing unit (CPU) NEC 780C (Zilog Z80) Ricoh 2A03 (based on MOS 6502) MOS 6502
Clock rate NTSC 3.579545 MHz 1.789773 MHz 1.789773 MHz (inactive display),
868,820 Hz (active display)[n 1]
PAL 3.546894 MHz 1.662607 MHz 1.773447 MHz (inactive display),
806,988 Hz (active display)[n 2]
Data bus width 8-bit (dedicated) 8-bit (dedicated) 8-bit (shared with MARIA)
Word length 8-bit 8-bit 8-bit
Instructions Instruction set (registers) 8-bit, 16-bit[4] 8-bit 8-bit
Instructions per second 0.52 MIPS (8-bit and 16-bit instructions) 0.7 MIPS (8-bit instructions)[4] Inactive display: 0.7 MIPS (8-bit instructions)
Active display: 0.37 MIPS (8-bit instructions)[4]
Arithmetic logic unit(s) ALU(s) 4-bit ALU[5] 2× 4-bit ALU[5] 2× 4-bit ALU[5]
Arithmetic values 8-bit, 16-bit[19] 8-bit[20] 8-bit[20]
8-bit arithmetic
(-128 to 256)
Additions[n 3] Up to 800,000 adds/sec[n 4] Up to 800,000 adds/sec[n 5] Up to 800,000 adds/sec (inactive display)
400,000 adds/sec (active display)[n 6]
Multiplications Up to 140,000 multiplies/sec[n 7] Up to 100,000 multiplies/sec[n 8] Up to 100,000 multiplies/sec (inactive display)
50,000 multiplies/sec (active display)[n 9]
Divisions Up to 40,000 divides/sec[n 10] Up to 18,000 divides/sec[n 11] Up to 18,000 divides/sec (inactive display)
8,000 divides/sec (active display)[n 12]
16-bit arithmetic
(-32,768 to 65,536)
Additions[n 3] Up to 300,000 adds/sec[n 13] Up to 80,000 adds/sec[n 14] Up to 80,000 adds/sec (inactive display)
30,000 adds/sec (active display)[n 15]
Multiplications Up to 30,000 multiplies/sec[n 16] Up to 9,000 multiplies/sec[n 17] Up to 9,000 multiplies/sec (inactive display)
4,000 multiplies/sec (active display)[n 18]
Divisions Up to 3,000 divides/sec[n 19] Up to 1,000 divides/sec[n 20] Up to 1,000 divides/sec (inactive display)
400 divides/sec (active display)[n 21]
Random access memory (RAM) Sega Master System (SMS) Nintendo Entertainment System (NES) Atari 7800
Total RAM Memory 24 KB (XRAM/SRAM, PSRAM) 4 KB (SRAM) 4 KB (SRAM)
Data bus width 24-bit (8-bit WRAM, 16-bit VRAM) 16-bit (8-bit WRAM, 8-bit VRAM) 8-bit (shared by CPU and MARIA)
Bandwidth 11 MB/s 7.15 MB/s (NTSC), 6.66 MB/s (PAL) 3.5 MB/s[n 22]
CPU instruction fetch 1.2 MB/s[n 23] Up to 1.6 MB/s[n 24] Up to 1.6 MB/s (inactive display),
800,000 KB/s (active display)[n 24]
GPU tile fetch (8×8 tiles) 2.208 MB/s (NTSC), 1.832 MB/s (PAL) 1.107 MB/s (NTSC), 921,728 KB/s (PAL) 241.75 KB/s (NTSC), 201.279 KB/s (PAL)[32]
Work RAM (WRAM) Memory 8 KB (XRAM/SRAM, 8-bit) 2 KB (SRAM, 8-bit) N/A
Bandwidth 3.579545 MB/s (NTSC), 3.546894 MB/s (PAL) 1.789773 MB/s (NTSC), 1.662607 MB/s (PAL)
Video RAM (VRAM) Memory 16 KB (XRAM/PSRAM) 2 KB (SRAM)
Bandwidth 7.692306 MB/s[n 25] 5.369317 MB/s (NTSC), 5 MB/s (PAL)[n 26]
Transfer (inactive display) 298.295 KB/s (NTSC), 295.574 KB/s (PAL)[n 27] 298.295 KB/s (NTSC), 277.101 KB/s (PAL)[n 28]
Transfer (256×192 display) 174.794 KB/s (NTSC),[n 29] 181.112 KB/s (PAL)[n 30] 59.137 KB/s (NTSC),[n 31] 90.562 KB/s (PAL)[n 32]
Transfer (256×224 display) 81.914 KB/s (NTSC),[n 33] 121.818 KB/s (PAL)[n 34] 22.717 KB/s (NTSC),[n 35] 62.158 KB/s (PAL)[n 36]

Graphics

Console Sega Master System (SMS)[1][33] Nintendo Entertainment System (NES)[10][11][12][13][14] Atari 7800[15][16][17]
Graphics processing unit (GPU) Sega VDP Ricoh PPU GCC MARIA
Clock rate
(internal)
NTSC 10.738635 MHz 5.369317 MHz 7.159091 MHz
PAL 10.640685 MHz 5.320342 MHz 7.093788 MHz
Data bus
clock rate
NTSC 5.369318 MHz 5.369318 MHz 4.984658 MHz[18]
PAL 5.320342 MHz 5.320342 MHz 5.230959 MHz[18]
Bits Data bus width 16-bit (dedicated) 8-bit (dedicated) 8-bit (shared with CPU)
Registers 8-bit, 16-bit 8-bit 8-bit
Internal cache Cache 64 bytes (32 bytes CRAM, 32 bytes sprite line buffer) 256 bytes (OAM) 225 bytes (200 bytes line buffer, 25 bytes color map)
Bandwidth 10 MB/s 5.369317 MB/s (NTSC), 5.320342 MB/s (PAL) 6.060606 MB/s[n 37]
Hardware
rendering
Tile compression Yes Yes No
Hardware sprites Yes Yes No
Bitmap rendering SG-1000 mode only No Yes
Graphical planes 2 planes (hardware sprites, tilemap background) 2 planes (hardware sprites, tilemap background) 1 plane (bitmap)
Scrolling capabilities Per-pixel scrolling, vertical/horizontal scrolling,
diagonal scrolling, line scrolling, split-screen scrolling
Per-pixel scrolling, vertical/horizontal scrolling,
split-screen scrolling
Coarse scrolling (8-pixel increments),
vertical/horizontal scrolling
IRQ interrupt Yes MMC enhancement chips only No
Resolution Pixel clock rate 5.369318 MHz (NTSC), 5.320342 MHz (PAL) 5.369318 MHz (NTSC), 5.320342 MHz (PAL) Default: 3.579546 MHz (NTSC), 3.546894 MHz (PAL)
Hi-res: 7.159091 MHz (NTSC), 7.093788 MHz (PAL)
Overscan 342×262 (NTSC), 342×313 (PAL) 341×262 (NTSC), 341×312 (PAL)[34][35] 227×263 (NTSC), 227×313 (PAL)
Display resolution Default: 256×192 (32 colors)
Alternate: 256×224 (32 colors), 256×240 (32 colors)
Default: 256×224 (25 colors)
Alternate: 256×192 (25 colors), 256×240 (25 colors)
Default: 160×192 (25 colors)
Alternate: 160×242 (25 colors),[18] 320×192 (6 colors)[36]
Refresh rate 59.922743 Hz (NTSC), 49.701459 Hz (PAL) 60.099143 Hz (NTSC), 50.006979 Hz (PAL) 59.957873 Hz (NTSC), 49.920395 Hz (PAL)
Colors Color format RGB (6-bit) YIQ Y/C[7]
Luma brightness 100% 100% 50%[7]
Total palette 64 colors (absolute) 54 colors (absolute) 16 colors (absolute), 256 colors (relative)[7]
Colors on screen 32 colors 25 colors 25 colors (160×192 mode), 6 colors (320×192 mode)[36]
Colors per scanline 32 colors 25 colors 12 colors (160×192 mode),[37] 6 colors (320×192 mode)
Colors per tile 16 colors (default), 2 colors (SG-1000 mode) 4 colors (default), 6 colors (sprite overlay)[6] 3-8 colors (160×192 mode),[18]
1-3 colors (320×192 mode)[38]
Tiles
(8×8 pixel tiles)
Tiles on screen 1152 tiles (16-color), 1280 tiles (2-color) 1152 tiles (4-color) 252 tiles (4-color), 324 tiles (2-color),
192 tiles (8-color)[32]
Unique tiles on screen 488 tiles (16-color), 1024 tiles (2-color)
Tile flipping: 1152 tiles (16-color)
512 tiles (4-color)
Tile flipping: 640 tiles (4-color)
252 tiles (4-color), 324 tiles (2-color),
192 tiles (8-color)
Tiles per scanline 40 tiles (16-color), 48 tiles (2-color) 40 tiles (4-color) 21 tiles (4-color), 27 tiles (2-color), 16 tiles (8-color)[32]
Tile draw fillrate 16-color tiles: 69,030 tiles/sec (NTSC), 57,256 tiles/sec (PAL)
2-color tiles: 76,701 tiles/sec (NTSC), 63,617 tiles/sec (PAL)
4-color tiles: 69,234 tiles/sec (NTSC), 57,608 tiles/sec (PAL) 4-color tiles:
15,109 tiles/sec (NTSC), 12,579 tiles/sec (PAL)
Tile texels Tile texels per scanline 320 texels (16-color tiles), 342 texels (2-color tiles) 320 texels (4-color tiles) 168 texels (4-color tiles), 216 texels (2-color tiles),
128 texels (8-color tiles)
Tile draw fillrate 16-color tiles: 4.417 MTexels/s (NTSC), 3.664 MTexels/s (PAL)
2-color tiles: 4.908 MTexels/s, 4.071 MTexels/s (PAL)
4-color tiles: 4.43 MTexels/s (NTSC), 3.686 MTexels/s (PAL) 4-color tiles: 0.9 MTexels/s (NTSC), 0.8 MTexels/s (PAL)
2-color tiles: 1.2 MTexels/s (NTSC), 1.0 MTexels/s (PAL)
VRAM tile transfer Texel fillrate
(256×192 display)
16-color tiles: 348,990 texels/s (NTSC), 359,440 texels/s (PAL)[n 38]
2-color tiles: 1.395 MTexels/s (NTSC), 1.447 MTExels/s (PAL)[n 39]
4-color tiles: 234,627 texels/s (NTSC), 361,650 texels/s (PAL)[n 40] N/A
Texel fillrate
(256×224 display)
16-color tiles: 161,072 texels/s (NTSC), 241,747 texels/s (PAL)[n 41]
2-color tiles: 651,959 texels/s (NTSC), 973,353 texels/s (PAL)[n 42]
4-color tiles: 88,465 texels/s (NTSC), 246,434 texels/s (PAL)[n 43]
Tile fillrate
(256×192 display)
16-color tiles: 5452 tiles/sec (NTSC), 5616 tiles/sec (PAL)
2-color tiles: 21,811 tiles/sec (NTSC), 22,614 tiles/sec (PAL)
4-color tiles: 3666 tiles/sec (NTSC), 5650 tiles/sec (PAL)
Tile fillrate
(256×224 display)
16-color tiles: 2516 tiles/sec (NTSC), 3777 tiles/sec (PAL)
2-color tiles: 10,186 tiles/sec (NTSC), 15,208 tiles/sec (PAL)
4-color tiles: 1382 tiles/sec (NTSC), 3850 tiles/sec (PAL)
Transfer per refresh
(256×192 display)
16-color tiles: 91 tiles (NTSC), 113 tiles (PAL)
2-color tiles: 364 tiles (NTSC), 455 tiles (PAL)[n 44]
4-color tiles: 61 tiles (NTSC), 113 tiles (PAL)[n 45]
Transfer per refresh
(256×224 display)
16-color tiles: 42 tiles (NTSC), 76 tiles (PAL)[n 46]
2-color tiles: 170 tiles (NTSC), 306 tiles (PAL)[n 47]
4-color tiles: 23 tiles (NTSC), 77 tiles (PAL)[n 48]
Hardware sprite
plane
Colors per sprite 16 colors (default), 2 colors (SG-1000 mode) 4 colors (default), 6 colors (sprite overlay)[6] N/A
Sprites on screen 64 sprites (16-color) 64 sprites (4-color), 32 sprites (6-color)
Sprite tiles on screen 128 sprite tiles (16-color), 256 sprite tiles (2-color) 128 sprite tiles (4-color), 64 sprite tiles (6-color)
Sprite sizes 16-color sprites: 8×8, 8×16
2-color sprites: 8×8, 16×16
4-color sprites: 8x8, 8x16
Sprite zooming 16-color sprites: 16×16, 16×32
2-color sprites: 16×16, 32×32
N/A
Sprites per scanline 8 sprites (16-color) 8 sprites (4-color), 4 sprites (6-color)
Sprite tiles per scanline 8 sprite tiles (16-color),
16 sprite tiles (2-color)
8 sprite tiles (4-color), 4 sprite tiles (6-color)
Sprite texels per scanline 64 texels (16-color), 128 texels (2-color) 64 texels (4-color), 32 texels (6-color)
Sprite flipping No Yes
Draw fillrate 490,000 texels/s (16-color sprites),
980,000 texels/s (2-color sprites)
490,000 texels/s (4-color sprites),
240,000 texels/s (6-color sprites)
Write fillrate
(256×192 display)
16-color sprites: 349,000 texels/s (NTSC), 362,000 texels/s
2-color sprites: 980,000 texels/s
4-color sprites: 236,000 texels/s (NTSC), 362,000 texels/s (PAL)
6-color sprites: 110,000 texels/s (NTSC), 180,000 texels/s (PAL)
Write fillrate
(256×224 display)
16-color sprites: 163,000 pixels/s (NTSC), 243,000 pixels/s (PAL)
2-color sprites: 655,000 pixels/s (NTSC), 974,000 pixels/s (PAL)
4-color sprites: 90,000 pixels/s (NTSC), 248,000 pixels/s (PAL)
6-color sprites: 110,000 texels/s (NTSC), 180,000 texels/s (PAL)
Transfer per frame (256×192) 16-color sprites: 64 sprites[33] 4-color sprites: 61 sprites (NTSC), 64 sprites (PAL)
Transfer per frame (256×224) 16-color tiles: 42 sprites (NTSC), 64 sprites (PAL),
2-color sprites: 64 sprites
4-color tiles: 23 sprites (NTSC), 64 sprites (PAL)
Background (BG)
tilemap plane
Tilemap resolution 256×256 texels 256×256 texels N/A
Colors per BG tile 16 colors (default), 2 colors (SG-1000 mode) 4 colors
BG tile flipping Yes No
BG tiles on screen 1024 tiles 1024 tiles
Unique BG tiles on screen 448 tiles (16-color), 768 tiles (2-color)
Tile flipping: 1024 tiles (16-color)
512 tiles (4-color)
BG tiles per scanline 32 tiles 32 tiles
BG texels per scanline 256 texels 256 texels

Audio

Console Sega Master System (SMS)[1] Nintendo Entertainment System (NES)[10][11] Atari 7800
Sound chip Sega PSG (SN76496) Yamaha YM2413 Ricoh 2A03 Atari TIA
Clock rate NTSC 3.579545 MHz 3.579545 MHz 1.789773 MHz 1.193182 MHz
PAL 3.546894 MHz N/A 1.662607 MHz 1.182298 MHz
Sound channels All sound channels 4 channels 9 channels 5 channels 2 channels
PSG channels 4 channels N/A 4 channels 2 channels
FM synthesis N/A 9 channels N/A N/A
PCM sampling 1 PCM channel (using 1-3 PSG channels)[39][40] N/A 1 PCM channel (dedicated) N/A
Sound synthesis Square waves 3 channels Up to 9 channels 2 channels 2 channels
Triangle waves No Yes Yes No
White noise Yes Yes Yes No
FM synthesis N/A 18 operators (2 operators per channel) N/A N/A
Sine waves No Yes No No
PCM sampling Maximum sample depth 12-bit (at 11.025 kHz)[40] N/A 7-bit (at 15.745 kHz)[41] N/A
Maximum sample rate 44.1 kHz (at 4-bit depth)[40] N/A 15.745 kHz (at 7-bit depth)[41]
Maximum bitrate 176.4 Kbps (22.05 KB/s)[42][43] N/A 110.2 Kbps (13.77 KB/s)

Notes

  1. [6502 loses at least 920,953 Hz from MARIA stealing cycles during visible active display[18] 6502 loses at least 920,953 Hz from MARIA stealing cycles during visible active display[18]]
  2. [6502 loses at least 966,459 Hz from MARIA stealing cycles during visible active display[18] 6502 loses at least 966,459 Hz from MARIA stealing cycles during visible active display[18]]
  3. 3.0 3.1 [Same performance for subtractions Same performance for subtractions]
  4. [Minimum 4 cycles per 8-bit add[19] Minimum 4 cycles per 8-bit add[19]]
  5. [Minimum 2 cycles per 8-bit add[20] Minimum 2 cycles per 8-bit add[20]]
  6. [Minimum 2 cycles per 8-bit add Minimum 2 cycles per 8-bit add]
  7. [Minimum 25 cycles per 8-bit multiply[21] Minimum 25 cycles per 8-bit multiply[21]]
  8. [Minimum 17 cycles per 8-bit multiply[22] Minimum 17 cycles per 8-bit multiply[22]]
  9. [Minimum 17 cycles per 8-bit multiply Minimum 17 cycles per 8-bit multiply]
  10. [Minimum 81 cycles per 8-bit divide[23] Minimum 81 cycles per 8-bit divide[23]]
  11. [Minimum 98 cycles per 8-bit divide[24] Minimum 98 cycles per 8-bit divide[24]]
  12. [Minimum 98 cycles per 8-bit divide Minimum 98 cycles per 8-bit divide]
  13. [Minimum 11 cycles per 16-bit add[19] Minimum 11 cycles per 16-bit add[19]]
  14. [Minimum 22 cycles per 16-bit add (2 cycles CLC, 4 cycles LDA, 4 cycles ADC, 6 cycles STA, 6 cycles RTS)[25][20] Minimum 22 cycles per 16-bit add (2 cycles CLC, 4 cycles LDA, 4 cycles ADC, 6 cycles STA, 6 cycles RTS)[25][20]]
  15. [Minimum 22 cycles per 16-bit add (2 cycles CLC, 4 cycles LDA, 4 cycles ADC, 6 cycles STA, 6 cycles RTS) Minimum 22 cycles per 16-bit add (2 cycles CLC, 4 cycles LDA, 4 cycles ADC, 6 cycles STA, 6 cycles RTS)]
  16. [Minimum 95 cycles per 16-bit multiply (10 cycles LD HL, 7 cycles LD A, 22 cycles ADD HL, 16 cycles RL, 10 cycles JP NC, 6 cycles INC DE, 4 cycles DEC A, 10 cycles JP NZ, 10 cycles RET)[26][19] Minimum 95 cycles per 16-bit multiply (10 cycles LD HL, 7 cycles LD A, 22 cycles ADD HL, 16 cycles RL, 10 cycles JP NC, 6 cycles INC DE, 4 cycles DEC A, 10 cycles JP NZ, 10 cycles RET)[26][19]]
  17. [Minimum 192 cycles per 16-bit multiply[27] Minimum 192 cycles per 16-bit multiply[27]]
  18. [Minimum 192 cycles per 16-bit multiply Minimum 192 cycles per 16-bit multiply]
  19. [Approximately 1070 cycles per 16-bit divide[28] Approximately 1070 cycles per 16-bit divide[28]]
  20. [Approximately 1900 cycles per 16-bit divide[29] Approximately 1900 cycles per 16-bit divide[29]]
  21. [Approximately 1900 cycles per 16-bit divide Approximately 1900 cycles per 16-bit divide]
  22. [8-bit, 285 ns[30] 8-bit, 285 ns[30]]
  23. [3 cycles per byte[31] 3 cycles per byte[31]]
  24. 24.0 24.1 [Minimum 1 cycle per byte Minimum 1 cycle per byte]
  25. [16-bit, 260 ns 16-bit, 260 ns]
  26. [8-bit, 150 ns (NTSC), 200 ns (PAL)[12] 8-bit, 150 ns (NTSC), 200 ns (PAL)[12]]
  27. [12 CPU cycles per byte 12 CPU cycles per byte]
  28. [6 CPU cycles per byte 6 CPU cycles per byte]
  29. [2.917 KB per frame 2.917 KB per frame]
  30. [3.644 KB per frame 3.644 KB per frame]
  31. [984 bytes per frame: 52 VBlank scanlines, 5909 CPU cycles, 6 cycles per byte 984 bytes per frame: 52 VBlank scanlines, 5909 CPU cycles, 6 cycles per byte]
  32. [1.811 KB per frame: 102 VBlank scanlines, 7459 CPU cycles, 6 cycles per byte 1.811 KB per frame: 102 VBlank scanlines, 7459 CPU cycles, 6 cycles per byte]
  33. [1.367 KB per frame: 224 active scanlines (2.5 bytes per line), 38 VBlank scanlines (21.25 bytes per line) 1.367 KB per frame: 224 active scanlines (2.5 bytes per line), 38 VBlank scanlines (21.25 bytes per line)]
  34. [2.451 KB per frame: 224 active scanlines (2.5 bytes per line), 89 VBlank scanlines (21.25 bytes per line) 2.451 KB per frame: 224 active scanlines (2.5 bytes per line), 89 VBlank scanlines (21.25 bytes per line)]
  35. [378 bytes per frame: 20 VBlank scanlines, 2273 CPU cycles, 6 cycles per byte 378 bytes per frame: 20 VBlank scanlines, 2273 CPU cycles, 6 cycles per byte]
  36. [1.243 KB per frame: 70 VBlank scanlines, 7459 CPU cycles, 6 cycles per byte 1.243 KB per frame: 70 VBlank scanlines, 7459 CPU cycles, 6 cycles per byte]
  37. [8-bit, 165 ns[30] 8-bit, 165 ns[30]]
  38. [NTSC: 91 tiles per frame
    113 tiles per frame NTSC: 91 tiles per frame
    113 tiles per frame]
  39. [NTSC: 2.917 KB (364 tiles) per frame
    PAL: 3.644 KB (455 tiles) per frame NTSC: 2.917 KB (364 tiles) per frame
    PAL: 3.644 KB (455 tiles) per frame]
  40. [NTSC: 984 bytes (61 tiles) per frame, 52 VBlank scanlines, 5909 CPU cycles, 6 cycles per byte
    PAL: 1.811 KB (113 tiles) per frame, 102 VBlank scanlines, 7459 CPU cycles, 6 cycles per byte NTSC: 984 bytes (61 tiles) per frame, 52 VBlank scanlines, 5909 CPU cycles, 6 cycles per byte
    PAL: 1.811 KB (113 tiles) per frame, 102 VBlank scanlines, 7459 CPU cycles, 6 cycles per byte]
  41. [NTSC: 1.367 KB (42 tiles) per frame, 224 active scanlines (2.5 bytes per line), 38 VBlank scanlines (21.25 bytes per line)
    PAL: 2.451 KB (76 tiles) per frame, 224 active scanlines (2.5 bytes per line), 89 VBlank scanlines (21.25 bytes per line) NTSC: 1.367 KB (42 tiles) per frame, 224 active scanlines (2.5 bytes per line), 38 VBlank scanlines (21.25 bytes per line)
    PAL: 2.451 KB (76 tiles) per frame, 224 active scanlines (2.5 bytes per line), 89 VBlank scanlines (21.25 bytes per line)]
  42. [NTSC: 1.367 KB (170 tiles) per frame
    PAL: 2.451 KB (306 tiles) per frame NTSC: 1.367 KB (170 tiles) per frame
    PAL: 2.451 KB (306 tiles) per frame]
  43. [NTSC: 378 bytes (23 tiles) per frame, 20 VBlank scanlines, 2273 CPU cycles, 6 cycles per byte
    PAL: 1.243 KB (77 tiles) per frame, 70 VBlank scanlines, 7459 CPU cycles, 6 cycles per byte NTSC: 378 bytes (23 tiles) per frame, 20 VBlank scanlines, 2273 CPU cycles, 6 cycles per byte
    PAL: 1.243 KB (77 tiles) per frame, 70 VBlank scanlines, 7459 CPU cycles, 6 cycles per byte]
  44. [NTSC: 2.917 KB per frame
    PAL: 3.644 KB per frame NTSC: 2.917 KB per frame
    PAL: 3.644 KB per frame]
  45. [NTSC: 984 bytes per frame, 52 VBlank scanlines, 5909 CPU cycles, 6 cycles per byte
    PAL: 1.811 KB per frame, 102 VBlank scanlines, 7459 CPU cycles, 6 cycles per byte NTSC: 984 bytes per frame, 52 VBlank scanlines, 5909 CPU cycles, 6 cycles per byte
    PAL: 1.811 KB per frame, 102 VBlank scanlines, 7459 CPU cycles, 6 cycles per byte]
  46. [NTSC: 1.367 KB per frame, 224 active scanlines (2.5 bytes per line), 38 VBlank scanlines (21.25 bytes per line)
    PAL: 2.451 KB per frame, 224 active scanlines (2.5 bytes per line), 89 VBlank scanlines (21.25 bytes per line) NTSC: 1.367 KB per frame, 224 active scanlines (2.5 bytes per line), 38 VBlank scanlines (21.25 bytes per line)
    PAL: 2.451 KB per frame, 224 active scanlines (2.5 bytes per line), 89 VBlank scanlines (21.25 bytes per line)]
  47. [NTSC: 1.367 KB per frame
    PAL: 2.451 KB per frame NTSC: 1.367 KB per frame
    PAL: 2.451 KB per frame]
  48. [NTSC: 378 bytes per frame, 20 VBlank scanlines, 2273 CPU cycles, 6 cycles per byte
    PAL: 1.243 KB per frame, 70 VBlank scanlines, 7459 CPU cycles, 6 cycles per byte NTSC: 378 bytes per frame, 20 VBlank scanlines, 2273 CPU cycles, 6 cycles per byte
    PAL: 1.243 KB per frame, 70 VBlank scanlines, 7459 CPU cycles, 6 cycles per byte]

References

  1. 1.0 1.1 1.2 1.3 1.4 Sega Master System/Technical specifications
  2. 2.0 2.1 File:SMSServiceManualEU.pdf
  3. 3.0 3.1 File:SMS2ServiceManualEU.pdf
  4. 4.0 4.1 4.2 4.3 Obsolete Microprocessors
  5. 5.0 5.1 5.2 5.3 The Z-80 has a 4-bit ALU. Here's how it works.
  6. 6.0 6.1 6.2 More than 3 colors in a sprite
  7. 7.0 7.1 7.2 7.3 7800 compared to the NES
  8. Can an NES game be made into a 7800 version?
  9. Before the Crash: Early Video Game History, page 173
  10. 10.0 10.1 10.2 NES hardware specifications
  11. 11.0 11.1 11.2 Sega Master System vs Nintendo Entertainment System
  12. 12.0 12.1 12.2 Nintendo NES-001
  13. 13.0 13.1 Cycle reference chart
  14. 14.0 14.1 Screen flashes garbage chars when I update background tiles
  15. 15.0 15.1 7800 hardware facts
  16. 16.0 16.1 Atari 7800 Progamming
  17. 17.0 17.1 Video Game Systems: Atari 7800
  18. 18.0 18.1 18.2 18.3 18.4 18.5 7800 Software Guide
  19. 19.0 19.1 19.2 19.3 Instruction Set
  20. 20.0 20.1 20.2 20.3 6502 Instruction Set
  21. The fast multiplication
  22. 8-bit Multiply
  23. Math
  24. 8bit Divide - 8bit Result
  25. 16-bit addition and subtraction
  26. htt (Wayback Machine: 2011-01-02 16:06)
  27. Fastest 16x16 unsigned multiplication
  28. Multiplications, divisions and shifts
  29. Math stuff
  30. 30.0 30.1 170B timing
  31. File:Zilog Z80 Programmer's Reference Manual.pdf, page 33
  32. 32.0 32.1 32.2 Realistic Sprite Limits?
  33. 33.0 33.1 How many bytes can I write to VRAM per frame?
  34. NTSC video
  35. PAL video
  36. 36.0 36.1 Testing 320 mode with Pac-Man
  37. Can an NES game be made into a 7800 version?
  38. 7800basic Guide
  39. Sega SN76489
  40. 40.0 40.1 40.2 pcmenc: Advanced PCM encoder for 8-bit sound chips
  41. 41.0 41.1 2A03 technical reference
  42. High-quality PCM with pcmenc
  43. Sega Master System high-fidelity audio


Hardware comparisons
SG-1000 / SC-3000 (specs) vs. Famicom | vs. Master System | vs. C64 | vs. MSX
Sega Master System (specs) Hardware comparison | vs. NES | vs. Atari 7800 | vs. Game Gear | vs. Mega Drive | vs. C64 and ZX | vs. Amiga
Sega Mega Drive (specs) Hardware comparison | vs. 32X | vs. Amiga | vs. Atari Jaguar | vs. Atari ST | vs. Mega-CD | vs. Neo Geo | vs. Saturn | vs. SNES | vs. TurboGrafx-16
Sega Game Gear (specs) vs. Atari Lynx | vs. Game Boy | vs. Master System
Sega Mega-CD (specs) vs. 32X | vs. 3DO | vs. Amiga CD32 | vs. Atari Jaguar CD | vs. Neo Geo CD | vs. SNES | vs. Saturn | vs. TurboGrafx-CD
Sega 32X (specs) Hardware comparison | vs. 3DO | vs. Atari Jaguar | vs. SNES | vs. Saturn
Sega Saturn (specs) Hardware comparison | vs. Atari Jaguar | vs. Dreamcast | vs. Nintendo 64 | vs. PC-FX | vs. PlayStation | vs. SNES | vs. PC | vs. Sega Model 2
Sega Dreamcast (specs) Hardware comparison | vs. GameCube | vs. Nintendo 64 | vs. PlayStation | vs. PlayStation 2 | vs. Xbox | vs. Arcade | vs. PC