We've just updated MediaWiki and its underlying software. If anything doesn't look or work quite right, please mention it to us. --RanAS

Super FX: Difference between revisions

From SnesLab
Jump to: navigation, search
(Recovered from SMWiki, improvements are welcome.)
 
(I have rewritten the whole page. The information comes from SMWiki, back when the knowledge of Super FX wasn't as large as it is now. It contained some misinformation as well (despite ironically clarifying them). Instruction will probably be put at another page. And yes, it is based of the current SA-1 page.)
Line 1: Line 1:
'''Super FX''' is a [[Super Nintendo]] [[enhancement chip]], mainly used to enhance graphical effects. Another name for the Super FX chip is the GSU (Graphical Support Unit). [[Super Mario World 2: Yoshi's Island]] and [[Star Fox]] are two notable games that used this enhancement chip.
'''Super FX''' is a [[Super NES]] [[enhancement chip]] developed by [https://en.wikipedia.org/wiki/Argonaut_Games Argonauts Games] and [http://en.wikipedia.org/wiki/Nintendo Nintendo]. It's also known as the "Graphical Support Unit" (short for "GSU") for its greater graphical capabilities compared to the S-CPU whereas its first revision, used in [[Star Fox]], uses the name "Mathematical, Argonaut, Rotation, & Input/Output" or short MARIO chip. It also is know for the use in [[Super Mario World 2: Yoshi's Island]].


== Technical information ==
During this article, GSU refers to Super FX whereas CPU refers to the Super NES CPU.


It can be clocked to run either at 10.74 MHz (approximately 5 times faster than SNES), or at 21.48 MHz (approximately 10 times faster than SNES). It runs parallel to SNES' CPU. The Super FX chip also has 16 general-purpose registers, as opposed to the SNES CPU. When one is using Super FX, the maximum ROM size should never exceed 2MB. This makes it possible to use Super FX in Super Mario World too. The Super FX chip has been documented thoroughly in the SNES Developer Manual, book 2.
== Features ==
The embedded co-processor has got a base clock speed of '''10.74 MHz''' which is four times as fast as the S-CPU which uses a base block of 2.68 Mhz. Its features includes but not limited to:
* A RISC-like processor where most opcodes have an instruction size of one byte and are executed in a single cycle when in cache.
* 512 bytes of cache RAM for faster processing of instructions.
* A large memory capactiy, a total capacity of 8 MiB ROM, of which two MiB are shared by CPU and GSU, and 256 KiB RAM, of which 128 KiB are shared by CPU and GSU.
* A separate bus for ROM and RAM to handle memory in parallel
* Paralell processing with the CPU
* Fast Bitmap to Planar conversion
* Pipeline processing to fetch opcodes twice as fast, effectively increasing the processing speed to 21.48 MHz.


== Uses ==
= Technical Information =


The Super FX chip can mainly be used for advanced graphical effects like dynamically updating graphics, generating tables, graphic decompression, and so on. Additionally, the Super FX is a programmable chip. You don't give it inputs and it gives you outputs (like the DSP-1) - you code the chip's functions yourself, and use the chip whenever you want to.
== Hardware Registers ==


== Common misassumption ==
== Memory and Bus ==


People think that this chip can scale and rotate sprites. This is NOT true. This chip only rotates and scales the sprite's GRAPHICS.
=== Memory Map ===


== Programming cautions ==
=== ROM ===


* Super FX has a different instruction set than the 65c816 CPU, and isn't capable of indexing and using the stack. You will have to code accordingly.
=== RAM ===
* Even though Super FX runs parallel to the SNES CPU, they both can't access the same area simultaneously. An example of this situation is: If you run the Super FX and access the ROM area for data, while you (the SNES) wait in a loop in the ROM area for Super FX to finish, the SNES CPU will crash, because it can't access the ROM area anymore - the SNES will read bogus opcodes. This can be solved by putting the SNES wait loop in the WRAM.
 
* A ROM using the Super FX chip is limited to 2 MB, due to the way the memory is mapped when the Super FX is present.
=== Pipeline Processing ===
 
=== Cache ===
 
== Bus Conflicts ==
 
== Bitmap Processing ==

Revision as of 09:20, 9 October 2021

Super FX is a Super NES enhancement chip developed by Argonauts Games and Nintendo. It's also known as the "Graphical Support Unit" (short for "GSU") for its greater graphical capabilities compared to the S-CPU whereas its first revision, used in Star Fox, uses the name "Mathematical, Argonaut, Rotation, & Input/Output" or short MARIO chip. It also is know for the use in Super Mario World 2: Yoshi's Island.

During this article, GSU refers to Super FX whereas CPU refers to the Super NES CPU.

Features

The embedded co-processor has got a base clock speed of 10.74 MHz which is four times as fast as the S-CPU which uses a base block of 2.68 Mhz. Its features includes but not limited to:

  • A RISC-like processor where most opcodes have an instruction size of one byte and are executed in a single cycle when in cache.
  • 512 bytes of cache RAM for faster processing of instructions.
  • A large memory capactiy, a total capacity of 8 MiB ROM, of which two MiB are shared by CPU and GSU, and 256 KiB RAM, of which 128 KiB are shared by CPU and GSU.
  • A separate bus for ROM and RAM to handle memory in parallel
  • Paralell processing with the CPU
  • Fast Bitmap to Planar conversion
  • Pipeline processing to fetch opcodes twice as fast, effectively increasing the processing speed to 21.48 MHz.

Technical Information

Hardware Registers

Memory and Bus

Memory Map

ROM

RAM

Pipeline Processing

Cache

Bus Conflicts

Bitmap Processing