m_Do debug (#3017)

* m_Do debug

* d_particle fix
This commit is contained in:
Jcw87
2026-01-05 02:19:14 -08:00
committed by GitHub
parent deb7bead20
commit b897ed3ec9
23 changed files with 663 additions and 245 deletions
+4 -4
View File
@@ -17,7 +17,7 @@ m_Do/m_Do_main.cpp:
.text start:0x80006880 end:0x8000AF00
.ctors start:0x8062F7C4 end:0x8062F7C8
.data start:0x8065FFA0 end:0x80660CF8
.sdata start:0x8073F140 end:0x8073F264
.sdata start:0x8073F140 end:0x8073F260
.sbss start:0x8074C260 end:0x8074C298
.sdata2 start:0x8074D740 end:0x8074D768
.bss start:0x80753500 end:0x80753980
@@ -25,8 +25,8 @@ m_Do/m_Do_main.cpp:
m_Do/m_Do_printf.cpp:
.text start:0x8000AF00 end:0x8000B8A0
.data start:0x80660CF8 end:0x80660DE8
.sdata start:0x8073F264 end:0x8073F268
.sbss start:0x8074C298 end:0x8074C2C4
.sdata start:0x8073F260 end:0x8073F268
.sbss start:0x8074C298 end:0x8074C2C0
.bss start:0x80753980 end:0x807541A0
m_Do/m_Do_audio.cpp:
@@ -35,7 +35,7 @@ m_Do/m_Do_audio.cpp:
.rodata start:0x8062FA20 end:0x8062FA30
.data start:0x80660DE8 end:0x80661190
.sdata start:0x8073F268 end:0x8073F2F0
.sbss start:0x8074C2C4 end:0x8074C310
.sbss start:0x8074C2C0 end:0x8074C310
.bss start:0x807541A0 end:0x80755570
m_Do/m_Do_controller_pad.cpp:
+45 -45
View File
@@ -56923,7 +56923,7 @@ __RTTI__16JOREventListener = .sdata:0x8073F1D8; // type:object size:0x8 scope:gl
@STRING@__ml__Q37JGadget40TLinkList<24JOREventCallbackListNode,-4>8iteratorCFv@2 = .sdata:0x8073F248; // type:object size:0x5 scope:local data:string hash:0x77A6A5B2 dhash:0xE9E906E0
@STRING@__ml__Q37JGadget40TLinkList<24JOREventCallbackListNode,-4>8iteratorCFv@0 = .sdata:0x8073F250; // type:object size:0x5 scope:local data:string hash:0x77A6A5B0 dhash:0xE9E906E0
@STRING@showAssert__12JUTAssertionFUlPCciPCc = .sdata:0x8073F258; // type:object size:0x3 scope:local data:string hash:0xB5B49325 dhash:0x8A51682D
lbl_8073F260 = .sdata:0x8073F260; // type:object size:0x4 hash:0xDEEFD0FB
print_callerPCLevel = .sdata:0x8073F260; // type:object size:0x1 hash:0xDEEFD0FB
@74060 = .sdata:0x8073F264; // type:object size:0x4 scope:local hash:0xA0402070
@114385 = .sdata:0x8073F268; // type:object size:0x5 scope:local data:string hash:0xAC930B0F
@114386 = .sdata:0x8073F270; // type:object size:0x7 scope:local data:string hash:0xAC930B0C
@@ -56943,7 +56943,7 @@ __RTTI__28JASGlobalInstance<8Z2SeqMgr> = .sdata:0x8073F2D0; // type:object size:
__RTTI__7Z2SeMgr = .sdata:0x8073F2E0; // type:object size:0x8 scope:global hash:0x4F5CF78F dhash:0x2CFD2898
__RTTI__27JASGlobalInstance<7Z2SeMgr> = .sdata:0x8073F2E8; // type:object size:0x8 scope:global hash:0x2E788E52 dhash:0xBD7E1260
@132349 = .sdata:0x8073F2F0; // type:object size:0x5 scope:local data:string hash:0xACB8534B
lbl_8073F2F5 = .sdata:0x8073F2F5; // type:object size:0x1 data:byte hash:0xB9EF6A6E dhash:0xAB6702CC
mWide__13mDoGph_gInf_c = .sdata:0x8073F2F5; // type:object size:0x1 data:byte hash:0xB9EF6A6E dhash:0xAB6702CC
m_aspect__13mDoGph_gInf_c = .sdata:0x8073F2F8; // type:object size:0x4 scope:global align:4 data:float hash:0x3090CED9 dhash:0x81D7591B
m_scale__13mDoGph_gInf_c = .sdata:0x8073F2FC; // type:object size:0x4 scope:global align:4 data:float hash:0xE062C531 dhash:0x713B30F3
m_invScale__13mDoGph_gInf_c = .sdata:0x8073F300; // type:object size:0x4 scope:global align:4 data:float hash:0xB7C31840 dhash:0xEBCB59E2
@@ -57084,8 +57084,8 @@ __RTTI__19JPAParticleCallBack = .sdata:0x8073F690; // type:object size:0x8 scope
@115063 = .sdata:0x8073F6D8; // type:object size:0x5 scope:local data:string hash:0xAC938265
@115212 = .sdata:0x8073F6E0; // type:object size:0x2 scope:local data:string hash:0xAC938A01
lbl_8073F6E8 = .sdata:0x8073F6E8; // type:object size:0x1 data:byte hash:0xC4F99235 dhash:0x36EB3D35
lbl_8073F6E9 = .sdata:0x8073F6E9; // type:object size:0x1 data:byte hash:0xDA67CD23 dhash:0x36F37423
lbl_8073F6EA = .sdata:0x8073F6EA; // type:object size:0x1 data:byte hash:0x3EAABB7D dhash:0x36F3743D
mCaptureScreenDivH__11fapGm_HIO_c = .sdata:0x8073F6E9; // type:object size:0x1 data:byte hash:0xDA67CD23 dhash:0x36F37423
mCaptureScreenDivV__11fapGm_HIO_c = .sdata:0x8073F6EA; // type:object size:0x1 data:byte hash:0x3EAABB7D dhash:0x36F3743D
lbl_8073F6EB = .sdata:0x8073F6EB; // type:object size:0x1 data:byte hash:0x2C072CEE dhash:0x37B0404E
@114738 = .sdata:0x8073F6EC; // type:object size:0x4 scope:local data:string hash:0xAC931B2D
@114739 = .sdata:0x8073F6F0; // type:object size:0x4 scope:local data:string hash:0xAC931B2C
@@ -64088,39 +64088,39 @@ __float_nan = .sdata:0x8074C238; // type:object size:0x4 scope:global align:4 da
__float_huge = .sdata:0x8074C23C; // type:object size:0x4 scope:global align:4 data:float hash:0x05E96515
__double_huge = .sdata:0x8074C240; // type:object size:0x8 scope:global align:8 data:double hash:0xF83ACA30
lbl_8074C248 = .sdata:0x8074C248; // type:object size:0x1 data:byte hash:0x95F85801
lbl_8074C260 = .sbss:0x8074C260; // type:object size:0x1 data:byte hash:0xC2BBDF96
lbl_8074C261 = .sbss:0x8074C261; // type:object size:0x1 data:byte hash:0x8DBD5017
memorycheck_check_frame = .sbss:0x8074C260; // type:object size:0x1 data:byte hash:0xC2BBDF96
fillcheck_check_frame = .sbss:0x8074C261; // type:object size:0x1 data:byte hash:0x8DBD5017
sPowerOnTime__7mDoMain = .sbss:0x8074C268; // type:object size:0x8 scope:global data:4byte hash:0x268FA347 dhash:0xF9564990
sHungUpTime__7mDoMain = .sbss:0x8074C270; // type:object size:0x8 scope:global data:4byte hash:0xDF30E828 dhash:0x64C8059F
lbl_8074C278 = .sbss:0x8074C278; // type:object size:0x1 data:byte hash:0xAE961E8B
lbl_8074C279 = .sbss:0x8074C279; // type:object size:0x1 data:byte hash:0x5BC5D1B2
lbl_8074C27A = .sbss:0x8074C27A; // type:object size:0x1 data:byte hash:0x9EBDA68D
lbl_8074C27B = .sbss:0x8074C27B; // type:object size:0x1 data:byte hash:0xEF85C4EB
lbl_8074C27C = .sbss:0x8074C27C; // type:object size:0x1 data:byte hash:0x85493AEA
lbl_8074C27D = .sbss:0x8074C27D; // type:object size:0x1 data:byte hash:0xC10E9EB2
mDisplayHeapSize = .sbss:0x8074C278; // type:object size:0x1 data:byte hash:0xAE961E8B
mReportDisable = .sbss:0x8074C279; // type:object size:0x1 data:byte hash:0x5BC5D1B2
mSelectHeapBar = .sbss:0x8074C27A; // type:object size:0x1 data:byte hash:0x9EBDA68D
mVisibleHeapBar = .sbss:0x8074C27B; // type:object size:0x1 data:byte hash:0xEF85C4EB
mPrintFrameLine = .sbss:0x8074C27C; // type:object size:0x1 data:byte hash:0x85493AEA
mCheckHeap = .sbss:0x8074C27D; // type:object size:0x1 data:byte hash:0xC10E9EB2
mDoMain_HIO = .sbss:0x8074C280; // type:object size:0x8 scope:global hash:0x5C34CFD9
@LOCAL@Debug_console__FUl@console_scroll@1 = .sbss:0x8074C288; // type:object size:0x4 scope:local align:4 data:float hash:0xBF7B851A dhash:0x7086F27F
@LOCAL@main01__Fv@frame = .sbss:0x8074C28C; // type:object size:0x4 scope:local data:4byte hash:0xA8D047CF dhash:0x4B63C2BB
instance__29JHIComPortManager<9JHICmnMem> = .sbss:0x8074C290; // type:object size:0x4 scope:global data:4byte hash:0x3E85C712 dhash:0x073E21A0
print_initialized = .sbss:0x8074C298; // type:object size:0x1 data:byte hash:0xAA4B677C
lbl_8074C299 = .sbss:0x8074C299; // type:object size:0x1 data:byte hash:0x732354FB
lbl_8074C29A = .sbss:0x8074C29A; // type:object size:0x1 data:byte hash:0x192C6F69
lbl_8074C29B = .sbss:0x8074C29B; // type:object size:0x1 data:byte hash:0xD31C3E46
lbl_8074C29C = .sbss:0x8074C29C; // type:object size:0x1 data:byte hash:0x58778549
__OSReport_disable = .sbss:0x8074C298; // type:object size:0x1 data:byte hash:0xAA4B677C
__OSReport_Error_disable = .sbss:0x8074C299; // type:object size:0x1 data:byte hash:0x732354FB
__OSReport_Warning_disable = .sbss:0x8074C29A; // type:object size:0x1 data:byte hash:0x192C6F69
__OSReport_System_disable = .sbss:0x8074C29B; // type:object size:0x1 data:byte hash:0xD31C3E46
__OSReport_enable = .sbss:0x8074C29C; // type:object size:0x1 data:byte hash:0x58778549
__OSReport_MonopolyThread = .sbss:0x8074C2A0; // type:object size:0x4 scope:global data:4byte hash:0x5152D00F
lbl_8074C2A4 = .sbss:0x8074C2A4; // type:object size:0x1 data:byte hash:0x5220DD69
lbl_8074C2A5 = .sbss:0x8074C2A5; // type:object size:0x1 data:byte hash:0x506935B7
lbl_8074C2A6 = .sbss:0x8074C2A6; // type:object size:0x1 hash:0x3BB70A48
lbl_8074C2A7 = .sbss:0x8074C2A7; // type:object size:0x1 hash:0x583CBD0D
print_mutex_initialized = .sbss:0x8074C2A4; // type:object size:0x1 data:byte hash:0x5220DD69
print_highPriority = .sbss:0x8074C2A5; // type:object size:0x1 data:byte hash:0x506935B7
print_threadID = .sbss:0x8074C2A6; // type:object size:0x1 hash:0x3BB70A48
print_callerPC = .sbss:0x8074C2A7; // type:object size:0x1 hash:0x583CBD0D
print_counts = .sbss:0x8074C2A8; // type:object size:0x4 scope:global data:4byte hash:0x0C25061B
print_errors = .sbss:0x8074C2AC; // type:object size:0x4 scope:global data:4byte hash:0x123F5FA0
print_warings = .sbss:0x8074C2B0; // type:object size:0x4 scope:global data:4byte hash:0xA05AA6BC
print_systems = .sbss:0x8074C2B4; // type:object size:0x4 scope:global data:4byte hash:0x36CB5A9D
lbl_8074C2B8 = .sbss:0x8074C2B8; // type:object size:0x1 data:byte hash:0xBF9D0727
print_initialized = .sbss:0x8074C2B8; // type:object size:0x1 data:byte hash:0xBF9D0727
lbl_8074C2B9 = .sbss:0x8074C2B9; // type:object size:0x7 data:byte hash:0xB0FDA7F8
lbl_8074C2C0 = .sbss:0x8074C2C0; // type:object size:0x1 data:byte hash:0x694E5028 dhash:0x0978C44E
lbl_8074C2C1 = .sbss:0x8074C2C1; // type:object size:0x1 data:byte hash:0x842F0E27 dhash:0x44515221
lbl_8074C2C2 = .sbss:0x8074C2C2; // type:object size:0x1 data:byte hash:0xB5B466D4 dhash:0x04485F72
mInitFlag__17mDoAud_zelAudio_c = .sbss:0x8074C2C0; // type:object size:0x1 data:byte hash:0x694E5028 dhash:0x0978C44E
mResetFlag__17mDoAud_zelAudio_c = .sbss:0x8074C2C1; // type:object size:0x1 data:byte hash:0x842F0E27 dhash:0x44515221
mBgmSet__17mDoAud_zelAudio_c = .sbss:0x8074C2C2; // type:object size:0x1 data:byte hash:0xB5B466D4 dhash:0x04485F72
g_mDoAud_audioHeap = .sbss:0x8074C2C4; // type:object size:0x4 scope:global data:4byte hash:0xB286EBBE
l_affCommand = .sbss:0x8074C2C8; // type:object size:0x4 scope:global data:4byte hash:0x527CFA30
l_arcCommand = .sbss:0x8074C2CC; // type:object size:0x4 scope:global data:4byte hash:0xD9970F01
@@ -64152,13 +64152,13 @@ mFadeRate__13mDoGph_gInf_c = .sbss:0x8074C330; // type:object size:0x4 scope:glo
mFadeSpeed__13mDoGph_gInf_c = .sbss:0x8074C334; // type:object size:0x4 scope:global align:4 data:float hash:0x32A55ED7 dhash:0xB8023455
mBackColor__13mDoGph_gInf_c = .sbss:0x8074C338; // type:object size:0x4 scope:global hash:0xE3382340 dhash:0xFFA7FDE2
mFadeColor__13mDoGph_gInf_c = .sbss:0x8074C33C; // type:object size:0x4 scope:global data:byte hash:0xCF624FAD dhash:0xB920E1EF
lbl_8074C340 = .sbss:0x8074C340; // type:object size:0x1 data:byte hash:0x8060A1F6 dhash:0x97199254
lbl_8074C341 = .sbss:0x8074C341; // type:object size:0x1 data:byte hash:0xAEFC12D8 dhash:0x970ECC7A
lbl_8074C342 = .sbss:0x8074C342; // type:object size:0x1 data:byte hash:0x17ED86D0 dhash:0x64BC5A72
lbl_8074C343 = .sbss:0x8074C343; // type:object size:0x1 data:byte hash:0x833AD687 dhash:0x1FCE5685
mBlureFlag__13mDoGph_gInf_c = .sbss:0x8074C340; // type:object size:0x1 data:byte hash:0x8060A1F6 dhash:0x97199254
mBlureRate__13mDoGph_gInf_c = .sbss:0x8074C341; // type:object size:0x1 data:byte hash:0xAEFC12D8 dhash:0x970ECC7A
mFade__13mDoGph_gInf_c = .sbss:0x8074C342; // type:object size:0x1 data:byte hash:0x17ED86D0 dhash:0x64BC5A72
mAutoForcus__13mDoGph_gInf_c = .sbss:0x8074C343; // type:object size:0x1 data:byte hash:0x833AD687 dhash:0x1FCE5685
lbl_8074C344 = .sbss:0x8074C344; // type:object size:0x1 data:byte hash:0x21FC0675 dhash:0x0CE64537
m_blurID__Q213mDoGph_gInf_c5csr_c = .sbss:0x8074C348; // type:object size:0x4 scope:global data:4byte hash:0x847B8725 dhash:0x564F5EB1
lbl_8074C34C = .sbss:0x8074C34C; // type:object size:0x1 data:byte hash:0xE004A661 dhash:0xBFC539A3
mWideZoom__13mDoGph_gInf_c = .sbss:0x8074C34C; // type:object size:0x1 data:byte hash:0xE004A661 dhash:0xBFC539A3
m_minX__13mDoGph_gInf_c = .sbss:0x8074C350; // type:object size:0x4 scope:global data:4byte hash:0x148AEC1B dhash:0xFBA4BE99
m_minY__13mDoGph_gInf_c = .sbss:0x8074C354; // type:object size:0x4 scope:global data:4byte hash:0x3CEC7A3A dhash:0xFBA4BE98
m_minXF__13mDoGph_gInf_c = .sbss:0x8074C358; // type:object size:0x4 scope:global align:4 data:float hash:0x56FA6CBD dhash:0x703C91FF
@@ -64182,9 +64182,9 @@ archiveHeapErrors = .sbss:0x8074C398; // type:object size:0x4 scope:global data:
unknownHeapErrors = .sbss:0x8074C39C; // type:object size:0x4 scope:global data:4byte hash:0x6BEBABBA
heapErrors = .sbss:0x8074C3A0; // type:object size:0x4 scope:global data:4byte hash:0xAD85E432
@LOCAL@myGetHeapTypeByString__FP7JKRHeap@tmpString = .sbss:0x8074C3A4; // type:object size:0x5 scope:local data:byte hash:0x34A07792 dhash:0xEB3242A8
lbl_8074C3A9 = .sbss:0x8074C3A9; // type:object size:0x1 data:byte hash:0x355216F6 dhash:0xC99D7D59
lbl_8074C3AA = .sbss:0x8074C3AA; // type:object size:0x1 data:byte hash:0xFDF68EEF dhash:0xC99D7D59
lbl_8074C3AB = .sbss:0x8074C3AB; // type:object size:0x1 data:byte hash:0x15E8B591 dhash:0xC99D7D59
@LOCAL@developKeyCheck__FUlUl@key_link = .sbss:0x8074C3A9; // type:object size:0x1 data:byte hash:0x355216F6 dhash:0xC99D7D59
@LOCAL@developKeyCheck__FUlUl@key_ganon@0 = .sbss:0x8074C3AA; // type:object size:0x1 data:byte hash:0xFDF68EEF dhash:0xC99D7D59
@LOCAL@developKeyCheck__FUlUl@key_zelda@1 = .sbss:0x8074C3AB; // type:object size:0x1 data:byte hash:0x15E8B591 dhash:0xC99D7D59
@LOCAL@exceptionNNGCReadPad__FPUlPUl@l_oldButton@0 = .sbss:0x8074C3AC; // type:object size:0x4 scope:local data:4byte hash:0x50F85B88 dhash:0x8D7B3DDD
mDoMtx_stack = .sbss:0x8074C3B0; // type:object size:0x1 scope:global hash:0x2AB168B3
CurrentHeapAdjustVerbose__6mDoExt = .sbss:0x8074C3B8; // type:object size:0x1 data:byte hash:0x60980213 dhash:0x3EBAE505
@@ -64216,10 +64216,10 @@ sFirst__16FixedMemoryCheck = .sbss:0x8074C418; // type:object size:0x4 scope:glo
mSystemFar__14mDoLib_clipper = .sbss:0x8074C420; // type:object size:0x4 scope:global align:4 data:float hash:0x5BDDFAD2 dhash:0x3BFD5D57
mFovyRate__14mDoLib_clipper = .sbss:0x8074C424; // type:object size:0x4 scope:global align:4 data:float hash:0x73CD1106 dhash:0x00162BE3
mResetData__6mDoRst = .sbss:0x8074C428; // type:object size:0x4 scope:global data:4byte hash:0x55C17868 dhash:0x9A2A045E
lbl_8074C430 = .sbss:0x8074C430; // type:object size:0x1 data:byte hash:0x19BE1E2E dhash:0xD42015B7
lbl_8074C431 = .sbss:0x8074C431; // type:object size:0x1 data:byte hash:0xCE8E7825 dhash:0xA822CCBC
lbl_8074C432 = .sbss:0x8074C432; // type:object size:0x1 data:byte hash:0xCBBFFD36 dhash:0x283B9E2F
lbl_8074C433 = .sbss:0x8074C433; // type:object size:0x1 hash:0x5096A6E1 dhash:0x1F2BBC78
verbose__9mDoDvdThd = .sbss:0x8074C430; // type:object size:0x1 data:byte hash:0x19BE1E2E dhash:0xD42015B7
DVDLogoMode__9mDoDvdThd = .sbss:0x8074C431; // type:object size:0x1 data:byte hash:0xCE8E7825 dhash:0xA822CCBC
SyncWidthSound__9mDoDvdThd = .sbss:0x8074C432; // type:object size:0x1 data:byte hash:0xCBBFFD36 dhash:0x283B9E2F
Report_DVDRead__9mDoDvdThd = .sbss:0x8074C433; // type:object size:0x1 hash:0x5096A6E1 dhash:0x1F2BBC78
BootInfo__10mDoDvdHack = .sbss:0x8074C434; // type:object size:0x4 scope:global data:4byte hash:0x602B2CCD dhash:0x0350F38C
FstStart__10mDoDvdHack = .sbss:0x8074C438; // type:object size:0x4 scope:global data:4byte hash:0xB059FB54 dhash:0x87146F95
FstStringStart__10mDoDvdHack = .sbss:0x8074C43C; // type:object size:0x4 scope:global data:4byte hash:0x56901DA1 dhash:0x76F925E0
@@ -64242,7 +64242,7 @@ lbl_8074C468 = .sbss:0x8074C468; // type:object size:0x1 data:byte hash:0xBABF0D
cDyl_Initialized = .sbss:0x8074C46C; // type:object size:0x4 scope:global data:4byte hash:0x4F14A2E4
cDyl_DVD = .sbss:0x8074C470; // type:object size:0x4 scope:global data:4byte hash:0x12A4A3DE
lbl_8074C478 = .sbss:0x8074C478; // type:object size:0x1 data:byte hash:0x212A8642 dhash:0x9C6E1C22
lbl_8074C479 = .sbss:0x8074C479; // type:object size:0x1 data:byte hash:0x911301CA dhash:0x705BB8AA
m_CpuTimerOff__11fapGm_HIO_c = .sbss:0x8074C479; // type:object size:0x1 data:byte hash:0x911301CA dhash:0x705BB8AA
lbl_8074C47A = .sbss:0x8074C47A; // type:object size:0x1 data:byte hash:0xDE8007C6 dhash:0x7D1A2EE6
m_CpuTimerTick__11fapGm_HIO_c = .sbss:0x8074C47C; // type:object size:0x4 scope:global data:4byte hash:0x1D284173 dhash:0x706361F3
mCaptureScreen__11fapGm_HIO_c = .sbss:0x8074C480; // type:object size:0x4 scope:global data:4byte hash:0x440BFED0 dhash:0x751F8370
@@ -64252,8 +64252,8 @@ mCaptureScreenWidth__11fapGm_HIO_c = .sbss:0x8074C48A; // type:object size:0x2 s
mCaptureScreenHeight__11fapGm_HIO_c = .sbss:0x8074C48C; // type:object size:0x2 scope:global data:2byte hash:0xE990D42F dhash:0xCAB4FC6F
mCaptureScreenLinePf__11fapGm_HIO_c = .sbss:0x8074C48E; // type:object size:0x2 scope:global data:2byte hash:0x45377208 dhash:0xD3358B28
mCaptureScreenLineNum__11fapGm_HIO_c = .sbss:0x8074C490; // type:object size:0x2 scope:global data:2byte hash:0xCC174908 dhash:0x39E708E8
lbl_8074C492 = .sbss:0x8074C492; // type:object size:0x1 data:byte hash:0x56EDE2EE dhash:0x36F65A0E
lbl_8074C493 = .sbss:0x8074C493; // type:object size:0x1 data:byte hash:0xDA2ADA30 dhash:0x36F65A10
mCaptureScreenNumH__11fapGm_HIO_c = .sbss:0x8074C492; // type:object size:0x1 data:byte hash:0x56EDE2EE dhash:0x36F65A0E
mCaptureScreenNumV__11fapGm_HIO_c = .sbss:0x8074C493; // type:object size:0x1 data:byte hash:0xDA2ADA30 dhash:0x36F65A10
lbl_8074C494 = .sbss:0x8074C494; // type:object size:0x1 data:byte hash:0xA9B59EC0 dhash:0xA12DE4E0
mPriorityMaximum__19print_error_check_c = .sbss:0x8074C498; // type:object size:0x1 data:byte hash:0xE0AE7E09 dhash:0x4F24BEA1
mPrintDisable__19print_error_check_c = .sbss:0x8074C499; // type:object size:0x1 data:byte hash:0xC93122F6 dhash:0x62D5041E
@@ -64308,7 +64308,7 @@ lbl_8074C580 = .sbss:0x8074C580; // type:object size:0x1 data:byte hash:0x3F91BE
mArcBankName__20dStage_roomControl_c = .sbss:0x8074C584; // type:object size:0x4 scope:global data:4byte hash:0x885DF1A0 dhash:0xD2AA5D02
mArcBankData__20dStage_roomControl_c = .sbss:0x8074C588; // type:object size:0x4 scope:global data:4byte hash:0xF1AABD97 dhash:0xD2A70575
m_roomDzs__20dStage_roomControl_c = .sbss:0x8074C590; // type:object size:0x8 scope:global hash:0x67101B7C dhash:0x0B10A8BE
lbl_8074C598 = .sbss:0x8074C598; // type:object size:0x1 data:byte hash:0x0FE1C5F9 dhash:0x486303FB
mNoArcBank__20dStage_roomControl_c = .sbss:0x8074C598; // type:object size:0x1 data:byte hash:0x0FE1C5F9 dhash:0x486303FB
mMySelfPointer__10dMap_HIO_c = .sbss:0x8074C5A0; // type:object size:0x4 scope:global data:4byte hash:0x1A38E60F dhash:0x9D3A05CE
m_res_src_p__10dMap_HIO_c = .sbss:0x8074C5A4; // type:object size:0x4 scope:global data:4byte hash:0x3D5090F5 dhash:0xF541D914
m_res__22dMap_HIO_prm_res_dst_s = .sbss:0x8074C5A8; // type:object size:0x4 scope:global data:4byte hash:0xD26B2581 dhash:0x3C11EE61
@@ -64594,13 +64594,13 @@ g_msg_unit = .sbss:0x8074CA28; // type:object size:0x4 scope:global hash:0x2DF27
lbl_8074CA30 = .sbss:0x8074CA30; // type:object size:0x1 data:byte hash:0xDEF1B632
dOvlpFd_execute_f = .sbss:0x8074CA38; // type:object size:0x4 scope:global data:4byte hash:0x3CC65A9F
g_LogHIO = .sbss:0x8074CA40; // type:object size:0x8 scope:global hash:0xE945B397
lbl_8074CA48 = .sbss:0x8074CA48; // type:object size:0x1 data:byte hash:0x9DFC8DF2 dhash:0xE09EDBD3
mOpeningCut__10dScnLogo_c = .sbss:0x8074CA48; // type:object size:0x1 data:byte hash:0x9DFC8DF2 dhash:0xE09EDBD3
lbl_8074CA49 = .sbss:0x8074CA49; // type:object size:0x1 data:byte hash:0x1236F8BB dhash:0x544758AC
g_playerKind = .sbss:0x8074CA50; // type:object size:0x4 scope:global data:4byte hash:0x5D97F186
g_debugHpMode = .sbss:0x8074CA54; // type:object size:0x4 scope:global data:4byte hash:0x6F1EFA77
g_horsePosInit = .sbss:0x8074CA58; // type:object size:0x4 scope:global data:4byte hash:0x4285DC88
cursolStageName__10dScnMenu_c = .sbss:0x8074CA60; // type:object size:0x8 scope:global data:byte hash:0x50155B86 dhash:0x49261767
lbl_8074CA68 = .sbss:0x8074CA68; // type:object size:0x1 data:byte hash:0x30DDAE9D dhash:0x1C912FBC
m_error_flags__10dScnMenu_c = .sbss:0x8074CA68; // type:object size:0x1 data:byte hash:0x30DDAE9D dhash:0x1C912FBC
lbl_8074CA69 = .sbss:0x8074CA69; // type:object size:0x1 data:byte hash:0x63AE7904 dhash:0x6FB32EC5
m_autoCursolID__10dScnMenu_c = .sbss:0x8074CA6C; // type:object size:0x4 scope:global data:4byte hash:0x3A8D7EB5 dhash:0x1EF4BE34
m_autoGroupPoint__10dScnMenu_c = .sbss:0x8074CA70; // type:object size:0x4 scope:global data:4byte hash:0x548FE15F dhash:0xD7C99ADE
@@ -64638,7 +64638,7 @@ lbl_8074CAF4 = .sbss:0x8074CAF4; // type:object size:0x1 data:byte hash:0x65D790
mFirst__24DynamicModuleControlBase = .sbss:0x8074CAF8; // type:object size:0x4 scope:global data:4byte hash:0x7A4D7869 dhash:0x286EBE4F
mLast__24DynamicModuleControlBase = .sbss:0x8074CAFC; // type:object size:0x4 scope:global data:4byte hash:0x9730AE79 dhash:0xA427AC7F
m_heap__24DynamicModuleControlBase = .sbss:0x8074CB00; // type:object size:0x4 scope:global data:4byte hash:0x03390490 dhash:0x27E5FEB6
lbl_8074CB04 = .sbss:0x8074CB04; // type:object size:0x4 hash:0xA60021A4 dhash:0xCF20E6E2
verbose__24DynamicModuleControlBase = .sbss:0x8074CB04; // type:object size:0x1 hash:0xA60021A4 dhash:0xCF20E6E2
sAllocBytes__20DynamicModuleControl = .sbss:0x8074CB08; // type:object size:0x4 scope:global data:4byte hash:0x0026CC68 dhash:0x7AE869CA
sArchive__20DynamicModuleControl = .sbss:0x8074CB0C; // type:object size:0x4 scope:global data:4byte hash:0x8F5167FE dhash:0x63B1595C
sFileCache__20DynamicModuleControl = .sbss:0x8074CB10; // type:object size:0x4 scope:global data:4byte hash:0xAFDE7EB6 dhash:0x9BB1DC14
@@ -64895,7 +64895,7 @@ sCallback__Q210JUTGamePad13C3ButtonReset = .sbss:0x8074CFB8; // type:object size
sCallbackArg__Q210JUTGamePad13C3ButtonReset = .sbss:0x8074CFBC; // type:object size:0x4 scope:global data:4byte hash:0xCC5C4708 dhash:0x77A84D68
sThreshold__Q210JUTGamePad13C3ButtonReset = .sbss:0x8074CFC0; // type:object size:0x8 scope:global data:4byte hash:0xFCCCB7E2 dhash:0xE2BF2EC2
lbl_8074CFC8 = .sbss:0x8074CFC8; // type:object size:0x1 data:byte hash:0xBD6B48CC dhash:0x498A7ECC
lbl_8074CFC9 = .sbss:0x8074CFC9; // type:object size:0x1 data:byte hash:0x878FC37B dhash:0xB3FB803B
sResetOccurred__Q210JUTGamePad13C3ButtonReset = .sbss:0x8074CFC9; // type:object size:0x1 data:byte hash:0x878FC37B dhash:0xB3FB803B
sResetOccurredPort__Q210JUTGamePad13C3ButtonReset = .sbss:0x8074CFCC; // type:object size:0x4 scope:global data:4byte hash:0xEAB52F22 dhash:0x4A01E002
sErrorManager__12JUTException = .sbss:0x8074CFD0; // type:object size:0x4 scope:global data:4byte hash:0x6DF35642 dhash:0x528F3581
sPreUserCallback__12JUTException = .sbss:0x8074CFD4; // type:object size:0x4 scope:global data:4byte hash:0xADFB8956 dhash:0x5E579095
+31
View File
@@ -3,6 +3,37 @@
#include "JSystem/JFramework/JFWDisplay.h"
class CProjectionDivider {
public:
/* 0x00 */ f32 field_0x0;
/* 0x04 */ f32 field_0x4;
/* 0x08 */ f32 field_0x8;
/* 0x0C */ f32 field_0xc;
/* 0x10 */ f32 field_0x10;
/* 0x14 */ f32 field_0x14;
/* 0x18 */ s32 field_0x18;
/* 0x1C */ s32 field_0x1c;
CProjectionDivider(s32, s32);
virtual ~CProjectionDivider() {}
f32 calcDivRatioH(s32) const;
f32 calcDivRatioV(s32) const;
};
class CPerspDivider : public CProjectionDivider {
public:
CPerspDivider(const Mtx44&, s32, s32);
virtual ~CPerspDivider() {}
void divide(Mtx44&, s32, s32) const;
};
class COrthoDivider : public CProjectionDivider {
public:
COrthoDivider(const Mtx44&, s32, s32);
virtual ~COrthoDivider() {}
void divide(Mtx44&, s32, s32) const;
};
class CaptureScreen {
public:
CaptureScreen(const JFWDisplay*);
+2 -1
View File
@@ -39,6 +39,7 @@ struct JORServer;
class JOREventListener {
public:
#if DEBUG
JOREventListener() {}
virtual void listenPropertyEvent(const JORPropertyEvent*) = 0;
#endif
};
@@ -46,7 +47,7 @@ public:
class JORReflexible : public JOREventListener {
public:
#if DEBUG
JORReflexible();
JORReflexible() {}
static JORServer* getJORServer();
virtual void listenPropertyEvent(const JORPropertyEvent*);
+1 -1
View File
@@ -119,7 +119,7 @@ inline JKRExpHeap* JKRCreateExpHeap(u32 size, JKRHeap* parent, bool errorFlag) {
return JKRExpHeap::create(size, parent, errorFlag);
}
inline void JKRDestroyExpHeap(JKRHeap* heap) {
inline void JKRDestroyExpHeap(JKRExpHeap* heap) {
heap->destroy();
}
+1 -5
View File
@@ -108,10 +108,7 @@ public:
}
}
JKRHeap* getParent() {
JSUTree<JKRHeap>* parent = mChildTree.getParent();
return parent->getObject();
}
JKRHeap* getParent() { return mChildTree.getParent()->getObject(); }
JSUTree<JKRHeap>& getHeapTree() { return mChildTree; }
void appendDisposer(JKRDisposer* disposer) { mDisposerList.append(&disposer->mLink); }
@@ -119,7 +116,6 @@ public:
void lock() const { OSLockMutex(const_cast<OSMutex*>(&mMutex)); }
void unlock() const { OSUnlockMutex(const_cast<OSMutex*>(&mMutex)); }
u32 getHeapSize() { return mSize; }
u8 getCurrentGroupId() { return 0; }
protected:
/* 0x00 */ // vtable
+1 -1
View File
@@ -67,7 +67,7 @@ inline JKRSolidHeap* JKRCreateSolidHeap(u32 param_0, JKRHeap* heap, bool param_2
return JKRSolidHeap::create(param_0, heap, param_2);
}
inline void JKRDestroySolidHeap(JKRHeap* heap) {
inline void JKRDestroySolidHeap(JKRSolidHeap* heap) {
heap->destroy();
}
+7
View File
@@ -4198,6 +4198,13 @@ inline void dComIfGd_drawListItem3d() {
g_dComIfG_gameInfo.drawlist.drawXluListItem3d();
}
# if VERSION > VERSION_GCN_JPN
inline void dComIfGd_drawListCursor() {
g_dComIfG_gameInfo.drawlist.drawOpaListCursor();
g_dComIfG_gameInfo.drawlist.drawXluListCursor();
}
#endif
inline void dComIfGd_reset() {
g_dComIfG_gameInfo.drawlist.reset();
}
+4
View File
@@ -483,6 +483,10 @@ public:
void drawOpaList3Dlast() { drawOpaDrawList(mDrawBuffers[DB_LIST_3D_LAST]); }
void drawOpaListFilter() { drawOpaDrawList(mDrawBuffers[DB_LIST_FILTER]); }
void drawOpaListP0() { drawOpaDrawList(mDrawBuffers[DB_LIST_P0]); }
#if VERSION > VERSION_GCN_JPN
void drawOpaListCursor() { drawOpaDrawList(mDrawBuffers[DB_LIST_CURSOR]); }
void drawXluListCursor() { drawXluDrawList(mDrawBuffers[DB_LIST_CURSOR]); }
#endif
void draw2DOpa() { draw(mp2DOpaDrawLists, mp2DOpaStart); }
void draw2DOpaTop() { draw(mp2DOpaTopDrawLists, mp2DOpaTopStart); }
void draw2DXlu() { draw(mp2DXluDrawLists, mp2DXluStart); }
+38
View File
@@ -0,0 +1,38 @@
#ifndef D_JCAM_EDITOR_H
#define D_JCAM_EDITOR_H
#include "dolphin/mtx.h"
namespace JStage {
class TSystem;
}
namespace JStudioCameraEditor {
class TControl;
}
class JKRExpHeap;
class JUTGamePad;
class JUTResFont;
class dJcame_c {
public:
dJcame_c(const JStage::TSystem*, f32, JUTGamePad&);
void show3D(Mtx);
void show2D();
static void create(const JStage::TSystem*, f32, JUTGamePad&);
static dJcame_c* m_myObj;
static dJcame_c* get() { return m_myObj; }
/* 0x00 */ JStage::TSystem* field_0x0;
/* 0x04 */ JUTResFont* field_0x4;
/* 0x08 */ JKRExpHeap* mHeap;
/* 0x0C */ JStudioCameraEditor::TControl* mControl;
/* 0x10 */ int field_0x10;
/* 0x14 */ u8 field_0x14;
};
#endif /* D_JCAM_EDITOR_H */
+40
View File
@@ -0,0 +1,40 @@
#ifndef D_JPREVIEWER_H
#define D_JPREVIEWER_H
#include "dolphin/mtx.h"
namespace JStudio {
class TControl;
}
class J2DOrthoGraph;
class JKRExpHeap;
class JUTGamePad;
class JUTResFont;
class tParse_;
class dJprevCtrl_c /* : public JStudioPreviewer::TControl */ {
public:
};
class dJprev_c {
public:
dJprev_c(JStudio::TControl*, const JUTGamePad&);
void show3D(Mtx);
void show2D();
static dJprev_c* get() { return m_myObj; }
static dJprev_c* m_myObj;
/* 0x00 */ J2DOrthoGraph* mOrthoGraph;
/* 0x04 */ JUTResFont* mFont;
/* 0x08 */ JKRExpHeap* mHeap;
/* 0x0C */ tParse_* m_parse;
/* 0x10 */ dJprevCtrl_c* mControl;
/* 0x14 */ u8 field_0x14;
};
#endif /* D_JPREVIEWER_H */
-1
View File
@@ -211,7 +211,6 @@ public:
UNUSED(i_emitter);
dPa_cleanupGX();
}
virtual void execute(JPABaseEmitter*);
virtual void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8);
};
+10 -1
View File
@@ -33,7 +33,7 @@ public:
JUT_ASSERT(46, mCaptureScreen != NULL);
}
static u8 isCaptureScreen() {
static bool isCaptureScreen() {
return mCaptureScreenFlag;
}
@@ -44,6 +44,12 @@ public:
static void offCpuTimer() {
m_CpuTimerOff = FALSE;
}
static u8 getCaptureScreenNumH() { return mCaptureScreenNumH; }
static u8 getCaptureScreenNumV() { return mCaptureScreenNumV; }
static u8 getCaptureScreenDivH() { return mCaptureScreenDivH; }
static u8 getCaptureScreenDivV() { return mCaptureScreenDivV; }
#endif
#if DEBUG
@@ -63,6 +69,9 @@ public:
static u8 mCaptureScreenNumV;
static u8 mParticle254Fix;
static u8 mCaptureScreenDivH;
static u8 mCaptureScreenDivV;
#endif
/* 0x04 */ s8 field_0x04;
+1
View File
@@ -70,6 +70,7 @@ public:
static JUTGamePad* m_gamePad[4];
static interface_of_controller_pad m_cpadInfo[4];
static interface_of_controller_pad m_debugCpadInfo[4];
};
inline void mDoCPd_ANALOG_CONV(u8 analog, f32& param_1) {
+5 -7
View File
@@ -148,7 +148,7 @@ STATIC_ASSERT(sizeof(mDoExt_bpkAnm) == 0x18);
class mDoExt_bckAnm : public mDoExt_baseAnm {
public:
mDoExt_bckAnm() { mpMtxCalc = NULL; }
mDoExt_bckAnm() { mAnm = NULL; }
int init(J3DAnmTransform* i_bck, int i_play, int i_attr, f32 i_rate,
s16 i_startF, s16 i_endF, bool i_modify);
void changeBckOnly(J3DAnmTransform* i_bck);
@@ -164,15 +164,15 @@ public:
i_modelData->getJointNodePointer(0)->setMtxCalc(NULL);
}
J3DAnmTransform* getBckAnm() { return mAnm; }
J3DAnmTransform* getBckAnm() { return mAnmTransform; }
void removeJoint(J3DModelData* i_modelData, u16 i_idx) {
i_modelData->getJointNodePointer(i_idx)->setMtxCalc(0);
}
private:
/* 0x14 */ J3DAnmTransform* mAnm;
/* 0x18 */ J3DMtxCalcAnimation<J3DMtxCalcAnimationAdaptorDefault<J3DMtxCalcCalcTransformMaya>, J3DMtxCalcJ3DSysInitMaya>* mpMtxCalc;
/* 0x14 */ J3DAnmTransform* mAnmTransform;
/* 0x18 */ J3DMtxCalcAnimation<J3DMtxCalcAnimationAdaptorDefault<J3DMtxCalcCalcTransformMaya>, J3DMtxCalcJ3DSysInitMaya>* mAnm;
}; // Size: 0x1C
STATIC_ASSERT(sizeof(mDoExt_bckAnm) == 0x1C);
@@ -811,10 +811,8 @@ J3DModel* mDoExt_J3DModel__create(J3DModelData* i_modelData, u32 i_modelFlag,
u32 i_differedDlistFlag);
extern u32 aram_cache_size;
u32 mDoExt_getAraCacheSize();
void mDoExt_setAraCacheSize(u32 size);
inline u32 mDoExt_getAraCacheSize() {
return aram_cache_size;
}
int mDoExt_resIDToIndex(JKRArchive* p_archive, u16 id);
void mDoExt_modelEntryDL(J3DModel* i_model);
+1 -1
View File
@@ -8,7 +8,7 @@ class JKRHeap;
void myHeapCheckRecursive(JKRHeap*);
BOOL mDoMch_IsProgressiveMode();
bool exceptionReadPad(u32*, u32*);
void exceptionReadPad(u32*, u32*);
void exceptionRestart();
void myExceptionCallback(u16, OSContext*, u32, u32);
void my_SysPrintHeap(char const*, void*, u32);
+1
View File
@@ -11,6 +11,7 @@ extern OSThread mainThread;
void version_check();
s32 LOAD_COPYDATE(void*);
extern OSThread mainThread;
const int HeapCheckTableNum = 8;
class HeapCheck {
+2 -2
View File
@@ -75,7 +75,7 @@ void print_error_check_c::start() {
mPrintErrors = print_errors;
if (mPrintDisable) {
mPrintInit = print_initialized;
mPrintInit = __OSReport_disable;
OSReportDisable();
} else {
mPrintInit = -1;
@@ -106,7 +106,7 @@ void print_error_check_c::check() {
}
if (mPrintInit != -1) {
print_initialized = mPrintInit;
__OSReport_disable = mPrintInit;
}
if (mPrintErrors != print_errors) {
+34 -17
View File
@@ -4,7 +4,9 @@
*/
#include "m_Do/m_Do_controller_pad.h"
#include "JSystem/JAWExtSystem/JAWExtSystem.h"
#include "SSystem/SComponent/c_lib.h"
#include "d/d_com_inf_game.h"
#include "f_ap/f_ap_game.h"
#include "m_Do/m_Do_Reset.h"
#include "m_Do/m_Do_main.h"
@@ -12,14 +14,14 @@
JUTGamePad* mDoCPd_c::m_gamePad[4];
interface_of_controller_pad mDoCPd_c::m_cpadInfo[4];
interface_of_controller_pad mDoCPd_c::m_debugCpadInfo[4];
void mDoCPd_c::create() {
#if PLATFORM_GCN || PLATFORM_SHIELD
JUTGamePad* pad = new JUTGamePad(JUTGamePad::EPort1);
m_gamePad[0] = pad;
m_gamePad[0] = new JUTGamePad(JUTGamePad::EPort1);
#endif
if (mDoMain::developmentMode != 0) {
if (DEBUG || mDoMain::developmentMode != 0) {
#if PLATFORM_WII
m_gamePad[0] = new JUTGamePad(JUTGamePad::EPort1);
#endif
@@ -47,10 +49,8 @@ void mDoCPd_c::create() {
interface_of_controller_pad* cpad = &m_cpadInfo[0];
for (int i = 0; i < 4; i++) {
cpad->mTrigLockL = false;
cpad->mHoldLockL = false;
cpad->mTrigLockR = false;
cpad->mHoldLockR = false;
cpad->mHoldLockL = cpad->mTrigLockL = false;
cpad->mHoldLockR = cpad->mTrigLockR = false;
cpad++;
}
}
@@ -59,15 +59,27 @@ void mDoCPd_c::read() {
JUTGamePad::read();
if (!mDoRst::isReset() && mDoRst::is3ButtonReset()) {
JUTGamePad* pad = JUTGamePad::getGamePad(mDoRst::get3ButtonResetPort());
if (!pad->isPushing3ButtonReset()) {
if (!JUTGamePad::getGamePad(mDoRst::get3ButtonResetPort())->isPushing3ButtonReset()) {
mDoRst::off3ButtonReset();
}
}
#if DEBUG
if (m_gamePad[3]) {
JAWExtSystem::padProc(*m_gamePad[3]);
}
#endif
JUTGamePad** pad = m_gamePad;
interface_of_controller_pad* interface = m_cpadInfo;
#if DEBUG
interface_of_controller_pad* interface2 = m_debugCpadInfo;
if (dComIfG_isDebugMode()) {
interface_of_controller_pad* tmp = interface;
interface = interface2;
interface2 = tmp;
}
#endif
for (u32 i = 0; i < 4; i++) {
if (*pad == NULL) {
@@ -76,9 +88,14 @@ void mDoCPd_c::read() {
convert(interface, *pad);
LRlockCheck(interface);
}
#if DEBUG
cLib_memSet(interface2, 0, sizeof(interface_of_controller_pad));
#endif
pad++;
interface++;
#if DEBUG
interface2++;
#endif
}
}
@@ -103,26 +120,26 @@ void mDoCPd_c::convert(interface_of_controller_pad* pInterface, JUTGamePad* pPad
}
void mDoCPd_c::LRlockCheck(interface_of_controller_pad* interface) {
f32 trig_left = interface->mTriggerLeft;
f32 trigger = interface->mTriggerLeft;
interface->mTrigLockL = false;
interface->mTrigLockR = false;
if (trig_left > fapGmHIO_getLROnValue()) {
if (trigger > fapGmHIO_getLROnValue()) {
if (interface->mHoldLockL != true) {
interface->mTrigLockL = true;
}
interface->mHoldLockL = true;
} else if (trig_left < fapGmHIO_getLROffValue()) {
} else if (trigger < fapGmHIO_getLROffValue()) {
interface->mHoldLockL = false;
}
f32 trig_right = interface->mTriggerRight;
if (trig_right > fapGmHIO_getLROnValue()) {
trigger = interface->mTriggerRight;
if (trigger > fapGmHIO_getLROnValue()) {
if (interface->mHoldLockR != true) {
interface->mTrigLockR = true;
}
interface->mHoldLockR = true;
} else if (trig_right < fapGmHIO_getLROffValue()) {
} else if (trigger < fapGmHIO_getLROffValue()) {
interface->mHoldLockR = false;
}
}
+30 -36
View File
@@ -212,26 +212,25 @@ void dummy3(J3DModel* i_model, void* i_bva, bool i_modify) {
int mDoExt_bckAnm::init(J3DAnmTransform* i_bck, int i_play, int i_attr, f32 i_rate,
s16 i_startF, s16 i_endF, bool i_modify) {
JUT_ASSERT(614, (i_modify || isCurrentSolidHeap()) && i_bck != NULL);
mAnm = i_bck;
mAnmTransform = i_bck;
if (!i_modify) {
mpMtxCalc = new J3DMtxCalcAnimation<J3DMtxCalcAnimationAdaptorDefault<J3DMtxCalcCalcTransformMaya>, J3DMtxCalcJ3DSysInitMaya>(mAnm);
if (!mpMtxCalc) {
mAnm = new J3DMtxCalcAnimation<J3DMtxCalcAnimationAdaptorDefault<J3DMtxCalcCalcTransformMaya>, J3DMtxCalcJ3DSysInitMaya>(mAnmTransform);
if (!mAnm) {
return 0;
}
} else {
mpMtxCalc->setAnmTransform(mAnm);
mAnm->setAnmTransform(mAnmTransform);
}
if (i_play) {
return initPlay(mAnm->getFrameMax(), i_attr < 0 ? mAnm->getAttribute() : i_attr, i_rate, i_startF, i_endF);
return initPlay(mAnmTransform->getFrameMax(), i_attr < 0 ? mAnmTransform->getAttribute() : i_attr, i_rate, i_startF, i_endF);
}
return 1;
}
void mDoExt_bckAnm::changeBckOnly(J3DAnmTransform* i_bck) {
mAnm = i_bck;
JUT_ASSERT(646, mAnm != NULL);
mpMtxCalc->setAnmTransform(mAnm);
mAnmTransform = i_bck;
JUT_ASSERT(646, mAnm != 0);
mAnm->setAnmTransform(mAnmTransform);
}
void dummy4(J3DModel* i_model, void* i_bxa, bool i_modify) {
@@ -239,13 +238,13 @@ void dummy4(J3DModel* i_model, void* i_bxa, bool i_modify) {
}
void mDoExt_bckAnm::entry(J3DModelData* i_modelData, f32 i_frame) {
mAnm->setFrame(i_frame);
i_modelData->getJointNodePointer(0)->setMtxCalc(mpMtxCalc);
mAnmTransform->setFrame(i_frame);
i_modelData->getJointNodePointer(0)->setMtxCalc(mAnm);
}
void mDoExt_bckAnm::entryJoint(J3DModelData* i_modelData, u16 i_jntNo, f32 i_frame) {
mAnm->setFrame(i_frame);
i_modelData->getJointNodePointer(i_jntNo)->setMtxCalc(mpMtxCalc);
mAnmTransform->setFrame(i_frame);
i_modelData->getJointNodePointer(i_jntNo)->setMtxCalc(mAnm);
}
int mDoExt_blkAnm::init(J3DDeformData* i_deformData, J3DAnmCluster* i_blk, int i_anmPlay,
@@ -288,19 +287,19 @@ void mDoExt_modelTexturePatch(J3DModelData* i_modelData) {
}
}
static void dummy1() {
((J3DDrawPacket*)NULL)->beginPatch();
((J3DTevBlock*)NULL)->patch();
((J3DMaterial*)NULL)->getPEBlock();
((J3DMaterial*)NULL)->getTexGenBlock();
((J3DMaterial*)NULL)->getColorBlock()->patchLight();
((J3DPEBlock*)NULL)->patch();
((J3DDrawPacket*)NULL)->endPatch();
static void dummy1(J3DModel* model, J3DMaterial* material) {
J3DMatPacket* packet = model->getMatPacket(0);
packet->beginPatch();
material->getTevBlock()->patch();
material->getColorBlock()->patchLight();
material->getTexGenBlock();
material->getPEBlock()->patch();
packet->endPatch();
}
static inline void modelMtxErrorCheck(J3DModel* i_model) {
#if DEBUG
if (i_model->getBaseTRMtx()[0][0] == 3.4028235e38f) {
if (i_model->getBaseTRMtx()[0][0] == FLT_MAX) {
i_model->getBaseTRMtx()[0][0] = 1.0f;
JUT_WARN(883, "%s", "Model Matrix Not Initialize !\n");
}
@@ -953,7 +952,7 @@ JKRSolidHeap* mDoExt_createSolidHeapToCurrent(JKRHeap** o_heap, u32 i_size, JKRH
JKRSolidHeap* mDoExt_createSolidHeapToCurrent(u32 i_size, JKRHeap* i_parent, u32 i_alignment) {
JUT_ASSERT(2427, OSGetCurrentThread() == &mainThread);
JUT_ASSERT(2428, mDoExt_SaveCurrentHeap == 0);
JUT_ASSERT(2428, mDoExt_SaveCurrentHeap == NULL);
JKRSolidHeap* heap =
mDoExt_createSolidHeapToCurrent(&mDoExt_SaveCurrentHeap, i_size, i_parent, i_alignment);
if (mDoExt::CurrentHeapAdjustVerbose) {
@@ -1046,22 +1045,13 @@ void mDoExt_destroySolidHeap(JKRSolidHeap* i_heap) {
}
void mDoExt_destroyExpHeap(JKRExpHeap* i_heap) {
bool var_r30 = true;
bool var_r28;
#if DEBUG
if (i_heap == mDoExt_getCurrentHeap()) {
OS_PANIC(2576, "Failed assertion i_heap != mDoExt_getCurrentHeap()");
var_r28 = false;
if (!var_r28) {
var_r30 = false;
}
}
#endif
ASSERTLINE(2576, i_heap != mDoExt_getCurrentHeap());
JKRDestroyExpHeap(i_heap);
if (g_printOtherHeapDebug) {
// "mDoExt_destroyExpHeap Exp heap destruction"
#if DEBUG
if (mDoExt::HeapAdjustVerbose) {
OS_REPORT("mDoExt_destroyExpHeap Expヒープ破壊 %08x\n", i_heap);
}
#endif
}
JKRHeap* mDoExt_setCurrentHeap(JKRHeap* heap) {
@@ -3863,6 +3853,10 @@ void DummyCheckHeap_check() {
u32 aram_cache_size;
u32 mDoExt_getAraCacheSize() {
return aram_cache_size;
}
void mDoExt_setAraCacheSize(u32 size) {
aram_cache_size = size;
}
+212 -74
View File
@@ -7,6 +7,7 @@
#include "JSystem/J2DGraph/J2DOrthoGraph.h"
#include "JSystem/J2DGraph/J2DPrint.h"
#include "JSystem/JAWExtSystem/JAWExtSystem.h"
#include "JSystem/JFramework/JFWSystem.h"
#include "JSystem/JParticle/JPADrawInfo.h"
#include "JSystem/JUtility/JUTConsole.h"
@@ -17,6 +18,8 @@
#include "d/actor/d_a_player.h"
#include "d/d_com_inf_game.h"
#include "d/d_menu_collect.h"
#include "d/d_jcam_editor.h"
#include "d/d_jpreviewer.h"
#include <dolphin/base/PPCArch.h>
#include "f_ap/f_ap_game.h"
#include "f_op/f_op_camera_mng.h"
@@ -384,6 +387,12 @@ mDoGph_gInf_c::bloom_c mDoGph_gInf_c::m_bloom;
Mtx mDoGph_gInf_c::mBlureMtx;
#if DEBUG
cXyz mDoGph_gInf_c::csr_c::m_nowEffPos(0.0f, 0.0f, 0.0f);
cXyz mDoGph_gInf_c::csr_c::m_oldEffPos(0.0f, 0.0f, 0.0f);
cXyz mDoGph_gInf_c::csr_c::m_oldOldEffPos(0.0f, 0.0f, 0.0f);
#endif
void mDoGph_gInf_c::onBlure(const Mtx m) {
mBlureFlag = true;
setBlureMtx(m);
@@ -573,81 +582,85 @@ u8 mDoGph_gInf_c::isWide() {
}
void mDoGph_gInf_c::setWideZoomProjection(Mtx44& m) {
if (isWideZoom()) {
f32 sp20 = m[0][0];
f32 sp1C = m[0][2];
f32 sp18 = m[1][1];
f32 sp14 = m[1][2];
f32 sp10 = m[2][2];
f32 spC = m[2][3];
f32 temp_f31 = spC / (sp10 - 1.0f);
f32 sp8 = spC / sp10;
f32 temp_f30 = ((temp_f31 * (1.0f + sp14)) / sp18);
f32 temp_f29 = ((temp_f31 * (sp14 - 1.0f)) / sp18);
f32 temp_f28 = ((temp_f31 * (sp1C - 1.0f)) / sp20);
f32 temp_f27 = ((temp_f31 * (1.0f + sp1C)) / sp20);
temp_f30 *= getInvScale();
temp_f29 *= getInvScale();
temp_f28 *= getInvScale();
temp_f27 *= getInvScale();
m[0][0] = (2.0f * temp_f31) / (temp_f27 - temp_f28);
m[0][1] = 0.0f;
m[0][2] = (temp_f27 + temp_f28) / (temp_f27 - temp_f28);
m[0][3] = 0.0f;
m[1][0] = 0.0f;
m[1][1] = (2.0f * temp_f31) / (temp_f30 - temp_f29);
m[1][2] = (temp_f30 + temp_f29) / (temp_f30 - temp_f29);
m[1][3] = 0.0f;
m[2][0] = 0.0f;
m[2][1] = 0.0f;
m[2][2] = -temp_f31 / (sp8 - temp_f31);
m[2][3] = -(sp8 * temp_f31) / (sp8 - temp_f31);
m[3][0] = 0.0f;
m[3][1] = 0.0f;
m[3][2] = -1.0f;
m[3][3] = 0.0f;
if (!isWideZoom()) {
return;
}
f32 sp20 = m[0][0];
f32 sp1C = m[0][2];
f32 sp18 = m[1][1];
f32 sp14 = m[1][2];
f32 sp10 = m[2][2];
f32 spC = m[2][3];
f32 temp_f31 = spC / (sp10 - 1.0f);
f32 sp8 = spC / sp10;
f32 temp_f30 = ((temp_f31 * (1.0f + sp14)) / sp18);
f32 temp_f29 = ((temp_f31 * (sp14 - 1.0f)) / sp18);
f32 temp_f28 = ((temp_f31 * (sp1C - 1.0f)) / sp20);
f32 temp_f27 = ((temp_f31 * (1.0f + sp1C)) / sp20);
temp_f30 *= getInvScale();
temp_f29 *= getInvScale();
temp_f28 *= getInvScale();
temp_f27 *= getInvScale();
m[0][0] = (2.0f * temp_f31) / (temp_f27 - temp_f28);
m[0][1] = 0.0f;
m[0][2] = (temp_f27 + temp_f28) / (temp_f27 - temp_f28);
m[0][3] = 0.0f;
m[1][0] = 0.0f;
m[1][1] = (2.0f * temp_f31) / (temp_f30 - temp_f29);
m[1][2] = (temp_f30 + temp_f29) / (temp_f30 - temp_f29);
m[1][3] = 0.0f;
m[2][0] = 0.0f;
m[2][1] = 0.0f;
m[2][2] = -temp_f31 / (sp8 - temp_f31);
m[2][3] = -(sp8 * temp_f31) / (sp8 - temp_f31);
m[3][0] = 0.0f;
m[3][1] = 0.0f;
m[3][2] = -1.0f;
m[3][3] = 0.0f;
}
void mDoGph_gInf_c::setWideZoomLightProjection(Mtx& m) {
if (isWideZoom()) {
f32 temp_f27 = m[0][0];
f32 temp_f26 = m[0][2];
f32 temp_f25 = m[1][1];
f32 temp_f24 = m[1][2];
f32 temp_f31 = (1.0f + temp_f24) / temp_f25;
f32 temp_f30 = (temp_f24 - 1.0f) / temp_f25;
f32 temp_f29 = (temp_f26 - 1.0f) / temp_f27;
f32 temp_f28 = (1.0f + temp_f26) / temp_f27;
temp_f31 *= getInvScale();
temp_f30 *= getInvScale();
temp_f29 *= getInvScale();
temp_f28 *= getInvScale();
m[0][0] = 2.0f / (temp_f28 - temp_f29);
m[0][1] = 0.0f;
m[0][2] = (temp_f28 + temp_f29) / (temp_f28 - temp_f29);
m[0][3] = 0.0f;
m[1][0] = 0.0f;
m[1][1] = 2.0f / (temp_f31 - temp_f30);
m[1][2] = (temp_f31 + temp_f30) / (temp_f31 - temp_f30);
m[1][3] = 0.0f;
m[2][0] = 0.0f;
m[2][1] = 0.0f;
m[2][2] = -1.0f;
m[2][3] = 0.0f;
if (!isWideZoom()) {
return;
}
f32 temp_f27 = m[0][0];
f32 temp_f26 = m[0][2];
f32 temp_f25 = m[1][1];
f32 temp_f24 = m[1][2];
f32 temp_f31 = (1.0f + temp_f24) / temp_f25;
f32 temp_f30 = (temp_f24 - 1.0f) / temp_f25;
f32 temp_f29 = (temp_f26 - 1.0f) / temp_f27;
f32 temp_f28 = (1.0f + temp_f26) / temp_f27;
temp_f31 *= getInvScale();
temp_f30 *= getInvScale();
temp_f29 *= getInvScale();
temp_f28 *= getInvScale();
m[0][0] = 2.0f / (temp_f28 - temp_f29);
m[0][1] = 0.0f;
m[0][2] = (temp_f28 + temp_f29) / (temp_f28 - temp_f29);
m[0][3] = 0.0f;
m[1][0] = 0.0f;
m[1][1] = 2.0f / (temp_f31 - temp_f30);
m[1][2] = (temp_f31 + temp_f30) / (temp_f31 - temp_f30);
m[1][3] = 0.0f;
m[2][0] = 0.0f;
m[2][1] = 0.0f;
m[2][2] = -1.0f;
m[2][3] = 0.0f;
}
#endif
@@ -1360,8 +1373,54 @@ static void setLight() {
GXLoadLightObjImm(&obj, GX_LIGHT0);
}
#if DEBUG
static void captureScreenSetProjection(Mtx44& m) {
// DEBUG NONMATCHING
if (fapGm_HIO_c::isCaptureScreen()) {
f32 local_88[7];
GXGetProjectionv(local_88);
if (int(local_88[0]) == 0) {
m[0][0] = local_88[1];
m[0][1] = 0.0f;
m[0][2] = local_88[2];
m[0][3] = 0.0f;
m[1][0] = 0.0f;
m[1][1] = local_88[3];
m[1][2] = local_88[4];
m[1][3] = 0.0f;
m[2][0] = 0.0f;
m[2][1] = 0.0f;
m[2][2] = local_88[5];
m[2][3] = local_88[6];
m[3][0] = 0.0f;
m[3][1] = 0.0f;
m[3][2] = -1.0f;
m[3][3] = 0.0f;
CPerspDivider divider(m, fapGm_HIO_c::getCaptureScreenDivH(), fapGm_HIO_c::getCaptureScreenDivV());
divider.divide(m, fapGm_HIO_c::getCaptureScreenNumH(), fapGm_HIO_c::getCaptureScreenNumV());
GXSetProjection(m, GX_PERSPECTIVE);
} else {
m[0][0] = local_88[1];
m[0][1] = 0.0f;
m[0][2] = 0.0f;
m[0][3] = local_88[2];
m[1][0] = 0.0f;
m[1][1] = local_88[3];
m[1][2] = 0.0f;
m[1][3] = local_88[4];
m[2][0] = 0.0f;
m[2][1] = 0.0f;
m[2][2] = local_88[5];
m[2][3] = local_88[6];
m[3][0] = 0.0f;
m[3][1] = 0.0f;
m[3][2] = 0.0f;
m[3][3] = 1.0f;
COrthoDivider divider(m, fapGm_HIO_c::getCaptureScreenDivH(), fapGm_HIO_c::getCaptureScreenDivV());
divider.divide(m, fapGm_HIO_c::getCaptureScreenNumH(), fapGm_HIO_c::getCaptureScreenNumV());
GXSetProjection(m, GX_ORTHOGRAPHIC);
}
}
}
static void captureScreenSetPort() {
@@ -1370,12 +1429,70 @@ static void captureScreenSetPort() {
}
static void captureScreenSetScissor(scissor_class* scissor) {
// DEBUG NONMATCHING
if (fapGm_HIO_c::isCaptureScreen()) {
scissor->x_orig *= fapGm_HIO_c::getCaptureScreenDivH();
scissor->y_orig *= fapGm_HIO_c::getCaptureScreenDivV();
scissor->width *= fapGm_HIO_c::getCaptureScreenDivH();
scissor->height *= fapGm_HIO_c::getCaptureScreenDivV();
f32 f29 = fapGm_HIO_c::getCaptureScreenNumH() * 640;
f32 f27 = (fapGm_HIO_c::getCaptureScreenNumH() + 1) * 640;
f32 f28 = fapGm_HIO_c::getCaptureScreenNumV() * 456;
f32 f26 = (fapGm_HIO_c::getCaptureScreenNumV() + 1) * 456;
f32 f31 = scissor->x_orig + scissor->width;
if (f31 < f29) {
f31 = 0.0f;
} else if (f31 > f27) {
f31 = 640.0f;
} else {
f31 -= f29;
}
if (scissor->x_orig < f29) {
scissor->x_orig = 0.0f;
} else if (scissor->x_orig > f27) {
scissor->x_orig = 640.0f;
} else {
scissor->x_orig -= f29;
}
scissor->width = f31 - scissor->x_orig;
f32 f30 = scissor->y_orig + scissor->height;
if (f30 < f28) {
f30 = 0.0f;
} else if (f30 > f26) {
f30 = 456.0f;
} else {
f30 -= f28;
}
if (scissor->y_orig < f28) {
scissor->y_orig = 0.0f;
} else if (scissor->y_orig > f26) {
scissor->y_orig = 456.0f;
} else {
scissor->y_orig -= f28;
}
scissor->height = f30 - scissor->y_orig;
}
}
static void captureScreenPerspDrawInfo(JPADrawInfo&) {
// DEBUG NONMATCHING
static void captureScreenPerspDrawInfo(JPADrawInfo& info) {
if (fapGm_HIO_c::isCaptureScreen()) {
Mtx44 m;
info.getPrjMtx(m);
m[0][0] *= 2.0f;
m[0][2] = 0.0f;
m[1][1] *= -2.0f;
m[1][2] = 0.0f;
m[2][3] = -2.0f;
CPerspDivider divider(m, fapGm_HIO_c::getCaptureScreenDivH(), fapGm_HIO_c::getCaptureScreenDivV());
divider.divide(m, fapGm_HIO_c::getCaptureScreenNumH(), fapGm_HIO_c::getCaptureScreenNumV());
m[0][0] *= 0.5f;
m[0][2] = m[0][2] * 0.5f - 0.5f;
m[1][1] *= -0.5f;
m[1][2] = m[1][2] * -0.5f - 0.5f;
m[2][3] = 0.0f;
info.setPrjMtx(m);
}
}
#endif
static void drawItem3D() {
Mtx item_mtx;
@@ -1610,6 +1727,15 @@ int mDoGph_Painter() {
j3dSys.reinitGX();
GXSetClipMode(GX_CLIP_ENABLE);
#if DEBUG
if (dJcame_c::get()) {
dJcame_c::get()->show3D(camera_p->viewMtx);
}
if (dJprev_c::get()) {
dJprev_c::get()->show3D(camera_p->viewMtx);
}
#endif
if (!dComIfGp_isPauseFlag()) {
#if DEBUG
fapGm_HIO_c::startCpuTimer();
@@ -1941,6 +2067,11 @@ int mDoGph_Painter() {
dComIfGp_particle_draw2Dfore(&draw_info3);
}
#if DEBUG
j3dSys.setViewMtx(m5);
dComIfGd_drawListCursor();
#endif
if (strcmp(dComIfGp_getStartStageName(), "F_SP127") == 0 || (mDoGph_gInf_c::isFade() & 0x80) != 0)
{
mDoGph_gInf_c::calcFade();
@@ -1951,8 +2082,15 @@ int mDoGph_Painter() {
}
#if DEBUG
if (dJcame_c::get()) {
dJcame_c::get()->show2D();
}
if (dJprev_c::get()) {
dJprev_c::get()->show2D();
}
// "drawing up to 2D-fore particle (Rendering)"
fapGm_HIO_c::stopCpuTimer("2D前(?)パーティクル描画まで(レンダリング)");
JAWExtSystem::draw();
#endif
mDoGph_gInf_c::endRender();
+171 -38
View File
@@ -28,6 +28,33 @@
#include "m_Do/m_Do_main.h"
#include "DynamicLink.h"
#if !PLATFORM_GCN
#include "revolution/sc.h"
#include "revolution/wpad.h"
#endif
#if PLATFORM_GCN
#define MAP_FILE_PLATFORM ""
#define MAP_FOLDER_PLATFORM "/Final"
#elif PLATFORM_WII
#define MAP_FILE_PLATFORM "R"
#define MAP_FOLDER_PLATFORM "/Rfinal"
#else
#define MAP_FILE_PLATFORM "R"
#define MAP_FOLDER_PLATFORM "/RVL"
#endif
#if DEBUG
#define MAP_FILE_SUFFIX "D"
#define MAP_FOLDER_MODE "/Debug"
#else
#define MAP_FILE_SUFFIX "F"
#define MAP_FOLDER_MODE "/Release"
#endif
#define MAP_FOLDER "/map" MAP_FOLDER_PLATFORM MAP_FOLDER_MODE
#define MAP_FILE "/" MAP_FILE_PLATFORM "framework" MAP_FILE_SUFFIX ".map"
#if DEBUG
u8 mDoMch::mDebugFill = true;
u8 mDoMch::mDebugFillNotUse = 0xDD;
@@ -292,13 +319,16 @@ static const char* myGetHeapTypeByString(JKRHeap* p_heap) {
case 0:
return "(Null)";
default:
u32 tmpType = heapType;
char* typeStr = (char*)&tmpType;
union {
char c[4];
u32 word;
} typeStr;
typeStr.word = heapType;
tmpString[0] = typeStr[0];
tmpString[1] = typeStr[1];
tmpString[2] = typeStr[2];
tmpString[3] = typeStr[3];
tmpString[0] = typeStr.c[0];
tmpString[1] = typeStr.c[1];
tmpString[2] = typeStr.c[2];
tmpString[3] = typeStr.c[3];
tmpString[4] = 0;
return tmpString;
}
@@ -319,13 +349,16 @@ static void myMemoryErrorRoutine(void* p_heap, u32 size, int alignment) {
size, size, alignment, p_heap);
}
u32 heapType = heap->getHeapType();
u8* tmpString = (u8*)&heapType;
union {
u8 c[4];
u32 word;
} heapType;
heapType.word = heap->getHeapType();
if (notSolidHeap) {
OSReport_Error(
"FreeSize=%08x TotalFreeSize=%08x HeapType=%08x(%c%c%c%c) HeapSize=%08x %s\n",
heap->getFreeSize(), heap->getTotalFreeSize(), heapType, tmpString[0], tmpString[1],
tmpString[2], tmpString[3], heap->getHeapSize(), myGetHeapTypeByString(heap));
heap->getFreeSize(), heap->getTotalFreeSize(), heapType.word, heapType.c[0], heapType.c[1],
heapType.c[2], heapType.c[3], heap->getHeapSize(), myGetHeapTypeByString(heap));
}
if (heapErrors == 0) {
@@ -350,18 +383,26 @@ static void myMemoryErrorRoutine(void* p_heap, u32 size, int alignment) {
void myHeapCheckRecursive(JKRHeap* p_heap) {
if (!p_heap->check()) {
const char* type = myGetHeapTypeByString(p_heap);
OSReport_Error("error in %08x(%s)\n", p_heap, type);
OSReport_Error("error in %08x(%s)\n", p_heap, myGetHeapTypeByString(p_heap));
}
JSUTree<JKRHeap>* heapTree = &p_heap->getHeapTree();
for (JSUTree<JKRHeap>* i = heapTree->getFirstChild(); i != NULL; i = i->getNextChild()) {
for (JSUTree<JKRHeap>* i = p_heap->getHeapTree().getFirstChild(); i != NULL; i = i->getNextChild()) {
myHeapCheckRecursive(i->getObject());
}
}
void mDoMch_HeapCheckAll() {
myHeapCheckRecursive(JKRHeap::sRootHeap);
myHeapCheckRecursive(JKRGetRootHeap());
#if PLATFORM_WII || PLATFORM_SHIELD
myHeapCheckRecursive(JKRGetRootHeap2());
#endif
#if DEBUG
DummyCheckHeap_check();
#endif
}
void mDoMch_HeapFreeFillAll() {
myHeapCheckRecursive(JKRGetRootHeap());
}
static int developKeyCheck(u32 btnTrig, u32 btnHold) {
@@ -396,18 +437,73 @@ static int developKeyCheck(u32 btnTrig, u32 btnHold) {
}
BOOL mDoMch_IsProgressiveMode() {
return OSGetProgressiveMode() == true;
#if PLATFORM_GCN
bool result = OSGetProgressiveMode() == true;
#else
bool result = SCGetProgressiveMode() == true;
#endif
return result;
}
bool exceptionReadPad(u32* p_btnTrig, u32* p_btnHold) {
return JUTException::getManager()->readPad(p_btnTrig, p_btnHold);
#if !PLATFORM_GCN
void exceptionNNGCReadPad(u32* p_btnTrig, u32* p_btnHold) {
static u32 l_cnvButton[10][2] = {
WPAD_BUTTON_MINUS, 0x40,
WPAD_BUTTON_PLUS, 0x20,
WPAD_BUTTON_HOME, 0x10,
WPAD_BUTTON_UP, 0x8,
WPAD_BUTTON_DOWN, 0x4,
WPAD_BUTTON_LEFT, 0x1,
WPAD_BUTTON_RIGHT, 0x2,
WPAD_BUTTON_1, 0x100,
WPAD_BUTTON_2, 0x200,
WPAD_BUTTON_A, 0x1000,
};
static u32 l_oldButton;
WPADStatus status;
WPADRead(0, &status);
*p_btnHold = 0;
u32* r29 = l_cnvButton[0];
for (u32 i = 0; i < 10; i++) {
if (status.button & r29[0]) {
*p_btnHold |= r29[1];
}
r29 += 2;
}
*p_btnTrig = *p_btnHold & (*p_btnHold ^ l_oldButton);
l_oldButton = *p_btnHold;
}
#endif
void exceptionReadPad(u32* p_btnTrig, u32* p_btnHold) {
#if PLATFORM_GCN
JUTException::getManager()->readPad(p_btnTrig, p_btnHold);
#else
exceptionNNGCReadPad(p_btnTrig, p_btnHold);
#endif
}
void forever() {
while (true) {}
}
#if !PLATFORM_GCN
void exceptionShutdown() {
mDoRst_reset(2, 0, 0);
//OSShutdownSystem();
forever();
}
#endif
void exceptionRestart() {
mDoRst_reset(0, 0, 0);
#if PLATFORM_GCN
OSResetSystem(0, 0, 0);
do {
} while (true);
#else
//OSRestart(0);
#endif
while (true) {}
}
void myExceptionCallback(u16, OSContext*, u32, u32) {
@@ -429,9 +525,10 @@ void myExceptionCallback(u16, OSContext*, u32, u32) {
} else {
manager->setTraceSuppress(0x80);
if (mDoMain::developmentMode == 0) {
#if PLATFORM_GCN
JUTGamePad pad(JUTGamePad::EPort1);
manager->setGamePad(&pad);
#endif
if (manager != NULL) {
OSEnableInterrupts();
// "Accepting Key input\n"
@@ -440,16 +537,29 @@ void myExceptionCallback(u16, OSContext*, u32, u32) {
exceptionReadPad(&btnTrig, &btnHold);
developKeyCheck(btnTrig, btnHold);
JUTException::waitTime(30);
#if PLATFORM_GCN
if (JUTGamePad::C3ButtonReset::sResetOccurred) {
exceptionRestart();
}
#else
if (mDoRst::isShutdown()) {
exceptionShutdown();
}
if (OSGetResetButtonState()) {
// lbl_8074C385 = 1;
} else {
#if !DEBUG
exceptionRestart();
#endif
}
#endif
}
// "JUTAssertion is visible\n"
OSReport("JUTAssertionを可視化しました\n");
JUTAssertion::setVisible(true);
JUTDbPrint::getManager()->setVisible(true);
JFWSystem::getSystemConsole()->setOutput(JUTConsole::OUTPUT_OSREPORT |
JUTConsole::OUTPUT_CONSOLE);
JUTConsole* console = JFWSystem::getSystemConsole();
console->setOutput(JUTConsole::OUTPUT_OSREPORT | JUTConsole::OUTPUT_CONSOLE);
} else {
PPCHalt();
}
@@ -459,7 +569,7 @@ void myExceptionCallback(u16, OSContext*, u32, u32) {
JUTException::waitTime(3000);
}
}
DVDChangeDir("/map/Final/Release");
DVDChangeDir(MAP_FOLDER);
JUTDestroyVideoManager();
GXSetDrawDoneCallback(NULL);
VISetBlack(0);
@@ -476,10 +586,14 @@ static void fault_callback_scroll(u16, OSContext* p_context, u32, u32) {
*(u32*)(srr0 - 0x8), *(u32*)(srr0 - 0x4), *(u32*)srr0);
}
#if PLATFORM_GCN
JUTGamePad pad(JUTGamePad::EPort1);
manager->setGamePad(&pad);
BOOL padDisabled = manager->isEnablePad() == false;
#else
bool padDisabled = false;
#endif
if (!padDisabled) {
exConsole->print("PUSH START BUTTON TO ADDITIONAL INFOMATION\n");
exConsole->print("--------------------------------------\n");
@@ -491,10 +605,11 @@ static void fault_callback_scroll(u16, OSContext* p_context, u32, u32) {
while (true) {
u32 btnHold, btnTrig;
exceptionReadPad(&btnTrig, &btnHold);
#if PLATFORM_GCN
if (JUTGamePad::C3ButtonReset::sResetOccurred) {
OSResetSystem(1, 0, 0);
}
#endif
bool waitRetrace = false;
if (btnTrig == PAD_BUTTON_START) {
@@ -504,13 +619,14 @@ static void fault_callback_scroll(u16, OSContext* p_context, u32, u32) {
if (btnTrig == PAD_TRIGGER_Z) {
JUTConsole* sysConsole = JFWSystem::getSystemConsole();
if (JUTConsoleManager::getManager()->getDirectConsole() != sysConsole) {
JUTConsole* directConsole = JUTConsoleManager::getManager()->getDirectConsole();
if (directConsole != sysConsole) {
exConsole = sysConsole;
exConsole->setFontSize(8.0f, 6.0f);
exConsole->setPosition(8, 32);
exConsole->setHeight(23);
exConsole->setVisible(true);
exConsole->setOutput(JUTConsole::OUTPUT_CONSOLE | JUTConsole::OUTPUT_OSREPORT);
sysConsole->setFontSize(8.0f, 6.0f);
sysConsole->setPosition(8, 32);
sysConsole->setHeight(23);
sysConsole->setVisible(true);
sysConsole->setOutput(JUTConsole::OUTPUT_CONSOLE | JUTConsole::OUTPUT_OSREPORT);
} else {
exConsole = JUTException::getConsole();
}
@@ -531,13 +647,13 @@ static void fault_callback_scroll(u16, OSContext* p_context, u32, u32) {
if (btnHold == PAD_BUTTON_UP) {
exConsole->scroll(holdUpCount < 3 ? -1 : (holdUpCount < 5 ? -2 : (holdUpCount < 7 ? -4 : -8)));
waitRetrace = true;
holdDownCount = 0;
holdUpCount++;
holdDownCount = 0;
} else if (btnHold == PAD_BUTTON_DOWN) {
exConsole->scroll(holdDownCount < 3 ? 1 : (holdDownCount < 5 ? 2 : (holdDownCount < 7 ? 4 : 8)));
waitRetrace = true;
holdUpCount = 0;
holdDownCount++;
holdUpCount = 0;
} else {
holdUpCount = 0;
holdDownCount = 0;
@@ -597,6 +713,27 @@ void my_SysPrintHeap(char const* message, void* start, u32 size) {
end, size / 1024);
}
#if DEBUG
u8 myWarningCount[115];
void myGXVerifyCallback(GXWarningLevel param_1, u32 param_2, const char* param_3) {
if (param_2 < ARRAY_SIZE(myWarningCount)) {
if (myWarningCount[param_2] >= 255) {
return;
}
if (myWarningCount[param_2] == 0) {
static const char* color[] = {"\x1b[34m", "\x1b[41;37m", "\x1b[43;30m", "\x1b[33m"};
OSReport("%sGX L%1d, Warning %03d: %s\n\x1b[m", color[param_1], param_1, param_2, param_3);
JUTReportConsole_f("GX L%1d, Warning %03d: %s\n", param_1, param_2, param_3);
}
myWarningCount[param_2]++;
} else {
OSReport_Warning("GX L%1d, Warning %03d: %s\n", param_1, param_2, param_3);
JUTReportConsole_f("GX L%1d, Warning %03d: %s\n", param_1, param_2, param_3);
}
}
#endif
int mDoMch_Create() {
if (mDoMain::developmentMode == 0 || !(OSGetConsoleType() & 0x10000000)) {
OSReportDisable();
@@ -813,11 +950,7 @@ int mDoMch_Create() {
sysConsole->setOutput(JUTConsole::OUTPUT_CONSOLE | JUTConsole::OUTPUT_OSREPORT);
sysConsole->setPosition(16, 42);
#if DEBUG
JUTException::setMapFile("/map/RVL/Debug/RframeworkD.map");
#else
JUTException::appendMapFile("/map/Final/Release/frameworkF.map");
#endif
JUTException::setMapFile(MAP_FOLDER MAP_FILE);
JUTException::setPreUserCallback(myExceptionCallback);
JUTException::setPostUserCallback(fault_callback_scroll);
+22 -11
View File
@@ -660,6 +660,22 @@ static void debug() {
}
}
// linker generated symbols
extern u8 _f_text[];
extern u8 _e_text[];
extern u8 _f_ctors[];
extern u8 _e_ctors[];
extern u8 _f_dtors[];
extern u8 _e_dtors[];
extern u8 _f_rodata[];
extern u8 _e_rodata[];
#if VERSION == VERSION_SHIELD_DEBUG
const int audioHeapSize = 0x169000;
#else
const int audioHeapSize = 0x14D800;
#endif
void main01(void) {
OS_REPORT("\x1b[m");
@@ -667,11 +683,10 @@ void main01(void) {
mDoMch_Create();
#if DEBUG
// not sure how this works. appears to be getting .text, .ctors, .dtors, and .rodata areas
FixedMemoryCheck::easyCreate((void*)0x80006880, (s32)0x628F40);
FixedMemoryCheck::easyCreate((void*)0x8062F7C0, (s32)0x224);
FixedMemoryCheck::easyCreate((void*)0x8062FA00, (s32)0xc);
FixedMemoryCheck::easyCreate((void*)0x8062FA20, (s32)0x30568);
FixedMemoryCheck* local_20 = FixedMemoryCheck::easyCreate(_f_text, intptr_t(_e_text - _f_text));
FixedMemoryCheck* local_24 = FixedMemoryCheck::easyCreate(_f_ctors, intptr_t(_e_ctors - _f_ctors));
FixedMemoryCheck* local_28 = FixedMemoryCheck::easyCreate(_f_dtors, intptr_t(_e_dtors - _f_dtors));
FixedMemoryCheck* local_2c = FixedMemoryCheck::easyCreate(_f_rodata, intptr_t(_e_rodata - _f_rodata));
#endif
// setup FrameBuffer and ZBuffer, init display lists
@@ -697,7 +712,8 @@ void main01(void) {
mDoExt_setCurrentHeap(sp10);
var_r28->dump_sort();
OSReport("\x1b[36mHOSTIOヒープ残り %u Bytes\n\x1b[m", var_r28->getTotalFreeSize());
s32 local_34 = var_r28->getTotalFreeSize();
OSReport("\x1b[36mHOSTIOヒープ残り %u Bytes\n\x1b[m", local_34);
#endif
JUTConsole* console = JFWSystem::getSystemConsole();
@@ -718,11 +734,6 @@ void main01(void) {
mDisplayHeapSize = 0;
cDyl_InitAsync(); // init RELs
#if VERSION == VERSION_SHIELD_DEBUG
const int audioHeapSize = 0x169000;
#else
const int audioHeapSize = 0x14D800;
#endif
g_mDoAud_audioHeap = JKRCreateSolidHeap(audioHeapSize, JKRGetCurrentHeap(), false);
do {