Update and move documentation from website to GitHub Wiki

Page changes:
Sidebar: Add Discord link, make all links except Download redirects.
Gallery: Replace ancient videos with playlist of uploads from the Xenia YouTube channel.
Compatibility: Replaced with redirect to wiki page to preserve old link.
Download: Lower minimum Windows requirement to 7+, add Windows 10 requirement to d3d12

Old pages have been made into redirects so outdated links aren't broken.
This commit is contained in:
Win98 2019-07-10 17:33:39 +07:00 committed by Rick Gibbed
parent d4cf652f6b
commit b998bf2d5e
7 changed files with 38 additions and 399 deletions

View File

@ -31,14 +31,28 @@ navigation:
- pages:
- title: Home
path: index.html
- path: about.md
- path: faq.md
- title: About
url: https://github.com/xenia-project/xenia/wiki/about
icon: info
- title: Quickstart
url: https://github.com/xenia-project/xenia/wiki/Quickstart
icon: assignment
- title: FAQ
url: https://github.com/xenia-project/xenia/wiki/faq
icon: help
- path: download.md
- path: roadmap.md
- path: compatibility.html
- title: Roadmap
url: https://github.com/xenia-project/xenia/wiki/roadmap
icon: event
- title: Compatibility
url: https://github.com/xenia-project/game-compatibility/issues
icon: insert_chart
- path: gallery.html
- title: Community
pages:
- title: Discord
url: https://discord.gg/Q9mxZf9
icon: message
- title: /r/xenia
url: https://www.reddit.com/r/xenia
icon: forum
@ -50,8 +64,8 @@ navigation:
# icon: people
- title: Development
pages:
- title: Quickstart
url: https://github.com/xenia-project/xenia#quickstart
- title: Building
url: https://github.com/xenia-project/xenia/blob/master/docs/building.md
icon: build
- title: Source Code
url: https://github.com/xenia-project/xenia
@ -64,7 +78,7 @@ navigation:
# icon: settings_system_daydream
artifacts:
- title: Windows 8+ x64
- title: Windows 7+ x64
icon: windows
branches:
- name: master

View File

