z_actor_dlftbls.c OK. Rework a bunch of segment address organization. (#29)

This commit is contained in:
Rozelette
2020-09-27 20:19:06 -04:00
committed by GitHub
parent a672633c3b
commit 07efebe2ff
19 changed files with 8041 additions and 9023 deletions
+1 -1
View File
@@ -55,7 +55,7 @@ void Idle_InitCodeAndMemory(void) {
oldSize = sDmaMgrDmaBuffSize;
sDmaMgrDmaBuffSize = 0;
DmaMgr_SendRequestImpl(&dmaReq, (u32)&code_text_start, (u32)&code_vrom_start, (u32)&code_vrom_end - (u32)&code_vrom_start, 0, &queue, 0);
DmaMgr_SendRequestImpl(&dmaReq, (u32)&code_text_start, (u32)_codeSegmentRomStart, (u32)_codeSegmentRomEnd - (u32)_codeSegmentRomStart, 0, &queue, 0);
Idle_InitScreen();
Idle_InitMemory();
osRecvMesg(&queue, 0, 1);
+1 -1
View File
@@ -200,7 +200,7 @@ s32 DmaMgr_SendRequest0(void* vramStart, u32 vromStart, u32 size) {
void Dmamgr_Start() {
DmaEntry* v0;
u32 v1;
DmaMgr_DMARomToRam((u32)&dmadata_vrom_start, dmadata, (u32)&dmadata_vrom_end - (u32)&dmadata_vrom_start);
DmaMgr_DMARomToRam((u32)_dmadataSegmentRomStart, dmadata, (u32)_dmadataSegmentRomEnd - (u32)_dmadataSegmentRomStart);
for (v0 = dmadata, v1 = 0; v0->vromEnd != 0; v0++, v1++);
-52
View File
@@ -1,52 +0,0 @@
#include <ultra64.h>
#include <global.h>
void func_800BF9A0(s32 a0, s32 a1) {
s32 i;
ActorOverlay* s0;
s32 v1;
func_8008439C(-2, 0);
func_800847CC(D_801DCBB0, D_801B4610);
func_800847CC(D_801DCBC4);
for (i = 0, s0 = &actorOverlayTable[0]; i < D_801B4610; i++, s0++) {
v1 = (u32)s0->vramEnd - (u32)s0->vramStart;
if (s0->loadedRamAddr == NULL) continue;
func_800847CC(D_801DCBE4, i, s0->loadedRamAddr, (u32)s0->loadedRamAddr + v1, s0->nbLoaded, &D_801DCBFC);
}
}
s32 func_800BFA78(s32 a0, s32 a1) {
s32 i;
ActorOverlay* v0 = &actorOverlayTable[0];
s32 t1;
s32 a2;
s32 a0_2 = a0;
for (i = 0; i < D_801B4610; i++, v0++) {
t1 = (u32)v0->vramStart - (u32)v0->loadedRamAddr;
a2 = (u32)v0->vramEnd - (u32)v0->vramStart;
if (v0->loadedRamAddr == NULL) continue;
if (a0_2 < (u32)v0->loadedRamAddr) continue;
if (a0_2 < ((u32)v0->loadedRamAddr + a2)) {
return a0_2 + t1;
}
}
return 0;
}
void func_800BFAE8(void) {
D_801B4610 = ACTOR_ID_MAX;
func_800819F0(&D_801ED930, (u32)func_800BF9A0, 0, 0);
func_80081BCC(&D_801ED940, (u32)func_800BFA78, 0);
}
void func_800BFB40(void) {
func_80081AD4(&D_801ED930);
func_80081CA4(&D_801ED940);
D_801B4610 = 0;
}
File diff suppressed because it is too large Load Diff
+3 -3
View File
@@ -6,13 +6,13 @@ void Kanfont_Nop800F4F40(GlobalContext* ctxt, UNK_TYPE param_2, UNK_TYPE param_3
void Kanfont_LoadAsciiChar(GlobalContext* ctxt, u8 character, s32 iParm3) {
// UB to convert pointer to u32
DmaMgr_SendRequest0((void*)((u32)&ctxt->msgCtx.font.unk0[(ctxt->msgCtx).unk11EF0] + iParm3),
(u32)&nes_font_static_vrom_start + character * 0x80 - 0x1000,
(u32)_nes_font_staticSegmentRomStart + character * 0x80 - 0x1000,
0x80);
}
void Kanfont_LoadMessageBoxEnd(Font* font, u16 type) {
// UB to convert pointer to u32
DmaMgr_SendRequest0(&font->unk7800[0][0], type * 0x80 + (u32)&message_static_vrom_start + 0x5000, 0x80);
DmaMgr_SendRequest0(&font->unk7800[0][0], type * 0x80 + (u32)_message_staticSegmentRomStart + 0x5000, 0x80);
}
void Kanfont_LoadOrderedFont(Font* font) {
@@ -27,7 +27,7 @@ void Kanfont_LoadOrderedFont(Font* font) {
loadOffset = 0;
}
// UB to convert pointer to u32
DmaMgr_SendRequest0(writeLocation, (u32)&nes_font_static_vrom_start + loadOffset, 0x80);
DmaMgr_SendRequest0(writeLocation, (u32)_nes_font_staticSegmentRomStart + loadOffset, 0x80);
if (kanfontOrdering[codePointIndex] == 140) break;
codePointIndex++;
}
+1 -1
View File
@@ -172,7 +172,7 @@ void Scene_HeaderCommand00(GlobalContext* ctxt, SceneCmd* entry) {
ctxt->sceneContext.spawnedObjectCount = loadedCount;
unk20 = gSaveContext.perm.unk20;
temp16 = D_801C2730[unk20];
actorOverlayTable[0].initInfo->objectId = temp16;
gActorOverlayTable[0].initInfo->objectId = temp16;
Scene_LoadObject(&ctxt->sceneContext, temp16);
ctxt->sceneContext.objects[ctxt->sceneContext.objectCount].vramAddr = objectVramAddr;