RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login

    Why are there different versions of Retropie for different raspberry pi models?

    Scheduled Pinned Locked Moved General Discussion and Gaming
    compatibilityretropieraspberry pi
    7 Posts 4 Posters 1.7k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • mespritM
      mesprit
      last edited by

      This is probably very basic knowledge, but I was just curious about what is fundamentally different on the different versions of Retropie available. By that I mean Retropie for pi 0/1 vs for pi 2/3 (and in the future for pi 4).

      From my understanding (correct me if I am wrong), Retropie runs on top of Raspbian, which all of the pi's can run. So I don't fully comprehend why they aren't compatible with the same version of Retropie even though all of them run on the same OS.

      An analogy that comes to my head would be that Retropie running on Rasbian would be like Google Chrome running on Windows 10. If you have different machines running Windows 10, they should all be able to run Google Chrome for Windows 10 regardless of their hardware.

      So why does it not work like this for Retropie and what is different on the different versions of Retropie?

      mituM 1 Reply Last reply Reply Quote 0
      • T
        tayocof Banned
        last edited by

        this is an interesting question I would love to know that thing too. Maybe some of the admins will explain.

        1 Reply Last reply Reply Quote 0
        • mituM
          mitu Global Moderator @mesprit
          last edited by mitu

          @mesprit The reason there are different versions, based on the PI model, is the compilation parameters for the programs included are different, based on the CPU of the model. Pi2 and 3 have a better CPU than the PI0/1, so it makes sense to try and optimise for it, Pi4 also has a new CPU and has different compilation parameters since it's a different/better CPU.

          mespritM 1 Reply Last reply Reply Quote 2
          • cyperghostC
            cyperghost
            last edited by cyperghost

            It's like a Diesel and an Otto engine - to be very abstractive here.
            Both are car engines but are based on different designs.

            Edit:
            @mitu why are you always in first place? :D

            1 Reply Last reply Reply Quote 0
            • mespritM
              mesprit @mitu
              last edited by

              @mitu So the programs' code are the same, but they are actually interpreted/compiled differently in order to best use the hardware? That is very interesting.

              mituM cyperghostC 2 Replies Last reply Reply Quote 0
              • mituM
                mitu Global Moderator @mesprit
                last edited by mitu

                @mesprit said in Why are there different versions of Retropie for different raspberry pi models?:

                So the programs' code are the same [...]

                The code may be the same, but it can take advantage of certain CPU features available only for certain systems (i.e. NEON instructions for ARM) so that part of the code is built only for those CPUs. It's just an example on how optimisations can be performed depending on the platform/CPU.

                EDIT: Forgot to mention, depending on the model, certain emulators can be set as default for certain systems - for instance PI1/0 can get mame4all as default arcade emulator, while mame2003/fbneo would be default for Pi2/3.

                1 Reply Last reply Reply Quote 1
                • cyperghostC
                  cyperghost @mesprit
                  last edited by cyperghost

                  @mesprit It's just the way to make things easier. On barely every mashine BASIC will show Hello World with

                  10 print "Hello World"
                  

                  The CPU instructions for doing this are different so you might need a different BASIC interpreter for every "system".

                  But this is also very abstractive - but hope you get it.
                  Imho you can use a Pi0/1 image on a Pi2/3 revision but you will loose benefits for some optimized emulators. That's what @mitu said in his previous posting.

                  1 Reply Last reply Reply Quote 1
                  • First post
                    Last post

                  Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.

                  Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.