MCPcopy Create free account
hub / github.com/bfbbdecomp/bfbb / __ARChecksize

Function __ARChecksize

src/dolphin/src/ar/ar.c:194–383  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

192}
193
194static void __ARChecksize(void)
195{
196 u8 test_data_pad[0x20 + 31];
197 u8 dummy_data_pad[0x20 + 31];
198 u8 buffer_pad[0x20 + 31];
199
200 u8 save_pad_1[0x20 + 31];
201 u8 save_pad_2[0x20 + 31];
202 u8 save_pad_3[0x20 + 31];
203 u8 save_pad_4[0x20 + 31];
204 u8 save_pad_5[0x20 + 31];
205
206 u32* test_data;
207 u32* dummy_data;
208 u32* buffer;
209 u32* save1;
210 u32* save2;
211 u32* save3;
212 u32* save4;
213 u32* save5;
214
215 u16 ARAM_mode = 0;
216 u32 ARAM_size = 0;
217
218 u32 i;
219
220 while (!(__DSPRegs[11] & 1))
221 ;
222
223 ARAM_mode = 3;
224 ARAM_size = __AR_InternalSize = 0x1000000;
225 __DSPRegs[9] = (u16)((__DSPRegs[9] & ~(0x00000007 | 0x00000038)) | 0x20 | 2 | 1);
226
227 test_data = (u32*)(RoundUP32((u32)(test_data_pad)));
228 dummy_data = (u32*)(RoundUP32((u32)(dummy_data_pad)));
229 buffer = (u32*)(RoundUP32((u32)(buffer_pad)));
230
231 save1 = (u32*)(RoundUP32((u32)(save_pad_1)));
232 save2 = (u32*)(RoundUP32((u32)(save_pad_2)));
233 save3 = (u32*)(RoundUP32((u32)(save_pad_3)));
234 save4 = (u32*)(RoundUP32((u32)(save_pad_4)));
235 save5 = (u32*)(RoundUP32((u32)(save_pad_5)));
236
237 for (i = 0; i < 8; i++)
238 {
239 *(test_data + i) = 0xdeadbeef;
240 *(dummy_data + i) = 0xbad0bad0;
241 }
242
243 DCFlushRange((void*)test_data, 0x20);
244 DCFlushRange((void*)dummy_data, 0x20);
245
246 __AR_ExpansionSize = 0;
247
248 DCInvalidateRange((void*)save1, 0x20);
249 __ARReadDMA((u32)save1, ARAM_size + 0, 0x20);
250 PPCSync();
251

Callers 1

ARInitFunction · 0.85

Calls 4

__ARReadDMAFunction · 0.85
PPCSyncFunction · 0.85
__ARWriteDMAFunction · 0.85
memsetFunction · 0.85

Tested by

no test coverage detected