From bfcd4ca46f428ba168c6daf6aa7550b7d8d71a03 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 27 May 2021 20:09:37 -0400 Subject: Start decomping unk_02006864 --- arm9/lib/include/GX_ioreg.h | 84 +++++++++++++++++++++++++++++++++++++++++++++ arm9/lib/include/NNS_g2d.h | 39 +++++++++++++++++++++ arm9/lib/include/gx.h | 15 ++++++++ 3 files changed, 138 insertions(+) create mode 100644 arm9/lib/include/GX_ioreg.h create mode 100644 arm9/lib/include/NNS_g2d.h (limited to 'arm9/lib/include') 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 -- cgit v1.2.3