Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: Stilgar - Settembre 06, 2012, 03:55:57 pm

Titolo: Nintendo DS e backGround ...
Inserito da: Stilgar - Settembre 06, 2012, 03:55:57 pm
Ci sto diventando scemo ... ma non capisco ...
Vediamo se qualche altra anima pia ci capisce più di me ...
Codice: [Seleziona]
program hello_world;

{$DEFINE arm9}
{$mode objfpc}

uses
  ctypes,
  nds9,
  Classes,
  colors;

var
  frame: integer;
  touchXY: touchPosition;


  procedure tick();
  begin
    Inc(frame);
  end;

var
  video_buffer_main: PWORD;
  video_buffer_sub: PWORD;
  x, y: word;
begin

  irqSet(IRQ_VBLANK, @tick);
  irqEnable(IRQ_VBLANK);
  powerOn(POWER_ALL_2D);

  video_buffer_main := PWORD(BG_BMP_RAM(0));
  video_buffer_sub := PWORD(BG_BMP_RAM_SUB(0));

  videoSetMode(MODE_5_2D or DISPLAY_BG3_ACTIVE);
  videoSetModeSub(MODE_5_2D or DISPLAY_BG3_ACTIVE);

  vramSetBankA(VRAM_A_MAIN_BG);
  vramSetBankC(VRAM_C_SUB_BG);

  bgInit(3, BgType_Bmp16, BgSize_B16_256x256, 0, 0);
  bgInitSub(3, BgType_Bmp16, BgSize_B16_256x256, 0, 0);

  for x := 0 to SCREEN_WIDTH - 1 do
    for y := 0 to SCREEN_HEIGHT - 1 do
    begin
      video_buffer_main[x + y * SCREEN_WIDTH] := clBackground;
      video_buffer_sub[x + y * SCREEN_WIDTH] := clBackground;
    end;

  while True do
  begin
    swiWaitForVBlank();
  end;

end.     

la unit contiene la definizione dei colori in termini di WORD e non di TColor ... ma i nomi sono gli stessi e hanno la stessa rappresentazione RGB per il tema di default di Windows (sfondo azzurro, finestre grighie .... per intenderci).
Mi aspettavo di avere il "desktop" colorato del colore clBackground. Ma sembra che il mio codice e l'emulatore per NDS non ci intendiamo gran chè.
Mi cresha la rom ... e non capisco il motivo :(
Titolo: Re:Nintendo DS e backGround ...
Inserito da: Stilgar - Settembre 06, 2012, 10:28:49 pm
Allora, sono risalito al problema ...
E' l'istruzione che utilizzo per lanciare il programmino nds da Lazarus ... lanciando dall'emulatore la rom, parte senza scazzi aggiuntivi ...???
Legolas, sicuro che il tuo howto possa essere utilizzato con le ultime versioni?
Parametri di lancio :
comando
D:\devkitPro\emulators\DeSmuME.exe
parametri
$ProjPath()\$NameOnly($ProjFile()).nds

PS:
DeSmuME 0.9.8 dev+ x86
DevKitPro ultimo con gcc 4.7.1
Titolo: Re:Nintendo DS e backGround ...
Inserito da: Stilgar - Settembre 06, 2012, 11:06:27 pm
Risolto con l'uso di $Prompt(...)

$ProjPath()\..\bin\$(TargetCPU)-$(TargetOS)\$NameOnly($ProjFile()).nds