Ray3 main debug stub

This commit is contained in:
2025-05-30 00:18:17 +08:00
parent ea677e6de7
commit acb9d47e0e
6 changed files with 50 additions and 27 deletions

View File

@@ -220,16 +220,17 @@ LAB_004017ce:
}
}
fclose(pFVar5);
/* Open reg key
HKEY_LOCAL_MACHINE\\SOFTWARE\\UBI SOFT\\RAYMAN 3 */
LVar6 = RegOpenKeyExA((HKEY)0x80000002,s_SOFTWARE_UBI_SOFT_RAYMAN_3_005b6864,0,0x20019,
(PHKEY)&stack0xfffff7b8);
/* Open reg key
HKEY_LOCAL_MACHINE\\SOFTWARE\\UBI SOFT\\RAYMAN 3 */
HKEY key;
LVar6 = RegOpenKeyExA(HKEY_LOCAL_MACHINE,s_SOFTWARE_UBI_SOFT_RAYMAN_3_005b6864,0,0x20019,
&key);
if (LVar6 == 0) {
LVar6 = RegQueryValueExA(unaff_ESI,s_CompleteInstall_005b6854,(LPDWORD)0x0,&pvStack_834,
LVar6 = RegQueryValueExA(key,s_CompleteInstall_005b6854,(LPDWORD)0x0,&pvStack_834,
uStack_83c,&pHStack_838);
DAT_007d9cc4 = (uint)(LVar6 == 0);
if (unaff_ESI != (HKEY)0x0) {
RegCloseKey(unaff_ESI);
if (key != (HKEY)0x0) {
RegCloseKey(key);
}
}
else {
@@ -540,25 +541,27 @@ LAB_004017ce:
r3_checkDisc();
dwOptions = 0;
BVar18 = 0;
lpTargetHandle = (LPHANDLE)&stack0xfffff7ac;
HANDLE duplicatedHandle;
DVar7 = 0x1f03ff;
g_hinstance = instance;
hTargetProcessHandle = GetCurrentProcess();
hSourceHandle = GetCurrentThread();
hSourceProcessHandle = GetCurrentProcess();
DuplicateHandle(hSourceProcessHandle,hSourceHandle,hTargetProcessHandle,lpTargetHandle,DVar7,
DuplicateHandle(hSourceProcessHandle,hSourceHandle,hTargetProcessHandle,&duplicatedHandle,DVar7,
BVar18,dwOptions);
/* Copy cmdline */
ppCVar8 = puStack_14;
g_mainThreadHandle = lpBuffer;
do {
uVar14 = *ppCVar8;
*(char *)(((int)g_appCmdLine - (int)puStack_14) + (int)ppCVar8) = (char)uVar14;
ppCVar8 = (uint *)((int)ppCVar8 + 1);
} while ((char)uVar14 != '\0');
g_mainThreadHandle = duplicatedHandle;
// do {
// uVar14 = *ppCVar8;
// *(char *)(((int)g_appCmdLine - (int)puStack_14) + (int)ppCVar8) =
// (char)uVar14; ppCVar8 = (uint *)((int)ppCVar8 + 1);
// } while ((char)uVar14 != '\0');
LPSTR cmdline = GetCommandLineA();
strncpy(g_appCmdLine, cmdline, std::size(g_appCmdLine));
/* SEM_FAILCRITICALERRORS */
SetErrorMode(1);
pcVar4 = strstr(puStack_14,s_dashCC);
pcVar4 = strstr(cmdline, s_dashCC);
if (pcVar4 == (char *)0x0) {
r3_initAllModules();
iVar13 = setupWindow(instance,uStack_10,g_runMaximized);
@@ -570,21 +573,22 @@ LAB_004017ce:
spawnThread();
r3_noop(p_cTxt1,p_cTxt2);
gfx_init2();
lpRect = (LPRECT)&stack0xfffff7c0;
RECT rect;
hWnd = GetDesktopWindow();
GetWindowRect(hWnd,lpRect);
GetWindowRect(hWnd,&rect);
BVar18 = 1;
iVar13 = r3_get_gli_height1();
iVar13 = iVar13 + 0x20;
iVar10 = r3_get_gli_width1();
iVar10 = iVar10 + 0xc;
iVar11 = r3_get_gli_height1();
iVar11 = (int)(pvStack_834 - iVar11) / 2;
iVar11 = (int)(rect.top - iVar11) / 2;
iVar12 = r3_get_gli_width1();
MoveWindow(g_gameHWND,(int)(pHStack_838 - iVar12) / 2,iVar11,iVar10,iVar13,BVar18);
MoveWindow(g_gameHWND,(int)(rect.right - iVar12) / 2,iVar11,iVar10,iVar13,BVar18);
FUN_004010b0();
SystemParametersInfoA(0x10,0,&stack0xfffff7b0,0);
SystemParametersInfoA(0x11,0,(PVOID)0x0,0);
DWORD screensaveActive;
SystemParametersInfoA(SPI_GETSCREENSAVEACTIVE,0,&screensaveActive,0);
SystemParametersInfoA(SPI_SETSCREENSAVEACTIVE,0,(PVOID)0x0,0);
ShowCursor(0);
uStack_85c = 0;
SystemParametersInfoA(0x61,1,&uStack_85c,0);