mirror of https://github.com/mgba-emu/mgba.git
PSP2: Add rumble for PS TV
This commit is contained in:
parent
33a9fad209
commit
f590eb8ccf
1
CHANGES
1
CHANGES
|
@ -43,6 +43,7 @@ Misc:
|
||||||
- 3DS: Attempt to use Core 2 for threads
|
- 3DS: Attempt to use Core 2 for threads
|
||||||
- GUI: Screenshot dimensions are now passed through
|
- GUI: Screenshot dimensions are now passed through
|
||||||
- GUI: Add back logging
|
- GUI: Add back logging
|
||||||
|
- PSP2: Add rumble for PS TV
|
||||||
|
|
||||||
0.4.1: (2016-07-11)
|
0.4.1: (2016-07-11)
|
||||||
Bugfixes:
|
Bugfixes:
|
||||||
|
|
|
@ -154,7 +154,7 @@ int main() {
|
||||||
.prepareForFrame = mPSP2PrepareForFrame,
|
.prepareForFrame = mPSP2PrepareForFrame,
|
||||||
.drawFrame = mPSP2Draw,
|
.drawFrame = mPSP2Draw,
|
||||||
.drawScreenshot = mPSP2DrawScreenshot,
|
.drawScreenshot = mPSP2DrawScreenshot,
|
||||||
.paused = 0,
|
.paused = mPSP2Paused,
|
||||||
.unpaused = mPSP2Unpaused,
|
.unpaused = mPSP2Unpaused,
|
||||||
.incrementScreenMode = mPSP2IncrementScreenMode,
|
.incrementScreenMode = mPSP2IncrementScreenMode,
|
||||||
.pollGameInput = mPSP2PollInput
|
.pollGameInput = mPSP2PollInput
|
||||||
|
|
|
@ -49,6 +49,7 @@ static struct mSceRotationSource {
|
||||||
struct mRotationSource d;
|
struct mRotationSource d;
|
||||||
struct SceMotionSensorState state;
|
struct SceMotionSensorState state;
|
||||||
} rotation;
|
} rotation;
|
||||||
|
static struct mRumble rumble;
|
||||||
|
|
||||||
extern const uint8_t _binary_backdrop_png_start[];
|
extern const uint8_t _binary_backdrop_png_start[];
|
||||||
static vita2d_texture* backdrop = 0;
|
static vita2d_texture* backdrop = 0;
|
||||||
|
@ -114,6 +115,15 @@ static int32_t _readGyroZ(struct mRotationSource* source) {
|
||||||
return rotation->state.gyro.z * 0x10000000;
|
return rotation->state.gyro.z * 0x10000000;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void _setRumble(struct mRumble* rumble, int enable) {
|
||||||
|
UNUSED(rumble);
|
||||||
|
struct SceCtrlActuator state = {
|
||||||
|
enable,
|
||||||
|
0
|
||||||
|
};
|
||||||
|
sceCtrlSetActuator(1, &state);
|
||||||
|
}
|
||||||
|
|
||||||
uint16_t mPSP2PollInput(struct mGUIRunner* runner) {
|
uint16_t mPSP2PollInput(struct mGUIRunner* runner) {
|
||||||
SceCtrlData pad;
|
SceCtrlData pad;
|
||||||
sceCtrlPeekBufferPositive(0, &pad, 1);
|
sceCtrlPeekBufferPositive(0, &pad, 1);
|
||||||
|
@ -171,6 +181,9 @@ void mPSP2Setup(struct mGUIRunner* runner) {
|
||||||
rotation.d.readGyroZ = _readGyroZ;
|
rotation.d.readGyroZ = _readGyroZ;
|
||||||
runner->core->setRotation(runner->core, &rotation.d);
|
runner->core->setRotation(runner->core, &rotation.d);
|
||||||
|
|
||||||
|
rumble.setRumble = _setRumble;
|
||||||
|
runner->core->setRumble(runner->core, &rumble);
|
||||||
|
|
||||||
backdrop = vita2d_load_PNG_buffer(_binary_backdrop_png_start);
|
backdrop = vita2d_load_PNG_buffer(_binary_backdrop_png_start);
|
||||||
|
|
||||||
unsigned mode;
|
unsigned mode;
|
||||||
|
@ -246,6 +259,15 @@ void mPSP2UnloadROM(struct mGUIRunner* runner) {
|
||||||
scePowerSetArmClockFrequency(80);
|
scePowerSetArmClockFrequency(80);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void mPSP2Paused(struct mGUIRunner* runner) {
|
||||||
|
UNUSED(runner);
|
||||||
|
struct SceCtrlActuator state = {
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
};
|
||||||
|
sceCtrlSetActuator(1, &state);
|
||||||
|
}
|
||||||
|
|
||||||
void mPSP2Unpaused(struct mGUIRunner* runner) {
|
void mPSP2Unpaused(struct mGUIRunner* runner) {
|
||||||
unsigned mode;
|
unsigned mode;
|
||||||
if (mCoreConfigGetUIntValue(&runner->core->config, "screenMode", &mode) && mode != screenMode) {
|
if (mCoreConfigGetUIntValue(&runner->core->config, "screenMode", &mode) && mode != screenMode) {
|
||||||
|
|
|
@ -16,6 +16,7 @@ void mPSP2Teardown(struct mGUIRunner* runner);
|
||||||
void mPSP2LoadROM(struct mGUIRunner* runner);
|
void mPSP2LoadROM(struct mGUIRunner* runner);
|
||||||
void mPSP2UnloadROM(struct mGUIRunner* runner);
|
void mPSP2UnloadROM(struct mGUIRunner* runner);
|
||||||
void mPSP2PrepareForFrame(struct mGUIRunner* runner);
|
void mPSP2PrepareForFrame(struct mGUIRunner* runner);
|
||||||
|
void mPSP2Paused(struct mGUIRunner* runner);
|
||||||
void mPSP2Unpaused(struct mGUIRunner* runner);
|
void mPSP2Unpaused(struct mGUIRunner* runner);
|
||||||
void mPSP2Draw(struct mGUIRunner* runner, bool faded);
|
void mPSP2Draw(struct mGUIRunner* runner, bool faded);
|
||||||
void mPSP2DrawScreenshot(struct mGUIRunner* runner, const uint32_t* pixels, unsigned width, unsigned height, bool faded);
|
void mPSP2DrawScreenshot(struct mGUIRunner* runner, const uint32_t* pixels, unsigned width, unsigned height, bool faded);
|
||||||
|
|
Loading…
Reference in New Issue