diff options
| author | Tharo <17233964+Thar0@users.noreply.github.com> | 2021-02-14 00:49:40 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-02-13 19:49:40 -0500 |
| commit | f9d96d9f73ac090245a518ec04f3fa0e50655d1e (patch) | |
| tree | 9dc905fce276cbfb07a05fc2bf0883bcedddcf23 /src/libultra_code_O2/osRumblePak.c | |
| parent | d615ec4f31563b939f8c0dce1c20c79e137c2043 (diff) | |
Fix most compiler warnings in the boot and code segments (#674)
* Less warnings in boot & code segments
* few more warnings gone
* Ran formatter
* z_view warning gone
* -> 1
* f31 -> 31
* Remove function casts
* Few more small improvements
* Separate declaration and assignment in func_80091738 and Item_Give
Co-authored-by: Thar0 <maximilianc64@gmail.com>
Diffstat (limited to 'src/libultra_code_O2/osRumblePak.c')
| -rw-r--r-- | src/libultra_code_O2/osRumblePak.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/libultra_code_O2/osRumblePak.c b/src/libultra_code_O2/osRumblePak.c index 96e86c4df..2aeef8862 100644 --- a/src/libultra_code_O2/osRumblePak.c +++ b/src/libultra_code_O2/osRumblePak.c @@ -5,16 +5,15 @@ OSPifRam osPifBuffers[MAXCONTROLLERS]; -// func_800CF990 in 1.0 s32 osSetRumble(OSPfs* pfs, u32 vibrate) { s32 i; s32 ret; - u8* buf; + u8* buf = (u8*)&osPifBuffers[pfs->channel]; - buf = (u8*)&osPifBuffers[pfs->channel]; if (!(pfs->status & 8)) { return 5; } + __osSiGetAccess(); osPifBuffers[pfs->channel].status = 1; buf += pfs->channel; @@ -27,6 +26,7 @@ s32 osSetRumble(OSPfs* pfs, u32 vibrate) { 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) { @@ -39,7 +39,9 @@ s32 osSetRumble(OSPfs* pfs, u32 vibrate) { } } } + __osSiRelAccess(); + return ret; } @@ -47,17 +49,20 @@ 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; @@ -80,7 +85,6 @@ s32 osProbeRumblePak(OSMesgQueue* ctrlrqueue, OSPfs* pfs, u32 channel) { return ret; } ret = __osContRamRead(ctrlrqueue, channel, BANK_ADDR, sp24); - ret = ret; if (ret == 2) { ret = 4; // "Controller pack communication error" } @@ -111,5 +115,6 @@ s32 osProbeRumblePak(OSMesgQueue* ctrlrqueue, OSPfs* pfs, u32 channel) { osSetUpMempakWrite(channel, &osPifBuffers[channel]); } pfs->status = PFS_MOTOR_INITIALIZED; + return 0; // "Recognized rumble pak" } |
