Long time Retroarch user, can't run cores successfully on Mac

I’m trying to set up Retroarch 1.9.10 on MacOS 10.13.6. I’ve been a long time Retroarch user on other platforms.

For testing this Retroarch setup I’ve tried the SNES 9x (latest) and NES FCEUmm cores. Whenever I try running a SNES or NES rom (working roms, tested on other platforms), Retroarch crashes.

I’ve updated Installed Cores, Core Info files, Assets, and all others in Online Updater.

I’m pretty sure neither of these cores require a BIOS file (correct me if I’m wrong).

Can you help me out? I have no clue where to find logs on MacOS.

Thanks in advance!

4 Likes

You’re correct that those cores don’t need BIOSes, so something else must be afoot.

You should be able to find where your log directory is (and/or change it to somewhere more convenient) by going to settings > directory.

2 Likes

Thanks, just checked the Documents/Retroarch/logs folder. The folder exists but it’s empty (no hidden files as well).

Any other clues?

Did you do the rest of the logging process? That is, go to settings > logs, set both logging verbosities to debug-0 and ‘log to file’ to ON, then make the offending behavior happen and quit retroarch.

1 Like

I skimmed through this log but didn’t find any obvious errors:

[INFO] [Environ]: SET_SUBSYSTEM_INFO.
[INFO] Subsystem ID: 0
Special game type: Multi-Cart Link
  Ident: multicart_addon
  ID: 4357
  Content:
[INFO]     Cart A (optional)
[INFO]     Cart B (optional)
[INFO] Subsystems: 1
[INFO] [Environ]: SET_SUBSYSTEM_INFO.
[INFO] Subsystem ID: 0
Special game type: Multi-Cart Link
  Ident: multicart_addon
  ID: 4357
  Content:
[INFO]     Cart A (optional)
[INFO]     Cart B (optional)
[INFO] Subsystems: 1
[INFO] [CONTENT LOAD]: Updating firmware status for: /Users/megashark/Library/Application Support/RetroArch/cores/snes9x_libretro.dylib on /Users/megashark/Documents/RetroArch/system
[INFO] [CORE]: Using content: /Users/megashark/Desktop/MeoCloud/Emu/SNES/Super Mario All-Stars + Super Mario World (USA).zip.
[INFO] [Core]: Content ran for a total of: 00 hours, 00 minutes, 00 seconds.
[INFO] [Core]: Unloading core..
[INFO] [Core]: Unloading core symbols..
[INFO] [Video]: Average monitor Hz: 60.002400 Hz. (3.335 % frame time deviation, based on 2048 last samples).
[INFO] === Build =======================================
[INFO] CPU Model Name: Intel(R) Core(TM) i5-2557M CPU @ 1.70GHz
[INFO] Capabilities:  MMX MMXEXT SSE SSE2 SSE3 SSSE3 SSE4 SSE4.2 AES AVX AVX2
[INFO] Built: Sep 19 2021
[INFO] Version: 1.9.10
[INFO] =================================================
[INFO] [Input]: Found input driver: "cocoa".
[INFO] [Core]: Loading dynamic libretro core from: "/Users/megashark/Library/Application Support/RetroArch/cores/snes9x_libretro.dylib"
[INFO] [Overrides]: No core-specific overrides found at "/Users/megashark/Library/Application Support/RetroArch/config/Snes9x/Snes9x.cfg".
[INFO] [Overrides]: No content-dir-specific overrides found at "/Users/megashark/Library/Application Support/RetroArch/config/Snes9x/SNES.cfg".
[INFO] [Overrides]: No game-specific overrides found at "/Users/megashark/Library/Application Support/RetroArch/config/Snes9x/Super Mario All-Stars + Super Mario World (USA).cfg".
[INFO] [Environ]: SET_SUBSYSTEM_INFO.
[INFO] Special game type: Multi-Cart Link
  Ident: multicart_addon
  ID: 4357
  Content:
