add progress documentation

This commit is contained in:
rr- 2021-02-11 00:26:17 +01:00
parent 7f78ab64fe
commit bcadfd2654
No known key found for this signature in database
GPG key ID: CC65E6FD28CAE42A
6 changed files with 1497 additions and 4 deletions

View file

@ -11,4 +11,7 @@ docker_build:
lint:
clang-format-10 -i $(wildcard **/*.h **/*.c)
.PHONY: build docker_build lint
docs:
python3 docs/render_progress.py
.PHONY: build docker_build lint docs

View file

@ -27,9 +27,9 @@ Currently the following configuration options are supported:
- `disable_healing_between_levels`: disables healing Lara between level reloads
(for No Heal challenge runs).
- `enable_red_healthbar`: replaces the default golden healthbar with a red one.
- `enable_enemy_healthbar`: enables showing healthbar for the active enemy
- `enable_enemy_healthbar`: enables showing healthbar for the active enemy.
- `fix_end_of_level_freeze`: fix game freeze when ending the level with the
Action key held
Action key held.
## Building
@ -39,6 +39,14 @@ Currently the following configuration options are supported:
To compile the project, run `make build`.
To compile the project with Docker, run `make docker_build`.
## Decompilation progress
![](docs/progress.svg)
Green squares represent TombATI functions that are fully decompiled and
reimplemented by TR1Main. Light red squares represent functions that still need
to be ported.
## License
This project is licensed under the GNU General Public License - see the

701
docs/progress.svg Normal file
View file

