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 returned 0xFFFFFFFF on B450 DS3H #46

Open tmrealive opened 5 years ago

tmrealive commented 5 years ago

Summary

I use the motherboard RGB head to control additional case fans (12v+green for example), this is works fine for original RGB fusion 2.0, but it was good to use a command line utility instead of a heavyweight program from a Gigabyte. I tried to use RGBFusionTool.exe, but all commands end with an error. I also noticed that there is no my board B450M DS3H (RGB Fusion enabled) in the configuration file layout.ini.

Steps and Commands

RGBFusionTool.exe -l ... Error: System.Reflection.TargetInvocationException: Адресат вызова создал исключение. ---> GLedApiDotNet.Raw.GLedAPIv1_0_0Exception: dllexp_GetMaxDivision returned 0xFFFFFFFF в GLedApiDotNet.Raw.GLedAPIv1_0_0Wrapper.GetMaxDivision() в GLedApiDotNet.RGBFusionMotherboard..ctor(GLedAPIv1_0_0Wrapper wrapperAPI) в GLedApiDotNet.RGBFusionMotherboard..ctor() --- Конец трассировки внутреннего стека исключений --- в System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) в System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) в System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) в System.Activator.CreateInstance(Type type, Boolean nonPublic) в System.Activator.CreateInstance(Type type) в System.Lazy1.CreateValue() в System.Lazy1.LazyInitValue() в System.Lazy`1.get_Value() в RGBFusionTool.RGBFusionMain.LazyMotherboard.get_Layout() в RGBFusionTool.Application.Main(String[] args)

Environment

D39AB2041C3A93ECB38CE446BBBC1C3DA1E3292EC25A301E4ADF3A588EE7A8F3 GLedApi.dll 7015114DAEE108681472B156C6F8EF950EDBFC9B14AE0B2126CA3E1A4CDD9BFC GLedApiDotNet.dll 702A91752CE59B11078AB8F3428ECD1F871267D8AD45E414173CCF0A69FEE9D4 layout.ini 05FC657EB5B5D563DE7807DF6EE07FC8B89DC6F6F08EB76C30E5192429FBBDCF Mono.Options.dll F62D13CAFD785908D663E0C95FA83497FF1C20F53C7408BCDFDB0102E0721F3E RGBFusionTool.exe 64BF4B2F0C84333E239DDA24F82BF8EAD22B7DB905C50FADE262283CA96703AD ycc.dll

tylerszabo commented 5 years ago

Thanks for reporting it; as per usual if you could open a support ticket with Gigabyte they might get around to adding support for your board to the SDK.

tmrealive commented 5 years ago

Unfortunately, the support responded that this board does not support sdk.

In any case, ITE IT8295FN RGB controller is located on the board and can be controlled by writing directly to the io port registers. For example, for a RWEverething to turn on green is: O 0xA01 0x02 (where 0xA01 is ITE RGB register and 0x02 is 00000RGB)

tylerszabo commented 5 years ago

I'd be interested in learning more about how to write directly; I'd love to give an option for boards Gigabyte isn't supporting. Do you have more information about the IT8295FN ABI?

tmrealive commented 5 years ago

I tried to find any information on this controller without success. All I managed to dig out is three bits in the address that control the three pins on the motherboard (RGB led stripe head).

tylerszabo commented 5 years ago

If you find out any more about what IT8295 expects its registers to look like please tell me. Also how you found out that "Motherboard resources" was pointing at (what I assume is) the control register for that controller?

AlexLin625 commented 4 years ago

Same issue on B360 Arous

[Error Info] Error: System.Reflection.TargetInvocationException: 调用的目标发生了异常。 ---> GLedApiDotNet.Raw.GLedAPIv1_0_0Exception: dllexp_GetMaxDivision returned 0xFFFFFFFF 在 GLedApiDotNet.Raw.GLedAPIv1_0_0Wrapper.GetMaxDivision() 在 GLedApiDotNet.RGBFusionMotherboard..ctor(GLedAPIv1_0_0Wrapper wrapperAPI) 在 GLedApiDotNet.RGBFusionMotherboard..ctor() --- 内部异常堆栈跟踪的结尾 --- 在 System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) 在 System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) 在 System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) 在 System.Activator.CreateInstance(Type type, Boolean nonPublic) 在 System.Activator.CreateInstance(Type type) 在 System.Lazy1.CreateValue() 在 System.Lazy1.LazyInitValue() 在 System.Lazy`1.get_Value() 在 RGBFusionTool.RGBFusionMain.LazyMotherboard.get_Layout() 在 RGBFusionTool.Application.Main(String[] args)

valves-ops commented 4 years ago

I have the same issue on a H270. By what I've seen, it is also not supported.

Environment:

Windows 10 Pro 2004 (19041.572) MOBO: H270 Gaming 3 (Bios version F8) RGB Fusion Tool 0.9.2

Command:

RGBFusionTool.exe -l

Error:

Error: System.Reflection.TargetInvocationException: Uma exceção foi acionada pelo destino de uma chamada. ---> GLedApiDotNet.Raw.GLedAPIv1_0_0Exception: dllexp_GetMaxDivision returned 0xFFFFFFFF em GLedApiDotNet.Raw.GLedAPIv1_0_0Wrapper.GetMaxDivision() em GLedApiDotNet.RGBFusionMotherboard..ctor(GLedAPIv1_0_0Wrapper wrapperAPI) em GLedApiDotNet.RGBFusionMotherboard..ctor() --- Fim do rastreamento de pilha de exceções internas --- em System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) em System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) em System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) em System.Activator.CreateInstance(Type type, Boolean nonPublic) em System.Activator.CreateInstance(Type type) em System.Lazy1.CreateValue() em System.Lazy1.LazyInitValue() em System.Lazy`1.get_Value() em RGBFusionTool.RGBFusionMain.LazyMotherboard.get_Layout() em RGBFusionTool.Application.Main(String[] args)