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?

4
  • 11
    Clustered computing isn't sharing processor power and providing it to a single process. It's distributed computing of a really complex task (that can be broken down) over several machines.
    – Aloha
    Dec 16, 2015 at 7:08
  • 1
    Basically, instead of one processor doing A and B of task AB, task A is given to processor 1 and B is given to processor 2. Once they're done, the work parts are combined to give out the final result.
    – Aloha
    Dec 16, 2015 at 7:09
  • Also when clustering 1 + 1 does not equal 2, There is management and admin overhead and increased network traffic required for the cluster members to communicate. Dec 16, 2015 at 7:11
  • 2
    "So in essence, is it possible to upgrade CPU and ram on the RPi 2? if so how? " A 5 second Google would have given the answer.
    – joan
    Dec 16, 2015 at 9:07

6 Answers 6

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.

1
  • To qualify: many modern games certainly do take advantage of multiple-core processors (not to speak of their GPU usage, which is highly parallelised). Only, they generally require shared main memory, which you don't have with a cluster architecture. Dec 16, 2015 at 17:57
9

It's not really possible to simply upgrade RAM or CPU. Both are one solid package soldered onto the board.

Cluster computing also won't solve this - it simply does not work like you'd hope it would. Bringing more than one computer to work at the same task is complex to say the least and the emulation software you run your games with can't profit from the distributed ressources.

The RPi computing clusters you saw on YouTube where probably Beowulf clusters. Creating these with RPis is not very effective, but it's possible to teach people how computing clusters work, what you can do with them and where limitations are.

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 .

7
  • 1
    It's been shown that Raspis don't really need a heatsink, everything else here is true.
    – user33594
    Dec 16, 2015 at 13:40
  • That's probably true unless you do some overclocking. (Or if the raspberry pi is in a hot place).
    – Antzi
    Dec 16, 2015 at 13:44
  • 1
    I overclocked my B+ to 1100 MHz CPU (+400), 900 MHz GPU (+200), and still had around 30 degrees Celsius under full load for a couple hours. If youre in a really hot place, though, could be.
    – user33594
    Dec 16, 2015 at 13:46
  • @ThomasShera The whole reason that overclocking is possible is that not all processors coming off the same assembly line are actually equal, so they put the highest number on that should apply to all of them. One person saying anecdotely, "I overclocked like this and had no problem" does not mean it is going to be universally true, and cooling pretty much by definition will assist with overclocking because heat, not speed, is the problem.
    – goldilocks
    Dec 16, 2015 at 14:01
  • 1
    ...So if you want the fastest speed possible, you want cooling. You can crank it up as high as you like as long as you keep the core temp down. Someone managed to get a pi B up to 3.0 Gz but it required quite a bit of cooling...
    – goldilocks
    Dec 16, 2015 at 14:03
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.

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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.