mirror of https://github.com/zeldaret/tp.git
Work on m_Do_graphic
This commit is contained in:
parent
c59ac1f2e9
commit
a368ff7a6d
36
Progress.md
36
Progress.md
|
@ -7,22 +7,22 @@ Section | Percentage | Decompiled (bytes) | Total (bytes)
|
|||
.init | 97.972973% | 9280 | 9472
|
||||
.extab | 100.000000% | 96 | 96
|
||||
.extabindex | 100.000000% | 96 | 96
|
||||
.text | 28.020678% | 1007776 | 3596544
|
||||
.text | 28.029130% | 1008080 | 3596544
|
||||
.ctors | 100.000000% | 448 | 448
|
||||
.dtors | 100.000000% | 32 | 32
|
||||
.rodata | 100.000000% | 193856 | 193856
|
||||
.data | 100.000000% | 197632 | 197632
|
||||
.sdata | 100.000000% | 1408 | 1408
|
||||
.sdata2 | 100.000000% | 20832 | 20832
|
||||
Total | 35.608774% | 1431712 | 4020672
|
||||
Total | 35.616335% | 1432016 | 4020672
|
||||
|
||||
## Total
|
||||
|
||||
Section | Percentage | Decompiled (bytes) | Total (bytes)
|
||||
---|---|---|---
|
||||
main.dol | 35.608774% | 1431712 | 4020672
|
||||
RELs | 33.680860% | 3873408 | 11500324
|
||||
Total | 34.180281% | 5305120 | 15520996
|
||||
main.dol | 35.616335% | 1432016 | 4020672
|
||||
RELs | 33.810282% | 3888292 | 11500324
|
||||
Total | 34.278135% | 5320308 | 15520996
|
||||
|
||||
## RELs
|
||||
|
||||
|
@ -71,7 +71,7 @@ d_a_cstaF | 32.377740% | 3840 | 11860
|
|||
d_a_cstatue | 29.155833% | 6728 | 23076
|
||||
d_a_demo00 | 29.136000% | 7284 | 25000
|
||||
d_a_demo_item | 33.863165% | 3920 | 11576
|
||||
d_a_disappear | 45.091514% | 1084 | 2404
|
||||
d_a_disappear | 100.000000% | 2404 | 2404
|
||||
d_a_dmidna | 100.000000% | 1888 | 1888
|
||||
d_a_do | 37.666220% | 14616 | 38804
|
||||
d_a_door_boss | 40.856890% | 3700 | 9056
|
||||
|
@ -201,13 +201,13 @@ d_a_kytag06 | 100.000000% | 14140 | 14140
|
|||
d_a_kytag07 | 100.000000% | 1272 | 1272
|
||||
d_a_kytag08 | 31.379026% | 1520 | 4844
|
||||
d_a_kytag09 | 49.936948% | 1584 | 3172
|
||||
d_a_kytag10 | 31.720430% | 944 | 2976
|
||||
d_a_kytag10 | 43.413978% | 1292 | 2976
|
||||
d_a_kytag11 | 52.643172% | 956 | 1816
|
||||
d_a_kytag12 | 20.217129% | 3352 | 16580
|
||||
d_a_kytag13 | 30.696576% | 2080 | 6776
|
||||
d_a_kytag14 | 100.000000% | 1408 | 1408
|
||||
d_a_kytag15 | 49.443561% | 1244 | 2516
|
||||
d_a_kytag16 | 47.212544% | 1084 | 2296
|
||||
d_a_kytag15 | 100.000000% | 2516 | 2516
|
||||
d_a_kytag16 | 100.000000% | 2296 | 2296
|
||||
d_a_kytag17 | 100.000000% | 752 | 752
|
||||
d_a_mant | 86.020312% | 40316 | 46868
|
||||
d_a_mg_fish | 26.024167% | 17660 | 67860
|
||||
|
@ -385,7 +385,7 @@ d_a_obj_crvhahen | 37.120623% | 1908 | 5140
|
|||
d_a_obj_crvlh_down | 42.363776% | 2208 | 5212
|
||||
d_a_obj_crvlh_up | 42.485784% | 2092 | 4924
|
||||
d_a_obj_crvsteel | 48.717949% | 1520 | 3120
|
||||
d_a_obj_crystal | 44.482173% | 1048 | 2356
|
||||
d_a_obj_crystal | 100.000000% | 2356 | 2356
|
||||
d_a_obj_cwall | 30.455195% | 5968 | 19596
|
||||
d_a_obj_damCps | 100.000000% | 504 | 504
|
||||
d_a_obj_dan | 35.198921% | 4176 | 11864
|
||||
|
@ -489,12 +489,12 @@ d_a_obj_lv3Water | 44.263566% | 4568 | 10320
|
|||
d_a_obj_lv3Water2 | 41.786571% | 2788 | 6672
|
||||
d_a_obj_lv3WaterB | 46.278317% | 1716 | 3708
|
||||
d_a_obj_lv3saka00 | 50.576369% | 1404 | 2776
|
||||
d_a_obj_lv3waterEff | 48.122066% | 820 | 1704
|
||||
d_a_obj_lv3waterEff | 100.000000% | 1704 | 1704
|
||||
d_a_obj_lv4CandleDemoTag | 46.972860% | 1800 | 3832
|
||||
d_a_obj_lv4CandleTag | 50.114416% | 1752 | 3496
|
||||
d_a_obj_lv4EdShutter | 45.846154% | 2384 | 5200
|
||||
d_a_obj_lv4Gate | 48.863636% | 2064 | 4224
|
||||
d_a_obj_lv4HsTarget | 58.333333% | 1428 | 2448
|
||||
d_a_obj_lv4HsTarget | 100.000000% | 2448 | 2448
|
||||
d_a_obj_lv4PoGate | 44.906743% | 2504 | 5576
|
||||
d_a_obj_lv4RailWall | 41.496973% | 3016 | 7268
|
||||
d_a_obj_lv4SlideWall | 48.954373% | 2060 | 4208
|
||||
|
@ -690,7 +690,7 @@ d_a_path_line | 100.000000% | 508 | 508
|
|||
d_a_peru | 33.139234% | 10244 | 30912
|
||||
d_a_ppolamp | 42.341463% | 1736 | 4100
|
||||
d_a_scene_exit | 61.359223% | 1264 | 2060
|
||||
d_a_scene_exit2 | 44.782034% | 1356 | 3028
|
||||
d_a_scene_exit2 | 99.075297% | 3000 | 3028
|
||||
d_a_set_bgobj | 100.000000% | 1108 | 1108
|
||||
d_a_shop_item | 43.088737% | 2020 | 4688
|
||||
d_a_skip_2D | 100.000000% | 1332 | 1332
|
||||
|
@ -729,7 +729,7 @@ d_a_tag_gra | 100.000000% | 800 | 800
|
|||
d_a_tag_gstart | 100.000000% | 1208 | 1208
|
||||
d_a_tag_guard | 100.000000% | 1176 | 1176
|
||||
d_a_tag_hinit | 100.000000% | 1440 | 1440
|
||||
d_a_tag_hjump | 40.841584% | 1320 | 3232
|
||||
d_a_tag_hjump | 100.000000% | 3232 | 3232
|
||||
d_a_tag_howl | 100.000000% | 1892 | 1892
|
||||
d_a_tag_hstop | 100.000000% | 3424 | 3424
|
||||
d_a_tag_instruction | 100.000000% | 712 | 712
|
||||
|
@ -742,11 +742,11 @@ d_a_tag_lv5soup | 100.000000% | 1908 | 1908
|
|||
d_a_tag_lv6CstaSw | 100.000000% | 2560 | 2560
|
||||
d_a_tag_magne | 100.000000% | 928 | 928
|
||||
d_a_tag_mhint | 35.576923% | 1332 | 3744
|
||||
d_a_tag_mist | 43.436293% | 900 | 2072
|
||||
d_a_tag_mist | 100.000000% | 2072 | 2072
|
||||
d_a_tag_mmsg | 100.000000% | 1960 | 1960
|
||||
d_a_tag_msg | 37.563971% | 1468 | 3908
|
||||
d_a_tag_mstop | 43.995098% | 1436 | 3264
|
||||
d_a_tag_mwait | 35.082873% | 1016 | 2896
|
||||
d_a_tag_mwait | 100.000000% | 2896 | 2896
|
||||
d_a_tag_myna2 | 47.260274% | 828 | 1752
|
||||
d_a_tag_myna_light | 36.747759% | 1148 | 3124
|
||||
d_a_tag_pachi | 51.107595% | 1292 | 2528
|
||||
|
@ -782,7 +782,7 @@ d_a_tboxSw | 100.000000% | 1016 | 1016
|
|||
d_a_title | 39.558574% | 2796 | 7068
|
||||
d_a_vrbox | 100.000000% | 2152 | 2152
|
||||
d_a_vrbox2 | 34.977578% | 2184 | 6244
|
||||
d_a_warp_bug | 54.940711% | 1112 | 2024
|
||||
d_a_warp_bug | 100.000000% | 2024 | 2024
|
||||
d_a_ykgr | 44.400631% | 2252 | 5072
|
||||
f_pc_profile_lst | 100.000000% | 28156 | 28156
|
||||
Total | 33.680860% | 3873408 | 11500324
|
||||
Total | 33.810282% | 3888292 | 11500324
|
||||
|
|
|
@ -414,7 +414,7 @@ lbl_80008C24:
|
|||
/* 80008C48 B0 1E 00 06 */ sth r0, 6(r30)
|
||||
lbl_80008C4C:
|
||||
/* 80008C4C 80 6D 80 18 */ lwz r3, l_tevColor0(r13)
|
||||
/* 80008C50 80 0D 80 1C */ lwz r0, data_8045059C(r13)
|
||||
/* 80008C50 80 0D 80 1C */ lwz r0, l_tevColor0+0x4(r13)
|
||||
/* 80008C54 90 61 00 20 */ stw r3, 0x20(r1)
|
||||
/* 80008C58 90 01 00 24 */ stw r0, 0x24(r1)
|
||||
/* 80008C5C 38 60 00 01 */ li r3, 1
|
||||
|
|
|
@ -308,7 +308,7 @@ lbl_80009928:
|
|||
/* 80009B0C 38 C0 00 07 */ li r6, 7
|
||||
/* 80009B10 48 35 60 E1 */ bl GXSetBlendMode
|
||||
/* 80009B14 80 62 80 B4 */ lwz r3, lit_4528(r2)
|
||||
/* 80009B18 80 02 80 B8 */ lwz r0, data_80451AB8(r2)
|
||||
/* 80009B18 80 02 80 B8 */ lwz r0, lit_4528+0x4(r2)
|
||||
/* 80009B1C 90 61 00 24 */ stw r3, 0x24(r1)
|
||||
/* 80009B20 90 01 00 28 */ stw r0, 0x28(r1)
|
||||
/* 80009B24 88 1F 00 0A */ lbz r0, 0xa(r31)
|
||||
|
|
|
@ -1,79 +0,0 @@
|
|||
lbl_8000A160:
|
||||
/* 8000A160 94 21 FF C0 */ stwu r1, -0x40(r1)
|
||||
/* 8000A164 7C 08 02 A6 */ mflr r0
|
||||
/* 8000A168 90 01 00 44 */ stw r0, 0x44(r1)
|
||||
/* 8000A16C 39 61 00 40 */ addi r11, r1, 0x40
|
||||
/* 8000A170 48 35 80 65 */ bl _savegpr_27
|
||||
/* 8000A174 C0 04 00 00 */ lfs f0, 0(r4)
|
||||
/* 8000A178 FC 00 00 1E */ fctiwz f0, f0
|
||||
/* 8000A17C D8 01 00 08 */ stfd f0, 8(r1)
|
||||
/* 8000A180 80 01 00 0C */ lwz r0, 0xc(r1)
|
||||
/* 8000A184 54 00 00 38 */ rlwinm r0, r0, 0, 0, 0x1c
|
||||
/* 8000A188 7C 1F 07 34 */ extsh r31, r0
|
||||
/* 8000A18C C0 04 00 04 */ lfs f0, 4(r4)
|
||||
/* 8000A190 FC 00 00 1E */ fctiwz f0, f0
|
||||
/* 8000A194 D8 01 00 10 */ stfd f0, 0x10(r1)
|
||||
/* 8000A198 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 8000A19C 54 00 00 38 */ rlwinm r0, r0, 0, 0, 0x1c
|
||||
/* 8000A1A0 7C 05 07 34 */ extsh r5, r0
|
||||
/* 8000A1A4 7C A0 FE 70 */ srawi r0, r5, 0x1f
|
||||
/* 8000A1A8 7C A0 00 78 */ andc r0, r5, r0
|
||||
/* 8000A1AC 7C 1E 07 34 */ extsh r30, r0
|
||||
/* 8000A1B0 C0 04 00 08 */ lfs f0, 8(r4)
|
||||
/* 8000A1B4 FC 00 00 1E */ fctiwz f0, f0
|
||||
/* 8000A1B8 D8 01 00 18 */ stfd f0, 0x18(r1)
|
||||
/* 8000A1BC 80 01 00 1C */ lwz r0, 0x1c(r1)
|
||||
/* 8000A1C0 54 00 00 38 */ rlwinm r0, r0, 0, 0, 0x1c
|
||||
/* 8000A1C4 7C 1D 07 34 */ extsh r29, r0
|
||||
/* 8000A1C8 C0 04 00 0C */ lfs f0, 0xc(r4)
|
||||
/* 8000A1CC FC 00 00 1E */ fctiwz f0, f0
|
||||
/* 8000A1D0 D8 01 00 20 */ stfd f0, 0x20(r1)
|
||||
/* 8000A1D4 80 01 00 24 */ lwz r0, 0x24(r1)
|
||||
/* 8000A1D8 54 00 00 38 */ rlwinm r0, r0, 0, 0, 0x1c
|
||||
/* 8000A1DC 7C 1C 07 34 */ extsh r28, r0
|
||||
/* 8000A1E0 83 6D 86 50 */ lwz r27, mFrameBufferTex__13mDoGph_gInf_c(r13)
|
||||
/* 8000A1E4 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
|
||||
/* 8000A1E8 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
|
||||
/* 8000A1EC 88 03 5E B5 */ lbz r0, 0x5eb5(r3)
|
||||
/* 8000A1F0 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 8000A1F4 40 82 00 84 */ bne lbl_8000A278
|
||||
/* 8000A1F8 7C A0 07 35 */ extsh. r0, r5
|
||||
/* 8000A1FC 40 80 00 30 */ bge lbl_8000A22C
|
||||
/* 8000A200 7F 9C 2A 14 */ add r28, r28, r5
|
||||
/* 8000A204 7C 05 00 D0 */ neg r0, r5
|
||||
/* 8000A208 7C 00 0E 70 */ srawi r0, r0, 1
|
||||
/* 8000A20C 38 60 01 30 */ li r3, 0x130
|
||||
/* 8000A210 54 04 04 3E */ clrlwi r4, r0, 0x10
|
||||
/* 8000A214 80 AD 86 4C */ lwz r5, mFrameBufferTimg__13mDoGph_gInf_c(r13)
|
||||
/* 8000A218 88 A5 00 00 */ lbz r5, 0(r5)
|
||||
/* 8000A21C 38 C0 00 00 */ li r6, 0
|
||||
/* 8000A220 38 E0 00 00 */ li r7, 0
|
||||
/* 8000A224 48 35 39 F9 */ bl GXGetTexBufferSize
|
||||
/* 8000A228 7F 7B 1A 14 */ add r27, r27, r3
|
||||
lbl_8000A22C:
|
||||
/* 8000A22C 57 E3 04 3E */ clrlwi r3, r31, 0x10
|
||||
/* 8000A230 57 C4 04 3E */ clrlwi r4, r30, 0x10
|
||||
/* 8000A234 57 A5 04 3E */ clrlwi r5, r29, 0x10
|
||||
/* 8000A238 57 86 04 3E */ clrlwi r6, r28, 0x10
|
||||
/* 8000A23C 48 35 28 45 */ bl GXSetTexCopySrc
|
||||
/* 8000A240 7F A0 0E 70 */ srawi r0, r29, 1
|
||||
/* 8000A244 54 03 04 3E */ clrlwi r3, r0, 0x10
|
||||
/* 8000A248 7F 80 07 34 */ extsh r0, r28
|
||||
/* 8000A24C 7C 00 0E 70 */ srawi r0, r0, 1
|
||||
/* 8000A250 54 04 04 3E */ clrlwi r4, r0, 0x10
|
||||
/* 8000A254 80 AD 86 4C */ lwz r5, mFrameBufferTimg__13mDoGph_gInf_c(r13)
|
||||
/* 8000A258 88 A5 00 00 */ lbz r5, 0(r5)
|
||||
/* 8000A25C 38 C0 00 01 */ li r6, 1
|
||||
/* 8000A260 48 35 28 D1 */ bl GXSetTexCopyDst
|
||||
/* 8000A264 7F 63 DB 78 */ mr r3, r27
|
||||
/* 8000A268 38 80 00 00 */ li r4, 0
|
||||
/* 8000A26C 48 35 32 01 */ bl GXCopyTex
|
||||
/* 8000A270 48 35 21 05 */ bl GXPixModeSync
|
||||
/* 8000A274 48 35 43 F1 */ bl GXInvalidateTexAll
|
||||
lbl_8000A278:
|
||||
/* 8000A278 39 61 00 40 */ addi r11, r1, 0x40
|
||||
/* 8000A27C 48 35 7F A5 */ bl _restgpr_27
|
||||
/* 8000A280 80 01 00 44 */ lwz r0, 0x44(r1)
|
||||
/* 8000A284 7C 08 03 A6 */ mtlr r0
|
||||
/* 8000A288 38 21 00 40 */ addi r1, r1, 0x40
|
||||
/* 8000A28C 4E 80 00 20 */ blr
|
|
@ -525,7 +525,7 @@ public:
|
|||
/* 0x12F4 */ dKy_color_data_struct* mResColorDataTbl;
|
||||
/* 0x12F8 */ s8 mFogDensity;
|
||||
/* 0x12F9 */ u8 field_0x12f9;
|
||||
/* 0x12FA */ u8 field_0x12fa;
|
||||
/* 0x12FA */ u8 mIsBlure;
|
||||
/* 0x12FB */ u8 field_0x12fb;
|
||||
/* 0x12FC */ s8 field_0x12fc;
|
||||
/* 0x12FD */ u8 mDarktimeWeek;
|
||||
|
|
|
@ -62,6 +62,10 @@ inline s16 fopCamM_GetAngleY(camera_class* i_camera) {
|
|||
return i_camera->mAngle.y;
|
||||
}
|
||||
|
||||
inline f32 fopCamM_GetFovy(camera_class* i_camera) {
|
||||
return i_camera->mFovy;
|
||||
}
|
||||
|
||||
u32 fopCamM_Create(int i_cameraIdx, s16 pProcName, void* param_3);
|
||||
void fopCamM_Management(void);
|
||||
u32 fopCamM_GetParam(camera_class* pCamera);
|
||||
|
|
|
@ -62,7 +62,11 @@ public:
|
|||
static void offFade() { mFade = 0; }
|
||||
static u8 isFade() { return mFade; }
|
||||
static void offBlure() { mBlureFlag = false; }
|
||||
static bool isBlure() { return mBlureFlag; }
|
||||
static u8 getBlureRate() { return mBlureRate; }
|
||||
static MtxP getBlureMtx() { return mBlureMtx; }
|
||||
static void offAutoForcus() { data_80450BE7 = 0; }
|
||||
static bool isAutoForcus() { return data_80450BE7; }
|
||||
static void setTickRate(u32 rate) { JFWDisplay::getManager()->setTickRate(rate); }
|
||||
static void waitBlanking(int wait) { JFWDisplay::getManager()->waitBlanking(wait); }
|
||||
static f32 getWidthF() { return 608.0f; }
|
||||
|
@ -81,12 +85,16 @@ public:
|
|||
static ResTIMG* getFrameBufferTimg() { return mFrameBufferTimg; }
|
||||
static ResTIMG* getZbufferTimg() { return mZbufferTimg; }
|
||||
static void* getFrameBufferTex() { return mFrameBufferTex; }
|
||||
static void* getZbufferTex() { return mZbufferTex; }
|
||||
static void setFadeRate(f32 rate) { mFadeRate = rate; }
|
||||
static f32 getFadeRate() { return mFadeRate; }
|
||||
static bloom_c* getBloom() { return &m_bloom; }
|
||||
static GXColor& getFadeColor() { return mFadeColor; }
|
||||
static GXColor& getBackColor() { return mBackColor; }
|
||||
static void endRender() { JFWDisplay::getManager()->endRender(); }
|
||||
static GXTexObj* getZbufferTexObj() { return &mZbufferTexObj; }
|
||||
static GXTexObj* getFrameBufferTexObj() { return &mFrameBufferTexObj; }
|
||||
static f32 getInvScale() { return 1.0f; }
|
||||
|
||||
static GXTexObj mFrameBufferTexObj;
|
||||
static GXTexObj mZbufferTexObj;
|
||||
|
@ -102,6 +110,7 @@ public:
|
|||
static f32 mFadeRate;
|
||||
static f32 mFadeSpeed;
|
||||
static bool mBlureFlag;
|
||||
static u8 mBlureRate;
|
||||
static u8 mFade;
|
||||
};
|
||||
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
//
|
||||
|
||||
#include "JSystem/J2DGraph/J2DOrthoGraph.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/gx/GX.h"
|
||||
#include "dolphin/mtx/mtx44.h"
|
||||
#include "dolphin/types.h"
|
||||
|
@ -13,40 +12,10 @@
|
|||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void __ct__13J2DOrthoGraphFv();
|
||||
extern "C" void __ct__13J2DOrthoGraphFffffff();
|
||||
extern "C" void setPort__13J2DOrthoGraphFv();
|
||||
extern "C" void func_802E980C();
|
||||
extern "C" void setLookat__13J2DOrthoGraphFv();
|
||||
extern "C" void func_802E987C();
|
||||
extern "C" void J2DDrawLine__FffffQ28JUtility6TColori();
|
||||
extern "C" void J2DFillBox__FffffQ28JUtility6TColor();
|
||||
extern "C" void func_802E9B0C();
|
||||
extern "C" void J2DDrawFrame__FffffQ28JUtility6TColorUc();
|
||||
extern "C" void func_802E9BE8();
|
||||
extern "C" bool getGrafType__13J2DOrthoGraphCFv();
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void __dt__13J2DOrthoGraphFv();
|
||||
extern "C" void __ct__14J2DGrafContextFffff();
|
||||
extern "C" void setPort__14J2DGrafContextFv();
|
||||
extern "C" void setup2D__14J2DGrafContextFv();
|
||||
extern "C" void setScissor__14J2DGrafContextFv();
|
||||
extern "C" void func_802E90E4();
|
||||
extern "C" void
|
||||
setColor__14J2DGrafContextFQ28JUtility6TColorQ28JUtility6TColorQ28JUtility6TColorQ28JUtility6TColor();
|
||||
extern "C" void setLineWidth__14J2DGrafContextFUc();
|
||||
extern "C" void func_802E9260();
|
||||
extern "C" void func_802E9368();
|
||||
extern "C" void func_802E9564();
|
||||
extern "C" void place__14J2DGrafContextFffff();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" extern void* __vt__14J2DGrafContext[10];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
|
|
@ -1474,7 +1474,7 @@ static void envcolor_init() {
|
|||
undwater_init();
|
||||
dComIfGs_PolyDamageOff_Set(0);
|
||||
g_env_light.field_0x98c = dComIfGp_roomControl_getStayNo();
|
||||
g_env_light.field_0x12fa = 0;
|
||||
g_env_light.mIsBlure = 0;
|
||||
g_env_light.field_0x12fb = 0;
|
||||
g_env_light.field_0x1300 = -1;
|
||||
g_env_light.field_0x1302 = -1;
|
||||
|
|
|
@ -9,33 +9,28 @@
|
|||
#include "JSystem/JUtility/JUTDbPrint.h"
|
||||
#include "JSystem/JUtility/JUTProcBar.h"
|
||||
#include "JSystem/JUtility/JUTTexture.h"
|
||||
#include "JSystem/JUtility/JUTConsole.h"
|
||||
#include "JSystem/J2DGraph/J2DOrthoGraph.h"
|
||||
#include "JSystem/J2DGraph/J2DPrint.h"
|
||||
#include "SSystem/SComponent/c_lib.h"
|
||||
#include "SSystem/SComponent/c_math.h"
|
||||
#include "d/a/d_a_player.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "d/menu/d_menu_collect.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "f_ap/f_ap_game.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "global.h"
|
||||
#include "m_Do/m_Do_controller_pad.h"
|
||||
#include "m_Do/m_Do_machine.h"
|
||||
#include "m_Do/m_Do_mtx.h"
|
||||
#include "m_Do/m_Do_main.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct J2DPrint {
|
||||
/* 802F4658 */ static void setBuffer(u32);
|
||||
};
|
||||
|
||||
struct J2DOrthoGraph {
|
||||
/* 8000B118 */ ~J2DOrthoGraph();
|
||||
/* 802E96D0 */ J2DOrthoGraph(f32, f32, f32, f32, f32, f32);
|
||||
/* 802E97B4 */ void setPort();
|
||||
/* 802E980C */ void setOrtho(JGeometry::TBox2<f32> const&, f32, f32);
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
@ -227,7 +222,7 @@ bool mDoGph_gInf_c::mBlureFlag;
|
|||
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
static bool data_80450BE5;
|
||||
u8 mDoGph_gInf_c::mBlureRate;
|
||||
|
||||
u8 mDoGph_gInf_c::mFade;
|
||||
|
||||
|
@ -409,10 +404,10 @@ static asm void darwFilter(_GXColor param_0) {
|
|||
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
|
||||
// Matches with literals
|
||||
#ifdef NONMATCHING
|
||||
void mDoGph_gInf_c::calcFade() {
|
||||
if (mDoGph_gInf_c::mFade == 1) {
|
||||
if (mDoGph_gInf_c::mFade != 0) {
|
||||
mFadeRate += mFadeSpeed;
|
||||
|
||||
if (mFadeRate < 0.0f) {
|
||||
|
@ -468,7 +463,7 @@ int mDoGph_BeforeOfDraw() {
|
|||
}
|
||||
|
||||
/* 80008474-80008630 002DB4 01BC+00 0/0 1/0 0/0 .text mDoGph_AfterOfDraw__Fv */
|
||||
// r6 / r7 swapped
|
||||
// Matches with literals
|
||||
#ifdef NONMATCHING
|
||||
int mDoGph_AfterOfDraw() {
|
||||
if (fapGmHIO_isMenu()) {
|
||||
|
@ -477,7 +472,7 @@ int mDoGph_AfterOfDraw() {
|
|||
JUTDbPrint::getManager()->setVisible(true);
|
||||
} else {
|
||||
int sysConsole_visible = JFWSystem::getSystemConsole()->isVisible();
|
||||
int port3_connected = mDoCPd_c::isConnect(PAD_3);
|
||||
s32 port3_connected = mDoCPd_c::isConnect(PAD_3);
|
||||
|
||||
BOOL procBar_visible = port3_connected && fapGmHIO_getMeter() && !sysConsole_visible;
|
||||
BOOL console_visible = port3_connected && fapGmHIO_isPrint();
|
||||
|
@ -521,7 +516,7 @@ asm void mDoGph_AfterOfDraw() {
|
|||
|
||||
/* ############################################################################################## */
|
||||
/* 80450598-8045059C 000018 0004+00 1/1 0/0 0/0 .sdata l_tevColor0$4208 */
|
||||
SECTION_SDATA static u8 l_tevColor0[4] = {
|
||||
SECTION_SDATA static GXColorS10 l_tevColor0 = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
|
@ -529,12 +524,12 @@ SECTION_SDATA static u8 l_tevColor0[4] = {
|
|||
};
|
||||
|
||||
/* 8045059C-804505A0 00001C 0004+00 1/1 0/0 0/0 .sdata None */
|
||||
SECTION_SDATA static u8 data_8045059C[4] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
// SECTION_SDATA static u8 data_8045059C[4] = {
|
||||
// 0x00,
|
||||
// 0x00,
|
||||
// 0x00,
|
||||
// 0x00,
|
||||
// };
|
||||
|
||||
/* 80451A48-80451A4C 000048 0004+00 1/1 0/0 0/0 .sdata2 @4422 */
|
||||
SECTION_SDATA2 static f32 lit_4422 = -255.0f;
|
||||
|
@ -563,7 +558,7 @@ SECTION_SDATA2 static u8 lit_4428[8] = {
|
|||
SECTION_SDATA2 static f32 lit_4429 = 280.0f;
|
||||
|
||||
/* 80451A74-80451A78 000074 0004+00 1/1 0/0 0/0 .sdata2 @4430 */
|
||||
SECTION_SDATA2 static f32 lit_4430 = 4.0f / 5.0f;
|
||||
SECTION_SDATA2 static f32 lit_4430 = 0.8f;
|
||||
|
||||
/* 80451A78-80451A7C 000078 0004+00 1/1 0/0 0/0 .sdata2 @4431 */
|
||||
SECTION_SDATA2 static f32 lit_4431 = -180.0f;
|
||||
|
@ -581,13 +576,13 @@ SECTION_SDATA2 static f32 lit_4434 = 999999.0f;
|
|||
SECTION_SDATA2 static f32 lit_4435 = 80.0f;
|
||||
|
||||
/* 80451A8C-80451A90 00008C 0004+00 1/1 0/0 0/0 .sdata2 @4436 */
|
||||
SECTION_SDATA2 static f32 lit_4436 = 1.0f / 10.0f;
|
||||
SECTION_SDATA2 static f32 lit_4436 = 0.1f;
|
||||
|
||||
/* 80451A90-80451A94 000090 0004+00 1/1 0/0 0/0 .sdata2 @4437 */
|
||||
SECTION_SDATA2 static f32 lit_4437 = 100.0f;
|
||||
|
||||
/* 80451A94-80451A98 000094 0004+00 1/1 0/0 0/0 .sdata2 @4438 */
|
||||
SECTION_SDATA2 static f32 lit_4438 = 9.999999747378752e-05f;
|
||||
SECTION_SDATA2 static f32 lit_4438 = 0.0001f;
|
||||
|
||||
/* 80451A98-80451A9C 000098 0004+00 1/1 0/0 0/0 .sdata2 @4439 */
|
||||
SECTION_SDATA2 static f32 lit_4439 = -254.0f;
|
||||
|
@ -596,13 +591,198 @@ SECTION_SDATA2 static f32 lit_4439 = -254.0f;
|
|||
SECTION_SDATA2 static f32 lit_4440 = 509.0f;
|
||||
|
||||
/* 80451AA0-80451AA4 0000A0 0004+00 1/1 0/0 0/0 .sdata2 @4441 */
|
||||
SECTION_SDATA2 static f32 lit_4441 = 0.0024999999441206455f;
|
||||
SECTION_SDATA2 static f32 lit_4441 = 0.0025f;
|
||||
|
||||
/* 80451AA4-80451AA8 0000A4 0004+00 1/1 0/0 0/0 .sdata2 @4442 */
|
||||
SECTION_SDATA2 static f32 lit_4442 = -0.0024999999441206455f;
|
||||
SECTION_SDATA2 static f32 lit_4442 = -0.0025f;
|
||||
|
||||
/* 80008630-80009184 002F70 0B54+00 1/1 0/0 0/0 .text
|
||||
* drawDepth2__FP10view_classP15view_port_classi */
|
||||
// regalloc
|
||||
#ifdef NONMATCHING
|
||||
static void drawDepth2(view_class* param_0, view_port_class* param_1, int param_2) {
|
||||
if (dComIfGp_getLinkPlayer() == NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ((s32)data_80450BE7 != 0) {
|
||||
f32 auStack_d8[7];
|
||||
f32 auStack_f0[6];
|
||||
f32 auStack_110;
|
||||
f32 auStack_114;
|
||||
f32 local_118;
|
||||
GXGetProjectionv(auStack_d8);
|
||||
GXGetViewportv(auStack_f0);
|
||||
GXProject(param_0->mLookat.mCenter.x, param_0->mLookat.mCenter.y,
|
||||
param_0->mLookat.mCenter.z, (MtxP)param_0->mViewMtx, (f32*)auStack_d8, (f32*)auStack_f0,
|
||||
&auStack_110, &auStack_114, &local_118);
|
||||
}
|
||||
|
||||
camera_class* local_120 = dComIfGp_getCamera(0);
|
||||
f32 f30 = -255.0f;
|
||||
if (dCam_getBody()->mNextMode != 4 && dCam_getBody()->mNextMode != 7) {
|
||||
camera_class* local_128 = dComIfGp_getCamera(i_dComIfGp_getPlayerCameraID(0));
|
||||
dAttention_c& local_12c = dComIfGp_getAttention();
|
||||
f32 f31 = 60.0f / (local_128 ? fopCamM_GetFovy(local_128) : 48.0f);
|
||||
if (local_12c.LockonTruth()) {
|
||||
fopAc_ac_c* local_130 = fopAcM_SearchByID(daPy_getLinkPlayerActorClass()->getAtnActorID());
|
||||
if (local_130 != NULL) {
|
||||
cXyz cStack_100 = local_130->mEyePos;
|
||||
if (fabsf(cStack_100.y - local_120->mLookat.mEye.y) < 400.0f) {
|
||||
cStack_100.y = local_120->mLookat.mEye.y;
|
||||
}
|
||||
f32 fVar2 = (local_130->current.pos.abs(local_120->mLookat.mEye)) / (280.0f * f31);
|
||||
fVar2 -= 0.8f;
|
||||
if (fVar2 < 0.0f) {
|
||||
fVar2 = 0.0f;
|
||||
} else if (fVar2 > 1.0f) {
|
||||
fVar2 = 1.0f;
|
||||
}
|
||||
f30 = -180.0f - 75.0f * fVar2;
|
||||
}
|
||||
} else {
|
||||
if (g_dComIfG_gameInfo.play.getEvent().runCheck() && f31 < 3.0f && g_env_light.field_0x126c < 999999.0f) {
|
||||
f32 fVar2 = g_env_light.field_0x126c / (80.0f * f31);
|
||||
fVar2 -= 0.8f;
|
||||
if (fVar2 < 0.0f) {
|
||||
fVar2 = 0.0f;
|
||||
} else if (fVar2 > 1.0f) {
|
||||
fVar2 = 1.0f;
|
||||
}
|
||||
f30 = -180.0f - 75.0f * fVar2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
cLib_addCalc(&g_env_light.field_0x1264, f30, 0.1f, 100.0f, 0.0001f);
|
||||
l_tevColor0.a = g_env_light.field_0x1264;
|
||||
if (l_tevColor0.a <= -254) {
|
||||
l_tevColor0.a = -255;
|
||||
}
|
||||
|
||||
s16 x_orig = (int)param_1->mXOrig & ~7;
|
||||
s16 y_orig = (int)param_1->mYOrig & ~7;
|
||||
s16 y_orig_pos = y_orig < 0 ? 0 : y_orig;
|
||||
s16 width = (int)param_1->mWidth & ~7;
|
||||
s16 height = (int)param_1->mHeight & ~7;
|
||||
void* zBufferTex = mDoGph_gInf_c::mZbufferTex;
|
||||
void* frameBufferTex = mDoGph_gInf_c::mFrameBufferTex;
|
||||
|
||||
if (y_orig < 0) {
|
||||
height += y_orig;
|
||||
s16 tmp_y_orig = -y_orig >> 1;
|
||||
zBufferTex = (char*)zBufferTex + GXGetTexBufferSize(304, tmp_y_orig,
|
||||
GX_TF_IA8,
|
||||
GX_FALSE, 0);
|
||||
frameBufferTex = (char*)frameBufferTex + GXGetTexBufferSize(304, tmp_y_orig,
|
||||
mDoGph_gInf_c::getFrameBufferTimg()->format,
|
||||
GX_FALSE, 0);
|
||||
}
|
||||
u16 halfWidth = width >> 1;
|
||||
u16 halfHeight = height >> 1;
|
||||
GXSetCopyFilter(GX_FALSE, NULL, GX_TRUE, JUTGetVideoManager()->getRenderMode()->vfilter);
|
||||
GXSetTexCopySrc(x_orig, y_orig_pos, width, height);
|
||||
GXSetTexCopyDst(halfWidth, halfHeight, GX_TF_Z16, GX_TRUE);
|
||||
GXCopyTex(zBufferTex, GX_FALSE);
|
||||
GXSetTexCopySrc(x_orig, y_orig_pos, width, height);
|
||||
GXSetTexCopyDst(halfWidth, halfHeight, mDoGph_gInf_c::getFrameBufferTimg()->format, GX_TRUE);
|
||||
GXCopyTex(frameBufferTex, GX_FALSE);
|
||||
GXInitTexObj(mDoGph_gInf_c::getZbufferTexObj(), zBufferTex, halfWidth, halfHeight, GX_TF_IA8, GX_CLAMP, GX_CLAMP, GX_FALSE);
|
||||
GXInitTexObjLOD(mDoGph_gInf_c::getZbufferTexObj(), GX_NEAR, GX_NEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1);
|
||||
GXInitTexObj(mDoGph_gInf_c::getFrameBufferTexObj(), frameBufferTex, halfWidth, halfHeight, (GXTexFmt)mDoGph_gInf_c::getFrameBufferTimg()->format, GX_CLAMP, GX_CLAMP, GX_FALSE);
|
||||
GXInitTexObjLOD(mDoGph_gInf_c::getFrameBufferTexObj(), GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1);
|
||||
GXPixModeSync();
|
||||
GXInvalidateTexAll();
|
||||
GXLoadTexObj(mDoGph_gInf_c::getFrameBufferTexObj(), GX_TEXMAP1);
|
||||
GXLoadTexObj(mDoGph_gInf_c::getZbufferTexObj(), GX_TEXMAP0);
|
||||
if (0.0f != g_env_light.mDemoAttentionPoint) {
|
||||
if (g_env_light.mDemoAttentionPoint >= 0.0f) {
|
||||
l_tevColor0.a = -254.0f + 509.0f * g_env_light.mDemoAttentionPoint;
|
||||
} else {
|
||||
l_tevColor0.a = -254.0f + 509.0f * (1.0f + g_env_light.mDemoAttentionPoint);
|
||||
}
|
||||
}
|
||||
GXSetTevColorS10(GX_TEVREG0, l_tevColor0);
|
||||
GXSetTevSwapModeTable(GX_TEV_SWAP3, GX_CH_ALPHA, GX_CH_GREEN, GX_CH_BLUE, GX_CH_RED);
|
||||
GXSetTevSwapMode(GX_TEVSTAGE0, GX_TEV_SWAP0, GX_TEV_SWAP3);
|
||||
GXSetTevKAlphaSel(GX_TEVSTAGE0, GX_TEV_KASEL_1);
|
||||
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL);
|
||||
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO);
|
||||
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_KONST, GX_CA_TEXA, GX_CA_KONST, GX_CA_ZERO);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_COMP_A8_EQ, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||
|
||||
GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL);
|
||||
GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO);
|
||||
GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||
GXSetTevAlphaIn(GX_TEVSTAGE1, GX_CA_ZERO, GX_CA_APREV, GX_CA_TEXA, GX_CA_A0);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_4, GX_TRUE, GX_TEVPREV);
|
||||
|
||||
GXSetTevOrder(GX_TEVSTAGE2, GX_TEXCOORD1, GX_TEXMAP1, GX_COLOR_NULL);
|
||||
GXSetTevColorIn(GX_TEVSTAGE2, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_TEXC);
|
||||
GXSetTevColorOp(GX_TEVSTAGE2, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||
GXSetTevAlphaIn(GX_TEVSTAGE2, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_APREV);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE2, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||
|
||||
GXSetTevOrder(GX_TEVSTAGE3, GX_TEXCOORD2, GX_TEXMAP1, GX_COLOR_NULL);
|
||||
GXSetTevColorIn(GX_TEVSTAGE3, GX_CC_CPREV, GX_CC_TEXC, GX_CC_HALF, GX_CC_ZERO);
|
||||
GXSetTevColorOp(GX_TEVSTAGE3, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||
GXSetTevAlphaIn(GX_TEVSTAGE3, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_APREV);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE3, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||
|
||||
GXSetZCompLoc(GX_TRUE);
|
||||
GXSetZMode(GX_FALSE, GX_ALWAYS, GX_FALSE);
|
||||
if (g_env_light.mDemoAttentionPoint >= 0.0f) {
|
||||
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);
|
||||
} else {
|
||||
GXSetBlendMode(GX_BM_BLEND, GX_BL_INV_SRC_ALPHA, GX_BL_SRC_ALPHA, GX_LO_CLEAR);
|
||||
GXSetAlphaCompare(GX_LESS, 0xff, GX_AOP_OR, GX_LESS, 0xff);
|
||||
}
|
||||
|
||||
GXSetFog(GX_FOG_NONE, 0.0f, 0.0f, 0.0f, 0.0f, g_clearColor);
|
||||
GXSetCullMode(GX_CULL_NONE);
|
||||
GXSetDither(GX_TRUE);
|
||||
GXSetNumIndStages(0);
|
||||
Mtx44 ortho;
|
||||
C_MTXOrtho(ortho, param_1->mYOrig, param_1->mYOrig + param_1->mHeight, param_1->mXOrig, param_1->mXOrig + param_1->mWidth, 0.0f, 10.0f);
|
||||
GXLoadPosMtxImm(mDoMtx_getIdentity(), 0);
|
||||
mDoMtx_stack_c::transS(0.0025f, 0.0025f, 0.0f);
|
||||
GXLoadTexMtxImm(mDoMtx_stack_c::get(), 0x1e, GX_MTX2x4);
|
||||
mDoMtx_stack_c::transS(-0.0025f, -0.0025f, 0.0f);
|
||||
GXLoadTexMtxImm(mDoMtx_stack_c::get(), 0x21, GX_MTX2x4);
|
||||
GXClearVtxDesc();
|
||||
GXSetVtxDesc(GX_VA_POS, GX_DIRECT);
|
||||
GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_S16, 0);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_POS_XYZ, GX_S8, 0);
|
||||
GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3c, GX_FALSE, 0x7d);
|
||||
GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_TEX0, 0x1e, GX_FALSE, 0x7d);
|
||||
GXSetTexCoordGen2(GX_TEXCOORD2, GX_TG_MTX2x4, GX_TG_TEX0, 0x21, GX_FALSE, 0x7d);
|
||||
GXSetNumChans(0);
|
||||
GXSetNumTexGens(3);
|
||||
GXSetNumTevStages(4);
|
||||
GXSetProjection(ortho, GX_ORTHOGRAPHIC);
|
||||
GXSetCurrentMtx(0);
|
||||
|
||||
if (l_tevColor0.a > -255) {
|
||||
GXBegin(GX_QUADS, GX_VTXFMT0, 4);
|
||||
i_GXPosition3s16(x_orig, y_orig, -5);
|
||||
GXTexCoord2s8(0,0);
|
||||
i_GXPosition3s16(width, y_orig, -5);
|
||||
GXTexCoord2s8(1,0);
|
||||
i_GXPosition3s16(width, height, -5);
|
||||
GXTexCoord2s8(1,1);
|
||||
i_GXPosition3s16(x_orig, height, -5);
|
||||
GXTexCoord2s8(0,1);
|
||||
i_GXEnd();
|
||||
}
|
||||
|
||||
GXSetTevSwapModeTable(GX_TEV_SWAP3, GX_CH_BLUE, GX_CH_BLUE, GX_CH_BLUE, GX_CH_ALPHA);
|
||||
GXSetTevSwapMode(GX_TEVSTAGE0, GX_TEV_SWAP0, GX_TEV_SWAP0);
|
||||
GXSetProjection(param_0->mProjMtx, GX_PERSPECTIVE);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
@ -611,6 +791,7 @@ static asm void drawDepth2(view_class* param_0, view_port_class* param_1, int pa
|
|||
#include "asm/m_Do/m_Do_graphic/drawDepth2__FP10view_classP15view_port_classi.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80009184-800091C0 003AC4 003C+00 0/0 53/53 0/0 .text __dt__4cXyzFv */
|
||||
#pragma push
|
||||
|
@ -632,6 +813,64 @@ SECTION_SDATA2 static f32 lit_4481 = 608.0f;
|
|||
|
||||
/* 800091C0-800094B4 003B00 02F4+00 1/1 0/0 0/0 .text trimming__FP10view_classP15view_port_class
|
||||
*/
|
||||
// Matches with literals
|
||||
#ifdef NONMATCHING
|
||||
static void trimming(view_class* param_0, view_port_class* param_1) {
|
||||
s16 y_orig = (int)param_1->mYOrig & ~7;
|
||||
s16 y_orig_pos = y_orig < 0 ? 0 : y_orig;
|
||||
if ((y_orig_pos == 0) && (param_1->mScissor.mYOrig != param_1->mYOrig ||
|
||||
(param_1->mScissor.mHeight != param_1->mHeight)))
|
||||
{
|
||||
s32 sc_top = (int)param_1->mScissor.mYOrig;
|
||||
s32 sc_bottom = param_1->mScissor.mYOrig + param_1->mScissor.mHeight;
|
||||
GXSetNumChans(1);
|
||||
GXSetChanCtrl(GX_ALPHA0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, 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_ZERO);
|
||||
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_ZERO);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
|
||||
GX_TEVPREV);
|
||||
GXSetZCompLoc(1);
|
||||
GXSetZMode(GX_FALSE, GX_ALWAYS, GX_FALSE);
|
||||
GXSetBlendMode(GX_BM_NONE, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_CLEAR);
|
||||
GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_OR, GX_ALWAYS, 0);
|
||||
GXSetFog(GX_FOG_NONE, 0.0f,
|
||||
0.0f, 0.0f,
|
||||
0.0f, g_clearColor);
|
||||
GXSetCullMode(GX_CULL_NONE);
|
||||
GXSetDither(GX_TRUE);
|
||||
GXSetNumIndStages(0);
|
||||
Mtx44 ortho;
|
||||
C_MTXOrtho(
|
||||
ortho,
|
||||
0.0f, 448.0f,
|
||||
0.0f, 608.0f,
|
||||
0.0f, 10.0f);
|
||||
GXLoadPosMtxImm(mDoMtx_getIdentity(), 0);
|
||||
GXClearVtxDesc();
|
||||
GXSetVtxDesc(GX_VA_POS, GX_DIRECT);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_CLR_RGBA, GX_RGBA4, 0);
|
||||
GXSetProjection(ortho, GX_ORTHOGRAPHIC);
|
||||
GXSetCurrentMtx(0);
|
||||
GXBegin(GX_QUADS, GX_VTXFMT0, 8);
|
||||
i_GXPosition3s16(0, 0, -5);
|
||||
i_GXPosition3s16(0x260, 0, -5);
|
||||
i_GXPosition3s16(0x280, sc_top, -5);
|
||||
i_GXPosition3s16(0, sc_top, -5);
|
||||
i_GXPosition3s16(0, sc_bottom, -5);
|
||||
i_GXPosition3s16(0x280, sc_bottom, -5);
|
||||
i_GXPosition3s16(0x280, 0x1c0, -5);
|
||||
i_GXPosition3s16(0, 0x1c8, -5);
|
||||
i_GXEnd();
|
||||
}
|
||||
GXSetScissor(param_1->mScissor.mXOrig, param_1->mScissor.mYOrig,
|
||||
param_1->mScissor.mWidth, param_1->mScissor.mHeight);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
@ -640,6 +879,7 @@ static asm void trimming(view_class* param_0, view_port_class* param_1) {
|
|||
#include "asm/m_Do/m_Do_graphic/trimming__FP10view_classP15view_port_class.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 800094B4-80009544 003DF4 0090+00 2/2 1/1 0/0 .text mDoGph_drawFilterQuad__FScSc */
|
||||
void mDoGph_drawFilterQuad(s8 param_0, s8 param_1) {
|
||||
|
@ -682,34 +922,209 @@ void mDoGph_gInf_c::bloom_c::remove() {
|
|||
|
||||
/* ############################################################################################## */
|
||||
/* 80451AB4-80451AB8 0000B4 0004+00 1/1 0/0 0/0 .sdata2 @4528 */
|
||||
SECTION_SDATA2 static u8 lit_4528[4] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
|
||||
/* 80451AB8-80451ABC 0000B8 0004+00 1/1 0/0 0/0 .sdata2 None */
|
||||
SECTION_SDATA2 static u32 data_80451AB8 = 0x00000040;
|
||||
SECTION_SDATA2 static GXColorS10 lit_4528 = {0, 0, 0, 0x40};
|
||||
|
||||
/* 80451ABC-80451AC0 0000BC 0004+00 1/1 0/0 0/0 .sdata2 @4592 */
|
||||
SECTION_SDATA2 static f32 lit_4592 = 4.0f;
|
||||
|
||||
/* 80451AC0-80451AC8 0000C0 0004+04 1/1 0/0 0/0 .sdata2 @4593 */
|
||||
SECTION_SDATA2 static f32 lit_4593[1 + 1 /* padding */] = {
|
||||
0.00015624999650754035f,
|
||||
/* padding */
|
||||
0.0f,
|
||||
};
|
||||
/* 80451AC0-80451AC8 0000C0 0004+04 1/1 0/0 0f/0 .sdata2 @4593 */
|
||||
SECTION_SDATA2 static f32 lit_4593 = 1.0f / 6400.0f;
|
||||
|
||||
/* 80451AC8-80451AD0 0000C8 0008+00 1/1 0/0 0/0 .sdata2 @4595 */
|
||||
SECTION_SDATA2 static f64 lit_4595 = 4503599627370496.0 /* cast u32 to float */;
|
||||
|
||||
/* 80456B60-80456B68 000000 0004+04 1/1 0/0 0/0 .sbss2 @4530 */
|
||||
SECTION_SBSS2 static u8 lit_4530[4 + 4 /* padding */];
|
||||
SECTION_SBSS2 static GXColor lit_4530;
|
||||
|
||||
static inline void GXSetTexCoordGen(GXTexCoordID param_1, GXTexGenType param_2, GXTexGenSrc param_3, u32 param_4){
|
||||
GXSetTexCoordGen2(param_1, param_2, param_3, param_4, GX_FALSE, 0x7d);
|
||||
}
|
||||
|
||||
/* 80009650-8000A160 003F90 0B10+00 1/1 0/0 0/0 .text draw__Q213mDoGph_gInf_c7bloom_cFv
|
||||
*/
|
||||
// Matches with literals
|
||||
#ifdef NONMATCHING
|
||||
void mDoGph_gInf_c::bloom_c::draw() {
|
||||
bool enabled = false;
|
||||
enabled = mEnable && m_buffer != NULL;
|
||||
if (mMonoColor.a != 0 || enabled) {
|
||||
GXSetViewport(0.0f, 0.0f, 608.0f, 448.0f, 0.0f, 1.0f);
|
||||
GXSetScissor(0, 0, 0x260, 0x1c0);
|
||||
GXLoadTexObj(getFrameBufferTexObj(), GX_TEXMAP0);
|
||||
GXSetNumChans(0);
|
||||
GXSetNumTexGens(1);
|
||||
GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3c);
|
||||
GXSetTevSwapModeTable(GX_TEV_SWAP1, GX_CH_RED, GX_CH_RED, GX_CH_RED, GX_CH_GREEN);
|
||||
GXSetTevSwapModeTable(GX_TEV_SWAP3, GX_CH_BLUE, GX_CH_BLUE, GX_CH_BLUE, GX_CH_ALPHA);
|
||||
GXSetZCompLoc(1);
|
||||
GXSetZMode(0, GX_ALWAYS, 0);
|
||||
GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_OR, GX_ALWAYS, 0);
|
||||
GXSetFog(GX_FOG_NONE, 0.0f, 0.0f, 0.0f, 0.0f, g_clearColor);
|
||||
GXSetFogRangeAdj(0, 0, 0);
|
||||
GXSetCullMode(GX_CULL_NONE);
|
||||
GXSetDither(1);
|
||||
Mtx44 ortho;
|
||||
C_MTXOrtho(ortho, 0.0f, 4.0f, 0.0f, 4.0f, 0.0f, 10.0f);
|
||||
GXLoadPosMtxImm(mDoMtx_getIdentity(), 0);
|
||||
GXSetProjection(ortho, GX_ORTHOGRAPHIC);
|
||||
GXSetCurrentMtx(0);
|
||||
GXClearVtxDesc();
|
||||
GXSetVtxDesc(GX_VA_POS, GX_DIRECT);
|
||||
GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_CLR_RGB, GX_RGB8, 0);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_CLR_RGBA, GX_RGB8, 0);
|
||||
if (mMonoColor.a != 0) {
|
||||
GXSetNumTevStages(1);
|
||||
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL);
|
||||
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_C2, GX_CC_ZERO);
|
||||
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_A2);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
|
||||
GX_TEVPREV);
|
||||
GXSetTevSwapMode(GX_TEVSTAGE0, GX_TEV_SWAP1, GX_TEV_SWAP1);
|
||||
GXSetTevColor(GX_TEVREG2, mMonoColor);
|
||||
GXSetBlendMode(GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_OR);
|
||||
mDoGph_drawFilterQuad(4, 4);
|
||||
}
|
||||
if (enabled) {
|
||||
GXSetTexCopySrc(0, 0, 0x130, 0xe0);
|
||||
GXSetTexCopyDst(0x130, 0xe0, 6, 0);
|
||||
GXCopyTex(m_buffer, 0);
|
||||
GXSetNumTevStages(3);
|
||||
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL);
|
||||
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_TEXC, GX_CC_TEXA, GX_CC_HALF, GX_CC_ZERO);
|
||||
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_ZERO);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
|
||||
GX_TEVPREV);
|
||||
GXSetTevSwapMode(GX_TEVSTAGE0, GX_TEV_SWAP1, GX_TEV_SWAP1);
|
||||
GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL);
|
||||
GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_TEXC, GX_CC_CPREV, GX_CC_HALF, GX_CC_C0);
|
||||
GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
|
||||
GX_TEVPREV);
|
||||
GXSetTevAlphaIn(GX_TEVSTAGE1, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
|
||||
GX_TEVPREV);
|
||||
GXSetTevSwapMode(GX_TEVSTAGE1, GX_TEV_SWAP3, GX_TEV_SWAP3);
|
||||
GXSetTevOrder(GX_TEVSTAGE2, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL);
|
||||
GXSetTevColorIn(GX_TEVSTAGE2, GX_CC_ZERO, GX_CC_TEXC, GX_CC_CPREV, GX_CC_ZERO);
|
||||
GXSetTevColorOp(GX_TEVSTAGE2, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
|
||||
GX_TEVPREV);
|
||||
GXSetTevAlphaIn(GX_TEVSTAGE2, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE2, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
|
||||
GX_TEVPREV);
|
||||
GXSetBlendMode(GX_BM_NONE, GX_BL_ZERO, GX_BL_ZERO, GX_LO_OR);
|
||||
GXColorS10 tevColor0 = lit_4528;
|
||||
tevColor0.r = -mPoint;
|
||||
tevColor0.g = -mPoint;
|
||||
tevColor0.b = -mPoint;
|
||||
GXSetTevColorS10(GX_TEVREG0,tevColor0);
|
||||
GXColor tevColor1 = lit_4530;
|
||||
tevColor1.r = mBlureRatio;
|
||||
tevColor1.g = mBlureRatio;
|
||||
tevColor1.b = mBlureRatio;
|
||||
tevColor1.a = mBlureRatio;
|
||||
GXSetTevColor(GX_TEVREG1, tevColor1);
|
||||
GXPixModeSync();
|
||||
mDoGph_drawFilterQuad(2, 2);
|
||||
GXSetTevSwapModeTable(GX_TEV_SWAP1, GX_CH_RED, GX_CH_RED, GX_CH_RED, GX_CH_ALPHA);
|
||||
GXSetTevSwapMode(GX_TEVSTAGE0, GX_TEV_SWAP0, GX_TEV_SWAP0);
|
||||
GXSetTevSwapMode(GX_TEVSTAGE1, GX_TEV_SWAP0, GX_TEV_SWAP0);
|
||||
void* zBufferTex = getZbufferTex();
|
||||
GXSetTexCopySrc(0, 0, 0x130, 0xe0);
|
||||
GXSetTexCopyDst(0x98, 0x70, 6, GX_TRUE);
|
||||
GXCopyTex(zBufferTex, 0);
|
||||
GXTexObj auStack_c0;
|
||||
GXInitTexObj(&auStack_c0, zBufferTex, 0x98, 0x70, GX_TF_RGBA8, GX_CLAMP, GX_CLAMP, GX_FALSE);
|
||||
GXInitTexObjLOD(&auStack_c0, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1);
|
||||
GXLoadTexObj(&auStack_c0, GX_TEXMAP0);
|
||||
GXSetNumTexGens(8);
|
||||
u32 iVar11 = 0x1e;
|
||||
s16 sVar10 = 0;
|
||||
GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3c);
|
||||
for (int texCoord = (int)GX_TEXCOORD1; texCoord < (int)GX_MAXCOORD; texCoord++, iVar11 += 3, sVar10 += 0x2492) {
|
||||
GXSetTexCoordGen((GXTexCoordID) texCoord, GX_TG_MTX2x4, GX_TG_TEX0, iVar11);
|
||||
f32 dVar15 = mBlureSize * (1.0f / 6400.0f);
|
||||
mDoMtx_stack_c::transS(
|
||||
(dVar15 * cM_scos(sVar10)) * getInvScale(),
|
||||
dVar15 * cM_ssin(sVar10),
|
||||
0.0f);
|
||||
GXLoadTexMtxImm(mDoMtx_stack_c::get(), iVar11, GX_MTX2x4);
|
||||
}
|
||||
GXSetNumTevStages(8);
|
||||
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL);
|
||||
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_A1, GX_CC_ZERO);
|
||||
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_ZERO);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
|
||||
GX_TEVPREV);
|
||||
for (int tevStage = (int)GX_TEVSTAGE1; tevStage < 8; tevStage++) {
|
||||
GXSetTevOrder((GXTevStageID)tevStage, (GXTexCoordID)tevStage, GX_TEXMAP0, GX_COLOR_NULL);
|
||||
GXSetTevColorIn((GXTevStageID)tevStage, GX_CC_ZERO, GX_CC_TEXC, GX_CC_A1, GX_CC_CPREV);
|
||||
GXSetTevColorOp((GXTevStageID)tevStage, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
|
||||
GX_TEVPREV);
|
||||
GXSetTevAlphaIn((GXTevStageID)tevStage, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_A0);
|
||||
GXSetTevAlphaOp((GXTevStageID)tevStage, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
|
||||
GX_TEVPREV);
|
||||
}
|
||||
GXPixModeSync();
|
||||
mDoGph_drawFilterQuad(1, 1);
|
||||
GXSetTexCopySrc(0, 0, 0x98, 0x70);
|
||||
GXSetTexCopyDst(0x4c, 0x38, 6, GX_TRUE);
|
||||
GXCopyTex(zBufferTex, GX_FALSE);
|
||||
GXTexObj auStack_e0;
|
||||
GXInitTexObj(&auStack_e0, zBufferTex, 0x4c, 0x38, GX_TF_RGBA8, GX_CLAMP, GX_CLAMP, GX_FALSE);
|
||||
GXInitTexObjLOD(&auStack_c0, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1);
|
||||
GXLoadTexObj(&auStack_e0, GX_TEXMAP0);
|
||||
GXSetBlendMode(GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_OR);
|
||||
GXPixModeSync();
|
||||
GXInvalidateTexAll();
|
||||
mDoGph_drawFilterQuad(1, 1);
|
||||
GXSetTexCopySrc(0, 0, 0x98, 0x70);
|
||||
GXSetTexCopyDst(0x98, 0x70, 6, GX_FALSE);
|
||||
GXCopyTex(zBufferTex, GX_FALSE);
|
||||
GXInitTexObj(&auStack_e0, m_buffer, 0x130, 0xe0, GX_TF_RGBA8, GX_CLAMP, GX_CLAMP, GX_FALSE);
|
||||
GXInitTexObjLOD(&auStack_e0, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1);
|
||||
GXLoadTexObj(&auStack_e0, GX_TEXMAP0);
|
||||
GXSetNumTexGens(1);
|
||||
GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3c);
|
||||
GXSetNumTevStages(1);
|
||||
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL);
|
||||
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_TEXC);
|
||||
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_ZERO);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
|
||||
GX_TEVPREV);
|
||||
GXSetBlendMode(GX_BM_NONE, GX_BL_ONE, GX_BL_ONE, GX_LO_OR);
|
||||
mDoGph_drawFilterQuad(2, 2);
|
||||
GXLoadTexObj(&auStack_c0, GX_TEXMAP0);
|
||||
GXSetTevColor(GX_TEVREG0, mBlendColor);
|
||||
GXSetNumTevStages(1);
|
||||
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL);
|
||||
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_C0, GX_CC_ZERO);
|
||||
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_A0);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
|
||||
GX_TEVPREV);
|
||||
GXBlendFactor blendFactor;
|
||||
if (mMode == 1) {
|
||||
blendFactor = GX_BL_INV_DST_COLOR;
|
||||
} else {
|
||||
blendFactor = GX_BL_ONE;
|
||||
}
|
||||
GXSetBlendMode(GX_BM_BLEND, blendFactor, GX_BL_SRC_ALPHA, GX_LO_OR);
|
||||
GXPixModeSync();
|
||||
GXInvalidateTexAll();
|
||||
mDoGph_drawFilterQuad(4, 4);
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
@ -718,22 +1133,24 @@ asm void mDoGph_gInf_c::bloom_c::draw() {
|
|||
#include "asm/m_Do/m_Do_graphic/draw__Q213mDoGph_gInf_c7bloom_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8000A160-8000A290 004AA0 0130+00 1/1 0/0 0/0 .text
|
||||
* retry_captue_frame__FP10view_classP15view_port_classi */
|
||||
#ifdef NONMATCHING
|
||||
static void retry_captue_frame(view_class* param_0, view_port_class* param_1, int param_2) {
|
||||
s16 width;
|
||||
s16 x_orig;
|
||||
s16 y_orig;
|
||||
s16 y_orig_pos;
|
||||
s16 width;
|
||||
s16 height;
|
||||
void* tex;
|
||||
|
||||
x_orig = (int)param_1->mXOrig & 0xFFFFFFF8;
|
||||
y_orig = (int)param_1->mYOrig & 0xFFFFFFF8;
|
||||
y_orig_pos = y_orig < 0 ? 0 : y_orig;
|
||||
width = (int)param_1->mWidth & 0xFFFFFFF8;
|
||||
height = (int)param_1->mHeight & 0xFFFFFFF8;
|
||||
tex = mDoGph_gInf_c::getFrameBufferTex();
|
||||
tex = mDoGph_gInf_c::mFrameBufferTex;
|
||||
|
||||
if (!dComIfGp_isPauseFlag()) {
|
||||
if (y_orig < 0) {
|
||||
|
@ -744,7 +1161,7 @@ static void retry_captue_frame(view_class* param_0, view_port_class* param_1, in
|
|||
GX_FALSE, 0);
|
||||
}
|
||||
|
||||
GXSetTexCopySrc(x_orig, y_orig, width, height);
|
||||
GXSetTexCopySrc(x_orig, y_orig_pos, width, height);
|
||||
GXSetTexCopyDst(width >> 1, height >> 1, mDoGph_gInf_c::getFrameBufferTimg()->format,
|
||||
GX_TRUE);
|
||||
GXCopyTex(tex, GX_FALSE);
|
||||
|
@ -752,18 +1169,55 @@ static void retry_captue_frame(view_class* param_0, view_port_class* param_1, in
|
|||
GXInvalidateTexAll();
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void retry_captue_frame(view_class* param_0, view_port_class* param_1, int param_2) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_graphic/retry_captue_frame__FP10view_classP15view_port_classi.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8000A290-8000A504 004BD0 0274+00 1/1 0/0 0/0 .text motionBlure__FP10view_class */
|
||||
// Matches with literals
|
||||
#ifdef NONMATCHING
|
||||
static void motionBlure(view_class* param_0) {
|
||||
if (g_env_light.mIsBlure) {
|
||||
GXLoadTexObj(mDoGph_gInf_c::getFrameBufferTexObj(), GX_TEXMAP0);
|
||||
GXColor local_60;
|
||||
local_60.a = mDoGph_gInf_c::getBlureRate();
|
||||
GXSetNumChans(0);
|
||||
GXSetNumTexGens(1);
|
||||
GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x1e);
|
||||
GXSetNumTevStages(1);
|
||||
GXSetTevColor(GX_TEVREG0, local_60);
|
||||
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL);
|
||||
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_TEXC);
|
||||
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_A0);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
|
||||
GX_TEVPREV);
|
||||
GXSetZCompLoc(1);
|
||||
GXSetZMode(GX_FALSE, GX_ALWAYS, GX_FALSE);
|
||||
GXSetBlendMode(GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_CLEAR);
|
||||
GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_OR, GX_ALWAYS, 0);
|
||||
GXSetFog(GX_FOG_NONE, 0.0f, 0.0f, 0.0f, 0.0f, g_clearColor);
|
||||
GXSetCullMode(GX_CULL_NONE);
|
||||
GXSetDither(GX_TRUE);
|
||||
Mtx44 ortho;
|
||||
C_MTXOrtho(ortho, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 10.0f);
|
||||
GXLoadPosMtxImm(mDoMtx_getIdentity(), 0);
|
||||
GXLoadTexMtxImm(mDoGph_gInf_c::getBlureMtx(), 0x1e, GX_MTX2x4);
|
||||
GXSetProjection(ortho, GX_ORTHOGRAPHIC);
|
||||
GXSetCurrentMtx(0);
|
||||
GXClearVtxDesc();
|
||||
GXSetVtxDesc(GX_VA_POS, GX_DIRECT);
|
||||
GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_CLR_RGB, GX_RGB8, 0);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_CLR_RGBA, GX_RGB8, 0);
|
||||
mDoGph_drawFilterQuad(1, 1);
|
||||
GXSetProjection(param_0->mProjMtx, GX_PERSPECTIVE);
|
||||
}
|
||||
if (mDoGph_gInf_c::isBlure()) {
|
||||
g_env_light.mIsBlure = 1;
|
||||
} else {
|
||||
g_env_light.mIsBlure = 0;
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
@ -772,7 +1226,7 @@ static asm void motionBlure(view_class* param_0) {
|
|||
#include "asm/m_Do/m_Do_graphic/motionBlure__FP10view_class.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
#endif
|
||||
/* ############################################################################################## */
|
||||
/* 80451AD0-80451AD4 0000D0 0004+00 1/1 0/0 0/0 .sdata2 @4641 */
|
||||
SECTION_SDATA2 static f32 lit_4641 = -35000.0f;
|
||||
|
@ -859,7 +1313,7 @@ SECTION_SDATA2 static f32 lit_5031[1 + 1 /* padding */] = {
|
|||
};
|
||||
|
||||
/* 8000A604-8000B118 004F44 0B14+00 0/0 1/0 0/0 .text mDoGph_Painter__Fv */
|
||||
// lots of regalloc / various issues
|
||||
// Matches without literals
|
||||
#ifdef NONMATCHING
|
||||
int mDoGph_Painter() {
|
||||
dComIfGp_particle_calcMenu();
|
||||
|
@ -874,8 +1328,8 @@ int mDoGph_Painter() {
|
|||
GXSetDither(GX_ENABLE);
|
||||
|
||||
J2DOrthoGraph ortho(0.0f, 0.0f, 608.0f, 448.0f, -1.0f, 1.0f);
|
||||
ortho.setOrtho(JGeometry::TBox2<f32>(mDoGph_gInf_c::getHeightF(), mDoGph_gInf_c::getWidthF(),
|
||||
mDoGph_gInf_c::getMinYF(), mDoGph_gInf_c::getMinXF()),
|
||||
ortho.setOrtho(JGeometry::TBox2<f32>(mDoGph_gInf_c::getMinXF(), mDoGph_gInf_c::getMinYF(),
|
||||
mDoGph_gInf_c::getWidthF(), mDoGph_gInf_c::getHeightF()),
|
||||
-1.0f, 1.0f);
|
||||
ortho.setPort();
|
||||
|
||||
|
@ -953,7 +1407,7 @@ int mDoGph_Painter() {
|
|||
GXInvalidateTexAll();
|
||||
GXSetClipMode(GX_CLIP_ENABLE);
|
||||
|
||||
if (g_env_light.field_0x12fa == 0) {
|
||||
if (g_env_light.mIsBlure == 0) {
|
||||
dComIfGd_drawOpaListInvisible();
|
||||
dComIfGd_drawXluListInvisible();
|
||||
}
|
||||
|
@ -978,7 +1432,7 @@ int mDoGph_Painter() {
|
|||
retry_captue_frame(camera_p, view_port, dComIfGp_getCameraZoomForcus(camera_id));
|
||||
GXSetClipMode(GX_CLIP_ENABLE);
|
||||
|
||||
if (g_env_light.field_0x12fa == 1) {
|
||||
if (g_env_light.mIsBlure == 1) {
|
||||
dComIfGd_drawOpaListInvisible();
|
||||
dComIfGd_drawXluListInvisible();
|
||||
}
|
||||
|
@ -995,13 +1449,13 @@ int mDoGph_Painter() {
|
|||
|
||||
GXSetViewport(0.0f, 0.0f, 608.0f, 448.0f, 0.0f, 1.0f);
|
||||
|
||||
Mtx m2;
|
||||
Mtx44 m;
|
||||
C_MTXPerspective(m, 60.0f, 1.357143f, 1.0f, 100000.0f);
|
||||
GXSetProjection(m, GX_PERSPECTIVE);
|
||||
cXyz sp38c(0.0f, 0.0f, -2.0f);
|
||||
cXyz sp398(0.0f, 1.0f, 0.0f);
|
||||
|
||||
Mtx m2;
|
||||
mDoMtx_lookAt(m2, &sp38c, &cXyz::Zero, &sp398, 0);
|
||||
j3dSys.setViewMtx(m2);
|
||||
dComIfGd_drawXluList2DScreen();
|
||||
|
@ -1010,13 +1464,13 @@ int mDoGph_Painter() {
|
|||
GXSetProjection(camera_p->mProjMtx, GX_PERSPECTIVE);
|
||||
j3dSys.reinitGX();
|
||||
|
||||
if ((g_env_light.mCameraInWater ||
|
||||
!strcmp(dComIfGp_getStartStageName(), "D_MN08")) &&
|
||||
mDoGph_gInf_c::getBloom()->getEnable() &&
|
||||
mDoGph_gInf_c::getBloom()->getMonoColor())
|
||||
{
|
||||
retry_captue_frame(camera_p, view_port,
|
||||
dComIfGp_getCameraZoomForcus(camera_id));
|
||||
if ((g_env_light.mCameraInWater || !strcmp(dComIfGp_getStartStageName(), "D_MN08"))) {
|
||||
u8 enable = mDoGph_gInf_c::getBloom()->getEnable();
|
||||
GXColor color = *mDoGph_gInf_c::getBloom()->getMonoColor();
|
||||
if (color.a != 0 || enable) {
|
||||
retry_captue_frame(camera_p, view_port,
|
||||
dComIfGp_getCameraZoomForcus(camera_id));
|
||||
}
|
||||
}
|
||||
|
||||
mDoGph_gInf_c::getBloom()->draw();
|
||||
|
@ -1025,8 +1479,8 @@ int mDoGph_Painter() {
|
|||
|
||||
dComIfGd_drawOpaList3Dlast();
|
||||
ortho.setOrtho(
|
||||
JGeometry::TBox2<f32>(mDoGph_gInf_c::getHeightF(), mDoGph_gInf_c::getWidthF(),
|
||||
mDoGph_gInf_c::getMinYF(), mDoGph_gInf_c::getMinXF()),
|
||||
JGeometry::TBox2<f32>(mDoGph_gInf_c::getMinXF(), mDoGph_gInf_c::getMinYF(),
|
||||
mDoGph_gInf_c::getWidthF(), mDoGph_gInf_c::getHeightF()),
|
||||
100000.0f, -100000.0f);
|
||||
ortho.setPort();
|
||||
|
||||
|
@ -1037,7 +1491,7 @@ int mDoGph_Painter() {
|
|||
|
||||
trimming(camera_p, view_port);
|
||||
|
||||
if (!strcmp(dComIfGp_getStartStageName(), "F_SP127") && !mDoGph_gInf_c::isFade()) {
|
||||
if (strcmp(dComIfGp_getStartStageName(), "F_SP127") != 0 && (mDoGph_gInf_c::mFade & 0x80) == 0) {
|
||||
mDoGph_gInf_c::calcFade();
|
||||
}
|
||||
}
|
||||
|
@ -1048,8 +1502,8 @@ int mDoGph_Painter() {
|
|||
dDlst_list_c::calcWipe();
|
||||
j3dSys.reinitGX();
|
||||
|
||||
ortho.setOrtho(JGeometry::TBox2<f32>(mDoGph_gInf_c::getHeightF(), mDoGph_gInf_c::getWidthF(),
|
||||
mDoGph_gInf_c::getMinYF(), mDoGph_gInf_c::getMinXF()),
|
||||
ortho.setOrtho(JGeometry::TBox2<f32>(mDoGph_gInf_c::getMinXF(), mDoGph_gInf_c::getMinYF(),
|
||||
mDoGph_gInf_c::getWidthF(), mDoGph_gInf_c::getHeightF()),
|
||||
100000.0f, -100000.0f);
|
||||
ortho.setPort();
|
||||
|
||||
|
@ -1076,10 +1530,10 @@ int mDoGph_Painter() {
|
|||
dComIfGd_draw2DXlu();
|
||||
|
||||
if (!dComIfGp_isPauseFlag()) {
|
||||
dComIfGp_particle_draw2Dback(&draw_info3);
|
||||
dComIfGp_particle_draw2Dfore(&draw_info3);
|
||||
}
|
||||
|
||||
if (!strcmp(dComIfGp_getStartStageName(), "F_SP127") && !mDoGph_gInf_c::isFade()) {
|
||||
if (strcmp(dComIfGp_getStartStageName(), "F_SP127") == 0 || (mDoGph_gInf_c::mFade & 0x80) != 0) {
|
||||
mDoGph_gInf_c::calcFade();
|
||||
}
|
||||
|
||||
|
@ -1104,7 +1558,8 @@ asm void mDoGph_Painter() {
|
|||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J2DOrthoGraph::~J2DOrthoGraph() {
|
||||
//asm J2DOrthoGraph::~J2DOrthoGraph() {
|
||||
asm void __dt__13J2DOrthoGraphFv() {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_graphic/__dt__13J2DOrthoGraphFv.s"
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue