Skip to content

LizardByte/Moonlight-XboxOG

Moonlight-XboxOG

GitHub stars GitHub Releases GitHub Workflow Status (CI)

Port of Moonlight for the Original Xbox. Unlikely to ever actually work. Do NOT use!

Nothing works, except the splash screen.

Splash Screen

Build

Prerequisites

  1. Clone the repository with submodules, or update them after cloning.

    git submodule update --init --recursive
  2. Install nxdk prerequisites.

Windows

Note

You must use the mingw64 shell on Windows.

pacman -Syu
nxdk_dependencies=(
  "bison"
  "cmake"
  "flex"
  "git"
  "make"
  "mingw-w64-x86_64-clang"
  "mingw-w64-x86_64-gcc"
  "mingw-w64-x86_64-lld"
  "mingw-w64-x86_64-llvm"
)
moonlight_dependencies=(
  "mingw-w64-x86_64-doxygen"
  "mingw-w64-x86_64-graphviz"
  "mingw-w64-ucrt-x86_64-nodejs"
)
dependencies=("${nxdk_dependencies[@]}" "${moonlight_dependencies[@]}")
pacman -S "${dependencies[@]}"

Debian/Ubuntu Linux

nxdk_dependencies=(
  "bison"
  "build-essential"
  "clang"
  "cmake"
  "flex"
  "git"
  "lld"
  "llvm"
)
moonlight_dependencies=(
  "doxygen"
  "graphviz"
  "nodejs"
)
dependencies=("${nxdk_dependencies[@]}" "${moonlight_dependencies[@]}")
apt install "${dependencies[@]}"

macOS

nxdk_dependencies=(
  "cmake"
  "coreutils"
  "lld"
  "llvm"
)
moonlight_dependencies=(
  "doxygen"
  "graphviz"
  "node"
)
dependencies=("${nxdk_dependencies[@]}" "${moonlight_dependencies[@]}")
brew install "${dependencies[@]}"

Pre-Build

  1. Run the following from mingw64 or bash shell:
export NXDK_DIR="$(pwd)/third-party/nxdk"
eval "$(${NXDK_DIR}/bin/activate -s)"
cd "${NXDK_DIR}"
make NXDK_ONLY=y
make tools

Configure

  1. Create build directory

    mkdir -p build
  2. Configure the project

    cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE="${NXDK_DIR}/share/toolchain-nxdk.cmake"

Build

cmake --build build

Combined script

This script takes care of everything, except installing the prerequisites.

./build.sh

The default build directory is build. You can override it or force a clean build:

./build.sh --build-dir cmake-build-nxdk-release
./build.sh --clean
./build.sh build clean

To launch the same build from shells outside MSYS2 on Windows, use one of these wrappers:

build-mingw64.bat
./build-mingw64.sh

CLion on Windows

The repository now includes CLion-friendly nxdk wrapper scripts in cmake/ plus shared run configurations in .run/.

  1. Open the project in CLion and let it import the nxdk preset from CMakePresets.json.
  2. If CLion cached an older failed configure, reload the CMake project or remove cmake-build-nxdk-release/CMakeCache.txt once.
  3. Use the normal build button with the nxdk profile selected.
  4. Build Moonlight.iso first, then use the shared Run Moonlight ISO in xemu run configuration to launch it in xemu.

For the first xemu launch, you can either run the shared Setup portable xemu configuration or run the Windows wrapper manually:

scripts\setup-xemu.cmd

The shared CLion run configurations now call scripts\setup-xemu.cmd and scripts\run-xemu.cmd directly through C:\Windows\System32\cmd.exe. Those wrappers start MSYS2 with the expected mingw64 environment and then launch the corresponding .sh scripts.

The setup script downloads xemu and the emulator support files into .local/xemu, then refreshes launcher manifests used by scripts/run-xemu.sh.

If you only want the emulator without the ROM/HDD support bundle, run:

scripts\setup-xemu.cmd --skip-support-files

Todo

[TOC]

About

No description or website provided.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Generated from LizardByte/template-base