To add to your project, edit your mkb and add subproject { GreenThrottle } This should download it from marmalade if it is actually in their repository. If not then you can drop the GreenThrottle project into MARMALADE_HOME/extensions and then marmalade will find it. h/GreenThrottle.h Defines all the constants used for the various functions that are available in the API. See file to get the details. The functions available to call are: bool GetButtonState(int buttonState, int controllerId, int button) - Get the state of any of the buttons pressed by any of the controllers --buttonState is either BUTTON_STATE_HELD, BUTTON_STATE_DOWN or BUTTON_STATE_UP. BUTTON_STATE_HELD means if it is held down. BUTTON_STATE_DOWN means if it was pressed down this frame. BUTTON_STATE_UP means it was released this frame. --controllerId is the id of the controller to query. See GreenThrottle.h for CONTROLLER ids --button is one of the ones defined in GreenThrottle.h See that file for details float GetAnalogState(int axis, int controllerId, int analogControl) - Get the state of the various analog controls on the controller -- Axis is the X or Y axis constant defined in GreenThrottle.h. Single axis controls only have an X value, Y value will always return 0 for single axis. --controllerId is the id of the controller to query. See GreenThrottle.h for CONTROLLER ids --analogControl id as defined in GreenThrottle.h bool GetAnalogChanged(int controllerId, int analogControl) -Is set per frame if there was activity for an analog control --controllerId is the id of the controller to query. See GreenThrottle.h for CONTROLLER ids --analogControl id as defined in GreenThrottle.h bool GetConnectedState(int controllerId) -Is true if the service has sent a connect message to the plugin. false if no connection has been received or a disconnect message has been received --controllerId is the id of the controller to query. See GreenThrottle.h for CONTROLLER ids bool GetServiceConnected() -Is true if the service has been connected. False if not. An attempt to connect to the service is made in the GTMarmaladeActivity onCreate function. If you require your own Activity for your project, then you will need to review that code to do it within your own activity. void ClearControllerState(int controllerId) -Clear the state of the specified controller. Useful for controller disconnects so that controllers stop reporting values that will never be updated causing on screen problems. --controllerId is the id of the controller to query. See GreenThrottle.h for CONTROLLER ids void AddLeftButtonRemap() -remaps the left analog stick to the DPAD buttons so that you get DPAD pressed from the left analog stick. GTMarmaladeActivity calls this by default in onCreate. void RemoveLeftButtonRemap() -removes the left analog stick to dpad button remap. void AddRightButtonRemap() -remaps the right analog stick to the AYXB (A is Down and then clockwise) buttons respectively. This is disabled by default void RemoveRightButtonRemap() -removes the right analog stick to AYXB remap. void HideAndroidSystemUI() -Convenience function that hides the onscreen Android System UI when called. This is called by default in GTMarmaladeActivity.onCreate and .onResume. Any on screen touch even twill bring it back typically so you made need to call it within your code if you want it to disappear again. void StartFrame() -This function should be called at the beginning of every GameLoop in order to manage state around BUTTON_STATE_DOWN, BUTTON_STATE_UP and analogChanged() Also issues every button press to the state buffers since the last call.