Google Summer Of Code

From devkitPro
Revision as of 01:40, 16 March 2008 by Wintermute (talk | contribs) (Undo revision 127 by Wintermute (Talk))
Jump to navigation Jump to search

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.

The page is intended as an overview of the kind of projects we have in mind. If one of them particularly piques your interest, please come and discuss with us on #devkitPro, post on the GSoC forum, or draw attention to yourself in some other way. Our chosen mentors are generally also available on the community channels #dsdev and #wiidev.

You can find more information about Google summer of code on the main 2008 GSoC page.

Project Ideas

Potential projects that would benefit the homebrew scene in general.

Generally Useful

devkitPro updater/installer enhancements

  • The web based installer is currently a little difficult to add packages, it would be greatly enhanced with the ability to add packages through an external configuration file.
  • The MinGW project uses an earlier version of this code and would benefit from a more configurable installer.
  • Other SourceForge based projects have expressed an interest in this kind of enhancement.

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, Gamecube and Wii. 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.

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

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.

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 with 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

Homebrew Launcher

  • Currently most NDS flash cards use a proprietary launcher menu and file browser. The homebrew scene would benefit a great deal from an open source launcher which could support additional features available in the toolchain like the latest argv support mechanism.

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. The current SD card code in libogc is rather buggy and would benefit from being replaced with a tested FAT support layer.

Open Source replacement for SDload

  • SDload is a menu system for launching homebrew applications from an SD Adapter such as SDgecko. Unfortunately this is a closed source application and not easily updated for the Wii.