Example #1
0
void psp_init(void)
{
	SceUID thid;
	char buff[128], *r;

	/* fw 1.5 sometimes returns 8002032c, although getcwd works */
	r = getcwd(buff, sizeof(buff));
	if (r) sceIoChdir(buff);

	main_thread_id = sceKernelGetThreadId();

	lprintf("running on %08x kernel\n", sceKernelDevkitVersion()),
	lprintf("entered psp_init, threadId %08x, priority %i\n", main_thread_id,
		sceKernelGetThreadCurrentPriority());

	thid = sceKernelCreateThread("update_thread", callback_thread, 0x11, 0xFA0, 0, NULL);
	if (thid >= 0)
	{
		sceKernelStartThread(thid, 0, 0);
	}

	/* video */
	sceDisplaySetMode(0, 480, 272);
	sceDisplaySetFrameBuf(VRAM_FB1, 512, PSP_DISPLAY_PIXEL_FORMAT_565, PSP_DISPLAY_SETBUF_NEXTFRAME);
	current_screen = 1;
	psp_screen = VRAM_FB0;

	/* gu */
	sceGuInit();

	sceGuStart(GU_DIRECT, guCmdList);
	sceGuDrawBuffer(GU_PSM_5650, (void *)VRAMOFFS_FB0, 512);
	sceGuDispBuffer(480, 272, (void *)VRAMOFFS_FB1, 512); // don't care
	sceGuClear(GU_COLOR_BUFFER_BIT | GU_DEPTH_BUFFER_BIT);
	sceGuDepthBuffer((void *)VRAMOFFS_DEPTH, 512);
	sceGuOffset(2048 - (480 / 2), 2048 - (272 / 2));
	sceGuViewport(2048, 2048, 480, 272);
	sceGuDepthRange(0xc350, 0x2710);
	sceGuScissor(0, 0, 480, 272);
	sceGuEnable(GU_SCISSOR_TEST);

	sceGuDepthMask(0xffff);
	sceGuDisable(GU_DEPTH_TEST);

	sceGuFrontFace(GU_CW);
	sceGuEnable(GU_TEXTURE_2D);
	sceGuTexFunc(GU_TFX_REPLACE, GU_TCC_RGB);
	sceGuAmbientColor(0xffffffff);
	sceGuColor(0xffffffff);
	sceGuFinish();
	sceGuSync(0, 0);

	sceDisplayWaitVblankStart();
	sceGuDisplay(GU_TRUE);


	/* input */
	sceCtrlSetSamplingCycle(0);
	sceCtrlSetSamplingMode(PSP_CTRL_MODE_ANALOG);
}
Example #2
0
/* Function to scan the system for joysticks.
 * This function should set SDL_numjoysticks to the number of available
 * joysticks.  Joystick 0 should be the system default joystick.
 * It should return number of joysticks, or -1 on an unrecoverable fatal error.
 */
