Merge branch 'main' of github.com:Yanis002/st

This commit is contained in:
Aetias
2025-07-22 22:59:07 +02:00
17 changed files with 647 additions and 114 deletions
+1
View File
@@ -17,3 +17,4 @@ build.ninja
.ninja_lock
.ninja_deps
/wibo
m2c*.c
+10 -1
View File
@@ -1,4 +1,13 @@
# The Legend of Zelda: Spirit Tracks
The Legend of Zelda: Spirit Tracks
[![Build Status]][actions] [![Progress]][decomp.dev] [![Discord Badge]][discord]
=============
[Build Status]: https://github.com/Yanis002/st/actions/workflows/build.yml/badge.svg
[actions]: https://github.com/Yanis002/st/actions/workflows/build.yml
[Progress]: https://decomp.dev/Yanis002/st.svg?mode=shield&label=Code
[decomp.dev]: https://decomp.dev/Yanis002/st
[Discord Badge]: https://img.shields.io/discord/688807550715560050?color=%237289DA&logo=discord&logoColor=%23FFFFFF
[discord]: https://discord.com/invite/DqwyCBYKqf/
**Work in progress!** This project aims to recreate source code for ***The Legend of Zelda: Spirit Tracks*** by decompiling its code by hand. **The repository does not contain assets or assembly code.** To build the ROM, you must own an existing
copy of the game to extract assets from.
+23 -23
View File
@@ -22,7 +22,7 @@ func_01ff92a8 kind:function(arm,size=0x64) addr:0x01ff92a8
func_01ff930c kind:function(arm,size=0xc) addr:0x01ff930c
func_01ff9318 kind:function(arm,size=0x4c) addr:0x01ff9318
func_01ff9364 kind:function(arm,size=0x28) addr:0x01ff9364
func_01ff938c kind:function(arm,size=0x34) addr:0x01ff938c
Vec3p_TryNormalize kind:function(arm,size=0x34) addr:0x01ff938c
func_01ff93c0 kind:function(arm,size=0x5c) addr:0x01ff93c0
func_01ff941c kind:function(arm,size=0x60) addr:0x01ff941c
func_01ff947c kind:function(arm,size=0x50) addr:0x01ff947c
@@ -52,35 +52,35 @@ func_01ff9ec4 kind:function(arm,size=0x30) addr:0x01ff9ec4
func_01ff9ef4 kind:function(arm,size=0x10) addr:0x01ff9ef4
func_01ff9f04 kind:function(arm,size=0x10) addr:0x01ff9f04
func_01ff9f14 kind:function(arm,size=0x24) addr:0x01ff9f14
func_01ff9f38 kind:function(arm,size=0x18) addr:0x01ff9f38
Mat2p_InitIdentity kind:function(arm,size=0x18) addr:0x01ff9f38
func_01ff9f50 kind:function(thumb,size=0xc) addr:0x01ff9f50
func_01ff9f5c kind:function(thumb,size=0xc) addr:0x01ff9f5c
Mat2p_InitRotation kind:function(thumb,size=0xc) addr:0x01ff9f5c
func_01ff9f68 kind:function(arm,size=0x54) addr:0x01ff9f68
func_01ff9fbc kind:function(arm,size=0xb0) addr:0x01ff9fbc
func_01ffa06c kind:function(arm,size=0x24) addr:0x01ffa06c
func_01ffa090 kind:function(arm,size=0x2c) addr:0x01ffa090
Mat3p_InitIdentity kind:function(arm,size=0x24) addr:0x01ffa06c
Mat3p_CopyToMat4x3p kind:function(arm,size=0x2c) addr:0x01ffa090
func_01ffa0bc kind:function(arm,size=0xc8) addr:0x01ffa0bc
func_01ffa184 kind:function(thumb,size=0x1c) addr:0x01ffa184
func_01ffa1a0 kind:function(thumb,size=0x1c) addr:0x01ffa1a0
func_01ffa1bc kind:function(thumb,size=0x18) addr:0x01ffa1bc
func_01ffa1d4 kind:function(arm,size=0x154) addr:0x01ffa1d4
Mat3p_InitXRotation kind:function(thumb,size=0x1c) addr:0x01ffa184
Mat3p_InitYRotation kind:function(thumb,size=0x1c) addr:0x01ffa1a0
Mat3p_InitZRotation kind:function(thumb,size=0x18) addr:0x01ffa1bc
Mat3p_func_01ff8248 kind:function(arm,size=0x154) addr:0x01ffa1d4
func_01ffa328 kind:function(arm,size=0x2e4) addr:0x01ffa328
func_01ffa60c kind:function(arm,size=0x194) addr:0x01ffa60c
func_01ffa7a0 kind:function(arm,size=0x7c) addr:0x01ffa7a0
func_01ffa81c kind:function(arm,size=0x28) addr:0x01ffa81c
func_01ffa844 kind:function(arm,size=0x34) addr:0x01ffa844
func_01ffa878 kind:function(arm,size=0xac) addr:0x01ffa878
func_01ffa924 kind:function(thumb,size=0x16) addr:0x01ffa924
Mat4x3p_InitIdentity kind:function(arm,size=0x28) addr:0x01ffa81c
Mat4x3p_CopyToMat4p kind:function(arm,size=0x34) addr:0x01ffa844
Mat4x3p_func_01ff8988 kind:function(arm,size=0xac) addr:0x01ffa878
Mat4x3p_InitScale kind:function(thumb,size=0x16) addr:0x01ffa924
func_01ffa93c kind:function(arm,size=0x34) addr:0x01ffa93c
func_01ffa970 kind:function(thumb,size=0x1e) addr:0x01ffa970
func_01ffa990 kind:function(thumb,size=0x1a) addr:0x01ffa990
func_01ffa9ac kind:function(thumb,size=0x1a) addr:0x01ffa9ac
func_01ffa9c8 kind:function(arm,size=0x20) addr:0x01ffa9c8
Mat4x3p_InitXRotation kind:function(thumb,size=0x1e) addr:0x01ffa970
Mat4x3p_InitYRotation kind:function(thumb,size=0x1a) addr:0x01ffa990
Mat4x3p_InitZRotation kind:function(thumb,size=0x1a) addr:0x01ffa9ac
Mat4x3p_func_01ff8ad8 kind:function(arm,size=0x20) addr:0x01ffa9c8
func_01ffa9e8 kind:function(arm,size=0x374) addr:0x01ffa9e8
func_01ffad5c kind:function(arm,size=0x218) addr:0x01ffad5c
func_01ffaf74 kind:function(arm,size=0x98) addr:0x01ffaf74
func_01ffb00c kind:function(arm,size=0x2c) addr:0x01ffb00c
func_01ffb038 kind:function(arm,size=0x34) addr:0x01ffb038
Mat4p_InitIdentity kind:function(arm,size=0x2c) addr:0x01ffb00c
Mat4p_CopyToMat4x3p kind:function(arm,size=0x34) addr:0x01ffb038
func_01ffb06c kind:function(arm,size=0x3bc) addr:0x01ffb06c
func_01ffb428 kind:function(arm,size=0x10) addr:0x01ffb428
func_01ffb438 kind:function(arm,size=0x2c) addr:0x01ffb438
@@ -97,12 +97,12 @@ func_01ffb618 kind:function(arm,size=0x2c) addr:0x01ffb618
func_01ffb644 kind:function(arm,size=0x28) addr:0x01ffb644
func_01ffb66c kind:function(arm,size=0x3c) addr:0x01ffb66c
func_01ffb6a8 kind:function(arm,size=0x3c) addr:0x01ffb6a8
func_01ffb6e4 kind:function(arm,size=0x30) addr:0x01ffb6e4
Vec3p_Add kind:function(arm,size=0x30) addr:0x01ffb6e4
func_01ffb714 kind:function(arm,size=0x30) addr:0x01ffb714
func_01ffb744 kind:function(arm,size=0x3c) addr:0x01ffb744
Vec3p_Dot kind:function(arm,size=0x3c) addr:0x01ffb744
func_01ffb780 kind:function(arm,size=0x80) addr:0x01ffb780
func_01ffb800 kind:function(arm,size=0x60) addr:0x01ffb800
func_01ffb860 kind:function(arm,size=0x114) addr:0x01ffb860
Vec3p_Normalize kind:function(arm,size=0x114) addr:0x01ffb860
func_01ffb974 kind:function(arm,size=0x58) addr:0x01ffb974
func_01ffb9cc kind:function(arm,size=0x7c) addr:0x01ffb9cc
func_01ffba48 kind:function(arm,size=0x198) addr:0x01ffba48
@@ -189,7 +189,7 @@ func_01ffee10 kind:function(arm,size=0x124) addr:0x01ffee10
func_01ffef34 kind:function(arm,size=0x128) addr:0x01ffef34
func_01fff05c kind:function(arm,size=0x58) addr:0x01fff05c
func_01fff0b4 kind:function(arm,size=0x94) addr:0x01fff0b4
func_01fff148 kind:function(arm,size=0x20) addr:0x01fff148
_ZN18UnkStruct_027e0ce013func_01fff148Ev kind:function(arm,size=0x20) addr:0x01fff148
func_01fff168 kind:function(arm,size=0x14) addr:0x01fff168
func_01fff17c kind:function(arm,size=0x28) addr:0x01fff17c
func_01fff1a4 kind:function(arm,size=0x3c) addr:0x01fff1a4
@@ -5,3 +5,6 @@
.data start:0x020b1960 end:0x020b4ec0 kind:data align:32
.bss start:0x020b4ec0 end:0x020b6520 kind:bss align:32
src/00_Second/Actor/Actor.cpp:
.text start:0x02098388 end:0x02098654
.data start:0x020b30e4 end:0x020b3148
+1 -1
View File
@@ -6679,7 +6679,7 @@ from:0x020983e4 kind:arm_call to:0x020975f8 module:overlay(0)
from:0x02098400 kind:arm_call to:0x02028cdc module:main
from:0x0209844c kind:arm_call to:0x0209862c module:overlay(0)
from:0x02098458 kind:arm_call to:0x0209848c module:overlay(0)
from:0x02098464 kind:load to:0x020b30ec module:overlay(0)
from:0x02098464 kind:load to:0x020b30e4 add:8 module:overlay(0)
from:0x02098468 kind:load to:0x020b539c module:overlay(0)
from:0x0209847c kind:arm_call to:0x02011ff4 module:main
from:0x020984e8 kind:arm_call to:0x020984f0 module:overlay(0)
+26 -26
View File
@@ -1636,7 +1636,7 @@ func_ov000_02081d5c kind:function(arm,size=0x20) addr:0x02081d5c
func_ov000_02081d7c kind:function(arm,size=0xb4) addr:0x02081d7c
func_ov000_02081e30 kind:function(arm,size=0x8c) addr:0x02081e30
func_ov000_02081ebc kind:function(arm,size=0x10) addr:0x02081ebc
func_ov000_02081ecc kind:function(arm,size=0x10) addr:0x02081ecc
_ZN18UnkStruct_027e0cd819func_ov000_02081eccEsi kind:function(arm,size=0x10) addr:0x02081ecc
func_ov000_02081edc kind:function(arm,size=0x10) addr:0x02081edc
func_ov000_02081eec kind:function(arm,size=0x50) addr:0x02081eec
func_ov000_02081f3c kind:function(arm,size=0x4c) addr:0x02081f3c
@@ -2261,7 +2261,7 @@ func_ov000_02097528 kind:function(arm,size=0x20) addr:0x02097528
func_ov000_02097548 kind:function(arm,size=0x78) addr:0x02097548
func_ov000_020975c0 kind:function(arm,size=0x1c) addr:0x020975c0
func_ov000_020975dc kind:function(arm,size=0x1c) addr:0x020975dc
func_ov000_020975f8 kind:function(arm,size=0x78) addr:0x020975f8
_ZN8Actor_5c19func_ov000_020975f8Ev kind:function(arm,size=0x78) addr:0x020975f8
func_ov000_02097670 kind:function(arm,size=0xc) addr:0x02097670
func_ov000_0209767c kind:function(arm,size=0xa8) addr:0x0209767c
func_ov000_02097724 kind:function(arm,size=0x28) addr:0x02097724
@@ -2311,29 +2311,29 @@ func_ov000_020982c0 kind:function(arm,size=0x18) addr:0x020982c0
func_ov000_020982d8 kind:function(arm,size=0x80) addr:0x020982d8
func_ov000_02098358 kind:function(arm,size=0x14) addr:0x02098358
func_ov000_0209836c kind:function(arm,size=0x1c) addr:0x0209836c
func_ov000_02098388 kind:function(arm,size=0xe8) addr:0x02098388
func_ov000_02098470 kind:function(arm,size=0x4) addr:0x02098470
func_ov000_02098474 kind:function(arm,size=0x14) addr:0x02098474
func_ov000_02098488 kind:function(arm,size=0x4) addr:0x02098488
func_ov000_0209848c kind:function(arm,size=0x1c) addr:0x0209848c
func_ov000_020984a8 kind:function(arm,size=0x8) addr:0x020984a8
func_ov000_020984b0 kind:function(arm,size=0x4) addr:0x020984b0
func_ov000_020984b4 kind:function(arm,size=0x4) addr:0x020984b4
func_ov000_020984b8 kind:function(arm,size=0x4) addr:0x020984b8
func_ov000_020984bc kind:function(arm,size=0x4) addr:0x020984bc
func_ov000_020984c0 kind:function(arm,size=0x4) addr:0x020984c0
func_ov000_020984c4 kind:function(arm,size=0x4) addr:0x020984c4
func_ov000_020984c8 kind:function(arm,size=0x8) addr:0x020984c8
func_ov000_020984d0 kind:function(arm,size=0x20) addr:0x020984d0
func_ov000_020984f0 kind:function(arm,size=0x28) addr:0x020984f0
func_ov000_02098518 kind:function(arm,size=0x24) addr:0x02098518
func_ov000_0209853c kind:function(arm,size=0x18) addr:0x0209853c
func_ov000_02098554 kind:function(arm,size=0x18) addr:0x02098554
func_ov000_0209856c kind:function(arm,size=0xc) addr:0x0209856c
func_ov000_02098578 kind:function(arm,size=0xc) addr:0x02098578
func_ov000_02098584 kind:function(arm,size=0x6c) addr:0x02098584
func_ov000_020985f0 kind:function(arm,size=0x3c) addr:0x020985f0
func_ov000_0209862c kind:function(arm,size=0x28) addr:0x0209862c
_ZN5ActorC1Ev kind:function(arm,size=0xe8) addr:0x02098388
_ZN5ActorD1Ev kind:function(arm,size=0x4) addr:0x02098470
_ZN5ActorD0Ev kind:function(arm,size=0x14) addr:0x02098474
_ZN5ActorD2Ev kind:function(arm,size=0x4) addr:0x02098488
_ZN5Actor19func_ov000_0209848cEP27UnkStruct_ov000_020b539c_30 kind:function(arm,size=0x1c) addr:0x0209848c
_ZN5Actor8vfunc_18Ev kind:function(arm,size=0x8) addr:0x020984a8
_ZN5Actor8vfunc_1cEv kind:function(arm,size=0x4) addr:0x020984b0
_ZN5Actor8vfunc_20Ev kind:function(arm,size=0x4) addr:0x020984b4
_ZN5Actor8vfunc_24Ev kind:function(arm,size=0x4) addr:0x020984b8
_ZN5Actor8vfunc_28Ev kind:function(arm,size=0x4) addr:0x020984bc
_ZN5Actor8vfunc_2cEv kind:function(arm,size=0x4) addr:0x020984c0
_ZN5Actor8vfunc_30Ev kind:function(arm,size=0x4) addr:0x020984c4
_ZN5Actor8vfunc_34Ev kind:function(arm,size=0x8) addr:0x020984c8
_ZN5Actor19func_ov000_020984d0Ev kind:function(arm,size=0x20) addr:0x020984d0
_ZN5Actor19func_ov000_020984f0Ev kind:function(arm,size=0x28) addr:0x020984f0
_ZN5Actor8vfunc_00EP5Vec3p kind:function(arm,size=0x24) addr:0x02098518
_ZN5Actor19func_ov000_0209853cEv kind:function(arm,size=0x18) addr:0x0209853c
_ZN5Actor8vfunc_04Ev kind:function(arm,size=0x18) addr:0x02098554
_ZN5Actor8vfunc_08Ev kind:function(arm,size=0xc) addr:0x0209856c
_ZN5Actor8vfunc_0cEv kind:function(arm,size=0xc) addr:0x02098578
_ZN5Actor8vfunc_38Ei kind:function(arm,size=0x6c) addr:0x02098584
_ZN5Actor8vfunc_3cEiP5Vec3p kind:function(arm,size=0x3c) addr:0x020985f0
_ZN5Actor19func_ov000_0209862cEi kind:function(arm,size=0x28) addr:0x0209862c
func_ov000_02098654 kind:function(arm,size=0x28) addr:0x02098654
func_ov000_0209867c kind:function(arm,size=0x38) addr:0x0209867c
func_ov000_020986b4 kind:function(arm,size=0x48) addr:0x020986b4
@@ -3667,7 +3667,7 @@ data_ov000_020b3098 kind:data(any) addr:0x020b3098
data_ov000_020b30a4 kind:data(any) addr:0x020b30a4
data_ov000_020b30b4 kind:data(any) addr:0x020b30b4
data_ov000_020b30d0 kind:data(any) addr:0x020b30d0
data_ov000_020b30ec kind:data(any) addr:0x020b30ec
_ZTV5Actor kind:data(any) addr:0x020b30e4
data_ov000_020b3148 kind:data(any) addr:0x020b3148
data_ov000_020b31a8 kind:data(any) addr:0x020b31a8
data_ov000_020b31f0 kind:data(any) addr:0x020b31f0
+2 -2
View File
@@ -1611,9 +1611,9 @@ func_02028c4c kind:function(arm,size=0x14) addr:0x02028c4c
func_02028c60 kind:function(arm,size=0x18) addr:0x02028c60
func_02028c78 kind:function(arm,size=0x18) addr:0x02028c78
func_02028c90 kind:function(arm,size=0x4c) addr:0x02028c90
func_02028cdc kind:function(arm,size=0x38) addr:0x02028cdc
_ZN24UnkStruct_ov000_020b539c13func_02028cdcEP8Actor_5ci kind:function(arm,size=0x38) addr:0x02028cdc
func_02028d14 kind:function(arm,size=0x1c) addr:0x02028d14
func_02028d30 kind:function(arm,size=0x1c) addr:0x02028d30
CopySingle288 kind:function(arm,size=0x1c) addr:0x02028d30
func_02028d4c kind:function(arm,size=0x24) addr:0x02028d4c
func_02028d70 kind:function(arm,size=0x2c) addr:0x02028d70
func_02028d9c kind:function(arm,size=0x94) addr:0x02028d9c
+22 -22
View File
@@ -22,7 +22,7 @@ func_01ff92a8 kind:function(arm,size=0x64) addr:0x01ff92a8
func_01ff930c kind:function(arm,size=0xc) addr:0x01ff930c
func_01ff9318 kind:function(arm,size=0x4c) addr:0x01ff9318
func_01ff9364 kind:function(arm,size=0x28) addr:0x01ff9364
func_01ff938c kind:function(arm,size=0x34) addr:0x01ff938c
Vec3p_TryNormalize kind:function(arm,size=0x34) addr:0x01ff938c
func_01ff93c0 kind:function(arm,size=0x5c) addr:0x01ff93c0
func_01ff941c kind:function(arm,size=0x60) addr:0x01ff941c
func_01ff947c kind:function(arm,size=0x50) addr:0x01ff947c
@@ -52,35 +52,35 @@ func_01ff9ec4 kind:function(arm,size=0x30) addr:0x01ff9ec4
func_01ff9ef4 kind:function(arm,size=0x10) addr:0x01ff9ef4
func_01ff9f04 kind:function(arm,size=0x10) addr:0x01ff9f04
func_01ff9f14 kind:function(arm,size=0x24) addr:0x01ff9f14
func_01ff9f38 kind:function(arm,size=0x18) addr:0x01ff9f38
Mat2p_InitIdentity kind:function(arm,size=0x18) addr:0x01ff9f38
func_01ff9f50 kind:function(thumb,size=0xc) addr:0x01ff9f50
func_01ff9f5c kind:function(thumb,size=0xc) addr:0x01ff9f5c
Mat2p_InitRotation kind:function(thumb,size=0xc) addr:0x01ff9f5c
func_01ff9f68 kind:function(arm,size=0x54) addr:0x01ff9f68
func_01ff9fbc kind:function(arm,size=0xb0) addr:0x01ff9fbc
func_01ffa06c kind:function(arm,size=0x24) addr:0x01ffa06c
func_01ffa090 kind:function(arm,size=0x2c) addr:0x01ffa090
Mat3p_InitIdentity kind:function(arm,size=0x24) addr:0x01ffa06c
Mat3p_CopyToMat4x3p kind:function(arm,size=0x2c) addr:0x01ffa090
func_01ffa0bc kind:function(arm,size=0xc8) addr:0x01ffa0bc
func_01ffa184 kind:function(thumb,size=0x1c) addr:0x01ffa184
func_01ffa1a0 kind:function(thumb,size=0x1c) addr:0x01ffa1a0
func_01ffa1bc kind:function(thumb,size=0x18) addr:0x01ffa1bc
func_01ffa1d4 kind:function(arm,size=0x154) addr:0x01ffa1d4
Mat3p_InitXRotation kind:function(thumb,size=0x1c) addr:0x01ffa184
Mat3p_InitYRotation kind:function(thumb,size=0x1c) addr:0x01ffa1a0
Mat3p_InitZRotation kind:function(thumb,size=0x18) addr:0x01ffa1bc
Mat3p_func_01ff8248 kind:function(arm,size=0x154) addr:0x01ffa1d4
func_01ffa328 kind:function(arm,size=0x2e4) addr:0x01ffa328
func_01ffa60c kind:function(arm,size=0x194) addr:0x01ffa60c
func_01ffa7a0 kind:function(arm,size=0x7c) addr:0x01ffa7a0
func_01ffa81c kind:function(arm,size=0x28) addr:0x01ffa81c
func_01ffa844 kind:function(arm,size=0x34) addr:0x01ffa844
func_01ffa878 kind:function(arm,size=0xac) addr:0x01ffa878
func_01ffa924 kind:function(thumb,size=0x16) addr:0x01ffa924
Mat4x3p_InitIdentity kind:function(arm,size=0x28) addr:0x01ffa81c
Mat4x3p_CopyToMat4p kind:function(arm,size=0x34) addr:0x01ffa844
Mat4x3p_func_01ff8988 kind:function(arm,size=0xac) addr:0x01ffa878
Mat4x3p_InitScale kind:function(thumb,size=0x16) addr:0x01ffa924
func_01ffa93c kind:function(arm,size=0x34) addr:0x01ffa93c
func_01ffa970 kind:function(thumb,size=0x1e) addr:0x01ffa970
func_01ffa990 kind:function(thumb,size=0x1a) addr:0x01ffa990
func_01ffa9ac kind:function(thumb,size=0x1a) addr:0x01ffa9ac
func_01ffa9c8 kind:function(arm,size=0x20) addr:0x01ffa9c8
Mat4x3p_InitXRotation kind:function(thumb,size=0x1e) addr:0x01ffa970
Mat4x3p_InitYRotation kind:function(thumb,size=0x1a) addr:0x01ffa990
Mat4x3p_InitZRotation kind:function(thumb,size=0x1a) addr:0x01ffa9ac
Mat4x3p_func_01ff8ad8 kind:function(arm,size=0x20) addr:0x01ffa9c8
func_01ffa9e8 kind:function(arm,size=0x374) addr:0x01ffa9e8
func_01ffad5c kind:function(arm,size=0x218) addr:0x01ffad5c
func_01ffaf74 kind:function(arm,size=0x98) addr:0x01ffaf74
func_01ffb00c kind:function(arm,size=0x2c) addr:0x01ffb00c
func_01ffb038 kind:function(arm,size=0x34) addr:0x01ffb038
Mat4p_InitIdentity kind:function(arm,size=0x2c) addr:0x01ffb00c
Mat4p_CopyToMat4x3p kind:function(arm,size=0x34) addr:0x01ffb038
func_01ffb06c kind:function(arm,size=0x3bc) addr:0x01ffb06c
func_01ffb428 kind:function(arm,size=0x10) addr:0x01ffb428
func_01ffb438 kind:function(arm,size=0x2c) addr:0x01ffb438
@@ -99,10 +99,10 @@ func_01ffb66c kind:function(arm,size=0x3c) addr:0x01ffb66c
func_01ffb6a8 kind:function(arm,size=0x3c) addr:0x01ffb6a8
func_01ffb6e4 kind:function(arm,size=0x30) addr:0x01ffb6e4
func_01ffb714 kind:function(arm,size=0x30) addr:0x01ffb714
func_01ffb744 kind:function(arm,size=0x3c) addr:0x01ffb744
Vec3p_Dot kind:function(arm,size=0x3c) addr:0x01ffb744
func_01ffb780 kind:function(arm,size=0x80) addr:0x01ffb780
func_01ffb800 kind:function(arm,size=0x60) addr:0x01ffb800
func_01ffb860 kind:function(arm,size=0x114) addr:0x01ffb860
Vec3p_Normalize kind:function(arm,size=0x114) addr:0x01ffb860
func_01ffb974 kind:function(arm,size=0x58) addr:0x01ffb974
func_01ffb9cc kind:function(arm,size=0x7c) addr:0x01ffb9cc
func_01ffba48 kind:function(arm,size=0x198) addr:0x01ffba48
@@ -189,7 +189,7 @@ func_01ffee10 kind:function(arm,size=0x124) addr:0x01ffee10
func_01ffef34 kind:function(arm,size=0x128) addr:0x01ffef34
func_01fff05c kind:function(arm,size=0x58) addr:0x01fff05c
func_01fff0b4 kind:function(arm,size=0x94) addr:0x01fff0b4
func_01fff148 kind:function(arm,size=0x20) addr:0x01fff148
_ZN18UnkStruct_027e0ce013func_01fff148Ev kind:function(arm,size=0x20) addr:0x01fff148
func_01fff168 kind:function(arm,size=0x14) addr:0x01fff168
func_01fff17c kind:function(arm,size=0x28) addr:0x01fff17c
func_01fff1a4 kind:function(arm,size=0x3c) addr:0x01fff1a4
+4 -4
View File
@@ -30,8 +30,8 @@ from:0x02186990 kind:arm_call to:0x0208b7c4 module:overlay(0)
from:0x021869ac kind:arm_call to:0x0205a664 module:overlay(0)
from:0x021869c4 kind:arm_call_thumb to:0x020590f0 module:overlay(0)
from:0x021869e0 kind:arm_call to:0x0203e690 module:main
from:0x021869ec kind:load to:0x02187e0c module:overlay(110)
from:0x021869f0 kind:load to:0x02187e00 module:overlay(110)
from:0x021869ec kind:load to:0x02187e04 add:8 module:overlay(110)
from:0x021869f0 kind:load to:0x02187df8 add:8 module:overlay(110)
from:0x021869f4 kind:load to:0x020a1aac module:overlay(0)
from:0x021869f8 kind:load to:0x02187930 module:overlay(110)
from:0x02186a10 kind:arm_call to:0x0205dffc module:overlay(0)
@@ -41,7 +41,7 @@ from:0x02186a8c kind:arm_call to:0x0203e740 module:main
from:0x02186a94 kind:arm_call_thumb to:0x0205910c module:overlay(0)
from:0x02186a9c kind:arm_call to:0x0208b838 module:overlay(0)
from:0x02186aa4 kind:arm_call to:0x02090fa0 module:overlay(0)
from:0x02186ab0 kind:load to:0x02187e0c module:overlay(110)
from:0x02186ab0 kind:load to:0x02187e04 add:8 module:overlay(110)
from:0x02186ab4 kind:load to:0x027e0cec module:dtcm
from:0x02186abc kind:load to:0x020a1aac module:overlay(0)
from:0x02186ad4 kind:arm_call to:0x0205dffc module:overlay(0)
@@ -52,7 +52,7 @@ from:0x02186b58 kind:arm_call_thumb to:0x0205910c module:overlay(0)
from:0x02186b60 kind:arm_call to:0x0208b838 module:overlay(0)
from:0x02186b68 kind:arm_call to:0x02090fa0 module:overlay(0)
from:0x02186b70 kind:arm_call to:0x02011ff4 module:main
from:0x02186b7c kind:load to:0x02187e0c module:overlay(110)
from:0x02186b7c kind:load to:0x02187e04 add:8 module:overlay(110)
from:0x02186b80 kind:load to:0x027e0cec module:dtcm
from:0x02186b88 kind:load to:0x020a1aac module:overlay(0)
from:0x02186cf0 kind:arm_call to:0x020ab82c module:overlay(0)
+17 -17
View File
@@ -1,27 +1,27 @@
func_ov110_021865c0 kind:function(arm,size=0x36c) addr:0x021865c0
func_ov110_0218692c kind:function(arm,size=0x30) addr:0x0218692c
func_ov110_0218695c kind:function(arm,size=0xa0) addr:0x0218695c
func_ov110_021869fc kind:function(arm,size=0xc4) addr:0x021869fc
func_ov110_02186ac0 kind:function(arm,size=0xcc) addr:0x02186ac0
func_ov110_02186b8c kind:function(arm,size=0x54) addr:0x02186b8c
func_ov110_02186be0 kind:function(arm,size=0x5d8) addr:0x02186be0
func_ov110_021871b8 kind:function(arm,size=0x6fc) addr:0x021871b8
func_ov110_021878b4 kind:function(arm,size=0x7c) addr:0x021878b4
func_ov110_02187930 kind:function(arm,size=0xc) addr:0x02187930
func_ov110_0218793c kind:function(thumb,size=0x66) addr:0x0218793c
func_ov110_021879a4 kind:function(arm,size=0x10) addr:0x021879a4
func_ov110_021879b4 kind:function(arm,size=0x10) addr:0x021879b4
_ZN9PlayerGet19func_ov110_02184a40Ev kind:function(arm,size=0x36c) addr:0x021865c0
_ZN9PlayerGet19func_ov110_02184dacEiii kind:function(arm,size=0x30) addr:0x0218692c
_ZN9PlayerGetC2Ev kind:function(arm,size=0xa0) addr:0x0218695c
_ZN9PlayerGetD1Ev kind:function(arm,size=0xc4) addr:0x021869fc
_ZN9PlayerGetD0Ev kind:function(arm,size=0xcc) addr:0x02186ac0
_ZN9PlayerGet19func_ov110_02186b8cEv kind:function(arm,size=0x54) addr:0x02186b8c
_ZN9PlayerGet8vfunc_0cEv kind:function(arm,size=0x5d8) addr:0x02186be0
_ZN9PlayerGet8vfunc_10Ev kind:function(arm,size=0x6fc) addr:0x021871b8
_ZN9PlayerGet8vfunc_18Eiii kind:function(arm,size=0x7c) addr:0x021878b4
_ZN22UnkStruct_PlayerGet_ecC1Ev kind:function(arm,size=0xc) addr:0x02187930
_ZN18UnkStruct_027e0ce019func_ov110_02185d3cEi kind:function(thumb,size=0x66) addr:0x0218793c
_ZN9PlayerGet19func_ov110_02185da4Ei kind:function(arm,size=0x10) addr:0x021879a4
_ZN9PlayerGet19func_ov110_02185db4Ei kind:function(arm,size=0x10) addr:0x021879b4
data_ov110_021879c8 kind:data(any) addr:0x021879c8
data_ov110_021879ca kind:data(any) addr:0x021879ca
data_ov110_021879e8 kind:data(any) addr:0x021879e8
data_ov110_02187bbc kind:data(any) addr:0x02187bbc
data_ov110_02187c44 kind:data(any) addr:0x02187c44 ambiguous
__sinit_ov110_02187d90 kind:function(arm,size=0x2c) addr:0x02187d90
.p__sinit_ov110_02187d90 kind:data(word) addr:0x02187dbc
__sinit_PlayerGet.cpp kind:function(arm,size=0x2c) addr:0x02187d90
.p__sinit_PlayerGet.cpp kind:data(word) addr:0x02187dbc
data_ov110_02187de0 kind:data(any) addr:0x02187de0
data_ov110_02187dec kind:data(any) addr:0x02187dec
data_ov110_02187e00 kind:data(any) addr:0x02187e00
data_ov110_02187e0c kind:data(any) addr:0x02187e0c
_ZTV22UnkStruct_PlayerGet_74 kind:data(any) addr:0x02187df8
_ZTV9PlayerGet kind:data(any) addr:0x02187e04
data_ov110_02187e40 kind:bss addr:0x02187e40
data_ov110_0218a9c8 kind:bss addr:0x0218a9c8 ambiguous
data_ov110_0218aa88 kind:bss addr:0x0218aa88 ambiguous
+17 -17
View File
@@ -1327,10 +1327,10 @@ func_02024880 kind:function(arm,size=0x80) addr:0x02024880
func_02024900 kind:function(thumb,size=0xcc) addr:0x02024900
func_020249cc kind:function(arm,size=0x38) addr:0x020249cc
func_02024a04 kind:function(arm,size=0x38) addr:0x02024a04
func_02024a3c kind:function(arm,size=0x3c) addr:0x02024a3c
GX_DispOff kind:function(arm,size=0x3c) addr:0x02024a3c
func_02024a78 kind:function(arm,size=0x44) addr:0x02024a78
func_02024abc kind:function(arm,size=0x68) addr:0x02024abc
func_02024b24 kind:function(arm,size=0x1c) addr:0x02024b24
GX_SetGraphicsMode kind:function(arm,size=0x68) addr:0x02024abc
GXS_SetGraphicsMode kind:function(arm,size=0x1c) addr:0x02024b24
func_02024b40 kind:function(arm,size=0x28) addr:0x02024b40
func_02024b68 kind:function(arm,size=0x40) addr:0x02024b68
func_02024ba8 kind:function(arm,size=0x60) addr:0x02024ba8
@@ -1344,7 +1344,7 @@ func_020252e0 kind:function(arm,size=0xdc) addr:0x020252e0
func_020253bc kind:function(arm,size=0x100) addr:0x020253bc
func_020254bc kind:function(arm,size=0x24) addr:0x020254bc
func_020254e0 kind:function(arm,size=0x9c) addr:0x020254e0
func_0202557c kind:function(arm,size=0x70) addr:0x0202557c
GX_SetBankForSubOBJ kind:function(arm,size=0x70) addr:0x0202557c
func_020255ec kind:function(arm,size=0x80) addr:0x020255ec
func_0202566c kind:function(arm,size=0x80) addr:0x0202566c
func_020256ec kind:function(arm,size=0x38) addr:0x020256ec
@@ -1538,7 +1538,7 @@ func_02028700 kind:function(arm,size=0x28) addr:0x02028700
func_02028728 kind:function(arm,size=0x94) addr:0x02028728
func_020287bc kind:function(arm,size=0xa0) addr:0x020287bc
func_0202885c kind:function(arm,size=0x9c) addr:0x0202885c
func_020288f8 kind:function(arm,size=0x18) addr:0x020288f8
OS_InitMutex kind:function(arm,size=0x18) addr:0x020288f8
func_02028910 kind:function(arm,size=0x80) addr:0x02028910
func_02028990 kind:function(arm,size=0x5c) addr:0x02028990
func_020289ec kind:function(arm,size=0x3c) addr:0x020289ec
@@ -1634,7 +1634,7 @@ func_0202a1a8 kind:function(arm,size=0x18) addr:0x0202a1a8
func_0202a1c0 kind:function(arm,size=0x4c) addr:0x0202a1c0
func_0202a20c kind:function(arm,size=0x38) addr:0x0202a20c
func_0202a244 kind:function(arm,size=0x1c) addr:0x0202a244
func_0202a260 kind:function(arm,size=0x1c) addr:0x0202a260
CopySingle288 kind:function(arm,size=0x1c) addr:0x0202a260
func_0202a27c kind:function(arm,size=0x24) addr:0x0202a27c
func_0202a2a0 kind:function(arm,size=0x2c) addr:0x0202a2a0
func_0202a2cc kind:function(arm,size=0x94) addr:0x0202a2cc
@@ -1696,7 +1696,7 @@ func_0202bcac kind:function(arm,size=0x28) addr:0x0202bcac
func_0202bcd4 kind:function(arm,size=0x28) addr:0x0202bcd4
func_0202bcfc kind:function(arm,size=0x20) addr:0x0202bcfc
func_0202bd1c kind:function(arm,size=0x44) addr:0x0202bd1c
func_0202bd60 kind:function(arm,size=0x38) addr:0x0202bd60
SND_Init kind:function(arm,size=0x38) addr:0x0202bd60
func_0202bd98 kind:function(arm,size=0x14) addr:0x0202bd98
func_0202bdac kind:function(arm,size=0x14) addr:0x0202bdac
func_0202bdc0 kind:function(arm,size=0xd0) addr:0x0202bdc0
@@ -1772,7 +1772,7 @@ func_0202e250 kind:function(arm,size=0x9c) addr:0x0202e250
func_0202e2ec kind:function(arm,size=0x70) addr:0x0202e2ec
func_0202e35c kind:function(arm,size=0x20) addr:0x0202e35c
func_0202e37c kind:function(arm,size=0x84) addr:0x0202e37c
func_0202e400 kind:function(arm,size=0x28) addr:0x0202e400
FS_Init kind:function(arm,size=0x28) addr:0x0202e400
func_0202e428 kind:function(arm,size=0x10) addr:0x0202e428
func_0202e438 kind:function(arm,size=0x28) addr:0x0202e438
func_0202e460 kind:function(arm,size=0x13c) addr:0x0202e460
@@ -2064,9 +2064,9 @@ func_0203a2c4 kind:function(arm,size=0x2c) addr:0x0203a2c4
func_0203a2f0 kind:function(arm,size=0x8c) addr:0x0203a2f0
func_0203a37c kind:function(arm,size=0x318) addr:0x0203a37c
func_0203a6ac kind:function(arm,size=0x3b4) addr:0x0203a6ac
func_0203aa60 kind:function(arm,size=0x364) addr:0x0203aa60
func_0203adc4 kind:function(arm,size=0x104) addr:0x0203adc4
func_0203aec8 kind:function(arm,size=0x40) addr:0x0203aec8
_dmul kind:function(arm,size=0x364) addr:0x0203aa60
_fflt kind:function(arm,size=0x104) addr:0x0203adc4
_dflt kind:function(arm,size=0x40) addr:0x0203aec8
func_0203af08 kind:function(arm,size=0x3c) addr:0x0203af08
func_0203af44 kind:function(arm,size=0x98) addr:0x0203af44
func_0203afdc kind:function(arm,size=0xa4) addr:0x0203afdc
@@ -2082,11 +2082,11 @@ func_0203b434 kind:function(arm,size=0x48) addr:0x0203b434
func_0203b47c kind:function(arm,size=0x48) addr:0x0203b47c
func_0203b4c4 kind:function(arm,size=0x10) addr:0x0203b4c4
func_0203b4d4 kind:function(arm,size=0x1b0) addr:0x0203b4d4
func_0203b684 kind:function(arm,size=0xc) addr:0x0203b684
_ll_udiv kind:function(arm,size=0xc) addr:0x0203b684
func_0203b690 kind:function(arm,size=0x3c) addr:0x0203b690
func_0203b6cc kind:function(arm,size=0x20) addr:0x0203b6cc
func_0203b6ec kind:function(arm,size=0x20c) addr:0x0203b6ec
func_0203b8f8 kind:function(arm,size=0x1e4) addr:0x0203b8f8
_s32_div_f kind:function(arm,size=0x20c) addr:0x0203b6ec
_u32_div_f kind:function(arm,size=0x1e4) addr:0x0203b8f8
.L_0203b900 kind:label(arm) addr:0x0203b900
func_0203badc kind:function(arm,size=0x34) addr:0x0203badc
func_0203bb10 kind:function(arm,size=0x40) addr:0x0203bb10
@@ -2100,7 +2100,7 @@ func_0203c2a4 kind:function(arm,size=0x8) addr:0x0203c2a4
func_0203c2b8 kind:function(arm,size=0x278) addr:0x0203c2b8
func_0203c53c kind:function(arm,size=0x3b8) addr:0x0203c53c
.L_0203c5f0 kind:data(byte[0]) addr:0x0203c5f0
func_0203c90c kind:function(arm,size=0x544) addr:0x0203c90c
_ddiv kind:function(arm,size=0x544) addr:0x0203c90c
.L_0203ca44 kind:data(byte[0]) addr:0x0203ca44
func_0203ce50 kind:function(arm,size=0x4) addr:0x0203ce50
func_0203ce54 kind:function(arm,size=0xc) addr:0x0203ce54
@@ -2131,7 +2131,7 @@ func_0203e2a0 kind:function(arm,size=0x28) addr:0x0203e2a0
func_0203e2c8 kind:function(arm,size=0x14) addr:0x0203e2c8
func_0203e2dc kind:function(arm,size=0xc) addr:0x0203e2dc
func_0203e2e8 kind:function(arm,size=0x30) addr:0x0203e2e8
func_0203e318 kind:function(arm,size=0x44) addr:0x0203e318
__destroy_global_chain kind:function(arm,size=0x44) addr:0x0203e318
func_0203e35c kind:function(arm,size=0xc) addr:0x0203e35c
func_0203e368 kind:function(arm,size=0xc) addr:0x0203e368
func_0203e374 kind:function(arm,size=0x18) addr:0x0203e374
@@ -2141,7 +2141,7 @@ func_0203e3c4 kind:function(arm,size=0x1b4) addr:0x0203e3c4
func_0203e578 kind:function(arm,size=0x48) addr:0x0203e578
func_0203e5c0 kind:function(arm,size=0x14) addr:0x0203e5c0
func_0203e5d4 kind:function(arm,size=0xbc) addr:0x0203e5d4
func_0203e690 kind:function(arm,size=0xb0) addr:0x0203e690
__cxa_vec_ctor kind:function(arm,size=0xb0) addr:0x0203e690
func_0203e740 kind:function(arm,size=0x48) addr:0x0203e740
func_0203e788 kind:function(arm,size=0x14) addr:0x0203e788
func_0203e79c kind:function(arm,size=0x4) addr:0x0203e79c
+122
View File
@@ -0,0 +1,122 @@
#pragma once
#include "System/SysNew.hpp"
#include "global.h"
#include "nitro/math.h"
#include "types.h"
class Actor_5c {
public:
/* 00 */ Vec3p mUnk_00;
/* 0c */ s16 mUnk_0c;
/* 0e */ unk16 mUnk_0e; // padding?
/* 10 */
void func_ov000_020975f8();
};
class UnkStruct_ov000_020b539c_30 {
public:
/* 00 */ unk32 mUnk_00;
/* 04 */ unk32 mUnk_04;
/* 08 */ unk8 mUnk_08[0x18 - 0x08];
/* 1c */ unk8 mUnk_18;
/* 1c */ unk8 mUnk_19;
/* 1c */ unk16 mUnk_1a;
/* 1c */ unk16 mUnk_1c;
/* 1e */ u16 mUnk_1e;
/* 20 */
};
class UnkStruct_ov000_020b539c {
public:
/* 00 */ unk8 mUnk_00[0x30];
/* 30 */ UnkStruct_ov000_020b539c_30 *mUnk_30;
/* 34 */
void func_02028cdc(Actor_5c *param1, unk32 param2);
};
class Actor : public SysObject {
public:
/* 00 (vtable) */
/* 04 */ Vec3p mPos;
/* 10 */ Vec3p mPrevPos;
/* 1c */ Vec3p mVel;
/* 28 */ u16 mAngle;
/* 28 */ unk16 mUnk_2a;
/* 2c */ unk32 mUnk_2c; // gravity?
/* 30 */ unk32 *mUnk_30;
/* 34 */ unk32 *mUnk_34;
/* 38 */ unk32 *mUnk_38;
/* 3c */ unk32 mUnk_3c;
/* 40 */ unk32 mUnk_40;
/* 44 */ u16 mUnk_44;
/* 46 */ unk16 mUnk_46;
/* 48 */ unk16 mUnk_48;
/* 4a */ unk8 mUnk_4a;
/* 4a */ unk8 mUnk_4b;
/* 4c */ unk16 mUnk_4c;
/* 4e */ s16 mUnk_4e;
/* 50 */ unk16 mUnk_50;
/* 52 */ unk16 mUnk_52;
/* 54 */ unk32 mUnk_54;
/* 58 */ unk32 mUnk_58;
/* 5c */ Actor_5c mUnk_5c;
/* 6c */ unk32 mUnk_6c;
/* 70 */ unk32 mUnk_70;
/* 74 */ unk32 mUnk_74;
/* 78 */ unk32 mUnk_78;
/* 7c */ unk32 mUnk_7c;
/* 80 */ unk16 mUnk_80;
/* 80 */ unk16 mUnk_82;
/* 84 */ unk32 mUnk_84;
/* 88 */ unk32 mUnk_88;
/* 8c */ unk32 mUnk_8c;
/* 90 */ UnkStruct_ov000_020b539c_30 *mUnk_90;
/* 00 */ virtual void vfunc_00(Vec3p *param1);
/* 04 */ virtual bool vfunc_04();
/* 08 */ virtual unk16 vfunc_08();
/* 0c */ virtual unk8 vfunc_0c();
/* 10 */ virtual void vfunc_10();
/* 14 */ virtual void vfunc_14();
/* 18 */ virtual unk32 vfunc_18();
/* 1c */ virtual void vfunc_1c();
/* 20 */ virtual void vfunc_20();
/* 24 */ virtual void vfunc_24();
/* 28 */ virtual void vfunc_28();
/* 2c */ virtual void vfunc_2c();
/* 30 */ virtual void vfunc_30();
/* 34 */ virtual unk32 vfunc_34();
/* 38 */ virtual unk32 vfunc_38(unk32 param1);
/* 3c */ virtual bool vfunc_3c(unk32 param2, Vec3p *param3);
/* 40 */ virtual void vfunc_40();
/* 44 */ virtual void vfunc_44();
/* 48 */ virtual void vfunc_48();
/* 4c */ virtual ~Actor();
/* 54 */
Actor();
void func_ov000_0209848c(UnkStruct_ov000_020b539c_30 *param1);
void func_ov000_020984b0();
void func_ov000_020984b4();
void func_ov000_020984b8();
void func_ov000_020984bc();
void func_ov000_020984c0();
void func_ov000_020984c4();
unk32 func_ov000_020984c8();
void func_ov000_020984d0();
void func_ov000_020984f0();
s32 func_ov000_02098518(unk32 *param1);
void func_ov000_0209853c();
s32 func_ov000_02098554();
s16 func_ov000_0209856c();
s8 func_ov000_02098578();
s32 func_ov000_02098584();
s32 func_ov000_020985f0(void *param1);
void func_ov000_0209862c(unk32 param1);
};
extern UnkStruct_ov000_020b539c data_ov000_020b539c;
+10
View File
@@ -0,0 +1,10 @@
#pragma once
#include "types.h"
class UnkStruct_027e0cd8 {
public:
void func_ov000_02081ecc(unk16 param1, unk32 param2);
};
extern UnkStruct_027e0cd8 *data_027e0cd8;
+35
View File
@@ -0,0 +1,35 @@
#pragma once
#include "global.h"
#include "types.h"
#include "System/SysNew.hpp"
// PlayerManager?
class UnkStruct_027e0ce0 {
public:
/* 00 */ unk32 mUnk_00;
/* 04 */ unk32 mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0c */ unk32 mUnk_0c;
/* 10 */ unk32 mUnk_10;
/* 14 */ unk32 mUnk_14;
/* 18 */ unk32 mUnk_18;
/* 1c */ unk32 mUnk_1c;
/* 20 */ unk32 mUnk_20;
/* 24 */ unk32 mUnk_24;
/* 28 */ unk32 mUnk_28;
/* 2c */ unk32 mUnk_2c;
/* 30 */
void func_01fff148();
void func_ov000_0208a318(unk32 param1, unk32 param2, unk32 param3);
void func_ov024_020d3d98(unk32 param1, unk32 param2);
void func_ov024_020d3ee8(unk32, u16, unk32);
void func_ov110_02185d3c(unk32 param1);
};
extern UnkStruct_027e0ce0 *data_027e0ce0;
+190
View File
@@ -0,0 +1,190 @@
#ifndef _NDS_MATH_H
#define _NDS_MATH_H
#include "global.h"
#include "types.h"
#ifdef __cplusplus
extern "C" {
#endif
#define ABS(x) ((x) < 0 ? -(x) : (x))
// Q20.12 fixed point number
typedef s32 q20;
// Q4.12 fixed point number
typedef s16 q4;
#define INT_TO_Q20(n) ((s32) ((n) << 12))
#define FLOAT_TO_Q21(n) ((s32) (((n) * 8192 + 1) / 4))
#define FLOAT_TO_Q20(n) ((s32) (((n) * 8192 + 1) / 2))
#define FLOAT_TO_Q19(n) ((s32) (((n) * 8192 + 1)))
#define ROUND_Q20(n) (((s32) (n) + 0x800) >> 12)
#define MUL_Q20(a, b) (q20)((((s64) (a)) * ((s64) (b)) + 0x800) >> 12)
#define DIV_Q20(a, b) (((a) << 12) / (b))
#define DEG_TO_ANG(n) ((n) * 0x10000 / 360)
#define SIN(n) (gSinCosTable[2 * ((n) >> 4)])
#define COS(n) (gSinCosTable[2 * ((n) >> 4) + 1])
u32 func_01ff9f3c(s32 a, s32 b);
s32 Atan2(s32 x, s32 y);
u32 CoDivide64By32(u32 a, u32 b);
u32 func_01ff98f0(u32 a, u32 b);
u32 CoReciprocal(u32 x);
u64 func_01ff992c(u32 x);
u32 CoSqrt(u32 x);
u32 CoInvSqrt(u32 x);
u32 AwaitDivisionResult();
u32 GetDivisionResult();
void StartReciprocal(u32 x);
void StartSqrt(u32 x);
void func_01ff9ac4(u32 x);
u32 AwaitSqrtResult();
void StartDivision64By32(u32 a, u32 b);
u32 CoDivide32(u32 a, u32 b);
u32 CoRemainder(u32 a, u32 b);
bool Approach(unk32 *src, unk32 dest, unk32 step);
bool Approach_thunk(unk32 *src, unk32 dest, unk32 step);
extern q4 gSinCosTable[];
typedef struct {
/* 0 */ u8 x;
/* 1 */ u8 y;
/* 2 */
} Vec2b;
typedef struct {
/* 0 */ s16 x;
/* 1 */ s16 y;
/* 2 */
} Vec2s;
typedef struct {
/* 0 */ q20 x;
/* 4 */ q20 y;
/* 8 */
} Vec2p;
typedef struct {
/* 0 */ q20 x;
/* 4 */ q20 y;
/* 8 */ q20 z;
/* c */
} Vec3p;
typedef struct {
/* 00 */ q20 x;
/* 04 */ q20 y;
/* 08 */ q20 z;
/* 0c */ q20 w;
/* 10 */
} Vec4p;
typedef struct {
/* 00 */ Vec2p xColumn;
/* 08 */ Vec2p yColumn;
/* 10 */
} Mat2p;
typedef struct {
/* 00 */ Vec3p xColumn;
/* 0c */ Vec3p yColumn;
/* 18 */ Vec3p zColumn;
/* 24 */
} Mat3p;
typedef struct {
/* 00 */ Vec3p xColumn;
/* 0c */ Vec3p yColumn;
/* 18 */ Vec3p zColumn;
/* 24 */ Vec3p wColumn;
/* 30 */
} Mat4x3p;
typedef struct {
/* 00 */ Vec4p xColumn;
/* 10 */ Vec4p yColumn;
/* 20 */ Vec4p zColumn;
/* 30 */ Vec4p wColumn;
/* 40 */
} Mat4p;
extern const Vec3p gVec3p_ZERO;
void Vec3p_Add(Vec3p *a, Vec3p *b, Vec3p *out);
void Vec3p_Sub(Vec3p *a, Vec3p *b, Vec3p *out);
q20 Vec3p_Dot(Vec3p *a, Vec3p *b);
void Vec3p_Cross(Vec3p *a, Vec3p *b, Vec3p *out);
q20 Vec3p_Length(Vec3p *a);
void Vec3p_Normalize(Vec3p *vec, Vec3p *out);
void Vec3p_Axpy(q20 a, Vec3p *x, Vec3p *y, Vec3p *out);
q20 Vec3p_Distance(Vec3p *a, Vec3p *b);
bool Vec3p_TryNormalize(Vec3p *vec);
q20 Vec3p_DistanceSquared(Vec3p *a, Vec3p *b);
void Vec3p_Scale(Vec3p *vec, q20 scale);
bool Vec3p_CalculateNormal(Vec3p *vec, Vec3p *a, Vec3p *b, Vec3p *c);
inline void Vec3p_Rotate(Vec3p *vec, q20 sin, q20 cos, Vec3p *out) {
out->x += MUL_Q20(vec->z, sin);
out->z += MUL_Q20(vec->z, cos);
out->x += MUL_Q20(vec->x, cos);
out->z += MUL_Q20(vec->x, -sin);
}
inline void Vec3p_CopyXZ(Vec3p *vec, Vec3p *out) {
q20 z = vec->z;
q20 x = vec->x;
out->x = x;
out->y = 0;
out->z = z;
}
inline void Vec3p_Copy(Vec3p *vec, Vec3p *out) {
out->x = vec->x;
out->y = vec->y;
out->z = vec->z;
}
void Mat2p_InitIdentity(Mat2p *m);
void Mat2p_InitRotation(Mat2p *m, q20 sin, q20 cos);
void Mat2p_Multiply(Mat2p *a, Mat2p *b, Mat2p *out);
void Mat3p_InitIdentity(Mat3p *m);
void Mat3p_CopyToMat4x3p(Mat3p *m, Mat4x3p *out);
void Mat3p_InitScale(Mat3p *m, q20 x, q20 y, q20 z);
void Mat3p_ScaleColumns(Mat3p *m, Mat3p *out, q20 x, q20 y, q20 z);
void Mat3p_InitXRotation(Mat3p *m, q20 sin, q20 cos);
void Mat3p_InitYRotation(Mat3p *m, q20 sin, q20 cos);
void Mat3p_InitZRotation(Mat3p *m, q20 sin, q20 cos);
void Mat3p_func_01ff8248(Mat3p *m, Vec3p *v, q20 scale, q20 offset);
void Mat3p_func_01ff83a0(Mat3p *a, Mat3p *b);
void Mat3p_Multiply(Mat3p *a, Mat3p *b, Mat3p *out);
void Mat3p_MultiplyVec(Vec3p *v, Mat3p *m, Vec3p *out);
void Mat4x3p_InitIdentity(Mat4x3p *m);
void Mat4x3p_CopyToMat4p(Mat4x3p *m, Mat4p *out);
void Mat4x3p_func_01ff8988(Mat4x3p *m, Mat4x3p *out, q20 x, q20 y, q20 z);
void Mat4x3p_InitScale(Mat4x3p *m, q20 x, q20 y, q20 z);
void Mat4x3p_ScaleColumns(Mat4x3p *m, Mat4x3p *out, q20 x, q20 y, q20 z);
void Mat4x3p_InitXRotation(Mat4x3p *m, q20 sin, q20 cos);
void Mat4x3p_InitYRotation(Mat4x3p *m, q20 sin, q20 cos);
void Mat4x3p_InitZRotation(Mat4x3p *m, q20 sin, q20 cos);
void Mat4x3p_func_01ff8ad8(Mat4x3p *m, Vec3p *v, q20 scale, q20 offset);
void Mat4x3p_func_01ff8af8(Mat4x3p *a, Mat4x3p *b);
void Mat4x3p_Multiply(Mat4x3p *a, Mat4x3p *b, Mat4x3p *out);
void Mat4x3p_MultiplyVec(Vec3p *v, Mat4x3p *m, Vec3p *out);
void Mat4p_InitIdentity(Mat4p *m);
void Mat4p_CopyToMat4x3p(Mat4p *m, Mat4x3p *out);
void Mat4p_InitZRotation(Mat4p *m, q20 sin, q20 cos);
void Mat4p_Multiply(Mat4p *a, Mat4p *b, Mat4p *out);
#ifdef __cplusplus
}
#endif
#endif
+163
View File
@@ -0,0 +1,163 @@
#include "Actor/Actor.hpp"
#include "Unknown/UnkStruct_027e0cd8.hpp"
#include "Unknown/UnkStruct_027e0ce0.hpp"
ARM Actor::Actor() {
this->mVel.x = 0;
this->mVel.y = 0;
this->mVel.z = 0;
this->mUnk_2c = 0xCD;
this->mUnk_38 = 0;
this->mUnk_3c = 0;
this->mUnk_40 = 0;
this->mUnk_48 = 4;
this->mUnk_4c = -1;
this->mUnk_50 = 0;
this->mUnk_52 = 0;
this->mUnk_54 = 0;
this->mUnk_58 = 0;
this->mUnk_84 = 0;
this->mUnk_5c.func_ov000_020975f8();
this->mUnk_8c = 0;
this->mUnk_90 = 0;
data_ov000_020b539c.func_02028cdc(&this->mUnk_5c, 0x30);
this->mPrevPos = this->mPos = this->mUnk_5c.mUnk_00;
this->mAngle = this->mUnk_5c.mUnk_0c;
this->mUnk_58 = 0x400B;
this->mUnk_44 = 0xFF;
this->mUnk_46 = 0;
this->func_ov000_0209862c(0);
this->func_ov000_0209848c(data_ov000_020b539c.mUnk_30);
}
ARM Actor::~Actor() {}
// non-matching (equivalent)
ARM void Actor::func_ov000_0209848c(UnkStruct_ov000_020b539c_30 *param1) {
s16 unk_1c;
unk32 *temp_r3;
unk_1c = param1->mUnk_1c;
temp_r3 = &param1->mUnk_04;
this->mUnk_90 = param1;
this->mUnk_30 = this->mUnk_34 = temp_r3;
this->mUnk_4e = unk_1c;
}
ARM unk32 Actor::vfunc_18() {
return 1;
}
ARM void Actor::vfunc_1c() {}
ARM void Actor::vfunc_20() {}
ARM void Actor::vfunc_24() {}
ARM void Actor::vfunc_28() {}
ARM void Actor::vfunc_2c() {}
ARM void Actor::vfunc_30() {}
ARM unk32 Actor::vfunc_34() {
return 1;
}
ARM void Actor::func_ov000_020984d0() {
this->mUnk_58 &= ~1;
if (this->mUnk_58 & 0x10000) {
this->func_ov000_020984f0();
}
}
ARM void Actor::func_ov000_020984f0() {
if (this->mUnk_80 >= 0) {
data_027e0cd8->func_ov000_02081ecc(this->mUnk_80, 1);
}
}
// non-matching
ARM void Actor::vfunc_00(Vec3p *param1) {
*param1 = mPos;
param1->y += mUnk_4e;
// short sVar1;
// int iVar2;
// int iVar3;
// param1->x = this->mPos.x;
// param1->y = this->mPos.y + this->mUnk_4e;
// param1->z = this->mPos.z;
}
ARM void Actor::func_ov000_0209853c(void) {
data_027e0ce0->func_01fff148();
}
ARM bool Actor::vfunc_04() {
return this->mUnk_90->mUnk_1e & 1;
}
ARM unk16 Actor::vfunc_08() {
return this->mUnk_90->mUnk_1a;
}
ARM unk8 Actor::vfunc_0c() {
return this->mUnk_90->mUnk_18;
}
// non-matching
ARM unk32 Actor::vfunc_38(unk32 param1) {
u16 var_r3;
short stack_c;
var_r3 = param1 >> 16;
if (this->mUnk_58 & 0x100) {
return 0;
}
this->mUnk_58 |= 0x100;
stack_c = this->mUnk_58;
switch (stack_c) {
case 0x100:
case 0x101:
if (stack_c == 0x101) {
var_r3 = 0;
}
// ???
*(&this->mUnk_4a + var_r3) = 0;
break;
default:
break;
}
return 1;
}
// non-matching
ARM bool Actor::vfunc_3c(unk32 param2, Vec3p *param3) {
if (!(this->mUnk_58 & 0x100)) {
return false;
}
this->mVel = *param3;
this->mUnk_58 &= ~0x100;
return true;
}
// non-matching
ARM void Actor::func_ov000_0209862c(unk32 param1) {
s8 var_ip;
void *temp_r2;
var_ip = 0;
do {
var_ip += 1;
(&this->mUnk_4a)[var_ip] = param1;
} while (var_ip < 2);
}
+1 -1
View File
@@ -17,7 +17,7 @@ libc_include_dir = libs_dir / 'c' / 'include'
libcpp_include_dir = libs_dir / 'cpp' / 'include'
if platform.system() == 'Windows': cc = [str(cc_path)]
else: cc = ['wine', str(cc_path)]
else: cc = ['./wibo', str(cc_path)]
args = parser.parse_args()