tylerszabo / RGB-Fusion-Tool

A command line tool for calling Gigabyte's RGB Fusion SDK
GNU General Public License v3.0
184 stars 21 forks source link

dllexp_GetMaxDivision fails on GA-Z270X-Gaming K7 #36

Open titanvex opened 5 years ago

titanvex commented 5 years ago

Summary

I'm trying to use RGB Fusion Tool to change the colors on my GA-Z270X-Gaming K7 MoBo. When I try to execute any commands, I receive an error.

Repro

Steps and Commands

All commands I've tried have failed (except --help): RGBFusionTool.exe --list

Actual behavior

Nothing happens with the MoBo, and I receive an error, similar to other logged issues.

Error: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> GLedApiDotNet.Raw.GLedAPIv1_0_0Exception: dllexp_GetMaxDivision returned 0xFFFFFFFF
   at GLedApiDotNet.Raw.GLedAPIv1_0_0Wrapper.GetMaxDivision()
   at GLedApiDotNet.RGBFusionMotherboard..ctor(GLedAPIv1_0_0Wrapper wrapperAPI)
   at GLedApiDotNet.RGBFusionMotherboard..ctor()
   --- End of inner exception stack trace ---
   at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck)
   at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
   at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
   at System.Activator.CreateInstance(Type type, Boolean nonPublic)
   at System.Activator.CreateInstance(Type type)
   at System.Lazy`1.CreateValue()
   at System.Lazy`1.LazyInitValue()
   at System.Lazy`1.get_Value()
   at RGBFusionTool.RGBFusionMain.LazyMotherboard.get_Layout()
   at RGBFusionTool.Application.Main(String[] args)

Expected behavior

In this case, I would have expected a list of zones.

Environment

Please include the following information:

Gathering Script

Consider running the following PowerShell script to gather environment information. If any is missing please add mention that the script isn't correctly gathering the information so it can be updated. Run this from the directory containing RGBFusionTool.exe.

$winver = [System.Environment]::OSVersion.Version.ToString()
$toolver = (Get-Item .\RGBFusionTool.exe).VersionInfo.FileVersion.ToString()
$hashes = @("GLedApi.dll", "GLedApiDotNet.dll", "layout.ini", "Mono.Options.dll", "RGBFusionTool.exe", "ycc.dll") | % { Get-FileHash -Algorithm SHA256 -Path $_ }
$biosversion = (Get-WmiObject -Class Win32_BIOS).SMBIOSBIOSVersion
$motherboard = (Get-WmiObject -Class Win32_BaseBoard).Product

Write-Host -ForegroundColor White -BackgroundColor Black @"

Hashes:

$(($hashes | % { "$($.Hash) $(Split-Path -Leaf $.Path)"}) -join "`n")

"@
Out-Null | Write-Host

Detailed Description and Additional Context

I entered a GIGABYTE support ticket to see if this MoBo is compatible with the SDK. Perhaps it is not, per a different issue?

tylerszabo commented 5 years ago

I think the Gigabyte support ticket is the right way to go. This has the same signature of the others.

Unfortunately Gigabyte doesn't make it strictly clear which motherboards are and are not supported by the SDK. @Chrispynutt compiled a list in this comment. The boards under the "RGB Fusion SDK" heading I believe are taken from layout.ini (which is from Gigabyte). So far efforts to guess new entries in layout.ini have failed (see #30, and #31) but maybe one day we'll succeed in guessing a config Gigabyte forgot to publish.