int SDL_SYS_JoystickInit(void)
{
    int i;

/*  SDL_numjoysticks = 1; */

    /* Setup input */
    sceCtrlSetSamplingCycle(0);
    sceCtrlSetSamplingMode(PSP_CTRL_MODE_ANALOG);

    /* Start thread to read data */
    if((pad_sem =  SDL_CreateSemaphore(1)) == NULL) {
        return SDL_SetError("Can't create input semaphore");
    }
    running = 1;
    if((thread = SDL_CreateThread(JoystickUpdate, "JoySitckThread",NULL)) == NULL) {
        return SDL_SetError("Can't create input thread");
    }

    /* Create an accurate map from analog inputs (0 to 255)
       to SDL joystick positions (-32768 to 32767) */
    for (i = 0; i < 128; i++)
    {
        float t = (float)i/127.0f;
        analog_map[i+128] = calc_bezier_y(t);
        analog_map[127-i] = -1 * analog_map[i+128];
    }

    return 1;
}
Example #3
0
int playerStart(char *path,pMalloc extern_malloc,pFree extern_free,	int(*callback)(int)){
	int ret,ch;MODFILE mod;
	if(!extern_malloc || !extern_free)return -1;
	if((ch=sceAudioChReserve(PSP_AUDIO_NEXT_CHANNEL,PSP_AUDIO_SAMPLE_ALIGN(768),PSP_AUDIO_FORMAT_STEREO))<0)return ch;
	myMalloc=extern_malloc;
	myFree	=extern_free;
	MODFILE_Init(&mod);
	if((ret=MODFILE_Load(path, &mod))<0)return ret;
	mod.musicvolume = 255;
	mod.sfxvolume = 255;
	mod.callback = NULL;//callback;
	MODFILE_Start(&mod);
	MODFILE_SetFormat(&mod, 44100, 2,16,1/*unsigned*/);
	SceCtrlData pad;
	sceCtrlSetSamplingCycle(0);
	sceCtrlSetSamplingMode(1);
	for(int i=0;;i++){
		sceCtrlReadBufferPositive(&pad,1);
		if(pad.Buttons&PSP_CTRL_START)break;
		mod.mixingbuf =(void*)out[i%2];
		mod.mixingbuflen = 768*2*2;
		MODFILE_Player(&mod);
		sceAudioOutputBlocking(ch, PSP_AUDIO_VOLUME_MAX,out[i%2]);
	}
	MODFILE_Stop(&mod);
	MODFILE_Free(&mod);
	sceAudioChRelease(ch);
	return 0;
}
Psp2Ui::Psp2Ui(int width, int height) :
	BaseUi() {
	
	starttick = sceKernelGetProcessTimeWide() / 1000;
	frame = 0;
	zoom_state = 0;
	trigger_state = false;
	vita2d_init();
	vita2d_texture_set_alloc_memblock_type(SCE_KERNEL_MEMBLOCK_TYPE_USER_RW);
	current_display_mode.width = width;
	current_display_mode.height = height;
	current_display_mode.bpp = 32;
	const DynamicFormat format(
		32,
		0x000000FF,
		0x0000FF00,
		0x00FF0000,
		0xFF000000,
		PF::Alpha);
	main_texture = vita2d_create_empty_texture_format(
												width, height,
												SCE_GXM_TEXTURE_FORMAT_A8B8G8R8);
	Bitmap::SetFormat(Bitmap::ChooseFormat(format));
	main_surface = Bitmap::Create(vita2d_texture_get_datap(main_texture),width, height, vita2d_texture_get_stride(main_texture), format);
	
	#ifdef SUPPORT_AUDIO
		audio_.reset(new Psp2Audio());
	#endif
	
	scePowerSetArmClockFrequency(444);
	sceCtrlSetSamplingMode(SCE_CTRL_MODE_ANALOG);
	
}
static void psp_joypad_poll(void)
{
   int32_t ret;
   SceCtrlData state_tmp;
   global_t *global          = global_get_ptr();
   uint64_t *lifecycle_state = (uint64_t*)&global->lifecycle_state;

#ifdef PSP
   sceCtrlSetSamplingCycle(0);
#endif
   sceCtrlSetSamplingMode(DEFAULT_SAMPLING_MODE);
   ret = CtrlPeekBufferPositive(0, &state_tmp, 1);
#ifdef HAVE_KERNEL_PRX
   state_tmp.Buttons = (state_tmp.Buttons&0x0000FFFF)|(read_system_buttons()&0xFFFF0000);
#endif
   (void)ret;

   analog_state[0][0][0] = analog_state[0][0][1] = 
      analog_state[0][1][0] = analog_state[0][1][1] = 0;
   pad_state = 0;
   pad_state |= (STATE_BUTTON(state_tmp) & PSP_CTRL_LEFT) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_LEFT) : 0;
   pad_state |= (STATE_BUTTON(state_tmp) & PSP_CTRL_DOWN) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_DOWN) : 0;
   pad_state |= (STATE_BUTTON(state_tmp) & PSP_CTRL_RIGHT) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_RIGHT) : 0;
   pad_state |= (STATE_BUTTON(state_tmp) & PSP_CTRL_UP) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_UP) : 0;
   pad_state |= (STATE_BUTTON(state_tmp) & PSP_CTRL_START) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_START) : 0;
   pad_state |= (STATE_BUTTON(state_tmp) & PSP_CTRL_SELECT) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_SELECT) : 0;
   pad_state |= (STATE_BUTTON(state_tmp) & PSP_CTRL_TRIANGLE) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_X) : 0;
   pad_state |= (STATE_BUTTON(state_tmp) & PSP_CTRL_SQUARE) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_Y) : 0;
   pad_state |= (STATE_BUTTON(state_tmp) & PSP_CTRL_CROSS) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_B) : 0;
   pad_state |= (STATE_BUTTON(state_tmp) & PSP_CTRL_CIRCLE) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_A) : 0;
   pad_state |= (STATE_BUTTON(state_tmp) & PSP_CTRL_R) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_R) : 0;
   pad_state |= (STATE_BUTTON(state_tmp) & PSP_CTRL_L) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_L) : 0;

   analog_state[0][RETRO_DEVICE_INDEX_ANALOG_LEFT] [RETRO_DEVICE_ID_ANALOG_X] = (int16_t)(STATE_ANALOGLX(state_tmp)-128) * 256;
   analog_state[0][RETRO_DEVICE_INDEX_ANALOG_LEFT] [RETRO_DEVICE_ID_ANALOG_Y] = (int16_t)(STATE_ANALOGLY(state_tmp)-128) * 256;
