diff --git a/src/d_main.c b/src/d_main.c
index a959a86328e09d4a501c3c9b2eea52e197ed478d..9d0afab8188eae101a6cc99d88315e135951f9c5 100644
--- a/src/d_main.c
+++ b/src/d_main.c
@@ -943,9 +943,9 @@ void D_SRB2Main(void)
 #endif
 
 #if defined (_WIN32_WCE) //|| defined (_DEBUG) || defined (GP2X)
-	devparm = !M_CheckParm("-nodebug");
+	devparm = M_CheckParm("-nodebug") == 0;
 #else
-	devparm = M_CheckParm("-debug");
+	devparm = M_CheckParm("-debug") != 0;
 #endif
 
 	// for dedicated server
@@ -1118,7 +1118,7 @@ void D_SRB2Main(void)
 #endif
 	D_CleanFile();
 
-#if 1 // md5s last updated 12/14/14
+#ifndef DEVMODE // md5s last updated 12/14/14
 
 	// Check MD5s of autoloaded files
 	W_VerifyFileMD5(0, ASSET_HASH_SRB2_SRB); // srb2.srb/srb2.wad
diff --git a/src/doomdef.h b/src/doomdef.h
index 4a6d6e5764bc48198d034f2e2e98ce8c5ac9ab26..d07e503668d3f4663192dad4505e9fec12d5034a 100644
--- a/src/doomdef.h
+++ b/src/doomdef.h
@@ -138,7 +138,8 @@
 extern FILE *logstream;
 #endif
 
-#if 0
+//#define DEVMODE // Disable this for release builds to remove excessive cheat commands and enable MD5 checking and stuff, all in one go. :3
+#ifdef DEVMODE
 #define VERSION    0 // Game version
 #define SUBVERSION 0 // more precise version number
 #define VERSIONSTRING "Trunk"
diff --git a/src/m_cheat.c b/src/m_cheat.c
index 8cea4c6ae1ea743e6d998792c550977d1252a70d..2fcbe165f5b7ba5f6cd91964041046de2a9aa344 100644
--- a/src/m_cheat.c
+++ b/src/m_cheat.c
@@ -91,6 +91,33 @@ static UINT8 cheatf_warp(void)
 	return 1;
 }
 
+#ifdef DEVMODE
+static UINT8 cheatf_devmode(void)
+{
+	UINT8 i;
+
+	if (modifiedgame)
+		return 0;
+
+	if (menuactive && currentMenu != &MainDef)
+		return 0; // Only on the main menu!
+
+	S_StartSound(0, sfx_itemup);
+
+	// Just unlock all the things and turn on -debug and console devmode.
+	G_SetGameModified(false);
+	for (i = 0; i < MAXUNLOCKABLES; i++)
+		unlockables[i].unlocked = true;
+	devparm = TRUE;
+	cv_debug |= 0x8000;
+
+	// Refresh secrets menu existing.
+	M_ClearMenus(true);
+	M_StartControlPanel();
+	return 1;
+}
+#endif
+
 static cheatseq_t cheat_ultimate = {
 	0, cheatf_ultimate,
 	{ SCRAMBLE('u'), SCRAMBLE('l'), SCRAMBLE('t'), SCRAMBLE('i'), SCRAMBLE('m'), SCRAMBLE('a'), SCRAMBLE('t'), SCRAMBLE('e'), 0xff }
@@ -115,6 +142,14 @@ static cheatseq_t cheat_warp_joy = {
 	  SCRAMBLE(KEY_LEFTARROW), SCRAMBLE(KEY_UPARROW),
 	  SCRAMBLE(KEY_ENTER), 0xff }
 };
+
+#ifdef DEVMODE
+static cheatseq_t cheat_devmode = {
+	0, cheatf_devmode,
+	{ SCRAMBLE('d'), SCRAMBLE('e'), SCRAMBLE('v'), SCRAMBLE('m'), SCRAMBLE('o'), SCRAMBLE('d'), SCRAMBLE('e'), 0xff }
+};
+#endif
+
 // ==========================================================================
 //                        CHEAT SEQUENCE PACKAGE
 // ==========================================================================
@@ -221,6 +256,9 @@ boolean cht_Responder(event_t *ev)
 	ret += cht_CheckCheat(&cheat_ultimate_joy, (char)ch);
 	ret += cht_CheckCheat(&cheat_warp, (char)ch);
 	ret += cht_CheckCheat(&cheat_warp_joy, (char)ch);
+#ifdef DEVMODE
+	ret += cht_CheckCheat(&cheat_devmode, (char)ch);
+#endif
 	return (ret != 0);
 }