summaryrefslogtreecommitdiff
path: root/README.md
blob: ac0ac50cccabc58387c22af8cb1bcfcbf8e57a03 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# Legend of Zelda: Majora's Mask (U) 1.0

This is a disassembly of Legend of Zelda: Majora's Mask (U) 1.0

It builds the following ROM:
* rom.z64 `md5: 2a0a8acb61538235bc1094d297fb6556`

# Installation

## Step 1:

If you're running Windows 10, [install WSL](https://docs.microsoft.com/en-us/windows/wsl/install-win10). If you're running an older version of Windows, install a Linux VM. If you're already running a Linux OS, you're good to go.

## Step 2:

Using sudo apt-get, install the following packages:

```
make
git
binutils-mips-linux-gnu
python3
```

## Step 2:
Download build_tools.zip from the Releases section and extract it to the tools folder.

## Step 3:

Open up your .bashrc file (~/.bashrc), scroll to the bottom, and add the following, replacing `/path/to/qemu-mips` with the location the qemu-mips you extracted from the build tools:

```
export QEMU_IRIX="/path/to/qemu-mips"
export MIPS_BINUTILS_PREFIX=mips-linux-gnu-
```

Save and close/reopen your terminal window.

## Step 4:
Make a fork of the main repository https://github.com/Rozelette/Majora-Unmasked.git and clone your fork.

## Step 5:

Navigate to the Majora-Unmasked folder you just cloned. Type the following commands:

```
git submodule update --init --recursive
pip install -r requirements.txt
```

## Step 6:

You will need to acquire a copy of the ROM. The md5 of this ROM should be `2a0a8acb61538235bc1094d297fb6556`.

Once this has been done, type, replacing `<ROM>` with the name of your ROM:
```
./tools/extract_baserom.py <ROM>
```

This will extract all the individual files in the ROM into a newly created baserom folder, as well as decompress the compressed files in a newly created decomp folder.

Next, type:
```
make disasm
```

This will create the build folders as well as a newly created asm folder containing the disassemblies of nearly all the files containing code.

## Step 7:

Type the following:
```
make
```

If all goes well, a ROM rom.z64 should be built and the following text should be printed:

`rom.z64: OK `

If you instead see the following:

```
rom.z64: FAILED
md5sum: WARNING: 1 computed checksum did NOT match
```

This means that something is wrong with the ROM's contents. Either the baserom files are incorrect due to a bad ROM, or some piece of code is not matching.