Difference between revisions of "Blast processing"

From Sega Retro

Line 249: Line 249:
 
! rowspan=2 | [[VRAM|Video RAM <br> (VRAM)]]
 
! rowspan=2 | [[VRAM|Video RAM <br> (VRAM)]]
 
! Memory
 
! Memory
| 64 KB [[VRAM]] ([[wikipedia:Dual-ported RAM|DPRAM]]) <br> (64 KB [[wikipedia:FPM DRAM|FPM DRAM]], 256 bytes [[wikipedia:Sequential access memory|SAM]] buffer)
+
| 64 KB [[VRAM]] ([[wikipedia:Dual-ported RAM|Dual-Port]]) <br> (64 KB [[wikipedia:FPM DRAM|FPM DRAM]], 256 bytes [[wikipedia:Sequential access memory|SAM]] buffer)
 
| 64 KB [[SRAM]] (VRAM)
 
| 64 KB [[SRAM]] (VRAM)
 
|-
 
|-

Revision as of 09:53, 18 October 2018

Blast Processing was a marketing term coined by Sega of America to advertise the faster processing performance of the Sega Mega Drive (Sega Genesis in that region) compared to competing platforms at the time, specifically the Super Nintendo Entertainment System.

Sonic the Hedgehog 2 was the posterboy for this campaign, being faster than any other platform game at the time. The ad campaign featured commercials with races between two vehicles, with the Super NES strapped to one and the Genesis strapped to the other.

Sega originally coined the term to refer to the Yamaha YM7101 VDP graphics processor's DMA controller, which was capable of high-speed DMA, bandwidth and fillrate. It was a reference to how the DMA controller could quickly "blast" data into the VDP graphics processor and the DAC through high-speed DMA (direct memory access). However, due to a lack of explanation from Sega's marketing department, much of the gaming media in the 1990s had assumed it was referring to the 68000 CPU's higher clock rate. This misconception was widespread up until the 2000s, when interviews with former Sega staff eventually revealed that "Blast Processing" was actually a reference to the DMA controller originally.

History

Origins

Error creating thumbnail:

According to Sega staff involved in its development and marketing, it was the high-speed DMA controller, rather than the CPU clock rate, that the term was actually referring to. According to Sega of America's former technical director Scot Bayless:[1]


the PR guys interviewed me about what made the platform interesting from a technical standpoint and somewhere in there I mentioned the fact that you could just "blast data into the DAC's". Well they loved the word 'blast' and the next thing I knew Blast Processing was born.

— Scot Bayless


One of the specific DMA programming techniques he was referring to was the mid-frame palette swap, where the color could be changed every scanline, increasing the colors displayed on screen, a technique that was used in Sonic 2:[2]


Marty Franz [Sega technical director] discovered that you could do this nifty trick with the display system by hooking the scan line interrupt and firing off a DMA at just the right time. The result was that you could effectively jam data onto the graphics chip while the scan line was being drawn – which meant you could drive the DAC's with 8 bits per pixel. Assuming you could get the timing just right you could draw 256 color static images. There were all kinds of subtleties to the timing and the trick didn't work reliably on all iterations of the hardware but you could do it and it was cool as heck.

— Scot Bayless


Many of these DMA programmable techniques were originally intended by the Mega Drive's original product designer Masami Ishikawa:[3]


the sprite size could be changed to fill the whole display. It could also display the background screen behind the scrolling window and could change the color of each line. The number of available colors was limited compared to comparable arcade systems, but it could create shadows that matched each character's shape and was also capable of semi-transparency.

Masami Ishikawa


Response

In response to Sega's successful "Blast Processing" marketing campaign in the wake of Sonic the Hedgehog 2 since 1992, Nintendo mounted a successful magazine advertising campaign two years later in 1994. They published an advertisement entitled "SMASHING The Myth About Speed and Power" in popular video game magazines such as Electronic Gaming Monthly, GamePro and Game Players.[4][5]

