KallistiOS git master
Independent SDK for the Sega Dreamcast
Loading...
Searching...
No Matches
purupuru.h File Reference

Definitions for using the Puru Puru (Jump) Pack. More...

#include <sys/cdefs.h>
#include <arch/types.h>
#include <dc/maple.h>

Go to the source code of this file.

Data Structures

struct  purupuru_effect_t
 Effect generation structure. More...
 

Macros

#define PURUPURU_EFFECT2_UINTENSITY(x)
 Upper-nibble of effect2 convenience macro.
 
#define PURUPURU_EFFECT2_LINTENSITY(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)
 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.
 

Detailed Description

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.

Author
Lawrence Sebald