@ -0,0 +1,701 @@
<svg version="1.1" width="602" height="170" xmlns="http://www.w3.org/2000/svg">
<rect width="10" height="10" x="0" y="0" fill="pink"/>
<rect width="10" height="10" x="12" y="0" fill="pink"/>
<rect width="10" height="10" x="24" y="0" fill="pink"/>
<rect width="10" height="10" x="36" y="0" fill="pink"/>
<rect width="10" height="10" x="48" y="0" fill="pink"/>
<rect width="10" height="10" x="60" y="0" fill="pink"/>
<rect width="10" height="10" x="72" y="0" fill="pink"/>
<rect width="10" height="10" x="84" y="0" fill="pink"/>
<rect width="10" height="10" x="96" y="0" fill="pink"/>
<rect width="10" height="10" x="108" y="0" fill="pink"/>
<rect width="10" height="10" x="120" y="0" fill="pink"/>
<rect width="10" height="10" x="132" y="0" fill="pink"/>
<rect width="10" height="10" x="144" y="0" fill="pink"/>
<rect width="10" height="10" x="156" y="0" fill="pink"/>
<rect width="10" height="10" x="168" y="0" fill="pink"/>
<rect width="10" height="10" x="180" y="0" fill="pink"/>
<rect width="10" height="10" x="192" y="0" fill="pink"/>
<rect width="10" height="10" x="204" y="0" fill="pink"/>
<rect width="10" height="10" x="216" y="0" fill="pink"/>
<rect width="10" height="10" x="228" y="0" fill="pink"/>
<rect width="10" height="10" x="240" y="0" fill="pink"/>
<rect width="10" height="10" x="252" y="0" fill="pink"/>
<rect width="10" height="10" x="264" y="0" fill="pink"/>
<rect width="10" height="10" x="276" y="0" fill="pink"/>
<rect width="10" height="10" x="288" y="0" fill="pink"/>
<rect width="10" height="10" x="300" y="0" fill="pink"/>
<rect width="10" height="10" x="312" y="0" fill="pink"/>
<rect width="10" height="10" x="324" y="0" fill="pink"/>
<rect width="10" height="10" x="336" y="0" fill="pink"/>
<rect width="10" height="10" x="348" y="0" fill="pink"/>
<rect width="10" height="10" x="360" y="0" fill="pink"/>
<rect width="10" height="10" x="372" y="0" fill="pink"/>
<rect width="10" height="10" x="384" y="0" fill="pink"/>
<rect width="10" height="10" x="396" y="0" fill="pink"/>
<rect width="10" height="10" x="408" y="0" fill="pink"/>
<rect width="10" height="10" x="420" y="0" fill="pink"/>
<rect width="10" height="10" x="432" y="0" fill="pink"/>
<rect width="10" height="10" x="444" y="0" fill="pink"/>
<rect width="10" height="10" x="456" y="0" fill="pink"/>
<rect width="10" height="10" x="468" y="0" fill="pink"/>
<rect width="10" height="10" x="480" y="0" fill="pink"/>
<rect width="10" height="10" x="492" y="0" fill="pink"/>
<rect width="10" height="10" x="504" y="0" fill="pink"/>
<rect width="10" height="10" x="516" y="0" fill="pink"/>
<rect width="10" height="10" x="528" y="0" fill="pink"/>
<rect width="10" height="10" x="540" y="0" fill="pink"/>
<rect width="10" height="10" x="552" y="0" fill="pink"/>
<rect width="10" height="10" x="564" y="0" fill="pink"/>
<rect width="10" height="10" x="576" y="0" fill="pink"/>
<rect width="10" height="10" x="588" y="0" fill="pink"/>
<rect width="10" height="10" x="0" y="12" fill="pink"/>
<rect width="10" height="10" x="12" y="12" fill="pink"/>
<rect width="10" height="10" x="24" y="12" fill="pink"/>
<rect width="10" height="10" x="36" y="12" fill="pink"/>
<rect width="10" height="10" x="48" y="12" fill="pink"/>
<rect width="10" height="10" x="60" y="12" fill="pink"/>
<rect width="10" height="10" x="72" y="12" fill="pink"/>
<rect width="10" height="10" x="84" y="12" fill="pink"/>
<rect width="10" height="10" x="96" y="12" fill="pink"/>
<rect width="10" height="10" x="108" y="12" fill="pink"/>
<rect width="10" height="10" x="120" y="12" fill="pink"/>
<rect width="10" height="10" x="132" y="12" fill="pink"/>
<rect width="10" height="10" x="144" y="12" fill="pink"/>
<rect width="10" height="10" x="156" y="12" fill="pink"/>
<rect width="10" height="10" x="168" y="12" fill="pink"/>
<rect width="10" height="10" x="180" y="12" fill="pink"/>
<rect width="10" height="10" x="192" y="12" fill="pink"/>
<rect width="10" height="10" x="204" y="12" fill="pink"/>
<rect width="10" height="10" x="216" y="12" fill="pink"/>
<rect width="10" height="10" x="228" y="12" fill="pink"/>
<rect width="10" height="10" x="240" y="12" fill="pink"/>
<rect width="10" height="10" x="252" y="12" fill="pink"/>
<rect width="10" height="10" x="264" y="12" fill="pink"/>
<rect width="10" height="10" x="276" y="12" fill="pink"/>
<rect width="10" height="10" x="288" y="12" fill="pink"/>
<rect width="10" height="10" x="300" y="12" fill="pink"/>
<rect width="10" height="10" x="312" y="12" fill="pink"/>
<rect width="10" height="10" x="324" y="12" fill="pink"/>
<rect width="10" height="10" x="336" y="12" fill="pink"/>
<rect width="10" height="10" x="348" y="12" fill="pink"/>
<rect width="10" height="10" x="360" y="12" fill="pink"/>
<rect width="10" height="10" x="372" y="12" fill="pink"/>
<rect width="10" height="10" x="384" y="12" fill="pink"/>
<rect width="10" height="10" x="396" y="12" fill="pink"/>
<rect width="10" height="10" x="408" y="12" fill="pink"/>
<rect width="10" height="10" x="420" y="12" fill="pink"/>
<rect width="10" height="10" x="432" y="12" fill="pink"/>
<rect width="10" height="10" x="444" y="12" fill="pink"/>
<rect width="10" height="10" x="456" y="12" fill="pink"/>
<rect width="10" height="10" x="468" y="12" fill="pink"/>
<rect width="10" height="10" x="480" y="12" fill="pink"/>
<rect width="10" height="10" x="492" y="12" fill="pink"/>
<rect width="10" height="10" x="504" y="12" fill="pink"/>
<rect width="10" height="10" x="516" y="12" fill="pink"/>
<rect width="10" height="10" x="528" y="12" fill="pink"/>
<rect width="10" height="10" x="540" y="12" fill="pink"/>
<rect width="10" height="10" x="552" y="12" fill="pink"/>
<rect width="10" height="10" x="564" y="12" fill="pink"/>
<rect width="10" height="10" x="576" y="12" fill="pink"/>
<rect width="10" height="10" x="588" y="12" fill="pink"/>
<rect width="10" height="10" x="0" y="24" fill="pink"/>
<rect width="10" height="10" x="12" y="24" fill="pink"/>
<rect width="10" height="10" x="24" y="24" fill="pink"/>
<rect width="10" height="10" x="36" y="24" fill="pink"/>
<rect width="10" height="10" x="48" y="24" fill="pink"/>
<rect width="10" height="10" x="60" y="24" fill="pink"/>
<rect width="10" height="10" x="72" y="24" fill="pink"/>
<rect width="10" height="10" x="84" y="24" fill="pink"/>
<rect width="10" height="10" x="96" y="24" fill="pink"/>
<rect width="10" height="10" x="108" y="24" fill="pink"/>
<rect width="10" height="10" x="120" y="24" fill="pink"/>
<rect width="10" height="10" x="132" y="24" fill="pink"/>
<rect width="10" height="10" x="144" y="24" fill="pink"/>
<rect width="10" height="10" x="156" y="24" fill="pink"/>
<rect width="10" height="10" x="168" y="24" fill="pink"/>
<rect width="10" height="10" x="180" y="24" fill="pink"/>
<rect width="10" height="10" x="192" y="24" fill="pink"/>
<rect width="10" height="10" x="204" y="24" fill="pink"/>
<rect width="10" height="10" x="216" y="24" fill="pink"/>
<rect width="10" height="10" x="228" y="24" fill="pink"/>
<rect width="10" height="10" x="240" y="24" fill="pink"/>
<rect width="10" height="10" x="252" y="24" fill="pink"/>
<rect width="10" height="10" x="264" y="24" fill="pink"/>
<rect width="10" height="10" x="276" y="24" fill="pink"/>
<rect width="10" height="10" x="288" y="24" fill="pink"/>
<rect width="10" height="10" x="300" y="24" fill="pink"/>
<rect width="10" height="10" x="312" y="24" fill="pink"/>
<rect width="10" height="10" x="324" y="24" fill="pink"/>
<rect width="10" height="10" x="336" y="24" fill="pink"/>
<rect width="10" height="10" x="348" y="24" fill="pink"/>
<rect width="10" height="10" x="360" y="24" fill="pink"/>
<rect width="10" height="10" x="372" y="24" fill="pink"/>
<rect width="10" height="10" x="384" y="24" fill="pink"/>
<rect width="10" height="10" x="396" y="24" fill="pink"/>
<rect width="10" height="10" x="408" y="24" fill="pink"/>
<rect width="10" height="10" x="420" y="24" fill="pink"/>
<rect width="10" height="10" x="432" y="24" fill="pink"/>
<rect width="10" height="10" x="444" y="24" fill="pink"/>
<rect width="10" height="10" x="456" y="24" fill="pink"/>
<rect width="10" height="10" x="468" y="24" fill="pink"/>
<rect width="10" height="10" x="480" y="24" fill="pink"/>
<rect width="10" height="10" x="492" y="24" fill="pink"/>
<rect width="10" height="10" x="504" y="24" fill="pink"/>
<rect width="10" height="10" x="516" y="24" fill="pink"/>
<rect width="10" height="10" x="528" y="24" fill="pink"/>
<rect width="10" height="10" x="540" y="24" fill="pink"/>
<rect width="10" height="10" x="552" y="24" fill="pink"/>
<rect width="10" height="10" x="564" y="24" fill="pink"/>
<rect width="10" height="10" x="576" y="24" fill="pink"/>
<rect width="10" height="10" x="588" y="24" fill="pink"/>
<rect width="10" height="10" x="0" y="36" fill="pink"/>
<rect width="10" height="10" x="12" y="36" fill="pink"/>
<rect width="10" height="10" x="24" y="36" fill="pink"/>
<rect width="10" height="10" x="36" y="36" fill="pink"/>
<rect width="10" height="10" x="48" y="36" fill="pink"/>
<rect width="10" height="10" x="60" y="36" fill="pink"/>
<rect width="10" height="10" x="72" y="36" fill="pink"/>
<rect width="10" height="10" x="84" y="36" fill="pink"/>
<rect width="10" height="10" x="96" y="36" fill="pink"/>
<rect width="10" height="10" x="108" y="36" fill="pink"/>
<rect width="10" height="10" x="120" y="36" fill="pink"/>
<rect width="10" height="10" x="132" y="36" fill="pink"/>
<rect width="10" height="10" x="144" y="36" fill="pink"/>
<rect width="10" height="10" x="156" y="36" fill="pink"/>
<rect width="10" height="10" x="168" y="36" fill="pink"/>
<rect width="10" height="10" x="180" y="36" fill="pink"/>
<rect width="10" height="10" x="192" y="36" fill="pink"/>
<rect width="10" height="10" x="204" y="36" fill="pink"/>
<rect width="10" height="10" x="216" y="36" fill="pink"/>
<rect width="10" height="10" x="228" y="36" fill="pink"/>
<rect width="10" height="10" x="240" y="36" fill="pink"/>
<rect width="10" height="10" x="252" y="36" fill="pink"/>
<rect width="10" height="10" x="264" y="36" fill="pink"/>
<rect width="10" height="10" x="276" y="36" fill="pink"/>
<rect width="10" height="10" x="288" y="36" fill="pink"/>
<rect width="10" height="10" x="300" y="36" fill="pink"/>
<rect width="10" height="10" x="312" y="36" fill="pink"/>
<rect width="10" height="10" x="324" y="36" fill="pink"/>
<rect width="10" height="10" x="336" y="36" fill="pink"/>
<rect width="10" height="10" x="348" y="36" fill="pink"/>
<rect width="10" height="10" x="360" y="36" fill="pink"/>
<rect width="10" height="10" x="372" y="36" fill="pink"/>
<rect width="10" height="10" x="384" y="36" fill="pink"/>
<rect width="10" height="10" x="396" y="36" fill="pink"/>
<rect width="10" height="10" x="408" y="36" fill="pink"/>
<rect width="10" height="10" x="420" y="36" fill="pink"/>
<rect width="10" height="10" x="432" y="36" fill="pink"/>
<rect width="10" height="10" x="444" y="36" fill="pink"/>
<rect width="10" height="10" x="456" y="36" fill="pink"/>
<rect width="10" height="10" x="468" y="36" fill="pink"/>
<rect width="10" height="10" x="480" y="36" fill="pink"/>
<rect width="10" height="10" x="492" y="36" fill="pink"/>
<rect width="10" height="10" x="504" y="36" fill="pink"/>
<rect width="10" height="10" x="516" y="36" fill="pink"/>
<rect width="10" height="10" x="528" y="36" fill="pink"/>
<rect width="10" height="10" x="540" y="36" fill="pink"/>
<rect width="10" height="10" x="552" y="36" fill="pink"/>
<rect width="10" height="10" x="564" y="36" fill="pink"/>
<rect width="10" height="10" x="576" y="36" fill="pink"/>
<rect width="10" height="10" x="588" y="36" fill="pink"/>
<rect width="10" height="10" x="0" y="48" fill="pink"/>
<rect width="10" height="10" x="12" y="48" fill="pink"/>
<rect width="10" height="10" x="24" y="48" fill="pink"/>
<rect width="10" height="10" x="36" y="48" fill="pink"/>
<rect width="10" height="10" x="48" y="48" fill="pink"/>
<rect width="10" height="10" x="60" y="48" fill="pink"/>
<rect width="10" height="10" x="72" y="48" fill="pink"/>
<rect width="10" height="10" x="84" y="48" fill="pink"/>
<rect width="10" height="10" x="96" y="48" fill="pink"/>
<rect width="10" height="10" x="108" y="48" fill="pink"/>
<rect width="10" height="10" x="120" y="48" fill="pink"/>
<rect width="10" height="10" x="132" y="48" fill="pink"/>
<rect width="10" height="10" x="144" y="48" fill="pink"/>
<rect width="10" height="10" x="156" y="48" fill="pink"/>
<rect width="10" height="10" x="168" y="48" fill="pink"/>
<rect width="10" height="10" x="180" y="48" fill="pink"/>
<rect width="10" height="10" x="192" y="48" fill="pink"/>
<rect width="10" height="10" x="204" y="48" fill="pink"/>
<rect width="10" height="10" x="216" y="48" fill="pink"/>
<rect width="10" height="10" x="228" y="48" fill="pink"/>
<rect width="10" height="10" x="240" y="48" fill="pink"/>
<rect width="10" height="10" x="252" y="48" fill="pink"/>
<rect width="10" height="10" x="264" y="48" fill="pink"/>
<rect width="10" height="10" x="276" y="48" fill="pink"/>
<rect width="10" height="10" x="288" y="48" fill="pink"/>
<rect width="10" height="10" x="300" y="48" fill="pink"/>
<rect width="10" height="10" x="312" y="48" fill="pink"/>
<rect width="10" height="10" x="324" y="48" fill="pink"/>
<rect width="10" height="10" x="336" y="48" fill="pink"/>
<rect width="10" height="10" x="348" y="48" fill="pink"/>
<rect width="10" height="10" x="360" y="48" fill="pink"/>
<rect width="10" height="10" x="372" y="48" fill="pink"/>
<rect width="10" height="10" x="384" y="48" fill="green"/>
<rect width="10" height="10" x="396" y="48" fill="pink"/>
<rect width="10" height="10" x="408" y="48" fill="green"/>
<rect width="10" height="10" x="420" y="48" fill="pink"/>
<rect width="10" height="10" x="432" y="48" fill="pink"/>
<rect width="10" height="10" x="444" y="48" fill="green"/>
<rect width="10" height="10" x="456" y="48" fill="pink"/>
<rect width="10" height="10" x="468" y="48" fill="green"/>
<rect width="10" height="10" x="480" y="48" fill="green"/>
<rect width="10" height="10" x="492" y="48" fill="pink"/>
<rect width="10" height="10" x="504" y="48" fill="pink"/>
<rect width="10" height="10" x="516" y="48" fill="pink"/>
<rect width="10" height="10" x="528" y="48" fill="pink"/>
<rect width="10" height="10" x="540" y="48" fill="pink"/>
<rect width="10" height="10" x="552" y="48" fill="pink"/>
<rect width="10" height="10" x="564" y="48" fill="pink"/>
<rect width="10" height="10" x="576" y="48" fill="pink"/>
<rect width="10" height="10" x="588" y="48" fill="pink"/>
<rect width="10" height="10" x="0" y="60" fill="pink"/>
<rect width="10" height="10" x="12" y="60" fill="pink"/>
<rect width="10" height="10" x="24" y="60" fill="pink"/>
<rect width="10" height="10" x="36" y="60" fill="pink"/>
<rect width="10" height="10" x="48" y="60" fill="pink"/>
<rect width="10" height="10" x="60" y="60" fill="pink"/>
<rect width="10" height="10" x="72" y="60" fill="green"/>
<rect width="10" height="10" x="84" y="60" fill="pink"/>
<rect width="10" height="10" x="96" y="60" fill="pink"/>
<rect width="10" height="10" x="108" y="60" fill="pink"/>
<rect width="10" height="10" x="120" y="60" fill="pink"/>
<rect width="10" height="10" x="132" y="60" fill="pink"/>
<rect width="10" height="10" x="144" y="60" fill="pink"/>
<rect width="10" height="10" x="156" y="60" fill="pink"/>
<rect width="10" height="10" x="168" y="60" fill="pink"/>
<rect width="10" height="10" x="180" y="60" fill="pink"/>
<rect width="10" height="10" x="192" y="60" fill="green"/>
<rect width="10" height="10" x="204" y="60" fill="pink"/>
<rect width="10" height="10" x="216" y="60" fill="pink"/>
<rect width="10" height="10" x="228" y="60" fill="pink"/>
<rect width="10" height="10" x="240" y="60" fill="pink"/>
<rect width="10" height="10" x="252" y="60" fill="pink"/>
<rect width="10" height="10" x="264" y="60" fill="pink"/>
<rect width="10" height="10" x="276" y="60" fill="pink"/>
<rect width="10" height="10" x="288" y="60" fill="green"/>
<rect width="10" height="10" x="300" y="60" fill="pink"/>
<rect width="10" height="10" x="312" y="60" fill="green"/>
<rect width="10" height="10" x="324" y="60" fill="pink"/>
<rect width="10" height="10" x="336" y="60" fill="pink"/>
<rect width="10" height="10" x="348" y="60" fill="pink"/>
<rect width="10" height="10" x="360" y="60" fill="pink"/>
<rect width="10" height="10" x="372" y="60" fill="pink"/>
<rect width="10" height="10" x="384" y="60" fill="pink"/>
<rect width="10" height="10" x="396" y="60" fill="pink"/>
<rect width="10" height="10" x="408" y="60" fill="pink"/>
<rect width="10" height="10" x="420" y="60" fill="pink"/>
<rect width="10" height="10" x="432" y="60" fill="pink"/>
<rect width="10" height="10" x="444" y="60" fill="pink"/>
<rect width="10" height="10" x="456" y="60" fill="pink"/>
<rect width="10" height="10" x="468" y="60" fill="pink"/>
<rect width="10" height="10" x="480" y="60" fill="pink"/>
<rect width="10" height="10" x="492" y="60" fill="pink"/>
<rect width="10" height="10" x="504" y="60" fill="pink"/>
<rect width="10" height="10" x="516" y="60" fill="pink"/>
<rect width="10" height="10" x="528" y="60" fill="pink"/>
<rect width="10" height="10" x="540" y="60" fill="pink"/>
<rect width="10" height="10" x="552" y="60" fill="pink"/>
<rect width="10" height="10" x="564" y="60" fill="pink"/>
<rect width="10" height="10" x="576" y="60" fill="pink"/>
<rect width="10" height="10" x="588" y="60" fill="pink"/>
<rect width="10" height="10" x="0" y="72" fill="pink"/>
<rect width="10" height="10" x="12" y="72" fill="pink"/>
<rect width="10" height="10" x="24" y="72" fill="pink"/>
<rect width="10" height="10" x="36" y="72" fill="pink"/>
<rect width="10" height="10" x="48" y="72" fill="pink"/>
<rect width="10" height="10" x="60" y="72" fill="pink"/>
<rect width="10" height="10" x="72" y="72" fill="pink"/>
<rect width="10" height="10" x="84" y="72" fill="pink"/>
<rect width="10" height="10" x="96" y="72" fill="pink"/>
<rect width="10" height="10" x="108" y="72" fill="pink"/>
<rect width="10" height="10" x="120" y="72" fill="pink"/>
<rect width="10" height="10" x="132" y="72" fill="pink"/>
<rect width="10" height="10" x="144" y="72" fill="pink"/>
<rect width="10" height="10" x="156" y="72" fill="pink"/>
<rect width="10" height="10" x="168" y="72" fill="pink"/>
<rect width="10" height="10" x="180" y="72" fill="pink"/>
<rect width="10" height="10" x="192" y="72" fill="pink"/>
<rect width="10" height="10" x="204" y="72" fill="pink"/>
<rect width="10" height="10" x="216" y="72" fill="green"/>
<rect width="10" height="10" x="228" y="72" fill="pink"/>
<rect width="10" height="10" x="240" y="72" fill="pink"/>
<rect width="10" height="10" x="252" y="72" fill="pink"/>
<rect width="10" height="10" x="264" y="72" fill="pink"/>
<rect width="10" height="10" x="276" y="72" fill="pink"/>
<rect width="10" height="10" x="288" y="72" fill="pink"/>
<rect width="10" height="10" x="300" y="72" fill="pink"/>
<rect width="10" height="10" x="312" y="72" fill="pink"/>
<rect width="10" height="10" x="324" y="72" fill="pink"/>
<rect width="10" height="10" x="336" y="72" fill="pink"/>
<rect width="10" height="10" x="348" y="72" fill="pink"/>
<rect width="10" height="10" x="360" y="72" fill="pink"/>
<rect width="10" height="10" x="372" y="72" fill="pink"/>
<rect width="10" height="10" x="384" y="72" fill="pink"/>
<rect width="10" height="10" x="396" y="72" fill="pink"/>
<rect width="10" height="10" x="408" y="72" fill="pink"/>
<rect width="10" height="10" x="420" y="72" fill="pink"/>
<rect width="10" height="10" x="432" y="72" fill="pink"/>
<rect width="10" height="10" x="444" y="72" fill="pink"/>
<rect width="10" height="10" x="456" y="72" fill="pink"/>
<rect width="10" height="10" x="468" y="72" fill="pink"/>
<rect width="10" height="10" x="480" y="72" fill="pink"/>
<rect width="10" height="10" x="492" y="72" fill="pink"/>
<rect width="10" height="10" x="504" y="72" fill="pink"/>
<rect width="10" height="10" x="516" y="72" fill="pink"/>
<rect width="10" height="10" x="528" y="72" fill="pink"/>
<rect width="10" height="10" x="540" y="72" fill="pink"/>
<rect width="10" height="10" x="552" y="72" fill="pink"/>
<rect width="10" height="10" x="564" y="72" fill="pink"/>
<rect width="10" height="10" x="576" y="72" fill="pink"/>
<rect width="10" height="10" x="588" y="72" fill="pink"/>
<rect width="10" height="10" x="0" y="84" fill="pink"/>
<rect width="10" height="10" x="12" y="84" fill="pink"/>
<rect width="10" height="10" x="24" y="84" fill="pink"/>
<rect width="10" height="10" x="36" y="84" fill="pink"/>
<rect width="10" height="10" x="48" y="84" fill="pink"/>
<rect width="10" height="10" x="60" y="84" fill="pink"/>
<rect width="10" height="10" x="72" y="84" fill="pink"/>
<rect width="10" height="10" x="84" y="84" fill="pink"/>
<rect width="10" height="10" x="96" y="84" fill="pink"/>
<rect width="10" height="10" x="108" y="84" fill="pink"/>
<rect width="10" height="10" x="120" y="84" fill="pink"/>
<rect width="10" height="10" x="132" y="84" fill="pink"/>
<rect width="10" height="10" x="144" y="84" fill="pink"/>
<rect width="10" height="10" x="156" y="84" fill="pink"/>
<rect width="10" height="10" x="168" y="84" fill="pink"/>
<rect width="10" height="10" x="180" y="84" fill="pink"/>
<rect width="10" height="10" x="192" y="84" fill="pink"/>
<rect width="10" height="10" x="204" y="84" fill="pink"/>
<rect width="10" height="10" x="216" y="84" fill="pink"/>
<rect width="10" height="10" x="228" y="84" fill="pink"/>
<rect width="10" height="10" x="240" y="84" fill="pink"/>
<rect width="10" height="10" x="252" y="84" fill="pink"/>
<rect width="10" height="10" x="264" y="84" fill="pink"/>
<rect width="10" height="10" x="276" y="84" fill="pink"/>
<rect width="10" height="10" x="288" y="84" fill="pink"/>
<rect width="10" height="10" x="300" y="84" fill="pink"/>
<rect width="10" height="10" x="312" y="84" fill="pink"/>
<rect width="10" height="10" x="324" y="84" fill="pink"/>
<rect width="10" height="10" x="336" y="84" fill="pink"/>
<rect width="10" height="10" x="348" y="84" fill="pink"/>
<rect width="10" height="10" x="360" y="84" fill="pink"/>
<rect width="10" height="10" x="372" y="84" fill="pink"/>
<rect width="10" height="10" x="384" y="84" fill="pink"/>
<rect width="10" height="10" x="396" y="84" fill="pink"/>
<rect width="10" height="10" x="408" y="84" fill="pink"/>
<rect width="10" height="10" x="420" y="84" fill="pink"/>
<rect width="10" height="10" x="432" y="84" fill="pink"/>
<rect width="10" height="10" x="444" y="84" fill="pink"/>
<rect width="10" height="10" x="456" y="84" fill="pink"/>
<rect width="10" height="10" x="468" y="84" fill="pink"/>
<rect width="10" height="10" x="480" y="84" fill="pink"/>
<rect width="10" height="10" x="492" y="84" fill="pink"/>
<rect width="10" height="10" x="504" y="84" fill="pink"/>
<rect width="10" height="10" x="516" y="84" fill="pink"/>
<rect width="10" height="10" x="528" y="84" fill="pink"/>
<rect width="10" height="10" x="540" y="84" fill="pink"/>
<rect width="10" height="10" x="552" y="84" fill="pink"/>
<rect width="10" height="10" x="564" y="84" fill="pink"/>
<rect width="10" height="10" x="576" y="84" fill="pink"/>
<rect width="10" height="10" x="588" y="84" fill="pink"/>
<rect width="10" height="10" x="0" y="96" fill="pink"/>
<rect width="10" height="10" x="12" y="96" fill="pink"/>
<rect width="10" height="10" x="24" y="96" fill="pink"/>
<rect width="10" height="10" x="36" y="96" fill="pink"/>
<rect width="10" height="10" x="48" y="96" fill="pink"/>
<rect width="10" height="10" x="60" y="96" fill="pink"/>
<rect width="10" height="10" x="72" y="96" fill="pink"/>
<rect width="10" height="10" x="84" y="96" fill="pink"/>
<rect width="10" height="10" x="96" y="96" fill="pink"/>
<rect width="10" height="10" x="108" y="96" fill="pink"/>
<rect width="10" height="10" x="120" y="96" fill="pink"/>
<rect width="10" height="10" x="132" y="96" fill="pink"/>
<rect width="10" height="10" x="144" y="96" fill="pink"/>
<rect width="10" height="10" x="156" y="96" fill="pink"/>
<rect width="10" height="10" x="168" y="96" fill="pink"/>
<rect width="10" height="10" x="180" y="96" fill="pink"/>
<rect width="10" height="10" x="192" y="96" fill="pink"/>
<rect width="10" height="10" x="204" y="96" fill="green"/>
<rect width="10" height="10" x="216" y="96" fill="pink"/>
<rect width="10" height="10" x="228" y="96" fill="pink"/>
<rect width="10" height="10" x="240" y="96" fill="pink"/>
<rect width="10" height="10" x="252" y="96" fill="pink"/>
<rect width="10" height="10" x="264" y="96" fill="pink"/>
<rect width="10" height="10" x="276" y="96" fill="pink"/>
<rect width="10" height="10" x="288" y="96" fill="pink"/>
<rect width="10" height="10" x="300" y="96" fill="pink"/>
<rect width="10" height="10" x="312" y="96" fill="pink"/>
<rect width="10" height="10" x="324" y="96" fill="pink"/>
<rect width="10" height="10" x="336" y="96" fill="pink"/>
<rect width="10" height="10" x="348" y="96" fill="pink"/>
<rect width="10" height="10" x="360" y="96" fill="pink"/>
<rect width="10" height="10" x="372" y="96" fill="pink"/>
<rect width="10" height="10" x="384" y="96" fill="pink"/>
<rect width="10" height="10" x="396" y="96" fill="pink"/>
<rect width="10" height="10" x="408" y="96" fill="pink"/>
<rect width="10" height="10" x="420" y="96" fill="pink"/>
<rect width="10" height="10" x="432" y="96" fill="pink"/>
<rect width="10" height="10" x="444" y="96" fill="pink"/>
<rect width="10" height="10" x="456" y="96" fill="pink"/>
<rect width="10" height="10" x="468" y="96" fill="pink"/>
<rect width="10" height="10" x="480" y="96" fill="pink"/>
<rect width="10" height="10" x="492" y="96" fill="pink"/>
<rect width="10" height="10" x="504" y="96" fill="pink"/>
<rect width="10" height="10" x="516" y="96" fill="pink"/>
<rect width="10" height="10" x="528" y="96" fill="pink"/>
<rect width="10" height="10" x="540" y="96" fill="pink"/>
<rect width="10" height="10" x="552" y="96" fill="pink"/>
<rect width="10" height="10" x="564" y="96" fill="pink"/>
<rect width="10" height="10" x="576" y="96" fill="pink"/>
<rect width="10" height="10" x="588" y="96" fill="pink"/>
<rect width="10" height="10" x="0" y="108" fill="pink"/>
<rect width="10" height="10" x="12" y="108" fill="pink"/>
<rect width="10" height="10" x="24" y="108" fill="green"/>
<rect width="10" height="10" x="36" y="108" fill="green"/>
<rect width="10" height="10" x="48" y="108" fill="pink"/>
<rect width="10" height="10" x="60" y="108" fill="pink"/>
<rect width="10" height="10" x="72" y="108" fill="pink"/>
<rect width="10" height="10" x="84" y="108" fill="pink"/>
<rect width="10" height="10" x="96" y="108" fill="pink"/>
<rect width="10" height="10" x="108" y="108" fill="pink"/>
<rect width="10" height="10" x="120" y="108" fill="pink"/>
<rect width="10" height="10" x="132" y="108" fill="pink"/>
<rect width="10" height="10" x="144" y="108" fill="pink"/>
<rect width="10" height="10" x="156" y="108" fill="pink"/>
<rect width="10" height="10" x="168" y="108" fill="pink"/>
<rect width="10" height="10" x="180" y="108" fill="pink"/>
<rect width="10" height="10" x="192" y="108" fill="pink"/>
<rect width="10" height="10" x="204" y="108" fill="pink"/>
<rect width="10" height="10" x="216" y="108" fill="pink"/>
<rect width="10" height="10" x="228" y="108" fill="pink"/>
<rect width="10" height="10" x="240" y="108" fill="pink"/>
<rect width="10" height="10" x="252" y="108" fill="pink"/>
<rect width="10" height="10" x="264" y="108" fill="pink"/>
<rect width="10" height="10" x="276" y="108" fill="pink"/>
<rect width="10" height="10" x="288" y="108" fill="pink"/>
<rect width="10" height="10" x="300" y="108" fill="pink"/>
<rect width="10" height="10" x="312" y="108" fill="pink"/>
<rect width="10" height="10" x="324" y="108" fill="pink"/>
<rect width="10" height="10" x="336" y="108" fill="pink"/>
<rect width="10" height="10" x="348" y="108" fill="pink"/>
<rect width="10" height="10" x="360" y="108" fill="pink"/>
<rect width="10" height="10" x="372" y="108" fill="pink"/>
<rect width="10" height="10" x="384" y="108" fill="pink"/>
<rect width="10" height="10" x="396" y="108" fill="pink"/>
<rect width="10" height="10" x="408" y="108" fill="pink"/>
<rect width="10" height="10" x="420" y="108" fill="pink"/>
<rect width="10" height="10" x="432" y="108" fill="pink"/>
<rect width="10" height="10" x="444" y="108" fill="pink"/>
<rect width="10" height="10" x="456" y="108" fill="pink"/>
<rect width="10" height="10" x="468" y="108" fill="pink"/>
<rect width="10" height="10" x="480" y="108" fill="pink"/>
<rect width="10" height="10" x="492" y="108" fill="pink"/>
<rect width="10" height="10" x="504" y="108" fill="pink"/>
<rect width="10" height="10" x="516" y="108" fill="pink"/>
<rect width="10" height="10" x="528" y="108" fill="pink"/>
<rect width="10" height="10" x="540" y="108" fill="pink"/>
<rect width="10" height="10" x="552" y="108" fill="pink"/>
<rect width="10" height="10" x="564" y="108" fill="pink"/>
<rect width="10" height="10" x="576" y="108" fill="pink"/>
<rect width="10" height="10" x="588" y="108" fill="pink"/>
<rect width="10" height="10" x="0" y="120" fill="pink"/>
<rect width="10" height="10" x="12" y="120" fill="pink"/>
<rect width="10" height="10" x="24" y="120" fill="pink"/>
<rect width="10" height="10" x="36" y="120" fill="pink"/>
<rect width="10" height="10" x="48" y="120" fill="pink"/>
<rect width="10" height="10" x="60" y="120" fill="pink"/>
<rect width="10" height="10" x="72" y="120" fill="pink"/>
<rect width="10" height="10" x="84" y="120" fill="pink"/>
<rect width="10" height="10" x="96" y="120" fill="pink"/>
<rect width="10" height="10" x="108" y="120" fill="pink"/>
<rect width="10" height="10" x="120" y="120" fill="pink"/>
<rect width="10" height="10" x="132" y="120" fill="green"/>
<rect width="10" height="10" x="144" y="120" fill="green"/>
<rect width="10" height="10" x="156" y="120" fill="pink"/>
<rect width="10" height="10" x="168" y="120" fill="pink"/>
<rect width="10" height="10" x="180" y="120" fill="pink"/>
<rect width="10" height="10" x="192" y="120" fill="pink"/>
<rect width="10" height="10" x="204" y="120" fill="pink"/>
<rect width="10" height="10" x="216" y="120" fill="pink"/>
<rect width="10" height="10" x="228" y="120" fill="pink"/>
<rect width="10" height="10" x="240" y="120" fill="pink"/>
<rect width="10" height="10" x="252" y="120" fill="pink"/>
<rect width="10" height="10" x="264" y="120" fill="pink"/>
<rect width="10" height="10" x="276" y="120" fill="pink"/>
<rect width="10" height="10" x="288" y="120" fill="pink"/>
<rect width="10" height="10" x="300" y="120" fill="pink"/>
<rect width="10" height="10" x="312" y="120" fill="pink"/>
<rect width="10" height="10" x="324" y="120" fill="pink"/>
<rect width="10" height="10" x="336" y="120" fill="pink"/>
<rect width="10" height="10" x="348" y="120" fill="pink"/>
<rect width="10" height="10" x="360" y="120" fill="pink"/>
<rect width="10" height="10" x="372" y="120" fill="pink"/>
<rect width="10" height="10" x="384" y="120" fill="pink"/>
<rect width="10" height="10" x="396" y="120" fill="pink"/>
<rect width="10" height="10" x="408" y="120" fill="pink"/>
<rect width="10" height="10" x="420" y="120" fill="pink"/>
<rect width="10" height="10" x="432" y="120" fill="pink"/>
<rect width="10" height="10" x="444" y="120" fill="pink"/>
<rect width="10" height="10" x="456" y="120" fill="pink"/>
<rect width="10" height="10" x="468" y="120" fill="pink"/>
<rect width="10" height="10" x="480" y="120" fill="pink"/>
<rect width="10" height="10" x="492" y="120" fill="pink"/>
<rect width="10" height="10" x="504" y="120" fill="pink"/>
<rect width="10" height="10" x="516" y="120" fill="pink"/>
<rect width="10" height="10" x="528" y="120" fill="pink"/>
<rect width="10" height="10" x="540" y="120" fill="pink"/>
<rect width="10" height="10" x="552" y="120" fill="pink"/>
<rect width="10" height="10" x="564" y="120" fill="pink"/>
<rect width="10" height="10" x="576" y="120" fill="pink"/>
<rect width="10" height="10" x="588" y="120" fill="pink"/>
<rect width="10" height="10" x="0" y="132" fill="pink"/>
<rect width="10" height="10" x="12" y="132" fill="pink"/>
<rect width="10" height="10" x="24" y="132" fill="pink"/>
<rect width="10" height="10" x="36" y="132" fill="pink"/>
<rect width="10" height="10" x="48" y="132" fill="pink"/>
<rect width="10" height="10" x="60" y="132" fill="pink"/>
<rect width="10" height="10" x="72" y="132" fill="pink"/>
<rect width="10" height="10" x="84" y="132" fill="pink"/>
<rect width="10" height="10" x="96" y="132" fill="pink"/>
<rect width="10" height="10" x="108" y="132" fill="pink"/>
<rect width="10" height="10" x="120" y="132" fill="pink"/>
<rect width="10" height="10" x="132" y="132" fill="pink"/>
<rect width="10" height="10" x="144" y="132" fill="pink"/>
<rect width="10" height="10" x="156" y="132" fill="pink"/>
<rect width="10" height="10" x="168" y="132" fill="pink"/>
<rect width="10" height="10" x="180" y="132" fill="pink"/>
<rect width="10" height="10" x="192" y="132" fill="pink"/>
<rect width="10" height="10" x="204" y="132" fill="pink"/>
<rect width="10" height="10" x="216" y="132" fill="pink"/>
<rect width="10" height="10" x="228" y="132" fill="pink"/>
<rect width="10" height="10" x="240" y="132" fill="pink"/>
<rect width="10" height="10" x="252" y="132" fill="pink"/>
<rect width="10" height="10" x="264" y="132" fill="pink"/>
<rect width="10" height="10" x="276" y="132" fill="pink"/>
<rect width="10" height="10" x="288" y="132" fill="pink"/>
<rect width="10" height="10" x="300" y="132" fill="pink"/>
<rect width="10" height="10" x="312" y="132" fill="pink"/>
<rect width="10" height="10" x="324" y="132" fill="pink"/>
<rect width="10" height="10" x="336" y="132" fill="pink"/>
<rect width="10" height="10" x="348" y="132" fill="pink"/>
<rect width="10" height="10" x="360" y="132" fill="pink"/>
<rect width="10" height="10" x="372" y="132" fill="pink"/>
<rect width="10" height="10" x="384" y="132" fill="pink"/>
<rect width="10" height="10" x="396" y="132" fill="pink"/>
<rect width="10" height="10" x="408" y="132" fill="pink"/>
<rect width="10" height="10" x="420" y="132" fill="pink"/>
<rect width="10" height="10" x="432" y="132" fill="pink"/>
<rect width="10" height="10" x="444" y="132" fill="pink"/>
<rect width="10" height="10" x="456" y="132" fill="pink"/>
<rect width="10" height="10" x="468" y="132" fill="pink"/>
<rect width="10" height="10" x="480" y="132" fill="pink"/>
<rect width="10" height="10" x="492" y="132" fill="pink"/>
<rect width="10" height="10" x="504" y="132" fill="pink"/>
<rect width="10" height="10" x="516" y="132" fill="pink"/>
<rect width="10" height="10" x="528" y="132" fill="pink"/>
<rect width="10" height="10" x="540" y="132" fill="pink"/>
<rect width="10" height="10" x="552" y="132" fill="pink"/>
<rect width="10" height="10" x="564" y="132" fill="pink"/>
<rect width="10" height="10" x="576" y="132" fill="pink"/>
<rect width="10" height="10" x="588" y="132" fill="pink"/>
<rect width="10" height="10" x="0" y="144" fill="pink"/>
<rect width="10" height="10" x="12" y="144" fill="pink"/>
<rect width="10" height="10" x="24" y="144" fill="pink"/>
<rect width="10" height="10" x="36" y="144" fill="pink"/>
<rect width="10" height="10" x="48" y="144" fill="pink"/>
<rect width="10" height="10" x="60" y="144" fill="pink"/>
<rect width="10" height="10" x="72" y="144" fill="pink"/>
<rect width="10" height="10" x="84" y="144" fill="pink"/>
<rect width="10" height="10" x="96" y="144" fill="pink"/>
<rect width="10" height="10" x="108" y="144" fill="pink"/>
<rect width="10" height="10" x="120" y="144" fill="pink"/>
<rect width="10" height="10" x="132" y="144" fill="pink"/>
<rect width="10" height="10" x="144" y="144" fill="pink"/>
<rect width="10" height="10" x="156" y="144" fill="pink"/>
<rect width="10" height="10" x="168" y="144" fill="pink"/>
<rect width="10" height="10" x="180" y="144" fill="pink"/>
<rect width="10" height="10" x="192" y="144" fill="pink"/>
<rect width="10" height="10" x="204" y="144" fill="pink"/>
<rect width="10" height="10" x="216" y="144" fill="pink"/>
<rect width="10" height="10" x="228" y="144" fill="pink"/>
<rect width="10" height="10" x="240" y="144" fill="pink"/>
<rect width="10" height="10" x="252" y="144" fill="pink"/>
<rect width="10" height="10" x="264" y="144" fill="pink"/>
<rect width="10" height="10" x="276" y="144" fill="pink"/>
<rect width="10" height="10" x="288" y="144" fill="pink"/>
<rect width="10" height="10" x="300" y="144" fill="pink"/>
<rect width="10" height="10" x="312" y="144" fill="pink"/>
<rect width="10" height="10" x="324" y="144" fill="pink"/>
<rect width="10" height="10" x="336" y="144" fill="pink"/>
<rect width="10" height="10" x="348" y="144" fill="pink"/>
<rect width="10" height="10" x="360" y="144" fill="pink"/>
<rect width="10" height="10" x="372" y="144" fill="pink"/>
<rect width="10" height="10" x="384" y="144" fill="pink"/>
<rect width="10" height="10" x="396" y="144" fill="pink"/>
<rect width="10" height="10" x="408" y="144" fill="pink"/>
<rect width="10" height="10" x="420" y="144" fill="pink"/>
<rect width="10" height="10" x="432" y="144" fill="pink"/>
<rect width="10" height="10" x="444" y="144" fill="pink"/>
<rect width="10" height="10" x="456" y="144" fill="pink"/>
<rect width="10" height="10" x="468" y="144" fill="pink"/>
<rect width="10" height="10" x="480" y="144" fill="pink"/>
<rect width="10" height="10" x="492" y="144" fill="pink"/>
<rect width="10" height="10" x="504" y="144" fill="pink"/>
<rect width="10" height="10" x="516" y="144" fill="pink"/>
<rect width="10" height="10" x="528" y="144" fill="pink"/>
<rect width="10" height="10" x="540" y="144" fill="pink"/>
<rect width="10" height="10" x="552" y="144" fill="pink"/>
<rect width="10" height="10" x="564" y="144" fill="pink"/>
<rect width="10" height="10" x="576" y="144" fill="pink"/>
<rect width="10" height="10" x="588" y="144" fill="pink"/>
<rect width="10" height="10" x="0" y="156" fill="pink"/>
<rect width="10" height="10" x="12" y="156" fill="pink"/>
<rect width="10" height="10" x="24" y="156" fill="pink"/>
<rect width="10" height="10" x="36" y="156" fill="pink"/>
<rect width="10" height="10" x="48" y="156" fill="pink"/>
<rect width="10" height="10" x="60" y="156" fill="pink"/>
<rect width="10" height="10" x="72" y="156" fill="pink"/>
<rect width="10" height="10" x="84" y="156" fill="pink"/>
<rect width="10" height="10" x="96" y="156" fill="pink"/>
<rect width="10" height="10" x="108" y="156" fill="pink"/>
<rect width="10" height="10" x="120" y="156" fill="pink"/>
<rect width="10" height="10" x="132" y="156" fill="pink"/>
<rect width="10" height="10" x="144" y="156" fill="pink"/>
<rect width="10" height="10" x="156" y="156" fill="pink"/>
<rect width="10" height="10" x="168" y="156" fill="pink"/>
<rect width="10" height="10" x="180" y="156" fill="pink"/>
<rect width="10" height="10" x="192" y="156" fill="pink"/>
<rect width="10" height="10" x="204" y="156" fill="pink"/>
<rect width="10" height="10" x="216" y="156" fill="pink"/>
<rect width="10" height="10" x="228" y="156" fill="pink"/>
<rect width="10" height="10" x="240" y="156" fill="pink"/>
<rect width="10" height="10" x="252" y="156" fill="pink"/>
<rect width="10" height="10" x="264" y="156" fill="pink"/>
<rect width="10" height="10" x="276" y="156" fill="pink"/>
<rect width="10" height="10" x="288" y="156" fill="pink"/>
<rect width="10" height="10" x="300" y="156" fill="pink"/>
<rect width="10" height="10" x="312" y="156" fill="pink"/>
<rect width="10" height="10" x="324" y="156" fill="pink"/>
<rect width="10" height="10" x="336" y="156" fill="pink"/>
<rect width="10" height="10" x="348" y="156" fill="pink"/>
<rect width="10" height="10" x="360" y="156" fill="pink"/>
<rect width="10" height="10" x="372" y="156" fill="pink"/>
<rect width="10" height="10" x="384" y="156" fill="pink"/>
<rect width="10" height="10" x="396" y="156" fill="pink"/>
<rect width="10" height="10" x="408" y="156" fill="pink"/>
<rect width="10" height="10" x="420" y="156" fill="pink"/>
<rect width="10" height="10" x="432" y="156" fill="pink"/>
<rect width="10" height="10" x="444" y="156" fill="pink"/>
<rect width="10" height="10" x="456" y="156" fill="pink"/>
<rect width="10" height="10" x="468" y="156" fill="pink"/>
<rect width="10" height="10" x="480" y="156" fill="pink"/>
<rect width="10" height="10" x="492" y="156" fill="pink"/>
<rect width="10" height="10" x="504" y="156" fill="pink"/>
<rect width="10" height="10" x="516" y="156" fill="pink"/>
<rect width="10" height="10" x="528" y="156" fill="pink"/>
<rect width="10" height="10" x="540" y="156" fill="pink"/>
<rect width="10" height="10" x="552" y="156" fill="pink"/>
<rect width="10" height="10" x="564" y="156" fill="pink"/>
<rect width="10" height="10" x="576" y="156" fill="pink"/>
</svg>

