Skip to content
Yifan Lu edited this page Jan 8, 2018 · 13 revisions

Below are some major and minor tasks for the VitaSDK project (including but not limited to vita-toolchain). They are a good starting point for getting into helping the Vita homebrew community. The tasks are sorted by difficulty. Items marked (*) means it is recommended you actually own a hacked Vita to test with.

Starter

These are simple tasks that will take no more than a couple hours of work after getting familiar with the project. As such, they are a good way to learn how vitasdk works.

Fix import/export size field

https://github.com/vitasdk/vita-toolchain/issues/114

The internal structure for module exports (and probably imports) is wrong. It defines the size field as a two byte integer but it should be one byte. The reason for this mistake was the second field was always zero in examples we've seen. Changing the struct definition should be enough, but it might break other stuff so it's good to see every place that field is used and check that it doesn't introduce any new buggy behavior.

Create a "getting started" wiki page

https://github.com/vitasdk/vita-headers/issues/113

We don't have much newbie-friendy guides and the next person who starts from zero-knowledge should document what they do (setup, build, etc) so people can find their way easier.

(*) Fix the code size issue with generated ELFs

https://github.com/vitasdk/vita-toolchain/issues/89

For some reason, if we do not align code segments to 0x1000, it doesn't work on the Vita. There doesn't seem to be any problem in the Vita's loader but some issue with how the ELF is laid out which confuses the Vita. Setting alignment to 0x1000 mitigates the issue but this results in bloated ELF files (when not compressed). It would be nice to figure out the root cause and fix it. This might be more work than estimated due to the unknown nature of the cause.

Swap terms "module" and "library" in source

https://github.com/vitasdk/vita-toolchain/issues/48

This is a simple yet annoying one. Early on, we used "module" and "library" to mean different things and later on swapped the definitions. Even though this was confusing, we agreed it was more consistent with other usage of these terms. This change was made early on so most people don't even know about this but there might be older references in the code that uses the old meaning (like names of structs and variables and such). This would be a good excuse to read through all the source code and fix the names.

Clone this wiki locally