summaryrefslogtreecommitdiff
path: root/src/m_Do/m_Do_gba_com.cpp
diff options
context:
space:
mode:
authorSuperDude88 <82904174+SuperDude88@users.noreply.github.com>2023-09-24 20:34:09 -0400
committerSuperDude88 <82904174+SuperDude88@users.noreply.github.com>2023-09-24 20:34:09 -0400
commit0220c2a5102d2a37d00180562f6d0fd3c43fa97d (patch)
treed3bd5405dbce03f65b4cd14763d7602343d34182 /src/m_Do/m_Do_gba_com.cpp
parent83e28a5fc25f332508571bee82542659c0a55763 (diff)
d_a_agbsw0 Almost OK
Biggest gaps are where it needs other actor classes, couple functions with regalloc issues too
Diffstat (limited to 'src/m_Do/m_Do_gba_com.cpp')
-rw-r--r--src/m_Do/m_Do_gba_com.cpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/m_Do/m_Do_gba_com.cpp b/src/m_Do/m_Do_gba_com.cpp
index 9cd46f88..397524e3 100644
--- a/src/m_Do/m_Do_gba_com.cpp
+++ b/src/m_Do/m_Do_gba_com.cpp
@@ -685,13 +685,16 @@ void mDoGaC_agbCom_c::mDoGaC_ReadResult() {
}
}
-/* 8001BA34-8001BA68 .text BigLittleChange__FUl */
-// NONMATCHING - not even close
u32 BigLittleChange(u32 param_0) {
- u8 b1 = param_0 >> 8;
- u8 b2 = param_0 >> 0x10;
- u8 b3 = param_0 >> 0x18;
- return (param_0 << 0x18) | (b1 << 0x10) | (b2 << 8) | b3;
+ u32 big = param_0;
+ u32 little;
+
+ reinterpret_cast<u8*>(&little)[0] = reinterpret_cast<u8*>(&big)[3];
+ reinterpret_cast<u8*>(&little)[1] = reinterpret_cast<u8*>(&big)[2];
+ reinterpret_cast<u8*>(&little)[2] = reinterpret_cast<u8*>(&big)[1];
+ reinterpret_cast<u8*>(&little)[3] = reinterpret_cast<u8*>(&big)[0];
+
+ return little;
}
/* 8001BAA0-8001BADC .text __dt__15mDoGaC_agbCom_cFv */