split f_ap_game, fapGm_Execute ok, more changes to m_Do_main

This commit is contained in:
Pheenoh 2021-02-13 15:23:18 -05:00
parent e08abacc1d
commit 63d4e517f7
No known key found for this signature in database
GPG Key ID: 4312662758CE7D5A
18 changed files with 291 additions and 197 deletions

View File

@ -1,161 +0,0 @@
.include "macros.inc"
.section .text, "ax" # 80018944
.global fapGm_HIO_c
fapGm_HIO_c:
/* 80018944 00015884 3C 80 80 3A */ lis r4, lbl_803A35A0@ha
/* 80018948 00015888 38 04 35 A0 */ addi r0, r4, lbl_803A35A0@l
/* 8001894C 0001588C 90 03 00 00 */ stw r0, 0(r3)
/* 80018950 00015890 38 00 FF FF */ li r0, -1
/* 80018954 00015894 90 03 00 08 */ stw r0, 8(r3)
/* 80018958 00015898 90 03 00 24 */ stw r0, 0x24(r3)
/* 8001895C 0001589C 90 03 00 28 */ stw r0, 0x28(r3)
/* 80018960 000158A0 90 03 00 2C */ stw r0, 0x2c(r3)
/* 80018964 000158A4 90 03 00 30 */ stw r0, 0x30(r3)
/* 80018968 000158A8 38 80 00 01 */ li r4, 1
/* 8001896C 000158AC 98 83 00 14 */ stb r4, 0x14(r3)
/* 80018970 000158B0 88 0D 80 00 */ lbz r0, lbl_80450580-_SDA_BASE_(r13)
/* 80018974 000158B4 7C 00 07 75 */ extsb. r0, r0
/* 80018978 000158B8 41 82 00 10 */ beq lbl_80018988
/* 8001897C 000158BC 98 83 00 15 */ stb r4, 0x15(r3)
/* 80018980 000158C0 98 83 00 16 */ stb r4, 0x16(r3)
/* 80018984 000158C4 48 00 00 14 */ b lbl_80018998
lbl_80018988:
/* 80018988 000158C8 38 00 00 00 */ li r0, 0
/* 8001898C 000158CC 98 03 00 15 */ stb r0, 0x15(r3)
/* 80018990 000158D0 98 03 00 16 */ stb r0, 0x16(r3)
/* 80018994 000158D4 98 03 00 17 */ stb r0, 0x17(r3)
lbl_80018998:
/* 80018998 000158D8 38 00 00 01 */ li r0, 1
/* 8001899C 000158DC 98 03 00 17 */ stb r0, 0x17(r3)
/* 800189A0 000158E0 98 03 00 18 */ stb r0, 0x18(r3)
/* 800189A4 000158E4 38 A0 00 00 */ li r5, 0
/* 800189A8 000158E8 98 A3 00 19 */ stb r5, 0x19(r3)
/* 800189AC 000158EC 98 A3 00 1A */ stb r5, 0x1a(r3)
/* 800189B0 000158F0 38 80 00 FF */ li r4, 0xff
/* 800189B4 000158F4 98 83 00 08 */ stb r4, 8(r3)
/* 800189B8 000158F8 98 83 00 09 */ stb r4, 9(r3)
/* 800189BC 000158FC 98 83 00 0A */ stb r4, 0xa(r3)
/* 800189C0 00015900 98 83 00 0B */ stb r4, 0xb(r3)
/* 800189C4 00015904 C0 02 81 C0 */ lfs f0, lbl_80451BC0-_SDA2_BASE_(r2)
/* 800189C8 00015908 D0 03 00 0C */ stfs f0, 0xc(r3)
/* 800189CC 0001590C C0 02 81 C4 */ lfs f0, lbl_80451BC4-_SDA2_BASE_(r2)
/* 800189D0 00015910 D0 03 00 10 */ stfs f0, 0x10(r3)
/* 800189D4 00015914 98 83 00 24 */ stb r4, 0x24(r3)
/* 800189D8 00015918 38 00 00 96 */ li r0, 0x96
/* 800189DC 0001591C 98 03 00 25 */ stb r0, 0x25(r3)
/* 800189E0 00015920 98 A3 00 26 */ stb r5, 0x26(r3)
/* 800189E4 00015924 98 83 00 27 */ stb r4, 0x27(r3)
/* 800189E8 00015928 98 83 00 28 */ stb r4, 0x28(r3)
/* 800189EC 0001592C 38 00 00 78 */ li r0, 0x78
/* 800189F0 00015930 98 03 00 29 */ stb r0, 0x29(r3)
/* 800189F4 00015934 98 A3 00 2A */ stb r5, 0x2a(r3)
/* 800189F8 00015938 98 83 00 2B */ stb r4, 0x2b(r3)
/* 800189FC 0001593C 98 A3 00 2C */ stb r5, 0x2c(r3)
/* 80018A00 00015940 98 A3 00 2D */ stb r5, 0x2d(r3)
/* 80018A04 00015944 98 A3 00 2E */ stb r5, 0x2e(r3)
/* 80018A08 00015948 98 83 00 2F */ stb r4, 0x2f(r3)
/* 80018A0C 0001594C 98 A3 00 30 */ stb r5, 0x30(r3)
/* 80018A10 00015950 98 A3 00 31 */ stb r5, 0x31(r3)
/* 80018A14 00015954 98 A3 00 32 */ stb r5, 0x32(r3)
/* 80018A18 00015958 98 83 00 33 */ stb r4, 0x33(r3)
/* 80018A1C 0001595C B0 A3 00 34 */ sth r5, 0x34(r3)
/* 80018A20 00015960 38 00 00 0A */ li r0, 0xa
/* 80018A24 00015964 B0 03 00 36 */ sth r0, 0x36(r3)
/* 80018A28 00015968 38 00 00 1B */ li r0, 0x1b
/* 80018A2C 0001596C B0 03 00 3C */ sth r0, 0x3c(r3)
/* 80018A30 00015970 B0 A3 00 38 */ sth r5, 0x38(r3)
/* 80018A34 00015974 B0 A3 00 3A */ sth r5, 0x3a(r3)
/* 80018A38 00015978 38 00 00 82 */ li r0, 0x82
/* 80018A3C 0001597C 98 03 00 3E */ stb r0, 0x3e(r3)
/* 80018A40 00015980 4E 80 00 20 */ blr
.global fapGm_After
fapGm_After:
/* 80018A44 00015984 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80018A48 00015988 7C 08 02 A6 */ mflr r0
/* 80018A4C 0001598C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80018A50 00015990 48 00 63 C1 */ bl fopScnM_Management
/* 80018A54 00015994 48 00 5B FD */ bl fopOvlpM_Management
/* 80018A58 00015998 48 00 59 1D */ bl fopCamM_Management
/* 80018A5C 0001599C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80018A60 000159A0 7C 08 03 A6 */ mtlr r0
/* 80018A64 000159A4 38 21 00 10 */ addi r1, r1, 0x10
/* 80018A68 000159A8 4E 80 00 20 */ blr
.global fapGm_Execute
fapGm_Execute:
/* 80018A6C 000159AC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80018A70 000159B0 7C 08 02 A6 */ mflr r0
/* 80018A74 000159B4 90 01 00 14 */ stw r0, 0x14(r1)
/* 80018A78 000159B8 38 60 00 00 */ li r3, 0
.global fapGm_After
/* 80018A7C 000159BC 3C 80 80 02 */ lis r4, fapGm_After@ha
.global fapGm_After
/* 80018A80 000159C0 38 84 8A 44 */ addi r4, r4, fapGm_After@l
/* 80018A84 000159C4 48 00 96 D5 */ bl fpcM_Management__FPFv_vPFv_v
/* 80018A88 000159C8 38 60 00 00 */ li r3, 0
/* 80018A8C 000159CC 48 24 D3 91 */ bl cCt_Counter
/* 80018A90 000159D0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80018A94 000159D4 7C 08 03 A6 */ mtlr r0
/* 80018A98 000159D8 38 21 00 10 */ addi r1, r1, 0x10
/* 80018A9C 000159DC 4E 80 00 20 */ blr
.global fapGm_Create
fapGm_Create:
/* 80018AA0 000159E0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80018AA4 000159E4 7C 08 02 A6 */ mflr r0
/* 80018AA8 000159E8 90 01 00 14 */ stw r0, 0x14(r1)
/* 80018AAC 000159EC 48 00 98 0D */ bl fpcM_Init
/* 80018AB0 000159F0 48 00 63 81 */ bl fopScnM_Init
/* 80018AB4 000159F4 48 00 5C 35 */ bl fopOvlpM_Init
/* 80018AB8 000159F8 48 00 58 C1 */ bl fopCamM_Init
/* 80018ABC 000159FC 48 00 7A 5D */ bl fopDwTg_CreateQueue
/* 80018AC0 00015A00 38 00 FF FF */ li r0, -1
/* 80018AC4 00015A04 3C 60 80 3F */ lis r3, g_HIO@ha
/* 80018AC8 00015A08 38 63 1B BC */ addi r3, r3, g_HIO@l
/* 80018ACC 00015A0C 98 03 00 04 */ stb r0, 4(r3)
/* 80018AD0 00015A10 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80018AD4 00015A14 7C 08 03 A6 */ mtlr r0
/* 80018AD8 00015A18 38 21 00 10 */ addi r1, r1, 0x10
/* 80018ADC 00015A1C 4E 80 00 20 */ blr
.global fapGm_HIO_c_NS_dtor
fapGm_HIO_c_NS_dtor:
/* 80018AE0 00015A20 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80018AE4 00015A24 7C 08 02 A6 */ mflr r0
/* 80018AE8 00015A28 90 01 00 14 */ stw r0, 0x14(r1)
/* 80018AEC 00015A2C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80018AF0 00015A30 7C 7F 1B 79 */ or. r31, r3, r3
/* 80018AF4 00015A34 41 82 00 1C */ beq lbl_80018B10
/* 80018AF8 00015A38 3C A0 80 3A */ lis r5, lbl_803A35A0@ha
/* 80018AFC 00015A3C 38 05 35 A0 */ addi r0, r5, lbl_803A35A0@l
/* 80018B00 00015A40 90 1F 00 00 */ stw r0, 0(r31)
/* 80018B04 00015A44 7C 80 07 35 */ extsh. r0, r4
/* 80018B08 00015A48 40 81 00 08 */ ble lbl_80018B10
/* 80018B0C 00015A4C 48 2B 62 31 */ bl __dl__FPv
lbl_80018B10:
/* 80018B10 00015A50 7F E3 FB 78 */ mr r3, r31
/* 80018B14 00015A54 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80018B18 00015A58 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80018B1C 00015A5C 7C 08 03 A6 */ mtlr r0
/* 80018B20 00015A60 38 21 00 10 */ addi r1, r1, 0x10
/* 80018B24 00015A64 4E 80 00 20 */ blr
/* 80018B28 00015A68 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80018B2C 00015A6C 7C 08 02 A6 */ mflr r0
/* 80018B30 00015A70 90 01 00 14 */ stw r0, 0x14(r1)
/* 80018B34 00015A74 3C 60 80 3F */ lis r3, g_HIO@ha
/* 80018B38 00015A78 38 63 1B BC */ addi r3, r3, g_HIO@l
/* 80018B3C 00015A7C 4B FF FE 09 */ bl fapGm_HIO_c
.global fapGm_HIO_c_NS_dtor
/* 80018B40 00015A80 3C 80 80 02 */ lis r4, fapGm_HIO_c_NS_dtor@ha
.global fapGm_HIO_c_NS_dtor
/* 80018B44 00015A84 38 84 8A E0 */ addi r4, r4, fapGm_HIO_c_NS_dtor@l
/* 80018B48 00015A88 3C A0 80 3F */ lis r5, lbl_803F1BB0@ha
/* 80018B4C 00015A8C 38 A5 1B B0 */ addi r5, r5, lbl_803F1BB0@l
/* 80018B50 00015A90 48 34 90 D5 */ bl func_80361C24
/* 80018B54 00015A94 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80018B58 00015A98 7C 08 03 A6 */ mtlr r0
/* 80018B5C 00015A9C 38 21 00 10 */ addi r1, r1, 0x10
/* 80018B60 00015AA0 4E 80 00 20 */ blr

