summaryrefslogtreecommitdiff
path: root/src/libultra_code_O2/guS2DInitBg.c
diff options
context:
space:
mode:
authorRandom <28494085+Random06457@users.noreply.github.com>2020-10-03 17:22:44 +0200
committerGitHub <noreply@github.com>2020-10-03 11:22:44 -0400
commit174af7384d1cfcbf15da02d9069bf02bdc433c20 (patch)
treee4fb18346f71047c123ec4d34a80ae7e4d8ab9ea /src/libultra_code_O2/guS2DInitBg.c
parent6136ee6debd570a63fc695a6f4664553303f2324 (diff)
libultra cleanup (#215)
* cleanup libultra * fixes - use quotes instead of <> for includes - add macros for zelda specific thread priorities - fix Makefile - properly format the remaining pfs structs * fix button macros + add CHECK_BTN_ANY/CHECK_BTN_ALL * remove ULTRA_ABS * fix includes * update z_player.c/z_lib.c + run format.sh * merge upstream/master * fix include in En_Goroiwa * fix includes
Diffstat (limited to 'src/libultra_code_O2/guS2DInitBg.c')
-rw-r--r--src/libultra_code_O2/guS2DInitBg.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/libultra_code_O2/guS2DInitBg.c b/src/libultra_code_O2/guS2DInitBg.c
new file mode 100644
index 000000000..0d75648f9
--- /dev/null
+++ b/src/libultra_code_O2/guS2DInitBg.c
@@ -0,0 +1,28 @@
+#include "global.h"
+
+void guS2DInitBg(uObjBg* bg) {
+ u16 shift;
+ u32 size;
+ s32 tmem;
+
+ tmem = (bg->b.imageFmt == G_IM_FMT_CI) ? 0x100 : 0x200;
+
+ shift = (6 - bg->b.imageSiz);
+ if (bg->b.imageLoad == G_BGLT_LOADBLOCK) {
+ bg->b.tmemW = bg->b.imageW >> shift;
+ bg->b.tmemH = (tmem / bg->b.tmemW) * 4;
+ bg->b.tmemSizeW = bg->b.tmemW * 2;
+ bg->b.tmemSize = bg->b.tmemH * bg->b.tmemSizeW;
+ bg->b.tmemLoadSH = (bg->b.tmemSize >> 1) - 1;
+ bg->b.tmemLoadTH = (0x7FF / bg->b.tmemW) + 1;
+ } else { // G_BGLT_LOADTILE
+ bg->b.tmemW = (bg->b.frameW >> shift) + 3;
+ bg->b.tmemH = (tmem / bg->b.tmemW) * 4;
+ bg->b.tmemSizeW = (bg->b.imageW >> shift) * 2;
+
+ size = bg->b.tmemH * bg->b.tmemSizeW;
+ bg->b.tmemSize = (size >> 16);
+ bg->b.tmemLoadSH = (size >> 0) & 0xFFFF;
+ bg->b.tmemLoadTH = bg->b.tmemH - 1;
+ }
+}