diff options
author | PikalaxALT <PikalaxALT@users.noreply.github.com> | 2020-04-27 19:11:59 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-27 19:11:59 -0400 |
commit | ece62fa4ba8e385809deff330c7d7a0b348c10ae (patch) | |
tree | 4eb423066318c6e83362152f83d3cf8364e78e98 | |
parent | 9f8f350da367a81114efe7f0286116e719ec7d8f (diff) | |
parent | 151f583f0c2c6cf52b29236b407a64588caa3740 (diff) |
Merge pull request #333 from jiangzhengwenjz/librfu
fix librfu issues
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | include/librfu.h | 5 | ||||
-rw-r--r-- | src/librfu_rfu.c | 9 |
3 files changed, 4 insertions, 11 deletions
diff --git a/.gitignore b/.gitignore index e9ebc1291..50910379c 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,7 @@ *.gbapal *.hwjpnfont *.i +*.idb *.id0 *.id1 *.id2 diff --git a/include/librfu.h b/include/librfu.h index de5cdcdbc..88e77acbd 100644 --- a/include/librfu.h +++ b/include/librfu.h @@ -90,13 +90,8 @@ #define RFU_MBOOT_DOWNLOADER_SERIAL_NO 0x0000 // The game serial number of the multi-boot downloader (programs that boot without a Game Pak) -#if LIBRFU_VERSION >= 1028 -#define RFU_API_BUFF_SIZE_RAM 0x0e8c // Necessary size for buffer specified by rfu_initializeAPI (fast communication version that operates the library SIO interrupt routines in RAM) -#define RFU_API_BUFF_SIZE_ROM 0x052c // Necessary size for buffer specified by rfu_initializeAPI (fast communication version that operates the library SIO interrupt routines in ROM) -#else #define RFU_API_BUFF_SIZE_RAM 0x0e64 // Necessary size for buffer specified by rfu_initializeAPI (fast communication version that operates the library SIO interrupt routines in RAM) #define RFU_API_BUFF_SIZE_ROM 0x0504 // Necessary size for buffer specified by rfu_initializeAPI (fast communication version that operates the library SIO interrupt routines in ROM) -#endif #define RFU_CHILD_MAX 4 // Maximum number of slaves that can be connected to one parent device diff --git a/src/librfu_rfu.c b/src/librfu_rfu.c index aed851e95..3f5bd8b69 100644 --- a/src/librfu_rfu.c +++ b/src/librfu_rfu.c @@ -111,7 +111,7 @@ static const struct LLSFStruct llsf_struct[2] = { #define xstr(s) str(s) #define str(s) #s -const char version_string[] = "RFU_V" xstr(LIBRFU_VERSION); +static const char version_string[] = "RFU_V" xstr(LIBRFU_VERSION); static const char str_checkMbootLL[] = "RFU-MBOOT"; @@ -155,16 +155,13 @@ u16 rfu_initializeAPI(u32 *APIBuffer, u16 buffByteSize, IntrFunc *sioIntrTable_p gRfuStatic = (void *)APIBuffer + 0xb4; // + sizeof(*gRfuLinkStatus) gRfuFixed = (void *)APIBuffer + 0xdc; // + sizeof(*gRfuStatic) gRfuSlotStatusNI[0] = (void *)APIBuffer + 0x1bc; // + sizeof(*gRfuFixed) - gRfuSlotStatusUNI[0] = (void *)APIBuffer + 0x37c; // + sizeof(*gRfuSlotStatusNI[0]) + gRfuSlotStatusUNI[0] = (void *)APIBuffer + 0x37c; // + sizeof(*gRfuSlotStatusNI[0]) * RFU_CHILD_MAX for (i = 1; i < RFU_CHILD_MAX; ++i) { gRfuSlotStatusNI[i] = &gRfuSlotStatusNI[i - 1][1]; gRfuSlotStatusUNI[i] = &gRfuSlotStatusUNI[i - 1][1]; } - // TODO: Is it possible to fix the following 2 statements? - // It's equivalent to: - // gRfuFixed->STWIBuffer = &APIBuffer->intr; - // STWI_init_all(&APIBuffer->intr, sioIntrTable_p, copyInterruptToRam); + // remaining space in API buffer is used for `struct RfuIntrStruct`. gRfuFixed->STWIBuffer = (struct RfuIntrStruct *)&gRfuSlotStatusUNI[3][1]; STWI_init_all((struct RfuIntrStruct *)&gRfuSlotStatusUNI[3][1], sioIntrTable_p, copyInterruptToRam); rfu_STC_clearAPIVariables(); |