diff --git a/nx/source/services/ns.c b/nx/source/services/ns.c index d63f135d..45fb4b81 100644 --- a/nx/source/services/ns.c +++ b/nx/source/services/ns.c @@ -19,12 +19,15 @@ NX_GENERATE_SERVICE_GUARD(ns); Result _nsInitialize(void) { Result rc=0; + const char *servarray[5] = {"ns:ec", "ns:web", "ns:rid", "ns:rt", "ns:am2"}; // This is the order used used by official sw, however the below loop uses this in reverse since ns:am2 is last in the list. if(hosversionBefore(3,0,0)) return smGetService(&g_nsAppManSrv, "ns:am"); - rc = smGetService(&g_nsGetterSrv, "ns:am2");//TODO: Support the other services?(Only useful when ns:am2 isn't accessible) - if (R_FAILED(rc)) return rc; + for (s32 i=4; i>=0; i--) { + rc = smGetService(&g_nsGetterSrv, servarray[i]); + if (R_SUCCEEDED(rc)) break; + } return rc; }