mirror of
https://github.com/zeldaret/oot.git
synced 2024-11-14 21:40:03 +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:
parent
2f54db142e
commit
4f6e33e302
2 changed files with 38 additions and 15 deletions
30
Makefile
30
Makefile
|
@ -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
|
||||||
|
|
23
README.md
23
README.md
|
@ -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.
|
||||||
|
|
Loading…
Reference in a new issue