diff options
-rw-r--r-- | arm9/lib/include/GXS_ioreg.h | 64 | ||||
-rw-r--r-- | arm9/lib/include/GX_ioreg.h | 151 | ||||
-rw-r--r-- | arm9/lib/include/NNS_g2d.h | 284 | ||||
-rw-r--r-- | arm9/lib/include/gx.h | 2 | ||||
-rw-r--r-- | arm9/lib/include/registers.h | 180 | ||||
-rw-r--r-- | arm9/lib/src/GX.c | 1 | ||||
-rw-r--r-- | arm9/src/error_message_reset.c | 2 | ||||
-rw-r--r-- | arm9/src/gf_gfx_loader.c | 1 |
8 files changed, 298 insertions, 387 deletions
diff --git a/arm9/lib/include/GXS_ioreg.h b/arm9/lib/include/GXS_ioreg.h deleted file mode 100644 index 1c66c4af..00000000 --- a/arm9/lib/include/GXS_ioreg.h +++ /dev/null @@ -1,64 +0,0 @@ -#ifndef POKEDIAMOND_GXS_IOREG_H
-#define POKEDIAMOND_GXS_IOREG_H
-
-#define REG_GXS_DB_DISPCNT_O_SHIFT 31
-#define REG_GXS_DB_DISPCNT_O_SIZE 1
-#define REG_GXS_DB_DISPCNT_O_MASK 0x80000000
-
-#define REG_GXS_DB_DISPCNT_BG_SHIFT 30
-#define REG_GXS_DB_DISPCNT_BG_SIZE 1
-#define REG_GXS_DB_DISPCNT_BG_MASK 0x40000000
-
-#define REG_GXS_DB_DISPCNT_OH_SHIFT 23
-#define REG_GXS_DB_DISPCNT_OH_SIZE 1
-#define REG_GXS_DB_DISPCNT_OH_MASK 0x00800000
-
-#define REG_GXS_DB_DISPCNT_EXOBJ_SHIFT 20
-#define REG_GXS_DB_DISPCNT_EXOBJ_SIZE 2
-#define REG_GXS_DB_DISPCNT_EXOBJ_MASK 0x00300000
-
-#define REG_GXS_DB_DISPCNT_MODE_SHIFT 16
-#define REG_GXS_DB_DISPCNT_MODE_SIZE 1
-#define REG_GXS_DB_DISPCNT_MODE_MASK 0x00010000
-
-#define REG_GXS_DB_DISPCNT_OW_SHIFT 15
-#define REG_GXS_DB_DISPCNT_OW_SIZE 1
-#define REG_GXS_DB_DISPCNT_OW_MASK 0x00008000
-
-#define REG_GXS_DB_DISPCNT_W1_SHIFT 14
-#define REG_GXS_DB_DISPCNT_W1_SIZE 1
-#define REG_GXS_DB_DISPCNT_W1_MASK 0x00004000
-
-#define REG_GXS_DB_DISPCNT_W0_SHIFT 13
-#define REG_GXS_DB_DISPCNT_W0_SIZE 1
-#define REG_GXS_DB_DISPCNT_W0_MASK 0x00002000
-
-#define REG_GXS_DB_DISPCNT_DISPLAY_SHIFT 8
-#define REG_GXS_DB_DISPCNT_DISPLAY_SIZE 5
-#define REG_GXS_DB_DISPCNT_DISPLAY_MASK 0x00001f00
-
-#define REG_GXS_DB_DISPCNT_BLANK_SHIFT 7
-#define REG_GXS_DB_DISPCNT_BLANK_SIZE 1
-#define REG_GXS_DB_DISPCNT_BLANK_MASK 0x00000080
-
-#define REG_GXS_DB_DISPCNT_OBJMAP_SHIFT 4
-#define REG_GXS_DB_DISPCNT_OBJMAP_SIZE 3
-#define REG_GXS_DB_DISPCNT_OBJMAP_MASK 0x00000070
-
-#define REG_GXS_DB_DISPCNT_BGMODE_SHIFT 0
-#define REG_GXS_DB_DISPCNT_BGMODE_SIZE 3
-#define REG_GXS_DB_DISPCNT_BGMODE_MASK 0x00000007
-
-#define REG_GXS_DB_DISPCNT_OBJMAP_CH_SHIFT 4
-#define REG_GXS_DB_DISPCNT_OBJMAP_CH_SIZE 1
-#define REG_GXS_DB_DISPCNT_OBJMAP_CH_MASK 0x00000010
-
-#define REG_GXS_DB_DISPCNT_OBJMAP_BM_SHIFT 5
-#define REG_GXS_DB_DISPCNT_OBJMAP_BM_SIZE 2
-#define REG_GXS_DB_DISPCNT_OBJMAP_BM_MASK 0x00000060
-
-#define REG_GXS_DB_DISPCNT_EXOBJ_CH_SHIFT 20
-#define REG_GXS_DB_DISPCNT_EXOBJ_CH_SIZE 2
-#define REG_GXS_DB_DISPCNT_EXOBJ_CH_MASK 0x00300000
-
-#endif //POKEDIAMOND_GXS_IOREG_H
diff --git a/arm9/lib/include/GX_ioreg.h b/arm9/lib/include/GX_ioreg.h deleted file mode 100644 index bfdc370a..00000000 --- a/arm9/lib/include/GX_ioreg.h +++ /dev/null @@ -1,151 +0,0 @@ -#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
-
-// DISPSTAT
-#define REG_GX_DISPSTAT_VCOUNTER_SHIFT 7
-#define REG_GX_DISPSTAT_VCOUNTER_SIZE 9
-#define REG_GX_DISPSTAT_VCOUNTER_MASK 0xff80
-
-#define REG_GX_DISPSTAT_VQI_SHIFT 5
-#define REG_GX_DISPSTAT_VQI_SIZE 1
-#define REG_GX_DISPSTAT_VQI_MASK 0x0020
-
-#define REG_GX_DISPSTAT_HBI_SHIFT 4
-#define REG_GX_DISPSTAT_HBI_SIZE 1
-#define REG_GX_DISPSTAT_HBI_MASK 0x0010
-
-#define REG_GX_DISPSTAT_VBI_SHIFT 3
-#define REG_GX_DISPSTAT_VBI_SIZE 1
-#define REG_GX_DISPSTAT_VBI_MASK 0x0008
-
-#define REG_GX_DISPSTAT_LYC_SHIFT 2
-#define REG_GX_DISPSTAT_LYC_SIZE 1
-#define REG_GX_DISPSTAT_LYC_MASK 0x0004
-
-#define REG_GX_DISPSTAT_HBLK_SHIFT 1
-#define REG_GX_DISPSTAT_HBLK_SIZE 1
-#define REG_GX_DISPSTAT_HBLK_MASK 0x0002
-
-#define REG_GX_DISPSTAT_VBLK_SHIFT 0
-#define REG_GX_DISPSTAT_VBLK_SIZE 1
-#define REG_GX_DISPSTAT_VBLK_MASK 0x0001
-
-// POWCNT
-#define REG_GX_POWCNT_GE_SHIFT 3
-#define REG_GX_POWCNT_GE_SIZE 1
-#define REG_GX_POWCNT_GE_MASK 0x0008
-
-#define REG_GX_POWCNT_RE_SHIFT 2
-#define REG_GX_POWCNT_RE_SIZE 1
-#define REG_GX_POWCNT_RE_MASK 0x0004
-
-#define REG_GX_POWCNT_E2DG_SHIFT 1
-#define REG_GX_POWCNT_E2DG_SIZE 1
-#define REG_GX_POWCNT_E2DG_MASK 0x0002
-
-#define REG_GX_POWCNT_LCD_SHIFT 0
-#define REG_GX_POWCNT_LCD_SIZE 1
-#define REG_GX_POWCNT_LCD_MASK 0x0001
-
-#define REG_GX_POWCNT_LCDB_SHIFT 8
-#define REG_GX_POWCNT_LCDB_SIZE 1
-#define REG_GX_POWCNT_LCDB_MASK 0x0100
-
-#define REG_GX_POWCNT_E2DGB_SHIFT 9
-#define REG_GX_POWCNT_E2DGB_SIZE 1
-#define REG_GX_POWCNT_E2DGB_MASK 0x0200
-
-#define REG_GX_POWCNT_DSEL_SHIFT 15
-#define REG_GX_POWCNT_DSEL_SIZE 1
-#define REG_GX_POWCNT_DSEL_MASK 0x8000
-
-// MASTER BRIGHT
-#define REG_GX_MASTER_BRIGHT_E_MOD_SHIFT 14
-#define REG_GX_MASTER_BRIGHT_E_MOD_SIZE 2
-#define REG_GX_MASTER_BRIGHT_E_MOD_MASK 0xc000
-
-#define REG_GX_MASTER_BRIGHT_E_VALUE_SHIFT 0
-#define REG_GX_MASTER_BRIGHT_E_VALUE_SIZE 5
-#define REG_GX_MASTER_BRIGHT_E_VALUE_MASK 0x001f
-
-#endif //NITRO_GX_IOREG_H
diff --git a/arm9/lib/include/NNS_g2d.h b/arm9/lib/include/NNS_g2d.h index 722f4767..483f254a 100644 --- a/arm9/lib/include/NNS_g2d.h +++ b/arm9/lib/include/NNS_g2d.h @@ -1,56 +1,44 @@ #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;
+ u16 H;
+ u16 W;
+ GXTexFmt pixelFmt;
+ GXOBJVRamModeChar mapingType;
+ u32 characterFmt;
+ u32 szByte;
+ void * pRawData;
+} 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;
+ u16 screenWidth;
+ u16 screenHeight;
+ u16 colorMode;
+ u16 screenFormat;
+ u32 szByte;
+ u32 rawData[1];
+} NNSG2dScreenData;
typedef struct NNSG2dPaletteData
{
+ GXTexFmt fmt;
+ BOOL bExtendedPlt;
+ u32 szByte;
+ void * pRawData;
- GXTexFmt fmt;
- BOOL bExtendedPlt;
-
- u32 szByte;
- void* pRawData; // offset addr of the content.
-
-}
-NNSG2dPaletteData;
+} NNSG2dPaletteData;
typedef enum NNS_G2D_VRAM_TYPE
{
NNS_G2D_VRAM_TYPE_3DMAIN = 0,
NNS_G2D_VRAM_TYPE_2DMAIN = 1,
- NNS_G2D_VRAM_TYPE_2DSUB = 2,
- NNS_G2D_VRAM_TYPE_MAX = 3
-
+ NNS_G2D_VRAM_TYPE_2DSUB = 2,
+ NNS_G2D_VRAM_TYPE_MAX = 3
} NNS_G2D_VRAM_TYPE;
typedef enum NNSG2dCharacterDataMapingType
@@ -66,199 +54,159 @@ typedef enum NNSG2dCharacterDataMapingType typedef struct NNSG2dImageAttr
{
- GXTexSizeS sizeS; // Image size (Invalid data is set during 1D mapping.)
- GXTexSizeT sizeT; // Image size (Invalid data is set during 1D mapping.)
-
- GXTexFmt fmt; // Image format
- BOOL bExtendedPlt; // Whether or not to use the extended palette
-
- GXTexPlttColor0 plttUse; // How to use palette number 0
- GXOBJVRamModeChar mappingType; // Mapping mode
-}
-NNSG2dImageAttr;
+ GXTexSizeS sizeS;
+ GXTexSizeT sizeT;
+ GXTexFmt fmt;
+ BOOL bExtendedPlt;
+ GXTexPlttColor0 plttUse;
+ GXOBJVRamModeChar mappingType;
+} NNSG2dImageAttr;
typedef struct NNSG2dVRamLocation
{
- u32 baseAddrOfVram[ NNS_G2D_VRAM_TYPE_MAX ];
-}
-NNSG2dVRamLocation;
+ u32 baseAddrOfVram[ NNS_G2D_VRAM_TYPE_MAX ];
+} NNSG2dVRamLocation;
typedef struct NNSG2dImageProxy
{
- NNSG2dVRamLocation vramLocation;
- NNSG2dImageAttr attr;
-}
-NNSG2dImageProxy;
+ NNSG2dVRamLocation vramLocation;
+ NNSG2dImageAttr attr;
+} NNSG2dImageProxy;
typedef struct NNSG2dPaletteCompressInfo
{
- u16 numPalette;
- u16 pad16;
- void* pPlttIdxTbl; // offset addr.
+ u16 numPalette;
+ u16 pad16;
+ void * pPlttIdxTbl;
-}
-NNSG2dPaletteCompressInfo;
+} NNSG2dPaletteCompressInfo;
void NNS_G2dLoadImage1DMapping
(
- const NNSG2dCharacterData* pSrcData,
- u32 baseAddr,
- NNS_G2D_VRAM_TYPE type,
- NNSG2dImageProxy* pImgProxy
+ const NNSG2dCharacterData * pSrcData,
+ u32 baseAddr,
+ NNS_G2D_VRAM_TYPE type,
+ NNSG2dImageProxy * pImgProxy
);
void NNS_G2dLoadImage2DMapping
(
- const NNSG2dCharacterData* pSrcData,
- u32 baseAddr,
- NNS_G2D_VRAM_TYPE type,
- NNSG2dImageProxy* pImgProxy
+ const NNSG2dCharacterData * pSrcData,
+ u32 baseAddr,
+ NNS_G2D_VRAM_TYPE type,
+ NNSG2dImageProxy * pImgProxy
);
typedef struct NNSG2dImagePaletteProxy
{
-
- GXTexFmt fmt; // palette format
- // (Obtainable values are limited to GX_TEXFMT_PLTT16 and GX_TEXFMT_PLTT256)
-
- BOOL bExtendedPlt; // Use expanded palette?
-
- NNSG2dVRamLocation vramLocation;
-}
-NNSG2dImagePaletteProxy;
+ GXTexFmt fmt;
+ BOOL bExtendedPlt;
+ NNSG2dVRamLocation vramLocation;
+} NNSG2dImagePaletteProxy;
void NNS_G2dLoadPalette
(
- const NNSG2dPaletteData* pSrcData,
- u32 addr,
- NNS_G2D_VRAM_TYPE type,
- NNSG2dImagePaletteProxy* pPltProxy
+ const NNSG2dPaletteData * pSrcData,
+ u32 addr,
+ NNS_G2D_VRAM_TYPE type,
+ NNSG2dImagePaletteProxy * pPltProxy
);
void NNS_G2dLoadPaletteEx
(
- const NNSG2dPaletteData* pSrcData,
- const NNSG2dPaletteCompressInfo* pCmpInfo,
- u32 addr,
- NNS_G2D_VRAM_TYPE type,
- NNSG2dImagePaletteProxy* pPltProxy
+ const NNSG2dPaletteData * pSrcData,
+ const NNSG2dPaletteCompressInfo * pCmpInfo,
+ u32 addr,
+ NNS_G2D_VRAM_TYPE type,
+ NNSG2dImagePaletteProxy * pPltProxy
);
typedef struct NNSG2dCellVramTransferData
{
- u32 srcDataOffset;
- u32 szByte;
-
-}
-NNSG2dCellVramTransferData;
+ u32 srcDataOffset;
+ u32 szByte;
+} NNSG2dCellVramTransferData;
typedef struct NNSG2dVramTransferData
{
- u32 szByteMax; // Maximum byte count during all VRAM transfers
- NNSG2dCellVramTransferData* pCellTransferDataArray;// This is the length of the numCells amount of the maintained NNSG2dCellDataBank.
- //
-
-}
-NNSG2dVramTransferData;
+ u32 szByteMax;
+ NNSG2dCellVramTransferData * pCellTransferDataArray;
+} NNSG2dVramTransferData;
typedef struct NNSG2dCellOAMAttrData
{
- u16 attr0;
- u16 attr1;
- u16 attr2;
-
-}
-NNSG2dCellOAMAttrData;
+ u16 attr0;
+ u16 attr1;
+ u16 attr2;
+} NNSG2dCellOAMAttrData;
typedef struct NNSG2dCellData
{
- u16 numOAMAttrs; // Number of OAM attributes
- u16 cellAttr; // Information related to cell type
- // Information related to flips (upper 8 bits)
- // Information related to bounding information
- //
- // Information related to rendering optimization (lower 8 bits)
- // (6bit => Radius of bounding sphere >> 2 )
-
-
- NNSG2dCellOAMAttrData* pOamAttrArray; // Pointer to the NNSG2dCellOAMAttrData array
+ u16 numOAMAttrs;
+ u16 cellAttr;
+ NNSG2dCellOAMAttrData * pOamAttrArray;
-}
-NNSG2dCellData;
+} NNSG2dCellData;
typedef struct NNSG2dCellDataBank
{
- u16 numCells; // Total number of cells
- u16 cellBankAttr; // Attribute
- NNSG2dCellData* pCellDataArrayHead; // offset address
- NNSG2dCharacterDataMapingType mappingMode; // Mapping mode of the referenced character
+ u16 numCells;
+ u16 cellBankAttr;
+ NNSG2dCellData * pCellDataArrayHead;
+ NNSG2dCharacterDataMapingType mappingMode;
+ NNSG2dVramTransferData * pVramTransferData;
+ void * pStringBank;
+ void * pExtendedData;
- NNSG2dVramTransferData* pVramTransferData; // Information related to Vram transfer animation
-
- void* pStringBank; // Character string bank
- void* pExtendedData; // offset addr (if it exists)
-
-
-}
-NNSG2dCellDataBank;
+} NNSG2dCellDataBank;
typedef enum NNSG2dAnimationPlayMode
{
- NNS_G2D_ANIMATIONPLAYMODE_INVALID = 0x0, // Disabled
- NNS_G2D_ANIMATIONPLAYMODE_FORWARD, // one-time playback (forward)
- NNS_G2D_ANIMATIONPLAYMODE_FORWARD_LOOP, // repeat playback (forward loop)
- NNS_G2D_ANIMATIONPLAYMODE_REVERSE, // reverse playback (reverse (forward + backward))
- NNS_G2D_ANIMATIONPLAYMODE_REVERSE_LOOP, // reverse playback repeat (reverse (forward + backward) loop)
+ NNS_G2D_ANIMATIONPLAYMODE_INVALID = 0x0,
+ NNS_G2D_ANIMATIONPLAYMODE_FORWARD,
+ NNS_G2D_ANIMATIONPLAYMODE_FORWARD_LOOP,
+ NNS_G2D_ANIMATIONPLAYMODE_REVERSE,
+ NNS_G2D_ANIMATIONPLAYMODE_REVERSE_LOOP,
NNS_G2D_ANIMATIONPLAYMODE_MAX
-}
-NNSG2dAnimationPlayMode;
+} NNSG2dAnimationPlayMode;
typedef struct NNSG2dAnimFrameData
{
- void* pContent; // pointer to animation result
- u16 frames; // animation frame continuation time (units: video frames)
- u16 pad16; // padding
-
-}
-NNSG2dAnimFrameData;
+ void * pContent;
+ u16 frames;
+ u16 pad16;
+} NNSG2dAnimFrameData;
typedef struct NNSG2dAnimSequenceData
{
- u16 numFrames; // number of animation frames forming the sequence
- u16 loopStartFrameIdx; // loop start animation frame number
-
- u32 animType; // animation type (upper 16 bits)
- // animation elements (lower 16 bits)
- // (What's referenced by NNSG2dAnimFrameData.pContent is changed)
-
- NNSG2dAnimationPlayMode playMode; // animation sequence playback method
- NNSG2dAnimFrameData* pAnmFrameArray; // offset from the head of pFrameArray.
+ u16 numFrames;
+ u16 loopStartFrameIdx;
+ u32 animType;
+ NNSG2dAnimationPlayMode playMode;
+ NNSG2dAnimFrameData * pAnmFrameArray;
-}
-NNSG2dAnimSequenceData;
+} NNSG2dAnimSequenceData;
typedef struct NNSG2dAnimBankData
{
- u16 numSequences; // number of animation sequences
- u16 numTotalFrames; // total number of animation frames
- NNSG2dAnimSequenceData* pSequenceArrayHead; // pointer to animation sequence array
- NNSG2dAnimFrameData* pFrameArrayHead; // pointer to animation frame array
- void* pAnimContents; // pointer to animation result array
- void* pStringBank; // pointer to string bank (set during execution)
- void* pExtendedData; // pointer to library expansion area (not used)
-
-}
-NNSG2dAnimBankData;
-
-
-BOOL NNS_G2dGetUnpackedBGCharacterData( void* pNcgrFile, NNSG2dCharacterData** ppCharData );
-BOOL NNS_G2dGetUnpackedCharacterData( void* pNcgrFile, NNSG2dCharacterData** ppCharData );
-BOOL NNS_G2dGetUnpackedScreenData( void* pNscrFile, NNSG2dScreenData** ppScrData );
-BOOL NNS_G2dGetUnpackedPaletteData( void* pNclrFile, NNSG2dPaletteData** ppPltData );
-BOOL NNS_G2dGetUnpackedPaletteData( void* pNclrFile, NNSG2dPaletteData** ppPltData );
-BOOL NNS_G2dGetUnpackedPaletteCompressInfo( void* pNclrFile, NNSG2dPaletteCompressInfo** ppPltCmpInfo );
-BOOL NNS_G2dGetUnpackedCellBank( void* pNcerFile, NNSG2dCellDataBank** ppCellBank );
-BOOL NNS_G2dGetUnpackedAnimBank( void* pNanrFile, NNSG2dAnimBankData** ppAnimBank );
+ u16 numSequences;
+ u16 numTotalFrames;
+ NNSG2dAnimSequenceData * pSequenceArrayHead;
+ NNSG2dAnimFrameData * pFrameArrayHead;
+ void * pAnimContents;
+ void * pStringBank;
+ void * pExtendedData;
+
+} NNSG2dAnimBankData;
+
+BOOL NNS_G2dGetUnpackedBGCharacterData(void * pNcgrFile, NNSG2dCharacterData ** ppCharData);
+BOOL NNS_G2dGetUnpackedCharacterData(void * pNcgrFile, NNSG2dCharacterData ** ppCharData);
+BOOL NNS_G2dGetUnpackedScreenData(void * pNscrFile, NNSG2dScreenData ** ppScrData);
+BOOL NNS_G2dGetUnpackedPaletteData(void * pNclrFile, NNSG2dPaletteData ** ppPltData);
+BOOL NNS_G2dGetUnpackedPaletteData(void * pNclrFile, NNSG2dPaletteData ** ppPltData);
+BOOL NNS_G2dGetUnpackedPaletteCompressInfo(void * pNclrFile, NNSG2dPaletteCompressInfo ** ppPltCmpInfo);
+BOOL NNS_G2dGetUnpackedCellBank(void * pNcerFile, NNSG2dCellDataBank ** ppCellBank);
+BOOL NNS_G2dGetUnpackedAnimBank(void * pNanrFile, NNSG2dAnimBankData ** ppAnimBank);
#endif //NNSYS_NNS_G2D_H
diff --git a/arm9/lib/include/gx.h b/arm9/lib/include/gx.h index d73b4f53..acd23b39 100644 --- a/arm9/lib/include/gx.h +++ b/arm9/lib/include/gx.h @@ -5,7 +5,7 @@ #include "MI_memory.h" #include "MI_dma.h" #include "OS_vramExclusive.h" -#include "GX_ioreg.h" +#include "registers.h" //temporary while other files aren't decompiled diff --git a/arm9/lib/include/registers.h b/arm9/lib/include/registers.h index d55347d5..73ae7ccf 100644 --- a/arm9/lib/include/registers.h +++ b/arm9/lib/include/registers.h @@ -517,4 +517,184 @@ #define REG_GX_POWCNT_DSEL_SIZE 1 #define REG_GX_POWCNT_DSEL_MASK 0x8000 +// GX_DISPCNT +#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 + +// GXS_DB_DISPCNT +#define REG_GXS_DB_DISPCNT_O_SHIFT 31 +#define REG_GXS_DB_DISPCNT_O_SIZE 1 +#define REG_GXS_DB_DISPCNT_O_MASK 0x80000000 + +#define REG_GXS_DB_DISPCNT_BG_SHIFT 30 +#define REG_GXS_DB_DISPCNT_BG_SIZE 1 +#define REG_GXS_DB_DISPCNT_BG_MASK 0x40000000 + +#define REG_GXS_DB_DISPCNT_OH_SHIFT 23 +#define REG_GXS_DB_DISPCNT_OH_SIZE 1 +#define REG_GXS_DB_DISPCNT_OH_MASK 0x00800000 + +#define REG_GXS_DB_DISPCNT_EXOBJ_SHIFT 20 +#define REG_GXS_DB_DISPCNT_EXOBJ_SIZE 2 +#define REG_GXS_DB_DISPCNT_EXOBJ_MASK 0x00300000 + +#define REG_GXS_DB_DISPCNT_MODE_SHIFT 16 +#define REG_GXS_DB_DISPCNT_MODE_SIZE 1 +#define REG_GXS_DB_DISPCNT_MODE_MASK 0x00010000 + +#define REG_GXS_DB_DISPCNT_OW_SHIFT 15 +#define REG_GXS_DB_DISPCNT_OW_SIZE 1 +#define REG_GXS_DB_DISPCNT_OW_MASK 0x00008000 + +#define REG_GXS_DB_DISPCNT_W1_SHIFT 14 +#define REG_GXS_DB_DISPCNT_W1_SIZE 1 +#define REG_GXS_DB_DISPCNT_W1_MASK 0x00004000 + +#define REG_GXS_DB_DISPCNT_W0_SHIFT 13 +#define REG_GXS_DB_DISPCNT_W0_SIZE 1 +#define REG_GXS_DB_DISPCNT_W0_MASK 0x00002000 + +#define REG_GXS_DB_DISPCNT_DISPLAY_SHIFT 8 +#define REG_GXS_DB_DISPCNT_DISPLAY_SIZE 5 +#define REG_GXS_DB_DISPCNT_DISPLAY_MASK 0x00001f00 + +#define REG_GXS_DB_DISPCNT_BLANK_SHIFT 7 +#define REG_GXS_DB_DISPCNT_BLANK_SIZE 1 +#define REG_GXS_DB_DISPCNT_BLANK_MASK 0x00000080 + +#define REG_GXS_DB_DISPCNT_OBJMAP_SHIFT 4 +#define REG_GXS_DB_DISPCNT_OBJMAP_SIZE 3 +#define REG_GXS_DB_DISPCNT_OBJMAP_MASK 0x00000070 + +#define REG_GXS_DB_DISPCNT_BGMODE_SHIFT 0 +#define REG_GXS_DB_DISPCNT_BGMODE_SIZE 3 +#define REG_GXS_DB_DISPCNT_BGMODE_MASK 0x00000007 + +#define REG_GXS_DB_DISPCNT_OBJMAP_CH_SHIFT 4 +#define REG_GXS_DB_DISPCNT_OBJMAP_CH_SIZE 1 +#define REG_GXS_DB_DISPCNT_OBJMAP_CH_MASK 0x00000010 + +#define REG_GXS_DB_DISPCNT_OBJMAP_BM_SHIFT 5 +#define REG_GXS_DB_DISPCNT_OBJMAP_BM_SIZE 2 +#define REG_GXS_DB_DISPCNT_OBJMAP_BM_MASK 0x00000060 + +#define REG_GXS_DB_DISPCNT_EXOBJ_CH_SHIFT 20 +#define REG_GXS_DB_DISPCNT_EXOBJ_CH_SIZE 2 +#define REG_GXS_DB_DISPCNT_EXOBJ_CH_MASK 0x00300000 + +// MASTER BRIGHT +#define REG_GX_MASTER_BRIGHT_E_MOD_SHIFT 14 +#define REG_GX_MASTER_BRIGHT_E_MOD_SIZE 2 +#define REG_GX_MASTER_BRIGHT_E_MOD_MASK 0xc000 + +#define REG_GX_MASTER_BRIGHT_E_VALUE_SHIFT 0 +#define REG_GX_MASTER_BRIGHT_E_VALUE_SIZE 5 +#define REG_GX_MASTER_BRIGHT_E_VALUE_MASK 0x001f + +// DISPSTAT +#define REG_GX_DISPSTAT_VCOUNTER_SHIFT 7 +#define REG_GX_DISPSTAT_VCOUNTER_SIZE 9 +#define REG_GX_DISPSTAT_VCOUNTER_MASK 0xff80 + +#define REG_GX_DISPSTAT_VQI_SHIFT 5 +#define REG_GX_DISPSTAT_VQI_SIZE 1 +#define REG_GX_DISPSTAT_VQI_MASK 0x0020 + +#define REG_GX_DISPSTAT_HBI_SHIFT 4 +#define REG_GX_DISPSTAT_HBI_SIZE 1 +#define REG_GX_DISPSTAT_HBI_MASK 0x0010 + +#define REG_GX_DISPSTAT_VBI_SHIFT 3 +#define REG_GX_DISPSTAT_VBI_SIZE 1 +#define REG_GX_DISPSTAT_VBI_MASK 0x0008 + +#define REG_GX_DISPSTAT_LYC_SHIFT 2 +#define REG_GX_DISPSTAT_LYC_SIZE 1 +#define REG_GX_DISPSTAT_LYC_MASK 0x0004 + +#define REG_GX_DISPSTAT_HBLK_SHIFT 1 +#define REG_GX_DISPSTAT_HBLK_SIZE 1 +#define REG_GX_DISPSTAT_HBLK_MASK 0x0002 + +#define REG_GX_DISPSTAT_VBLK_SHIFT 0 +#define REG_GX_DISPSTAT_VBLK_SIZE 1 +#define REG_GX_DISPSTAT_VBLK_MASK 0x0001 + #endif //POKEDIAMOND_ARM9_REGISTERS_H diff --git a/arm9/lib/src/GX.c b/arm9/lib/src/GX.c index 57233492..688e41b7 100644 --- a/arm9/lib/src/GX.c +++ b/arm9/lib/src/GX.c @@ -1,6 +1,5 @@ #include "global.h" #include "gx.h" -#include "GXS_ioreg.h" u32 GXi_DmaId = 3; vu16 GXi_VRamLockId = 0; diff --git a/arm9/src/error_message_reset.c b/arm9/src/error_message_reset.c index 2a23d08b..07c285a4 100644 --- a/arm9/src/error_message_reset.c +++ b/arm9/src/error_message_reset.c @@ -1,6 +1,6 @@ #include "error_message_reset.h" #include "GX_layers.h" -#include "GXS_ioreg.h" +#include "gx.h" #include "unk_02031734.h" #include "unk_0202F150.h" #include "unk_02016B94.h" diff --git a/arm9/src/gf_gfx_loader.c b/arm9/src/gf_gfx_loader.c index 31dda0f3..769c90d9 100644 --- a/arm9/src/gf_gfx_loader.c +++ b/arm9/src/gf_gfx_loader.c @@ -1,7 +1,6 @@ #include "global.h"
#include "filesystem.h"
#include "NNS_g2d.h"
-#include "GXS_ioreg.h"
#include "gf_gfx_loader.h"
THUMB_FUNC u32 GfGfxLoader_LoadCharData(NarcId narcId, s32 memberNo, struct UnkStruct_02016B94_2 * unkStruct02016B94_2, u32 a3, u32 a4, u32 szByte, BOOL isCompressed, u32 heap_id)
|