dirkwhoffmann / virtualc64

VirtualC64 is a cycle-accurate C64 emulator for macOS
https://dirkwhoffmann.github.io/virtualc64
Other
356 stars 33 forks source link

Version 1.2 crashing at launch #212

Closed Shrapnel21 closed 8 years ago

Shrapnel21 commented 8 years ago

Immediate crash on 2014 iMac running El Capitan, here's part of the report in the hope it will help. =)


Process: VirtualC64 [1234] Path: /Emu/*/VirtualC64.app/Contents/MacOS/VirtualC64 Identifier: de.dirkwhoffmann.VirtualC64 Version: 1.2 (1.2) Code Type: X86-64 (Native) Parent Process: ??? [1] Responsible: VirtualC64 [1234] User ID: 501

Date/Time: 2015-11-01 13:33:44.012 +0100 OS Version: Mac OS X 10.11.1 (15B42) Report Version: 11 Anonymous UUID: E2DAB20E-07ED-8A95-C824-97B4344E85E3

Time Awake Since Boot: 11000 seconds

System Integrity Protection: enabled

Crashed Thread: 0 Dispatch queue: com.apple.main-thread

Exception Type: EXC_CRASH (SIGABRT) Exception Codes: 0x0000000000000000, 0x0000000000000000 Exception Note: EXC_CORPSE_NOTIFY

Application Specific Information: /Library/Caches/com.apple.xbs/Sources/Metal/Metal-54.26.3/Framework/MTLTexture.m:643: failed assertion `MTLTextureDescriptor has one or more dimensions set that are zero or greater than the maximum allowed size.'

dirkwhoffmann commented 8 years ago

Could you please run the following patched version? http://www.dirkwhoffmann.de/virtualc64/VirtualC64_1.2.1a.zip

If it still crashes, could you open the 'console' app and paste the output that is related to VirtualC64? The patched version prints special debugging information such as the following (to get the full details, you need to click on the small triangle in the output log):

01.11.15 16:26:19,585 VirtualC64[36027]: depthTexDesc = <MTLTextureDescriptorInternal: 0x610000001390> { arrayLength = 1; cpuCacheMode = MTLCPUCacheModeDefaultCache; depth = 1; framebufferOnly = 0; height = 910; mipmapLevelCount = 1; pixelFormat = MTLPixelFormatDepth32Float; resourceOptions = "MTLResourceCPUCacheModeDefaultCache MTLResourceStorageModeManaged "; sampleCount = 1; storageMode = MTLStorageModeManaged; textureType = MTLTextureType2D; usage = "MTLTextureUsageShaderRead "; width = 1202; }

Shrapnel21 commented 8 years ago

Still crashing. I opened the console (first time I ever did, I'm relatetively new to OS X) and looked for Virtual C64-related info, but all I found was the same stuff shown in the crash report window. Sorry. =(

dirkwhoffmann commented 8 years ago

It should look like the attached screenshot... consolevc64

It's important to know how the last texture descriptor looks like before the crash happens.

Shrapnel21 commented 8 years ago

Apparently missing that voice. =P

_filepane-schermata 2015-11-01 alle 17 44 25

And just found out there are thousands of system errors, almost makes me regret switching from Windows to OS X... =(

dirkwhoffmann commented 8 years ago

I think I can nail it down. Here is another patch:

http://www.dirkwhoffmann.de/virtualc64/VirtualC64_V1.2.1b.zip

If it still crashes, there should be some texture related output in the console window.

Regarding the system errors: You are right. Under the hood, OS X is not as polished as it looks from the outside. I.e., Apples Metal API is giving me a hard time (very different behavior on different macs, internal shader compiler errors etc.)

Shrapnel21 commented 8 years ago

Is this what you're looking for?

01/11/15 18:17:14,768 VirtualC64[668]: Background texture: <MTLTextureDescriptorInternal: 0x7facbaf5f2b0> { arrayLength = 1; cpuCacheMode = MTLCPUCacheModeDefaultCache; depth = 1; framebufferOnly = 0; height = 0; mipmapLevelCount = 1; pixelFormat = MTLPixelFormatRGBA8Unorm; resourceOptions = "MTLResourceCPUCacheModeDefaultCache MTLResourceStorageModeManaged "; sampleCount = 1; storageMode = MTLStorageModeManaged; textureType = MTLTextureType2D; usage = "MTLTextureUsageShaderRead "; width = 0; }

dirkwhoffmann commented 8 years ago

Yes, that is what I was looking for. For some reason, when the emulator tries to grab your current desktop background image during initialization, it gets an image of size 0 x 0 which is an invalid texture size.

Let's try this one:

http://www.dirkwhoffmann.de/virtualc64/VirtualC64_V1.2.1c.zip

Shrapnel21 commented 8 years ago

It runs, thank you! =)

schermata 2015-11-01 alle 18 48 31

Since we're on the subject, could I ask a couple of questions? =) 1) how come the font looks slightly 'squished'? 2) could we get a 'quick screenshot' key in the future? I run a retrogaming website and I'd love to use VirtualC64 to take snaps for my reviews. =)

dirkwhoffmann commented 8 years ago

Hmm, the squishing is strange. It might be a retina/non retina issue. Are you using a retina display? This is how it looks on my own laptop:

c64mainscreen

I created the image via File -> Save Screenshot

A 'quick screenshot' key should be no problem...

Shrapnel21 commented 8 years ago

I'm on a non-Retina iMac, but I just tried and I can confirm that the font is perfect in saved screenshots. =)

Thanks again and keep up the good work! OS X is badly lacking in the emulators department and we really need great apps like VirtualC64. =)

dirkwhoffmann commented 8 years ago

fixed in 1.2.1 (which just went online)

Thanks for the great teamwork!