Browse Source

* libnds updated to ver.1.5.4

git-svn-id: trunk@19255 -
Legolas 14 years ago
parent
commit
02b0ef5379

+ 2 - 3
packages/libndsfpc/src/nds/arm7/sdmmc.inc

@@ -1,7 +1,6 @@
 {$ifdef NDS_INTERFACE}
 const
   SDMMC_BASE = $04004800;
-  DISPSTAT_CHK_VBLANK = (1 shl 0);
 
   REG_SDSTATUS0	  = $1c;
   REG_SDSTATUS1	  = $1e;
@@ -56,9 +55,9 @@ function sdmmc_cardinserted(): cint; cdecl; external;
 
 function sdmmc_sdcard_init(): cint; cdecl; external;
 procedure sdmmc_sdcard_readsector(sector_no: cuint32; _out: pointer); cdecl; external;
-procedure sdmmc_sdcard_readsectors(sector_no: cuint32; int numsectors: cint; _out: pointer); cdecl; external;
+procedure sdmmc_sdcard_readsectors(sector_no: cuint32; numsectors: cuint32; _out: pointer); cdecl; external;
 procedure sdmmc_sdcard_writesector(sector_no: cuint32; _in: pointer); cdecl; external;
-procedure sdmmc_sdcard_writesectors(sector_no: cuint32; int numsectors: cint; _in: pointer); cdecl; external;
+procedure sdmmc_sdcard_writesectors(sector_no: cuint32; numsectors: cuint32; _in: pointer); cdecl; external;
 
 var
   sdmmc_curdevice: cint; cvar; external;

+ 12 - 5
packages/libndsfpc/src/nds/arm9/videoGL.inc

@@ -184,6 +184,7 @@ const
 type
   GL_TEXTURE_TYPE_ENUM = cint32;
 const
+  GL_NOTEXTURE  : GL_TEXTURE_TYPE_ENUM = 0; 
 	GL_RGB32_A3   : GL_TEXTURE_TYPE_ENUM = 1;
 	GL_RGB4       : GL_TEXTURE_TYPE_ENUM = 2;
 	GL_RGB16      : GL_TEXTURE_TYPE_ENUM = 3;
@@ -193,7 +194,11 @@ const
 	GL_RGBA       : GL_TEXTURE_TYPE_ENUM = 7;
 	GL_RGB        : GL_TEXTURE_TYPE_ENUM = 8;
 
-
+type
+  GL_TEXTURE_PALETTE_PARAM_ENUM = cint32;
+const
+  GL_COLOR_TABLE_FORMAT_EXT: GL_TEXTURE_PALETTE_PARAM_ENUM	= 0;
+	GL_COLOR_TABLE_WIDTH_EXT : GL_TEXTURE_PALETTE_PARAM_ENUM	= 1;
 
 type
   DISP3DCNT_ENUM = cint32;
@@ -352,6 +357,7 @@ procedure glRotatef32i(angle: cint; x, y, z: cint32); cdecl; external;
 function glTexImage2D(target, empty1: cint; _type: GL_TEXTURE_TYPE_ENUM; sizeX, sizeY, empty2, param: cint; texture: pointer): cint; cdecl; external;
 
 procedure glColorTableEXT(target, empty1: cint; width: cuint16; empty2, empty3: cint; const table: pcuint16); cdecl; external;
+procedure glColorSubTableEXT(target, start, count, empty1, empty2: cint; const data: pcuint16); cdecl; external;
 procedure glAssignColorTable(target, name: cint); cdecl; external;
 
 //procedure glTexLoadPal(const pal: pcuint16; count: cuint16; addr: cuint32); cdecl; external;
@@ -359,6 +365,7 @@ procedure glAssignColorTable(target, name: cint); cdecl; external;
 
 procedure glTexParameter(target, param: cint); cdecl; external;
 function glGetTexParameter(): cuint32; cdecl; external;
+procedure glGetColorTableParameterEXT(target, pname: cint; params: pcint); cdecl; external;
 function glGetTexturePointer(name: cint): pointer; cdecl; external;
 procedure glBindTexture(target, name: cint); cdecl; external;
 //procedure glColorTable(format: cuint8; addr: cuint32); cdecl; external;
@@ -370,8 +377,8 @@ procedure glMaterialf(mode: GL_MATERIALS_ENUM; color: rgb); cdecl; external;
 procedure glInit_C(); cdecl; external;
 function glGetGlobals(): PGLHiddenGlobals; cdecl; external;
 
-function POLY_ALPHA(n: cint): cuint32; inline;
-function POLY_ID(n: cint): cuint32; inline;	
+function POLY_ALPHA(n: cuint32): cuint32; inline;
+function POLY_ID(n: cuint32): cuint32; inline;	
 procedure glBegin(mode: GL_GLBEGIN_ENUM); inline;
 procedure glEnd(); inline;
 procedure glClearDepth(depth: fixed12d3); inline;
