docs first setup (#542)

This commit is contained in:
MegaMech 2024-01-13 18:32:53 -07:00 committed by GitHub
parent 93adc02caf
commit 7b408209af
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 103 additions and 4 deletions

2
.gitignore vendored
View File

@ -42,6 +42,8 @@
# General project-specific ignores
__pycache__/*
doxygen/doxygen/*
docs/html/*
xml/*
/build/*
# decomp permuter
/nonmatchings/*

View File

@ -1,2 +0,0 @@
\subpage basics "test"
# test

View File

@ -1,4 +1,4 @@
\subpage basics "Compiling"
@page build
## Compiling mk64 Decomp In Windows

View File

@ -1,4 +1,4 @@
\page basics "Understanding the Basics"
@page concepts
#### Definitions
* `Jump/Branch/Function` - Tells the cpu to execute instructions somewhere else and come back here when done.
* `Hexadecimal` - A [numbering system](https://en.wikipedia.org/wiki/Hexadecimal) just like decimal (also called base-ten) or roman numerals. An easy method for programmers and computers to understand each other which groups/separates bytes of information in a readable format. Representing information as decimal results in an unreadable mess.

9
docs/basics/basics.md Normal file
View File

@ -0,0 +1,9 @@
@page basics Understanding the Basics
<div style="background-color: grey; width: 100%; height: 100px">Essential skills and concepts to help you get started in mk64 decomp</div>
@subpage compiling
@subpage concepts
@subpage build
@subpage test

87
docs/basics/compiling.md Normal file
View File

@ -0,0 +1,87 @@
@page compiling Compiling mk64
## Dependencies
The build system has the following package requirements:
binutils-mips >= 2.27
python3 >= 3.6
libaudiofile
To add submodules run `git submodule update --init --recursive` after cloning.
## EU Specific Steps (All versions)
Both EU builds first requires US to be built first:
```
make -j
```
Now build either EU 1.0 `eu-1.0` or EU 1.1 `eu-final`
```
make -j VERSION=eu-final
```
diff/first-diff commands
```
python3 first-diff.py --eu
./diff <function> -eu
```
#### Debian / Ubuntu
```
sudo apt install build-essential pkg-config git binutils-mips-linux-gnu python3 zlib1g-dev libaudiofile-dev libcapstone-dev
```
#### Arch Linux
To install build dependencies:
```
sudo pacman -S base-devel capstone python
```
Install the following AUR packages:
* [mips64-elf-binutils](https://aur.archlinux.org/packages/mips64-elf-binutils) (AUR)
Review the n64decomp/sm64 readme for instructions to compile in other distributions.
#### Windows
Compiling on Windows requires `MSYS2 MinGW x64`. The setup process is a tad intensive.
[Instructions here](docs/BUILD_WINDOWS.md)
#### macOS
Install [Homebrew](https://brew.sh), then install the following dependencies:
```
brew update
brew install python3 capstone coreutils make pkg-config tehzz/n64-dev/mips64-elf-binutils
```
When building, use `gmake` to ensure that homebrew `make` is used instead of the old, macOS system `make`.
#### Docker
Build the Docker image:
```
docker build -t mk64 .
```
When building and using other tools, append the following in front of every command you run:
```bash
docker run --rm -v ${PWD}:/mk64 mk64
```
For example:
```bash
docker run --rm -v ${PWD}:/mk64 mk64 make -C tools
docker run --rm -v ${PWD}:/mk64 mk64 make
```
## Building
Place a US version of Mario Kart 64 called `baserom.us.z64` into the project folder for asset extraction.
Run the following commands after pulling:
```bash
make -C tools
make
```

3
docs/basics/test.md Normal file
View File

@ -0,0 +1,3 @@
@page test
# test
sdfsfdds