mirror of
https://github.com/xenia-project/xenia-project.github.io.git
synced 2024-10-06 16:43:30 +00:00
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:
parent
d4cf652f6b
commit
b998bf2d5e
28
_config.yml
28
_config.yml
@ -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
|
||||
|
@ -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">
|
||||
|
@ -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
117
faq.md
@ -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">
|
||||
|
@ -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
8
quickstart.md
Normal 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">
|
60
roadmap.md
60
roadmap.md
@ -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">
|
||||
|
Loading…
Reference in New Issue
Block a user