@@ -737,12 +744,12 @@ end;
 //////////////////////////////////////////////////////////////////////////////////////////
 
 
-function POLY_ALPHA(n: cint): cuint32; inline;
+function POLY_ALPHA(n: cuint32): cuint32; inline;
 begin
   POLY_ALPHA := cuint32((n) shl 16);
 end;
 
-function POLY_ID(n: cint): cuint32; inline;	
+function POLY_ID(n: cuint32): cuint32; inline;	
 begin
   POLY_ID := cuint32((n) shl 24);
 end;

+ 17 - 1
packages/libndsfpc/src/nds/card.inc

@@ -23,7 +23,7 @@ const
   EEPROM_WREN = $06;
   EEPROM_RDID = $9f;
 
-// ROMCTRL register:
+// REG_ROMCTRL:
   CARD_ACTIVATE   = (1 shl 31);  // when writing, get the ball rolling
   CARD_WR         = (1 shl 30);
   CARD_nRESET     = (1 shl 29);  // value on the /reset pin (1 = high out, not a reset state, 0 = low out = in reset)
@@ -62,6 +62,16 @@ const
   CARD_CMD_DATA_CHIPID    = $B8;
 
 
+  // REG_AUXSPICNT
+  CARD_ENABLE     = (1 shl 15);
+  CARD_SPI_ENABLE = (1 shl 13);
+  CARD_SPI_BUSY   = (1 shl 7);
+  CARD_SPI_HOLD   = (1 shl 6);
+
+  CARD_SPICNTH_ENABLE = (1 shl 7);  // in byte 1, i.e. 0x8000
+  CARD_SPICNTH_IRQ    = (1 shl 6);  // in byte 1, i.e. 0x4000
+
+
 
 
 procedure cardWriteCommand(const command: pcuint8); cdecl; external;
@@ -74,6 +84,7 @@ procedure cardReadHeader(header: pcuint8); cdecl; external;
 function cardReadID(flags: cuint32): cuint32; cdecl; external;
 procedure cardReset(); cdecl; external;
 
+procedure eepromWaitBusy(); inline;
 
 procedure cardReadEeprom(address: cuint32;  data: pcuint8;  length: cuint32;  addrtype: cuint32); cdecl; external; 
 procedure cardWriteEeprom(address: cuint32;  data: pcuint8;  length: cuint32;  addrtype: cuint32); cdecl; external; 
@@ -107,4 +118,9 @@ begin
   result := (n and $1FFF);
 end;
 
+procedure eepromWaitBusy(); inline;
+begin
+  while (REG_AUXSPICNT^ and CARD_SPI_BUSY) <> 0 do;
+end;
+
 {$endif NDS_IMPLEMENTATION}

+ 14 - 10
packages/libndsfpc/src/nds/fifocommon.inc

@@ -9,9 +9,9 @@ const
   FIFO_SYSTEM : FifoChannels = 2;
   FIFO_MAXMOD : FifoChannels = 3;
   FIFO_DSWIFI : FifoChannels = 4;
-  FIFO_RSVD_01: FifoChannels = 5;
-  FIFO_RSVD_02: FifoChannels = 6;
-  FIFO_RSVD_03: FifoChannels = 7;
+  FIFO_SDMMC  : FifoChannels = 5;
+  FIFO_RSVD_01: FifoChannels = 6;
+  FIFO_RSVD_02: FifoChannels = 7;
   FIFO_USER_01: FifoChannels = 8;
   FIFO_USER_02: FifoChannels = 9;
   FIFO_USER_03: FifoChannels = 10;	    
@@ -44,10 +44,14 @@ const
   SYS_REQ_KEYS       : FifoSystemCommands = 1;
   SYS_REQ_TIME       : FifoSystemCommands = 2;
   SYS_SET_TIME       : FifoSystemCommands = 3;
-  SYS_HAVE_SD        : FifoSystemCommands = 4;
-	SYS_SD_START       : FifoSystemCommands = 5;
-	SYS_SD_IS_INSERTED : FifoSystemCommands = 6;
-	SYS_SD_STOP        : FifoSystemCommands = 7;
+  
+type
+ FifoSdmmcCommands = integer;
+const
+  SDMMC_HAVE_SD        : FifoSystemCommands = 0;
+	SDMMC_SD_START       : FifoSystemCommands = 1;
+	SDMMC_SD_IS_INSERTED : FifoSystemCommands = 2;
+	SDMMC_SD_STOP        : FifoSystemCommands = 3;
 
 type
   FifoPMCommands = integer;
@@ -72,9 +76,9 @@ const
 type
   PM_LedBlinkMode = integer;
 const
