Sega Master System/Hardware comparison
From Sega Retro
- For technical details on the Sega Master System, see Sega Master System/Technical specifications.
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. NES
The Master System is overall a more powerful console than the Nintendo Entertainment System (NES), its main rival. The NES's main CPU is an 8-bit Ricoh 2A03 (MOS 6502) CPU and its video processor is a custom-built Ricoh PPU graphics processor. The Master System's main CPU is an NEC 780C (Zilog Z80) CPU and its video processor is a Sega VDP, which is an extended version of the on the Texas Instruments TMS9918A.
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 significant performance advantage is the arithmetic. While both CPUs have similar performance when it comes to the addition and subtraction of smaller 8-bit numbers, the Z80 has a significant performance advantage for most other arithmetic operations, including multiplications and divisions (for both 8-bit and 16-bit numbers), as well as the addition and subtraction of larger 16-bit numbers (due to the Z80 having native support for 16-bit operations). The faster arithmetic of the Z80 gives it an overall performance advantage over the 2A03.
The Master System displays 16 colors per tile and 16 colors per sprite, like the 16-bit Mega Drive and SNES, 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 parallax scrolling.
One 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 addresses 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 was also capable of enhancement chips. Some of them added diagonal scrolling and line scrolling, both of which the Master System was already capable of. There were also enhancement chips which added FM synthesis capabilities, which only the Japanese Master System was capable of.
Vs. 7800
The Master System is 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. The SMS thus has most of the same advantages over the 7800 CPU as it does over the NES CPU, for the same reasons as mentioned in the NES section above.
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.
Both the NES and SMS also have separate data buses for the CPU and GPU, 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 also negatively affects the performance of both the CPU and MARIA, as the CPU has to be halted whenever MARIA accesses the bus, as only one of the two processors can access the memory at any one time. The lack of bandwidth, combined with the lack of tile compression, 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 titles such as Golden Axe, Space Harrier, Altered Beast, Road Rash and Mortal Kombat).
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.[1] 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.[2] 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. 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, 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,[3] 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.
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 numbers of "bits".
Comparison table
Console | Sega Master System (SMS)[4][5] | Nintendo Entertainment System (NES)[6][7][8][9][10] | Atari 7800[11][12][13] | |
---|---|---|---|---|
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 (MOS 6502) | MOS 6502 | |
Clock rate | NTSC | 3.579545 MHz | 1.789773 MHz | 1.789773 MHz (default), 1.193182 MHz (2600 mode) |
PAL | 3.546894 MHz | 1.662607 MHz | 1.773447 MHz (default), 1.182298 MHz (2600 mode) | |
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 | 8-bit, 16-bit | 8-bit | 8-bit |
Instructions per second | 0.52 MIPS (8-bit and 16-bit instructions) | 0.7 MIPS (8-bit instructions)[14] | Default: 0.7 MIPS (8-bit instructions) 2600 mode: 0.51 MIPS (8-bit instructions) | |
8-bit arithmetic | Additions[n 1] | Up to 800,000 adds/sec[n 2] | Up to 800,000 adds/sec[n 3] | Up to 800,000 adds/sec |
Multiplications | Up to 140,000 multiplies/sec[n 4] | Up to 100,000 multiplies/sec[n 5] | Up to 100,000 multiplies/sec | |
Divisions | Up to 40,000 divides/sec[n 6] | Up to 18,000 divides/sec[n 7] | Up to 18,000 divides/sec | |
16-bit arithmetic | Additions[n 1] | Up to 300,000 adds/sec[n 8] | Up to 80,000 adds/sec[n 9] | Up to 80,000 adds/sec |
Multiplications | Up to 30,000 multiplies/sec[n 10] | Up to 9,000 multiplies/sec[n 11] | Up to 9,000 multiplies/sec | |
Divisions | Up to 3,000 divides/sec[n 12] | Up to 1,000 divides/sec[n 13] | Up to 1,000 divides/sec | |
Graphics processing unit (GPU) | Sega VDP | Ricoh PPU | GCC MARIA | |
Clock rate | NTSC | 10.738635 MHz | 5.369317 MHz | 7.159091 MHz |
PAL | 10.640685 MHz | 5.320342 MHz | 7.093788 MHz | |
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) | 7.15909 MB/s (NTSC), 7.093788 MB/s (PAL) | |
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)[26][27] | 227×263 (NTSC), 227×313 (PAL) | |
Display resolution | Default: 256×192, 256×224 Hi-res: 256×240 |
Default: 256×192, 256×224 Hi-res: 256×240 |
Default: 160×192 Hi-res: 160×242, 320×192 | |
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 | YIQ | Y/C[1] |
Luma brightness | 100% | 100% | 50%[1] | |
Total palette | 64 colors (absolute) | 54 colors (absolute) | 16 colors (absolute), 256 colors (relative)[1] | |
Colors on screen | 32 colors | 25 colors | 25 colors (160×192 mode), 6 colors (320×192 mode)[28] | |
Colors per scanline | 32 colors | 25 colors | 12 colors[29] | |
Colors per tile | 16 colors (default), 2 colors (SG-1000 mode) | 4 colors | 3-8 colors (160×192 display), 1-3 colors (320×192 display)[30] | |
Tiles | 8×8 tiles on screen | 1152 tiles (16-color), 1280 tiles (2-color) | 1152 tiles (4-color) | 252 tiles (4-color)[31] |
Unique 8×8 tiles on screen | 488 tiles (16-color), 1024 tiles (2-color) | 512 tiles (4-color) | 252 tiles (4-color)[31] | |
8×8 tiles per scanline | 40 tiles (16-color), 48 tiles (2-color) | 40 tiles (4-color) | 21 tiles (4-color)[31] | |
8×8 tile draw fillrate | 16-color tiles: 69,030 tiles/sec (NTSC), 57,256 tiles/sec (PAL) 2-color tiles: 76,701 tiles/sec, 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)[31] |
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: 966,976 texels/s (NTSC), 805,056 texels/s (PAL) | |
VRAM tile transfer (VBlank/HBlank) |
Texel fillrate (256×192 display) |
16-color tiles: 348,990 texels/s (NTSC), 359,440 texels/s (PAL)[n 14] 2-color tiles: 1.395 MTexels/s (NTSC), 1.447 MTExels/s (PAL)[n 15] |
4-color tiles: 234,627 texels/s (NTSC), 361,650 texels/s (PAL)[n 16] | N/A |
Texel fillrate (256×224 display) |
16-color tiles: 161,072 texels/s (NTSC), 241,747 texels/s (PAL)[n 17] 2-color tiles: 651,959 texels/s (NTSC), 973,353 texels/s (PAL)[n 18] |
4-color tiles: 88,465 texels/s (NTSC), 246,434 texels/s (PAL)[n 19] | ||
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 20] |
4-color tiles: 61 tiles (NTSC), 113 tiles (PAL)[n 21] | ||
Transfer per refresh (256×224 display) |
16-color tiles: 42 tiles (NTSC), 76 tiles (PAL)[n 22] 2-color tiles: 170 tiles (NTSC), 306 tiles (PAL)[n 23] |
4-color tiles: 23 tiles (NTSC), 77 tiles (PAL)[n 24] | ||
Hardware sprite plane |
Colors per sprite | 16 colors (default), 2 colors (SG-1000 mode) | 4 colors | N/A |
Sprites on screen | 64 sprites | 64 sprites | ||
Sprite tiles on screen | 128 sprite tiles (16-color), 256 sprite tiles (2-color) |
128 sprite tiles (4-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 | 8 sprites | ||
Sprite tiles per scanline | 8 sprite tiles (16-color), 16 sprite tiles (2-color) |
8 sprite tiles (4-color) | ||
Sprite texels per scanline | 64 texels (16-color), 128 texels (2-color) | 64 texels (4-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) | ||
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 pixels/s (NTSC), 362,000 pixels/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) | ||
Transfer per frame (256×192) | 16-color sprites: 64 sprites[5] | 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 tiles on screen | 1024 tiles | 1024 tiles | ||
Unique BG tiles on screen | 448 tiles (16-color), 768 tiles (2-color) | 512 tiles (4-color) | ||
Background tile flipping | Yes | No | ||
BG tiles per scanline | 32 tiles | 32 tiles | ||
BG texels per scanline | 256 texels | 256 texels | ||
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) | 1.78 MB/s to 6.66 MB/s[n 25] | |
CPU instruction fetch | 1.2 MB/s[n 26] | Up to 1.6 MB/s[n 27] | Up to 1.6 MB/s | |
GPU tile fetch | 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)[31] | |
CPU 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) | ||
GPU Video RAM (VRAM) |
Memory | 16 KB (XRAM/PSRAM) | 2 KB (SRAM) | N/A |
Bandwidth | 7.692306 MB/s[n 28] | 5.369317 MB/s (NTSC), 5 MB/s (PAL)[n 29] | ||
Transfer (inactive display) | 298.295 KB/s (NTSC), 295.574 KB/s (PAL)[n 30] | 298.295 KB/s (NTSC), 277.101 KB/s (PAL)[n 31] | ||
Transfer (256×192 display) | 174.794 KB/s (NTSC),[n 32] 181.112 KB/s (PAL)[n 33] | 59.137 KB/s (NTSC),[n 34] 90.562 KB/s (PAL)[n 35] | ||
Transfer (256×224 display) | 81.914 KB/s (NTSC),[n 36] 121.818 KB/s (PAL)[n 37] | 22.717 KB/s (NTSC),[n 38] 62.158 KB/s (PAL)[n 39] |
Notes
- ↑ 1.0 1.1 [Same performance for subtractions Same performance for subtractions]
- ↑ [Minimum 4 cycles per 8-bit add[15] Minimum 4 cycles per 8-bit add[15]]
- ↑ [Minimum 2 cycles per 8-bit add[16] Minimum 2 cycles per 8-bit add[16]]
- ↑ [Minimum 25 cycles per 8-bit multiply[17] Minimum 25 cycles per 8-bit multiply[17]]
- ↑ [Minimum 17 cycles per 8-bit multiply[18] Minimum 17 cycles per 8-bit multiply[18]]
- ↑ [Minimum 81 cycles per 8-bit divide[19] Minimum 81 cycles per 8-bit divide[19]]
- ↑ [Minimum 98 cycles per 8-bit divide[20] Minimum 98 cycles per 8-bit divide[20]]
- ↑ [Minimum 11 cycles per 16-bit add[15] Minimum 11 cycles per 16-bit add[15]]
- ↑ [Minimum 22 cycles per 16-bit add (2 cycles CLC, 4 cycles LDA, 4 cycles ADC, 6 cycles STA, 6 cycles RTS)[21][16] Minimum 22 cycles per 16-bit add (2 cycles CLC, 4 cycles LDA, 4 cycles ADC, 6 cycles STA, 6 cycles RTS)[21][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)[22][15] 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)[22][15]]
- ↑ [Minimum 192 cycles per 16-bit multiply[23] Minimum 192 cycles per 16-bit multiply[23]]
- ↑ [Approximately 1070 cycles per 16-bit divide[24] Approximately 1070 cycles per 16-bit divide[24]]
- ↑ [Approximately 1900 cycles per 16-bit divide[25] Approximately 1900 cycles per 16-bit divide[25]]
- ↑ [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] - ↑ [150 ns[32] 150 ns[32]]
- ↑ [3 cycles per byte[33] 3 cycles per byte[33]]
- ↑ [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)[8] 8-bit, 150 ns (NTSC), 200 ns (PAL)[8]]
- ↑ [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]
References
- ↑ 1.0 1.1 1.2 1.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
- ↑ Sega Master System/Technical specifications
- ↑ 5.0 5.1 How many bytes can I write to VRAM per frame?
- ↑ NES hardware specifications
- ↑ Sega Master System vs Nintendo Entertainment System
- ↑ 8.0 8.1 Nintendo NES-001
- ↑ Cycle reference chart
- ↑ Screen flashes garbage chars when I update background tiles
- ↑ 7800 hardware facts
- ↑ Atari 7800 Progamming
- ↑ Video Game Systems: Atari 7800
- ↑ Obsolete Microprocessors
- ↑ 15.0 15.1 15.2 Instruction Set
- ↑ 16.0 16.1 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
- ↑ NTSC video
- ↑ PAL video
- ↑ Testing 320 mode with Pac-Man
- ↑ Can an NES game be made into a 7800 version?
- ↑ 7800basic Guide
- ↑ 31.0 31.1 31.2 31.3 31.4 Realistic Sprite Limits?
- ↑ 7800 Chips
- ↑ File:Zilog Z80 Programmer's Reference Manual.pdf, page 33