Beispiel #1
0
int LPP_UtilsMsgDialogInit(int options, const char *text, ...)
{
    char buffer[512];
    va_list ap;

    va_start(ap, text);
    vsnprintf(buffer, 512, text, ap);
    va_end(ap);

    memset(&lpp_UtilsMsgDialogParams, 0, sizeof(lpp_UtilsMsgDialogParams));
    lpp_UtilsMsgDialogParams.base.size = sizeof(lpp_UtilsMsgDialogParams);

    sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_LANGUAGE, &lpp_UtilsMsgDialogParams.base.language);
    sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_UNKNOWN, &lpp_UtilsMsgDialogParams.base.buttonSwap);

    lpp_UtilsMsgDialogParams.base.graphicsThread = 17;
    lpp_UtilsMsgDialogParams.base.accessThread = 19;
    lpp_UtilsMsgDialogParams.base.fontThread = 18;
    lpp_UtilsMsgDialogParams.base.soundThread = 16;

    lpp_UtilsMsgDialogParams.mode = PSP_UTILITY_MSGDIALOG_MODE_TEXT;
    lpp_UtilsMsgDialogParams.options = PSP_UTILITY_MSGDIALOG_OPTION_TEXT;
    lpp_UtilsMsgDialogParams.options |= options;

    strcpy(lpp_UtilsMsgDialogParams.message, buffer);

    int res = sceUtilityMsgDialogInitStart(&lpp_UtilsMsgDialogParams);
    if(res == 0) return 1;

    return(res);
}
Beispiel #2
0
int LPP_UtilsBrowserInit(int memorysize, const char *url)
{
    sceHttpInit(0x25800);

    memset(&lpp_UtilsBrowserParams, 0, sizeof(lpp_UtilsBrowserParams));

    lpp_UtilsBrowserParams.base.size = sizeof(lpp_UtilsBrowserParams);
    sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_LANGUAGE, &lpp_UtilsBrowserParams.base.language);
    sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_UNKNOWN, &lpp_UtilsBrowserParams.base.buttonSwap);

    lpp_UtilsBrowserParams.base.graphicsThread = 17;
    lpp_UtilsBrowserParams.base.accessThread = 19;
    lpp_UtilsBrowserParams.base.fontThread = 18;
    lpp_UtilsBrowserParams.base.soundThread = 16;

    lpp_UtilsBrowserParams.memsize = memorysize;
    lpp_UtilsBrowserParams.initialurl = (char *)url;
    lpp_UtilsBrowserParams.numtabs = 3;
    lpp_UtilsBrowserParams.textsize = PSP_UTILITY_HTMLVIEWER_TEXTSIZE_SMALL;
    lpp_UtilsBrowserParams.connectmode = PSP_UTILITY_HTMLVIEWER_CONNECTMODE_MANUAL_ALL;
    lpp_UtilsBrowserParams.textsize = PSP_UTILITY_HTMLVIEWER_TEXTSIZE_NORMAL;
    lpp_UtilsBrowserParams.interfacemode = PSP_UTILITY_HTMLVIEWER_INTERFACEMODE_FULL;
    lpp_UtilsBrowserParams.displaymode = PSP_UTILITY_HTMLVIEWER_DISPLAYMODE_SMART_FIT;

    lpp_UtilsBrowserParams.memaddr = malloc(memorysize);
    if(!lpp_UtilsBrowserParams.memaddr) return -1;

    int res = sceUtilityHtmlViewerInitStart(&lpp_UtilsBrowserParams);
    if(res == 0) return 1;

    return res;
}
Beispiel #3
0
/**
 * localtime_init:  Perform initialization required for localtime().
 * Called by PSP initialization code at program startup.
 *
 * [Parameters]
 *     None
 * [Return value]
 *     None
 */
