12

Floating-point coprocessors (FPUs) were an expensive, niche, add-on product for early desktop and home computers. but became commonplace by the mid-1990s, as they began to be included within the most popular CPUs. Game console CPUs also started including FPUs at some point in their history.

When did the popular consoles begin having FPU hardware, and how was it used by the game developers?

  • 2
    Do you mean floating mathematics in general, including modules specialized for 3D graphics - or just IEEE 754 compatible solutions? – Wheelmagister May 14 at 4:58
  • 2
    And only FPUs on the motherboard, or do FPUs (or similar) on cartridges count too? (Especially for the last question.) – Stephen Kitt May 14 at 5:08
  • Thinking of it, already adding Multiply&Add instructions/functions is something that changed stock CPUs to enable complex calculation to enable graphics. Depending on that line even the SNES (1990) may already qualify as a starting point. So, what features/data types/operations does such a unit/extension have to have to quality for your question as 'the begin'? – Raffzahn May 14 at 9:30
15

The first major console to incorporate an IEEE 754 floating point unit would be the N64.

The main use of them in games is for the mathematical operations involved when transforming in-game 3D objects into 2D shapes for rendering on the display. An important secondary use is for games that have physics engines.

Previous consoles typically did this by means of fixed point calculations, which were reasonably fast but could suffer from loss of precision or overflow if an intermediate result wasn't scaled properly. This entails careful design and coding to deal with edge cases.

As such, the addition of floating point units to games console was more one of convenience for developers than anything with game changing impact in itself. It's also probably more a case of the machine being just after the dividing line of when they became a standard feature of mainstream hardware than a conscious decision to add it as a specific feature.

  • 5
    I'm sure I read that, conversely, the team tasked with porting Tony Hawk to the N64 ran into a bunch of precision issues because fixed point arithmetic always gives the same precision whereas with floating point they found themselves to lose necessary precision at the extremities of levels. Many easy fixes suggest themselves, but it made it more work than the simplest port. – Tommy May 14 at 7:25
  • 3
    @Tommy: I wonder why I've not seen games bias world coordinates so that all coordinates have the same sign and are within a power of two of each other? That would avoid some of the weird physics quirks that occur when things are almost but not quite balanced. – supercat May 14 at 15:39
  • 3
    It's interesting that the Wikipedia entry for the MIPS R4200 states "A notable feature is the use of the integer datapath for performing arithmetic operations on the mantissa portion of a floating point number." So I'm wondering whether this compromised implementation of FP hardware is actually equivalent to what was done by 3DO years earlier. – Brian H May 14 at 16:06
  • 3
    @BrianH I don't think so. It doesn't sound like an accuracy compromise, only a performance one (and only a performance one inasmuch as it creates pipeline stalls). All floating-point arithmetic has integer arithmetic at its heart; this chip just reuses the same gates for that purpose and for pure integer math, instead of having dedicated adders etc. in the floating-point unit. – hobbs May 14 at 16:40
  • 3
    @Tommy fixed points limits your dynamic range by not including the exponent. Conversely floating point gives you great dynamic range at the expense of precision. E.g. IEEE 754 FP32 has 24 bits mantissa, so 100,000,000 + 1 == 100,000,000. If you do a lot of calculations this errors add up. – Jan Dorniak May 14 at 19:45
6

Probably the Nintendo 64 was the first home console to use floating point math for its inner calculations, thanks to the graphics chipset provided by SGI. Other game consoles from its time, such as the Sony PlayStation, the SEGA Saturn, the Atari Jaguar or the Panasonic 3DO made use of integer fixed-point math exclusively. From this point on, basically all home game consoles made use of floating point, being the next one after the Nintendo 64 the SEGA Dreamcast and the PS2, both of which already included vectorization facilities for floating point math similar to 8x86's SSE, and to portable consoles with the Sony PSP.

In the realm of arcade machines however, maybe there were boards with floating point even earlier, given the graphics chipsets provided by Evans & Suntherland and others for arcade graphics in the early 90's, but I do not know about this point.

  • 3
    The earliest arcade board with an FPU I can come up with is the Sega Model 1, first used in 1992. Namco's System 22 board - with the Evans & Sutherland TR3 chip- arrived the following year. – Matthew Barber May 14 at 7:23
6

The 3DO, launched in 1993, featured a custom FPU. Although the CPU is a standard ARM model, the FPU is a custom design for the system. It pre-dates the Nintendo 64 by 3 years.

  • Can you add a reference/link for this please? For the N64 - I can find the information by a quick search, but as the 3DO was "less popular", it's harder to find the same information as easily. – Bilkokuya May 14 at 10:01
  • Are you sure the 3DO's math coprocessor supported floating point? Early coprocessors like the DSP-1 for the SNES were based on the NEC µPD7720 which only supported fixed-point math. – nwellnhof May 14 at 10:14
  • 1
    I found some mention of it accelerating fixed point float operations in the MAME source code. I couldn't immediately find the relevant CPU driver file though. github.com/mamedev/mame/blob/master/src/mame/drivers/3do.cpp – user May 14 at 11:30

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.