Some work on d_menu_fishing (#304)

* Some work on d_menu_fishing

* pr improved based on comments

* forgot ./tp pull-request
This commit is contained in:
Trueffel
2023-03-07 05:31:32 +01:00
committed by GitHub
parent bae6c5d834
commit c9a0ee8430
9 changed files with 72 additions and 192 deletions
+4 -4
View File
@@ -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 | 25.173611% | 905380 | 3596544
.text | 25.184399% | 905768 | 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 | 33.062035% | 1329316 | 4020672
Total | 33.071686% | 1329704 | 4020672
## Total
Section | Percentage | Decompiled (bytes) | Total (bytes)
---|---|---|---
main.dol | 33.062035% | 1329316 | 4020672
main.dol | 33.071686% | 1329704 | 4020672
RELs | 33.385425% | 3839432 | 11500324
Total | 33.301652% | 5168748 | 15520996
Total | 33.304151% | 5169136 | 15520996
## RELs
@@ -1,18 +0,0 @@
lbl_801C4D54:
/* 801C4D54 3C E0 80 3A */ lis r7, __vt__12dDlst_base_c@ha /* 0x803A6F88@ha */
/* 801C4D58 38 07 6F 88 */ addi r0, r7, __vt__12dDlst_base_c@l /* 0x803A6F88@l */
/* 801C4D5C 90 03 00 00 */ stw r0, 0(r3)
/* 801C4D60 3C E0 80 3C */ lis r7, __vt__15dMenu_Fishing_c@ha /* 0x803BD074@ha */
/* 801C4D64 38 07 D0 74 */ addi r0, r7, __vt__15dMenu_Fishing_c@l /* 0x803BD074@l */
/* 801C4D68 90 03 00 00 */ stw r0, 0(r3)
/* 801C4D6C 90 83 00 04 */ stw r4, 4(r3)
/* 801C4D70 38 80 00 00 */ li r4, 0
/* 801C4D74 90 83 00 08 */ stw r4, 8(r3)
/* 801C4D78 90 83 00 14 */ stw r4, 0x14(r3)
/* 801C4D7C 90 A3 00 0C */ stw r5, 0xc(r3)
/* 801C4D80 90 C3 00 10 */ stw r6, 0x10(r3)
/* 801C4D84 38 00 00 01 */ li r0, 1
/* 801C4D88 98 03 01 FA */ stb r0, 0x1fa(r3)
/* 801C4D8C 98 83 01 FB */ stb r4, 0x1fb(r3)
/* 801C4D90 B0 83 01 F8 */ sth r4, 0x1f8(r3)
/* 801C4D94 4E 80 00 20 */ blr
@@ -1,28 +0,0 @@
lbl_801C504C:
/* 801C504C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 801C5050 7C 08 02 A6 */ mflr r0
/* 801C5054 90 01 00 14 */ stw r0, 0x14(r1)
/* 801C5058 93 E1 00 0C */ stw r31, 0xc(r1)
/* 801C505C 7C 7F 1B 78 */ mr r31, r3
/* 801C5060 38 60 00 2C */ li r3, 0x2c
/* 801C5064 48 10 9B E9 */ bl __nw__FUl
/* 801C5068 7C 60 1B 79 */ or. r0, r3, r3
/* 801C506C 41 82 00 0C */ beq lbl_801C5078
/* 801C5070 48 08 4B B1 */ bl __ct__12dMsgString_cFv
/* 801C5074 7C 60 1B 78 */ mr r0, r3
lbl_801C5078:
/* 801C5078 90 1F 01 F4 */ stw r0, 0x1f4(r31)
/* 801C507C 7F E3 FB 78 */ mr r3, r31
/* 801C5080 48 00 05 59 */ bl screenSetBase__15dMenu_Fishing_cFv
/* 801C5084 7F E3 FB 78 */ mr r3, r31
/* 801C5088 48 00 0C B5 */ bl screenSetDoIcon__15dMenu_Fishing_cFv
/* 801C508C 7F E3 FB 78 */ mr r3, r31
/* 801C5090 38 80 00 01 */ li r4, 1
/* 801C5094 48 00 11 7D */ bl setHIO__15dMenu_Fishing_cFb
/* 801C5098 7F E3 FB 78 */ mr r3, r31
/* 801C509C 48 00 01 91 */ bl init__15dMenu_Fishing_cFv
/* 801C50A0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 801C50A4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 801C50A8 7C 08 03 A6 */ mtlr r0
/* 801C50AC 38 21 00 10 */ addi r1, r1, 0x10
/* 801C50B0 4E 80 00 20 */ blr
@@ -1,21 +0,0 @@
lbl_801C6018:
/* 801C6018 2C 04 00 00 */ cmpwi r4, 0
/* 801C601C 40 80 00 08 */ bge lbl_801C6024
/* 801C6020 1C 84 FF FF */ mulli r4, r4, -1
lbl_801C6024:
/* 801C6024 2C 04 03 E8 */ cmpwi r4, 0x3e8
/* 801C6028 41 80 00 08 */ blt lbl_801C6030
/* 801C602C 38 80 03 E7 */ li r4, 0x3e7
lbl_801C6030:
/* 801C6030 2C 04 00 64 */ cmpwi r4, 0x64
/* 801C6034 41 80 00 0C */ blt lbl_801C6040
/* 801C6038 38 60 00 03 */ li r3, 3
/* 801C603C 4E 80 00 20 */ blr
lbl_801C6040:
/* 801C6040 38 00 00 0A */ li r0, 0xa
/* 801C6044 7C 85 FE 70 */ srawi r5, r4, 0x1f
/* 801C6048 54 03 0F FE */ srwi r3, r0, 0x1f
/* 801C604C 7C 00 20 10 */ subfc r0, r0, r4
/* 801C6050 7C 65 19 14 */ adde r3, r5, r3
/* 801C6054 38 63 00 01 */ addi r3, r3, 1
/* 801C6058 4E 80 00 20 */ blr
@@ -1,12 +0,0 @@
lbl_801C5204:
/* 801C5204 80 63 00 14 */ lwz r3, 0x14(r3)
/* 801C5208 28 03 00 00 */ cmplwi r3, 0
/* 801C520C 41 82 00 18 */ beq lbl_801C5224
/* 801C5210 88 03 00 0C */ lbz r0, 0xc(r3)
/* 801C5214 2C 00 00 00 */ cmpwi r0, 0
/* 801C5218 40 82 00 0C */ bne lbl_801C5224
/* 801C521C 38 60 00 00 */ li r3, 0
/* 801C5220 4E 80 00 20 */ blr
lbl_801C5224:
/* 801C5224 38 60 00 01 */ li r3, 1
/* 801C5228 4E 80 00 20 */ blr
@@ -1,16 +0,0 @@
lbl_801C556C:
/* 801C556C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 801C5570 7C 08 02 A6 */ mflr r0
/* 801C5574 90 01 00 14 */ stw r0, 0x14(r1)
/* 801C5578 93 E1 00 0C */ stw r31, 0xc(r1)
/* 801C557C 7C 7F 1B 78 */ mr r31, r3
/* 801C5580 38 80 00 00 */ li r4, 0
/* 801C5584 48 00 09 35 */ bl setAButtonString__15dMenu_Fishing_cFUs
/* 801C5588 7F E3 FB 78 */ mr r3, r31
/* 801C558C 38 80 03 F9 */ li r4, 0x3f9
/* 801C5590 48 00 09 D9 */ bl setBButtonString__15dMenu_Fishing_cFUs
/* 801C5594 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 801C5598 80 01 00 14 */ lwz r0, 0x14(r1)
/* 801C559C 7C 08 03 A6 */ mtlr r0
/* 801C55A0 38 21 00 10 */ addi r1, r1, 0x10
/* 801C55A4 4E 80 00 20 */ blr
@@ -1,13 +0,0 @@
lbl_801C55A8:
/* 801C55A8 80 8D 86 48 */ lwz r4, mFader__13mDoGph_gInf_c(r13)
/* 801C55AC 80 04 00 04 */ lwz r0, 4(r4)
/* 801C55B0 2C 00 00 01 */ cmpwi r0, 1
/* 801C55B4 4C 82 00 20 */ bnelr
/* 801C55B8 3C 80 80 3E */ lis r4, m_cpadInfo__8mDoCPd_c@ha /* 0x803DD2E8@ha */
/* 801C55BC 38 84 D2 E8 */ addi r4, r4, m_cpadInfo__8mDoCPd_c@l /* 0x803DD2E8@l */
/* 801C55C0 80 04 00 34 */ lwz r0, 0x34(r4)
/* 801C55C4 54 00 05 AD */ rlwinm. r0, r0, 0, 0x16, 0x16
/* 801C55C8 4D 82 00 20 */ beqlr
/* 801C55CC 38 00 00 03 */ li r0, 3
/* 801C55D0 98 03 01 FA */ stb r0, 0x1fa(r3)
/* 801C55D4 4E 80 00 20 */ blr
+4 -3
View File
@@ -5,9 +5,10 @@
#include "d/d_lib.h"
#include "d/d_select_cursor.h"
#include "dolphin/types.h"
#include "m_Do/m_Do_dvd_thread.h"
#include "d/msg/d_msg_string.h"
class mDoDvdThd_mountArchive_c;
class dMsgString_c;
class dMenu_Fishing_c : public dDlst_base_c {
public:
@@ -25,7 +26,7 @@ public:
/* 801C5D3C */ void screenSetDoIcon();
/* 801C5EB8 */ void setAButtonString(u16);
/* 801C5F68 */ void setBButtonString(u16);
/* 801C6018 */ void getFigure(int);
/* 801C6018 */ int getFigure(int);
/* 801C605C */ void setFishParam(int, u16, u8);
/* 801C6210 */ void setHIO(bool);
+64 -77
View File
@@ -1,38 +1,14 @@
//
// Generated By: dol2asm
// Translation Unit: d/menu/d_menu_fishing
//
/**
* d_menu_fishing.cpp
* Fish Journal
*/
#include "d/menu/d_menu_fishing.h"
#include "dol2asm.h"
#include "dolphin/types.h"
#include "m_Do/m_Do_controller_pad.h"
#include "m_Do/m_Do_graphic.h"
//
// Types:
//
struct mDoGph_gInf_c {
static u8 mFader[4];
};
struct mDoDvdThd_mountArchive_c {
/* 80015E14 */ void create(char const*, u8, JKRHeap*);
};
struct mDoCPd_c {
static u8 m_cpadInfo[256];
};
struct dMsgString_c {
/* 80249C20 */ dMsgString_c();
/* 80249D28 */ ~dMsgString_c();
};
struct JMSMesgEntry_c {};
struct dMeter2Info_c {
/* 8021C544 */ void getStringKanji(u32, char*, JMSMesgEntry_c*);
};
//
// Forward References:
@@ -102,9 +78,9 @@ extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" extern void* __vt__12dDlst_base_c[3];
extern "C" u8 m_cpadInfo__8mDoCPd_c[256];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u8 g_drawHIO[3880];
extern "C" extern u8 g_meter2_info[248];
extern "C" u8 mFader__13mDoGph_gInf_c[4];
//
@@ -161,14 +137,17 @@ SECTION_DATA extern void* __vt__15dMenu_Fishing_c[4 + 3 /* padding */] = {
/* 801C4D54-801C4D98 1BF694 0044+00 0/0 2/2 0/0 .text
* __ct__15dMenu_Fishing_cFP10JKRExpHeapP9STControlP10CSTControl */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dMenu_Fishing_c::dMenu_Fishing_c(JKRExpHeap* param_0, STControl* param_1, CSTControl* param_2) {
nofralloc
#include "asm/d/menu/d_menu_fishing/__ct__15dMenu_Fishing_cFP10JKRExpHeapP9STControlP10CSTControl.s"
dMenu_Fishing_c::dMenu_Fishing_c(JKRExpHeap* heap, STControl* stControl, CSTControl* cstControl) {
mpHeap = heap;
field_0x8 = 0;
field_0x14 = 0;
mpStick = stControl;
mpCStick = cstControl;
mStatus = 1;
field_0x1fb = 0;
field_0x1f8 = 0;
}
#pragma pop
/* 801C4D98-801C504C 1BF6D8 02B4+00 1/0 0/0 0/0 .text __dt__15dMenu_Fishing_cFv */
#pragma push
@@ -178,17 +157,16 @@ asm dMenu_Fishing_c::~dMenu_Fishing_c() {
nofralloc
#include "asm/d/menu/d_menu_fishing/__dt__15dMenu_Fishing_cFv.s"
}
#pragma pop
#pragma pop
/* 801C504C-801C50B4 1BF98C 0068+00 1/1 0/0 0/0 .text _create__15dMenu_Fishing_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMenu_Fishing_c::_create() {
nofralloc
#include "asm/d/menu/d_menu_fishing/_create__15dMenu_Fishing_cFv.s"
void dMenu_Fishing_c::_create() {
mpString = new dMsgString_c();
screenSetBase();
screenSetDoIcon();
setHIO(true);
init();
}
#pragma pop
/* 801C50B4-801C514C 1BF9F4 0098+00 0/0 2/2 0/0 .text _move__15dMenu_Fishing_cFv */
#pragma push
@@ -216,6 +194,18 @@ SECTION_SDATA2 static f32 lit_3905 = 608.0f;
SECTION_SDATA2 static f32 lit_3906 = 448.0f;
/* 801C514C-801C5204 1BFA8C 00B8+00 1/1 1/1 0/0 .text _draw__15dMenu_Fishing_cFv */
#ifdef NONMATCHING
// u8 lit_3904
void dMenu_Fishing_c::_draw() {
if (field_0x8) {
J2DGrafContext* pJVar1 = dComIfGp_getCurrentGrafPort();
mpBlackTex->setAlpha(0xff);
mpBlackTex->draw(0,0,lit_3905,lit_3906,0,0,0);
mpScreen->draw(0,0,pJVar1);
mpIconScreen->draw(0,0,pJVar1);
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -224,16 +214,15 @@ asm void dMenu_Fishing_c::_draw() {
#include "asm/d/menu/d_menu_fishing/_draw__15dMenu_Fishing_cFv.s"
}
#pragma pop
#endif
/* 801C5204-801C522C 1BFB44 0028+00 0/0 2/2 0/0 .text isSync__15dMenu_Fishing_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm bool dMenu_Fishing_c::isSync() {
nofralloc
#include "asm/d/menu/d_menu_fishing/isSync__15dMenu_Fishing_cFv.s"
bool dMenu_Fishing_c::isSync() {
if (field_0x14 && !field_0x14->sync()) {
return false;
}
return true;
}
#pragma pop
/* 801C522C-801C52E4 1BFB6C 00B8+00 1/1 0/0 0/0 .text init__15dMenu_Fishing_cFv */
#pragma push
@@ -243,7 +232,7 @@ asm void dMenu_Fishing_c::init() {
nofralloc
#include "asm/d/menu/d_menu_fishing/init__15dMenu_Fishing_cFv.s"
}
#pragma pop
#pragma pop
/* ############################################################################################## */
/* 80396068-80396068 0226C8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
@@ -279,24 +268,17 @@ asm void dMenu_Fishing_c::_close() {
#pragma pop
/* 801C556C-801C55A8 1BFEAC 003C+00 1/0 0/0 0/0 .text wait_init__15dMenu_Fishing_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMenu_Fishing_c::wait_init() {
nofralloc
#include "asm/d/menu/d_menu_fishing/wait_init__15dMenu_Fishing_cFv.s"
void dMenu_Fishing_c::wait_init() {
setAButtonString(0);
setBButtonString(0x3f9);
}
#pragma pop
/* 801C55A8-801C55D8 1BFEE8 0030+00 1/0 0/0 0/0 .text wait_move__15dMenu_Fishing_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMenu_Fishing_c::wait_move() {
nofralloc
#include "asm/d/menu/d_menu_fishing/wait_move__15dMenu_Fishing_cFv.s"
void dMenu_Fishing_c::wait_move() {
if (mDoGph_gInf_c::getFader()->getStatus() == 1 && mDoCPd_c::getTrigB(0)) {
mStatus = 3;
}
}
#pragma pop
/* ############################################################################################## */
/* 80395D90-80395DC0 0223F0 0030+00 1/1 0/0 0/0 .rodata fish_n$4060 */
@@ -524,14 +506,19 @@ asm void dMenu_Fishing_c::setBButtonString(u16 param_0) {
#pragma pop
/* 801C6018-801C605C 1C0958 0044+00 1/1 0/0 0/0 .text getFigure__15dMenu_Fishing_cFi */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dMenu_Fishing_c::getFigure(int param_0) {
nofralloc
#include "asm/d/menu/d_menu_fishing/getFigure__15dMenu_Fishing_cFi.s"
int dMenu_Fishing_c::getFigure(int param_0) {
if (param_0 < 0) {
param_0 *= -1;
}
if (1000 <= param_0) {
param_0 = 999;
}
if (100 <= param_0) {
return 3;
}
return (param_0 >= 10) ? 2 : 1;
}
#pragma pop
/* 801C605C-801C6210 1C099C 01B4+00 1/1 0/0 0/0 .text setFishParam__15dMenu_Fishing_cFiUsUc */
#pragma push
@@ -562,7 +549,7 @@ extern "C" asm void draw__15dMenu_Fishing_cFv() {
nofralloc
#include "asm/d/menu/d_menu_fishing/draw__15dMenu_Fishing_cFv.s"
}
#pragma pop
#pragma pop
/* 801C65BC-801C65F8 1C0EFC 003C+00 0/0 1/0 0/0 .text __sinit_d_menu_fishing_cpp */
#pragma push