summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorMegaMech <MegaMech@users.noreply.github.com>2024-01-14 14:32:13 -0700
committerGitHub <noreply@github.com>2024-01-14 14:32:13 -0700
commite09b3797efbe2ef7ad461582ce90c4e9218032a6 (patch)
treedb5bed7c6efebbd69556f63863004b7f91a2ef68 /docs
parent7b408209af40161f71eaf34fadc6b556304eba42 (diff)
More docs (#543)
* More docs
Diffstat (limited to 'docs')
-rw-r--r--docs/basics/BUILD_WINDOWS.md3
-rw-r--r--docs/basics/actors.md2
-rw-r--r--docs/basics/actorsmenu.md77
-rw-r--r--docs/basics/basicconcepts.md (renamed from docs/basics/Basic Concepts.md)9
-rw-r--r--docs/basics/basicsmenu.md125
-rw-r--r--docs/basics/compiling.md76
-rw-r--r--docs/basics/courses.md2
-rw-r--r--docs/basics/coursesmenu.md77
-rw-r--r--docs/basics/menu.html68
-rw-r--r--docs/basics/placeholder.pngbin0 -> 6761 bytes
-rw-r--r--docs/basics/terminology.md7
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
new file mode 100644
index 000000000..4ad36b792
--- /dev/null
+++ b/docs/basics/placeholder.png
Binary files differ
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