realnc / dosbox-core

A DOSBox core for use in RetroArch and other libretro frontends.
GNU General Public License v2.0
42 stars 16 forks source link

Current Directory Breaking Change #40

Closed redmist77 closed 2 years ago

redmist77 commented 2 years ago

I use scripts that load games using e.g.

mount c .

These no longer work since the change on Dec 15. How can I reference the current folder in a DosBox BAT/CONF file?

redmist77 commented 2 years ago

Workaround by setting the current directoy to the content directory before running RetroArch.

realnc commented 2 years ago

It works fine here. What error message do you get? Also, is this on Linux or Windows?

realnc commented 2 years ago

Workaround by setting the current directoy to the content directory before running RetroArch.

Btw, it's supposed to work without having to change the current directory. It's a bug if it doesn't work for you.

DukeSkinny commented 2 years ago

Just ran into this as well, coming from an at least several months old core to latest. Basically, mount c . seems to mount the RA directory rather than that of the content. This is according to dir. On Windows.

redmist77 commented 2 years ago

To reproduce this issue, load a .conf file which is on another volume and then try to mount a relative folder. Previously, the current working directory switched to the location of the .conf file which seems logical. Now the current directory remains the RetroArch directory.

realnc commented 2 years ago

I pushed commit 902b0f1f6bdce61bc7ce76302c413cca3eb21a82 which should fix the issue. It's gonna take a while for the update to become available in the core downloader. If you want to test sooner, you can download the core from:

https://github.com/realnc/dosbox-core/releases/tag/latest_build

DukeSkinny commented 2 years ago

With this build I can run games! Everything slows down to a crawl however, but I reverted to the earlier build and ran the games using absolute path and the same phenomenon presented itself. Since I must've gone months without updating it's gonna be real hard to figure out when this started. Oh well. Thanks for the fix!

realnc commented 2 years ago

With this build I can run games! Everything slows down to a crawl however

Don't use auto or max cycles. Use fixed cycles.

DukeSkinny commented 2 years ago

Always have used fixed cycles. With 100% unchanged core options, from when I last updated to now something must've happened.

realnc commented 2 years ago

Always have used fixed cycles. With 100% unchanged core options, from when I last updated to now something must've happened.

Maybe you're using some bat file that chances dosbox settings? A recent change in this core was the addition of the "Core Option Handling" option, which defaults to "disable options changed within dosbox". So it could be that cycles is being changed in the bat file. For example the run.bat files of exodos love to do this and mess up games with this core.

DukeSkinny commented 2 years ago

Indeed, my .conf files tend to be filled out. So I removed everything except for the [autoexec] for the test game, but I'm still having the same issue. The .conf does run a .bat, but the .bat itself simply opens two .exe's.

realnc commented 2 years ago

Indeed, my .conf files tend to be filled out. So I removed everything except for the [autoexec] for the test game, but I'm still having the same issue. The .conf does run a .bat, but the .bat itself simply opens two .exe's.

Does it happen with all games?

DukeSkinny commented 2 years ago

Every game I've tried so far, yes. Tried a handful with clean .conf files as well. Same results. No rewind, no strange vsync settings. On a 5950X.

redmist77 commented 2 years ago

Every game I've tried so far, yes. Tried a handful with clean .conf files as well. Same results. No rewind, no strange vsync settings. On a 5950X.

The latest build fixed the directory issue and all of my games are running fine (3900X). Maybe try unzipping a clean copy of RetroArch in another directory and see if the problem remains.

DukeSkinny commented 2 years ago

Right. That did work, so I guess the core can be mostly ruled out. Still, the only factor that changed between great and terrible (slideshow) performance was the core itself. Maybe it broke compatibility with some setting in RA?

Anyway, this is hijacking the issue. Should I be so inclined I can open a new one. Thanks!

Edit: On the off chance that this might be related: https://github.com/libretro/dosbox-libretro/issues/139