mirror of
https://github.com/zeldaret/mm.git
synced 2026-09-03 18:03:40 -04:00
Dmadata Migration (#1526)
* Matching dmatable * Generate NON_MATCHING dmadata * Clean up dmamgr * Format * Ignore tools/buildtools/mkdmadata * Warnings * Use SYMS flag instead of segment name * PR + more notes * PR cleanups
This commit is contained in:
@@ -80,7 +80,7 @@ void AudioMgr_ThreadEntry(void* arg) {
|
||||
s32 exit;
|
||||
|
||||
Audio_Init();
|
||||
AudioLoad_SetDmaHandler(DmaMgr_DmaHandler);
|
||||
AudioLoad_SetDmaHandler(DmaMgr_AudioDmaHandler);
|
||||
Audio_InitSound();
|
||||
osSendMesg(&audioMgr->lockQueue, NULL, OS_MESG_BLOCK);
|
||||
IrqMgr_AddClient(audioMgr->irqMgr, &irqClient, &audioMgr->interruptQueue);
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
#include "prevent_bss_reordering.h"
|
||||
#include "z64.h"
|
||||
#include "regs.h"
|
||||
#include "functions.h"
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
#include "global.h"
|
||||
#include "libc64/malloc.h"
|
||||
|
||||
#include "yaz0.h"
|
||||
#include "z64dma.h"
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ union {
|
||||
u32 dmaWord[2];
|
||||
|
||||
@@ -71,7 +71,7 @@ void Check_ClearRGBA16(u16* buffer) {
|
||||
* Draw error message textures directly to a screen buffer at the end of normal RDRAM
|
||||
*/
|
||||
void Check_DrawExpansionPakErrorMessage(void) {
|
||||
DmaMgr_SendRequest0(CHECK_ERRMSG_STATIC_SEGMENT, SEGMENT_ROM_START(memerrmsg), SEGMENT_SIZE(memerrmsg));
|
||||
DmaMgr_RequestSync(CHECK_ERRMSG_STATIC_SEGMENT, SEGMENT_ROM_START(memerrmsg), SEGMENT_SIZE(memerrmsg));
|
||||
Check_ClearRGBA16((u16*)FAULT_FB_ADDRESS);
|
||||
Check_DrawI4Texture((u16*)FAULT_FB_ADDRESS, 96, 71, MEMERRMSG_WIDTH, MEMERRMSG_HEIGHT, CHECK_ERRMSG_STATIC_SEGMENT);
|
||||
Check_DrawI4Texture((u16*)FAULT_FB_ADDRESS, 96, 127, MEMERRMSG_WIDTH, MEMERRMSG_HEIGHT,
|
||||
@@ -85,7 +85,7 @@ void Check_DrawExpansionPakErrorMessage(void) {
|
||||
* Draw error message texture directly to a screen buffer at the end of normal RDRAM
|
||||
*/
|
||||
void Check_DrawRegionLockErrorMessage(void) {
|
||||
DmaMgr_SendRequest0(CHECK_ERRMSG_STATIC_SEGMENT, SEGMENT_ROM_START(locerrmsg), SEGMENT_SIZE(locerrmsg));
|
||||
DmaMgr_RequestSync(CHECK_ERRMSG_STATIC_SEGMENT, SEGMENT_ROM_START(locerrmsg), SEGMENT_SIZE(locerrmsg));
|
||||
Check_ClearRGBA16((u16*)FAULT_FB_ADDRESS);
|
||||
Check_DrawI4Texture((u16*)FAULT_FB_ADDRESS, 56, 112, LOCERRMSG_WIDTH, LOCERRMSG_HEIGHT,
|
||||
CHECK_ERRMSG_STATIC_SEGMENT);
|
||||
|
||||
@@ -8,15 +8,14 @@ void Font_LoadCharNES(PlayState* play, u8 codePointIndex, s32 offset) {
|
||||
MessageContext* msgCtx = &play->msgCtx;
|
||||
Font* font = &msgCtx->font;
|
||||
|
||||
DmaMgr_SendRequest0(&font->charBuf[font->unk_11D88][offset],
|
||||
SEGMENT_ROM_START_OFFSET(nes_font_static, (codePointIndex - ' ') * FONT_CHAR_TEX_SIZE),
|
||||
FONT_CHAR_TEX_SIZE);
|
||||
DmaMgr_RequestSync(&font->charBuf[font->unk_11D88][offset],
|
||||
SEGMENT_ROM_START_OFFSET(nes_font_static, (codePointIndex - ' ') * FONT_CHAR_TEX_SIZE),
|
||||
FONT_CHAR_TEX_SIZE);
|
||||
}
|
||||
|
||||
void Font_LoadMessageBoxEndIcon(Font* font, u16 icon) {
|
||||
DmaMgr_SendRequest0(&font->iconBuf,
|
||||
SEGMENT_ROM_START_OFFSET(message_static, 5 * 0x1000 + icon * FONT_CHAR_TEX_SIZE),
|
||||
FONT_CHAR_TEX_SIZE);
|
||||
DmaMgr_RequestSync(&font->iconBuf, SEGMENT_ROM_START_OFFSET(message_static, 5 * 0x1000 + icon * FONT_CHAR_TEX_SIZE),
|
||||
FONT_CHAR_TEX_SIZE);
|
||||
}
|
||||
|
||||
static u8 sFontOrdering[] = {
|
||||
@@ -39,7 +38,7 @@ void Font_LoadOrderedFont(Font* font) {
|
||||
loadOffset = 0;
|
||||
}
|
||||
|
||||
DmaMgr_SendRequest0(writeLocation, SEGMENT_ROM_START(nes_font_static) + loadOffset, FONT_CHAR_TEX_SIZE);
|
||||
DmaMgr_RequestSync(writeLocation, SEGMENT_ROM_START(nes_font_static) + loadOffset, FONT_CHAR_TEX_SIZE);
|
||||
if (sFontOrdering[codePointIndex] == 0x8C) {
|
||||
break;
|
||||
}
|
||||
|
||||
+4
-4
@@ -1084,8 +1084,8 @@ void Environment_UpdateSkybox(u8 skyboxId, EnvironmentContext* envCtx, SkyboxCon
|
||||
envCtx->skyboxDmaState = SKYBOX_DMA_TEXTURE1_START;
|
||||
size = sNormalSkyFiles[skybox1Index].file.vromEnd - sNormalSkyFiles[skybox1Index].file.vromStart;
|
||||
osCreateMesgQueue(&envCtx->loadQueue, envCtx->loadMsg, ARRAY_COUNT(envCtx->loadMsg));
|
||||
DmaMgr_SendRequestImpl(&envCtx->dmaRequest, skyboxCtx->staticSegments[0],
|
||||
sNormalSkyFiles[skybox1Index].file.vromStart, size, 0, &envCtx->loadQueue, NULL);
|
||||
DmaMgr_RequestAsync(&envCtx->dmaRequest, skyboxCtx->staticSegments[0],
|
||||
sNormalSkyFiles[skybox1Index].file.vromStart, size, 0, &envCtx->loadQueue, NULL);
|
||||
envCtx->skybox1Index = skybox1Index;
|
||||
}
|
||||
|
||||
@@ -1093,8 +1093,8 @@ void Environment_UpdateSkybox(u8 skyboxId, EnvironmentContext* envCtx, SkyboxCon
|
||||
envCtx->skyboxDmaState = SKYBOX_DMA_TEXTURE2_START;
|
||||
size = sNormalSkyFiles[skybox2Index].file.vromEnd - sNormalSkyFiles[skybox2Index].file.vromStart;
|
||||
osCreateMesgQueue(&envCtx->loadQueue, envCtx->loadMsg, ARRAY_COUNT(envCtx->loadMsg));
|
||||
DmaMgr_SendRequestImpl(&envCtx->dmaRequest, skyboxCtx->staticSegments[1],
|
||||
sNormalSkyFiles[skybox2Index].file.vromStart, size, 0, &envCtx->loadQueue, NULL);
|
||||
DmaMgr_RequestAsync(&envCtx->dmaRequest, skyboxCtx->staticSegments[1],
|
||||
sNormalSkyFiles[skybox2Index].file.vromStart, size, 0, &envCtx->loadQueue, NULL);
|
||||
envCtx->skybox2Index = skybox2Index;
|
||||
}
|
||||
|
||||
|
||||
+16
-16
@@ -2270,9 +2270,9 @@ void Message_Decode(PlayState* play) {
|
||||
decodedBufPos += playerNameLen - 1;
|
||||
spC0 += playerNameLen * (16.0f * msgCtx->textCharScale);
|
||||
} else if (curChar == 0x201) {
|
||||
DmaMgr_SendRequest0(msgCtx->textboxSegment + 0x1000, SEGMENT_ROM_START(message_texture_static), 0x900);
|
||||
DmaMgr_SendRequest0(msgCtx->textboxSegment + 0x1900, SEGMENT_ROM_START(message_texture_static) + 0x900,
|
||||
0x900);
|
||||
DmaMgr_RequestSync(msgCtx->textboxSegment + 0x1000, SEGMENT_ROM_START(message_texture_static), 0x900);
|
||||
DmaMgr_RequestSync(msgCtx->textboxSegment + 0x1900, SEGMENT_ROM_START(message_texture_static) + 0x900,
|
||||
0x900);
|
||||
numLines = 2;
|
||||
spD2 = 2;
|
||||
msgCtx->unk12012 = msgCtx->textboxY + 8;
|
||||
@@ -3038,8 +3038,8 @@ void func_80150A84(PlayState* play) {
|
||||
s32 textBoxType = msgCtx->textBoxType;
|
||||
|
||||
if (D_801CFC78[textBoxType] != 14) {
|
||||
DmaMgr_SendRequest0(msgCtx->textboxSegment,
|
||||
SEGMENT_ROM_START(message_static) + D_801CFC78[textBoxType] * 0x1000, 0x1000);
|
||||
DmaMgr_RequestSync(msgCtx->textboxSegment, SEGMENT_ROM_START(message_static) + D_801CFC78[textBoxType] * 0x1000,
|
||||
0x1000);
|
||||
|
||||
if (!play->pauseCtx.bombersNotebookOpen) {
|
||||
if ((textBoxType == TEXTBOX_TYPE_0) || (textBoxType == TEXTBOX_TYPE_6) || (textBoxType == TEXTBOX_TYPE_A) ||
|
||||
@@ -3166,18 +3166,18 @@ void Message_OpenText(PlayState* play, u16 textId) {
|
||||
if (msgCtx->textIsCredits) {
|
||||
Message_FindCreditsMessage(play, textId);
|
||||
msgCtx->msgLength = font->messageEnd;
|
||||
DmaMgr_SendRequest0(&font->msgBuf, SEGMENT_ROM_START(staff_message_data_static) + font->messageStart,
|
||||
font->messageEnd);
|
||||
DmaMgr_RequestSync(&font->msgBuf, SEGMENT_ROM_START(staff_message_data_static) + font->messageStart,
|
||||
font->messageEnd);
|
||||
} else if (gSaveContext.options.language == LANGUAGE_JPN) {
|
||||
Message_FindMessage(play, textId);
|
||||
msgCtx->msgLength = font->messageEnd;
|
||||
DmaMgr_SendRequest0(&font->msgBuf, SEGMENT_ROM_START(message_data_static) + font->messageStart,
|
||||
font->messageEnd);
|
||||
DmaMgr_RequestSync(&font->msgBuf, SEGMENT_ROM_START(message_data_static) + font->messageStart,
|
||||
font->messageEnd);
|
||||
} else {
|
||||
Message_FindMessageNES(play, textId);
|
||||
msgCtx->msgLength = font->messageEnd;
|
||||
DmaMgr_SendRequest0(&font->msgBuf, SEGMENT_ROM_START(message_data_static) + font->messageStart,
|
||||
font->messageEnd);
|
||||
DmaMgr_RequestSync(&font->msgBuf, SEGMENT_ROM_START(message_data_static) + font->messageStart,
|
||||
font->messageEnd);
|
||||
}
|
||||
|
||||
msgCtx->choiceNum = 0;
|
||||
@@ -3265,13 +3265,13 @@ void func_801514B0(PlayState* play, u16 arg1, u8 arg2) {
|
||||
if (gSaveContext.options.language == LANGUAGE_JPN) {
|
||||
Message_FindMessage(play, arg1);
|
||||
msgCtx->msgLength = font->messageEnd;
|
||||
DmaMgr_SendRequest0(&font->msgBuf, SEGMENT_ROM_START(message_data_static) + font->messageStart,
|
||||
font->messageEnd);
|
||||
DmaMgr_RequestSync(&font->msgBuf, SEGMENT_ROM_START(message_data_static) + font->messageStart,
|
||||
font->messageEnd);
|
||||
} else {
|
||||
Message_FindMessageNES(play, arg1);
|
||||
msgCtx->msgLength = font->messageEnd;
|
||||
DmaMgr_SendRequest0(&font->msgBuf, SEGMENT_ROM_START(message_data_static) + font->messageStart,
|
||||
font->messageEnd);
|
||||
DmaMgr_RequestSync(&font->msgBuf, SEGMENT_ROM_START(message_data_static) + font->messageStart,
|
||||
font->messageEnd);
|
||||
}
|
||||
msgCtx->choiceNum = 0;
|
||||
msgCtx->textUnskippable = false;
|
||||
@@ -3285,7 +3285,7 @@ void func_801514B0(PlayState* play, u16 arg1, u8 arg2) {
|
||||
msgCtx->textBoxPos = arg2;
|
||||
msgCtx->unk11F0C = msgCtx->unk11F08 & 0xF;
|
||||
msgCtx->textUnskippable = true;
|
||||
DmaMgr_SendRequest0(msgCtx->textboxSegment, SEGMENT_ROM_START(message_static) + (D_801CFC78[0] << 12), 0x1000);
|
||||
DmaMgr_RequestSync(msgCtx->textboxSegment, SEGMENT_ROM_START(message_static) + (D_801CFC78[0] << 12), 0x1000);
|
||||
msgCtx->textboxColorRed = 0;
|
||||
msgCtx->textboxColorGreen = 0;
|
||||
msgCtx->textboxColorBlue = 0;
|
||||
|
||||
@@ -1084,9 +1084,9 @@ void Message_DecodeNES(PlayState* play) {
|
||||
}
|
||||
decodedBufPos--;
|
||||
} else if (curChar == 0xC1) {
|
||||
DmaMgr_SendRequest0(msgCtx->textboxSegment + 0x1000, SEGMENT_ROM_START(message_texture_static), 0x900);
|
||||
DmaMgr_SendRequest0(msgCtx->textboxSegment + 0x1900, SEGMENT_ROM_START(message_texture_static) + 0x900,
|
||||
0x900);
|
||||
DmaMgr_RequestSync(msgCtx->textboxSegment + 0x1000, SEGMENT_ROM_START(message_texture_static), 0x900);
|
||||
DmaMgr_RequestSync(msgCtx->textboxSegment + 0x1900, SEGMENT_ROM_START(message_texture_static) + 0x900,
|
||||
0x900);
|
||||
numLines = 2;
|
||||
spC6 = 2;
|
||||
msgCtx->unk12012 = msgCtx->textboxY + 8;
|
||||
|
||||
@@ -627,10 +627,10 @@ void Message_DecodeCredits(PlayState* play) {
|
||||
msgCtx->decodedBuffer.schar[++decodedBufPos] = font->msgBuf.schar[msgCtx->msgBufPos + 1];
|
||||
Message_LoadItemIcon(play, font->msgBuf.schar[msgCtx->msgBufPos + 1], msgCtx->textboxY + 10);
|
||||
} else if (curChar == 0x15) {
|
||||
DmaMgr_SendRequest0(msgCtx->textboxSegment + 0x1000,
|
||||
(uintptr_t)SEGMENT_ROM_START(message_texture_static) + 0x900, 0x900);
|
||||
DmaMgr_SendRequest0(msgCtx->textboxSegment + 0x1900,
|
||||
(uintptr_t)SEGMENT_ROM_START(message_texture_static) + 0x900, 0x900);
|
||||
DmaMgr_RequestSync(msgCtx->textboxSegment + 0x1000,
|
||||
(uintptr_t)SEGMENT_ROM_START(message_texture_static) + 0x900, 0x900);
|
||||
DmaMgr_RequestSync(msgCtx->textboxSegment + 0x1900,
|
||||
(uintptr_t)SEGMENT_ROM_START(message_texture_static) + 0x900, 0x900);
|
||||
msgCtx->msgBufPos += 3;
|
||||
msgCtx->unk12012 = msgCtx->textboxY + 8;
|
||||
numLines = 2;
|
||||
|
||||
@@ -919,8 +919,8 @@ void Interface_NewDay(PlayState* play, s32 day) {
|
||||
}
|
||||
|
||||
// Loads day number from week_static for the three-day clock
|
||||
DmaMgr_SendRequest0((void*)(play->interfaceCtx.doActionSegment + 0x780),
|
||||
SEGMENT_ROM_START_OFFSET(week_static, i * 0x510), 0x510);
|
||||
DmaMgr_RequestSync((void*)(play->interfaceCtx.doActionSegment + 0x780),
|
||||
SEGMENT_ROM_START_OFFSET(week_static, i * 0x510), 0x510);
|
||||
|
||||
// i is used to store sceneId
|
||||
for (i = 0; i < ARRAY_COUNT(gSaveContext.save.saveInfo.permanentSceneFlags); i++) {
|
||||
@@ -6586,8 +6586,8 @@ void Interface_LoadStory(PlayState* play, s32 osMesgFlag) {
|
||||
break;
|
||||
}
|
||||
osCreateMesgQueue(&interfaceCtx->storyMsgQueue, &interfaceCtx->storyMsgBuf, 1);
|
||||
DmaMgr_SendRequestImpl(&interfaceCtx->dmaRequest, interfaceCtx->storySegment, interfaceCtx->storyAddr,
|
||||
interfaceCtx->storySize, 0, &interfaceCtx->storyMsgQueue, NULL);
|
||||
DmaMgr_RequestAsync(&interfaceCtx->dmaRequest, interfaceCtx->storySegment, interfaceCtx->storyAddr,
|
||||
interfaceCtx->storySize, 0, &interfaceCtx->storyMsgQueue, NULL);
|
||||
interfaceCtx->storyDmaStatus = STORY_DMA_LOADING;
|
||||
// fallthrough
|
||||
case STORY_DMA_LOADING:
|
||||
@@ -7121,12 +7121,11 @@ void Interface_Init(PlayState* play) {
|
||||
|
||||
parameterStaticSize = SEGMENT_ROM_SIZE(parameter_static);
|
||||
interfaceCtx->parameterSegment = THA_AllocTailAlign16(&play->state.tha, parameterStaticSize);
|
||||
DmaMgr_SendRequest0(interfaceCtx->parameterSegment, SEGMENT_ROM_START(parameter_static), parameterStaticSize);
|
||||
DmaMgr_RequestSync(interfaceCtx->parameterSegment, SEGMENT_ROM_START(parameter_static), parameterStaticSize);
|
||||
|
||||
interfaceCtx->doActionSegment = THA_AllocTailAlign16(&play->state.tha, 0xC90);
|
||||
DmaMgr_SendRequest0(interfaceCtx->doActionSegment, SEGMENT_ROM_START(do_action_static), 0x300);
|
||||
DmaMgr_SendRequest0(interfaceCtx->doActionSegment + 0x300, SEGMENT_ROM_START_OFFSET(do_action_static, 0x480),
|
||||
0x180);
|
||||
DmaMgr_RequestSync(interfaceCtx->doActionSegment, SEGMENT_ROM_START(do_action_static), 0x300);
|
||||
DmaMgr_RequestSync(interfaceCtx->doActionSegment + 0x300, SEGMENT_ROM_START_OFFSET(do_action_static, 0x480), 0x180);
|
||||
|
||||
Interface_NewDay(play, CURRENT_DAY);
|
||||
|
||||
|
||||
+1
-1
@@ -1554,7 +1554,7 @@ void* Play_LoadFile(PlayState* this, RomFile* entry) {
|
||||
size_t size = entry->vromEnd - entry->vromStart;
|
||||
void* allocp = THA_AllocTailAlign16(&this->state.tha, size);
|
||||
|
||||
DmaMgr_SendRequest0(allocp, entry->vromStart, size);
|
||||
DmaMgr_RequestSync(allocp, entry->vromStart, size);
|
||||
|
||||
return allocp;
|
||||
}
|
||||
|
||||
@@ -1106,8 +1106,8 @@ void BombersNotebook_LoadFiles(BombersNotebook* this, s32 flag) {
|
||||
}
|
||||
CmpDma_LoadAllFiles(this->scheduleDmaSegmentStart, this->scheduleDmaSegment, this->scheduleDmaSegmentSize);
|
||||
osCreateMesgQueue(&this->loadQueue, this->loadMsg, ARRAY_COUNT(this->loadMsg));
|
||||
DmaMgr_SendRequestImpl(&this->dmaRequest, this->scheduleSegment, this->scheduleSegmentStart,
|
||||
this->scheduleSegmentSize, 0, &this->loadQueue, NULL);
|
||||
DmaMgr_RequestAsync(&this->dmaRequest, this->scheduleSegment, this->scheduleSegmentStart,
|
||||
this->scheduleSegmentSize, 0, &this->loadQueue, NULL);
|
||||
this->loadState = BOMBERS_NOTEBOOK_LOAD_STATE_STARTED;
|
||||
// fallthrough
|
||||
case BOMBERS_NOTEBOOK_LOAD_STATE_STARTED:
|
||||
|
||||
@@ -200,9 +200,9 @@ void func_801229FC(Player* player) {
|
||||
s16 objectId = sMaskObjectIds[(u8)player->maskId - 1];
|
||||
|
||||
osCreateMesgQueue(&player->maskObjectLoadQueue, &player->maskObjectLoadMsg, 1);
|
||||
DmaMgr_SendRequestImpl(&player->maskDmaRequest, player->maskObjectSegment, gObjectTable[objectId].vromStart,
|
||||
gObjectTable[objectId].vromEnd - gObjectTable[objectId].vromStart, 0,
|
||||
&player->maskObjectLoadQueue, NULL);
|
||||
DmaMgr_RequestAsync(&player->maskDmaRequest, player->maskObjectSegment, gObjectTable[objectId].vromStart,
|
||||
gObjectTable[objectId].vromEnd - gObjectTable[objectId].vromStart, 0,
|
||||
&player->maskObjectLoadQueue, NULL);
|
||||
player->maskObjectLoadState++;
|
||||
} else if (player->maskObjectLoadState == 2) {
|
||||
if (osRecvMesg(&player->maskObjectLoadQueue, NULL, OS_MESG_NOBLOCK) == 0) {
|
||||
|
||||
+2
-2
@@ -560,8 +560,8 @@ s32 Room_StartRoomTransition(PlayState* play, RoomContext* roomCtx, s32 index) {
|
||||
(size + 8) * roomCtx->activeMemPage - 7));
|
||||
|
||||
osCreateMesgQueue(&roomCtx->loadQueue, roomCtx->loadMsg, ARRAY_COUNT(roomCtx->loadMsg));
|
||||
DmaMgr_SendRequestImpl(&roomCtx->dmaRequest, roomCtx->activeRoomVram, play->roomList[index].vromStart, size, 0,
|
||||
&roomCtx->loadQueue, NULL);
|
||||
DmaMgr_RequestAsync(&roomCtx->dmaRequest, roomCtx->activeRoomVram, play->roomList[index].vromStart, size, 0,
|
||||
&roomCtx->loadQueue, NULL);
|
||||
roomCtx->activeMemPage ^= 1;
|
||||
|
||||
return 1;
|
||||
|
||||
+5
-5
@@ -22,7 +22,7 @@ s32 Object_SpawnPersistent(ObjectContext* objectCtx, s16 id) {
|
||||
if (1) {}
|
||||
|
||||
if (size != 0) {
|
||||
DmaMgr_SendRequest0(objectCtx->slots[objectCtx->numEntries].segment, gObjectTable[id].vromStart, size);
|
||||
DmaMgr_RequestSync(objectCtx->slots[objectCtx->numEntries].segment, gObjectTable[id].vromStart, size);
|
||||
}
|
||||
|
||||
if (objectCtx->numEntries < ARRAY_COUNT(objectCtx->slots) - 1) {
|
||||
@@ -87,8 +87,8 @@ void Object_UpdateEntries(ObjectContext* objectCtx) {
|
||||
entry->id = 0;
|
||||
} else {
|
||||
osCreateMesgQueue(&entry->loadQueue, &entry->loadMsg, 1);
|
||||
DmaMgr_SendRequestImpl(&entry->dmaReq, entry->segment, objectFile->vromStart, size, 0,
|
||||
&entry->loadQueue, NULL);
|
||||
DmaMgr_RequestAsync(&entry->dmaReq, entry->segment, objectFile->vromStart, size, 0,
|
||||
&entry->loadQueue, NULL);
|
||||
}
|
||||
} else if (!osRecvMesg(&entry->loadQueue, NULL, OS_MESG_NOBLOCK)) {
|
||||
entry->id = id;
|
||||
@@ -132,7 +132,7 @@ void Object_LoadAll(ObjectContext* objectCtx) {
|
||||
continue;
|
||||
}
|
||||
|
||||
DmaMgr_SendRequest0(objectCtx->slots[i].segment, gObjectTable[id].vromStart, vromSize);
|
||||
DmaMgr_RequestSync(objectCtx->slots[i].segment, gObjectTable[id].vromStart, vromSize);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -372,7 +372,7 @@ void Scene_LoadAreaTextures(PlayState* play, s32 fileIndex) {
|
||||
|
||||
if (size != 0) {
|
||||
play->roomCtx.unk74 = THA_AllocTailAlign16(&play->state.tha, size);
|
||||
DmaMgr_SendRequest0(play->roomCtx.unk74, vromStart, size);
|
||||
DmaMgr_RequestSync(play->roomCtx.unk74, vromStart, size);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1011,7 +1011,7 @@ void AnimationContext_SetLoadFrame(PlayState* play, PlayerAnimationHeader* anima
|
||||
s32 pad;
|
||||
|
||||
osCreateMesgQueue(&entry->data.load.msgQueue, entry->data.load.msg, ARRAY_COUNT(entry->data.load.msg));
|
||||
DmaMgr_SendRequestImpl(
|
||||
DmaMgr_RequestAsync(
|
||||
&entry->data.load.req, frameTable,
|
||||
LINK_ANIMETION_OFFSET(playerAnimHeader->linkAnimSegment, (sizeof(Vec3s) * limbCount + sizeof(s16)) * frame),
|
||||
sizeof(Vec3s) * limbCount + sizeof(s16), 0, &entry->data.load.msgQueue, NULL);
|
||||
|
||||
+13
-13
@@ -197,19 +197,19 @@ void Skybox_Setup(GameState* gameState, SkyboxContext* skyboxCtx, s16 skyboxId)
|
||||
skyboxCtx->staticSegments[0] = gLoBuffer.skyboxBuffer;
|
||||
size = SEGMENT_ROM_SIZE(d2_cloud_static);
|
||||
segment = (void*)ALIGN8((uintptr_t)skyboxCtx->staticSegments[0] + size);
|
||||
DmaMgr_SendRequest0(skyboxCtx->staticSegments[0], SEGMENT_ROM_START(d2_cloud_static), size);
|
||||
DmaMgr_RequestSync(skyboxCtx->staticSegments[0], SEGMENT_ROM_START(d2_cloud_static), size);
|
||||
|
||||
// Send a DMA request for the clear sky texture
|
||||
skyboxCtx->staticSegments[1] = segment;
|
||||
size = SEGMENT_ROM_SIZE(d2_fine_static);
|
||||
segment = (void*)ALIGN8((uintptr_t)segment + size);
|
||||
DmaMgr_SendRequest0(skyboxCtx->staticSegments[1], SEGMENT_ROM_START(d2_fine_static), size);
|
||||
DmaMgr_RequestSync(skyboxCtx->staticSegments[1], SEGMENT_ROM_START(d2_fine_static), size);
|
||||
|
||||
// Send a DMA request for the skybox palette
|
||||
skyboxCtx->paletteStaticSegment = segment;
|
||||
size = SEGMENT_ROM_SIZE(d2_fine_pal_static);
|
||||
segment = (void*)ALIGN8((uintptr_t)segment + size);
|
||||
DmaMgr_SendRequest0(skyboxCtx->paletteStaticSegment, SEGMENT_ROM_START(d2_fine_pal_static), size);
|
||||
DmaMgr_RequestSync(skyboxCtx->paletteStaticSegment, SEGMENT_ROM_START(d2_fine_pal_static), size);
|
||||
|
||||
skyboxCtx->prim.r = 145;
|
||||
skyboxCtx->prim.g = 120;
|
||||
@@ -244,14 +244,14 @@ void func_80143324(PlayState* play, SkyboxContext* skyboxCtx, s16 skyboxId) {
|
||||
// Send a DMA request for the clear sky texture
|
||||
size = SEGMENT_ROM_SIZE(d2_fine_static);
|
||||
|
||||
DmaMgr_SendRequestImpl(&skyboxCtx->unk188, skyboxCtx->staticSegments[0],
|
||||
SEGMENT_ROM_START(d2_fine_static), size, 0, &skyboxCtx->loadQueue, NULL);
|
||||
DmaMgr_RequestAsync(&skyboxCtx->unk188, skyboxCtx->staticSegments[0], SEGMENT_ROM_START(d2_fine_static),
|
||||
size, 0, &skyboxCtx->loadQueue, NULL);
|
||||
} else {
|
||||
// Send a DMA request for the cloudy sky texture
|
||||
size = SEGMENT_ROM_SIZE(d2_cloud_static);
|
||||
|
||||
DmaMgr_SendRequestImpl(&skyboxCtx->unk188, skyboxCtx->staticSegments[0],
|
||||
SEGMENT_ROM_START(d2_cloud_static), size, 0, &skyboxCtx->loadQueue, NULL);
|
||||
DmaMgr_RequestAsync(&skyboxCtx->unk188, skyboxCtx->staticSegments[0],
|
||||
SEGMENT_ROM_START(d2_cloud_static), size, 0, &skyboxCtx->loadQueue, NULL);
|
||||
}
|
||||
|
||||
osRecvMesg(&skyboxCtx->loadQueue, NULL, OS_MESG_BLOCK);
|
||||
@@ -261,14 +261,14 @@ void func_80143324(PlayState* play, SkyboxContext* skyboxCtx, s16 skyboxId) {
|
||||
// Send a DMA request for the clear sky texture
|
||||
size = SEGMENT_ROM_SIZE(d2_fine_static);
|
||||
|
||||
DmaMgr_SendRequestImpl(&skyboxCtx->unk1A8, skyboxCtx->staticSegments[1],
|
||||
SEGMENT_ROM_START(d2_fine_static), size, 0, &skyboxCtx->loadQueue, NULL);
|
||||
DmaMgr_RequestAsync(&skyboxCtx->unk1A8, skyboxCtx->staticSegments[1], SEGMENT_ROM_START(d2_fine_static),
|
||||
size, 0, &skyboxCtx->loadQueue, NULL);
|
||||
} else {
|
||||
// Send a DMA request for the cloudy sky texture
|
||||
size = SEGMENT_ROM_SIZE(d2_cloud_static);
|
||||
|
||||
DmaMgr_SendRequestImpl(&skyboxCtx->unk1A8, skyboxCtx->staticSegments[1],
|
||||
SEGMENT_ROM_START(d2_cloud_static), size, 0, &skyboxCtx->loadQueue, NULL);
|
||||
DmaMgr_RequestAsync(&skyboxCtx->unk1A8, skyboxCtx->staticSegments[1],
|
||||
SEGMENT_ROM_START(d2_cloud_static), size, 0, &skyboxCtx->loadQueue, NULL);
|
||||
}
|
||||
|
||||
osRecvMesg(&skyboxCtx->loadQueue, NULL, OS_MESG_BLOCK);
|
||||
@@ -277,8 +277,8 @@ void func_80143324(PlayState* play, SkyboxContext* skyboxCtx, s16 skyboxId) {
|
||||
size = SEGMENT_ROM_SIZE(d2_fine_pal_static);
|
||||
|
||||
// Send a DMA request for the skybox palette
|
||||
DmaMgr_SendRequestImpl(&skyboxCtx->unk1C8, skyboxCtx->paletteStaticSegment,
|
||||
SEGMENT_ROM_START(d2_fine_pal_static), size, 0, &skyboxCtx->loadQueue, NULL);
|
||||
DmaMgr_RequestAsync(&skyboxCtx->unk1C8, skyboxCtx->paletteStaticSegment,
|
||||
SEGMENT_ROM_START(d2_fine_pal_static), size, 0, &skyboxCtx->loadQueue, NULL);
|
||||
|
||||
osRecvMesg(&skyboxCtx->loadQueue, NULL, OS_MESG_BLOCK);
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user