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 AX370-Gaming K7 motherboard #31

Open tylerszabo opened 6 years ago

tylerszabo commented 6 years ago

dllexp_GetMaxDivision returns 0xFFFFFFFF when the tool is run for any setting on the AX370-Gaming K7 motherboard. Full exception is as follows for v0.9.1:

Error: System.Reflection.TargetInvocationException: Exception has been thrown by
 the target of an invocation. ---> GLedApiDotNet.Raw.GLedAPIv1_0_0Exception: dll
exp_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 publicOn
ly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Bo
olean& bNeedSecurityCheck)
   at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipChec
kThis, Boolean fillCache, StackCrawlMark& stackMark)
   at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean s
kipCheckThis, 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)

Initially reported on a Reddit thread.

Similar to issue #30

Chrispynutt commented 6 years ago

Hi Joined GitHub, happy to check anything you want to test.

Chrispynutt commented 6 years ago

Okay tried:

[MBId_101]
;; Test 1
LFType_1=1,1

;; Test 2
LFType_2=1,1

;; Test 3
LFType_3=1,1

;; Test 4
LFType_4=1,1

;; Test 5
LFType_5=1,1

did a --list with no joy, also tried adding test 1-3 in 102 with no luck

tylerszabo commented 6 years ago

Curses. I've pinged Gigabyte with a similar issue but it'd probably help if you reached out on your own behalf as well. If they're listing your board as RGB Fusion compatible on the page that lists the SDK the I'm hoping they'll patch it. It certainly seems like they're advertising it.

Chrispynutt commented 6 years ago

Hi I just wanted to share a quick list based on layout.ini and https://www.gigabyte.com/mb/rgb/Product Basically I tried to work out the gaps between the list of boards in both.

Key: *=in both lists -=not in the other list ?=might be a match with the other list +=confirmed on site search !=might be a match on site search

RGB Fusion SDK

X299 AORUS Gaming 3 X299 AORUS Ultra Gaming X299 AORUS Gaming 7/9 X299 AORUS Gaming-, X299 UD4 X299 Champion- X299 Designare Ex+ X299 AORUS Gaming 7 Pro+ B360N phoenix WIFI! B360M AORUS Gaming 3+, B360 HD3P+ B360 AORUS Gaming 3+ Z370 AORUS Gaming 3, AORUS Gaiming K3 Z370 AORUS Ultra Gaming Z370 AORUS Gaming 5/7 Z370 AORUS Gaming WIFI Z370N WIFI Z370X SOC Force LN2- H370N WIFI+ H370N AORUS Gaming 3! AX370 ULTRA Gaming- AX370 Gaming 5 WIFI? X399 AORUS Gaming 7+ X399 Designare EX+

RGB Fusion List = https://www.gigabyte.com/mb/rgb/Product

Z370 AORUS Gaming 7 Z370 AORUS Gaming 5 Z370 AORUS Gaming 3 Z370 AORUS Gaming K3 Z370 AORUS GAMING WIFI Z370 AORUS Ultra Gaming Z370XP SLI- Z370 HD3P- Z370 HD3- Z370M D3H- Z370N WIFI X299 AORUS Gaming 9 X299 AORUS Gaming 7 X299 AORUS Gaming 3 X299 UD4 X299 AORUS Ultra Gaming Z270X Gaming 9- Z270X Gaming 8- Z270X Gaming 7- Z270X Gaming 5- Z270X Gaming k7- Z270X Gaming k5- Z270X Gaming SOC- Z270X Ultra Gaming- Z270 Phoenix Gaming- H270 Gaming 3- H270 Gaming B8- Z270MX Gaming 5- B250M Gaming 5- Z270N Gaming 5- B250N Phoenix WIFI- Z270X DESIGNARE- AX370 Gaming K7- AX370 Gaming 5? AB350 Gaming 3- AX370 Gaming K5-

Chrispynutt commented 6 years ago

Looking at it I am not seeing entries in layout.ini for all of the Z270/H270/B250. Little support for X370/B350. It might be that the earliest form of RGB Fusion is just not compatible with the SDK. I will drop a line to Gigabyte.

Chrispynutt commented 6 years ago

Ticket raised

tylerszabo commented 6 years ago

One thing to keep in mind is that some of these boards may match the same MBId/LFType as an existing entry and just lack a comment that explains it's compatible. So I'm not sure I'd be ready to claim it doesn't support those boards without having someone test it.

Chrispynutt commented 6 years ago

Oh I agree you can see quite a few aren't listed on both sides, might be that they were rebranded at the last moment or a group of boards all share the same basic layout. Anyway lets see if my support ticket does anything.

windows2000bug commented 6 years ago

Looks like this is the same issue someone mentioned to me that they were having with their MB. IIRC I think he had a x470 Gaming 7. I just recall the Lazy error, which seems unique, compared to the other ones I have seen. Seeing all these different chipsets, and various boards for each socket, I wish they would really consolidate and/or standardize. Even if Gigabyte standardized the RGB zoning, it would be nice.

tylerszabo commented 6 years ago

The Lazy is a red herring and based on how I wrote the code. I wanted to write the library such that the Gigabyte API would be initialized when the object was instantiated but there are points where I don't want to actually instantiate the object unless you're going to actually make changes to the lights (i.e. don't initialize if the input is going to eventually fail an error check) so I use the Lazy Type.

The actual error to look for inside everything is GLedApiDotNet.Raw.GLedAPIv1_0_0Exception: dll exp_GetMaxDivision returned 0xFFFFFFFF. Unfortunately, the methods return -1 for most errors and give no documented way of getting additional error information out of them which makes them very hard to debug.

windows2000bug commented 6 years ago

You have done great work on this, I wish we would get more support from Gigabyte. If they really want an Aorus community, then they will need foster innovators.

Chrispynutt commented 6 years ago

Reply from Gigabyte:

Hello, Our team has confirmed this board doesn't support for RGB Fusion SDK.

:-/

tylerszabo commented 6 years ago

This is unfortunate :( thanks for following up.

In hopes that this issue is one day fixed I'm going to keep this issue open. If they has open sourced part of their RGB Fusion GUI I'd be able to add support directly. It's too bad because it'd sell their hardware better, too.

daleriechert commented 6 years ago

Confirming the same issue on an GA-AB350N-Gaming WIFI motherboard. First I learned that they have removed advertised features from the RGB Fusion software with the recent updates, now I'm learning that the SDK doesn't support my motherboard either. It's pathetic that an Arduino would be the preferred solution at this point.