The advertisement was presented as a two-page, pseudo-editorial piece. While it had the word "advertisement" in very small writing, it was not made clear to readers that it was written by Nintendo, misleading many to believe it was a legitimate editorial piece written by the actual magazines. Nintendo's pseudo-editorial piece claimed that "Blast Processing" is a "Myth" and made a number of other claims intended to make the SNES look technically superior to the Genesis in every way other than the CPU clock rate. However, a number of the claims made in Nintedo's pseudo-editorial advertisement were either inaccurate or misleading:

  • It claimed that the Genesis did not have any hardware/technology that gave a "Blast" boost. However, the term "Blast Processing" was originally coined to refer to its VDP's DMA controller "blasting" data at higher speeds than the SNES.
  • It claimed that the SNES was just as fast as the Genesis. To support this claim, it noted that, while the SNES's Ricoh 5A22 CPU has a slower clock rate, it has a faster memory transfer cycle time, claiming that this gives it faster data transfer speed. However, the Mega Drive's 68000 CPU has a wider 16-bit external data bus, twice as wide as the 5A22's 8-bit external data bus, which means the 68000 transfers 16-bit data at a time, whereas the 5A22 transfers 8-bit data at a time, giving the 68000 a faster data transfer speed.
  • It claimed the SNES's larger RAM gives it superiority in terms of speeding-up programs. However, RAM speed is largely determined by bandwidth. The Genesis has faster RAM bandwidth, making it faster for program access. Furthermore, it is fast enough to read program data directly from the ROM cartridge without necessarily needing to load program data to the internal RAM, allowing the ROM cartridge to effectively be used like extended RAM.
  • It claimed that the Genesis only had a 256-color palette. However, the Genesis has a 512-color palette (or 1536 colors in shadow/highlight mode).
  • It claimed that the SNES is capable of scaling Sonic. However, Mode 7 only scales backgrounds, not sprites.
  • It suggested that the Genesis is not capable of scaling or rotation. However, the Genesis is capable of these effects through software programming, by relying on its CPU's faster arithmetic and the VDP's faster DMA controller.
  • It suggested that only the SNES has specialised DMA hardware capable of high-speed DMA. However, the Genesis has a DMA controller with faster DMA transfer speeds than the SNES.
  • Its statement that the SNES has a higher sprite display limit is true, but misleading, as it can only reach its display limit when using small sprites. The Genesis displays more sprite tiles and has a higher sprite fillrate, which allows the Genesis to display a higher number of large sprites, as well as a greater variety of sprites.
  • Its claim that the SNES produces sharper sound than the Genesis is not true, as the Mega Drive's Yamaha YM2612 sound chip produces a higher 53 kHz output (with FM-synth) than the Super Nintendo's Sony SPC700 chip which produces 32 kHz output, and the SPC700's Gaussian filtering further limits the chip's frequency range, resulting in a more muffled sound on the SNES and clearer audio clarity on the Genesis.
  • Its implication that only the SNES has true digital sound is not true, as the Mega Drive's YM2612 chip is also capable of playing true digital PCM sound.
  • Its statement that the SNES produces more realistic sound is true, but misleading. While the SNES is capable of higher-quality 16-bit 32 kHz PCM samples than the Mega Drive's 8-bit 27 kHz PCM samples, the Super Nintendo's lack of general DMA for sound effectively limits it to playing lower-quality 8-bit 16 kHz samples during gameplay, whereas the Mega Drive's high-speed DMA can stream high-quality 27 kHz samples during gameplay.

Despite these misleading claims and inaccuracies, Nintendo's pseudo-editorial advertisement helped create the perception that Sega's marketing department were being dishonest and that there is no basis for the "Blast Processing" label, leading to backlash against the "Blast Processing" label and a general distrust of Sega's marketing department.

Technical details

For more technical details on Mega Drive, see Mega Drive: Technical specifications and Mega Drive: Blast processing

The term was used to refer to either the faster CPU processor (which was a popular misconception in the 1990s) or the VDP graphics processor's faster DMA controller (which is what the term actually referred to originally, but this was not known to the public until the 2000s).

CPU

The Mega Drive's main CPU (central processing unit) was clocked over two times faster than the one in its rival product, the SNES. Sega's Motorola 68000 processor was clocked at 7.67 MHz, compared to the 3.58 MHz clock speed of Nintendo's Ricoh 5A22 CPU processor. However, the idea of simply comparing CPU clock rates to determine performance, regardless of other characteristics, is commonly known as the megahertz myth. While Nintendo's 5A22 did run slower in clock cycles per second, it would put out more instructions per clock cycle, giving it a similar MIPS (million instructions per second) performance to Sega's 68000.

