func_800E7458 matching

This commit is contained in:
Luciano Ciccariello 2023-01-28 14:48:38 +00:00
parent 9abf0bf212
commit 1f52f0214c
4 changed files with 185 additions and 122 deletions

View File

@ -39,7 +39,7 @@ segments:
- [0x3B790, rodata]
- [0x3B7A0, rodata]
- [0x3B7E8, .rodata, 46FD4]
- [0x3B808, rodata]
- [0x3B828, rodata]
- [0x3BF10, rodata]
- [0x3C160, rodata]
- [0x3CBC4, .rodata, 5D7C0]
@ -61,7 +61,7 @@ segments:
- [0x42000, rodata]
- [0x42398, c, 42398]
- [0x46FD4, c, 46FD4]
- [0x47384, c, 47384]
- [0x4768C, c, 4768C]
- [0x5D7C0, c, 5D7C0]
- [0x5D874, c, 5D874]
- [0x962AC, data]

View File

@ -74,6 +74,7 @@
#define PROGRAM_IWA_LOAD 0x42
#define PROGRAM_IGA_LOAD 0x43
#define PROGRAM_HAGI_LOAD 0x44
#define PROGRAM_UNKNOWN 0x45
#define PROGRAM_TE1 0x46
#define PROGRAM_TE2 0x47
#define PROGRAM_TE3 0x48

View File

@ -97,4 +97,86 @@ void func_800E6FD4(void) {
}
}
const u32 rodataPadding_800DB804 = 0;
extern s32 g_mapTilesetId;
s32 func_800E81FC(s32, s32);
void func_800E4970(void);
void nullsub_9(void) {}
void func_800E738C(void) {
if (D_80073060 == 1) {
if ((D_800978AC != 0 && D_8006C3B0 == 0) ||
(D_800978AC == 0 && func_800E81FC(6, 0) >= 0 &&
func_800E81FC(7, 0) >= 0)) {
if (func_80131F68() != 0) {
PlaySfx(0x80);
}
func_800E346C();
D_80073060++;
return;
}
}
g_api.o.unk3C();
}
void func_800E7458(void) {
s32 pad[0x40];
switch (D_80073060) {
case 0:
g_mapProgramId = PROGRAM_UNKNOWN;
if (D_800978AC != 0) {
D_8006C398 = 1;
D_8006BAFC = 3;
g_mapTilesetId = PROGRAM_UNKNOWN;
}
D_80073060++;
break;
case 1:
if (D_800978AC != 0 && D_8006C3B0 != 0)
break;
if (D_800978AC != 0 || func_800E81FC(12, 0) >= 0) {
D_80073060++;
}
break;
case 2:
if (D_800978AC != 0) {
D_8006C398 = 1;
D_8006BAFC = 0xD;
}
D_80073060++;
break;
case 3:
if (D_800978AC != 0 && D_8006C3B0 != 0)
break;
if (D_800978AC != 0 ||
func_800E81FC(0, 2) >= 0 && func_800E81FC(0, 3) >= 0) {
D_80073060++;
}
break;
case 4:
if (D_800978AC != 0) {
D_8006C398 = 1;
D_8006BAFC = 0x100;
}
D_80073060++;
break;
case 5:
if (D_800978AC != 0 && D_8006C3B0 != 0)
break;
if (D_800978AC != 0 || func_800E81FC(0, 1) >= 0) {
D_8003C9A4 = 0;
D_80073060++;
}
break;
case 6:
g_api.o.Update();
break;
case 7:
func_800E4970();
break;
}
}

View File