void localtime_init(void)
{
    /* Find the PSP's time zone */
    int utc_offset_min;
    int32_t result = sceUtilityGetSystemParamInt(
        PSP_SYSTEMPARAM_ID_INT_TIMEZONE, &utc_offset_min
    );
    if (result == 0) {
        utc_offset = utc_offset_min * 60;
    } else {
        DMSG("Failed to get time zone: %s", psp_strerror(result));
        utc_offset = 0;
    }

    /* Check whether daylight saving time is in use */
    int dst;
    result = sceUtilityGetSystemParamInt(
        PSP_SYSTEMPARAM_ID_INT_DAYLIGHTSAVINGS, &dst
    );
    if (result == 0) {
        if (dst) {
            utc_offset += 60*60;
        }
    } else {
        DMSG("Failed to get DST status: %s", psp_strerror(result));
    }

}
Beispiel #4
0
int LPP_UtilsGameShareInit(const char *filepath, const char *name)
{
    sceNetAdhocMatchingInit(32*1024);

    memset(&lpp_UtilsGameShareParams, 0, sizeof(lpp_UtilsGameShareParams));
    lpp_UtilsGameShareParams.base.size = sizeof(lpp_UtilsGameShareParams);

    sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_LANGUAGE, &lpp_UtilsGameShareParams.base.language);
    sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_UNKNOWN, &lpp_UtilsGameShareParams.base.buttonSwap);

    lpp_UtilsGameShareParams.base.graphicsThread = 17;
    lpp_UtilsGameShareParams.base.accessThread = 19;
    lpp_UtilsGameShareParams.base.fontThread = 18;
    lpp_UtilsGameShareParams.base.soundThread = 16;

    size_t lsize = 0;

    SceUID fd = sceIoOpen(filepath, PSP_O_RDONLY, 0777);
    if(fd < 0) return -1;

    lsize = sceIoLseek32(fd, 0, PSP_SEEK_END);

    u8 *buffer = (u8*)malloc(lsize);

    if(buffer == null)
    {
        sceIoClose(fd);
        return -1;
    }

    sceIoLseek32(fd, 0, PSP_SEEK_SET);

    int read = sceIoRead(fd, buffer,lsize);

    if(read < lsize)
    {
        sceIoClose(fd);
        free(buffer);
        return -1;
    }

    sceIoClose(fd);

    buffer[276] = 0x57;
    strncpy((char *)&buffer[320], name, 127);

    kuKernelMemcpy(&lpp_UtilsGameShareParams.name, "GameShar", 8);

    lpp_UtilsGameShareParams.mode = 1;
    lpp_UtilsGameShareParams.datatype = 2;

    lpp_UtilsGameShareParams.data = buffer;
    lpp_UtilsGameShareParams.datasize = lsize;

    int res = sceUtilityGameSharingInitStart(&lpp_UtilsGameShareParams);

    if(res == 0) return 1;

    return (res);
}
Beispiel #5
0
int LPP_AdhocDialogInit(int type, char *name)
{
    memset(&adhocparam, 0, sizeof(adhocparam));
    kuKernelMemcpy(&adhocparam.name, name, sizeof(adhocparam.name));
    adhocparam.timeout = 60;

    memset(&lpp_UtilsNetconfData, 0, sizeof(lpp_UtilsNetconfData));
    lpp_UtilsNetconfData.base.size = sizeof(lpp_UtilsNetconfData);

    sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_LANGUAGE, &lpp_UtilsNetconfData.base.language);
    sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_UNKNOWN, &lpp_UtilsNetconfData.base.buttonSwap);

    lpp_UtilsNetconfData.base.graphicsThread = 17;
    lpp_UtilsNetconfData.base.accessThread = 19;
    lpp_UtilsNetconfData.base.fontThread = 18;
    lpp_UtilsNetconfData.base.soundThread = 16;
    lpp_UtilsNetconfData.action = type;

    lpp_UtilsNetconfData.adhocparam = &adhocparam;

    int res = sceUtilityNetconfInitStart(&lpp_UtilsNetconfData);
    if(res == 0) return 1;

    return res;
}
static void ConfigureDialog(pspUtilityMsgDialogParams *dialog, size_t dialog_size)
{
    memset(dialog, 0, dialog_size);

    dialog->base.size = dialog_size;
    sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_LANGUAGE,
                &dialog->base.language); // Prompt language
    sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_UNKNOWN,
                &dialog->base.buttonSwap); // X/O button swap

    dialog->base.graphicsThread = 0x11;
    dialog->base.accessThread = 0x13;
    dialog->base.fontThread = 0x12;
    dialog->base.soundThread = 0x10;
}
static int lua_getLanguage(lua_State *L)
{
    if (lua_gettop(L) != 0) return luaL_error(L, "no arguments expected.");
    int language;
    sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_LANGUAGE, &language);
    lua_pushnumber(L,language);
    return 1;
}
Beispiel #8
0
void htmlViewerInit(char *url)
{
	int res;
	
	vpl = sceKernelCreateVpl("BrowserVpl", PSP_MEMORY_PARTITION_USER, 0, BROWSER_MEMORY + 256, NULL);
	
	if (vpl < 0) 
		throwError(6000, "Error 0x%08X creating vpl.\n", vpl);

	memset(&params, 0, sizeof(pspUtilityHtmlViewerParam));
	
	params.base.size = sizeof(pspUtilityHtmlViewerParam);
	
	sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_LANGUAGE, &params.base.language);
	sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_UNKNOWN, &params.base.buttonSwap);
	
	params.base.graphicsThread = 17;
	params.base.accessThread = 19;
	params.base.fontThread = 18;
	params.base.soundThread = 16;	
	params.memsize = BROWSER_MEMORY;
	params.initialurl = url;
	params.numtabs = 1;
	params.cookiemode = PSP_UTILITY_HTMLVIEWER_COOKIEMODE_DEFAULT;
	params.homeurl = url;
	params.textsize = PSP_UTILITY_HTMLVIEWER_TEXTSIZE_NORMAL;
	params.displaymode = PSP_UTILITY_HTMLVIEWER_DISPLAYMODE_SMART_FIT;
	params.options = PSP_UTILITY_HTMLVIEWER_DISABLE_STARTUP_LIMITS|PSP_UTILITY_HTMLVIEWER_ENABLE_FLASH;
	params.interfacemode = PSP_UTILITY_HTMLVIEWER_INTERFACEMODE_FULL;
	params.connectmode = PSP_UTILITY_HTMLVIEWER_CONNECTMODE_MANUAL_ALL;
	
	// Note the lack of 'ms0:' on the paths	
	params.dldirname = "/PSP/PHOTO";
	
	res = sceKernelAllocateVpl(vpl, params.memsize, &params.memaddr, NULL);
	
	if (res < 0) 
		throwError(6000, "Error 0x%08X allocating browser memory.\n", res);

	res = sceUtilityHtmlViewerInitStart(&params);
	
	if (res < 0)
		throwError(6000, "Error 0x%08X initing browser.\n", res);
}
Beispiel #9
0
int oslInitNetDialog()
{
	memset(&netConf, 0, sizeof(netConf));
	netConf.base.size = sizeof(netConf);
    sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_LANGUAGE, &netConf.base.language);
    sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_UNKNOWN, &netConf.base.buttonSwap);
	netConf.base.graphicsThread = 17;
	netConf.base.accessThread = 19;
	netConf.base.fontThread = 18;
	netConf.base.soundThread = 16;
	netConf.action = PSP_NETCONF_ACTION_CONNECTAP;

	struct pspUtilityNetconfAdhoc adhocparam;
	memset(&adhocparam, 0, sizeof(adhocparam));
	netConf.adhocparam = &adhocparam;

	int res = sceUtilityNetconfInitStart(&netConf);			//<-- STAS: The error code shouldn't be ignored !
    if (!res) dialogType = OSL_DIALOG_NETCONF;
    return res;												//<-- STAS END -->
}
Beispiel #10
0
int LPP_UtilsOskInit(const char *description, const char *initialtext)
{
    memset(&lpp_UtilsOskDialogParams, 0, sizeof(lpp_UtilsOskDialogParams));
    memset(&lpp_UtilsOskDialogData, 0, sizeof(lpp_UtilsOskDialogData));

    lpp_UtilsOskDialogData.language = PSP_UTILITY_OSK_LANGUAGE_DEFAULT;
    lpp_UtilsOskDialogData.lines = 1;
    lpp_UtilsOskDialogData.unk_24 = 1;
    lpp_UtilsOskDialogData.inputtype = PSP_UTILITY_OSK_INPUTTYPE_ALL;

    if(description != null)
    {
        lpp_UtilsOskDialogData.desc = LPP_UtilsConvertToUni((char*)description);
    }

    if(initialtext != null)
    {
        lpp_UtilsOskDialogData.intext = LPP_UtilsConvertToUni((char*)initialtext);
    }

    lpp_UtilsOskDialogData.outtextlength = 512;
    lpp_UtilsOskDialogData.outtextlimit = 512;
    lpp_UtilsOskDialogData.outtext = lpp_UtilsOskOutText;

    lpp_UtilsOskDialogParams.base.size = sizeof(lpp_UtilsOskDialogParams);

    sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_LANGUAGE, &lpp_UtilsOskDialogParams.base.language);
    sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_UNKNOWN, &lpp_UtilsOskDialogParams.base.buttonSwap);

    lpp_UtilsOskDialogParams.base.graphicsThread = 17;
    lpp_UtilsOskDialogParams.base.accessThread = 19;
    lpp_UtilsOskDialogParams.base.fontThread = 18;
    lpp_UtilsOskDialogParams.base.soundThread = 16;

    lpp_UtilsOskDialogParams.datacount = 1;
    lpp_UtilsOskDialogParams.data = &lpp_UtilsOskDialogData;

    int res = sceUtilityOskInitStart(&lpp_UtilsOskDialogParams);
    if(res == 0) return 1;
    return(res);
}
Beispiel #11
0
int LPP_UtilsNetDialogInit(void)
{
    memset(&lpp_UtilsNetconfData, 0, sizeof(lpp_UtilsNetconfData));
    lpp_UtilsNetconfData.base.size = sizeof(lpp_UtilsNetconfData);
    sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_LANGUAGE, &lpp_UtilsNetconfData.base.language);
    sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_UNKNOWN, &lpp_UtilsNetconfData.base.buttonSwap);

    lpp_UtilsNetconfData.base.graphicsThread = 17;
    lpp_UtilsNetconfData.base.accessThread = 19;
    lpp_UtilsNetconfData.base.fontThread = 18;
    lpp_UtilsNetconfData.base.soundThread = 16;
    lpp_UtilsNetconfData.action = 0;

    struct pspUtilityNetconfAdhoc adhocparam;
    memset(&adhocparam, 0, sizeof(adhocparam));
    lpp_UtilsNetconfData.adhocparam = &adhocparam;

    int res = sceUtilityNetconfInitStart(&lpp_UtilsNetconfData);
    if(res == 0) return 1;

    return res;
}
Beispiel #12
0
int LPP_UtilsMsgDialogErrorInit(u32 error)
{
    memset(&lpp_UtilsMsgDialogParams, 0, sizeof(lpp_UtilsMsgDialogParams));
    lpp_UtilsMsgDialogParams.base.size = sizeof(lpp_UtilsMsgDialogParams);

    sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_LANGUAGE, &lpp_UtilsMsgDialogParams.base.language);
    sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_UNKNOWN, &lpp_UtilsMsgDialogParams.base.buttonSwap);

    lpp_UtilsMsgDialogParams.base.graphicsThread = 17;
    lpp_UtilsMsgDialogParams.base.accessThread = 19;
    lpp_UtilsMsgDialogParams.base.fontThread = 18;
    lpp_UtilsMsgDialogParams.base.soundThread = 16;

    lpp_UtilsMsgDialogParams.mode = PSP_UTILITY_MSGDIALOG_MODE_ERROR;
    lpp_UtilsMsgDialogParams.options = PSP_UTILITY_MSGDIALOG_OPTION_ERROR;
    lpp_UtilsMsgDialogParams.errorValue = error;

    int res = sceUtilityMsgDialogInitStart(&lpp_UtilsMsgDialogParams);
    if(res == 0) return 1;

    return(res);
}
Beispiel #13
0
void get_confirm_button(void)
{
	int result = 0;

	sceUtilityGetSystemParamInt(9, &result);

	if (result == 0) { // Circle?
		g_ctrl_OK = PSP_CTRL_CIRCLE;
		g_ctrl_CANCEL = PSP_CTRL_CROSS;
	} else {
		g_ctrl_OK = PSP_CTRL_CROSS;
		g_ctrl_CANCEL = PSP_CTRL_CIRCLE;
	}
}
Beispiel #14
0
//**********************************************************************************
//	
//**********************************************************************************
bool	CLanguage::Open()
{
	s32	val;

	if ( sceUtilityGetSystemParamInt( PSP_SYSTEMPARAM_ID_INT_LANGUAGE, &val ) != PSP_SYSTEMPARAM_RETVAL_FAIL )
	{
		switch ( val )
		{
		case PSP_SYSTEMPARAM_LANGUAGE_JAPANESE:
			s_eLanguage = LANG_JAPANESE;
			break;
		case PSP_SYSTEMPARAM_LANGUAGE_ENGLISH:
			s_eLanguage = LANG_ENGLISH;
			break;
		case PSP_SYSTEMPARAM_LANGUAGE_FRENCH:
			s_eLanguage = LANG_FRENCH;
			break;
		case PSP_SYSTEMPARAM_LANGUAGE_SPANISH:
			s_eLanguage = LANG_SPANISH;
			break;
		case PSP_SYSTEMPARAM_LANGUAGE_GERMAN:
			s_eLanguage = LANG_GERMAN;
			break;
		case PSP_SYSTEMPARAM_LANGUAGE_ITALIAN:
			s_eLanguage = LANG_ITALIAN;
			break;
		case PSP_SYSTEMPARAM_LANGUAGE_DUTCH:
			s_eLanguage = LANG_DUTCH;
			break;
		case PSP_SYSTEMPARAM_LANGUAGE_PORTUGUESE:
			s_eLanguage = LANG_PORTUGESE;
			break;
		case PSP_SYSTEMPARAM_LANGUAGE_KOREAN:
			s_eLanguage = LANG_KOREAN;
			break;
		default:
			break;
		}

		return true;
	}

	return false;
}
Beispiel #15
0
int sceUtilityGetSystemParamInt_patched( int id, int *value )
{
	int ret;
	
	k1 = pspSdkGetK1();
	
	ret = sceUtilityGetSystemParamInt(id, value);
	if (ret != 0) goto noPatch_exit;
	
	if (id == 8)
	{
		*value = languagePatch;
	}

noPatch_exit:
	pspSdkSetK1(k1);
	
	return ret;
}
Beispiel #16
0
/**
 * Initialize Networking Components for Adhocctl Emulator
 * @param adhoc_id Game Product Code
 * @param server_ip Server IP
 * @return 0 on success or... -1
 */
