11

The SuperFX chip was an additional RISC processor includes in some Super Famicom cartridges to generate 3D graphics, the most famous example being the game Starfox.

However it's performance wasn't particularly impressive, with games on other 16 bit machines such as the Amiga demonstrating higher frame rates with similar levels of detail (e.g. the game No Second Prize).

What were the factors limiting the performance of the SuperFX chip for 3D graphics? Calculation speed, memory bandwidth, transfer speed when copying data to the Super Famicom for display?

  • Actually, the main limiting factor for the mentioned chip was the cost price. Yes, they were going to integrate it directly into the American version of the console - according to some sources - and then it would be possible to seriously talk about technical limitations, but in practice, it was the cost of the chip in the cartridge with the game that was the main problem. – Wheelmagister Aug 28 at 13:30
15

There are two main limitations with SuperFX that limited its performance and the level of 3D gaming that could thus be accomplished (e.g how many polygons/second).

  1. The chip itself only provided limited computational abilities. Mostly, it allowed up to 16x16 bit signed and unsigned multiplies with adequate working register set. This made it far faster than the SNES's own CPU for polygon math and bitmap scaling, but it is not capable of the parallelism or SIMD instructions that would become common on more advanced GPU's. These computational limits set an upper-bound on the number of polygons in a frame.

  2. The memory architecture was not unified, and there was a lot of latency in transferring data from the SuperFX working framebuffer RAM to the SNES VRAM. It would typically take 2 to 3 frames just to transfer one frame worth of data from the RAM on the cartridge (which the SuperFX chip was rendering to) over to the VRAM in the SNES. This bandwidth limitation alone could limit the system to around 20 FPS, depending on how large of a framebuffer the game needed for the 3D calculations.

| improve this answer | |
  • 1
    The 68000 in the Amiga could only do 16x16 multiplications and a MULS instruction takes 70 cycles. Only 8 data registers. Is the SuperFX worse than that? – user Aug 29 at 13:12
  • 1
    A 20 MHz SuperFX almost certainly out-performs an 8 MHz 68k at fixed-point polygon transformations. So, if 3D polygonal games run faster on the Amiga, it would be down to the bandwidth advantages. – Brian H Aug 29 at 18:42
  • Do you have any reference for the bandwidth issue? The carts had 256k or 512k of dedicated RAM and the CPU could plot pixels directly in SNES pixel format. If it was just the cart->SNES interface that was slow you would expect to see a lot more polygons on screen, since the limiting factor is the copy speed not the calculations you can do while waiting for that bus. – user Aug 30 at 17:35
  • Looking at the SuperFX register assignments it seems like it's actually quite limited because many are fixed function, so you have relatively few left for doing stuff like matrix maths. I can't find any instruction timing info. – user Aug 30 at 17:37
  • @user Have a look at this. Basically it boiled down to the cart ↔ console bus being 8 bits wide and both CPUs being stalled while the DMA was taking place. … – Alex Hajnal Sep 2 at 5:14
10

I'll add a couple of nuances.

  1. SuperFX chip was limited, among other things, in power consumption - the console could not really give a lot of power to the cartridge port.
  2. The memory architecture significantly limited the performance not only by the HDMA speed of 2.7MB / s, but also by access to ROM / RAM. The code from the 512-byte cache executed, in general, almost three times faster.
  3. The SNES graphic data format with elements of bitplanes in a tile engine forced the architecture of the chip to be complicated and significantly limited the performance in some games.
| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.