@ -3,31 +3,11 @@
#include "objects.h"
#include "sfx.h"
void nullsub_9(void) {}
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800E768C);
void func_800E738C(void) {
if (D_80073060 == 1) {
if ((D_800978AC != 0 && D_8006C3B0 == 0) ||
(D_800978AC == 0 && func_800E81FC(6, 0) >= 0 &&
func_800E81FC(7, 0) >= 0)) {
if (func_80131F68() != 0) {
PlaySfx(0x80);
}
func_800E346C();
D_80073060++;
return;
}
}
g_api.o.unk3C();
}
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800E7AEC);
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800E7458);
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800E768C);
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800E7AEC);
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800E7BB8);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800E7BB8);
void func_800E7D08(void) {
s32 i;
@ -42,7 +22,7 @@ void func_800E7D08(void) {
#ifndef NON_MATCHING
void LoadStageTileset(u32* pTilesetData, s16 y);
INCLUDE_ASM("asm/dra/nonmatchings/47384", LoadStageTileset);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", LoadStageTileset);
#else
void LoadStageTileset(u32* pTilesetData, s16 y) {
RECT sp10;
@ -73,7 +53,7 @@ void LoadStageTileset(u32* pTilesetData, s16 y) {
// Non-matching due to case 2/11
#ifndef NON_MATCHING
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800E7E08);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800E7E08);
#else
void LoadStageTileset(u32* pTilesetData, s16 y);
extern u32 g_Clut;
@ -201,7 +181,7 @@ s32 func_800E7E08(u32 arg0) {
}
#endif
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800E81FC);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800E81FC);
void func_800E8D24(void) {
s8* ptr;
@ -217,7 +197,7 @@ void func_800E8D24(void) {
}
// https://decomp.me/scratch/YhofM
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800E8D54);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800E8D54);
void func_800E8D54(void);
void InitializePads(void) {
@ -250,7 +230,7 @@ void ReadPads(void) {
func_800E8D54();
}
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800E8EE4);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800E8EE4);
s32 func_800E908C(void) {
if (TestEvent(D_80073068) == 1) {
@ -315,7 +295,7 @@ void func_800E92F4(void) {
D_8013B3D0 = 0;
}
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800E930C);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800E930C);
extern Unkstruct_8013B15C D_8013B15C[];
@ -325,7 +305,7 @@ s32 func_800E9508(s32 arg0) {
return temp;
}
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800E9530);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800E9530);
u8 func_800E9610(u32 arg0, u32 arg1) { return D_8013B160[arg0].unk0[arg1]; }
@ -407,7 +387,7 @@ s32 func_800E9804(s32 arg0) {
return ret;
}
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800E9880);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800E9880);
s32 func_800E9B18(s32 arg0, s32 arg1) {
char buffer[0x8];
@ -451,14 +431,14 @@ void GetSaveIcon(u8* dst, s32 iconIdx) {
}
}
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800E9C14);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800E9C14);
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800EA2B0);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800EA2B0);
// This function matches in PSY-Q 3.5: GCC 2.6.0 + aspsx 2.3.4
// probably aspsx
#ifndef NON_MATCHING
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800EA48C);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800EA48C);
#else
extern const char aBaslus00067dra[];
@ -511,7 +491,7 @@ void func_800EA5AC(u16 arg0, u8 arg1, u8 arg2, u8 arg3) {
}
#ifndef NON_EQUIVALENT
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800EA5E4);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800EA5E4);
#else
extern s32 D_8003C78C;
extern s32* D_800A3BB8[];
@ -578,9 +558,9 @@ void func_800EA5E4(s32 arg0) {
}
#endif
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800EA720);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800EA720);
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800EA7CC);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800EA7CC);
s32 func_800EAD0C(void) { // the return type is needed for matching
func_800EA5E4(4);
@ -645,7 +625,7 @@ void func_800EAEEC(void) {
func_800EAEA4();
}
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800EAF28);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800EAF28);
void func_800EAFC8(s32 arg0) {
u8 temp = arg0;
@ -675,15 +655,15 @@ u32 func_800EB03C(void) {
}
}
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800EB098);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800EB098);
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800EB314);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800EB314);
void func_800EB4F8(PixPattern* pix, s32 bitDepth, s32 x, s32 y) {
LoadTPage(pix + 1, bitDepth, 0, x, y, (int)pix->w, (int)pix->h);
}
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800EB534);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800EB534);
void func_800EB6B4(void) {
s32 i;
@ -708,7 +688,7 @@ bool func_800EB720(void) {
return false;
}
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800EB758);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800EB758);
// clears out each entity struct 1 byte at a time
void func_800EBB70(void) {
@ -727,11 +707,11 @@ void func_800EBB70(void) {
}
}
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800EBBAC);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800EBBAC);
// The loop at the end is weird, the rest is matching
#ifndef NON_EQUIVALENT
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800ECBF8);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800ECBF8);
#else
typedef struct {
s16 unk00, unk02;
@ -841,11 +821,11 @@ void func_800ECE2C(void) {
}
}
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800ECE58);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800ECE58);
INCLUDE_ASM("asm/dra/nonmatchings/47384", SetRoomForegroundLayer);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", SetRoomForegroundLayer);
INCLUDE_ASM("asm/dra/nonmatchings/47384", SetRoomBackgroundLayer);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", SetRoomBackgroundLayer);
extern Unkstruct_8003C794* D_8003C794;
@ -905,7 +885,7 @@ DR_ENV* func_800EDB08(POLY_GT4* poly) {
return NULL;
}
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800EDB58);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800EDB58);
s32 AllocPolygons(u8 primitives, s32 count) {
s32 polyIndex = 0;
@ -996,13 +976,13 @@ void FreePolygons(s32 polygonIndex) {
}
}
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800EDEDC);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800EDEDC);
INCLUDE_ASM("asm/dra/nonmatchings/47384", CheckCollision);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", CheckCollision);
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800EFBF8);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800EFBF8);
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800F0334);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800F0334);
extern Unkstruct_aSimCBinDemoKey aSimCBinDemoKey;
@ -1052,7 +1032,7 @@ void func_800F0578(s32 arg0) {
}
}
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800F0608);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800F0608);
typedef struct {
s32 foo[5];
@ -1081,10 +1061,10 @@ loop_1:
goto loop_1;
}
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800F0940);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800F0940);
#ifndef NON_EQUIVALENT
INCLUDE_ASM("asm/dra/nonmatchings/47384", SetNextRoomToLoad);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", SetNextRoomToLoad);
#else
bool SetNextRoomToLoad(u32 chunkX, u32 chunkY) {
RoomLoadDef* pRoomLoad;
@ -1117,7 +1097,7 @@ loop_3:
}
#endif
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800F0CD8);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800F0CD8);
void func_800F1424(void) {
if (D_8009749C[0] & 8) {
@ -1131,7 +1111,7 @@ void func_800F1424(void) {
}
}
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800F14CC);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800F14CC);
s32 func_800F16D0(void) {
if (D_8003C730 != 0)
@ -1171,9 +1151,9 @@ u8 func_800F17C8(s8 arg0[], s32 arg1, s32 arg2) {
}
}
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800F180C);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800F180C);
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800F1868);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800F1868);
void func_800F18C4(s32 arg0, s32 arg1) {
s8 sp10[20];
@ -1190,7 +1170,7 @@ void func_800F18C4(s32 arg0, s32 arg1) {
func_800F1868(arg0, arg1, &sp10);
}
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800F1954);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800F1954);
void func_800F1A3C(s32 arg0) {
if (arg0 == 0) {
@ -1210,20 +1190,20 @@ void func_800F1A3C(s32 arg0) {
}
}
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800F1B08);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800F1B08);
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800F1D54);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800F1D54);
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800F1EB0);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800F1EB0);
void func_800F1FC4(s32 arg0) {
func_800F1EB0((playerX >> 8) + g_CurrentRoomLeft,
(playerY >> 8) + g_CurrentRoomTop, arg0);
}
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800F2014);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800F2014);
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800F2120);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800F2120);
void func_800F223C(void) {
g_mapProgramId ^= 0x20;
@ -1231,7 +1211,7 @@ void func_800F223C(void) {
g_mapProgramId ^= 0x20;
}
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800F2288);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800F2288);
void func_800F2404(s32 arg0) {
s32* temp;
@ -1277,7 +1257,7 @@ void func_800F2404(s32 arg0) {
}
#ifndef NON_EQUIVALENT
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800F24F4);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800F24F4);
#else
void func_801042C4(s32);
void func_80105428();
@ -1330,7 +1310,7 @@ block_18:
}
#endif
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800F2658);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800F2658);
bool func_800F27F4(s32 arg0) {
if (arg0 == 0) {
@ -1343,11 +1323,11 @@ bool func_800F27F4(s32 arg0) {
D_801375C8 = 8;
}
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800F2860);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800F2860);
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800F298C);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800F298C);
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800F483C);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800F483C);
bool IsAlucart(void) {
if (CheckEquipmentItemCount(0xA8, 0) && CheckEquipmentItemCount(0xA7, 0) &&
@ -1356,9 +1336,9 @@ bool IsAlucart(void) {
return false;
}
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800F4994);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800F4994);
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800F4D38);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800F4D38);
void func_800F4F48(void) {
s32 i;
@ -1369,7 +1349,7 @@ void func_800F4F48(void) {
}
}
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800F4FD0);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800F4FD0);
void func_800F53A4(void) {
func_800F4994();
@ -1412,7 +1392,7 @@ bool IsOutsideDrawArea(s32 x0, s32 x1, s32 y0, s32 y1, MenuContext* context) {
}
#ifndef NON_MATCHING
INCLUDE_ASM("asm/dra/nonmatchings/47384", ScissorPolyG4);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", ScissorPolyG4);
bool ScissorPolyG4(POLY_G4* arg0, MenuContext* context);
#else
bool ScissorPolyG4(POLY_G4* poly, MenuContext* context) {
@ -1497,7 +1477,7 @@ bool ScissorPolyGT4(POLY_GT4* poly, MenuContext* context) {
}
#ifndef NON_MATCHING
INCLUDE_ASM("asm/dra/nonmatchings/47384", ScissorSprite);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", ScissorSprite);
#else
bool ScissorSprite(SPRT* sprite, MenuContext* context) {
s16 scissorx0;
@ -1543,13 +1523,13 @@ bool ScissorSprite(SPRT* sprite, MenuContext* context) {
}
#endif
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800F5904);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800F5904);
void func_800F5A90(void) {
func_800F5904(NULL, 96, 96, 64, 64, 0, 0, 0, 0x114, 1, 0);
}
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800F5AE4);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800F5AE4);
void DrawMenuSprite(MenuContext* context, s32 x, s32 y, s32 width, s32 height,
s32 u, s32 v, s32 clut, s32 tpage, s32 arg9,
@ -1596,7 +1576,7 @@ void DrawMenuSprite(MenuContext* context, s32 x, s32 y, s32 width, s32 height,
// Matches with gcc 2.6.0 + aspsx 2.3.4
#ifndef NON_MATCHING
INCLUDE_ASM("asm/dra/nonmatchings/47384", DrawMenuRect);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", DrawMenuRect);
#else
// NOTE: used to draw the menu cursor
void DrawMenuRect(MenuContext* context, s32 posX, s32 posY, s32 width,
@ -1645,7 +1625,7 @@ void func_800F5E68(MenuContext* context, s32 iOption, s32 x, s32 y, s32 w,
DrawMenuRect(context, x, y + (iOption * (h + yGap)), w, h, r, 0, 0);
}
INCLUDE_ASM("asm/dra/nonmatchings/47384", DrawRelicsMenu);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", DrawRelicsMenu);
void DrawMenuAlucardPortrait(MenuContext* ctx) {
DrawMenuSprite(ctx, 0x10, 0x24, 0x40, 0x40, 0, 0x80, 0x150, 0x9C, 1, 0, 0);
@ -1659,7 +1639,7 @@ s32 func_800F62E8(s32 context) {
}
// Apply cloak palette
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800F6304);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800F6304);
void DrawMenuAlucardCloakPreview(MenuContext* ctx) {
DrawMenuSprite(ctx, 0xC0, 0x80, 0x20, 0x40, 0, 0xB0, 0x100, 7, 1, 0, 2);
@ -1739,7 +1719,7 @@ void DrawMenuChar(char ch, int x, int y, MenuContext* context) {
0x196, 0x1E, 1, 0);
}
INCLUDE_ASM("asm/dra/nonmatchings/47384", DrawMenuStr);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", DrawMenuStr);
// https://decomp.me/scratch/S4Dzb
void DrawMenuInt(s32 digit, s32 x, s32 y, MenuContext* context) {
@ -1750,23 +1730,23 @@ void DrawMenuInt(s32 digit, s32 x, s32 y, MenuContext* context) {
} while (digit != 0);
}
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800F6998);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800F6998);
void func_800F6A48(void) {
func_800EA538(6);
func_800EA5E4(0x411);
}
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800F6A70);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800F6A70);
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800F6BEC);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800F6BEC);
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800F6CC0);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800F6CC0);
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800F6DC8);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800F6DC8);
#ifndef NON_EQUIVALENT
INCLUDE_ASM("asm/dra/nonmatchings/47384", DrawSettingsButton);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", DrawSettingsButton);
#else
extern s32 g_menuButtonSettingsCursorPos;
extern s32 g_menuButtonSettingsConfig[];
@ -1843,10 +1823,10 @@ void func_800F7244(void) {
}
}
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800F72BC);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800F72BC);
#ifndef NON_EQUIVALENT
INCLUDE_ASM("asm/dra/nonmatchings/47384", DrawPauseMenu);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", DrawPauseMenu);
#else
void func_800F622C(MenuContext* context);
void func_800F6998(s32, s32 x, s32 y, MenuContext*, s32);
@ -2034,9 +2014,9 @@ void DrawPauseMenu(s32 arg0) {
}
#endif
INCLUDE_ASM("asm/dra/nonmatchings/47384", DrawSpellMenu);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", DrawSpellMenu);
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800F7F64);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800F7F64);
void func_800F82F4(void) {
RECT dstRect;
@ -2053,9 +2033,9 @@ void func_800F82F4(void) {
LoadImage(&dstRect, (u_long*)g_imgUnk8013C270->data);
}
INCLUDE_ASM("asm/dra/nonmatchings/47384", DrawSystemMenu);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", DrawSystemMenu);
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800F84CC);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800F84CC);
void func_800F86E4(void) {
s32 i;
@ -2114,13 +2094,13 @@ void func_800F892C(s32 index, s32 x, s32 y, MenuContext* context) {
((index & 0xF8) * 2) | 0x80, index + 0x1D0, 0x1A, 1, 0);
}
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800F8990); // Draw menu inventory
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800F8990); // Draw menu inventory
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800F8C98);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800F8C98);
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800F8E18);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800F8E18);
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800F8F28);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800F8F28);
void func_800F9690(void) {
POLY_GT4* poly = &D_80086FEC[D_8013783C];
@ -2200,9 +2180,9 @@ void func_800F9808(u32 arg0) {
LoadTPage(oldPos, 0, 0, 0x180, arg0, temp_s0 + 256, 16);
}
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800F98AC);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800F98AC);
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800F99B8);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800F99B8);
void func_800F9D40(s32 arg0, s32 arg1, s32 arg2) {
if (arg2 != 0) {
@ -2235,21 +2215,21 @@ void func_800F9DD0(u8* arg0, u8* arg1) {
}
// https://decomp.me/scratch/VmuNt 99.46%
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800F9E18);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800F9E18);
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800F9F40);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800F9F40);
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800FA034);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800FA034);
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800FA3C4);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800FA3C4);
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800FA60C);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800FA60C);
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800FA7E8);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800FA7E8);
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800FA8C4);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800FA8C4);
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800FA9DC);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800FA9DC);
void func_800FAB1C(void) {
Entity* entity = &g_EntityArray[UNK_ENTITY_4];
@ -2320,19 +2300,19 @@ void func_800FAD34(s32 arg0, u8 arg1, u16 arg2, u16 arg3) {
}
}
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800FADC0);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800FADC0);
void func_800FAE98(void) {
func_800FADC0();
D_800978F8 = 0x40;
}
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800FAEC4);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800FAEC4);
// https://decomp.me/scratch/HEhaF by @pixel-stuck
// matches with gcc 2.6.0 + aspsx 2.3.4
#ifndef NON_MATCHING
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800FAF44);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800FAF44);
#else
void func_800FAF44(s32 arg0) {
s32 var_a0;
@ -2397,7 +2377,7 @@ void func_800FB0FC(void) {
func_800FB004();
}
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800FB160);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800FB160);
bool func_800FB1EC(s32 arg0) {
if (D_801375CC.unk0 == 0) {
@ -2412,18 +2392,18 @@ bool func_800FB1EC(s32 arg0) {
return false;
}
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800FB23C);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800FB23C);
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800FB9BC);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800FB9BC);
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800FBAC4);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800FBAC4);
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800FBC24);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800FBC24);
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800FD39C);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800FD39C);
// https://decomp.me/scratch/XEzwM
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800FD4C0);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800FD4C0);
bool func_800FD5BC(Unkstruct_800FD5BC* arg0) {
s32 temp;
@ -2456,7 +2436,7 @@ extern Unkstruct_800A4B12 D_800A4B12[];
u8 func_800FD688(s32 arg0) { return D_800A4B12[g_playerEquip[arg0]].unk0; }
INCLUDE_ASM("asm/dra/nonmatchings/47384", func_800FD6C4);
INCLUDE_ASM("asm/dra/nonmatchings/4768C", func_800FD6C4);
u8* func_800FD744(s32 context) {
u8* phi_v0 = &D_80097A8D;