Para hacer un tute de C/C++ lo primero es explicar como se usa el C/C++ para luego pasar a cosas mas "complejas" como es la PSP.
Aparte de eso este codigo tiene partes redundantes, y alguna incoherencia (por ejemplo, este comentario "// Esta función es para que funcionen las teclas...." , la psp no usa teclas usa botones).
Este codigo es repetitivo:
if (pad.Buttons != 0){ // AQUI, no hace falta poner esto ya que luego lo vuelves a chequear)
if (pad.Buttons & PSP_CTRL_CROSS) -> AQUI lo vuelves a chequear
Aparte de eso, te faltaria ponerle un bucle que analize los botones en todo momento porque el codigo este arrancaria y de inmediato acabaria, si pulsas rapido la X igual te crea la carpeta e igual muestra el texto, pero saldria tan rapido que ni lo verias.
!Ah! Y no es usar un delay para el bucle de los botones, si haces eso suspendes temporalmente el hilo entero, seria con un while(1)...lo que sea, y despues una espera de poco tiempo para no petar la cpu
Un saludo