Index: /Daodan/src/Daodan.c
===================================================================
--- /Daodan/src/Daodan.c	(revision 273)
+++ /Daodan/src/Daodan.c	(revision 274)
@@ -12,49 +12,49 @@
 {
 	// Font texture cache doubled
-	DDrPatch_Byte ((void*)0x00400000 + 0x00020ea7, 0x20);
-	DDrPatch_Byte ((void*)0x00400000 + 0x00020f4a, 0x40);
+	DDrPatch_Byte  (OniExe + 0x00020ea7, 0x20);
+	DDrPatch_Byte  (OniExe + 0x00020f4a, 0x40);
 	
 	// Now supports textures up to 512x512
-	DDrPatch_Byte ((void*)0x00400000 + 0x00005251, 0x10);
+	DDrPatch_Byte  (OniExe + 0x00005251, 0x10);
 	
 	// Non-"_Final" levels are now valid
-	DDrPatch_Byte ((void*)0x00400000 + 0x000206a8, 0x01);
+	DDrPatch_Byte  (OniExe + 0x000206a8, 0x01);
 	
 	// Pathfinding grid cache size x8
-	DDrPatch_Byte ((void*)0x00400000 + 0x0010b03b, 0x20);
-	DDrPatch_Byte ((void*)0x00400000 + 0x0010b04c, 0x20);
+	DDrPatch_Byte  (OniExe + 0x0010b03b, 0x20);
+	DDrPatch_Byte  (OniExe + 0x0010b04c, 0x20);
 	
 	// Projectile awareness fixed
-	DDrPatch_Byte ((void*)0x00400000 + 0x0009c07c, 0x6c);
-	DDrPatch_Byte ((void*)0x00400000 + 0x0009c080, 0x70);
-	DDrPatch_Byte ((void*)0x00400000 + 0x0009c084, 0x74);
-	DDrPatch_Byte ((void*)0x00400000 + 0x0009c110, 0x6c);
+	DDrPatch_Byte  (OniExe + 0x0009c07c, 0x6c);
+	DDrPatch_Byte  (OniExe + 0x0009c080, 0x70);
+	DDrPatch_Byte  (OniExe + 0x0009c084, 0x74);
+	DDrPatch_Byte  (OniExe + 0x0009c110, 0x6c);
 	
 	// Forced DirectInput (for Windows NT)
-	DDrPatch_Byte ((void*)0x00400000 + 0x00002e6d, 0xeb);
+	DDrPatch_Byte  (OniExe + 0x00002e6d, 0xeb);
 	
 	// Makes wp_fadetime actually have a function
 	const char fadetime_patch[] = { 0x66, 0x8B, 0x1D, 0xC4, 0x7D, 0x62, 0x00, 0x66, 0x89, 0x5E, 0x46, 0x5B, 0x5E, 0x83, 0xC4, 0x14, 0xC3 };
-	DDrPatch_Const((void*)0x00400000 + 0x0011a889, fadetime_patch);
-	DDrPatch_Byte ((void*)0x00400000 + 0x0011a560, 31);
+	DDrPatch_Const (OniExe + 0x0011a889, fadetime_patch);
+	DDrPatch_Byte  (OniExe + 0x0011a560, 0x31);
 	
 	// Sets the fadetime to 4800 by default
-	DDrPatch_Int16((void*)0x00400000 + 0x0011ab0e, 0x12c0);
+	DDrPatch_Int16 (OniExe + 0x0011ab0e, 0x12c0);
 	
 	// Hackish fix for Konoko not kicking guns
 	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 };
-	DDrPatch_Const((void*)0x00400000 + 0x000dc420, kickgun_patch);
+	DDrPatch_Const (OniExe + 0x000dc420, kickgun_patch);
 	
 	// Cooldown timer exploit fix ^_^
 	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 };
-	DDrPatch_Const((void*)0x00400000 + 0x0011a825, cooldown_patch);
+	DDrPatch_Const (OniExe + 0x0011a825, cooldown_patch);
 	
 //	const char throwtest_patch[] = { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 };
-//	DDrPatch_Const((void*)0x00400000 + 0x000dc190, throwtest_patch);
+//	DDrPatch_Const(OniExe + 0x000dc190, throwtest_patch);
 	
 	return true;
 }
 
-void DDrMain(int argc, char* argv[])
+void __cdecl DDrMain(int argc, char* argv[])
 {
 	DDrPatch_Init();
@@ -74,5 +74,5 @@
 			DDrONiModule = GetModuleHandle(NULL);
 			
-			DDrPatch_MakeCall((void*)0x00400000 + 0x0010fb49, DDrMain);
+			DDrPatch_MakeCall(OniExe + 0x0010fb49, DDrMain);
 			
 			break;
Index: /Daodan/src/Daodan_Patch.h
===================================================================
--- /Daodan/src/Daodan_Patch.h	(revision 273)
+++ /Daodan/src/Daodan_Patch.h	(revision 274)
@@ -6,4 +6,6 @@
 
 #define DDrPatch_Const(d, c) DDrPatch_String(d, c, sizeof(c))
+
+#define OniExe ((void*)0x00400000)
 
 bool DDrPatch_MakeJump(void* from, void* to);
Index: /Daodan/src/Oni_Symbols.S
===================================================================
--- /Daodan/src/Oni_Symbols.S	(revision 273)
+++ /Daodan/src/Oni_Symbols.S	(revision 274)
@@ -2,7 +2,11 @@
 
 // MSVC6.0 stdlib
+symbol ( _oni_malloc           , 0x0011fc24 )
+symbol ( _oni_free             , 0x0011fbf5 )
+
 symbol ( _oni_fopen            , 0x0011ea9f )
+symbol ( _oni_fflush           , 0x0011eab2 )
 symbol ( _oni_fprintf          , 0x0011ebbf )
-symbol ( _oni_fflush           , 0x0011eab2 )
+symbol ( _oni_vsprintf         , 0x0011e860 )
 
 // Oni Engine
