Google Summer Of Code

From devkitPro
Jump to navigation Jump to search

Google Summer of Code

devkitPro is applying to become a mentoring organisation for the 2008 Google Summer of code. Our goal is to encourage community contribution to the toolchains and support libraries and better serve our users. We expect student implementors of projects to document their project extensively. This includes not only in-code comments, but also user documentation, including tutorials & sample code where applicable.

Project Ideas

Potential projects that would benefit the homebrew scene in general.

NDS/GBA related

More useful default arm7 core.

  • Currently, most developers writing games and applications for the Nintendo DS only code for the main CPU (the ARM9), and use a provided core for the ARM7. However, the current provided ARM7 core is somewhat limited in features, which means extra work for every developer who wants to fully utilize the NDS hardware (such as sound and wifi, which are only accessible via the ARM7)

GDB stub and host proxy

  • Something like Xboo Communicator for DS. This would allow developers to debug their applications on the target platform via a stub which communicates with GDB (GNU Debugger) running on a host PC. Being able to debug on hardware is very valuable, since currently all PC-based emulators are either lacking debug capability or lacking in emulation accuracy

3D model export tools

  • We need a standardized way of getting 3D models and textures from modeling applications such as Blender, LightWave, Wings3D, etc into a format which is easily usable on the NDS. Currently everyone who wants to write 3D applications has to either hobble along with partially working tools, or write their own from scratch. Having a full-featured, highly-compatible conversion/export tool would make 3D development accessible to many more people. Some work has been done on a collada parser which could be provided as a starting point.

ndstool enhancements

  • possible rewrite, objective to allow editing as well as extraction & creation.

ndstool is the application which builds a .nds file from it's component parts - the arm7 & arm9 binaries, icons, banner text and the embedded filesystem. Currently it cannot edit an existing file without first extracting the indvidual parts. There is also a feature request asking for separate banner & banner text manipulation.

Reimplementing the tool with OOP techniques would be a very acceptable project.

Improve DS OpenGL interface

  • libnds comes with a OpenGL interface for the DS. This interface is decent, but is missing much functionality that is capable of being implemented on the DS, and is also a source of bugs.

higher level 3D library

  • A higher level library for handling models/terrain/primitives, along with well written & commented examples. The current methods for doing 3D on the DS are VERY low-level (on the order of drawing things vertex by vertex). Some higher level routines/classes which allowed for easier 3D development would help get more people started doing 3D games/applications. Routines such as displaying/moving primitives, loading models, animating models, applying textures, and so forth.

C++ nds library / libnds wrapper

  • The current library for accessing NDS hardware functionality is fairly low-level C code, with a few higher-level C routines. A fully object-oriented C++ library would be useful for people used to working at a higher level, and who appreciate the object-oriented paradigm.

Sprite editor

  • For editing sprites, to go along with PernEdit. It is recommended/preferred this be an addon to PernEdit, but that is not mandatory.

Get PernEdit working w/ mono

  • PernEdit is a free, open-source 'map editor' (for creating game maps for tile-based games, as most GBA and many NDS games are tile-based). Unfortunately it currently only runs in C# in .NET in windows. Porting it to Mono would allow it to run on more platforms, and be useful to more people.
  • www.pernedit.com

Gamecube/Wii related

libfat port to cube/wii

  • libfat is a library for NDS/GBA which provides access to FAT filesystems, mainly on SD and CF cards. Porting this to Gamecube/Wii would allow for more useful data storage, as currently people are using horrible hacks like 'store the data on sector 2048 (hardcoded) of the SD'.