#ifdef SN_TARGET_PSP2
   analog_state[0][RETRO_DEVICE_INDEX_ANALOG_RIGHT][RETRO_DEVICE_ID_ANALOG_X] = (int16_t)(STATE_ANALOGRX(state_tmp)-128) * 256;
   analog_state[0][RETRO_DEVICE_INDEX_ANALOG_RIGHT][RETRO_DEVICE_ID_ANALOG_Y] = (int16_t)(STATE_ANALOGRY(state_tmp)-128) * 256;
#endif

   for (int i = 0; i < 2; i++)
      for (int j = 0; j < 2; j++)
         if (analog_state[0][i][j] == -0x8000)
            analog_state[0][i][j] = -0x7fff;

   *lifecycle_state &= ~((1ULL << RARCH_MENU_TOGGLE));

#ifdef HAVE_KERNEL_PRX
   if (STATE_BUTTON(state_tmp) & PSP_CTRL_NOTE)
#else
      if (
            (pad_state & (1ULL << RETRO_DEVICE_ID_JOYPAD_L))
            && (pad_state & (1ULL << RETRO_DEVICE_ID_JOYPAD_R))
            && (pad_state & (1ULL << RETRO_DEVICE_ID_JOYPAD_SELECT))
            && (pad_state & (1ULL << RETRO_DEVICE_ID_JOYPAD_START))
         )
#endif
         *lifecycle_state |= (1ULL << RARCH_MENU_TOGGLE);
}
Example #6
0
/**
 * control_init:  Initialize the controller input management code.
 *
 * [Parameters]
 *     None
 * [Return value]
 *     Nonzero on success, zero on error
 */