View File

@ -10,6 +10,23 @@
typedef u32 EStickMode;
typedef u32 EWhichStick;
namespace CButton {
enum {
DPAD_LEFT = 0x0001,
DPAD_RIGHT = 0x0002,
DPAD_DOWN = 0x0004,
DPAD_UP = 0x0008,
Z = 0x0010,
R = 0x0020,
L = 0x0040,
A = 0x0100,
B = 0x0200,
X = 0x0400,
Y = 0x0800,
START = 0x1000,
};
}
struct JUTGamePad : public JKRDisposer {
public:
// typedef u32 EPadPort;

View File

@ -0,0 +1,6 @@
#ifndef SCOMPONENT_C_COUNTER_H_
#define SCOMPONENT_C_COUNTER_H_
void cCt_Counter(int resetCounter1);
#endif

View File

@ -0,0 +1,66 @@
/* 80018944 00015884 3C 80 80 3A */ lis r4, lbl_803A35A0@ha
/* 80018948 00015888 38 04 35 A0 */ addi r0, r4, lbl_803A35A0@l
/* 8001894C 0001588C 90 03 00 00 */ stw r0, 0(r3)
/* 80018950 00015890 38 00 FF FF */ li r0, -1
/* 80018954 00015894 90 03 00 08 */ stw r0, 8(r3)
/* 80018958 00015898 90 03 00 24 */ stw r0, 0x24(r3)
/* 8001895C 0001589C 90 03 00 28 */ stw r0, 0x28(r3)
/* 80018960 000158A0 90 03 00 2C */ stw r0, 0x2c(r3)
/* 80018964 000158A4 90 03 00 30 */ stw r0, 0x30(r3)
/* 80018968 000158A8 38 80 00 01 */ li r4, 1
/* 8001896C 000158AC 98 83 00 14 */ stb r4, 0x14(r3)
/* 80018970 000158B0 88 0D 80 00 */ lbz r0, lbl_80450580-_SDA_BASE_(r13)
/* 80018974 000158B4 7C 00 07 75 */ extsb. r0, r0
/* 80018978 000158B8 41 82 00 10 */ beq lbl_80018988
/* 8001897C 000158BC 98 83 00 15 */ stb r4, 0x15(r3)
/* 80018980 000158C0 98 83 00 16 */ stb r4, 0x16(r3)
/* 80018984 000158C4 48 00 00 14 */ b lbl_80018998
lbl_80018988:
/* 80018988 000158C8 38 00 00 00 */ li r0, 0
/* 8001898C 000158CC 98 03 00 15 */ stb r0, 0x15(r3)
/* 80018990 000158D0 98 03 00 16 */ stb r0, 0x16(r3)
/* 80018994 000158D4 98 03 00 17 */ stb r0, 0x17(r3)
lbl_80018998:
/* 80018998 000158D8 38 00 00 01 */ li r0, 1
/* 8001899C 000158DC 98 03 00 17 */ stb r0, 0x17(r3)
/* 800189A0 000158E0 98 03 00 18 */ stb r0, 0x18(r3)
/* 800189A4 000158E4 38 A0 00 00 */ li r5, 0
/* 800189A8 000158E8 98 A3 00 19 */ stb r5, 0x19(r3)
/* 800189AC 000158EC 98 A3 00 1A */ stb r5, 0x1a(r3)
/* 800189B0 000158F0 38 80 00 FF */ li r4, 0xff
/* 800189B4 000158F4 98 83 00 08 */ stb r4, 8(r3)
/* 800189B8 000158F8 98 83 00 09 */ stb r4, 9(r3)
/* 800189BC 000158FC 98 83 00 0A */ stb r4, 0xa(r3)
/* 800189C0 00015900 98 83 00 0B */ stb r4, 0xb(r3)
/* 800189C4 00015904 C0 02 81 C0 */ lfs f0, lbl_80451BC0-_SDA2_BASE_(r2)
/* 800189C8 00015908 D0 03 00 0C */ stfs f0, 0xc(r3)
/* 800189CC 0001590C C0 02 81 C4 */ lfs f0, lbl_80451BC4-_SDA2_BASE_(r2)
/* 800189D0 00015910 D0 03 00 10 */ stfs f0, 0x10(r3)
/* 800189D4 00015914 98 83 00 24 */ stb r4, 0x24(r3)
/* 800189D8 00015918 38 00 00 96 */ li r0, 0x96
/* 800189DC 0001591C 98 03 00 25 */ stb r0, 0x25(r3)
/* 800189E0 00015920 98 A3 00 26 */ stb r5, 0x26(r3)
/* 800189E4 00015924 98 83 00 27 */ stb r4, 0x27(r3)
/* 800189E8 00015928 98 83 00 28 */ stb r4, 0x28(r3)
/* 800189EC 0001592C 38 00 00 78 */ li r0, 0x78
/* 800189F0 00015930 98 03 00 29 */ stb r0, 0x29(r3)
/* 800189F4 00015934 98 A3 00 2A */ stb r5, 0x2a(r3)
/* 800189F8 00015938 98 83 00 2B */ stb r4, 0x2b(r3)
/* 800189FC 0001593C 98 A3 00 2C */ stb r5, 0x2c(r3)
/* 80018A00 00015940 98 A3 00 2D */ stb r5, 0x2d(r3)
/* 80018A04 00015944 98 A3 00 2E */ stb r5, 0x2e(r3)
/* 80018A08 00015948 98 83 00 2F */ stb r4, 0x2f(r3)
/* 80018A0C 0001594C 98 A3 00 30 */ stb r5, 0x30(r3)
/* 80018A10 00015950 98 A3 00 31 */ stb r5, 0x31(r3)
/* 80018A14 00015954 98 A3 00 32 */ stb r5, 0x32(r3)
/* 80018A18 00015958 98 83 00 33 */ stb r4, 0x33(r3)
/* 80018A1C 0001595C B0 A3 00 34 */ sth r5, 0x34(r3)
/* 80018A20 00015960 38 00 00 0A */ li r0, 0xa
/* 80018A24 00015964 B0 03 00 36 */ sth r0, 0x36(r3)
/* 80018A28 00015968 38 00 00 1B */ li r0, 0x1b
/* 80018A2C 0001596C B0 03 00 3C */ sth r0, 0x3c(r3)
/* 80018A30 00015970 B0 A3 00 38 */ sth r5, 0x38(r3)
/* 80018A34 00015974 B0 A3 00 3A */ sth r5, 0x3a(r3)
/* 80018A38 00015978 38 00 00 82 */ li r0, 0x82
/* 80018A3C 0001597C 98 03 00 3E */ stb r0, 0x3e(r3)
/* 80018A40 00015980 4E 80 00 20 */ blr

View File

@ -0,0 +1,10 @@
/* 80018A44 00015984 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80018A48 00015988 7C 08 02 A6 */ mflr r0
/* 80018A4C 0001598C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80018A50 00015990 48 00 63 C1 */ bl fopScnM_Management
/* 80018A54 00015994 48 00 5B FD */ bl fopOvlpM_Management
/* 80018A58 00015998 48 00 59 1D */ bl fopCamM_Management
/* 80018A5C 0001599C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80018A60 000159A0 7C 08 03 A6 */ mtlr r0
/* 80018A64 000159A4 38 21 00 10 */ addi r1, r1, 0x10
/* 80018A68 000159A8 4E 80 00 20 */ blr

View File

@ -0,0 +1,15 @@
/* 80018A6C 000159AC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80018A70 000159B0 7C 08 02 A6 */ mflr r0
/* 80018A74 000159B4 90 01 00 14 */ stw r0, 0x14(r1)
/* 80018A78 000159B8 38 60 00 00 */ li r3, 0
/*.global fapGm_After*/
/* 80018A7C 000159BC 3C 80 80 02 */ lis r4, fapGm_After@ha
/*.global fapGm_After*/
/* 80018A80 000159C0 38 84 8A 44 */ addi r4, r4, fapGm_After@l
/* 80018A84 000159C4 48 00 96 D5 */ bl fpcM_Management__FPFv_vPFv_v
/* 80018A88 000159C8 38 60 00 00 */ li r3, 0
/* 80018A8C 000159CC 48 24 D3 91 */ bl cCt_Counter
/* 80018A90 000159D0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80018A94 000159D4 7C 08 03 A6 */ mtlr r0
/* 80018A98 000159D8 38 21 00 10 */ addi r1, r1, 0x10
/* 80018A9C 000159DC 4E 80 00 20 */ blr

View File

@ -0,0 +1,16 @@
/* 80018AA0 000159E0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80018AA4 000159E4 7C 08 02 A6 */ mflr r0
/* 80018AA8 000159E8 90 01 00 14 */ stw r0, 0x14(r1)
/* 80018AAC 000159EC 48 00 98 0D */ bl fpcM_Init
/* 80018AB0 000159F0 48 00 63 81 */ bl fopScnM_Init
/* 80018AB4 000159F4 48 00 5C 35 */ bl fopOvlpM_Init
/* 80018AB8 000159F8 48 00 58 C1 */ bl fopCamM_Init
/* 80018ABC 000159FC 48 00 7A 5D */ bl fopDwTg_CreateQueue
/* 80018AC0 00015A00 38 00 FF FF */ li r0, -1
/* 80018AC4 00015A04 3C 60 80 3F */ lis r3, g_HIO@ha
/* 80018AC8 00015A08 38 63 1B BC */ addi r3, r3, g_HIO@l
/* 80018ACC 00015A0C 98 03 00 04 */ stb r0, 4(r3)
/* 80018AD0 00015A10 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80018AD4 00015A14 7C 08 03 A6 */ mtlr r0
/* 80018AD8 00015A18 38 21 00 10 */ addi r1, r1, 0x10
/* 80018ADC 00015A1C 4E 80 00 20 */ blr

View File

@ -0,0 +1,19 @@
/* 80018AE0 00015A20 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80018AE4 00015A24 7C 08 02 A6 */ mflr r0
/* 80018AE8 00015A28 90 01 00 14 */ stw r0, 0x14(r1)
/* 80018AEC 00015A2C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80018AF0 00015A30 7C 7F 1B 79 */ or. r31, r3, r3
/* 80018AF4 00015A34 41 82 00 1C */ beq lbl_80018B10
/* 80018AF8 00015A38 3C A0 80 3A */ lis r5, lbl_803A35A0@ha
/* 80018AFC 00015A3C 38 05 35 A0 */ addi r0, r5, lbl_803A35A0@l
/* 80018B00 00015A40 90 1F 00 00 */ stw r0, 0(r31)
/* 80018B04 00015A44 7C 80 07 35 */ extsh. r0, r4
/* 80018B08 00015A48 40 81 00 08 */ ble lbl_80018B10
/* 80018B0C 00015A4C 48 2B 62 31 */ bl __dl__FPv
lbl_80018B10:
/* 80018B10 00015A50 7F E3 FB 78 */ mr r3, r31
/* 80018B14 00015A54 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80018B18 00015A58 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80018B1C 00015A5C 7C 08 03 A6 */ mtlr r0
/* 80018B20 00015A60 38 21 00 10 */ addi r1, r1, 0x10
/* 80018B24 00015A64 4E 80 00 20 */ blr

View File

@ -0,0 +1,17 @@
/* 80018B28 00015A68 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80018B2C 00015A6C 7C 08 02 A6 */ mflr r0
/* 80018B30 00015A70 90 01 00 14 */ stw r0, 0x14(r1)
/* 80018B34 00015A74 3C 60 80 3F */ lis r3, g_HIO@ha
/* 80018B38 00015A78 38 63 1B BC */ addi r3, r3, g_HIO@l
/* 80018B3C 00015A7C 4B FF FE 09 */ bl fapGm_HIO_c
/*.global fapGm_HIO_c_NS_dtor*/
/* 80018B40 00015A80 3C 80 80 02 */ lis r4, fapGm_HIO_c_NS_dtor@ha
/*.global fapGm_HIO_c_NS_dtor*/
/* 80018B44 00015A84 38 84 8A E0 */ addi r4, r4, fapGm_HIO_c_NS_dtor@l
/* 80018B48 00015A88 3C A0 80 3F */ lis r5, lbl_803F1BB0@ha
/* 80018B4C 00015A8C 38 A5 1B B0 */ addi r5, r5, lbl_803F1BB0@l
/* 80018B50 00015A90 48 34 90 D5 */ bl func_80361C24
/* 80018B54 00015A94 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80018B58 00015A98 7C 08 03 A6 */ mtlr r0
/* 80018B5C 00015A9C 38 21 00 10 */ addi r1, r1, 0x10
/* 80018B60 00015AA0 4E 80 00 20 */ blr

View File

@ -0,0 +1 @@
// finishme

View File

@ -11,6 +11,7 @@
extern "C" {
typedef int (*FastCreateReqFunc)(void*);
typedef void (*fpcM_ManagementFunc)(void);
inline u32 fpcM_GetID(const void* pProc) {
return pProc != NULL ? ((base_process_class*)pProc)->mBsPcId : 0xFFFFFFFF;
@ -20,7 +21,7 @@ s32 fpcM_DrawIterater(cNdIt_MethodFunc pFunc);
void fpcM_Execute(void* pProc);
s32 fpcM_Delete(void* pProc);
BOOL fpcM_IsCreating(u32 pID);
// void fpcM_Management(unk_func pFunc1, unk_func pFunc2);
void fpcM_Management(fpcM_ManagementFunc pFunc1, fpcM_ManagementFunc pFunc2);
void fpcM_Init(void);
base_process_class* fpcM_FastCreate(s16 pProcTypeID, FastCreateReqFunc param_2, void* param_3,
void* pData);

View File

@ -8,7 +8,7 @@ extern u8 lbl_80379235[16];
extern char lbl_80379234[0x64];
extern u32 _sRumbleSupported;
extern u8 lbl_803A2EF4;
extern char lbl_803A2EE0[20];
extern char lbl_803A2EE0[16];
extern u8 lbl_80450B19;
struct g_HIO_struct;
extern g_HIO_struct g_HIO;

View File

@ -3374,6 +3374,7 @@ fopAcM_SetMax__FP10fopAc_ac_cfff
fopAcM_SetMin__FP10fopAc_ac_cfff
fopAcM_createChildFromOffset__FsUiUlPC4cXyziPC5csXyzPC4cXyzScPFPv_i
fopAcM_SearchByName__FsPP10fopAc_ac_c
func_80018B28
}
/*
.init 80003100 - 80005600

View File

@ -1,3 +1,4 @@
#include "SComponent/c_counter.h"
struct counter_class {
int mCounter0;

View File

@ -47,7 +47,7 @@ TEXT_O_FILES := \
$(BUILD_DIR)/asm/rodata/rodata_c_dylink.o \
$(BUILD_DIR)/asm/c/c_dylink.o \
$(BUILD_DIR)/asm/sdata2/f_ap_game.o \
$(BUILD_DIR)/asm/f/ap/f_ap_game.o \
$(BUILD_DIR)/src/f/f_ap_game.o \
$(BUILD_DIR)/asm/rodata/rodata_f_op_actor.o \
$(BUILD_DIR)/asm/sdata2/f_op_actor.o \
$(BUILD_DIR)/asm/f/op/f_op_actor.o \

View File

@ -1 +1,79 @@
// ok
/* f_ap_game.cpp autogenerated by split.py v0.4 at 2021-02-13 20:07:21.300413 */
#include "global.h"
#include "f/f_pc/f_pc_manager.h"
#include "SComponent/c_counter.h"
// additional symbols needed for f_ap_game.cpp
// autogenerated by split.py v0.4 at 2021-02-13 20:07:21.300465
extern "C" {
void __dl__FPv(void);
// void cCt_Counter(void);
void fapGm_After(void);
void fapGm_Create(void);
void fapGm_Execute(void);
void fapGm_HIO_c(void);
void fapGm_HIO_c_NS_dtor(void);
void fopCamM_Init(void);
void fopCamM_Management(void);
void fopDwTg_CreateQueue(void);
void fopOvlpM_Init(void);
void fopOvlpM_Management(void);
void fopScnM_Init(void);
void fopScnM_Management(void);
void fpcM_Init(void);
//void fpcM_Management__FPFv_vPFv_v(void);
void func_80018B28(void);
void func_80361C24(void);
}
// additional symbols needed for f_ap_game.cpp
// autogenerated by split.py v0.4 at 2021-02-13 20:07:21.300472
extern u8 lbl_803A35A0;
extern u8 lbl_803F1BB0;
extern u8 lbl_80451BC0;
extern u8 lbl_80451BC4;
extern "C" {
// __ct__11fapGm_HIO_cFv
// fapGm_HIO_c::fapGm_HIO_c(void)
asm void fapGm_HIO_c(void) {
nofralloc
#include "f/f_ap_game/asm/func_80018944.s"
}
// fapGm_After__Fv
// fapGm_After(void)
asm void fapGm_After(void) {
nofralloc
#include "f/f_ap_game/asm/func_80018A44.s"
}
void fapGm_Execute(void) {
fpcM_Management(0,fapGm_After);
cCt_Counter(0);
}
// fapGm_Create__Fv
// fapGm_Create(void)
asm void fapGm_Create(void) {
nofralloc
#include "f/f_ap_game/asm/func_80018AA0.s"
}
// __dt__11fapGm_HIO_cFv
// fapGm_HIO_c::~fapGm_HIO_c(void)
asm void fapGm_HIO_c_NS_dtor(void) {
nofralloc
#include "f/f_ap_game/asm/func_80018AE0.s"
}
// __sinit_f_ap_game_cpp
//
asm void func_80018B28(void) {
nofralloc
#include "f/f_ap_game/asm/func_80018B28.s"
}
};

View File

@ -60,7 +60,6 @@ BOOL fpcM_IsCreating(u32 pID) {
return fpcCt_IsCreatingByID(pID);
}
typedef void (*fpcM_ManagementFunc)(void);
void fpcM_Management(fpcM_ManagementFunc pFunc1, fpcM_ManagementFunc pFunc2) {
MtxInit();
dDlst_peekZ_c_NS_peekData(&g_dComIfG_gameInfo.getdlstPeekZ());

View File

@ -3,6 +3,7 @@
#include "JSystem/JKernel/JKRAramHeap/JKRAramHeap.h"
#include "JSystem/JUtility/JUTAssert/JUTAssert.h"
#include "JSystem/JUtility/JUTReport/JUTReport.h"
#include "JSystem/JUtility/JUTGamePad/JUTGamePad.h"
#include "SComponent/c_API_controller_pad.h"
#include "d/d_com/d_com_inf_game/d_com_inf_game.h"
#include "dvd/dvd.h"
@ -264,7 +265,7 @@ asm void debugDisplay(void) {
#endif
#ifdef NONMATCHING
void Debug_console(u32 controller_no) {
void Debug_console(u32 controller_pad_no) {
float tmp2;
float tmp3;
int tmp6;
@ -285,32 +286,32 @@ void Debug_console(u32 controller_no) {
lbl_80450B30 = 1;
}
u32 tmp5 = m_cpadInfo[controller_no].mPressedButtonFlags;
u32 tmp5 = m_cpadInfo[controller_pad_no].mPressedButtonFlags;
if ((m_cpadInfo[controller_no].mPressedButtonFlags & 0x10) &&
!(m_cpadInfo[controller_no].mButtonFlags & 0xFFFFFFEF)) {
if ((m_cpadInfo[controller_pad_no].mPressedButtonFlags & 0x10) &&
!(m_cpadInfo[controller_pad_no].mButtonFlags & ~0x10)) {
lbl_804511B8->field_0x68 = !lbl_804511B8->field_0x68;
JUTAssertion::setMessageCount(0);
}
if (lbl_804511B8->field_0x68) {
u32 tmp = m_cpadInfo[controller_no].mButtonFlags;
u32 tmp = m_cpadInfo[controller_pad_no].mButtonFlags;
// if R and L are pressed
if ((tmp & 0x40 && tmp & 0x20) ||
((lbl_80451A08 > m_cpadInfo[controller_no].mTriggerLeft) &&
(lbl_80451A08 > m_cpadInfo[controller_no].mTriggerRight))) {
tmp2 = m_cpadInfo[controller_no].mMainStickPosX;
tmp3 = m_cpadInfo[controller_no].mMainStickPosY;
if ((tmp & CButton::R && tmp & CButton::L) ||
((lbl_80451A08 > m_cpadInfo[controller_pad_no].mTriggerLeft) &&
(lbl_80451A08 > m_cpadInfo[controller_pad_no].mTriggerRight))) {
tmp2 = m_cpadInfo[controller_pad_no].mMainStickPosX;
tmp3 = m_cpadInfo[controller_pad_no].mMainStickPosY;
// if x buttons are pressed, clear the console
if (tmp & 0xC00 && tmp5 & 0x1000) {
if (tmp & (CButton::Y | CButton::START) && tmp5 & CButton::START) {
lbl_804511B8->clear();
}
u32 tmp = m_cpadInfo[controller_no].mButtonFlags;
u32 tmp = m_cpadInfo[controller_pad_no].mButtonFlags;
if (!(tmp & 0xC00)) {
if (!(tmp & (CButton::Y | CButton::START))) {
// subtract console scroll value from stick Y
float tmp4 = lbl_80450B2C;
lbl_80450B2C = tmp4 - tmp3;
@ -325,16 +326,16 @@ void Debug_console(u32 controller_no) {
lbl_804511B8->scroll(tmp);
}
} else {
if (tmp & 0x400) {
if (tmp & CButton::X) {
lbl_80450B2C += tmp2;
}
if (tmp & 0x800) {
if (tmp & CButton::Y) {
lbl_80450B2C -= tmp3;
}
}
if (tmp5 & 0x100) {
if (tmp5 & CButton::A) {
lbl_804511B8->dumpToTerminal(0xFFFFFFFF);
lbl_804511B8->field_0x58 = 3;
}
@ -385,16 +386,21 @@ asm void Debug_console(u32) {
#endif
#ifdef NONMATCHING
void LOAD_COPYDATE(void*) {
DVDFileInfo file_info;
s32 LOAD_COPYDATE(void*) {
s32 status;
u8 buffer[32];
u8 fileInfo[80];
//DVDFileInfo fileInfo;
s32 dvd_status = DVDOpen("/str/Final/Release/COPYDATE", &file_info);
if (dvd_status) {
char buffer[32];
DVDReadPrio(&file_info, buffer, 32, 0, 2);
status = DVDOpen("/str/Final/Release/COPYDATE", (DVDFileInfo*)&fileInfo);
if (status) {
DVDReadPrio((DVDFileInfo*)fileInfo, &buffer, 32, 0, 2);
memcpy(lbl_803A2EE0, buffer, 17);
DVDClose(&file_info);
status = DVDClose((DVDFileInfo*)fileInfo);
}
return status;
}
#else
const char* lbl_80373C23 = "/str/Final/Release/COPYDATE";
@ -447,10 +453,12 @@ void debug(void) {
#ifdef NONMATCHING
void main01(void) {
HeapCheck* heaps = lbl_803D32E0;
mDoMch_Create();
mDoGph_Create();
create__8mDoCPd_cFv();
mDoDVDThd_callback_c thread_callback;
// mDoDVDThd_callback_c thread_callback;
// JKRSolidHeap audio_heap;
// Root Heap
@ -498,23 +506,23 @@ void main01(void) {
// Command Heap
heaps[7].setHeap(mDoExt_getCommandHeap());
u8* systemConsole = lbl_804511B8;
JUTConsole* systemConsole = lbl_804511B8;
if (heaps[7].getHeap()) {
heaps[7].setHeapSize(heaps[7].getHeap()->getSize());
}
int unk = 0;
u32 unk = 0;
if (lbl_80450580) {
unk = 3;
}
*(lbl_804511B8 + 0x58) = unk;
*(systemConsole + 0x40) = 0x20;
*(systemConsole + 0x44) = 0x2a;
systemConsole->field_0x58 = unk;
systemConsole->field_0x40 = 0x20;
systemConsole->field_0x44 = 0x2A;
// lol
thread_callback.create((void* (*)(void*))LOAD_COPYDATE, 0);
mDoDVDThd_callback_c::create(LOAD_COPYDATE,0);
fapGm_Create();
fopAcM_initManager();
lbl_80450B18 = 0;
@ -522,7 +530,7 @@ void main01(void) {
// g_mDoAud_audioHeap
lbl_80450BBC = JKRSolidHeap_NS_create(0x14d800, JKRHeap::getCurrentHeap(), false);
lbl_80450BBC = JKRSolidHeap::create(0x14d800, JKRHeap::getCurrentHeap(), false);
// main loop
do {