int _initNetwork(const SceNetAdhocctlAdhocId * adhoc_id, const char * server_ip)
{
	// WLAN Switch Check
	if(sceWlanGetSwitchState() == 1)
	{
		// Initialize Access Point Control
		if(sceNetApctlInit(0x1800, 0x30) == 0)
		{
			// Attempt Counter
			int attemptmax = 10;
			
			// Attempt Number
			int attempt = 0;
			
			// Attempt Connection Setup
			for(; attempt < attemptmax; attempt++)
			{
				// Start Connection
				if(sceNetApctlConnect(_hotspot) == 0)
				{
					// Wait for Connection
					int statebefore = 0;
					int state = 0; while(state != 4)
					{
						// Query State
						int getstate = sceNetApctlGetState(&state);
						
						// Log State Change
						if(statebefore != state) printk("New Connection State: %d\n", state);					
						
						// Query Success
						if(getstate == 0 && state != 4)
						{
							// Wait for Retry
							sceKernelDelayThread(1000000);
						}
						
						// Query Error
						else break;
						
						// Save Before State
						statebefore = state;
					}
					
					// Connected
					if(state == 4)
					{
						// Create Friend Finder Socket
						int socket = sceNetInetSocket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
						
						// Created Socket
						if(socket > 0)
						{
							// Enable Port Re-use
							sceNetInetSetsockopt(socket, SOL_SOCKET, SO_REUSEADDR, &_one, sizeof(_one));
							sceNetInetSetsockopt(socket, SOL_SOCKET, SO_REUSEPORT, &_one, sizeof(_one));
							
							// Apply Receive Timeout Settings to Socket
							// uint32_t timeout = ADHOCCTL_RECV_TIMEOUT;
							// sceNetInetSetsockopt(socket, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(timeout));
							
							// Server IP
							uint32_t ip = 0;
							
							// Initialize DNS Resolver
							if(sceNetResolverInit() == 0)
							{
								// Create DNS Resolver
								unsigned char rbuf[512]; int rid = 0;
								if(sceNetResolverCreate(&rid, rbuf, sizeof(rbuf)) == 0)
								{
									// Resolve Domain
									if(sceNetResolverStartNtoA(rid, server_ip, &ip, 500000, 2) != 0)
									{
										// Attempt IP Conversion
										sceNetInetInetAton(server_ip, &ip);
									}
									
									// Delete DNS Resolver
									sceNetResolverDelete(rid);
								}
								
								// Shutdown DNS Resolver
								sceNetResolverTerm();
							}
							
							// Prepare Server Address
							SceNetInetSockaddrIn addr;
							addr.sin_len = sizeof(addr);
							addr.sin_family = AF_INET;
							addr.sin_addr = ip;
							addr.sin_port = sceNetHtons(ADHOCCTL_METAPORT);
							
							// Connect to Server
							if(sceNetInetConnect(socket, (SceNetInetSockaddr *)&addr, sizeof(addr)) == 0)
							{
								// Save Meta Socket
								_metasocket = socket;
								
								// Save Product Code
								_product_code = *adhoc_id;
								
								// Clear Event Handler
								memset(_event_handler, 0, sizeof(_event_handler[0]) * ADHOCCTL_MAX_HANDLER);
								memset(_event_args, 0, sizeof(_event_args[0]) * ADHOCCTL_MAX_HANDLER);
								
								// Clear Internal Control Status
								memset(&_parameter, 0, sizeof(_parameter));
								
								// Read PSP Player Name
								sceUtilityGetSystemParamString(PSP_SYSTEMPARAM_ID_STRING_NICKNAME, (char *)_parameter.nickname.data, ADHOCCTL_NICKNAME_LEN);
								
								// Read Adhoc Channel
								sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_ADHOC_CHANNEL, &_parameter.channel);
								
								// Fake Channel Number 1 on Automatic Channel
								if(_parameter.channel == 0) _parameter.channel = 1;
								
								// Read PSP MAC Address
								sceWlanGetEtherAddr((void *)&_parameter.bssid.mac_addr.data);
								
								// Prepare Login Packet
								SceNetAdhocctlLoginPacketC2S packet;
								
								// Set Packet Opcode
								packet.base.opcode = OPCODE_LOGIN;
								
								// Set MAC Address
								packet.mac = _parameter.bssid.mac_addr;
								
								// Set Nickname
								packet.name = _parameter.nickname;
								
								// Set Game Product ID
								memcpy(packet.game.data, adhoc_id->data, ADHOCCTL_ADHOCID_LEN);
								
								// Acquire Network Layer Lock
								_acquireNetworkLock();
								
								// Send Login Packet
								sceNetInetSend(_metasocket, &packet, sizeof(packet), INET_MSG_DONTWAIT);
								
								// Free Network Layer Lock
								_freeNetworkLock();
								
								// Load UPNP Library
								_upnp_uid = sceKernelLoadModule("ms0:/kd/pspnet_miniupnc.prx", 0, NULL);
								
								// Start UPNP Library
								int status = 0; sceKernelStartModule(_upnp_uid, 0, NULL, &status, NULL);
								
								// Return Success
								return 0;
							}
							
							// Delete Socket
							sceNetInetClose(socket);
						}
						
						// Close Hotspot Connection
						sceNetApctlDisconnect();
					}
				}
			}
			
			// Terminate Access Point Control
			sceNetApctlTerm();	
		}
	}
	
	// Generic Error
	return -1;
}
Beispiel #17
0
int GetTextOSK(char *buf,int buflen,int mode,const char *title,const char *init)
{
	if(buf == NULL)return -1;

	u16 *winit,*wtitle,*wresult;
	char nulstr[] = "";
	if(init == NULL)init = nulstr;
	if(title == NULL)title = nulstr;
	winit = (u16*)malloc((strlen(init) + 1) * 2);
	wtitle = (u16*)malloc((strlen(title) + 1) * 2);
	wresult = (u16*)malloc((buflen + 1) * 2);
	if(winit == NULL || wtitle == NULL || wresult == NULL)
	{
		free(winit);
		free(wtitle);
		free(wresult);
		return -1;
	}


	dxpCpCode_toUcs2(winit,strlen(init) + 1,(const dxpChar*)init,dxpGeneralData.charset);
	dxpCpCode_toUcs2(wtitle,strlen(title) + 1,(const dxpChar*)title,dxpGeneralData.charset);

	SceUtilityOskData data;
	memset(&data, 0, sizeof(SceUtilityOskData));
	sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_LANGUAGE, &data.language);
	data.unk_00 = 1;	//ATOK
	data.lines = 1;
	data.unk_24 = 1;
	data.inputtype = mode;
	data.desc = wtitle;
	data.intext = winit;
	data.outtextlength = buflen;
	data.outtextlimit = buflen;
	data.outtext = wresult;

	SceUtilityOskParams params;
	memset(&params,0x00,sizeof(params));
	params.base.size = sizeof(params);
	sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_LANGUAGE,&params.base.language);
	sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_UNKNOWN,&params.base.buttonSwap);
	params.base.graphicsThread = 0x11;
	params.base.accessThread = 0x13;
	params.base.fontThread = 0x12;
	params.base.soundThread = 0x10;
	params.datacount = 1;
	params.data = &data;

	sceUtilityOskInitStart(&params);

	int done = 0;
	while(ProcessMessage() != -1 && !done)
	{
		ClearDrawScreen();
		if ( dxpDialogDrawScene != NULL ) dxpDialogDrawScene();
		GUFINISH
		switch(sceUtilityOskGetStatus())
		{
			case PSP_UTILITY_DIALOG_INIT:
				break;
			
			case PSP_UTILITY_DIALOG_VISIBLE:
				sceUtilityOskUpdate(1);
				break;
			
			case PSP_UTILITY_DIALOG_QUIT:
				sceUtilityOskShutdownStart();
				break;
			
			case PSP_UTILITY_DIALOG_NONE:
			case PSP_UTILITY_DIALOG_FINISHED:
				done = 1;
				break;
				
			default:
				break;
		}
		ScreenFlip();
	}

