Comment dma3 methods and create DMA3_*BIT macros

This commit is contained in:
PikalaxALT
2020-04-10 15:57:08 -04:00
parent b22d3a821d
commit a205881ce2
18 changed files with 87 additions and 68 deletions
+4 -4
View File
@@ -2257,8 +2257,8 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2)
if (!toBG_2)
{
RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(8)), 0x2000, 1);
RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(28)), 0x1000, 1);
RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(8)), 0x2000, DMA3_32BIT);
RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(28)), 0x1000, DMA3_32BIT);
sub_80752A0(&animBg);
CpuFill16(toBG_2, animBg.bgTiles, 0x1000);
CpuFill16(toBG_2, animBg.bgTilemap, 0x800);
@@ -2282,8 +2282,8 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2)
}
else
{
RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(12)), 0x2000, 1);
RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(30)), 0x1000, 1);
RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(12)), 0x2000, DMA3_32BIT);
RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(30)), 0x1000, DMA3_32BIT);
sub_80752C8(&animBg, 2);
CpuFill16(0, animBg.bgTiles + 0x1000, 0x1000);
CpuFill16(0, animBg.bgTilemap + 0x400, 0x800);
+1 -1
View File
@@ -2027,7 +2027,7 @@ void sub_80F15C8(u8 taskId)
break;
case 2:
spriteId = gBattlerSpriteIds[gBattleAnimAttacker];
RequestDma3Fill(0, (void *)OBJ_VRAM0 + gSprites[spriteId].oam.tileNum * TILE_SIZE_4BPP, 0x800, 1);
RequestDma3Fill(0, (void *)OBJ_VRAM0 + gSprites[spriteId].oam.tileNum * TILE_SIZE_4BPP, 0x800, DMA3_32BIT);
ClearBehindSubstituteBit(gBattleAnimAttacker);
DestroyAnimVisualTask(taskId);
break;
+3 -3
View File
@@ -180,7 +180,7 @@ u8 LoadBgVram(u8 bg, const void *src, u16 size, u16 destOffset, u8 mode)
offset = destOffset + offset;
cursor = RequestDma3Copy(src, (void*)(offset + BG_VRAM), size, 0);
cursor = RequestDma3Copy(src, (void*)(offset + BG_VRAM), size, DMA3_16BIT);
if (cursor == -1)
{
@@ -472,7 +472,7 @@ u16 Unused_LoadBgPalette(u8 bg, const void *src, u16 size, u16 destOffset)
if (IsInvalidBg32(bg) == FALSE)
{
paletteOffset = (sGpuBgConfigs2[bg].basePalette * 0x20) + (destOffset * 2);
cursor = RequestDma3Copy(src, (void*)(paletteOffset + BG_PLTT), size, 0);
cursor = RequestDma3Copy(src, (void*)(paletteOffset + BG_PLTT), size, DMA3_16BIT);
if (cursor == -1)
{
@@ -500,7 +500,7 @@ bool8 IsDma3ManagerBusyWithBgCopy(void)
if ((sDmaBusyBitfield[div] & (1 << mod)))
{
s8 reqSpace = CheckForSpaceForDma3Request(i);
s8 reqSpace = WaitDma3Request(i);
if (reqSpace == -1)
return TRUE;
sDmaBusyBitfield[div] &= ~(1 << mod);
+9 -14
View File
@@ -3,12 +3,7 @@
#define MAX_DMA_REQUESTS 128
#define DMA_REQUEST_COPY32 1
#define DMA_REQUEST_FILL32 2
#define DMA_REQUEST_COPY16 3
#define DMA_REQUEST_FILL16 4
static /*IWRAM_DATA*/ struct {
static struct {
/* 0x00 */ const u8 *src;
/* 0x04 */ u8 *dest;
/* 0x08 */ u16 size;
@@ -26,7 +21,7 @@ void ClearDma3Requests(void)
gDma3ManagerLocked = TRUE;
gDma3RequestCursor = 0;
for(i = 0; i < (u8)ARRAY_COUNT(gDma3Requests); i++)
for(i = 0; i < (u8)NELEMS(gDma3Requests); i++)
{
gDma3Requests[i].size = 0;
gDma3Requests[i].src = 0;
@@ -108,10 +103,10 @@ s16 RequestDma3Copy(const void *src, void *dest, u16 size, u8 mode)
gDma3Requests[cursor].dest = dest;
gDma3Requests[cursor].size = size;
if(mode == 1)
gDma3Requests[cursor].mode = mode;
if(mode == DMA3_32BIT)
gDma3Requests[cursor].mode = DMA_REQUEST_COPY32;
else
gDma3Requests[cursor].mode = 3;
gDma3Requests[cursor].mode = DMA_REQUEST_COPY16;
gDma3ManagerLocked = FALSE;
return (s16)cursor;
@@ -146,10 +141,10 @@ s16 RequestDma3Fill(s32 value, void *dest, u16 size, u8 mode)
gDma3Requests[cursor].mode = mode;
gDma3Requests[cursor].value = value;
if(mode == 1)
gDma3Requests[cursor].mode = 2;
if(mode == DMA3_32BIT)
gDma3Requests[cursor].mode = DMA_REQUEST_FILL32;
else
gDma3Requests[cursor].mode = 4;
gDma3Requests[cursor].mode = DMA_REQUEST_FILL16;
gDma3ManagerLocked = FALSE;
return (s16)cursor;
@@ -167,7 +162,7 @@ s16 RequestDma3Fill(s32 value, void *dest, u16 size, u8 mode)
return -1;
}
s16 CheckForSpaceForDma3Request(s16 index)
s16 WaitDma3Request(s16 index)
{
int current = 0;
+6 -6
View File
@@ -74,9 +74,9 @@ u8 RunHelpSystemCallback(void)
sVideoState.state = 2;
break;
case 2:
RequestDma3Fill(0, (void *)BG_CHAR_ADDR(3), BG_CHAR_SIZE, 0);
RequestDma3Copy(sPals, (void *)PLTT, sizeof(sPals), 0);
RequestDma3Copy(sTiles, gDecompressionBuffer + 0x3EE0, sizeof(sTiles), 0);
RequestDma3Fill(0, (void *)BG_CHAR_ADDR(3), BG_CHAR_SIZE, DMA3_16BIT);
RequestDma3Copy(sPals, (void *)PLTT, sizeof(sPals), DMA3_16BIT);
RequestDma3Copy(sTiles, gDecompressionBuffer + 0x3EE0, sizeof(sTiles), DMA3_16BIT);
sVideoState.state = 3;
break;
case 3:
@@ -160,7 +160,7 @@ void SaveMapGPURegs(void)
void SaveMapTiles(void)
{
RequestDma3Copy((void *)BG_CHAR_ADDR(3), sMapTilesBackup, BG_CHAR_SIZE, 0);
RequestDma3Copy((void *)BG_CHAR_ADDR(3), sMapTilesBackup, BG_CHAR_SIZE, DMA3_16BIT);
}
void SaveMapTextColors(void)
@@ -189,7 +189,7 @@ void RestoreGPURegs(void)
void RestoreMapTiles(void)
{
RequestDma3Copy(sMapTilesBackup, (void *)BG_CHAR_ADDR(3), BG_CHAR_SIZE, 0);
RequestDma3Copy(sMapTilesBackup, (void *)BG_CHAR_ADDR(3), BG_CHAR_SIZE, DMA3_16BIT);
}
void RestoreMapTextColors(void)
@@ -203,7 +203,7 @@ void RestoreMapTextColors(void)
void CommitTilemap(void)
{
RequestDma3Copy(gDecompressionBuffer, (void *)BG_CHAR_ADDR(3), BG_CHAR_SIZE, 0);
RequestDma3Copy(gDecompressionBuffer, (void *)BG_CHAR_ADDR(3), BG_CHAR_SIZE, DMA3_16BIT);
}
void HS_DrawBgTilemapRect(u16 baseTile, u8 left, u8 top, u8 width, u8 height, u16 increment)
+1 -1
View File
@@ -392,7 +392,7 @@ static void Task_PrintMainMenuText(u8 taskId)
static void Task_WaitDma3AndFadeIn(u8 taskId)
{
if (CheckForSpaceForDma3Request(-1) != -1)
if (WaitDma3Request(-1) != -1)
{
gTasks[taskId].func = Task_UpdateVisualSelection;
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0xFFFF);
+2 -2
View File
@@ -507,8 +507,8 @@ static struct Sprite * CreateMonMarkingSprite(u16 tileTag, u16 paletteTag, const
return NULL;
}
void sub_80BEBD0(u8 markings, void * dest)
void RequestDma3LoadMonMarking(u8 markings, void * dest)
{
RequestDma3Copy(&sMonMarkingsTiles[64 * markings], dest, 0x80, 1);
RequestDma3Copy(&sMonMarkingsTiles[64 * markings], dest, 0x80, DMA3_32BIT);
}
+1 -1
View File
@@ -299,7 +299,7 @@ void DecompressAndLoadBgGfxUsingHeap2(u8 bgId, const void *src, u32 size, u16 of
static void TaskFreeBufAfterCopyingTileDataToVram(u8 taskId)
{
if (!CheckForSpaceForDma3Request(gTasks[taskId].data[0]))
if (!WaitDma3Request(gTasks[taskId].data[0]))
{
Free((void *)GetWordTaskArg(taskId, 1));
DestroyTask(taskId);
+1 -1
View File
@@ -336,7 +336,7 @@ void InitPokemonSpecialAnimScene(struct PokemonSpecialAnimScene * buffer, u16 an
ChangeBgY(3, 0, 0);
SetBgTilemapBuffer(0, buffer->field_0914);
SetBgTilemapBuffer(3, buffer->field_1914);
RequestDma3Fill(0, (void *)BG_VRAM, 0x20, TRUE);
RequestDma3Fill(0, (void *)BG_VRAM, 0x20, DMA3_32BIT);
FillBgTilemapBufferRect_Palette0(0, 0x000, 0, 0, 32, 32);
LoadBgGfxByAnimType(animType);
FillWindowPixelBuffer(0, PIXEL_FILL(0));
+15 -15
View File
@@ -74,8 +74,8 @@ static void LoadPSSMenuGfx(void);
static bool8 InitPSSWindows(void);
static void LoadWaveformSpritePalette(void);
static void sub_808F078(void);
static void sub_808F0F4(void);
static void sub_808F164(void);
static void PSS_CreateMonMarkingSprite(void);
static void CreateWaveformSprites(void);
static void RefreshCursorMonData(void);
static void BoxSetMosaic(void);
static void SpriteCB_CursorMon_Mosaic(struct Sprite * sprite);
@@ -2158,22 +2158,22 @@ static void sub_808F078(void)
SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(1) | BGCNT_CHARBASE(1) | BGCNT_16COLOR | BGCNT_SCREENBASE(30));
LoadCursorMonSprite();
sub_808F0F4();
sub_808F164();
PSS_CreateMonMarkingSprite();
CreateWaveformSprites();
RefreshCursorMonData();
}
static void sub_808F0F4(void)
static void PSS_CreateMonMarkingSprite(void)
{
gPSSData->field_D94 = CreateMonMarkingSprite_AllOff(TAG_TILE_10, TAG_PAL_DAC8, NULL);
gPSSData->field_D94->oam.priority = 1;
gPSSData->field_D94->subpriority = 1;
gPSSData->field_D94->pos1.x = 40;
gPSSData->field_D94->pos1.y = 150;
gPSSData->field_DA0 = (void *)OBJ_VRAM0 + 32 * GetSpriteTileStartByTag(TAG_TILE_10);
gPSSData->monMarkingSprite = CreateMonMarkingSprite_AllOff(TAG_TILE_10, TAG_PAL_DAC8, NULL);
gPSSData->monMarkingSprite->oam.priority = 1;
gPSSData->monMarkingSprite->subpriority = 1;
gPSSData->monMarkingSprite->pos1.x = 40;
gPSSData->monMarkingSprite->pos1.y = 150;
gPSSData->monMarkingSpriteTileStart = (void *)OBJ_VRAM0 + 32 * GetSpriteTileStartByTag(TAG_TILE_10);
}
static void sub_808F164(void)
static void CreateWaveformSprites(void)
{
u16 i;
struct SpriteSheet sheet = sWaveformSpriteSheet;
@@ -2312,12 +2312,12 @@ static void PrintCursorMonInfo(void)
CopyWindowToVram(0, 2);
if (gPSSData->cursorMonSpecies != SPECIES_NONE)
{
sub_80BEBD0(gPSSData->cursorMonMarkings, gPSSData->field_DA0);
gPSSData->field_D94->invisible = FALSE;
RequestDma3LoadMonMarking(gPSSData->cursorMonMarkings, gPSSData->monMarkingSpriteTileStart);
gPSSData->monMarkingSprite->invisible = FALSE;
}
else
{
gPSSData->field_D94->invisible = TRUE;
gPSSData->monMarkingSprite->invisible = TRUE;
}
}
+2 -2
View File
@@ -996,10 +996,10 @@ static void sub_8091420(u8 taskId)
case 0:
gPSSData->field_2D2 = 0;
gPSSData->bg2_X = 0;
task->data[1] = RequestDma3Fill(0, gPSSData->field_4AC4, 0x1000, 1);
task->data[1] = RequestDma3Fill(0, gPSSData->field_4AC4, 0x1000, DMA3_32BIT);
break;
case 1:
if (CheckForSpaceForDma3Request(task->data[1]) == -1)
if (WaitDma3Request(task->data[1]) == -1)
return;
SetBgTilemapBuffer(2, gPSSData->field_4AC4);
+4 -4
View File
@@ -53,8 +53,8 @@ bool32 RunSaveFailedScreen(void)
sSaveFailedScreenState = 2;
break;
case 2:
RequestDma3Fill(0, (void *)BG_CHAR_ADDR(3), BG_CHAR_SIZE, 0);
RequestDma3Copy(sSaveFailedScreenPals, (void *)PLTT, 0x20, 0);
RequestDma3Fill(0, (void *)BG_CHAR_ADDR(3), BG_CHAR_SIZE, DMA3_16BIT);
RequestDma3Copy(sSaveFailedScreenPals, (void *)PLTT, 0x20, DMA3_16BIT);
sSaveFailedScreenState = 3;
break;
case 3:
@@ -118,12 +118,12 @@ static void BlankPalettes(void)
static void RequestDmaCopyFromScreenBuffer(void)
{
RequestDma3Copy(gDecompressionBuffer + 0x3800, (void *)BG_SCREEN_ADDR(31), 0x500, 0);
RequestDma3Copy(gDecompressionBuffer + 0x3800, (void *)BG_SCREEN_ADDR(31), 0x500, DMA3_16BIT);
}
static void RequestDmaCopyFromCharBuffer(void)
{
RequestDma3Copy(gDecompressionBuffer + 0x020, (void *)BG_CHAR_ADDR(3) + 0x20, 0x2300, 0);
RequestDma3Copy(gDecompressionBuffer + 0x020, (void *)BG_CHAR_ADDR(3) + 0x20, 0x2300, DMA3_16BIT);
}
static void FillBgMapBufferRect(u16 baseBlock, u8 left, u8 top, u8 width, u8 height, u16 blockOffset)
+3 -3
View File
@@ -1952,9 +1952,9 @@ static bool8 SlotsTask_GraphicsInit(u8 * state, struct SlotMachineSetupTaskData
SetVBlankCallback(NULL);
ResetSpriteData();
FreeAllSpritePalettes();
RequestDma3Fill(0, (void *)OAM, OAM_SIZE, 1);
RequestDma3Fill(0, (void *)VRAM, 0x20, 1);
RequestDma3Fill(0, (void *)(VRAM + 0xC000), 0x20, 1);
RequestDma3Fill(0, (void *)OAM, OAM_SIZE, DMA3_32BIT);
RequestDma3Fill(0, (void *)VRAM, 0x20, DMA3_32BIT);
RequestDma3Fill(0, (void *)(VRAM + 0xC000), 0x20, DMA3_32BIT);
SetGpuReg(REG_OFFSET_DISPCNT, 0);
ResetBgPositions();
ResetBgsAndClearDma3BusyFlags(FALSE);
+5 -5
View File
@@ -23,11 +23,11 @@ EWRAM_DATA struct MusicPlayerInfo* gMPlay_PokemonCry = NULL;
EWRAM_DATA u8 gPokemonCryBGMDuckingCounter = 0;
// iwram bss
/*IWRAM_DATA*/ static u16 sCurrentMapMusic;
/*IWRAM_DATA*/ static u16 sNextMapMusic;
/*IWRAM_DATA*/ static u8 sMapMusicState;
/*IWRAM_DATA*/ static u8 sMapMusicFadeInSpeed;
/*IWRAM_DATA*/ static u16 sFanfareCounter;
static u16 sCurrentMapMusic;
static u16 sNextMapMusic;
static u8 sMapMusicState;
static u8 sMapMusicFadeInSpeed;
static u16 sFanfareCounter;
// iwram common
bool8 gDisableMusic;
+2 -2
View File
@@ -1252,7 +1252,7 @@ static void SetBgTilemapWorkBuffers(void)
static void ClearBg0(void)
{
RequestDma3Fill(0, (void *)BG_CHAR_ADDR(0), 0x20, 1);
RequestDma3Fill(0, (void *)BG_CHAR_ADDR(0), 0x20, DMA3_32BIT);
FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 32, 32);
CopyBgTilemapBufferToVram(0);
}
@@ -1279,7 +1279,7 @@ static void LoadLinkMiscMenuGfx(void)
static void LoadBg1Pal8(void)
{
LoadPalette(sBg1Pal8, 0x80, 0x20);
RequestDma3Fill(0, (void *)BG_CHAR_ADDR(1) + 0x20, 0x20, 1);
RequestDma3Fill(0, (void *)BG_CHAR_ADDR(1) + 0x20, 0x20, DMA3_32BIT);
}
static void LoadWin0(void)