changeset 2750:e3affc66d963

Fixes to the NDS sprite2 test. Illustrates partially working texture-as-sprite functionality.
author Darren Alton <dalton@stevens.edu>
date Sat, 06 Sep 2008 04:31:34 +0000
parents 1c5f440a60fe
children 3411fb673d4b
files src/haptic/nds/SDL_syshaptic.c src/joystick/nds/SDL_sysjoystick.c src/video/nds/SDL_ndsevents.c test/nds-test-progs/sprite2/icon.bmp test/nds-test-progs/sprite2/source/testsprite2.c
diffstat 5 files changed, 95 insertions(+), 159 deletions(-) [+]
line wrap: on
line diff
--- a/src/haptic/nds/SDL_syshaptic.c	Sat Sep 06 00:10:16 2008 +0000
+++ b/src/haptic/nds/SDL_syshaptic.c	Sat Sep 06 04:31:34 2008 +0000
@@ -43,36 +43,35 @@
 } NDS_HapticData;
 
 
-
-void NDS_EZF_OpenNorWrite()
-{
-    GBA_BUS[0x0FF0000] = 0xD200;
-    GBA_BUS[0x0000000] = 0x1500;
-    GBA_BUS[0x0010000] = 0xD200;
-    GBA_BUS[0x0020000] = 0x1500;
-    GBA_BUS[0x0E20000] = 0x1500;
-    GBA_BUS[0x0FE0000] = 0x1500;
-}
-
-
-void NDS_EZF_CloseNorWrite()
-{
-    GBA_BUS[0x0FF0000] = 0xD200;
-    GBA_BUS[0x0000000] = 0x1500;
-    GBA_BUS[0x0010000] = 0xD200;
-    GBA_BUS[0x0020000] = 0x1500;
-    GBA_BUS[0x0E20000] = 0xD200;
-    GBA_BUS[0x0FE0000] = 0x1500;
-}
+
void
+NDS_EZF_OpenNorWrite() 
+{
+    
GBA_BUS[0x0FF0000] = 0xD200;
+    
GBA_BUS[0x0000000] = 0x1500;
+    
GBA_BUS[0x0010000] = 0xD200;
+    
GBA_BUS[0x0020000] = 0x1500;
+    
GBA_BUS[0x0E20000] = 0x1500;
+    
GBA_BUS[0x0FE0000] = 0x1500;
+
} 


void
 
-void NDS_EZF_ChipReset()
-{
-    GBA_BUS[0x0000] = 0x00F0 ;
-    GBA_BUS[0x1000] = 0x00F0 ;
-}
-uint32 NDS_EZF_IsPresent()
-{
-    vuint16 id1,id2;
+NDS_EZF_CloseNorWrite() 
+{
+    
GBA_BUS[0x0FF0000] = 0xD200;
+    
GBA_BUS[0x0000000] = 0x1500;
+    
GBA_BUS[0x0010000] = 0xD200;
+    
GBA_BUS[0x0020000] = 0x1500;
+    
GBA_BUS[0x0E20000] = 0xD200;
+    
GBA_BUS[0x0FE0000] = 0x1500;
+
}
+
+void
+NDS_EZF_ChipReset()
+{
+    
GBA_BUS[0x0000] = 0x00F0;
+    
GBA_BUS[0x1000] = 0x00F0;
+} 
uint32 NDS_EZF_IsPresent() 
+{
+    
vuint16 id1, id2;
 
     NDS_EZF_OpenNorWrite();
 
@@ -82,41 +81,35 @@
     GBA_BUS[0x1555] = 0x00AA;
     GBA_BUS[0x12AA] = 0x0055;
     GBA_BUS[0x1555] = 0x0090;
-
-    id1 = GBA_BUS[0x0001];
-    id2 = GBA_BUS[0x1001];
-
-    if((id1!=0x227E)|| (id2!=0x227E)) {
-        NDS_EZF_CloseNorWrite();
-        return 0;
-    }
-
-    id1 = GBA_BUS[0x000E];
-    id2 = GBA_BUS[0x100E];
+    
id1 = GBA_BUS[0x0001];
+    
id2 = GBA_BUS[0x1001];
+    
if ((id1 != 0x227E) || (id2 != 0x227E)) {
+        NDS_EZF_CloseNorWrite();
+        
return 0;
+    }
+    

id1 = GBA_BUS[0x000E];
+    
id2 = GBA_BUS[0x100E];
 
     NDS_EZF_CloseNorWrite();
-
-    if(id1==0x2218 && id2==0x2218) {
-        return 1;
+    
if (id1 == 0x2218 && id2 == 0x2218) {
+        
return 1;
     }
-
-    return 0;
-}
-
-void NDS_EZF_SetShake(u8 pos)
+    
return 0;
+
}
+
void
+NDS_EZF_SetShake(u8 pos) 
 {
-    u16 data = ((pos%3)|0x00F0);
-
-    GBA_BUS[0x0FF0000] = 0xD200;
-    GBA_BUS[0x0000000] = 0x1500;
-    GBA_BUS[0x0010000] = 0xD200;
-    GBA_BUS[0x0020000] = 0x1500;
-    GBA_BUS[0x0F10000] = data;
-    GBA_BUS[0x0FE0000] = 0x1500;
+    u16 data = ((pos % 3) | 0x00F0);
+    
GBA_BUS[0x0FF0000] = 0xD200;
+    
GBA_BUS[0x0000000] = 0x1500;
+    
GBA_BUS[0x0010000] = 0xD200;
+    
GBA_BUS[0x0020000] = 0x1500;
+    
GBA_BUS[0x0F10000] = data;
+    
GBA_BUS[0x0FE0000] = 0x1500;
 
-    GBA_BUS[0] = 0x0000; /* write any value for vibration. */
-    GBA_BUS[0] = 0x0002;
-}
+    GBA_BUS[0] = 0x0000;        /* write any value for vibration. */
+    GBA_BUS[0] = 0x0002;
+
}
 
 static int
 SDL_SYS_LogicError(void)
