summaryrefslogtreecommitdiff
path: root/docs/tutorial/contents.md
blob: 0435becb435938fc25f86b8e8ee2692750636a5b (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
# Getting started

## [Introduction to decomp](introduction.md)
- What we are doing
- Structure of the code

## Pre-decompilation
- Building the repo (follow the instructions in the [README.md](../../README.md))
- Most of us use VSCode. Some useful information is [here](vscode.md). 
<!-- Feel free to document Emacs/Vi/Sublime/whatever if you're familiar with them -->
- Choosing a first actor (You want something small that has simple interactions with the environment. A simple NPC can also work, and is what we will use as an illustration for most of the tutorial. There is a collection of actors we think are suitable for beginners on the spreadsheet or Trello)

## Decompilation

- [Begining decompilation: order, Init and the actor struct](beginning_decomp.md)
	- Order of decompilation
	- Init and common actor features
		- Initchains
		- Actors and dynapoly actors
		- Colliders
		- Skelanime

- [The rest of the functions in the actor](other_functions.md)
    - Order of decompilation
    - Action Functions and other functions

- [Draw functions](draw_functions.md)

- [Data, migration and non-migration](data.md)
	- Importing the data: early and late
	- Segmented pointers
	- Fake symbols
	- Inlining

- [Documenting a decompiled file](documenting.md)

## [Object Decompilation](object_decomp.md)
- Object files
- How we decompile objects

## After Decompilation

- See the [CONTRIBUTING.md](../../CONTRIBUTING.md) for most of the details for submitting PRs. Remember to format again after making adjustments from reviews!
- More information about specific preparations is in [this document](merging.md).

## Appendices
- [Types, Structs and Padding](types_structs_padding.md) (a miscellany of useful stuff)
- [Advanced control flow](advanced_control_flow.md) (an example of a more complex function which mips2c is not so good at)
- [Using the diff script and the permuter](diff_and_permuter.md) (using the diff script and the permuter to match something)
	- control flow (branches) -> instruction ordering -> register allocation -> stack
- [Helper scripts] TODO: link when merged

To be written, maybe

- How we use git and GitHub
- Some notes on the basic structure of N64 MIPS
- Glossary
- Conventions