-  PM_LED_ON: PM_LedBlinkMode = (0 shl 4);
-  PM_LED_SLEEP: PM_LedBlinkMode = (1 shl 4);
-  PM_LED_BLINK: PM_LedBlinkMode = (3 shl 4);
+  PM_LED_ON   : PM_LedBlinkMode = 0;
+  PM_LED_SLEEP: PM_LedBlinkMode = 1;
+  PM_LED_BLINK: PM_LedBlinkMode = 3;
 
 //var
 //  fifo_buffer: array [0..FIFO_BUFFER_ENTRIES*2-1] of cuint32; cvar; external;

+ 8 - 8
packages/libndsfpc/src/nds/fifomessages.inc

@@ -3,14 +3,14 @@
 type
   FifoMessageType = integer;
 const
-  SOUND_PLAY_MESSAGE      : FifoMessageType = $1234;
-  SOUND_PSG_MESSAGE       : FifoMessageType = $1235;
-  SOUND_NOISE_MESSAGE     : FifoMessageType = $1236;
-  MIC_RECORD_MESSAGE      : FifoMessageType = $1237;
-  MIC_BUFFER_FULL_MESSAGE : FifoMessageType = $1238;
-  SYS_INPUT_MESSAGE       : FifoMessageType = $1239;
-	SYS_SD_READ_SECTORS     : FifoMessageType = $1240;
-	SYS_SD_WRITE_SECTORS    : FifoMessageType = $1241;
+  SOUND_PLAY_MESSAGE        : FifoMessageType = $1234;
+  SOUND_PSG_MESSAGE         : FifoMessageType = $1235;
+  SOUND_NOISE_MESSAGE       : FifoMessageType = $1236;
+  MIC_RECORD_MESSAGE        : FifoMessageType = $1237;
+  MIC_BUFFER_FULL_MESSAGE   : FifoMessageType = $1238;
+  SYS_INPUT_MESSAGE         : FifoMessageType = $1239;
+	SDMMC_SD_READ_SECTORS     : FifoMessageType = $123A;
+	SDMMC_SD_WRITE_SECTORS    : FifoMessageType = $123B;
 
 type
 {$PACKRECORDS 4} 

+ 2 - 1
packages/libndsfpc/src/nds/interrupts.inc

@@ -31,7 +31,8 @@ const
 type
   IRQ_MASKSAUX = cuint;
 const
-  IRQ_I2C: IRQ_MASKSAUX = (1 shl 6); (* Power Button interrupt mask (DSi ARM7) *)
+  IRQ_I2C   : IRQ_MASKSAUX = (1 shl 6); (* Power Button interrupt mask (DSi ARM7) *)
+ 	IRQ_SDMMC : IRQ_MASKSAUX = (1 shl 8); (* Sdmmc interrupt mask (DSi ARM7) *)
 
 function IRQ_TIMER(n: cint): cint; inline;
 

+ 2 - 0
packages/libndsfpc/src/nds/ndsinclude.inc

@@ -43,6 +43,7 @@
   {$include arm9/guitarGrip.inc}
   {$include arm9/paddle.inc}
   {$include arm9/piano.inc}
+  {$include arm9/dldi.inc}
 {$endif ARM9}
 
 {$ifdef ARM7}
@@ -51,5 +52,6 @@
   {$include arm7/input.inc}
   {$include arm7/i2c.inc}
   {$include arm7/serial.inc}
+  {$include arm7/sdmmc.inc}
   {$include arm7/touch.inc}
 {$endif ARM7}

+ 10 - 2
packages/libndsfpc/src/nds/system.inc

@@ -42,12 +42,12 @@ const
 //	POWER_ALL      : PM_Bits = PM_ARM9_DIRECT or POWER_ALL_2D or POWER_3D_CORE or POWER_MATRIX;
 	POWER_ALL      : PM_Bits = (1 shl 16) or (1 shl 0) or (1 shl 1) or (1 shl 9) or (1 shl 3) or (1 shl 2);
 
-procedure sleep(); cdecl; external;
+procedure SystemSleep(); cdecl; external;
+procedure ledBlink(bm: cint); cdecl; external;
 
 {$ifdef ARM9}
 procedure powerOn(bits: cint); cdecl; external;
 procedure powerOff(bits: cint); cdecl; external;
-procedure ledBlink(bm: cint); cdecl; external;
 
 procedure systemMsgHandler(bytes: cint; user_data: pointer); cdecl; external;
 procedure powerValueHandler(value: cuint32; data: pointer); cdecl; external;
@@ -77,6 +77,14 @@ type
 var
   SystemVectors: sysVectors; cvar; external;
 
+// Helper functions for heap size
+//! returns current start of heap space
+function getHeapStart(): pcuint8; cdecl; external;
+//! returns current end of heap space
+function getHeapEnd(): pcuint8; cdecl; external;
+//! returns current heap limit
+function getHeapLimit(): pcuint8; cdecl; external;
+
 {$endif ARM9}