Index: Daodan/build.bat
===================================================================
--- Daodan/build.bat	(revision 329)
+++ Daodan/build.bat	(revision 339)
@@ -1,1 +1,1 @@
-gcc -O3 -s -Wall -shared -fomit-frame-pointer -o build\binkw32.dll src\Oni_Symbols.S src\Daodan.c src\Daodan_DLLStubs.c src\Daodan_Patch.c src\Daodan_Utility.c src\Daodan_Win32.c src\daodan_gl.c -lgdi32
+gcc -O3 -s -Wall -shared -fomit-frame-pointer -o build\binkw32.dll src\Oni_Symbols.S src\Daodan.c src\Daodan_DLLStubs.c src\Daodan_Patch.c src\Daodan_Utility.c src\Daodan_Win32.c src\Daodan_Cheater.c src\Daodan_Persistence.c src\daodan_gl.c -lgdi32
Index: Daodan/src/Daodan.c
===================================================================
--- Daodan/src/Daodan.c	(revision 329)
+++ Daodan/src/Daodan.c	(revision 339)
@@ -3,6 +3,10 @@
 #include "Daodan_Utility.h"
 #include "Daodan_Win32.h"
+#include "Daodan_Cheater.h"
+#include "Daodan_Persistence.h"
 
 #include "Oni.h"
+#include "Oni_Persistence.h"
+
 #include "BFW_Utility.h"
 
@@ -83,4 +87,8 @@
 	DDrPatch_Byte  (OniExe + 0x0002e9dc, 0xeb);
 	
+	// Cheat table patch
+	DDrPatch_Int32 (OniExe + 0x000f616b, (int)&DDr_CheatTable[0].name);
+	DDrPatch_Int32 (OniExe + 0x000f617a, (int)&DDr_CheatTable[0].message_on);
+	
 	return true;
 }
@@ -100,4 +108,7 @@
 	DDrPatch_MakeJump(UUrMachineTime_High_Frequency, DDrMachineTime_High_Frequency);
 	DDrPatch_MakeJump(UUrMachineTime_Sixtieths, DDrMachineTime_Sixtieths);
+	
+	// Cheats always enabled
+	DDrPatch_MakeJump(ONrPersist_GetWonGame, DDrPersist_GetWonGame);
 	
 	// Windowed mode
