diff options
| author | MegaMech <MegaMech@users.noreply.github.com> | 2024-01-14 14:32:13 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-01-14 14:32:13 -0700 |
| commit | e09b3797efbe2ef7ad461582ce90c4e9218032a6 (patch) | |
| tree | db5bed7c6efebbd69556f63863004b7f91a2ef68 /docs | |
| parent | 7b408209af40161f71eaf34fadc6b556304eba42 (diff) | |
More docs (#543)
* More docs
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/basics/BUILD_WINDOWS.md | 3 | ||||
| -rw-r--r-- | docs/basics/actors.md | 2 | ||||
| -rw-r--r-- | docs/basics/actorsmenu.md | 77 | ||||
| -rw-r--r-- | docs/basics/basicconcepts.md (renamed from docs/basics/Basic Concepts.md) | 9 | ||||
| -rw-r--r-- | docs/basics/basicsmenu.md | 125 | ||||
| -rw-r--r-- | docs/basics/compiling.md | 76 | ||||
| -rw-r--r-- | docs/basics/courses.md | 2 | ||||
| -rw-r--r-- | docs/basics/coursesmenu.md | 77 | ||||
| -rw-r--r-- | docs/basics/menu.html | 68 | ||||
| -rw-r--r-- | docs/basics/placeholder.png | bin | 0 -> 6761 bytes | |||
| -rw-r--r-- | docs/basics/terminology.md | 7 |
11 files changed, 407 insertions, 39 deletions
diff --git a/docs/basics/BUILD_WINDOWS.md b/docs/basics/BUILD_WINDOWS.md index ac2574646..67429d507 100644 --- a/docs/basics/BUILD_WINDOWS.md +++ b/docs/basics/BUILD_WINDOWS.md @@ -1,5 +1,4 @@ -@page build - +\page buildwindows Compiling for Windows ## Compiling mk64 Decomp In Windows ***This method is not recommended nor supported. However, it is the only solution to build in W7/W8. WSL is the path of least resistance, use that not this*** diff --git a/docs/basics/actors.md b/docs/basics/actors.md new file mode 100644 index 000000000..47a246e17 --- /dev/null +++ b/docs/basics/actors.md @@ -0,0 +1,2 @@ +\page actors How Actors Work +# Actors
\ No newline at end of file diff --git a/docs/basics/actorsmenu.md b/docs/basics/actorsmenu.md new file mode 100644 index 000000000..0f0adef03 --- /dev/null +++ b/docs/basics/actorsmenu.md @@ -0,0 +1,77 @@ +\page actorsmenu Actors + +\htmlonly + +How actors in mk64 works. There are two kinds of actors. + +<style> +.pagebutton { + display: inline-block; + margin-right: 1em; + margin-bottom: 1em; +} +.pagelink { + display: block; + background-color: rgb(40, 44, 52); + width: 320px; +} +.pageimg { + display: inline-block; + width: 100%; + position: relative; + overflow: hidden; +} +.content { + color: white; + font-size: 1em; + padding: 0; + margin: 0; +} +.pageheading { + padding: .5em .5em; + font-size: 18px; + color: white; + font-weight: bold; +} +.pagedescription { + color: #fff; + border-color: transparent; + opacity: 0.75; + height: 84px; + text-overflow: ellipsis; + overflow: hidden; + margin-top: 10px; + display: block; + padding: 10px; + text-decoration: none; + line-height: 1.64em; + font-size: 1em; + font-weight: normal; +} +.pagea { + display: inline-block; +} +p { + margin: 0; + padding: 0; +} +</style> + +<div class="pagebutton"> +<a class="pagea" href="actors.html"> +<div class="pagelink"> + <div class="pageimg"><img width=320 src="placeholder.png" /></div> + <div class="content"> + <div class="pageheading">Actors</div> + <div class="pagedescription"> + <p>Some actor stuff</p> + </div> + </div> +</div> +</a> +</div> + +\endhtmlonly + +\subpage actors + diff --git a/docs/basics/Basic Concepts.md b/docs/basics/basicconcepts.md index b3b26019c..f187fd838 100644 --- a/docs/basics/Basic Concepts.md +++ b/docs/basics/basicconcepts.md @@ -1,10 +1,5 @@ -@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. -* `s32/word/int` - A max size for a number. Data represented as 32 bits or 4 bytes: `0x00000001`. It consists of eight digits. -* `s16/half-word/short` - A number represented as 16 bits or 2 bytes: `0x0001`. It consists of four digits. Maximum value 65,535 (0xFFFF). -* `s8/byte/char` - A number represented as 8 bits or 1 byte: `0x01`. It consists of two digits. Maximum value 255 (0xFF). +@page concepts Basic Concepts +See terminology for explanations of terms. ## Addresses Computers use addresses to jump through code. This works similar to finding a house using its address. Except, that reaching the house is nearly instantaneous and it only contains more instructions and jumps or some data such as a texture or a text string. Also, when finished with the house, you travel back to the previous destination which may have some left-over instructions or more jumps. You can imagine this quickly becoming a spaghetti monster jumping all over the place. diff --git a/docs/basics/basicsmenu.md b/docs/basics/basicsmenu.md new file mode 100644 index 000000000..21c87c896 --- /dev/null +++ b/docs/basics/basicsmenu.md @@ -0,0 +1,125 @@ +\page basics Understanding the Basics + +\htmlonly + +Essential skills and concepts to help you get started with mk64 decomp. + +<style> +.pagebutton { + display: inline-block; + margin-right: 1em; + margin-bottom: 1em; +} +.pagelink { + display: block; + background-color: rgb(40, 44, 52); + width: 320px; +} +.pageimg { + display: inline-block; + width: 100%; + position: relative; + overflow: hidden; +} +.content { + color: white; + font-size: 1em; + padding: 0; + margin: 0; +} +.pageheading { + padding: .5em .5em; + font-size: 18px; + color: white; + font-weight: bold; +} +.pagedescription { + color: #fff; + border-color: transparent; + opacity: 0.75; + height: 84px; + text-overflow: ellipsis; + overflow: hidden; + margin-top: 10px; + display: block; + padding: 10px; + text-decoration: none; + line-height: 1.64em; + font-size: 1em; + font-weight: normal; +} +.pagea { + display: inline-block; +} +p { + margin: 0; + padding: 0; +} +</style> +<div class="pagebutton"> +<a class="pagea" href="compiling.html"> +<div class="pagelink"> + <div class="pageimg"><img width=320 src="placeholder.png" /></div> + <div class="content"> + <div class="pageheading">Installing mk64 Decomp</div> + <div class="pagedescription"> + <p>Steps for installing and building the game</p> + </div> + </div> +</div> +</a> +</div> + +<div class="pagebutton"> +<a class="pagea" href="test.html"> +<div class="pagelink"> + <div class="pageimg"><img width=320 src="placeholder.png" /></div> + <div class="content"> + <div class="pageheading">test</div> + <div class="pagedescription"> + <p>test</p> + </div> + </div> +</div> +</a> +</div class="pagebutton"> + + +<h2>Foundational Knowledge</h2> +<p>Become familiar with technical and low-level concepts.</p> + +<div class="pagebutton"> +<a class="pagea" href="basicconcepts.html"> +<div class="pagelink"> + <div class="pageimg"><img width=320 src="placeholder.png" /></div> + <div class="content"> + <div class="pageheading">Basic Concepts</div> + <div class="pagedescription"> + <p>Decomp, hexadecimal, cpu threads, addresses, and types to provide foundation knowledge.</p> + </div> + </div> +</div> +</a> +</div> + +<div class="pagebutton"> +<a class="pagea" href="terminology.html"> +<div class="pagelink"> + <div class="pageimg"><img width=320 src="placeholder.png" /></div> + <div class="content"> + <div class="pageheading">Decomp Terminology</div> + <div class="pagedescription"> + <p>Common terms used in low-level computing and decomp.</p> + </div> + </div> +</div> +</a> +</div> + +\endhtmlonly + +\subpage compiling +\subpage concepts +\subpage test +\subpage terminology +\subpage buildwindows
\ No newline at end of file diff --git a/docs/basics/compiling.md b/docs/basics/compiling.md index e53b1905f..b03556168 100644 --- a/docs/basics/compiling.md +++ b/docs/basics/compiling.md @@ -1,54 +1,47 @@ -@page compiling Compiling mk64 -## Dependencies - +@page compiling Installing mk64 Decomp +## Build Instructions 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. +* [Linux and WSL](#linux) +* [Arch](#arch) +* [Windows](#windows) +* [macOS](#macos) +* [Docker](#docker) -## EU Specific Steps (All versions) -Both EU builds first requires US to be built first: -``` -make -j -``` +### Compiling +* [US](#building-us) +* [EU](#building-eu) -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 +To add submodules run `git submodule update --init --recursive` after cloning. + +## Linux ``` sudo apt install build-essential pkg-config git binutils-mips-linux-gnu python3 zlib1g-dev libaudiofile-dev libcapstone-dev ``` -#### Arch Linux +### Arch -To install build dependencies: ``` sudo pacman -S base-devel capstone python ``` -Install the following AUR packages: +Install the following AUR package: * [mips64-elf-binutils](https://aur.archlinux.org/packages/mips64-elf-binutils) (AUR) -Review the n64decomp/sm64 readme for instructions to compile in other distributions. +Review the [n64decomp/sm64](https://github.com/n64decomp/sm64) readme for instructions to compile in other distributions. -#### Windows +## Windows -Compiling on Windows requires `MSYS2 MinGW x64`. The setup process is a tad intensive. +Not recommended. Use WSL unless this is your only option. [Instructions here](docs/BUILD_WINDOWS.md) -#### macOS +## macOS Install [Homebrew](https://brew.sh), then install the following dependencies: ``` @@ -56,9 +49,9 @@ 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`. +Build using `gmake` ensuring homebrew `make` is used instead of the old macOS system `make`. -#### Docker +## Docker Build the Docker image: ``` @@ -76,12 +69,35 @@ docker run --rm -v ${PWD}:/mk64 mk64 make -C tools docker run --rm -v ${PWD}:/mk64 mk64 make ``` -## Building +## Building US 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 +make -j +``` + +## Building EU + +Building EU requires US to be built first. See above. + +mk64 decomp supports two EU versions +* EU 1.0 `eu-1.0` +* EU 1.1 `eu-final` + +Build using +``` +make -j VERSION=eu-1.0 +``` +or +``` +make -j VERSION=eu-final +``` + +First-diff/diff commands for EU +``` +python3 first-diff.py --eu +./diff <function> -eu ```
\ No newline at end of file diff --git a/docs/basics/courses.md b/docs/basics/courses.md new file mode 100644 index 000000000..f3e9b250b --- /dev/null +++ b/docs/basics/courses.md @@ -0,0 +1,2 @@ +\page courses Courses +# Courses
\ No newline at end of file diff --git a/docs/basics/coursesmenu.md b/docs/basics/coursesmenu.md new file mode 100644 index 000000000..031bc0c66 --- /dev/null +++ b/docs/basics/coursesmenu.md @@ -0,0 +1,77 @@ +\page coursesmenu Courses + +\htmlonly + +How courses work in mk64 + +<style> +.pagebutton { + display: inline-block; + margin-right: 1em; + margin-bottom: 1em; +} +.pagelink { + display: block; + background-color: rgb(40, 44, 52); + width: 320px; +} +.pageimg { + display: inline-block; + width: 100%; + position: relative; + overflow: hidden; +} +.content { + color: white; + font-size: 1em; + padding: 0; + margin: 0; +} +.pageheading { + padding: .5em .5em; + font-size: 18px; + color: white; + font-weight: bold; +} +.pagedescription { + color: #fff; + border-color: transparent; + opacity: 0.75; + height: 84px; + text-overflow: ellipsis; + overflow: hidden; + margin-top: 10px; + display: block; + padding: 10px; + text-decoration: none; + line-height: 1.64em; + font-size: 1em; + font-weight: normal; +} +.pagea { + display: inline-block; +} +p { + margin: 0; + padding: 0; +} +</style> + +<div class="pagebutton"> +<a class="pagea" href="courses.html"> +<div class="pagelink"> + <div class="pageimg"><img width=320 src="placeholder.png" /></div> + <div class="content"> + <div class="pageheading">Courses</div> + <div class="pagedescription"> + <p>Some course related stuff</p> + </div> + </div> +</div> +</a> +</div> + +\endhtmlonly + +\subpage courses + diff --git a/docs/basics/menu.html b/docs/basics/menu.html new file mode 100644 index 000000000..271f00e41 --- /dev/null +++ b/docs/basics/menu.html @@ -0,0 +1,68 @@ +Essential skills and concepts to help you get started with mk64 decomp. + +<style> +.pagelink { + background-color: rgb(40, 44, 52); + width: 320px; + margin-right: 1em; + margin-bottom: 1em; + display: inline-block; +} +.content { + color: white; + padding-left: 15px; + font-size: 1em; +} +.pageheading { + padding: .75em .5em; + font-size: 18px; + color: white; + font-weight: bold; +} +.pagedescription { + color: #fff; + border-color: transparent; + opacity: 0.75; + height: 84; + text-overflow: ellipsis; + overflow: hidden; + margin-top: 10px; + display: block; + padding: 10px; + text-decoration: none; + line-height: 1.64em; + font-size: 1em; + font-weight: normal; +} +</style> + +<a href="compiling.md"> +<div class="pagelink"><img src="placeholder.png" /> + <div style="color: white; padding-left: 15px"> + <div class="pageheading">Compiling mk64</div> + <div class="pagedescription"><p>Instructions and dependencies required to build the game</p> + </div> + </div> +</div> +</a> + +<a href="Basic Concepts.md"> +<div class="pagelink"><img src="placeholder.png" /> + <div class="content"> + <div class="pageheading">Basic Concepts</div> + <div class="pagedescription"> + <p>Decomp, hexadecimal, cpu threads, addresses, and types to provide foundation knowledge.</> + </div> + </div> +</div> +</a> + +<a href="test"> +<div class="pagelink"><img src="placeholder.png" /> + <div class="content"> + <div class="pageheading">test</div> + <div class="pagedescription"><p>test</p> + </div> + </div> +</div> +</a> diff --git a/docs/basics/placeholder.png b/docs/basics/placeholder.png Binary files differnew file mode 100644 index 000000000..4ad36b792 --- /dev/null +++ b/docs/basics/placeholder.png diff --git a/docs/basics/terminology.md b/docs/basics/terminology.md new file mode 100644 index 000000000..fca42f931 --- /dev/null +++ b/docs/basics/terminology.md @@ -0,0 +1,7 @@ +\page terminology Terminology +#### 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. +* `s32/word/int` - A max size for a number. Data represented as 32 bits or 4 bytes: `0x00000001`. It consists of eight digits. +* `s16/half-word/short` - A number represented as 16 bits or 2 bytes: `0x0001`. It consists of four digits. Maximum value 65,535 (0xFFFF). +* `s8/byte/char` - A number represented as 8 bits or 1 byte: `0x01`. It consists of two digits. Maximum value 255 (0xFF).
\ No newline at end of file |
