Esempio n. 1
0
File: mvs.c Progetto: AMSMM/NJEMU
static int neogeo_init(void)
{
	SceUID fd;
	char path[MAX_PATH];

#ifdef ADHOC
	if (!adhoc_enable)
#endif
	{
		sprintf(path, "%smemcard/%s.bin", launchDir, game_name);
		if ((fd = sceIoOpen(path, PSP_O_RDONLY, 0777)) >= 0)
		{
			sceIoRead(fd, neogeo_memcard, 0x800);
			sceIoClose(fd);
		}

		sprintf(path, "%snvram/%s.nv", launchDir, game_name);
		if ((fd = sceIoOpen(path, PSP_O_RDONLY, 0777)) >= 0)
		{
			sceIoRead(fd, neogeo_sram16, 0x2000);
			sceIoClose(fd);
			swab(neogeo_sram16, neogeo_sram16, 0x2000);
		}
	}

	neogeo_driver_init();
	neogeo_video_init();

	msg_printf(TEXT(DONE2));
	msg_screen_clear();

	video_clear_screen();

#ifdef ADHOC
	if (adhoc_enable)
	{
		sprintf(adhoc_matching, "%s_%s_%s", PBPNAME_STR, game_name, bios[neogeo_bios]);

		if (adhocInit(adhoc_matching) == 0)
		{
			if ((adhoc_server = adhocSelect()) >= 0)
			{
				video_clear_screen();

				if (adhoc_server)
				{
					option_controller = INPUT_PLAYER1;

					return adhoc_send_state(NULL);
				}
				else
				{
					option_controller = INPUT_PLAYER2;

					return adhoc_recv_state(NULL);
				}
			}
		}

		Loop = LOOP_BROWSER;
		return 0;
	}
#endif

	return 1;
}
Esempio n. 2
0
int psp_initadhocgame(void){
	int retval;
	//testing net stuff	
	//pspDebugScreenInit();
		
	sprintf(str_id,"%s\/%s",os9x_nickname,shortrom_filename);
			
	if((adhocInit(str_id) >= 0) && (adhocSelect() >=0)) { //init adhoc		
		unsigned int length;
		uint8 *buffer;
		int err = 0;
		int i=0;
		if (g_Server) os9x_conId = 1;
		else os9x_conId = 2;
		//buffer=(uint8*)malloc(256);
		//sceKernelDelayThread(1000000); //wait
		//pspDebugScreenInit();
		
		if (os9x_conId==1) { //server
			//send settings			is now done in psp.cpp	
			/*save_buffer_settings(buffer);			
			sceKernelDelayThread(3000000); //wait
			
			printf("Sending settings data to the client\n");
			err = adhocSendRecvAck(buffer, 256);		
			if (!err) printf("Done sending data\n");
			else {
					printf("Error %d!",err);					
					retval=-2;					
					sceKernelDelayThread(1000000); //wait
			}*/
			//server is pl1
			os9x_netpadindex=0;
		} else { //client
			/*int size = 0;
			
			// receive the settings data
			printf("Waiting for settings data\n");
			length = 256;
			err = adhocRecvSendAck(buffer, &length);			
			if (!err) {
				printf("Received data from server %d bytes\n",length);				
				load_buffer_settings(buffer);
		  } else {
					printf("Error %d!",err);					
					retval=-3;
					sceKernelDelayThread(1000000); //wait
			}*/
			//client is pl2
			os9x_netpadindex=1;
		}
		retval=0;
		//free(buffer);			
		
	} else retval=-1;
	
	sceDisplaySetMode( 0, SCREEN_WIDTH, SCREEN_HEIGHT );
	sceDisplaySetFrameBuf( (char*)VRAM_ADDR, 512, 1, 1 );
	pgScreenFrame(2,0);		
	
	return retval;
}