#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "engine.c" #include #include #include PSP_MODULE_INFO("NEBAS", 0x1000, 1, 1); PSP_MAIN_THREAD_ATTR(0); PSP_MAIN_THREAD_STACK_SIZE_KB(32); int exit_callback(int arg1, int arg2, void *common) { sceNetApctlDisconnect(); pspSdkInetTerm(); sceKernelExitGame(); return 0; } int CallbackThread(SceSize args, void *argp) { int cbid; cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL); sceKernelRegisterExitCallback(cbid); sceKernelSleepThreadCB(); return 0; } int SetupCallbacks(void) { int thid = 0; thid = sceKernelCreateThread("update_thread", CallbackThread, 0x11, 0xFA0, 0, 0); if(thid >= 0) { sceKernelStartThread(thid, 0, 0); } return thid; } int NetConnect(int config) { pspDebugScreenInit(); SceCtrlData pad; while (sceWlanGetSwitchState() != 1) { pspDebugScreenPrintf("Turn the wifi switch on!\n"); sceKernelDelayThread(1000*1000); } // init wlan int err = pspSdkInetInit(); if (err != 0) { pspDebugScreenPrintf("pspSdkInetInit failed: %i", err); return 1; } connectWifi: err = sceNetApctlConnect(config); if (err != 0) { pspDebugScreenPrintf("sceNetApctlConnect returns $%x\n", err); sceKernelDelayThread(4*1000000); // 4sec to read before exit return 1; } // Report status while waiting for connection to access point int stateLast = -1; pspDebugScreenPrintf("Connecting To Wifi...\n"); while (1) { sceCtrlPeekBufferPositive(&pad, 1); //READ CONTROLS if (pad.Buttons & PSP_CTRL_CIRCLE) return 1; int state; err = sceNetApctlGetState(&state); if (err != 0) { pspDebugScreenPrintf("sceNetApctlGetState returns $%x\n", err); sceKernelDelayThread(10*1000000); // 10sec to read before exit return 1; } if (state != stateLast) { if (stateLast == 2 && state == 0) { pspDebugScreenPrintf(" Connecting to wifi Failed, Retrying...\n"); sceKernelDelayThread(500*1000); // 500ms goto connectWifi; } pspDebugScreenPrintf(" connection state %d of 4\n", state); stateLast = state; } if (state == 4) break; // connected // wait a little before polling again sceKernelDelayThread(50*1000); // 50ms } sceKernelDelayThread(2*1000000); // 2sec to read any final status return 0; } int user_main(SceSize argc, void* argv) { char buffer; SetupCallbacks(); pspDebugScreenInit(); pspDebugScreenPrintf("Starting WiFi initialization procedures.\n"); NetConnect(1); cINIT(); cPROCESS("GET", "http://www.stapol.biaklan.com/txtnews.txt", "http://www.google.ca", 0); buffer = cPASSDATA(); if(strstr(buffer, "STAPOL")) printf("Successfully parsed required code\n"); else printf("The required code to parse was not present\n"); sceKernelDelayThread(3 * 1000 * 1000); return 0; } int main(int argc, char *argv[]) { pspDebugScreenInit(); int err = pspSdkLoadInetModules(); if (err != 0) { pspDebugScreenPrintf("pspSdkLoadInetModules failed with %x\n", err); return 1; } SceUID thid = sceKernelCreateThread("User Mode Thread", user_main, 8, 256 * 1024, PSP_THREAD_ATTR_USER, NULL); sceKernelStartThread(thid, 0, NULL); sceKernelWaitThreadEnd(thid, NULL); sceKernelExitGame(); return 0; }