summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/bg.h48
-rw-r--r--include/dma3.h3
-rw-r--r--include/gpu_regs.h2
-rw-r--r--include/trig.h3
-rw-r--r--include/window.h11
5 files changed, 57 insertions, 10 deletions
diff --git a/include/bg.h b/include/bg.h
index 24484dd86..0dcb84a34 100644
--- a/include/bg.h
+++ b/include/bg.h
@@ -15,17 +15,35 @@ enum
struct BgTemplate
{
- u32 bg:2;
- u32 charBaseIndex:2;
- u32 mapBaseIndex:5;
- u32 screenSize:2;
- u32 paletteMode:1;
- u32 priority:2;
+ u32 bg:2; // 0x1, 0x2 -> 0x3
+ u32 charBaseIndex:2; // 0x4, 0x8 -> 0xC
+ u32 mapBaseIndex:5; // 0x10, 0x20, 0x40, 0x80, 0x100 -> 0x1F0
+ u32 screenSize:2; // 0x200, 0x400 -> 0x600
+ u32 paletteMode:1; // 0x800
+ u32 priority:2; // 0x1000, 0x2000 > 0x3000
u32 baseTile:10;
};
+void ResetBgs(void);
+u8 GetBgMode(void);
+void ResetBgControlStructs(void);
+void Unused_ResetBgControlStruct(u8 bg);
+void SetBgControlAttributes(u8 bg, u8 charBaseIndex, u8 mapBaseIndex, u8 screenSize, u8 paletteMode, u8 priority, u8 mosaic, u8 wraparound);
+u16 GetBgControlAttribute(u8 bg, u8 attributeId);
+u8 LoadBgVram(u8 bg, const void *src, u16 size, u16 destOffset, u8 mode);
+void SetTextModeAndHideBgs(void);
+bool8 IsInvalidBg(u8 bg);
+int DummiedOutFireRedLeafGreenTileAllocFunc(int a1, int a2, int a3, int a4);
void ResetBgsAndClearDma3BusyFlags(u32 leftoverFireRedLeafGreenVariable);
void InitBgsFromTemplates(u8 bgMode, const struct BgTemplate *templates, u8 numTemplates);
+void InitBgFromTemplate(const struct BgTemplate *template);
+void SetBgMode(u8 bgMode);
+u16 LoadBgTiles(u8 bg, const void* src, u16 size, u16 destOffset);
+u16 LoadBgTilemap(u8 bg, const void *src, u16 size, u16 destOffset);
+u16 Unused_LoadBgPalette(u8 bg, const void *src, u16 size, u16 destOffset);
+bool8 IsDma3ManagerBusyWithBgCopy(void);
+void ShowBg(u8 bg);
+void HideBg(u8 bg);
void SetBgAttribute(u8 bg, u8 attributeId, u8 value);
u16 GetBgAttribute(u8 bg, u8 attributeId);
u32 ChangeBgX(u8 bg, u32 value, u8 op);
@@ -34,12 +52,24 @@ u32 ChangeBgY(u8 bg, u32 value, u8 op);
u32 ChangeBgY_ScreenOff(u8 bg, u32 value, u8 op);
u32 GetBgY(u8 bg);
void SetBgAffine(u8 bg, u32 srcCenterX, u32 srcCenterY, s16 dispCenterX, s16 dispCenterY, s16 scaleX, s16 scaleY, u16 rotationAngle);
+u8 Unused_AdjustBgMosaic(u8 a1, u8 a2);
void SetBgTilemapBuffer(u8 bg, void *tilemap);
void UnsetBgTilemapBuffer(u8 bg);
+void* GetBgTilemapBuffer(u8 bg);
void CopyToBgTilemapBuffer(u8 bg, const void *src, u16 mode, u16 destOffset);
void CopyBgTilemapBufferToVram(u8 bg);
-u16 LoadBgTiles(u8 bg, const void* src, u16 size, u16 destOffset);
-void ShowBg(u8 bg);
-void HideBg(u8 bg);
+void CopyToBgTilemapBufferRect(u8 bg, void* src, u8 destX, u8 destY, u8 width, u8 height);
+void CopyToBgTilemapBufferRect_ChangePalette(u8 bg, void *src, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette);
+void CopyRectToBgTilemapBufferRect(u8 bg, void* src, u8 srcX, u8 srcY, u8 srcWidth, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette1, u16 tileOffset, u16 palette2);
+void FillBgTilemapBufferRect_Palette0(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height);
+void FillBgTilemapBufferRect(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height, u8 palette);
+void WriteSequenceToBgTilemapBuffer(u8 bg, u16 firstTileNum, u8 x, u8 y, u8 width, u8 height, u8 paletteSlot, s16 tileNumDelta);
+u16 GetBgMetricTextMode(u8 bg, u8 whichMetric);
+u32 GetBgMetricAffineMode(u8 bg, u8 whichMetric);
+u32 GetTileMapIndexFromCoords(s32 x, s32 y, s32 screenSize, u32 screenWidth, u32 screenHeight);
+void CopyTileMapEntry(u16 *src, u16 *dest, s32 palette1, u32 tileOffset, u32 palette2);
+u32 GetBgType(u8 bg);
+bool32 IsInvalidBg32(u8 bg);
+bool32 IsTileMapOutsideWram(u8 bg);
#endif // GUARD_BG_H
diff --git a/include/dma3.h b/include/dma3.h
index ea3171662..db75ea9e3 100644
--- a/include/dma3.h
+++ b/include/dma3.h
@@ -19,5 +19,6 @@ void ClearDma3Requests(void);
void ProcessDma3Requests(void);
int RequestDma3Copy(const void *src, void *dest, u16 size, u8 mode);
int RequestDma3Fill(s32 value, void *dest, u16 size, u8 mode);
+int CheckForSpaceForDma3Request(s16 index);
-#endif
+#endif // GUARD_DMA3_H
diff --git a/include/gpu_regs.h b/include/gpu_regs.h
index 684578f43..2675571f4 100644
--- a/include/gpu_regs.h
+++ b/include/gpu_regs.h
@@ -1,6 +1,8 @@
#ifndef GUARD_GPU_REGS_H
#define GUARD_GPU_REGS_H
+void InitGpuRegManager(void);
+void CopyBufferedValuesToGpuRegs(void);
void SetGpuReg(u8 regOffset, u16 value);
void SetGpuReg_ForcedBlank(u8 regOffset, u16 value);
u16 GetGpuReg(u8 regOffset);
diff --git a/include/trig.h b/include/trig.h
index a2f98a3e6..477a0163f 100644
--- a/include/trig.h
+++ b/include/trig.h
@@ -1,6 +1,9 @@
#ifndef GUARD_TRIG_H
#define GUARD_TRIG_H
+// Converts a number to Q8.8 fixed-point format
+#define Q_8_8(n) ((s16)((n) * 256))
+
extern const s16 gSineTable[];
s16 Sin(s16 index, s16 amplitude);
diff --git a/include/window.h b/include/window.h
index 20e5fefa3..e8af82e81 100644
--- a/include/window.h
+++ b/include/window.h
@@ -24,6 +24,17 @@ struct WindowTemplate
u16 baseBlock;
};
+#define DUMMY_WIN_TEMPLATE \
+{ \
+ 0xFF, \
+ 0, \
+ 0, \
+ 0, \
+ 0, \
+ 0, \
+ 0, \
+}
+
struct Window
{
struct WindowTemplate window;