speccytools / fuse-for-macosx

the Free Unix Spectrum Emulator
GNU General Public License v2.0
18 stars 1 forks source link

Not working on M1 #8

Closed RichardHallas closed 1 year ago

RichardHallas commented 1 year ago

The current build is Universal, but it doesn't seem to work properly on M1. I've tried to run it on an Intel iMac and an M1 MacBook Pro. On the iMac it works fine. On the M1 MacBook Pro it launches and opens its UI (menu bar and window) but then beachballs and does nothing more. The window shows all-white (in Spectrum terms); i.e. there's no Sinclair copyright message being displayed, so it doesn't get as far as that. But it's 'Spectrum white' rather than just a pure white window. Then it has to be force-quit.

desertkun commented 1 year ago

Could you please launch it from terminal /Applications/FuseX.app/Contents/MacOS/FuseX And share output if anything of interest is there?

Can you also try and delete preferences rm -rf ~/Library/Containers/FuseXPreferences/?

RichardHallas commented 1 year ago

Thanks. Interesting. If I launch it from Terminal as you suggest, it does start up OK – and I see the Spectrum resetting in the window. However, it also opens an 'Internal error' window containing the following report about an uncaught exception:

Exception Name: NSInvalidArgumentException Description: -[DebuggerController habdleCloseNotification]: unrecognized selector sent to instance 0x127760df0 User Info: (null)

0 CoreFoundation 0x000000019f9bf154 exceptionPreprocess + 176 1 libobjc.A.dylib 0x000000019f4de4d4 objc_exception_throw + 60 2 CoreFoundation 0x000000019fa66110 -[NSObject(NSObject) retain_OA] + 0 3 CoreFoundation 0x000000019f9270a0 forwarding + 1600 4 CoreFoundation 0x000000019f9269a0 _CF_forwarding_prep_0 + 96 5 Foundation 0x00000001a08dac64 NSThreadPerformPerform + 264 6 CoreFoundation 0x000000019f94663c CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION + 28 7 CoreFoundation 0x000000019f9465d0 CFRunLoopDoSource0 + 176 8 CoreFoundation 0x000000019f946340 CFRunLoopDoSources0 + 244 9 CoreFoundation 0x000000019f944f48 CFRunLoopRun + 828 10 CoreFoundation 0x000000019f9444b8 CFRunLoopRunSpecific + 612 11 HIToolbox 0x00000001a918ec40 RunCurrentEventLoopInMode + 292 12 HIToolbox 0x00000001a918ea7c ReceiveNextEventCommon + 648 13 HIToolbox 0x00000001a918e7d4 _BlockUntilNextEventMatchingListInModeWithFilter + 76 14 AppKit 0x00000001a2b65d44 _DPSNextEvent + 636 15 AppKit 0x00000001a2b64ee0 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 716 16 AppKit 0x00000001a2b59344 -[NSApplication run] + 464 17 AppKit 0x00000001a2b30794 NSApplicationMain + 880 18 FuseX 0x00000001041ce9dc FuseX + 928220 19 dyld 0x000000019f50ff28 start + 2236

That's the report in its entirety; if I click Crash, I get a further (very extensive) report, which I can capture and submit if you want it.

If I click Continue instead of Crash to close the error report, FuseX continues to run perfectly and I can use it as expected. (But after quitting, I still can't relaunch it with a double-click on the app icon; it only runs successfully from Terminal.)

Looking in the Terminal window after the launch, I see a load of information text from FuseX, followed by this:

Failed to open pDevice->interface via open.Failed to open pDevice->interface via open.Failed to open pDevice->interface via open.Failed to open pDevice->interface via open.Failed to open pDevice->interface via open.Failed to open pDevice->interface via open.Failed to open pDevice->interface via open.Failed to open pDevice->interface via open.Failed to open pDevice->interface via open.Failed to open pDevice->interface via open.Failed to open pDevice->interface via open.Failed to open pDevice->interface via open.Failed to open pDevice->interface via open.Failed to open pDevice->interface via open.Failed to open pDevice->interface via open.Failed to open pDevice->interface via open.2023-06-26 21:04:02.510 FuseX[14266:440836] -[DebuggerController habdleCloseNotification]: unrecognized selector sent to instance 0x11ce619d0

Trashing the preferences as you suggested made no apparent difference.

desertkun commented 1 year ago

I'll give you a debug build tomorrow so you can repeat this and hopefully give a meaningful stack.

18 FuseX 0x00000001041ce9dc FuseX + 928220

this is the important one, unfortunately I don't think I've kept the dsym for that file.

desertkun commented 1 year ago

Fuse 1.6.0-4.dmg.zip Can you try out this build? If it still doesn't work, can you provide a full log?

RichardHallas commented 1 year ago

Wonderful! This seems to work perfectly now! Thanks very much indeed!