summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLagoLunatic <LagoLunatic@users.noreply.github.com>2025-01-27 01:01:05 -0500
committerGitHub <noreply@github.com>2025-01-26 22:01:05 -0800
commitbf4053fefa301a307065a07ffc4c3f9f970f2638 (patch)
treeafc005dc11ce0d21654c5023349ab074683a1f30 /src
parent5644936254b6617875c5a55caeae3e2526849d5a (diff)
Fix spurious differences when using `ninja diff` (#2294)
* Fix spurious differences when using ninja diff * Fix some clangd errors/warnings
Diffstat (limited to 'src')
-rw-r--r--src/JSystem/J3DGraphBase/J3DGD.cpp5
-rw-r--r--src/JSystem/J3DGraphBase/J3DSys.cpp4
-rw-r--r--src/JSystem/J3DGraphBase/J3DTevs.cpp2
-rw-r--r--src/JSystem/J3DU/J3DUClipper.cpp4
-rw-r--r--src/JSystem/JAudio2/JASDSPInterface.cpp15
-rw-r--r--src/JSystem/JAudio2/JAUSectionHeap.cpp2
-rw-r--r--src/JSystem/JAudio2/dsptask.cpp2
-rw-r--r--src/JSystem/JKernel/JKRAram.cpp2
-rw-r--r--src/JSystem/JMath/JMATrigonometric.cpp15
-rw-r--r--src/JSystem/JStudio/JStudio/jstudio-object.cpp2
-rw-r--r--src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Include/math.h4
-rw-r--r--src/d/actor/d_a_npc.cpp2
-rw-r--r--src/d/actor/d_a_player.cpp20
-rw-r--r--src/d/d_bright_check.cpp19
-rw-r--r--src/d/d_camera.cpp2
-rw-r--r--src/d/d_ev_camera.cpp2
-rw-r--r--src/d/d_file_sel_info.cpp20
-rw-r--r--src/d/d_menu_calibration.cpp17
-rw-r--r--src/d/d_menu_dmap.cpp2
-rw-r--r--src/d/d_msg_class.cpp2
-rw-r--r--src/d/d_msg_scrn_talk.cpp2
-rw-r--r--src/d/d_msg_unit.cpp2
-rw-r--r--src/d/d_name.cpp4
-rw-r--r--src/d/d_select_cursor.cpp40
-rw-r--r--src/d/d_shop_system.cpp71
-rw-r--r--src/dolphin/vi/vi.c4
26 files changed, 187 insertions, 79 deletions
diff --git a/src/JSystem/J3DGraphBase/J3DGD.cpp b/src/JSystem/J3DGraphBase/J3DGD.cpp
index 5e361862b9..9f247100e2 100644
--- a/src/JSystem/J3DGraphBase/J3DGD.cpp
+++ b/src/JSystem/J3DGraphBase/J3DGD.cpp
@@ -485,8 +485,7 @@ void J3DGDSetTevOrder(GXTevStageID stage, GXTexCoordID coord0, GXTexMapID map0,
coord0 = coord0 >= GX_MAXCOORD ? GX_TEXCOORD0 : coord0;
coord1 = coord1 >= GX_MAXCOORD ? GX_TEXCOORD0 : coord1;
GDOverflowCheck(5);
- static u8 c2r[32] = {0, 1, 0, 1, 0, 1, 7, 5, 6, 0, 0, 0, 0, 0, 0, 7,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+ static u8 c2r[] = {0, 1, 0, 1, 0, 1, 7, 5, 6, 0, 0, 0, 0, 0, 0, 7};
J3DGDWriteBPCmd((map0 & 7) | coord0 << 3 |
(map0 != GX_TEXMAP_NULL && !(map0 & GX_TEXMAP_DISABLE)) << 6 |
c2r[channel0 & 0xf] << 7 | (map1 & 7) << 0xc | coord1 << 0xf |
@@ -662,4 +661,4 @@ void J3DFifoLoadTexCached(GXTexMapID id, u32 param_1, GXTexCacheSize param_2, u3
J3DFifoLoadBPCmd(param_3 >> 5 | (param_4 + 3) << 0xf | (param_4 + 3) << 0x12 |
J3DTexImage2Ids[id] << 0x18);
}
-} \ No newline at end of file
+}
diff --git a/src/JSystem/J3DGraphBase/J3DSys.cpp b/src/JSystem/J3DGraphBase/J3DSys.cpp
index 8e6e64f7ab..8f48ba181b 100644
--- a/src/JSystem/J3DGraphBase/J3DSys.cpp
+++ b/src/JSystem/J3DGraphBase/J3DSys.cpp
@@ -131,7 +131,7 @@ void J3DSys::setTexCacheRegion(GXTexCacheSize size) {
}
/* 803CD8A0-803CD8B0 02A9C0 0010+00 1/1 0/0 0/0 .data NullTexData */
-SECTION_DATA static u8 NullTexData[16] = {
+SECTION_DATA static u8 NullTexData[16] ALIGN_DECL(32) = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
@@ -397,4 +397,4 @@ void J3DSys::reinitPixelProc() {
/* ############################################################################################## */
/* 80451598-804515A0 000A98 0004+04 0/0 1/1 0/0 .sbss j3dDefaultViewNo */
-u32 j3dDefaultViewNo; \ No newline at end of file
+u32 j3dDefaultViewNo;
diff --git a/src/JSystem/J3DGraphBase/J3DTevs.cpp b/src/JSystem/J3DGraphBase/J3DTevs.cpp
index 3cf86c18ee..36c740f6a3 100644
--- a/src/JSystem/J3DGraphBase/J3DTevs.cpp
+++ b/src/JSystem/J3DGraphBase/J3DTevs.cpp
@@ -556,7 +556,7 @@ extern const J3DColorChanInfo j3dDefaultColorChanInfo = {
};
/* 804563F8-804563FA 0049F8 0002+00 0/0 1/1 0/0 .sdata2 None */
-extern const u8 data_804563F8 = 0x1B;
+extern const u8 j3dDefaultTevSwapTableID = 0x1B;
/* 804563FA-804563FC 0049FA 0002+00 0/0 1/1 0/0 .sdata2 j3dDefaultAlphaCmpID */
const u16 j3dDefaultAlphaCmpID = 0x00E7;
diff --git a/src/JSystem/J3DU/J3DUClipper.cpp b/src/JSystem/J3DU/J3DUClipper.cpp
index 1561d917cf..cd2e9c2894 100644
--- a/src/JSystem/J3DU/J3DUClipper.cpp
+++ b/src/JSystem/J3DU/J3DUClipper.cpp
@@ -182,7 +182,5 @@ static char const* const stringBase_8039A9B8 = " J3DUClipper::mNear = %f";
/* 8039A9D1-8039A9F0 027031 0018+07 0/0 0/0 0/0 .rodata None */
static char const* const stringBase_8039A9D1 = " J3DUClipper::mFar = %f";
-/* @stringBase0 padding */
-static char const* const pad_8039A9E9 = "\0\0\0\0\0\0";
-/* 8039A984-8039A984 026FE4 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ \ No newline at end of file
+/* 8039A984-8039A984 026FE4 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
diff --git a/src/JSystem/JAudio2/JASDSPInterface.cpp b/src/JSystem/JAudio2/JASDSPInterface.cpp
index 2580802278..605724dc8d 100644
--- a/src/JSystem/JAudio2/JASDSPInterface.cpp
+++ b/src/JSystem/JAudio2/JASDSPInterface.cpp
@@ -428,7 +428,7 @@ void JASDsp::initBuffer() {
}
/* 803C78F0-803C7920 024A10 0018+18 1/1 0/0 0/0 .data SEND_TABLE__6JASDsp */
-u16 JASDsp::SEND_TABLE[12 + 12 /* padding */] = {
+u16 JASDsp::SEND_TABLE[] = {
0x0D00,
0x0D60,
0x0DC8,
@@ -441,19 +441,6 @@ u16 JASDsp::SEND_TABLE[12 + 12 /* padding */] = {
0x0B00,
0x09A0,
0x0000,
- /* padding */
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
};
/* 8029DB78-8029DCA4 2984B8 012C+00 1/1 1/1 0/0 .text
diff --git a/src/JSystem/JAudio2/JAUSectionHeap.cpp b/src/JSystem/JAudio2/JAUSectionHeap.cpp
index ced71b66ca..a036282c89 100644
--- a/src/JSystem/JAudio2/JAUSectionHeap.cpp
+++ b/src/JSystem/JAudio2/JAUSectionHeap.cpp
@@ -310,8 +310,6 @@ void* JAUSection::newCopy(void const* param_0, u32 param_1, s32 param_2) {
#pragma force_active on
SECTION_DEAD static char const* const stringBase_8039B974 = "index out of range of bitset::test";
SECTION_DEAD static char const* const stringBase_8039B997 = "index out of range of bitset::set";
-/* @stringBase0 padding */
-SECTION_DEAD static char const* const pad_8039B9B9 = "\0\0\0\0\0\0";
#pragma pop
/* 802A5854-802A5948 2A0194 00F4+00 0/0 1/1 0/0 .text newWaveBank__10JAUSectionFUlPCv */
diff --git a/src/JSystem/JAudio2/dsptask.cpp b/src/JSystem/JAudio2/dsptask.cpp
index 3ba233405a..2296db43e9 100644
--- a/src/JSystem/JAudio2/dsptask.cpp
+++ b/src/JSystem/JAudio2/dsptask.cpp
@@ -31,7 +31,7 @@ void DspHandShake(void*) {
/* ############################################################################################## */
/* 803C7920-803C9820 024A40 1F00+00 1/1 0/0 0/0 .data jdsp */
-static u8 jdsp[7936] = {
+static u8 jdsp[7936] ALIGN_DECL(32) = {
0x02, 0x9F, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x02, 0xFF, 0x00, 0x00, 0x02, 0xFF, 0x00, 0x00,
0x02, 0xFF, 0x00, 0x00, 0x02, 0xFF, 0x00, 0x00, 0x02, 0xFF, 0x00, 0x00, 0x02, 0x9F, 0x06, 0xA5,
0x02, 0x9F, 0x00, 0x4E, 0x12, 0x05, 0x02, 0xBF, 0x00, 0x57, 0x81, 0x00, 0x00, 0x9F, 0x10, 0x00,
diff --git a/src/JSystem/JKernel/JKRAram.cpp b/src/JSystem/JKernel/JKRAram.cpp
index 7b6ed3f78d..36970e97ec 100644
--- a/src/JSystem/JKernel/JKRAram.cpp
+++ b/src/JSystem/JKernel/JKRAram.cpp
@@ -536,5 +536,3 @@ static u8* nextSrcData(u8* current) {
/* ############################################################################################## */
/* 8039D0A6-8039D0B8 029706 000E+04 0/0 0/0 0/0 .rodata None */
static const char* stringBase_8039D0A6 = "bad aramSync\n";
-/* @stringBase0 padding */
-static const char* pad_8039D0B4 = "\0\0\0"; \ No newline at end of file
diff --git a/src/JSystem/JMath/JMATrigonometric.cpp b/src/JSystem/JMath/JMATrigonometric.cpp
index 0e9936b301..b5b0ca4b02 100644
--- a/src/JSystem/JMath/JMATrigonometric.cpp
+++ b/src/JSystem/JMath/JMATrigonometric.cpp
@@ -9,13 +9,17 @@
#include "dol2asm.h"
#include "global.h"
+static f32 dummy() {
+ return 0.0f;
+}
+
namespace std {
template <typename A1, typename B1>
struct pair {
A1 a1;
B1 b1;
pair() {
- f32 tmp = FLOAT_LABEL(zero);
+ f32 tmp = 0.0f;
a1 = tmp;
b1 = tmp;
// a1 = A1();
@@ -24,9 +28,6 @@ struct pair {
};
} // namespace std
-// fake, but couldn't find another way to make 0.0f go first in sdata2 in this TU
-SECTION_SDATA2 static f32 zero[1 + 1] = {0.0f, 0.0f};
-
inline f64 getConst() {
return 6.2831854820251465;
}
@@ -54,7 +55,7 @@ struct TAtanTable {
for (int i = 0; i < (u32)1024; i++) {
table[i] = atan(getConst2() * i);
}
- table[0] = FLOAT_LABEL(zero);
+ table[0] = 0.0f;
table[1024] = 0.7853982; // 0.25 * PI
}
};
@@ -66,7 +67,7 @@ struct TAsinAcosTable {
for (int i = 0; i < 1024; i++) {
table[i] = asin(getConst2() * i);
}
- table[0] = FLOAT_LABEL(zero);
+ table[0] = 0.0f;
table[1024] = 0.7853982; // 0.25 * PI
}
};
@@ -87,4 +88,4 @@ TAtanTable atanTable_;
/* 8044AA40-8044BA60 077760 1020+00 1/1 1/1 0/0 .bss asinAcosTable___5JMath */
TAsinAcosTable asinAcosTable_;
-} // namespace JMath \ No newline at end of file
+} // namespace JMath
diff --git a/src/JSystem/JStudio/JStudio/jstudio-object.cpp b/src/JSystem/JStudio/JStudio/jstudio-object.cpp
index f021932f03..5952007214 100644
--- a/src/JSystem/JStudio/JStudio/jstudio-object.cpp
+++ b/src/JSystem/JStudio/JStudio/jstudio-object.cpp
@@ -2321,8 +2321,6 @@ void func_8028892C() {
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_8039AB78 = "(unnamed)";
-/* @stringBase0 padding */
-SECTION_DEAD static char const* const pad_8039AB82 = "\0\0\0\0\0";
#pragma pop
/* 804511F8-80451200 0006F8 0008+00 0/0 1/1 0/0 .sbss None */
diff --git a/src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Include/math.h b/src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Include/math.h
index 2beaeba9fd..2d10346881 100644
--- a/src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Include/math.h
+++ b/src/PowerPC_EABI_Support/MSL/MSL_C/MSL_Common/Include/math.h
@@ -28,6 +28,10 @@ double cos(double);
float cosf(float);
double exp(double);
+extern double __frsqrte(double);
+extern float __fres(float);
+
+extern double __fabs(double);
extern float __fabsf(float);
inline double fabs(double f) {
return __fabs(f);
diff --git a/src/d/actor/d_a_npc.cpp b/src/d/actor/d_a_npc.cpp
index bef8fe3ecd..7db452cbe7 100644
--- a/src/d/actor/d_a_npc.cpp
+++ b/src/d/actor/d_a_npc.cpp
@@ -5364,8 +5364,6 @@ SECTION_DEAD static char const* const stringBase_803929DA = "%d, \t// デバ
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_803929F7 = "%d, \t// デバグ情報ON\n";
-/* @stringBase0 padding */
-SECTION_DEAD static char const* const pad_80392A12 = "\0\0\0\0\0";
#pragma pop
/* 80450FF8-80451000 0004F8 0008+00 0/0 1/1 0/0 .sbss None */
diff --git a/src/d/actor/d_a_player.cpp b/src/d/actor/d_a_player.cpp
index c5becca15e..5c62029ba6 100644
--- a/src/d/actor/d_a_player.cpp
+++ b/src/d/actor/d_a_player.cpp
@@ -294,16 +294,16 @@ void daPy_anmHeap_c::createHeap(daPy_anmHeap_c::daAlinkHEAP_TYPE i_heapType) {
/* 8015EF84-8015F068 1598C4 00E4+00 3/3 0/0 0/0 .text loadData__14daPy_anmHeap_cFUs */
void* daPy_anmHeap_c::loadData(u16 i_resId) {
- static const char twglArcName[12] = "TWGate_Lk";
- static const char twgwArcName[12] = "TWGate_Wf";
- static const char sumouArcName[8] = "alSumou";
- static const char ocArcName[8] = "B_oh";
- static const char drArcName[8] = "B_DR";
- static const char msDemoArcName[8] = "Lv6Gate";
- static const char lastGanonArcName[8] = "B_gnd";
- static const char pigGanonArcName[8] = "B_mgn";
-
- static const char* arcName[8] = {
+ static const char twglArcName[] = "TWGate_Lk";
+ static const char twgwArcName[] = "TWGate_Wf";
+ static const char sumouArcName[] = "alSumou";
+ static const char ocArcName[] = "B_oh";
+ static const char drArcName[] = "B_DR";
+ static const char msDemoArcName[] = "Lv6Gate";
+ static const char lastGanonArcName[] = "B_gnd";
+ static const char pigGanonArcName[] = "B_mgn";
+
+ static const char* arcName[] = {
sumouArcName, ocArcName, twglArcName, twgwArcName,
drArcName, msDemoArcName, lastGanonArcName, pigGanonArcName,
};
diff --git a/src/d/d_bright_check.cpp b/src/d/d_bright_check.cpp
index 0de3084493..fd758d016f 100644
--- a/src/d/d_bright_check.cpp
+++ b/src/d/d_bright_check.cpp
@@ -11,6 +11,23 @@
#include "d/d_msg_string.h"
#include "m_Do/m_Do_controller_pad.h"
+// Need 0x10 bytes of padding with no symbol between dBrightCheck_c::__vtable and the end of .data
+// This is likely caused by the vtable of an abstract base class getting put there and then stripped out.
+// Not sure which abstract base class could go there though, so we simulate it with some dummy classes for now.
+class dummy_abstract_class {
+public:
+ virtual void virt_func_0() = 0;
+ virtual void virt_func_1() = 0;
+};
+class dummy_child_class : dummy_abstract_class {
+ virtual void virt_func_0();
+ virtual void virt_func_1();
+};
+static dummy_child_class dummy() {
+ dummy_child_class temp;
+ return temp;
+}
+
/* 803BB5B0-803BB5BC 0186D0 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */
static u8 cNullVec__6Z2Calc[12] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -135,4 +152,4 @@ void dBrightCheck_c::_draw() {
void dDlst_BrightCheck_c::draw() {
J2DGrafContext* graf_ctx = dComIfGp_getCurrentGrafPort();
Scr->draw(0.0f, 0.0f, graf_ctx);
-} \ No newline at end of file
+}
diff --git a/src/d/d_camera.cpp b/src/d/d_camera.cpp
index 1b278cfaa4..ed1d2290a5 100644
--- a/src/d/d_camera.cpp
+++ b/src/d/d_camera.cpp
@@ -3745,8 +3745,6 @@ bool dCamera_c::eventCamera(s32 param_0){
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_803942FB = "Continue";
-/* @stringBase0 padding */
-SECTION_DEAD static char const* const pad_80394304 = "\0\0\0";
#pragma pop
/* 8018050C-801806D4 17AE4C 01C8+00 1/0 0/0 0/0 .text currentEvCamera__9dCamera_cFv */
diff --git a/src/d/d_ev_camera.cpp b/src/d/d_ev_camera.cpp
index 4b34ff5e08..251dc07b2e 100644
--- a/src/d/d_ev_camera.cpp
+++ b/src/d/d_ev_camera.cpp
@@ -2044,8 +2044,6 @@ SECTION_DEAD static char const* const stringBase_8037AD4F = "ooxxxx";
SECTION_DEAD static char const* const stringBase_8037AD56 = "Set2";
SECTION_DEAD static char const* const stringBase_8037AD5B = "Use2";
SECTION_DEAD static char const* const stringBase_8037AD60 = "xxooox";
-/* @stringBase0 padding */
-SECTION_DEAD static char const* const pad_8037AD67 = "";
#pragma pop
/* 80096EDC-80097694 09181C 07B8+00 0/0 1/0 0/0 .text bspTransEvCamera__9dCamera_cFv */
diff --git a/src/d/d_file_sel_info.cpp b/src/d/d_file_sel_info.cpp
index 33ea12f6e4..a1f37588a4 100644
--- a/src/d/d_file_sel_info.cpp
+++ b/src/d/d_file_sel_info.cpp
@@ -4,16 +4,30 @@
*/
#define NO_INLINE_DLSTBASE_DRAW
-#define DFILE_INFO_C_DUMMY_VIRTUAL
#include "d/d_file_sel_info.h"
#include "JSystem/J2DGraph/J2DScreen.h"
#include "JSystem/J2DGraph/J2DTextBox.h"
#include "d/d_com_inf_game.h"
#include "d/d_meter2_info.h"
-#include "d/d_pane_class.h"
+#include "d/d_pane_class_alpha.h"
#include "stdio.h"
+// Need 0xC bytes of padding with no symbol between dFile_info_c::__vtable and the end of .data
+// This is likely caused by the vtable of an abstract base class getting put there and then stripped out.
+// Not sure which abstract base class could go there though, so we simulate it with some dummy classes for now.
+class dummy_abstract_class {
+public:
+ virtual void virt_func_0() = 0;
+};
+class dummy_child_class : dummy_abstract_class {
+ virtual void virt_func_0();
+};
+static dummy_child_class dummy() {
+ dummy_child_class temp;
+ return temp;
+}
+
/* 803BB498-803BB4A8 0185B8 000C+04 1/1 0/0 0/0 .data cNullVec__6Z2Calc */
static u8 cNullVec__6Z2Calc[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -208,4 +222,4 @@ void dDlst_FileInfo_c::draw() {
}
Scr->draw(0.0f, 0.0f, graf_ctx);
-} \ No newline at end of file
+}
diff --git a/src/d/d_menu_calibration.cpp b/src/d/d_menu_calibration.cpp
index e360a661bf..e6d9b2e40c 100644
--- a/src/d/d_menu_calibration.cpp
+++ b/src/d/d_menu_calibration.cpp
@@ -11,6 +11,21 @@
#include "d/d_msg_string.h"
#include "m_Do/m_Do_controller_pad.h"
+// Need 0xC bytes of padding with no symbol between dMenu_Calibration_c::__vtable and the end of .data
+// This is likely caused by the vtable of an abstract base class getting put there and then stripped out.
+// Not sure which abstract base class could go there though, so we simulate it with some dummy classes for now.
+class dummy_abstract_class {
+public:
+ virtual void virt_func_0() = 0;
+};
+class dummy_child_class : dummy_abstract_class {
+ virtual void virt_func_0();
+};
+static dummy_child_class dummy() {
+ dummy_child_class temp;
+ return temp;
+}
+
/* 803BC238-803BC244 019358 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */
static u8 cNullVec__6Z2Calc[12] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -348,4 +363,4 @@ void dMenu_Calibration_c::setHIO(bool i_useHIO) {
/* 801AFBF4-801AFC14 1AA534 0020+00 1/0 0/0 0/0 .text draw__19dMenu_Calibration_cFv */
void dMenu_Calibration_c::draw() {
_draw();
-} \ No newline at end of file
+}
diff --git a/src/d/d_menu_dmap.cpp b/src/d/d_menu_dmap.cpp
index 0d61363b69..6f524c9f6a 100644
--- a/src/d/d_menu_dmap.cpp
+++ b/src/d/d_menu_dmap.cpp
@@ -1782,8 +1782,6 @@ void dMenu_Dmap_c::mapControl() {
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80395826 = "/res/FieldMap/res-d.arc";
SECTION_DEAD static char const* const stringBase_8039583E = "dat/data.dat";
-/* @stringBase0 padding */
-SECTION_DEAD static char const* const pad_8039584B = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
#pragma pop
/* 801BE328-801BE670 1B8C68 0348+00 0/0 1/1 0/0 .text isOpen__12dMenu_Dmap_cFv */
diff --git a/src/d/d_msg_class.cpp b/src/d/d_msg_class.cpp
index 539d28cbfd..de7d8b9909 100644
--- a/src/d/d_msg_class.cpp
+++ b/src/d/d_msg_class.cpp
@@ -2819,8 +2819,6 @@ void jmessage_tRenderingProcessor::do_rubyset(void const* param_0, u32 param_1)
SECTION_DEAD static char const* const stringBase_80399652 = ""
"\x1B"
"CL[%d]";
-/* @stringBase0 padding */
-SECTION_DEAD static char const* const pad_8039965A = "\0\0\0\0\0";
#pragma pop
/* 8022F384-8022F53C 229CC4 01B8+00 3/3 0/0 0/0 .text
diff --git a/src/d/d_msg_scrn_talk.cpp b/src/d/d_msg_scrn_talk.cpp
index 979585678e..1b5aa62fe4 100644
--- a/src/d/d_msg_scrn_talk.cpp
+++ b/src/d/d_msg_scrn_talk.cpp
@@ -128,8 +128,6 @@ SECTION_DEAD static char const* const stringBase_80399BB0 = "zelda_message_windo
SECTION_DEAD static char const* const stringBase_80399BCD = "zelda_message_window_text_seirei.blo";
SECTION_DEAD static char const* const stringBase_80399BF2 = "zelda_message_window_text.blo";
SECTION_DEAD static char const* const stringBase_80399C10 = "";
-/* @stringBase0 padding */
-SECTION_DEAD static char const* const pad_80399C11 = "\0\0\0\0\0\0";
#pragma pop
/* 803C13C8-803C1420 01E4E8 0058+00 2/2 0/0 0/0 .data __vt__14dMsgScrnTalk_c */
diff --git a/src/d/d_msg_unit.cpp b/src/d/d_msg_unit.cpp
index 020cdbd43c..8e67f8a040 100644
--- a/src/d/d_msg_unit.cpp
+++ b/src/d/d_msg_unit.cpp
@@ -50,8 +50,6 @@ SECTION_DEAD static char const* const stringBase_803996F1 = "%d:%02d";
SECTION_DEAD static char const* const stringBase_803996F9 = "";
SECTION_DEAD static char const* const stringBase_803996FA = "%d%s";
SECTION_DEAD static char const* const stringBase_803996FF = "%d %s";
-/* @stringBase0 padding */
-SECTION_DEAD static char const* const pad_80399705 = "\0\0";
#pragma pop
/* 80454B40-80454B44 003140 0004+00 1/1 0/0 0/0 .sdata2 @3702 */
diff --git a/src/d/d_name.cpp b/src/d/d_name.cpp
index 0a2a5bb0a4..c7ddadcc21 100644
--- a/src/d/d_name.cpp
+++ b/src/d/d_name.cpp
@@ -1033,8 +1033,6 @@ SECTION_DEAD static char const* const stringBase_80399F99 = "zelda_player_name.b
SECTION_DEAD static char const* const stringBase_80399FAF = "zelda_player_name.bpk";
SECTION_DEAD static char const* const stringBase_80399FC5 = "zelda_player_name.btk";
SECTION_DEAD static char const* const stringBase_80399FDB = "";
-/* @stringBase0 padding */
-SECTION_DEAD static char const* const pad_80399FDC = "\0\0\0";
#pragma pop
/* 80454DD4-80454DD8 0033D4 0004+00 1/1 0/0 0/0 .sdata2 @4722 */
@@ -1384,4 +1382,4 @@ dDlst_NameIN_c::~dDlst_NameIN_c() {}
/* 802511A4-802511EC 24BAE4 0048+00 2/1 0/0 0/0 .text __dt__9dNm_HIO_cFv */
dNm_HIO_c::~dNm_HIO_c() {}
-/* 80399CC8-80399CC8 026328 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ \ No newline at end of file
+/* 80399CC8-80399CC8 026328 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
diff --git a/src/d/d_select_cursor.cpp b/src/d/d_select_cursor.cpp
index 3bfdb5257f..64670de2fd 100644
--- a/src/d/d_select_cursor.cpp
+++ b/src/d/d_select_cursor.cpp
@@ -208,13 +208,6 @@ dSelect_cursor_c::dSelect_cursor_c(u8 param_0, f32 param_1, JKRArchive* param_2)
mPositionX = 0.0f;
}
-static void dummy() {
- // Need 0x30 bytes of padding with no symbol between btk2_name$3688 and dSelect_cursor_c::__vtable
- // This is likely caused by the vtables of abstract base classes getting put there and then stripped out.
- // Not sure which abstract base classes could go there though.
- static u8 padding_fakematch[0x30] = {};
-}
-
/* 801949EC-80194C30 18F32C 0244+00 1/0 0/0 0/0 .text __dt__16dSelect_cursor_cFv */
dSelect_cursor_c::~dSelect_cursor_c() {
@@ -578,3 +571,36 @@ void dSelect_cursor_c::setBckAnimation(J2DAnmTransformKey* param_0) {
void dSelect_cursor_c::moveCenter(J2DPane* i_pane, f32 i_x, f32 i_y) {
i_pane->translate(i_x,i_y);
}
+
+// Need 0x30 bytes of padding with no symbol between btk2_name$3688 and dSelect_cursor_c::__vtable
+// This is likely caused by the vtables of abstract base classes getting put there and then stripped out.
+// Not sure which abstract base classes could go there though, so we simulate it with some dummy classes for now.
+class dummy_abstract_class {
+public:
+ virtual void virt_func_0() = 0;
+ virtual void virt_func_1() = 0;
+ virtual void virt_func_2() = 0;
+ virtual void virt_func_3() = 0;
+ virtual void virt_func_4() = 0;
+ virtual void virt_func_5() = 0;
+ virtual void virt_func_6() = 0;
+ virtual void virt_func_7() = 0;
+ virtual void virt_func_8() = 0;
+ virtual void virt_func_9() = 0;
+};
+class dummy_child_class : dummy_abstract_class {
+ virtual void virt_func_0();
+ virtual void virt_func_1();
+ virtual void virt_func_2();
+ virtual void virt_func_3();
+ virtual void virt_func_4();
+ virtual void virt_func_5();
+ virtual void virt_func_6();
+ virtual void virt_func_7();
+ virtual void virt_func_8();
+ virtual void virt_func_9();
+};
+static dummy_child_class dummy() {
+ dummy_child_class temp;
+ return temp;
+}
diff --git a/src/d/d_shop_system.cpp b/src/d/d_shop_system.cpp
index 41f358f75b..5b43be94e5 100644
--- a/src/d/d_shop_system.cpp
+++ b/src/d/d_shop_system.cpp
@@ -179,7 +179,7 @@ static shop_item_data item_seira_shop = {
},
};
-static processFunc process[22] = {
+static processFunc process[] = {
&dShopSystem_c::seq_wait, &dShopSystem_c::seq_start,
&dShopSystem_c::seq_select_wait, &dShopSystem_c::seq_select_start,
&dShopSystem_c::seq_select, &dShopSystem_c::seq_moving,
@@ -1661,3 +1661,72 @@ bool dShopSystem_c::dpdMove() {
}
#pragma nosyminline on
+
+// Need 0x78 bytes of padding with no symbol between process and dShopSystem_c::__vtable
+// This is likely caused by the vtables of abstract base classes getting put there and then stripped out.
+// Not sure which abstract base class could go there though, so we simulate it with some dummy classes for now.
+class dummy_abstract_class {
+public:
+ virtual void virt_func_0() = 0;
+ virtual void virt_func_1() = 0;
+ virtual void virt_func_2() = 0;
+ virtual void virt_func_3() = 0;
+ virtual void virt_func_4() = 0;
+ virtual void virt_func_5() = 0;
+ virtual void virt_func_6() = 0;
+ virtual void virt_func_7() = 0;
+ virtual void virt_func_8() = 0;
+ virtual void virt_func_9() = 0;
+ virtual void virt_func_10() = 0;
+ virtual void virt_func_11() = 0;
+ virtual void virt_func_12() = 0;
+ virtual void virt_func_13() = 0;
+ virtual void virt_func_14() = 0;
+ virtual void virt_func_15() = 0;
+ virtual void virt_func_16() = 0;
+ virtual void virt_func_17() = 0;
+ virtual void virt_func_18() = 0;
+ virtual void virt_func_19() = 0;
+ virtual void virt_func_20() = 0;
+ virtual void virt_func_21() = 0;
+ virtual void virt_func_22() = 0;
+ virtual void virt_func_23() = 0;
+ virtual void virt_func_24() = 0;
+ virtual void virt_func_25() = 0;
+ virtual void virt_func_26() = 0;
+ virtual void virt_func_27() = 0;
+};
+class dummy_child_class : dummy_abstract_class {
+ virtual void virt_func_0();
+ virtual void virt_func_1();
+ virtual void virt_func_2();
+ virtual void virt_func_3();
+ virtual void virt_func_4();
+ virtual void virt_func_5();
+ virtual void virt_func_6();
+ virtual void virt_func_7();
+ virtual void virt_func_8();
+ virtual void virt_func_9();
+ virtual void virt_func_10();
+ virtual void virt_func_11();
+ virtual void virt_func_12();
+ virtual void virt_func_13();
+ virtual void virt_func_14();
+ virtual void virt_func_15();
+ virtual void virt_func_16();
+ virtual void virt_func_17();
+ virtual void virt_func_18();
+ virtual void virt_func_19();
+ virtual void virt_func_20();
+ virtual void virt_func_21();
+ virtual void virt_func_22();
+ virtual void virt_func_23();
+ virtual void virt_func_24();
+ virtual void virt_func_25();
+ virtual void virt_func_26();
+ virtual void virt_func_27();
+};
+static dummy_child_class dummy() {
+ dummy_child_class temp;
+ return temp;
+}
diff --git a/src/dolphin/vi/vi.c b/src/dolphin/vi/vi.c
index ffd479cd1b..a1bcae9fe8 100644
--- a/src/dolphin/vi/vi.c
+++ b/src/dolphin/vi/vi.c
@@ -345,8 +345,8 @@ static VITimingInfo timing[10] = {
/* 803D1920-803D1954 02EA40 0032+02 0/1 0/0 0/0 .data taps */
#pragma push
#pragma force_active on
-static u16 taps[26] = {496, 476, 430, 372, 297, 219, 142, 70, 12, 226, 203, 192, 196,
- 207, 222, 236, 252, 8, 15, 19, 19, 15, 12, 8, 1, 0};
+static u16 taps[] = {496, 476, 430, 372, 297, 219, 142, 70, 12, 226, 203, 192, 196,
+ 207, 222, 236, 252, 8, 15, 19, 19, 15, 12, 8, 1};
#pragma pop
/* 80451838-8045183C 000D38 0004+00 2/2 0/0 0/0 .sbss FBSet */