summaryrefslogtreecommitdiff
path: root/src/d/d_rvl_fb_copy.cpp
diff options
context:
space:
mode:
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;