source: Daodan/Daodan.c @ 269

Last change on this file since 269 was 269, checked in by rossy, 13 years ago

Daodan WIP

File size: 2.5 KB
Line 
1#include "Daodan.h"
2#include "Daodan_Patch.h"
3#include "Daodan_Utility.h"
4
5#include "BFW_Utility.h"
6
7HMODULE DDrDLLModule;
8HMODULE DDrONiModule;
9
10bool DDrPatch_Init()
11{
12        // Font texture cache doubled
13        DDrPatch_Byte ((void*)0x00400000 + 0x00020ea7, 0x20);
14        DDrPatch_Byte ((void*)0x00400000 + 0x00020f4a, 0x40);
15       
16        // Now supports textures up to 512x512
17        DDrPatch_Byte ((void*)0x00400000 + 0x00005251, 0x10);
18       
19        // Non-"_Final" levels are now valid
20        DDrPatch_Byte ((void*)0x00400000 + 0x000206a8, 0x01);
21       
22        // Pathfinding grid cache size x8
23        DDrPatch_Byte ((void*)0x00400000 + 0x0010b03b, 0x20);
24        DDrPatch_Byte ((void*)0x00400000 + 0x0010b04c, 0x20);
25       
26        // Projectile awareness fixed
27        DDrPatch_Byte ((void*)0x00400000 + 0x0009c07c, 0x6c);
28        DDrPatch_Byte ((void*)0x00400000 + 0x0009c080, 0x70);
29        DDrPatch_Byte ((void*)0x00400000 + 0x0009c084, 0x74);
30        DDrPatch_Byte ((void*)0x00400000 + 0x0009c110, 0x6c);
31       
32        // Forced DirectInput (for Windows NT)
33        DDrPatch_Byte ((void*)0x00400000 + 0x00002e6d, 0xeb);
34       
35        // Makes wp_fadetime actually have a function
36        const char fadetime_patch[] = { 0x66, 0x8B, 0x1D, 0xC4, 0x7D, 0x62, 0x00, 0x66, 0x89, 0x5E, 0x46, 0x5B, 0x5E, 0x83, 0xC4, 0x14, 0xC3 };
37        DDrPatch_Const((void*)0x00400000 + 0x0011a889, fadetime_patch);
38        DDrPatch_Byte ((void*)0x00400000 + 0x0011a560, 31);
39       
40        // Sets the fadetime to 4800 by default
41        DDrPatch_Int16((void*)0x00400000 + 0x0011ab0e, 0x12c0);
42       
43        // Hackish fix for Konoko not kicking guns
44        const char kickgun_patch[] = { 0x00, 0x05, 0x00, 0x00, 0x00, 0xC7, 0x05, 0x1C, 0xC9, 0x5E, 0x00, 0x70, 0xB8, 0x43, 0x00, 0xC7, 0x05, 0x20, 0xC9, 0x5E, 0x00, 0x20, 0xBE, 0x43 };
45        DDrPatch_Const((void*)0x00400000 + 0x000dc420, kickgun_patch);
46       
47        // Cooldown timer exploit fix ^_^
48        const char cooldown_patch[] = { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 };
49        DDrPatch_Const((void*)0x00400000 + 0x0011a825, cooldown_patch);
50       
51        const char throwtest_patch[] = { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 };
52        DDrPatch_Const((void*)0x00400000 + 0x000dc190, throwtest_patch);
53       
54        return true;
55}
56
57BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved)
58{
59        switch (fdwReason)
60        {
61                case DLL_PROCESS_ATTACH:
62                        DDrDLLModule = hinstDLL;
63                        DDrONiModule = GetModuleHandle(NULL);
64                       
65                        DDrPatch_MakeJump(UUrStartupMessage, DDrStartupMessage);
66                        DDrPatch_Init();
67                        break;
68        }
69        return TRUE;
70}
Note: See TracBrowser for help on using the repository browser.