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

    Linapple: Feature / Enhancement Ideas

    Scheduled Pinned Locked Moved Ideas and Development
    linapplelibretrocoreapple iiapple 2
    12 Posts 5 Posters 1.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.
    • P
      plate-of-shrimp
      last edited by

      Hi all. I've been working with dabonetn's version of linapple, which is the one released with RetroPie. I'm thinking about tweaks that would integrate it more with the RetroPie ecosystem.

      Idea: set up the joystick exit chord according to the standard, or the setting in RetroArch or EmulationStation that defines that in general terms. How does that work? I did see that configuration hints exist in ES, have not looked in RetroArch yet.

      Idea: support loading .conf or .awss files from ES. I was the one who added --conf support a while back, it was never exposed in the command line help.

      Idea: convert linapple to a libretro core.
      Or abandon it for a core that is at least as good!
      I read that MESS is able to emulate an Apple II. Anybody ever try that on the Pi?

      Do these ideas sound compelling? Any others? Do RetroPie devs have any tips or opinions?

      -- PoS

      1 Reply Last reply Reply Quote 1
      • P
        plate-of-shrimp
        last edited by

        BTW, re the joystick idea -- dabonetn already added an option for exiting via joystick, but the button codes that are shipped may not match what the users needs/specified.

        1 Reply Last reply Reply Quote 0
        • roslofR
          roslof
          last edited by

          I use Linapple, and exit w/F10. Yeah, would be nice to be able to exit with Joystick controls. Standard would be a bonus.

          Feature-wise, more than anything, better multi-disk support would be huge. For large collections, tapping F3/F4 to scan disks is extremely slow on a Raspberry Pi. Largest libraries to take minutes just to bring up the display.

          Haven't tried configuring MESS for Apple ][. I have Apple IIGS running though, so I imagine configuring for Apple ][ wouldn't be too far off. Will look into it.

          1 Reply Last reply Reply Quote 0
          • roslofR
            roslof
            last edited by

            Looked into MESS/Apple II.
            A pain to setup, but once running, lots of options.

            Via command-line, could add joysticks or paddles. Works well (tested joystick w/TaxMan and paddles with Breakout by Steve Wozniack)

            Documentation mentions NIB support, but it appears that NIB isn't actually supported by libretro MESS/MAME 0.220. A shame. Might try the newest version of MAME instead of MESS.

            Disk swapping? No idea. Will look into this more, but so far, no so luck here.

            Setting up MESS w/Apple II is not trivial. A libretro version of Linapple would solve a lot of pain for people interested in the platform. Could leverage lr disk eject/swap functions.

            roslofR 1 Reply Last reply Reply Quote 0
            • roslofR
              roslof @roslof
              last edited by

              @plate-of-shrimp and good lord, the ability to add a custom monitor + shaders is a pleasant change from linapple

              breakout.png

              taxman.png

              Seems like disc swap and NIB support are the only things to figure out. Not sure if either are possible with MESS. Docs are sketchy.

              2Play2 1 Reply Last reply Reply Quote 0
              • mituM
                mitu Global Moderator
                last edited by

                @plate-of-shrimp said in Linapple: Feature / Enhancement Ideas:

                Idea: set up the joystick exit chord according to the standard, or the setting in RetroArch or EmulationStation that defines that in general terms. How does that work? I did see that configuration hints exist in ES, have not looked in RetroArch yet.

                After, configuring your input in EmulationStation, the ES input configuration file is written to a temporary file, which is then fed to one of the input handling scripts in the configscripts folder.

                Each script has a standard set of functions that read the input config file and generate the specific emulator input configuration. For instance, this is how a RetroArch joystick auto-configuration maps the gamepad inputs as set by the user.

                Idea: support loading .conf or .awss files from ES. I was the one who added --conf support a while back, it was never exposed in the command line help.

                That might require creating a wrapper around the launcher, so it would launch linapple with the correct parameters depending on the file extension. Would be a nice addition.

                1 Reply Last reply Reply Quote 0
                • P
                  plate-of-shrimp
                  last edited by

                  @roslof said in Linapple: Feature / Enhancement Ideas:

                  better multi-disk support would be huge

                  Totally agree. Need to look around for some prevailing standard on protocol. I recall that FS-UAE has a process, for example. Thanks for investigating and posting those super cool images. Was that on a Pi? Was the setup process prescribed enough to describe?

                  @mitu thanks.

                  launch linapple with the correct parameters depending on the file extension

                  Yes. I have something written there, as a spiritual extension to the extant linapple.sh wrapper. It supports .dsk et al, .conf, .awss, .hdv but i need to repair the internal support for the last two. As it happens, i have some support for linapple internally autosensing the filetype of the file passed to it, which doesn't require distinct options flags for eash filetype, so eventually it may not be necessary to wrap the invocation.

                  Honestly, though, MESS looks so cool. If it can be fast, stable, friendly and robust, i question investing too much more into linapple.

                  1 Reply Last reply Reply Quote 0
                  • P
                    plate-of-shrimp
                    last edited by

                    Alright.

                    1. Got the mame that is shipping with Raspbian to run apple2e. Not easy to get the prereqs together. Runs slow; reports 50% speed but is more like 1%.

                    2. @dankcushions posted once that the lr versions of mame can't take per-machine arguments, so i would not be able to pass '-flop1' with 'apple2e' to see if that does anything.

                    3. lr versions might reasonably have stuff torn out to be fast. don't know how true that might be for lr-mess.

                    Based on that, linapple or a close cousin still seems a good thing.

                    roslofR 1 Reply Last reply Reply Quote 0
                    • P
                      plate-of-shrimp
                      last edited by

                      Wait. Just got this search hit:
                      https://retropie.org.uk/forum/topic/25576/new-scriptmodules-lr-vice-xvic-gsplus-proper-lr-mess-integration?_=1592931004521

                      which includes ii and iigs for lr-mess ...

                      1 Reply Last reply Reply Quote 0
                      • roslofR
                        roslof @plate-of-shrimp
                        last edited by roslof

                        @plate-of-shrimp said in Linapple: Feature / Enhancement Ideas:

                        Alright.

                        1. Got the mame that is shipping with Raspbian to run apple2e. Not easy to get the prereqs together. Runs slow; reports 50% speed but is more like 1%.

                        2. @dankcushions posted once that the lr versions of mame can't take per-machine arguments, so i would not be able to pass '-flop1' with 'apple2e' to see if that does anything.

                        3. lr versions might reasonably have stuff torn out to be fast. don't know how true that might be for lr-mess.

                        Based on that, linapple or a close cousin still seems a good thing.

                        You could use the scripts that @valerino created here:
                        https://retropie.org.uk/forum/topic/25576/new-scriptmodules-lr-vice-xvic-gsplus-proper-lr-mess-integration?_=1592931609290

                        With his run_mess.sh script, I setup a few emulation variants to launch IIGS, II, etc. And just because I owned a Laser128 I emulate that, too. My version:

                        linapple = "pushd /home/pi/RetroPie/roms/apple2; /opt/retropie/emulators/linapple/linapple -1 %ROM%; popd"
                        default = "AppleIIe_Enhanced_Joystick"
                        AppleIIe_Enhanced_Joystick = "/home/pi/RetroPie-Setup/scriptmodules/run_mess.sh /opt/retropie/emulators/retroarch/bin/retroarch /opt/retropie/libretrocores/lr-mess/mess_libretro.so /opt/retropie/configs/apple2/retroarch.cfg apple2ee /home/pi/RetroPie/BIOS -gameio joy -flop1 %ROM%"
                        AppleIIe_Enhanced_Paddles = "/home/pi/RetroPie-Setup/scriptmodules/run_mess.sh /opt/retropie/emulators/retroarch/bin/retroarch /opt/retropie/libretrocores/lr-mess/mess_libretro.so /opt/retropie/configs/apple2/retroarch.cfg apple2ee /home/pi/RetroPie/BIOS -gameio paddles -flop1 %ROM%"
                        AppleIIe = "/home/pi/RetroPie-Setup/scriptmodules/run_mess.sh /opt/retropie/emulators/retroarch/bin/retroarch /opt/retropie/libretrocores/lr-mess/mess_libretro.so /opt/retropie/configs/apple2/retroarch.cfg apple2e /home/pi/RetroPie/BIOS -gameio joy -flop1 %ROM%"
                        AppleIIc = "/home/pi/RetroPie-Setup/scriptmodules/run_mess.sh /opt/retropie/emulators/retroarch/bin/retroarch /opt/retropie/libretrocores/lr-mess/mess_libretro.so /opt/retropie/configs/apple2/retroarch.cfg apple2c /home/pi/RetroPie/BIOS -gameio joy -flop1 %ROM%"
                        AppleII+ = "/home/pi/RetroPie-Setup/scriptmodules/run_mess.sh /opt/retropie/emulators/retroarch/bin/retroarch /opt/retropie/libretrocores/lr-mess/mess_libretro.so /opt/retropie/configs/apple2/retroarch.cfg apple2p /home/pi/RetroPie/BIOS -gameio joy -flop1 %ROM%"
                        AppleIIGS_3.5 = "/home/pi/RetroPie-Setup/scriptmodules/run_mess.sh /opt/retropie/emulators/retroarch/bin/retroarch /opt/retropie/libretrocores/lr-mess/mess_libretro.so /opt/retropie/configs/apple2gs/retroarch.cfg apple2gsr1 /home/pi/RetroPie/BIOS -gameio joy -flop3 %ROM%"
                        AppleIIGS_5.25 = "/home/pi/RetroPie-Setup/scriptmodules/run_mess.sh /opt/retropie/emulators/retroarch/bin/retroarch /opt/retropie/libretrocores/lr-mess/mess_libretro.so /opt/retropie/configs/apple2gs/retroarch.cfg apple2gsr1 /home/pi/RetroPie/BIOS -gameio joy -flop1 %ROM%"
                        Laser128 = "/home/pi/RetroPie-Setup/scriptmodules/run_mess.sh /opt/retropie/emulators/retroarch/bin/retroarch /opt/retropie/libretrocores/lr-mess/mess_libretro.so /opt/retropie/configs/apple2/retroarch.cfg laser128 /home/pi/RetroPie/BIOS -gameio joy -flop1 %ROM%"
                        Laser128EX = "/home/pi/RetroPie-Setup/scriptmodules/run_mess.sh /opt/retropie/emulators/retroarch/bin/retroarch /opt/retropie/libretrocores/lr-mess/mess_libretro.so /opt/retropie/configs/apple2/retroarch.cfg las128ex /home/pi/RetroPie/BIOS -gameio joy -flop1 %ROM%"
                        

                        I still haven't played with hard drives or disk swapping. Wager disk swapping is still a pain.

                        1 Reply Last reply Reply Quote 0
                        • V
                          VictimRLSH
                          last edited by

                          I wrote a tutorial a while back with some tips to help with the disc swapping and save state mess. https://retropie.org.uk/forum/topic/19269/tutorial-painless-apple-game-emulation?_=1592965674049

                          One thing I would like to see is write protect in the emulator. Games written in Apple Pascal need the boot disc write protected or the boot hangs. This includes the first 3 Wizardry games. Like I discussed in the tutorial, you currently need to use file permissions as a workaround for this.

                          System Config: Retropie 4.4 with full desktop, RPi 3B, 256gb SD, 5v 2.1A 5,200 mAH USB battery. EasyMSX controller mounted with Pimoroni Hyperpixel 4 (non touch). Also running 4.6 on a 4gb Pi 4 serving as my primary desktop computer now.

                          1 Reply Last reply Reply Quote 0
                          • 2Play2
                            2Play @roslof
                            last edited by

                            This post is deleted!
                            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.