summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorAetias <aetias@outlook.com>2024-04-12 16:20:15 +0200
committerAetias <aetias@outlook.com>2024-04-12 16:20:15 +0200
commit298024544f24ce7141cdd958fed78563a84d2c00 (patch)
treeadda2ad855f9524fa04f486eddbb0a8797279fff /docs
parentb0cd453331252eb6877d5f4c41b3d302e9891e63 (diff)
Update docs
Diffstat (limited to 'docs')
-rw-r--r--docs/decompiling.md6
-rw-r--r--docs/inline_assembler.md4
-rw-r--r--docs/items.md156
3 files changed, 26 insertions, 140 deletions
diff --git a/docs/decompiling.md b/docs/decompiling.md
index 74c3125e..34333d77 100644
--- a/docs/decompiling.md
+++ b/docs/decompiling.md
@@ -36,6 +36,6 @@ _0211bf50: .word data_ov09_0211f59c
project.
## The Ghidra project
-We use a shared Ghidra project to analyze the game and decompile functions. We can't give access to the Ghidra server just yet,
-so come back here later for instructions on how to access it.
-
+We use a shared Ghidra project to analyze the game and decompile functions. To gain access to the project, install
+[Ghidra version 10.2.3](https://github.com/NationalSecurityAgency/ghidra/releases/tag/Ghidra_10.2.3_build) and request access
+from @aetias on Discord. \ No newline at end of file
diff --git a/docs/inline_assembler.md b/docs/inline_assembler.md
index 80957121..a6489998 100644
--- a/docs/inline_assembler.md
+++ b/docs/inline_assembler.md
@@ -25,8 +25,8 @@ bx lr
The built-in `ldconst` instruction will be replaced by an ARM load instruction and also append a pool constant to the function.
### Data sections
-Directives such as `.section`, `.data` and `.bss` are not supported in the inline assembler. There might be a way to change
-section with a `#pragma`, but there's no need to. Data should only be defined in standalone assembly or C/C++.
+Directives such as `.section`, `.data` and `.bss` are not supported in the inline assembler. It's possible to change section
+with a `#pragma`, but there's no need to. Data should only be defined in standalone assembly or C/C++.
### Comments
Inline assembly is handled by the compiler, so comments must be in C/C++ format. This means using `//` and `/* */` instead of
diff --git a/docs/items.md b/docs/items.md
index e551c6f9..d4192f23 100644
--- a/docs/items.md
+++ b/docs/items.md
@@ -1,141 +1,27 @@
# Items
This file documents what is known about items in the game.
- [Item IDs](#item-ids)
+- [Item flags](#item-flags)
## Item IDs
-Might be inaccurate due to there being seemingly multiple IDs/enumerations for items. Feel free to contribute to this list!
+See [Item.hpp](/include/Item/Item.hpp) for a list of known item IDs. Feel free to contribute to the list!
- ID | Item
--------|----------------
-`0x00` | Key
-`0x01` | Key
-`0x02` | Big Green Rupee
-`0x03` | Oshus's Sword
-`0x04` | Shield
-`0x05` | ---
-`0x06` | Yellow Force Gem
-`0x07` | Bomb
-`0x08` | Bow
-`0x09` | Green Rupee
-`0x0a` | Heart
-`0x0b` | ---
-`0x0c` | Boomerang
-`0x0d` | Shovel
-`0x0e` | Bombchu
-`0x0f` | Boss Key
-`0x10` | `rev`
-`0x11` | ---
-`0x12` | ---
-`0x13` | Sea Chart
-`0x14` | Sea Chart
-`0x15` | Sea Chart
-`0x16` | Sea Chart
-`0x17` | ---
-`0x18` | Blue Rupee
-`0x19` | Red Rupee
-`0x1a` | Big Red Rupee
-`0x1b` | Gold Rupee
-`0x1c` | Yellow Force Gem
-`0x1d` | Red Force Gem
-`0x1e` | Blue Force Gem
-`0x1f` | Hammer
-`0x20` | Grapple Hook
-`0x21` | Square Crystal
-`0x22` | Round Crystal
-`0x23` | Triangle Crystal
-`0x24` | `fp`
-`0x25` | ---
-`0x26` | Sun Key
-`0x27` | ---
-`0x28` | Quiver
-`0x29` | Bomb Bag
-`0x2a` | Bombchu Bag
-`0x2b` | ---
-`0x2c` | King's Key
-`0x2d` | Power Gem
-`0x2e` | Wisdom Gem
-`0x2f` | Courage Gem
-`0x30` | ---
-`0x31` | ---
-`0x32` | ---
-`0x33` | ---
-`0x34` | ---
-`0x35` | ---
-`0x36` | ---
-`0x37` | ---
-`0x38` | Ghost Key
-`0x39` | `tic_tada`
-`0x3a` | `tic_ohome`
-`0x3b` | `tic_rare`
-`0x3c` | `neckl`
-`0x3d` | Salvage Arm
-`0x3e` | ---
-`0x3f` | Telescope
-`0x40` | Notebook
-`0x41` | Letter
-`0x42` | Card
-`0x43` | `marron`
-`0x44` | Phantom Blade
-`0x45` | ---
-`0x46` | ---
-`0x47` | ---
-`0x48` | ---
-`0x49` | ---
-`0x4a` | ---
-`0x4b` | ---
-`0x4c` | ---
-`0x4d` | ---
-`0x4e` | ---
-`0x4f` | ---
-`0x50` | ---
-`0x51` | ---
-`0x52` | ---
-`0x53` | ---
-`0x54` | ---
-`0x55` | ---
-`0x56` | ---
-`0x57` | ---
-`0x58` | ---
-`0x59` | ---
-`0x5a` | ---
-`0x5b` | ---
-`0x5c` | ---
-`0x5d` | ---
-`0x5e` | ---
-`0x5f` | ---
-`0x60` | ---
-`0x61` | ---
-`0x62` | ---
-`0x63` | ---
-`0x64` | ---
-`0x65` | ---
-`0x66` | ---
-`0x67` | ---
-`0x68` | ---
-`0x69` | ---
-`0x6a` | ---
-`0x6b` | ---
-`0x6c` | ---
-`0x6d` | ---
-`0x6e` | ---
-`0x6f` | ---
-`0x70` | ---
-`0x71` | ---
-`0x72` | ---
-`0x73` | ---
-`0x74` | ---
-`0x75` | ---
-`0x76` | ---
-`0x77` | ---
-`0x78` | ---
-`0x79` | ---
-`0x7a` | ---
-`0x7b` | ---
-`0x7c` | ---
-`0x7d` | ---
-`0x7e` | ---
-`0x7f` | ---
-`0x80` | ---
-`0x81` | ---
-`0x82` | ---
-`0x83` | ---
+## Item flags
+See [Item.hpp](/include/Item/Item.hpp) for a list of known item flags. Feel free to contribute to the list!
+
+The item flags are different from item IDs, as the flags are used as an index to the `mItemFlags` in the [`ItemManager`](/include/Item/ItemManager.hpp)
+class.
+
+Interestingly, flags 0 through 10 are also the IDs of equipment items:
+
+0. Sword
+1. Shield
+2. Boomerang
+3. Shovel
+4. Bomb Bag
+5. Bow
+6. Grappling Hook
+7. Bombchu Bag
+8. Hammer
+9. Potion A
+10. Potion B