//	dxpCpSJIS_fromUcs2((dxpChar*)buf,buflen,wresult);
	dxpCpCode_fromUcs2((dxpChar*)buf,buflen,wresult,dxpGeneralData.charset);
	free(winit);
	free(wtitle);
	free(wresult);
	return 0;
}
Beispiel #18
0
/*
  Returns a string typed through the PSP built-in keyboard.
*/
VALUE Joyau_gets(VALUE self)
{
   SceUtilityOskData data;
   SceUtilityOskParams params;

   unsigned short input[128]  = { 'E', 'n', 't', 'e', 'r', ' ',
                                  'y', 'o', 'u', 'r', ' ',
                                  't', 'e','x', 't', 0 };
   unsigned short output[128] = { 0 };

   memset(&data, 0, sizeof(data));
   data.lines = 1;
   data.unk_24 = 1;
   data.inputtype = PSP_UTILITY_OSK_INPUTTYPE_ALL;
   data.desc = input;
   data.intext = input;
   data.outtextlength = 128;
   data.outtextlimit = 128;
   data.outtext = output;

   memset(&params, 0, sizeof(params));
   params.base.size = sizeof(params);
   sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_LANGUAGE,
                               &params.base.language);
   sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_UNKNOWN,
                               &params.base.buttonSwap);
   params.base.graphicsThread = 17;
   params.base.accessThread = 19;
   params.base.fontThread = 18;
   params.base.soundThread = 16;
   params.datacount = 1;
   params.data = &data;

   sceUtilityOskInitStart(&params);

   bool done = false;
   while (!done)
   {
      oslStartDrawing();
      oslDrawFillRect(0, 0, 480, 272, RGBA(0, 0, 0, 255));
      oslEndDrawing();
      
      switch(sceUtilityOskGetStatus())
      {
         case PSP_UTILITY_DIALOG_INIT:
            break;
         case PSP_UTILITY_DIALOG_VISIBLE:
            sceUtilityOskUpdate(1);
            break;
         case PSP_UTILITY_DIALOG_QUIT:
            sceUtilityOskShutdownStart();
            break;
         case PSP_UTILITY_DIALOG_FINISHED:
            break;
         case PSP_UTILITY_DIALOG_NONE:
            done = true;
         default :
            break;
      }

      oslEndDrawing();
      oslEndFrame();
      oslSyncFrame();
   }

   char *ret = new char[128];
   for (int i = 0; i < 128; ++i)
      ret[i] = (char)data.outtext[i];

   return rb_str_new2(ret);
}
Beispiel #19
0
/*
  call-seq: run(input_type, language, text, desc, output_size) { ... }

  Shows the OSK (Sony's default keyboard), and returns the input text.
  Example:
    Joyau::OSK.run(Joyau::OSK::ALL, Joyau::OSK::DEFAULT,
                   "Anonymous", "Enter your nickame", 16) do
      Joyau.clearScreen # this is suffisant to avoid glitches,
                        # Although you might copy the old screen buffer,
			# and draw it here.
 */
