summaryrefslogtreecommitdiff
path: root/arm9/lib
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2021-05-27 20:09:37 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2021-05-27 20:09:37 -0400
commitbfcd4ca46f428ba168c6daf6aa7550b7d8d71a03 (patch)
treed9aef69d6de7315e1967333f547403521759ec4c /arm9/lib
parent06c43a0f10dc2afc08bf36311cd3b502c291df65 (diff)
Start decomping unk_02006864
Diffstat (limited to 'arm9/lib')
-rw-r--r--arm9/lib/include/GX_ioreg.h84
-rw-r--r--arm9/lib/include/NNS_g2d.h39
-rw-r--r--arm9/lib/include/gx.h15
3 files changed, 138 insertions, 0 deletions
diff --git a/arm9/lib/include/GX_ioreg.h b/arm9/lib/include/GX_ioreg.h
new file mode 100644
index 00000000..81055b0a
--- /dev/null
+++ b/arm9/lib/include/GX_ioreg.h
@@ -0,0 +1,84 @@
+#ifndef NITRO_GX_IOREG_H
+#define NITRO_GX_IOREG_H
+
+#define REG_GX_DISPCNT_O_SHIFT 31
+#define REG_GX_DISPCNT_O_SIZE 1
+#define REG_GX_DISPCNT_O_MASK 0x80000000
+
+#define REG_GX_DISPCNT_BG_SHIFT 30
+#define REG_GX_DISPCNT_BG_SIZE 1
+#define REG_GX_DISPCNT_BG_MASK 0x40000000
+
+#define REG_GX_DISPCNT_BGSCREENOFFSET_SHIFT 27
+#define REG_GX_DISPCNT_BGSCREENOFFSET_SIZE 3
+#define REG_GX_DISPCNT_BGSCREENOFFSET_MASK 0x38000000
+
+#define REG_GX_DISPCNT_BGCHAROFFSET_SHIFT 24
+#define REG_GX_DISPCNT_BGCHAROFFSET_SIZE 3
+#define REG_GX_DISPCNT_BGCHAROFFSET_MASK 0x07000000
+
+#define REG_GX_DISPCNT_OH_SHIFT 23
+#define REG_GX_DISPCNT_OH_SIZE 1
+#define REG_GX_DISPCNT_OH_MASK 0x00800000
+
+#define REG_GX_DISPCNT_EXOBJ_SHIFT 20
+#define REG_GX_DISPCNT_EXOBJ_SIZE 3
+#define REG_GX_DISPCNT_EXOBJ_MASK 0x00700000
+
+#define REG_GX_DISPCNT_VRAM_SHIFT 18
+#define REG_GX_DISPCNT_VRAM_SIZE 2
+#define REG_GX_DISPCNT_VRAM_MASK 0x000c0000
+
+#define REG_GX_DISPCNT_MODE_SHIFT 16
+#define REG_GX_DISPCNT_MODE_SIZE 2
+#define REG_GX_DISPCNT_MODE_MASK 0x00030000
+
+#define REG_GX_DISPCNT_OW_SHIFT 15
+#define REG_GX_DISPCNT_OW_SIZE 1
+#define REG_GX_DISPCNT_OW_MASK 0x00008000
+
+#define REG_GX_DISPCNT_W1_SHIFT 14
+#define REG_GX_DISPCNT_W1_SIZE 1
+#define REG_GX_DISPCNT_W1_MASK 0x00004000
+
+#define REG_GX_DISPCNT_W0_SHIFT 13
+#define REG_GX_DISPCNT_W0_SIZE 1
+#define REG_GX_DISPCNT_W0_MASK 0x00002000
+
+#define REG_GX_DISPCNT_DISPLAY_SHIFT 8
+#define REG_GX_DISPCNT_DISPLAY_SIZE 5
+#define REG_GX_DISPCNT_DISPLAY_MASK 0x00001f00
+
+#define REG_GX_DISPCNT_BLANK_SHIFT 7
+#define REG_GX_DISPCNT_BLANK_SIZE 1
+#define REG_GX_DISPCNT_BLANK_MASK 0x00000080
+
+#define REG_GX_DISPCNT_OBJMAP_SHIFT 4
+#define REG_GX_DISPCNT_OBJMAP_SIZE 3
+#define REG_GX_DISPCNT_OBJMAP_MASK 0x00000070
+
+#define REG_GX_DISPCNT_BG02D3D_SHIFT 3
+#define REG_GX_DISPCNT_BG02D3D_SIZE 1
+#define REG_GX_DISPCNT_BG02D3D_MASK 0x00000008
+
+#define REG_GX_DISPCNT_BGMODE_SHIFT 0
+#define REG_GX_DISPCNT_BGMODE_SIZE 3
+#define REG_GX_DISPCNT_BGMODE_MASK 0x00000007
+
+#define REG_GX_DISPCNT_OBJMAP_CH_SHIFT 4
+#define REG_GX_DISPCNT_OBJMAP_CH_SIZE 1
+#define REG_GX_DISPCNT_OBJMAP_CH_MASK 0x00000010
+
+#define REG_GX_DISPCNT_OBJMAP_BM_SHIFT 5
+#define REG_GX_DISPCNT_OBJMAP_BM_SIZE 2
+#define REG_GX_DISPCNT_OBJMAP_BM_MASK 0x00000060
+
+#define REG_GX_DISPCNT_EXOBJ_CH_SHIFT 20
+#define REG_GX_DISPCNT_EXOBJ_CH_SIZE 2
+#define REG_GX_DISPCNT_EXOBJ_CH_MASK 0x00300000
+
+#define REG_GX_DISPCNT_EXOBJ_BM_SHIFT 22
+#define REG_GX_DISPCNT_EXOBJ_BM_SIZE 1
+#define REG_GX_DISPCNT_EXOBJ_BM_MASK 0x00400000
+
+#endif //NITRO_GX_IOREG_H
diff --git a/arm9/lib/include/NNS_g2d.h b/arm9/lib/include/NNS_g2d.h
new file mode 100644
index 00000000..e7852744
--- /dev/null
+++ b/arm9/lib/include/NNS_g2d.h
@@ -0,0 +1,39 @@
+#ifndef NNSYS_NNS_G2D_H
+#define NNSYS_NNS_G2D_H
+#include "gx.h"
+
+typedef struct NNSG2dCharacterData
+{
+
+ u16 H;
+ u16 W;
+
+ GXTexFmt pixelFmt; // GXTexFmt
+
+ GXOBJVRamModeChar mapingType; // GXOBJVRamModeChar
+ u32 characterFmt;// 31 ..... 10 ...........9 8 ................ 0
+ // Reserved VramTransfer NNSG2dCharacterFmt
+ u32 szByte;
+ void* pRawData; // offset addr of the content.
+
+}
+NNSG2dCharacterData;
+
+typedef struct NNSG2dScreenData
+{
+
+ u16 screenWidth; // screen width (pixels) of rawData
+ u16 screenHeight; // screen height (pixels) of rawData
+ u16 colorMode; // character data color mode
+ u16 screenFormat; // screen data format
+ u32 szByte; // size of rawData
+ u32 rawData[1]; // screen data (variable length)
+
+}
+NNSG2dScreenData;
+
+
+extern BOOL NNS_G2dGetUnpackedBGCharacterData( void* pNcgrFile, NNSG2dCharacterData** ppCharData );
+extern BOOL NNS_G2dGetUnpackedScreenData( void* pNscrFile, NNSG2dScreenData** ppScrData );
+
+#endif //NNSYS_NNS_G2D_H
diff --git a/arm9/lib/include/gx.h b/arm9/lib/include/gx.h
index 26f6cfaf..210d61f4 100644
--- a/arm9/lib/include/gx.h
+++ b/arm9/lib/include/gx.h
@@ -5,6 +5,7 @@
#include "MI_memory.h"
#include "MI_dma.h"
#include "OS_vramExclusive.h"
+#include "GX_ioreg.h"
//temporary while other files aren't decompiled
@@ -166,4 +167,18 @@ typedef enum
}
GXDispSelect;
+typedef enum
+{
+ GX_OBJVRAMMODE_CHAR_2D = (0 << REG_GX_DISPCNT_OBJMAP_SHIFT) | (0 << REG_GX_DISPCNT_EXOBJ_SHIFT),
+ GX_OBJVRAMMODE_CHAR_1D_32K =
+ (1 << REG_GX_DISPCNT_OBJMAP_SHIFT) | (0 << REG_GX_DISPCNT_EXOBJ_SHIFT),
+ GX_OBJVRAMMODE_CHAR_1D_64K =
+ (1 << REG_GX_DISPCNT_OBJMAP_SHIFT) | (1 << REG_GX_DISPCNT_EXOBJ_SHIFT),
+ GX_OBJVRAMMODE_CHAR_1D_128K =
+ (1 << REG_GX_DISPCNT_OBJMAP_SHIFT) | (2 << REG_GX_DISPCNT_EXOBJ_SHIFT),
+ GX_OBJVRAMMODE_CHAR_1D_256K =
+ (1 << REG_GX_DISPCNT_OBJMAP_SHIFT) | (3 << REG_GX_DISPCNT_EXOBJ_SHIFT)
+}
+ GXOBJVRamModeChar;
+
#endif //GUARD_GX_H