Linapple: Feature / Enhancement Ideas
-
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
-
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.
-
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.
-
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.
-
@plate-of-shrimp and good lord, the ability to add a custom monitor + shaders is a pleasant change from linapple
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.
-
@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. -
@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.
-
Alright.
-
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%.
-
@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.
-
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.
-
-
Wait. Just got this search hit:
https://retropie.org.uk/forum/topic/25576/new-scriptmodules-lr-vice-xvic-gsplus-proper-lr-mess-integration?_=1592931004521which includes ii and iigs for lr-mess ...
-
@plate-of-shrimp said in Linapple: Feature / Enhancement Ideas:
Alright.
-
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%.
-
@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.
-
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?_=1592931609290With 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.
-
-
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.
-
This post is deleted!
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.