-
Notifications
You must be signed in to change notification settings - Fork 1
/
CONTRIBUTING
63 lines (38 loc) · 2.13 KB
/
CONTRIBUTING
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
CONTRIBUTION GUIDELINES
=======================
So you want to contribute to Valkyrie? That's great! I welcome all kinds of
contributions, as long as they conform these simple and easy to follow rules:
* C only.
* Follow the existing coding style.
* Keep it simple and readable.
* No need to optimize anything unless it's first well understood and works
as expected, or the optimization is really trivial.
* No code that never gets executed. Untestable code should be considered
broken by default.
* Document any hardware findings in the source itself.
Contributions I'd gladly welcome
--------------------------------
* Fix one of the TODOs in the code. To get a complete list just do:
$ find path/to/valkyrie -name '*.[ch]' | xargs egrep -n --color 'TODO|XXX'
* Fix any of the points in the TODO file.
* Miscellanous bug fixes and emulation improvements.
* A JIT SH-4 core based on LLVM. Please contact me if you are interested
in working on it.
* OpenGL cleanup. I am no OpenGL expert, I'd really love some help with
that. But please, keep the renderer compatible with GL 3.0; it's the
latest GL version that I can actually run/test myself.
* Improve the memory system (vk_buffer and vk_mmap). The current architecture
works okay, and should help with making valkyrie work on both big endian and
little endian hosts; however it's also quite slow.
* Windows port. I don't own a Windows machine. Put all the OS-dependent
code in vk/os.[ch] and you'll make me happy.
* Use the valkyrie infrastructure to build your own machine emulator. Feel
free to add a subdirectory under src/machine and write your driver there.
Contributions I'd rather not see
--------------------------------
* A Direct3D renderer. D3D doesn't play along with linux. And OpenGL works
wonders in Windows. There's no need for duplicated efforts.
* Complex optimizations to the SH-4 interpeter. Once the JIT engine will be
there, the interpreter will have no real use. There's no point in having
a fast interpreter when the JIT engine will run circles around it anyway.
* A GUI. The time will come (maybe), but it's still way too early.