I gave the automated install scripts another shot. I tried copying the addon folders, complete with .con files this time (in addition to the .grp files I already had) to addons/, and running the install script again. Launch scripts were created, as expected, with the -addon parameter.
NWinter: works (always did)
DC: launched, but when I started a game on the "DC" episode (didn't try Eps. 1 or 2), it kicked me back to the menu (the "new game/load game" menu, not back to EmulationStation.) Tried loading a previous "DC" save: worked, but only sort of. There was the White House, I could run around and shoot, but the graphics were all glitchy, like when you move a window in Windows and it "smears" across the screen, just drawing the new position on top without erasing the old one first. The background was all doing that.
(Remember: my .grp files are not from Steam, as assumed in the guide, but from the original installation CD-ROMs or installed game directories in DOS-box. I believe this is why they didn't work with the -addon parameter.)
Since the automated method didn't work (mostly), while the manual method does, and since it doesn't seem to affect the save file location anyway, I'm gonna stick with what is working. So, back to the issue...
As a workaround, use a pushd <path_to_addon> before starting the game in the emulators.cfg for the addon, it should set the save path to the addon folder.
How would I do that? Just string it with a ;?
I tried this:/opt/retropie/configs/ports/duke3d-vacation/emulators.cfg: eduke32 = "pushd /opt/retropie/configs/ports/duke3d-vacation/; /opt/retropie/ports/eduke32/eduke32.sh -j/home/pi/RetroPie/roms/ports/duke3d -gvacation/vacation.grp -xvacation/game.con -j/home/pi/RetroPie/roms/ports/duke3d/vacation" default = "eduke32"
Didn't work. Saves still saved to duke3d, not duke3d-vacation.
Also tried pushd /home/pi/RetroPie/roms/ports/duke3d/vacation/; (...); same result. Is there another way I'm supposed to do it?
I tried removing (renaming) the configs/ports/duke3d folder to see what would happen. It used my $HOME folder instead. It put duplicates there, of everything from the configs folder (eduke32.cfg, grpfiles.cache, et al.) It also screwed up the graphics, but in a different way. Less noticeable in-game, but the intro screens and animations were all lo-fi, with big splotches of solid colors like it was in a 16-color mode or something.
This got me thinking, maybe it has something to do with eduke32.cfg's location. So I added -cfg /opt/retropie:configs/ports/<addon >/eduke32.cfg to the options. (These .cfg files were all copied from the duke3d folder and only modified in the SelectedGRP = line.) More weirdness: first of all, it still did the weird color-splotch thing. Additionally, I found new files in the folder: eduke32 (no .cfg, but it was formatted like the default eduke32.cfg) and eduke32_settings.cfg which looked like a duplicate of the default settings.cfg.)
Even the main game did the glitchy-color thing when I used -cfg /opt/retropie/configs/ports/duke3d/eduke32.cfg. Removed that option, and it went back to normal.
For a minute. I decided to just be done with it and put everything back to the working way and just deal with the shared saves. But something I had done along the way, made the color glitch reappear.
Well [censored] me, right?
So I deleted the duke3d folder again, reran the install script. Went in to the new duke3d folder to fix the emulators.cfg command, and noticed it was empty. Just emulators.cfg and a bare-bones settings.cfg with only two lines. Everything else (eduke32.cfg, etc.) were generated at runtime.
Maybe something in one of those files, copied over from the original install, had the bit that told the saves where to save. So I gave the addons' config folders the same treatment: I deleted everything but emulators.cfg and copied over the bare-bones settings.cfg from ../duke3d/. After loading one of the addons, config and save files were generated...in the duke3d folder!
I'm dead. This has killed me. I am no longer alive; a corpse is typing this.
That last bit was hyperbole, but I am out of ideas. There is no reason I can see why it is using a CWD other than where emulators.cfg is found, and I know it's using the right emulators.cfg because that's the only place the different launch options are found.
I'm done. I guess there is just no way to keep the addons separate from one another. Since having a separate "system" configured for each one (/opt/retropie/configs/ports/<sys>/emulators.cfg) does not appear to actually be doing anything, I might just scrap that idea and move the command options back to the launch scripts, have them all call _PORT_ "duke3d" since that's what they're basically doing anyway. I don't like it, but if they won't do what I tell them to, I may as well just tell them to do whatever it is they're going to do so at least I can still feel like I'm in control. (Actually I do like having fewer systems configured, if it doesn't mean I lose functionality. And since it never had the functionality of separate saves, there's nothing to lose. What I don't like is just that it's not using the systems I configured, and that I can't figure out why.)
Other things that did not work either (I didn't think they would, since the files are saving in a folder named duke3d, not one named eduke32 as the emulator is called, but nothing else has worked so I gave it a shot anyway. But it was no surprise when it didn't suddenly "fix it."):
Changing the emulator name inside emulators.cfg, à la:eduke32-vacation = "<command>" default = "eduke32-vacation"
Duplicating the symlink:$HOME/.config/eduke32 -> /opt/retropie/configs/ports/duke3d
for each of the addons, as in:$HOME/.config/eduke32-vacation -> /opt/retropie/configs/ports/duke3d-vacation
Doing both of these things together.
Is eduke32.log meant to always be saved to my $HOME folder, or did I boff something else up along the way?