mirror of
https://github.com/OpenDriver2/REDRIVER2.git
synced 2024-11-23 19:02:35 +01:00
c40d40bd22
- moved necessary data to new sources - running intro with TOMB5 HLE emulator
1945 lines
48 KiB
C++
1945 lines
48 KiB
C++
#include "THISDUST.H"
|
|
#include "PAD.H"
|
|
|
|
|
|
// decompiled code
|
|
// original method signature:
|
|
// struct PAD * /*$ra*/ __3PADPc(struct PAD *this /*$s1*/, char *bufferPtr /*$a1*/)
|
|
// line 32, offset 0x000feb70
|
|
/* begin block 1 */
|
|
// Start line: 33
|
|
// Start offset: 0x000FEB70
|
|
/* end block 1 */
|
|
// End offset: 0x000FEC44
|
|
// End Line: 60
|
|
|
|
/* begin block 2 */
|
|
// Start line: 64
|
|
/* end block 2 */
|
|
// End Line: 65
|
|
|
|
int FUN_MCARD__000feb70(int param_1,undefined4 param_2)
|
|
|
|
{
|
|
uint uVar1;
|
|
undefined4 uVar2;
|
|
|
|
FUN_MCARD__000f523c(param_1,0,0,0x200,0xb0,0x220,0xb0,param_2);
|
|
FUN_MCARD__000f523c(param_1 + 0x410c,1,0,0x240,0xb0,0x230,0xb0,0);
|
|
uVar1 = DAT_MCARD__0010ee08;
|
|
*(undefined4 *)(&DAT_00008218 + param_1) = 0x10;
|
|
*(undefined4 *)(&DAT_0000821c + param_1) = 0x18;
|
|
*(undefined4 *)(&DAT_00008230 + param_1) = 0;
|
|
*(undefined4 *)(&DAT_00008234 + param_1) = 0;
|
|
*(undefined4 *)(&DAT_00008238 + param_1) = 0;
|
|
*(undefined4 *)(&DAT_0000823c + param_1) = 0;
|
|
*(undefined4 *)(&DAT_0000822c + param_1) = 0;
|
|
if ((uVar1 & 8) != 0) {
|
|
DAT_MCARD__0010ec88 = 0x1000;
|
|
DAT_MCARD__0010ec8a = 0x2000;
|
|
DAT_MCARD__0010ec8c = 0x4000;
|
|
PTR_LAB_MCARD__00102000_MCARD__0010ec8e._0_2_ = 0x8000;
|
|
}
|
|
libcman_InitControllerLibrary(&DAT_MCARD__0010ec9c,0x20,&DAT_MCARD__0010ecbe,0x20);
|
|
*(int *)(&DAT_00008248 + param_1) = param_1;
|
|
*(int *)(&DAT_0000824c + param_1) = param_1 + 0x410c;
|
|
*(undefined4 *)(&DAT_00008250 + param_1) = 0;
|
|
*(undefined4 *)(&DAT_00008254 + param_1) = 4;
|
|
uVar2 = FUN_MCARD__000f5474(param_1);
|
|
*(undefined4 *)(&DAT_0000825c + param_1) = uVar2;
|
|
*(undefined4 *)(&DAT_00008260 + param_1) = 0x1c;
|
|
*(undefined4 *)(&DAT_00008264 + param_1) = 0x1c;
|
|
*(undefined4 *)(&DAT_00008268 + param_1) = 0x1c;
|
|
*(undefined4 *)(&DAT_0000826c + param_1) = 0x19;
|
|
*(undefined4 *)(&DAT_00008270 + param_1) = 0x1c;
|
|
*(undefined4 *)(&DAT_00008274 + param_1) = 0x1c;
|
|
*(undefined4 *)(&DAT_00008278 + param_1) = 0x1c;
|
|
*(undefined4 *)(&DAT_00008258 + param_1) = 0;
|
|
return param_1;
|
|
}
|
|
|
|
|
|
|
|
// decompiled code
|
|
// original method signature:
|
|
// void /*$ra*/ _._3PAD(struct PAD *this /*$s1*/, int __in_chrg /*$s0*/)
|
|
// line 89, offset 0x000ffe44
|
|
/* begin block 1 */
|
|
// Start line: 90
|
|
// Start offset: 0x000FFE44
|
|
/* end block 1 */
|
|
// End offset: 0x000FFE44
|
|
// End Line: 90
|
|
|
|
/* begin block 2 */
|
|
// Start line: 178
|
|
/* end block 2 */
|
|
// End Line: 179
|
|
|
|
void FUN_MCARD__000ffe44(int param_1,uint param_2)
|
|
|
|
{
|
|
libcman_DeInitControllerLibrary();
|
|
FUN_MCARD__000f52f0(param_1 + 0x410c,2);
|
|
FUN_MCARD__000f52f0(param_1,2);
|
|
if ((param_2 & 1) != 0) {
|
|
__builtin_delete(param_1);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
// decompiled code
|
|
// original method signature:
|
|
// int /*$ra*/ UpdateSlots__3PAD(struct PAD *this /*$s0*/)
|
|
// line 103, offset 0x000ffea0
|
|
/* begin block 1 */
|
|
// Start line: 104
|
|
// Start offset: 0x000FFEA0
|
|
/* end block 1 */
|
|
// End offset: 0x000FFEE0
|
|
// End Line: 134
|
|
|
|
/* begin block 2 */
|
|
// Start line: 1328
|
|
/* end block 2 */
|
|
// End Line: 1329
|
|
|
|
undefined4 FUN_MCARD__000ffea0(int param_1)
|
|
|
|
{
|
|
FUN_MCARD__000ffa1c();
|
|
FUN_MCARD__000ffc98(param_1,*(undefined4 *)(&DAT_00008258 + param_1),1);
|
|
return *(undefined4 *)(&DAT_00008258 + param_1);
|
|
}
|
|
|
|
|
|
|
|
// decompiled code
|
|
// original method signature:
|
|
// unsigned short /*$ra*/ GetPadData__3PADi(struct PAD *this /*$s1*/, int pad /*$s0*/)
|
|
// line 137, offset 0x000fecc0
|
|
/* begin block 1 */
|
|
// Start line: 138
|
|
// Start offset: 0x000FECC0
|
|
// Variables:
|
|
// struct ControllerPacket cData; // stack offset -56
|
|
// unsigned short retVal; // $s2
|
|
/* end block 1 */
|
|
// End offset: 0x000FF2CC
|
|
// End Line: 433
|
|
|
|
/* begin block 2 */
|
|
// Start line: 319
|
|
/* end block 2 */
|
|
// End Line: 320
|
|
|
|
/* begin block 3 */
|
|
// Start line: 321
|
|
/* end block 3 */
|
|
// End Line: 322
|
|
|
|
/* WARNING: Could not reconcile some variable overlaps */
|
|
|
|
uint FUN_MCARD__000fecc0(int param_1,int param_2)
|
|
|
|
{
|
|
undefined4 *puVar1;
|
|
undefined4 *puVar2;
|
|
int iVar3;
|
|
undefined4 *puVar4;
|
|
undefined4 uVar5;
|
|
undefined4 uVar6;
|
|
undefined4 uVar7;
|
|
uint uVar8;
|
|
undefined4 local_38;
|
|
undefined2 local_34;
|
|
char cStack50;
|
|
char cStack49;
|
|
char local_30;
|
|
undefined4 local_2c;
|
|
undefined2 local_28 [12];
|
|
|
|
uVar8 = 0;
|
|
libcman_ReadControllers();
|
|
puVar4 = (undefined4 *)&local_38;
|
|
iVar3 = param_2 * 0x22;
|
|
puVar1 = (undefined4 *)(&DAT_MCARD__0010ec9c + iVar3);
|
|
puVar2 = puVar4;
|
|
if (((uint)puVar1 & 3) == 0) {
|
|
do {
|
|
uVar5 = puVar1[1];
|
|
uVar6 = puVar1[2];
|
|
uVar7 = puVar1[3];
|
|
*puVar2 = *puVar1;
|
|
puVar2[1] = uVar5;
|
|
puVar2[2] = uVar6;
|
|
puVar2[3] = uVar7;
|
|
puVar1 = puVar1 + 4;
|
|
puVar2 = puVar2 + 4;
|
|
} while (puVar1 != (undefined4 *)(iVar3 + 0x10ecbc));
|
|
}
|
|
else {
|
|
do {
|
|
uVar5 = puVar1[1];
|
|
uVar6 = puVar1[2];
|
|
uVar7 = puVar1[3];
|
|
*puVar2 = *puVar1;
|
|
puVar2[1] = uVar5;
|
|
puVar2[2] = uVar6;
|
|
puVar2[3] = uVar7;
|
|
puVar1 = puVar1 + 4;
|
|
puVar2 = puVar2 + 4;
|
|
} while (puVar1 != (undefined4 *)(iVar3 + 0x10ecbc));
|
|
}
|
|
*(undefined2 *)puVar2 = *(undefined2 *)puVar1;
|
|
*(undefined4 *)(&DAT_00008238 + param_1) = 0;
|
|
*(undefined4 *)(&DAT_0000823c + param_1) = 0;
|
|
if ((char)local_38 != '\0') {
|
|
return 0;
|
|
}
|
|
puVar2 = (undefined4 *)(&DAT_MCARD__0010ec9c + param_2 * 0x22);
|
|
puVar1 = (undefined4 *)(param_2 * 0x22 + 0x10ecbc);
|
|
if (((uint)puVar2 & 3) == 0) {
|
|
do {
|
|
uVar6 = puVar2[1];
|
|
uVar7 = puVar2[2];
|
|
uVar5 = puVar2[3];
|
|
*puVar4 = *puVar2;
|
|
puVar4[1] = uVar6;
|
|
puVar4[2] = uVar7;
|
|
puVar4[3] = uVar5;
|
|
puVar2 = puVar2 + 4;
|
|
puVar4 = puVar4 + 4;
|
|
} while (puVar2 != puVar1);
|
|
}
|
|
else {
|
|
do {
|
|
uVar5 = puVar2[1];
|
|
uVar6 = puVar2[2];
|
|
uVar7 = puVar2[3];
|
|
*puVar4 = *puVar2;
|
|
puVar4[1] = uVar5;
|
|
puVar4[2] = uVar6;
|
|
puVar4[3] = uVar7;
|
|
puVar2 = puVar2 + 4;
|
|
puVar4 = puVar4 + 4;
|
|
} while (puVar2 != puVar1);
|
|
}
|
|
*(undefined2 *)puVar4 = *(undefined2 *)puVar2;
|
|
if (*(uint *)(&DAT_00008240 + param_1) != (uint)(local_38._1_1_ >> 4)) {
|
|
*(undefined4 *)(&DAT_0000822c + param_1) = 1;
|
|
}
|
|
switch(local_38._1_1_ >> 4) {
|
|
case 1:
|
|
if (((DAT_MCARD__0010ee08 ^ 1) & 1) == 0) {
|
|
*(undefined4 *)(&DAT_0000823c + param_1) = 1;
|
|
if ((local_38._2_2_ & 0x800) == 0) {
|
|
uVar8 = (uint)(DAT_MCARD__0010ec8a | DAT_MCARD__0010ec8c);
|
|
}
|
|
if ((local_38._2_2_ & 0x400) == 0) {
|
|
uVar8 = (uint)(ushort)PTR_LAB_MCARD__00102000_MCARD__0010ec8e;
|
|
}
|
|
if (local_34 == 0) {
|
|
return uVar8;
|
|
}
|
|
iVar3 = *(int *)(&DAT_00008218 + param_1) + (int)(char)local_34;
|
|
*(int *)(&DAT_00008218 + param_1) = iVar3;
|
|
*(int *)(&DAT_0000821c + param_1) = *(int *)(&DAT_0000821c + param_1) + (int)local_34._1_1_;
|
|
joined_r0x000ff08c:
|
|
if (0x1f0 < iVar3) {
|
|
*(undefined4 *)(&DAT_00008218 + param_1) = 0x1f0;
|
|
}
|
|
if (*(int *)(&DAT_00008218 + param_1) < 0x10) {
|
|
*(undefined4 *)(&DAT_00008218 + param_1) = 0x10;
|
|
}
|
|
if (0xe0 < *(int *)(&DAT_0000821c + param_1)) {
|
|
*(undefined4 *)(&DAT_0000821c + param_1) = 0xe0;
|
|
}
|
|
if (*(int *)(&DAT_0000821c + param_1) < 0x18) {
|
|
*(undefined4 *)(&DAT_0000821c + param_1) = 0x18;
|
|
return uVar8;
|
|
}
|
|
return uVar8;
|
|
}
|
|
default:
|
|
LAB_MCARD__000ff2a8:
|
|
*(undefined4 *)(&DAT_0000823c + param_1) = 0;
|
|
return 0;
|
|
case 2:
|
|
if ((*(int *)(&DAT_00008234 + param_1) != 0) || ((DAT_MCARD__0010ee08 & 2) == 0)) {
|
|
*(undefined4 *)(&DAT_0000823c + param_1) = 0;
|
|
return 0;
|
|
}
|
|
*(undefined4 *)(&DAT_00008238 + param_1) = 1;
|
|
*(undefined4 *)(&DAT_0000823c + param_1) = 1;
|
|
if (local_34._1_1_ != '\0') {
|
|
uVar8 = 0x4000;
|
|
}
|
|
if (cStack50 != '\0') {
|
|
uVar8 = 0x8000;
|
|
}
|
|
if ((local_38._2_2_ & 0x2000) == 0) {
|
|
uVar8 = 0x2000;
|
|
}
|
|
if ((local_38._2_2_ & 0x1000) == 0) {
|
|
uVar8 = 0x1000;
|
|
}
|
|
LAB_MCARD__000ff11c:
|
|
if ((local_38._2_2_ & 0x10) == 0) {
|
|
uVar8 = 0x10;
|
|
}
|
|
if ((local_38._2_2_ & 0x40) == 0) {
|
|
uVar8 = 0x40;
|
|
}
|
|
if ((local_38._2_2_ & 0x80) == 0) {
|
|
uVar8 = 0x80;
|
|
}
|
|
if ((local_38._2_2_ & 0x20) == 0) {
|
|
return 0x20;
|
|
}
|
|
return uVar8;
|
|
case 4:
|
|
break;
|
|
case 7:
|
|
if ((*(int *)(&DAT_00008234 + param_1) != 0) || ((DAT_MCARD__0010ee08 & 4) == 0)) {
|
|
*(undefined4 *)(&DAT_0000823c + param_1) = 0;
|
|
return 0;
|
|
}
|
|
break;
|
|
case 8:
|
|
local_38._3_1_ = local_38._3_1_ >> 4;
|
|
if (local_38._3_1_ == 2) {
|
|
if ((*(int *)(&DAT_00008234 + param_1) != 0) || ((DAT_MCARD__0010ee08 & 4) == 0)) {
|
|
*(undefined4 *)(&DAT_0000823c + param_1) = 0;
|
|
return 0;
|
|
}
|
|
*(undefined4 *)(&DAT_00008238 + param_1) = 1;
|
|
*(undefined4 *)(&DAT_0000823c + param_1) = 1;
|
|
if (cStack49 != '\0') {
|
|
uVar8 = 0x4000;
|
|
}
|
|
if (local_30 != '\0') {
|
|
uVar8 = 0x8000;
|
|
}
|
|
if ((local_34 & 0x2000) == 0) {
|
|
uVar8 = 0x2000;
|
|
}
|
|
if ((local_34 & 0x1000) == 0) {
|
|
uVar8 = 0x1000;
|
|
}
|
|
goto LAB_MCARD__000ff11c;
|
|
}
|
|
if (local_38._3_1_ < 3) {
|
|
if ((local_38._3_1_ == 1) && (((DAT_MCARD__0010ee08 ^ 1) & 1) == 0)) {
|
|
*(uint *)(&DAT_0000823c + param_1) = (uint)local_38._3_1_;
|
|
if ((local_34 & 0x800) == 0) {
|
|
uVar8 = (uint)(DAT_MCARD__0010ec8a | DAT_MCARD__0010ec8c);
|
|
}
|
|
if ((local_34 & 0x400) == 0) {
|
|
uVar8 = (uint)(ushort)PTR_LAB_MCARD__00102000_MCARD__0010ec8e;
|
|
}
|
|
if (((int)cStack50 == 0) && (cStack49 == '\0')) {
|
|
return uVar8;
|
|
}
|
|
iVar3 = *(int *)(&DAT_00008218 + param_1) + (int)cStack50;
|
|
*(int *)(&DAT_00008218 + param_1) = iVar3;
|
|
*(int *)(&DAT_0000821c + param_1) = *(int *)(&DAT_0000821c + param_1) + (int)cStack49;
|
|
goto joined_r0x000ff08c;
|
|
}
|
|
goto LAB_MCARD__000ff2a8;
|
|
}
|
|
if (local_38._3_1_ != 4) {
|
|
if (local_38._3_1_ != 7) goto LAB_MCARD__000ff2a8;
|
|
if ((*(int *)(&DAT_00008234 + param_1) != 0) || ((DAT_MCARD__0010ee08 & 4) == 0)) {
|
|
*(undefined4 *)(&DAT_0000823c + param_1) = 0;
|
|
return 0;
|
|
}
|
|
}
|
|
if (*(int *)(&DAT_00008234 + param_1) != 0) {
|
|
*(undefined4 *)(&DAT_0000823c + param_1) = 0;
|
|
return 0;
|
|
}
|
|
goto LAB_MCARD__000ff1a8;
|
|
}
|
|
local_34 = local_38._2_2_;
|
|
if (*(int *)(&DAT_00008234 + param_1) != 0) {
|
|
*(undefined4 *)(&DAT_0000823c + param_1) = 0;
|
|
return 0;
|
|
}
|
|
LAB_MCARD__000ff1a8:
|
|
*(undefined4 *)(&DAT_0000823c + param_1) = 1;
|
|
return ~(uint)local_34 & 0xffff;
|
|
}
|
|
|
|
|
|
|
|
// decompiled code
|
|
// original method signature:
|
|
// unsigned int /*$ra*/ NegConInserted__3PAD(struct PAD *this /*$a0*/)
|
|
// line 437, offset 0x000ffee0
|
|
/* begin block 1 */
|
|
// Start line: 438
|
|
// Start offset: 0x000FFEE0
|
|
/* end block 1 */
|
|
// End offset: 0x000FFF10
|
|
// End Line: 445
|
|
|
|
/* begin block 2 */
|
|
// Start line: 1996
|
|
/* end block 2 */
|
|
// End Line: 1997
|
|
|
|
/* begin block 3 */
|
|
// Start line: 1997
|
|
/* end block 3 */
|
|
// End Line: 1998
|
|
|
|
undefined4 FUN_MCARD__000ffee0(int param_1)
|
|
|
|
{
|
|
if ((DAT_MCARD__0010ee08 & 2) == 0) {
|
|
return 0;
|
|
}
|
|
*(undefined4 *)(&DAT_00008238 + param_1) = 0;
|
|
return 0;
|
|
}
|
|
|
|
|
|
|
|
// decompiled code
|
|
// original method signature:
|
|
// unsigned int /*$ra*/ ControllerInserted__3PAD(struct PAD *this /*$a0*/)
|
|
// line 448, offset 0x000fff10
|
|
/* begin block 1 */
|
|
// Start line: 449
|
|
// Start offset: 0x000FFF10
|
|
/* end block 1 */
|
|
// End offset: 0x000FFF48
|
|
// End Line: 460
|
|
|
|
/* begin block 2 */
|
|
// Start line: 2018
|
|
/* end block 2 */
|
|
// End Line: 2019
|
|
|
|
/* begin block 3 */
|
|
// Start line: 2022
|
|
/* end block 3 */
|
|
// End Line: 2023
|
|
|
|
/* begin block 4 */
|
|
// Start line: 2023
|
|
/* end block 4 */
|
|
// End Line: 2024
|
|
|
|
undefined4 FUN_MCARD__000fff10(int param_1)
|
|
|
|
{
|
|
if (*(int *)(&DAT_0000823c + param_1) == 0) {
|
|
*(undefined4 *)(&DAT_00008218 + param_1) = 0x10;
|
|
*(undefined4 *)(&DAT_0000821c + param_1) = 0x10;
|
|
*(undefined4 *)(&DAT_00008230 + param_1) = 0;
|
|
*(undefined4 *)(&DAT_00008234 + param_1) = 0;
|
|
*(undefined4 *)(&DAT_00008238 + param_1) = 0;
|
|
}
|
|
return *(undefined4 *)(&DAT_0000823c + param_1);
|
|
}
|
|
|
|
|
|
|
|
// decompiled code
|
|
// original method signature:
|
|
// unsigned int /*$ra*/ ControllerChanged__3PAD(struct PAD *this /*$a0*/)
|
|
// line 463, offset 0x000fff48
|
|
/* begin block 1 */
|
|
// Start line: 464
|
|
// Start offset: 0x000FFF48
|
|
/* end block 1 */
|
|
// End offset: 0x000FFF5C
|
|
// End Line: 465
|
|
|
|
/* begin block 2 */
|
|
// Start line: 2052
|
|
/* end block 2 */
|
|
// End Line: 2053
|
|
|
|
/* begin block 3 */
|
|
// Start line: 2053
|
|
/* end block 3 */
|
|
// End Line: 2054
|
|
|
|
undefined4 FUN_MCARD__000fff48(int param_1)
|
|
|
|
{
|
|
return *(undefined4 *)(&DAT_0000822c + param_1);
|
|
}
|
|
|
|
|
|
|
|
// decompiled code
|
|
// original method signature:
|
|
// unsigned int /*$ra*/ SetControllerType__3PAD(struct PAD *this /*$a0*/)
|
|
// line 468, offset 0x000fff5c
|
|
/* begin block 1 */
|
|
// Start line: 469
|
|
// Start offset: 0x000FFF5C
|
|
// Variables:
|
|
// struct ControllerPacket cData; // stack offset -40
|
|
/* end block 1 */
|
|
// End offset: 0x001000D0
|
|
// End Line: 487
|
|
|
|
/* begin block 2 */
|
|
// Start line: 2062
|
|
/* end block 2 */
|
|
// End Line: 2063
|
|
|
|
/* begin block 3 */
|
|
// Start line: 2063
|
|
/* end block 3 */
|
|
// End Line: 2064
|
|
|
|
/* WARNING: Removing unreachable block (ram,0x000fff78) */
|
|
/* WARNING: Removing unreachable block (ram,0x000fff7c) */
|
|
/* WARNING: Removing unreachable block (ram,0x000fffc8) */
|
|
/* WARNING: Removing unreachable block (ram,0x0010001c) */
|
|
/* WARNING: Removing unreachable block (ram,0x00100020) */
|
|
/* WARNING: Removing unreachable block (ram,0x0010006c) */
|
|
|
|
void FUN_MCARD__000fff5c(int param_1)
|
|
|
|
{
|
|
undefined4 *puVar1;
|
|
undefined4 *puVar2;
|
|
undefined4 *puVar3;
|
|
undefined4 uVar4;
|
|
undefined4 uVar5;
|
|
undefined4 uVar6;
|
|
undefined4 local_28;
|
|
undefined4 local_24 [3];
|
|
undefined2 local_18 [12];
|
|
|
|
puVar1 = &local_28;
|
|
puVar3 = (undefined4 *)&DAT_MCARD__0010ec9c;
|
|
puVar2 = puVar1;
|
|
do {
|
|
uVar4 = puVar3[1];
|
|
uVar5 = puVar3[2];
|
|
uVar6 = puVar3[3];
|
|
*puVar2 = *puVar3;
|
|
puVar2[1] = uVar4;
|
|
puVar2[2] = uVar5;
|
|
puVar2[3] = uVar6;
|
|
puVar3 = puVar3 + 4;
|
|
puVar2 = puVar2 + 4;
|
|
} while (puVar3 != (undefined4 *)0x10ecbc);
|
|
*(undefined2 *)puVar2 = uRam0010ecbc;
|
|
puVar2 = (undefined4 *)&DAT_MCARD__0010ec9c;
|
|
do {
|
|
uVar5 = puVar2[1];
|
|
uVar6 = puVar2[2];
|
|
uVar4 = puVar2[3];
|
|
*puVar1 = *puVar2;
|
|
puVar1[1] = uVar5;
|
|
puVar1[2] = uVar6;
|
|
puVar1[3] = uVar4;
|
|
puVar2 = puVar2 + 4;
|
|
puVar1 = puVar1 + 4;
|
|
} while (puVar2 != (undefined4 *)0x10ecbc);
|
|
*(undefined2 *)puVar1 = uRam0010ecbc;
|
|
*(undefined4 *)(&DAT_0000822c + param_1) = 0;
|
|
*(uint *)(&DAT_00008240 + param_1) = (uint)(local_28._1_1_ >> 4);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
// decompiled code
|
|
// original method signature:
|
|
// unsigned int /*$ra*/ MouseInserted__3PAD(struct PAD *this /*$a0*/)
|
|
// line 490, offset 0x001000d0
|
|
/* begin block 1 */
|
|
// Start line: 491
|
|
// Start offset: 0x001000D0
|
|
/* end block 1 */
|
|
// End offset: 0x00100158
|
|
// End Line: 512
|
|
|
|
/* begin block 2 */
|
|
// Start line: 2105
|
|
/* end block 2 */
|
|
// End Line: 2106
|
|
|
|
/* begin block 3 */
|
|
// Start line: 2109
|
|
/* end block 3 */
|
|
// End Line: 2110
|
|
|
|
/* begin block 4 */
|
|
// Start line: 2110
|
|
/* end block 4 */
|
|
// End Line: 2111
|
|
|
|
undefined4 FUN_MCARD__001000d0(int param_1)
|
|
|
|
{
|
|
if ((DAT_MCARD__0010ee08 & 1) == 0) {
|
|
return 0;
|
|
}
|
|
if (*(int *)(&DAT_00008230 + param_1) != 0) {
|
|
return *(undefined4 *)(&DAT_00008234 + param_1);
|
|
}
|
|
*(undefined4 *)(&DAT_00008230 + param_1) = 1;
|
|
if ((DAT_MCARD__0010ec9d >> 4 == 1) || (DAT_MCARD__0010ec9f >> 4 == 1)) {
|
|
*(undefined4 *)(&DAT_00008234 + param_1) = 1;
|
|
}
|
|
else {
|
|
*(undefined4 *)(&DAT_00008234 + param_1) = 0;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
|
|
|
|
// decompiled code
|
|
// original method signature:
|
|
// int /*$ra*/ GetMouseX__3PAD(struct PAD *this /*$a0*/)
|
|
// line 514, offset 0x00100158
|
|
/* begin block 1 */
|
|
// Start line: 515
|
|
// Start offset: 0x00100158
|
|
/* end block 1 */
|
|
// End offset: 0x0010016C
|
|
// End Line: 515
|
|
|
|
/* begin block 2 */
|
|
// Start line: 2160
|
|
/* end block 2 */
|
|
// End Line: 2161
|
|
|
|
undefined4 FUN_MCARD__00100158(int param_1)
|
|
|
|
{
|
|
return *(undefined4 *)(&DAT_00008218 + param_1);
|
|
}
|
|
|
|
|
|
|
|
// decompiled code
|
|
// original method signature:
|
|
// int /*$ra*/ GetMouseY__3PAD(struct PAD *this /*$a0*/)
|
|
// line 515, offset 0x0010016c
|
|
/* begin block 1 */
|
|
// Start line: 516
|
|
// Start offset: 0x0010016C
|
|
/* end block 1 */
|
|
// End offset: 0x00100180
|
|
// End Line: 516
|
|
|
|
/* begin block 2 */
|
|
// Start line: 2162
|
|
/* end block 2 */
|
|
// End Line: 2163
|
|
|
|
undefined4 FUN_MCARD__0010016c(int param_1)
|
|
|
|
{
|
|
return *(undefined4 *)(&DAT_0000821c + param_1);
|
|
}
|
|
|
|
|
|
|
|
// decompiled code
|
|
// original method signature:
|
|
// void /*$ra*/ ResetPadData__3PAD(struct PAD *this /*$a0*/)
|
|
// line 519, offset 0x00100180
|
|
/* begin block 1 */
|
|
// Start line: 520
|
|
// Start offset: 0x00100180
|
|
/* end block 1 */
|
|
// End offset: 0x001001AC
|
|
// End Line: 521
|
|
|
|
/* begin block 2 */
|
|
// Start line: 2170
|
|
/* end block 2 */
|
|
// End Line: 2171
|
|
|
|
/* begin block 3 */
|
|
// Start line: 2171
|
|
/* end block 3 */
|
|
// End Line: 2172
|
|
|
|
void FUN_MCARD__00100180(void)
|
|
|
|
{
|
|
memset(&DAT_MCARD__0010ec9c,0,0x40);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
// decompiled code
|
|
// original method signature:
|
|
// char * /*$ra*/ port_name__3PADi(struct PAD *this /*$a2*/, int port /*$a1*/)
|
|
// line 527, offset 0x000ff2cc
|
|
/* begin block 1 */
|
|
// Start line: 528
|
|
// Start offset: 0x000FF2CC
|
|
/* end block 1 */
|
|
// End offset: 0x000FF3B8
|
|
// End Line: 563
|
|
|
|
/* begin block 2 */
|
|
// Start line: 1124
|
|
/* end block 2 */
|
|
// End Line: 1125
|
|
|
|
/* begin block 3 */
|
|
// Start line: 1125
|
|
/* end block 3 */
|
|
// End Line: 1126
|
|
|
|
uint FUN_MCARD__000ff2cc(int param_1,uint param_2)
|
|
|
|
{
|
|
uint uVar1;
|
|
|
|
uVar1 = (uint)(param_2 < 8);
|
|
switch(param_2) {
|
|
case 0:
|
|
uVar1 = DAT_MCARD__0010edac;
|
|
if (*(int *)(&DAT_00008260 + param_1) != 0x1c) {
|
|
return DAT_MCARD__0010edb0;
|
|
}
|
|
break;
|
|
case 1:
|
|
return DAT_MCARD__0010edb4;
|
|
case 2:
|
|
return DAT_MCARD__0010edb8;
|
|
case 3:
|
|
return DAT_MCARD__0010edbc;
|
|
case 4:
|
|
if (*(int *)(&DAT_00008270 + param_1) == 0x1c) {
|
|
return DAT_MCARD__0010edc0;
|
|
}
|
|
return DAT_MCARD__0010edc4;
|
|
case 5:
|
|
return DAT_MCARD__0010edc8;
|
|
case 6:
|
|
return DAT_MCARD__0010edcc;
|
|
case 7:
|
|
return DAT_MCARD__0010edd0;
|
|
}
|
|
return uVar1;
|
|
}
|
|
|
|
|
|
|
|
// decompiled code
|
|
// original method signature:
|
|
// unsigned int /*$ra*/ WaitUntilCardRemoved__3PADi(struct PAD *this /*$s3*/, int slot /*$a1*/)
|
|
// line 569, offset 0x000ff3c0
|
|
/* begin block 1 */
|
|
// Start line: 570
|
|
// Start offset: 0x000FF3C0
|
|
// Variables:
|
|
// struct RECT rect; // stack offset -48
|
|
// short padData; // $a0
|
|
// unsigned int bInBox; // $s2
|
|
|
|
/* begin block 1.1 */
|
|
// Start line: 577
|
|
// Start offset: 0x000FF410
|
|
|
|
/* begin block 1.1.1 */
|
|
// Start line: 583
|
|
// Start offset: 0x000FF448
|
|
|
|
/* begin block 1.1.1.1 */
|
|
// Start line: 570
|
|
// Start offset: 0x000FF448
|
|
// Variables:
|
|
// struct PAD *this; // $s3
|
|
|
|
/* begin block 1.1.1.1.1 */
|
|
// Start line: 570
|
|
// Start offset: 0x000FF448
|
|
/* end block 1.1.1.1.1 */
|
|
// End offset: 0x000FF4BC
|
|
// End Line: 570
|
|
/* end block 1.1.1.1 */
|
|
// End offset: 0x000FF4BC
|
|
// End Line: 570
|
|
|
|
/* begin block 1.1.1.2 */
|
|
// Start line: 584
|
|
// Start offset: 0x000FF4C4
|
|
|
|
/* begin block 1.1.1.2.1 */
|
|
// Start line: 585
|
|
// Start offset: 0x000FF4C4
|
|
// Variables:
|
|
// struct PAD *this; // $s3
|
|
|
|
/* begin block 1.1.1.2.1.1 */
|
|
// Start line: 585
|
|
// Start offset: 0x000FF4C4
|
|
/* end block 1.1.1.2.1.1 */
|
|
// End offset: 0x000FF4C4
|
|
// End Line: 585
|
|
/* end block 1.1.1.2.1 */
|
|
// End offset: 0x000FF4C4
|
|
// End Line: 585
|
|
|
|
/* begin block 1.1.1.2.2 */
|
|
// Start line: 585
|
|
// Start offset: 0x000FF4C4
|
|
// Variables:
|
|
// struct PAD *this; // $s3
|
|
|
|
/* begin block 1.1.1.2.2.1 */
|
|
// Start line: 585
|
|
// Start offset: 0x000FF4C4
|
|
/* end block 1.1.1.2.2.1 */
|
|
// End offset: 0x000FF4C4
|
|
// End Line: 585
|
|
/* end block 1.1.1.2.2 */
|
|
// End offset: 0x000FF4C4
|
|
// End Line: 585
|
|
|
|
/* begin block 1.1.1.2.3 */
|
|
// Start line: 585
|
|
// Start offset: 0x000FF4C4
|
|
// Variables:
|
|
// struct PAD *this; // $s3
|
|
|
|
/* begin block 1.1.1.2.3.1 */
|
|
// Start line: 585
|
|
// Start offset: 0x000FF4C4
|
|
/* end block 1.1.1.2.3.1 */
|
|
// End offset: 0x000FF4C4
|
|
// End Line: 585
|
|
/* end block 1.1.1.2.3 */
|
|
// End offset: 0x000FF4C4
|
|
// End Line: 585
|
|
|
|
/* begin block 1.1.1.2.4 */
|
|
// Start line: 570
|
|
// Start offset: 0x000FF564
|
|
// Variables:
|
|
// struct PAD *this; // $s3
|
|
|
|
/* begin block 1.1.1.2.4.1 */
|
|
// Start line: 570
|
|
// Start offset: 0x000FF564
|
|
/* end block 1.1.1.2.4.1 */
|
|
// End offset: 0x000FF564
|
|
// End Line: 570
|
|
/* end block 1.1.1.2.4 */
|
|
// End offset: 0x000FF564
|
|
// End Line: 570
|
|
|
|
/* begin block 1.1.1.2.5 */
|
|
// Start line: 570
|
|
// Start offset: 0x000FF57C
|
|
// Variables:
|
|
// struct PAD *this; // $s3
|
|
|
|
/* begin block 1.1.1.2.5.1 */
|
|
// Start line: 570
|
|
// Start offset: 0x000FF57C
|
|
/* end block 1.1.1.2.5.1 */
|
|
// End offset: 0x000FF57C
|
|
// End Line: 570
|
|
/* end block 1.1.1.2.5 */
|
|
// End offset: 0x000FF57C
|
|
// End Line: 570
|
|
|
|
/* begin block 1.1.1.2.6 */
|
|
// Start line: 570
|
|
// Start offset: 0x000FF594
|
|
// Variables:
|
|
// struct PAD *this; // $s3
|
|
|
|
/* begin block 1.1.1.2.6.1 */
|
|
// Start line: 570
|
|
// Start offset: 0x000FF594
|
|
/* end block 1.1.1.2.6.1 */
|
|
// End offset: 0x000FF594
|
|
// End Line: 570
|
|
/* end block 1.1.1.2.6 */
|
|
// End offset: 0x000FF594
|
|
// End Line: 570
|
|
|
|
/* begin block 1.1.1.2.7 */
|
|
// Start line: 614
|
|
// Start offset: 0x000FF5A4
|
|
// Variables:
|
|
// struct PAD *this; // $s3
|
|
|
|
/* begin block 1.1.1.2.7.1 */
|
|
// Start line: 614
|
|
// Start offset: 0x000FF5A4
|
|
/* end block 1.1.1.2.7.1 */
|
|
// End offset: 0x000FF5A4
|
|
// End Line: 614
|
|
/* end block 1.1.1.2.7 */
|
|
// End offset: 0x000FF5A4
|
|
// End Line: 614
|
|
|
|
/* begin block 1.1.1.2.8 */
|
|
// Start line: 614
|
|
// Start offset: 0x000FF5A4
|
|
// Variables:
|
|
// struct PAD *this; // $s3
|
|
|
|
/* begin block 1.1.1.2.8.1 */
|
|
// Start line: 614
|
|
// Start offset: 0x000FF5A4
|
|
/* end block 1.1.1.2.8.1 */
|
|
// End offset: 0x000FF5A4
|
|
// End Line: 614
|
|
/* end block 1.1.1.2.8 */
|
|
// End offset: 0x000FF5A4
|
|
// End Line: 614
|
|
/* end block 1.1.1.2 */
|
|
// End offset: 0x000FF664
|
|
// End Line: 625
|
|
/* end block 1.1.1 */
|
|
// End offset: 0x000FF6B4
|
|
// End Line: 633
|
|
/* end block 1.1 */
|
|
// End offset: 0x000FF6B4
|
|
// End Line: 633
|
|
/* end block 1 */
|
|
// End offset: 0x000FF6E4
|
|
// End Line: 633
|
|
|
|
/* begin block 2 */
|
|
// Start line: 1208
|
|
/* end block 2 */
|
|
// End Line: 1209
|
|
|
|
undefined4 FUN_MCARD__000ff3c0(int param_1,int param_2)
|
|
|
|
{
|
|
ushort uVar1;
|
|
int iVar2;
|
|
uint uVar3;
|
|
short local_30;
|
|
short local_2e;
|
|
undefined2 local_2c;
|
|
undefined2 local_2a;
|
|
|
|
do {
|
|
while( true ) {
|
|
FUN_MCARD__000ffc98(param_1,*(int *)(&DAT_00008250 + param_2 * 4 + param_1),1);
|
|
if (*(int *)(&DAT_0000825c + param_1 + *(int *)(&DAT_00008250 + param_2 * 4 + param_1) * 4) ==
|
|
0x19) {
|
|
return 1;
|
|
}
|
|
iVar2 = 0;
|
|
if ((DAT_MCARD__0010ee08 & 1) != 0) {
|
|
if (*(int *)(&DAT_00008230 + param_1) == 0) {
|
|
*(undefined4 *)(&DAT_00008230 + param_1) = 1;
|
|
if ((DAT_MCARD__0010ec9d >> 4 == 1) || (DAT_MCARD__0010ec9f >> 4 == 1)) {
|
|
*(undefined4 *)(&DAT_00008234 + param_1) = 1;
|
|
}
|
|
else {
|
|
*(undefined4 *)(&DAT_00008234 + param_1) = 0;
|
|
}
|
|
iVar2 = 0;
|
|
}
|
|
else {
|
|
iVar2 = *(int *)(&DAT_00008234 + param_1);
|
|
}
|
|
}
|
|
if (iVar2 != 0) break;
|
|
uVar1 = FUN_MCARD__000fecc0(param_1,0);
|
|
if ((uVar1 & DAT_MCARD__0010ec8a) != 0) {
|
|
do {
|
|
uVar3 = FUN_MCARD__000fecc0(param_1,0);
|
|
} while ((DAT_MCARD__0010ec8a & uVar3) != 0);
|
|
return 0;
|
|
}
|
|
}
|
|
DrawSync(0);
|
|
VSync(0);
|
|
uVar3 = 0;
|
|
local_30 = *(short *)(DAT_MCARD__0010ec70 + 0x298);
|
|
local_2e = *(undefined2 *)(DAT_MCARD__0010ec70 + 0x29c);
|
|
local_2c = 0x10;
|
|
local_2a = 0x10;
|
|
LoadImage(&local_30,DAT_MCARD__0010ec70 + 0x2a0);
|
|
DrawSync(0);
|
|
iVar2 = DAT_MCARD__0010ec70;
|
|
local_30 = (short)*(undefined4 *)(&DAT_00008218 + param_1);
|
|
local_2e = (short)*(undefined4 *)(&DAT_0000821c + param_1);
|
|
*(int *)(DAT_MCARD__0010ec70 + 0x298) = (int)local_30;
|
|
*(int *)(iVar2 + 0x29c) = (int)local_2e;
|
|
StoreImage(&local_30,iVar2 + 0x2a0);
|
|
DrawSync(0);
|
|
if ((int)DAT_MCARD__0010ec78 < *(int *)(&DAT_00008218 + param_1)) {
|
|
iVar2 = 0;
|
|
if (*(int *)(&DAT_00008218 + param_1) < (int)DAT_MCARD__0010ec78 + (int)DAT_MCARD__0010ec7c) {
|
|
iVar2 = 0;
|
|
if ((int)DAT_MCARD__0010ec7a < *(int *)(&DAT_0000821c + param_1)) {
|
|
uVar3 = (uint)(*(int *)(&DAT_0000821c + param_1) <
|
|
(int)DAT_MCARD__0010ec7a + (int)DAT_MCARD__0010ec7e);
|
|
goto LAB_MCARD__000ff5a4;
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
LAB_MCARD__000ff5a4:
|
|
iVar2 = uVar3 << 1;
|
|
}
|
|
iVar2 = iVar2 * 0x40 + uVar3 * 0x48 + 0x37;
|
|
FUN_MCARD__000fe72c(DAT_MCARD__0010ec70,(int)DAT_MCARD__0010ec78,(int)DAT_MCARD__0010ec7a,
|
|
(int)DAT_MCARD__0010ec7c,(int)DAT_MCARD__0010ec7e,iVar2,iVar2,iVar2);
|
|
FUN_MCARD__000facd4(DAT_MCARD__0010ec70,DAT_MCARD__0010ec70 + 0x44ac,
|
|
*(undefined4 *)(&DAT_00008218 + param_1),
|
|
*(undefined4 *)(&DAT_0000821c + param_1),0x80,0x80,0x80,0);
|
|
uVar1 = FUN_MCARD__000fecc0(param_1,0);
|
|
if (((uVar1 & DAT_MCARD__0010ec8a) != 0) && (uVar3 != 0)) {
|
|
do {
|
|
uVar3 = FUN_MCARD__000fecc0(param_1,0);
|
|
} while ((DAT_MCARD__0010ec8a & uVar3) != 0);
|
|
return 0;
|
|
}
|
|
} while( true );
|
|
}
|
|
|
|
|
|
|
|
// decompiled code
|
|
// original method signature:
|
|
// unsigned int /*$ra*/ WaitUntilAnyCardInserted__3PAD(struct PAD *this /*$s3*/)
|
|
// line 655, offset 0x000ff6e4
|
|
/* begin block 1 */
|
|
// Start line: 656
|
|
// Start offset: 0x000FF6E4
|
|
// Variables:
|
|
// struct RECT rect; // stack offset -48
|
|
// unsigned int bInBox; // $s2
|
|
|
|
/* begin block 1.1 */
|
|
// Start line: 663
|
|
// Start offset: 0x000FF730
|
|
|
|
/* begin block 1.1.1 */
|
|
// Start line: 675
|
|
// Start offset: 0x000FF7A0
|
|
|
|
/* begin block 1.1.1.1 */
|
|
// Start line: 656
|
|
// Start offset: 0x000FF7A0
|
|
// Variables:
|
|
// struct PAD *this; // $s3
|
|
|
|
/* begin block 1.1.1.1.1 */
|
|
// Start line: 656
|
|
// Start offset: 0x000FF7A0
|
|
/* end block 1.1.1.1.1 */
|
|
// End offset: 0x000FF814
|
|
// End Line: 656
|
|
/* end block 1.1.1.1 */
|
|
// End offset: 0x000FF814
|
|
// End Line: 656
|
|
|
|
/* begin block 1.1.1.2 */
|
|
// Start line: 676
|
|
// Start offset: 0x000FF81C
|
|
|
|
/* begin block 1.1.1.2.1 */
|
|
// Start line: 677
|
|
// Start offset: 0x000FF81C
|
|
// Variables:
|
|
// struct PAD *this; // $s3
|
|
|
|
/* begin block 1.1.1.2.1.1 */
|
|
// Start line: 677
|
|
// Start offset: 0x000FF81C
|
|
/* end block 1.1.1.2.1.1 */
|
|
// End offset: 0x000FF81C
|
|
// End Line: 677
|
|
/* end block 1.1.1.2.1 */
|
|
// End offset: 0x000FF81C
|
|
// End Line: 677
|
|
|
|
/* begin block 1.1.1.2.2 */
|
|
// Start line: 677
|
|
// Start offset: 0x000FF81C
|
|
// Variables:
|
|
// struct PAD *this; // $s3
|
|
|
|
/* begin block 1.1.1.2.2.1 */
|
|
// Start line: 677
|
|
// Start offset: 0x000FF81C
|
|
/* end block 1.1.1.2.2.1 */
|
|
// End offset: 0x000FF81C
|
|
// End Line: 677
|
|
/* end block 1.1.1.2.2 */
|
|
// End offset: 0x000FF81C
|
|
// End Line: 677
|
|
|
|
/* begin block 1.1.1.2.3 */
|
|
// Start line: 677
|
|
// Start offset: 0x000FF81C
|
|
// Variables:
|
|
// struct PAD *this; // $s3
|
|
|
|
/* begin block 1.1.1.2.3.1 */
|
|
// Start line: 677
|
|
// Start offset: 0x000FF81C
|
|
/* end block 1.1.1.2.3.1 */
|
|
// End offset: 0x000FF81C
|
|
// End Line: 677
|
|
/* end block 1.1.1.2.3 */
|
|
// End offset: 0x000FF81C
|
|
// End Line: 677
|
|
|
|
/* begin block 1.1.1.2.4 */
|
|
// Start line: 656
|
|
// Start offset: 0x000FF8C0
|
|
// Variables:
|
|
// struct PAD *this; // $s3
|
|
|
|
/* begin block 1.1.1.2.4.1 */
|
|
// Start line: 656
|
|
// Start offset: 0x000FF8C0
|
|
/* end block 1.1.1.2.4.1 */
|
|
// End offset: 0x000FF8C0
|
|
// End Line: 656
|
|
/* end block 1.1.1.2.4 */
|
|
// End offset: 0x000FF8C0
|
|
// End Line: 656
|
|
|
|
/* begin block 1.1.1.2.5 */
|
|
// Start line: 656
|
|
// Start offset: 0x000FF8D8
|
|
// Variables:
|
|
// struct PAD *this; // $s3
|
|
|
|
/* begin block 1.1.1.2.5.1 */
|
|
// Start line: 656
|
|
// Start offset: 0x000FF8D8
|
|
/* end block 1.1.1.2.5.1 */
|
|
// End offset: 0x000FF8D8
|
|
// End Line: 656
|
|
/* end block 1.1.1.2.5 */
|
|
// End offset: 0x000FF8D8
|
|
// End Line: 656
|
|
|
|
/* begin block 1.1.1.2.6 */
|
|
// Start line: 656
|
|
// Start offset: 0x000FF8F0
|
|
// Variables:
|
|
// struct PAD *this; // $s3
|
|
|
|
/* begin block 1.1.1.2.6.1 */
|
|
// Start line: 656
|
|
// Start offset: 0x000FF8F0
|
|
/* end block 1.1.1.2.6.1 */
|
|
// End offset: 0x000FF8F0
|
|
// End Line: 656
|
|
/* end block 1.1.1.2.6 */
|
|
// End offset: 0x000FF8F0
|
|
// End Line: 656
|
|
|
|
/* begin block 1.1.1.2.7 */
|
|
// Start line: 708
|
|
// Start offset: 0x000FF900
|
|
// Variables:
|
|
// struct PAD *this; // $s3
|
|
|
|
/* begin block 1.1.1.2.7.1 */
|
|
// Start line: 708
|
|
// Start offset: 0x000FF900
|
|
/* end block 1.1.1.2.7.1 */
|
|
// End offset: 0x000FF900
|
|
// End Line: 708
|
|
/* end block 1.1.1.2.7 */
|
|
// End offset: 0x000FF900
|
|
// End Line: 708
|
|
|
|
/* begin block 1.1.1.2.8 */
|
|
// Start line: 708
|
|
// Start offset: 0x000FF900
|
|
// Variables:
|
|
// struct PAD *this; // $s3
|
|
|
|
/* begin block 1.1.1.2.8.1 */
|
|
// Start line: 708
|
|
// Start offset: 0x000FF900
|
|
/* end block 1.1.1.2.8.1 */
|
|
// End offset: 0x000FF900
|
|
// End Line: 708
|
|
/* end block 1.1.1.2.8 */
|
|
// End offset: 0x000FF900
|
|
// End Line: 708
|
|
/* end block 1.1.1.2 */
|
|
// End offset: 0x000FF9B0
|
|
// End Line: 718
|
|
/* end block 1.1.1 */
|
|
// End offset: 0x000FF9EC
|
|
// End Line: 726
|
|
/* end block 1.1 */
|
|
// End offset: 0x000FF9EC
|
|
// End Line: 726
|
|
/* end block 1 */
|
|
// End offset: 0x000FFA1C
|
|
// End Line: 726
|
|
|
|
/* begin block 2 */
|
|
// Start line: 1469
|
|
/* end block 2 */
|
|
// End Line: 1470
|
|
|
|
undefined4 FUN_MCARD__000ff6e4(int param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
uint uVar2;
|
|
uint uVar3;
|
|
short local_30;
|
|
short local_2e;
|
|
undefined2 local_2c;
|
|
undefined2 local_2a;
|
|
|
|
do {
|
|
while( true ) {
|
|
FUN_MCARD__000ffc98(param_1,*(undefined4 *)(&DAT_00008258 + param_1),1);
|
|
if (*(int *)(&DAT_0000825c + param_1 +
|
|
*(int *)(&DAT_00008250 + param_1 + *(int *)(&DAT_00008258 + param_1) * 4) * 4) !=
|
|
0x19) {
|
|
return 1;
|
|
}
|
|
if (*(int *)(&DAT_0000825c + param_1 +
|
|
*(int *)(&DAT_00008250 + param_1 + (1 - *(int *)(&DAT_00008258 + param_1)) * 4) *
|
|
4) != 0x19) {
|
|
return 1;
|
|
}
|
|
iVar1 = 0;
|
|
if ((DAT_MCARD__0010ee08 & 1) != 0) {
|
|
if (*(int *)(&DAT_00008230 + param_1) == 0) {
|
|
*(undefined4 *)(&DAT_00008230 + param_1) = 1;
|
|
if ((DAT_MCARD__0010ec9d >> 4 == 1) || (DAT_MCARD__0010ec9f >> 4 == 1)) {
|
|
*(undefined4 *)(&DAT_00008234 + param_1) = 1;
|
|
}
|
|
else {
|
|
*(undefined4 *)(&DAT_00008234 + param_1) = 0;
|
|
}
|
|
iVar1 = 0;
|
|
}
|
|
else {
|
|
iVar1 = *(int *)(&DAT_00008234 + param_1);
|
|
}
|
|
}
|
|
if (iVar1 != 0) break;
|
|
uVar3 = FUN_MCARD__000fecc0(param_1,0);
|
|
if ((uVar3 & 0x4000) != 0) {
|
|
do {
|
|
uVar3 = FUN_MCARD__000fecc0(param_1,0);
|
|
} while ((DAT_MCARD__0010ec8a & uVar3) != 0);
|
|
return 0;
|
|
}
|
|
}
|
|
DrawSync(0);
|
|
VSync(0);
|
|
uVar3 = 0;
|
|
local_30 = *(short *)(DAT_MCARD__0010ec70 + 0x298);
|
|
local_2e = *(undefined2 *)(DAT_MCARD__0010ec70 + 0x29c);
|
|
local_2c = 0x10;
|
|
local_2a = 0x10;
|
|
LoadImage(&local_30,DAT_MCARD__0010ec70 + 0x2a0);
|
|
DrawSync(0);
|
|
iVar1 = DAT_MCARD__0010ec70;
|
|
local_30 = (short)*(undefined4 *)(&DAT_00008218 + param_1);
|
|
local_2e = (short)*(undefined4 *)(&DAT_0000821c + param_1);
|
|
*(int *)(DAT_MCARD__0010ec70 + 0x298) = (int)local_30;
|
|
*(int *)(iVar1 + 0x29c) = (int)local_2e;
|
|
StoreImage(&local_30,iVar1 + 0x2a0);
|
|
DrawSync(0);
|
|
if ((int)DAT_MCARD__0010ec78 < *(int *)(&DAT_00008218 + param_1)) {
|
|
iVar1 = 0;
|
|
if (*(int *)(&DAT_00008218 + param_1) < (int)DAT_MCARD__0010ec78 + (int)DAT_MCARD__0010ec7c) {
|
|
iVar1 = 0;
|
|
if ((int)DAT_MCARD__0010ec7a < *(int *)(&DAT_0000821c + param_1)) {
|
|
uVar3 = (uint)(*(int *)(&DAT_0000821c + param_1) <
|
|
(int)DAT_MCARD__0010ec7a + (int)DAT_MCARD__0010ec7e);
|
|
goto LAB_MCARD__000ff900;
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
LAB_MCARD__000ff900:
|
|
iVar1 = uVar3 << 1;
|
|
}
|
|
iVar1 = iVar1 * 0x40 + uVar3 * 0x48 + 0x37;
|
|
FUN_MCARD__000fe72c(DAT_MCARD__0010ec70,(int)DAT_MCARD__0010ec78,(int)DAT_MCARD__0010ec7a,
|
|
(int)DAT_MCARD__0010ec7c,(int)DAT_MCARD__0010ec7e,iVar1,iVar1,iVar1);
|
|
FUN_MCARD__000facd4(DAT_MCARD__0010ec70,DAT_MCARD__0010ec70 + 0x44ac,
|
|
*(undefined4 *)(&DAT_00008218 + param_1),
|
|
*(undefined4 *)(&DAT_0000821c + param_1),0x80,0x80,0x80,0);
|
|
uVar2 = FUN_MCARD__000fecc0(param_1,0);
|
|
if (((uVar2 & 0x4000) != 0) && (uVar3 != 0)) {
|
|
do {
|
|
uVar3 = FUN_MCARD__000fecc0(param_1,0);
|
|
} while ((DAT_MCARD__0010ec8a & uVar3) != 0);
|
|
return 0;
|
|
}
|
|
} while( true );
|
|
}
|
|
|
|
|
|
|
|
// decompiled code
|
|
// original method signature:
|
|
// char * /*$ra*/ GetPortName__3PADi(struct PAD *this /*$s1*/, int slot /*$s0*/)
|
|
// line 733, offset 0x001001ac
|
|
/* begin block 1 */
|
|
// Start line: 734
|
|
// Start offset: 0x001001AC
|
|
/* end block 1 */
|
|
// End offset: 0x00100214
|
|
// End Line: 739
|
|
|
|
/* begin block 2 */
|
|
// Start line: 2598
|
|
/* end block 2 */
|
|
// End Line: 2599
|
|
|
|
undefined4 FUN_MCARD__001001ac(int param_1,int param_2)
|
|
|
|
{
|
|
undefined4 uVar1;
|
|
|
|
FUN_MCARD__000ffa1c();
|
|
uVar1 = 0;
|
|
if (*(int *)(param_1 + 0x8000 + *(int *)(param_1 + 0x8000 + param_2 * 4 + 0x250) * 4 + 0x25c) !=
|
|
0x1c) {
|
|
uVar1 = FUN_MCARD__000ff2cc(param_1);
|
|
}
|
|
return uVar1;
|
|
}
|
|
|
|
|
|
|
|
// decompiled code
|
|
// original method signature:
|
|
// char * /*$ra*/ GetControllerPortName__3PAD(struct PAD *this /*$s0*/)
|
|
// line 757, offset 0x00100214
|
|
/* begin block 1 */
|
|
// Start line: 758
|
|
// Start offset: 0x00100214
|
|
/* end block 1 */
|
|
// End offset: 0x00100244
|
|
// End Line: 761
|
|
|
|
/* begin block 2 */
|
|
// Start line: 2641
|
|
/* end block 2 */
|
|
// End Line: 2642
|
|
|
|
/* begin block 3 */
|
|
// Start line: 2646
|
|
/* end block 3 */
|
|
// End Line: 2647
|
|
|
|
void FUN_MCARD__00100214(undefined4 param_1)
|
|
|
|
{
|
|
FUN_MCARD__000ffa1c();
|
|
FUN_MCARD__000ff2cc(param_1,0);
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
// decompiled code
|
|
// original method signature:
|
|
// unsigned int /*$ra*/ CardSelected__3PADi(struct PAD *this /*$a0*/, int slot /*$a1*/)
|
|
// line 778, offset 0x00100244
|
|
/* begin block 1 */
|
|
// Start line: 779
|
|
// Start offset: 0x00100244
|
|
/* end block 1 */
|
|
// End offset: 0x00100260
|
|
// End Line: 780
|
|
|
|
/* begin block 2 */
|
|
// Start line: 2683
|
|
/* end block 2 */
|
|
// End Line: 2684
|
|
|
|
/* begin block 3 */
|
|
// Start line: 2688
|
|
/* end block 3 */
|
|
// End Line: 2689
|
|
|
|
/* begin block 4 */
|
|
// Start line: 2689
|
|
/* end block 4 */
|
|
// End Line: 2690
|
|
|
|
uint FUN_MCARD__00100244(int param_1,int param_2)
|
|
|
|
{
|
|
return (uint)(*(int *)(&DAT_00008258 + param_1) == param_2);
|
|
}
|
|
|
|
|
|
|
|
// decompiled code
|
|
// original method signature:
|
|
// unsigned int /*$ra*/ CurrCardInfoRead__3PAD(struct PAD *this /*$a0*/)
|
|
// line 783, offset 0x00100260
|
|
/* begin block 1 */
|
|
// Start line: 784
|
|
// Start offset: 0x00100260
|
|
/* end block 1 */
|
|
// End offset: 0x0010029C
|
|
// End Line: 785
|
|
|
|
/* begin block 2 */
|
|
// Start line: 2698
|
|
/* end block 2 */
|
|
// End Line: 2699
|
|
|
|
/* begin block 3 */
|
|
// Start line: 2699
|
|
/* end block 3 */
|
|
// End Line: 2700
|
|
|
|
void FUN_MCARD__00100260(int param_1)
|
|
|
|
{
|
|
FUN_MCARD__000f5dfc(*(undefined4 *)
|
|
(&DAT_00008248 + param_1 + *(int *)(&DAT_00008258 + param_1) * 4));
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
// decompiled code
|
|
// original method signature:
|
|
// void /*$ra*/ check_ports__3PAD(struct PAD *this /*$s1*/)
|
|
// line 794, offset 0x000ffa1c
|
|
/* begin block 1 */
|
|
// Start line: 795
|
|
// Start offset: 0x000FFA1C
|
|
/* end block 1 */
|
|
// End offset: 0x000FFC80
|
|
// End Line: 896
|
|
|
|
/* begin block 2 */
|
|
// Start line: 1836
|
|
/* end block 2 */
|
|
// End Line: 1837
|
|
|
|
/* begin block 3 */
|
|
// Start line: 1839
|
|
/* end block 3 */
|
|
// End Line: 1840
|
|
|
|
void FUN_MCARD__000ffa1c(int param_1)
|
|
|
|
{
|
|
if ((DAT_MCARD__0010ec9d >> 4 == 8) && (*(int *)(&DAT_00008260 + param_1) == 0x1c)) {
|
|
*(undefined4 *)(&DAT_0000825c + param_1) = 0x19;
|
|
*(undefined4 *)(&DAT_00008260 + param_1) = 0x19;
|
|
*(undefined4 *)(&DAT_00008264 + param_1) = 0x19;
|
|
*(undefined4 *)(&DAT_00008268 + param_1) = 0x19;
|
|
}
|
|
if ((DAT_MCARD__0010ecbf >> 4 == 8) && (*(int *)(&DAT_00008270 + param_1) == 0x1c)) {
|
|
*(undefined4 *)(&DAT_0000826c + param_1) = 0x19;
|
|
*(undefined4 *)(&DAT_00008270 + param_1) = 0x19;
|
|
*(undefined4 *)(&DAT_00008274 + param_1) = 0x19;
|
|
*(undefined4 *)(&DAT_00008278 + param_1) = 0x19;
|
|
}
|
|
if ((DAT_MCARD__0010ec9d >> 4 != 8) && (*(int *)(&DAT_00008260 + param_1) != 0x1c)) {
|
|
*(undefined4 *)(&DAT_00008260 + param_1) = 0x1c;
|
|
*(undefined4 *)(&DAT_00008264 + param_1) = 0x1c;
|
|
*(undefined4 *)(&DAT_00008268 + param_1) = 0x1c;
|
|
*(undefined4 *)(&DAT_0000825c + param_1) = 0x19;
|
|
if (*(int *)(&DAT_00008250 + param_1) < 4) {
|
|
if (*(int *)(&DAT_00008254 + param_1) == 0) {
|
|
FUN_MCARD__000f5c70(*(undefined4 *)(&DAT_00008248 + param_1),1,0);
|
|
*(undefined4 *)(&DAT_00008250 + param_1) = 4;
|
|
}
|
|
else {
|
|
FUN_MCARD__000f5c70(*(undefined4 *)(&DAT_00008248 + param_1),0,0);
|
|
*(undefined4 *)(&DAT_00008250 + param_1) = 0;
|
|
}
|
|
}
|
|
if (*(int *)(&DAT_00008254 + param_1) < 4) {
|
|
if (*(int *)(&DAT_00008250 + param_1) == 0) {
|
|
FUN_MCARD__000f5c70(*(undefined4 *)(&DAT_0000824c + param_1),1,0);
|
|
*(undefined4 *)(&DAT_00008254 + param_1) = 4;
|
|
}
|
|
else {
|
|
FUN_MCARD__000f5c70(*(undefined4 *)(&DAT_0000824c + param_1),0,0);
|
|
*(undefined4 *)(&DAT_00008254 + param_1) = 0;
|
|
}
|
|
}
|
|
}
|
|
if ((DAT_MCARD__0010ecbf >> 4 != 8) && (*(int *)(&DAT_00008270 + param_1) != 0x1c)) {
|
|
*(undefined4 *)(&DAT_00008270 + param_1) = 0x1c;
|
|
*(undefined4 *)(&DAT_00008274 + param_1) = 0x1c;
|
|
*(undefined4 *)(&DAT_00008278 + param_1) = 0x1c;
|
|
*(undefined4 *)(&DAT_0000826c + param_1) = 0x19;
|
|
if (3 < *(int *)(&DAT_00008250 + param_1)) {
|
|
if (*(int *)(&DAT_00008254 + param_1) == 0) {
|
|
FUN_MCARD__000f5c70(*(undefined4 *)(&DAT_00008248 + param_1),1,0);
|
|
*(undefined4 *)(&DAT_00008250 + param_1) = 4;
|
|
}
|
|
else {
|
|
FUN_MCARD__000f5c70(*(undefined4 *)(&DAT_00008248 + param_1),0,0);
|
|
*(undefined4 *)(&DAT_00008250 + param_1) = 0;
|
|
}
|
|
}
|
|
if (3 < *(int *)(&DAT_00008254 + param_1)) {
|
|
if (*(int *)(&DAT_00008250 + param_1) == 0) {
|
|
FUN_MCARD__000f5c70(*(undefined4 *)(&DAT_0000824c + param_1),1,0);
|
|
*(undefined4 *)(&DAT_00008254 + param_1) = 4;
|
|
}
|
|
else {
|
|
FUN_MCARD__000f5c70(*(undefined4 *)(&DAT_0000824c + param_1),0,0);
|
|
*(undefined4 *)(&DAT_00008254 + param_1) = 0;
|
|
}
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
// decompiled code
|
|
// original method signature:
|
|
// void /*$ra*/ search_ports__3PADib(struct PAD *this /*$s4*/, int slot /*$s0*/, unsigned int cycle /*$a2*/)
|
|
// line 905, offset 0x000ffc98
|
|
/* begin block 1 */
|
|
// Start line: 906
|
|
// Start offset: 0x000FFC98
|
|
/* end block 1 */
|
|
// End offset: 0x000FFE18
|
|
// End Line: 951
|
|
|
|
/* begin block 2 */
|
|
// Start line: 2061
|
|
/* end block 2 */
|
|
// End Line: 2062
|
|
|
|
void FUN_MCARD__000ffc98(int param_1,int param_2)
|
|
|
|
{
|
|
undefined4 uVar1;
|
|
int iVar2;
|
|
int iVar3;
|
|
undefined4 *puVar4;
|
|
int *piVar5;
|
|
int iVar6;
|
|
|
|
iVar6 = param_2 * 4;
|
|
piVar5 = (int *)(&DAT_00008250 + param_1 + iVar6);
|
|
iVar3 = *(int *)(&DAT_0000825c + param_1 + *piVar5 * 4);
|
|
if (iVar3 != 0x18) {
|
|
if (0x18 < iVar3) {
|
|
if (iVar3 != 0x19) {
|
|
return;
|
|
}
|
|
iVar3 = FUN_MCARD__0010029c(param_1);
|
|
*piVar5 = iVar3;
|
|
if (iVar3 == *(int *)(&DAT_00008250 + param_1 + (1 - param_2) * 4)) {
|
|
iVar3 = FUN_MCARD__0010029c(param_1);
|
|
*piVar5 = iVar3;
|
|
}
|
|
iVar2 = *piVar5;
|
|
puVar4 = (undefined4 *)(&DAT_00008248 + iVar6 + param_1);
|
|
iVar3 = iVar2;
|
|
if (iVar2 < 0) {
|
|
iVar3 = iVar2 + 3;
|
|
}
|
|
FUN_MCARD__000f5c70(*puVar4,iVar3 >> 2,iVar2 + (iVar3 >> 2) * -4);
|
|
iVar3 = FUN_MCARD__000f3994(*puVar4);
|
|
if (iVar3 == 0) {
|
|
return;
|
|
}
|
|
uVar1 = FUN_MCARD__000f5474(*puVar4);
|
|
*(undefined4 *)(&DAT_0000825c + param_1 + *piVar5 * 4) = uVar1;
|
|
*(undefined4 *)(param_1 + iVar6 + 0x8224) = 1;
|
|
return;
|
|
}
|
|
if (iVar3 != 0x14) {
|
|
return;
|
|
}
|
|
}
|
|
param_2 = param_2 * 4;
|
|
param_1 = param_1 + 0x8000;
|
|
iVar3 = FUN_MCARD__000f3828(*(undefined4 *)(param_1 + param_2 + 0x248));
|
|
if (iVar3 != 0) {
|
|
*(undefined4 *)(param_1 + *(int *)(param_1 + param_2 + 0x250) * 4 + 0x25c) = 0x19;
|
|
*(undefined4 *)(param_1 + param_2 + 0x224) = 1;
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
// decompiled code
|
|
// original method signature:
|
|
// int /*$ra*/ next_port__3PADi(struct PAD *this /*$a0*/, int port /*$a1*/)
|
|
// line 956, offset 0x0010029c
|
|
/* begin block 1 */
|
|
// Start line: 957
|
|
// Start offset: 0x0010029C
|
|
/* end block 1 */
|
|
// End offset: 0x001002A4
|
|
// End Line: 973
|
|
|
|
/* begin block 2 */
|
|
// Start line: 3044
|
|
/* end block 2 */
|
|
// End Line: 3045
|
|
|
|
/* begin block 3 */
|
|
// Start line: 3060
|
|
/* end block 3 */
|
|
// End Line: 3061
|
|
|
|
undefined4 FUN_MCARD__0010029c(undefined4 param_1,undefined4 param_2)
|
|
|
|
{
|
|
return param_2;
|
|
}
|
|
|
|
|
|
|
|
// decompiled code
|
|
// original method signature:
|
|
// int /*$ra*/ GetCurrNoUsedBlocks__3PAD(struct PAD *this /*$a0*/)
|
|
// line 978, offset 0x001002a4
|
|
/* begin block 1 */
|
|
// Start line: 979
|
|
// Start offset: 0x001002A4
|
|
/* end block 1 */
|
|
// End offset: 0x001002E0
|
|
// End Line: 980
|
|
|
|
/* begin block 2 */
|
|
// Start line: 3088
|
|
/* end block 2 */
|
|
// End Line: 3089
|
|
|
|
/* begin block 3 */
|
|
// Start line: 3089
|
|
/* end block 3 */
|
|
// End Line: 3090
|
|
|
|
void FUN_MCARD__001002a4(int param_1)
|
|
|
|
{
|
|
FUN_MCARD__000f5e84(*(undefined4 *)
|
|
(&DAT_00008248 + param_1 + *(int *)(&DAT_00008258 + param_1) * 4));
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
// decompiled code
|
|
// original method signature:
|
|
// unsigned int /*$ra*/ CurrSlotBlocksShared__3PADii(struct PAD *this /*$a0*/, int block1 /*$a1*/, int block2 /*$a2*/)
|
|
// line 984, offset 0x001002e0
|
|
/* begin block 1 */
|
|
// Start line: 985
|
|
// Start offset: 0x001002E0
|
|
/* end block 1 */
|
|
// End offset: 0x0010031C
|
|
// End Line: 986
|
|
|
|
/* begin block 2 */
|
|
// Start line: 3100
|
|
/* end block 2 */
|
|
// End Line: 3101
|
|
|
|
/* begin block 3 */
|
|
// Start line: 3101
|
|
/* end block 3 */
|
|
// End Line: 3102
|
|
|
|
void FUN_MCARD__001002e0(int param_1)
|
|
|
|
{
|
|
FUN_MCARD__000f5d30(*(undefined4 *)
|
|
(&DAT_00008248 + param_1 + *(int *)(&DAT_00008258 + param_1) * 4));
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
// decompiled code
|
|
// original method signature:
|
|
// struct MCSLOT * /*$ra*/ GetCurrSlotPtr__3PAD(struct PAD *this /*$a0*/)
|
|
// line 1001, offset 0x0010031c
|
|
/* begin block 1 */
|
|
// Start line: 1002
|
|
// Start offset: 0x0010031C
|
|
/* end block 1 */
|
|
// End offset: 0x00100340
|
|
// End Line: 1003
|
|
|
|
/* begin block 2 */
|
|
// Start line: 3134
|
|
/* end block 2 */
|
|
// End Line: 3135
|
|
|
|
/* begin block 3 */
|
|
// Start line: 3135
|
|
/* end block 3 */
|
|
// End Line: 3136
|
|
|
|
undefined4 FUN_MCARD__0010031c(int param_1)
|
|
|
|
{
|
|
return *(undefined4 *)(&DAT_00008248 + param_1 + *(int *)(&DAT_00008258 + param_1) * 4);
|
|
}
|
|
|
|
|
|
|
|
// decompiled code
|
|
// original method signature:
|
|
// int /*$ra*/ GetCurrSlot__3PAD(struct PAD *this /*$a0*/)
|
|
// line 1006, offset 0x00100340
|
|
/* begin block 1 */
|
|
// Start line: 1007
|
|
// Start offset: 0x00100340
|
|
/* end block 1 */
|
|
// End offset: 0x00100354
|
|
// End Line: 1008
|
|
|
|
/* begin block 2 */
|
|
// Start line: 3144
|
|
/* end block 2 */
|
|
// End Line: 3145
|
|
|
|
/* begin block 3 */
|
|
// Start line: 3145
|
|
/* end block 3 */
|
|
// End Line: 3146
|
|
|
|
undefined4 FUN_MCARD__00100340(int param_1)
|
|
|
|
{
|
|
return *(undefined4 *)(&DAT_00008258 + param_1);
|
|
}
|
|
|
|
|
|
|
|
// decompiled code
|
|
// original method signature:
|
|
// struct MCSLOT * /*$ra*/ GetDestSlotPtr__3PAD(struct PAD *this /*$a0*/)
|
|
// line 1011, offset 0x00100354
|
|
/* begin block 1 */
|
|
// Start line: 1012
|
|
// Start offset: 0x00100354
|
|
/* end block 1 */
|
|
// End offset: 0x0010037C
|
|
// End Line: 1013
|
|
|
|
/* begin block 2 */
|
|
// Start line: 3154
|
|
/* end block 2 */
|
|
// End Line: 3155
|
|
|
|
/* begin block 3 */
|
|
// Start line: 3155
|
|
/* end block 3 */
|
|
// End Line: 3156
|
|
|
|
/* WARNING: Control flow encountered bad instruction data */
|
|
|
|
MCSLOT * GetDestSlotPtr__3PAD(PAD *this)
|
|
|
|
{
|
|
/* WARNING: Bad instruction - Truncating control flow here */
|
|
halt_baddata();
|
|
}
|
|
|
|
|
|
|
|
// decompiled code
|
|
// original method signature:
|
|
// unsigned int /*$ra*/ CardChanged__3PADi(struct PAD *this /*$a0*/, int slot /*$a1*/)
|
|
// line 1017, offset 0x0010037c
|
|
/* begin block 1 */
|
|
// Start line: 1018
|
|
// Start offset: 0x0010037C
|
|
/* end block 1 */
|
|
// End offset: 0x001003A8
|
|
// End Line: 1022
|
|
|
|
/* begin block 2 */
|
|
// Start line: 3166
|
|
/* end block 2 */
|
|
// End Line: 3167
|
|
|
|
/* begin block 3 */
|
|
// Start line: 3167
|
|
/* end block 3 */
|
|
// End Line: 3168
|
|
|
|
undefined4 FUN_MCARD__0010037c(int param_1,int param_2)
|
|
|
|
{
|
|
int *piVar1;
|
|
|
|
piVar1 = (int *)(param_1 + 0x8224 + param_2 * 4);
|
|
if (*piVar1 != 0) {
|
|
*piVar1 = 0;
|
|
return 1;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
|
|
|
|
// decompiled code
|
|
// original method signature:
|
|
// unsigned int /*$ra*/ CardInserted__3PADi(struct PAD *this /*$a0*/, int slot /*$a1*/)
|
|
// line 1029, offset 0x001003b0
|
|
/* begin block 1 */
|
|
// Start line: 1030
|
|
// Start offset: 0x001003B0
|
|
/* end block 1 */
|
|
// End offset: 0x001003E4
|
|
// End Line: 1031
|
|
|
|
/* begin block 2 */
|
|
// Start line: 3190
|
|
/* end block 2 */
|
|
// End Line: 3191
|
|
|
|
/* begin block 3 */
|
|
// Start line: 3191
|
|
/* end block 3 */
|
|
// End Line: 3192
|
|
|
|
uint FUN_MCARD__001003b0(int param_1,int param_2)
|
|
|
|
{
|
|
return (uint)(*(int *)(param_1 + 0x8000 + *(int *)(param_1 + 0x8000 + param_2 * 4 + 0x250) * 4 +
|
|
0x25c) != 0x19);
|
|
}
|
|
|
|
|
|
|
|
// decompiled code
|
|
// original method signature:
|
|
// void /*$ra*/ CycleSelectedSlot__3PAD(struct PAD *this /*$a0*/)
|
|
// line 1035, offset 0x001003e4
|
|
/* begin block 1 */
|
|
// Start line: 1036
|
|
// Start offset: 0x001003E4
|
|
/* end block 1 */
|
|
// End offset: 0x0010042C
|
|
// End Line: 1039
|
|
|
|
/* begin block 2 */
|
|
// Start line: 3202
|
|
/* end block 2 */
|
|
// End Line: 3203
|
|
|
|
/* begin block 3 */
|
|
// Start line: 3203
|
|
/* end block 3 */
|
|
// End Line: 3204
|
|
|
|
void FUN_MCARD__001003e4(int param_1)
|
|
|
|
{
|
|
if (*(int *)(param_1 + 0x8000 +
|
|
*(int *)(param_1 + 0x8000 + (1 - *(int *)(&DAT_00008258 + param_1)) * 4 + 0x250) * 4
|
|
+ 0x25c) != 0x19) {
|
|
*(int *)(&DAT_00008258 + param_1) = 1 - *(int *)(&DAT_00008258 + param_1);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
// decompiled code
|
|
// original method signature:
|
|
// unsigned int /*$ra*/ CardFormatted__3PADi(struct PAD *this /*$a0*/, int slot /*$a1*/)
|
|
// line 1049, offset 0x0010042c
|
|
/* begin block 1 */
|
|
// Start line: 1050
|
|
// Start offset: 0x0010042C
|
|
/* end block 1 */
|
|
// End offset: 0x00100460
|
|
// End Line: 1051
|
|
|
|
/* begin block 2 */
|
|
// Start line: 3230
|
|
/* end block 2 */
|
|
// End Line: 3231
|
|
|
|
/* begin block 3 */
|
|
// Start line: 3231
|
|
/* end block 3 */
|
|
// End Line: 3232
|
|
|
|
uint FUN_MCARD__0010042c(int param_1,int param_2)
|
|
|
|
{
|
|
return (uint)(*(int *)(param_1 + 0x8000 + *(int *)(param_1 + 0x8000 + param_2 * 4 + 0x250) * 4 +
|
|
0x25c) != 0x18);
|
|
}
|
|
|
|
|
|
|
|
// decompiled code
|
|
// original method signature:
|
|
// int /*$ra*/ FormatCard__3PADi(struct PAD *this /*$a0*/, int slot /*$a1*/)
|
|
// line 1054, offset 0x00100460
|
|
/* begin block 1 */
|
|
// Start line: 1055
|
|
// Start offset: 0x00100460
|
|
/* end block 1 */
|
|
// End offset: 0x001004C8
|
|
// End Line: 1059
|
|
|
|
/* begin block 2 */
|
|
// Start line: 3240
|
|
/* end block 2 */
|
|
// End Line: 3241
|
|
|
|
/* begin block 3 */
|
|
// Start line: 3241
|
|
/* end block 3 */
|
|
// End Line: 3242
|
|
|
|
undefined4 FUN_MCARD__00100460(int param_1,int param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined4 uVar2;
|
|
|
|
param_1 = param_1 + 0x8000;
|
|
iVar1 = FUN_MCARD__000f3b04(*(undefined4 *)(param_1 + param_2 * 4 + 0x248));
|
|
uVar2 = 0xffffffff;
|
|
if (iVar1 == 0x14) {
|
|
uVar2 = 0x14;
|
|
*(undefined4 *)(param_1 + *(int *)(param_1 + param_2 * 4 + 0x250) * 4 + 0x25c) = 0x14;
|
|
}
|
|
return uVar2;
|
|
}
|
|
|
|
|
|
|
|
|
|
|