diff options
| author | PikalaxALT <pikalaxalt@gmail.com> | 2021-07-25 13:23:02 -0400 |
|---|---|---|
| committer | PikalaxALT <pikalaxalt@gmail.com> | 2021-07-25 13:23:02 -0400 |
| commit | 5e0e326b75402a36c4d31502b8b5a05b862ac23c (patch) | |
| tree | 1b5807c1efb72dbdd9d01f329cefb41171913a64 /arm9/lib/NitroSDK/src/FX_mtx22.c | |
| parent | 1f9d4503c898f9138422215132b53224571a281a (diff) | |
| parent | 68d7aa47cc52ef822220e0e35890863d7cad479f (diff) | |
Merge remote-tracking branch 'origin/master' into pikalax_work
Diffstat (limited to 'arm9/lib/NitroSDK/src/FX_mtx22.c')
| -rw-r--r-- | arm9/lib/NitroSDK/src/FX_mtx22.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/arm9/lib/NitroSDK/src/FX_mtx22.c b/arm9/lib/NitroSDK/src/FX_mtx22.c new file mode 100644 index 00000000..a74bb25c --- /dev/null +++ b/arm9/lib/NitroSDK/src/FX_mtx22.c @@ -0,0 +1,28 @@ +#include "global.h" +#include "main.h" +#include "fx.h" + +ARM_FUNC void MTX_ScaleApply22(struct Mtx22 *mtx, struct Mtx22 *dst, fx32 x, fx32 y){ + dst->_[0] = (fx32)(((fx64)x * mtx->_[0]) >> FX32_INT_SHIFT); + dst->_[1] = (fx32)(((fx64)x * mtx->_[1]) >> FX32_INT_SHIFT); + dst->_[2] = (fx32)(((fx64)y * mtx->_[2]) >> FX32_INT_SHIFT); + dst->_[3] = (fx32)(((fx64)y * mtx->_[3]) >> FX32_INT_SHIFT); +} + +ARM_FUNC asm void MTX_Identity22_(struct Mtx22 *mtx){ + mov r1, #0x0 + mov r2, #0x1000 + mov r3, #0x0 + stmia r0!, {r2-r3} + stmia r0!, {r1-r2} + bx lr +} + +THUMB_FUNC asm void MTX_Rot22_(struct Mtx22 *mtx, fx32 sinphi, fx32 cosphi){ + str r2, [r0, #0x0] + str r1, [r0, #0x4] + neg r1, r1 + str r1, [r0, #0x8] + str r2, [r0, #0xc] + bx lr +} |
