diff --git a/src/d_main.c b/src/d_main.c
index 4c9f78c02fcc5f640646504c94cfb9664eec2c24..f42fc535ef356ab52ccaf355b1ca6f0ce3694ae6 100644
--- a/src/d_main.c
+++ b/src/d_main.c
@@ -240,6 +240,22 @@ static void D_Display(void)
 	if (nodrawers)
 		return; // for comparative timing/profiling
 
+	// Jimita: Switching renderers works by checking
+	// if the game has to do it right when the frame
+	// needs to render. If so, five things will happen:
+	// 1. Interface functions will be called so
+	//    that switching to OpenGL creates a
+	//    GL context, and switching to Software
+	//    allocates screen buffers.
+	// 2. Software will set drawer functions,
+	//    and OpenGL will load textures and
+	//    create plane polygons, if necessary.
+	// 3. Functions related to switching video
+	//    modes (resolution) are called.
+	// 4. Patch data is freed from memory,
+	//    and recached if necessary.
+	// 5. The frame is ready to be drawn!
+
 	// stop movie if needs to change renderer
 	if (setrenderneeded && (moviemode != MM_OFF))
 		M_StopMovie();
@@ -265,6 +281,7 @@ static void D_Display(void)
 		forcerefresh = true; // force background redraw
 	}
 
+	// Jimita
 	D_CheckRendererState();
 
 	// draw buffered stuff to screen
@@ -510,6 +527,8 @@ static void D_Display(void)
 	needpatchrecache = false;
 }
 
+// Jimita: Check the renderer's state
+// after a possible renderer switch.
 void D_CheckRendererState(void)
 {
 	// flush all patches from memory
@@ -1219,9 +1238,8 @@ void D_SRB2Main(void)
 
 	// set user default mode or mode set at cmdline
 	SCR_CheckDefaultMode();
-	// renderer needs to change?
-	// ok cool please just change it
-	// exactly right now please.
+
+	// Jimita: Does the render mode need to change?
 	if ((setrenderneeded != 0) && (setrenderneeded != rendermode))
 	{
 		needpatchflush = true;
diff --git a/src/f_finale.c b/src/f_finale.c
index b97a6206e7314d48ea29162cf2f7a6a820b9281a..637d4bd29c1dbff1cc2a5b619a3a9b54ef75450a 100644
--- a/src/f_finale.c
+++ b/src/f_finale.c
@@ -1495,6 +1495,7 @@ void F_TitleScreenDrawer(void)
 	if (modeattacking)
 		return; // We likely came here from retrying. Don't do a damn thing.
 
+	// Jimita: Load title screen patches.
 	if (needpatchrecache)
 		F_CacheTitleScreen();
 
diff --git a/src/hardware/hw_cache.c b/src/hardware/hw_cache.c
index 7e9efd38b8ab34d7cfbaa01f188f0340b22d3050..a5e6d0ecae87ae51c2e0c5574101d46ef5282d10 100644
--- a/src/hardware/hw_cache.c
+++ b/src/hardware/hw_cache.c
@@ -644,6 +644,7 @@ GLTexture_t *HWR_GetTexture(INT32 tex)
 	if ((unsigned)tex >= gr_numtextures)
 		I_Error("HWR_GetTexture: tex >= numtextures\n");
 #endif
+	// Jimita
 	if (needpatchrecache && (!gr_textures))
 		HWR_PrepLevelCache(gr_numtextures);
 
diff --git a/src/m_menu.c b/src/m_menu.c
index 74d685fd55d1a7e7fe7d6bb3adfcd05f03cf9d92..9bd8c0a7f066d3e443a4358c26e0bd5a52a3b4f2 100644
--- a/src/m_menu.c
+++ b/src/m_menu.c
@@ -4135,6 +4135,7 @@ static void M_DrawAddons(void)
 		return;
 	}
 
+	// Jimita: Load addons menu patches.
 	if (needpatchrecache)
 		M_LoadAddonsPatches();
 
diff --git a/src/p_setup.c b/src/p_setup.c
index afd5ac06aaeb59aa6607956b187349e49ddb949b..7e600d66f0ce5d11566c604ed30cb740eac17bb8 100644
--- a/src/p_setup.c
+++ b/src/p_setup.c
@@ -2943,8 +2943,8 @@ boolean P_SetupLevel(boolean skipprecip)
 	globalweather = mapheaderinfo[gamemap-1]->weather;
 
 #ifdef HWRENDER // not win32 only 19990829 by Kin
-	// gotta free this regardless of rendermode.
-	// maybe we're not in opengl anymore.......
+	// Jimita: Free extrasubsectors regardless of renderer.
+	// Maybe we're not in OpenGL anymore.
 	if (extrasubsectors)
 		free(extrasubsectors);
 	extrasubsectors = NULL;
@@ -3162,7 +3162,7 @@ void HWR_SetupLevel(void)
 #endif
 	// Correct missing sidedefs & deep water trick
 	HWR_CorrectSWTricks();
-	// don't do it twice...
+	// Jimita: Don't call this more than once!
 	if (!extrasubsectors)
 		HWR_CreatePlanePolygons((INT32)numnodes - 1);
 }
diff --git a/src/r_main.c b/src/r_main.c
index 2cca68ff0c9f2f0808e6a197571d31d562c7056c..766c548a2e0e12cbe0c64050f9f0c625ded59fed 100644
--- a/src/r_main.c
+++ b/src/r_main.c
@@ -1339,6 +1339,7 @@ void R_RenderPlayerView(player_t *player)
 		skyVisible1 = skyVisible;
 }
 
+// Jimita
 #ifdef HWRENDER
 void R_InitHardwareMode(void)
 {
diff --git a/src/screen.c b/src/screen.c
index 26d8c7a9d705667964280e6e61ea53147063ce89..c14beb6eb27ffeffd901fed02badb85286b24110 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -172,6 +172,7 @@ void SCR_SetMode(void)
 	if (!(setmodeneeded || setrenderneeded) || WipeInAction)
 		return; // should never happen and don't change it during a wipe, BAD!
 
+	// Jimita
 	if (setrenderneeded)
 	{
 		needpatchflush = true;
@@ -417,6 +418,7 @@ void SCR_ActuallyChangeRenderer(void)
 		setrenderneeded = 0;
 }
 
+// Jimita
 void SCR_ChangeRenderer(void)
 {
 	setrenderneeded = 0;
diff --git a/src/y_inter.c b/src/y_inter.c
index 080e380d1dd2b3ada296f4225fe51850eaa4b507..d55046fff3327dab6e95eb6f1fefb5a796c08db5 100644
--- a/src/y_inter.c
+++ b/src/y_inter.c
@@ -189,6 +189,7 @@ void Y_IntermissionDrawer(void)
 	if (intertype == int_none || rendermode == render_none)
 		return;
 
+	// Jimita
 	if (needpatchrecache)
 	{
 		Y_CleanupData();