Skip to content

Commit

Permalink
add support for older versions of game maker
Browse files Browse the repository at this point in the history
  • Loading branch information
omicronrex committed Feb 6, 2022
1 parent 855d035 commit 409f2ca
Show file tree
Hide file tree
Showing 2 changed files with 68 additions and 32 deletions.
12 changes: 6 additions & 6 deletions DBGHELP.dev
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ ResourceIncludes=
MakeIncludes=
Compiler=-DBUILDING_DLL=1_@@_
CppCompiler=-DBUILDING_DLL=1_@@_
Linker=--def def.def_@@_
Linker="../../../Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib32/libwinmm.a"_@@_
IsCpp=1
Icon=
ExeOutput=
Expand All @@ -28,25 +28,25 @@ Folders=
IncludeVersionInfo=1
SupportXPThemes=0
CompilerSet=3
CompilerSettings=000000d100000000000000001
CompilerSettings=000000d101000000000000001
UnitCount=1

[VersionInfo]
Major=1
Minor=0
Minor=1
Release=0
Build=0
LanguageID=1033
CharsetID=1252
CompanyName=
FileVersion=1.0.0.0
FileVersion=1.1.0.0
FileDescription=GM:Studio Scheduler fix github.com/omicronrex/gms_scheduler_fix
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=
ProductVersion=1.0.0.0
ProductVersion=1.1.0.0
AutoIncBuildNr=0
SyncProduct=1

Expand All @@ -58,5 +58,5 @@ Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
BuildCmd=$(CPP) -c dllmain.cpp -o dllmain.o $(CXXFLAGS)

88 changes: 62 additions & 26 deletions dllmain.cpp
Original file line number Diff line number Diff line change
@@ -1,40 +1,76 @@
#define WNetGetConnectionA WNetGetConnectionA_orig
#include <windows.h>
#undef WNetGetConnectionA
#define DLLEXP extern "C" __declspec(dllexport) __stdcall

extern "C" __declspec(dllexport) __stdcall BOOL SymInitialize(void* a, void* b, void* c) {
//dbghelp.dll
DLLEXP BOOL SymInitialize(void* a, void* b, void* c) {
return TRUE;
}
extern "C" __declspec(dllexport) __stdcall BOOL MiniDumpWriteDump(void* a, void* b, void* c, void* d, void* e, void* f, void* g) {
DLLEXP BOOL MiniDumpWriteDump(void* a, void* b, void* c, void* d, void* e, void* f, void* g) {
return TRUE;
}
extern "C" __declspec(dllexport) __stdcall BOOL SymFromAddr(void* a, void* b, void* c, void* d) {
DLLEXP BOOL SymFromAddr(void* a, void* b, void* c, void* d) {
return TRUE;
}
DLLEXP BOOL SymGetSymFromAddr(void* a, void* b, void* c, void* d) {
return TRUE;
}
DLLEXP BOOL SymSetOptions(void* a) {
return TRUE;
}
DLLEXP DWORD SymGetOptions(void* a) {
return 0;
}
DLLEXP DWORD WNetGetConnectionA(void* a, void* b, void* c) {
return 0;
}
DLLEXP DWORD SymLoadModule64(void* a, void* b, void* c, void* d, void* e, void* f) {
return 4096;
}
DLLEXP BOOL SymGetModuleInfo64(void* a, void* b, void* c) {
return TRUE;
}
DLLEXP BOOL SymGetLineFromAddr64(void* a, void* b, void* c, void* d) {
return TRUE;
}
DLLEXP BOOL SymGetSymFromAddr64(void* a, void* b, void* c, void* d) {
return TRUE;
}


#define ClosePrinter ClosePrinter_orig
#undef ClosePrinter
#define DocumentPropertiesW DocumentPropertiesW_orig
#undef DocumentPropertiesW
#define EnumPrintersW EnumPrintersW_orig
#undef EnumPrintersW
#define GetDefaultPrinterW GetDefaultPrinterW_orig
#undef GetDefaultPrinterW
#define OpenPrinterW OpenPrinterW_orig
#undef OpenPrinterW
#define DocumentPropertiesA DocumentPropertiesA_orig
#undef DocumentPropertiesA
#define EnumPrintersA EnumPrintersA_orig
#undef EnumPrintersA
#define GetDefaultPrinterA GetDefaultPrinterA_orig
#undef GetDefaultPrinterA
#define OpenPrinterA OpenPrinterA_orig
#undef OpenPrinterA

//winspool.drv
DLLEXP WINBOOL ClosePrinter(HANDLE a) {return TRUE;}
DLLEXP LONG DocumentPropertiesW(HWND a, HANDLE b, LPWSTR c, PDEVMODEW d, PDEVMODEW e, DWORD f) {return 0;}
DLLEXP WINBOOL EnumPrintersW(DWORD a, LPWSTR b, DWORD c, LPBYTE d, DWORD e, LPDWORD f, LPDWORD g) {return TRUE;}
DLLEXP WINBOOL GetDefaultPrinterW(LPWSTR a, LPDWORD b) {return TRUE;}
DLLEXP WINBOOL OpenPrinterW(LPWSTR a, LPHANDLE b, LPPRINTER_DEFAULTSW c) {return TRUE;}
DLLEXP LONG DocumentPropertiesA(HWND a, HANDLE b, LPSTR c, PDEVMODEA d, PDEVMODEA e, DWORD f) {return 0;}
DLLEXP WINBOOL EnumPrintersA(DWORD a, LPSTR b, DWORD c, LPBYTE d, DWORD e, LPDWORD f, LPDWORD g) {return TRUE;}
DLLEXP WINBOOL GetDefaultPrinterA(LPSTR a, LPDWORD b) {return TRUE;}
DLLEXP WINBOOL OpenPrinterA(LPSTR a, LPHANDLE b, LPPRINTER_DEFAULTSA c) {return TRUE;}

BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved)
{
switch(fdwReason)
{
case DLL_PROCESS_ATTACH:
{
timeBeginPeriod((UINT)1);
break;
}
case DLL_PROCESS_DETACH:
{
timeEndPeriod((UINT)1);
break;
}
case DLL_THREAD_ATTACH:
{
break;
}
case DLL_THREAD_DETACH:
{
break;
}
}

/* Return TRUE on success, FALSE on failure */
timeBeginPeriod(1);
return TRUE;
}

0 comments on commit 409f2ca

Please sign in to comment.