[INFO]     Cart A (optional)
[INFO]     Cart B (optional)
[INFO] [Environ]: GET_CORE_OPTIONS_VERSION.
[INFO] [Environ]: GET_LANGUAGE: "0".
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_V2_INTL.
[DEBUG] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[DEBUG] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: SET_CONTROLLER_INFO.
[INFO] Controller port: 1
[INFO]    None (ID: 0)
[INFO]    SNES Joypad (ID: 1)
[INFO]    SNES Mouse (ID: 2)
[INFO]    Multitap (ID: 257)
[INFO] Controller port: 2
[INFO]    None (ID: 0)
[INFO]    SNES Joypad (ID: 1)
[INFO]    SNES Mouse (ID: 2)
[INFO]    Multitap (ID: 257)
[INFO]    SuperScope (ID: 260)
[INFO]    Justifier (ID: 516)
[INFO]    M.A.C.S. Rifle (ID: 1028)
[INFO] Controller port: 3
[INFO]    None (ID: 0)
[INFO]    SNES Joypad (ID: 1)
[INFO]    Justifier (2P) (ID: 772)
[INFO] Controller port: 4
[INFO]    None (ID: 0)
[INFO]    SNES Joypad (ID: 1)
[INFO] Controller port: 5
[INFO]    None (ID: 0)
[INFO]    SNES Joypad (ID: 1)
[INFO] Controller port: 6
[INFO]    None (ID: 0)
[INFO]    SNES Joypad (ID: 1)
[INFO] Controller port: 7
[INFO]    None (ID: 0)
[INFO]    SNES Joypad (ID: 1)
[INFO] Controller port: 8
[INFO]    None (ID: 0)
[INFO]    SNES Joypad (ID: 1)
[INFO] [Remaps]: Remap directory: "/Users/megashark/Library/Application Support/RetroArch/config/remaps".
[INFO] [Overrides]: Redirecting save file to "/Super Mario All-Stars + Super Mario World (USA).srm".
[INFO] [Overrides]: Redirecting save state to "/Super Mario All-Stars + Super Mario World (USA).state".
[INFO] [Environ]: GET_LOG_INTERFACE.
[INFO] [Environ]: SYSTEM_DIRECTORY: "/Users/megashark/Documents/RetroArch/system".
[INFO] [Environ]: GET_SAVE_DIRECTORY.
[INFO] [Environ]: SET_SUPPORT_ACHIEVEMENTS: yes.
[INFO] [Environ]: PERFORMANCE_LEVEL: 12.
[INFO] [CONTENT LOAD]: Loading content file: /Users/megashark/Desktop/MeoCloud/Emu/SNES/Super Mario All-Stars + Super Mario World (USA).zip#Super Mario All-Stars + Super Mario World (USA).sfc
[INFO] Did not find a valid content patch.
[INFO] [CONTENT LOAD]: CRC32: 0xf84305b1
[INFO] [Environ]: SET_INPUT_DESCRIPTORS:
[INFO] 	RetroPad, Port 1, Button "B (bottom)" => "B"
[INFO] 	RetroPad, Port 1, Button "Y (left)" => "Y"
[INFO] 	RetroPad, Port 1, Button "Select" => "Select"
[INFO] 	RetroPad, Port 1, Button "Start" => "Start"
[INFO] 	RetroPad, Port 1, Button "D-Pad Up" => "D-Pad Up"
[INFO] 	RetroPad, Port 1, Button "D-Pad Down" => "D-Pad Down"
[INFO] 	RetroPad, Port 1, Button "D-Pad Left" => "D-Pad Left"
[INFO] 	RetroPad, Port 1, Button "D-Pad Right" => "D-Pad Right"
[INFO] 	RetroPad, Port 1, Button "A (right)" => "A"
[INFO] 	RetroPad, Port 1, Button "X (up)" => "X"
[INFO] 	RetroPad, Port 1, Button "L" => "L"
[INFO] 	RetroPad, Port 1, Button "R" => "R"
[INFO] 	RetroPad, Port 2, Button "B (bottom)" => "B"
[INFO] 	RetroPad, Port 2, Button "Y (left)" => "Y"
[INFO] 	RetroPad, Port 2, Button "Select" => "Select"
[INFO] 	RetroPad, Port 2, Button "Start" => "Start"
[INFO] 	RetroPad, Port 2, Button "D-Pad Up" => "D-Pad Up"
[INFO] 	RetroPad, Port 2, Button "D-Pad Down" => "D-Pad Down"
[INFO] 	RetroPad, Port 2, Button "D-Pad Left" => "D-Pad Left"
[INFO] 	RetroPad, Port 2, Button "D-Pad Right" => "D-Pad Right"
[INFO] 	RetroPad, Port 2, Button "A (right)" => "A"
[INFO] 	RetroPad, Port 2, Button "X (up)" => "X"
[INFO] 	RetroPad, Port 2, Button "L" => "L"
[INFO] 	RetroPad, Port 2, Button "R" => "R"
[INFO] 	RetroPad, Port 3, Button "B (bottom)" => "B"
[INFO] 	RetroPad, Port 3, Button "Y (left)" => "Y"
[INFO] 	RetroPad, Port 3, Button "Select" => "Select"
[INFO] 	RetroPad, Port 3, Button "Start" => "Start"
[INFO] 	RetroPad, Port 3, Button "D-Pad Up" => "D-Pad Up"
[INFO] 	RetroPad, Port 3, Button "D-Pad Down" => "D-Pad Down"
[INFO] 	RetroPad, Port 3, Button "D-Pad Left" => "D-Pad Left"
[INFO] 	RetroPad, Port 3, Button "D-Pad Right" => "D-Pad Right"
[INFO] 	RetroPad, Port 3, Button "A (right)" => "A"
[INFO] 	RetroPad, Port 3, Button "X (up)" => "X"
[INFO] 	RetroPad, Port 3, Button "L" => "L"
[INFO] 	RetroPad, Port 3, Button "R" => "R"
[INFO] 	RetroPad, Port 4, Button "B (bottom)" => "B"
[INFO] 	RetroPad, Port 4, Button "Y (left)" => "Y"
[INFO] 	RetroPad, Port 4, Button "Select" => "Select"
[INFO] 	RetroPad, Port 4, Button "Start" => "Start"
[INFO] 	RetroPad, Port 4, Button "D-Pad Up" => "D-Pad Up"
[INFO] 	RetroPad, Port 4, Button "D-Pad Down" => "D-Pad Down"
[INFO] 	RetroPad, Port 4, Button "D-Pad Left" => "D-Pad Left"
[INFO] 	RetroPad, Port 4, Button "D-Pad Right" => "D-Pad Right"
[INFO] 	RetroPad, Port 4, Button "A (right)" => "A"
[INFO] 	RetroPad, Port 4, Button "X (up)" => "X"
[INFO] 	RetroPad, Port 4, Button "L" => "L"
[INFO] 	RetroPad, Port 4, Button "R" => "R"
[INFO] 	RetroPad, Port 5, Button "B (bottom)" => "B"
[INFO] 	RetroPad, Port 5, Button "Y (left)" => "Y"
[INFO] 	RetroPad, Port 5, Button "Select" => "Select"
[INFO] 	RetroPad, Port 5, Button "Start" => "Start"
[INFO] 	RetroPad, Port 5, Button "D-Pad Up" => "D-Pad Up"
[INFO] 	RetroPad, Port 5, Button "D-Pad Down" => "D-Pad Down"
[INFO] 	RetroPad, Port 5, Button "D-Pad Left" => "D-Pad Left"
[INFO] 	RetroPad, Port 5, Button "D-Pad Right" => "D-Pad Right"
[INFO] 	RetroPad, Port 5, Button "A (right)" => "A"
[INFO] 	RetroPad, Port 5, Button "X (up)" => "X"
[INFO] 	RetroPad, Port 5, Button "L" => "L"
[INFO] 	RetroPad, Port 5, Button "R" => "R"
[INFO] [Environ]: GET_VARIABLE snes9x_hires_blend:
	disabled