After

Width:  |  Height:  |  Size: 40 KiB

704
docs/progress.txt Normal file
View file

@ -0,0 +1,704 @@
# Flags:
# - to do
# + decompiled
#
# Name Offset Size Flags
sub_401000 0x00401000 0x00000197 -
sub_4011A0 0x004011A0 0x000000C9 -
sub_401270 0x00401270 0x0000007E -
sub_4012F0 0x004012F0 0x000000AE -
phd_RotY 0x004013A0 0x000000AC -
sub_401450 0x00401450 0x000000AC -
sub_401500 0x00401500 0x000001E8 -
sub_4016F0 0x004016F0 0x000001F3 -
sub_4018F0 0x004018F0 0x000000AB -
phd_TranslateAbs 0x004019A0 0x0000007A -
sub_401A20 0x00401A20 0x000000A9 -
phd_PutPolygons 0x00401AD0 0x000000F3 -
sub_401BD0 0x00401BD0 0x0000006E -
calc_object_vertices 0x00401C40 0x000001B6 -
sub_401E00 0x00401E00 0x00000165 -
sub_401F70 0x00401F70 0x00000428 -
sub_4023A0 0x004023A0 0x000000CF -
sub_402470 0x00402470 0x0000002D -
sub_4024A0 0x004024A0 0x0000002F -
sub_4024D0 0x004024D0 0x000000C5 -
phd_InitWindow 0x004025D0 0x000000F2 -
sub_4026D0 0x004026D0 0x0000003F -
Insert2DLine 0x00402710 0x000000CA -
sub_4027E0 0x004027E0 0x000001A1 -
sub_402990 0x00402990 0x0000002F -
sub_4029C0 0x004029C0 0x00000030 -
sub_4029F0 0x004029F0 0x00000030 -
sub_402A20 0x00402A20 0x00000037 -
sub_402A60 0x00402A60 0x00000037 -
sub_402AA0 0x00402AA0 0x00000037 -
sub_402AE0 0x00402AE0 0x00000037 -
sub_402B20 0x00402B20 0x000000D2 -
sub_402C00 0x00402C00 0x00000146 -
sub_402D50 0x00402D50 0x00000219 -
sub_402F70 0x00402F70 0x00000226 -
sub_4031A0 0x004031A0 0x000005D0 -
sub_403770 0x00403770 0x00000637 -
sub_403DB0 0x00403DB0 0x0000029A -
sub_404050 0x00404050 0x0000068B -
sub_4046E0 0x004046E0 0x000006BC -
sub_404DA0 0x00404DA0 0x0000058F -
sub_405330 0x00405330 0x000006BB -
sub_4059F0 0x004059F0 0x00000594 -
sub_405F90 0x00405F90 0x0000041B -
sub_4063B0 0x004063B0 0x0000035B -
sub_406710 0x00406710 0x000003C2 -
sub_406AE0 0x00406AE0 0x000002AE -
sub_406D90 0x00406D90 0x0000023E -
sub_406FD0 0x00406FD0 0x000002D0 -
ins_poly_trans8 0x004072A0 0x00000523 -
sub_4077D0 0x004077D0 0x00000034 -
sub_407804 0x00407804 0x00000023 -
sub_407827 0x00407827 0x00000014 -
sub_40783B 0x0040783B 0x00000027 -
sub_407862 0x00407862 0x0000001A -
sub_40787C 0x0040787C 0x00000095 -
sub_407911 0x00407911 0x0000004E -
sub_40795F 0x0040795F 0x0000008A -
sub_4079E9 0x004079E9 0x00000060 -
sub_407A49 0x00407A49 0x00000048 -
sub_407A91 0x00407A91 0x00000141 -
sub_407BD2 0x00407BD2 0x00000433 -
sub_408005 0x00408005 0x0000031E -
sub_408323 0x00408323 0x00000029 -
sub_40834C 0x0040834C 0x0000001C -
sub_408368 0x00408368 0x00000017 -
sub_40837F 0x0040837F 0x0000008A -
sub_4084DE 0x004084DE 0x0000030C -
sub_4087EA 0x004087EA 0x0000020A -
sub_4089F4 0x004089F4 0x0000007C -
sub_408A70 0x00408A70 0x00000057 -
sub_408AC7 0x00408AC7 0x00000065 -
sub_408B2C 0x00408B2C 0x00000059 -
sub_408B85 0x00408B85 0x000000B5 -
sub_408C3A 0x00408C3A 0x000001D4 -
sub_408E0E 0x00408E0E 0x00000024 -
sub_408E32 0x00408E32 0x0000000F -
sub_408E41 0x00408E41 0x0000002C -
sub_408E6D 0x00408E6D 0x0000006B -
sub_408ED8 0x00408ED8 0x00000118 -
sub_408FF0 0x00408FF0 0x0000005D -
sub_40904D 0x0040904D 0x00000BC2 -
sub_409C0F 0x00409C0F 0x00000335 -
sub_409F44 0x00409F44 0x000000D9 -
sub_40A01D 0x0040A01D 0x000000A7 -
sub_40A0C4 0x0040A0C4 0x000005ED -
sub_40A6B1 0x0040A6B1 0x00000E5F -
sub_40B510 0x0040B510 0x000006D2 -
sub_40BBE2 0x0040BBE2 0x00000678 -
sub_40C25A 0x0040C25A 0x000000F4 -
sub_40C34E 0x0040C34E 0x000000D7 -
sub_40C425 0x0040C425 0x000003C9 -
sub_40C7EE 0x0040C7EE 0x000000F9 -
sub_40C8E7 0x0040C8E7 0x000001F4 -
sub_40CADB 0x0040CADB 0x00000182 -
sub_40CC5D 0x0040CC5D 0x000003F9 -
sub_40D056 0x0040D056 0x000000A1 -
sub_40D0F7 0x0040D0F7 0x00000049 -
sub_40D140 0x0040D140 0x000001A0 -
sub_40D2E0 0x0040D2E0 0x00000185 -
sub_40D465 0x0040D465 0x00000005 -
sub_40D470 0x0040D470 0x00000184 -
sub_40D600 0x0040D600 0x00000416 -
sub_40DA60 0x0040DA60 0x00000033 -
sub_40DAA0 0x0040DAA0 0x00000224 -
sub_40DCD0 0x0040DCD0 0x000001F9 -
sub_40DED0 0x0040DED0 0x000000CE -
sub_40DFA0 0x0040DFA0 0x00000097 -
sub_40E040 0x0040E040 0x000007D5 -
sub_40E850 0x0040E850 0x000004D1 -
sub_40ED30 0x0040ED30 0x00000107 -
sub_40EE40 0x0040EE40 0x00000092 -
sub_40EEE0 0x0040EEE0 0x00000863 -
sub_40F750 0x0040F750 0x000000D5 -
sub_40F830 0x0040F830 0x00000035 -
sub_40F870 0x0040F870 0x00000049 -
sub_40F8C0 0x0040F8C0 0x0000005C -
sub_40F920 0x0040F920 0x0000008B -
sub_40F9B0 0x0040F9B0 0x000002E5 -
sub_40FCA0 0x0040FCA0 0x00000096 -
sub_40FD40 0x0040FD40 0x0000015C -
sub_40FEA0 0x0040FEA0 0x00000567 -
sub_410410 0x00410410 0x00000118 -
sub_410530 0x00410530 0x00000279 -
sub_4107B0 0x004107B0 0x00000138 -
sub_4108F0 0x004108F0 0x0000024B -
sub_410B40 0x00410B40 0x0000055D -
sub_4110A0 0x004110A0 0x00000183 -
sub_411240 0x00411240 0x0000012B -
sub_411370 0x00411370 0x00000124 -
sub_4114A0 0x004114A0 0x00000045 -
sub_4114F0 0x004114F0 0x000000CD -
sub_4115F0 0x004115F0 0x00000190 -
sub_411780 0x00411780 0x000007DD -
sub_411FA0 0x00411FA0 0x000003D6 -
sub_412390 0x00412390 0x000002CC -
sub_412660 0x00412660 0x00000037 -
sub_4126A0 0x004126A0 0x0000005F -
sub_412700 0x00412700 0x00000209 -
sub_412910 0x00412910 0x00000078 -
sub_412990 0x00412990 0x00000059 -
sub_4129F0 0x004129F0 0x0000007B -
sub_412A70 0x00412A70 0x00000096 -
sub_412B10 0x00412B10 0x00000335 -
sub_412E50 0x00412E50 0x000000D1 -
sub_412F30 0x00412F30 0x00000137 -
sub_413070 0x00413070 0x000000C1 -
sub_413140 0x00413140 0x000000E4 -
sub_413230 0x00413230 0x00000172 -
ControlPhase 0x004133B0 0x000002B0 -
sub_413660 0x00413660 0x000002C6 -
sub_413960 0x00413960 0x000000AB -
sub_413A10 0x00413A10 0x00000067 -
sub_413A80 0x00413A80 0x000001D4 -
sub_413C60 0x00413C60 0x000000FE -
GetHeight 0x00413D60 0x0000022A -
sub_413FA0 0x00413FA0 0x000000D4 -
sub_414080 0x00414080 0x0000074E -
sub_414820 0x00414820 0x00000055 -
GetCeiling 0x00414880 0x0000024B -
sub_414AE0 0x00414AE0 0x0000004E -
sub_414B30 0x00414B30 0x000000A0 -
sub_414BD0 0x00414BD0 0x00000272 -
sub_414E50 0x00414E50 0x00000270 -
sub_4150C0 0x004150C0 0x000000DC -
sub_4151A0 0x004151A0 0x0000016F -
sub_415310 0x00415310 0x000001D2 -
sub_415520 0x00415520 0x00000326 -
sub_415850 0x00415850 0x0000030C -
StartDemo 0x00415B70 0x00000140 -
sub_415CB0 0x00415CB0 0x000000BF -
GetDemoInput 0x00415D70 0x0000002D -
sub_415DA0 0x00415DA0 0x00000330 -
sub_4160F0 0x004160F0 0x0000028F -
sub_4163A0 0x004163A0 0x000000C1 -
sub_416470 0x00416470 0x000000D4 -
TempVideoAdjust 0x00416550 0x00000277 -
TempVideoRemove 0x004167D0 0x00000289 -
S_CopyBufferToScreen 0x00416A60 0x000000A7 -
sub_416B10 0x00416B10 0x00000010 -
sub_416B20 0x00416B20 0x00000082 -
sub_416BB0 0x00416BB0 0x00000027 -
DrawPhaseCinematic 0x00416BE0 0x00000090 -
sub_416C70 0x00416C70 0x00000037 -
DrawRooms 0x00416CB0 0x00000173 -
sub_416E30 0x00416E30 0x0000007D -
sub_416EB0 0x00416EB0 0x0000032E -
PrintRooms 0x004171E0 0x0000021A -
DrawEffect 0x00417400 0x00000107 -
sub_417510 0x00417510 0x00000035 -
sub_417550 0x00417550 0x00000541 -
DrawLara 0x00417AA0 0x00000AEF -
sub_4185B0 0x004185B0 0x000000C9 -
sub_418680 0x00418680 0x000013C6 -
sub_419A60 0x00419A60 0x000001CD -
sub_419C30 0x00419C30 0x000000FC -
sub_419D30 0x00419D30 0x00000099 -
sub_419DD0 0x00419DD0 0x0000007C -
sub_419E50 0x00419E50 0x00000035 -
sub_419E90 0x00419E90 0x000000C0 -
sub_419F50 0x00419F50 0x000001CA -
sub_41A120 0x0041A120 0x000000A1 -
sub_41A1D0 0x0041A1D0 0x00000027 -
sub_41A200 0x0041A200 0x0000000F -
sub_41A210 0x0041A210 0x0000008C -
sub_41A2A0 0x0041A2A0 0x0000006D -
sub_41A310 0x0041A310 0x00000059 -
sub_41A370 0x0041A370 0x0000008B -
sub_41A400 0x0041A400 0x0000004C -
sub_41A450 0x0041A450 0x00000072 -
sub_41A4D0 0x0041A4D0 0x00000030 -
sub_41A500 0x0041A500 0x0000004C -
sub_41A550 0x0041A550 0x00000115 -
sub_41A670 0x0041A670 0x000000E8 -
sub_41A760 0x0041A760 0x000000FF -
sub_41A860 0x0041A860 0x000000CD -
sub_41A9B0 0x0041A9B0 0x00000120 -
sub_41AAE0 0x0041AAE0 0x0000000B -
sub_41AAF0 0x0041AAF0 0x00000096 -
sub_41AB90 0x0041AB90 0x00000035 -
sub_41ABD0 0x0041ABD0 0x00000076 -
sub_41AC50 0x0041AC50 0x0000008F -
sub_41ACE0 0x0041ACE0 0x00000019 -
sub_41AD00 0x0041AD00 0x00000043 -
sub_41AD50 0x0041AD50 0x00000028 -
sub_41AD80 0x0041AD80 0x0000007F -
sub_41AE00 0x0041AE00 0x0000006A -
sub_41AE70 0x0041AE70 0x00000026 -
sub_41AEA0 0x0041AEA0 0x0000004A -
sub_41AEF0 0x0041AEF0 0x0000000A -
sub_41AF00 0x0041AF00 0x00000005 -
sub_41AF10 0x0041AF10 0x0000007E -
S_LoadLevel 0x0041AF90 0x00000016 +
LoadLevel 0x0041AFB0 0x00000432 -
LoadRooms 0x0041B3F0 0x00000311 +
LoadObjects 0x0041B710 0x0000043F -
LoadSprites 0x0041BB50 0x00000102 -
LoadItems 0x0041BC60 0x0000019D +
LoadBoxes 0x0041BE00 0x000001B5 -
GetFullPath 0x0041BFC0 0x00000053 +
FindCdDrive 0x0041C020 0x000000C7 +
sub_41C0F0 0x0041C0F0 0x00000089 -
sub_41C180 0x0041C180 0x00000150 -
sub_41C2D0 0x0041C2D0 0x00000163 -
sub_41C440 0x0041C440 0x000000D3 -
sub_41C520 0x0041C520 0x00000688 -
sub_41CBB0 0x0041CBB0 0x00000101 -
sub_41CCC0 0x0041CCC0 0x00000047 -
S_FadeToBlack 0x0041CD10 0x0000003F -
S_Wait 0x0041CD50 0x0000004D -
sub_41CDA0 0x0041CDA0 0x00000045 -
WinPlayFMV 0x0041CDF0 0x0000024A -
sub_41D040 0x0041D040 0x0000007C -
sub_41D0C0 0x0041D0C0 0x000001CA -
GameLoop 0x0041D2C0 0x00000065 -
LevelCompleteSequence 0x0041D330 0x0000021C -
LevelStats 0x0041D5A0 0x00000346 +
sub_41D8F0 0x0041D8F0 0x0000001E -
SeedRandomControl 0x0041D910 0x0000000A -
sub_41D920 0x0041D920 0x0000001E -
SeedRandomDraw 0x0041D940 0x0000000A -
sub_41D950 0x0041D950 0x0000005C -
sub_41D9B0 0x0041D9B0 0x00000060 -
sub_41DA20 0x0041DA20 0x00000141 -
sub_41DB70 0x0041DB70 0x000000FD -
sub_41DC70 0x0041DC70 0x00000086 -
DrawGameInfo 0x0041DD00 0x00000199 +
DrawHealthBar 0x0041DEA0 0x00000075 -
sub_41DF20 0x0041DF20 0x00000028 -
DrawAmmoInfo 0x0041DF50 0x00000133 -
InitialisePickUpDisplay 0x0041E0A0 0x00000015 -
sub_41E0C0 0x0041E0C0 0x0000003F -
sub_41E100 0x0041E100 0x0000015B -
S_ExitSystem 0x0041E260 0x00000051 -
init_game_malloc 0x0041E2C0 0x00000021 +
game_malloc 0x0041E2F0 0x000000B1 -
game_free 0x0041E3B0 0x0000002F +
sub_41E3E0 0x0041E3E0 0x00000166 -
S_UpdateInput 0x0041E550 0x00000210 -
sub_41E760 0x0041E760 0x00001159 -
sub_41F980 0x0041F980 0x0000012D -
sub_41FAB0 0x0041FAB0 0x00000089 -
sub_41FB40 0x0041FB40 0x000003A0 -
InitColours 0x0041FEF0 0x0000010A -
sub_420000 0x00420000 0x0000014D -
sub_420150 0x00420150 0x00000076 -
sub_4201D0 0x004201D0 0x0000069E -
sub_420980 0x00420980 0x00000039 -
Inv_AddItem 0x004209C0 0x00000620 -
sub_4210D0 0x004210D0 0x00000129 -
Inv_RequestItem 0x00421200 0x00000077 -
Inv_RemoveAllItems 0x00421280 0x0000001E -
sub_4212A0 0x004212A0 0x00000110 -
sub_4213B0 0x004213B0 0x000000A7 -
sub_421580 0x00421580 0x0000017E -
sub_421700 0x00421700 0x00000060 -
sub_421760 0x00421760 0x00000040 -
sub_4217A0 0x004217A0 0x0000002C -
sub_4217D0 0x004217D0 0x0000013E -
sub_421910 0x00421910 0x0000002F -
sub_421940 0x00421940 0x0000002F -
sub_421970 0x00421970 0x0000002C -
sub_4219A0 0x004219A0 0x00000026 -
sub_4219D0 0x004219D0 0x00000022 -
sub_421A00 0x00421A00 0x00000025 -
sub_421A30 0x00421A30 0x00000020 -
sub_421A50 0x00421A50 0x00000057 -
sub_421AB0 0x00421AB0 0x00000055 -
InitialiseItemArray 0x00421B10 0x00000040 -
sub_421B50 0x00421B50 0x00000121 -
sub_421C80 0x00421C80 0x0000003D -
InitialiseItem 0x00421CC0 0x000001EE -
sub_421EB0 0x00421EB0 0x000000A6 -
sub_421F60 0x00421F60 0x00000080 -
sub_421FE0 0x00421FE0 0x00000080 -
sub_422060 0x00422060 0x000000A4 -
sub_422110 0x00422110 0x000000B6 -
GlobalItemReplace 0x004221D0 0x00000080 -
InitialiseFXArray 0x00422250 0x00000030 +
sub_422280 0x00422280 0x00000069 -
sub_4222F0 0x004222F0 0x000000E4 -
sub_4223E0 0x004223E0 0x00000096 -
sub_422480 0x00422480 0x0000016B -
sub_4225F0 0x004225F0 0x0000007A -
sub_422670 0x00422670 0x000000ED -
sub_422760 0x00422760 0x00000207 -
sub_422970 0x00422970 0x000000B7 -
sub_422A30 0x00422A30 0x00000057 -
sub_422A90 0x00422A90 0x00000076 -
sub_422B10 0x00422B10 0x00000076 -
sub_422B90 0x00422B90 0x00000040 -
sub_422BD0 0x00422BD0 0x00000049 -
sub_422C20 0x00422C20 0x0000001C -
sub_422C40 0x00422C40 0x0000026D -
sub_422EB0 0x00422EB0 0x0000007D -
sub_422F30 0x00422F30 0x0000004B -
sub_422F80 0x00422F80 0x00000073 -
sub_423000 0x00423000 0x00000073 -
sub_423080 0x00423080 0x00000027 -
sub_4230B0 0x004230B0 0x0000001C -
sub_4230D0 0x004230D0 0x00000013 -
sub_4230F0 0x004230F0 0x0000002C -
sub_423120 0x00423120 0x00000035 -
sub_423160 0x00423160 0x00000035 -
sub_4231A0 0x004231A0 0x00000014 -
sub_4231C0 0x004231C0 0x00000027 -
sub_4231F0 0x004231F0 0x00000027 -
sub_423220 0x00423220 0x00000027 -
sub_423250 0x00423250 0x00000027 -
sub_423280 0x00423280 0x00000027 -
sub_4232B0 0x004232B0 0x0000001D -
sub_4232D0 0x004232D0 0x0000001D -
sub_4232F0 0x004232F0 0x0000030C -
sub_423720 0x00423720 0x00000028 -
sub_423750 0x00423750 0x0000003D -
sub_423790 0x00423790 0x0000000B -
sub_4237A0 0x004237A0 0x00000015 -
sub_4237C0 0x004237C0 0x00000228 -
sub_4239F0 0x004239F0 0x00000210 -
sub_423C00 0x00423C00 0x000000FC -
sub_423D00 0x00423D00 0x000000C3 -
sub_423DD0 0x00423DD0 0x0000016D -
sub_423F40 0x00423F40 0x000000AA -
sub_423FF0 0x00423FF0 0x0000007E -
sub_424070 0x00424070 0x00000148 -
sub_4241F0 0x004241F0 0x0000006A -
sub_424260 0x00424260 0x0000014D -
sub_4243F0 0x004243F0 0x00000064 -
sub_424460 0x00424460 0x00000013 -
sub_424480 0x00424480 0x00000096 -
sub_424520 0x00424520 0x00000170 -
sub_424690 0x00424690 0x00000136 -
sub_4247D0 0x004247D0 0x00000136 -
sub_424910 0x00424910 0x0000001E -
sub_424930 0x00424930 0x000000A2 -
sub_4249E0 0x004249E0 0x000000A2 -
sub_424A90 0x00424A90 0x000000A2 -
sub_424B40 0x00424B40 0x00000149 -
sub_424CD0 0x00424CD0 0x000000A3 -
sub_424D80 0x00424D80 0x00000033 -
sub_424DC0 0x00424DC0 0x00000033 -
sub_424E00 0x00424E00 0x00000023 -
sub_424E30 0x00424E30 0x00000056 -
sub_424E90 0x00424E90 0x00000100 -
sub_424F90 0x00424F90 0x00000104 -
sub_4250A0 0x004250A0 0x00000089 -
sub_425130 0x00425130 0x00000099 -
sub_4251D0 0x004251D0 0x00000176 -
sub_425350 0x00425350 0x00000229 -
sub_4255A0 0x004255A0 0x000000E4 -
sub_4256C0 0x004256C0 0x000001C8 -
sub_425890 0x00425890 0x0000024B -
sub_425AE0 0x00425AE0 0x0000016A -
sub_425C50 0x00425C50 0x0000011A -
sub_425D70 0x00425D70 0x000000BE -
sub_425E30 0x00425E30 0x00000113 -
sub_425F50 0x00425F50 0x00000160 -
sub_4260F0 0x004260F0 0x00000373 -
sub_426470 0x00426470 0x00000147 -
sub_4265C0 0x004265C0 0x00000261 -
sub_426830 0x00426830 0x00000061 -
sub_4268A0 0x004268A0 0x0000012E -
sub_4269D0 0x004269D0 0x000001F5 -
sub_426BD0 0x00426BD0 0x00000271 -
InitialiseNewWeapon 0x00426E60 0x000000B9 -
sub_426F20 0x00426F20 0x00000194 -
sub_4270C0 0x004270C0 0x000001D9 -
sub_4272A0 0x004272A0 0x000000B2 -
sub_427360 0x00427360 0x000000C1 -
sub_427430 0x00427430 0x000002F2 -
sub_427730 0x00427730 0x000000E5 -
sub_427850 0x00427850 0x00000372 -
sub_427BD0 0x00427BD0 0x00000030 -
sub_427C00 0x00427C00 0x00000244 -
sub_427E80 0x00427E80 0x000000F8 -
sub_427FD0 0x00427FD0 0x0000001F -
InitialiseLaraLoad 0x00427FF0 0x00000024 -
InitialiseLara 0x00428020 0x00000150 +
InitialiseLaraInventory 0x00428170 0x000001C8 -
LaraInitialiseMeshes 0x00428340 0x000000DD -
sub_428420 0x00428420 0x00000025 -
sub_428450 0x00428450 0x00000221 -
sub_428680 0x00428680 0x00000058 -
sub_4286E0 0x004286E0 0x000001B2 -
sub_4288A0 0x004288A0 0x00000070 -
sub_428910 0x00428910 0x0000005E -
sub_428970 0x00428970 0x00000060 -
sub_4289D0 0x004289D0 0x00000060 -
sub_428A30 0x00428A30 0x00000178 -
sub_428BB0 0x00428BB0 0x0000001E -
sub_428BD0 0x00428BD0 0x00000023 -
sub_428C00 0x00428C00 0x00000023 -
sub_428C30 0x00428C30 0x00000023 -
sub_428C60 0x00428C60 0x000000E6 -
sub_428D50 0x00428D50 0x000001B1 -
sub_428F10 0x00428F10 0x000001AD -
sub_4290C0 0x004290C0 0x00000080 -
sub_429140 0x00429140 0x0000008A -
sub_4291D0 0x004291D0 0x0000007C -
sub_429250 0x00429250 0x00000014 -
sub_429270 0x00429270 0x0000004A -
sub_4292C0 0x004292C0 0x00000013 -
sub_4292E0 0x004292E0 0x0000005E -
sub_429340 0x00429340 0x000000FA -
sub_429440 0x00429440 0x000001DB -
sub_429620 0x00429620 0x000004D1 -
sub_429B00 0x00429B00 0x0000007E -
sub_429EA0 0x00429EA0 0x00000086 -
sub_429F30 0x00429F30 0x000002B0 -
sub_42A240 0x0042A240 0x00000052 -
sub_42A2A0 0x0042A2A0 0x0000000C -
sub_42A2B0 0x0042A2B0 0x0000000C -
DB_Log 0x0042A2C0 0x00000037 +
InitialiseLOTArray 0x0042A300 0x00000053 +
sub_42A360 0x0042A360 0x00000036 -
EnableBaddieAI 0x0042A3A0 0x000001D0 -
InitialiseSlot 0x0042A570 0x000000FC -
CreateZone 0x0042A6B0 0x000000C4 -
InitialiseLOT 0x0042A780 0x00000065 -
sub_42A7F0 0x0042A7F0 0x0000002C -
sub_42A81C 0x0042A81C 0x0000001A -
sub_42A850 0x0042A850 0x00000021 -
sub_42A871 0x0042A871 0x0000001A -
sub_42A8A0 0x0042A8A0 0x00000055 -
sub_42A900 0x0042A900 0x0000003A -
mn_reset_sound_effects 0x0042A940 0x000000EC -
sub_42AA30 0x0042AA30 0x000004C2 -
sub_42AF00 0x0042AF00 0x000000CE -
sub_42AFD0 0x0042AFD0 0x00000030 -
sub_42B000 0x0042B000 0x0000007E -
sub_42B080 0x0042B080 0x0000027D -
sub_42B300 0x0042B300 0x0000010E -
sub_42B410 0x0042B410 0x00000012 -
sub_42B430 0x0042B430 0x00000030 -
sub_42B460 0x0042B460 0x0000014A -
sub_42B5B0 0x0042B5B0 0x00000208 -
sub_42B7E0 0x0042B7E0 0x00000142 -
sub_42B940 0x0042B940 0x00000239 -
sub_42BBC0 0x0042BBC0 0x000000DA -
sub_42BCA0 0x0042BCA0 0x000000BE -
sub_42BDF0 0x0042BDF0 0x00000068 -
sub_42BE60 0x0042BE60 0x0000049E -
sub_42C330 0x0042C330 0x0000059F -
sub_42C910 0x0042C910 0x00000121 -
sub_42CA40 0x0042CA40 0x000004AE -
sub_42D130 0x0042D130 0x000000B1 -
sub_42D1F0 0x0042D1F0 0x0000003B -
sub_42D230 0x0042D230 0x0000003F -
sub_42D2C0 0x0042D2C0 0x0000001E -
sub_42D330 0x0042D330 0x0000004D -
sub_42D3D0 0x0042D3D0 0x0000004C -
sub_42D4A0 0x0042D4A0 0x0000007F -
sub_42D580 0x0042D580 0x00000176 -
sub_42D700 0x0042D700 0x0000006F -
sub_42D770 0x0042D770 0x00000180 -
sub_42D9C0 0x0042D9C0 0x000004D0 -
sub_42DE90 0x0042DE90 0x00000435 -
sub_42E2D0 0x0042E2D0 0x000002E8 -
sub_42E5C0 0x0042E5C0 0x000004F2 -
sub_42EAC0 0x0042EAC0 0x0000075D -
sub_42F230 0x0042F230 0x000004B1 -
sub_42F6F0 0x0042F6F0 0x0000056B -
S_InitialisePolyList 0x0042FC60 0x00000005 -
S_DumpScreen 0x0042FC70 0x00000044 -
S_ClearScreen 0x0042FCC0 0x00000013 -
S_InitialiseScreen 0x0042FCE0 0x00000027 -
S_OutputPolyList 0x0042FD10 0x00000018 -
S_GetObjectBounds 0x0042FD30 0x0000026C -
S_PrintShadow 0x0042FFA0 0x0000015B -
S_CalculateLight 0x00430100 0x00000183 -
S_CalculateStaticLight 0x00430290 0x00000031 -
S_DrawHealthBar 0x004302D0 0x00000180 +
S_DrawAirBar 0x00430450 0x00000188 +
S_SetupBelowWater 0x004305E0 0x00000054 -
S_SetupAboveWater 0x00430640 0x00000019 -
sub_430660 0x00430660 0x000000D3 -
sub_430740 0x00430740 0x00000446 -
sub_430B90 0x00430B90 0x00000141 -
S_DisplayPicture 0x00430CE0 0x00000094 -
sub_430D80 0x00430D80 0x0000007B -
sub_430E00 0x00430E00 0x00000037 -
sub_430E40 0x00430E40 0x00000066 -
sub_430EB0 0x00430EB0 0x000000ED -
sub_430FA0 0x00430FA0 0x000000E6 -
sub_431090 0x00431090 0x0000049E -
sub_431550 0x00431550 0x000006BF -
sub_431C30 0x00431C30 0x00000103 -
sub_431D40 0x00431D40 0x0000033F -
sub_4320B0 0x004320B0 0x00000027 -
sub_4320E0 0x004320E0 0x00000458 -
sub_432550 0x00432550 0x0000004C -
sub_4325A0 0x004325A0 0x000005A7 -
sub_432B60 0x00432B60 0x00000027 -
sub_432B90 0x00432B90 0x000004CC -
sub_433080 0x00433080 0x000001BF -
sub_433240 0x00433240 0x00000164 -
sub_4333B0 0x004333B0 0x00000108 -
sub_4334C0 0x004334C0 0x00000217 -
sub_4336F0 0x004336F0 0x0000011C -
sub_433900 0x00433900 0x00000227 -
sub_433B40 0x00433B40 0x00000277 -
sub_433DE0 0x00433DE0 0x0000003D -
sub_433E20 0x00433E20 0x00000078 -
sub_433EA0 0x00433EA0 0x00000042 -
sub_433EF0 0x00433EF0 0x00000038 -
sub_433F30 0x00433F30 0x0000001C -
sub_433F50 0x00433F50 0x000002A8 -
sub_434210 0x00434210 0x000002B5 -
InitialiseStartInfo 0x004344D0 0x00000042 -
ModifyStartInfo 0x00434520 0x000000BF -
CreateStartInfo 0x004345E0 0x00000139 -
CreateSaveGameInfo 0x00434720 0x00000866 -
ExtractSaveGameInfo 0x00434F90 0x00000971 -
S_DrawSpriteAbs 0x00435910 0x0000025E -
sub_435B70 0x00435B70 0x00000207 -
S_DrawScreenSprite2d 0x00435D80 0x0000014D -
sub_435ED0 0x00435ED0 0x000001CD -
sub_4360A0 0x004360A0 0x000001FB -
InitialiseLevel 0x004362A0 0x00000119 -
sub_4363C0 0x004363C0 0x00000018 -
BaddyObjects 0x004363E0 0x00000C2F -
sub_437010 0x00437010 0x00000356 -
sub_437370 0x00437370 0x000006D3 -
InitialiseObjects 0x00437A50 0x00000063 -
sub_437AC0 0x00437AC0 0x00000006 -
sub_437AD0 0x00437AD0 0x00000029 -
sub_437B00 0x00437B00 0x00000070 -
sub_437B70 0x00437B70 0x00000045 -
sub_437BC0 0x00437BC0 0x00000003 -
sub_437BD0 0x00437BD0 0x00000029 -
sub_437C00 0x00437C00 0x000000A5 -
sub_437CB0 0x00437CB0 0x0000014B -
sub_437E00 0x00437E00 0x0000000D -
sub_437E10 0x00437E10 0x000000C3 -
sub_437EE0 0x00437EE0 0x00000028 -
sub_437F10 0x00437F10 0x00000020 -
nullsub_1 0x00437F30 0x00000001 -
TestCdDrive 0x00437F40 0x00000039 -
sub_437F80 0x00437F80 0x00000026 -
sub_437FB0 0x00437FB0 0x000000F5 -
sub_4380C0 0x004380C0 0x00000018 -
sub_4380E0 0x004380E0 0x00000255 -
sub_438340 0x00438340 0x0000003B -
sub_438390 0x00438390 0x00000080 -
GameMain 0x00438410 0x0000050A -
sub_438920 0x00438920 0x00000213 -
sub_438B60 0x00438B60 0x00000090 -
sub_438BF0 0x00438BF0 0x0000004B -
sub_438C40 0x00438C40 0x00000051 -
sub_438CA0 0x00438CA0 0x00000015 -
sub_438CC0 0x00438CC0 0x0000000F -
sub_438CD0 0x00438CD0 0x0000001B -
sub_438CF0 0x00438CF0 0x00000044 -
S_CDPlay 0x00438D40 0x000000FD -
sub_438E40 0x00438E40 0x00000043 -
sub_438E90 0x00438E90 0x00000005 -
sub_438EA0 0x00438EA0 0x00000189 -
sub_439030 0x00439030 0x000000FC -
sub_439130 0x00439130 0x00000128 -
sub_439260 0x00439260 0x000002EF -
sub_439550 0x00439550 0x0000019C -
sub_4396F0 0x004396F0 0x0000005D -
T_InitPrint 0x00439750 0x00000022 -
T_Print 0x00439780 0x000000E0 -
sub_439860 0x00439860 0x0000003F -
sub_4398A0 0x004398A0 0x00000013 -
T_FlashText 0x004398C0 0x00000027 -
sub_4398F0 0x004398F0 0x00000052 -
sub_439950 0x00439950 0x0000000C -
sub_439960 0x00439960 0x00000025 -
sub_439990 0x00439990 0x0000000C -
T_CentreH 0x004399A0 0x0000001A -
T_CentreV 0x004399C0 0x0000001A -
sub_4399E0 0x004399E0 0x0000001A -
sub_439A00 0x00439A00 0x0000001A -
sub_439A20 0x00439A20 0x000000AC -
T_RemovePrint 0x00439AD0 0x00000025 -
T_DrawText 0x00439B00 0x00000153 -
sub_439C60 0x00439C60 0x000003A2 -
sub_43A010 0x0043A010 0x00000040 -
sub_43A050 0x0043A050 0x0000025D -
sub_43A520 0x0043A520 0x0000014E -
sub_43A6D0 0x0043A6D0 0x00000042 -
sub_43A720 0x0043A720 0x00000046 -
sub_43A770 0x0043A770 0x000000A3 -
sub_43A820 0x0043A820 0x0000014B -
sub_43A970 0x0043A970 0x000000F9 -
sub_43AA70 0x0043AA70 0x00000035 -
sub_43AAB0 0x0043AAB0 0x00000034 -
sub_43AAF0 0x0043AAF0 0x000000C1 -
sub_43ABC0 0x0043ABC0 0x0000009E -
sub_43ACA0 0x0043ACA0 0x00000129 -
sub_43ADD0 0x0043ADD0 0x000000E8 -
sub_43AEC0 0x0043AEC0 0x0000019B -
sub_43B060 0x0043B060 0x00000140 -
sub_43B1A0 0x0043B1A0 0x0000004C -
sub_43B2A0 0x0043B2A0 0x00000185 -
sub_43B430 0x0043B430 0x000000E8 -
sub_43B520 0x0043B520 0x000000C7 -
sub_43B5F0 0x0043B5F0 0x00000119 -
sub_43B710 0x0043B710 0x00000139 -
sub_43B850 0x0043B850 0x000002B9 -
sub_43BB30 0x0043BB30 0x00000028 -
sub_43BB60 0x0043BB60 0x00000625 -
sub_43C1C0 0x0043C1C0 0x0000026D -
sub_43C540 0x0043C540 0x00000110 -
sub_43C650 0x0043C650 0x0000003A -
sub_43C690 0x0043C690 0x000000A0 -
sub_43C730 0x0043C730 0x0000039A -
sub_43CAD0 0x0043CAD0 0x00000195 -
sub_43CC70 0x0043CC70 0x000000DC -
sub_43CD70 0x0043CD70 0x00000118 -
sub_43CE90 0x0043CE90 0x000000E5 -
sub_43CF80 0x0043CF80 0x000000E1 -
sub_43D070 0x0043D070 0x0000049A -
sub_43D510 0x0043D510 0x000000DA -
sub_43D5F0 0x0043D5F0 0x00000176 -
ShowFatalError 0x0043D770 0x00000147 -
KeyboardHook(x,x,x) 0x0043D8C0 0x00000077 -
sub_43D940 0x0043D940 0x00000136 -
WinMain(x,x,x,x) 0x0043DA80 0x0000037D -
sub_43DE00 0x0043DE00 0x0000011F -
sub_43DF20 0x0043DF20 0x00000024 -
sub_43DF50 0x0043DF50 0x0000040B -
sub_43E390 0x0043E390 0x000002BD -
phd_PushMatrix 0x0043EA01 0x00000020 -
sub_43EA21 0x0043EA21 0x00000035 -
sub_43EA80 0x0043EA80 0x00000064 -
sub_43EAE4 0x0043EAE4 0x00000139 -
sub_43EC1D 0x0043EC1D 0x00000185 -
sub_43EDA2 0x0043EDA2 0x00000311 -
sub_43F0B3 0x0043F0B3 0x00000355 -
DirectSoundCreate 0x00440EAC 0x00000006 -
sub_440EF0 0x00440EF0 0x00000005 -
sub_441C80 0x00441C80 0x00000013 -
sub_441CA0 0x00441CA0 0x000003EC -
sub_444990 0x00444990 0x0000000B -
sub_448A80 0x00448A80 0x000002FA -
sub_44B690 0x0044B690 0x0000001A -
sub_44B6B0 0x0044B6B0 0x0000001A -
sub_44B6D0 0x0044B6D0 0x00000036 -
sub_44B710 0x0044B710 0x00000036 -
sub_44C5F0 0x0044C5F0 0x00000168 -
sub_44D9D0 0x0044D9D0 0x000002C4 -
sub_450500 0x00450500 0x00000006 -
sub_450510 0x00450510 0x00000296 -
sub_4507B0 0x004507B0 0x0000000E -
sub_4507C0 0x004507C0 0x00000013 -
sub_4507E0 0x004507E0 0x0000000E -
sub_4507F0 0x004507F0 0x00000018 -
sub_450810 0x00450810 0x0000000E -
sub_450820 0x00450820 0x00000006 -
sub_450830 0x00450830 0x0000000E -
sub_450840 0x00450840 0x00000018 -
sub_450860 0x00450860 0x0000000E -
sub_450870 0x00450870 0x00000006 -
sub_450880 0x00450880 0x00000013 -
sub_4508A0 0x004508A0 0x00000013 -
sub_4508C0 0x004508C0 0x00000056 -

