TASEmulators / BizHawk

BizHawk is a multi-system emulator written in C#. BizHawk provides nice features for casual gamers such as full screen, and joypad support in addition to full rerecording and debugging tools for all system cores.
http://tasvideos.org/BizHawk.html
Other
2.2k stars 385 forks source link

`DirectoryNotFoundException` when loading `.cue` #3445

Closed ghost closed 2 years ago

ghost commented 2 years ago

I have a bin file of the rom whose size is 555 MB and a cue file of the rom whose size is 1 KB.

When I open the cue file there is unhandled exception error. When I open the bin file I am asked to select the console or platform that this rom belongs to.

When I choose playstation and proceed I am asked for the firmware. For playstation U I selected SCPH1001.bin bios and SCPH7502.bin for E.

Then I reload the rom and the title bar changes to show me that BizHawk is emulating the selected rom but the entire client of the BizHawk main window remains black all the time.

Is Castlevania Symphony of the Night playable on BizHawk at all? If yes then what I am doing wrong?

YoshiRulz commented 2 years ago

Can you copy+paste the error you get when you open the .cue?

ghost commented 2 years ago

I can't because this is a message box thus both Ctrl+A or highlighting the text with my mouse and then copy won't work.

YoshiRulz commented 2 years ago

Ctrl+C with the dialog focused should work. If all else fails you could take a screenshot.

ghost commented 2 years ago
System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\WINDOWS\DESKTOP'.
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.FileSystemEnumerableIterator`1.CommonInit()
   at System.IO.FileSystemEnumerableIterator`1..ctor(String path, String originalUserPath, String searchPattern, SearchOption searchOption, SearchResultHandler`1 resultHandler, Boolean checkHost)
   at System.IO.DirectoryInfo.InternalGetFiles(String searchPattern, SearchOption searchOption)
   at BizHawk.Emulation.DiscSystem.CUE.CueFileResolver.Resolve(String path) in /builds/TASVideos/BizHawk/src/BizHawk.Emulation.DiscSystem/DiscFormats/CUE/CueFileResolver.cs:line 80
   at BizHawk.Emulation.DiscSystem.CUE.CompileCueJob.OpenFile(FILE f) in /builds/TASVideos/BizHawk/src/BizHawk.Emulation.DiscSystem/DiscFormats/CUE/CUE_Compile.cs:line 218
   at BizHawk.Emulation.DiscSystem.CUE.CompileCueJob.Run() in /builds/TASVideos/BizHawk/src/BizHawk.Emulation.DiscSystem/DiscFormats/CUE/CUE_Compile.cs:line 449
   at BizHawk.Emulation.DiscSystem.DiscMountJob.<RunBizHawk>g__LoadCue|15_0(String cueDirPath, String cueContent) in /builds/TASVideos/BizHawk/src/BizHawk.Emulation.DiscSystem/DiscMountJob.cs:line 155
   at BizHawk.Emulation.DiscSystem.DiscMountJob.RunBizHawk() in /builds/TASVideos/BizHawk/src/BizHawk.Emulation.DiscSystem/DiscMountJob.cs:line 192
   at BizHawk.Emulation.DiscSystem.DiscMountJob.Run() in /builds/TASVideos/BizHawk/src/BizHawk.Emulation.DiscSystem/DiscMountJob.cs:line 72
   at BizHawk.Emulation.DiscSystem.DiscExtensions.CreateImpl(Nullable`1 type, String path, Action`1 errorCallback) in /builds/TASVideos/BizHawk/src/BizHawk.Emulation.DiscSystem/DiscExtensions.cs:line 20
   at BizHawk.Client.Common.RomLoader.LoadDisc(String path, CoreComm nextComm, HawkFile file, String ext, String forcedCoreName, IEmulator& nextEmulator, GameInfo& game) in /builds/TASVideos/BizHawk/src/BizHawk.Client.Common/RomLoader.cs:line 306
   at BizHawk.Client.Common.RomLoader.LoadRom(String path, CoreComm nextComm, String launchLibretroCore, String forcedCoreName, Int32 recursiveCount) in /builds/TASVideos/BizHawk/src/BizHawk.Client.Common/RomLoader.cs:line 703
ghost commented 2 years ago

Should I open the cue file instead of the bin file?

YoshiRulz commented 2 years ago

The .cue references a file on the PC it was dumped on which doesn't exist on your PC. Open it in a text editor and change the absolute path to a relative one, making sure it matches the .bin filename.

ghost commented 2 years ago

Both the .cue and the .bin files are in the same folder and other playstation emulators like ePSXe, pcsx reloaded, no$psx and DuckStation can emulate the rom by selecting either .cue or .bin.

I am not required to edit any of them but if for BizHawk I must edit the .cue file then I will do it after making a backup first.

Strange:

the .cue file mentions a path and directory that does not exist in my windows 10 64 bit PC!

It says C:\WINDOWS\DESKTOP\CASTLEVANIA.BIN

I think that all the PSX emulators that I tried before BizHawk didn't find the .bin file in this directory because this directory just doesn't exist so they tried to find the .bin file in the current directory (that is where the selected .cue file is) and succeed.

Maybe and perhaps I both assumed and expected that BizHawk would do the same thing as all other PSX emulators do.

I can correct the .cue file for BizHawk after making a backup first but I think that selecting the .cue file after the correction will be the same as selecting the .bin file.

Correct me if I am wrong.

YoshiRulz commented 2 years ago

I think you're right about other emulators "cheating", something we've been hesitant to do.

EmuHawk should be able to load the corrected .cue. It won't be exactly the same as loading the .bin because of the spaghetti code that handles rom loading, though if the .bin is corrupted it may have the same outcome.

ghost commented 2 years ago

Okay I made a backup of the original .cue file and then corrected the .cue file and selected the corrected .cue file.

Strange that I was asked again for the firmware. Again I chose bios SCPH1001.bin for U and SCPH7502.bin for E and then reloaded the rom.

Finally BizHawk plays the rom! BUT the Debugger is greyed out and unavailable and I don't know why.

I want to use it to hack the game and make my own cheats but why I can't use the debugger?

CasualPokePlayer commented 2 years ago

Change the core to Octoshock (Config -> Cores -> PSX) if you want to use the debugger. Be aware however the debugger here is garbage and barely works, you'll have better luck with other emus here.