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
+25 -1
View File
@@ -6,6 +6,14 @@
// Maximum amount of data we will transfer in one operation // Maximum amount of data we will transfer in one operation
#define MAX_DMA_BLOCK_SIZE 0x1000 #define MAX_DMA_BLOCK_SIZE 0x1000
#define DMA_REQUEST_COPY32 1
#define DMA_REQUEST_FILL32 2
#define DMA_REQUEST_COPY16 3
#define DMA_REQUEST_FILL16 4
#define DMA3_16BIT 0
#define DMA3_32BIT 1
#define Dma3CopyLarge_(src, dest, size, bit) \ #define Dma3CopyLarge_(src, dest, size, bit) \
{ \ { \
const void *_src = src; \ const void *_src = src; \
@@ -48,10 +56,26 @@
#define Dma3FillLarge16_(value, dest, size) Dma3FillLarge_(value, dest, size, 16) #define Dma3FillLarge16_(value, dest, size) Dma3FillLarge_(value, dest, size, 16)
#define Dma3FillLarge32_(value, dest, size) Dma3FillLarge_(value, dest, size, 32) #define Dma3FillLarge32_(value, dest, size) Dma3FillLarge_(value, dest, size, 32)
// Cancel pending DMA3 requests
void ClearDma3Requests(void); void ClearDma3Requests(void);
// Handle pending DMA3 requests
void ProcessDma3Requests(void); void ProcessDma3Requests(void);
// Copy size bytes from src to dest.
// mode takes a DMA3_*BIT macro
// Returns the request index
s16 RequestDma3Copy(const void *src, void *dest, u16 size, u8 mode); s16 RequestDma3Copy(const void *src, void *dest, u16 size, u8 mode);
// Fill size bytes at dest with value.
// mode takes a DMA3_*BIT macro
// Returns the request index
s16 RequestDma3Fill(s32 value, void *dest, u16 size, u8 mode); s16 RequestDma3Fill(s32 value, void *dest, u16 size, u8 mode);
s16 CheckForSpaceForDma3Request(s16 index);
// index is the return value from RequestDma3*
// if index = -1, will check if any request is pending
// otherwise, checks if the specified request is pending
// Returns -1 if pending, 0 otherwise
s16 WaitDma3Request(s16 index);
#endif // GUARD_DMA3_H #endif // GUARD_DMA3_H
+1 -1
View File
@@ -28,6 +28,6 @@ void TeardownMonMarkingsMenu(void);
bool8 MonMarkingsHandleInput(void); bool8 MonMarkingsHandleInput(void);
struct Sprite * CreateMonMarkingSprite_SelectCombo(u16 tileTag, u16 paletteTag, const u16 *palette); struct Sprite * CreateMonMarkingSprite_SelectCombo(u16 tileTag, u16 paletteTag, const u16 *palette);
struct Sprite * CreateMonMarkingSprite_AllOff(u16 tileTag, u16 paletteTag, const u16 *palette); struct Sprite * CreateMonMarkingSprite_AllOff(u16 tileTag, u16 paletteTag, const u16 *palette);
void sub_80BEBD0(u8 markings, void * dest); void RequestDma3LoadMonMarking(u8 markings, void * dest);
#endif //GUARD_MON_MARKINGS_H #endif //GUARD_MON_MARKINGS_H
+2 -2
View File
@@ -335,9 +335,9 @@ struct PokemonStorageSystemData
/* 0d88 */ bool8 (*monPlaceChangeFunc)(void); /* 0d88 */ bool8 (*monPlaceChangeFunc)(void);
/* 0d8c */ u8 monPlaceChangeState; /* 0d8c */ u8 monPlaceChangeState;
/* 0d8d */ u8 field_D91; /* 0d8d */ u8 field_D91;
/* 0d90 */ struct Sprite *field_D94; /* 0d90 */ struct Sprite *monMarkingSprite;
/* 0d94 */ struct Sprite *field_D98[2]; /* 0d94 */ struct Sprite *field_D98[2];
/* 0d9c */ u16 *field_DA0; /* 0d9c */ u16 *monMarkingSpriteTileStart;
/* 0da0 */ struct PokemonMarkMenu field_DA4; /* 0da0 */ struct PokemonMarkMenu field_DA4;
/* 1e58 */ struct UnkPSSStruct_2002370 field_1E5C; /* 1e58 */ struct UnkPSSStruct_2002370 field_1E5C;
/* 20a0 */ struct Pokemon movingMon; /* 20a0 */ struct Pokemon movingMon;
+4 -4
View File
@@ -2257,8 +2257,8 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2)
if (!toBG_2) if (!toBG_2)
{ {
RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(8)), 0x2000, 1); RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(8)), 0x2000, DMA3_32BIT);
RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(28)), 0x1000, 1); RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(28)), 0x1000, DMA3_32BIT);
sub_80752A0(&animBg); sub_80752A0(&animBg);
CpuFill16(toBG_2, animBg.bgTiles, 0x1000); CpuFill16(toBG_2, animBg.bgTiles, 0x1000);
CpuFill16(toBG_2, animBg.bgTilemap, 0x800); CpuFill16(toBG_2, animBg.bgTilemap, 0x800);
@@ -2282,8 +2282,8 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2)
} }
else else
{ {
RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(12)), 0x2000, 1); RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(12)), 0x2000, DMA3_32BIT);
RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(30)), 0x1000, 1); RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(30)), 0x1000, DMA3_32BIT);
sub_80752C8(&animBg, 2); sub_80752C8(&animBg, 2);
CpuFill16(0, animBg.bgTiles + 0x1000, 0x1000); CpuFill16(0, animBg.bgTiles + 0x1000, 0x1000);
CpuFill16(0, animBg.bgTilemap + 0x400, 0x800); CpuFill16(0, animBg.bgTilemap + 0x400, 0x800);
+1 -1
View File
@@ -2027,7 +2027,7 @@ void sub_80F15C8(u8 taskId)
break; break;
case 2: case 2:
spriteId = gBattlerSpriteIds[gBattleAnimAttacker]; 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); ClearBehindSubstituteBit(gBattleAnimAttacker);
DestroyAnimVisualTask(taskId); DestroyAnimVisualTask(taskId);
break; 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; 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) if (cursor == -1)
{ {
@@ -472,7 +472,7 @@ u16 Unused_LoadBgPalette(u8 bg, const void *src, u16 size, u16 destOffset)
if (IsInvalidBg32(bg) == FALSE) if (IsInvalidBg32(bg) == FALSE)
{ {
paletteOffset = (sGpuBgConfigs2[bg].basePalette * 0x20) + (destOffset * 2); 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) if (cursor == -1)
{ {
@@ -500,7 +500,7 @@ bool8 IsDma3ManagerBusyWithBgCopy(void)
if ((sDmaBusyBitfield[div] & (1 << mod))) if ((sDmaBusyBitfield[div] & (1 << mod)))
{ {
s8 reqSpace = CheckForSpaceForDma3Request(i); s8 reqSpace = WaitDma3Request(i);
if (reqSpace == -1) if (reqSpace == -1)
return TRUE; return TRUE;
sDmaBusyBitfield[div] &= ~(1 << mod); sDmaBusyBitfield[div] &= ~(1 << mod);
+9 -14
View File
@@ -3,12 +3,7 @@
#define MAX_DMA_REQUESTS 128 #define MAX_DMA_REQUESTS 128
#define DMA_REQUEST_COPY32 1 static struct {
#define DMA_REQUEST_FILL32 2
#define DMA_REQUEST_COPY16 3
#define DMA_REQUEST_FILL16 4
static /*IWRAM_DATA*/ struct {
/* 0x00 */ const u8 *src; /* 0x00 */ const u8 *src;
/* 0x04 */ u8 *dest; /* 0x04 */ u8 *dest;
/* 0x08 */ u16 size; /* 0x08 */ u16 size;
@@ -26,7 +21,7 @@ void ClearDma3Requests(void)
gDma3ManagerLocked = TRUE; gDma3ManagerLocked = TRUE;
gDma3RequestCursor = 0; 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].size = 0;
gDma3Requests[i].src = 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].dest = dest;
gDma3Requests[cursor].size = size; gDma3Requests[cursor].size = size;
if(mode == 1) if(mode == DMA3_32BIT)
gDma3Requests[cursor].mode = mode; gDma3Requests[cursor].mode = DMA_REQUEST_COPY32;
else else
gDma3Requests[cursor].mode = 3; gDma3Requests[cursor].mode = DMA_REQUEST_COPY16;
gDma3ManagerLocked = FALSE; gDma3ManagerLocked = FALSE;
return (s16)cursor; return (s16)cursor;
@@ -146,10 +141,10 @@ s16 RequestDma3Fill(s32 value, void *dest, u16 size, u8 mode)
gDma3Requests[cursor].mode = mode; gDma3Requests[cursor].mode = mode;
gDma3Requests[cursor].value = value; gDma3Requests[cursor].value = value;
if(mode == 1) if(mode == DMA3_32BIT)
gDma3Requests[cursor].mode = 2; gDma3Requests[cursor].mode = DMA_REQUEST_FILL32;
else else
gDma3Requests[cursor].mode = 4; gDma3Requests[cursor].mode = DMA_REQUEST_FILL16;
gDma3ManagerLocked = FALSE; gDma3ManagerLocked = FALSE;
return (s16)cursor; return (s16)cursor;
@@ -167,7 +162,7 @@ s16 RequestDma3Fill(s32 value, void *dest, u16 size, u8 mode)
return -1; return -1;
} }
s16 CheckForSpaceForDma3Request(s16 index) s16 WaitDma3Request(s16 index)
{ {
int current = 0; int current = 0;
+6 -6
View File
@@ -74,9 +74,9 @@ u8 RunHelpSystemCallback(void)
sVideoState.state = 2; sVideoState.state = 2;
break; break;
case 2: case 2:
RequestDma3Fill(0, (void *)BG_CHAR_ADDR(3), BG_CHAR_SIZE, 0); RequestDma3Fill(0, (void *)BG_CHAR_ADDR(3), BG_CHAR_SIZE, DMA3_16BIT);
RequestDma3Copy(sPals, (void *)PLTT, sizeof(sPals), 0); RequestDma3Copy(sPals, (void *)PLTT, sizeof(sPals), DMA3_16BIT);
RequestDma3Copy(sTiles, gDecompressionBuffer + 0x3EE0, sizeof(sTiles), 0); RequestDma3Copy(sTiles, gDecompressionBuffer + 0x3EE0, sizeof(sTiles), DMA3_16BIT);
sVideoState.state = 3; sVideoState.state = 3;
break; break;
case 3: case 3:
@@ -160,7 +160,7 @@ void SaveMapGPURegs(void)
void SaveMapTiles(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) void SaveMapTextColors(void)
@@ -189,7 +189,7 @@ void RestoreGPURegs(void)
void RestoreMapTiles(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) void RestoreMapTextColors(void)
@@ -203,7 +203,7 @@ void RestoreMapTextColors(void)
void CommitTilemap(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) 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) static void Task_WaitDma3AndFadeIn(u8 taskId)
{ {
if (CheckForSpaceForDma3Request(-1) != -1) if (WaitDma3Request(-1) != -1)
{ {
gTasks[taskId].func = Task_UpdateVisualSelection; gTasks[taskId].func = Task_UpdateVisualSelection;
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0xFFFF); 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; 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) static void TaskFreeBufAfterCopyingTileDataToVram(u8 taskId)
{ {
if (!CheckForSpaceForDma3Request(gTasks[taskId].data[0])) if (!WaitDma3Request(gTasks[taskId].data[0]))
{ {
Free((void *)GetWordTaskArg(taskId, 1)); Free((void *)GetWordTaskArg(taskId, 1));
DestroyTask(taskId); DestroyTask(taskId);
+1 -1
View File
@@ -336,7 +336,7 @@ void InitPokemonSpecialAnimScene(struct PokemonSpecialAnimScene * buffer, u16 an
ChangeBgY(3, 0, 0); ChangeBgY(3, 0, 0);
SetBgTilemapBuffer(0, buffer->field_0914); SetBgTilemapBuffer(0, buffer->field_0914);
SetBgTilemapBuffer(3, buffer->field_1914); 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); FillBgTilemapBufferRect_Palette0(0, 0x000, 0, 0, 32, 32);
LoadBgGfxByAnimType(animType); LoadBgGfxByAnimType(animType);
FillWindowPixelBuffer(0, PIXEL_FILL(0)); FillWindowPixelBuffer(0, PIXEL_FILL(0));
+15 -15
View File
@@ -74,8 +74,8 @@ static void LoadPSSMenuGfx(void);
static bool8 InitPSSWindows(void); static bool8 InitPSSWindows(void);
static void LoadWaveformSpritePalette(void); static void LoadWaveformSpritePalette(void);
static void sub_808F078(void); static void sub_808F078(void);
static void sub_808F0F4(void); static void PSS_CreateMonMarkingSprite(void);
static void sub_808F164(void); static void CreateWaveformSprites(void);
static void RefreshCursorMonData(void); static void RefreshCursorMonData(void);
static void BoxSetMosaic(void); static void BoxSetMosaic(void);
static void SpriteCB_CursorMon_Mosaic(struct Sprite * sprite); 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)); SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(1) | BGCNT_CHARBASE(1) | BGCNT_16COLOR | BGCNT_SCREENBASE(30));
LoadCursorMonSprite(); LoadCursorMonSprite();
sub_808F0F4(); PSS_CreateMonMarkingSprite();
sub_808F164(); CreateWaveformSprites();
RefreshCursorMonData(); RefreshCursorMonData();
} }
static void sub_808F0F4(void) static void PSS_CreateMonMarkingSprite(void)
{ {
gPSSData->field_D94 = CreateMonMarkingSprite_AllOff(TAG_TILE_10, TAG_PAL_DAC8, NULL); gPSSData->monMarkingSprite = CreateMonMarkingSprite_AllOff(TAG_TILE_10, TAG_PAL_DAC8, NULL);
gPSSData->field_D94->oam.priority = 1; gPSSData->monMarkingSprite->oam.priority = 1;
gPSSData->field_D94->subpriority = 1; gPSSData->monMarkingSprite->subpriority = 1;
gPSSData->field_D94->pos1.x = 40; gPSSData->monMarkingSprite->pos1.x = 40;
gPSSData->field_D94->pos1.y = 150; gPSSData->monMarkingSprite->pos1.y = 150;
gPSSData->field_DA0 = (void *)OBJ_VRAM0 + 32 * GetSpriteTileStartByTag(TAG_TILE_10); gPSSData->monMarkingSpriteTileStart = (void *)OBJ_VRAM0 + 32 * GetSpriteTileStartByTag(TAG_TILE_10);
} }
static void sub_808F164(void) static void CreateWaveformSprites(void)
{ {
u16 i; u16 i;
struct SpriteSheet sheet = sWaveformSpriteSheet; struct SpriteSheet sheet = sWaveformSpriteSheet;
@@ -2312,12 +2312,12 @@ static void PrintCursorMonInfo(void)
CopyWindowToVram(0, 2); CopyWindowToVram(0, 2);
if (gPSSData->cursorMonSpecies != SPECIES_NONE) if (gPSSData->cursorMonSpecies != SPECIES_NONE)
{ {
sub_80BEBD0(gPSSData->cursorMonMarkings, gPSSData->field_DA0); RequestDma3LoadMonMarking(gPSSData->cursorMonMarkings, gPSSData->monMarkingSpriteTileStart);
gPSSData->field_D94->invisible = FALSE; gPSSData->monMarkingSprite->invisible = FALSE;
} }
else 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: case 0:
gPSSData->field_2D2 = 0; gPSSData->field_2D2 = 0;
gPSSData->bg2_X = 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; break;
case 1: case 1:
if (CheckForSpaceForDma3Request(task->data[1]) == -1) if (WaitDma3Request(task->data[1]) == -1)
return; return;
SetBgTilemapBuffer(2, gPSSData->field_4AC4); SetBgTilemapBuffer(2, gPSSData->field_4AC4);
+4 -4
View File
@@ -53,8 +53,8 @@ bool32 RunSaveFailedScreen(void)
sSaveFailedScreenState = 2; sSaveFailedScreenState = 2;
break; break;
case 2: case 2:
RequestDma3Fill(0, (void *)BG_CHAR_ADDR(3), BG_CHAR_SIZE, 0); RequestDma3Fill(0, (void *)BG_CHAR_ADDR(3), BG_CHAR_SIZE, DMA3_16BIT);
RequestDma3Copy(sSaveFailedScreenPals, (void *)PLTT, 0x20, 0); RequestDma3Copy(sSaveFailedScreenPals, (void *)PLTT, 0x20, DMA3_16BIT);
sSaveFailedScreenState = 3; sSaveFailedScreenState = 3;
break; break;
case 3: case 3:
@@ -118,12 +118,12 @@ static void BlankPalettes(void)
static void RequestDmaCopyFromScreenBuffer(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) 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) 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); SetVBlankCallback(NULL);
ResetSpriteData(); ResetSpriteData();
FreeAllSpritePalettes(); FreeAllSpritePalettes();
RequestDma3Fill(0, (void *)OAM, OAM_SIZE, 1); RequestDma3Fill(0, (void *)OAM, OAM_SIZE, DMA3_32BIT);
RequestDma3Fill(0, (void *)VRAM, 0x20, 1); RequestDma3Fill(0, (void *)VRAM, 0x20, DMA3_32BIT);
RequestDma3Fill(0, (void *)(VRAM + 0xC000), 0x20, 1); RequestDma3Fill(0, (void *)(VRAM + 0xC000), 0x20, DMA3_32BIT);
SetGpuReg(REG_OFFSET_DISPCNT, 0); SetGpuReg(REG_OFFSET_DISPCNT, 0);
ResetBgPositions(); ResetBgPositions();
ResetBgsAndClearDma3BusyFlags(FALSE); ResetBgsAndClearDma3BusyFlags(FALSE);
+5 -5
View File
@@ -23,11 +23,11 @@ EWRAM_DATA struct MusicPlayerInfo* gMPlay_PokemonCry = NULL;
EWRAM_DATA u8 gPokemonCryBGMDuckingCounter = 0; EWRAM_DATA u8 gPokemonCryBGMDuckingCounter = 0;
// iwram bss // iwram bss
/*IWRAM_DATA*/ static u16 sCurrentMapMusic; static u16 sCurrentMapMusic;
/*IWRAM_DATA*/ static u16 sNextMapMusic; static u16 sNextMapMusic;
/*IWRAM_DATA*/ static u8 sMapMusicState; static u8 sMapMusicState;
/*IWRAM_DATA*/ static u8 sMapMusicFadeInSpeed; static u8 sMapMusicFadeInSpeed;
/*IWRAM_DATA*/ static u16 sFanfareCounter; static u16 sFanfareCounter;
// iwram common // iwram common
bool8 gDisableMusic; bool8 gDisableMusic;
+2 -2
View File
@@ -1252,7 +1252,7 @@ static void SetBgTilemapWorkBuffers(void)
static void ClearBg0(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); FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 32, 32);
CopyBgTilemapBufferToVram(0); CopyBgTilemapBufferToVram(0);
} }
@@ -1279,7 +1279,7 @@ static void LoadLinkMiscMenuGfx(void)
static void LoadBg1Pal8(void) static void LoadBg1Pal8(void)
{ {
LoadPalette(sBg1Pal8, 0x80, 0x20); 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) static void LoadWin0(void)