[INFO] [Environ]: GET_VARIABLE snes9x_overclock_superfx:
	100
[INFO] [Environ]: GET_VARIABLE snes9x_up_down_allowed:
	disabled
[INFO] [Environ]: GET_VARIABLE snes9x_sndchan_1:
	enabled
[INFO] [Environ]: GET_VARIABLE snes9x_sndchan_2:
	enabled
[INFO] [Environ]: GET_VARIABLE snes9x_sndchan_3:
	enabled
[INFO] [Environ]: GET_VARIABLE snes9x_sndchan_4:
	enabled
[INFO] [Environ]: GET_VARIABLE snes9x_sndchan_5:
	enabled
[INFO] [Environ]: GET_VARIABLE snes9x_sndchan_6:
	enabled
[INFO] [Environ]: GET_VARIABLE snes9x_sndchan_7:
	enabled
[INFO] [Environ]: GET_VARIABLE snes9x_sndchan_8:
	enabled
[INFO] [Environ]: GET_VARIABLE snes9x_layer_1:
	enabled
[INFO] [Environ]: GET_VARIABLE snes9x_layer_2:
	enabled
[INFO] [Environ]: GET_VARIABLE snes9x_layer_3:
	enabled
[INFO] [Environ]: GET_VARIABLE snes9x_layer_4:
	enabled
