mirror of
https://github.com/zeldaret/ph
synced 2026-05-31 09:21:38 -04:00
Update docs
This commit is contained in:
+5
-1
@@ -9,7 +9,7 @@
|
||||
- `asm/`: Non-decompiled assembly code
|
||||
- `ovXX/`: Code for overlay `XX`
|
||||
- `*.s`: Source file in assembly
|
||||
- `include/*.inc`: External symbols imported by respective source file
|
||||
- `*.inc`: External symbols imported by respective source file
|
||||
- `build/`: Build output
|
||||
- `arm9_linker_script.lcf`: Linker command file for ARM9 program, specifies the order to put code and data into the ROM
|
||||
- `arm9_objects.txt`: List of object files to pass to the linker
|
||||
@@ -30,10 +30,14 @@
|
||||
- `src/`: Source C/C++ files
|
||||
- `tools/`: Tools for this project
|
||||
- `compress/`: Compresses code before it is put in the ROM
|
||||
- `include/`: Common C code for multiple tools
|
||||
- `mwccarm/`: Compiler toolchain
|
||||
- `rom/`: Extracts and builds ROMs
|
||||
- `gen_externs.py`: Generates `.inc` files, use `make gen_externs` to run it
|
||||
- `lcf.py`: Generates `arm9_linker_script.lcf`
|
||||
- `m2ctx.py`: Generates context for decomp.me
|
||||
- `patch_mwcc.py`: Patches bugs in the toolchain
|
||||
- `progress.py`: Computes decompilation progress
|
||||
- `requirements.txt`: Python libraries
|
||||
- `setup.py`: Sets up the project
|
||||
- `assets.txt`: The order of asset directories to put in the ROM
|
||||
|
||||
+3
-3
@@ -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.
|
||||
@@ -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
|
||||
|
||||
+21
-135
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user