Dev1an / Swift-Atem

Blackmagic Design Atem network protocol implementation in swift 5.1 using NIO 2
MIT License
59 stars 27 forks source link

Does not work with newer versions of Atem Software Control #8

Closed CaptiveCreeper closed 3 years ago

CaptiveCreeper commented 4 years ago

I got everything up and running but the Atem Software Control prompts saying "Your Switcher requires a software update" and launches the setup where it cant do anything. image

I would just use older versions of Atem Software Control but they dont run on newer versions of macos.

Dev1an commented 4 years ago

I would just use older versions of Atem Software Control but they dont run on newer versions of macos.

Which version of macOS are you referring to? I am running macOS Catalina 10.15.6 (19G2021) with ATEM Software Control 8.2.1 and that seems to work fine on my machine.

Also, if you want to change the version to a newer version, you can just change the Version number here: https://github.com/Dev1an/Swift-Atem/blob/2cb9322d22601ff62b246a217f833786153259ca/Sources/Atem/Utilities/InitialSwitcherStateMessages.swift#L265 That should trick your Blackmagic software into thinking you are using any version you want.

⚠️ Notice that the protocol versions do not match the advertised software versions though. But they refer to an internal protocol number that gets incremented by one minor version almost every time they release new firmware.

CaptiveCreeper commented 4 years ago

Im using macOS 10.15.7 and Atem Software Control 8.5. I dont know what version I had before I reinstalled it on Tuesday but am currently downloading 8.2.1 to see if that works any better

EDIT: After installing 8.2.1 it still gives the same message. What version do you suggest to change to?

jpmarotta commented 3 years ago

I'm running into the same issue, trying to run ATEM SC 8.5.3 on MacOS 10.15.7, same result.

Anyone know the major/minor protocol numbers for 8.5.3?

EDIT: Disregard, was able to get it running once I updated Xcode and Swift libraries. Sweet!

CaptiveCreeper commented 3 years ago

@jpmarotta Out of curiosity what major and minor version do you have set for 8.5.3? Or what versions updated version of Xcode/Swift libraries did you use to get it to work?

Dev1an commented 3 years ago

@CaptiveCreeper major: 2, minor: 30 works for me with version 8.5.3. Do you still experience any problems? Make sure to check out the latest revision on the master branch. (I know I still haven't made a proper release with all the code that is currently on master. Once I find some time I will try to update the docs and publish a proper release)

I think the protocol version did not change since the ATEM software 8.1.1

Dev1an commented 3 years ago

For anyone who falls back on this issue, here is a simple way to see what protocol version your current BMD Atem switchers installation supports.

Local installation

Run:

cd /Library/Application\ Support/Blackmagic\ Design/Switchers/BMDSwitcherAPI.bundle/Contents/MacOS/
export VersionCheckMethodName=__ZN12CBMDSwitcher29HandleAtomCapabilitiesVersionEPvP26BEPAtomCapabilitiesVersion
objdump --no-show-raw-insn --print-imm-hex --dis-symname=$VersionCheckMethodName --disassemble-symbols=$VersionCheckMethodName BMDSwitcherAPI | grep cmpl

that will output something like

c2cf:   cmpl    $0x2001b, 0x8(%r15)

Here $0x2001b indicates the supported version.

Without installation

To lookup a protocol version for a specific software version that you did not install on your computer, download the software from the BMD website and extract the "Install Atem.pkg" with

pkgutil --expand-full <path to intstaller> /tmp/atemVx
cd /private/tmp/atem7/Switchers.pkg/Payload/Library/Application\ Support/Blackmagic\ Design/Switchers/BMDSwitcherAPI.bundle/Contents/MacOS
export VersionCheckMethodName=__ZN12CBMDSwitcher29HandleAtomCapabilitiesVersionEPvP26BEPAtomCapabilitiesVersion
objdump --no-show-raw-insn --print-imm-hex --dis-symname=$VersionCheckMethodName --disassemble-symbols=$VersionCheckMethodName BMDSwitcherAPI | grep cmpl

Without downloading the installer

If you are lucky and NRKNO has made a dump of an ATEM running your specific software version just look in their connection dumps: nrkno/tv-automation-atem-connection/src/tests/connection