[INFO] [Environ]: GET_VARIABLE snes9x_layer_5:
	enabled
[INFO] [Environ]: GET_VARIABLE snes9x_gfx_clip:
	enabled
[INFO] [Environ]: GET_VARIABLE snes9x_gfx_transp:
	enabled
[INFO] [Environ]: GET_VARIABLE snes9x_gfx_hires:
	enabled
[INFO] [Environ]: GET_VARIABLE snes9x_audio_interpolation:
	gaussian
[INFO] [Environ]: GET_VARIABLE snes9x_overclock_cycles:
	disabled
[INFO] [Environ]: GET_VARIABLE snes9x_reduce_sprite_flicker:
	disabled
[INFO] [Environ]: GET_VARIABLE snes9x_randomize_memory:
	disabled
[INFO] [Environ]: GET_VARIABLE snes9x_overscan:
	enabled
[INFO] [Environ]: GET_VARIABLE snes9x_aspect:
	4:3
[INFO] [Environ]: GET_VARIABLE snes9x_region:
	auto
[INFO] [Environ]: GET_VARIABLE snes9x_lightgun_mode:
	Lightgun
[INFO] [Environ]: GET_VARIABLE snes9x_superscope_reverse_buttons:
	disabled
[INFO] [Environ]: GET_VARIABLE snes9x_superscope_crosshair:
	2
[INFO] [Environ]: GET_VARIABLE snes9x_superscope_color:
	White
[INFO] [Environ]: GET_VARIABLE snes9x_justifier1_crosshair:
	4
[INFO] [Environ]: GET_VARIABLE snes9x_justifier1_color:
	Blue
[INFO] [Environ]: GET_VARIABLE snes9x_justifier2_crosshair:
	4
[INFO] [Environ]: GET_VARIABLE snes9x_justifier2_color:
	Pink
[INFO] [Environ]: GET_VARIABLE snes9x_rifle_crosshair:
	2
[INFO] [Environ]: GET_VARIABLE snes9x_rifle_color:
	White
[INFO] [Environ]: GET_VARIABLE snes9x_block_invalid_vram_access:
	enabled
[INFO] [Environ]: GET_VARIABLE snes9x_echo_buffer_hack:
	disabled
