mirror of
https://github.com/izzy2lost/2ship2harkinian-Android.git
synced 2026-06-19 01:20:08 -07:00
z_actor_dlftbls.c OK. Rework a bunch of segment address organization. (#29)
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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++);
|
||||
|
||||
|
||||
@@ -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
@@ -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
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user