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

Function SaneIOS

source/system.cpp:433–494  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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

Callers 1

MainMenuFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected