Portar homebrew de DS a PSP.

Moderadores: Kravenbcn, largeroliker, fidelcastro, cerealkiller, pspCaracas, dark_sasuke, m0skit0, LnD, ka69, zacky06

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: Portar homebrew de DS a PSP.

Mensaje por m0skit0 »

¿Y cómo es eso de DS Game Maker?
Imagen

Avatar de Usuario
miguelamacias
Experto
Experto
Mensajes: 960
Registrado: 03 Sep 2009, 14:16
Ubicación: Coria del Río, Sevilla
Contactar:

Re: Portar homebrew de DS a PSP.

Mensaje por miguelamacias »

m0skit0 escribió:¿Y cómo es eso de DS Game Maker?


Un programa para hacer juegos sin saber programar. Está curioso para hacer juegos simples, que divierten más al crearlos que al jugarlos. En PC existe algo parecido llamado Game Maker.

Saludos :oki:

Avatar de Usuario
Ryone
Mascota del foro
Mascota del foro
Mensajes: 2243
Registrado: 10 Jul 2010, 16:30
PSN ID: RazorPlay3
Steam ID: Ryonetheonly
Twitter: Ryoneunleashed
Ubicación: Granada, España.
Contactar:

Re: Portar homebrew de DS a PSP.

Mensaje por Ryone »

miguelamacias escribió:
m0skit0 escribió:¿Y cómo es eso de DS Game Maker?


Un programa para hacer juegos sin saber programar. Está curioso para hacer juegos simples, que divierten más al crearlos que al jugarlos. En PC existe algo parecido llamado Game Maker.

Saludos :oki:


Efectivamente, es un programa para hacer los juegos sin saber mucho, lo justo. Es muy sencillo, y desde la página oficial (Google -> DS Game Maker) puedes descargar una versión demo que sólo te permite hacer tres Rooms, que son como espacios donde programas. Esta tarde he conseguido hacer que cuando el Sprite este en X cambie a otro escenario, voy avanzando :lol:

Avatar de Usuario
miguelamacias
Experto
Experto
Mensajes: 960
Registrado: 03 Sep 2009, 14:16
Ubicación: Coria del Río, Sevilla
Contactar:

Re: Portar homebrew de DS a PSP.

Mensaje por miguelamacias »

Sí, es muy divertido, yo he puesto uno de muestra en offtopic, pero para PC. Pero vamos, no te creas que el homebrew del siglo. :lol:

Sería interesante poder portarlo de DS a PSP, aunque lo veo difícil.

Saludos :oki:

EDITO:

Cuándo compilas un juego te sale de opción de ver el código fuente. Quizás a partir de ahí se pueda hacer algo, lo estoy investigando, aunque no sé mucho de programación.

Saludos :oki:

EDITO:

Lo he estado mirando y el código no se parece al de la PSP, y además usa funciones como el stylus, que no tiene equivalente en PSP. Aquí dejo un código que muestra un teclado en pantalla y permite usarlo.

Spoiler:

Código: Seleccionar todo

#include <PA9.h>
#include "efs_lib.h"
#include "ky_geturl.h"
#include "all_gfx.h"

#include "transition.h"
#include "DSGMlib.h"

s16 score = 0;
s16 health = 100;
s16 lives = 3;
int CurrentField;
int Room_1();
int main(void) {
  swiWaitForVBlank();
  PA_InitFifo();
  PA_Init2D();
  DSGM_Custom_Init();
  EFS_Init(EFS_AND_FAT | EFS_DEFAULT_DEVICE, NULL);
  TopView.X = 0; TopView.Y = 0;
  BottomView.X = 0; BottomView.Y = 0;
  CurrentField = 0;
  PA_LoadBackground(1, 2, &DSGMReg1);
  PA_LoadBackground(0, 2, &DSGMReg2);
  while(1) {
    s32 i = 0;
    for(i = 0; i <= 1; i++) {
      PA_EasyBgScrollX(0, 2, i * 256);
      s32 j = 0;
      for(j = 0; j <= 30; j++) {
        if (Stylus.Newpress || Pad.Newpress.Anykey) {
          DSGMFader(false);
          Room_1();
        }
        PA_WaitForVBL();
      }
    }
  }
  return 0;
}

