diff options
author | mrb0nk500 <b0nk@b0nk.xyz> | 2023-02-01 18:45:02 -0400 |
---|---|---|
committer | mrb0nk500 <b0nk@b0nk.xyz> | 2023-02-01 18:50:25 -0400 |
commit | 9fa0a7f1da1b70bee995f53c6c96c43189018772 (patch) | |
tree | 114548896790eaff23cdca84a025281de86bbb51 /src/Dolphin/card/CARDNet.c | |
parent | 2ba3289286bbfcf9fcc13fd135d976058d8b6c2e (diff) |
global: Import Dolphin SDK
This version comes from the Metroid Prime decompilation project.
https://github.com/PrimeDecomp/prime
Diffstat (limited to 'src/Dolphin/card/CARDNet.c')
-rw-r--r-- | src/Dolphin/card/CARDNet.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/Dolphin/card/CARDNet.c b/src/Dolphin/card/CARDNet.c new file mode 100644 index 0000000..828dbad --- /dev/null +++ b/src/Dolphin/card/CARDNet.c @@ -0,0 +1,33 @@ +#include <dolphin/card.h> +#include <dolphin/dsp.h> +#include <dolphin/dvd.h> +#include <dolphin/os.h> + +#include <dolphin/CARDPriv.h> + +u16 __CARDVendorID = 0xffff; + +s32 CARDGetSerialNo(s32 chan, u64* serialNo) { + CARDControl* card; + CARDID* id; + int i; + u64 code; + s32 result; + + if (!(0 <= chan && chan < 2)) { + return CARD_RESULT_FATAL_ERROR; + } + + result = __CARDGetControlBlock(chan, &card); + if (result < 0) { + return result; + } + + id = (CARDID*)card->workArea; + for (code = 0, i = 0; i < sizeof(id->serial) / sizeof(u64); ++i) { + code ^= *(u64*)&id->serial[sizeof(u64) * i]; + } + *serialNo = code; + + return __CARDPutControlBlock(card, CARD_RESULT_READY); +} |