dirkwhoffmann / virtualc64

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

Crash at start #252

Closed Groepi closed 7 years ago

Groepi commented 7 years ago

Hello,

I became a crash on Start:

fatal error: 'try!' expression unexpectedly raised an error: Error Domain=NSOSStatusErrorDomain Code=-50 "paramErr: error in user parameter list": file /Library/Caches/com.apple.xbs/Sources/swiftlang/swiftlang-802.0.53/src/swift/stdlib/public/core/ErrorType.swift, line 182

Regards Gröpi

dirkwhoffmann commented 7 years ago

Too bad. Can you paste the complete VirtualC64 output from the console log?

dirkwhoffmann commented 7 years ago

I think I figured out where it crashed (but not why). To track it down further, I need to know some parameters from your sound device. I have uploaded a patched version which dumps some more debugging information into the internal console log:

http://www.dirkwhoffmann.de/virtualc64/VirtualC64_1.5.1_beta.zip

Can you run that version and

1) Confirm that it does not crash 2) Open the "Konsole" application and look for output like the following one? (this output is generated on my machine when the emulator is started):

standard 09:15:28.011155 +0200 VirtualC64 MyController::initialize standard 09:15:28.011214 +0200 VirtualC64 MyController::registerStandardDefaults standard 09:15:28.011479 +0200 VirtualC64 New base directory ist /Users/hoff/Desktop/VirtualC64.app/Contents/Resources standard 09:15:28.014784 +0200 VirtualC64 MyController::awakeFromNib standard 09:15:28.111624 +0200 VirtualC64 MyDocument::init standard 09:15:28.113010 +0200 VirtualC64 MyDocument::makeWindowControllers standard 09:15:28.184342 +0200 VirtualC64 C64Proxy::init standard 09:15:28.187341 +0200 VirtualC64 HID manager is initialized standard 09:15:28.188297 +0200 VirtualC64 init(withSID:) standard 09:15:28.231867 +0200 VirtualC64 number of input busses: 1 standard 09:15:28.231930 +0200 VirtualC64 number of output busses: 1 standard 09:15:28.232000 +0200 VirtualC64 number of channels of bus 0: 2 standard 09:15:28.232068 +0200 VirtualC64 sample rate: 44100.0 standard 09:15:28.232120 +0200 VirtualC64 Stereo: true standard 09:15:28.232633 +0200 VirtualC64 AudioEngine initialized successfully standard 09:15:28.283060 +0200 VirtualC64 MyMetalView::awakeFromNib standard 09:15:29.092622 +0200 VirtualC64 MyController::awakeFromNib

If you don't find this output, please restart the emulator, click the first item under "Geräte" in the left control bar of the "Konsole" app and scroll down.

Thanks, Dirk

Groepi commented 7 years ago

So i think the problem is my Bose Companion 5 USB Speaker. When I unplug it the 1.5.0 will run fine. It also play the sound. If I plug in the Companion 1.50 will crash and 1.5.1 will plays only the Drive Sound.

So the main problem is that VirtualC64 can't run on an USB Sound Device. It is possible to fix this?

Groepi commented 7 years ago

Here the Result of Starting VirtualC64 via Shell