int control_init(void)
{
    sceCtrlSetSamplingCycle(0);
    sceCtrlSetSamplingMode(PSP_CTRL_MODE_ANALOG);
    buttons = last_buttons = 0;

    return 1;
}
Example #7
0
void pspCtrlInit()
{
  /* Init PSP controller */
  sceCtrlSetSamplingCycle(0);
  sceCtrlSetSamplingMode(PSP_CTRL_MODE_ANALOG);

  PollingMode = PSP_CTRL_NORMAL;
}
Example #8
0
void init_input(void)
{
  sceCtrlSetSamplingCycle(0);
  sceCtrlSetSamplingMode(PSP_CTRL_MODE_ANALOG);

  __sceCtrlPeekBufferPositive = sceCtrlPeekBufferPositive;
  __sceCtrlReadBufferPositive = sceCtrlReadBufferPositive;
}
Example #9
0
static void psp_joypad_poll(void)
{
   int32_t ret;
   unsigned i, j, k;
   SceCtrlData state_tmp;
   unsigned players_count = 1;

#ifdef PSP
   sceCtrlSetSamplingCycle(0);
#endif
   sceCtrlSetSamplingMode(DEFAULT_SAMPLING_MODE);

   ret = CtrlPeekBufferPositive(0, &state_tmp, 1);

   for (i = 0; i < players_count; i++)
   {
#ifdef HAVE_KERNEL_PRX
      state_tmp.Buttons = (state_tmp.Buttons & 0x0000FFFF)
         | (read_system_buttons() & 0xFFFF0000);
#endif
      (void)ret;

      analog_state[i][0][0] = analog_state[i][0][1] =
         analog_state[i][1][0] = analog_state[i][1][1] = 0;
      pad_state[i] = 0;
      pad_state[i] |= (STATE_BUTTON(state_tmp) & PSP_CTRL_LEFT) ? (UINT64_C(1) << RETRO_DEVICE_ID_JOYPAD_LEFT) : 0;
      pad_state[i] |= (STATE_BUTTON(state_tmp) & PSP_CTRL_DOWN) ? (UINT64_C(1) << RETRO_DEVICE_ID_JOYPAD_DOWN) : 0;
      pad_state[i] |= (STATE_BUTTON(state_tmp) & PSP_CTRL_RIGHT) ? (UINT64_C(1) << RETRO_DEVICE_ID_JOYPAD_RIGHT) : 0;
      pad_state[i] |= (STATE_BUTTON(state_tmp) & PSP_CTRL_UP) ? (UINT64_C(1) << RETRO_DEVICE_ID_JOYPAD_UP) : 0;
      pad_state[i] |= (STATE_BUTTON(state_tmp) & PSP_CTRL_START) ? (UINT64_C(1) << RETRO_DEVICE_ID_JOYPAD_START) : 0;
      pad_state[i] |= (STATE_BUTTON(state_tmp) & PSP_CTRL_SELECT) ? (UINT64_C(1) << RETRO_DEVICE_ID_JOYPAD_SELECT) : 0;
      pad_state[i] |= (STATE_BUTTON(state_tmp) & PSP_CTRL_TRIANGLE) ? (UINT64_C(1) << RETRO_DEVICE_ID_JOYPAD_X) : 0;
      pad_state[i] |= (STATE_BUTTON(state_tmp) & PSP_CTRL_SQUARE) ? (UINT64_C(1) << RETRO_DEVICE_ID_JOYPAD_Y) : 0;
      pad_state[i] |= (STATE_BUTTON(state_tmp) & PSP_CTRL_CROSS) ? (UINT64_C(1) << RETRO_DEVICE_ID_JOYPAD_B) : 0;
      pad_state[i] |= (STATE_BUTTON(state_tmp) & PSP_CTRL_CIRCLE) ? (UINT64_C(1) << RETRO_DEVICE_ID_JOYPAD_A) : 0;
      pad_state[i] |= (STATE_BUTTON(state_tmp) & PSP_CTRL_R) ? (UINT64_C(1) << RETRO_DEVICE_ID_JOYPAD_R) : 0;
      pad_state[i] |= (STATE_BUTTON(state_tmp) & PSP_CTRL_L) ? (UINT64_C(1) << RETRO_DEVICE_ID_JOYPAD_L) : 0;

      analog_state[i][RETRO_DEVICE_INDEX_ANALOG_LEFT] [RETRO_DEVICE_ID_ANALOG_X] = (int16_t)(STATE_ANALOGLX(state_tmp)-128) * 256;
      analog_state[i][RETRO_DEVICE_INDEX_ANALOG_LEFT] [RETRO_DEVICE_ID_ANALOG_Y] = (int16_t)(STATE_ANALOGLY(state_tmp)-128) * 256;
#if defined(SN_TARGET_PSP2) || defined(VITA)
      analog_state[i][RETRO_DEVICE_INDEX_ANALOG_RIGHT][RETRO_DEVICE_ID_ANALOG_X] = (int16_t)(STATE_ANALOGRX(state_tmp)-128) * 256;
      analog_state[i][RETRO_DEVICE_INDEX_ANALOG_RIGHT][RETRO_DEVICE_ID_ANALOG_Y] = (int16_t)(STATE_ANALOGRY(state_tmp)-128) * 256;
#endif

      for (j = 0; j < 2; j++)
         for (k = 0; k < 2; k++)
            if (analog_state[i][j][k] == -0x8000)
               analog_state[i][j][k] = -0x7fff;
   }

   BIT64_CLEAR(lifecycle_state, RARCH_MENU_TOGGLE);

#ifdef HAVE_KERNEL_PRX
   if (STATE_BUTTON(state_tmp) & PSP_CTRL_NOTE)
      BIT64_SET(lifecycle_state, RARCH_MENU_TOGGLE);
#endif
}
Example #10
0
int Ctrl_init(lua_State *L)
{
	sceCtrlSetSamplingCycle(0);
	sceCtrlSetSamplingMode(PSP_CTRL_MODE_ANALOG);
	
	UserdataRegister("Ctrl", Ctrl_methods, Ctrl_metamethods)

	return 1;
}
Example #11
0
Psp2Ui::Psp2Ui(int width, int height) :
	BaseUi() {
	
	starttick = sceKernelGetProcessTimeWide() / 1000;
	frame = 0;
	zoom_state = 0;
	in_use_shader = 0;
	touch_x_start = -1;
	trigger_state = false;
	set_shader = true;
	vita2d_init();
	vita2d_set_vblank_wait(0);
	shaders[0] = vita2d_create_shader((SceGxmProgram*) opaque_v, (SceGxmProgram*) texture_f);
	shaders[1] = vita2d_create_shader((SceGxmProgram*) sharp_bilinear_v, (SceGxmProgram*) sharp_bilinear_f);
	shaders[2] = vita2d_create_shader((SceGxmProgram*) lcd3x_v, (SceGxmProgram*) lcd3x_f);
	shaders[3] = vita2d_create_shader((SceGxmProgram*) xbr_2x_fast_v, (SceGxmProgram*) xbr_2x_fast_f);
	gpu_texture = vita2d_create_empty_texture_format(
												width, height,
												SCE_GXM_TEXTURE_FORMAT_A8B8G8R8);
	vita2d_texture_set_alloc_memblock_type(SCE_KERNEL_MEMBLOCK_TYPE_USER_RW);
	current_display_mode.width = width;
	current_display_mode.height = height;
	current_display_mode.bpp = 32;
	const DynamicFormat format(
		32,
		0x000000FF,
		0x0000FF00,
		0x00FF0000,
		0xFF000000,
		PF::Alpha);
	main_texture = vita2d_create_empty_texture_format(
												width, height,
												SCE_GXM_TEXTURE_FORMAT_A8B8G8R8);
	next_texture = vita2d_create_empty_texture_format(
												width, height,
												SCE_GXM_TEXTURE_FORMAT_A8B8G8R8);
	Bitmap::SetFormat(Bitmap::ChooseFormat(format));
	main_surface = Bitmap::Create(vita2d_texture_get_datap(main_texture),width, height, vita2d_texture_get_stride(main_texture), format);
	
	#ifdef SUPPORT_AUDIO
		audio_.reset(new Psp2Audio());
	#endif
	
	scePowerSetArmClockFrequency(444);
	scePowerSetBusClockFrequency(222);
	scePowerSetGpuClockFrequency(222);
	scePowerSetGpuXbarClockFrequency(222);
	
	sceCtrlSetSamplingMode(SCE_CTRL_MODE_ANALOG);
	sceTouchSetSamplingState(SCE_TOUCH_PORT_FRONT, SCE_TOUCH_SAMPLING_STATE_START);
	
	GPU_Mutex = sceKernelCreateSema("GPU Mutex", 0, 1, 1, NULL);
	GPU_Cleanup_Mutex = sceKernelCreateSema("GPU Cleanup Mutex", 0, 1, 1, NULL);
	GPU_Thread = sceKernelCreateThread("GPU Thread", &renderThread, 0x10000100, 0x10000, 0, 0, NULL);
	sceKernelStartThread(GPU_Thread, sizeof(GPU_Thread), &GPU_Thread);
	
}
Example #12
0
void MFInput_InitModulePlatformSpecific()
{
	MFCALLSTACK;

	MFZeroMemory(gKeyState, 256);

	sceCtrlSetSamplingCycle(0);
	sceCtrlSetSamplingMode(PSP_CTRL_MODE_ANALOG);
}
Example #13
0
static void* psp_input_initialize(void)
{
#ifdef PSP
   sceCtrlSetSamplingCycle(0);
#endif
   sceCtrlSetSamplingMode(DEFAULT_SAMPLING_MODE);

   return (void*)-1;
}
Example #14
0
static void psp_input_poll(void *data)
{
    int32_t ret;
    uint64_t *lifecycle_state = (uint64_t*)&g_extern.lifecycle_state;
    SceCtrlData state_tmp;
    psp_input_t *psp = (psp_input_t*)data;

#ifdef PSP
    sceCtrlSetSamplingCycle(0);
#endif
    sceCtrlSetSamplingMode(DEFAULT_SAMPLING_MODE);
    ret = CtrlPeekBufferPositive(0, &state_tmp, 1);
    (void)ret;

    psp->analog_state[0][0][0] = psp->analog_state[0][0][1] = psp->analog_state[0][1][0] = psp->analog_state[0][1][1] = 0;
    psp->pad_state = 0;
    psp->pad_state |= (STATE_BUTTON(state_tmp) & PSP_CTRL_LEFT) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_LEFT) : 0;
    psp->pad_state |= (STATE_BUTTON(state_tmp) & PSP_CTRL_DOWN) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_DOWN) : 0;
    psp->pad_state |= (STATE_BUTTON(state_tmp) & PSP_CTRL_RIGHT) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_RIGHT) : 0;
    psp->pad_state |= (STATE_BUTTON(state_tmp) & PSP_CTRL_UP) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_UP) : 0;
    psp->pad_state |= (STATE_BUTTON(state_tmp) & PSP_CTRL_START) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_START) : 0;
    psp->pad_state |= (STATE_BUTTON(state_tmp) & PSP_CTRL_SELECT) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_SELECT) : 0;
    psp->pad_state |= (STATE_BUTTON(state_tmp) & PSP_CTRL_TRIANGLE) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_X) : 0;
    psp->pad_state |= (STATE_BUTTON(state_tmp) & PSP_CTRL_SQUARE) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_Y) : 0;
    psp->pad_state |= (STATE_BUTTON(state_tmp) & PSP_CTRL_CROSS) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_B) : 0;
    psp->pad_state |= (STATE_BUTTON(state_tmp) & PSP_CTRL_CIRCLE) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_A) : 0;
    psp->pad_state |= (STATE_BUTTON(state_tmp) & PSP_CTRL_R) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_R) : 0;
    psp->pad_state |= (STATE_BUTTON(state_tmp) & PSP_CTRL_L) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_L) : 0;

    psp->analog_state[0][RETRO_DEVICE_INDEX_ANALOG_LEFT] [RETRO_DEVICE_ID_ANALOG_X] = (int16_t)(STATE_ANALOGLX(state_tmp)-128) * 256;
    psp->analog_state[0][RETRO_DEVICE_INDEX_ANALOG_LEFT] [RETRO_DEVICE_ID_ANALOG_Y] = (int16_t)(STATE_ANALOGLY(state_tmp)-128) * 256;
