mirror of https://github.com/zeldaret/oot.git
Ido Static Recomp (#337)
* Ido Recomp test * try 2 * Recomp by default * Fix Jenkinsfile * Fix 2 * CFE errors * CFE fix -O2 * Update Makefile Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com> * Update README.md Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com> * Update README.md Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com> * PR suggestions * PR updates Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>
This commit is contained in:
parent
3cb03b2b2f
commit
6f54edd365
|
@ -11,13 +11,25 @@ pipeline {
|
|||
steps {
|
||||
echo 'Setting up...'
|
||||
sh 'cp /usr/local/etc/roms/baserom_oot.z64 baserom_original.z64'
|
||||
sh 'make -j`nproc` setup'
|
||||
sh 'make -j setup'
|
||||
}
|
||||
}
|
||||
stage('Build (qemu-irix)') {
|
||||
when {
|
||||
branch 'master'
|
||||
}
|
||||
steps {
|
||||
sh 'ORIG_COMPILER=1 make -j'
|
||||
}
|
||||
}
|
||||
stage('Build') {
|
||||
when {
|
||||
not {
|
||||
branch 'master'
|
||||
}
|
||||
}
|
||||
steps {
|
||||
echo 'Building...'
|
||||
sh 'make -j`nproc`'
|
||||
sh 'make -j'
|
||||
}
|
||||
}
|
||||
stage('Report Progress') {
|
||||
|
|
14
Makefile
14
Makefile
|
@ -6,6 +6,8 @@
|
|||
COMPARE ?= 1
|
||||
# If NON_MATCHING is 1, define the NON_MATCHING C flag when building
|
||||
NON_MATCHING ?= 0
|
||||
# If ORIG_COMPILER is 1, compile with QEMU_IRIX and the original compiler
|
||||
ORIG_COMPILER ?= 0
|
||||
|
||||
ifeq ($(NON_MATCHING),1)
|
||||
CFLAGS := -DNON_MATCHING
|
||||
|
@ -21,22 +23,26 @@ else
|
|||
$(error Please install or build mips-linux-gnu)
|
||||
endif
|
||||
|
||||
# check that either QEMU_IRIX is set or qemu-irix package installed
|
||||
CC := tools/ido_recomp/linux/7.1/cc
|
||||
CC_OLD := tools/ido_recomp/linux/5.3/cc
|
||||
|
||||
# if ORIG_COMPILER is 1, check that either QEMU_IRIX is set or qemu-irix package installed
|
||||
ifeq ($(ORIG_COMPILER),1)
|
||||
ifndef QEMU_IRIX
|
||||
QEMU_IRIX := $(shell which qemu-irix)
|
||||
ifeq (, $(QEMU_IRIX))
|
||||
$(error Please install qemu-irix package or set QEMU_IRIX env var to the full qemu-irix binary path)
|
||||
endif
|
||||
endif
|
||||
CC = $(QEMU_IRIX) -L tools/ido7.1_compiler tools/ido7.1_compiler/usr/bin/cc
|
||||
CC_OLD = $(QEMU_IRIX) -L tools/ido5.3_compiler tools/ido5.3_compiler/usr/bin/cc
|
||||
endif
|
||||
|
||||
AS := $(MIPS_BINUTILS_PREFIX)as
|
||||
LD := $(MIPS_BINUTILS_PREFIX)ld
|
||||
OBJCOPY := $(MIPS_BINUTILS_PREFIX)objcopy
|
||||
OBJDUMP := $(MIPS_BINUTILS_PREFIX)objdump
|
||||
|
||||
CC := $(QEMU_IRIX) -L tools/ido7.1_compiler tools/ido7.1_compiler/usr/bin/cc
|
||||
CC_OLD := $(QEMU_IRIX) -L tools/ido5.3_compiler tools/ido5.3_compiler/usr/bin/cc
|
||||
|
||||
# Check code syntax with host compiler
|
||||
CC_CHECK := gcc -fno-builtin -fsyntax-only -fsigned-char -std=gnu90 -Wall -Wextra -Wno-format-security -Wno-unknown-pragmas -Wno-unused-parameter -Wno-unused-variable -Wno-missing-braces -D _LANGUAGE_C -D NON_MATCHING -Iinclude -Isrc -include stdarg.h
|
||||
|
||||
|
|
16
README.md
16
README.md
|
@ -55,22 +55,22 @@ sudo apt-get update
|
|||
sudo apt-get install git build-essential binutils-mips-linux-gnu python3
|
||||
```
|
||||
|
||||
#### 2. Download qemu-irix
|
||||
#### 2. Download and set up qemu-irix (optional)
|
||||
|
||||
Note: We are currently testing a recompiled version of the compiler that does not require qemu-irix.
|
||||
This step allows you to build with qemu-irix and the original compiler by adding `ORIG_COMPILER=1` to the `make` command in step 6, for example if you experience issues with the recompiled version.
|
||||
|
||||
Download qemu-irix from the Releases section in the repository. Place it at a location of your choosing.
|
||||
|
||||
#### 3. Set environment variables
|
||||
|
||||
Open up your .bashrc file (~/.bashrc), scroll to the bottom, and add the following, replacing the paths as necessary:
|
||||
|
||||
```text
|
||||
export QEMU_IRIX="path/to/your/qemu-irix"
|
||||
export MIPS_BINUTILS_PREFIX=mips-linux-gnu-
|
||||
```
|
||||
|
||||
Save and close/reopen your terminal window.
|
||||
|
||||
#### 4. Clone the repository
|
||||
#### 3. Clone the repository
|
||||
|
||||
Clone `https://github.com/zeldaret/oot.git` where you wish to have the project, with a command such as:
|
||||
|
||||
|
@ -78,12 +78,12 @@ Clone `https://github.com/zeldaret/oot.git` where you wish to have the project,
|
|||
git clone https://github.com/zeldaret/oot.git
|
||||
```
|
||||
|
||||
#### 5. Prepare a base ROM
|
||||
#### 4. Prepare a base ROM
|
||||
|
||||
Copy over your copy of the Master Quest (Debug) ROM inside the root of this new project directory.
|
||||
Rename the file to "baserom_original.z64" or "baserom_original.n64", depending on the original extension.
|
||||
|
||||
#### 6. Setup the ROM and build process
|
||||
#### 5. Setup the ROM and build process
|
||||
|
||||
Setup and extract everything from your ROM with the following command:
|
||||
|
||||
|
@ -94,7 +94,7 @@ make setup
|
|||
This will generate a new ROM called "baserom.z64" that will have the overdump removed and the header patched.
|
||||
It will also extract the individual assets from the ROM.
|
||||
|
||||
#### 7. Build the ROM
|
||||
#### 6. Build the ROM
|
||||
|
||||
Run make to build the ROM.
|
||||
Make sure your path to the project is not too long, otherwise this process may error.
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue