• Recent
  • Tags
  • Popular
  • Home
  • Docs
  • Register
  • Login
RetroPie forum home
  • Recent
  • Tags
  • Popular
  • Home
  • Docs
  • Register
  • Login
Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

RetroPie-Extra Repository - lr-samecdi

Scheduled Pinned Locked Moved Help and Support
pi5retropie-extralr-samecdiretropie
28 Posts 5 Posters 5.4k 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.
  • F
    Folly @ExarKunIv
    last edited by Folly 26 Jun 2024, 06:42

    @ExarKunIv

    For a 32bit OS (Bullseye/Bookwork) we probably need to patch the Makefile.libretro so it will use the flag PTR64=0.
    Most likely that will be a quick fix.
    Good info about conditions can be found over here :
    https://stackoverflow.com/questions/4879592/whats-the-difference-between-and-in-makefile
    The idea is to change PTR64 ?= 1 into PTR64 := 0 in :
    https://github.com/libretro/same_cdi/blob/master/Makefile.libretro#L07
    According to the conditions info that should force the PTR64 flag to 32bit even if it later detects it differently.
    := should force it the first time it's found.

    Alternatively I tried to add -DPTR64=0 to the make command with forcing the libretro makefile, earlier on, but that made no difference.
    This is most likely due to the fact that in newer OSes the arch is always detected as aarch64 no matter if it's running 32bit.
    So if it uses that info to see if it is 64bit or 32bit it will always be detected as 64bit.
    If it could work it also means patching the makefile.
    However I can't find the part yet what's responsible for that.
    You will also see that in the makefile it is guessed to set it to 1 in the beginning and in most functions it's not altered so it will stay on 1.
    Which is off-course correct if it 64bit is detected correctly.

    Using the regular Makefile could be an option just like with lr-mess as lr-same_cdi is basically a patched mame driver.
    Then we could add the flags just like with lr-mess and only add the PTR64=1 if needed. If we want to use this approach we need to find out how to compile for cdimono1 only otherwise it will try to do all mamedrivers which don't exist it this source.

    When I can I will test the first approach first.

    E 1 Reply Last reply 26 Jun 2024, 12:58 Reply Quote 0
    • E
      ExarKunIv @Folly
      last edited by 26 Jun 2024, 12:58

      @Folly sounds good to me, this one is a bit more on what you have delt with then I. so big thanks for looking into this

      RPi3B+ / 200GB/ RetroPie v4.5.14, RPi4 Model B 4gb / 256gb / RetroPie 4.8.2
      RPi5 4gb / 512gb / RetroPie 4.8.9 -Basic
      Maintainer of RetroPie-Extra .

      F 1 Reply Last reply 26 Jun 2024, 20:09 Reply Quote 0
      • F
        Folly @ExarKunIv
        last edited by Folly 26 Jun 2024, 20:09

        @ExarKunIv

        Tried everything to no avail.
        Every time I try PTR64 is forces to 1, even if I quickly use sed to change the generated make files.
        Adding this to the config.txt also makes no difference :

        kernel=kernel8.img
        arm_64bit=0
        

        The only options seems to be :

        • use the 64bit OS
        • create a real 32 kernel and try again.

        More info can be found here :
        https://forums.raspberrypi.com/viewtopic.php?t=366246
        Conclusion is that the system kernel used in the RPi5 BookWorm 32-bit system is still 64-bit.

        For mame and lr-mame/lr-mess this problem is the same as far as I know.

        Could be that 32bit is a dead end in the future.

        Not sure what flag we need to put in.

        E 1 Reply Last reply 26 Jun 2024, 20:52 Reply Quote 0
        • E
          ExarKunIv @Folly
          last edited by 26 Jun 2024, 20:52

          @Folly thanks for trying, if it only will work on 64bit, it is what it is.

          as for the flag we just need to use 64bit and we should be good

          RPi3B+ / 200GB/ RetroPie v4.5.14, RPi4 Model B 4gb / 256gb / RetroPie 4.8.2
          RPi5 4gb / 512gb / RetroPie 4.8.9 -Basic
          Maintainer of RetroPie-Extra .

          F 2 Replies Last reply 26 Jun 2024, 20:58 Reply Quote 0
          • F
            Folly @ExarKunIv
            last edited by Folly 26 Jun 2024, 20:58

            @ExarKunIv

            I am trying on rpi4 now using kernel7l and Bookworm and see what it does.
            Using the same image as used on the rpi5 but now with :

            kernel=kernel7l.img
            arm_64bit=0
            

            (Btw. the pi5 would not boot with these settings)

            About the flag, if we use 64bit then all older pi's and older OSes will also not work anymore.
            We could make it 64bit if the platform contains rpi5 agree ?

            This code should probably work (update : doesn't work) :

            rp_module_flags="$([[ ${__platform_flags} == *rpi5* ]] && echo 64bit)"
            

            Edit :
            Post should now be good I edited many times ;-)

            E 1 Reply Last reply 27 Jun 2024, 00:24 Reply Quote 0
            • F
              Folly @ExarKunIv
              last edited by Folly 26 Jun 2024, 21:28

              @ExarKunIv

              On my pi4 it compiled ok. (32bit/Bookworm/kernelv7l)
              Tested this binary on my pi5 by switching the SD card.
              Of-cource commenting the kernel :

              #kernel=kernel7l.img
              arm_64bit=0
              

              The binary now runs on the pi5 "32bit OS".

              1 Reply Last reply Reply Quote 0
              • E
                ExarKunIv @Folly
                last edited by 27 Jun 2024, 00:24

                @Folly said in RetroPie-Extra Repository - lr-samecdi:

                We could make it 64bit if the platform contains rpi5 agree ?

                If your code works. I have no problem going with it that way.

                Or have it switch on what it needs to compile depending on what OS type they are using

                Maybe something like this

                if isPlatform "odroid-n2"; then
                /home/aresuser/ARES-Setup/fixmali.sh
                elif isPlatform "rockpro64"; then
                /usr/lib/arm-linux-gnueabihf/install_mali.sh
                fi

                Not sure if that will work for you are trying

                RPi3B+ / 200GB/ RetroPie v4.5.14, RPi4 Model B 4gb / 256gb / RetroPie 4.8.2
                RPi5 4gb / 512gb / RetroPie 4.8.9 -Basic
                Maintainer of RetroPie-Extra .

                M F 2 Replies Last reply 27 Jun 2024, 12:15 Reply Quote 0
                • M
                  mth75 @ExarKunIv
                  last edited by 27 Jun 2024, 12:15

                  @ExarKunIv I removed rp_module_flags="!rpi5" and could compile samecdi and start the core. Only problem: Fatal error: required files are missing. The bios files are all in place ...

                  E F 2 Replies Last reply 27 Jun 2024, 13:23 Reply Quote 0
                  • E
                    ExarKunIv @mth75
                    last edited by 27 Jun 2024, 13:23

                    @mth75 yes folly is still working on it. but its looking good so far

                    RPi3B+ / 200GB/ RetroPie v4.5.14, RPi4 Model B 4gb / 256gb / RetroPie 4.8.2
                    RPi5 4gb / 512gb / RetroPie 4.8.9 -Basic
                    Maintainer of RetroPie-Extra .

                    1 Reply Last reply Reply Quote 0
                    • F
                      Folly @mth75
                      last edited by Folly 27 Jun 2024, 13:52

                      @mth75

                      Summary is that the core will compile ok if the rpi5 has a 64bit os running.
                      However if you use the "32bit version" on the rpi5 it will not compile correctly as the rpi5 still runs a 64bit kernel (with 32bit userspace).

                      For now all tests to compile the core on rpi5 with "32bit Bookworm" have failed.
                      Perhaps it's possible to cross-compile it on the rpi5.
                      I might have a look.

                      If someone really wants to run the core on an rpi5 with "32bit Bookworm" then you can install it using a rpi4 instead and switch back later to the rpi5 with the same SD.

                      We are discussing now how to disable the module-script the correct way if no cross-compile solution comes along.
                      Flags can be set in the module-script to disable it but if we enable it for 64bit only then older 32bit OSes or other rpi's, that were compiling it ok, will also be disabled.

                      Hope you understand the discussion now.

                      M 1 Reply Last reply 27 Jun 2024, 15:21 Reply Quote 1
                      • M
                        mth75 @Folly
                        last edited by 27 Jun 2024, 15:21

                        @Folly Yes, I do now, thx for the explanation! For my full understanding ... the "Fatal error: required files are missing." is to be expected on the Pi5 for the time being?

                        E F 2 Replies Last reply 27 Jun 2024, 16:11 Reply Quote 0
                        • E
                          ExarKunIv @mth75
                          last edited by 27 Jun 2024, 16:11

                          @mth75 said in RetroPie-Extra Repository - lr-samecdi:

                          "Fatal error: required files are missing." is to be expected on the Pi5 for the time being?

                          if you are using the script from my repo, yes. it has not been updated with the new code that folly is messing with.
                          once he is done with trying the different things, he will update the script and i will incorporate it into my repo

                          RPi3B+ / 200GB/ RetroPie v4.5.14, RPi4 Model B 4gb / 256gb / RetroPie 4.8.2
                          RPi5 4gb / 512gb / RetroPie 4.8.9 -Basic
                          Maintainer of RetroPie-Extra .

                          1 Reply Last reply Reply Quote 0
                          • F
                            Folly @mth75
                            last edited by 27 Jun 2024, 16:27

                            @mth75 said in RetroPie-Extra Repository - lr-samecdi:

                            @Folly Yes, I do now, thx for the explanation! For my full understanding ... the "Fatal error: required files are missing." is to be expected on the Pi5 for the time being?

                            Yes, if you have 32bit OS running then this behavior is expected..

                            M 1 Reply Last reply 27 Jun 2024, 18:11 Reply Quote 0
                            • M
                              mth75 @Folly
                              last edited by 27 Jun 2024, 18:11

                              @Folly said in RetroPie-Extra Repository - lr-samecdi:

                              this behavior is expe

                              But I'm running the 64-bits PiOS.

                              F 1 Reply Last reply 28 Jun 2024, 06:08 Reply Quote 0
                              • F
                                Folly @mth75
                                last edited by Folly 28 Jun 2024, 06:08

                                @mth75

                                Did you add the swap to your module-script as suggested over here.

                                Do you have the core installed ?
                                (check for /opt/retropie/libretrocores/lr-same_cdi/same_cdi_libretro.so)

                                Can you explain where you got the message from ?
                                (runcommand.log or a Retropie install log)

                                Are you having the BIOS file in the correct place ?
                                (BIOS/same_cdi/bios/cdimono1.zip)

                                1 Reply Last reply Reply Quote 0
                                • F
                                  Folly @ExarKunIv
                                  last edited by Folly 29 Jun 2024, 06:39

                                  @ExarKunIv said in RetroPie-Extra Repository - lr-samecdi:

                                  @Folly said in RetroPie-Extra Repository - lr-samecdi:

                                  We could make it 64bit if the platform contains rpi5 agree ?

                                  If your code works. I have no problem going with it that way.

                                  Or have it switch on what it needs to compile depending on what OS type they are using

                                  Maybe something like this

                                  if isPlatform "odroid-n2"; then
                                  /home/aresuser/ARES-Setup/fixmali.sh
                                  elif isPlatform "rockpro64"; then
                                  /usr/lib/arm-linux-gnueabihf/install_mali.sh
                                  fi

                                  Not sure if that will work for you are trying

                                  I had a look at this code and I think it's not usable for what I want.
                                  I think both platforms run 64bit only so I think there is no need to filter on these platforms.

                                  I tested this platform independent code and it seems to work fine (code can be reduced see Edit):

                                  rp_module_flags="$([[ $(getconf LONG_BIT) == 32 && $(arch) == aarch64 ]] && echo !32bit)"
                                  

                                  It means that if a 32 userspace kernel is found that the !32bit flag is enabled.

                                  I think there is no way to use "RetroPie flags" for detecting that a 32 userspace kernel is found.

                                  Edit :

                                  Seems we can reduce the code to (*first example):

                                  rp_module_flags="$([[ $(arch) == aarch64 ]] && echo !32bit)"
                                  

                                  Means that the 64bit kernel is detected even if it runs in 32bit userspace.
                                  We know that the compilation fails for 32bit userspace and RetroPie will set the flag on 32bit if 32bit userspace is detected.
                                  Therefor no need for using the getconf LONG_BIT command.
                                  By disabling 32bit when the 64bit kernel is detected we should be good to go.

                                  What do you think of using this ?


                                  The code from above could be changed to :

                                  [[ $(arch) == aarch64 ]] && rp_module_flags="!32bit"
                                  

                                  However in the first example* we have to ability to add more flags in the same line if needed.

                                  E 1 Reply Last reply 30 Jun 2024, 03:28 Reply Quote 0
                                  • E
                                    ExarKunIv @Folly
                                    last edited by 30 Jun 2024, 03:28

                                    @Folly I'm good with using what works. I'm not picky with how it works, as long as in the end it works.

                                    RPi3B+ / 200GB/ RetroPie v4.5.14, RPi4 Model B 4gb / 256gb / RetroPie 4.8.2
                                    RPi5 4gb / 512gb / RetroPie 4.8.9 -Basic
                                    Maintainer of RetroPie-Extra .

                                    F 1 Reply Last reply 30 Jun 2024, 08:15 Reply Quote 1
                                    • F
                                      Folly @ExarKunIv
                                      last edited by 30 Jun 2024, 08:15

                                      @ExarKunIv

                                      Added a PR.

                                      E 1 Reply Last reply 30 Jun 2024, 14:21 Reply Quote 1
                                      • E
                                        ExarKunIv @Folly
                                        last edited by 30 Jun 2024, 14:21

                                        @Folly thanks again for your help with this

                                        RPi3B+ / 200GB/ RetroPie v4.5.14, RPi4 Model B 4gb / 256gb / RetroPie 4.8.2
                                        RPi5 4gb / 512gb / RetroPie 4.8.9 -Basic
                                        Maintainer of RetroPie-Extra .

                                        F 1 Reply Last reply 30 Jun 2024, 15:15 Reply Quote 0
                                        • F
                                          Folly @ExarKunIv
                                          last edited by 30 Jun 2024, 15:15

                                          @ExarKunIv

                                          Added another PR.
                                          Seems the swap was missing and I renamed the filename so it's easier to use the retropie_packages.sh script.

                                          1 Reply Last reply Reply Quote 1
                                          27 out of 28
                                          • First post
                                            27/28
                                            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.

                                            This community forum collects and processes your personal information.
                                            consent.not_received