diff options
Diffstat (limited to 'source/link.c')
| -rw-r--r-- | source/link.c | 17 |
1 files changed, 3 insertions, 14 deletions
| diff --git a/source/link.c b/source/link.c index 27837f8..c627039 100644 --- a/source/link.c +++ b/source/link.c | |||
| @@ -12,7 +12,7 @@ | |||
| 12 | 12 | ||
| 13 | //from my tests 50us seems to be the lowest | 13 | //from my tests 50us seems to be the lowest |
| 14 | //safe si transfer delay in between calls | 14 | //safe si transfer delay in between calls |
| 15 | #define SI_TRANS_DELAY 50 | 15 | #define SI_TRANS_DELAY 500 |
| 16 | 16 | ||
| 17 | static u8* resbuf; | 17 | static u8* resbuf; |
| 18 | static u8* cmdbuf; | 18 | static u8* cmdbuf; |
| @@ -61,7 +61,7 @@ u32 recv() | |||
| 61 | SI_Transfer(1, cmdbuf, 1, resbuf, 5, transcb, SI_TRANS_DELAY); | 61 | SI_Transfer(1, cmdbuf, 1, resbuf, 5, transcb, SI_TRANS_DELAY); |
| 62 | 62 | ||
| 63 | while (transval == 0); | 63 | while (transval == 0); |
| 64 | printf("%08lx\n", *(vu32*)resbuf); | 64 | //printf("%08lx\n", *(vu32*)resbuf); |
| 65 | return *(vu32*)resbuf; | 65 | return *(vu32*)resbuf; |
| 66 | } | 66 | } |
| 67 | 67 | ||
| @@ -82,14 +82,7 @@ void send(u32 msg) | |||
| 82 | 82 | ||
| 83 | u32 getMsg() | 83 | u32 getMsg() |
| 84 | { | 84 | { |
| 85 | u32 val = 0; | 85 | u32 val = __builtin_bswap32(recv()); |
| 86 | while (val == 0) | ||
| 87 | { | ||
| 88 | val = __builtin_bswap32(recv()); | ||
| 89 | } | ||
| 90 | |||
| 91 | send(0); | ||
| 92 | while (recv()!=0); | ||
| 93 | send(0); | 86 | send(0); |
| 94 | 87 | ||
| 95 | return val; | 88 | return val; |
| @@ -105,10 +98,7 @@ void getMsgArr(u32* arr, int len) | |||
| 105 | 98 | ||
| 106 | void sendMsg(u32 msg) | 99 | void sendMsg(u32 msg) |
| 107 | { | 100 | { |
| 108 | while (recv()==0); | ||
| 109 | send(msg); | 101 | send(msg); |
| 110 | while (recv()!=0); | ||
| 111 | send(0); | ||
| 112 | } | 102 | } |
| 113 | 103 | ||
| 114 | void waitForGBA() | 104 | void waitForGBA() |
| @@ -157,5 +147,4 @@ void waitForGame() | |||
| 157 | void waitForAck() | 147 | void waitForAck() |
| 158 | { | 148 | { |
| 159 | while (recv() != 0) {sleep(1);} | 149 | while (recv() != 0) {sleep(1);} |
| 160 | send(0); | ||
| 161 | } | 150 | } |