@ -3,216 +3,6 @@ layout: page
title: Compatibility
icon: insert_chart
permalink: /compatibility/
viewport_width: 675
---
<style>
.issuesSearch {
display: block;
padding-bottom: 0;
}
.issuesSearch .mdl-textfield__label:after {
bottom: 0;
}
.dataTables_filter {
/* Hide DataTable's search filter */
display: none;
}
</style>
<a href="https://github.com/xenia-project/game-compatibility/issues">Compatibility Tracker</a>
<br/>
If filing new issues, please follow the style of the existing ones (so this page works).
<br/>
<br/>
<table id="issuesList" class="mdl-data-table mdl-js-data-table mdl-shadow--2dp">
<thead>
<tr>
<th>Search</th>
<th>
<div class="issuesSearch mdl-textfield mdl-js-textfield">
<input type="text" class="mdl-textfield__input" id="searchQuery">
<label for="issuesList" class="mdl-textfield__label">Enter a game</label>
</div>
</th>
<th></th>
<th></th>
</tr>
<tr>
<th>Title ID</th>
<th class="mdl-data-table__cell--non-numeric">Name</th>
<th>State</th>
<th>Updated</th>
</tr>
</thead>
<tbody>
<tr>
<td colspan="4" class="compatibility-progress">
<div id="p2" class="mdl-progress mdl-js-progress mdl-progress__indeterminate"></div>
</td>
</tr>
</tbody>
</table>
<script src="{{ site.baseurl }}/scripts/merged-github-underscore.js"></script>
<!-- jQuery and jQuery DataTables for table filtering -->
<script src="//code.jquery.com/jquery-1.11.2.js"></script>
<script src="//cdn.datatables.net/1.10.0/js/jquery.dataTables.js"></script>
<script>
var issueBlobString = localStorage.getItem('game-compatibility-issues');
if (!issueBlobString) {
// No cached data, fetch new.
fetchIssueData(renderIssues);
} else {
var issueBlob = JSON.parse(issueBlobString);
if (!issueBlob.cacheTime ||
!issueBlob.issueData ||
Date.now() - issueBlob.cacheTime > 5 * 60 * 1000) {
// Expired - refetch.
fetchIssueData(renderIssues);
} else {
// Cache is valid, draw.
renderIssues(issueBlob.issueData);
}
}
function fetchIssueData(callback) {
var gh = new Github({});
var issueAdapter = gh.getIssues('xenia-project', 'game-compatibility');
issueAdapter.list({}, function(err, issueData) {
// Store with timestamp for expiration.
var issueBlob = {
cacheTime: Date.now(),
issueData: issueData
};
localStorage.setItem('game-compatibility-issues',
JSON.stringify(issueBlob));
callback(issueData);
});
}
function renderIssues(issueData) {
// To see issue data:
// console.log(issueData);
var issuesList = document.getElementById('issuesList');
var tbody = issuesList.getElementsByTagName('tbody')[0];
for (var i = 0; i < issueData.length; ++i) {
var issue = issueData[i];
var dash = issue.title.indexOf(' - ');
if (dash == -1) {
continue;
}
var titleId = issue.title.substr(0, dash);
var titleName = issue.title.substr(dash + 3);
var marketplaceLink = 'https://www.google.com/?q=' + titleName + ' Xbox 360 game';
var marketplaceBoxSmall = "http://i.imgur.com/G9iNSCA.jpg";
// no large link appears to exist for this image
var marketplaceBoxLarge = null;
var searchForLink = true;
for (var j = 0; j < issue.labels.length; ++j) {
var label = issue.labels[j];
if (label.name == 'marketplace-delisted' ||
label.name == 'marketplace-unlisted') {
searchForLink = false;
break;
}
}
if (searchForLink) {
var marketplaceIndex = issue.body.search(/http[s]?:\/\/marketplace/);
if (marketplaceIndex != -1) {
marketplaceLink = issue.body.substr(marketplaceIndex);
marketplaceLink = marketplaceLink.substr(0, marketplaceLink.search(/[\s)?"']/));
var storeIdIndex = marketplaceLink.search(/[0-9a-f]{8}-[0-9a-f]{4}/);
if (storeIdIndex != -1) {
var storeId = marketplaceLink.substr(storeIdIndex);
var marketplaceBox = 'http://download.xbox.com/content/images/' + storeId + '/1033/';
marketplaceBoxSmall = marketplaceBox + 'boxartsm.jpg';
marketplaceBoxLarge = marketplaceBox + 'boxartlg.jpg';
} else {
// TODO: figure out how to craft this ID.
// storeId = '66acd000-77fe-1000-9115-d802' + titleId.toLowerCase();
}
}
}
var tr = document.createElement('tr');
tr.id = 'issue' + issue.id;
tr.classList.add('compatibility-row');
var td;
td = document.createElement('td');
td.id = tr.id + 'box';
td.classList.add('compatibility-boxart');
td.style.fontFamily = 'monospace';
var marketplaceA = document.createElement('a');
marketplaceA.href = marketplaceLink;
marketplaceA.target = '_blank';
if (marketplaceBoxSmall) {
marketplaceA.innerHTML = '<img src="' + marketplaceBoxSmall + '">';
}
marketplaceA.innerHTML += '<span>' + titleId + '</span>';
td.appendChild(marketplaceA);
tr.appendChild(td);
td = document.createElement('td');
td.classList.add('mdl-data-table__cell--non-numeric');
var issueA = document.createElement('a');
issueA.href = issue.html_url;
issueA.target = '_blank';
issueA.innerHTML = titleName;
td.appendChild(issueA);
tr.appendChild(td);
td = document.createElement('td');
for (var j = 0; j < issue.labels.length; ++j) {
var label = issue.labels[j];
if (label.name.indexOf('state-') == 0) {
td.innerHTML = label.name.substr(6);
td.style.color = '#' + label.color;
}
}
tr.appendChild(td);
td = document.createElement('td');
td.innerHTML = issue.updated_at.substr(0, issue.updated_at.indexOf('T'));
tr.appendChild(td);
tbody.appendChild(tr);
/*var tooltip = document.createElement('span');
tooltip.classList.add('mdl-tooltip');
tooltip.classList.add('compatibility-tooltip');
tooltip.setAttribute('for', tr.id + 'box');
if (marketplaceBoxLarge) {
tooltip.innerHTML = '<img src="' + marketplaceBoxLarge + '">';
} else {
tooltip.innerHTML = '(no art avail - misformatted issue?)';
}
componentHandler.upgradeElement(tooltip, 'MaterialTooltip');
issuesList.appendChild(tooltip);*/
}
// Remove progress bar.
tbody.removeChild(tbody.firstElementChild);
var issuesTable = $('#issuesList').DataTable({
stateSave: true,
info: false,
paging: false,
order: [[3, 'desc']]
});
// Filter table on 'keyup' event, with a slight delay.
var lastKeyTimerId = -1;
$('#searchQuery').on('keyup', function() {
if (lastKeyTimerId != -1) {
clearTimeout(lastKeyTimerId);
}
var query = this.value;
lastKeyTimerId = setTimeout(function() {
issuesTable.search(query).draw();
}, 100);
});
}
</script>
Redirecting to <a href="https://github.com/xenia-project/game-compatibility/issues">Compatibility Page</a>
<meta http-equiv="Refresh" content="0; url=https://github.com/xenia-project/game-compatibility/issues">

View File

@ -25,4 +25,4 @@ permalink: /download/
Linux builds coming eventually...
[System Requirements](/faq/#system-requirements)
[System Requirements](https://github.com/xenia-project/xenia/wiki/Quickstart#system-requirements)

117
faq.md
View File

@ -1,119 +1,8 @@
---
layout: page
title: FAQ
icon: assignment
icon: help
permalink: /faq/
---
* foo
{:toc}
## Can I get an exe?
Yes, <a href="/download/">choose a download</a>.
## Xenia crashes when I run it!
Make sure your PC meets the [system requirements](/faq/#system-requirements) of Xenia.
This project is in early development phases and is not meant to be used by those
who aren't comfortable debugging the code. Issues filed with 'it's broken' are
generally unhelpful, and in most cases the team knows what's broken (the
assumption is everything). If it doesn't work for you and you cannot figure out
why, come to the [Discord](https://discord.me/xenia-emulator) for community-provided
support.
## I have a copy of the XDK. Do you want it?
No. Do not post links or downloads to such resources or you will be banned.
## System Requirements
* Windows 7 or later
* 64-bit x86 processor supporting AVX
* Vulkan compatible GPU from [this list](https://vulkan.gpuinfo.org/) or
a D3D12 compatible GPU.
* (Optional) XInput-compatible controller
Xenia will check for the minimum supported CPU and GPU on startup and error out
if one is not detected, make sure that you have the latest drivers installed.
**You cannot just remove the checks in the code and assume things will work.**
### Can you add support for Windows Me? How about my Pentium II?
Support for older operating systems and processors will not be added unless a
contributor steps up to build and maintain them. All active contributors are on
modern systems and busy with higher priority tasks. Whether the emulator runs on
Windows Vista or not doesn't matter if it can't run games.
### 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%20platform).
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, OpenGL, 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 convienient 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.
Redirecting to <a href="https://github.com/xenia-project/xenia/wiki/FAQ">FAQ Page</a>
<meta http-equiv="Refresh" content="0; url=https://github.com/xenia-project/xenia/wiki/FAQ">

View File

@ -6,11 +6,5 @@ permalink: /gallery/
---
<p>
<iframe height="480" src="https://www.youtube.com/embed/vE32Z9ytbgU?rel=0" frameborder="0" allowfullscreen></iframe>
</p>
<p>
<iframe height="480" src="https://www.youtube.com/embed/oAk0_jidpA0?rel=0" frameborder="0" allowfullscreen></iframe>
</p>
<p>
<iframe height="480" src="https://www.youtube.com/embed/TY5QeQ90iNs?rel=0" frameborder="0" allowfullscreen></iframe>
<iframe height="480" src="https://www.youtube.com/embed/videoseries?list=UU6bJhkUUHE18HVG2mpbygSQ" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
</p>

8
quickstart.md Normal file
View File

@ -0,0 +1,8 @@
---
layout: page
title: Quickstart
icon: help
permalink: /quickstart/
---
Redirecting to <a href="https://github.com/xenia-project/xenia/wiki/Quickstart">Quickstart Page</a>
<meta http-equiv="Refresh" content="0; url=https://github.com/xenia-project/xenia/wiki/roadmap">

View File

@ -4,61 +4,5 @@ title: Roadmap
icon: event
permalink: /roadmap/
---
* foo
{:toc}
## Goals
Normal emulator stuff. Games work, etc.
### Cross-platform Support
Linux support is slowly progressing, but really needs a strong contributor to
fully support. OS X support is highly unlikely unless Apple gets Vulkan
support.
## Non-Goals
There's a lot that *could* be done in the project, but there are many things
that *shouldn't* be.
### Pixel-perfect Accuracy
A lot of corners are cut for one reason or another: performance, lack of
understanding, lack of documentation, etc. Getting something that perfectly
matches the output on a real console isn't really possible with our approach.
Conversely, this allows much more freedom to provide higher-quality or faster
implementations.
### Xbox Live Connectivity
Xenia will never be able to connect to the real Xbox Live network. A simulated
Live-like network is possible, however anything that interfaces with the
official Microsoft services is not only not possible, but not something the
project seeks to enable.
### Game Servers
Some multiplayer games are peer-to-peer, however many have some server component
required for either matchmaking or actual session hosting. Though it'd be
possible to work with such homebrew servers if projects sprung up to support
them Xenia itself will not be attempting to do so.
### Original Xbox Backwards Compatibility
Microsoft released a compatibility layer that enabled original Xbox games to run
on the 360. Though likely feasible to get running under Xenia, it's not a goal.
There's likely to be a lot of trickery going on that most games don't do, and
distribution of the compatibility layer isn't possible.
## Dreams
### VR
Figure that out :)
### Simulated Xbox Live Network
Implement the system APIs for friend's list, leaderboards, etc. Reusing Steam or
some other service would be ideal.
Redirecting to <a href="https://github.com/xenia-project/xenia/wiki/roadmap">Roadmap Page</a>
<meta http-equiv="Refresh" content="0; url=https://github.com/xenia-project/xenia/wiki/roadmap">