int Room_1(void) {
  PA_ResetSpriteSys();
  PA_ResetBgSys();
  TopView.X = 0; TopView.Y = 0;
  BottomView.X = 0; BottomView.Y = 0;
  CurrentRoom.Width = 256; CurrentRoom.Height = 192;
  for (DSGMThing = 0; DSGMThing <= 127; DSGMThing++) {
    TopSprites[DSGMThing].Used = false; BottomSprites[DSGMThing].Used = false;
  }
  PA_SetBrightness(1, 0);
  PA_SetBrightness(0, 0);
  bool DSGMShouldFade = false;
  if(DSGMShouldFade) DSGMShouldFade = true;
  PA_LoadBackground(1, 2, &TopScreenBackground);
  PA_LoadBackground(0, 2, &DecorativeBackground);
  PA_LoadSpritePal(1, 0, (void*)DSGMPal0_Pal); PA_LoadSpritePal(0, 0, (void*)DSGMPal0_Pal);
  PA_LoadDefaultText(1, 0);
  PA_LoadDefaultText(0, 0);
  PA_LoadText(1, 0, &DefaultFont);
  PA_LoadText(0, 0, &DefaultFont);
  BottomSprites[0].X = 224; BottomSprites[0].Y = 160; BottomSprites[0].Used = true;
  PA_CreateSprite(0, 0, (void*)Sprite_2_Sprite, OBJ_SIZE_32X32, 1, 0, 256, 192);
  for (DSGMThing = 0; DSGMThing <= 127; DSGMThing++) {
    PA_SetSpritePrio(1, DSGMThing, 1);
    PA_SetSpritePrio(0, DSGMThing, 1);
    TopESNumbers[DSGMThing] = 255;
    BottomESNumbers[DSGMThing] = 255;
  }
  DSGMSpritesVBL();
  PA_UpdateStylus();
  PA_UpdatePad();
  bool hasdone = false;
  char Field1letter = 0;
  u16 Field1nletter = 0;
  char Field1[500];
  char Field2letter = 0;
  u16 Field2nletter = 0;
  char Field2[500];
  char Field3letter = 0;
  u16 Field3nletter = 0;
  char Field3[500];
  while(1) {
    DSGMDPadReset();
    if (!hasdone) {
    PA_InitKeyboard(1);
    PA_KeyboardIn(24, 24);
      hasdone = true;
    }
    if (CurrentField == 0) {
    Field1letter = PA_CheckKeyboard();
    if (Field1letter > 31) {
      Field1[Field1nletter] = Field1letter;
      Field1nletter++;
    } else if ((Field1letter == PA_BACKSPACE) && Field1nletter) {
      Field1nletter--;
      Field1[Field1nletter] = ' ';
    } else if (Field1letter == '\n'){
      Field1[Field1nletter] = Field1letter;
      Field1nletter++;
    }
    }
    if (CurrentField == 1) {
    Field2letter = PA_CheckKeyboard();
    if (Field2letter > 31) {
      Field2[Field2nletter] = Field2letter;
      Field2nletter++;
    } else if ((Field2letter == PA_BACKSPACE) && Field2nletter) {
      Field2nletter--;
      Field2[Field2nletter] = ' ';
    } else if (Field2letter == '\n'){
      Field2[Field2nletter] = Field2letter;
      Field2nletter++;
    }
    }
    if (CurrentField == 2) {
    Field3letter = PA_CheckKeyboard();
    if (Field3letter > 31) {
      Field3[Field3nletter] = Field3letter;
      Field3nletter++;
    } else if ((Field3letter == PA_BACKSPACE) && Field3nletter) {
      Field3nletter--;
      Field3[Field3nletter] = ' ';
    } else if (Field3letter == '\n'){
      Field3[Field3nletter] = Field3letter;
      Field3nletter++;
    }
    }
    PA_ScrollKeyboardXY(24,24);
    if (Stylus.Newpress) {
    if (PA_SpriteTouched(0)) {
    if (CurrentField < 2) {
    CurrentField = CurrentField + 1;
    }
    }
    }
    PA_OutputText(1, 1, 1, "%s", Field1);
    PA_OutputText(1, 1, 3, "%s", Field2);
    PA_OutputText(1, 1, 5, "%s", Field3);
    PA_SetTextTileCol(0, TEXT_BLACK);
    PA_OutputSimpleText(0, 1, 21, "Touch the Palm tree");
    PA_OutputSimpleText(0, 1, 22, "To move to next field");
    DSGMSpritesVBL();
    GameData.DSGMFrameCounter += 1;
    if (GameData.DSGMFrameCounter == 255) GameData.DSGMFrameCounter = 0;
    PA_WaitForVBL();
    for (DSGMThing = 1; DSGMThing <= 3; DSGMThing++) {
      PA_EasyBgScrollXY(1, DSGMThing, TopView.X, TopView.Y);
      PA_EasyBgScrollXY(0, DSGMThing, BottomView.X, BottomView.Y);
    }
  }
  return 1;
}


Responder