#ifdef SN_TARGET_PSP2
    psp->analog_state[0][RETRO_DEVICE_INDEX_ANALOG_RIGHT][RETRO_DEVICE_ID_ANALOG_X] = (int16_t)(STATE_ANALOGRX(state_tmp)-128) * 256;
    psp->analog_state[0][RETRO_DEVICE_INDEX_ANALOG_RIGHT][RETRO_DEVICE_ID_ANALOG_Y] = (int16_t)(STATE_ANALOGRY(state_tmp)-128) * 256;
#endif

    for (int i = 0; i < 2; i++)
        for (int j = 0; j < 2; j++)
            if (psp->analog_state[0][i][j] == -0x8000)
                psp->analog_state[0][i][j] = -0x7fff;

    *lifecycle_state &= ~((1ULL << RARCH_MENU_TOGGLE));

    if (
        (psp->pad_state & (1ULL << RETRO_DEVICE_ID_JOYPAD_L))
        && (psp->pad_state & (1ULL << RETRO_DEVICE_ID_JOYPAD_R))
        && (psp->pad_state & (1ULL << RETRO_DEVICE_ID_JOYPAD_SELECT))
        && (psp->pad_state & (1ULL << RETRO_DEVICE_ID_JOYPAD_START))
    )
        *lifecycle_state |= (1ULL << RARCH_MENU_TOGGLE);

    if (g_settings.input.autodetect_enable)
    {
        if (strcmp(g_settings.input.device_names[0], "PSP") != 0)
            psp_input_set_keybinds(NULL, DEVICE_PSP, 0, 0, (1ULL << KEYBINDS_ACTION_SET_DEFAULT_BINDS));
    }
}
Example #15
0
int joy_Init() {

    sceCtrlSetSamplingCycle(0);
    sceCtrlSetSamplingMode(PSP_CTRL_MODE_DIGITAL);

    memset(&sticks[0],0,sizeof(stick));

    joy_initd = true;
    return 1;
}
Example #16
0
/*
============
triInputInit
============
*/
triBool triInputInit (void)
{
	triLogPrint ("Initializing triInput\r\n");

	memset (&Input, 0, sizeof(triInput));

	sceCtrlSetSamplingCycle (0);

	sceCtrlSetSamplingMode (PSP_CTRL_MODE_ANALOG);

	return TRUE;
}
Example #17
0
	void Init()
	{
		sceCtrlSetSamplingCycle(0);
		sceCtrlSetSamplingMode(PSP_CTRL_MODE_ANALOG);
		
		memset(&sPad, 0, sizeof(sPad));
		memset(&sStatus, 0, sizeof(sStatus));
		memset(&sRepeat, 0, sizeof(sRepeat));
		
		sRepeat.startFrame = DOD_DEFAULT_START_FRAME;
		sRepeat.intervalFrame = DOD_DEFAULT_INTERVAL_FRAME;
	}