2017-06-18 10:29:11.670 VirtualC64[4398:470606] MyController::initialize 2017-06-18 10:29:11.670 VirtualC64[4398:470606] MyController::registerStandardDefaults 2017-06-18 10:29:11.670 VirtualC64[4398:470606] New base directory ist /Users/user/Downloads/VirtualC64 2.app/Contents/Resources 2017-06-18 10:29:11.672 VirtualC64[4398:470606] MyController::awakeFromNib 2017-06-18 10:29:11.690 VirtualC64[4398:470606] MyDocument::init 2017-06-18 10:29:11.691 VirtualC64[4398:470606] MyDocument::makeWindowControllers 2017-06-18 10:29:11.782 VirtualC64[4398:470606] C64Proxy::init VIC: Using color scheme 0 from 11 available schemes C64: Creating virtual C64[0x108d76000] C64: Resetting virtual C64[0x108d76000] C64: Pinging virtual C64[0x108d76000] 2017-06-18 10:29:11.784 VirtualC64[4398:470606] HID manager is initialized 2017-06-18 10:29:11.785 VirtualC64[4398:470606] init(withSID:) 2017-06-18 10:29:11.814 VirtualC64[4398:470606] number of input busses: 1 2017-06-18 10:29:11.814 VirtualC64[4398:470606] number of output busses: 1 2017-06-18 10:29:11.814 VirtualC64[4398:470606] number of channels of bus 0: 6 2017-06-18 10:29:11.815 VirtualC64[4398:470606] sample rate: 48000.0 2017-06-18 10:29:11.815 VirtualC64[4398:470606] Stereo: true 2017-06-18 10:29:11.815 VirtualC64[4398:470606] Failed to set render format on input bus 2017-06-18 10:29:11.815 VirtualC64[4398:470606] WARNING: Failed to initialize AudioEngine 2017-06-18 10:29:11.848 VirtualC64[4398:470606] MyMetalView::awakeFromNib 2017-06-18 10:29:11.852 VirtualC64[4398:470606] MyController::awakeFromNib 2017-06-18 10:29:11.869 VirtualC64[4398:470606] MyController::windowDidLoad 2017-06-18 10:29:11.869 VirtualC64[4398:470606] window = <MyWindow: 0x7f86382b0e10> 2017-06-18 10:29:11.869 VirtualC64[4398:470606] document = <MyDocument: 0x7f86354e27a0> 2017-06-18 10:29:11.870 VirtualC64[4398:470606] NSTimer is running. Window is now listening to emulator messages. 2017-06-18 10:29:11.872 VirtualC64[4398:470606] MyController::loadUserDefaults VIC: Using color scheme 0 from 11 available schemes 2017-06-18 10:29:11.872 VirtualC64[4398:470606] MyController::loadVirtualMachineUserDefaults C64 memory: ROM image installed at [A000;BFFF] C64: ROM image /Volumes/share/Wichtig/8 Bit/ROMS/basic.901226-01.bin loaded successfully C64 memory: ROM image installed at [D000;DFFF] C64: ROM image /Volumes/share/Wichtig/8 Bit/ROMS/characters.901225-01.bin loaded successfully C64 memory: ROM image installed at [E000;FFFF] C64: ROM image /Volumes/share/Wichtig/8 Bit/ROMS/kernal.901227-03.bin loaded successfully 1541MEM: ROM image installed at [C000;FFFF] C64: ROM image /Volumes/share/Wichtig/8 Bit/ROMS/1541-II.251968-03.bin loaded successfully C64: Execution thread started 2017-06-18 10:29:12.176 VirtualC64[4398:470606] MyMetalView::setupMetal 2017-06-18 10:29:12.176 VirtualC64[4398:470606] MyMetalView::buildMetal 2017-06-18 10:29:12.183 VirtualC64[4398:470606] MyMetalView::buildTextures 2017-06-18 10:29:12.255 VirtualC64[4398:470606] MyMetalView::buildKernels 2017-06-18 10:29:12.259 VirtualC64[4398:470606] MyMetalView::buildVertexBuffer 2017-06-18 10:29:12.259 VirtualC64[4398:470606] MyMetalView::buildPipeline 2017-06-18 10:29:12.259 VirtualC64[4398:470606] MetalLayer::reshape (804.000000,617.000000) 2017-06-18 10:29:12.259 VirtualC64[4398:470606] MyMetalView::buildDepthBuffer 2017-06-18 10:29:12.259 VirtualC64[4398:470606] Metal is up and running 2017-06-18 10:29:12.264 VirtualC64[4398:470606] MyController::applicationDidFinishLaunching 2017-06-18 10:29:12.309 VirtualC64[4398:470606] drawable width = 804 2017-06-18 10:29:12.310 VirtualC64[4398:470606] drawable height = 617 2017-06-18 10:29:12.311 VirtualC64[4398:470606] MyMetalView::buildVertexBuffer 2017-06-18 10:29:12.314 VirtualC64[4398:470606] MyMetalView::buildVertexBuffer 2017-06-18 10:29:12.314 VirtualC64[4398:470606] MyMetalView::buildVertexBuffer 2017-06-18 10:29:12.315 VirtualC64[4398:470606] Blending in...

2017-06-18 10:29:15.371 VirtualC64[4398:470606] makeTouchBar() 2017-06-18 10:29:15.372 VirtualC64[4398:470606] touchBar(_:makeItemForIdentifier:)

dirkwhoffmann commented 7 years ago

OK, problem is: Bose sound system supports 6 channels (5.1). Therefore the emulator tries to create an AUAudioUnit with a 6 channel input bus which fails. Can you try the following patch?

http://www.dirkwhoffmann.de/virtualc64/VirtualC64_1.5.1_beta2.zip

The new code always falls back to 2 channels if a device with more channels is detected.

Groepi commented 7 years ago

Hello Dirk,

yes this will fixed the issues with the sound. Now both works Drive Sound and SID Sound (-:

Much thanks or vielen Dank und grüße aus Seelbach/Baden

dirkwhoffmann commented 7 years ago

Great news and great team work! 👍

Viele Grüße aus Karlsruhe