Sega Master System/Hardware comparison
From Sega Retro
- For technical details on the Sega Master System, see Sega Master System/Technical specifications.
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. |
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.
Contents
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
- ↑ [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]]
- ↑ [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.0 3.1 [Same performance for subtractions Same performance for subtractions]
- ↑ [Minimum 4 cycles per 8-bit add[19] Minimum 4 cycles per 8-bit add[19]]
- ↑ [Minimum 2 cycles per 8-bit add[20] Minimum 2 cycles per 8-bit add[20]]
- ↑ [Minimum 2 cycles per 8-bit add Minimum 2 cycles per 8-bit add]
- ↑ [Minimum 25 cycles per 8-bit multiply[21] Minimum 25 cycles per 8-bit multiply[21]]
- ↑ [Minimum 17 cycles per 8-bit multiply[22] Minimum 17 cycles per 8-bit multiply[22]]
- ↑ [Minimum 17 cycles per 8-bit multiply Minimum 17 cycles per 8-bit multiply]
- ↑ [Minimum 81 cycles per 8-bit divide[23] Minimum 81 cycles per 8-bit divide[23]]
- ↑ [Minimum 98 cycles per 8-bit divide[24] Minimum 98 cycles per 8-bit divide[24]]
- ↑ [Minimum 98 cycles per 8-bit divide Minimum 98 cycles per 8-bit divide]
- ↑ [Minimum 11 cycles per 16-bit add[19] Minimum 11 cycles per 16-bit add[19]]
- ↑ [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]]
- ↑ [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)]
- ↑ [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]]
- ↑ [Minimum 192 cycles per 16-bit multiply[27] Minimum 192 cycles per 16-bit multiply[27]]
- ↑ [Minimum 192 cycles per 16-bit multiply Minimum 192 cycles per 16-bit multiply]
- ↑ [Approximately 1070 cycles per 16-bit divide[28] Approximately 1070 cycles per 16-bit divide[28]]
- ↑ [Approximately 1900 cycles per 16-bit divide[29] Approximately 1900 cycles per 16-bit divide[29]]
- ↑ [Approximately 1900 cycles per 16-bit divide Approximately 1900 cycles per 16-bit divide]
- ↑ [8-bit, 285 ns[30] 8-bit, 285 ns[30]]
- ↑ [3 cycles per byte[31] 3 cycles per byte[31]]
- ↑ 24.0 24.1 [Minimum 1 cycle per byte Minimum 1 cycle per byte]
- ↑ [16-bit, 260 ns 16-bit, 260 ns]
- ↑ [8-bit, 150 ns (NTSC), 200 ns (PAL)[12] 8-bit, 150 ns (NTSC), 200 ns (PAL)[12]]
- ↑ [12 CPU cycles per byte 12 CPU cycles per byte]
- ↑ [6 CPU cycles per byte 6 CPU cycles per byte]
- ↑ [2.917 KB per frame 2.917 KB per frame]
- ↑ [3.644 KB per frame 3.644 KB per frame]
- ↑ [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]
- ↑ [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]
- ↑ [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)]
- ↑ [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)]
- ↑ [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]
- ↑ [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]
- ↑ [8-bit, 165 ns[30] 8-bit, 165 ns[30]]
- ↑ [NTSC: 91 tiles per frame
113 tiles per frame NTSC: 91 tiles per frame
113 tiles per frame] - ↑ [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] - ↑ [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] - ↑ [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)] - ↑ [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] - ↑ [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] - ↑ [NTSC: 2.917 KB per frame
PAL: 3.644 KB per frame NTSC: 2.917 KB per frame
PAL: 3.644 KB per frame] - ↑ [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] - ↑ [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)] - ↑ [NTSC: 1.367 KB per frame
PAL: 2.451 KB per frame NTSC: 1.367 KB per frame
PAL: 2.451 KB per frame] - ↑ [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.0 1.1 1.2 1.3 1.4 Sega Master System/Technical specifications
- ↑ 2.0 2.1 File:SMSServiceManualEU.pdf
- ↑ 3.0 3.1 File:SMS2ServiceManualEU.pdf
- ↑ 4.0 4.1 4.2 4.3 Obsolete Microprocessors
- ↑ 5.0 5.1 5.2 5.3 The Z-80 has a 4-bit ALU. Here's how it works.
- ↑ 6.0 6.1 6.2 More than 3 colors in a sprite
- ↑ 7.0 7.1 7.2 7.3 7800 compared to the NES
- ↑ Can an NES game be made into a 7800 version?
- ↑ Before the Crash: Early Video Game History, page 173
- ↑ 10.0 10.1 10.2 NES hardware specifications
- ↑ 11.0 11.1 11.2 Sega Master System vs Nintendo Entertainment System
- ↑ 12.0 12.1 12.2 Nintendo NES-001
- ↑ 13.0 13.1 Cycle reference chart
- ↑ 14.0 14.1 Screen flashes garbage chars when I update background tiles
- ↑ 15.0 15.1 7800 hardware facts
- ↑ 16.0 16.1 Atari 7800 Progamming
- ↑ 17.0 17.1 Video Game Systems: Atari 7800
- ↑ 18.0 18.1 18.2 18.3 18.4 18.5 7800 Software Guide
- ↑ 19.0 19.1 19.2 19.3 Instruction Set
- ↑ 20.0 20.1 20.2 20.3 6502 Instruction Set
- ↑ The fast multiplication
- ↑ 8-bit Multiply
- ↑ Math
- ↑ 8bit Divide - 8bit Result
- ↑ 16-bit addition and subtraction
- ↑ htt (Wayback Machine: 2011-01-02 16:06)
- ↑ Fastest 16x16 unsigned multiplication
- ↑ Multiplications, divisions and shifts
- ↑ Math stuff
- ↑ 30.0 30.1 170B timing
- ↑ File:Zilog Z80 Programmer's Reference Manual.pdf, page 33
- ↑ 32.0 32.1 32.2 Realistic Sprite Limits?
- ↑ 33.0 33.1 How many bytes can I write to VRAM per frame?
- ↑ NTSC video
- ↑ PAL video
- ↑ 36.0 36.1 Testing 320 mode with Pac-Man
- ↑ Can an NES game be made into a 7800 version?
- ↑ 7800basic Guide
- ↑ Sega SN76489
- ↑ 40.0 40.1 40.2 pcmenc: Advanced PCM encoder for 8-bit sound chips
- ↑ 41.0 41.1 2A03 technical reference
- ↑ High-quality PCM with pcmenc
- ↑ Sega Master System high-fidelity audio