Skip to content

Commit c157ac1

Browse files
update build
1 parent fd4d160 commit c157ac1

File tree

4 files changed

+96
-8
lines changed

4 files changed

+96
-8
lines changed

.github/workflows/ci.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -129,9 +129,9 @@ jobs:
129129
130130
- name: Build
131131
run: |
132-
nxdk_dir="$(pwd)/third-party/nxdk"
133-
eval "$(${nxdk_dir}/bin/activate -s)"
134-
cd "${nxdk_dir}"
132+
export NXDK_DIR="$(pwd)/third-party/nxdk"
133+
eval "$(${NXDK_DIR}/bin/activate -s)"
134+
cd "${NXDK_DIR}"
135135
make NXDK_ONLY=y
136136
make tools
137137

README.md

Lines changed: 64 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Moonlight-XboxOG
2-
Port of Moonlight for the Original Xbox. Unlikely to ever actually work. Do NOT use.
2+
Port of Moonlight for the Original Xbox. Unlikely to ever actually work. Do NOT use!
3+
4+
Nothing works, except the splash screen.
5+
6+
![Splash Screen](./docs/images/loading.png)
37

48

59
## Build
@@ -9,9 +13,9 @@ Port of Moonlight for the Original Xbox. Unlikely to ever actually work. Do NOT
913
1. Install nxdk prerequisites. Then run the following from mingw64 or bash shell:
1014

1115
```bash
12-
nxdk_dir="$(pwd)/third-party/nxdk"
13-
eval "$(${nxdk_dir}/bin/activate -s)"
14-
cd "${nxdk_dir}"
16+
export NXDK_DIR="$(pwd)/third-party/nxdk"
17+
eval "$(${NXDK_DIR}/bin/activate -s)"
18+
cd "${NXDK_DIR}"
1519
make NXDK_ONLY=y
1620
make tools
1721
```
@@ -27,11 +31,66 @@ make tools
2731
2. Configure the project
2832

2933
```bash
30-
cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE="${nxdk_dir}/share/toolchain-nxdk.cmake"
34+
cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE="${NXDK_DIR}/share/toolchain-nxdk.cmake"
3135
```
3236

3337
### Build
3438

3539
```bash
3640
cmake --build build
3741
```
42+
43+
### Combined script
44+
45+
This script takes care of everything, except installing the prerequisites.
46+
47+
```bash
48+
./build.sh
49+
```
50+
51+
## Todo:
52+
53+
- Build
54+
- [x] Build in GitHub CI
55+
- [x] Build with CMake instead of Make, see https://github.com/Ryzee119/Xenium-Tools/blob/master/CMakeLists.txt and https://github.com/abaire/nxdk_pgraph_tests/blob/4b7934e6d612a6d17f9ec229a2d72601a5caefc4/CMakeLists.txt
56+
- [ ] Get build environment working with CLion directly instead of using external terminal
57+
- [ ] debugger, see https://github.com/abaire/xbdm_gdb_bridge
58+
- [ ] Add a run config for CLion, see https://github.com/Subtixx/XSampleProject
59+
- [ ] Automatically run built xiso in Xemu
60+
- [x] Add unit testing framework
61+
- [x] Separate main build and unit test builds, due to cross compiling, see https://stackoverflow.com/a/64335131/11214013
62+
- [ ] Get tests to properly compile
63+
- [ ] Enable codecov
64+
- [ ] Enable sonarcloud
65+
- [ ] Build moonlight-common-c
66+
- [ ] Build custom enet, depends on https://github.com/XboxDev/nxdk/pull/680 or https://github.com/thrimbor/nxdk/tree/winsock/lib/winapi (seems unlikely nxdk will ever be ready for this, could definitely use some help with this)
67+
- Menus / Screens
68+
- [x] Loading/splash screen
69+
- [x] Initial loading screen, see https://github.com/XboxDev/nxdk/blob/master/samples/sdl_image/main.c
70+
- [x] Set video mode based on best available mode
71+
- [x] dynamic splash screen (size based on current resolution)
72+
- [ ] two images (background color, and logo) to reduce total size... stretch background color image... or don't even use an image for the background
73+
- [ ] Main/Home
74+
- [ ] Settings
75+
- [ ] Add Host
76+
- [ ] Game/App Selection
77+
- [ ] Host Details
78+
- [ ] App Details
79+
- [ ] Pause/Hotkey overlay
80+
- Streaming
81+
- [ ] Video - https://www.xbmc4xbox.org.uk/wiki/XBMC_Features_and_Supported_Formats#Xbox_supported_video_formats_and_resolutions
82+
- [ ] Audio
83+
- [ ] Mono
84+
- [ ] Stereo
85+
- [ ] 5.1 Surround
86+
- [ ] 7.1 Surround
87+
- Input
88+
- [ ] Gamepad Input
89+
- [ ] Keyboard Input
90+
- [ ] Mouse Input
91+
- [ ] Mouse Emulation via Gamepad
92+
- Misc.
93+
- [ ] Save config and pairing states, probably use nlohmann/json
94+
- [ ] Host pairing
95+
- [ ] Possibly, GPU overclocking, see https://github.com/GXTX/XboxOverclock
96+
- [ ] Docs via doxygen

build.sh

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
#!/bin/bash
2+
3+
# Exit immediately if a command exits with a non-zero status
4+
set -e
5+
6+
# Set the NXDK_DIR environment variable
7+
export NXDK_DIR="$(pwd)/third-party/nxdk"
8+
9+
# Activate the nxdk environment
10+
eval "$(${NXDK_DIR}/bin/activate -s)"
11+
12+
# Navigate to the nxdk directory
13+
cd "${NXDK_DIR}"
14+
15+
# Build nxdk with the specified options
16+
make NXDK_ONLY=y
17+
make tools
18+
19+
# Navigate back to the project root directory
20+
cd -
21+
22+
# Create the build directory
23+
mkdir -p build
24+
25+
# Configure the project
26+
cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE="${NXDK_DIR}/share/toolchain-nxdk.cmake"
27+
28+
# Build the project
29+
cmake --build build

docs/images/loading.png

77.6 KB
Loading

0 commit comments

Comments
 (0)