Untitled diff

Created Diff never expires
3 removals
95 lines
3 additions
95 lines
#include <3ds.h>
#include <3ds.h>
#include <stdlib.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdio.h>
#include <string.h>
#include <string.h>
#include <malloc.h>
#include <malloc.h>
#include "brahma.h"
#include "brahma.h"
#include "hid.h"
#include "hid.h"
#include "menus.h"
#include "menus.h"
#include "sochlp.h"
#include "sochlp.h"


void interact_with_user (void) {
void interact_with_user (void) {
s32 menuidx = 0;
s32 menuidx = 0;
while (aptMainLoop()) {
while (aptMainLoop()) {
gspWaitForVBlank();
gspWaitForVBlank();


menuidx = print_main_menu(menuidx, &g_main_menu);
menuidx = print_main_menu(menuidx, &g_main_menu);


u32 kDown = wait_key();
u32 kDown = wait_key();
if (kDown & KEY_B) {
if (kDown & KEY_B) {
break;
break;
}
}
else if (kDown & KEY_A) {
else if (kDown & KEY_A) {
consoleClear();
consoleClear();
printf("\n");
printf("\n");
if (menu_execute_function(menuidx, &g_main_menu, 0))
if (menu_execute_function(menuidx, &g_main_menu, 0))
wait_any_key();
wait_any_key();
}
}
else if (kDown & KEY_UP) {
else if (kDown & KEY_UP) {
menuidx--;
menuidx--;
}
}
else if (kDown & KEY_DOWN) {
else if (kDown & KEY_DOWN) {
menuidx++;
menuidx++;
}
}
gfxFlushBuffers();
gfxFlushBuffers();
gfxSwapBuffers();
gfxSwapBuffers();
}
}


return;
return;
}
}


s32 quick_boot_firm (s32 load_from_disk) {
s32 quick_boot_firm (s32 load_from_disk) {
if (load_from_disk)
if (load_from_disk)
load_arm9_payload("/arm9payload.bin");
load_arm9_payload("");
firm_reboot();
firm_reboot();
}
}


s32 main (void) {
s32 main (void) {
// Initialize services
// Initialize services
srvInit();
srvInit();
aptInit();
aptInit();
hidInit(NULL);
hidInit(NULL);
gfxInitDefault();
gfxInitDefault();
fsInit();
fsInit();
sdmcInit();
sdmcInit();
hbInit();
hbInit();
qtmInit();
qtmInit();
consoleInit(GFX_BOTTOM, NULL);
consoleInit(GFX_BOTTOM, NULL);
if (brahma_init()) {
if (brahma_init()) {
hidScanInput();
hidScanInput();
u32 kHeld = hidKeysHeld();
u32 kHeld = hidKeysHeld();
if (kHeld & KEY_LEFT) {
if (1) { //CHANGE 1 is always TRUE - lets just directly load arm9 payload and not mess with other stuff
/* load default payload from dosk and run exploit */
/* load default payload from dosk and run exploit */ //CHANGE no patois, it loads from RAM now, not 'dosk'
quick_boot_firm(1);
quick_boot_firm(1);
printf("[!] Quickload failed\n");
printf("[!] Quickload failed\n");
wait_any_key();
wait_any_key();
} else if (kHeld & KEY_RIGHT) {
} else if (kHeld & KEY_RIGHT) {
/* reboot only */
/* reboot only */
quick_boot_firm(0);
quick_boot_firm(0);
}
}
soc_init();
soc_init();
interact_with_user();
interact_with_user();
soc_exit();
soc_exit();
brahma_exit();
brahma_exit();


} else {
} else {
printf("* BRAHMA *\n\n[!]Not enough memory\n");
printf("* BRAHMA *\n\n[!]Not enough memory\n");
wait_any_key();
wait_any_key();
}
}


hbExit();
hbExit();
sdmcExit();
sdmcExit();
fsExit();
fsExit();
gfxExit();
gfxExit();
hidExit();
hidExit();
aptExit();
aptExit();
srvExit();
srvExit();
// Return to hbmenu
// Return to hbmenu
return 0;
return 0;
}
}