stonev Posted March 12 Posted March 12 Hi All, I've been tearing my hair out with this issue and hope that someone may be able help. I'm using Retroarch (via LaunchBox) to play Sega Master System and Sega Genesis games. The games use the same emulator (Genesis Plus GX), but the roms are located in different directories (LaunchBox/Games/Sega Master System/ and LaunchBox/Games/Sega Genesis). When I load a Genesis game in LaunchBox and then go into RetroArch settings to remap the Genesis buttons (Quick Menu > Controls > Manage Remap Files > Save Content Directory Remap File), it saves a remap file in the LaunchBox/Emulators/RetroArch/config/remaps/Genesis Plus GX directory called "Temp.rmp". Seems fine. When I launch any other Genesis games, that remap file is active. The problem comes when I launch an SMS game. The same Temp.rmp file is still active! I can remove the remap file, but it is then removed from the Genesis games as well. The mystery gets weirder when I load content directly through RetroArch (clicking retroarch.exe in LaunchBox/Emulators/RetroArch). When I save a remap file with Genesis content loaded, the filename is "Sega Genesis.rmp" and is saved to the same directory as above. When I then load SMS content directly through RetroArch, there's no remap file, which is expected. You'd think that this would have been a successful workaround, but you'd be wrong. When I go back to LaunchBox and load Genesis content, no remap file is active. Changing this setting in LaunchBox doesn't translate to RetroArch and vice-versa. I hope I've explained the situation clearly. It seems like content directory remapping is not working when RetroArch is launched via Launchbox, but IS working when RetroArch is launched directly. Please help! I'm running the latest versions of LaunchBox (13.20) and RetroArch (1.20.0) in Windows 11. Quote
dragon57 Posted March 13 Posted March 13 This has been a bane to all users of Windows Retroarch and the cores that support more than one system. I work on the Bezel Project team and am well aware of this issue and I am currently working on a solution to this. My testers have told me my latest method works well for them and I hope to roll this out in my Bezel Project Windows app very soon. While my efforts address the issue you bring up more widely than just for bezels, my bezel solution should address what you are stating. I have reached out to the LaunchBox team about integrating my new method, but I can't say more than that at the moment. I have no timeline yet for broad release. Just know a potential solution is forthcoming. Quote
stonev Posted March 13 Author Posted March 13 Thank you so much for this reply and for making me feel like I’m not going crazy! Not about this, anyway. I 100% appreciate your desire to not go into details regarding your potential solution. But just to make sure we’re on the same page, are you also observing the following oddities: Saving by content directory doesn’t affect all users. Before posting here, I searched online to see if others were experiencing the same problem and I couldn’t find anything. I also asked a buddy to test and he had no problem with the content directory remap working as advertised. This doesn’t affect saving remaps by core or by game. I’ve tested and those work fine for me. There seems to be a LaunchBox-specific aspect to this issue. As I mentioned, when I launch content directly through the LaunchBox-installed version of RetroArch, everything works fine. Those settings persist as long as I’m using RetroArch directly, but they do not carry over when launching through LaunchBox (I naively assumed that the correctly named remap file in the designated directory would be the solution, but it’s not). The core and game remaps do persist regardless of how I load content. I am particularly flummoxed by this aspect of the problem because it counters my (again, naive) notion that LaunchBox is simply a very nice front end to run other applications. In this instance, at least, LaunchBox seems to be applying its own logic and over-ruling RetroArch’s. Again, I totally appreciate your reticence to go into detail. I appreciate even more your coming up with a potential solution and your work on the Bezel Project (which is soooo awesome)! But - to the extent you’d feel comfortable - I’d appreciate your thoughts on my 3 observations. Quote
skizzosjt Posted March 13 Posted March 13 @stonev it should not be named "temp.rmp", or at least I've never had a remap file get created with that file name. it should be following the expected file name nomenclature which is in line with the other file name you mentioned "sega genesis.rmp" and the other should be "sega master system.rmp" not sure what to think about that goofy temp file name business, it is suspect to some other potential unknown issue though. any chance you installed/unpacked more than one instance of retroarch? and when you're testing from "within" the frontend and "outside" the frontend, are you sure you are running the exact same instance of retroarch? this would be the easiest explanation since making a setting change in one of the instances wouldn't impact the other and vise versa. but it doesn't really jive with the first bit about the temp file name, because that in itself is not normal per my experience. then again, I don't let the frontend manage my emulators or store them within the frontends directory structure so it could be related to that. i'm also not on the latest beta i'm on 13.19 and RA 1.16 Quote
stonev Posted March 13 Author Posted March 13 Thanks for jumping in the fray, @skizzosjt! Quote any chance you installed/unpacked more than one instance of retroarch? and when you're testing from "within" the frontend and "outside" the frontend, are you sure you are running the exact same instance of retroarch? this would be the easiest explanation since making a setting change in one of the instances wouldn't impact the other and vise versa. This was one thing I’d considered when looking online for a solution. It seems unlikely since this is a relatively new and relatively vanilla install of LB and is the only application on a dedicated drive. I have updated RA through LB once, but I’m not sure if that matters. I’ve also searched for another retroarch.exe file on my computer only to find the one. And unless I’m missing something obvious, the (single) instance of RA that LB is pointing to is the one that I launched independently for testing. Yes, the Temp.rmp thing is weird. Seems like a telltale sign of something obviously going wrong in the process. I’m hoping a LB developer will run across this post and know the precise instances in which that would occur (i.e., if X happens, then use Temp.rmp as a placeholder instead of Sega Genesis.rmp). And yes, my directory structure is entirely within LB. I’ve got two emulators in there (Mame, which works great and RA, which mostly works great) with multiple cores for RA. The Roms (content directories) are all stored within subfolders of the LB “Games” directory. Maybe it’s folder permission issue? I tried running LB as admin, but the problem persisted. Quote
dragon57 Posted March 14 Posted March 14 18 hours ago, stonev said: Thank you so much for this reply and for making me feel like I’m not going crazy! Not about this, anyway. I 100% appreciate your desire to not go into details regarding your potential solution. But just to make sure we’re on the same page, are you also observing the following oddities: Saving by content directory doesn’t affect all users. Before posting here, I searched online to see if others were experiencing the same problem and I couldn’t find anything. I also asked a buddy to test and he had no problem with the content directory remap working as advertised. This doesn’t affect saving remaps by core or by game. I’ve tested and those work fine for me. There seems to be a LaunchBox-specific aspect to this issue. As I mentioned, when I launch content directly through the LaunchBox-installed version of RetroArch, everything works fine. Those settings persist as long as I’m using RetroArch directly, but they do not carry over when launching through LaunchBox (I naively assumed that the correctly named remap file in the designated directory would be the solution, but it’s not). The core and game remaps do persist regardless of how I load content. I am particularly flummoxed by this aspect of the problem because it counters my (again, naive) notion that LaunchBox is simply a very nice front end to run other applications. In this instance, at least, LaunchBox seems to be applying its own logic and over-ruling RetroArch’s. Again, I totally appreciate your reticence to go into detail. I appreciate even more your coming up with a potential solution and your work on the Bezel Project (which is soooo awesome)! But - to the extent you’d feel comfortable - I’d appreciate your thoughts on my 3 observations. I have seen a number of people who say behavior seems to change when launching Retroarch from LaunchBox versus launching from Windows. Not always, but usually it is related to what is defined in the command line arguments for the Retroarch Emulator section. Have you checked to see how LaunchBox is launching Retroarch? I doubt that command line is basically blank. Quote
stonev Posted March 14 Author Posted March 14 14 hours ago, dragon57 said: I have seen a number of people who say behavior seems to change when launching Retroarch from LaunchBox versus launching from Windows. Not always, but usually it is related to what is defined in the command line arguments for the Retroarch Emulator section. Have you checked to see how LaunchBox is launching Retroarch? I doubt that command line is basically blank. I was hoping that was it! It would certainly explain the LB/RA discrepancy. Unfortunately, it looks like I have (almost) no arguments: If I look at the individual cores, the only argument is -f, which I believe makes things full screen; unlikely to be the culprit. Quote
Headrush69 Posted March 14 Posted March 14 1 hour ago, stonev said: I was hoping that was it! It would certainly explain the LB/RA discrepancy. Unfortunately, it looks like I have (almost) no arguments: Retroarch can drag options in from so many places due to overrides, configs, etc. To really compare you should turn on debugging for Retroarch and see exactly what is being read, set, etc. 1 Quote
dragon57 Posted March 15 Posted March 15 7 hours ago, Headrush69 said: Retroarch can drag options in from so many places due to overrides, configs, etc. To really compare you should turn on debugging for Retroarch and see exactly what is being read, set, etc. Totally agree. Retroarch has a ton of tweaks you can do, but unless you have lived and breathed Retroarch/Libretro over time and understood those tweaks as they evolve, it can be difficult for users to figure things out in a simple way. Keep giving us data and info and I am sure this can be figured out. Quote
stonev Posted March 15 Author Posted March 15 Ok, I'm happy to turn on debugging, but I'll need a little guidance on that. Can someone guide me through turning on verbose logging of RA from within LB? I've tried using "-v --log-file retroarch.log" as a default command line parameter, but that doesn't seem to create a log for me. I can launch the game and turn on logging from within RA, but that starts the logging process after the content is loaded and will (I assume) miss potentially important information. For what it's worth, here's the sole entry to the log file after launching RA content in LB and saving a content directory remap: [INFO] [Remap]: File saved successfully: "D:\LaunchBox\Emulators\RetroArch\config\remaps\Genesis Plus GX\\Temp.rmp". And here's the corresponding entry to the log after starting RA directly and turning on logging before loading any content (this is a single line of a much longer log): [INFO] [Remap]: File saved successfully: "D:\LaunchBox\Emulators\RetroArch\config\remaps\Genesis Plus GX\\Sega Genesis.rmp". But clearly there's more information to be gained if I could get the full log when loading through LB. So @Headrush69 and @dragon57, would you mind giving me a step-by-step on how you would go about turning on RA debugging from within LB, including the logging levels you'd use (if applicable)? Thank you! Quote
Headrush69 Posted March 15 Posted March 15 (edited) 1 hour ago, stonev said: So @Headrush69 and @dragon57, would you mind giving me a step-by-step on how you would go about turning on RA debugging from within LB, including the logging levels you'd use (if applicable)? Easiest way is just go into Retroarch main setting (in emulator) and go to Logging section. Turn on all the logging options and turn the log levels to Debug. (You probably don't need the performance counters or core debugging, for this issue) Save the configuration (in Retroarch) so it works on next launch. Run your various use cases and you should have time stamped logs in the Retroarch -> Logs folder. PS. Don't forget to go back and turn off logging once you are done and resave the configuration. Edit: The Temp.rmp part is the real puzzling part. It's almost like when LB installed it, it was decompressed in C:\Windows\Temp and some how that connection lingered. A couple things I would try: Remove the install of Retroarch (backup and configs/saves first) and the entry in LB. Then install manually in the same location. Add back to LB and see if the same issues persist when launching from LB. When you have debugging enabled, make sure you do runs saving a remap both ways so we maybe can see info on where that Temp.rmp is coming from. Edited March 15 by Headrush69 Quote
stonev Posted March 15 Author Posted March 15 Ok, here goes. I'm not sure I'm doing this exactly correctly, so please correct me if I've done something wrong. First, I've created a "retroarch_debug.cfg" file that differs from me regular retroarch.cfg in only a few ways: frontend_log_level and libretro_log_level = "0" (instead of "1") log_to_file, log_to_file_timestamp, and log_verbosity = "true" (instead of "false") When I test "straight" RA, I use the following command line from the RA directory: retroarch -f -L ".\cores\genesis_plus_gx_libretro.dll" -c ".\retroarch_debug.cfg" "..\..\Games\Sega Genesis\Aladdin (USA).zip" When I test via LB, I've added the following to the Sega Genesis "Associated Platform" (genesis_plus_gx_libretro core) to the "Extra Command-Line Parameters: -f -c ".\retroarch_debug.cfg" These both create a log file whenever I launch content (in this case, Aladdin). I'm using WinMerge to compare differences between the RA and LB logfiles. That way, I only need to present the sections that differ. Test #1: Launching Aladdin without any remaps (core, content directory, or game): RA: [INFO] [Core]: Loading dynamic libretro core from: ".\cores\genesis_plus_gx_libretro.dll" [INFO] [Overrides]: Content dir-specific overrides found at "D:\LaunchBox\Emulators\RetroArch\config\Genesis Plus GX\\Sega Genesis.cfg". [INFO] [Overrides]: Game-specific overrides found at "D:\LaunchBox\Emulators\RetroArch\config\Genesis Plus GX\Aladdin (USA).cfg". [INFO] [Overrides]: Game-specific overrides stacking on top of previous overrides. [INFO] [Config]: Loading config: ".\retroarch_debug.cfg". [INFO] [Config]: Appending override config: "D:\LaunchBox\Emulators\RetroArch\config\Genesis Plus GX\\Sega Genesis.cfg". LB: [INFO] [Core]: Loading dynamic libretro core from: "cores\genesis_plus_gx_libretro.dll" [INFO] [Overrides]: Game-specific overrides found at "D:\LaunchBox\Emulators\RetroArch\config\Genesis Plus GX\Aladdin (USA).cfg". [INFO] [Config]: Loading config: ".\retroarch_debug.cfg". Test #2: Launching Aladdin without any remaps and then creating a content-directory remap: RA: [INFO] [Core]: Loading dynamic libretro core from: ".\cores\genesis_plus_gx_libretro.dll" [INFO] [Overrides]: Content dir-specific overrides found at "D:\LaunchBox\Emulators\RetroArch\config\Genesis Plus GX\\Sega Genesis.cfg". [INFO] [Overrides]: Game-specific overrides found at "D:\LaunchBox\Emulators\RetroArch\config\Genesis Plus GX\Aladdin (USA).cfg". [INFO] [Overrides]: Game-specific overrides stacking on top of previous overrides. [INFO] [Config]: Loading config: ".\retroarch_debug.cfg". [INFO] [Config]: Appending override config: "D:\LaunchBox\Emulators\RetroArch\config\Genesis Plus GX\\Sega Genesis.cfg". [INFO] [Content]: Loading content file: "..\..\Games\Sega Genesis\Aladdin (USA).zip#Aladdin (USA).md". [INFO] [Content]: CRC32: 0xed427ea9. [INFO] [Remap]: File saved successfully: "D:\LaunchBox\Emulators\RetroArch\config\remaps\Genesis Plus GX\\Sega Genesis.rmp". LB: [INFO] [Core]: Loading dynamic libretro core from: "cores\genesis_plus_gx_libretro.dll" [INFO] [Overrides]: Game-specific overrides found at "D:\LaunchBox\Emulators\RetroArch\config\Genesis Plus GX\Aladdin (USA).cfg". [INFO] [Config]: Loading config: ".\retroarch_debug.cfg". [INFO] [Content]: Loading content file: "D:\LaunchBox\ThirdParty\7-Zip\Temp\Aladdin (USA).md". [INFO] [Remap]: File saved successfully: "D:\LaunchBox\Emulators\RetroArch\config\remaps\Genesis Plus GX\\Temp.rmp". Test #3: Launching Aladdin with remaps created in Test #2 loaded: RA: [INFO] [Core]: Loading dynamic libretro core from: ".\cores\genesis_plus_gx_libretro.dll" [INFO] [Overrides]: Content dir-specific overrides found at "D:\LaunchBox\Emulators\RetroArch\config\Genesis Plus GX\\Sega Genesis.cfg". [INFO] [Overrides]: Game-specific overrides found at "D:\LaunchBox\Emulators\RetroArch\config\Genesis Plus GX\Aladdin (USA).cfg". [INFO] [Overrides]: Game-specific overrides stacking on top of previous overrides. [INFO] [Config]: Loading config: ".\retroarch_debug.cfg". [INFO] [Config]: Appending override config: "D:\LaunchBox\Emulators\RetroArch\config\Genesis Plus GX\\Sega Genesis.cfg". [INFO] [Remaps]: Content-dir-specific remap found at "D:\LaunchBox\Emulators\RetroArch\config\remaps\Genesis Plus GX\\Sega Genesis.rmp". [INFO] [Content]: Loading content file: "..\..\Games\Sega Genesis\Aladdin (USA).zip#Aladdin (USA).md". [INFO] [Content]: CRC32: 0xed427ea9. LB: [INFO] [Core]: Loading dynamic libretro core from: "cores\genesis_plus_gx_libretro.dll" [INFO] [Overrides]: Game-specific overrides found at "D:\LaunchBox\Emulators\RetroArch\config\Genesis Plus GX\Aladdin (USA).cfg". [INFO] [Config]: Loading config: ".\retroarch_debug.cfg". [INFO] [Remaps]: Content-dir-specific remap found at "D:\LaunchBox\Emulators\RetroArch\config\remaps\Genesis Plus GX\\Temp.rmp". [INFO] [Content]: Loading content file: "D:\LaunchBox\ThirdParty\7-Zip\Temp\Aladdin (USA).md". So there are clearly a few differences at the top of the log file, but I'm not sure how they'd translate into the problem I'm having. Perhaps they're just reflections of the differences in how I've launched the content. Are there any other tests you'd like to see me try? Before I try re-installing, I'd like to have a very clear sense of what to save. Will the media downloaded through LB still work when I re-install? There's also a "reinstall" option for RA in LB. Would that work too? Quote
Solution Headrush69 Posted March 15 Solution Posted March 15 (edited) Turn OFF Extract Roms archives in the settings for Retroarch in LB. Retroarch handles looking into archives. This would explain why you are getting the Temp as an override, as LB is unzipping the file first, than sending the game to Retroarch. So a content-directory override is because the archive was unzipped in the Temp folder. Edited March 15 by Headrush69 1 Quote
skizzosjt Posted March 15 Posted March 15 don't extract roms. since it's extracting roms to the frontends temp folder also uncheck hide console on startup/shutdown 1 Quote
stonev Posted March 15 Author Posted March 15 Turning off Extract Roms worked!!! It saves remap files with the right name (as opposed to Temp). Thank you @Headrush69 and @skizzosjt for coming up with the solution and to everyone in this thread for their help and patience. You're all a credit to this community. @skizzosjt: out of curiosity, what does the "hide console on startup/shutdown" option do? And how would unchecking it help (beyond this issue)? Quote
Headrush69 Posted March 15 Posted March 15 5 minutes ago, stonev said: @skizzosjt: out of curiosity, what does the "hide console on startup/shutdown" option do? And how would unchecking it help (beyond this issue)? Some emulators start or display command line options and this can be useful when debugging. I have this enabled for all my emulators. (But everything is working as well ) Quote
stonev Posted March 15 Author Posted March 15 Gotcha. Maybe I’ll keep the box checked for now and will remember to uncheck it next time a bug pops up. Quote
skizzosjt Posted March 16 Posted March 16 16 hours ago, stonev said: Turning off Extract Roms worked!!! It saves remap files with the right name (as opposed to Temp). Thank you @Headrush69 and @skizzosjt for coming up with the solution and to everyone in this thread for their help and patience. You're all a credit to this community. @skizzosjt: out of curiosity, what does the "hide console on startup/shutdown" option do? And how would unchecking it help (beyond this issue)? 16 hours ago, Headrush69 said: Some emulators start or display command line options and this can be useful when debugging. I have this enabled for all my emulators. (But everything is working as well ) it hides the console window if the emulator uses one. console window would be another term for the command prompt window. the one emulator I know for certain it is useful for that I actually utilize is MAME standalone. i'm sure there are more but that's all I've ever needed to enable it on. its not needed for retroarch since no console window is produced hiding the additional command prompt window like this one that is created when MAME runs is what it is meant for didn't mean to imply the hide console checkbox would help the issue. this setting doesn't impact it one way or the other. I wanted to share it was unnecessary to enable so hopefully more people understand its purpose. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.