Please post in the appropriate section the bugs you found or features you would like to see in later versions of PAlib...
If possible, it would help to have a maximum of information on a given bug :
If you do not want to post your code/rom here, please send them in rar format (zip won’t work) to Mollusk...
Each bug should have a seperate section, so just copy/paste the sample bug and change it to your needs, it’ll give me a list of bugs in the tables of contents...
I got bug blablabla when doing blablabla in function blablabla :
while(thing != stuff) PA_GoesWrong();
...
I think I just found a mistake, most likely a typo: it’s in day 13 where the GetTile mehtod is descibed the first time:
That’s about it for this function, nothing much, as I had said. But now, all the remaining functions are new, I’ll detail them almost 1 by 1...
u8 GetTile(s16 x, s16 y){ if (x < 0 || x > 256) return 1; //Say it was a collision if the sprite tries //to move out of the map horizontal boundaries return mario_world_Map[((y>>3)*32) + (x>>3)]; }
This is a very simple function which returns the tile number when given the position in pixels... Why did I put that in a function all by itself ? Because when we’ll add scrolling, we’ll just have to change this function, and everything will be updated... Isn’t that easier ? How does it find the correct tile ?
...........
There you explain that it checks if the x value ist correct, and if that’s not the case it’ll return 0, but in the code it says “return 1” when x is outside [0;256].
please tell me when the code and text is correct and it’s just me not understanding it
else if(i’m right) glad to help;
greetings, simon (and sorry for the bad english)
Please post you feature requests here... Nothing fancy ! Check that it hasn’t already been asked before posting, thanks !
Try to organize it in a similar way as the bugs, and I’ll put a note on new requests to tell you if it’s a WIP, major need, or will eventually come some time but not soon...
It would be nice to be able to work with PAFS video with out having to use VMplayer.
Fixed point math defines. Typical fixed point math defines which could be used for various purposes. Negate a fixed point number, multiply 2 numbers, divide, define a number giving the whole and the fraction, etc...
→ I think it’s already in libnds, but I might do some eventually
— Mollusk 03/02/2006 14:39
Playing .ogg on the DS for the background music would be a really interesting feature, while preserving ROM space and (DMA-based ?) I/O. Hopefully a 32-bit tight code on the ARM7 could do the trick, if no too high bitrates were used. The Tremor decoder provides an integer-only reference implementation of the Vorbis decoder for embedded devices, see http://xiph.org/vorbis/. Works for ARM CPU. Would be neat !!! (posted by sye).
Adding functions for initialising 3D on selected screens (and, if you fancy, both), rendering simply-shaded (and, if you fancy, textured) polygons and sprites with Z-axis would be useful, especially for special modes of normal games and Doom-like shoot’em ups. (by stan423321)
The various resources (including sprite and background tiles) could be automatically pre-fetched and kept on memory banks as long as there are room for them. The idea is to behave like a cache, so that the banks are always filled up, allowing for animations to reuse possibly already loaded frames that were not deallocated in the mean time, instead of loading them each time (posted by sye).
The idea would be to use a specific OpenGL API for embedded systems with no FPU. See http://www.khronos.org/opengles/ (posted by sye).
It would provide some more classical (demo-like) graphical tricks (beyond mosaïc, transparency, fade in/out, parallax scrollings, Starwars-like intro, etc.) to be widely used by 2D games. Examples : little particle engine (ex : for explosions), plasmas, etc. (posted by sye). By the way, congratulations for PAlib, features such as the virtual keyboard and shape recognition are simply amazing !
It would be convenient if PAlib always stick to latest devkitARM and libnds versions, as one might want to use for example newer libnds services in addition to PAlib ones (posted by sye).
One can find Mollusk statement in forums : “PAlib is free for any use”, but a more obvious message could help a lot. See also : libnds license (in libnds_license.txt in their source tree) (posted by sye).
At least the PAlib examples are not built with the best switches apparently (no -mcpu=arm7tdmi -mtune=arm7tdmi/-march=armv5te -mtune=arm946e-s).
Most of the DS developers aren’t graphics or sound makers. It will be usefull to have a Section with Free Resource Links. jandujar
I would really like to have SSL support with PA_Wifi. Lots of servers nowdays require an SSL Connection and it really limits your flexibility not to have this feature when you programme using PA_Wifi.
You know, it would be handy, although it does seem like a big request.
I would like to play some MIDI files. I’ve found a sourceforge’s project that can play MIDI without extern instruments. (DblK)
See after TiMidity++
I hope anyday we will be able to host games, so that any ds can join by the function DS-DownloadGame
I realy please you to add this funcion! It would help and make PAlib many times better (for me).
Same thing, but for tutorials...
I would love someone to put up a better 8bit and 16bit text output tutorial. -NOT DONE!!!
Can not find a full tutorial on this... would be nice if someone would link to one or post one. -NOT DONE!!!
Tips and tricks for optimized coding. It would be cool even if it just mentions some techniques, so that we could go to google and ask about them. (like the original fixed point theory, when it was uncomplete)
→ I’ll do as much as possible for that, as that’s why I started the dev-related math stuff too... — Mollusk 03/02/2006 14:40
Typical uses of interrupts, and a way to set a milliseconds based timer using the interrupts. Explanation of what an interrupt is, and so on. :)
A good way to build up a large map out of a tileset. It would be nice for games involving more complicated LargeMap. Maybe continuing the plaform game tutorial? Or begining a RPG one.
→ There are lots of map editor out there that could be used. Personnally, I like using Paint Shop Pro and copy/pasting my tiles, then converting with PAGfx (or gfx2gba, or whatever). So this might be done some day, but no idea when :S
I am searching to init the 3D of libnds and the PAlib to using sprites, but my 3D cube goes on bottom screen and erase my inventory (need sprites on touchscreen). I need some help to init correctly the DS. The sprite system of PAlib is very useful and complete but I need more features for 3D than the PAlib have got. I am asking me if i can load textures with PAlib and use them with the libnds. (Sorry for my poor english).
⇒ I have made some progresse, I can draw my 3D scene on the top screen and have my inventory on the touch screen, but i loose the input stylus control. We need to use lcdSwap(); after the PA_Init3D to swap both screen (the touch screen became number 1). If I init the Text module the inventory doesn’t display but I have the stylus control (I play a sound when I pick up an object with the stylus). Notice that I can move in the 3D scenes with the pad (I use the PAlib imput Methode).
PS : I couldn’t use the PA_Init3D() function, g++ coudn’t find her. There is something special to do when we are installing the PAlib?
⇒ Now resolved, I have rebuild the the PAlib after some modification in the conf file (Devkitpro\PAlib\PA_Config.h)
I am trying to increase the resolution of texture but I am limited to 256×256 and I use only one texture for my cube, I am searching to use one texture per faces with a greater resolution than 256×256. But If I find a methode to have one texture per faces the resolution will be increase by 6.
I can change the only one texture that I am using but, I need to use the glResetTextures(); function else I cant load a new texture, but both screen became black for one or two frame. It’s not very beautiful.
If I progress more I’ll do a tutorial on this subject.
Touch Area Detection
I hope this is in the correct place, but i would like to request a tutorial on how to manually set an area of the touch screen between two points (x and y) and then have text on the top screen show your selection. Ive been searching for this a while now and tried many examples and cant get them to work.
‘Screen’ Changing Also, one more thing. I think another good tutorial would be setting up your code and managing it. So that first time users learn how to create a menu screen that can input a seletion and take them to a platforming level and learn how to go from one screen to another, unloading everything as nessecary. It would be nice
generic pointer arithmetic bug (gcc 4.3.2)
/bkr/devkitpro/PAlib/include/nds/arm9/PA_Draw.h: In function 'void PA_LoadFSImage(u8, s16)': /bkr/devkitpro/PAlib/include/nds/arm9/PA_Draw.h:639: warning: deprecated conversion from string constant to 'char*' /bkr/devkitpro/PAlib/include/nds/arm9/PA_Draw.h:642: warning: deprecated conversion from string constant to 'char*' /bkr/devkitpro/PAlib/include/nds/arm9/PA_Draw.h:645: warning: deprecated conversion from string constant to 'char*' /bkr/devkitpro/PAlib/include/nds/arm9/PA_Draw.h: In function 'void PA_LoadGBFSImageToBuffer(void*, s16, s16)': /bkr/devkitpro/PAlib/include/nds/arm9/PA_Draw.h:667: warning: deprecated conversion from string constant to 'char*' /bkr/devkitpro/PAlib/include/nds/arm9/PA_Draw.h:673: warning: deprecated conversion from string constant to 'char*' /bkr/devkitpro/PAlib/include/nds/arm9/PA_Draw.h: In function 'u16 PA_GetBmpWidth(void*)': /bkr/devkitpro/PAlib/include/nds/arm9/PA_Draw.h:689: error: pointer of type 'void *' used in arithmetic /bkr/devkitpro/PAlib/include/nds/arm9/PA_Draw.h: In function 'u16 PA_GetBmpHeight(void*)': /bkr/devkitpro/PAlib/include/nds/arm9/PA_Draw.h:704: error: pointer of type 'void *' used in arithmetic make[1]: *** [Ball.o] Error 1 make: *** [build] Error 2
i’m guessing `bmpdata’ needs to be cast to `MP_Headers*’