78
docs/render_progress.py Normal file
View file

@ -0,0 +1,78 @@
#!/usr/bin/python3
import typing as T
from dataclasses import dataclass
import re
from pathlib import Path
MAX_X = 50
SQUARE_SIZE = 10
SQUARE_MARGIN = 2
DOCS_DIR = Path(__file__).parent
PROGRESS_TXT_FILE = DOCS_DIR / "progress.txt"
PROGRESS_SVG_FILE = DOCS_DIR / "progress.svg"
@dataclass
class Function:
name: str
offset: int
size: int
flags: str
@property
def decompiled(self):
return "+" in self.flags
def collect_functions() -> T.Iterable[Function]:
for line in PROGRESS_TXT_FILE.open():
if line.startswith("#"):
continue
func_name, offset, size, flags = re.split(r"\s+", line.strip())
yield Function(
name=func_name,
offset=int(offset, 16),
size=int(size, 16),
flags=flags,
)
def main() -> None:
functions = list(collect_functions())
svg_width = (
min(MAX_X, len(functions)) * (SQUARE_SIZE + SQUARE_MARGIN)
+ SQUARE_MARGIN
)
svg_height = ((len(functions) + MAX_X - 1) // MAX_X) * (
SQUARE_SIZE + SQUARE_MARGIN
) + SQUARE_MARGIN
with PROGRESS_SVG_FILE.open("w") as handle:
print(
f'<svg version="1.1" '
f'width="{svg_width}" '
f'height="{svg_height}" '
f'xmlns="http://www.w3.org/2000/svg">',
file=handle,
)
for i, function in enumerate(functions):
x = (i % MAX_X) * (SQUARE_SIZE + SQUARE_MARGIN)
y = (i // MAX_X) * (SQUARE_SIZE + SQUARE_MARGIN)
color = "green" if function.decompiled else "pink"
print(
f"<rect "
f'width="{SQUARE_SIZE}" '
f'height="{SQUARE_SIZE}" '
f'x="{x}" '
f'y="{y}" '
f'fill="{color}"/>',
file=handle,
)
print("</svg>", file=handle)
if __name__ == "__main__":
main()

View file

@ -6,7 +6,6 @@
// clang-format off
#define game_malloc ((void __cdecl*(*)(uint32_t length, int type))0x0041E2F0)
#define ins_line ((int __cdecl(*)(int, int, int, int, int, char))0x00402710)
#define _fread ((size_t __cdecl(*)(void *, size_t, size_t, FILE *))0x00442C20)
#define InitialiseItemArray ((void __cdecl(*)(int item_count))0x00421B10)
#define S_ExitSystem ((void __cdecl(*)(const char *message))0x0041E260)