MCPcopy Create free account
hub / github.com/dborth/vbagx / SaneIOS

Function SaneIOS

source/system.cpp:422–483  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

420}
421
422bool SaneIOS(u32 ios)
423{
424 if(IsDolphinEmulator()) {
425 return true;
426 }
427
428 bool res = false;
429 u32 num_titles=0;
430 u32 tmd_size;
431
432 if(ios > 200)
433 return false;
434
435 if (ES_GetNumTitles(&num_titles) < 0)
436 return false;
437
438 if(num_titles < 1)
439 return false;
440
441 u64 *titles = (u64 *)memalign(32, num_titles * sizeof(u64) + 32);
442
443 if(!titles)
444 return false;
445
446 if (ES_GetTitles(titles, num_titles) < 0)
447 {
448 free(titles);
449 return false;
450 }
451
452 u32 *tmdbuffer = (u32 *)memalign(32, MAX_SIGNED_TMD_SIZE);
453
454 if(!tmdbuffer)
455 {
456 free(titles);
457 return false;
458 }
459
460 for(u32 n=0; n < num_titles; n++)
461 {
462 if((titles[n] & 0xFFFFFFFF) != ios)
463 continue;
464
465 if (ES_GetStoredTMDSize(titles[n], &tmd_size) < 0)
466 break;
467
468 if (tmd_size > 4096)
469 break;
470
471 if (ES_GetStoredTMD(titles[n], (signed_blob *)tmdbuffer, tmd_size) < 0)
472 break;
473
474 if (tmdbuffer[1] || tmdbuffer[2])
475 {
476 res = true;
477 break;
478 }
479 }

Callers 1

MainMenuFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected