Posts: 14
Joined: Tue Dec 26, 2017 9:05 am

Why Raspberry 3 Model B QuadCore can't even play N64 games without overclocking?

Sun Jan 07, 2018 10:55 pm


The specs Raspberry Pi :
Raspberry Pi 3 Model B
System-on-chip used Broadcom BCM2837
CPU 1.2 GHz 64/32-bit quad-core ARM Cortex-A53
Memory 1 GB LPDDR2 RAM at 900 MHz
Storage MicroSDHC slot

Overclocking is obliged to play N64 games. ... opie_3637/

However the Raspberry PI is like a Pentium II and III considered the CPU.
The GPU is like Xbox 2001, which pretty good.

The raspberry PI III model B is barely capable to play well the GBA, e.g. Baldur gates. ... meBoy.html

N64 without overclocking is not possible. :(
N64 specs:
CPU 64-bit NEC VR4300 @ 93.75 MHz
Memory 4 MB Rambus RDRAM (8 MB with Expansion Pak)
Storage 64 MB Game Pak

What*s going on? The specs of N64 was not terrible, compared to the specs of RPI III model B.

Posts: 13348
Joined: Tue Jul 17, 2012 3:02 pm

Re: Why Raspberry 3 Model B QuadCore can't even play N64 games without overclocking?

Sun Jan 07, 2018 11:20 pm

Let's say the Pi 3 can execute instructions 10 times faster than the N64. As you say, it's 1.2GHz vs about 100MHz.

Problem is the N64 is a MIPS architecture processor and the Pi is an ARM architecture processor. Their instructions and other architectural details are not the same.

That means if you want to run N64 MIPS code on a Pi you need to create a software emulation of the MIPS instruction set.

We can imagine that emulating each MIPS processor instruction using ARM software might take ten or so ARM instructions per MIPS instruction.

BOOM, the N64 emulation runs 10 times slower than the Raspi's ARM.

That is before we even start to talk about all the other hardware on such games machines beside the actual processor. All of that needs to be emulated as well.

I think an emulator that runs the emulated instructions at about one tenth the speed of the native instructions is doing pretty well. The emulators I have written have been worse.
Memory in C++ is a leaky abstraction .

Return to “General discussion”