all repos — mgba @ 0cd28060e07c587ab10901ce815563a9e998f297

mGBA Game Boy Advance Emulator

PORTING.md (view raw)

 1Porting
 2=======
 3
 4Porting is preferentially done upstream so as to avoid fragmenting the codebase into individually unmergeable forks. As such, precaution must be taken to keep changes separate enough to not interfere with other ports, while still maintaining the ability to add new port-specific code seamlessly.
 5
 6Folders for each port should be under the `src/platform` folder, and make minimally invasive changes to the rest of the tree. If any changes are needed, try to make sure they are generic and have the ability to be ironed out in the future. For example, if a function doesn't work on a specific platform, maybe a way to make that function more portable should be added.
 7
 8The general porting process involves branching `master`, making the needed changes, and, when the port is mature enough to not have major effects to other ports, merged into `port/crucible`. The crucible is used for mixing upcoming ports to make sure they aren't fragile when `master` merges into it every so often. At this time, the crucible hasn't yet been merged into `master`, but in the future this may occur regularly. Until then, if a port is to get merged into master, make sure the changes to each port occur on the port-specific branch before being merged into `port/crucible`.
 9
10Port-specific TODO
11------------------
12
13The ports are vaguely usable, but by no means should be considered stable.
14
15### 3DS (port/3ds)
16* Add menu
17* Add audio
18* Thread support testing
19* Make it faster
20	* ARMv6 dynarec
21	* Hardware acceleration
22
23### PSP (port/psp)
24* Add menu
25* Add audio
26* Thread support
27* Make it faster
28	* MIPS dynarec
29	* Hardware acceleration
30
31### PS Vita (port/psp2)
32* Add menu
33* Add audio
34* Make it faster
35	* Threaded renderer shim
36	* Hardware acceleration
37
38### Wii (port/wii)
39* Add menu
40* Add audio
41* Thread support
42* Clean up video detection