KallistiOS git master
Independent SDK for the Sega Dreamcast
|
Definitions for using the Puru Puru (Jump) Pack. More...
Go to the source code of this file.
Data Structures | |
struct | purupuru_effect_t |
Effect generation structure. More... | |
Macros | |
#define | PURUPURU_EFFECT2_UINTENSITY(x) (x << 4) |
Upper-nibble of effect2 convenience macro. | |
#define | PURUPURU_EFFECT2_LINTENSITY(x) (x) |
Lower-nibble of effect2 convenience macro. | |
#define | PURUPURU_EFFECT2_DECAY (8 << 4) |
Give a decay effect to the rumble on some packs. | |
#define | PURUPURU_EFFECT2_PULSE (8) |
Give a pulse effect to the rumble. | |
#define | PURUPURU_EFFECT1_INTENSITY(x) (x << 4) |
Upper nibble of effect1 convenience macro. | |
#define | PURUPURU_EFFECT1_PULSE (8 << 4) |
Give a pulse effect to the rumble. | |
#define | PURUPURU_EFFECT1_POWERSAVE (15) |
Ignore this command. | |
#define | PURUPURU_SPECIAL_MOTOR1 (1 << 4) |
Select motor #1. | |
#define | PURUPURU_SPECIAL_MOTOR2 (1 << 7) |
Select motor #2. | |
#define | PURUPURU_SPECIAL_PULSE (1) |
Yet another pulse effect. | |
Functions | |
int | purupuru_rumble (maple_device_t *dev, purupuru_effect_t *effect) |
Send an effect to a jump pack. | |
int | purupuru_rumble_raw (maple_device_t *dev, uint32 effect) |
Send a raw effect to a jump pack. | |
Definitions for using the Puru Puru (Jump) Pack.
This file contains the definitions needed to access maple jump pack devices. Puru Puru was Sega's internal name for the device, hence why its referred to in this way here.
This driver is largely based off of information provided by Kamjin on the DCEmulation forums. See http://dcemulation.org/phpBB/viewtopic.php?f=29&t=48462 if you're interested in the original documentation.
Also, its important to note that not all Jump Packs are created equal. Some of the stuff in here does not do what it seems like it should on many devices. The "decay" setting, for instance, does not seem to work on Sega Puru Purus, and actually makes most (if not all) effects do absolutely nothing. Basically, its all a big guess-and-test game to get things to work the way you might like. Don't be surprised if you manage to set up something that does absolutely nothing on the first try.