mirror of
				https://github.com/hedge-dev/XenonRecomp.git
				synced 2025-10-30 07:11:38 +00:00 
			
		
		
		
	Compare commits
	
		
			25 commits
		
	
	
		
			f17f055901
			...
			c9dd9cc893
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | c9dd9cc893 | ||
|   | ddd128bcca | ||
|   | 6a863f4cd3 | ||
|   | e4d8d6987a | ||
|   | ef459b2b51 | ||
|   | 74624c1364 | ||
|   | e7984980b8 | ||
|   | e6e872784c | ||
|   | aeae099f7b | ||
|   | 789cb7c8a2 | ||
|   | be7f9c2626 | ||
|   | b1f67eef40 | ||
|   | 9f77426170 | ||
|   | aef9e00e38 | ||
|   | 979ae519ae | ||
|   | 745f0715a5 | ||
|   | 223514cae9 | ||
|   | f08dc5b976 | ||
|   | 73467700c9 | ||
|   | 1d7852d709 | ||
|   | 72bbf9d008 | ||
|   | 4385b4ae8b | ||
|   | 16b659f755 | ||
|   | 7be7907a37 | ||
|   | 4b0a98bbc3 | 
					 2 changed files with 124 additions and 2 deletions
				
			
		
							
								
								
									
										122
									
								
								.github/workflows/cmake-multi-platform.yml
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										122
									
								
								.github/workflows/cmake-multi-platform.yml
									
										
									
									
										vendored
									
									
										Normal 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 }} | ||||
|  | @ -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 | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue