12

I have recently bought a Porta Pi Arcade, which is basically an RPi powered arcade machine running emulation station and retro pi. I am currently running mame, Sega genesis etc. Using the Pi 2 i have managed to play some N64 games, but not all run as well as i would like them to. So i wanted to put 2 Pi 2's together or upgrade the CPU performance and ram to try to run PSX and N64 games. So in essence, is it possible to upgrade CPU and ram on the RPi 2? if so how?

Would it be easier to make a RPi cluster to achieve the same thing, I have seen some videos on YouTube on how to build one, but none really explain if it works like one big computer or just 2 Pi's sharing tasks, and if they do split the tasks will it work in my case?

Steve Robillard
  • 34,988
  • 18
  • 106
  • 110
Geordan
  • 129
  • 1
  • 3

5 Answers5

13

You definitely cannot upgrade the ram. It is mounted to the CPU and is not user upgradeable like a desktop computer is. You can't physically swap out the CPU either, what you may be able to do is overclock the CPU but that may already have been done. You can set the clock speed using the following command: sudo raspi-config.

As for clustering, the program you are running would have to be designed to run in parallel to take advantage of it, and the game software you are using is unlikely to be able to support this as the original games almost certainly were not designed to take advantage of this.

Steve Robillard
  • 34,988
  • 18
  • 106
  • 110
8

There is a few things you can do.

  1. Put a fan/heatsink on your Raspberry Pi.

    This would prevent the CPU from throttling if it gets too hot, insuring stable performance and helping with 2.

  2. Overclock your CPU

    Just making it run faster should improve your performances, but you really want to look into 1. first.

  3. Tweak the RAM allocation towards GPU or CPU, depending on what is most needed.

  4. Wait for an upgraded/faster version of Raspberry Pi .

Antzi
  • 181
  • 4
4

You would have to reprogram the legacy games entirely. Think about it this way: cluster computing with 2 Raspis would make sense only when you can split the task up between 2 computers. In addition, the processor is faster than the USB. There is little practical point for clustering.

My advice would be to overclock the Raspi (would try first) or change in-game graphics settings.

EDIT: I'm not sure if there's a way to figure out whether the system bottleneck is CPU or GPU, but giving more RAM to the slower one will help a bit.

3

Even if a game or emulator could make use of multiple computation units -- which is very, very unlikely, especially in older games designed for single-core platforms -- communication cost would likely be prohibitive for most gaming purposes.

Every piece of information would have to go through the whole TCP/IP-Ethernet stack (unless you use special hardware for connecting the units, which I can not say for certain does not exist). That adds delays in the order of milliseconds, i.e. hundreds of thousands of clock cycles. You can not afford that kind of latency unless you have relatively big tasks that are only due at some point in the future. In games, though, you need most results now.

Raphael
  • 576
  • 1
  • 6
  • 16
3

The only realistic way to get more performance is to choose a faster single-board computer out there. Odroid models (based on Samsung Exynos SoC) are known to be fast, there are other options described in Wikipedia.

Keep in mind that you will need to make sure that whatever single-board computer you pick is compatible with both the software you want to run (which is quite probable) and hardware accessories you're going to use (quite improbable). Basically, you will end up designing the arcade machine for whatever board you choose. Unless you have some experience with electronics and ARM platform in general, I wouldn't advise you to try.

Dmitry Grigoryev
  • 28,277
  • 6
  • 54
  • 147