int _main(void) { // Init and resolve libraries initKernel(); initLibc(); initNetwork(); initPthread(); // Init netdebug struct sockaddr_in server; server.sin_family = sceNetHtons(AF_INET); server.sin_addr.s_addr = IP(192, 168, 0, 4); server.sin_port = sceNetHtons(9023); memset(server.sin_zero, 0, sizeof(server.sin_zero)); netdbg_sock = sceNetSocket("netdebug", AF_INET, SOCK_STREAM, 0); sceNetConnect(netdbg_sock, (struct sockaddr *)&server, sizeof(server)); ftp_init(PS4_IP, PS4_PORT); //INFO("PS4 listening on IP %s Port %i\n", PS4_IP, PS4_PORT); while (1) { sceKernelUsleep(100 * 1000); } ftp_fini(); return 0; }
void vblank(void) { #ifdef WIN drawFramebuffer(); #endif #ifdef PS4 void readController(void); readController(); extern unsigned int buttons; keys.c = (unsigned char)buttons; sceKernelUsleep(1000000 / 60); #endif #ifdef DS // The Game Boy and DS use the same key layout, how convenient :) keys.c = (unsigned char)REG_KEYINPUT; // Support scrolling copyMap(); #endif #ifdef GC VIDEO_WaitVSync(); #endif #ifdef DS3 hidScanInput(); u32 kHeld = hidKeysHeld(); keys.keys1 = 0x0f; keys.keys2 = 0x0f; if(kHeld & KEY_B) keys.b = 0; if(kHeld & KEY_A) keys.a = 0; if(kHeld & KEY_START) keys.start = 0; if(kHeld & KEY_SELECT) keys.select = 0; if(kHeld & KEY_UP) keys.up = 0; if(kHeld & KEY_DOWN) keys.down = 0; if(kHeld & KEY_LEFT) keys.left = 0; if(kHeld & KEY_RIGHT) keys.right = 0; //gfxFlushBuffers(); gspWaitForVBlank(); gfxSwapBuffers(); if(!aptMainLoop() || ((kHeld & KEY_START) && (kHeld & KEY_SELECT) && (kHeld & KEY_L) && (kHeld & KEY_R))) quit(); #endif #ifdef LIN drawFramebuffer(); #endif #ifdef PSP SceCtrlData pad; sceCtrlReadBufferPositive(&pad, 1); keys.keys1 = 0x0f; keys.keys2 = 0x0f; if(pad.Buttons & PSP_CTRL_SQUARE) keys.b = 0; if(pad.Buttons & PSP_CTRL_CROSS) keys.a = 0; if(pad.Buttons & PSP_CTRL_START) keys.start = 0; if(pad.Buttons & PSP_CTRL_SELECT) keys.select = 0; if(pad.Buttons & PSP_CTRL_UP) keys.up = 0; if(pad.Buttons & PSP_CTRL_DOWN) keys.down = 0; if(pad.Buttons & PSP_CTRL_LEFT) keys.left = 0; if(pad.Buttons & PSP_CTRL_RIGHT) keys.right = 0; sceDisplayWaitVblankStart(); #endif interrupt.master = 0; writeShortToStack(registers.pc); registers.pc = 0x40; ticks += 12; }