mirror of
https://github.com/xemu-project/xemu-website.git
synced 2024-11-23 03:19:44 +00:00
Integrate docs
This commit is contained in:
parent
3c4d4ebe9a
commit
92e1c5ce16
3
build.sh
3
build.sh
@ -24,3 +24,6 @@ cp resources/cover_front_default.png \
|
||||
resources/xbox_duke.png \
|
||||
dist
|
||||
rm dist/theme.css.map
|
||||
|
||||
docker run --rm -v ${PWD}/docs:/docs squidfunk/mkdocs-material build
|
||||
cp -r docs/site dist/docs
|
||||
|
1
docs/.gitignore
vendored
Normal file
1
docs/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
site
|
BIN
docs/docs/assets/images/social_banner.png
Normal file
BIN
docs/docs/assets/images/social_banner.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 88 KiB |
55
docs/docs/building-from-source.md
Normal file
55
docs/docs/building-from-source.md
Normal file
@ -0,0 +1,55 @@
|
||||
## Binaries
|
||||
|
||||
Users are recommended to use the [pre-built xemu binaries](https://github.com/mborgerson/xemu/wiki#download). If you would like to build from source however, follow the instructions for your platform below.
|
||||
|
||||
## Windows
|
||||
|
||||
Windows builds are cross-compiled from Ubuntu. If you would like to build *on* Windows, you can use WSL2 and Docker. See [official Docker
|
||||
documentation](https://docs.docker.com/docker-for-windows/wsl/) for how to get WSL2 and Docker set up.
|
||||
|
||||
```bash
|
||||
# Clone and build
|
||||
git clone https://github.com/mborgerson/xemu.git
|
||||
docker run --rm -v $PWD/xemu:/xemu -w /xemu \
|
||||
-e CCACHE_DIR=/xemu/ccache \
|
||||
mborgerson/xemu-ubuntu-win64-cross:latest \
|
||||
./build.sh -p win64-cross
|
||||
|
||||
# Run
|
||||
./xemu/dist/xemu.exe
|
||||
```
|
||||
|
||||
## macOS
|
||||
|
||||
First install the [Homebrew package manager](https://brew.sh/).
|
||||
|
||||
```bash
|
||||
# Install dependencies
|
||||
brew update
|
||||
brew install coreutils pkg-config dylibbundler ninja
|
||||
|
||||
# Clone and build
|
||||
git clone https://github.com/mborgerson/xemu.git
|
||||
cd xemu
|
||||
./build.sh
|
||||
|
||||
# Run
|
||||
open ./dist/xemu.app
|
||||
```
|
||||
|
||||
## Linux
|
||||
|
||||
### Debian/Ubuntu
|
||||
```bash
|
||||
# Install dependencies
|
||||
sudo apt update
|
||||
sudo apt install build-essential libsdl2-dev libepoxy-dev libpixman-1-dev libgtk-3-dev libssl-dev libsamplerate0-dev ninja-build
|
||||
|
||||
# Clone and build
|
||||
git clone https://github.com/mborgerson/xemu.git
|
||||
cd xemu
|
||||
./build.sh
|
||||
|
||||
# Run
|
||||
./dist/xemu
|
||||
```
|
29
docs/docs/download.md
Normal file
29
docs/docs/download.md
Normal file
@ -0,0 +1,29 @@
|
||||
## Download for Windows
|
||||
|
||||
[![Download](https://img.shields.io/badge/Download-Windows-blue?logo=Windows&logoColor=white)](https://github.com/mborgerson/xemu/releases/latest/download/xemu-win-release.zip)
|
||||
|
||||
The latest pre-built release version is recommended. Simply download the release for Windows, extract the archive, and launch xemu.exe.
|
||||
|
||||
## Download for macOS
|
||||
|
||||
[![Download](https://img.shields.io/badge/Download-macOS-blue?logo=Apple&logoColor=white)](https://github.com/mborgerson/xemu/releases/latest/download/xemu-macos-universal-release.zip)
|
||||
|
||||
**Note:** The above download is a Universal binary, for both x86-64 and the new Apple M1-based Macs.
|
||||
|
||||
The latest pre-built release version is recommended. Simply download the release for macOS, extract the archive, then run the application (optionally drag the *xemu* app to your Applications folder). Because the app is not signed, you will need to right-click, or hold the <kbd>control</kbd> key and click, on the app and in the context menu that appears select <kbd>Open</kbd> on first launch.
|
||||
|
||||
## Download for Linux (Ubuntu)
|
||||
|
||||
[![Download](https://img.shields.io/badge/Download-Ubuntu%20PPA-orange?logo=ubuntu&logoColor=white)](https://launchpad.net/~mborgerson/+archive/ubuntu/xemu)
|
||||
|
||||
Users running recent versions of Ubuntu (18.04 and newer) are recommended to install through the daily build PPA repository. Users running non-Ubuntu distributions are currently recommended to [build from source](https://github.com/mborgerson/xemu/wiki/Building-from-Source#linux).
|
||||
|
||||
At the command line, run the following:
|
||||
|
||||
```bash
|
||||
sudo add-apt-repository ppa:mborgerson/xemu
|
||||
sudo apt update
|
||||
sudo apt install xemu
|
||||
```
|
||||
|
||||
You can now launch xemu through your typical launcher, or by typing `xemu` at the command line.
|
37
docs/docs/faq.md
Normal file
37
docs/docs/faq.md
Normal file
@ -0,0 +1,37 @@
|
||||
#### Q: Can I get some help?
|
||||
Of course, but first please read through the [getting started guide](https://github.com/mborgerson/xemu/wiki#getting-started). If you still have questions, please read the following FAQs. If you're still having problems, head to #help in the xemu Discord server.
|
||||
|
||||
[![Chat Badge](https://img.shields.io/badge/Chat-xemu%20Discord%20Server-7289DA?logo=Discord&logoColor=white)](https://discord.gg/ayyjsuM)
|
||||
|
||||
#### Q: Are there system requirements?
|
||||
There are not strict requirements; most relatively modern systems should be able to run xemu. xemu runs on all major operating systems.
|
||||
|
||||
#### Q: What BIOS do I need to use?
|
||||
Your MCPX and BIOS dump should be for a 1.0 Xbox. It's suggested that your MCPX dump be 1.0 and that a compatible BIOS image be used (users have reported success with "COMPLEX 4627").
|
||||
|
||||
#### Q: Do I need to have an EEPROM file?
|
||||
A default one will be created if you do not provide one.
|
||||
|
||||
#### Q: Why am I getting `The guest has not initialized the display`
|
||||
This is likely due to a mismatch of MCPX and BIOS images, or a corrupt MCPX boot ROM.
|
||||
|
||||
#### Q: Why am I getting `Please insert an Xbox disc...`? I already loaded an ISO.
|
||||
Try restarting xemu. If you continue to get the message, your ISO may not be dumped in a compatible way. Try using `extract-xiso` to pack your ISO.
|
||||
|
||||
#### Q: Is there a game compatibility list?
|
||||
Yes, visit https://xemu.app
|
||||
|
||||
#### Q: Does game `x` work?
|
||||
Possibly. Check the compatibility list first if you're curious, or try it out for yourself. You are invited to submit a compatibility report too.
|
||||
|
||||
#### Q: Does xemu run my game's `default.xbe`?
|
||||
No, not directly. xemu emulates the hardware of the system, so you'll need to have a disc image of your game backup. You can use [extract-xiso](https://github.com/xboxdev/extract-xiso) or qwix to create an image.
|
||||
|
||||
#### Q: Does xemu support "redump" style ISOs?
|
||||
No, not yet. You can however convert a redump style ISO to a compatible ISO. More info [here](<https://github.com/mborgerson/xemu/wiki#about-redump-isos>).
|
||||
|
||||
#### Q: Why am I getting an `Assertion failed!` message?
|
||||
When a game exercises a piece of code in xemu that has not yet been implemented or verified, xemu will `assert` which forces execution to stop. The reason for this is that anything happening beyond that point may be unpredictable and significantly increase the debugging burden.
|
||||
|
||||
#### Q: I think I've found a bug, what do I do?
|
||||
Join the Discord server and chat about what you're seeing in #general, maybe it's a known issue. We can work together to get it recorded and fixed.
|
90
docs/docs/ftp.md
Normal file
90
docs/docs/ftp.md
Normal file
@ -0,0 +1,90 @@
|
||||
# HDD Access via FTP
|
||||
|
||||
If you have an alternative dashboard that runs an FTP server (as almost all
|
||||
replacement dashboards do), you can easily connect to that FTP server to read
|
||||
or write files on the virtual hard disk.
|
||||
|
||||
## Step 1: Enable user networking
|
||||
|
||||
In xemu, open the Network window by navigating to
|
||||
<kbd>Machine</kbd>→<kbd>Network</kbd>. If networking is currently
|
||||
enabled, click <kbd>Disable</kbd>. From the "Attached To" combo box, select
|
||||
"NAT", then click <kbd>Enable</kbd>.
|
||||
|
||||
## Step 2: Forward port 21
|
||||
|
||||
Because xemu is configured to use "user networking," we must configure xemu
|
||||
to forward FTP traffic on the host machine to the internal network. There is
|
||||
not a fancy GUI to do this yet, but we can easily do this using the monitor.
|
||||
|
||||
In xemu, open the Monitor window by navigating to
|
||||
<kbd>Debug</kbd>→<kbd>Monitor</kbd>. In the box at the bottom of the
|
||||
Monitor window, paste the following command and press <kbd>Enter</kbd>:
|
||||
|
||||
```
|
||||
hostfwd_add xemu-netdev tcp:127.0.0.1:2121-:21
|
||||
```
|
||||
|
||||
Now xemu will begin listening on TCP port 2121 for new connections, and forward
|
||||
that traffic to the internal network.
|
||||
|
||||
## Step 3: Launch your alternative dashboard from disc
|
||||
|
||||
Assuming you have a copy of your alternative dashboard in the form of an ISO
|
||||
image, load the disc image. You may need to reset the system to get it to
|
||||
load. Double check the networking settings for your dashboard to make sure
|
||||
that it is configured to use DHCP.
|
||||
|
||||
## Step 4: Connect using your FTP client
|
||||
The [Filezilla FTP client](https://filezilla-project.org/) is recommended. It
|
||||
is an open-source client available for all major platforms. If you would
|
||||
prefer to use another client, look for the respective settings in your client
|
||||
mentioned in this section.
|
||||
|
||||
Now, assuming that you are using Filezilla, start the client. Let's first
|
||||
create a new "Site" by navigating to <kbd>File</kbd> → <kbd>Site
|
||||
Manager</kbd>, then in the "Site Manager" window, click the <kbd>New
|
||||
Site</kbd> button.
|
||||
|
||||
* Enter "xemu" for the site name
|
||||
* For "Host" enter `127.0.0.1` and for "Port" enter `2121`
|
||||
* For "Encryption" select "Only use plain FTP (insecure)"
|
||||
* For "Logon Type" select "Normal"
|
||||
* Enter the appropriate "User" and "Password" (typically `xbox` for both)
|
||||
* Navigate to the "Transfer Settings" tab and select "Active"
|
||||
* Click <kbd>OK</kbd> when you are finished
|
||||
|
||||
We must configure one more additional setting.
|
||||
|
||||
* Navigate to the settings window via <kbd>Edit</kbd> → <kbd>Settings...</kbd>
|
||||
* On the left-hand side, navigate to <kbd>Connection</kbd> → <kbd>FTP</kbd> → <kbd>Active mode</kbd>
|
||||
* In the "Active mode IP" group, select "Use the following IP address:" and enter `10.0.2.2`
|
||||
* **Uncheck** "Don't use external IP address on local connections."
|
||||
* Click <kbd>OK</kbd> when you are finished
|
||||
|
||||
You can now open the "Site Manager" window again, select "xemu", and click the <kbd>Connect</kbd> button.
|
||||
|
||||
<details>
|
||||
<summary>More details about the FTP protocol for the curious...</summary>
|
||||
FTP has two modes: passive and active.
|
||||
|
||||
Passive mode involves the client first connecting to the server for control and
|
||||
then again on another port other for data. The client first connects, then the
|
||||
server gives it another address and port to connect to for data. The first
|
||||
problem with this is that the server reports to the client the only IP address
|
||||
that it knows (10.0.2.15) which is not correct for our needs--we need 127.0.0.1.
|
||||
That's alright because we can override this in Filezilla. The second problem is
|
||||
that we don't know which port the server is going to choose, so we can't forward
|
||||
it ahead of time.
|
||||
|
||||
In active mode, the client first connects to the server, then the server
|
||||
connects to the client! The client needs to give the IP address for the server
|
||||
to connect to. By default, it will give your computer's IP address, but the
|
||||
guest cannot connect to using that IP. So instead we need to override this
|
||||
setting and provide the IP address that the guest should connect to to actually
|
||||
connect to the host, which is 10.0.2.2.
|
||||
</details>
|
||||
|
||||
Note: To prevent interference with other FTP servers that you might connect to,
|
||||
you may want to adjust your settings and disable the "Active mode IP" override
|
||||
when you have finished transferring files.
|
95
docs/docs/getting-started.md
Normal file
95
docs/docs/getting-started.md
Normal file
@ -0,0 +1,95 @@
|
||||
xemu is a low-level, full-system emulator which emulates the actual hardware of
|
||||
the Xbox; this means that in order to actually run xemu, you must have a copy
|
||||
of the stuff that a real Xbox needs when it turns on:
|
||||
|
||||
1. [The MCPX Boot ROM image](#mcpx-boot-rom-image)
|
||||
2. [The flash ROM image (aka *BIOS*)](#flash-rom-image-aka-bioskernel)
|
||||
3. [A properly-formatted hard disk drive image](#hard-disk-drive-image)
|
||||
4. [Game disc image(s)](#game-disc-images)
|
||||
|
||||
Unfortunately, distributing some of these items would violate copyright laws, so
|
||||
you'll need to acquire them on your own.
|
||||
|
||||
!!! warning "Disclaimer"
|
||||
The xemu project does not endorse or promote piracy. We don't link to
|
||||
copyrighted files, or discuss how to acquire them. The only legal way to
|
||||
acquire these files is to dump them from *your real, physical Xbox*. Please
|
||||
don't ask us how to get them.
|
||||
|
||||
## MCPX Boot ROM Image
|
||||
|
||||
MD5 (mcpx_1.0.bin) = d49c52a4102f6df7bcf8d0617ac475ed
|
||||
|
||||
If your MCPX dump has an MD5 of `196a5f59a13382c185636e691d6c323d`, you dumped
|
||||
it badly and it's a couple of bytes off. It should start with `0x33 0xC0` and end
|
||||
with `0x02 0xEE`.
|
||||
|
||||
## Flash ROM Image (aka BIOS/Kernel)
|
||||
|
||||
Xbox compatible BIOS. Just like a real Xbox, running an unmodified retail BIOS will
|
||||
not allow booting unofficial software.
|
||||
|
||||
People have reported most success using the modified retail "COMPLEX 4627" BIOS.
|
||||
|
||||
## Hard Disk Drive Image
|
||||
|
||||
You have options:
|
||||
|
||||
### Option 1: Use a pre-built Xbox HDD image (recommended)
|
||||
|
||||
You can use a pre-built 8G Xbox HDD image, free of any copyrighted content, and
|
||||
only containing a dummy dashboard. [You can download this image from
|
||||
here!](https://github.com/mborgerson/xemu-hdd-image/releases/latest/download/xbox_hdd.qcow2.zip)
|
||||
|
||||
**Note:** By design, this particular drive image does not contain the official Xbox
|
||||
dashboard, but instead contains only a dummy dashboard. Because of this, you
|
||||
may see an error message when starting xemu with an unmodified retail BIOS
|
||||
image due to the system failing to find a properly signed dashboard.
|
||||
|
||||
If you would like to change your dashboard (perhaps to the official retail
|
||||
dashboard, or any alternative dashboard), or copy additional files over to
|
||||
the Xbox HDD, you can start xemu, using a modified BIOS image, and a disc
|
||||
containing an alternative dashboard. Then you can either install that
|
||||
dashboard, or connect to xemu using FTP to transfer your desired dashboard
|
||||
files to the HDD.
|
||||
|
||||
### Option 2: Image your real Xbox HDD
|
||||
|
||||
This is the most authentic way to do it. Unlock your drive, connect it to a
|
||||
computer, and `dd` the entire contents of the drive straight to a file. This
|
||||
file can be used as-is with xemu.
|
||||
|
||||
### Option 3: Build a new HDD image from scratch
|
||||
|
||||
You can also create an Xbox hard-disk image using XboxHDM. Directions on how
|
||||
to do this [can be found here](https://github.com/mborgerson/xemu-hdd-image).
|
||||
|
||||
## Game Disc Images
|
||||
|
||||
xemu requires game discs to be in the form of ".iso" disc images. You can
|
||||
backup your legally purchased games by:
|
||||
|
||||
* Using a real Xbox with a custom dashboard to transfer the game files to your
|
||||
computer over FTP.
|
||||
* Purchasing and using a special, reflashed DVD drive. [More details here](http://wiki.redump.org/index.php?title=Microsoft_Xbox_and_Xbox_360_Dumping_Guide).
|
||||
|
||||
You can create an iso image using [extract-xiso](https://github.com/XboxDev/extract-xiso) (command-line only).
|
||||
|
||||
### About "redump" ISOs
|
||||
|
||||
Redump-style ISOs contain data for both the video partition and game partition. For now,
|
||||
you'll want to extract the game partition for use with xemu. You can do this by simply
|
||||
extracting everything after the first 387MiB. For example, using `dd`:
|
||||
|
||||
```
|
||||
dd if=my-redump-style-dump.iso of=my-game-partition.iso skip=387 bs=1M
|
||||
```
|
||||
|
||||
You can then use the `my-game-partition.iso` with xemu.
|
||||
|
||||
I've found an issue, what do I do?
|
||||
----------------------------------
|
||||
Come chat on the Discord server linked at the top and we can do an early diagnosis of the issue. If necessary, we can catalog the issue for further exploration.
|
||||
|
||||
---
|
||||
<a href="#content-top">Return to Top</a>
|
68
docs/docs/networking.md
Normal file
68
docs/docs/networking.md
Normal file
@ -0,0 +1,68 @@
|
||||
# Networking
|
||||
|
||||
xemu emulates the Xbox network controller, and being built on top of QEMU's
|
||||
robust networking support infrastructure, provides a flexible array of advanced
|
||||
network configuration options. There are three network backends exposed in the
|
||||
Network configuration window for xemu: NAT, UDP Tunnel, and Bridged Adapter.
|
||||
|
||||
## Attachments
|
||||
|
||||
### NAT
|
||||
|
||||
In this networking mode, a full TCP/IP stack is running within xemu, and network
|
||||
address translation is used to route packets between the internal network and
|
||||
the outside world.
|
||||
|
||||
### UDP Tunnel
|
||||
|
||||
In this networking mode, all traffic that would be sent/received by the emulated
|
||||
NIC is simply encapsulated in UDP datagrams and forwarded to a remote host,
|
||||
which could be another instance of xemu or perhaps a real Xbox (see
|
||||
[l2tunnel](github.com/mborgerson/l2tunnel) for more information). This is useful
|
||||
for quickly setting up a virtual LAN.
|
||||
|
||||
### Bridged Adapter
|
||||
|
||||
In this networking mode, the emulated NIC is bridged to one of the network
|
||||
interfaces on your machine. This means that all traffic sent from the emulated
|
||||
network controller will be forwarded to your selected network interface, and
|
||||
xemu can receive traffic incoming on this interface. With this mode you can
|
||||
easily set up a System Link session with a real Xbox by just connecting the Xbox
|
||||
to your computer with an Ethernet cable. Additionally, this mode can be used to
|
||||
connect with tunneling services.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### System Link session is not joinable
|
||||
|
||||
* Ensure all MAC addresses are unique. If you are using an EEPROM dumped from your real Xbox, xemu and your Xbox will have the same MAC address. You'll need to change one of them. You can blank the EEPROM line in xemu's Settings window to have it generate a new one for you, or you can use the [EEPROM editor](https://github.com/Ernegien/XboxEepromEditor) to change it.
|
||||
* Ensure the game versions/regions/updates between the people playing are the same.
|
||||
* If you are on Windows, ensure you're using the new [npcap](https://nmap.org/npcap/), not the older WinPcap.
|
||||
* Some Realtek cards have been known to be problematic. Try using an alternative adapter.
|
||||
|
||||
### My network adapter is not listed
|
||||
* If you are on Windows, ensure you're using the new [npcap](https://nmap.org/npcap/), not the older WinPcap.
|
||||
|
||||
### Bridged Adapter Permission Problems
|
||||
|
||||
**Important:** You should **never** need to run xemu as the `root` user.
|
||||
|
||||
#### macOS
|
||||
|
||||
If you get a permission error when attempting to enable Bridged Adapter,
|
||||
you may need to update the `/dev/bpfX` permissions on your system. You can
|
||||
work around this by opening a terminal and executing the following command:
|
||||
|
||||
```bash
|
||||
sudo chown $(whoami):admin /dev/bpf*
|
||||
```
|
||||
|
||||
#### Linux
|
||||
|
||||
If you get a permission error when attempting to enable Bridged Adapter,
|
||||
you may need to update the executable capabilities to provide raw access
|
||||
to your network interface. You can do so with the following command:
|
||||
|
||||
```bash
|
||||
sudo setcap cap_net_raw,cap_net_admin=eip `which xemu`
|
||||
```
|
1
docs/docs/serial-port.md
Normal file
1
docs/docs/serial-port.md
Normal file
@ -0,0 +1 @@
|
||||
Xbox Development Kits came with a serial port for debugging, likewise xemu can also support a serial port. Simply add `-device lpc47m157` to the command line launch arguments. You can then route the serial port to various devices, for example you can send it the console with `-serial stdio` or to a socket with `-serial tcp:127.0.0.1:5558`. See QEMU documentation for more details.
|
20
docs/docs/snapshots.md
Normal file
20
docs/docs/snapshots.md
Normal file
@ -0,0 +1,20 @@
|
||||
**Snapshots**, also often called *Save States*, are a representation of the entire machine state which can be saved or restored at any time. With snapshots you can virtually eliminate the need to rely on in-game checkpoints to save your progress. Save a snapshot, and load it up again later and it's as if you had just kept on playing.
|
||||
|
||||
**Warning:** Please be aware that snapshots are a brand new feature. While this feature works reliably in my testing, there may be some bugs. There is not a convenient interface yet, and there are some caveats to be aware of.
|
||||
|
||||
Saving and restoring snapshots is currently done using the Monitor. After you have launched your game in xemu, open the Monitor window by navigating to <kbd>Debug</kbd> → <kbd>Monitor</kbd>.
|
||||
|
||||
* **Save a snapshot:** Enter the command `savevm my-snapshot`, where `my-snapshot` is a name you can give to this snapshot
|
||||
* **List snapshots:** Enter the command `info snapshots`
|
||||
* **Restore a snapshot:** Enter the command `loadvm my-snapshot`
|
||||
* **Delete a snapshot:** Enter the command `delvm my-snapshot`
|
||||
|
||||
Snapshots are saved to the hard disk image that you started xemu with.
|
||||
|
||||
Important Notes
|
||||
---------------
|
||||
Before restoring a snapshot, you should:
|
||||
|
||||
* **Load your game disc image as normal.** Loading a snapshot will not re-mount the game disc, so if you load a snapshot and the game then tries to read from disc, it will fail. Launch xemu, load your game disc, then restore the snapshot.
|
||||
|
||||
* **Connect controllers to match the saved configuration.** For instance: if there was a controller connected to Port 1 when the snapshot was created, make sure there is a controller connected to Port 1 before loading the snapshot. If this configuration does not match, an error message will be displayed and the machine will be paused. Simply connect the appropriate controllers, load the snapshot again, and enter `cont` in the monitor to continue).
|
86
docs/docs/stylesheets/extra.css
Normal file
86
docs/docs/stylesheets/extra.css
Normal file
@ -0,0 +1,86 @@
|
||||
:root {
|
||||
|
||||
--white: #fff;
|
||||
--gray-100: #f8f9fa;
|
||||
--gray-200: #ebebeb;
|
||||
--gray-300: #dee2e6;
|
||||
--gray-400: #ced4da;
|
||||
--gray-500: #adb5bd;
|
||||
--gray-600: #888;
|
||||
--gray-700: #444;
|
||||
--gray-800: #303030;
|
||||
--gray-900: #222;
|
||||
--black: #000;
|
||||
|
||||
--blue: #375a7f;
|
||||
--indigo: #6610f2;
|
||||
--purple: #6f42c1;
|
||||
--pink: #e83e8c;
|
||||
--red: #E74C3C;
|
||||
--orange: #fd7e14;
|
||||
--yellow: #F39C12;
|
||||
--green: #00bc8c;
|
||||
--teal: #20c997;
|
||||
--cyan: #3498DB;
|
||||
|
||||
--primary: var(--blue);
|
||||
--secondary: var(--gray-600);
|
||||
--success: var(--green);
|
||||
--info: var(--cyan);
|
||||
--warning: var(--yellow);
|
||||
--danger: var(--red);
|
||||
--light: var(--gray-500);
|
||||
--dark: var(--gray-800);
|
||||
|
||||
|
||||
--md-default-bg-color: var(--gray-900);
|
||||
--md-default-fg-color: var(--gray-500);
|
||||
--md-default-fg-color--light: var(--gray-500);
|
||||
--md-default-fg-color--lighter: var(--gray-300);
|
||||
--md-default-fg-color--lightest: var(--gray-800);
|
||||
--md-primary-fg-color: #e7e7e7;
|
||||
--md-primary-fg-color--light: var(--gray-800);
|
||||
--md-primary-fg-color--dark: #00ff00;
|
||||
|
||||
--md-accent-fg-color: var(--gray-400);
|
||||
--md-accent-fg-color--transparent: var(--gray-800);
|
||||
--md-accent-bg-color: var(--gray-200);
|
||||
--md-accent-bg-color--light: var(--gray-200);
|
||||
|
||||
--md-code-fg-color: #ff0000;
|
||||
--md-code-bg-color: #ff0000;
|
||||
|
||||
--md-typeset-kbd-bg-color--override: var(--gray-700);
|
||||
--md-typeset-kbd-border-color--override: var(--gray-800);
|
||||
--md-typeset-kbd-accent-color--override: var(--gray-700);
|
||||
}
|
||||
|
||||
.md-header, .md-tabs {
|
||||
background-color: var(--gray-800);
|
||||
}
|
||||
|
||||
.md-top {
|
||||
background-color: var(--gray-800);
|
||||
}
|
||||
|
||||
.md-typeset code {
|
||||
background-color: var(--gray-800);
|
||||
color: var(--gray-400);
|
||||
}
|
||||
|
||||
.md-typeset kbd {
|
||||
background-color: var(--md-typeset-kbd-bg-color--override);
|
||||
box-shadow: 0 .1rem 0 .05rem var(--md-typeset-kbd-border-color--override),0 .1rem 0 var(--md-typeset-kbd-border-color--override),0 -.1rem .2rem var(--md-typeset-kbd-accent-color--override) inset;
|
||||
}
|
||||
|
||||
.md-nav--primary .md-nav__title[for="__drawer"] {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.md-header__topic {
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.md-header__topic[data-md-component="header-topic"] {
|
||||
visibility: visible;
|
||||
}
|
77
docs/mkdocs.yml
Normal file
77
docs/mkdocs.yml
Normal file
@ -0,0 +1,77 @@
|
||||
site_name: "xemu: Original Xbox Emulator"
|
||||
site_url: https://xemu.app/docs/
|
||||
site_author: Matt Borgerson
|
||||
site_description: >-
|
||||
A free and open-source application that emulates the original Microsoft
|
||||
Xbox game console, enabling people to play their original Xbox games on
|
||||
Windows, macOS, and Linux systems.
|
||||
copyright: Copyright © 2020 - 2021 xemu Project
|
||||
|
||||
extra_css:
|
||||
- stylesheets/extra.css
|
||||
theme:
|
||||
name: material
|
||||
custom_dir: overrides
|
||||
features:
|
||||
- navigation.expand
|
||||
- navigation.sections
|
||||
# Don't include MkDocs' JavaScript
|
||||
include_search_page: false
|
||||
search_index_only: true
|
||||
logo:
|
||||
favicon:
|
||||
|
||||
extra:
|
||||
homepage: https://xemu.app
|
||||
|
||||
markdown_extensions:
|
||||
- admonition
|
||||
- abbr
|
||||
- attr_list
|
||||
- def_list
|
||||
- footnotes
|
||||
- meta
|
||||
- md_in_html
|
||||
- toc:
|
||||
permalink: true
|
||||
- pymdownx.arithmatex:
|
||||
generic: true
|
||||
- pymdownx.betterem:
|
||||
smart_enable: all
|
||||
- pymdownx.caret
|
||||
- pymdownx.critic
|
||||
- pymdownx.details
|
||||
- pymdownx.emoji:
|
||||
emoji_index: !!python/name:materialx.emoji.twemoji
|
||||
emoji_generator: !!python/name:materialx.emoji.to_svg
|
||||
- pymdownx.highlight
|
||||
- pymdownx.inlinehilite
|
||||
- pymdownx.keys
|
||||
- pymdownx.magiclink:
|
||||
repo_url_shorthand: true
|
||||
user: squidfunk
|
||||
repo: mkdocs-material
|
||||
- pymdownx.mark
|
||||
- pymdownx.smartsymbols
|
||||
- pymdownx.superfences:
|
||||
custom_fences:
|
||||
- name: mermaid
|
||||
class: mermaid
|
||||
format: !!python/name:pymdownx.superfences.fence_code_format
|
||||
- pymdownx.tabbed
|
||||
- pymdownx.tasklist:
|
||||
custom_checkbox: true
|
||||
- pymdownx.tilde
|
||||
|
||||
nav:
|
||||
- Setup:
|
||||
- Download: download.md
|
||||
- Getting Started: getting-started.md
|
||||
- Networking: networking.md
|
||||
- HDD Access via FTP: ftp.md
|
||||
- Snapshots (Save States): snapshots.md
|
||||
- Advanced Topics:
|
||||
- Building from Source: building-from-source.md
|
||||
- Serial Port: serial-port.md
|
||||
- Additional Information:
|
||||
- FAQ: faq.md
|
52
docs/overrides/main.html
Normal file
52
docs/overrides/main.html
Normal file
@ -0,0 +1,52 @@
|
||||
{% extends "base.html" %}
|
||||
{% block extrahead %}
|
||||
{% set title = config.site_name %}
|
||||
{% if page and page.title and not page.is_homepage %}
|
||||
{% set title = config.site_name ~ " - " ~ page.title | striptags %}
|
||||
{% endif %}
|
||||
{% set image = config.site_url ~ 'assets/images/social_banner.png' %}
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:title" content="{{ title }}">
|
||||
<meta property="og:description" content="{{ config.site_description }}">
|
||||
<meta property="og:url" content="{{ page.canonical_url }}">
|
||||
<meta property="og:image" content="{{ image }}">
|
||||
<meta property="og:image:type" content="image/png">
|
||||
<meta property="og:image:width" content="1280">
|
||||
<meta property="og:image:height" content="640">
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
<meta name="twitter:site" content="@xemu_project">
|
||||
<meta name="twitter:creator" content="@xemu_project">
|
||||
<meta name="twitter:title" content="{{ title }}">
|
||||
<meta name="twitter:description" content="{{ config.site_description }}">
|
||||
<meta name="twitter:image" content="{{ image }}">
|
||||
<link href="https://fonts.googleapis.com/css2?family=Ubuntu+Mono&display=swap" rel="stylesheet">
|
||||
{% endblock %}
|
||||
{% block htmltitle %}
|
||||
{% if page and page.meta and page.meta.title %}
|
||||
<title>{{ page.meta.title }} | {{ config.site_name }}</title>
|
||||
{% elif page and page.title and not page.is_homepage %}
|
||||
<title>{{ page.title | striptags }} | {{ config.site_name }}</title>
|
||||
{% else %}
|
||||
<title>{{ config.site_name }}</title>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
{% block announce %}
|
||||
|
||||
<a href="https://discord.gg/ayyjsuM">
|
||||
Join the <strong>xemu</strong> community on
|
||||
<span class="twemoji discord">
|
||||
{% include ".icons/fontawesome/brands/discord.svg" %}
|
||||
</span>
|
||||
<strong>Discord</strong>
|
||||
</a>
|
||||
|
||||
|
|
||||
|
||||
<a href="https://twitter.com/xemu_project">
|
||||
Follow <strong>@xemu_project</strong> on
|
||||
<span class="twemoji twitter">
|
||||
{% include ".icons/fontawesome/brands/twitter.svg" %}
|
||||
</span>
|
||||
<strong>Twitter</strong>
|
||||
</a>
|
||||
{% endblock %}
|
1
docs/overrides/partials/logo.html
Normal file
1
docs/overrides/partials/logo.html
Normal file
@ -0,0 +1 @@
|
||||
<span style="font-family: 'Ubuntu Mono'; font-size: 2em; margin-top:-0.15em">xemu</span>
|
29
docs/overrides/partials/nav.html
Normal file
29
docs/overrides/partials/nav.html
Normal file
@ -0,0 +1,29 @@
|
||||
{% set class = "md-nav md-nav--primary" %}
|
||||
{% if "navigation.tabs" in features %}
|
||||
{% set class = class ~ " md-nav--lifted" %}
|
||||
{% endif %}
|
||||
{% if "toc.integrate" in features %}
|
||||
{% set class = class ~ " md-nav--integrated" %}
|
||||
{% endif %}
|
||||
<nav class="{{ class }}" aria-label="{{ lang.t('nav.title') }}" data-md-level="0">
|
||||
<label class="md-nav__title" for="__drawer">
|
||||
<a href="{{ config.extra.homepage | d(nav.homepage.url, true) | url }}" title="{{ config.site_name | e }}" class="md-nav__button md-logo" aria-label="{{ config.site_name }}" data-md-component="logo">
|
||||
{% include "partials/logo.html" %}
|
||||
</a>
|
||||
{{ config.site_name }}
|
||||
</label>
|
||||
{% if config.repo_url %}
|
||||
<div class="md-nav__source">
|
||||
{% include "partials/source.html" %}
|
||||
</div>
|
||||
{% endif %}
|
||||
<ul class="md-nav__list" data-md-scrollfix>
|
||||
<li class="md-nav__item"><a class="md-nav__link" href="https://xemu.app">Home</a></li>
|
||||
<li class="md-nav__item"><a class="md-nav__link" href="https://xemu.app/#compatibility">Compatibility</a></li>
|
||||
{% for nav_item in nav %}
|
||||
{% set path = "__nav_" ~ loop.index %}
|
||||
{% set level = 1 %}
|
||||
{% include "partials/nav-item.html" %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</nav>
|
2
docs/serve.sh
Executable file
2
docs/serve.sh
Executable file
@ -0,0 +1,2 @@
|
||||
#!/bin/bash -ex
|
||||
docker run --rm -it -p 8000:8000 -v ${PWD}:/docs squidfunk/mkdocs-material
|
@ -33,6 +33,9 @@
|
||||
<li class="nav-item active">
|
||||
<a class="nav-link" href="{{ main_url_base }}/#compatibility">Compatibility</a>
|
||||
</li>
|
||||
<li class="nav-item active">
|
||||
<a class="nav-link" href="{{ main_url_base }}/docs/getting-started">Documentation</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</nav>
|
||||
|
@ -101,7 +101,7 @@
|
||||
<p>
|
||||
A free and open-source application that emulates the original Microsoft
|
||||
Xbox game console, enabling people to play their original Xbox games on
|
||||
Windows, macOS, and Linux systems. <a href="https://github.com/mborgerson/xemu/wiki#content-top">Learn more</a>.
|
||||
Windows, macOS, and Linux systems.
|
||||
</p>
|
||||
|
||||
<div class="container">
|
||||
|
Loading…
Reference in New Issue
Block a user