The 68000's faster performance came from other advantages, such as a wider 32-bit internal data bus (compared to the 5A22's 16-bit internal data bus), wider 16-bit external data bus (compared to the 5A22's 8-bit external data bus), faster memory bandwidth, more registers, a more powerful 32-bit instruction set,[6] faster arithmetic calculations (with more precision), and shared codebase with arcade games (where the 68000 saw widespread use).

Console Sega Mega Drive[7] Super Nintendo[8][9][10][11]
Main CPU Motorola 68000 Ricoh 5A22
Clock rate Internal 7.670453 MHz (NTSC),
7.600489 MHz (PAL)
2.684658–3.579545 MHz (NTSC),
2.660171–3.546895 MHz (PAL)
External 5 MHz (RAM/ROM) 2.660171–2.684658 MHz (RAM),
2.660171–3.579545 MHz (ROM)
Bits Data bus width 32-bit internal, 16-bit external 16-bit internal, 8-bit external
Arithmetic logic
units
16-bit data ALU,
32-bit address ALU (2x 16-bit ALU)
16-bit ALU
Word length 16-bit 16-bit
Internal
instructions
Registers 16x 32-bit registers 4x 16-bit registers, 4x 8-bit registers
Instruction set 16-bit, 32-bit 8-bit, 16-bit
Instructions per
second
1.342329 MIPS (NTSC),
1.330085 MIPS (PAL)
1.125–1.5 MIPS (NTSC),
1.114738–1.486318 MIPS (PAL)
Work RAM Memory 64 KB PSRAM (16-bit, 5.263157 MHz) 128 KB DRAM (8-bit, 2.660171–2.684658 MHz)
Bandwidth 10.526314 MB/s (5 MB/s CPU access)
CPU access per frame: 81 KB (NTSC), 98 KB (PAL)
2.684658 MB/s (NTSC), 2.660171 MB/s (PAL)
CPU access per frame: 43 KB (NTSC), 51 KB (PAL)
CPU transfer 3.835226 MB/s (NTSC), 3.800244 MB/s (PAL)[n 1]
Transfer per frame: 62 KB (NTSC), 73 KB (PAL)
2.684658 MB/s (NTSC), 2.660171 MB/s (PAL)[n 2]
Transfer per frame: 43 KB (NTSC), 51 KB (PAL)
Cartridge
ROM
Memory 128 KB to 8 MB 128 KB to 6 MB
Bandwidth 10–15.340906 MB/s (5 MB/s CPU access) 2.5–3.579545 MB/s
CPU transfer 3.835226 MB/s (NTSC), 3.800244 MB/s (PAL) 2.684658–3.579545 MB/s (NTSC),
2.660171–3.546895 MB/s (PAL)[n 3]
Fixed-point
arithmetic
Additions 639,000 adds/sec[n 4] 596,000 adds/sec[n 5]
Multiplications 109,000 multiplies/sec (16×16)[n 6] 65,000 multiplies/sec (16×8),[n 7]
32,000 multiplies/sec (16×16),[n 8]
94,000 multiplies/sec (Mode 7)[n 9]
Divisions 54,000 divides/sec (16-bit)[n 10] 51,000 divides/sec (16-bit)[n 11]
3D polygon
geometry
Base CPU 3300 polys/s 260 polys/s[n 12]
Cartridge
enhancement
chips
Sega Virtua Processor (23.01136 MHz)
50,000 polys/s
Super FX (10.738635 MHz)[18]
10,000 polys/s[n 13]
Super FX 2 (21.47727 MHz)[18]
20,000 polys/s
Audio CPU Zilog Z80 Sony SPC700
Clock rate Internal 3.579545 MHz (NTSC), 3.546894 MHz (PAL) 1.024 MHz
External 1.193182 MHz (NTSC), 1.182298 MHz (PAL)[19] 1.024 MHz
Bits Bus width 8-bit 8-bit
Word length 8-bit 8-bit
Instruction set 8-bit, 16-bit 8-bit, 16-bit
Instructions per
second
NTSC 0.519034 MIPS 0.44032 MIPS[20]
PAL 0.5143 MIPS 0.44032 MIPS
Audio RAM Memory 8 KB SRAM/XRAM (8-bit, 3.030303 MHz) 64 KB SRAM (8-bit, 1.024 MHz)
Bandwidth 3.030303 MB/s (1.193182 MB/s Z80 access) 1.024 MB/s

DMA

The Sega Mega Drive's Yamaha YM7101 VDP graphics processor had a powerful DMA controller that could handle DMA (direct memory access) operations at much faster speeds than the SNES.[6] The Mega Drive's DMA controller is part of the VDP, which is located on the same Yamaha IC6 integrated circuit as the sound chips,[21] allowing the DMA controller to perform high-speed DMA transfers for graphics and sound, without relying on the main CPU. In comparison, the Super Nintendo's DMA unit is part of its Ricoh 5A22 CPU, which the SNES had to rely on to setup DMA transfers for graphics while also preventing general DMA transfers for sound.[9]

The Mega Drive could write to VRAM during active display, VBlank, and HBlank,[22] whereas the SNES could only do so during VBlank and HBlank. The Mega Drive had higher memory bandwidth and was capable of quicker DMA transfer rates, giving it a faster performance than the SNES,[10] and helped give the Mega Drive a higher fillrate, higher gameplay resolution, faster parallax scrolling, fast data blitting, and high frame-rate with many moving objects on screen, and allowed it to display more unique tiles (background and sprite tiles) and large sprites (32×32 and higher) on screen, and quickly transfer more unique tiles and large sprites (16×16 and higher) on screen.

The Mega Drive's DMA capabilities also helped give it more flexibility, allowing the hardware to be programmed in various different ways. Combining the CPU's fast arithmetic with the VDP's fast DMA, it could replicate some of the SNES's hardware features with software programming, such as larger 64×64 sprites (combining 32×32 sprites), background scaling and rotation (like the Sega X Board and Mode 7), and direct color (increasing colors on screen). Other programmable capabilities include mid-frame palette swaps (increasing colors per scanline), bitmap framebuffers, sprite scaling and rotation, ray casting, and 3D polygon graphics; the base Mega Drive hardware (without needing any cartridge enhancement chips) could render 3D polygons with a performance comparable to the SNES's optional Super FX (SFX) cartridge enhancement chip,[23][24][25][26] which itself was significantly outperformed by the Mega Drive's optional Sega Virtua Processor (SVP) cartridge enhancement chip.

The Yamaha VDP's DMA controller is also fast enough to stream data directly from the ROM cartridge without needing to transfer data to the Mega Drive's internal RAM, allowing the ROM cartridge to function like a large extended RAM, which negates the Super Nintendo's larger internal RAM advantage. The Mega Drive's DMA hardware is also capable of streaming high-quality PCM sound samples directly from the ROM cartridge, using it like extended audio RAM, during gameplay.[27] In comparison, the Super Nintendo's audio hardware does not support general DMA,[9] needs to load samples to its limited 64 KB internal audio RAM, and cannot play high-quality samples during gameplay as that would strain the system's CPU and bandwidth.

One aspect of the SNES hardware that the Mega Drive cannot replicated with DMA is its color palette. While DMA programming techniques such as those mentioned above could allow the Mega Drive to either match or approach the 256 on-screen color display of the SNES, the Mega Drive cannot come close to the overall 32,768 selectable color palette of the SNES. But when in direct color mode (required for certain types of three-dimensional graphics, such as ray casting and 3D polygons), the SNES and Mega Drive were both on-par in terms of colors (as the SNES cannot use its 32,768 color palette in direct color mode).

Console Sega Mega Drive[7] Super Nintendo[8][9][10][11][28]
System
master
clock rate
NTSC 53.693175 MHz 21.47727 MHz
PAL 53.203424 MHz 21.28137 MHz
Graphics processing unit (GPU) Sega 315‑5313 VDP (Yamaha YM7101) Ricoh S-PPU (PPU1 & PPU2)
Internal
clock rate
NTSC 13.423294 MHz 5.579545 MHz (PPU1), 3.579545 MHz (PPU2)
PAL 13.300856 MHz 5.320343 MHz (PPU1), 3.546895 MHz (PPU2)
External
clock rate
RAM 13.423294 MHz (NTSC), 13.300856 MHz (PAL) 5.320343–5.579545 MHz (PPU1),
3.546895–3.546895 MHz (PPU2)
ROM 5–7.670453 MHz (NTSC), 5–7.600489 MHz (PAL) 2.660171–3.579545 MHz
Internal
GPU cache
Cache 232 bytes
(72 bytes CRAM, 80 bytes VSRAM, 80 bytes sprite buffer)
1056 bytes
(544 bytes PPU1 OAM, 512 bytes PPU2 CGRAM)
Bandwidth 26.846588 MB/s (NTSC), 26.601712 MB/s (PAL) PPU1 OAM:
11.15909 MB/s (NTSC), 10.640685 MB/s (PAL)
PPU2 CGRAM:
7.15909 MB/s (NTSC), 7.09379 MB/s (PAL)
Video RAM
(VRAM)
Memory 64 KB VRAM (Dual-Port)
(64 KB FPM DRAM, 256 bytes SAM buffer)
64 KB SRAM (VRAM)
Bandwidth 13.423294 MB/s (NTSC), 13.300856 MB/s (PAL) 11.15909 MB/s (NTSC), 10.640685 MB/s (PAL)
DMA controller Sega 315‑5313 VDP (Yamaha YM7101) Ricoh 5A22 (CPU DMA unit)
Internal
clock rate
NTSC 13.423294 MHz 2.684658–3.579545 MHz
PAL 13.300856 MHz 2.660171–3.546895 MHz
External
clock rate
RAM 11.764705 MHz (NTSC), 8.333333 MHz (PAL) 2.684658 MHz (NTSC), 2.660171 MHz (PAL)
ROM 5–7.670453 MHz (NTSC), 5–7.600489 MHz (PAL) 2.660171–3.579545 MHz
DMA blitting
transfer rate
VBlank
(inactive display)
VRAM: 3.21845 MB/s, 205 bytes per scanline
VDP cache: 6.4369 MB/s, 410 bytes per scanline
NTSC: 2.684658 MB/s, 170.5 bytes per scanline
PAL: 2.660171 MB/s, 170.5 bytes per scanline
HBlank/Active display
(VRAM)
320×224: 708.406 KB/s (NTSC), 1.09701 MB/s (PAL)
320×160: 1.437846 MB/s (NTSC), 1.702026 MB/s (PAL)
256×224: 443.228 KB/s (NTSC), 795.11 KB/s (PAL)
256×192: 763.435 KB/s (NTSC), 1.061548 MB/s (PAL)
HBlank/Active display
(cache)
320×224: 1.416813 MB/s (NTSC), 2.194021 MB/s (PAL)
320×160: 2.875692 MB/s (NTSC), 3.404052 MB/s (PAL)
Fillrate Read fillrate 6.650428–6.934358 MPixels/s 5.320342–5.369317 MPixels/s
Write fillrate
(VBlank/inactive display)
6.4369 MPixels/s,
410 pixels per scanline
5.320342–5.369317 MPixels/s,
341 pixels per scanline
Write fillrate
(HBlank/active display)
1.416813–2.875692 MPixels/s (NTSC),
2.194021–3.404052 MPixels/s (PAL)
886,457 pixels/s (NTSC),
1.59022 MPixels/s (PAL)
Tiles on screen
(HBlank/active display)
Display: 1808 tiles
Blit per frame: 369 tiles (NTSC), 1070 tiles (PAL)
Display: 1395 tiles (NTSC), 1536 tiles (PAL)
Blit per frame: 230 tiles (NTSC), 496 tiles (PAL)
Sprites Sprite fillrate 4.90887 MTexels/s, 320 texels per scanline 4.282881 MTexels/s, 272 texels per scanline
Sprite tiles 1280 sprite tiles on screen 512 sprite tiles on screen
Sprites on
screen
80 sprites (8×8 to 32×32), 20 sprites (64×64),
5 sprites (128×128)
128 sprites (8×8, 16×16), 69 sprites (32×32),
17 sprites (64×64), 4 sprites (128×128)
Unique sprites
on screen
80 sprites (8×8 to 32×32), 20 sprites (64×64),
5 sprites (128×128)
128 sprites (8×8, 16×16), 32 sprites (32×32),
8 sprites (64×64), 2 sprites (128×128)
Blit per frame
(NTSC)
80 sprites (8×8 to 16×16), 41 sprites (24×24),
23 sprites (32×32), 5 sprites (64×64)
128 sprites (8×8), 57 sprites (16×16),
14 sprites (32×32), 3 sprites (64×64)
Blit per frame
(PAL)
80 sprites (8×8 to 24×24), 66 sprites (32×32),
16 sprites (64×64), 4 sprites (128×128)
128 sprites (8×8), 124 sprites (16×16),
31 sprites (32×32), 7 sprites (64×64)
Sprites per
scanline
20 sprites (8×8 to 16×16), 13 sprites (24×24),
10 sprites (32×32), 5 sprites (64×64)
32 sprites (8×8), 17 sprites (16×16),
8 sprites (32×32), 4 sprites (64×64)
Background
planes
Background tiles
on screen
1344–1808 background tiles 256–1024 background tiles
Tilemap planes 2 scrolling planes (1344–1808 tiles), 1 static window plane,
40–64 overlapping scrolling layers (20–32 layers per plane)
1–4 planes (256–1024 tiles)
Tilemap
resolution
256×256 to 512×512 (2 planes, 1344–1808 tiles),
1024×256 (2 planes, 1344–1424 tiles)
256×256 to 512×512 (1–4 planes, 256–1024 tiles),
1024×1024 (1 plane, 256 tiles)
Scrolling
capabilities
Parallax scrolling, line scrolling, tile scrolling,
row/column scrolling, overlapping scrolling layers
Parallax scrolling, line scrolling, tile scrolling
Resolution Overscan 427×262 (NTSC), 423×312 (PAL) 341×262 (NTSC), 341×312 (PAL)
Display
resolution
Gameplay: 256×224 to 320×480 (default 320×224)
Custom: 128×160 to 320×160, 128×224 to 160×224
Gameplay: 256×224 to 256×239 (default 256×224)
Pseudo-hires text: 512×448, 512×478 (half-pixels)
Colors Color palettes 512 colors (default),
1536 colors (Shadow/Highlight),
4096 colors (static image demo)
32,768 colors (default),
256–4096 colors (direct color)
Colors on
screen
61–64 (default), 183–192 (Shadow/Highlight),
256–512 (direct color),
1536 (scrolling background demo)
128–256 (1–2 planes), 128–160 (3 planes),
128 (4 planes), 2723 (static image demo)
Colors per tile 16 colors (2 planes), 16–256 colors (palette swap),
256–512 colors (direct color)
16 colors (1–2 planes), 8 colors (3 planes),
4 colors (4 planes), 256 colors (direct color)
3D polygon
rendering
Base hardware 1800 polys/s (flat), 1000 polys/s (textured) 190 polys/s (flat),[n 14] 140 polys/s (textured)[n 15]
Cartridge
enhancement
chips
Sega Virtua Processor (23.01136 MHz)
20,000 polys/s (flat), 3000 polys/s (textured)
Super FX (10.738635 MHz)[18]
2000 polys/s (flat),[n 16] 1000 polys/s (textured)[n 17]
Super FX 2 (21.47727 MHz)[18]
4000 polys/s (flat), 2000 polys/s (textured)

Notes

  1. [16-bit data bus, 7.670453 MHz (NTSC) or 7.600489 MHz (PAL), 4 cycles per word, 16-bit (2 bytes) per word, 2 cycles per byte 16-bit data bus, 7.670453 MHz (NTSC) or 7.600489 MHz (PAL), 4 cycles per word, 16-bit (2 bytes) per word, 2 cycles per byte]
  2. [8-bit data bus, 2.684658 MHz (NTSC), 2.660171 MHz (PAL), 1 cycle per byte 8-bit data bus, 2.684658 MHz (NTSC), 2.660171 MHz (PAL), 1 cycle per byte]
  3. [8-bit data bus, 2.684658–3.579545 MHz (NTSC), 2.660171–3.546895 MHz (PAL), 1 cycle per byte 8-bit data bus, 2.684658–3.579545 MHz (NTSC), 2.660171–3.546895 MHz (PAL), 1 cycle per byte]
  4. [12 cycles per add[12] 12 cycles per add[12]]
  5. [6 cycles per add: 17 cycles per 3 adds (2 cycles LDA, 6 cycles CLC, 6 cycles ADC, 3 cycles STA)[13][14] 6 cycles per add: 17 cycles per 3 adds (2 cycles LDA, 6 cycles CLC, 6 cycles ADC, 3 cycles STA)[13][14]]
  6. [70 cycles per multiply[12] 70 cycles per multiply[12]]
  7. [55 cycles per 16×8 multiply (3 cycles SEP, 6 cycles STA, 3 cycles STY, 12 cycles NOP, 2 cycles LDA, 4 cycles LDY, 6 cycles XBA, 2 cycles TYA, 2 cycles CLC, 2 cycles ADC, 2 cycles BCC, 2 cycles INY, 3 cycles REP, 6 cycles RTS)[15][14] 55 cycles per 16×8 multiply (3 cycles SEP, 6 cycles STA, 3 cycles STY, 12 cycles NOP, 2 cycles LDA, 4 cycles LDY, 6 cycles XBA, 2 cycles TYA, 2 cycles CLC, 2 cycles ADC, 2 cycles BCC, 2 cycles INY, 3 cycles REP, 6 cycles RTS)[15][14]]
  8. [110 cycles per 16×16 multiply (2x 16×8 multiplies) 110 cycles per 16×16 multiply (2x 16×8 multiplies)]
  9. [38 cycles per Mode 7 multiply (3 cycles SEP, 7 cycles STA, 3 cycles XBA, 6 cycles STA, 6 cycles STY, 3 cycles REP, 2 cycles LDA, 2 cycles LDY, 6 cycles RTS)[15][14] 38 cycles per Mode 7 multiply (3 cycles SEP, 7 cycles STA, 3 cycles XBA, 6 cycles STA, 6 cycles STY, 3 cycles REP, 2 cycles LDA, 2 cycles LDY, 6 cycles RTS)[15][14]]
  10. [140 cycles per divide[12] 140 cycles per divide[12]]
  11. [70 cycles per divide (3 cycles STZ, 2 cycles LDY, 2 cycles ASL, 2 cycles BCS, 2 cycles INY, 2 cycles CPY, 4 cycles BNE, 7 cycles ROR, 3 cycles PHA, 2 cycles TXA, 2 cycles SEC, 7 cycles SBC, 4 cycles BCC, 2 cycles TAX, 7 cycles ROL, 4 cycles PLA, 7 cycles LSR, 2 cycles DEY, 6 cycles RTS)[16][14] 70 cycles per divide (3 cycles STZ, 2 cycles LDY, 2 cycles ASL, 2 cycles BCS, 2 cycles INY, 2 cycles CPY, 4 cycles BNE, 7 cycles ROR, 3 cycles PHA, 2 cycles TXA, 2 cycles SEC, 7 cycles SBC, 4 cycles BCC, 2 cycles TAX, 7 cycles ROL, 4 cycles PLA, 7 cycles LSR, 2 cycles DEY, 6 cycles RTS)[16][14]]
  12. [SNES CPU geometry calculations: 13.32 kHz per polygon (80 adds, 111 multiplies, 9 divides)[17] SNES CPU geometry calculations: 13.32 kHz per polygon (80 adds, 111 multiplies, 9 divides)[17]]
  13. [Super FX geometry calculations: 923 cycles per polygon (80 adds, 111 multiplies, 9 divides),[17] 1 cycle per add, 5 cycles per 16×16 multiply, 32 cycles per 16-bit divide[18] Super FX geometry calculations: 923 cycles per polygon (80 adds, 111 multiplies, 9 divides),[17] 1 cycle per add, 5 cycles per 16×16 multiply, 32 cycles per 16-bit divide[18]]
  14. [SNES CPU rendering:
    • Framebuffer rendering: 256×160 framebuffer (double-buffered, 40 KB), 15 FPS (614.4 KB/s), 819.64 kHz framebuffer DMA (1.334 kHz per KB,[29] 30 cycles setup), 30 cycles per DMA setup (4 cycles LDX, 6 cycles STX, 8 cycles LDA, 12 cycles STA)[30][14]
    • Polygon rendering: 2.759905 MHz (15 FPS), 14.223 kHz per 8×8 pixel polygon
      • 13.32 kHz geometry per polygon
      • 361 Hz polygon rendering per polygon: 24 comparison cycles (12 comparisons,[31] 2 cycles per CPY comparison),[14] 7 assignments (6 rasterization assignments,[31] 1 flat shading assignment),[32] 220 multiply cycles (2 multiplies), 24 add cycles (4 adds), 5 broadcasts,[33] 110 cycles DMA access (40 bytes per polygon, 2 cycles per byte, 30 cycles setup)[34]
      • 542 Hz pixel rendering per 8×8 pixel polygon: 384 add cycles (1 add per pixel),[35] 158 cycles DMA (1 byte per pixel, 2 cycles per pixel, 30 cycles setup) SNES CPU rendering:
    • Framebuffer rendering: 256×160 framebuffer (double-buffered, 40 KB), 15 FPS (614.4 KB/s), 819.64 kHz framebuffer DMA (1.334 kHz per KB,[29] 30 cycles setup), 30 cycles per DMA setup (4 cycles LDX, 6 cycles STX, 8 cycles LDA, 12 cycles STA)[30][14]
    • Polygon rendering: 2.759905 MHz (15 FPS), 14.223 kHz per 8×8 pixel polygon
      • 13.32 kHz geometry per polygon
      • 361 Hz polygon rendering per polygon: 24 comparison cycles (12 comparisons,[31] 2 cycles per CPY comparison),[14] 7 assignments (6 rasterization assignments,[31] 1 flat shading assignment),[32] 220 multiply cycles (2 multiplies), 24 add cycles (4 adds), 5 broadcasts,[33] 110 cycles DMA access (40 bytes per polygon, 2 cycles per byte, 30 cycles setup)[34]
      • 542 Hz pixel rendering per 8×8 pixel polygon: 384 add cycles (1 add per pixel),[35] 158 cycles DMA (1 byte per pixel, 2 cycles per pixel, 30 cycles setup)]
  15. [SNES CPU texture mapping: 18.746 kHz per 8×8 texel polygon (5.426 kHz texture mapping per 8×8 texel polygon)
    • 316 cycles DMA per 8×8 texel texture: 2 block moves, 2 cycles per texel (1 byte per texel), 30 cycles setup
    • 5110 divide cycles per 8×8 texel polygon: 73 divides per 8×8 texel polygon, 630 vertex divide cycles per polygon (9 divides per polygon), 4480 texel divide cycles per 8×8 texel polygon (64 divides, 1 divide per texel)[36] SNES CPU texture mapping: 18.746 kHz per 8×8 texel polygon (5.426 kHz texture mapping per 8×8 texel polygon)
    • 316 cycles DMA per 8×8 texel texture: 2 block moves, 2 cycles per texel (1 byte per texel), 30 cycles setup
    • 5110 divide cycles per 8×8 texel polygon: 73 divides per 8×8 texel polygon, 630 vertex divide cycles per polygon (9 divides per polygon), 4480 texel divide cycles per 8×8 texel polygon (64 divides, 1 divide per texel)[36]]
  16. [Super FX rendering:
    • Framebuffer rendering: 256×192 framebuffer (double-buffered, 48 KB), 15 FPS (737.28 KB/s), 983.562 kHz CPU framebuffer DMA (1.334 kHz per KB, 30 cycles setup), 2.950686 MHz Super FX cycles
    • Polygon rendering: 7.787949 MHz (15 FPS) Super FX cycles available, 3.632 kHz per 8×8 pixel polygon
      • Geometry per polygon: 923 Super FX cycles
      • Polygon rendering per polygon: 1083 Super FX cycles (361 CPU cycles)
      • Pixel rendering per 8×8 pixel polygon: 1626 Super FX cycles (542 CPU cycles) Super FX rendering:
    • Framebuffer rendering: 256×192 framebuffer (double-buffered, 48 KB), 15 FPS (737.28 KB/s), 983.562 kHz CPU framebuffer DMA (1.334 kHz per KB, 30 cycles setup), 2.950686 MHz Super FX cycles
    • Polygon rendering: 7.787949 MHz (15 FPS) Super FX cycles available, 3.632 kHz per 8×8 pixel polygon
      • Geometry per polygon: 923 Super FX cycles
      • Polygon rendering per polygon: 1083 Super FX cycles (361 CPU cycles)
      • Pixel rendering per 8×8 pixel polygon: 1626 Super FX cycles (542 CPU cycles)]
  17. [Super FX texture mapping: 6.916 kHz per 8×8 texel polygon (3.284 kHz texture mapping per 8×8 texel polygon)
    • 948 Super FX cycles (316 CPU cycles) DMA per 8×8 texel texture
    • 2336 divide cycles per 8×8 texel polygon: 73 divides per 8×8 texel polygon, 288 vertex divide cycles per polygon (9 divides per polygon), 2048 texel divide cycles per 8×8 texel polygon (64 divides, 1 divide per texel) Super FX texture mapping: 6.916 kHz per 8×8 texel polygon (3.284 kHz texture mapping per 8×8 texel polygon)
    • 948 Super FX cycles (316 CPU cycles) DMA per 8×8 texel texture
    • 2336 divide cycles per 8×8 texel polygon: 73 divides per 8×8 texel polygon, 288 vertex divide cycles per polygon (9 divides per polygon), 2048 texel divide cycles per 8×8 texel polygon (64 divides, 1 divide per texel)]

References

  1. [Damien McFerran, "Retroinspection: Mega-CD", Retro Gamer, issue 61 (2009), page 84 Damien McFerran, "Retroinspection: Mega-CD", Retro Gamer, issue 61 (2009), page 84]
  2. The Man Responsible For Sega's Blast Processing (Nintendo Life)
  3. How Sega Built the Genesis: Masami Ishikawa Inteview (Polygon)
  4. ["SMASHING The Myth About Speed and Power" (page 1, page 2) "SMASHING The Myth About Speed and Power" (page 1, page 2)]
  5. File:GamePlayers US 0705.pdf, page 10
  6. 6.0 6.1 Blast Processing 101
  7. 7.0 7.1 Sega Mega Drive/Technical specifications
  8. 8.0 8.1 Super Nintendo Entertainment System technical specifications
  9. 9.0 9.1 9.2 9.3 SNES hardware specifications
  10. 10.0 10.1 10.2 Sega Genesis vs Super Nintendo
  11. 11.0 11.1 Anomie's Register Doc
  12. 12.0 12.1 12.2 Standard Instruction Execution Times
  13. SNES Development: General Advice
  14. 14.0 14.1 14.2 14.3 14.4 14.5 SNES Development: 65816 Reference
  15. 15.0 15.1 Super NES Programming: Multiplication
  16. Programming the 65816 Including the 6502, 65C02, and 65802
  17. 17.0 17.1 Design of Digital Systems and Devices (pages 95-97)
  18. 18.0 18.1 18.2 18.3 18.4 Super NES Programming: Super FX tutorial
  19. File:Zilog Z80 Programmer's Reference Manual.pdf, page 33
  20. Obsolete Microprocessors
  21. File:Sega Service Manual - Genesis II - Mega Drive II (PAL) - 001 - June 1993.pdf
  22. File:GenesisTechnicalOverview.pdf
  23. 3D math engine (SGDK)
  24. Interview: Lee Actor (Sterling Software Programmer)
  25. Star Fox 3D Tech Demo on Sega Genesis
  26. Star Fox 3D Tech Demo on Sega Genesis: Version 2 Using DMA
  27. [Sonic the Hedgehog: The Next Level Sonic the Hedgehog: The Next Level]
  28. SNES Developer Manual (Nintendo)
  29. SNES Development: DMA & HDMA
  30. SNES Development: Grog's Guide to DMA and HDMA on the SNES
  31. 31.0 31.1 Algorithms for Parallel Polygon Rendering (pages 33-34)
  32. Transformation Of Rendering Algorithms For Hardware Implementation (page 53)
  33. Algorithms for Parallel Polygon Rendering (page 36)
  34. Computer Organization and Design: The Hardware/Software Interface (page C-44)
  35. Algorithms for Parallel Polygon Rendering (page 35)
  36. State of the Art in Computer Graphics: Visualization and Modeling (page 110)

External links


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
Sega Mega Drive
Topics Technical specifications (Hardware comparison) | History | List of games | Magazine articles | Promotional material | Merchandise | Cartridges | TradeMark Security System
Hardware Japan | North America | Western Europe | Eastern Europe | South America | Asia | South Korea | Australasia | Africa
EZ Games | Genesis 3 | LaserActive | Mega Jet | Mega PC | Mega Play | Mega-Tech System | Mega 6 | Nomad | Teradrive | Mega Drive Mini | Mega Drive Mini 2
New Mega Drive | Tianli VCD/DVD Players | "Consoles on a chip" | Licensed clones (Magic 2 | Mega Game II | Power Pegasus | Super Bitman)
Unlicensed clones
Add-ons Game Box | Power Base Converter | Mega-CD | 32X (Mega-CD 32X) | Mega Modem | Demo System DS-16
Cases Sega Genesis Nomad Carrying Case | System Carry Case
Controllers Control Pad | Six Button Control Pad | 6 Button Arcade Pad | Arcade Power Stick 6B | Konami Justifier | MK-1470
Action Chair | Activator | Arcade Power Stick | Keyboard | MegaFire | Mouse | Mega Stick | Menacer | Remote Arcade System | Ten Key Pad | Third Party Controllers
Accessories 4 Way Play | AC adaptor | Cleaning System | Control Pad Extension Cord | Game Factory | Genesis Speakers | Headset | HeartBeat Catalyst | Microphone | Region converter cartridges | Mega Terminal | Nomad PowerBack | RF Unit | SCART Cable | Stereo Audio Video Cable | Team Player | Video Monitor Cable | Third-party AC adaptors | Third Party Accessories
Network services Sega Channel | Sega Game Toshokan | Mega Anser | Mega Net | TeleBradesco Residência | XB∀ND
Development tools ERX 308P | ERX 318P | Sprobe | SNASM68K | SNASM2 (Mega Drive) | SNASM2 (32X) | PSY-Q Development System (Mega Drive) | PSY-Q Development System (32X) | 32X CartDev | Sega Mars Development Aid System | Sega 32X Development Target
Unreleased Edge 16 | Floppy Disk Drive | Mega Play 1010 | Sega VR | Teleplay System | Video Jukebox