d_kankyo_wether / d_eye_hl (#178)

* d_eye_hl / d_kankyo_wether wip

* more d_kankyo_wether + format

* remove asm

* some d_kankyo wip

* fix dccs vtable

* some m_Do_graphic / d_meter2_draw work
This commit is contained in:
TakaRikka
2022-01-25 12:24:14 -08:00
committed by GitHub
parent 6f4d068f1d
commit 612f26c132
241 changed files with 3715 additions and 9755 deletions
+184 -155
View File
@@ -4,13 +4,13 @@
//
#include "DynamicLink.h"
#include "dol2asm.h"
#include "dolphin/types.h"
#include "dolphin/os/OS.h"
#include "JSystem/JUtility/JUTConsole.h"
#include "m_Do/m_Do_ext.h"
#include "MSL_C.PPCEABI.bare.H/MSL_Common/Src/printf.h"
#include "JSystem/JKernel/JKRDvdRipper.h"
#include "JSystem/JUtility/JUTConsole.h"
#include "MSL_C.PPCEABI.bare.H/MSL_Common/Src/printf.h"
#include "dol2asm.h"
#include "dolphin/os/OS.h"
#include "dolphin/types.h"
#include "m_Do/m_Do_ext.h"
//
// Forward References:
@@ -39,8 +39,8 @@ extern "C" void getModuleTypeString__20DynamicModuleControlCFv();
extern "C" void ModuleProlog();
extern "C" void ModuleEpilog();
extern "C" void ModuleUnresolved();
extern "C" void ModuleConstructorsX(void(**ctors)());
extern "C" void ModuleDestructorsX(void(**dtors)());
extern "C" void ModuleConstructorsX(void (**ctors)());
extern "C" void ModuleDestructorsX(void (**dtors)());
extern "C" bool do_link__24DynamicModuleControlBaseFv();
extern "C" bool do_load__24DynamicModuleControlBaseFv();
extern "C" bool do_unload__24DynamicModuleControlBaseFv();
@@ -103,16 +103,16 @@ DynamicModuleControlBase* DynamicModuleControlBase::mLast;
*/
DynamicModuleControlBase::~DynamicModuleControlBase() {
force_unlink();
if (mPrev!=NULL) {
if (mPrev != NULL) {
mPrev->mNext = mNext;
}
if (mNext!=NULL) {
if (mNext != NULL) {
mNext->mPrev = mPrev;
}
if (mFirst==this) {
if (mFirst == this) {
mFirst = mNext;
}
if (mLast==this) {
if (mLast == this) {
mLast = mPrev;
}
mNext = NULL;
@@ -125,11 +125,11 @@ DynamicModuleControlBase::DynamicModuleControlBase() {
mLinkCount = 0;
mDoLinkCount = 0;
mNext = NULL;
if (mFirst==NULL) {
if (mFirst == NULL) {
mFirst = this;
}
mPrev = mLast;
if (mPrev!=NULL) {
if (mPrev != NULL) {
mPrev->mNext = this;
}
mLast = this;
@@ -138,16 +138,16 @@ DynamicModuleControlBase::DynamicModuleControlBase() {
/* 802622D0-80262364 25CC10 0094+00 0/0 2/2 0/0 .text link__24DynamicModuleControlBaseFv
*/
bool DynamicModuleControlBase::link() {
if (mLinkCount==0) {
if (mLinkCount == 0) {
do_load();
if (do_link()==false) {
if (do_link() == false) {
return false;
}
if (mDoLinkCount<0xFFFF) {
if (mDoLinkCount < 0xFFFF) {
mDoLinkCount++;
}
}
if(mLinkCount<0xFFFF) {
if (mLinkCount < 0xFFFF) {
mLinkCount++;
}
return true;
@@ -155,21 +155,22 @@ bool DynamicModuleControlBase::link() {
/* 80262364-802623EC 25CCA4 0088+00 0/0 1/1 0/0 .text unlink__24DynamicModuleControlBaseFv */
bool DynamicModuleControlBase::unlink() {
if(mLinkCount!=0) {
if (mLinkCount != 0) {
mLinkCount--;
if(mLinkCount==0) {
if (mLinkCount == 0) {
do_unlink();
do_unload();
}
}else{
OSReport_Warning("%08x DynamicModuleControlBase::unlink() mLinkCount id already zero.\n",this);
} else {
OSReport_Warning("%08x DynamicModuleControlBase::unlink() mLinkCount id already zero.\n",
this);
}
return true;
}
/* 802623EC-8026242C 25CD2C 0040+00 0/0 1/1 0/0 .text load_async__24DynamicModuleControlBaseFv */
bool DynamicModuleControlBase::load_async() {
if (mLinkCount==0) {
if (mLinkCount == 0) {
return do_load_async();
}
return true;
@@ -178,7 +179,7 @@ bool DynamicModuleControlBase::load_async() {
/* 8026242C-80262470 25CD6C 0044+00 1/1 0/0 0/0 .text force_unlink__24DynamicModuleControlBaseFv
*/
bool DynamicModuleControlBase::force_unlink() {
if (mLinkCount!=0) {
if (mLinkCount != 0) {
mLinkCount = 0;
do_unlink();
}
@@ -191,43 +192,45 @@ void DynamicModuleControlBase::dump() {
int totalSize = 0;
JUTReportConsole_f("\nDynamicModuleControlBase::dump()\n");
JUTReportConsole_f("Do Lnk Size Name\n");
//lbl_80262608
while (current!=NULL) {
//lbl_802624B8
// lbl_80262608
while (current != NULL) {
// lbl_802624B8
u16 doLinkCount = current->mDoLinkCount;
u16 linkCount = current->mLinkCount;
if (doLinkCount!=0||linkCount!=0) {
//lbl_802624D0
if (doLinkCount != 0 || linkCount != 0) {
// lbl_802624D0
u32 size = current->getModuleSize();
const char* name = current->getModuleName();
if(size<0xFFFFFFFF) {
name = (name!=NULL) ? name : "(Null)";
//lbl_80262524
if (size < 0xFFFFFFFF) {
name = (name != NULL) ? name : "(Null)";
// lbl_80262524
const char* type = current->getModuleTypeString();
JUTReportConsole_f("%3d%3d%5.1f %05x %-4s %-24s ",doLinkCount,linkCount,size*(1.0f/1024.0f),size,type,name);
totalSize=totalSize+size;
}else{
//lbl_80262588
name = (name!=NULL) ? name : "(Null)";
//lbl_802625A4
JUTReportConsole_f("%3d%3d%5.1f %05x %-4s %-24s ", doLinkCount, linkCount,
size * (1.0f / 1024.0f), size, type, name);
totalSize = totalSize + size;
} else {
// lbl_80262588
name = (name != NULL) ? name : "(Null)";
// lbl_802625A4
const char* type = current->getModuleTypeString();
JUTReportConsole_f("%3d%3d ???? ????? %-4s %-24s ",doLinkCount,linkCount,type,name);
JUTReportConsole_f("%3d%3d ???? ????? %-4s %-24s ", doLinkCount, linkCount, type,
name);
}
//lbl_802625DC
// lbl_802625DC
current->dump2();
JUTReportConsole_f("\n");
}
//lbl_80262604
// lbl_80262604
current = getNextClass();
}
//lbl_80262608
JUTReportConsole_f("TotalSize %6.2f %06x\n\n",(1.0f/1024.0f)*totalSize,totalSize);
// lbl_80262608
JUTReportConsole_f("TotalSize %6.2f %06x\n\n", (1.0f / 1024.0f) * totalSize, totalSize);
}
#else
/* ############################################################################################## */
/* 80455008-80455010 003608 0004+04 1/1 0/0 0/0 .sdata2 @3772 */
SECTION_SDATA2 static f32 lit_3772[1 + 1 /* padding */] = {
0.0009765625f, // 1/1024
0.0009765625f, // 1/1024
/* padding */
0.0f,
};
@@ -291,10 +294,13 @@ SECTION_DEAD static char const* const stringBase_8039A57B = "Base";
/* 802626D0-8026275C 25D010 008C+00 1/1 0/0 0/0 .text mountCallback__20DynamicModuleControlFPv */
JKRArchive* DynamicModuleControl::mountCallback(void* param_0) {
JKRExpHeap* heap = mDoExt_getArchiveHeap();
sFileCache = JKRFileCache::mount("/rel/Final/Release",heap,NULL);
sArchive = JKRArchive::mount("RELS.arc",JKRArchive::MOUNT_COMP,heap,JKRArchive::MOUNT_DIRECTION_HEAD);
sFileCache = JKRFileCache::mount("/rel/Final/Release", heap, NULL);
sArchive = JKRArchive::mount("RELS.arc", JKRArchive::MOUNT_COMP, heap,
JKRArchive::MOUNT_DIRECTION_HEAD);
if (sArchive == NULL) {
OSReport_Warning("マウント失敗ですが単にアーカイブを作ってないだけなら遅いだけです %s\n","RELS.arc");
// "Mount failure, but if the archive isn't created, it was too slow %s\n"
OSReport_Warning("マウント失敗ですが単にアーカイブを作ってないだけなら遅いだけです %s\n",
"RELS.arc");
}
return sArchive;
}
@@ -318,9 +324,9 @@ void* DynamicModuleControl::callback(void* moduleControlPtr) {
/* 802627C0-802627E8 25D100 0028+00 1/1 0/0 0/0 .text calcSum2__FPCUsUl */
static u32 calcSum2(u16 const* data, u32 size) {
u32 sum = 0;
while (size>0) {
while (size > 0) {
sum = sum + *data;
size=size-2;
size = size - 2;
data++;
}
return sum;
@@ -328,83 +334,93 @@ static u32 calcSum2(u16 const* data, u32 size) {
#ifdef NONMATCHING
bool DynamicModuleControl::do_load() {
if (mModule!=NULL) {
if (mModule != NULL) {
return true;
}
JKRExpHeap* heap = mDoExt_getArchiveHeap();
s32 i = 0;
while(true) {
if(mModule != NULL) {
JKRHeap::free(mModule,NULL);
while (true) {
if (mModule != NULL) {
JKRHeap::free(mModule, NULL);
mModule = NULL;
}
char buffer[64];
snprintf(buffer,64,"%s.rel",mName);
if(mModule==NULL&&sArchive!=NULL) {
if(mModule==NULL) {
mModule = (OSModuleInfo*)JKRArchive::getGlbResource(0x4D4D454D/*MMEM*/,buffer,sArchive);
if(mModule!=NULL) {
snprintf(buffer, 64, "%s.rel", mName);
if (mModule == NULL && sArchive != NULL) {
if (mModule == NULL) {
mModule = (OSModuleInfo*)JKRArchive::getGlbResource('MMEM', buffer, sArchive);
if (mModule != NULL) {
mResourceType = 1;
}
}
if(mModule==NULL) {
mModule = (OSModuleInfo*)JKRArchive::getGlbResource(0x414D454D/*AMEM*/,buffer,sArchive);
if(mModule!=NULL) {
if (mModule == NULL) {
mModule = (OSModuleInfo*)JKRArchive::getGlbResource('AMEM', buffer, sArchive);
if (mModule != NULL) {
mResourceType = 2;
}
}
if(mModule==NULL) {
mModule = (OSModuleInfo*)JKRArchive::getGlbResource(0x444D454D/*DMEM*/,buffer,sArchive);
if(mModule!=NULL) {
if (mModule == NULL) {
mModule = (OSModuleInfo*)JKRArchive::getGlbResource('DMEM', buffer, sArchive);
if (mModule != NULL) {
mResourceType = 3;
}
}
}
if(mModule!=NULL) {
if (mModule != NULL) {
mSize = sArchive->getExpandedResSize(mModule);
JKRFileLoader::detachResource(mModule,NULL);
}else if(mModule==NULL){
snprintf(buffer,64,"/rel/Final/Release/%s.rel",mName);
mModule = (OSModuleInfo*)JKRDvdRipper::loadToMainRAM(buffer,NULL,EXPAND_SWITCH_UNKNOWN1,0,heap,JKRDvdRipper::ALLOC_DIRECTION_FORWARD,0,NULL,NULL);
if(mModule!=NULL) {
JKRFileLoader::detachResource(mModule, NULL);
} else if (mModule == NULL) {
snprintf(buffer, 64, "/rel/Final/Release/%s.rel", mName);
mModule = (OSModuleInfo*)JKRDvdRipper::loadToMainRAM(
buffer, NULL, EXPAND_SWITCH_UNKNOWN1, 0, heap,
JKRDvdRipper::ALLOC_DIRECTION_FORWARD, 0, NULL, NULL);
if (mModule != NULL) {
mSize = 0;
mResourceType = 7;
}
}
if(mModule==NULL&&sFileCache!=NULL) {
mModule = (OSModuleInfo*)sFileCache->getResource(0x72656C73/*rels*/,buffer);
if(mModule!=NULL) {
if (mModule == NULL && sFileCache != NULL) {
mModule = (OSModuleInfo*)sFileCache->getResource('rels', buffer);
if (mModule != NULL) {
mSize = 0;
mResourceType = 11;
JKRFileLoader::detachResource(mModule,NULL);
JKRFileLoader::detachResource(mModule, NULL);
}
}
if(mModule==NULL) {
OSReport_Error("\x44\x79\x6E\x61\x6D\x69\x63\x4D\x6F\x64\x75\x6C\x65\x43\x6F\x6E\x74\x72\x6F\x6C\x3A\x3A\x64\x6F\x5F\x6C\x6F\x61\x64\x28\x29\x20\x83\x8A\x83\x5C\x81\x5B\x83\x58\x93\xC7\x82\xDD\x8D\x9E\x82\xDD\x8E\xB8\x94\x73\x20\x5B\x25\x73\x5D\x0A",mName);
if (mModule == NULL) {
// "DynamicModuleControl::do_load() Resource load failure [%s]\n"
OSReport_Error(
"\x44\x79\x6E\x61\x6D\x69\x63\x4D\x6F\x64\x75\x6C\x65\x43\x6F\x6E\x74\x72\x6F\x6C"
"\x3A\x3A\x64\x6F\x5F\x6C\x6F\x61\x64\x28\x29\x20\x83\x8A\x83\x5C\x81\x5B\x83\x58"
"\x93\xC7\x82\xDD\x8D\x9E\x82\xDD\x8E\xB8\x94\x73\x20\x5B\x25\x73\x5D\x0A",
mName);
return false;
}
if(mSize>0) {
u32 sum = calcSum2((u16*)mModule,mSize);
if(unk_33==0) {
mChecksum=sum;
if (mSize > 0) {
u32 sum = calcSum2((u16*)mModule, mSize);
if (unk_33 == 0) {
mChecksum = sum;
unk_33++;
}else{
u32 newsum = sum&0xFFFF;
if(newsum!=mChecksum) {
OSReport_Error("DynamicModuleControl::do_load() チェックサムエラー %04x %04x[%s]\n",newsum,mChecksum,mName);
} else {
u32 newsum = sum & 0xFFFF;
if (newsum != mChecksum) {
OSReport_Error(
// "DynamicModuleControl::do_load() Checksum Error %04x %04x[%s]\n"
"DynamicModuleControl::do_load() チェックサムエラー %04x %04x[%s]\n",
newsum, mChecksum, mName);
unk_33 = 0;
i++;
if(i>=3) {
if (i >= 3) {
return false;
}
}
}
if(unk_33<0xFF) {
if (unk_33 < 0xFF) {
unk_33++;
return true;
}
}
if(unk_33<0xFF) {
if (unk_33 < 0xFF) {
unk_33++;
return true;
}
@@ -443,20 +459,23 @@ asm bool DynamicModuleControl::do_load() {
/* 80262AFC-80262BC4 25D43C 00C8+00 1/0 0/0 0/0 .text do_load_async__20DynamicModuleControlFv */
bool DynamicModuleControl::do_load_async() {
if (mAsyncLoadCallback==NULL) {
if(mModule!=NULL) {
if (mAsyncLoadCallback == NULL) {
if (mModule != NULL) {
return true;
}
mAsyncLoadCallback = mDoDvdThd_callback_c::create(DynamicModuleControl::callback,this);
if(mAsyncLoadCallback==NULL) {
OSReport_Error("DynamicModuleControl::do_load_async() 非同期読み込みコールバック登録失敗 [%s]\n",mName);
mAsyncLoadCallback = mDoDvdThd_callback_c::create(DynamicModuleControl::callback, this);
if (mAsyncLoadCallback == NULL) {
OSReport_Error(
// "DynamicModuleControl::do_load_async() async load callback entry failure [%s]\n"
"DynamicModuleControl::do_load_async() 非同期読み込みコールバック登録失敗 [%s]\n",
mName);
}
}
if (mAsyncLoadCallback!=NULL&&mAsyncLoadCallback->sync()) {
if (mAsyncLoadCallback != NULL && mAsyncLoadCallback->sync()) {
mAsyncLoadCallback->destroy();
mAsyncLoadCallback = NULL;
return true;
}else{
} else {
return false;
}
}
@@ -464,7 +483,7 @@ bool DynamicModuleControl::do_load_async() {
/* 80262BC4-80262C0C 25D504 0048+00 1/0 0/0 0/0 .text do_unload__20DynamicModuleControlFv
*/
bool DynamicModuleControl::do_unload() {
if (mModule!=NULL){
if (mModule != NULL) {
JKRFree(mModule);
mModule = NULL;
}
@@ -473,79 +492,87 @@ bool DynamicModuleControl::do_unload() {
/* 80262C0C-80262C5C 25D54C 0050+00 1/0 0/0 0/0 .text dump2__20DynamicModuleControlFv */
void DynamicModuleControl::dump2() {
if (mModule!=NULL) {
if (mModule != NULL) {
OSSectionInfo* section = (OSSectionInfo*)mModule->info.sectionInfoOffset;
OSSectionInfo* section2 = section+1;
OSSectionInfo* section2 = section + 1;
u32 offset = section2->mOffset & ~(1);
OSReport("%08x-%08x %08x %08x",mModule,offset,offset+section2->mSize);
OSReport("%08x-%08x %08x %08x", mModule, offset, offset + section2->mSize);
}
}
#ifdef NONMATCHING
BOOL DynamicModuleControl::do_link() {
OSGetTime();
if(mModule==NULL) {
if (mModule == NULL) {
do_load();
}
if(mModule!=NULL) {
if (mModule != NULL) {
ASSERT(mModule->info.sectionInfoOffset < 0x80000000);
ASSERT((u32)mModule + mModule->fixSize < 0x82000000);
OSGetTime();
OSGetTime();
if(mModule->mModuleVersion>=3) {
if (mModule->mModuleVersion >= 3) {
u32 unk = mModule->fixSize;
u32 unk3 = (unk+0x1f) & ~0x1f;
u32 unk2 = (u32)mModule+unk3;
s32 size = JKRHeap::getSize(mModule,NULL);
if(size<0) {
void* bss = JKRHeap::alloc(mModule->mBssSize,0x20,NULL);
if (bss==NULL) {
u32 unk3 = (unk + 0x1f) & ~0x1f;
u32 unk2 = (u32)mModule + unk3;
s32 size = JKRHeap::getSize(mModule, NULL);
if (size < 0) {
void* bss = JKRHeap::alloc(mModule->mBssSize, 0x20, NULL);
if (bss == NULL) {
// "BSS Memory allocation failed\n"
OSReport_Error("BSSメモリ確保失敗\n");
goto end;
}else{
} else {
mBss = bss;
BOOL linkResult = OSLink(mModule);
if(linkResult==FALSE) {
if (linkResult == FALSE) {
// "link failed\n"
OSReport_Error("リンク失敗\n");
goto end;
}
}
}else{
if(mModule->mBssSize+unk<size) {
BOOL linkResult = OSLinkFixed(mModule,unk2);
if(linkResult==FALSE) {
} else {
if (mModule->mBssSize + unk < size) {
BOOL linkResult = OSLinkFixed(mModule, unk2);
if (linkResult == FALSE) {
// "link failed\n"
OSReport_Error("リンク失敗\n");
goto end;
}else{
s32 result = JKRHeap::resize(mModule,mModule->mBssSize+unk,NULL);
if (result<0) {
} else {
s32 result = JKRHeap::resize(mModule, mModule->mBssSize + unk, NULL);
if (result < 0) {
// "Module size (resize) failed\n"
OSReport_Error("モジュールリサイズ(縮小)失敗\n");
}
}
}else{ //lbl_80262DB0
s32 result = JKRHeap::resize(mModule,mModule->mBssSize+unk,NULL);
if (result>0) {
BOOL linkResult = OSLinkFixed(mModule,unk2);
if(linkResult==FALSE) {
} else { // lbl_80262DB0
s32 result = JKRHeap::resize(mModule, mModule->mBssSize + unk, NULL);
if (result > 0) {
BOOL linkResult = OSLinkFixed(mModule, unk2);
if (linkResult == FALSE) {
// "link failed\n"
OSReport_Error("リンク失敗\n");
goto end;
}
}else{ //lbl_80262DF0
void* bss = JKRHeap::alloc(mModule->mBssSize,0x20,NULL);
if (bss==NULL) {
OSReport_Error("BSSメモリ確保失敗 [%x]\n",mModule->mBssSize);
} else { // lbl_80262DF0
void* bss = JKRHeap::alloc(mModule->mBssSize, 0x20, NULL);
if (bss == NULL) {
// "BSS Memory allocation failure [%x]\n"
OSReport_Error("BSSメモリ確保失敗 [%x]\n", mModule->mBssSize);
goto end;
}else{ //lbl_80262E2C
} else { // lbl_80262E2C
mBss = bss;
BOOL linkResult = OSLinkFixed(mModule,(u32)bss);
if (linkResult==FALSE) {
BOOL linkResult = OSLinkFixed(mModule, (u32)bss);
if (linkResult == FALSE) {
// "link failed\n"
OSReport_Error("リンク失敗\n");
goto end;
}
//lbl_80262E58
s32 result = JKRHeap::resize(mModule,unk3,NULL);
if (result<0) {
// lbl_80262E58
s32 result = JKRHeap::resize(mModule, unk3, NULL);
if (result < 0) {
// "Module size (resize) failed\n"
OSReport_Error("モジュールリサイズ(縮小)失敗\n");
}
}
@@ -553,7 +580,7 @@ BOOL DynamicModuleControl::do_link() {
}
}
}
//lbl_80262E84
// lbl_80262E84
OSGetTime();
sAllocBytes = sAllocBytes + getModuleSize();
OSGetTime();
@@ -562,14 +589,14 @@ BOOL DynamicModuleControl::do_link() {
return TRUE;
}
end: //lbl_80262ECC
end: // lbl_80262ECC
unk_33 = 0;
if(mBss!=NULL) {
JKRHeap::free(mBss,NULL);
if (mBss != NULL) {
JKRHeap::free(mBss, NULL);
mBss = NULL;
}
if(mModule!=NULL) {
JKRHeap::free(mModule,NULL);
if (mModule != NULL) {
JKRHeap::free(mModule, NULL);
mModule = NULL;
}
return FALSE;
@@ -603,28 +630,29 @@ bool DynamicModuleControl::do_unlink() {
OSTime time2 = OSGetTime();
BOOL unklink = OSUnlink(mModule);
OSTime time3 = OSGetTime();
if (unklink==FALSE) {
OSReport_Error("アンリンク失敗 mModule=%08x mBss=%08x\n",mModule,mBss);
if (unklink == FALSE) {
// "Unlink failed mModule=%08x mBss=%08x\n"
OSReport_Error("アンリンク失敗 mModule=%08x mBss=%08x\n", mModule, mBss);
return false;
}
sAllocBytes = sAllocBytes - getModuleSize();
if (mBss!=NULL) {
if (mBss != NULL) {
JKRFree(mBss);
mBss = NULL;
}
do_unload();
return true;
}
}
/* 80263000-80263070 25D940 0070+00 1/0 0/0 0/0 .text getModuleSize__20DynamicModuleControlCFv */
int DynamicModuleControl::getModuleSize() const {
if (mModule!=NULL){
u32 size = JKRGetMemBlockSize(NULL,mModule);
if (mBss!=NULL) {
JKRGetMemBlockSize(NULL,mBss);
if (mModule != NULL) {
u32 size = JKRGetMemBlockSize(NULL, mModule);
if (mBss != NULL) {
JKRGetMemBlockSize(NULL, mBss);
}
return size+mModule->mBssSize;
}else{
return size + mModule->mBssSize;
} else {
return 0;
}
}
@@ -632,8 +660,8 @@ int DynamicModuleControl::getModuleSize() const {
/* 80263070-80263088 25D9B0 0018+00 1/0 0/0 0/0 .text
* getModuleTypeString__20DynamicModuleControlCFv */
const char* DynamicModuleControl::getModuleTypeString() const {
static const char* strings[4] = {"????","MEM","ARAM","DVD"};
return strings[mResourceType&3];
static const char* strings[4] = {"????", "MEM", "ARAM", "DVD"};
return strings[mResourceType & 3];
}
/* 803C34C0-803C34F4 0205E0 0034+00 1/1 2/2 0/0 .data __vt__20DynamicModuleControl */
@@ -665,28 +693,29 @@ extern "C" void ModuleEpilog() {
/* 80263090-8026314C 25D9D0 00BC+00 0/0 0/0 757/757 .text ModuleUnresolved */
extern "C" void ModuleUnresolved() {
// "\nError: Unlinked function was called.\n"
OSReport_Error("\nError: リンクされていない関数が呼び出されました.\n");
OSReport_Error("Address: Back Chain LR Save\n");
u32 i = 0;
u32* stackPtr = (u32*)OSGetStackPointer();
while((stackPtr != NULL) && ((u32)stackPtr != 0xFFFFFFFF) && (i++ < 0x10)) {
OSReport_Error("0x%08x: 0x%08x 0x%08x\n",stackPtr,*stackPtr,*(stackPtr+1));
while ((stackPtr != NULL) && ((u32)stackPtr != 0xFFFFFFFF) && (i++ < 0x10)) {
OSReport_Error("0x%08x: 0x%08x 0x%08x\n", stackPtr, *stackPtr, *(stackPtr + 1));
stackPtr = (u32*)*stackPtr;
}
OSReport_Error("\n");
}
/* 8026314C-80263190 25DA8C 0044+00 0/0 0/0 757/757 .text ModuleConstructorsX */
extern "C" void ModuleConstructorsX(void(**ctors)()) {
while (*ctors!=0) {
extern "C" void ModuleConstructorsX(void (**ctors)()) {
while (*ctors != 0) {
(**ctors)();
ctors++;
}
}
/* 80263190-802631D4 25DAD0 0044+00 0/0 0/0 757/757 .text ModuleDestructorsX */
extern "C" void ModuleDestructorsX(void(**dtors)()) {
while (*dtors!=0) {
extern "C" void ModuleDestructorsX(void (**dtors)()) {
while (*dtors != 0) {
(**dtors)();
dtors++;
}
+3 -4
View File
@@ -3324,7 +3324,6 @@ extern "C" u8 BaseY__4cXyz[12];
extern "C" u8 BaseZ__4cXyz[12];
extern "C" u8 mCurrentMtx__6J3DSys[48];
extern "C" u8 sincosTable___5JMath[65536];
extern "C" extern u32 g_whiteColor;
extern "C" u16 m_branchId__7dDemo_c[1 + 3 /* padding */];
extern "C" extern u8 data_80450B38[4];
extern "C" f32 mGroundY__11fopAcM_gc_c;
@@ -3582,10 +3581,10 @@ void daAlink_c::setMatrixWorldAxisRot(MtxP param_0, s16 param_1, s16 param_2, s1
mDoMtx_stack_c::YrotM(-mCollisionRot.y);
concatMagneBootInvMtx();
mDoMtx_stack_c::transM(-tmp.x, -tmp.y, -tmp.z);
PSMTXConcat(*mDoMtx_stack_c::get(), param_0, *mDoMtx_stack_c::get());
PSMTXCopy(*mDoMtx_stack_c::get(), param_0);
PSMTXConcat(mDoMtx_stack_c::get(), param_0, mDoMtx_stack_c::get());
PSMTXCopy(mDoMtx_stack_c::get(), param_0);
if (param_4 != 0) {
PSMTXCopy(*mDoMtx_stack_c::get(), J3DSys::mCurrentMtx);
PSMTXCopy(mDoMtx_stack_c::get(), J3DSys::mCurrentMtx);
}
}
+2 -2
View File
@@ -172,7 +172,7 @@ int dBgS_MoveBgActor::MoveBGCreate(char const* p_name, int dzb_id, MoveBGActor_S
mDoMtx_stack_c::transS(mCurrent.mPosition.x, mCurrent.mPosition.y, mCurrent.mPosition.z);
mDoMtx_stack_c::YrotM(mCollisionRot.y);
mDoMtx_stack_c::scaleM(mScale.x, mScale.y, mScale.z);
PSMTXCopy(*mDoMtx_stack_c::get(), field_0x56c);
PSMTXCopy(mDoMtx_stack_c::get(), field_0x56c);
} else {
PSMTXCopy(*param_4, field_0x56c);
}
@@ -222,7 +222,7 @@ bool dBgS_MoveBgActor::MoveBGExecute() {
mDoMtx_stack_c::transS(mCurrent.mPosition.x, mCurrent.mPosition.y, mCurrent.mPosition.z);
mDoMtx_stack_c::YrotM(mCollisionRot.y);
mDoMtx_stack_c::scaleM(mScale.x, mScale.y, mScale.z);
PSMTXCopy(*mDoMtx_stack_c::get(), field_0x56c);
PSMTXCopy(mDoMtx_stack_c::get(), field_0x56c);
} else {
PSMTXCopy(*tmp, field_0x56c);
}
+19 -175
View File
@@ -3,7 +3,8 @@
// Translation Unit: d/cc/d_cc_s
//
//#include "d/cc/d_cc_s.h"
#include "d/cc/d_cc_s.h"
#include "d/com/d_com_inf_game.h"
#include "dol2asm.h"
#include "dolphin/types.h"
@@ -11,139 +12,12 @@
// Types:
//
struct csXyz {};
struct mDoMtx_stack_c {
/* 8000CF0C */ void ZXYrotS(csXyz const&);
static u8 now[48];
};
struct fopAc_ac_c {};
struct cXyz {
static u8 BaseZ[12];
};
struct dPa_control_c {
/* 8004C218 */ void setHitMark(u16, fopAc_ac_c*, cXyz const*, csXyz const*, cXyz const*, u32);
};
struct dJntCol_c {
/* 80036C44 */ void getHitmarkPosAndAngle(cXyz const*, csXyz const*, cXyz*, csXyz*, int) const;
};
struct dCcD_GObjInf {
/* 800843DC */ void ChkAtNoGuard();
};
struct cCcD_GObjInf {};
struct cCcD_ShapeAttr {
struct Shape {};
};
struct cCcD_Stts {
/* 80263934 */ void PlusCcMove(f32, f32, f32);
/* 80263970 */ void PlusDmg(int);
};
struct cCcD_GStts {};
struct cCcD_Obj {
/* 80263A48 */ void GetAc();
};
struct dCcD_GStts {};
struct dCcS {
/* 8002FF40 */ ~dCcS();
/* 80085ED4 */ void Ct();
/* 80085F08 */ void Dt();
/* 80085F28 */ void ChkShieldFrontRange(cCcD_Obj*, cCcD_Obj*, int, cXyz const*);
/* 800860F8 */ void ChkShield(cCcD_Obj*, cCcD_Obj*, dCcD_GObjInf*, dCcD_GObjInf*, cXyz const*);
/* 800861B0 */ void CalcTgPlusDmg(cCcD_Obj*, cCcD_Obj*, cCcD_Stts*, cCcD_Stts*);
/* 800861B4 */ void ChkAtTgHitAfterCross(bool, bool, cCcD_GObjInf const*, cCcD_GObjInf const*,
cCcD_Stts*, cCcD_Stts*, cCcD_GStts*, cCcD_GStts*);
/* 80086240 */ void SetCoGObjInf(bool, bool, cCcD_GObjInf*, cCcD_GObjInf*, cCcD_Stts*,
cCcD_Stts*, cCcD_GStts*, cCcD_GStts*);
/* 80086360 */ void GetRank(u8);
/* 80086404 */ bool ChkNoHitGCo(cCcD_Obj*, cCcD_Obj*);
/* 8008640C */ void SetPosCorrect(cCcD_Obj*, cXyz*, cCcD_Obj*, cXyz*, f32);
/* 80086754 */ void CalcParticleAngle(dCcD_GObjInf*, cCcD_Stts*, cCcD_Stts*, csXyz*);
/* 8008685C */ void ProcAtTgHitmark(bool, bool, cCcD_Obj*, cCcD_Obj*, dCcD_GObjInf*,
dCcD_GObjInf*, cCcD_Stts*, cCcD_Stts*, dCcD_GStts*,
dCcD_GStts*, cXyz*, bool);
/* 80086AC0 */ void SetAtTgGObjInf(bool, bool, cCcD_Obj*, cCcD_Obj*, cCcD_GObjInf*,
cCcD_GObjInf*, cCcD_Stts*, cCcD_Stts*, cCcD_GStts*,
cCcD_GStts*, cXyz*);
/* 80086D8C */ void ChkCamera(cXyz&, cXyz&, f32, fopAc_ac_c*, fopAc_ac_c*, fopAc_ac_c*);
/* 80086FBC */ void chkCameraPoint(cXyz const&, cCcD_ShapeAttr::Shape*, fopAc_ac_c*,
fopAc_ac_c*);
/* 800872A8 */ void MoveAfterCheck();
/* 800872AC */ void DrawAfter();
/* 800872B0 */ void Move();
/* 800872D0 */ void Draw();
/* 8008730C */ void MassClear();
/* 80087330 */ void ChkAtTgMtrlHit(u8, u8);
/* 8008734C */ void ChkNoHitGAtTg(cCcD_GObjInf const*, cCcD_GObjInf const*, cCcD_GStts*,
cCcD_GStts*);
static u8 m_mtrl_hit_tbl[64];
};
struct dCcMassS_Mng {
/* 800855E4 */ void Ct();
/* 80085CF0 */ void Clear();
};
struct dCcD_GAtTgCoCommonBase {
/* 80083678 */ void SetHitApid(unsigned int);
/* 80083718 */ void SetEffCounterTimer();
/* 80083748 */ void ChkEffCounter();
};
struct cM3dGSphS {};
struct cM3dGSph {
/* 8026F6A8 */ void Set(cM3dGSphS const&);
};
struct cM3dGCps {
/* 8026EF88 */ cM3dGCps();
/* 8026EFA4 */ ~cM3dGCps();
/* 8026F000 */ void Set(cXyz const&, cXyz const&, f32);
};
struct cM3dGAab {};
struct cCcS {
/* 80264A94 */ void Ct();
/* 80264B60 */ void Dt();
/* 80265CCC */ void Move();
/* 80265D30 */ void DrawClear();
/* 80265DF4 */ void SetCoGCorrectProc(cCcD_Obj*, cCcD_Obj*);
};
struct cCcD_SphAttr {
/* 8008721C */ ~cCcD_SphAttr();
/* 802646E0 */ void CalcAabBox();
};
struct cCcD_DivideInfo {
/* 80263368 */ void Chk(cCcD_DivideInfo const&) const;
};
struct cCcD_DivideArea {
/* 802636A0 */ void CalcDivideInfoOverArea(cCcD_DivideInfo*, cM3dGAab const&);
};
struct cCcD_CpsAttr {
/* 80263FC4 */ void CalcAabBox();
};
struct Vec {};
//
// Forward References:
//
@@ -211,13 +85,6 @@ extern "C" void Set__8cM3dGCpsFRC4cXyzRC4cXyzf();
extern "C" void Set__8cM3dGSphFRC9cM3dGSphS();
extern "C" void cLib_distanceAngleS__Fss();
extern "C" void __dl__FPv();
extern "C" void PSMTXMultVecSR();
extern "C" void PSVECAdd();
extern "C" void PSVECSubtract();
extern "C" void PSVECScale();
extern "C" void PSVECNormalize();
extern "C" void PSVECMag();
extern "C" void PSVECDotProduct();
extern "C" void _savegpr_17();
extern "C" void _savegpr_23();
extern "C" void _savegpr_24();
@@ -237,33 +104,22 @@ extern "C" extern void* __vt__12cCcD_SphAttr[25];
extern "C" extern void* __vt__12cCcD_CpsAttr[25];
extern "C" extern void* __vt__14cCcD_ShapeAttr[22];
extern "C" u8 now__14mDoMtx_stack_c[48];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" u8 BaseZ__4cXyz[12];
extern "C" extern f32 G_CM3D_F_ABS_MIN[1 + 1 /* padding */];
//
// Declarations:
//
/* 80085ED4-80085F08 080814 0034+00 0/0 1/1 0/0 .text Ct__4dCcSFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dCcS::Ct() {
nofralloc
#include "asm/d/cc/d_cc_s/Ct__4dCcSFv.s"
void dCcS::Ct() {
cCcS::Ct();
mMass_Mng.Ct();
}
#pragma pop
/* 80085F08-80085F28 080848 0020+00 0/0 1/1 0/0 .text Dt__4dCcSFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dCcS::Dt() {
nofralloc
#include "asm/d/cc/d_cc_s/Dt__4dCcSFv.s"
void dCcS::Dt() {
cCcS::Dt();
}
#pragma pop
/* ############################################################################################## */
/* 80452778-8045277C 000D78 0004+00 3/3 0/0 0/0 .sdata2 @3705 */
@@ -311,7 +167,7 @@ void dCcS::CalcTgPlusDmg(cCcD_Obj* param_0, cCcD_Obj* param_1, cCcD_Stts* param_
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dCcS::ChkAtTgHitAfterCross(bool param_0, bool param_1, cCcD_GObjInf const* param_2,
asm bool dCcS::ChkAtTgHitAfterCross(bool param_0, bool param_1, cCcD_GObjInf const* param_2,
cCcD_GObjInf const* param_3, cCcD_Stts* param_4,
cCcD_Stts* param_5, cCcD_GStts* param_6, cCcD_GStts* param_7) {
nofralloc
@@ -581,7 +437,8 @@ asm void dCcS::chkCameraPoint(cXyz const& param_0, cCcD_ShapeAttr::Shape* param_
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm cCcD_SphAttr::~cCcD_SphAttr() {
// asm cCcD_SphAttr::~cCcD_SphAttr() {
extern "C" asm void __dt__12cCcD_SphAttrFv() {
nofralloc
#include "asm/d/cc/d_cc_s/__dt__12cCcD_SphAttrFv.s"
}
@@ -598,34 +455,21 @@ void dCcS::DrawAfter() {
}
/* 800872B0-800872D0 081BF0 0020+00 0/0 1/1 0/0 .text Move__4dCcSFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dCcS::Move() {
nofralloc
#include "asm/d/cc/d_cc_s/Move__4dCcSFv.s"
void dCcS::Move() {
cCcS::Move();
}
#pragma pop
/* 800872D0-8008730C 081C10 003C+00 0/0 1/1 0/0 .text Draw__4dCcSFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dCcS::Draw() {
nofralloc
#include "asm/d/cc/d_cc_s/Draw__4dCcSFv.s"
void dCcS::Draw() {
DrawAfter();
DrawClear();
mMass_Mng.Clear();
}
#pragma pop
/* 8008730C-80087330 081C4C 0024+00 0/0 0/0 1/1 .text MassClear__4dCcSFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dCcS::MassClear() {
nofralloc
#include "asm/d/cc/d_cc_s/MassClear__4dCcSFv.s"
void dCcS::MassClear() {
mMass_Mng.Clear();
}
#pragma pop
/* ############################################################################################## */
/* 803AC3A4-803AC3E4 0094C4 0040+00 1/1 0/0 0/0 .data m_mtrl_hit_tbl__4dCcS */
@@ -651,7 +495,7 @@ asm void dCcS::ChkAtTgMtrlHit(u8 param_0, u8 param_1) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dCcS::ChkNoHitGAtTg(cCcD_GObjInf const* param_0, cCcD_GObjInf const* param_1,
asm bool dCcS::ChkNoHitGAtTg(cCcD_GObjInf const* param_0, cCcD_GObjInf const* param_1,
cCcD_GStts* param_2, cCcD_GStts* param_3) {
nofralloc
#include "asm/d/cc/d_cc_s/ChkNoHitGAtTg__4dCcSFPC12cCcD_GObjInfPC12cCcD_GObjInfP10cCcD_GSttsP10cCcD_GStts.s"
+3 -9
View File
@@ -230,7 +230,6 @@ extern "C" void __dt__8cM3dGCylFv();
extern "C" void __dt__8cM3dGAabFv();
extern "C" void __dt__15cCcD_DivideInfoFv();
extern "C" extern char const* const d_com_d_com_inf_game__stringBase0;
extern "C" extern u32 g_whiteColor;
extern "C" extern u32 g_saftyWhiteColor;
//
@@ -1327,7 +1326,7 @@ dTimer_c* dComIfG_play_c::getTimerPtr() {
}
void dComIfG_inf_c::ct() {
field_0x1ddf8 = 0xFF;
mFadeBrightness = 255;
play.ct();
mWorldDark = 0;
field_0x1ddfa = -1;
@@ -1348,12 +1347,7 @@ SECTION_DEAD static char const* const stringBase_80379043 = "F_SP102";
#pragma pop
/* 80450600-80450604 000080 0004+00 0/0 18/18 2/2 .sdata g_clearColor */
SECTION_SDATA extern u8 g_clearColor[4] = {
0x00,
0x00,
0x00,
0x00,
};
SECTION_SDATA extern GXColor g_clearColor = {0, 0, 0, 0};
/* 80450604-80450608 000084 0004+00 1/1 10/10 15/15 .sdata g_blackColor */
SECTION_SDATA extern GXColor g_blackColor = {0, 0, 0, 255};
@@ -2591,7 +2585,7 @@ asm void dComIfGs_staffroll_next_go_check() {
/* ############################################################################################## */
/* 80450608-8045060C 000088 0004+00 0/0 6/6 11/11 .sdata g_whiteColor */
SECTION_SDATA extern u32 g_whiteColor = 0xFFFFFFFF;
SECTION_SDATA extern GXColor g_whiteColor = {255, 255, 255, 255};
/* 8045060C-80450610 00008C 0004+00 0/0 3/3 3/3 .sdata g_saftyWhiteColor */
SECTION_SDATA extern u32 g_saftyWhiteColor = 0xA0A0A0FF;
+4 -3
View File
@@ -4,6 +4,7 @@
//
#include "d/d_bomb.h"
#include "d/d_procname.h"
#include "dol2asm.h"
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
@@ -14,13 +15,13 @@ bool dBomb_c::checkStateCarry() {
}
bool dBomb_c::checkFlowerBombWait(fopAc_ac_c* param_1) {
return (fopAcM_GetName(&mActor) == 0x221 && fopAcM_GetParam(&mActor) == 4);
return (fopAcM_GetName(&mActor) == PROC_NBOMB && fopAcM_GetParam(&mActor) == 4);
}
bool dBomb_c::checkWaterBomb(fopAc_ac_c* param_1) {
return (fopAcM_GetName(&mActor) == 0x221 && daNbomb_c::checkWaterBomb());
return (fopAcM_GetName(&mActor) == PROC_NBOMB && daNbomb_c::checkWaterBomb());
}
bool dBomb_c::checkInsectBombMove(fopAc_ac_c* param_1) {
return (fopAcM_GetName(&mActor) == 0x221 && fopAcM_GetParam(&mActor) == 7);
return (fopAcM_GetName(&mActor) == PROC_NBOMB && fopAcM_GetParam(&mActor) == 7);
}
+1 -1
View File
@@ -184,7 +184,7 @@ extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
/* ############################################################################################## */
/* 8037B140-8037B180 0077A0 0040+00 1/1 0/0 0/0 .rodata black_tex */
SECTION_RODATA static u8 const black_tex[64] = {
SECTION_RODATA static u8 const black_tex[64] ALIGN_DECL(32) = {
0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+76 -43
View File
@@ -4,7 +4,10 @@
//
#include "d/d_eye_hl.h"
#include "MSL_C.PPCEABI.bare.H/MSL_Common/Src/string.h"
#include "d/com/d_com_inf_game.h"
#include "dol2asm.h"
#include "dolphin/os/OS.h"
#include "dolphin/types.h"
//
@@ -26,52 +29,45 @@ extern "C" extern u8 struct_80450FBC[4];
// External References:
//
extern "C" void OSReport_Error();
extern "C" void getName__10JUTNameTabCFUs();
extern "C" void _savegpr_27();
extern "C" void _restgpr_27();
extern "C" void strcmp();
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u8 g_envHIO[68];
//
// Declarations:
//
/* ############################################################################################## */
/* 8037B100-8037B100 007760 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_8037B100 =
"目のハイライトテクスチャーがありません!\n";
/* @stringBase0 padding */
SECTION_DEAD static char const* const pad_8037B12A = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
#pragma pop
/* 8009C964-8009CA28 0972A4 00C4+00 0/0 2/2 0/0 .text entry__8dEyeHL_cFP12J3DModelDataPCc
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dEyeHL_c::entry(J3DModelData* param_0, char const* param_1) {
nofralloc
#include "asm/d/d_eye_hl/entry__8dEyeHL_cFP12J3DModelDataPCc.s"
void dEyeHL_c::entry(J3DModelData* p_mData, char const* name) {
J3DTexture* tex = p_mData->getTexture();
JUTNameTab* tex_nametab = p_mData->getTextureName();
if (tex != NULL && tex_nametab != NULL) {
for (u16 i = 0; i < tex->getNum(); i++) {
const char* tex_name = tex_nametab->getName(i);
if (tex_name != NULL && !strcmp(tex_name, name)) {
m_timg = tex->getResTIMG(i);
m_lodBias = m_timg->LODBias;
dEyeHL_mng_c::entry(this);
return;
}
}
}
// "Eye Highlight Texture doesn't exist!\n"
OSReport_Error("目のハイライトテクスチャーがありません!\n");
}
#pragma pop
/* 8009CA28-8009CA48 097368 0020+00 0/0 3/3 0/0 .text remove__8dEyeHL_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dEyeHL_c::remove() {
nofralloc
#include "asm/d/d_eye_hl/remove__8dEyeHL_cFv.s"
void dEyeHL_c::remove() {
dEyeHL_mng_c::remove(this);
}
#pragma pop
/* ############################################################################################## */
/* 80450FA8-80450FB0 0004A8 0004+04 3/3 0/0 0/0 .sbss m_obj__12dEyeHL_mng_c */
u8 dEyeHL_mng_c::m_obj[4 + 4 /* padding */];
dEyeHL_mng_c* dEyeHL_mng_c::m_obj;
/* 80452C10-80452C14 001210 0004+00 1/1 0/0 0/0 .sdata2 @3862 */
SECTION_SDATA2 static f32 lit_3862 = 2.0f;
@@ -79,7 +75,30 @@ SECTION_SDATA2 static f32 lit_3862 = 2.0f;
/* 80452C14-80452C18 001214 0004+00 1/1 0/0 0/0 .sdata2 @3863 */
SECTION_SDATA2 static f32 lit_3863 = 45.0f;
inline BOOL dComIfGp_event_runCheck() {
return g_dComIfG_gameInfo.play.getEvent().runCheck();
}
/* 8009CA48-8009CB14 097388 00CC+00 0/0 1/1 0/0 .text update__12dEyeHL_mng_cFv */
// small issue with cLib_minMaxLimit
#ifdef NONMATCHING
void dEyeHL_mng_c::update() {
dEyeHL_mng_c* obj = m_obj;
if (g_envHIO[0x10] == 0 || !dComIfGp_event_runCheck()) {
for (; obj != NULL; obj = obj->m_next) {
obj->m_timg->LODBias = obj->m_lodBias;
}
} else {
s16 tmp = 2.0f * (dComIfGd_getView()->field_0xd0 - 45.0f);
for (; obj != NULL; obj = obj->m_next) {
ResTIMG* timg = obj->m_timg;
timg->LODBias = obj->m_lodBias + tmp;
timg->LODBias = cLib_minMaxLimit(timg->LODBias, (s16)-400, (s16)399);
}
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -88,27 +107,41 @@ asm void dEyeHL_mng_c::update() {
#include "asm/d/d_eye_hl/update__12dEyeHL_mng_cFv.s"
}
#pragma pop
#endif
/* 8009CB14-8009CB34 097454 0020+00 1/1 0/0 0/0 .text entry__12dEyeHL_mng_cFP8dEyeHL_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dEyeHL_mng_c::entry(dEyeHL_c* param_0) {
nofralloc
#include "asm/d/d_eye_hl/entry__12dEyeHL_mng_cFP8dEyeHL_c.s"
void dEyeHL_mng_c::entry(dEyeHL_c* i_obj) {
if (m_obj != NULL) {
m_obj->m_pre = i_obj;
}
i_obj->m_next = m_obj;
m_obj = i_obj;
}
#pragma pop
/* 8009CB34-8009CB88 097474 0054+00 1/1 0/0 0/0 .text remove__12dEyeHL_mng_cFP8dEyeHL_c
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dEyeHL_mng_c::remove(dEyeHL_c* param_0) {
nofralloc
#include "asm/d/d_eye_hl/remove__12dEyeHL_mng_cFP8dEyeHL_c.s"
void dEyeHL_mng_c::remove(dEyeHL_c* i_obj) {
if (i_obj->m_timg != NULL) {
dEyeHL_mng_c* prev = i_obj->m_pre;
dEyeHL_mng_c* next = i_obj->m_next;
if (next != NULL) {
next->m_pre = prev;
}
if (prev == NULL) {
m_obj = next;
} else {
prev->m_next = next;
next = m_obj;
}
i_obj->m_timg->LODBias = i_obj->m_lodBias;
i_obj->m_timg = NULL;
i_obj->m_pre = NULL;
i_obj->m_next = NULL;
}
}
#pragma pop
/* ############################################################################################## */
/* 80450FB0-80450FB8 -00001 0008+00 0/0 2/2 0/0 .sbss None */
@@ -116,7 +149,7 @@ asm void dEyeHL_mng_c::remove(dEyeHL_c* param_0) {
/* 80450FB1 0001+00 data_80450FB1 None */
/* 80450FB2 0006+00 data_80450FB2 None */
extern u8 struct_80450FB0[8];
u8 struct_80450FB0[8];
u8 struct_80450FB0[8] ALIGN_DECL(8);
/* 80450FB8-80450FBC -00001 0004+00 0/0 1/1 0/0 .sbss None */
/* 80450FB8 0001+00 data_80450FB8 None */
+7 -4
View File
@@ -8,6 +8,8 @@
#include "dol2asm.h"
#include "dolphin/types.h"
#include "d/com/d_com_inf_game.h"
//
// Types:
//
@@ -42,12 +44,8 @@ extern "C" void dKyw_wether_move_draw__Fv();
extern "C" void dKyw_wether_draw__Fv();
extern "C" void dKy_FiveSenses_fullthrottle_dark__Fv();
extern "C" void framework__10Z2EnvSeMgrFv();
extern "C" void OSGetTime();
extern "C" void OSTicksToCalendarTime();
extern "C" void strcmp();
extern "C" extern void* g_fopKy_Method[5 + 1 /* padding */];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u8 g_env_light[4880];
extern "C" extern u8 g_mEnvSeMgr[780];
@@ -55,6 +53,11 @@ extern "C" extern u8 g_mEnvSeMgr[780];
// Declarations:
//
/* 801ADD00-801ADD38 1A8640 0038+00 2/2 0/0 0/0 .text dKankyo_DayProc__Fv */
void dKankyo_DayProc() {
dComIfGs_offTmpBit(dSv_event_tmp_flag_c::tempBitLabels[91]);
}
static bool dKyeff_Draw(dKyeff_c* ptr) {
dKyw_wether_draw();
return true;
+454 -343
View File
File diff suppressed because it is too large Load Diff
+99 -80
View File
@@ -66,76 +66,101 @@ extern "C" extern u8 g_env_light[4880];
//
/* 803A8E98-803A9198 005FB8 0300+00 1/1 0/0 0/0 .data l_kydata_BloomInf_tbl */
SECTION_DATA static u8 l_kydata_BloomInf_tbl[768] = {
// Each is 0xc long; All u8's
0x01, 0xFF, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x00, 0x28, 0x46, 0x87, 0xCF, 0xB1, 0x38, 0xD2, 0xFF, 0xFF, 0xFF, 0x60, //
0x00, 0x2D, 0x46, 0x73, 0xCF, 0xB1, 0x38, 0xD2, 0xFF, 0xFF, 0xFF, 0x60, //
0x00, 0x00, 0x40, 0x30, 0x60, 0xBA, 0xEC, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x01, 0x40, 0x50, 0x40, 0x86, 0x83, 0x96, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x01, 0x64, 0x50, 0x50, 0xFF, 0xD7, 0x96, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x01, 0xA0, 0x30, 0xC8, 0x81, 0x77, 0x6F, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x01, 0x64, 0x40, 0x60, 0xFF, 0x60, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x01, 0x60, 0x5E, 0x60, 0x69, 0x86, 0xA5, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x01, 0x40, 0x60, 0x6E, 0x58, 0xA5, 0x8C, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x00, 0x23, 0x2F, 0x9B, 0x7D, 0x6E, 0x50, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x01, 0x30, 0x40, 0x80, 0x3C, 0xB7, 0xA0, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x01, 0x38, 0x5F, 0x82, 0x7D, 0x87, 0x93, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x01, 0x73, 0x6C, 0xFF, 0xED, 0xFF, 0xCA, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x01, 0x31, 0x30, 0xC8, 0x97, 0xAB, 0xA0, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x00, 0x28, 0x46, 0x78, 0x42, 0x2E, 0x30, 0xFF, 0x80, 0xFF, 0xFF, 0x54, //
0x00, 0x28, 0x46, 0x87, 0x96, 0xB4, 0x64, 0xD2, 0xFF, 0xFF, 0xFF, 0x54, //
0x01, 0x28, 0x46, 0x73, 0x78, 0x96, 0xA0, 0x0D, 0x00, 0x00, 0x00, 0x00, //
0x01, 0x00, 0x7D, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, //
0x00, 0x62, 0x69, 0x80, 0xB2, 0x5F, 0x00, 0xFF, 0xE4, 0xFF, 0xFF, 0x90, //
0x01, 0x30, 0x40, 0x59, 0xFF, 0xEF, 0x86, 0xCE, 0xFF, 0xD5, 0x8C, 0xC8, //
0x01, 0x6E, 0x46, 0x9A, 0xFF, 0xD7, 0x06, 0xE0, 0xFF, 0xDC, 0xA7, 0x49, //
0x01, 0x40, 0x60, 0x40, 0x6E, 0x80, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x00, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00, //
0x00, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00, //
0x01, 0x8C, 0x2D, 0xA0, 0x63, 0x55, 0x49, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x01, 0x5F, 0x59, 0x5A, 0x96, 0x91, 0x84, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x00, 0x52, 0x64, 0x3C, 0xFF, 0xC2, 0x70, 0xBA, 0xFF, 0xFF, 0xFF, 0x00, //
0x00, 0x8C, 0x2D, 0xA0, 0x63, 0x55, 0x49, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x01, 0x46, 0x5A, 0x41, 0x3C, 0x50, 0x46, 0xFF, 0xFA, 0xFF, 0x9B, 0x78, //
0x01, 0x2E, 0x60, 0x7D, 0x64, 0x96, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x00, 0x00, 0x83, 0xFF, 0x72, 0xD1, 0xFF, 0xFF, 0xFF, 0xE2, 0xFE, 0x7D, //
0x00, 0x5F, 0x14, 0xB4, 0x50, 0x96, 0xFA, 0xFF, 0xFF, 0xFF, 0xFF, 0x64, //
0x00, 0x28, 0x46, 0x87, 0x82, 0xC8, 0xFA, 0xD2, 0xFF, 0xFF, 0xFF, 0x32, //
0x00, 0x20, 0x10, 0x50, 0x64, 0x64, 0x32, 0xFF, 0x96, 0xFF, 0xFF, 0x82, //
0x00, 0x00, 0x00, 0x30, 0x00, 0xBA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x01, 0x40, 0x50, 0x40, 0x86, 0x83, 0x96, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x01, 0x64, 0x50, 0x50, 0xFF, 0xD7, 0x96, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x01, 0xA0, 0x30, 0xC8, 0x81, 0x77, 0x6F, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x01, 0x64, 0x40, 0x60, 0xFF, 0x60, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
0x01, 0x30, 0x30, 0x60, 0x6F, 0x69, 0x52, 0xFF, 0xC0, 0xB9, 0xA1, 0x80, //
0x01, 0x2D, 0x60, 0x87, 0xFF, 0xE0, 0x46, 0xFF, 0xFF, 0x85, 0x79, 0x60, //
0x00, 0x00, 0x88, 0x6A, 0x85, 0x3E, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0x11, //
0x00, 0x2E, 0x41, 0x64, 0xF9, 0xE7, 0x7C, 0xD0, 0xFF, 0xDA, 0x9A, 0xBB, //
0x00, 0x00, 0xFF, 0xFF, 0xBE, 0xB9, 0xB4, 0xE6, 0xFF, 0xFF, 0xFF, 0x00, //
0x00, 0x2D, 0x46, 0x50, 0xCF, 0xB1, 0x38, 0xD2, 0xFF, 0xFF, 0xFF, 0x60, //
0x00, 0xA0, 0x14, 0x32, 0xE6, 0xFF, 0x96, 0xF3, 0xE6, 0xFF, 0x96, 0x6E, //
0x00, 0x52, 0x64, 0x3C, 0xFF, 0xC2, 0x70, 0xBA, 0xFF, 0xFF, 0xFF, 0x00, //
0x00, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0xFF, 0x00, //
0x01, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0x00, //
0x00, 0x00, 0x7D, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, //
0x00, 0x62, 0x69, 0x80, 0xB2, 0x5F, 0x00, 0xFF, 0xE4, 0xFF, 0xFF, 0x90, //
0x01, 0x30, 0x40, 0x59, 0xFF, 0xEF, 0x86, 0xCE, 0xFF, 0xD5, 0x8C, 0xC8, //
0x01, 0x6E, 0x46, 0x9A, 0xFF, 0xD7, 0x06, 0xE0, 0xFF, 0xDC, 0xA7, 0x49, //
0x00, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00, //
0x00, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00, //
0x00, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00, //
0x00, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00, //
0x00, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00, //
0x00, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00, //
0x00, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00, //
0x00, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00, //
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //
static dKydata_BloomInfo_c l_kydata_BloomInf_tbl[BLOOMINFO_MAX] = {
{BLOOM_SOFT, 0xFF, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00},
{BLOOM_CLEAR, 0x28, 0x46, 0x87, 0xCF, 0xB1, 0x38, 0xD2, 0xFF, 0xFF, 0xFF, 0x60}, // Twilight
{BLOOM_CLEAR, 0x2D, 0x46, 0x73, 0xCF, 0xB1, 0x38, 0xD2, 0xFF, 0xFF, 0xFF,
0x60}, // Twilight Weak
{BLOOM_CLEAR, 0x00, 0x40, 0x30, 0x60, 0xBA, 0xEC, 0xFF, 0xFF, 0xFF, 0xFF, 0x00}, // Senses
{BLOOM_SOFT, 0x40, 0x50, 0x40, 0x86, 0x83, 0x96, 0xFF, 0xFF, 0xFF, 0xFF,
0x00}, // Field Normal (Morning 0)
{BLOOM_SOFT, 0x64, 0x50, 0x50, 0xFF, 0xD7, 0x96, 0xFF, 0xFF, 0xFF, 0xFF,
0x00}, // Field Normal (Morning 1)
{BLOOM_SOFT, 0xA0, 0x30, 0xC8, 0x81, 0x77, 0x6F, 0xFF, 0xFF, 0xFF, 0xFF,
0x00}, // Field Normal (Afternoon)
{BLOOM_SOFT, 0x64, 0x40, 0x60, 0xFF, 0x60, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
0x00}, // Field Normal (Evening 0)
{BLOOM_SOFT, 0x60, 0x5E, 0x60, 0x69, 0x86, 0xA5, 0xFF, 0xFF, 0xFF, 0xFF,
0x00}, // Field Normal (Evening 1)
{BLOOM_SOFT, 0x40, 0x60, 0x6E, 0x58, 0xA5, 0x8C, 0xFF, 0xFF, 0xFF, 0xFF,
0x00}, // Field Normal (Night)
{BLOOM_CLEAR, 0x23, 0x2F, 0x9B, 0x7D, 0x6E, 0x50, 0xFF, 0xFF, 0xFF, 0xFF,
0x00}, // Bulblin Camp Fire
{BLOOM_SOFT, 0x30, 0x40, 0x80, 0x3C, 0xB7, 0xA0, 0xFF, 0xFF, 0xFF, 0xFF,
0x00}, // Palace of Twilight
{BLOOM_SOFT, 0x38, 0x5F, 0x82, 0x7D, 0x87, 0x93, 0xFF, 0xFF, 0xFF, 0xFF, 0x00}, // demo28_03
{BLOOM_SOFT, 0x73, 0x6C, 0xFF, 0xED, 0xFF, 0xCA, 0xFF, 0xFF, 0xFF, 0xFF,
0x00}, // Golden Bug Glow
{BLOOM_SOFT, 0x31, 0x30, 0xC8, 0x97, 0xAB, 0xA0, 0xFF, 0xFF, 0xFF, 0xFF, 0x00}, // Cloud Sea
{BLOOM_CLEAR, 0x28, 0x46, 0x78, 0x42, 0x2E, 0x30, 0xFF, 0x80, 0xFF, 0xFF,
0x54}, // Zora's Domain Outside (Twilight)
{BLOOM_CLEAR, 0x28, 0x46, 0x87, 0x96, 0xB4, 0x64, 0xD2, 0xFF, 0xFF, 0xFF,
0x54}, // Zora's Domain Inside (Twilight)
{BLOOM_SOFT, 0x28, 0x46, 0x73, 0x78, 0x96, 0xA0, 0x0D, 0x00, 0x00, 0x00, 0x00}, // Senses-like
{BLOOM_SOFT, 0x00, 0x7D, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF,
0xFF}, // Sacred Grove Time Travel
{BLOOM_CLEAR, 0x62, 0x69, 0x80, 0xB2, 0x5F, 0x00, 0xFF, 0xE4, 0xFF, 0xFF, 0x90}, // Sewers
{BLOOM_SOFT, 0x30, 0x40, 0x59, 0xFF, 0xEF, 0x86, 0xCE, 0xFF, 0xD5, 0x8C,
0xC8}, // Flashback Scene
{BLOOM_SOFT, 0x6E, 0x46, 0x9A, 0xFF, 0xD7, 0x06, 0xE0, 0xFF, 0xDC, 0xA7,
0x49}, // Twilight Gate
{BLOOM_SOFT, 0x40, 0x60, 0x40, 0x6E, 0x80, 0x80, 0xFF, 0xFF, 0xFF, 0xFF,
0x00}, // Underwater (Normal)
{BLOOM_CLEAR, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
{BLOOM_CLEAR, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
{BLOOM_SOFT, 0x8C, 0x2D, 0xA0, 0x63, 0x55, 0x49, 0xFF, 0xFF, 0xFF, 0xFF,
0x00}, // Dungeon Normal Weak
{BLOOM_SOFT, 0x5F, 0x59, 0x5A, 0x96, 0x91, 0x84, 0xFF, 0xFF, 0xFF, 0xFF,
0x00}, // Dungeon Normal Strong
{BLOOM_CLEAR, 0x52, 0x64, 0x3C, 0xFF, 0xC2, 0x70, 0xBA, 0xFF, 0xFF, 0xFF, 0x00}, // Lava
{BLOOM_CLEAR, 0x8C, 0x2D, 0xA0, 0x63, 0x55, 0x49, 0xFF, 0xFF, 0xFF, 0xFF,
0x00}, // Goron Mines - No Lava
{BLOOM_SOFT, 0x46, 0x5A, 0x41, 0x3C, 0x50, 0x46, 0xFF, 0xFA, 0xFF, 0x9B,
0x78}, // Sacred Grove Past
{BLOOM_SOFT, 0x2E, 0x60, 0x7D, 0x64, 0x96, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x00}, // Castle
{BLOOM_CLEAR, 0x00, 0x83, 0xFF, 0x72, 0xD1, 0xFF, 0xFF, 0xFF, 0xE2, 0xFE, 0x7D}, // Empty
{BLOOM_CLEAR, 0x5F, 0x14, 0xB4, 0x50, 0x96, 0xFA, 0xFF, 0xFF, 0xFF, 0xFF, 0x64}, // Empty
{BLOOM_CLEAR, 0x28, 0x46, 0x87, 0x82, 0xC8, 0xFA, 0xD2, 0xFF, 0xFF, 0xFF, 0x32}, // Empty
{BLOOM_CLEAR, 0x20, 0x10, 0x50, 0x64, 0x64, 0x32, 0xFF, 0x96, 0xFF, 0xFF, 0x82}, // Empty
{BLOOM_CLEAR, 0x00, 0x00, 0x30, 0x00, 0xBA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
{BLOOM_SOFT, 0x40, 0x50, 0x40, 0x86, 0x83, 0x96, 0xFF, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
{BLOOM_SOFT, 0x64, 0x50, 0x50, 0xFF, 0xD7, 0x96, 0xFF, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
{BLOOM_SOFT, 0xA0, 0x30, 0xC8, 0x81, 0x77, 0x6F, 0xFF, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
{BLOOM_SOFT, 0x64, 0x40, 0x60, 0xFF, 0x60, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
{BLOOM_SOFT, 0x30, 0x30, 0x60, 0x6F, 0x69, 0x52, 0xFF, 0xC0, 0xB9, 0xA1,
0x80}, // Demo: Flashback Scene
{BLOOM_SOFT, 0x2D, 0x60, 0x87, 0xFF, 0xE0, 0x46, 0xFF, 0xFF, 0x85, 0x79,
0x60}, // Demo: Fake Twilight
{BLOOM_CLEAR, 0x00, 0x88, 0x6A, 0x85, 0x3E, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF,
0x11}, // Demo: demo32_03
{BLOOM_CLEAR, 0x2E, 0x41, 0x64, 0xF9, 0xE7, 0x7C, 0xD0, 0xFF, 0xDA, 0x9A,
0xBB}, // Demo: Twilight Flashback Scene
{BLOOM_CLEAR, 0x00, 0xFF, 0xFF, 0xBE, 0xB9, 0xB4, 0xE6, 0xFF, 0xFF, 0xFF,
0x00}, // Demo: demo31_20
{BLOOM_CLEAR, 0x2D, 0x46, 0x50, 0xCF, 0xB1, 0x38, 0xD2, 0xFF, 0xFF, 0xFF,
0x60}, // Demo: Lava W
{BLOOM_CLEAR, 0xA0, 0x14, 0x32, 0xE6, 0xFF, 0x96, 0xF3, 0xE6, 0xFF, 0x96, 0x6E}, // Empty
{BLOOM_CLEAR, 0x52, 0x64, 0x3C, 0xFF, 0xC2, 0x70, 0xBA, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
{BLOOM_CLEAR, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
{BLOOM_SOFT, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
{BLOOM_CLEAR, 0x00, 0x7D, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF}, // Empty
{BLOOM_CLEAR, 0x62, 0x69, 0x80, 0xB2, 0x5F, 0x00, 0xFF, 0xE4, 0xFF, 0xFF, 0x90}, // Empty
{BLOOM_SOFT, 0x30, 0x40, 0x59, 0xFF, 0xEF, 0x86, 0xCE, 0xFF, 0xD5, 0x8C, 0xC8}, // Empty
{BLOOM_SOFT, 0x6E, 0x46, 0x9A, 0xFF, 0xD7, 0x06, 0xE0, 0xFF, 0xDC, 0xA7, 0x49}, // Empty
{BLOOM_CLEAR, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
{BLOOM_CLEAR, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
{BLOOM_CLEAR, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
{BLOOM_CLEAR, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
{BLOOM_CLEAR, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
{BLOOM_CLEAR, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
{BLOOM_CLEAR, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
{BLOOM_CLEAR, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
{BLOOM_CLEAR, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // Empty
{BLOOM_CLEAR, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // Empty
};
/* 803A9198-803A92A8 -00001 0110+00 1/1 0/0 0/0 .data l_darkworld_tbl */
static dKyd_darkworldTblEntry l_darkworld_tbl[34] = {
static dKydata_darkworldInfo_c l_darkworld_tbl[34] = {
{"R_SP30", UNCLEARABLE}, // UNUSED - Unknown Room
{"T_SP05", TEST}, // UNUSED - E3 2005 Warp Test (Old)
{"T_SP05A", TEST}, // UNUSED - Ito Warp Test
@@ -172,13 +197,8 @@ static dKyd_darkworldTblEntry l_darkworld_tbl[34] = {
{"D_SB10", FARON}, // Faron Woods Cave
};
// TODO: wrong type
// Only thing I can easily find: the byte is written to 8042DD4D and it seems to control the Y
// pos(?) (essentially brightness) of the soft spotlight that is on wolf Link during twilight? Will
// need more investigation before can be changed to appropriate type. Leaving this way since the
// stageNames are already converted.
/* 803A92A8-803A93C8 -00001 0120+00 1/1 0/0 0/0 .data l_light_size_tbl */
static dKyd_darkworldTblEntry l_light_size_tbl[36] = {
static dKydata_lightsizeInfo_c l_light_size_tbl[36] = {
{"R_SP01", 0}, // Ordon Interiors
{"R_SP108", 0}, // Coro's Lantern Shop
{"F_SP109", 2}, // Kakariko Village
@@ -217,9 +237,8 @@ static dKyd_darkworldTblEntry l_light_size_tbl[36] = {
{"D_SB10", 0}, // Faron Woods Cave
};
// TODO: wrong type
/* 803A93C8-803A9410 -00001 0048+00 1/1 0/0 0/0 .data l_light_size_tbl_tw */
static dKyd_darkworldTblEntry l_light_size_tbl_tw[9] = {
static dKydata_lightsizeInfo_c l_light_size_tbl_tw[9] = {
{"F_SP109", 2}, // Kakariko Village
{"F_SP110", 2}, // Death Mountain
{"R_SP209", 2}, // Sanctuary Basement
@@ -445,23 +464,23 @@ void* dKyd_maple_col_getp() {
}
/* 80056A70-80056A7C 0513B0 000C+00 0/0 4/4 0/0 .text dKyd_darkworld_tbl_getp__Fv */
dKyd_darkworldTblEntry* dKyd_darkworld_tbl_getp() {
dKydata_darkworldInfo_c* dKyd_darkworld_tbl_getp() {
return l_darkworld_tbl;
}
/* 80056A7C-80056A88 0513BC 000C+00 0/0 1/1 0/0 .text dKyd_light_size_tbl_getp__Fv */
void* dKyd_light_size_tbl_getp() {
dKydata_lightsizeInfo_c* dKyd_light_size_tbl_getp() {
return l_light_size_tbl;
}
/* 80056A88-80056A94 0513C8 000C+00 0/0 1/1 0/0 .text dKyd_light_tw_size_tbl_getp__Fv */
void* dKyd_light_tw_size_tbl_getp() {
dKydata_lightsizeInfo_c* dKyd_light_tw_size_tbl_getp() {
return l_light_size_tbl_tw;
}
/* 80056A94-80056AA8 0513D4 0014+00 0/0 1/1 0/0 .text dKyd_BloomInf_tbl_getp__Fi */
void* dKyd_BloomInf_tbl_getp(int tblIdx) {
return &l_kydata_BloomInf_tbl[tblIdx * 0xC];
dKydata_BloomInfo_c* dKyd_BloomInf_tbl_getp(int tblIdx) {
return &l_kydata_BloomInf_tbl[tblIdx];
}
/* 8037A1C0-8037A1C0 006820 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
File diff suppressed because it is too large Load Diff
+56 -54
View File
@@ -17,14 +17,13 @@ struct dRes_control_c {
/* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int);
};
struct dMpath_n {
struct dTexObjAggregate_c {
/* 8003C85C */ void create();
/* 8003C8F4 */ void remove();
/* 8003D740 */ ~dTexObjAggregate_c() {remove();};
/* 8003D740 */ ~dTexObjAggregate_c() { remove(); };
inline dTexObjAggregate_c() {
for(int i = 0;i<7;i++) {
for (int i = 0; i < 7; i++) {
mTexObjs[i] = NULL;
}
}
@@ -34,7 +33,7 @@ struct dMpath_n {
static dTexObjAggregate_c m_texObjAgg;
};
STATIC_ASSERT(sizeof(dMpath_n::dTexObjAggregate_c)==28);
STATIC_ASSERT(sizeof(dMpath_n::dTexObjAggregate_c) == 28);
//
// Forward References:
@@ -245,42 +244,43 @@ asm void dRenderingFDAmap_c::setTevSettingIntensityTextureToCI() const {
*/
void dRenderingFDAmap_c::drawBack() const {
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS,GX_DIRECT);
GXSetVtxAttrFmt(GX_VTXFMT0,GX_VA_POS,GX_CLR_RGBA,GX_F32,0);
GXSetVtxDesc(GX_VA_POS, GX_DIRECT);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_CLR_RGBA, GX_F32, 0);
GXColor* colorPtr = getBackColor();
GXSetTevColor(GX_TEVREG0,*colorPtr);
GXBegin(GX_QUADS,GX_VTXFMT0,4);
GXPosition3f32(-field_0x8,-field_0xc,0);
GXPosition3f32(field_0x8,-field_0xc,0);
GXPosition3f32(field_0x8,field_0xc,0);
GXPosition3f32(-field_0x8,field_0xc,0);
GXSetTevColor(GX_TEVREG0, *colorPtr);
GXBegin(GX_QUADS, GX_VTXFMT0, 4);
GXPosition3f32(-field_0x8, -field_0xc, 0);
GXPosition3f32(field_0x8, -field_0xc, 0);
GXPosition3f32(field_0x8, field_0xc, 0);
GXPosition3f32(-field_0x8, field_0xc, 0);
GXEnd();
}
/* 8003D188-8003D320 037AC8 0198+00 1/0 8/0 0/0 .text preRenderingMap__18dRenderingFDAmap_cFv */
void dRenderingFDAmap_c::preRenderingMap() {
GXSetViewport(0.0f,0.0f,field_0x1c,field_0x1e,0.0f,1.0f);
GXSetScissor(0,0,field_0x1c,field_0x1e);
GXSetViewport(0.0f, 0.0f, field_0x1c, field_0x1e, 0.0f, 1.0f);
GXSetScissor(0, 0, field_0x1c, field_0x1e);
GXSetNumChans(1);
GXSetNumTevStages(1);
GXSetChanCtrl(GX_COLOR0A0,GX_FALSE,GX_SRC_REG,GX_SRC_REG,GX_LIGHT_NULL,GX_DF_NONE,GX_AF_NONE);
GXSetAlphaCompare(GX_ALWAYS,0,GX_AOP_OR,GX_ALWAYS,0);
GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, GX_LIGHT_NULL, GX_DF_NONE,
GX_AF_NONE);
GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_OR, GX_ALWAYS, 0);
GXSetZCompLoc(GX_TRUE);
GXSetZMode(GX_FALSE,GX_ALWAYS,GX_FALSE);
GXSetBlendMode(GX_BM_NONE,GX_BL_SRC_ALPHA,GX_BL_INV_SRC_ALPHA,GX_LO_CLEAR);
GXSetZMode(GX_FALSE, GX_ALWAYS, GX_FALSE);
GXSetBlendMode(GX_BM_NONE, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_CLEAR);
GXColor color = g_clearColor;
GXSetFog(GX_FOG_NONE,0.0f,0.0f,0.0f,0.0f,color);
GXSetFog(GX_FOG_NONE, 0.0f, 0.0f, 0.0f, 0.0f, color);
GXSetCullMode(GX_CULL_NONE);
GXSetDither(GX_FALSE);
GXSetNumIndStages(0);
GXSetClipMode(GX_FALSE);
setTevSettingNonTextureDirectColor();
float right = field_0x8*0.5f;
float top = field_0xc*0.5f;
float right = field_0x8 * 0.5f;
float top = field_0xc * 0.5f;
Mtx44 matrix;
C_MTXOrtho(matrix,top,-top,-right,right,0.0f,10000.0f);
GXSetProjection(matrix,GX_ORTHOGRAPHIC);
GXLoadPosMtxImm(g_mDoMtx_identity,GX_PNMTX0);
C_MTXOrtho(matrix, top, -top, -right, right, 0.0f, 10000.0f);
GXSetProjection(matrix, GX_ORTHOGRAPHIC);
GXLoadPosMtxImm(g_mDoMtx_identity, GX_PNMTX0);
GXSetCurrentMtx(0);
drawBack();
}
@@ -308,53 +308,55 @@ dMpath_n::dTexObjAggregate_c dMpath_n::m_texObjAgg;
* renderingDecoration__18dRenderingFDAmap_cFPCQ211dDrawPath_c10line_class */
void dRenderingFDAmap_c::renderingDecoration(dDrawPath_c::line_class const* line) {
s32 width = getDecorationLineWidth(line->unk1);
if (width<=0) {
if (width <= 0) {
return;
}
setTevSettingIntensityTextureToCI();
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS,GX_INDEX16);
GXSetVtxDesc(GX_VA_TEX0,GX_DIRECT);
GXSetVtxAttrFmt(GX_VTXFMT0,GX_VA_POS,GX_POS_XY,GX_F32,0);
GXSetVtxAttrFmt(GX_VTXFMT0,GX_VA_TEX0,GX_POS_XYZ,GX_F32,0);
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XY, GX_F32, 0);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_POS_XYZ, GX_F32, 0);
GXSetNumTevStages(1);
GXLoadTexObj(dMpath_n::m_texObjAgg.mTexObjs[6],GX_TEXMAP0);
GXLoadTexObj(dMpath_n::m_texObjAgg.mTexObjs[6], GX_TEXMAP0);
u16* unk = line->unk4;
s32 unk2 = line->unk2;
GXSetLineWidth(width,GX_TO_ONE);
GXSetPointSize(width,GX_TO_ONE);
GXColor* lineColorPtr = getDecoLineColor(line->unk0&0x3f,line->unk1);
GXColor lineColor = *lineColorPtr;
GXSetTevColor(GX_TEVREG0,lineColor);
lineColor.r = lineColor.r-4;
GXSetTevColor(GX_TEVREG1,lineColor);
for (int i = 0; i<unk2; unk++,i++) {
GXSetLineWidth(width, GX_TO_ONE);
GXSetPointSize(width, GX_TO_ONE);
GXColor* lineColorPtr = getDecoLineColor(line->unk0 & 0x3f, line->unk1);
GXColor lineColor = *lineColorPtr;
GXSetTevColor(GX_TEVREG0, lineColor);
lineColor.r = lineColor.r - 4;
GXSetTevColor(GX_TEVREG1, lineColor);
for (int i = 0; i < unk2; unk++, i++) {
#ifndef HYRULE_FIELD_SPEEDHACK
if(i<unk2-1) {
GXSetTevColorIn(GX_TEVSTAGE0,GX_CC_ZERO,GX_CC_ZERO,GX_CC_ZERO,GX_CC_C0);
GXSetTevColorOp(GX_TEVSTAGE0,GX_TEV_ADD,GX_TB_ZERO,GX_CS_SCALE_1,GX_TRUE,GX_TEVPREV);
GXSetTevAlphaIn(GX_TEVSTAGE0,GX_CA_ZERO,GX_CA_ZERO,GX_CA_ZERO,GX_CA_KONST);
GXSetTevAlphaOp(GX_TEVSTAGE0,GX_TEV_ADD,GX_TB_ZERO,GX_CS_SCALE_1,GX_TRUE,GX_TEVPREV);
GXBegin(GX_LINESTRIP,GX_VTXFMT0,2);
if (i < unk2 - 1) {
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_C0);
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
GX_TEVPREV);
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST);
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
GX_TEVPREV);
GXBegin(GX_LINESTRIP, GX_VTXFMT0, 2);
GXPosition1x16(unk[0]);
GXTexCoord2f32(0,0);
GXTexCoord2f32(0, 0);
GXPosition1x16(unk[1]);
GXTexCoord2f32(0,0);
GXTexCoord2f32(0, 0);
}
GXSetTevColorIn(GX_TEVSTAGE0,GX_CC_ZERO,GX_CC_KONST,GX_CC_TEXC,GX_CC_C1);
GXSetTevColorOp(GX_TEVSTAGE0,GX_TEV_ADD,GX_TB_ZERO,GX_CS_SCALE_1,GX_TRUE,GX_TEVPREV);
GXSetTevAlphaIn(GX_TEVSTAGE0,GX_CA_ZERO,GX_CA_ZERO,GX_CA_ZERO,GX_CA_TEXA);
GXSetTevAlphaOp(GX_TEVSTAGE0,GX_TEV_ADD,GX_TB_ZERO,GX_CS_SCALE_1,GX_TRUE,GX_TEVPREV);
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_KONST, GX_CC_TEXC, GX_CC_C1);
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_TEXA);
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
#endif
GXBegin(GX_POINTS,GX_VTXFMT0,1);
GXBegin(GX_POINTS, GX_VTXFMT0, 1);
GXPosition1x16(unk[0]);
GXTexCoord2f32(0,0);
GXTexCoord2f32(0, 0);
GXEnd();
}
setTevSettingNonTextureDirectColor();
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS,GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0,GX_VA_POS,GX_CLR_RGB,GX_F32,0);
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_CLR_RGB, GX_F32, 0);
}
/* 8003D68C-8003D6B8 037FCC 002C+00 1/0 6/0 0/0 .text getDecoLineColor__18dRenderingFDAmap_cFii */
+2 -2
View File
@@ -937,7 +937,7 @@ asm void J2DTextBox::getBlack() const {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J2DPicture::getWhite() const {
asm JUtility::TColor J2DPicture::getWhite() const {
nofralloc
#include "asm/d/menu/d_menu_letter/getWhite__10J2DPictureCFv.s"
}
@@ -947,7 +947,7 @@ asm void J2DPicture::getWhite() const {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J2DPicture::getBlack() const {
asm JUtility::TColor J2DPicture::getBlack() const {
nofralloc
#include "asm/d/menu/d_menu_letter/getBlack__10J2DPictureCFv.s"
}
-1
View File
@@ -263,7 +263,6 @@ extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
extern "C" extern void* __vt__12dDlst_base_c[3];
extern "C" extern void* __vt__10CSTControl[4];
extern "C" u8 m_cpadInfo__8mDoCPd_c[256];
extern "C" extern u8 g_clearColor[4];
extern "C" u8 mFader__13mDoGph_gInf_c[4];
extern "C" u8 mFrameBufferTimg__13mDoGph_gInf_c[4];
extern "C" u8 mFrameBufferTex__13mDoGph_gInf_c[4];
+578 -145
View File
@@ -6,7 +6,9 @@
#include "d/meter/d_meter2_draw.h"
#include "JSystem/J2DGraph/J2DAnmLoader.h"
#include "d/com/d_com_inf_game.h"
#include "d/d_kantera_icon_meter.h"
#include "d/meter/d_meter_HIO.h"
#include "d/msg/d_msg_object.h"
#include "dol2asm.h"
#include "dolphin/types.h"
@@ -14,14 +16,6 @@
// Types:
//
struct dKantera_icon_c {
/* 801AE938 */ dKantera_icon_c();
/* 801AEB7C */ void setAlphaRate(f32);
/* 801AEBA0 */ void setPos(f32, f32);
/* 801AEBF4 */ void setScale(f32, f32);
/* 801AEC44 */ void setNowGauge(u16, u16);
};
struct Z2SeMgr {
/* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8);
/* 802AC50C */ void seStartLevel(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8);
@@ -231,57 +225,46 @@ extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
// Declarations:
//
inline bool dComIfGp_checkPlayerStatus0(int param_0, u32 param_1) {
return g_dComIfG_gameInfo.play.checkPlayerStatus(param_0, 0, param_1);
}
/* ############################################################################################## */
/* 80398258-80398280 0248B8 0028+00 4/4 0/0 0/0 .rodata a_tag$3949 */
SECTION_RODATA static u8 const a_tag[40] = {
0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x61, 0x74, 0x31, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x61,
0x74, 0x32, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x61, 0x74, 0x33, 0x63, 0x6F, 0x6E, 0x74,
0x5F, 0x61, 0x74, 0x34, 0x00, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x61, 0x74,
static u64 const a_tag[5] = {
'cont_at1', 'cont_at2', 'cont_at3', 'cont_at4', 'cont_at',
};
COMPILER_STRIP_GATE(0x80398258, &a_tag);
/* 80398280-803982A8 0248E0 0028+00 0/1 0/0 0/0 .rodata b_tag$3950 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const b_tag[40] = {
0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x62, 0x74, 0x31, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x62,
0x74, 0x32, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x62, 0x74, 0x33, 0x63, 0x6F, 0x6E, 0x74,
0x5F, 0x62, 0x74, 0x34, 0x00, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x62, 0x74,
static u64 const b_tag[5] = {
'cont_bt1', 'cont_bt2', 'cont_bt3', 'cont_bt4', 'cont_bt',
};
COMPILER_STRIP_GATE(0x80398280, &b_tag);
#pragma pop
/* 803982A8-803982D0 024908 0028+00 0/1 0/0 0/0 .rodata z_tag$3951 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const z_tag[40] = {
0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x7A, 0x74, 0x31, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x7A,
0x74, 0x32, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x7A, 0x74, 0x33, 0x63, 0x6F, 0x6E, 0x74,
0x5F, 0x7A, 0x74, 0x34, 0x00, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x72, 0x74,
static u64 const z_tag[5] = {
'cont_zt1', 'cont_zt2', 'cont_zt3', 'cont_zt4', 'cont_rt',
};
COMPILER_STRIP_GATE(0x803982A8, &z_tag);
#pragma pop
/* 803982D0-803982F8 024930 0028+00 0/1 0/0 0/0 .rodata x_tag$3952 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const x_tag[40] = {
0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x78, 0x74, 0x31, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x78,
0x74, 0x32, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x78, 0x74, 0x33, 0x63, 0x6F, 0x6E, 0x74,
0x5F, 0x78, 0x74, 0x34, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x78, 0x74, 0x35,
static u64 const x_tag[5] = {
'cont_xt1', 'cont_xt2', 'cont_xt3', 'cont_xt4', 'cont_xt5',
};
COMPILER_STRIP_GATE(0x803982D0, &x_tag);
#pragma pop
/* 803982F8-80398320 024958 0028+00 0/1 0/0 0/0 .rodata y_tag$3953 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const y_tag[40] = {
0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x79, 0x74, 0x31, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x79,
0x74, 0x32, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x79, 0x74, 0x33, 0x63, 0x6F, 0x6E, 0x74,
0x5F, 0x79, 0x74, 0x34, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x79, 0x74, 0x35,
static u64 const y_tag[5] = {
'cont_yt1', 'cont_yt2', 'cont_yt3', 'cont_yt4', 'cont_yt5',
};
COMPILER_STRIP_GATE(0x803982F8, &y_tag);
#pragma pop
/* 803988D0-803988D0 024F30 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
@@ -307,17 +290,9 @@ SECTION_DEAD static char const* const stringBase_803989BF = "";
#pragma pop
/* 803BF328-803BF350 -00001 0028+00 1/1 0/0 0/0 .data bmg_filename$3954 */
SECTION_DATA static void* bmg_filename[10] = {
(void*)&d_meter_d_meter2_draw__stringBase0,
(void*)(((char*)&d_meter_d_meter2_draw__stringBase0) + 0xB),
(void*)(((char*)&d_meter_d_meter2_draw__stringBase0) + 0x16),
(void*)(((char*)&d_meter_d_meter2_draw__stringBase0) + 0x21),
(void*)(((char*)&d_meter_d_meter2_draw__stringBase0) + 0x2C),
(void*)(((char*)&d_meter_d_meter2_draw__stringBase0) + 0x37),
(void*)(((char*)&d_meter_d_meter2_draw__stringBase0) + 0x42),
(void*)(((char*)&d_meter_d_meter2_draw__stringBase0) + 0x4D),
(void*)(((char*)&d_meter_d_meter2_draw__stringBase0) + 0x58),
(void*)(((char*)&d_meter_d_meter2_draw__stringBase0) + 0x63),
SECTION_DATA static char* bmg_filename[10] = {
"zel_00.bmg", "zel_01.bmg", "zel_02.bmg", "zel_03.bmg", "zel_04.bmg",
"zel_05.bmg", "zel_06.bmg", "zel_07.bmg", "zel_08.bmg", "zel_99.bmg",
};
/* 803BF350-803BF554 01C470 0204+00 1/1 0/0 0/0 .data i_action_num$8471 */
@@ -527,6 +502,91 @@ SECTION_SDATA2 static f32 lit_4185 = 20.0f;
/* 8020FAB4-802102F8 20A3F4 0844+00 0/0 1/1 0/0 .text __ct__13dMeter2Draw_cFP10JKRExpHeap
*/
#ifdef NONMATCHING
dMeter2Draw_c::dMeter2Draw_c(JKRExpHeap* p_heap) {
mp_heap = p_heap;
JKRHeap* heap = mDoExt_setCurrentHeap(dComIfGp_getMsgExpHeap());
void* msg_res = JKRGetTypeResource('ROOT', "zel_00.bmg", dComIfGp_getMsgDtArchive(0));
dMeter2Info_setMsgResource(msg_res);
void* stg_msg_res = JKRGetTypeResource('ROOT', bmg_filename[dMsgObject_getGroupID()],
dComIfGp_getMsgDtArchive(1));
dMeter2Info_setStageMsgResource(stg_msg_res);
void* msg_unit_res = JKRGetTypeResource('ROOT', "zel_unit.bmg", dComIfGp_getMsgDtArchive(0));
dMeter2Info_setMsgUnitResource(msg_unit_res);
mDoExt_setCurrentHeap(heap);
mpScreen = new J2DScreen();
mpScreen->setPriority("zelda_game_image.blo", 0x20000, dComIfGp_getMain2DArchive());
dPaneClass_showNullPane(mpScreen);
mpScreen->search('ju_ring5')->hide();
field_0x73c = 0.0f;
for (int i = 0; i < 2; i++) {
mpKanteraMeter[i] = new dKantera_icon_c();
}
mpKanteraScreen = new J2DScreen();
mpKanteraScreen->setPriority("zelda_game_image_kantera.blo", 0x20000,
dComIfGp_getMain2DArchive());
dPaneClass_showNullPane(mpKanteraScreen);
mpPikariScreen = new J2DScreen();
mpPikariScreen->setPriority("zelda_icon_pikari.blo", 0x20000, dComIfGp_getMain2DArchive());
dPaneClass_showNullPane(mpPikariScreen);
mpPikariParent = new CPaneMgr(mpPikariScreen, 'pika_n', 0, NULL);
field_0x548 = ((J2DPicture*)mpPikariScreen->search('pika00'))->getBlack();
field_0x54c = ((J2DPicture*)mpPikariScreen->search('pika00'))->getWhite();
OSInitFastCast();
void* pikari_bck = JKRGetNameResource("zelda_icon_pikari.bck", dComIfGp_getMain2DArchive());
mPikariBck = (J2DAnmTransformKey*)J2DAnmLoaderDataBase::load(pikari_bck);
playPikariBckAnimation(1.0f);
void* pikari_bpk = JKRGetNameResource("zelda_icon_pikari.bpk", dComIfGp_getMain2DArchive());
mPikariBpk = (J2DAnmColorKey*)J2DAnmLoaderDataBase::load(pikari_bpk);
mPikariBpk->searchUpdateMaterialID(mpPikariScreen);
playPikariBpkAnimation(1.0f);
mpParent = new CPaneMgr(mpScreen, 'n_all', 2, NULL);
for (int i = 0; i < 5; i++) {
mpAText[i] = new CPaneMgr(mpScreen, a_tag[i], 0, NULL);
((J2DTextBox*)mpAText[i]->getPanePtr())->setString(64, "");
((J2DTextBox*)mpAText[i]->getPanePtr())->setFont(mDoExt_getMesgFont());
((J2DTextBox*)mpAText[i]->getPanePtr())->setCharSpace(g_drawHIO.mAButtonFontSpacing);
mpBText[i] = new CPaneMgr(mpScreen, b_tag[i], 0, NULL);
((J2DTextBox*)mpBText[i]->getPanePtr())->setString(64, "");
((J2DTextBox*)mpBText[i]->getPanePtr())->setFont(mDoExt_getMesgFont());
mpXYText[i][2] = new CPaneMgr(mpScreen, z_tag[i], 0, NULL);
((J2DTextBox*)mpXYText[i][2]->getPanePtr())->setString(64, "");
((J2DTextBox*)mpXYText[i][2]->getPanePtr())->setFont(mDoExt_getMesgFont());
mpXYText[i][0] = new CPaneMgr(mpScreen, x_tag[i], 0, NULL);
((J2DTextBox*)mpXYText[i][0]->getPanePtr())->setString(64, "");
((J2DTextBox*)mpXYText[i][0]->getPanePtr())->setFont(mDoExt_getMesgFont());
mpXYText[i][1] = new CPaneMgr(mpScreen, y_tag[i], 0, NULL);
((J2DTextBox*)mpXYText[i][1]->getPanePtr())->setString(64, "");
((J2DTextBox*)mpXYText[i][1]->getPanePtr())->setFont(mDoExt_getMesgFont());
}
J2DTextBox::TFontSize font_size = {lit_4184, lit_4185};
for (int i = 0; i < 5; i++) {
((J2DTextBox*)mpAText[i]->getPanePtr())->setFontSize(font_size);
((J2DTextBox*)mpBText[i]->getPanePtr())->setFontSize(font_size);
((J2DTextBox*)mpXYText[i][2]->getPanePtr())->setFontSize(font_size);
((J2DTextBox*)mpXYText[i][0]->getPanePtr())->setFontSize(font_size);
((J2DTextBox*)mpXYText[i][1]->getPanePtr())->setFontSize(font_size);
}
init();
field_0xa8 = 0;
field_0x1e4 = 0;
field_0x2fc = 0;
field_0x36c = 0;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -535,36 +595,437 @@ asm dMeter2Draw_c::dMeter2Draw_c(JKRExpHeap* param_0) {
#include "asm/d/meter/d_meter2_draw/__ct__13dMeter2Draw_cFP10JKRExpHeap.s"
}
#pragma pop
#endif
/* 802102F8-80210FB0 20AC38 0CB8+00 1/0 0/0 0/0 .text __dt__13dMeter2Draw_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dMeter2Draw_c::~dMeter2Draw_c() {
nofralloc
#include "asm/d/meter/d_meter2_draw/__dt__13dMeter2Draw_cFv.s"
dMeter2Draw_c::~dMeter2Draw_c() {
dComIfGp_getMsgDtArchive(0)->removeResource(dMeter2Info_getMsgResource());
dComIfGp_getMsgDtArchive(0)->removeResource(dMeter2Info_getMsgUnitResource());
dComIfGp_getItemIconArchive()->removeResourceAll();
delete mpScreen;
mpScreen = NULL;
delete mpKanteraScreen;
mpKanteraScreen = NULL;
for (int i = 0; i < 2; i++) {
delete mpKanteraMeter[i];
mpKanteraMeter[i] = NULL;
}
delete mpParent;
mpParent = NULL;
delete mpPikariScreen;
mpPikariScreen = NULL;
delete mpPikariParent;
mpPikariParent = NULL;
delete mPikariBck;
mPikariBck = NULL;
delete mPikariBpk;
mPikariBpk = NULL;
for (int i = 0; i < 5; i++) {
delete mpAText[i];
mpAText[i] = NULL;
delete mpBText[i];
mpBText[i] = NULL;
for (int j = 0; j < 3; j++) {
delete mpXYText[i][j];
mpXYText[i][j] = NULL;
}
}
delete mpLifeParent;
mpLifeParent = NULL;
for (int i = 0; i < 20; i++) {
delete mpLifeParts[i];
mpLifeParts[i] = NULL;
delete mpHeartMask[i];
mpHeartMask[i] = NULL;
delete mpHeartBase[i];
mpHeartBase[i] = NULL;
delete mpLifeTexture[i][0];
mpLifeTexture[i][0] = NULL;
delete mpLifeTexture[i][1];
mpLifeTexture[i][1] = NULL;
}
delete mpBigHeart;
mpBigHeart = NULL;
delete mpMagicParent;
mpMagicParent = NULL;
delete mpMagicBase;
mpMagicBase = NULL;
delete mpMagicFrameL;
mpMagicFrameL = NULL;
delete mpMagicFrameR;
mpMagicFrameR = NULL;
for (int i = 0; i < 3; i++) {
delete field_0x53c[i];
field_0x53c[i] = NULL;
}
delete mpMagicMeter;
mpMagicMeter = NULL;
for (int i = 0; i < 2; i++) {
delete mpSIParent[i];
mpSIParent[i] = NULL;
}
delete mpLightDropParent;
mpLightDropParent = NULL;
for (int i = 0; i < 16; i++) {
for (int j = 0; j < 3; j++) {
if (mpSIParts[i][j] != NULL) {
delete mpSIParts[i][j];
mpSIParts[i][j] = NULL;
}
}
}
delete mpRupeeKeyParent;
mpRupeeKeyParent = NULL;
for (int i = 0; i < 4; i++) {
delete mpRupeeTexture[i][0];
mpRupeeTexture[i][0] = NULL;
delete mpRupeeTexture[i][1];
mpRupeeTexture[i][1] = NULL;
}
for (int i = 0; i < 3; i++) {
delete mpRupeeParent[i];
mpRupeeParent[i] = NULL;
}
for (int i = 0; i < 5; i++) {
delete mpKeyTexture[i];
mpKeyTexture[i] = NULL;
}
delete mpKeyParent;
mpKeyParent = NULL;
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2; j++) {
mp_heap->free(mpItemBTex[i][j]);
mpItemBTex[i][j] = NULL;
}
}
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2; j++) {
for (int k = 0; k < 2; k++) {
mp_heap->free(mpItemXYTex[i][j][k]);
mpItemXYTex[i][j][k] = NULL;
}
}
}
delete mpItemB;
mpItemB = NULL;
mpItemBPane = NULL;
for (int i = 0; i < 2; i++) {
if (mpItemXY[i] != NULL) {
delete mpItemXY[i];
mpItemXY[i] = NULL;
}
}
delete mpItemR;
mpItemR = NULL;
for (int i = 0; i < 3; i++) {
mpItemXYPane[i] = NULL;
}
delete mpLightB;
mpLightB = NULL;
for (int i = 0; i < 3; i++) {
if (mpLightXY[i] != NULL) {
delete mpLightXY[i];
mpLightXY[i] = NULL;
}
}
delete mpBTextA;
mpBTextA = NULL;
delete mpBTextB;
mpBTextB = NULL;
for (int i = 0; i < 3; i++) {
if (mpBTextXY[i] != NULL) {
delete mpBTextXY[i];
mpBTextXY[i] = NULL;
}
}
delete mpTextA;
mpTextA = NULL;
delete mpTextB;
mpTextB = NULL;
for (int i = 0; i < 3; i++) {
delete mpTextXY[i];
mpTextXY[i] = NULL;
}
delete mpTextI;
mpTextI = NULL;
delete mpTextM;
mpTextM = NULL;
for (int i = 0; i < 5; i++) {
if (mpJujiI[i] != NULL) {
delete mpJujiI[i];
mpJujiI[i] = NULL;
}
if (mpJujiM[i] != NULL) {
delete mpJujiM[i];
mpJujiM[i] = NULL;
}
}
delete mpButtonParent;
mpButtonParent = NULL;
delete mpButtonA;
mpButtonA = NULL;
delete mpButtonB;
mpButtonB = NULL;
delete mpButtonMidona;
mpButtonMidona = NULL;
for (int i = 0; i < 3; i++) {
delete mpButtonXY[i];
mpButtonXY[i] = NULL;
}
if (mpUzu != NULL) {
delete mpUzu;
mpUzu = NULL;
}
delete mpButtonCrossParent;
mpButtonCrossParent = NULL;
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
if (mpItemNumTex[i][j] != NULL) {
delete mpItemNumTex[i][j];
mpItemNumTex[i][j] = NULL;
}
}
}
for (int i = 0; i < 3; i++) {
if (field_0x9c[i] != NULL) {
delete field_0x9c[i];
field_0x9c[i] = NULL;
}
}
}
#pragma pop
/* 80210FB0-8021135C 20B8F0 03AC+00 1/1 0/0 0/0 .text init__13dMeter2Draw_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeter2Draw_c::init() {
nofralloc
#include "asm/d/meter/d_meter2_draw/init__13dMeter2Draw_cFv.s"
void dMeter2Draw_c::init() {
f32 tmp_0 = FLOAT_LABEL(lit_4182);
field_0x608 = tmp_0;
field_0x60c = tmp_0;
for (int i = 0; i < 3; i++) {
field_0x620[i] = tmp_0;
field_0x610[i] = tmp_0;
}
f32 tmp_0_1 = FLOAT_LABEL(lit_4182);
field_0x61c = tmp_0_1;
for (int i = 0; i < 16; i++) {
field_0x62c[i] = tmp_0_1;
field_0x66c[i] = tmp_0_1;
}
field_0x759 = 0;
field_0x75a = 0;
for (int i = 0; i < 3; i++) {
field_0x75c[i] = 0;
}
field_0x75f = 0;
field_0x756 = -1;
field_0x760 = 0;
int j = 0;
f32 tmp_0_3 = FLOAT_LABEL(lit_4182);
for (; j < 3; j++) {
field_0x6ac[j] = tmp_0_3;
field_0x6b8[j] = tmp_0_3;
field_0x6c4[j] = tmp_0_3;
field_0x6d0[j] = tmp_0_3;
}
f32 tmp_0_4 = FLOAT_LABEL(lit_4182);
field_0x6dc = tmp_0_4;
field_0x6e0 = tmp_0_4;
field_0x6e4 = tmp_0_4;
field_0x6e8 = tmp_0_4;
field_0x6ec = tmp_0_4;
field_0x6f0 = tmp_0_4;
mHUDScale = g_drawHIO.mHUDScale;
mHUDAlpha = g_drawHIO.mHUDAlpha;
mButtonsPosX = tmp_0_4;
mButtonsPosY = tmp_0_4;
mButtonsScale = lit_4183;
field_0x78c = g_drawHIO.mButtonDisplayBackScale;
field_0x790 = tmp_0_4;
mLifeGaugeHeartAlpha = g_drawHIO.mLifeGaugeHeartAlpha;
mLifeGaugeBaseAlpha = g_drawHIO.mLifeGaugeBaseAlpha;
mHeartAlpha = g_drawHIO.mHeartAlpha;
mLargeHeartAlpha = g_drawHIO.mLargeHeartAlpha;
field_0x7a4 = tmp_0_4;
mMagicMeterAlpha = g_drawHIO.mMagicMeterAlpha;
mMagicMeterFrameAlpha = g_drawHIO.mMagicMeterFrameAlpha;
field_0x7b0 = tmp_0_4;
mLanternMeterAlpha = g_drawHIO.mLanternMeterAlpha;
mLanternMeterFrameAlpha = g_drawHIO.mLanternMeterFrameAlpha;
field_0x7bc = tmp_0_4;
mOxygenMeterAlpha = g_drawHIO.mOxygenMeterAlpha;
mOxygenMeterFrameAlpha = g_drawHIO.mOxygenMeterFrameAlpha;
field_0x7c8 = tmp_0_4;
field_0x861 = 0;
field_0x860 = 0;
field_0x7cc = g_drawHIO.mHUDAlpha;
field_0x7d0 = g_drawHIO.mRupeeKeyAlpha;
mRupeeAlpha = g_drawHIO.mRupeeAlpha;
mRupeeFrameAlpha = g_drawHIO.mRupeeFrameAlpha;
mRupeeCountAlpha = g_drawHIO.mRupeeCountAlpha;
field_0x7e0 = g_drawHIO.mHUDAlpha;
field_0x7e4 = g_drawHIO.mRupeeKeyAlpha;
mKeyAlpha = g_drawHIO.mKeyAlpha;
mKeyNumAlpha = g_drawHIO.mKeyNumAlpha;
field_0x7f0 = g_drawHIO.mHUDAlpha;
mMainHUDButtonsAlpha = g_drawHIO.mMainHUDButtonsAlpha;
mButtonDisplayBackAlpha = g_drawHIO.mButtonDisplayBackAlpha;
mAButtonAlpha = g_drawHIO.mAButtonAlpha;
mBButtonAlpha = g_drawHIO.mBButtonAlpha;
mXButtonAlpha = g_drawHIO.mXButtonAlpha;
mYButtonAlpha = g_drawHIO.mYButtonAlpha;
field_0x80c = g_drawHIO.field_0x168;
field_0x810 = g_drawHIO.mZButtonAlpha;
for (int i = 0; i < 2; i++) {
mBItemBaseAlpha[i] = g_drawHIO.mBItemBaseAlpha[i];
mXButtonItemBaseAlpha[i] = g_drawHIO.mXButtonItemBaseAlpha[i];
mYButtonItemBaseAlpha[i] = g_drawHIO.mYButtonItemBaseAlpha[i];
field_0x82c[i] = g_drawHIO.field_0x298[i];
}
mZButtonItemBaseAlpha = g_drawHIO.mZButtonItemBaseAlpha;
mButtonBaseAlpha = g_drawHIO.mButtonBaseAlpha;
mAButtonFontSpacing = g_drawHIO.mAButtonFontSpacing;
mDPadButtonAlpha = g_drawHIO.mDPadButtonAlpha;
mDPadButtonITEMAlpha = g_drawHIO.mDPadButtonITEMAlpha;
mDPadButtonMAPAlpha = g_drawHIO.mDPadButtonMAPAlpha;
field_0x84c = g_drawHIO.mAButtonFontColor.r;
field_0x84d = g_drawHIO.mAButtonFontColor.g;
field_0x84e = g_drawHIO.mAButtonFontColor.b;
field_0x84f = g_drawHIO.mAButtonFontColor.a;
field_0x850 = g_drawHIO.mBButtonFontColor.r;
field_0x851 = g_drawHIO.mBButtonFontColor.g;
field_0x852 = g_drawHIO.mBButtonFontColor.b;
field_0x853 = g_drawHIO.mBButtonFontColor.a;
field_0x854 = g_drawHIO.field_0x2f0.r;
field_0x855 = g_drawHIO.field_0x2f0.g;
field_0x856 = g_drawHIO.field_0x2f0.b;
field_0x857 = g_drawHIO.field_0x2f0.a;
field_0x858 = g_drawHIO.mZButtonFontColor.r;
field_0x859 = g_drawHIO.mZButtonFontColor.g;
field_0x85a = g_drawHIO.mZButtonFontColor.b;
field_0x85b = g_drawHIO.mZButtonFontColor.a;
field_0x85c = g_drawHIO.mXYButtonFontColor.r;
field_0x85d = g_drawHIO.mXYButtonFontColor.g;
field_0x85e = g_drawHIO.mXYButtonFontColor.b;
field_0x85f = g_drawHIO.mXYButtonFontColor.a;
setItemParamX(0);
setItemParamY(0);
setItemParamZ(0);
setItemParamB(0);
initLife();
initMagic();
initLightDrop();
initRupeeKey();
initButton();
initButtonCross();
field_0x772 = 0;
}
#pragma pop
/* 8021135C-8021151C 20BC9C 01C0+00 0/0 1/1 0/0 .text exec__13dMeter2Draw_cFUl */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeter2Draw_c::exec(u32 param_0) {
nofralloc
#include "asm/d/meter/d_meter2_draw/exec__13dMeter2Draw_cFUl.s"
void dMeter2Draw_c::exec(u32 param_0) {
if (mHUDScale != g_drawHIO.mHUDScale) {
mHUDScale = g_drawHIO.mHUDScale;
mpParent->scale(g_drawHIO.mHUDScale, g_drawHIO.mHUDScale);
}
if (mHUDAlpha != g_drawHIO.mHUDAlpha) {
mHUDAlpha = g_drawHIO.mHUDAlpha;
mpParent->setAlphaRate(g_drawHIO.mHUDAlpha);
}
if (param_0 & 0x1000000) {
if (mButtonsPosX != g_drawHIO.mRingHUDButtonsPosX ||
mButtonsPosY != g_drawHIO.mRingHUDButtonsPosY) {
mButtonsPosX = g_drawHIO.mRingHUDButtonsPosX;
mButtonsPosY = g_drawHIO.mRingHUDButtonsPosY;
mpButtonParent->paneTrans(g_drawHIO.mRingHUDButtonsPosX, g_drawHIO.mRingHUDButtonsPosY);
}
if (mButtonsScale != g_drawHIO.mRingHUDButtonsScale) {
mButtonsScale = g_drawHIO.mRingHUDButtonsScale;
mpButtonParent->scale(g_drawHIO.mRingHUDButtonsScale, g_drawHIO.mRingHUDButtonsScale);
}
} else {
if (mButtonsPosX != g_drawHIO.mMainHUDButtonsPosX ||
mButtonsPosY != g_drawHIO.mMainHUDButtonsPosY) {
mButtonsPosX = g_drawHIO.mMainHUDButtonsPosX;
mButtonsPosY = g_drawHIO.mMainHUDButtonsPosY;
mpButtonParent->paneTrans(g_drawHIO.mMainHUDButtonsPosX, g_drawHIO.mMainHUDButtonsPosY);
}
if (mButtonsScale != g_drawHIO.mMainHUDButtonsScale) {
mButtonsScale = g_drawHIO.mMainHUDButtonsScale;
mpButtonParent->scale(g_drawHIO.mMainHUDButtonsScale, g_drawHIO.mMainHUDButtonsScale);
}
}
}
#pragma pop
/* ############################################################################################## */
/* 80454890-80454894 002E90 0004+00 1/1 0/0 0/0 .sdata2 @4921 */
@@ -704,6 +1165,7 @@ SECTION_DEAD static char const* const stringBase_80398A0A = "zelda_game_image_sa
#pragma pop
/* 80211E64-80212190 20C7A4 032C+00 1/1 0/0 0/0 .text initMagic__13dMeter2Draw_cFv */
// matches with literals
#ifdef NONMATCHING
void dMeter2Draw_c::initMagic() {
field_0x550 = 0.0f;
@@ -714,21 +1176,22 @@ void dMeter2Draw_c::initMagic() {
mpMagicFrameL = new CPaneMgr(mpKanteraScreen, 'm_w_l_n', 2, NULL);
mpMagicFrameR = new CPaneMgr(mpKanteraScreen, 'm_w_r_n', 2, NULL);
mpMagicMeter = new CPaneMgr(mpKanteraScreen, 'mm_00', 0, NULL);
OSInitFastCast();
void* res = JKRFileLoader::getGlbResource("zelda_game_image_sanso_10percent.bpk",
dComIfGp_getMain2DArchive());
field_0x53c = (J2DAnmColorKey*)J2DAnmLoaderDataBase::load(res);
field_0x53c->searchUpdateMaterialID(mpKanteraScreen);
field_0x53c[0] = (J2DAnmColorKey*)J2DAnmLoaderDataBase::load(res);
field_0x53c[0]->searchUpdateMaterialID(mpKanteraScreen);
res = JKRFileLoader::getGlbResource("zelda_game_image_sanso_25percent.bpk",
dComIfGp_getMain2DArchive());
field_0x540 = (J2DAnmColorKey*)J2DAnmLoaderDataBase::load(res);
field_0x540->searchUpdateMaterialID(mpKanteraScreen);
field_0x53c[1] = (J2DAnmColorKey*)J2DAnmLoaderDataBase::load(res);
field_0x53c[1]->searchUpdateMaterialID(mpKanteraScreen);
res = JKRFileLoader::getGlbResource("zelda_game_image_sanso_50percent.bpk",
dComIfGp_getMain2DArchive());
field_0x544 = (J2DAnmColorKey*)J2DAnmLoaderDataBase::load(res);
field_0x544->searchUpdateMaterialID(mpKanteraScreen);
field_0x53c[2] = (J2DAnmColorKey*)J2DAnmLoaderDataBase::load(res);
field_0x53c[2]->searchUpdateMaterialID(mpKanteraScreen);
field_0x558 = 0.0f;
mpMagicParent->setAlphaRate(0.0f);
@@ -751,10 +1214,9 @@ void dMeter2Draw_c::initMagic() {
g_drawHIO.mMagicMeterPosY + offsetY);
setAlphaMagicChange(true);
u16 oil = dComIfGs_getOil();
u16 max_oil = dComIfGs_getMaxOil();
drawKantera(max_oil, oil, g_drawHIO.mLanternMeterPosX + offsetX,
g_drawHIO.mLanternMeterPosY + (g_drawHIO.mNoMagicPosY + offsetY));
drawKantera((u16)dComIfGs_getMaxOil(), (u16)dComIfGs_getOil(),
g_drawHIO.mLanternMeterPosX + offsetX,
g_drawHIO.mNoMagicPosY + (g_drawHIO.mLanternMeterPosY + offsetY));
setAlphaKanteraChange(true);
}
#else
@@ -908,35 +1370,28 @@ asm void dMeter2Draw_c::initButtonCross() {
#pragma pop
/* 80213CEC-80213D6C 20E62C 0080+00 3/3 0/0 0/0 .text playPikariBckAnimation__13dMeter2Draw_cFf */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeter2Draw_c::playPikariBckAnimation(f32 param_0) {
nofralloc
#include "asm/d/meter/d_meter2_draw/playPikariBckAnimation__13dMeter2Draw_cFf.s"
void dMeter2Draw_c::playPikariBckAnimation(f32 frame) {
mpPikariParent->getPanePtr()->setAnimation(mPikariBck);
mPikariBck->setFrame(frame);
mpPikariParent->getPanePtr()->animationTransform();
mpPikariParent->getPanePtr()->setAnimation((J2DAnmTransformKey*)NULL);
}
#pragma pop
/* 80213D6C-80213E3C 20E6AC 00D0+00 1/1 0/0 0/0 .text
* setPikariBpkAnimation__13dMeter2Draw_cFP11J2DAnmColor */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeter2Draw_c::setPikariBpkAnimation(J2DAnmColor* param_0) {
nofralloc
#include "asm/d/meter/d_meter2_draw/setPikariBpkAnimation__13dMeter2Draw_cFP11J2DAnmColor.s"
void dMeter2Draw_c::setPikariBpkAnimation(J2DAnmColor* p_anmcolor) {
mpPikariScreen->search('pika00')->setAnimation(p_anmcolor);
mpPikariScreen->search('moya00')->setAnimation(p_anmcolor);
mpPikariScreen->search('moyabs')->setAnimation(p_anmcolor);
}
#pragma pop
/* 80213E3C-80213E94 20E77C 0058+00 3/3 0/0 0/0 .text playPikariBpkAnimation__13dMeter2Draw_cFf */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeter2Draw_c::playPikariBpkAnimation(f32 param_0) {
nofralloc
#include "asm/d/meter/d_meter2_draw/playPikariBpkAnimation__13dMeter2Draw_cFf.s"
void dMeter2Draw_c::playPikariBpkAnimation(f32 frame) {
setPikariBpkAnimation(mPikariBpk);
mPikariBpk->setFrame(frame);
mpPikariScreen->animation();
setPikariBpkAnimation(NULL);
}
#pragma pop
/* 80213E94-80213FF0 20E7D4 015C+00 1/1 0/0 0/0 .text
* playOxygenBpkAnimation__13dMeter2Draw_cFP11J2DAnmColor */
@@ -1414,14 +1869,12 @@ asm void dMeter2Draw_c::drawButtonC(u8 param_0, bool param_1) {
#pragma pop
/* 802179C0-80217A10 212300 0050+00 1/1 1/1 0/0 .text drawButtonS__13dMeter2Draw_cFUc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeter2Draw_c::drawButtonS(u8 param_0) {
nofralloc
#include "asm/d/meter/d_meter2_draw/drawButtonS__13dMeter2Draw_cFUc.s"
void dMeter2Draw_c::drawButtonS(u8 param_0) {
getActionString(param_0, 1, &field_0x767);
if (param_0 != 0) {
field_0x767 = 7;
}
}
#pragma pop
/* 80217A10-80217AB4 212350 00A4+00 0/0 1/1 0/0 .text drawButtonBin__13dMeter2Draw_cFUc
*/
@@ -1671,14 +2124,10 @@ asm void dMeter2Draw_c::setButtonIconAlpha(int param_0, u8 param_1, u32 param_2,
/* 8021A29C-8021A2F4 214BDC 0058+00 1/1 0/0 0/0 .text getNumberTexture__13dMeter2Draw_cFi
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeter2Draw_c::getNumberTexture(int param_0) {
nofralloc
#include "asm/d/meter/d_meter2_draw/getNumberTexture__13dMeter2Draw_cFi.s"
ResTIMG* dMeter2Draw_c::getNumberTexture(int i) {
return (ResTIMG*)dComIfGp_getMain2DArchive()->getResource('TIMG',
dMeter2Info_getNumberTextureName(i));
}
#pragma pop
/* ############################################################################################## */
/* 80430158-80430178 05CE78 0020+00 1/1 0/0 0/0 .bss i_text_buf$8454 */
@@ -1795,14 +2244,9 @@ asm void dMeter2Draw_c::drawKanteraMeter(u8 param_0, f32 param_1) {
/* 8021B0C8-8021B104 215A08 003C+00 0/0 3/3 0/0 .text isButtonVisible__13dMeter2Draw_cFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeter2Draw_c::isButtonVisible() {
nofralloc
#include "asm/d/meter/d_meter2_draw/isButtonVisible__13dMeter2Draw_cFv.s"
u8 dMeter2Draw_c::isButtonVisible() {
return (mpButtonParent->getAlphaRate() == FLOAT_LABEL(lit_4182)) ^ 1;
}
#pragma pop
/* ############################################################################################## */
/* 804548E8-804548EC 002EE8 0004+00 2/2 0/0 0/0 .sdata2 @8992 */
@@ -1986,14 +2430,13 @@ asm void dMeter2Draw_c::setItemParamB(u8 param_0) {
/* 8021BB6C-8021BBB4 2164AC 0048+00 1/1 0/0 0/0 .text getFishingType__13dMeter2Draw_cFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeter2Draw_c::getFishingType() {
nofralloc
#include "asm/d/meter/d_meter2_draw/getFishingType__13dMeter2Draw_cFv.s"
bool dMeter2Draw_c::getFishingType() {
if (dMeter2Info_isGameStatus(1) && getCanoeFishing()) {
return true;
} else {
return false;
}
}
#pragma pop
/* ############################################################################################## */
/* 803988D0-803988D0 024F30 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
@@ -2010,14 +2453,14 @@ SECTION_DEAD static char const* const pad_80398A77 = "";
/* 8021BBB4-8021BC24 2164F4 0070+00 2/2 1/1 0/0 .text getCanoeFishing__13dMeter2Draw_cFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeter2Draw_c::getCanoeFishing() {
nofralloc
#include "asm/d/meter/d_meter2_draw/getCanoeFishing__13dMeter2Draw_cFv.s"
bool dMeter2Draw_c::getCanoeFishing() {
if (!strcmp(dComIfGp_getStartStageName(), "F_SP127") &&
g_dComIfG_gameInfo.play.mPlayer[0]->checkCanoeRide()) {
return TRUE;
} else {
return FALSE;
}
}
#pragma pop
/* 8021BC24-8021BC54 216564 0030+00 0/0 1/1 0/0 .text getCameraSubject__13dMeter2Draw_cFv
*/
@@ -2043,14 +2486,9 @@ asm void dMeter2Draw_c::getItemSubject() {
/* 8021BCAC-8021BCC0 2165EC 0014+00 0/0 1/1 0/0 .text getPlayerSubject__13dMeter2Draw_cFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeter2Draw_c::getPlayerSubject() {
nofralloc
#include "asm/d/meter/d_meter2_draw/getPlayerSubject__13dMeter2Draw_cFv.s"
bool dMeter2Draw_c::getPlayerSubject() {
return dComIfGp_checkPlayerStatus0(0, 0x8000000);
}
#pragma pop
/* 8021BCC0-8021BDD0 216600 0110+00 2/2 2/2 0/0 .text isBButtonShow__13dMeter2Draw_cFb */
#pragma push
@@ -2064,14 +2502,9 @@ asm void dMeter2Draw_c::isBButtonShow(bool param_0) {
/* 8021BDD0-8021BDDC 216710 000C+00 0/0 1/1 0/0 .text getButtonTimer__13dMeter2Draw_cFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMeter2Draw_c::getButtonTimer() {
nofralloc
#include "asm/d/meter/d_meter2_draw/getButtonTimer__13dMeter2Draw_cFv.s"
s16 dMeter2Draw_c::getButtonTimer() {
return mpButtonParent->getAlphaTimer();
}
#pragma pop
/* ############################################################################################## */
/* 803988B8-803988D0 024F18 0018+00 0/0 0/0 0/0 .rodata tag$7759 */
+8 -8
View File
@@ -1011,38 +1011,38 @@ dMeter_drawHIO_c::dMeter_drawHIO_c() {
mBItemBasePosY[i] = 0.0f;
}
mBItemBaseAlpha = 0.5f;
field_0x23c = 0.5f;
mBItemBaseAlpha[0] = 0.5f;
mBItemBaseAlpha[1] = 0.5f;
mXButtonItemBaseScale = 1.5f;
mXButtonItemBasePosX = 14.0f;
mXButtonItemBasePosY = -12.0f;
mXButtonItemBaseAlpha = 0.5f;
mXButtonItemBaseAlpha[0] = 0.5f;
mXButtonItemBaseNoItemScale = 1.5f;
mXButtonItemBaseNoItemPosX = 0.0f;
mXButtonItemBaseNoItemPosY = 0.0f;
mXButtonItemBaseNoItemAlpha = 1.0f;
mXButtonItemBaseAlpha[1] = 1.0f;
mYButtonItemBaseScale = 1.5f;
mYButtonItemBasePosX = -15.0f;
mYButtonItemBasePosY = -12.0f;
mYButtonItemBaseAlpha = 0.5f;
mYButtonItemBaseAlpha[0] = 0.5f;
mYButtonItemBaseNoItemScale = 1.5f;
mYButtonItemBaseNoItemPosX = 0.0f;
mYButtonItemBaseNoItemPosY = 0.0f;
mYButtonItemBaseNoItemAlpha = 0.5f;
mYButtonItemBaseAlpha[1] = 0.5f;
field_0x280 = 1.5f;
field_0x288 = 0.0f;
field_0x290 = 6.0f;
field_0x298 = 0.5f;
field_0x298[0] = 0.5f;
field_0x284 = 1.0f;
field_0x28c = 0.0f;
field_0x294 = 4.0f;
field_0x29c = 1.0f;
field_0x298[1] = 1.0f;
mZButtonItemBaseScale = 1.0f;
mZButtonItemBasePosX = 0.0f;
+2 -2
View File
@@ -447,7 +447,7 @@ extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
static u8 s_groupID[2 + 6 /* padding */];
/* 80232A3C-80232A44 -00001 0008+00 0/0 0/0 0/0 .text dMsgObject_getGroupID__Fv */
s32 dMsgObject_getGroupID() {
s16 dMsgObject_getGroupID() {
return (s32) * (s16*)(&s_groupID);
}
@@ -1802,7 +1802,7 @@ asm void dMsgObject_c::setProcessID(unsigned int param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMsgObject_c::getActor() {
asm fopAc_ac_c* dMsgObject_c::getActor() {
nofralloc
#include "asm/d/msg/d_msg_object/getActor__12dMsgObject_cFv.s"
}
+1 -1
View File
@@ -202,7 +202,7 @@ SECTION_SDATA2 static f32 lit_3721[1 + 1 /* padding */] = {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void CPaneMgrAlpha::getAlphaRate() {
asm f32 CPaneMgrAlpha::getAlphaRate() {
nofralloc
#include "asm/d/pane/d_pane_class_alpha/getAlphaRate__13CPaneMgrAlphaFv.s"
}
+5 -5
View File
@@ -1906,11 +1906,11 @@ SECTION_SDATA2 static u32 lit_5199 = 0xFFFFFFFF;
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dPa_control_c::set(u8 param_0, u16 param_1, cXyz const* param_2,
dKy_tevstr_c const* param_3, csXyz const* param_4, cXyz const* param_5,
u8 param_6, dPa_levelEcallBack* param_7, s8 param_8,
_GXColor const* param_9, _GXColor const* param_10, cXyz const* param_11,
f32 param_12) {
asm u32 dPa_control_c::set(u8 param_0, u16 param_1, cXyz const* param_2,
dKy_tevstr_c const* param_3, csXyz const* param_4, cXyz const* param_5,
u8 param_6, dPa_levelEcallBack* param_7, s8 param_8,
_GXColor const* param_9, _GXColor const* param_10, cXyz const* param_11,
f32 param_12) {
nofralloc
#include "asm/d/particle/d_particle/func_8004CA90.s"
}
+5 -4
View File
@@ -721,7 +721,7 @@ asm void mDoExt_brkAnm::entry(J3DMaterialTable* param_0, f32 param_1) {
/* ############################################################################################## */
/* 803A3020-803A30C0 000140 0085+1B 1/1 0/0 0/0 .data l_invisibleMat$7041 */
SECTION_DATA static u8 l_invisibleMat[133 + 27 /* padding */] = {
SECTION_DATA static u8 l_invisibleMat[133 + 27 /* padding */] ALIGN_DECL(32) = {
0x10,
0x00,
0x00,
@@ -2075,7 +2075,8 @@ asm mDoExt_invJntPacket::mDoExt_invJntPacket() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm J3DPacket::~J3DPacket() {
// asm J3DPacket::~J3DPacket() {
extern "C" asm void __dt__9J3DPacketFv() {
nofralloc
#include "asm/m_Do/m_Do_ext/__dt__9J3DPacketFv.s"
}
@@ -3172,7 +3173,7 @@ static asm void mDoExt_initFont0() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void mDoExt_getMesgFont() {
asm JUTFont* mDoExt_getMesgFont() {
nofralloc
#include "asm/m_Do/m_Do_ext/mDoExt_getMesgFont__Fv.s"
}
@@ -3277,7 +3278,7 @@ asm void mDoExt_removeSubFont() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void mDoExt_J3DModel__create(J3DModelData* param_0, u32 param_1, u32 param_2) {
asm J3DModel* mDoExt_J3DModel__create(J3DModelData* param_0, u32 param_1, u32 param_2) {
nofralloc
#include "asm/m_Do/m_Do_ext/mDoExt_J3DModel__create__FP12J3DModelDataUlUl.s"
}
+271 -205
View File
@@ -4,93 +4,24 @@
//
#include "m_Do/m_Do_graphic.h"
#include "JSystem/JFramework/JFWSystem.h"
#include "SSystem/SComponent/c_lib.h"
#include "d/com/d_com_inf_game.h"
#include "dol2asm.h"
#include "dolphin/types.h"
#include "f_ap/f_ap_game.h"
#include "m_Do/m_Do_controller_pad.h"
#include "m_Do/m_Do_machine.h"
#include "m_Do/m_Do_mtx.h"
//
// Types:
//
struct view_port_class {};
struct view_class {};
struct mDoMtx_stack_c {
static u8 now[48];
};
struct mDoMch_render_c {
static void* mRenderModeObj[1 + 1 /* padding */];
};
struct daPy_py_c {
/* 8000B1E4 */ s32 getAtnActorID() const;
};
struct JPADrawInfo {};
struct dPa_control_c {
/* 8004C134 */ void calcMenu();
/* 8004C188 */ void draw(JPADrawInfo*, u8);
};
struct dMenu_Collect3D_c {
/* 801B75E8 */ void setupItem3D(f32 (*)[4]);
};
struct dDlst_shadowControl_c {
/* 800557C8 */ void imageDraw(f32 (*)[4]);
/* 80055A14 */ void draw(f32 (*)[4]);
};
struct J3DDrawBuffer {};
struct dDlst_base_c {};
struct dDlst_list_c {
/* 80056390 */ void init();
/* 80056538 */ void reset();
/* 800566D4 */ void drawOpaDrawList(J3DDrawBuffer*);
/* 80056710 */ void drawXluDrawList(J3DDrawBuffer*);
/* 8005674C */ void drawOpaListItem3d();
/* 80056770 */ void drawXluListItem3d();
/* 800567C4 */ void draw(dDlst_base_c**, dDlst_base_c**);
/* 80056900 */ void calcWipe();
};
struct dAttention_c {
/* 800737E4 */ void LockonTruth();
};
struct cXyz {
/* 80009184 */ ~cXyz();
static f32 Zero[3];
};
struct JUTGamePad {
static u8 mPadStatus[48];
};
struct JUTDbPrint {
static u8 sDebugPrint[4 + 4 /* padding */];
};
struct JMath {
static u8 sincosTable_[65536];
};
struct JKRSolidHeap {};
struct JFWSystem {
static u8 systemConsole[4];
};
struct J3DSys {
/* 803100BC */ void drawInit();
/* 8031073C */ void reinitGX();
};
struct J2DPrint {
/* 802F4658 */ void setBuffer(u32);
};
@@ -210,23 +141,16 @@ extern "C" void _restgpr_21();
extern "C" void _restgpr_24();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void strcmp();
extern "C" extern u8 g_mDoMtx_identity[48 + 24 /* padding */];
extern "C" extern void* __vt__14J2DGrafContext[10];
extern "C" extern void* __vt__13J2DOrthoGraph[10];
extern "C" u8 now__14mDoMtx_stack_c[48];
extern "C" extern u8 g_HIO[64 + 4 /* padding */];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u8 g_env_light[4880];
extern "C" f32 Zero__4cXyz[3];
extern "C" u8 mPadStatus__10JUTGamePad[48];
extern "C" extern u8 j3dSys[284];
extern "C" u8 sincosTable___5JMath[65536];
extern "C" extern u32 data_80450580;
extern "C" extern s8 data_80450580;
extern "C" void* mRenderModeObj__15mDoMch_render_c[1 + 1 /* padding */];
extern "C" extern u8 g_clearColor[4];
extern "C" extern u32 g_whiteColor;
extern "C" extern u32 __float_nan;
;
extern "C" u8 systemConsole__9JFWSystem[4];
extern "C" u8 sManager__10JFWDisplay[4];
extern "C" u8 sCurrentHeap__7JKRHeap[4];
@@ -240,47 +164,60 @@ extern "C" u8 sManager__10JUTProcBar[4];
//
/* 80007D9C-80007E44 0026DC 00A8+00 1/1 0/0 0/0 .text createTimg__FUsUsUl */
// extra mr optimized out?
#ifdef NONMATCHING
static ResTIMG* createTimg(u16 width, u16 height, u32 format) {
u32 buf_size = GXGetTexBufferSize(width, height, format, GX_FALSE, 0) + 0x20;
ResTIMG* timg = (ResTIMG*)JKRHeap::alloc(buf_size, 0x20, NULL);
if (timg == NULL) {
return NULL;
} else {
cLib_memSet(timg, 0, buf_size);
timg->format = format;
timg->alphaEnabled = false;
timg->width = width;
timg->height = height;
timg->minFilter = GX_LINEAR;
timg->magFilter = GX_LINEAR;
timg->mipmapCount = 1;
timg->texDataOffset = 0x20;
}
return timg;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void createTimg(u16 param_0, u16 param_1, u32 param_2) {
static asm ResTIMG* createTimg(u16 param_0, u16 param_1, u32 param_2) {
nofralloc
#include "asm/m_Do/m_Do_graphic/createTimg__FUsUsUl.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 80450590-80450594 000010 0004+00 2/2 1/1 0/0 .sdata mBackColor__13mDoGph_gInf_c */
SECTION_SDATA u8 mDoGph_gInf_c::mBackColor[4] = {
0x00,
0x00,
0x00,
0x00,
};
GXColor mDoGph_gInf_c::mBackColor = {0, 0, 0, 0};
/* 80450594-80450598 000014 0004+00 4/4 3/3 0/0 .sdata mFadeColor__13mDoGph_gInf_c */
SECTION_SDATA u8 mDoGph_gInf_c::mFadeColor[4] = {
0x00,
0x00,
0x00,
0x00,
};
GXColor mDoGph_gInf_c::mFadeColor = {0, 0, 0, 0};
/* 80450BC8-80450BCC 0000C8 0004+00 2/2 38/38 1/1 .sbss mFader__13mDoGph_gInf_c */
JUTFader* mDoGph_gInf_c::mFader;
/* 80450BCC-80450BD0 0000CC 0004+00 3/3 8/8 1/1 .sbss mFrameBufferTimg__13mDoGph_gInf_c
*/
u8 mDoGph_gInf_c::mFrameBufferTimg[4];
ResTIMG* mDoGph_gInf_c::mFrameBufferTimg;
/* 80450BD0-80450BD4 0000D0 0004+00 3/3 6/6 0/0 .sbss mFrameBufferTex__13mDoGph_gInf_c */
u8 mDoGph_gInf_c::mFrameBufferTex[4];
void* mDoGph_gInf_c::mFrameBufferTex;
/* 80450BD4-80450BD8 0000D4 0004+00 1/1 1/1 0/0 .sbss mZbufferTimg__13mDoGph_gInf_c */
u8 mDoGph_gInf_c::mZbufferTimg[4];
ResTIMG* mDoGph_gInf_c::mZbufferTimg;
/* 80450BD8-80450BDC 0000D8 0004+00 3/3 1/1 0/0 .sbss mZbufferTex__13mDoGph_gInf_c */
u8 mDoGph_gInf_c::mZbufferTex[4];
void* mDoGph_gInf_c::mZbufferTex;
/* 80450BDC-80450BE0 0000DC 0004+00 3/3 3/3 1/1 .sbss mFadeRate__13mDoGph_gInf_c */
f32 mDoGph_gInf_c::mFadeRate;
@@ -293,8 +230,17 @@ f32 mDoGph_gInf_c::mFadeSpeed;
/* 80450BE5 0001+00 data_80450BE5 None */
/* 80450BE6 0001+00 data_80450BE6 None */
/* 80450BE7 0001+00 data_80450BE7 None */
extern u8 struct_80450BE4[4];
u8 struct_80450BE4[4];
extern u8 struct_80450BE4;
u8 struct_80450BE4;
#pragma push
#pragma force_active on
static bool data_80450BE5;
static u8 data_80450BE6;
static bool data_80450BE7;
#pragma pop
/* 80007E44-80007F90 002784 014C+00 1/1 0/0 0/0 .text create__13mDoGph_gInf_cFv */
#pragma push
@@ -308,17 +254,15 @@ asm void mDoGph_gInf_c::create() {
/* ############################################################################################## */
/* 80450BE8-80450BF0 0000E8 0008+00 1/1 0/0 0/0 .sbss None */
static u8 data_80450BE8[8];
static bool data_80450BE8;
/* 80007F90-80007FD8 0028D0 0048+00 1/1 2/2 0/0 .text beginRender__13mDoGph_gInf_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void mDoGph_gInf_c::beginRender() {
nofralloc
#include "asm/m_Do/m_Do_graphic/beginRender__13mDoGph_gInf_cFv.s"
void mDoGph_gInf_c::beginRender() {
if (data_80450BE8) {
JUTXfb::getManager()->setDrawingXfbIndex(-1);
}
JFWDisplay::getManager()->beginRender();
}
#pragma pop
/* ############################################################################################## */
/* 80451A38-80451A3C 000038 0004+00 11/11 0/0 0/0 .sdata2 @4062 */
@@ -333,74 +277,110 @@ SECTION_SDATA2 static u8 lit_4062[4] = {
SECTION_SDATA2 static f32 lit_4063 = 1.0f;
/* 80007FD8-80008028 002918 0050+00 1/1 6/4 15/15 .text fadeOut__13mDoGph_gInf_cFfR8_GXColor */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void mDoGph_gInf_c::fadeOut(f32 param_0, _GXColor& param_1) {
nofralloc
#include "asm/m_Do/m_Do_graphic/fadeOut__13mDoGph_gInf_cFfR8_GXColor.s"
void mDoGph_gInf_c::fadeOut(f32 fadeSpeed, GXColor& fadeColor) {
data_80450BE6 = 1;
mFadeSpeed = fadeSpeed;
mFadeColor = fadeColor;
f32 tmp_0 = FLOAT_LABEL(lit_4062);
if (fadeSpeed >= tmp_0) {
mFadeRate = tmp_0;
} else {
mFadeRate = lit_4063;
}
}
#pragma pop
/* 80008028-80008078 002968 0050+00 0/0 0/0 2/2 .text fadeOut_f__13mDoGph_gInf_cFfR8_GXColor */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void mDoGph_gInf_c::fadeOut_f(f32 param_0, _GXColor& param_1) {
nofralloc
#include "asm/m_Do/m_Do_graphic/fadeOut_f__13mDoGph_gInf_cFfR8_GXColor.s"
void mDoGph_gInf_c::fadeOut_f(f32 fadeSpeed, GXColor& fadeColor) {
data_80450BE6 = 129;
mFadeSpeed = fadeSpeed;
mFadeColor = fadeColor;
f32 tmp_0 = FLOAT_LABEL(lit_4062);
if (fadeSpeed >= tmp_0) {
mFadeRate = tmp_0;
} else {
mFadeRate = lit_4063;
}
}
#pragma pop
/* 80008078-800080A0 0029B8 0028+00 0/0 1/1 8/8 .text onBlure__13mDoGph_gInf_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void mDoGph_gInf_c::onBlure() {
nofralloc
#include "asm/m_Do/m_Do_graphic/onBlure__13mDoGph_gInf_cFv.s"
void mDoGph_gInf_c::onBlure() {
onBlure(g_mDoMtx_identity);
}
#pragma pop
/* ############################################################################################## */
/* 803DD3E8-803DD408 00A108 0020+00 3/3 3/3 0/0 .bss mFrameBufferTexObj__13mDoGph_gInf_c
*/
u8 mDoGph_gInf_c::mFrameBufferTexObj[32];
GXTexObj mDoGph_gInf_c::mFrameBufferTexObj;
/* 803DD408-803DD428 00A128 0020+00 1/1 0/0 0/0 .bss mZbufferTexObj__13mDoGph_gInf_c */
u8 mDoGph_gInf_c::mZbufferTexObj[32];
GXTexObj mDoGph_gInf_c::mZbufferTexObj;
/* 803DD428-803DD43C 00A148 0014+00 2/2 3/3 0/0 .bss m_bloom__13mDoGph_gInf_c */
u8 mDoGph_gInf_c::m_bloom[20];
mDoGph_gInf_c::bloom_c mDoGph_gInf_c::m_bloom;
/* 803DD43C-803DD470 00A15C 0030+04 2/2 0/0 0/0 .bss mBlureMtx__13mDoGph_gInf_c */
u8 mDoGph_gInf_c::mBlureMtx[48 + 4 /* padding */];
Mtx mDoGph_gInf_c::mBlureMtx;
/* 800080A0-800080D0 0029E0 0030+00 1/1 1/1 0/0 .text onBlure__13mDoGph_gInf_cFPA4_Cf */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void mDoGph_gInf_c::onBlure(f32 const (*param_0)[4]) {
nofralloc
#include "asm/m_Do/m_Do_graphic/onBlure__13mDoGph_gInf_cFPA4_Cf.s"
void mDoGph_gInf_c::onBlure(const Mtx m) {
struct_80450BE4 = 1;
PSMTXCopy(m, mBlureMtx);
}
#pragma pop
/* 800080D0-800080F4 002A10 0024+00 0/0 3/3 7/7 .text fadeOut__13mDoGph_gInf_cFf */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void mDoGph_gInf_c::fadeOut(f32 param_0) {
nofralloc
#include "asm/m_Do/m_Do_graphic/fadeOut__13mDoGph_gInf_cFf.s"
void mDoGph_gInf_c::fadeOut(f32 fadeSpeed) {
fadeOut(fadeSpeed, g_clearColor);
}
#pragma pop
/* ############################################################################################## */
/* 80451A40-80451A44 000040 0004+00 5/5 0/0 0/0 .sdata2 @4105 */
SECTION_SDATA2 static f32 lit_4105 = 10.0f;
/* 800080F4-80008330 002A34 023C+00 1/1 0/0 0/0 .text darwFilter__F8_GXColor */
// matches with literals
#ifdef NONMATCHING
static void darwFilter(GXColor matColor) {
GXSetNumChans(1);
GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, GX_LIGHT_NULL, GX_DF_NONE,
GX_AF_NONE);
GXSetNumTexGens(0);
GXSetNumTevStages(1);
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0);
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_RASC);
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_ENABLE, GX_TEVPREV);
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_RASA);
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_ENABLE, GX_TEVPREV);
GXSetZCompLoc(GX_ENABLE);
GXSetZMode(GX_DISABLE, GX_ALWAYS, GX_DISABLE);
GXSetBlendMode(GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_OR);
GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_OR, GX_ALWAYS, 0);
f32 tmp_0 = FLOAT_LABEL(lit_4062);
GXSetFog(GX_FOG_NONE, tmp_0, tmp_0, tmp_0, tmp_0, g_clearColor);
GXSetFogRangeAdj(GX_DISABLE, 0, NULL);
GXSetCullMode(GX_CULL_NONE);
GXSetDither(GX_ENABLE);
GXSetNumIndStages(0);
Mtx44 mtx;
f32 tmp_0_2 = FLOAT_LABEL(lit_4062);
C_MTXOrtho(mtx, tmp_0_2, lit_4063, tmp_0_2, lit_4063, tmp_0_2, lit_4105);
GXSetProjection(mtx, GX_ORTHOGRAPHIC);
GXLoadPosMtxImm(g_mDoMtx_identity, GX_PNMTX0);
GXSetChanMatColor(GX_COLOR0A0, matColor);
GXSetCurrentMtx(0);
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS, GX_DIRECT);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_CLR_RGBA, GX_RGB8, 0);
GXBegin(GX_QUADS, GX_VTXFMT0, 4);
GXPosition3s8(0, 0, -5);
GXPosition3s8(1, 0, -5);
GXPosition3s8(1, 1, -5);
GXPosition3s8(0, 1, -5);
GXEnd();
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -409,12 +389,44 @@ static asm void darwFilter(_GXColor param_0) {
#include "asm/m_Do/m_Do_graphic/darwFilter__F8_GXColor.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 80451A44-80451A48 000044 0004+00 1/1 0/0 0/0 .sdata2 @4131 */
SECTION_SDATA2 static f32 lit_4131 = 255.0f;
/* 80008330-8000841C 002C70 00EC+00 1/1 0/0 0/0 .text calcFade__13mDoGph_gInf_cFv */
// li instead of addi
#ifdef NONMATCHING
void mDoGph_gInf_c::calcFade() {
if (data_80450BE6) {
mFadeRate += mFadeSpeed;
if (mFadeRate < 0.0f) {
mFadeRate = 0.0f;
data_80450BE6 = false;
} else {
if (mFadeRate > 1.0f) {
mFadeRate = 1.0f;
}
}
mFadeColor.a = lit_4131 * mFadeRate;
} else {
if (dComIfG_getBrightness() != 255) {
mFadeColor.r = 0;
mFadeColor.g = 0;
mFadeColor.b = 0;
mFadeColor.a = 255 - dComIfG_getBrightness();
} else {
mFadeColor.a = 0;
}
}
if (mFadeColor.a != 0) {
darwFilter(mFadeColor);
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -423,6 +435,7 @@ asm void mDoGph_gInf_c::calcFade() {
#include "asm/m_Do/m_Do_graphic/calcFade__13mDoGph_gInf_cFv.s"
}
#pragma pop
#endif
/* 8000841C-80008420 002D5C 0004+00 0/0 1/0 0/0 .text mDoGph_BlankingON__Fv */
void mDoGph_BlankingON() {
@@ -435,26 +448,58 @@ void mDoGph_BlankingOFF() {
}
/* 80008424-80008450 002D64 002C+00 1/1 0/0 0/0 .text dScnPly_BeforeOfPaint__Fv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void dScnPly_BeforeOfPaint() {
nofralloc
#include "asm/m_Do/m_Do_graphic/dScnPly_BeforeOfPaint__Fv.s"
static void dScnPly_BeforeOfPaint() {
dComIfGd_reset();
}
#pragma pop
/* 80008450-80008474 002D90 0024+00 0/0 1/0 0/0 .text mDoGph_BeforeOfDraw__Fv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void mDoGph_BeforeOfDraw() {
nofralloc
#include "asm/m_Do/m_Do_graphic/mDoGph_BeforeOfDraw__Fv.s"
int mDoGph_BeforeOfDraw() {
dScnPly_BeforeOfPaint();
return 1;
}
#pragma pop
/* 80008474-80008630 002DB4 01BC+00 0/0 1/0 0/0 .text mDoGph_AfterOfDraw__Fv */
// r6 / r7 swapped
#ifdef NONMATCHING
int mDoGph_AfterOfDraw() {
if (fapGmHIO_isMenu()) {
JUTProcBar::getManager()->setVisible(false);
JUTProcBar::getManager()->setVisibleHeapBar(false);
JUTDbPrint::getManager()->setVisible(true);
} else {
int sysConsole_visible = JFWSystem::getSystemConsole()->isVisible();
int port3_connected = mDoCPd_c::isConnect(mDoCPd_c::PAD_2);
BOOL procBar_visible = port3_connected && fapGmHIO_getMeter() && !sysConsole_visible;
BOOL console_visible = port3_connected && fapGmHIO_isPrint();
// Dev mode check
if (!data_80450580) {
procBar_visible = false;
console_visible = false;
}
JUTProcBar::getManager()->setVisible(procBar_visible);
JUTProcBar::getManager()->setVisibleHeapBar(procBar_visible);
JUTDbPrint::getManager()->setVisible(console_visible);
}
GXSetZCompLoc(GX_ENABLE);
GXSetZMode(GX_DISABLE, GX_ALWAYS, GX_DISABLE);
GXSetBlendMode(GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_CLEAR);
GXSetAlphaCompare(GX_GREATER, 0, GX_AOP_OR, GX_GREATER, 0);
GXSetFog(GX_FOG_NONE, 0.0f, 0.0f, 0.0f, 0.0f, g_clearColor);
GXSetFogRangeAdj(GX_DISABLE, 0, NULL);
GXSetCoPlanar(GX_DISABLE);
GXSetZTexture(GX_ZT_DISABLE, GX_TF_Z8, 0);
GXSetDither(GX_ENABLE);
GXSetClipMode(GX_DISABLE);
GXSetCullMode(GX_CULL_NONE);
JUTVideo::getManager()->setRenderMode(mDoMch_render_c::getRenderModeObj());
mDoGph_gInf_c::endFrame();
return 1;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -463,6 +508,7 @@ asm void mDoGph_AfterOfDraw() {
#include "asm/m_Do/m_Do_graphic/mDoGph_AfterOfDraw__Fv.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 80450598-8045059C 000018 0004+00 1/1 0/0 0/0 .sdata l_tevColor0$4208 */
@@ -561,7 +607,8 @@ static asm void drawDepth2(view_class* param_0, view_port_class* param_1, int pa
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm cXyz::~cXyz() {
// asm cXyz::~cXyz() {
extern "C" asm void __dt__4cXyzFv() {
nofralloc
#include "asm/m_Do/m_Do_graphic/__dt__4cXyzFv.s"
}
@@ -586,40 +633,43 @@ static asm void trimming(view_class* param_0, view_port_class* param_1) {
#pragma pop
/* 800094B4-80009544 003DF4 0090+00 2/2 1/1 0/0 .text mDoGph_drawFilterQuad__FScSc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void mDoGph_drawFilterQuad(s8 param_0, s8 param_1) {
nofralloc
#include "asm/m_Do/m_Do_graphic/mDoGph_drawFilterQuad__FScSc.s"
void mDoGph_drawFilterQuad(s8 param_0, s8 param_1) {
GXBegin(GX_QUADS, GX_VTXFMT0, 4);
GXPosition2s8(0, 0);
GXTexCoord2s8(0, 0);
GXPosition2s8(param_0, 0);
GXTexCoord2s8(1, 0);
GXPosition2s8(param_0, param_1);
GXTexCoord2s8(1, 1);
GXPosition2s8(0, param_1);
GXTexCoord2s8(0, 1);
GXEnd();
}
#pragma pop
/* ############################################################################################## */
/* 80451AB0-80451AB4 0000B0 0004+00 1/1 0/0 0/0 .sdata2 @4505 */
SECTION_SDATA2 static u32 lit_4505 = 0xFFFFFFFF;
/* 80009544-800095F8 003E84 00B4+00 0/0 1/1 0/0 .text create__Q213mDoGph_gInf_c7bloom_cFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void mDoGph_gInf_c::bloom_c::create() {
nofralloc
#include "asm/m_Do/m_Do_graphic/create__Q213mDoGph_gInf_c7bloom_cFv.s"
void mDoGph_gInf_c::bloom_c::create() {
if (m_buffer == NULL) {
u32 size = GXGetTexBufferSize(304, 224, 6, GX_FALSE, 0);
m_buffer = mDoExt_getArchiveHeap()->alloc(size, -32);
mEnable = false;
mMode = 0;
mPoint = 128;
mBlureSize = 64;
mBlureRatio = 128;
mBlendColor = (GXColor){255, 255, 255, 255};
}
}
#pragma pop
/* 800095F8-80009650 003F38 0058+00 0/0 1/1 0/0 .text remove__Q213mDoGph_gInf_c7bloom_cFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void mDoGph_gInf_c::bloom_c::remove() {
nofralloc
#include "asm/m_Do/m_Do_graphic/remove__Q213mDoGph_gInf_c7bloom_cFv.s"
void mDoGph_gInf_c::bloom_c::remove() {
if (m_buffer != NULL) {
mDoExt_getArchiveHeap()->free(m_buffer);
m_buffer = NULL;
}
mMonoColor.a = 0;
}
#pragma pop
/* ############################################################################################## */
/* 80451AB4-80451AB8 0000B4 0004+00 1/1 0/0 0/0 .sdata2 @4528 */
@@ -689,6 +739,19 @@ SECTION_SDATA2 static f32 lit_4641 = -35000.0f;
SECTION_SDATA2 static f32 lit_4642 = -30000.0f;
/* 8000A504-8000A58C 004E44 0088+00 1/1 0/0 0/0 .text setLight__Fv */
// matches with literals
#ifdef NONMATCHING
static void setLight() {
GXLightObj obj;
GXInitLightPos(&obj, -35000.0f, 0.0f, -30000.0f);
GXInitLightDir(&obj, 0.0f, 0.0f, 0.0f);
GXInitLightColor(&obj, g_whiteColor);
GXInitLightDistAttn(&obj, 0.0f, 0.0f, GX_DA_GENTLE);
GXInitLightSpot(&obj, 0.0f, GX_SP_FLAT);
GXLoadLightObjImm(&obj, GX_LIGHT0);
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -697,16 +760,19 @@ static asm void setLight() {
#include "asm/m_Do/m_Do_graphic/setLight__Fv.s"
}
#pragma pop
#endif
/* 8000A58C-8000A604 004ECC 0078+00 1/1 0/0 0/0 .text drawItem3D__Fv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void drawItem3D() {
nofralloc
#include "asm/m_Do/m_Do_graphic/drawItem3D__Fv.s"
static void drawItem3D() {
Mtx item_mtx;
dMenu_Collect3D_c::setupItem3D(item_mtx);
setLight();
j3dSys.setViewMtx(item_mtx);
GXSetClipMode(GX_ENABLE);
dComIfGd_drawListItem3d();
GXSetClipMode(GX_DISABLE);
j3dSys.reinitGX();
}
#pragma pop
/* ############################################################################################## */
/* 80373DD0-80373DD0 000430 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
@@ -771,14 +837,14 @@ asm J2DOrthoGraph::~J2DOrthoGraph() {
#pragma pop
/* 8000B174-8000B1D0 005AB4 005C+00 0/0 2/1 0/0 .text mDoGph_Create__Fv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void mDoGph_Create() {
nofralloc
#include "asm/m_Do/m_Do_graphic/mDoGph_Create__Fv.s"
int mDoGph_Create() {
JKRSolidHeap* heap = mDoExt_createSolidHeapToCurrent(0, NULL, 0);
mDoGph_gInf_c::create();
dComIfGd_init();
mDoExt_adjustSolidHeap(heap);
mDoExt_restoreCurrentHeap();
return 1;
}
#pragma pop
/* 8000B1D0-8000B1E4 005B10 0014+00 0/0 1/0 0/0 .text __sinit_m_Do_graphic_cpp */
#pragma push
-4
View File
@@ -18,10 +18,6 @@ struct mDoMemCd_Ctrl_c {
/* 80016730 */ void ThdInit();
};
struct mDoMch_render_c {
static _GXRenderModeObj* mRenderModeObj;
};
struct mDoDvdThd {
/* 80015858 */ void create(s32);
};
+2 -79
View File
@@ -51,7 +51,6 @@ extern "C" void quatM__14mDoMtx_stack_cFPC10Quaternion();
extern "C" void __sinit_m_Do_mtx_cpp();
extern "C" void __dt__18mDoMtx_quatStack_cFv();
extern "C" void __dt__14mDoMtx_stack_cFv();
extern "C" extern u8 g_mDoMtx_identity[48 + 24 /* padding */];
extern "C" u8 now__14mDoMtx_stack_c[48];
extern "C" u8 buffer__14mDoMtx_stack_c[768];
extern "C" void* next__14mDoMtx_stack_c;
@@ -462,84 +461,8 @@ asm mDoMtx_stack_c::~mDoMtx_stack_c() {
/* ############################################################################################## */
/* 803A2FD8-803A3020 0000F8 0030+18 0/0 23/23 4/4 .data g_mDoMtx_identity */
SECTION_DATA extern u8 g_mDoMtx_identity[48 + 24 /* padding */] = {
0x3F,
0x80,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x3F,
0x80,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x3F,
0x80,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
/* padding */
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
};
/* SECTION_DATA extern Mtx g_mDoMtx_identity = {
SECTION_DATA extern Mtx g_mDoMtx_identity = {
{1.0f, 0.0f, 0.0f, 0.0f},
{0.0f, 1.0f, 0.0f, 0.0f},
{0.0f, 0.0f, 1.0f, 0.0f},
}; */
};