Skip to content

Feature: Support SetEventName-based Chroma games without Synapse #292

Description

@moeilijk

Background

Razer's Chroma SDK has two integration modes:

  1. Direct SetEffect - the game writes color data directly to shared memory (RzEffectDevice file mappings). Aurora supports this.
  2. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions