86Box/docs

Documentation bug regarding roms directory on macOS

Opened this issue · 4 comments

Describe the bug
On the "search path" section of the ROMs documentation page, here, it is stated that the roms directory can be located in one of the following locations:

  • roms subdirectory in the VM path
  • roms subdirectory in the same directory as the emulator executable
  • Platform-specific locations

However, in macOS (13.4.1) if the roms directory is in the same location as 86Box.app (e.g. ~/dev/86box/) the "86Box cannot determine the emulated machine's location due to a macOS security feature" error is displayed when trying to launch 86Box. If the roms directory is moved to ~/Application\ Support/net.86box.86Box/ then 86Box.app can be launched successfully.

Confirmed on build 4701.

To Reproduce

  1. Make sure ~/Library/Application\ Support/net.86box.86Box/roms/ does not exist (or move it temporarily)
  2. Place the roms directory in the same location as 86Box.app
  3. Launch 86Box.app

Expected behavior
The documentation states the the roms directory may be located "in the same directory as the emulator executable", yet that does not seem to be a valid configuration. Either the documentation needs to be updated to reflect the requirement that the roms directory be placed in ~/Application\ Support/net.86box.86Box/ or the software needs to correctly check the " roms subdirectory in the same directory as the emulator executable".

Desktop (please complete the following information):

  • OS: macOS 13.4.1 on a 2020 14" MacBook Pro
  • 86Box version: v4.0 build 4711

I can't seem to reproduce this. Ventura 13.1. Followed the reproduction steps. I also downloaded the latest 86box from CI (4748) to test.

  1. Made sure ~/Library/Application\ Support/net.86box.86Box/roms did not exist
  2. Placed roms directory in the same directory
  3. Launched in various ways
ls -ld 86Box.app roms
drwxr-xr-x   3 myusername  staff   96 Jul 27 11:05 86Box.app
drwxr-xr-x  16 myusername  staff  512 Sep  2  2022 roms

I tried launching by:

  • Double clicking in finder
  • Using open 86Box.app in a terminal
  • Directly calling the binary contained in the bundle (./86Box.app/Contents/MacOS/86Box) in a terminal

In every case it correctly found the roms directory in the current folder.

What may help: Could you run 86Box directly from a terminal and paste the output here? There's some extra information which may help us track this down. I'm not sure why your scenario is triggering that message.

In a terminal:

cd /path/to/dir
./86Box.app/Contents/MacOS/86Box

and paste the contents here.

Side note: When I moved it to a new location (removable drive) I did receive the 86Box would like to access files on a removable volume message, to which I granted permission. I wonder if for some reason the executable does not have sufficient permissions to read the current directory?

It might be worthwhile to check System Settings -> Privacy -> Files and Folders -> 86Box.

Checking back in here - will you be able to run the commands I noted to help us track the issue down? Otherwise I can't reproduce.

@cold-brewed yes, I'm happy to test more - let me run through it again and make sure it's still happening.

Well, that is interesting. So I have just downloaded the latest stable release (4.0.1). If I run it from Finder I get following error, no matter where I move the app:

86Box cannot determine the emulated machine's location due to a macOS security feature. Please move the 86Box app to another folder (not /Applications), or make a copy of it and open that copy instead.

when I do what @cold-brewed suggested, I got:

86Box could not find any usable ROM images. Please [download](https://github.com/86Box/roms/releases/latest) a ROM set and extract it into the "roms" directory.
error

and after downloading the roms, and putting them side-by-side with 86Box.app it worked from the command line, yet if I try to run it from Finder I still get the same error as initially.