@@ -130,11 +123,11 @@
 SDL_SYS_HapticInit(void)
 {
     int ret = 0;
-    if(isRumbleInserted()) {
+    if (isRumbleInserted()) {
         /* official rumble pak is present. */
         ret = 1;
         printf("debug: haptic present: nintendo\n");
-    } else if(NDS_EZF_IsPresent()) {
+    } else if (NDS_EZF_IsPresent()) {
         /* ezflash 3-in-1 pak is present. */
         ret = 1;
         printf("debug: haptic present: ezf3in1\n");
@@ -150,11 +143,14 @@
 const char *
 SDL_SYS_HapticName(int index)
 {
-    if(nds_haptic) {
-        switch(nds_haptic->hwdata->type) {
-            case OFFICIAL: return "Nintendo DS Rumble Pak";
-            case EZF3IN1: return "EZFlash 3-in-1 Rumble";
-            default: return NULL;
+    if (nds_haptic) {
+        switch (nds_haptic->hwdata->type) {
+        case OFFICIAL:
+            return "Nintendo DS Rumble Pak";
+        case EZF3IN1:
+            return "EZFlash 3-in-1 Rumble";
+        default:
+            return NULL;
         }
     }
     return NULL;
@@ -164,12 +160,12 @@
 int
 SDL_SYS_HapticOpen(SDL_Haptic * haptic)
 {
-    if(!haptic) {
+    if (!haptic) {
         return -1;
     }
 
     haptic->hwdata = SDL_malloc(sizeof(NDS_HapticData));
-    if(!haptic->hwdata) {
+    if (!haptic->hwdata) {
         SDL_OutOfMemory();
         return -1;
     }
@@ -179,10 +175,10 @@
 
     /* determine what is here, if anything */
     haptic->hwdata->type = NONE;
-    if(isRumbleInserted()) {
+    if (isRumbleInserted()) {
         /* official rumble pak is present. */
         haptic->hwdata->type = OFFICIAL;
-    } else if(NDS_EZF_IsPresent()) {
+    } else if (NDS_EZF_IsPresent()) {
         /* ezflash 3-in-1 pak is present. */
         haptic->hwdata->type = EZF3IN1;
         NDS_EZF_ChipReset();
@@ -213,7 +209,7 @@
 int
 SDL_SYS_HapticOpenFromJoystick(SDL_Haptic * haptic, SDL_Joystick * joystick)
 {
-    /*SDL_SYS_LogicError();*/
+    /*SDL_SYS_LogicError(); */
     return -1;
 }
 
--- a/src/joystick/nds/SDL_sysjoystick.c	Sat Sep 06 00:10:16 2008 +0000
+++ b/src/joystick/nds/SDL_sysjoystick.c	Sat Sep 06 04:31:34 2008 +0000
@@ -44,7 +44,8 @@
 int
 SDL_SYS_JoystickInit(void)
 {
-    SDL_numjoysticks = 1;
    return (1);
+    SDL_numjoysticks = 1;
+    
return (1);
 }
 
 /* Function to get the device-dependent name of a joystick */
@@ -78,14 +79,14 @@
  * but instead should call SDL_PrivateJoystick*() to deliver events
  * and update joystick device state.
  */
-void
+    void
 SDL_SYS_JoystickUpdate(SDL_Joystick * joystick)
 {
     u32 keysd, keysu;
     int magnitude = 16384;
     
-    /*scanKeys(); - this is done in PumpEvents, because touch uses it too */
-    keysd = keysDown();
+        /*scanKeys(); - this is done in PumpEvents, because touch uses it too */ 
+        keysd = keysDown();
     keysu = keysUp();
 
     if ((keysd & KEY_UP)) {
@@ -100,58 +101,58 @@
     if ((keysd & KEY_RIGHT)) {
         SDL_PrivateJoystickAxis(joystick, 0, magnitude);
     }
-
    if ((keysu & (KEY_UP | KEY_DOWN))) {
+    
if ((keysu & (KEY_UP | KEY_DOWN))) {
         SDL_PrivateJoystickAxis(joystick, 1, 0);
     }
-
    if ((keysu & (KEY_LEFT | KEY_RIGHT))) {
+    
if ((keysu & (KEY_LEFT | KEY_RIGHT))) {
         SDL_PrivateJoystickAxis(joystick, 0, 0);
     }
-    
    if ((keysd & KEY_A)) {
+    
if ((keysd & KEY_A)) {
         SDL_PrivateJoystickButton(joystick, 0, SDL_PRESSED);
     }
-    
    if ((keysd & KEY_B)) {
+    
if ((keysd & KEY_B)) {
         SDL_PrivateJoystickButton(joystick, 1, SDL_PRESSED);
     }
-    
    if ((keysd & KEY_X)) {
+    
if ((keysd & KEY_X)) {
         SDL_PrivateJoystickButton(joystick, 2, SDL_PRESSED);
     }
-    
    if ((keysd & KEY_Y)) {
+    
if ((keysd & KEY_Y)) {
         SDL_PrivateJoystickButton(joystick, 3, SDL_PRESSED);
     }
-    
    if ((keysd & KEY_L)) {
+    
if ((keysd & KEY_L)) {
         SDL_PrivateJoystickButton(joystick, 4, SDL_PRESSED);
     }
-    
    if ((keysd & KEY_R)) {
+    
if ((keysd & KEY_R)) {
         SDL_PrivateJoystickButton(joystick, 5, SDL_PRESSED);
     }
-    
    if ((keysd & KEY_SELECT)) {
+    
if ((keysd & KEY_SELECT)) {
         SDL_PrivateJoystickButton(joystick, 6, SDL_PRESSED);
     }
-    
    if ((keysd & KEY_START)) {
+    
if ((keysd & KEY_START)) {
         SDL_PrivateJoystickButton(joystick, 7, SDL_PRESSED);
     }
-    
    if ((keysu & KEY_A)) {
+    
if ((keysu & KEY_A)) {
         SDL_PrivateJoystickButton(joystick, 0, SDL_RELEASED);
     }
-    
    if ((keysu & KEY_B)) {
+    
if ((keysu & KEY_B)) {
         SDL_PrivateJoystickButton(joystick, 1, SDL_RELEASED);
     }
-    
    if ((keysu & KEY_X)) {
+    
if ((keysu & KEY_X)) {
         SDL_PrivateJoystickButton(joystick, 2, SDL_RELEASED);
     }
-    
    if ((keysu & KEY_Y)) {
+    
if ((keysu & KEY_Y)) {
         SDL_PrivateJoystickButton(joystick, 3, SDL_RELEASED);
     }
-    
    if ((keysu & KEY_L)) {
+    
if ((keysu & KEY_L)) {
         SDL_PrivateJoystickButton(joystick, 4, SDL_RELEASED);
     }
-    
    if ((keysu & KEY_R)) {
+    
if ((keysu & KEY_R)) {
         SDL_PrivateJoystickButton(joystick, 5, SDL_RELEASED);
     }
-    
    if ((keysu & KEY_SELECT)) {
+    
if ((keysu & KEY_SELECT)) {
         SDL_PrivateJoystickButton(joystick, 6, SDL_RELEASED);
     }
-    
    if ((keysu & KEY_START)) {
+    
if ((keysu & KEY_START)) {
         SDL_PrivateJoystickButton(joystick, 7, SDL_RELEASED);
     }
 
}
@@ -169,4 +170,3 @@
 }
 
 #endif /* SDL_JOYSTICK_NDS */
-
--- a/src/video/nds/SDL_ndsevents.c	Sat Sep 06 00:10:16 2008 +0000
+++ b/src/video/nds/SDL_ndsevents.c	Sat Sep 06 04:31:34 2008 +0000
@@ -47,8 +47,8 @@
     }
     if (keysHeld() & KEY_TOUCH) {
         touchPosition t = touchReadXY();
-        SDL_SendMouseMotion(0, 0, t.px, t.py, 1); /* last arg is pressure,
-                                                     hardcoded 1 for now */
+        SDL_SendMouseMotion(0, 0, t.px, t.py, 1);       /* last arg is pressure,
+                                                           hardcoded 1 for now */
     }
 }
 
Binary file test/nds-test-progs/sprite2/icon.bmp has changed
--- a/test/nds-test-progs/sprite2/source/testsprite2.c	Sat Sep 06 00:10:16 2008 +0000
+++ b/test/nds-test-progs/sprite2/source/testsprite2.c	Sat Sep 06 04:31:34 2008 +0000
@@ -7,8 +7,6 @@
 #include <fat.h>
 #include "common.h"
 
-#include "icon_bmp_bin.h"
-
 #define NUM_SPRITES	10
 #define MAX_SPEED 	1
 
@@ -184,66 +182,7 @@
     if (!state) {
         return 1;
     }
-    for (i = 1; i < argc;) {
-        int consumed;
 
-        consumed = CommonArg(state, i);
-        if (consumed == 0) {
-            consumed = -1;
-            if (SDL_strcasecmp(argv[i], "--blend") == 0) {
-                if (argv[i + 1]) {
-                    if (SDL_strcasecmp(argv[i + 1], "none") == 0) {
-                        blendMode = SDL_TEXTUREBLENDMODE_NONE;
-                        consumed = 2;
-                    } else if (SDL_strcasecmp(argv[i + 1], "mask") == 0) {
-                        blendMode = SDL_TEXTUREBLENDMODE_MASK;
-                        consumed = 2;
-                    } else if (SDL_strcasecmp(argv[i + 1], "blend") == 0) {
-                        blendMode = SDL_TEXTUREBLENDMODE_BLEND;
-                        consumed = 2;
-                    } else if (SDL_strcasecmp(argv[i + 1], "add") == 0) {
-                        blendMode = SDL_TEXTUREBLENDMODE_ADD;
-                        consumed = 2;
-                    } else if (SDL_strcasecmp(argv[i + 1], "mod") == 0) {
-                        blendMode = SDL_TEXTUREBLENDMODE_MOD;
-                        consumed = 2;
-                    }
-                }
-            } else if (SDL_strcasecmp(argv[i], "--scale") == 0) {
-                if (argv[i + 1]) {
-                    if (SDL_strcasecmp(argv[i + 1], "none") == 0) {
-                        scaleMode = SDL_TEXTURESCALEMODE_NONE;
-                        consumed = 2;
-                    } else if (SDL_strcasecmp(argv[i + 1], "fast") == 0) {
-                        scaleMode = SDL_TEXTURESCALEMODE_FAST;
-                        consumed = 2;
-                    } else if (SDL_strcasecmp(argv[i + 1], "slow") == 0) {
-                        scaleMode = SDL_TEXTURESCALEMODE_SLOW;
-                        consumed = 2;
-                    } else if (SDL_strcasecmp(argv[i + 1], "best") == 0) {
-                        scaleMode = SDL_TEXTURESCALEMODE_BEST;
-                        consumed = 2;
-                    }
-                }
-            } else if (SDL_strcasecmp(argv[i], "--cyclecolor") == 0) {
-                cycle_color = SDL_TRUE;
-                consumed = 1;
-            } else if (SDL_strcasecmp(argv[i], "--cyclealpha") == 0) {
-                cycle_alpha = SDL_TRUE;
-                consumed = 1;
-            } else if (SDL_isdigit(*argv[i])) {
-                num_sprites = SDL_atoi(argv[i]);
-                consumed = 1;
-            }
-        }
-        if (consumed < 0) {
-            fprintf(stderr,
-                    "Usage: %s %s [--blend none|mask|blend|add|mod] [--scale none|fast|slow|best] [--cyclecolor] [--cyclealpha]\n",
-                    argv[0], CommonUsage(state));
-            quit(1);
-        }
-        i += consumed;
-    }
     if (!CommonInit(state)) {
         quit(2);
     }
@@ -259,8 +198,9 @@
         SDL_SelectRenderer(state->windows[i]);
         SDL_RenderFill(0xA0, 0xA0, 0xA0, 0xFF, NULL);
     }
-    if (LoadSprite2(icon_bmp_bin, icon_bmp_bin_size) < 0) {
-        printf("errored.\n");
+    if (LoadSprite("icon.bmp") < 0) {
+        printf("\nerrored.\n");
+        while (1);
         quit(2);
     }