summaryrefslogtreecommitdiff
path: root/src/libultra_code_O2/osRumblePak.c
diff options
context:
space:
mode:
authorTharo <17233964+Thar0@users.noreply.github.com>2021-12-01 00:08:57 +0000
committerGitHub <noreply@github.com>2021-11-30 19:08:57 -0500
commitf1d183d6feac23275306bfa2dee939d123702765 (patch)
treec20585c17dea94561f7c4cfcff572e39bc033a3e /src/libultra_code_O2/osRumblePak.c
parenteabc91881761a82856cca3fab9a4749c60ea1fe7 (diff)
libultra files and directories restructure (#1038)
* Restructure files, begin header restructure * Format * us2dex * Fix parallel spelling Co-authored-by: JoshDuMan <40190173+JoshDuMan@users.noreply.github.com> * Use OS_K0_TO_PHYSICAL in place of VIRTUAL_TO_PHYSICAL in osAiSetNextBuffer * Uppercase hex, exception vector address defines * Interrupt flags 1 Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com> * Interrupt flags 2 Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com> Co-authored-by: JoshDuMan <40190173+JoshDuMan@users.noreply.github.com> Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com>
Diffstat (limited to 'src/libultra_code_O2/osRumblePak.c')
-rw-r--r--src/libultra_code_O2/osRumblePak.c120
1 files changed, 0 insertions, 120 deletions
diff --git a/src/libultra_code_O2/osRumblePak.c b/src/libultra_code_O2/osRumblePak.c
deleted file mode 100644
index 2aeef8862..000000000
--- a/src/libultra_code_O2/osRumblePak.c
+++ /dev/null
@@ -1,120 +0,0 @@
-#include "global.h"
-
-#define BANK_ADDR 0x400
-#define MOTOR_ID 0x80
-
-OSPifRam osPifBuffers[MAXCONTROLLERS];
-
-s32 osSetRumble(OSPfs* pfs, u32 vibrate) {
- s32 i;
- s32 ret;
- u8* buf = (u8*)&osPifBuffers[pfs->channel];
-
- if (!(pfs->status & 8)) {
- return 5;
- }
-
- __osSiGetAccess();
- osPifBuffers[pfs->channel].status = 1;
- buf += pfs->channel;
- for (i = 0; i < BLOCKSIZE; i++) {
- ((__OSContRamHeader*)buf)->data[i] = vibrate;
- }
-
- __osContLastPoll = CONT_CMD_END;
- __osSiRawStartDma(OS_WRITE, &osPifBuffers[pfs->channel]);
- osRecvMesg(pfs->queue, NULL, OS_MESG_BLOCK);
- __osSiRawStartDma(OS_READ, &osPifBuffers[pfs->channel]);
- osRecvMesg(pfs->queue, NULL, OS_MESG_BLOCK);
-
- ret = ((__OSContRamHeader*)buf)->rxsize & 0xC0;
- if (!ret) {
- if (!vibrate) {
- if (((__OSContRamHeader*)buf)->datacrc != 0) {
- ret = PFS_ERR_CONTRFAIL;
- }
- } else {
- if (((__OSContRamHeader*)buf)->datacrc != 0xEB) {
- ret = PFS_ERR_CONTRFAIL;
- }
- }
- }
-
- __osSiRelAccess();
-
- return ret;
-}
-
-void osSetUpMempakWrite(s32 channel, OSPifRam* buf) {
- u8* bufptr = (u8*)buf;
- __OSContRamHeader mempakwr;
- s32 i;
-
- mempakwr.unk_00 = 0xFF;
- mempakwr.txsize = 0x23;
- mempakwr.rxsize = 1;
- mempakwr.poll = 3; // write mempak
- mempakwr.hi = 0x600 >> 3;
- mempakwr.lo = (u8)(__osContAddressCrc(0x600) | (0x600 << 5));
-
- if (channel != 0) {
- for (i = 0; i < channel; ++i) {
- *bufptr++ = 0;
- }
- }
-
- *(__OSContRamHeader*)bufptr = mempakwr;
- bufptr += sizeof(mempakwr);
- *bufptr = 0xFE;
-}
-
-s32 osProbeRumblePak(OSMesgQueue* ctrlrqueue, OSPfs* pfs, u32 channel) {
- s32 ret;
- u8 sp24[BLOCKSIZE];
-
- pfs->queue = ctrlrqueue;
- pfs->channel = channel;
- pfs->activebank = 0xFF;
- pfs->status = 0;
-
- ret = __osPfsSelectBank(pfs, 0xFE);
- if (ret == 2) {
- ret = __osPfsSelectBank(pfs, MOTOR_ID);
- }
- if (ret != 0) {
- return ret;
- }
- ret = __osContRamRead(ctrlrqueue, channel, BANK_ADDR, sp24);
- if (ret == 2) {
- ret = 4; // "Controller pack communication error"
- }
- if (ret != 0) {
- return ret;
- }
- if (sp24[BLOCKSIZE - 1] == 0xFE) {
- return 0xB;
- }
- ret = __osPfsSelectBank(pfs, MOTOR_ID);
- if (ret == 2) {
- ret = 4; // "Controller pack communication error"
- }
- if (ret != 0) {
- return ret;
- }
- ret = __osContRamRead(ctrlrqueue, channel, BANK_ADDR, sp24);
- if (ret == 2) {
- ret = 4; // "Controller pack communication error"
- }
- if (ret != 0) {
- return ret;
- }
- if (sp24[BLOCKSIZE - 1] != MOTOR_ID) {
- return 0xB;
- }
- if ((pfs->status & PFS_MOTOR_INITIALIZED) == 0) {
- osSetUpMempakWrite(channel, &osPifBuffers[channel]);
- }
- pfs->status = PFS_MOTOR_INITIALIZED;
-
- return 0; // "Recognized rumble pak"
-}