snes9xgit / snes9x

Snes9x - Portable Super Nintendo Entertainment System (TM) emulator
http://www.snes9x.com
Other
2.67k stars 462 forks source link

What is stdout.txt and stderr.txt? And a request. #919

Open ReyVGM opened 6 months ago

ReyVGM commented 6 months ago

Like the title says, what are those text files? No matter how many times I delete them they always come back. Any way to get rid of them completely or at least force the emulator to move it to a sub directory?

Actually, that would be a good idea.

Request: Move all these types of emu files to a unique directory (stderr,, stdout, snes9x.conf, all the .dll, etc.)

Can it be done?

OV2 commented 6 months ago

stdout is the redirected standard output, stderr the redirected standard error. Snes9x prints some messages into those that can help debugging. Why are those files a problem for you?

If you want a clean dir with just the exe move everything into a sub dir and create a shortcut.

ReyVGM commented 6 months ago

stdout is the redirected standard output, stderr the redirected standard error. Snes9x prints some messages into those that can help debugging. Why are those files a problem for you?

If you want a clean dir with just the exe move everything into a sub dir and create a shortcut.

They aren't a problem, per se. Just asking if all config files could be kept in their own directory like how some other emulators do it so the root dir is clean.

Your suggestion sounds like something I could do, thanks.

By the way, if this request is something that's not going to be implemented, then you can close this thread.

bearoso commented 6 months ago

I guess the proper place for all of this is the local AppData folder. Maybe everything should go there. I believe it's been supported since WinXP, so compatibility is no problem, just people who are pedantic. 😉

ReyVGM commented 6 months ago

I guess the proper place for all of this is the local AppData folder. Maybe everything should go there. I believe it's been supported since WinXP, so compatibility is no problem, just people who are pedantic. 😉

If possible, it would be best to keep it all under the same snes9x folder. That way if a future Microsoft decides to change how the local appdata folder works, it won't break the way snes9x stores its files :)

bearoso commented 6 months ago

That way if a future Microsoft decides to change how the local appdata folder works, it won't break the way snes9x stores its files :)

I believe that's the idea behind the "Roaming" directory in AppData. The user can move it anywhere and expect applications to pick up their settings there.

I know that some users like to keep their emulator and settings encapsulated, but that doesn't exactly work with modern permission models. If an application is installed globally, an unprivileged user won't be able to write to that directory and won't be able to keep their own settings files. Installing the application for each user creates a duplicate installations, wasting space and possibly confusing which installation is used. While Snes9x isn't large enough to affect disk space, it should still follow best practices.

OV2 commented 6 months ago

AppData would be the designated folder from MS, yes. The problem with it is portability, and that normal users don't know enough about it to move settings between PCs.

It might be a good idea to use it for the new qt port, but I'd keep the old one as is. We'd need to still support the old mode or at least import old settings, probably add a new setting for a portable mode etc.

If you place the 32bit snes9x in the "Program Files (x86)" folder, the settings will automatically land in the "AppData\Local\VirtualStore" location.

ReyVGM commented 6 months ago

Personally, I would prefer if everything related to the emulator stays within its own snes9x folder and doesn't get transferred and segmented to some of those mentioned folders. That just causes confusion for us regular folk.

If you're talking about moving files to other folders, why not just create a subdir right in the snes9x folder to keep that stuff? Is there a limitation within the emulator or how windows works that prevents this?

Can't you tell the emulator like, "hey, all those stderr,, stdout, snes9x.conf, .dll files, read them from the \snes9x\Config directory" or something along those lines.

odditude42 commented 6 months ago

If the decision is made to (have an option to) write settings to AppData, I'd suggest providing the actual target directory and adding a button or link that opens that location in the default file manager.

As an example, Firefox identifies the user profile folder and provides a button to open the folder location in the Application Basics section of the Help > More troubleshooting information... page.

ReyVGM commented 6 months ago

I really don't understand why it would be moved to a windows directory like that when the settings files could just be moved to a subdir contained within the same snes9x folder. I mean, if you're going to move them, why not keep them contained to the same root folder, at least?

odditude42 commented 6 months ago

Windows best practice is for applications to be installed to Program Files / Program Files (x86). However, those directories are not user-writeable; any configuration files are intended to be placed in AppData.

If snes9x were to follow that best practice (vs a "portable install" option that keeps everything in a single parent folder), then the above would apply.

I personally would prefer that it stay in its current portable-friendly configuration with all main files within the same folder (e.g. the executable, the config files, and READMEs). A "clean" folder could be created by the end-user by creating shortcuts, as suggested above by OV2.

ReyVGM commented 6 months ago

snes9x is portable. All its config files can go in a subdir contained within the very same snes9x folder. I still don't understand why was it even suggested to use the AppData folder. If you're going to move the settings, then you might as well move it to a subdir within the same snes9x folder. That way everything is neat and in one single place.

In my opinion.