VALUE Osk_run(VALUE self, VALUE type, VALUE lang, VALUE rb_input, 
	      VALUE rb_desc, VALUE output_size)
{
   SceUtilityOskData data;
   SceUtilityOskParams params;

   char *char_input = StringValuePtr(rb_input);
   int char_size = strlen(char_input);
   
   unsigned short *input = new unsigned short[char_size + 1];
   for (int i = 0; i < char_size + 1; ++i)
      input[i] = char_input[i];
   
   char *char_desc = StringValuePtr(rb_desc);
   char_size = strlen(char_desc);
   
   unsigned short *desc = new unsigned short[char_size + 1];
   for (int i = 0; i < char_size + 1; ++i)
      desc[i] = char_desc[i];

   unsigned short *output = new unsigned short[FIX2INT(output_size)];

   memset(&data, 0, sizeof(data));
   data.lines = 1;
   data.unk_24 = 1;
   data.inputtype = INT2FIX(type);
   data.desc = desc;
   data.intext = input;
   data.outtextlength = FIX2INT(output_size);
   data.outtextlimit = FIX2INT(output_size);
   data.outtext = output;

   memset(&params, 0, sizeof(params));
   params.base.size = sizeof(params);
   params.base.language = FIX2INT(lang);
   sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_UNKNOWN,
                               &params.base.buttonSwap);
   params.base.soundThread = 16;
   params.base.graphicsThread = 17;
   params.base.accessThread = 19;
   params.base.fontThread = 18;
   params.datacount = 1;
   params.data = &data;

   sceUtilityOskInitStart(&params);

   bool done = false;
   while (!done)
   {
      oslStartDrawing();
      rb_yield(Qnil);
      oslEndDrawing();
      
      switch(sceUtilityOskGetStatus())
      {
         case PSP_UTILITY_DIALOG_INIT:
            break;
         case PSP_UTILITY_DIALOG_VISIBLE:
            sceUtilityOskUpdate(1);
            break;
         case PSP_UTILITY_DIALOG_QUIT:
            sceUtilityOskShutdownStart();
            break;
         case PSP_UTILITY_DIALOG_FINISHED:
            break;
         case PSP_UTILITY_DIALOG_NONE:
            done = true;
         default :
            break;
      }

      oslEndDrawing();
      oslEndFrame();
      oslSyncFrame();
   }

   char *ret = new char[FIX2INT(output_size)];
   for (int i = 0; i < FIX2INT(output_size); ++i)
      ret[i] = (char)data.outtext[i];

   delete[] input;
   delete[] desc;
   delete[] output;

   return rb_str_new2(ret);
}
Beispiel #20
0
int LPP_UtilsSavedataInit(int type, void *data, u32 datasize, const char *cPath, const char *gamename, const char *key, const char *title, const char *subtitle, const char *detail)
{
    lpp_UtilsSaveDataData = data;

    PspUtilitySavedataListSaveNewData newData;
    memset(&newData, 0, sizeof(newData));

    memset(&lpp_UtilsSavedataParams, 0, sizeof(lpp_UtilsSavedataParams));
    lpp_UtilsSavedataParams.base.size = sizeof(lpp_UtilsSavedataParams);

    void *icon0data = null;
    size_t icon0size = 0;
    void *pic1data = null;
    size_t pic1size = 0;
    void* snd0data = null;
    size_t snd0size = 0;

    char *titleshow = "New Save";

    sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_LANGUAGE, &lpp_UtilsSavedataParams.base.language);
    sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_UNKNOWN, &lpp_UtilsSavedataParams.base.buttonSwap);

    lpp_UtilsSavedataParams.base.graphicsThread = 17;
    lpp_UtilsSavedataParams.base.accessThread = 19;
    lpp_UtilsSavedataParams.base.fontThread = 18;
    lpp_UtilsSavedataParams.base.soundThread = 16;

    lpp_UtilsSavedataParams.mode = type;

    lpp_UtilsSavedataParams.overwrite = 1;

    if(type == LPP_UTILS_SAVEDATA_TYPE_LISTLOAD)
    {
        lpp_UtilsSavedataParams.focus = PSP_UTILITY_SAVEDATA_FOCUS_LATEST;
    }
    else
    {
        lpp_UtilsSavedataParams.focus = PSP_UTILITY_SAVEDATA_FOCUS_FIRSTEMPTY;
    }

    strncpy(lpp_UtilsSavedataParams.key, key, 16);
    strncpy(lpp_UtilsSavedataParams.gameName, gamename, 9);
    strcpy(lpp_UtilsSavedataParams.saveName, "<>");

    if(type == LPP_UTILS_SAVEDATA_TYPE_AUTOLOAD || type == LPP_UTILS_SAVEDATA_TYPE_AUTOSAVE)
    {
        strcpy(lpp_UtilsSavedataParams.saveName, lpp_UtilsSavedataSaveName);
    }
    else
    {
        lpp_UtilsSavedataParams.saveNameList = lpp_UtilsSaveNameMultiple;
    }

    strcpy(lpp_UtilsSavedataParams.fileName, "DATA.BIN");

    lpp_UtilsSavedataParams.dataBuf = malloc(datasize);
    lpp_UtilsSavedataParams.dataBufSize = datasize;
    lpp_UtilsSavedataParams.dataSize = datasize;

    if(type == LPP_UTILS_SAVEDATA_TYPE_AUTOSAVE || type == LPP_UTILS_SAVEDATA_TYPE_LISTSAVE)
    {
        memset(lpp_UtilsSavedataParams.dataBuf, 0, datasize);
        strncpy(lpp_UtilsSavedataParams.dataBuf, data, datasize);

        strcpy(lpp_UtilsSavedataParams.sfoParam.title, title);
        strcpy(lpp_UtilsSavedataParams.sfoParam.savedataTitle, subtitle);
        strcpy(lpp_UtilsSavedataParams.sfoParam.detail, detail);
        lpp_UtilsSavedataParams.sfoParam.parentalLevel = 0;

        if(type != LPP_UTILS_SAVEDATA_TYPE_AUTOSAVE)
        {
            if(strcmp(cPath, "EBOOT.PBP") == 0 || strcmp(cPath, "EBOOT.PBP/") == 0 || strcmp(cPath, "EBOOT.PBP\\") == 0)
            {
                SceUID fd = sceIoOpen(cPath, PSP_O_RDONLY, 0777);
                if(fd >= 0)
                {
                    EBOOT_HEADER pbpHeader;
                    memset(&pbpHeader, 0, sizeof(pbpHeader));

                    sceIoRead(fd, &pbpHeader, sizeof(pbpHeader));

                    u32 filesize = pbpHeader.offset[2] - pbpHeader.offset[1];
                    if(filesize > 0)
                    {
                        sceIoLseek32(fd, pbpHeader.offset[1], PSP_SEEK_SET);
                        icon0data = malloc(filesize);
                        icon0size = filesize;
                        sceIoRead(fd, icon0data, filesize);
                    }

                    filesize = pbpHeader.offset[5] - pbpHeader.offset[4];
                    if(filesize)
                    {
                        sceIoLseek32(fd, pbpHeader.offset[4], PSP_SEEK_SET);
                        pic1data = malloc(filesize);
                        pic1size = filesize;
                        sceIoRead(fd, pic1data, filesize);
                    }

                    filesize = pbpHeader.offset[6] - pbpHeader.offset[5];
                    if(filesize)
                    {
                        sceIoLseek32(fd, pbpHeader.offset[5], PSP_SEEK_SET);
                        snd0data = malloc(filesize);
                        snd0size = filesize;
                        sceIoRead(fd, snd0data, filesize);
                    }

                    sceIoClose(fd);
                }
            } else {
                char fname[512];

                u8 o = cPath[strlen(cPath) - 1] == '/' || cPath[strlen(cPath) - 1] == '\\';

                sprintf(fname, o ? "%sICON0.PNG" : "%s/ICON0.PNG", cPath);
                if(LPP_FileExists(fname))
                {
                    SceUID fd = sceIoOpen(fname, PSP_O_RDONLY, 0777);
                    icon0size = sceIoLseek32(fd, 0, PSP_SEEK_END);
                    sceIoLseek32(fd, 0, PSP_SEEK_SET);

                    icon0data = malloc(icon0size);
                    sceIoRead(fd, icon0data, icon0size);
                    sceIoClose(fd);
                }

                sprintf(fname, o ? "%sPIC1.PNG" : "%s/PIC1.PNG", cPath);
                if(LPP_FileExists(fname))
                {
                    SceUID fd = sceIoOpen(fname, PSP_O_RDONLY, 0777);
                    pic1size = sceIoLseek32(fd, 0, PSP_SEEK_END);
                    sceIoLseek32(fd, 0, PSP_SEEK_SET);

                    pic1data = malloc(pic1size);
                    sceIoRead(fd, pic1data, pic1size);
                    sceIoClose(fd);
                }

                sprintf(fname, o ? "%sSND0.AT3" : "%s/SND0.AT3", cPath);
                if(LPP_FileExists(fname))
                {
                    SceUID fd = sceIoOpen(fname, PSP_O_RDONLY, 0777);
                    snd0size = sceIoLseek32(fd, 0, PSP_SEEK_END);
                    sceIoLseek32(fd, 0, PSP_SEEK_SET);

                    snd0data = malloc(snd0size);
                    sceIoRead(fd, snd0data, snd0size);
                    sceIoClose(fd);
                }
            }
        }

        lpp_UtilsSavedataParams.icon1FileData.buf = null;
        lpp_UtilsSavedataParams.icon1FileData.bufSize = 0;
        lpp_UtilsSavedataParams.icon1FileData.size = 0;

        lpp_UtilsSavedataParams.pic1FileData.buf = pic1data;
        lpp_UtilsSavedataParams.pic1FileData.bufSize = pic1size;
        lpp_UtilsSavedataParams.pic1FileData.size = pic1size;

        lpp_UtilsSavedataParams.icon0FileData.buf = icon0data;
        lpp_UtilsSavedataParams.icon0FileData.bufSize = icon0size;
        lpp_UtilsSavedataParams.icon0FileData.size = icon0size;

        lpp_UtilsSavedataParams.snd0FileData.buf = snd0data;
        lpp_UtilsSavedataParams.snd0FileData.bufSize = snd0size;
        lpp_UtilsSavedataParams.snd0FileData.size = snd0size;

        newData.title = titleshow;

        lpp_UtilsSavedataParams.newData = &newData;
    }

    int res = sceUtilitySavedataInitStart(&lpp_UtilsSavedataParams);
    if(res == 0) return 1;

    return(res);
}
Beispiel #21
0
char *SonyOSK(int len, const char *_desc, const char *inittext, triImage* img)
{
	unsigned short intext[MAX_TEXT_LENGTH];
	unsigned short outtext[MAX_TEXT_LENGTH];
	unsigned short desc[MAX_TEXT_LENGTH];
	
	memset(intext, 0, MAX_TEXT_LENGTH * sizeof(unsigned short));
	memset(outtext, 0, MAX_TEXT_LENGTH * sizeof(unsigned short));
	memset(desc, 0, MAX_TEXT_LENGTH * sizeof(unsigned short));
	
	int i;
	int txt_len = strlen(_desc);
	for(i=0;i<txt_len;i++)
	{
		desc[i] = _desc[i];
	}
	desc[txt_len] = 0;

	txt_len = strlen(inittext);
	for(i=0;i<txt_len;i++)
	{
		intext[i] = inittext[i];
	}
	intext[txt_len] = 0;	
	
	SceUtilityOskData data;
	
	memset(&data, 0, sizeof(SceUtilityOskData));
	data.language = PSP_UTILITY_OSK_LANGUAGE_DEFAULT; // Use system default for text input
	data.lines = 1;
	data.unk_24 = 1;
	data.inputtype = PSP_UTILITY_OSK_INPUTTYPE_ALL; // Allow all input types
	data.desc = desc;
	data.intext = intext;
	data.outtextlength = MAX_TEXT_LENGTH;
	data.outtextlimit = len;
	data.outtext = outtext;
	
	SceUtilityOskParams params;
	memset(&params, 0, sizeof(params));
	params.base.size = sizeof(params);
	sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_LANGUAGE, &params.base.language);
	//sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_UNKNOWN, &params.base.buttonSwap);
	params.base.buttonSwap = 1;
	params.base.graphicsThread = 17;
	params.base.accessThread = 19;
	params.base.fontThread = 18;
	params.base.soundThread = 16;
	params.datacount = 1;
	params.data = &data;

	sceUtilityOskInitStart(&params);

	int done = 0;
	while(!done)
	{
		triClear( 0 );
		if(img)
			triDrawImage2( 0.f, 0.f, img );

		sceGuFinish();
		sceGuSync(0,0);
		int stat = sceUtilityOskGetStatus();
		switch(stat)
		{
			case PSP_UTILITY_DIALOG_INIT:
				break;
			
			case PSP_UTILITY_DIALOG_VISIBLE:
				sceUtilityOskUpdate(1);
				break;
			
			case PSP_UTILITY_DIALOG_QUIT:
				sceUtilityOskShutdownStart();
				break;
			
			case PSP_UTILITY_DIALOG_FINISHED:
				break;
				
			case PSP_UTILITY_DIALOG_NONE:
				done = 1;
				
			default :
				break;
		}

		triSwapbuffers();
	}

	int j;
	char buf[sizeof(unsigned)];
	char *ret = new char[len+1];
	memset(ret, 0, len+1);
	for(j = 0; data.outtext[j]; j++)
	{
		unsigned c = data.outtext[j];
		
		if(32 <= c && c <= 127) // print ascii only
		{
			sprintf(buf, "%c", data.outtext[j]);
			strcat(ret, buf);
		}
	}
	ret[j] = 0;
	triLogPrint("ret: %s (%d)\n", ret, strlen(ret));
	return ret;
}
Beispiel #22
0
static int dxpSaveDialogInit(
	/* 格納する構造体 */
	SceUtilitySavedataParam * savedata,
	/* セーブモード */
	int mode,
	/* セーブするデータのバッファアドレス */
	void * buf,
	/* セーブするデータのバッファサイズ */
	unsigned int size,
	/* ms0:/PSP/SAVEDATA/GameName/って感じ */
	const char * GameName,
	/* AUTO SAVE時にセーブする場所 */
	const char * SaveName,
	/* セーブリスト */
	char (*nameMultiple)[20],
	/* ゲームのタイトル */
	const char * GameTitle,
	/* セーブデータのタイトル */
	const char * SaveTitle,
	/* セーブデータの詳細 */
	const char * SaveDetail
	)
{
	memset(savedata, 0, sizeof(SceUtilitySavedataParam));
	savedata->base.size = sizeof(SceUtilitySavedataParam);
	
	sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_LANGUAGE, &savedata->base.language);
	sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_UNKNOWN, &savedata->base.buttonSwap);

	savedata->base.graphicsThread = 0x11;
	savedata->base.accessThread = 0x13;
	savedata->base.fontThread = 0x12;
	savedata->base.soundThread = 0x10;

	savedata->mode = (PspUtilitySavedataMode)mode;
	savedata->overwrite = 1;

	//最近セーブしたファイルにフォーカス
	savedata->focus = PSP_UTILITY_SAVEDATA_FOCUS_LATEST;
	
