Compare commits

...

25 commits

Author SHA1 Message Date
Sakimotor
c9dd9cc893
Merge 6a863f4cd3 into ddd128bcca 2025-08-07 03:17:39 +02:00
Skyth (Asilkan)
ddd128bcca
Update outdated info in README. (#159) 2025-08-04 16:56:26 +03:00
Sakimotor
6a863f4cd3
Update cmake-multi-platform.yml 2025-03-04 21:41:53 +01:00
Sakimotor
e4d8d6987a
Update cmake-multi-platform.yml 2025-03-04 21:40:45 +01:00
Sakimotor
ef459b2b51
Update cmake-multi-platform.yml 2025-03-04 21:36:45 +01:00
Sakimotor
74624c1364
Update cmake-multi-platform.yml 2025-03-04 15:08:32 +01:00
Sakimotor
e7984980b8
Update cmake-multi-platform.yml 2025-03-03 13:06:02 +01:00
Sakimotor
e6e872784c
Update README.md 2025-03-03 12:56:01 +01:00
Sakimotor
aeae099f7b
Update cmake-multi-platform.yml 2025-03-03 12:16:09 +01:00
Sakimotor
789cb7c8a2
Update cmake-multi-platform.yml 2025-03-03 12:13:31 +01:00
Sakimotor
be7f9c2626
Update cmake-multi-platform.yml 2025-03-03 12:12:13 +01:00
Sakimotor
b1f67eef40
Update cmake-multi-platform.yml 2025-03-03 12:10:29 +01:00
Sakimotor
9f77426170
Update cmake-multi-platform.yml 2025-03-03 12:02:14 +01:00
Sakimotor
aef9e00e38
Update cmake-multi-platform.yml 2025-03-03 11:35:41 +01:00
Sakimotor
979ae519ae
Update cmake-multi-platform.yml 2025-03-03 11:32:36 +01:00
Sakimotor
745f0715a5
Update cmake-multi-platform.yml 2025-03-03 11:21:01 +01:00
Sakimotor
223514cae9
Update cmake-multi-platform.yml 2025-03-03 11:12:59 +01:00
Sakimotor
f08dc5b976
Update cmake-multi-platform.yml 2025-03-03 10:23:11 +01:00
Sakimotor
73467700c9
Update cmake-multi-platform.yml 2025-03-03 10:08:47 +01:00
Sakimotor
1d7852d709
Update cmake-multi-platform.yml 2025-03-03 10:05:32 +01:00
Sakimotor
72bbf9d008
Update cmake-multi-platform.yml 2025-03-03 10:00:35 +01:00
Sakimotor
4385b4ae8b
Update cmake-multi-platform.yml 2025-03-03 09:49:48 +01:00
Sakimotor
16b659f755
Update cmake-multi-platform.yml 2025-03-03 09:40:07 +01:00
Sakimotor
7be7907a37
Create cmake-multi-platform.yml 2025-03-03 09:33:13 +01:00
Sakimotor
4b0a98bbc3
Update README.md 2025-03-03 09:13:21 +01:00
2 changed files with 124 additions and 2 deletions

View file

@ -0,0 +1,122 @@
name: Build stuff
on:
push:
pull_request:
workflow_dispatch:
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest]
build_type: [Debug]
include:
- os: windows-latest
c_compiler: clang-cl
cpp_compiler: clang-cl
- os: ubuntu-latest
c_compiler: clang
cpp_compiler: clang++
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Install Ninja (Linux)
if: runner.os == 'Linux'
run: sudo apt-get update && sudo apt-get install -y ninja-build
shell: bash
- name: Install Ninja (Windows)
if: runner.os == 'Windows'
run: choco install ninja
shell: powershell
- name: Configure CMake (Linux)
if: runner.os == 'Linux'
run: >
cmake
-DCMAKE_CXX_COMPILER=${{ matrix.cpp_compiler }}
-DCMAKE_C_COMPILER=${{ matrix.c_compiler }}
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }}
-G Ninja
-S .
shell: bash
- name: Configure CMake (Windows)
if: runner.os == 'Windows'
run: >
cmake
-DCMAKE_CXX_COMPILER=${{ matrix.cpp_compiler }}
-DCMAKE_C_COMPILER=${{ matrix.c_compiler }}
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }}
-G Ninja
-S .
shell: powershell
- name: Build
run: ninja
- name: Package Artifacts (Linux)
if: runner.os == 'Linux'
run: |
mkdir -p artifacts
cp XenonRecomp/XenonRecomp artifacts/
cp XenonAnalyse/XenonAnalyse artifacts/
shell: bash
- name: Package Artifacts (Windows)
if: runner.os == 'Windows'
run: |
New-Item -ItemType Directory -Path artifacts
Copy-Item -Path XenonRecomp\XenonRecomp.exe -Destination artifacts\
Copy-Item -Path XenonAnalyse\XenonAnalyse.exe -Destination artifacts\
shell: powershell
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: XenonBinaries-${{ matrix.os }}
path: artifacts/*
release:
needs: build
runs-on: ubuntu-latest
steps:
- name: Download Linux Build Artifacts
uses: actions/download-artifact@v4
with:
name: XenonBinaries-ubuntu-latest
path: artifacts
- name: Download Windows Build Artifacts
uses: actions/download-artifact@v4
with:
name: XenonBinaries-windows-latest
path: artifacts
- name: Create GitHub Release
id: create_release
uses: softprops/action-gh-release@v2
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
with:
tag_name: ${{ github.ref_name }}
name: Release ${{ github.ref_name }}
body: |
**Automated release for** ${{ github.ref_name }}
- Includes builds for **Linux** and **Windows**.
draft: false
prerelease: false
files: |
artifacts/XenonBinaries-ubuntu-latest.zip
artifacts/XenonBinaries-windows-latest.zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View file

@ -1,6 +1,6 @@
# XenonRecomp
XenonRecomp is a tool that converts Xbox 360 executables into C++ code, which can then be recompiled for any platform. Currently, it only supports x86 platforms due to the use of x86 intrinsics.
XenonRecomp is a tool that converts Xbox 360 executables into C++ code, which can then be recompiled for any platform.
This project was heavily inspired by [N64: Recompiled](https://github.com/N64Recomp/N64Recomp), a similar tool for N64 executables.
@ -20,7 +20,7 @@ Vector registers' endianness handling is more complicated. Instead of swapping i
The FPU expects denormalized numbers to remain unmodified, while VMX instructions always flush them. This is managed by storing the current floating-point state in the CPU state struct and enabling or disabling denormal flushing as necessary before executing each instruction.
Most VMX instructions are implemented using x86 intrinsics. Luckily, the number of AVX intrinsics used is relatively low, so adding support for other architectures using libraries like [SIMD Everywhere](https://github.com/simd-everywhere/simde) might be possible.
Most VMX instructions are implemented using x86 intrinsics. Support for ARM64 is implemented using [SIMD Everywhere](https://github.com/simd-everywhere/simde).
### MMIO