Index: Daodan/src/Daodan_Cheater.c
===================================================================
--- Daodan/src/Daodan_Cheater.c	(revision 339)
+++ Daodan/src/Daodan_Cheater.c	(revision 339)
@@ -0,0 +1,34 @@
+#include <string.h>
+
+#include "Daodan_Cheater.h"
+
+oniCheatCode DDr_CheatTable[] = {
+	{ "shapeshifter",   "Change Characters Enabled", "Change Characters Disabled", 0x00 },
+	{ "liveforever",    "Invincibility Enabled",     "Invincibility Disabled",     0x01 },
+	{ "touchofdeath",   "Omnipotence Enabled",       "Omnipotence Disabled",       0x02 },
+	{ "canttouchthis",  "Unstoppable Enabled",       "Unstoppable Disabled",       0x03 },
+	{ "fatloot",        "Fat Loot Received",         NULL,                         0x04 },
+	{ "glassworld",     "Glass Furniture Enabled",   "Glass Furniture Disabled",   0x05 },
+	{ "winlevel",       "Instantly Win Level",       NULL,                         0x06 },
+	{ "loselevel",      "Instantly Lose Level",      NULL,                         0x07 },
+	{ "bighead",        "Big Head Enabled",          "Big Head Disabled",          0x08 },
+	{ "minime",         "Mini Mode Enabled",         "Mini Mode Disabled",         0x09 },
+	{ "superammo",      "Super Ammo Mode Enabled",   "Super Ammo Mode Disabled",   0x0a },
+	{ "thedayismine",   "Developer Access Enabled",  "Developer Access Disabled",  0x0b },
+	{ "x",              "Developer Access Enabled",  "Developer Access Disabled",  0x0b },
+	{ "reservoirdogs",  "Last Man Standing Enabled", "Last Man Standing Disabled", 0x0c },
+	{ "roughjustice",   "Gatling Guns Enabled",      "Gatling Guns Disabled",      0x0d },
+	{ "chenille",       "Daodan Power Enabled",      "Daodan Power Disabled",      0x0e },
+	{ "behemoth",       "Godzilla Mode Enabled",     "Godzilla Mode Disabled",     0x0f },
+	{ "elderrune",      "Regeneration Enabled",      "Regeneration Disabled",      0x10 },
+	{ "moonshadow",     "Phase Cloak Enabled",       "Phase Cloak Disabled",       0x11 },
+	{ "munitionfrenzy", "Weapons Locker Created",    NULL,                         0x12 },
+	{ "fistsoflegend",  "Fists Of Legend Enabled",   "Fists Of Legend Disabled",   0x13 },
+	{ "killmequick",    "Ultra Mode Enabled",        "Ultra Mode Disabled",        0x14 },
+	{ "carousel",       "Slow Motion Enabled",       "Slow Motion Disabled",       0x15 },
+//	{ "bigbadboss",     "Boss Shield Enabled",       "Boss Shield Disabled",       bigbadboss  },
+//	{ "bulletproof",    "Force Field Enabled",       "Force Field Disabled",       bulletproof },
+//	{ "kangaroo",       "Kangaroo Jump Enabled",     "Kangaroo Jump Disabled",     kangaroo    },
+//	{ "marypoppins",    "Jet Pack Mode Enabled",     "Jet Pack Mode Disabled",     marypoppins },
+	{0}
+};
Index: Daodan/src/Daodan_Cheater.h
===================================================================
--- Daodan/src/Daodan_Cheater.h	(revision 339)
+++ Daodan/src/Daodan_Cheater.h	(revision 339)
@@ -0,0 +1,14 @@
+#pragma once
+#ifndef DAODAN_CHEATER_H
+#define DAODAN_CHEATER_H
+
+typedef struct {
+    const char* name;
+    const char* message_on;
+    const char* message_off;
+    int func;
+} oniCheatCode;
+
+extern oniCheatCode DDr_CheatTable[];
+
+#endif
Index: Daodan/src/Daodan_Persistence.c
===================================================================
--- Daodan/src/Daodan_Persistence.c	(revision 329)
+++ Daodan/src/Daodan_Persistence.c	(revision 339)
@@ -0,0 +1,7 @@
+#include "Daodan.h"
+#include "Daodan_Persistence.h"
+
+uint8_t ONICALL DDrPersist_GetWonGame()
+{
+	return 1;
+}
Index: Daodan/src/Daodan_Persistence.h
===================================================================
--- Daodan/src/Daodan_Persistence.h	(revision 329)
+++ Daodan/src/Daodan_Persistence.h	(revision 339)
@@ -3,5 +3,9 @@
 #define DAODAN_PERSISTENCE_H
 
-onibool ONICALL (*DDrPersist_GetWonGame)();
+#include <stdint.h>
+
+#include "Daodan.h"
+
+uint8_t ONICALL DDrPersist_GetWonGame();
 
 #endif
Index: Daodan/src/Oni_Persistence.h
===================================================================
--- Daodan/src/Oni_Persistence.h	(revision 329)
+++ Daodan/src/Oni_Persistence.h	(revision 339)
@@ -3,7 +3,9 @@
 #define ONI_PERSISTENCE_H
 
+#include <stdint.h>
 #include "Daodan.h"
 
 float ONICALL ONrPersist_GetGamma();
+uint8_t ONICALL ONrPersist_GetWonGame();
 
 #endif
Index: Daodan/src/Oni_Symbols.S
===================================================================
--- Daodan/src/Oni_Symbols.S	(revision 329)
+++ Daodan/src/Oni_Symbols.S	(revision 339)
@@ -20,4 +20,5 @@
 //Oni Persistance
 symbol ( @ONrPersist_GetGamma@0              , 0x0010f450 )
+symbol ( @ONrPersist_GetWonGame@0            , 0x0010f660 )
 
 // BFW_Utility
