* libnds updated to ver.1.5.4

git-svn-id: trunk@19255 -
This commit is contained in:
Legolas 2011-09-27 18:54:32 +00:00
parent ce01b15c49
commit 02b0ef5379
8 changed files with 67 additions and 30 deletions

View File

@ -1,7 +1,6 @@
{$ifdef NDS_INTERFACE} {$ifdef NDS_INTERFACE}
const const
SDMMC_BASE = $04004800; SDMMC_BASE = $04004800;
DISPSTAT_CHK_VBLANK = (1 shl 0);
REG_SDSTATUS0 = $1c; REG_SDSTATUS0 = $1c;
REG_SDSTATUS1 = $1e; REG_SDSTATUS1 = $1e;
@ -56,9 +55,9 @@ function sdmmc_cardinserted(): cint; cdecl; external;
function sdmmc_sdcard_init(): cint; cdecl; external; function sdmmc_sdcard_init(): cint; cdecl; external;
procedure sdmmc_sdcard_readsector(sector_no: cuint32; _out: pointer); 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_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 var
sdmmc_curdevice: cint; cvar; external; sdmmc_curdevice: cint; cvar; external;

View File

@ -184,6 +184,7 @@ const
type type
GL_TEXTURE_TYPE_ENUM = cint32; GL_TEXTURE_TYPE_ENUM = cint32;
const const
GL_NOTEXTURE : GL_TEXTURE_TYPE_ENUM = 0;
GL_RGB32_A3 : GL_TEXTURE_TYPE_ENUM = 1; GL_RGB32_A3 : GL_TEXTURE_TYPE_ENUM = 1;
GL_RGB4 : GL_TEXTURE_TYPE_ENUM = 2; GL_RGB4 : GL_TEXTURE_TYPE_ENUM = 2;
GL_RGB16 : GL_TEXTURE_TYPE_ENUM = 3; GL_RGB16 : GL_TEXTURE_TYPE_ENUM = 3;
@ -193,7 +194,11 @@ const
GL_RGBA : GL_TEXTURE_TYPE_ENUM = 7; GL_RGBA : GL_TEXTURE_TYPE_ENUM = 7;
GL_RGB : GL_TEXTURE_TYPE_ENUM = 8; 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 type
DISP3DCNT_ENUM = cint32; 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; 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 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 glAssignColorTable(target, name: cint); cdecl; external;
//procedure glTexLoadPal(const pal: pcuint16; count: cuint16; addr: cuint32); 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; procedure glTexParameter(target, param: cint); cdecl; external;
function glGetTexParameter(): cuint32; cdecl; external; function glGetTexParameter(): cuint32; cdecl; external;
procedure glGetColorTableParameterEXT(target, pname: cint; params: pcint); cdecl; external;
function glGetTexturePointer(name: cint): pointer; cdecl; external; function glGetTexturePointer(name: cint): pointer; cdecl; external;
procedure glBindTexture(target, name: cint); cdecl; external; procedure glBindTexture(target, name: cint); cdecl; external;
//procedure glColorTable(format: cuint8; addr: cuint32); 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; procedure glInit_C(); cdecl; external;
function glGetGlobals(): PGLHiddenGlobals; cdecl; external; function glGetGlobals(): PGLHiddenGlobals; cdecl; external;
function POLY_ALPHA(n: cint): cuint32; inline; function POLY_ALPHA(n: cuint32): cuint32; inline;
function POLY_ID(n: cint): cuint32; inline; function POLY_ID(n: cuint32): cuint32; inline;
procedure glBegin(mode: GL_GLBEGIN_ENUM); inline; procedure glBegin(mode: GL_GLBEGIN_ENUM); inline;
procedure glEnd(); inline; procedure glEnd(); inline;
procedure glClearDepth(depth: fixed12d3); 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 begin
POLY_ALPHA := cuint32((n) shl 16); POLY_ALPHA := cuint32((n) shl 16);
end; end;
function POLY_ID(n: cint): cuint32; inline; function POLY_ID(n: cuint32): cuint32; inline;
begin begin
POLY_ID := cuint32((n) shl 24); POLY_ID := cuint32((n) shl 24);
end; end;

View File

@ -23,7 +23,7 @@ const
EEPROM_WREN = $06; EEPROM_WREN = $06;
EEPROM_RDID = $9f; EEPROM_RDID = $9f;
// ROMCTRL register: // REG_ROMCTRL:
CARD_ACTIVATE = (1 shl 31); // when writing, get the ball rolling CARD_ACTIVATE = (1 shl 31); // when writing, get the ball rolling
CARD_WR = (1 shl 30); 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) 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; 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; procedure cardWriteCommand(const command: pcuint8); cdecl; external;
@ -74,6 +84,7 @@ procedure cardReadHeader(header: pcuint8); cdecl; external;
function cardReadID(flags: cuint32): cuint32; cdecl; external; function cardReadID(flags: cuint32): cuint32; cdecl; external;
procedure cardReset(); cdecl; external; procedure cardReset(); cdecl; external;
procedure eepromWaitBusy(); inline;
procedure cardReadEeprom(address: cuint32; data: pcuint8; length: cuint32; addrtype: cuint32); cdecl; external; procedure cardReadEeprom(address: cuint32; data: pcuint8; length: cuint32; addrtype: cuint32); cdecl; external;
procedure cardWriteEeprom(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); result := (n and $1FFF);
end; end;
procedure eepromWaitBusy(); inline;
begin
while (REG_AUXSPICNT^ and CARD_SPI_BUSY) <> 0 do;
end;
{$endif NDS_IMPLEMENTATION} {$endif NDS_IMPLEMENTATION}

View File

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

View File

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

View File

@ -31,7 +31,8 @@ const
type type
IRQ_MASKSAUX = cuint; IRQ_MASKSAUX = cuint;
const 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; function IRQ_TIMER(n: cint): cint; inline;

View File

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

View File

@ -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 = 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); 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} {$ifdef ARM9}
procedure powerOn(bits: cint); cdecl; external; procedure powerOn(bits: cint); cdecl; external;
procedure powerOff(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 systemMsgHandler(bytes: cint; user_data: pointer); cdecl; external;
procedure powerValueHandler(value: cuint32; data: pointer); cdecl; external; procedure powerValueHandler(value: cuint32; data: pointer); cdecl; external;
@ -77,6 +77,14 @@ type
var var
SystemVectors: sysVectors; cvar; external; 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} {$endif ARM9}