Background
Razer's Chroma SDK has two integration modes:
- Direct SetEffect - the game writes color data directly to shared memory (
RzEffectDevice file mappings). Aurora supports this.
- SetEventName - the game calls
PluginCoreSetEventName("EventName") in RzChromatic64.dll. Synapse translates the event name into a color effect and writes the result to shared memory. Without Synapse, nothing gets written and Aurora has nothing to read.
Confirmed for 007: First Light (#290): the game only uses SetEventName and never writes color data directly.
Known affected games
- 007: First Light
- Any other game that exclusively uses
RzChromatic64.dll's PluginCoreSetEventName
What Aurora needs
To support these games without Synapse, Aurora (or RazerSdkReader) needs to intercept the Chroma event stream itself. Three possible entry points:
Option A: PluginUseForwardChromaEvents
RzChromatic64.dll exports PluginUseForwardChromaEvents. This may let a third-party process register as a consumer of Chroma events and receive the event names that games send.
Option B: CChromaDataFileMapping shared memory
RzChromatic64.dll likely uses Global\{735A64EB-02D2-498D-954E-23FC11A050A9} (37048 bytes, currently unused in RazerSdkReader) to pass event data. Parsing this structure could give Aurora the event stream without calling into RzChromatic64.dll directly.
Option C: Chroma_Events named Win32 entity
The string Chroma_Events appears in RzChromatic64.dll and may be a named file mapping or event object used for forwarding. This could be a simpler interception point.
Scope of work
- Reverse-engineer the event forwarding mechanism in
RzChromatic64.dll (exports, shared memory layout, protocol)
- Implement event name reading in RazerSdkReader (new
ChromaAppData field or separate reader)
- Add per-game event to color configuration in Aurora, or a generic pass-through that replays the event colors
- Expose event names in Aurora's layer/profile system so users can map game states (e.g.
"Drive_Brake_Off") to lighting
References
Background
Razer's Chroma SDK has two integration modes:
RzEffectDevicefile mappings). Aurora supports this.PluginCoreSetEventName("EventName")inRzChromatic64.dll. Synapse translates the event name into a color effect and writes the result to shared memory. Without Synapse, nothing gets written and Aurora has nothing to read.Confirmed for 007: First Light (#290): the game only uses
SetEventNameand never writes color data directly.Known affected games
RzChromatic64.dll'sPluginCoreSetEventNameWhat Aurora needs
To support these games without Synapse, Aurora (or RazerSdkReader) needs to intercept the Chroma event stream itself. Three possible entry points:
Option A:
PluginUseForwardChromaEventsRzChromatic64.dllexportsPluginUseForwardChromaEvents. This may let a third-party process register as a consumer of Chroma events and receive the event names that games send.Option B:
CChromaDataFileMappingshared memoryRzChromatic64.dlllikely usesGlobal\{735A64EB-02D2-498D-954E-23FC11A050A9}(37048 bytes, currently unused in RazerSdkReader) to pass event data. Parsing this structure could give Aurora the event stream without calling intoRzChromatic64.dlldirectly.Option C:
Chroma_Eventsnamed Win32 entityThe string
Chroma_Eventsappears inRzChromatic64.dlland may be a named file mapping or event object used for forwarding. This could be a simpler interception point.Scope of work
RzChromatic64.dll(exports, shared memory layout, protocol)ChromaAppDatafield or separate reader)"Drive_Brake_Off") to lightingReferences
RzChromatic64.dllexports:PluginCoreInitSDK,PluginCoreSetEventName,PluginCoreUnInit,PluginUseForwardChromaEvents,PluginOpenAnimationFromMemoryConstants.cs:CChromaDataFileMapping = "Global\{735A64EB-02D2-498D-954E-23FC11A050A9}"