2015-09-25

MIPS, part 1: Registers and calling convention

In 1994 and 1995, Sony released its PlayStation console. It would soon be followed, in 1996 and 1997, by Nintendo's Nintendo 64 console. What both of them had in common, as briefly described in the entry "Why Old Games, New Tech?", was that they both contained processors running the MIPS architecture.

The MIPS architecture was a very large departure from the previous generation of consoles, sometimes known as the 16-bit era, due to the heavy focus on bits:

2015-09-20

Why Old Games, New Tech?

Welcome to Old Games, New Tech! This post should explain the name in addition to what I intend to put on this blog.

Old games – think games for the Nintendo Entertainment System (and its successor, the Super NES), Nintendo Game Boy, Sega Master System (and its successor, the Mega Drive, or Genesis), and arcade machines – had precious little ROM to hold their data and code. The consoles running the games also had processors with relatively low clock speeds, slow memory access, and no data cache. Most code was written directly in a given console's assembly language: the programmer was able to control every interaction between the processor and the slow main memory, which had an impact on both performance and code size. Code size was helped by the short instructions. However, it was hindered again when the programmer needed to perform calculations on values that were larger than 8 bits, as multiple instructions would be required.