Updated For Developers (markdown)
parent
15533d844b
commit
8a68ae459e
|
@ -1,77 +1 @@
|
|||
# Does Xenia run on Linux or macOS?
|
||||
|
||||
The project is designed to support non-Windows platforms but until it's running
|
||||
games it's not worth the maintenance burden. MacOS will likely remain unsupported
|
||||
until Apple supports Vulkan.
|
||||
|
||||
There's only a few major pieces that need cleanup before a Linux port can
|
||||
proceed in earnest, listed with the [cross-platform tag](https://github.com/xenia-project/xenia/labels/cross-platform).
|
||||
Most of the code compiles with the latest Clang, and very few files have
|
||||
dependencies on Windows APIs (all of that is isolated to `_win.cc` files).
|
||||
Though the codebase is ready for the port, it's not a trivial task and anyone
|
||||
seeking to port it will need a deep understanding of Linux, X11, Vulkan, and
|
||||
Win32 (to ensure matching semantics).
|
||||
|
||||
|
||||
# You should port it to Linux, then tons of developers will contribute!
|
||||
|
||||
No, they won't, and that's not how things work. (I'm seriously told this once
|
||||
a week...)
|
||||
|
||||
Think of it this way: the most important kind of contributor in this phase of
|
||||
the project is one who is capable of performing the porting work. If someone
|
||||
has this capability and feels so strongly about Linux support then they would be
|
||||
contributing to the porting efforts already. But otherwise they are nothing
|
||||
more than hypothetical members of our collective dreams.
|
||||
|
||||
|
||||
# Why did you do X? Why not just use Y? You should use Y. NIH NIH NIH!
|
||||
|
||||
Trust that I either have a good reason for what I did or have absolutely no
|
||||
reason for what I did. This is a large project that I've been working on
|
||||
for almost 5 years and in that time new compilers and language specs have
|
||||
been released, libraries have been created and died, and I've learned a lot.
|
||||
Constructive contributions and improvements are welcome.
|
||||
|
||||
|
||||
# Have you heard of LLVM/asmjit/jitasm/luajit/etc?
|
||||
|
||||
Yes, I have heard of them. In fact, I spent a long time trying them out:
|
||||
[LLVM](https://github.com/xenia-project/xenia/tree/85bdbd24d1b5923cfb104f45194a96e7ac57026e/src/xenia/cpu/codegen),
|
||||
[libjit](https://github.com/xenia-project/xenia/tree/eee856be0499a4bc721b6097f5f2b9446929f2cc/src/xenia/cpu/libjit),
|
||||
[asmjit](https://github.com/xenia-project/xenia/tree/ca208fa60a0285d396409743064784cc2320c094/src/xenia/cpu/x64).
|
||||
I did not find them acceptable for use in this project for various reasons. If
|
||||
for some reason you feel strongly otherwise, feel free to either contribute a
|
||||
[new CPU backend](https://github.com/xenia-project/xenia/tree/master/src/xenia/cpu/backend).
|
||||
|
||||
|
||||
# (some argument over an unimportant technical choice)
|
||||
|
||||
In general: *I don't care*.
|
||||
That means I either really don't care and something is they way it is because
|
||||
that was convenient or that I don't care because it's not material to the goal
|
||||
of the project. There are a million important things that need to be done to get
|
||||
games running and going back and forth about unimportant orthogonal issues does
|
||||
not help. If you really do have a better way of doing something and can show it,
|
||||
contributions are welcome.
|
||||
|
||||
Here's a short list of common ones:
|
||||
|
||||
* 'Why this xb stuff?' -- I like it, it helps me. If you want to
|
||||
manually execute commands have fun, nothing is stopping you.
|
||||
* 'Why not just take the code from project X?' -- the point of this project
|
||||
is to build something different than previous emulator projects and learn while
|
||||
doing it. The easy way is almost never the best way and most certainly isn't as
|
||||
fun.
|
||||
* 'Why not CMake?' -- I don't like CMake as it generates ugly Visual Studio
|
||||
projects. Premake does what I want (mostly) how I want it to.
|
||||
|
||||
|
||||
# Hey I'm going to go modify every file in the project, ok?
|
||||
|
||||
We welcome contributions, but please try to understand that we cannot accept
|
||||
changes that radically alter the structure or content of the code, especially
|
||||
if they are aesthetic and even more so if they are from someone who has not
|
||||
contributed before. If a pull request of this nature is denied that doesn't
|
||||
necessarily mean your help is not wanted, just that it may need to be more
|
||||
carefully applied.
|
||||
# [This page has been moved here.](https://xenia.jp/wiki/development/for_developers/)
|
Loading…
Reference in New Issue