[INFO] [Environ]: GET_VARIABLE snes9x_blargg:
	disabled
[libretro INFO] "ALL_STARS + WORLD" [checksum ok] LoROM, 32Mbits, ROM+RAM+BAT, NTSC, SRAM:64Kbits, ID:____, CRC32:F84305B1

Hmm, yeah, I don’t see anything going wrong in there. Does it work if you unzip them? If so, you might need to set a ‘cache’ directory in settings > directory.

It also crashes with unzipped ROMS

1 Like

Thanks for testing that. Unfortunately, I’m kinda stumped here :frowning:

Anyone has any additional clues?

Hmmm which version are you using x86_64 or universal? Try the other one maybe? Maybe an issue with the video driver?

The issue is that the cores are built on macOS 10.15 with settings that result in them requiring macOS 10.15 or higher:

$ otool -l snes9x_libretro.dylib  | grep minos
     minos 10.15

So it’s impossible to load the cores on 10.13. RetroArch will simply crash.

AFAIK, the only core that avoids that situation is “DOSBox-core”, which is built with settings targeting 10.12 or higher. I did bring this up on the libretro discord, but I’m not sure how much interest there is to support macOS versions older than 10.15. It is possible, but requires some changes to the libretro CI.

2 Likes

Was this a recent change? I remember being able to run Retroarch 1.3.6 if I’m not mistaken on MacOS 10.13. Any way to download previous versions?

it would have been with the new automated build infrastructure.

Twinaphex definitely wants to support all the way back to 10.7 at least, if at all possible, but, as RealNC mentioned, it’s going to take some changes to that build infrastructure, which might not be feasible, unfortunately. We’ll have to look into it.

2 Likes

You can try and build some of the cores yourself. snes9x should be easy to build:

In a terminal, enter:

xcode-select --install

A dialog will come up. It will install the command line compiler. It should be about 300MB or so, IIRC.

After that’s done, clone the snes9x source code with:

git clone --recurse-submodules  'https://github.com/libretro/snes9x.git'

(This will create a new folder named snes9x and put the source code in it.)

Then enter the snes9x/libretro directory and try to build it:

cd snes9x/libretro
make -jN

(Replace N with the amount of CPU cores you have.)

If all goes well, it should compile and the result be a snes9x_libretro.dylib file which you can copy to the RetroArch cores folder.

4 Likes

Just one hint from my own experience: Every time I update a RetroArch core, such core crashes. Only after a full reboot of my mac, the core works. Maybe it works for you as well.

1 Like

I have this issue too and just reported it on Github. That said, I found an old backup I had made of cores and fixed the problem on my end. All work on High Sierra. If it’s ok with the mods, here they are: https://mega.nz/folder/CEkVgChK#bbwoEUsMZL2UJqWmS73VGQ

I’m still missing opera_libretro.dylib and mupen for pre 10.15. If anyone wants to compile them, I’d welcome it.

1 Like

Wow, it really is this easy. Works great for opera. I’m getting an error for a missing file for Mupen though, but I think that’s a problem with the repo.

1 Like

Can I get help compiling Dolphin/PPSSPP/Desmume? The commands provided for most cores doesn’t work on these. @RealNC This really needs to get fixed…

edit: and they’re fixing it! https://git.libretro.com/libretro-infrastructure/ci-templates/-/merge_requests/28

1 Like

The CI is now changed to target a minimum macOS version of 10.9 (Mavericks).

Some cores override that target and require newer macOS. For example the “Play!” core requires at least macOS 10.14. Some other cores on the other hand are fine even with older versions than 10.9. The “fbalpha2012_neogeo” core for example only requires macOS 10.7.

So it will be a bit of a mixed bag overall. But the situation will be vastly improved overall compared to what we had before with the minimum being 10.15. It can take anywhere between 10 and 20 hours for the new core builds to become available in the Core Updater, so I guess everyone can starting trying them tomorrow.

3 Likes