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

    Installation of Mamedev MAME

    Scheduled Pinned Locked Moved Ideas and Development
    mamemamedev
    82 Posts 9 Posters 13.6k 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.
    • G
      George
      last edited by

      Just wanted to let folks know that I have not abandoned this. In fact, I've just been continuing my tests. One of these tests has been to try a fresh install and compile on a Raspberry Pi Zero. The compilation step has taken over a month SO FAR. There may be something wrong with my SD card, but I have not seen any other issues, so I've just let it run. Hopefully it will finish soon and I can test out the binary which is expected to be very slow.

      I'll update my Github with the latest scriptmodule once I've done some more tests. Thanks for the patience!

      1 Reply Last reply Reply Quote 0
      • G
        George
        last edited by

        MAME is finally linking on my Raspberry Pi Zero. It's taken around 51 days so far. Haha!

        1 Reply Last reply Reply Quote 0
        • J
          jkman999
          last edited by

          WOW!! That is crazy. I, for one, am watching this fairly closely as I would love to have just a few of those things running on the PI that are only in the newer versions. I really appreciate the work you are putting into it. Thanks.

          J_K_M_A_N

          1 Reply Last reply Reply Quote 0
          • G
            George
            last edited by

            Thanks JKMan,

            It's been pretty smooth, so far, with the exception of getting it to compile on a Pi Zero. I'm still at that linking stage. I've gotten a couple of linker errors that I'm fighting through. The problem is that the linking process takes DAYS until it errors out on me again. I'm not ready to admit defeat on this yet though, even if the performance is abysmal on a Pi Zero.

            I know it's been about a month since my last update. I'll try to give updates a little more regularly.

            Thanks again,

            • George
            1 Reply Last reply Reply Quote 0
            • M
              meyers980
              last edited by

              I know I'm definitely interested in this. George mentioned them up top, the recently added handheld LCD games (like Tiger Electronics, Coleco, and Game and Watch) are a big interest of mine. And building a handheld with a pi of some sort that could play those games would be wonderful.
              The DEV team seems to be adding handfuls of old handhelds with each new build, as well. It seems like those games would run wonderfully on a pi but require new MAME to work.

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

                @meyers980 You can get that by installing the lr-mess emulator, if you're interested in non-arcade systems emulated in current MAME. Currently, after installing it, it will configure the emulator to run VTech CRVision, Coleco, GB , Nes and Arcadia systems - so you'll have to manually add the other systems you're interested.

                Compiling lr-mess on a Pi3 can take up to 30 hours.

                M 1 Reply Last reply Reply Quote 0
                • M
                  meyers980 @mitu
                  last edited by

                  @mitu I thought MESS stopped being developed a while back when it was rolled into MAME.

                  Are you saying non-arcade games added to MAME .204 for example can be played in lr-mess? Or just games added up until the merger?

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

                    @meyers980 said in Installation of Mamedev MAME:

                    I thought MESS stopped being developed a while back when it was rolled into MAME.

                    I'm not sure about naming, but Mess is now part of MAME - the lr-mess target is built from the same repository as MAME, including all the non-arcade targets. So yes, it's up to date - https://github.com/libretro/mame - with the current Libretro MAME core. You can check to which MAME version the Libretro core is synchronized.

                    M markwkiddM 2 Replies Last reply Reply Quote 0
                    • M
                      meyers980 @mitu
                      last edited by

                      @mitu That's very interesting! I'm definitely going to be testing that soon then. Thanks for the info.

                      1 Reply Last reply Reply Quote 0
                      • G
                        George
                        last edited by

                        Some updates:

                        • I encountered linking errors with MAME on the Raspberry Pi 0, and when I attempted to resolve them, it restarted the compilation process. Sigh. For the time being, I've disabled Pi 0/ARM V6 (by adding !armv6 into the module flags).
                        • The script will now detect when being built on a PC and set the Swap space to be larger.
                        • Also when building for 64 bit, it will move the binary from mame64 to mame, so that it is still recognized by the script.
                        • Updated for MAME v0207

                        Feel free to have a look. I'm currently testing it out. https://github.com/GeorgeMcMullen/RetroPie-Setup/blob/master/scriptmodules/emulators/mame.sh

                        - George

                        mituM 1 Reply Last reply Reply Quote 0
                        • markwkiddM
                          markwkidd @mitu
                          last edited by markwkidd

                          @mitu said in Installation of Mamedev MAME:

                          @meyers980 said in Installation of Mamedev MAME:

                          I thought MESS stopped being developed a while back when it was rolled into MAME.

                          I'm not sure about naming, but Mess is now part of MAME - the lr-mess target is built from the same repository as MAME, including all the non-arcade targets. So yes, it's up to date - https://github.com/libretro/mame - with the current Libretro MAME core. You can check to which MAME version the Libretro core is synchronized.

                          I have just created a guide to compiling libretro-mame (including the MESS target: https://docs.libretro.com/development/cores/core-specific/mame/

                          If there is anything that folks discover would be useful to add for rpi and other RetroPie users, please feel free to either edit that doc directly or you can submit updates via a github issue in the docs repository http://github.com/libretro/docs

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

                            @George said in Installation of Mamedev MAME:

                            Feel free to have a look. I'm currently testing it out. https://github.com/GeorgeMcMullen/RetroPie-Setup/blob/master/scriptmodules/emulators/mame.sh

                            Just a couple of comments

                            • you don't need to rename the binary, I'd leave it as is and have a separate function (_mame_get_binary_name) that will return different values depending on the target platform. Use that function in the subsequent routines where the binary name is expected. Just a suggestion.

                            • due to the way ES works, you'll not be able to have arcade/mame as a (sub)system. arcade is already an existing system and its configuration will override any sub-folders' configs.

                            1 Reply Last reply Reply Quote 0
                            • G
                              George
                              last edited by

                              Thanks @mitu,

                              My most recent Pi 3 build was successful with my changes and v0207. So things are looking good.

                              @mitu said in Installation of Mamedev MAME:

                              • you don't need to rename the binary, I'd leave it as is and have a separate function (_mame_get_binary_name) that will return different values depending on the target platform. Use that function in the subsequent routines where the binary name is expected. Just a suggestion.

                              I'll look into adding a function like _mame_get_binary_name. I think that will help keep it clean.

                              • due to the way ES works, you'll not be able to have arcade/mame as a (sub)system. arcade is already an existing system and its configuration will override any sub-folders' configs.

                              I was using the scriptmodules for mame4all and advmame as a reference while doing the script. That's why I included the addSystem "arcade" lines (though I also include the optional arguments for description and file extension). Are you saying I should remove the addSystem line for arcade or remove the optional arguments?

                              In other news, I've found that the Pi can get very hot during compilation. I did not experience this before, but I recently put my Pi in a new mini-arcade case (reusing a case from an old broken Coleco tabletop arcade) and have the Adafruit LCD Kippah on it. All this adds up to very little ventilation. I noticed that certain files were taking an inordinate amount of time to compile. Did a little research and found this post:

                              https://raspberrypi.stackexchange.com/questions/83184/raspberry-pi-thermal-throttle

                              Sure enough, when running the commands:

                              vcgencmd measure_clock arm && vcgencmd measure_temp && vcgencmd get_throttled
                              

                              My temperature was around 81C and the CPU clock was getting throttled. This may also explain why my Pi 0 was taking so long to compile, but that will require more research for another time.

                              So, heat sinks and ventilation are a must when trying to compile MAME (probably most versions). @markwkidd would that be useful info for your compilation guide?

                              - George

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

                                @George said in Installation of Mamedev MAME:

                                I was using the scriptmodules for mame4all and advmame as a reference while doing the script. That's why I included the addSystem "arcade" lines (though I also include the optional arguments for description and file extension). Are you saying I should remove the addSystem line for arcade or remove the optional arguments?

                                • Advmane is using arcade and mame-advmame as ROM folders - see here.
                                • Mame4All is using arcade and mame as ROMs folders - see here.

                                They're not configuring any sub-folders. So you can probably use arcade and mame (similar to Mame4ALL).

                                In other news, I've found that the Pi can get very hot during compilation. [...]

                                Did you hear about cross-compiling :) ?
                                https://retropie.org.uk/forum/topic/19854/install-and-configure-precompiled-emulator-binaries/5

                                G 1 Reply Last reply Reply Quote 0
                                • G
                                  George @mitu
                                  last edited by

                                  @mitu said in Installation of Mamedev MAME:

                                  • Advmane is using arcade and mame-advmame as ROM folders - see here.
                                  • Mame4All is using arcade and mame as ROMs folders - see here.

                                  I see that advmame is creating a sub-directory here, but it's not actually being referenced in the configuration file. In fact, I don't reference the arcade/mame subfolder either, so I could probably take out:

                                  mkRomDir "arcade/$system"
                                  

                                  as well as:

                                  ln -sf "$romdir/$system/$mame_sub_dir" "$romdir/arcade/$system"
                                  # fix for older broken symlink generation
                                  rm -f "$romdir/$system/$mame_sub_dir/$mame_sub_dir"
                                  

                                  Would that be it?

                                  Did you hear about cross-compiling :) ?
                                  https://retropie.org.uk/forum/topic/19854/install-and-configure-precompiled-emulator-binaries/5

                                  8-O!!! I did not know about cross-compiling for RetroPie. I will have to check it out! Though, it's probably still good to do a compile test on the actual device.

                                  - George

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

                                    @George said in Installation of Mamedev MAME:

                                    I see that advmame is creating a sub-directory here, but it's not actually being referenced in the configuration file. In fact, I don't reference the arcade/mame subfolder either, so I could probably take out:

                                    I think that's for configuration or nvram, hiscore storage, but not dedicated ROM storage.

                                    8-O!!! I did not know about cross-compiling for RetroPie. I will have to check it out! Though, it's probably still good to do a compile test on the actual device.

                                    Timing a build is certainly useful - especially if the package is meant to be installed from source - , but not so much on a Pi Zero :).

                                    G 1 Reply Last reply Reply Quote 0
                                    • G
                                      George @mitu
                                      last edited by George

                                      @mitu said in Installation of Mamedev MAME:

                                      I think that's for configuration or nvram, hiscore storage, but not dedicated ROM storage.

                                      Yes, the symlinks are for nvram, hi, etc. but they are still not used in the config file (see here).

                                      Updated the script again. Really want to nail down the (sub)system issue. I really appreciate the ongoing feedback! Thank you.

                                      - George

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

                                        @George said in Installation of Mamedev MAME:

                                        Updated the script again. Really want to nail down the (sub)system issue

                                        Which issue ? (you might have mentioned it during this topic, but I can't remember it).

                                        1 Reply Last reply Reply Quote 0
                                        • G
                                          George
                                          last edited by

                                          Hahah, yes this thread is getting long. Just the issue of not having arcade/mame as a (sub)system.

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

                                            @George I though you were referring to something like adding command line parameters for starting mame as a different system emulator, like lr-mess does for multiple systems.

                                            1 Reply Last reply Reply Quote 0
                                            • 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.