1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-11-25 09:45:02 +00:00

Add multiversion instructions to README (#2247)

* Add multiversion instructions to README

* Direct users toward Makefile

* Modify options "below" instead of "in the Makefile"

* Reword
This commit is contained in:
cadmic 2024-10-14 16:49:40 -07:00 committed by GitHub
parent 2f54db142e
commit 4f6e33e302
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 38 additions and 15 deletions

View file

@ -4,20 +4,25 @@ MAKEFLAGS += --no-builtin-rules
SHELL = /bin/bash SHELL = /bin/bash
.SHELLFLAGS = -o pipefail -c .SHELLFLAGS = -o pipefail -c
# Build options can either be changed by modifying the makefile, or by building with 'make SETTING=value' #### Build options ####
# It is also possible to override default settings in a file called .make_options.mk with 'SETTING=value'.
# Build options can be changed by modifying them below, or by appending 'SETTING=value' to all 'make' commands
# (e.g. 'make setup VERSION=ntsc-1.0' and 'make VERSION=ntsc-1.0' to build the NTSC 1.0 version).
# Alternatively, you can create a file called .make_options.mk (gitignored by default) and add 'SETTING=value'
# there to avoid modifying the Makefile directly.
-include .make_options.mk -include .make_options.mk
# If COMPARE is 1, check the output md5sum after building # If COMPARE is 1, check the output md5sum after building. Set to 0 when modding.
COMPARE ?= 1 COMPARE ?= 1
# If NON_MATCHING is 1, define the NON_MATCHING C flag when building # If NON_MATCHING is 1, define the NON_MATCHING C flag when building. Set to 1 when modding.
NON_MATCHING ?= 0 NON_MATCHING ?= 0
# If ORIG_COMPILER is 1, compile with QEMU_IRIX and the original compiler # If ORIG_COMPILER is 1, compile with QEMU_IRIX and the original compiler.
ORIG_COMPILER ?= 0 ORIG_COMPILER ?= 0
# If COMPILER is "gcc", compile with GCC instead of IDO. # If COMPILER is "gcc", compile with GCC instead of IDO.
COMPILER ?= ido COMPILER ?= ido
# Target game version. Currently the following versions are supported: # Target game version. Ensure the corresponding input ROM is placed in baseroms/$(VERSION)/baserom.z64.
# Currently the following versions are supported:
# pal-1.0 N64 PAL 1.0 (Europe) # pal-1.0 N64 PAL 1.0 (Europe)
# ntsc-1.2 N64 NTSC 1.2 (Japan/US depending on REGION) # ntsc-1.2 N64 NTSC 1.2 (Japan/US depending on REGION)
# pal-1.1 N64 PAL 1.1 (Europe) # pal-1.1 N64 PAL 1.1 (Europe)
@ -33,24 +38,25 @@ COMPILER ?= ido
# ntsc-1.0 N64 NTSC 1.0 (Japan/US depending on REGION) # ntsc-1.0 N64 NTSC 1.0 (Japan/US depending on REGION)
# ntsc-1.1 N64 NTSC 1.1 (Japan/US depending on REGION) # ntsc-1.1 N64 NTSC 1.1 (Japan/US depending on REGION)
VERSION ?= gc-eu-mq-dbg VERSION ?= gc-eu-mq-dbg
# Number of threads to extract and compress with # Number of threads to extract and compress with.
N_THREADS ?= $(shell nproc) N_THREADS ?= $(shell nproc)
# Check code syntax with host compiler # Check code syntax with host compiler.
RUN_CC_CHECK ?= 1 RUN_CC_CHECK ?= 1
# Set prefix to mips binutils binaries (mips-linux-gnu-ld => 'mips-linux-gnu-') - Change at your own risk! # Set prefix to mips binutils binaries (mips-linux-gnu-ld => 'mips-linux-gnu-') - Change at your own risk!
# In nearly all cases, not having 'mips-linux-gnu-*' binaries on the PATH is indicative of missing dependencies # In nearly all cases, not having 'mips-linux-gnu-*' binaries on the PATH indicates missing dependencies.
MIPS_BINUTILS_PREFIX ?= mips-linux-gnu- MIPS_BINUTILS_PREFIX ?= mips-linux-gnu-
# Emulator w/ flags # Emulator w/ flags for 'make run'.
N64_EMULATOR ?= N64_EMULATOR ?=
# Set to override game region in the ROM header. Options: JP, US, EU # Set to override game region in the ROM header (options: JP, US, EU). This can be used to build a fake US version
# of the debug ROM for better emulator compatibility, or to build US versions of NTSC N64 ROMs.
# REGION ?= US # REGION ?= US
CFLAGS ?= CFLAGS ?=
CPPFLAGS ?= CPPFLAGS ?=
CPP_DEFINES ?= CPP_DEFINES ?=
REGIONAL_CHECKSUM := 0
# Version-specific settings # Version-specific settings
REGIONAL_CHECKSUM := 0
ifeq ($(VERSION),ntsc-1.0) ifeq ($(VERSION),ntsc-1.0)
REGIONAL_CHECKSUM := 1 REGIONAL_CHECKSUM := 1
REGION ?= JP REGION ?= JP

View file

@ -25,11 +25,23 @@ the codebase can drastically change at any time. Also note that some parts of th
This is a WIP **decompilation** of ***The Legend of Zelda: Ocarina of Time***. The purpose of the project is to recreate a source code base for the game from scratch, using information found inside the game along with static and/or dynamic analysis. **It is not producing a PC port.** For more information you can get in touch with the team on our [Discord server][discord]. This is a WIP **decompilation** of ***The Legend of Zelda: Ocarina of Time***. The purpose of the project is to recreate a source code base for the game from scratch, using information found inside the game along with static and/or dynamic analysis. **It is not producing a PC port.** For more information you can get in touch with the team on our [Discord server][discord].
The only build currently supported is Master Quest (Debug), but other versions are planned to be supported. It builds the following versions:
It builds the following ROM: | Name | Build timestamp | Description | MD5 hash of input ROM(s) |
|--------------|-------------------|-------------------------------------------|--------------------------|
| pal-1.0 | 98-11-10 14:34:22 | PAL 1.0 (Europe) | `e040de91a74b61e3201db0e2323f768a` |
| ntsc-1.2 | 98-11-12 18:17:03 | NTSC 1.2 (Japan/US) | `2258052847bdd056c8406a9ef6427f13`<br>`57a9719ad547c516342e1a15d5c28c3d` |
| pal-1.1 | 98-11-18 17:36:49 | PAL 1.1 (Europe) | `d714580dd74c2c033f5e1b6dc0aeac77` |
| gc-jp | 02-10-29 23:49:53 | GameCube Japan | `33fb7852c180b18ea0b9620b630f413f` |
| gc-jp-mq | 02-10-30 00:15:15 | GameCube Japan Master Quest | `69895c5c78442260f6eafb2506dc482a` |
| gc-us | 02-12-19 13:28:09 | GameCube US | `cd09029edcfb7c097ac01986a0f83d3f` |
| gc-us-mq | 02-12-19 14:05:42 | GameCube US Master Quest | `da35577fe54579f6a266931cc75f512d` |
| gc-eu-mq-dbg | 03-02-21 00:16:31 | GameCube Europe/PAL Master Quest Debug | `75e344f41c26ec2ec5ad92caa9e25629`<br>`8ca71e87de4ce5e9f6ec916202a623e9`<br>`f751d1a097764e2337b1ac9ba1e27699`<br>`dde376d47187b931820d5b2957cded14` |
| gc-eu | 03-02-21 20:12:23 | GameCube Europe/PAL | `2c27b4e000e85fd78dbca551f1b1c965` |
| gc-eu-mq | 03-02-21 20:37:19 | GameCube Europe/PAL Master Quest | `1618403427e4344a57833043db5ce3c3` |
| gc-jp-ce | 03-10-08 21:53:00 | GameCube Japan (Collector's Edition Disc) | `0c13e0449a28ea5b925cdb8af8d29768` |
* oot-gc-eu-mq-dbg.z64 `md5: 75e344f41c26ec2ec5ad92caa9e25629` The default version is `gc-eu-mq-dbg`, i.e. the GameCube Europe/PAL Master Quest Debug ROM.
**Note: This repository does not include any of the assets necessary to build the ROM. A prior copy of the game is required to extract the needed assets.** **Note: This repository does not include any of the assets necessary to build the ROM. A prior copy of the game is required to extract the needed assets.**
@ -151,6 +163,11 @@ This means that the built ROM isn't the same as the base one, so something went
Both of these have the disadvantage that the ordering of the terminal output is scrambled, so for debugging it is best to stick to one thread (i.e. not pass `-j` or `-jN`). Both of these have the disadvantage that the ordering of the terminal output is scrambled, so for debugging it is best to stick to one thread (i.e. not pass `-j` or `-jN`).
## Changing build options
The project Makefile is fairly configurable and can be used to build other versions of the game or prepare the repo for modding.
See the options outlined at the top of the Makefile for more information.
## Contributing ## Contributing
All contributions are welcome. This is a group effort, and even small contributions can make a difference. All contributions are welcome. This is a group effort, and even small contributions can make a difference.