quinta-feira, dezembro 07, 2006

Acessando o hardware

Para pausar o programa quando é fechado o ds, basta colocar PA_CheckLid(); antes do PA_WaitForVBL();

Pode-se ter acesso também ao acendimento das lâmpadas das telas. Um programa feito para uma só tela pode apagar a outra e poupar energia.

Tem uma série de definições, que são as variáveis do hardware: data, hora, aniversário do dono, nome do dono, etc.

Segue um programinha que apresenta uma mensagem para quem aniversaria e também para quem não aniversaria, piscando as telas, pausando quando o ds é fechado.

// Includes
#include // Include for PA_Lib

// Function: main()
int main(int argc, char ** argv)
{
  s16 contador=0;

  PA_Init(); // Initializes PA_Lib
  PA_InitVBL(); // Initializes a standard VBL

  PA_InitText(0,0);

  PA_OutputSimpleText(0,1,1,"Parabens!!!");
  PA_OutputText(0,1,3,"%s",PA_UserInfo.Name);
  if (PA_RTC.Month==PA_UserInfo.BdayMonth
        &&PA_RTC.Day==PA_UserInfo.BdayDay) {
    PA_OutputSimpleText(0,1,5,"Hoje voce completa mais um ano");
  } else {
    PA_OutputSimpleText(0,1,5,"Voce nao envelheceu um ano hoje");
  }
  PA_SetScreenLight(0, 1);
  PA_SetScreenLight(1, 1);

  // Infinite loop to keep the program running
  while (1)
  {
    if (contador==7) PA_SetScreenLight(1, 0);
    else if (contador==15) PA_SetScreenLight(1, 1);
    else if (contador==21) PA_SetScreenLight(0, 0);
    else if (contador>=30) {
      PA_SetScreenLight(0, 1);
      contador=0;
    }
    contador++;
    PA_CheckLid(); //para verificar se foi fechado o ds e pausar
    PA_WaitForVBL();
  }

  return 0;
} // End of main()

4 comentários:

Leonardo Zimbres disse...

Não vejo a hora de comprar meu cartão de memória com aquele cara do orkut, o "Pings", para testas programas e interfaces novas.

Guilherme - Homebrew Maker disse...

Bah, sem o supercard eu não tinha nem começado. Juntando o Dualis e o NO$GBA eu até consigo rodar 80% dos progs que fiz até agora, mas quando entra som, o negócio não funciona direito, fica muito lento.

Leonardo Zimbres disse...

eu vou ver se pego aquele que não suporta jogos de gameboy advance. Será que vai ser algum empecilho para os homebrews?

Guilherme - Homebrew Maker disse...

eu nunca usei o supercard rumble, mas a princípio qualquer programa de ds que rodar no supercard normal ele deve rodar também.