pikuma.com Profile picture
An education platform created by Gustavo Pezzi to teach the fundamentals of #ComputerScience, #Programming, and #Mathematics.

May 9, 2023, 27 tweets

Lately, I've been studying the early days of 3D polygons on home consoles for a new course.

We often think 3D on the #PS1 or #Saturn, but there was a bracket of time where special chips were added to both #SNES & #Genesis to help them render fast polygons.

Here's a review...🧵

It's probably not news to anyone here that retro consoles added special power to games by adding special chips *inside* the game cartridges!

Therefore, newer and fancier games were more expensive because manufacturing the cartridge with extra chips cost more for the developers.

If you took our course on #NES programming, you know that this was also true for 3rd gen. consoles.

For example, the NES console is always the same (CPU speed, RAM size, etc.), but NES games got better with time by adding these special chips *per* cartridge!

Therefore, we buy *one* console and delegate the responsibility of adding more powerful features to the cartridge!

Some NES & Famicom cartridges came with special chips to enable more graphics data, more audio channels, and even persisting game state using a battery.

I'm mentioning NES games, but some cartridges from the 4th gen. (16-bits - #SNES & #Genesis) followed the same idea.

You want extra juicy stuff and more power to your SNES games? Add them to the cartridge!

Cool! So, it's the early 90s and it's clear that the next game revolution would be "3D stuff!"

Nintendo knew the SNES was aging, especially compared to the Sega Genesis & the TurboGrafx-16.

They needed something different, and for that, they joined forces with #Argonaut Games.

The British studio Argonaut Games wrote a game called #Starglider (Amiga, Atari ST, etc.).

They showed an NES prototype of Starglider to Nintendo at a Consumer Electronics Show in 1990. Nintendo was interested in the prototype and Argonaut developed a #SNES version soon after.

Nintendo sat down with Argonaut to discuss the technical requirements needed to render fast polygons with the SNES for a new 3D game "like" Starglider.

That was the beginning of the development of a chip called #SuperFX, and also the beginning of a popular game called #StarFox!

The #SuperFX chip was used to draw 3D polygons with the SNES.

It's a custom RISC processor programmed to act like a graphics accelerator. It draws polygons to a framebuffer in RAM. The framebuffer data is periodically transferred to the main video memory in the console via DMA.

The Super FX chip was one of the first attempts at enabling 3D console games.

Many games used the #SuperFX chip or its variants... For example, Star Fox used it to render its 3D polygons, while SuperMarioWorld 2: Yoshi's Island used the chip for 2D sprite scaling and stretching.

While in development, the Super FX chip was codenamed "Super Mario FX".

"MARIO" is a backronym for "Mathematical, Argonaut, Rotation, Input/Output".

You can actually see "MARIO CHIP" printed on the face of the final production chip inside the cartridge!

The first version of the Super FX chip is clocked with a 21.4 MHz signal, but an internal clock speed divider halves it to 10.7 MHz.

The design was later revised to become the Super FX GSU (Graphics Support Unit). Unlike the first revision, this chip was able to reach 21 MHz.

Programming for it is done with a special "Super FX assembly language".

SuperFX games use a combination of standard SNES assembly with specially compiled SuperFX assembly routines (coded as binary data in the cartridge). These can (sometimes) also run in parallel with the SNES!

One fun fact about the SuperFX chip is that it became its own commercially-licensable IP core.

It was called the "Argonaut RISC Core" (or ARC) and it became its own business.

PS: This is very similar to how ARM became a company out of #Acorn RISC initiative in Cambridge!

It was fun, but SuperFX games were expensive!

Because of high manufacturing costs and increased development time, few Super FX games were made compared to the rest of the SNES library.

Also, remember that a shiny next gen. Nintendo console (3D-focused) was in the oven.

But of course, Nintendo was not the only one running the 3D race.

Nintendo's SuperFX directly competed with the #Sega #VirtuaProcessor.

Sega's SVP chip which was more powerful and even more expensive than the SuperFX!

Remember those Sega "Virtua <something>" arcade games?

• Virtua Racing
• Virtua Fighter
• Virtua Cop
• etc...

Sega was already producing 3D effects on its arcade titles, and they managed to adapt some of it to the home console by developing the SVP chip.

The Sega Virtua Processor (SVP) was a 23 Mhz custom-designed Genesis-compatible #DSP chip to enhance graphics and sound.

The SVP chip basically served as an extra processor, allowing games to push faster polygons than what was possible with the vanilla Genesis hardware.

The SVP chip was primarily seen as a reaction to the SNES's SuperFX.

Sega’s SVP boasted more performance than Nintendo's chip but would ultimately see use in only a single title (Virtua Racing), which saw an increase in both its cartridge size and retail price.

Based on a #DSP core, the SVP chip allows the Genesis to render real-time polygons and provides an "axis transformation unit" to handle scaling & rotation.

Virtua Racing (1994) was the only game released with this chip, and the only Genesis cartridge with any enhancement chip!

Technically, the DSP-core Sega chip was more powerful than the RISC-core SuperFX.

While the SuperFX could handle hundreds of polygons per second, the SVP could handle *thousands* of polygons per second. 🔥🔥🔥

As programmers, we often read about about CISC and RISC cores, but Sega’s SVP chip used a #DSP core.

Digital Signal Processing (DSP) algorithms require a large number of mathematical operations to be performed quickly and repeatedly on a series of data samples.

Differently than general-purpose microprocessors (CISC & RISC), many DSP applications have constraints on latency. The DSP operation *must* be completed within some fixed time.

DSP chips are often still coded using #Assember to make the most of chip-specific performance tricks!

But the SVP had a similar fate than the SuperFX. It was clear that both Nintendo & Sega were about to release a new 3D-dedicated console (N64 & Saturn).

That were plans of developing Virtua Fighter & Daytona USA for the SVP chip, but they were both moved to Saturn's line-up.

Great stuff! 🙂

And this is just a super quick overview of the history and the technical details of these important chips.

Both SuperFX and SVP were at the start of the 3D home console revolution and helped shape the design of the next generation of 3D 32-bit home consoles. ❤️

And speaking of 4th gen. programming... two handles that are extremely useful on “all things” SNES development using expansion chips are @kandowontu (StarFox development with SuperFX & SuperFX 2) and @HackerVilela (SNES development with SA-1).'

Follow them!

I honestly love to dive into this early 3D era and I’m super excited to cover a little bit of it in my next course.

That being said, our next course it's not going to be Nintendo, and it’s not going to be Sega either. 😋

Bye for now! And don't forget to follow us @pikuma. ❤️ twitter.com/i/web/status/1…

Share this Scrolly Tale with your friends.

A Scrolly Tale is a new way to read Twitter threads with a more visually immersive experience.
Discover more beautiful Scrolly Tales like this.

Keep scrolling