Example #18
0
Cursor::Cursor()
{
	sceCtrlSetSamplingCycle(0);
	sceCtrlSetSamplingMode(PSP_CTRL_MODE_ANALOG);
	
	cursor = new CursorInfo();
	cursor->X = 480/2;
	cursor->Y = 280/2;
	Core::Cfg->GetIntValue("cursorspeed", cursor->CursorSpeed);
	cursor->Display = Core::Gui->LoadPNG(Core::CfgTheme->GetPathValue("c_cursor").c_str());
	Core::Dbg->Log(Init, "Cursor Loaded...");
}
void GWInput_InitializeDevice( GW_RENDER_WINDOW* rw )
{
	sceCtrlSetSamplingCycle(0);
	sceCtrlSetSamplingMode(PSP_CTRL_MODE_ANALOG);

	memset(psp_btn_down, 0, sizeof(psp_btn_down));
	memset(psp_btn_state, 0, sizeof(psp_btn_state));

	for (int i=0; i<GW_PSPAXIS_COUNT; i++)
	{
		psp_axis[i] = 0.f;
	}
}
Example #20
0
/***
 * Initializes our keybinding to handle input later on.
 */
void setup_input()
{
	pad = (SceCtrlData*)malloc(sizeof(SceCtrlData));
	keymap = (uint32_t*)malloc(sizeof(uint32_t) * 12);

	sceCtrlSetSamplingMode(SCE_CTRL_MODE_ANALOG);

    if (!pad || !keymap)
    {
        printf("Unable to allocate memory for input data. Bailing.");
        sceKernelExitProcess(0);
    }
}
Example #21
0
int main()
{
    char rom_path[PATH_MAX];

    printf("\nRealBoy %s\n", "0.2.2");

    sceCtrlSetSamplingMode(SCE_CTRL_MODE_ANALOG);

    vita2d_init();
    vita2d_set_clear_color(RGBA8(0x40, 0x40, 0x40, 0xFF));

    while (1) {
        strcpy(current_dir, "ux0:");

        int ret = file_choose(
                      current_dir,
                      rom_path,
                      "Choose a GB/GB Color/Super GB ROM:",
                      supported_ext
                  );

        if (ret == -1)
            break;

        if ( (rom_file = fopen(rom_path, "r")) == NULL) {
            printf("\nError opening %s\n", rom_path);
            continue;
        }

        file_path = strndup(rom_path, 256);

        if (rom_file != NULL)	{
            init_conf();
            int ret_val; // value returned from emulation
            /* Start Virtual Machine */
            ret_val = start_vm();
            /* Error returned if file not valid */
            if (ret_val == -1) {
                printf("File %s not a gb binary\n\n", rom_path);
            }
        }

        free(file_path);
    }

    vita2d_fini();

    sceKernelExitProcess(0);
    return 0;
}
Example #22
0
void Cursor::Init()
{
	sceCtrlSetSamplingCycle(0);
	sceCtrlSetSamplingMode(PSP_CTRL_MODE_ANALOG);
	
	Config* cfg = new Config("ms0:/MbShell/config/main.cfg");
	
	cursor = new CursorInfo();
	cursor->X = 480/2;
	cursor->Y = 280/2;
	cfg->GetIntValue("cursorspeed", cursor->CursorSpeed);
	cursor->Display = Graphics::LoadPNG(Core::CfgTheme->GetPathValue("c_cursor").c_str());
	delete(cfg);
}
Example #23
0
VOID
PAL_InitInput(
    VOID
)
/*++
  Purpose:

    Initialize the input subsystem.

  Parameters:

    None.

  Return value:

    None.

--*/
{
    memset(&g_InputState, 0, sizeof(g_InputState));
    g_InputState.dir = kDirUnknown;
    g_InputState.prevdir = kDirUnknown;
#if SDL_MAJOR_VERSION == 1 && SDL_MINOR_VERSION <= 2
    SDL_SetEventFilter(PAL_EventFilter);
#else
    SDL_SetEventFilter(PAL_EventFilter, NULL);
#endif

    //
    // Setup input
    //
    sceCtrlSetSamplingCycle(0);
    sceCtrlSetSamplingMode(PSP_CTRL_MODE_ANALOG);
    pad.Buttons = 0;

    //
    // Start thread to read data
    //
    if((pad_sem =  SDL_CreateSemaphore(1)) == NULL)
    {
        TerminateOnError("Can't create input semaphore\n");
        return;
    }
    running = 1;
    if((bthread = SDL_CreateThread(PSP_JoystickUpdate, NULL)) == NULL)
    {
        TerminateOnError("Can't create input thread\n");
        return;
    }
}
Example #24
0
void glutMainLoop (void)
{
    if (glut_reshape_func)
        glut_reshape_func(width, height);

    sceCtrlSetSamplingCycle(0);
    sceCtrlSetSamplingMode(PSP_CTRL_MODE_ANALOG);

    do {
        static unsigned int oldbuttons = 0;
        SceCtrlData pad;
        int i;

        if (glut_joystick_func) {
            struct SceCtrlData pad;
            sceCtrlReadBufferPositive(&pad, 1);
            glut_joystick_func(pad.Buttons,
                               (pad.Lx * 2000L) / 256 - 1000,
                               (pad.Ly * 2000L) / 256 - 1000, 0);
        }

        sceCtrlReadBufferPositive(&pad, 1);

        for (i=0; i<sizeof(keycode)/sizeof(keycode[0]); i++) {
            if (pad.Buttons & (1 << i)) {
                if (KEY_REPEAT(keycode[i])) {
                    key(keycode[i], 1);
                } else {
                    if (!(oldbuttons & (1 << i)))
                        key(keycode[i], 1);
                }
            } else {
                if (oldbuttons & (1 << i))
                    key(keycode[i], 0);
            }
        }

        oldbuttons = pad.Buttons;

        if (glut_display_func && glut_redisplay_posted) {
            glut_redisplay_posted = 0;
            glut_display_func();
        }

        if (glut_idle_func)
            glut_idle_func();
    } while (1);
}
Example #25
0
ge_Keys* geCreateKeys(){
	sceCtrlSetSamplingMode(PSP_CTRL_MODE_ANALOG);
	ge_Keys* keys = (ge_Keys*)geMalloc(sizeof(ge_Keys));
	geKeysAssign(keys, GEK_CROSS, GEVK_ENTER);
	geKeysAssign(keys, GEK_CIRCLE, GEVK_BACK);
	geKeysAssign(keys, GEK_UP, GEVK_UP);
	geKeysAssign(keys, GEK_DOWN, GEVK_DOWN);
	geKeysAssign(keys, GEK_LEFT, GEVK_LEFT);
	geKeysAssign(keys, GEK_RIGHT, GEVK_RIGHT);
	geKeysAssign(keys, GEK_SQUARE, GEVK_ACTION1);
	geKeysAssign(keys, GEK_TRIANGLE, GEVK_ACTION2);
	geKeysAssign(keys, GEK_LTRIGGER, GEVK_ACTION3);
	geKeysAssign(keys, GEK_RTRIGGER, GEVK_ACTION4);
	geKeysAssign(keys, GEK_START, GEVK_ACTION5);
	geKeysAssign(keys, GEK_SELECT, GEVK_ACTION6);
	return keys;
}
Example #26
0
int main(int argc, char *argv[])
{
    int i, ret;

    pspDebugScreenInit();
    sceCtrlSetSamplingCycle(0);
    sceCtrlSetSamplingMode(PSP_CTRL_MODE_DIGITAL);

    printf("Save Encrypt Sample\n");
    printf("by Jim Paris and psp123\n\n");

    printf(" Will encrypt: %s\n", plaintext);
    printf("    Using key:");
    if(gamekey) {
        for (i = 0; i < 0x10; i++)
            printf(" %02x", gamekey[i]);
    } else {
        printf(" none");
    }
    printf("\n\n");
    printf("  Output file: %s\n", encrypted);
    printf("Update hashes: %s\n\n", paramsfo);
    printf("Press X to continue, or O to quit.\n\n");

    if (waitbutton(PSP_CTRL_CROSS | PSP_CTRL_CIRCLE) & PSP_CTRL_CIRCLE)
        goto out;

    printf("Working...\n\n");

    ret = encrypt_file(plaintext, encrypted, datafile, paramsfo, gamekey);
    if(ret < 0) {
        printf("Error: encrypt_file() returned %d\n\n", ret);
    } else {
        printf("Successfully wrote %d bytes to\n", ret);
        printf("  %s\n", encrypted);
        printf("and updated hashes in\n");
        printf("  %s\n\n", paramsfo);
    }

    printf("Press any button to quit\n");
    waitbutton(-1);

out:
    sceKernelExitGame();
    return 0;
}
Example #27
0
static void init(void)
{
	vita2d_init();
	vita2d_set_clear_color(RGBA8(0x40, 0x40, 0x40, 0xFF));

	sceCtrlSetSamplingMode(SCE_CTRL_MODE_ANALOG);

	fullscreen_scale_x = SCREEN_W / (float)GAMEBOY_WIDTH;
	fullscreen_scale_y = SCREEN_H / (float)GAMEBOY_HEIGHT;

	gb_texture = vita2d_create_empty_texture(GAMEBOY_WIDTH, GAMEBOY_HEIGHT);
	gb_texture_pixels = vita2d_texture_get_datap(gb_texture);

	set_scale(3);

	theGearboyCore = new GearboyCore();
	theGearboyCore->Init();
}
Example #28
0
int kstuffGetKCtrl( void )
{
  int btn;
  SceCtrlData pad;
  int k;

  k = pspSdkSetK1(0);

  sceCtrlSetSamplingCycle(0);
  sceCtrlSetSamplingMode(PSP_CTRL_MODE_DIGITAL);

  sceCtrlReadBufferPositive( &pad, 1 );
  btn = pad.Buttons;

  pspSdkSetK1(k);

  return btn;
}
Example #29
0
void JGE::Init()
{

#ifdef DEBUG_PRINT	
	mDebug = true;
#else
	mDebug = false;
#endif

	if (mDebug)
		pspDebugScreenInit();	// do this so that we can use pspDebugScreenPrintf
	
	strcpy(mDebuggingMsg, "");

	sceCtrlSetSamplingCycle(0);
	sceCtrlSetSamplingMode(PSP_CTRL_MODE_ANALOG);
	
	JRenderer::GetInstance();
	JFileSystem::GetInstance();
	JSoundSystem::GetInstance();

	mDone = false;
	mPaused = false;
	mCriticalAssert = false;
	mClicked = false;

	//InitSfx();

	//Create();
	
//	mCurrMS = 1.0f;
//	mFPSSlice = 0;

	//struct timeval tp;
	//gettimeofday(&tp, NULL);
	//mTimeBase = tp.tv_sec;

	//mLastTime = GetTime();

	
	mTickFrequency = sceRtcGetTickResolution();
	sceRtcGetCurrentTick(&mLastTime); 
}
Example #30
0
int main(void)
{
	SceCtrlData pad;
	pspDebugScreenInit();
	SetupCallbacks();

	/* Install our custom exception handler. If this was NULL then the default would be used */
	pspDebugInstallErrorHandler(MyExceptionHandler);
	sceCtrlSetSamplingCycle(0);
	sceCtrlSetSamplingMode(PSP_CTRL_MODE_DIGITAL);

	pspDebugScreenPrintf("Exception Sample\n\n");
	pspDebugScreenPrintf("You have two choices, press O for a bus error or X for a breakpoint\n\n");

	while(1)
	{
		sceCtrlReadBufferPositive(&pad, 1);
		if(pad.Buttons & PSP_CTRL_CIRCLE)
		{
			/* Cause a bus error */
			_sw(0, 0);
		}

		if(pad.Buttons & PSP_CTRL_CROSS)
		{
			/* Cause a break exception */
			asm(
				"break\r\n"
			  );
		}

		sceDisplayWaitVblankStart();
	}


	/* We will never end up here, hopefully */
	printf("End\n");

	sceKernelExitDeleteThread(0);

	return 0;
}