diff --git a/.gitignore b/.gitignore index 503b69954..5870ab2d3 100755 --- a/.gitignore +++ b/.gitignore @@ -42,6 +42,8 @@ # General project-specific ignores __pycache__/* doxygen/doxygen/* +docs/html/* +xml/* /build/* # decomp permuter /nonmatchings/* diff --git a/docs/Understanding the Basics/index.md b/docs/Understanding the Basics/index.md deleted file mode 100644 index 922eb77eb..000000000 --- a/docs/Understanding the Basics/index.md +++ /dev/null @@ -1,2 +0,0 @@ -\subpage basics "test" -# test diff --git a/docs/BUILD_WINDOWS.md b/docs/basics/BUILD_WINDOWS.md similarity index 99% rename from docs/BUILD_WINDOWS.md rename to docs/basics/BUILD_WINDOWS.md index d9040646b..ac2574646 100644 --- a/docs/BUILD_WINDOWS.md +++ b/docs/basics/BUILD_WINDOWS.md @@ -1,4 +1,4 @@ -\subpage basics "Compiling" +@page build ## Compiling mk64 Decomp In Windows diff --git a/docs/Understanding the Basics/Basic Concepts.md b/docs/basics/Basic Concepts.md similarity index 99% rename from docs/Understanding the Basics/Basic Concepts.md rename to docs/basics/Basic Concepts.md index 51dbbe659..b3b26019c 100644 --- a/docs/Understanding the Basics/Basic Concepts.md +++ b/docs/basics/Basic Concepts.md @@ -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. diff --git a/docs/basics/basics.md b/docs/basics/basics.md new file mode 100644 index 000000000..1dc2c9986 --- /dev/null +++ b/docs/basics/basics.md @@ -0,0 +1,9 @@ +@page basics Understanding the Basics + +
Essential skills and concepts to help you get started in mk64 decomp
+ + +@subpage compiling +@subpage concepts +@subpage build +@subpage test diff --git a/docs/basics/compiling.md b/docs/basics/compiling.md new file mode 100644 index 000000000..e53b1905f --- /dev/null +++ b/docs/basics/compiling.md @@ -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 -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 +``` \ No newline at end of file diff --git a/docs/basics/test.md b/docs/basics/test.md new file mode 100644 index 000000000..3daa2fbbd --- /dev/null +++ b/docs/basics/test.md @@ -0,0 +1,3 @@ +@page test +# test +sdfsfdds \ No newline at end of file