RW Key Master

1. About

RW Key Master is an application that receives events from X10net.dll control (the driver for the Remote Wonder (and various different RCs) USB receiver). It is capable to load AMMO plugins (the plugins for the ATI Remote Wonder application). It can serve as a replacement for the ATI software.

The main purpose for creating this application was to enable the usage of the forbidden buttons (TV, DVD, Book, Power Off). This applications offer an extended version of the AMMO interfaces and it is capable to deliver these events to the plugins that support these extensions.


Features of the AMMO that were left off:

RW Key Master also does not support the ATI Multimedia center and associated functions. It also does not generate any events when no plugin is loaded. You can however use the RW Key Factory plugin to assign ANY key events to ANY button onyour RC.

Contact address:

Downloads and info:

2. The AMMO Extensions

There are 30 new extended keys. All belong to the Web Launch group (they are sent to a plugin if it subscribes the Web Launch group):

3. Unsupported AMMO Functions

char *EnumerateProgrammableFunction(WORD wIndex)
This function is never called. The plugins won't receive the mapped custom keys. The bCustom parameter of the handleKey function is always false. The subscription to the CUSTOM_MAPPED group is converted to CUSTOM_RAW and the plugins will only receive the unmapped custom keys.

4. Usage

This application can be used together with the ATI RW application, but in that case both applications will receive the key events. It is recommended to exit the ATI application first before using RW Key Master.

The ATI RW drivers must be installed for this application to work (they contain the x10net.dll control). RW Key Master was tested with the 1.4 version of ATI drivers.

4.1 Instalation

  1. Create a folder and put RW Key Master executable to it. You should have rights to create and modify files in this folder because RW Key Master stores its configuration to an INI file in the folder where the executable is.
  2. Disable automatic loading of the ATI drivers:
    1. Right click the ATI RW Icon in Tray and select Properties
    2. In the options tab deselect the 'Load on Startup' box
  3. Enable automatic loading of RW Key Master
    1. Right click the RWKeyMaster executable and select 'Create shortcut' (may have different names in different Windows languages)
    2. Rename the new *.lnk file to a nice name
    3. Drag the *.lnk file to the Start menu to the folder taht contains programs executed on the system boot (I don't know the exact name in English windows because i have access only to the the Czech version; it may be something like 'After start' or 'After boot'
  4. The RW Key Master icon should now be in your tray. You can now configure it and use it instead of the ATI RW Application.

You can also execute RW Key Master manually.

4.2 Configuration

The Configuration dialog has two buttons:

It also has four tabs:

4.2.1 Mouse emulation

It has these parameters:

X10 control delivers repeated key events aboutevery 50 ms. this is too slow for a mouse movement so they are repeated in RWKM using the Repeat time. This results in 4 or 5 movements with the default configuration after single press of ATI key. The default parameters behave in a similar way to the ATI app on my system, but they can be changed according different needs of different users.

4.2.2 Plugin configuration

The Plugins tab contains a lict of loaded plugins. By unchecking the checkbox near the plugin names the plugin is disabled, but it remains loaded. The buttons are:

When a plugin is selected in the list, the plugin Information group box displays the information from the version resource of the plugin. It also contains the Configure button, which enables to configure the plugin (if the Configure entrypoint is present).

4.2.3 Advanced configuration

This tab contains configuration options for advanced functions of RWKm: RC ID
ATI Remote Wonder and maybe other RCs support multiple IDs to allow operation of multiple RCs in close proximity. This ID is encoded in the lAddress field of X10 events. RWKM allows any integer value to be used as lAddress, not only the 16 values used by ATI RW. There are 3 options:
To specify RC ID, you have these options
  1. Specify the lAddress value manually - any 32-bit integer value is acceptable
  2. Select ID from the combo box - this allows to select one of the predefined values for ATI RW
  3. Detect ID of your RC - click on the button and a dialog appears. Then press a button on your remote (if there are multiple entries in the list, remember the button you pressed and select the item that corresponds to that button. The values in the list are: lAddress (RW channel, bszCommand)) X10 Log

This window logs all X10 events (only when it is visible!). It helps to determine whether RWKM is responding to your remote. RC Definitions configuration

RWKM supports multiple remotes through RC definitions. A RC Definition file contains X10 event codes assigned to actions that are sent to plugins. It also contains button names that are used by RW Key Factory.

The controls are: RC Definitions Editor

This window allows to edit the RC configuration.

5. Legal

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
by the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

Copyright (C) 2004-2006 Jan Klir <>

6. Source code

The package comes with Delphi 7 PE source code. To compile the source code, you will need CatsoftComponents available from the web page ( It also uses third party components and libraries: JCL, JVCL, Virtual Treeview