summaryrefslogtreecommitdiff
path: root/src/d/d_rvl_fb_copy.cpp
diff options
context:
space:
mode:
authorMax Roncace <me@caseif.net>2026-06-23 20:52:55 +0100
committerGitHub <noreply@github.com>2026-06-23 12:52:55 -0700
commitc8fa8c9e2aab72cf4e5db0e5d1c84a9ea6ee6eb0 (patch)
treee74401818820cb5571533e10e3f1b987bdb8b75a /src/d/d_rvl_fb_copy.cpp
parent8eae8919c8f53c4c5015ef9b664c6cd2f7c31f8b (diff)
Link d_cursor_mng for all Wii versions (#3164)HEADmain
Diffstat (limited to 'src/d/d_rvl_fb_copy.cpp')
-rw-r--r--src/d/d_rvl_fb_copy.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/d/d_rvl_fb_copy.cpp b/src/d/d_rvl_fb_copy.cpp
new file mode 100644
index 0000000000..2948559dbe
--- /dev/null
+++ b/src/d/d_rvl_fb_copy.cpp
@@ -0,0 +1,20 @@
+#include "d/d_rvl_fb_copy.h"
+
+// This TU's existence is inferred from the following facts:
+// - In most versions the below flag symbol is located in .sbss between symbols in d_cursor_mng
+// and m_Do_main on most versions
+// - The symbol is not used in either of those TUs
+// - In DZDE01 an extra TU (d_E3Stage_select06) exists between those two TUs, and the flag symbol
+// is located before its .sbss symbols meaning it cannot be in m_Do_main
+// - In Wii versions there is a 7-byte gap between the last known symbol in d_cursor_mng and the
+// flag symbol, which can only be caused by:
+// a) An extra unused 4-byte-aligned symbol in d_cursor_mng (unlikely, the symbol map only
+// tends to exclude 1-byte symbols)
+// b) 4 extra unused 1-byte symbols in d_cursor_mng prior to the flag symbol (generally seems
+// implausible to have that many extra unused vars)
+// c) The symbol is contained by the demo-specific TU (seems implausible, doesn't really belong
+// there and everything else would need to be guarded for other versions rather than just
+// excluding the TU)
+// d) An extra TU which forces the flag symbol to be aligned to 8 bytes (most likely reason)
+
+bool g_rvlEnableExtraFramebufferCopy;