#if _PSP_FW_VERSION >= 200
	const char key[] = "ThisIsASampleKey";
	strncpy(savedata->key, key, 16);
#endif
	
	strncpy(savedata->gameName, GameName, 13);
	savedata->gameName[12] = 0;
	strncpy(savedata->saveName, SaveName, 20);
	savedata->saveName[19] = 0;
	
	savedata->saveNameList = nameMultiple;

	strncpy(savedata->fileName, DXP_SAVE_DATANAME, 13);
	savedata->fileName[12] = 0;

	if ( size != 0 ) {
		savedata->dataBuf = malloc(size);
		if (savedata->dataBuf == NULL) return -1;
	} else {
		savedata->dataBuf = NULL;
	}

	savedata->dataBufSize = size;
	savedata->dataSize = size;

	if ( mode == PSP_UTILITY_SAVEDATA_LISTSAVE ||
		 mode == PSP_UTILITY_SAVEDATA_AUTOSAVE ||
		 mode == PSP_UTILITY_SAVEDATA_SAVE )
	{
		//データのコピー
		memset(savedata->dataBuf, 0x0, size);
		memcpy(savedata->dataBuf, buf, size);

		
		if ( dxpGeneralData.charset == DXP_CP_UTF8 ) {
			strncpy(savedata->sfoParam.title, GameTitle, 128);
			strncpy(savedata->sfoParam.savedataTitle, SaveTitle, 128);
			strncpy(savedata->sfoParam.detail, SaveDetail, 1024);
			savedata->sfoParam.title[127] = 0;
			savedata->sfoParam.savedataTitle[127] = 0;
			savedata->sfoParam.detail[1023] = 0;
			savedata->sfoParam.parentalLevel = 1;
		} else if ( dxpGeneralData.charset == DXP_CP_SJIS ) {
			//128byte
			char utf8[1024];

			sjis_to_utf8((void*)utf8, (void*)GameTitle);
			utf8[127] = '\0';
			strncpy(savedata->sfoParam.title, utf8, 128);
		
			sjis_to_utf8((void*)utf8, (void*)SaveTitle);
			utf8[127] = '\0';
			strncpy(savedata->sfoParam.savedataTitle, utf8, 128);

			//1024byte
			sjis_to_utf8((void*)utf8, (void*)SaveDetail);
			utf8[1023] = '\0';
			strncpy(savedata->sfoParam.detail, utf8, 1024);
			savedata->sfoParam.parentalLevel = 1;
		}
	
		//背景
		savedata->pic1FileData.buf = dxp_save_resource[DXP_SAVE_RESOURCE_PIC1].buf;
		savedata->pic1FileData.bufSize = dxp_save_resource[DXP_SAVE_RESOURCE_PIC1].size;
		savedata->pic1FileData.size = dxp_save_resource[DXP_SAVE_RESOURCE_PIC1].size;
		
		//アイコン
		savedata->icon0FileData.buf = dxp_save_resource[DXP_SAVE_RESOURCE_ICON0].buf;
		savedata->icon0FileData.bufSize = dxp_save_resource[DXP_SAVE_RESOURCE_ICON0].size;
		savedata->icon0FileData.size = dxp_save_resource[DXP_SAVE_RESOURCE_ICON0].size;

		//説明
		savedata->icon1FileData.buf = dxp_save_resource[DXP_SAVE_RESOURCE_ICON1].buf;
		savedata->icon1FileData.bufSize = dxp_save_resource[DXP_SAVE_RESOURCE_ICON1].size;
		savedata->icon1FileData.size = dxp_save_resource[DXP_SAVE_RESOURCE_ICON1].size;

		//音楽
		savedata->snd0FileData.buf = dxp_save_resource[DXP_SAVE_RESOURCE_SND0].buf;
		savedata->snd0FileData.bufSize = dxp_save_resource[DXP_SAVE_RESOURCE_SND0].size;
		savedata->snd0FileData.size = dxp_save_resource[DXP_SAVE_RESOURCE_SND0].size;

		const char* new_title = "新規作成";
		char new_title_utf8[20];

		sjis_to_utf8((void*)new_title_utf8, (const void*)new_title);
		new_title_utf8[19] = '\0';
		newData.title = new_title_utf8;
		savedata->newData = &newData;
	
		//空のファイルが最初
		savedata->focus = PSP_UTILITY_SAVEDATA_FOCUS_FIRSTEMPTY;
	}

	return 0;
}