Ideas
Playpower.org is an non-profit, open-source, educational software development group that creates software for underprivileged children around the world. Playpower targets legacy computing devices, which are still widely available in developing contexts at a very low cost. The 10$ computer that Playpower is targeting is a clone of NES(Ninetendo Entertainment System) and hence developing for the 10$ computer essentially means to develop for the NES. This summer we are looking at developing tools which ease the development on this platform and make educational games/application on the same platform that can have significant impact. The list given here is only of *possible* projects, we welcome any member to come up with his/her own proposal.
We are also interested if a student want to contribute to our Community Development Tools and Learning project.
Please feel free to add any ideas you have and keep these points in mind while doing so.
Software Development Tools
Using Assembly language for development:
Mentor: Kishan Patel/ Don Miller / Andrew Reitano
Difficulty: Medium
Requirements: C/Python, Experience with NES development
This lowers the barrier to assembly programming and allows the user to use high level functions like a for loop, an animation function, a screen change function, palette change function etc. The pre-processor goes through the code looking for such functions and then replace those functions with the equivalent assembly code. The assembly code can then be assembled by assemblers like asm6.
It is sort of a string replacement code that can be written in C and would require an understanding of NES programming
Mentor: Christopher Pow
Requirements:C++, Qt Creator IDE, SDL, OpenGL
Difficulty: Medium to Hard
Go to http://wiki.nesicide.com/doku.php?id=application_design_documentation and investigate possible improvements that would make the IDE useful for playpower development. Most importantly, we'd need to make this compatible with keyboard famiclones.
Additionally:
1. Complete the back-end (debugger and source browser) integration with the CC65 toolchain.
2. Implement improvements to existing debuggers.
3. Incorporate concepts from the original Win32 MFC version of the tool into the cross-platform Qt version.
Using High-level language for development:
Mentor: Ambuj Varshney
Difficulty: Medium to Hard
Requirements: C, Basics of NES programming
There are different compiler available for the 6502 platform, the project would require the student to explore different options available, some work has already been done on using cc65 to make games for NES systems, the student would be further required to build upon these and come up with a easy to use solution that can allow one to make games for the 6502 platform using C as a language instead of assembly. further, student would be required to come up with a educational game using this approach.
Mentor: Rudolf Kudla
Difficulty: hard
Requirements: C, Basics of NES programming, compiler technologies
If the student is interested in programming languages and compilers, he/she may try to implement some type of optimization or enhancement to Atalan.
Simpler task would be to develop some example game using Atalan for NES.
Mentor: Rudolf Kudla
Difficulty: medium
Requirements: C, basic knowledge of assembler (principles, not necessarily 6502)
Atalan is currently prepared to support source code level debugger (it generates comment lines into output assembly listing so, that it can be parsed and assigned to adresses).
Proof of concept implementation of using this output has been done using Altirra emulator (emulator for Atari 8-bit computers, one of Atalan targets). Student may implement symbolic debugger to one of NES emulators. I would be willing to provide support (mentor) the development of this and would also provide eventual necessary support on Atalan side.
Emulator related development:
Mentor:
Difficulty:
Requirements:
Mentor:
Difficulty:
Requirements:
Graphics related development:
Miscellaneous:
Mentor:
Difficulty:
Requirements:
Educational Games/Application
8-bit Games in Progress:
The source code of all games is located at: http://code.google.com/p/playpower/ . For commit access you may mail: kishan@playpower.org
Mentor: Kishan Patel
Difficulty: Medium
Requirements: Familiarity with NES development
Malaria is a big problem in developing countries. By creating an interactive experience which shows not only the negatives of Malaria, but the solutions available to preventing/curing problems caused by Malaria, we can educate people on the best way to help not only themselves, but their family and their village.
Mentor: Vivek Fitkariwala/Kishan Patel
Difficulty: Medium
Requirements: Familiarity with NES development
Proposed 8-bit Games:
Potential Engines:
- Typing Game
- Platformer
-
-
Possible Mentors:
Daniel Rehn
Don Miller
Derek Lomas
Dixie Ching
Kishan Patel
Ambuj Varshney