[Scummvm-git-logs] scummvm master -> 9ef0dfae2debdd325736ea2556dff658ef9293a3

neuromancer noreply at scummvm.org
Tue Jun 9 19:14:34 UTC 2026


This automated email contains information about 4 new commits which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .

Summary:
21a0fa47b9 SCUMM: RA2: better gameplay support for high resolution mode
082fbb3a19 SCUMM: RA2: avoid palette corruption in high resolution mode
eb0ce18ea5 SCUMM: RA: make sure all the debug statements using channels
9ef0dfae2d SCUMM: RA: removed redundant tags from debug messages


Commit: 21a0fa47b99a3d1c3ae37895d78e3c6f9fd66125
    https://github.com/scummvm/scummvm/commit/21a0fa47b99a3d1c3ae37895d78e3c6f9fd66125
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2026-06-09T21:14:12+02:00

Commit Message:
SCUMM: RA2: better gameplay support for high resolution mode

Changed paths:
    engines/scumm/insane/rebel2/rebel.cpp
    engines/scumm/insane/rebel2/rebel.h
    engines/scumm/insane/rebel2/render.cpp


diff --git a/engines/scumm/insane/rebel2/rebel.cpp b/engines/scumm/insane/rebel2/rebel.cpp
index 9959ca44bdd..25c7d9f7a23 100644
--- a/engines/scumm/insane/rebel2/rebel.cpp
+++ b/engines/scumm/insane/rebel2/rebel.cpp
@@ -191,6 +191,7 @@ InsaneRebel2::InsaneRebel2(ScummEngine_v7 *scumm) {
 	_viewY = 0;
 	_hiResPresentationViewX = 0;
 	_hiResPresentationViewY = 0;
+	_gameplayPresentationClipBottom = 179;
 
 	// Damage visual effect counters (FUN_420515/420562/420754/42073B)
 	_damageFlashCounter = 0;
diff --git a/engines/scumm/insane/rebel2/rebel.h b/engines/scumm/insane/rebel2/rebel.h
index 1b263aed8ee..1e26ac3fb71 100644
--- a/engines/scumm/insane/rebel2/rebel.h
+++ b/engines/scumm/insane/rebel2/rebel.h
@@ -894,6 +894,7 @@ public:
 	int _viewY;
 	int _hiResPresentationViewX;
 	int _hiResPresentationViewY;
+	int _gameplayPresentationClipBottom;
 
 	// ---------------------------------------------------------------------------
 	// Damage Visual Effect System
@@ -1053,7 +1054,8 @@ public:
 
 	// Handler-specific explosion rendering
 	void renderExplosionFrame(byte *renderBitmap, int pitch, int width, int height,
-	                          Explosion &explosion, int screenX, int screenY, ExplosionFrameAdvance advance);
+	                          Explosion &explosion, int screenX, int screenY, ExplosionFrameAdvance advance,
+	                          bool resolutionDependentScale);
 	void renderTurretExplosions(byte *renderBitmap, int pitch, int width, int height);     // FUN_409FBC (Handler 0x26)
 	void renderVehicleExplosions(byte *renderBitmap, int pitch, int width, int height);    // FUN_402696 (Handler 8)
 	void renderSpaceExplosions(byte *renderBitmap, int pitch, int width, int height);      // FUN_40F1C5 (Handler 7)
diff --git a/engines/scumm/insane/rebel2/render.cpp b/engines/scumm/insane/rebel2/render.cpp
index 408e4d87411..31088a4d446 100644
--- a/engines/scumm/insane/rebel2/render.cpp
+++ b/engines/scumm/insane/rebel2/render.cpp
@@ -1506,7 +1506,7 @@ void InsaneRebel2::drawLaserBeam(byte *dst, int pitch, int width, int height,
 	int clipLeft = renderHiRes ? 0 : CLIP<int>(_viewX, 0, width - 1);
 	int clipTop = renderHiRes ? 0 : CLIP<int>(_viewY, 0, height - 1);
 	int clipRight = renderHiRes ? MIN(width - 1, 639) : CLIP<int>(_viewX + 319, 0, width - 1);
-	int clipBottom = renderHiRes ? MIN(height - 1, 359) : CLIP<int>(_viewY + 179, 0, height - 1);
+	int clipBottom = renderHiRes ? MIN(height - 1, _gameplayPresentationClipBottom) : CLIP<int>(_viewY + 179, 0, height - 1);
 	if (clipLeft > clipRight || clipTop > clipBottom)
 		return;
 	int edgeClipLeft = CLIP<int>(clipLeft + 1, 1, width - 2);
@@ -2641,6 +2641,10 @@ void InsaneRebel2::renderGameplayPostFrame(byte *renderBitmap, int pitch, int wi
 	// Original: FUN_00403240 only runs handlers when DAT_0047a814 == 0.
 	processMouse();
 
+	_gameplayPresentationClipBottom = statusBarY - 1;
+	if (isHiRes() && _rebelHandler == 7 && curFrame != 0)
+		_gameplayPresentationClipBottom = MIN(_gameplayPresentationClipBottom, 170 * 2 - 1);
+
 	_hiResPresentationViewX = 0;
 	_hiResPresentationViewY = 0;
 	if (isHiRes()) {
@@ -2916,10 +2920,13 @@ void InsaneRebel2::updateDamageEffect(byte *renderBitmap, int pitch, int width,
 
 		// Temporary buffer for scanline rotation (case 1 in original)
 		byte tempLine[640];
+		const bool renderHiRes = isHiRes() && width >= 640 && height >= 400;
+		const int maxY = MIN(height, renderHiRes ? 360 : 180);
 
 		for (int n = numLines; n > 0; n--) {
-			// Pick a random scanline within the gameplay area (0..179, not status bar)
-			int maxY = MIN(height, 180);
+			// Pick a random scanline within the gameplay area, not the status bar.
+			if (maxY <= 0)
+				continue;
 			int scanline = _vm->_rnd.getRandomNumber(maxY - 1);
 
 			byte *linePtr = renderBitmap + pitch * scanline;
@@ -3425,8 +3432,9 @@ void InsaneRebel2::renderHandler7FlySprite(byte *renderBitmap, int pitch, int wi
 	int dstY = renderHiRes ? (nativeY - nativeViewY) * renderScale : nativeY;
 
 	if (renderHiRes) {
+		const int clipBottom = MIN(height, _gameplayPresentationClipBottom + 1);
 		renderNutSpriteScaledClipped(renderBitmap, pitch, width, height,
-			0, 0, width, height, dstX, dstY, nut, spriteIndex, false, renderScale, true);
+			0, 0, width, clipBottom, dstX, dstY, nut, spriteIndex, false, renderScale, true);
 	} else {
 		renderNutSprite(renderBitmap, pitch, width, height, dstX, dstY, nut, spriteIndex);
 	}
@@ -4093,12 +4101,13 @@ void InsaneRebel2::renderExplosions(byte *renderBitmap, int pitch, int width, in
 	}
 }
 
-// renderExplosionFrame -- Shared low-res explosion sprite path.
+// renderExplosionFrame -- Shared explosion sprite path.
 // The original handlers reach this through separate retail functions. In the
-// 320x200 path used here, they share the same scale buckets and centered NUT
-// draw; callers keep their coordinate transforms and frame timing explicit.
+// 320x200 path used here, they share centered NUT drawing; callers keep their
+// coordinate transforms, frame timing, and scale bucket rules explicit.
 void InsaneRebel2::renderExplosionFrame(byte *renderBitmap, int pitch, int width, int height,
-		InsaneRebel2::Explosion &explosion, int screenX, int screenY, ExplosionFrameAdvance advance) {
+		InsaneRebel2::Explosion &explosion, int screenX, int screenY, ExplosionFrameAdvance advance,
+		bool resolutionDependentScale) {
 	if (!explosion.active)
 		return;
 
@@ -4110,14 +4119,16 @@ void InsaneRebel2::renderExplosionFrame(byte *renderBitmap, int pitch, int width
 	if (advance == kExplosionAdvanceBeforeDraw)
 		explosion.counter--;
 
-	// Fixed low-res thresholds (0x0b=11, 0x15=21).
+	const bool renderHiRes = isHiRes() && width >= 640 && height >= 400;
+	const int mediumThreshold = (resolutionDependentScale && renderHiRes) ? 20 : 10;
+	const int largeThreshold = (resolutionDependentScale && renderHiRes) ? 40 : 20;
 	int baseIndex;
-	if (explosion.scale < 11) {
-		baseIndex = 9;
-	} else if (explosion.scale < 21) {
+	if (explosion.scale > largeThreshold) {
+		baseIndex = 29;
+	} else if (explosion.scale > mediumThreshold) {
 		baseIndex = 19;
 	} else {
-		baseIndex = 29;
+		baseIndex = 9;
 	}
 
 	int spriteIndex = baseIndex + (12 - explosion.counter);
@@ -4125,15 +4136,20 @@ void InsaneRebel2::renderExplosionFrame(byte *renderBitmap, int pitch, int width
 	if (_smush_iconsNut->getNumChars() > spriteIndex) {
 		int ew = _smush_iconsNut->getCharWidth(spriteIndex);
 		int eh = _smush_iconsNut->getCharHeight(spriteIndex);
-		const bool renderHiRes = isHiRes() && width >= 640 && height >= 400;
 		int drawX = screenX;
 		int drawY = screenY;
 		if (renderHiRes) {
 			drawX = (screenX - _hiResPresentationViewX) * 2;
 			drawY = (screenY - _hiResPresentationViewY) * 2;
 		}
-		renderNutSprite(renderBitmap, pitch, width, height,
-			drawX - ew / 2, drawY - eh / 2, _smush_iconsNut, spriteIndex);
+		if (renderHiRes) {
+			renderNutSpriteClipped(renderBitmap, pitch, height,
+				0, 0, MIN(width, pitch), _gameplayPresentationClipBottom + 1,
+				drawX - ew / 2, drawY - eh / 2, _smush_iconsNut, spriteIndex);
+		} else {
+			renderNutSprite(renderBitmap, pitch, width, height,
+				drawX - ew / 2, drawY - eh / 2, _smush_iconsNut, spriteIndex);
+		}
 	}
 
 	if (advance == kExplosionAdvanceAfterDraw)
@@ -4156,7 +4172,7 @@ void InsaneRebel2::renderTurretExplosions(byte *renderBitmap, int pitch, int wid
 		int screenX = _explosions[i].x;
 		int screenY = _explosions[i].y;
 		renderExplosionFrame(renderBitmap, pitch, width, height, _explosions[i],
-			screenX, screenY, kExplosionAdvanceAfterDraw);
+			screenX, screenY, kExplosionAdvanceAfterDraw, false);
 	}
 }
 
@@ -4175,13 +4191,13 @@ void InsaneRebel2::renderVehicleExplosions(byte *renderBitmap, int pitch, int wi
 		int screenX = _explosions[i].x - _shipPosX;
 		int screenY = _explosions[i].y - _shipPosY;
 		renderExplosionFrame(renderBitmap, pitch, width, height, _explosions[i],
-			screenX, screenY, kExplosionAdvanceAfterDraw);
+			screenX, screenY, kExplosionAdvanceAfterDraw, false);
 	}
 }
 
 // renderSpaceExplosions -- Handler 7 space explosion rendering (FUN_40F1C5).
 // Position: FUN_0041c720 3D->2D projection.
-// Original scale thresholds are resolution-dependent; current low-res path uses <11/<21.
+// Original scale thresholds are resolution-dependent (<11/<21, doubled in high-res).
 // Secondary NUT: DAT_0047ff00 (FLY004, if DAT_0047a7fc >= 0).
 void InsaneRebel2::renderSpaceExplosions(byte *renderBitmap, int pitch, int width, int height) {
 	if (!_smush_iconsNut)
@@ -4197,7 +4213,7 @@ void InsaneRebel2::renderSpaceExplosions(byte *renderBitmap, int pitch, int widt
 		int screenX = _explosions[i].x;
 		int screenY = _explosions[i].y;
 		renderExplosionFrame(renderBitmap, pitch, width, height, _explosions[i],
-			screenX, screenY, kExplosionAdvanceAfterDraw);
+			screenX, screenY, kExplosionAdvanceAfterDraw, true);
 	}
 
 	// --- Part 2: Corridor/zone hit explosion (FUN_40F1C5 lines 61-85) ---
@@ -4252,8 +4268,14 @@ void InsaneRebel2::renderSpaceExplosions(byte *renderBitmap, int pitch, int widt
 
 			int ew = _smush_iconsNut->getCharWidth(spriteIndex);
 			int eh = _smush_iconsNut->getCharHeight(spriteIndex);
-			renderNutSprite(renderBitmap, pitch, width, height,
-				drawX - ew / 2, drawY - eh / 2, _smush_iconsNut, spriteIndex);
+			if (renderHiRes) {
+				renderNutSpriteClipped(renderBitmap, pitch, height,
+					0, 0, MIN(width, pitch), _gameplayPresentationClipBottom + 1,
+					drawX - ew / 2, drawY - eh / 2, _smush_iconsNut, spriteIndex);
+			} else {
+				renderNutSprite(renderBitmap, pitch, width, height,
+					drawX - ew / 2, drawY - eh / 2, _smush_iconsNut, spriteIndex);
+			}
 
 			debug("Rebel2 H7 corridor explosion: dir=%d frame=%d pos=(%d,%d) cooldown=%d",
 				_spaceShotDirection, spriteIndex, drawX, drawY, _hitCooldown);
@@ -4263,7 +4285,7 @@ void InsaneRebel2::renderSpaceExplosions(byte *renderBitmap, int pitch, int widt
 
 // renderHandler25Explosions -- Handler 25 FPS explosion rendering (FUN_41F29A).
 // Position: world coords + view offset (DAT_0045790c/0e = _rebelViewOffsetX/Y).
-// Original scale thresholds follow Handler 7; current low-res path uses <11/<21. No sound panning.
+// Original scale thresholds follow Handler 7 (<11/<21, doubled in high-res). No sound panning.
 void InsaneRebel2::renderHandler25Explosions(byte *renderBitmap, int pitch, int width, int height) {
 	if (!_smush_iconsNut)
 		return;
@@ -4276,7 +4298,7 @@ void InsaneRebel2::renderHandler25Explosions(byte *renderBitmap, int pitch, int
 		int screenX = _explosions[i].x + _rebelViewOffsetX;
 		int screenY = _explosions[i].y + _rebelViewOffsetY;
 		renderExplosionFrame(renderBitmap, pitch, width, height, _explosions[i],
-			screenX, screenY, kExplosionAdvanceBeforeDraw);
+			screenX, screenY, kExplosionAdvanceBeforeDraw, true);
 	}
 }
 
@@ -4604,25 +4626,26 @@ void InsaneRebel2::renderHandler8PovOverlay(byte *renderBitmap, int pitch, int w
 	fontSet.fonts[3] = _smush_povfontNut;
 
 	ScummEngine_v7 *vm = (ScummEngine_v7 *)_vm;
+	const int povScale = isHiRes() ? 2 : getRebel2IndicatorScale(width, height);
 
 	// Original updates DAT_0047e048 with random(5)+0x23 when random(20)==0.
 	if (getHandler8PovOverlayRandom(vm, 20) == 0)
 		_handler8HudGlyph = (char)(getHandler8PovOverlayRandom(vm, 5) + 0x23);
 
 	drawHandler8PovOverlayText(fontSet, renderBitmap, pitch, width, height,
-		getHandler8PovOverlayString(200), 10, 5, 1, kStyleAlignLeft);
+		getHandler8PovOverlayString(200), 10 * povScale, 5 * povScale, 1, kStyleAlignLeft);
 
 	char buffer[128];
 	Common::sprintf_s(buffer, "^f03&#$%c", _handler8HudGlyph);
 	drawHandler8PovOverlayText(fontSet, renderBitmap, pitch, width, height,
-		buffer, 10, 150, 248, kStyleAlignLeft);
+		buffer, 10 * povScale, 150 * povScale, 248, kStyleAlignLeft);
 
 	const char *text = getHandler8PovOverlayString(203);
 	if (text) {
 		Common::sprintf_s(buffer, text,
 			(unsigned long)(uint32)(int32)getHandler8PovOverlayRandom(vm, 20000));
 		drawHandler8PovOverlayText(fontSet, renderBitmap, pitch, width, height,
-			buffer, 10, 170, 1, kStyleAlignLeft);
+			buffer, 10 * povScale, 170 * povScale, 1, kStyleAlignLeft);
 	}
 
 	text = getHandler8PovOverlayString(202);
@@ -4630,7 +4653,7 @@ void InsaneRebel2::renderHandler8PovOverlay(byte *renderBitmap, int pitch, int w
 		Common::sprintf_s(buffer, text,
 			(unsigned long)(uint32)(int32)getHandler8PovOverlayRandom(vm, -0xd50));
 		drawHandler8PovOverlayText(fontSet, renderBitmap, pitch, width, height,
-			buffer, 220, 160, 1, kStyleAlignLeft);
+			buffer, 220 * povScale, 160 * povScale, 1, kStyleAlignLeft);
 	}
 
 	text = getHandler8PovOverlayString(204);
@@ -4638,7 +4661,7 @@ void InsaneRebel2::renderHandler8PovOverlay(byte *renderBitmap, int pitch, int w
 		Common::sprintf_s(buffer, text, (unsigned long)(uint32)(int32)(int16)_shipPosX,
 			(unsigned long)(uint32)(int32)(int16)_shipPosY);
 		drawHandler8PovOverlayText(fontSet, renderBitmap, pitch, width, height,
-			buffer, 220, 170, 1, kStyleAlignLeft);
+			buffer, 220 * povScale, 170 * povScale, 1, kStyleAlignLeft);
 	}
 
 	if (_handler8HudMessageTimer == 0) {
@@ -4649,7 +4672,7 @@ void InsaneRebel2::renderHandler8PovOverlay(byte *renderBitmap, int pitch, int w
 		_handler8HudMessageTimer--;
 		drawHandler8PovOverlayText(fontSet, renderBitmap, pitch, width, height,
 			getHandler8PovOverlayString(_handler8HudMessageIndex + 0xcd),
-			200, 5, 1, kStyleAlignCenter);
+			200 * povScale, 5 * povScale, 1, kStyleAlignCenter);
 	}
 }
 


Commit: 082fbb3a19a2c3dfe6e11cf15fbaea6e4ead7010
    https://github.com/scummvm/scummvm/commit/082fbb3a19a2c3dfe6e11cf15fbaea6e4ead7010
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2026-06-09T21:14:12+02:00

Commit Message:
SCUMM: RA2: avoid palette corruption in high resolution mode

Changed paths:
    engines/scumm/insane/rebel2/iact.cpp
    engines/scumm/insane/rebel2/menu.cpp
    engines/scumm/smush/rebel/smush_player_ra2.cpp
    engines/scumm/smush/rebel/smush_player_ra2.h


diff --git a/engines/scumm/insane/rebel2/iact.cpp b/engines/scumm/insane/rebel2/iact.cpp
index a96388d0991..6a9cb134570 100644
--- a/engines/scumm/insane/rebel2/iact.cpp
+++ b/engines/scumm/insane/rebel2/iact.cpp
@@ -122,7 +122,10 @@ void InsaneRebel2::procPreRendering(byte *renderBitmap) {
 	// offset on frame 0 doesn't affect the STOR/FTCH mechanism.
 	if (_gameState == kStateChapterSelect && _player) {
 		if (renderBitmap) {
-			memset(renderBitmap, 0, _vm->_screenWidth * _vm->_screenHeight);
+			const int clearWidth = (_player->_width > 0) ? _player->_width : _vm->_screenWidth;
+			const int clearHeight = (_player->_height > 0) ? _player->_height : _vm->_screenHeight;
+			if (clearWidth > 0 && clearHeight > 0)
+				memset(renderBitmap, 0, (size_t)clearWidth * clearHeight);
 		}
 		_player->_fobjOffsetX = _previewOffsetX;
 		_player->_fobjOffsetY = _previewOffsetY;
diff --git a/engines/scumm/insane/rebel2/menu.cpp b/engines/scumm/insane/rebel2/menu.cpp
index b80ece9239a..2a17e4d0e4f 100644
--- a/engines/scumm/insane/rebel2/menu.cpp
+++ b/engines/scumm/insane/rebel2/menu.cpp
@@ -987,9 +987,12 @@ void InsaneRebel2::drawPreviewBox(byte *renderBitmap, int pitch, int width, int
 	// Low-res (320x200) coordinates from FUN_00415CF8:
 	// Outer box: X=0xe4 (228), Y=0x49 (73), W=0x54 (84), H=0x36 (54), color=0xF8
 	// Inner box: X=0xe5 (229), Y=0x4a (74), W=0x52 (82), H=0x34 (52), color=4
+	// High-res uses the original DAT_0047a808 >= 2 formulas, doubling the
+	// low-res anchors and dimensions.
+	const int scale = isHiRes() ? 2 : 1;
 
 	// Outer border (bright)
-	int outerX = 228, outerY = 73, outerW = 84, outerH = 54;
+	int outerX = 228 * scale, outerY = 73 * scale, outerW = 84 * scale, outerH = 54 * scale;
 	byte outerColor = 0xF8;
 
 	// Draw outer box edges
@@ -1021,7 +1024,7 @@ void InsaneRebel2::drawPreviewBox(byte *renderBitmap, int pitch, int width, int
 	}
 
 	// Inner border (dark)
-	int innerX = 229, innerY = 74, innerW = 82, innerH = 52;
+	int innerX = 229 * scale, innerY = 74 * scale, innerW = 82 * scale, innerH = 52 * scale;
 	byte innerColor = 4;
 
 	// Top edge
@@ -1115,6 +1118,8 @@ void InsaneRebel2::drawChapterInfoLine(byte *renderBitmap, int pitch, int width,
 	if (!splayer)
 		return;
 
+	const int scale = isHiRes() ? 2 : 1;
+
 	if (_chapterUnlocked[_chapterSelection]) {
 		// Unlocked: show score info using TRS 80 at X=25 (0x19), Y=190 (0xbe)
 		// TRS 80 = "^f01^c248Pilots: %hd  Score: %ld  Rank: ^f00%s"
@@ -1137,7 +1142,7 @@ void InsaneRebel2::drawChapterInfoLine(byte *renderBitmap, int pitch, int width,
 		Common::String displayStr = Common::String::format(fmtStr,
 			(short)pilotLives, (long)pilotScore, rankStr.c_str());
 
-		drawMenuString(renderBitmap, displayStr.c_str(), 25, 190);
+		drawMenuString(renderBitmap, displayStr.c_str(), 25 * scale, 190 * scale);
 	} else {
 		const char *lockStr = splayer->getString(81);
 		if (!lockStr || !lockStr[0])
@@ -1148,7 +1153,7 @@ void InsaneRebel2::drawChapterInfoLine(byte *renderBitmap, int pitch, int width,
 		Common::String displayStr = Common::String::format("%s ^c005%s%c",
 			lockStr, _passwordInput.c_str(), cursor);
 
-		drawMenuString(renderBitmap, displayStr.c_str(), 30, 190);
+		drawMenuString(renderBitmap, displayStr.c_str(), 30 * scale, 190 * scale);
 	}
 }
 
diff --git a/engines/scumm/smush/rebel/smush_player_ra2.cpp b/engines/scumm/smush/rebel/smush_player_ra2.cpp
index a4484f551c6..1f9e36a6834 100644
--- a/engines/scumm/smush/rebel/smush_player_ra2.cpp
+++ b/engines/scumm/smush/rebel/smush_player_ra2.cpp
@@ -1262,13 +1262,6 @@ void SmushPlayerRebel2::handleGameFrameObjectPost(int codec, const byte *data, i
 	}
 }
 
-void SmushPlayerRebel2::handleGameFrameObjectDecoded(int codec, int left, int top, int width, int height) {
-	if (!ra2IsHighResMode() || isRebel2GameplayActive(_insane))
-		return;
-
-	ra2PromoteCurrentFrameToHiRes(0, 0);
-}
-
 void SmushPlayerRebel2::handleGameFrameStart() {
 	_hasFrameFobjForGost = false;
 	_ra2NativeFrameNeedsClear = ((_curVideoFlags & 0x20) == 0);
@@ -1278,12 +1271,18 @@ void SmushPlayerRebel2::handleGameFrameStart() {
 		_ra2PendingAnimHeaderPalette = false;
 	}
 
-	if (ra2IsHighResMode() && isRebel2GameplayActive(_insane)) {
-		if (_ra2UsingGameplaySurface && _specialBuffer != nullptr &&
-				_specialBufferSize >= kRebel2GameplaySurfaceWidth * kRebel2GameplaySurfaceHeight) {
-			_dst = _specialBuffer;
-			_width = kRebel2GameplaySurfaceWidth;
-			_height = kRebel2GameplaySurfaceHeight;
+	if (ra2IsHighResMode()) {
+		if (isRebel2GameplayActive(_insane)) {
+			if (_ra2UsingGameplaySurface && _specialBuffer != nullptr &&
+					_specialBufferSize >= kRebel2GameplaySurfaceWidth * kRebel2GameplaySurfaceHeight) {
+				_dst = _specialBuffer;
+				_width = kRebel2GameplaySurfaceWidth;
+				_height = kRebel2GameplaySurfaceHeight;
+			} else if (ra2EnsureLowResVideoBuffer()) {
+				_dst = _ra2LowResVideoBuffer;
+				_width = 320;
+				_height = 200;
+			}
 		} else if (ra2EnsureLowResVideoBuffer()) {
 			_dst = _ra2LowResVideoBuffer;
 			_width = 320;
diff --git a/engines/scumm/smush/rebel/smush_player_ra2.h b/engines/scumm/smush/rebel/smush_player_ra2.h
index 86035fc6bc7..45a2869db2a 100644
--- a/engines/scumm/smush/rebel/smush_player_ra2.h
+++ b/engines/scumm/smush/rebel/smush_player_ra2.h
@@ -57,7 +57,6 @@ protected:
 	bool handleGameStoreFrame() override;
 	void handleGameFrameObjectPre(int codec, int left, int top, int width, int height, int dataSize) override;
 	void handleGameFrameObjectPost(int codec, const byte *data, int32 dataSize, int left, int top, int width, int height) override;
-	void handleGameFrameObjectDecoded(int codec, int left, int top, int width, int height) override;
 	void handleGameFrameStart() override;
 	bool handleGameSkipChunk(uint32 subType, int32 subSize, Common::SeekableReadStream &b) override;
 	void handleGameGost(int32 subSize, Common::SeekableReadStream &b) override;


Commit: eb0ce18ea57d48985649455cd80969aee4a08c7c
    https://github.com/scummvm/scummvm/commit/eb0ce18ea57d48985649455cd80969aee4a08c7c
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2026-06-09T21:14:12+02:00

Commit Message:
SCUMM: RA: make sure all the debug statements using channels

Changed paths:
    engines/scumm/insane/rebel/rebel_audio.cpp
    engines/scumm/insane/rebel1/iact.cpp
    engines/scumm/insane/rebel2/audio.cpp
    engines/scumm/insane/rebel2/iact.cpp
    engines/scumm/insane/rebel2/levels.cpp
    engines/scumm/insane/rebel2/menu.cpp
    engines/scumm/insane/rebel2/rebel.cpp
    engines/scumm/insane/rebel2/render.cpp
    engines/scumm/insane/rebel2/runlevels.cpp
    engines/scumm/smush/rebel/font_rebel2.cpp
    engines/scumm/smush/rebel/smush_player_ra1.cpp


diff --git a/engines/scumm/insane/rebel/rebel_audio.cpp b/engines/scumm/insane/rebel/rebel_audio.cpp
index b7856bcc978..9e04c4352b9 100644
--- a/engines/scumm/insane/rebel/rebel_audio.cpp
+++ b/engines/scumm/insane/rebel/rebel_audio.cpp
@@ -73,7 +73,7 @@ void RebelAudio::queueData(int trackIdx, const uint8 *data, int32 size, int volu
 	const int sourceRate = sampleRate > 0 ? sampleRate : _sampleRate;
 
 	if (!_streams[trackIdx]) {
-		debug(1, "RebelAudio: Creating audio stream for track %d at %d Hz", trackIdx, _sampleRate);
+		debugC(DEBUG_INSANE, "RebelAudio: Creating audio stream for track %d at %d Hz", trackIdx, _sampleRate);
 		_streams[trackIdx] = Audio::makeQueuingAudioStream(_sampleRate, false);
 		_trackActive[trackIdx] = true;
 		_vm->_mixer->playStream(Audio::Mixer::kSFXSoundType, &_handles[trackIdx],
diff --git a/engines/scumm/insane/rebel1/iact.cpp b/engines/scumm/insane/rebel1/iact.cpp
index 59c2e7b5861..dada01703ef 100644
--- a/engines/scumm/insane/rebel1/iact.cpp
+++ b/engines/scumm/insane/rebel1/iact.cpp
@@ -636,7 +636,7 @@ bool InsaneRebel1::handleFrameObjectTarget(int16 objectId, int16 left, int16 top
 		// replacement/death frame. This is used heavily by Level 9 troopers.
 		_frameObjectState[byteIndex] &= ~bit;
 		_frameObjectHitRevealPending = false;
-		debug(5, "RA1 FOBJ reveal: object=%d frameObjectByte=%d bit=0x%02x",
+		debugC(DEBUG_INSANE, "RA1 FOBJ reveal: object=%d frameObjectByte=%d bit=0x%02x",
 			objectId, byteIndex, bit);
 	}
 
@@ -1293,7 +1293,7 @@ void InsaneRebel1::updateShipPhysics() {
 	if (_currentLevel != 6)
 		checkDynamicLevelBranch();
 
-	debug(7, "RA1 ship: pos=(%d,%d) roll=%d lift=%d accX=%d accY=%d dir=%d health=%d corridor=[%d,%d]-[%d,%d]",
+	debugC(DEBUG_INSANE, "RA1 ship: pos=(%d,%d) roll=%d lift=%d accX=%d accY=%d dir=%d health=%d corridor=[%d,%d]-[%d,%d]",
 		_shipPosX, _shipPosY, _rollAccum, _liftSmooth,
 		_posAccumX, _posAccumY, _shipDirIndex, _health,
 		_corridorLeftX, _corridorTopY, _corridorRightX, _corridorBottomY);
@@ -1858,7 +1858,7 @@ void InsaneRebel1::updateGameOp0BPhysics() {
 
 	checkDynamicLevelBranch();
 
-	debug(7, "RA1 GAME 0x0B: pos=(%d,%d) avg=(%d,%d) view=(%d,%d) health=%d flash=%d",
+	debugC(DEBUG_INSANE, "RA1 GAME 0x0B: pos=(%d,%d) avg=(%d,%d) view=(%d,%d) health=%d flash=%d",
 		_shipPosX, _shipPosY, _avgInputX, _avgInputY,
 		_perspectiveX, _perspectiveY, _health, _screenFlash);
 }
@@ -2103,7 +2103,7 @@ void InsaneRebel1::handleGameOpcode5EReset(uint32 param1) {
 	// RA1 dispatcher inline reset/init path (FUN_1BE1B case 0x5E).
 	// This is not a pure control-mode assignment.
 	if (_frameDispatchFlags & 0x40) {
-		debug(7, "RA1 GAME 0x5E: reset suppressed by dispatch flags=0x%02x",
+		debugC(DEBUG_INSANE, "RA1 GAME 0x5E: reset suppressed by dispatch flags=0x%02x",
 			_frameDispatchFlags);
 		return;
 	}
@@ -2177,7 +2177,7 @@ void InsaneRebel1::handleGameOpcode5EReset(uint32 param1) {
 	if (_currentLevel == 7)
 		memset(_frameObjectState + 150, 0xFF, 150);
 
-	debug(5, "RA1 GAME 0x5E: reset state field1=%d mode=%d", (int32)param1, (int)_flyControlMode);
+	debugC(DEBUG_INSANE, "RA1 GAME 0x5E: reset state field1=%d mode=%d", (int32)param1, (int)_flyControlMode);
 }
 
 void InsaneRebel1::handleGameOpcode5DLinkLatch(uint32 param1) {
@@ -2192,7 +2192,7 @@ void InsaneRebel1::handleGameOpcode5DLinkLatch(uint32 param1) {
 		}
 	}
 
-	debug(5, "RA1 GAME 0x5D (link/event latch) param=%u", _gameLatch5D);
+	debugC(DEBUG_INSANE, "RA1 GAME 0x5D (link/event latch) param=%u", _gameLatch5D);
 }
 
 void InsaneRebel1::handleGameOpcode5FRandomHitLatch(uint32 param1) {
@@ -2205,7 +2205,7 @@ void InsaneRebel1::handleGameOpcode5FRandomHitLatch(uint32 param1) {
 		}
 	}
 
-	debug(5, "RA1 GAME 0x5F (random-hit latch) param=%u", _gameLatch5F);
+	debugC(DEBUG_INSANE, "RA1 GAME 0x5F (random-hit latch) param=%u", _gameLatch5F);
 }
 
 void InsaneRebel1::handleGameOpcode07ShipFlight(int32 subSize, Common::SeekableReadStream &b, uint32 param1) {
@@ -2219,7 +2219,7 @@ void InsaneRebel1::handleGameOpcode07ShipFlight(int32 subSize, Common::SeekableR
 		b.readUint32BE(); // f2 (max frames, unused in physics)
 		_driftParam = (int16)(int32)b.readUint32BE();
 		b.readUint32BE(); // f4 (unused in original assembly)
-		debug(7, "RA1 GAME 0x07: counter=%d driftParam=%d", _gameCounter, _driftParam);
+		debugC(DEBUG_INSANE, "RA1 GAME 0x07: counter=%d driftParam=%d", _gameCounter, _driftParam);
 	}
 }
 
@@ -2291,7 +2291,7 @@ void InsaneRebel1::handleGameOpcode0DCorridor(int32 subSize, Common::SeekableRea
 			_damageFlags, suppressDirectionalDamage ? 1 : 0);
 	}
 
-	debug(5, "RA1 GAME 0x0D: raw=[%d,%d]+(%d,%d) cam=(%d,%d) transformed=[%d,%d]-[%d,%d]",
+	debugC(DEBUG_INSANE, "RA1 GAME 0x0D: raw=[%d,%d]+(%d,%d) cam=(%d,%d) transformed=[%d,%d]-[%d,%d]",
 		corridorLeft, corridorTop, corridorWidth, corridorHeight,
 		_perspectiveX, _perspectiveY,
 		_corridorLeftX, _corridorTopY, _corridorRightX, _corridorBottomY);
@@ -2332,7 +2332,7 @@ void InsaneRebel1::handleGameOpcode0EZone(int32 subSize, Common::SeekableReadStr
 			rawZoneLeft, rawZoneTop, zoneWidth, zoneHeight,
 			_perspectiveX, _perspectiveY, _damageFlags);
 	}
-	debug(7, "RA1 GAME 0x0E: ship=(%d,%d) zone=[%d,%d]-[%d,%d] cam=(%d,%d) flags=0x%02x",
+	debugC(DEBUG_INSANE, "RA1 GAME 0x0E: ship=(%d,%d) zone=[%d,%d]-[%d,%d] cam=(%d,%d) flags=0x%02x",
 		collisionShipX, collisionShipY, zoneLeft, zoneTop, zoneRight, zoneBottom,
 		_perspectiveX, _perspectiveY, _damageFlags);
 }
@@ -2356,7 +2356,7 @@ void InsaneRebel1::handleGameOpcode0BFirstPerson(int32 subSize, Common::Seekable
 			debugC(DEBUG_INSANE, "RA1: finishing 0x0B interactive video at counter=%d/%u", _gameCounter, maxFrames);
 		}
 	}
-	debug(7, "RA1 GAME 0x0B: counter=%d", _gameCounter);
+	debugC(DEBUG_INSANE, "RA1 GAME 0x0B: counter=%d", _gameCounter);
 	if (!_gameOp0BPhysicsUpdatedThisFrame) {
 		updateGameOp0BPhysics();
 		_gameOp0BPhysicsUpdatedThisFrame = true;
@@ -2396,7 +2396,7 @@ void InsaneRebel1::handleGameOpcode5ATarget(int32 subSize, Common::SeekableReadS
 			checkTargetHit(targetIdx, left, top, right, bottom);
 		}
 	}
-	debug(5, "RA1 GAME 0x5A: target=%d rect=[%d,%d]-[%d,%d] prox=%d",
+	debugC(DEBUG_INSANE, "RA1 GAME 0x5A: target=%d rect=[%d,%d]-[%d,%d] prox=%d",
 		targetIdx, left, top, right, bottom, _targetProximity);
 }
 
@@ -2412,7 +2412,7 @@ void InsaneRebel1::handleGameCounterOpcode(uint32 opcode, int32 subSize, Common:
 			debugC(DEBUG_INSANE, "RA1 GAME 0x09: counter=%d params=(%d,%d,%d) opcodeMask=0x%08x",
 				_gameCounter, param2, param3, param4, _frameGameOpcodeMask);
 		} else {
-			debug(5, "RA1 GAME 0x%02x: counter=%d params=(%d,%d,%d)",
+			debugC(DEBUG_INSANE, "RA1 GAME 0x%02x: counter=%d params=(%d,%d,%d)",
 				opcode, _gameCounter, param2, param3, param4);
 		}
 	}
@@ -2433,14 +2433,14 @@ void InsaneRebel1::handleGameChunk(int32 subSize, Common::SeekableReadStream &b,
 	// g_combatModeFlags skips gameplay dispatch entirely; bit 5 of g_hudDisableFlags
 	// suppresses the handlers while still requesting HUD refresh for a few opcodes.
 	if (_gameplayFlags75ff & 1) {
-		debug(7, "RA1 GAME 0x%02x: skipped by combat mode flags=0x%02x",
+		debugC(DEBUG_INSANE, "RA1 GAME 0x%02x: skipped by combat mode flags=0x%02x",
 			opcode, _gameplayFlags75ff);
 		return;
 	}
 	if (_gameplayFlags75fe & 0x20) {
 		if (ra1DispatcherHudOnlyWhenDisabled(opcode))
 			_hudRenderFlag = 0xFF;
-		debug(7, "RA1 GAME 0x%02x: skipped by HUD disable flags=0x%02x",
+		debugC(DEBUG_INSANE, "RA1 GAME 0x%02x: skipped by HUD disable flags=0x%02x",
 			opcode, _gameplayFlags75fe);
 		return;
 	}
@@ -2488,7 +2488,7 @@ void InsaneRebel1::handleGameChunk(int32 subSize, Common::SeekableReadStream &b,
 		break;
 
 	default:
-		debug(7, "RA1 GAME unknown 0x%02x size=%d", opcode, subSize);
+		debugC(DEBUG_INSANE, "RA1 GAME unknown 0x%02x size=%d", opcode, subSize);
 		break;
 	}
 }
@@ -2566,7 +2566,7 @@ void InsaneRebel1::processShot() {
 			effectiveOpcode, _gameCounter, slot, cursorX, cursorY, originX, originY,
 			_shipDirIndex, _flyControlMode);
 	} else {
-		debug(5, "RA1 shot: slot=%d pos=(%d,%d) origin=(%d,%d)", slot,
+		debugC(DEBUG_INSANE, "RA1 shot: slot=%d pos=(%d,%d) origin=(%d,%d)", slot,
 			cursorX, cursorY, originX, originY);
 	}
 }
@@ -2678,7 +2678,7 @@ void InsaneRebel1::checkTargetHit(int16 targetIdx, int16 left, int16 top, int16
 						if ((_gameplayFlags75fe & 0x10) == 0)
 							playSfx(kSfxExplode, 127, sfxPan);
 
-						debug(3, "RA1 HIT: target=%d gost=%d pos=(%d,%d) score=%d kills=%d bangSprites=%d",
+						debugC(DEBUG_INSANE, "RA1 HIT: target=%d gost=%d pos=(%d,%d) score=%d kills=%d bangSprites=%d",
 							targetIdx, gi, _gostSlots[gi].posX, _gostSlots[gi].posY,
 							_score, _killCount, _bangBank.numSprites);
 						return;
diff --git a/engines/scumm/insane/rebel2/audio.cpp b/engines/scumm/insane/rebel2/audio.cpp
index 989d93074ef..3001e4c4908 100644
--- a/engines/scumm/insane/rebel2/audio.cpp
+++ b/engines/scumm/insane/rebel2/audio.cpp
@@ -96,7 +96,7 @@ void InsaneRebel2::loadSfx() {
 		ScummFile *file = _vm->instantiateScummFile();
 		_vm->openFile(*file, kRA2SfxFiles[i]);
 		if (!file->isOpen()) {
-			debug("InsaneRebel2::loadSfx: Could not open %s", kRA2SfxFiles[i]);
+			debugC(DEBUG_INSANE, "InsaneRebel2::loadSfx: Could not open %s", kRA2SfxFiles[i]);
 			delete file;
 			continue;
 		}
@@ -105,7 +105,7 @@ void InsaneRebel2::loadSfx() {
 		// We scan for the SDAT tag to find the PCM data.
 		uint32 fileSize = file->size();
 		if (fileSize < 38) {  // Minimum: 8 (SAUD) + 22 (STRK) + 8 (SDAT header)
-			debug("InsaneRebel2::loadSfx: %s too small (%d bytes)", kRA2SfxFiles[i], fileSize);
+			debugC(DEBUG_INSANE, "InsaneRebel2::loadSfx: %s too small (%d bytes)", kRA2SfxFiles[i], fileSize);
 			file->close();
 			delete file;
 			continue;
@@ -114,7 +114,7 @@ void InsaneRebel2::loadSfx() {
 		// Verify SAUD tag
 		uint32 tag = file->readUint32BE();
 		if (tag != MKTAG('S', 'A', 'U', 'D')) {
-			debug("InsaneRebel2::loadSfx: %s not a SAUD file (tag=0x%08x)", kRA2SfxFiles[i], tag);
+			debugC(DEBUG_INSANE, "InsaneRebel2::loadSfx: %s not a SAUD file (tag=0x%08x)", kRA2SfxFiles[i], tag);
 			file->close();
 			delete file;
 			continue;
@@ -134,7 +134,7 @@ void InsaneRebel2::loadSfx() {
 				if (_sfxData[i]) {
 					file->read(_sfxData[i], pcmSize);
 					_sfxSize[i] = pcmSize;
-					debug("InsaneRebel2::loadSfx: Loaded %s (%d bytes PCM)", kRA2SfxFiles[i], pcmSize);
+					debugC(DEBUG_INSANE, "InsaneRebel2::loadSfx: Loaded %s (%d bytes PCM)", kRA2SfxFiles[i], pcmSize);
 				}
 				foundSdat = true;
 				break;
@@ -145,7 +145,7 @@ void InsaneRebel2::loadSfx() {
 		}
 
 		if (!foundSdat) {
-			debug("InsaneRebel2::loadSfx: No SDAT chunk in %s", kRA2SfxFiles[i]);
+			debugC(DEBUG_INSANE, "InsaneRebel2::loadSfx: No SDAT chunk in %s", kRA2SfxFiles[i]);
 		}
 
 		file->close();
@@ -196,7 +196,7 @@ void InsaneRebel2::playSfx(int slot, int volume, int pan) {
 	_vm->_mixer->playStream(Audio::Mixer::kSFXSoundType, &_sfxHandles[slot],
 		stream, -1, scaledVolume, pan);
 
-	debug(5, "InsaneRebel2::playSfx: slot=%d vol=%d pan=%d size=%d", slot, volume, pan, _sfxSize[slot]);
+	debugC(DEBUG_INSANE, "InsaneRebel2::playSfx: slot=%d vol=%d pan=%d size=%d", slot, volume, pan, _sfxSize[slot]);
 }
 
 // loadAuxSfx -- Load sound data into auxiliary buffer (FUN_004118df).
@@ -205,7 +205,7 @@ void InsaneRebel2::loadAuxSfx(int buffer, const byte *data, uint32 size) {
 		return;
 	}
 	if ((int)size > kRA2AuxBufSize) {
-		debug("InsaneRebel2::loadAuxSfx: buffer %d size %d exceeds max %d, truncating",
+		debugC(DEBUG_INSANE, "InsaneRebel2::loadAuxSfx: buffer %d size %d exceeds max %d, truncating",
 			buffer, size, kRA2AuxBufSize);
 		size = kRA2AuxBufSize;
 	}
@@ -213,7 +213,7 @@ void InsaneRebel2::loadAuxSfx(int buffer, const byte *data, uint32 size) {
 	memcpy(_auxSfxData[buffer], data, size);
 	_auxSfxSize[buffer] = size;
 
-	debug(5, "InsaneRebel2::loadAuxSfx: buffer=%d size=%d", buffer, size);
+	debugC(DEBUG_INSANE, "InsaneRebel2::loadAuxSfx: buffer=%d size=%d", buffer, size);
 }
 
 // playAuxSfx -- Play from auxiliary buffer (FUN_00411931).
@@ -260,7 +260,7 @@ void InsaneRebel2::playAuxSfx(int buffer, int volume, int pan) {
 	_vm->_mixer->playStream(Audio::Mixer::kSFXSoundType, &_auxSfxHandles[buffer],
 		stream, -1, scaledVolume, pan);
 
-	debug(5, "InsaneRebel2::playAuxSfx: buffer=%d vol=%d pan=%d pcmSize=%d", buffer, volume, pan, pcmSize);
+	debugC(DEBUG_INSANE, "InsaneRebel2::playAuxSfx: buffer=%d vol=%d pan=%d pcmSize=%d", buffer, volume, pan, pcmSize);
 }
 
 } // End of namespace Scumm
diff --git a/engines/scumm/insane/rebel2/iact.cpp b/engines/scumm/insane/rebel2/iact.cpp
index 6a9cb134570..d1e34b8355a 100644
--- a/engines/scumm/insane/rebel2/iact.cpp
+++ b/engines/scumm/insane/rebel2/iact.cpp
@@ -49,7 +49,7 @@ static bool readLevel2BackgroundChunkHeader(Common::SeekableReadStream &stream,
 
 	const int64 dataStart = stream.pos();
 	if ((int64)chunkSize > containerEnd - dataStart) {
-		debug("Rebel2 loadLevel2Background: Truncated %s chunk 0x%08X at %lld: size=%u, remaining=%lld",
+		debugC(DEBUG_INSANE, "Rebel2 loadLevel2Background: Truncated %s chunk 0x%08X at %lld: size=%u, remaining=%lld",
 			context, tag, headerPos, chunkSize, containerEnd - dataStart);
 		return false;
 	}
@@ -136,7 +136,7 @@ void InsaneRebel2::procPreRendering(byte *renderBitmap) {
 void InsaneRebel2::procIACT(byte *renderBitmap, int32 codecparam, int32 setupsan12,
 					  int32 setupsan13, Common::SeekableReadStream &b, int32 size, int32 flags,
 					  int16 par1, int16 par2, int16 par3, int16 par4) {
-	debug("Rebel2 IACT: opcode=%d par2=%d par3=%d par4=%d gameState=%d sceneId=%d",
+	debugC(DEBUG_INSANE, "Rebel2 IACT: opcode=%d par2=%d par3=%d par4=%d gameState=%d sceneId=%d",
 		par1, par2, par3, par4, _gameState, _currSceneId);
 
 	if (_keyboardDisable)
@@ -146,12 +146,12 @@ void InsaneRebel2::procIACT(byte *renderBitmap, int32 codecparam, int32 setupsan
 	// Menu IACTs have par1=8 (code), par2=46 (flags), par4>=1000 (userId)
 	// The embedded ANIM contains the full menu frame
 	if (_gameState == kStateMainMenu && par1 == 8 && par4 >= 1000) {
-		debug("Rebel2 IACT: Menu mode - processing embedded ANIM (userId=%d)", par4);
+		debugC(DEBUG_INSANE, "Rebel2 IACT: Menu mode - processing embedded ANIM (userId=%d)", par4);
 
 		// Scan for embedded ANIM tag in the IACT data
 		int64 startPos = b.pos();
 		int64 totalSize = b.size();
-		debug("Rebel2 IACT: stream pos=%d, size=%d, remaining=%d",
+		debugC(DEBUG_INSANE, "Rebel2 IACT: stream pos=%d, size=%d, remaining=%d",
 			(int)startPos, (int)totalSize, (int)(totalSize - startPos));
 
 		if (totalSize > startPos) {
@@ -160,7 +160,7 @@ void InsaneRebel2::procIACT(byte *renderBitmap, int32 codecparam, int32 setupsan
 			byte *scanBuf = (byte *)malloc(scanSize);
 			if (scanBuf) {
 				int bytesRead = b.read(scanBuf, scanSize);
-				debug("Rebel2 IACT: Read %d bytes, first 16: %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X",
+				debugC(DEBUG_INSANE, "Rebel2 IACT: Read %d bytes, first 16: %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X",
 					bytesRead, scanBuf[0], scanBuf[1], scanBuf[2], scanBuf[3],
 					scanBuf[4], scanBuf[5], scanBuf[6], scanBuf[7],
 					scanBuf[8], scanBuf[9], scanBuf[10], scanBuf[11],
@@ -172,7 +172,7 @@ void InsaneRebel2::procIACT(byte *renderBitmap, int32 codecparam, int32 setupsan
 						int64 animStreamPos = startPos + i;
 						uint32 animReportedSize = READ_BE_UINT32(scanBuf + i + 4);
 						int32 toCopy = (int)MIN<int64>((int64)animReportedSize + 8, totalSize - animStreamPos);
-						debug("Rebel2 IACT: Found embedded ANIM at offset %d, size %d", (int)i, (int)animReportedSize);
+						debugC(DEBUG_INSANE, "Rebel2 IACT: Found embedded ANIM at offset %d, size %d", (int)i, (int)animReportedSize);
 						if (toCopy > 0) {
 							byte *animData = (byte *)malloc(toCopy);
 							if (animData) {
@@ -189,7 +189,7 @@ void InsaneRebel2::procIACT(byte *renderBitmap, int32 codecparam, int32 setupsan
 					}
 				}
 
-				debug("Rebel2 IACT: No ANIM tag found in menu IACT data");
+				debugC(DEBUG_INSANE, "Rebel2 IACT: No ANIM tag found in menu IACT data");
 				b.seek(startPos);
 				free(scanBuf);
 			}
@@ -243,7 +243,7 @@ void InsaneRebel2::iactRebel2Scene1(byte *renderBitmap, int32 codecparam, int32
 		// Sub-opcode 0x0D (13) = Primary collision zones (obstacles)
 		// Sub-opcode 0x0E (14) = Secondary collision zones (boundaries)
 		// par2 is the sub-opcode that determines which zone table to use
-		debug("Rebel2 IACT Opcode 5: par2=%d par3=%d par4=%d", par2, par3, par4);
+		debugC(DEBUG_INSANE, "Rebel2 IACT Opcode 5: par2=%d par3=%d par4=%d", par2, par3, par4);
 
 		if (par2 == 0x0D || par2 == 0x0E) {
 			// Register the collision zone from the remaining IACT data
@@ -275,7 +275,7 @@ void InsaneRebel2::iactRebel2Scene1(byte *renderBitmap, int32 codecparam, int32
 			// DAT_00443b12 = horizontal wind, DAT_00443b14 = vertical wind
 			_windParamX = body0;
 			_windParamY = body1;
-			debug("Rebel2 Opcode 7 par4=0: wind=(%d,%d)", body0, body1);
+			debugC(DEBUG_INSANE, "Rebel2 Opcode 7 par4=0: wind=(%d,%d)", body0, body1);
 			break;
 		case 1:
 			// Set LEFT X boundary and TOP Y boundary
@@ -287,7 +287,7 @@ void InsaneRebel2::iactRebel2Scene1(byte *renderBitmap, int32 codecparam, int32
 			} else if (_flyControlMode == 0) {
 				_corridorLeftX += 20;
 			}
-			debug("Rebel2 Opcode 7 par4=1: corridor left=%d top=%d (adjusted left=%d)",
+			debugC(DEBUG_INSANE, "Rebel2 Opcode 7 par4=1: corridor left=%d top=%d (adjusted left=%d)",
 				body0, body1, _corridorLeftX);
 			break;
 		case 2:
@@ -300,16 +300,16 @@ void InsaneRebel2::iactRebel2Scene1(byte *renderBitmap, int32 codecparam, int32
 			} else if (_flyControlMode == 0) {
 				_corridorRightX -= 20;
 			}
-			debug("Rebel2 Opcode 7 par4=2: corridor right=%d bottom=%d (adjusted right=%d)",
+			debugC(DEBUG_INSANE, "Rebel2 Opcode 7 par4=2: corridor right=%d bottom=%d (adjusted right=%d)",
 				body0, body1, _corridorRightX);
 			break;
 		case 5:
 			// DAT_00443b52: repeats FLY002 ship overlay in FUN_40D836.
 			_flyOverlayRepeatCount = body0;
-			debug("Rebel2 Opcode 7 par4=5: flyOverlayRepeat=%d", _flyOverlayRepeatCount);
+			debugC(DEBUG_INSANE, "Rebel2 Opcode 7 par4=5: flyOverlayRepeat=%d", _flyOverlayRepeatCount);
 			break;
 		default:
-			debug("Rebel2 Opcode 7 par4=%d: body=(%d,%d) — unknown sub-opcode", par4, body0, body1);
+			debugC(DEBUG_INSANE, "Rebel2 Opcode 7 par4=%d: body=(%d,%d) — unknown sub-opcode", par4, body0, body1);
 			break;
 		}
 
@@ -324,9 +324,9 @@ void InsaneRebel2::iactRebel2Scene1(byte *renderBitmap, int32 codecparam, int32
 		iactRebel2Opcode9(renderBitmap, b, par2, par3, par4);
 	} else if (par1 == 0 || par1 == 1) {
 		// Low Opcodes seen in logs
-		debug("Rebel2 IACT: Low Opcode %d (par2=%d par3=%d par4=%d)", par1, par2, par3, par4);
+		debugC(DEBUG_INSANE, "Rebel2 IACT: Low Opcode %d (par2=%d par3=%d par4=%d)", par1, par2, par3, par4);
 	} else {
-		debug("Rebel2 IACT: Unknown Opcode %d (par2=%d par3=%d par4=%d)", par1, par2, par3, par4);
+		debugC(DEBUG_INSANE, "Rebel2 IACT: Unknown Opcode %d (par2=%d par3=%d par4=%d)", par1, par2, par3, par4);
 	}
 }
 
@@ -359,13 +359,13 @@ void InsaneRebel2::iactRebel2Opcode2(Common::SeekableReadStream &b, int16 par2,
 			// while the parent is alive, and revealed when the parent is destroyed.
 			if (!isBitSet(parentId)) {
 				setBit(childId);
-				debug("Rebel2: Linked ID=%d to Parent=%d (Slot 0) - child DISABLED (parent alive)", childId, parentId);
+				debugC(DEBUG_INSANE, "Rebel2: Linked ID=%d to Parent=%d (Slot 0) - child DISABLED (parent alive)", childId, parentId);
 			} else {
 				clearBit(childId);
-				debug("Rebel2: Linked ID=%d to Parent=%d (Slot 0) - child ENABLED (parent dead)", childId, parentId);
+				debugC(DEBUG_INSANE, "Rebel2: Linked ID=%d to Parent=%d (Slot 0) - child ENABLED (parent dead)", childId, parentId);
 			}
 		} else {
-			debug("Rebel2: Skipping link with invalid IDs childId=%d parentId=%d", childId, parentId);
+			debugC(DEBUG_INSANE, "Rebel2: Skipping link with invalid IDs childId=%d parentId=%d", childId, parentId);
 		}
 		return;
 	} else if (par3 == 1) { // Probabilistic / counter cases: par3 == 1
@@ -385,13 +385,13 @@ void InsaneRebel2::iactRebel2Opcode2(Common::SeekableReadStream &b, int16 par2,
 			if (value == 100) {
 				// par4==100: Force enable the target (original: FUN_00423a00)
 				clearBit(targetId);
-				debug("Rebel2 Opcode2 (H%d): Force ENABLE target=%d (par4=100)", _rebelHandler, targetId);
+				debugC(DEBUG_INSANE, "Rebel2 Opcode2 (H%d): Force ENABLE target=%d (par4=100)", _rebelHandler, targetId);
 			} else {
 				// Check wave state: if enemy type has been killed, disable target
 				int bitMask = 1 << (value & 0x1f);
 				if ((_rebelWaveState & bitMask) != 0) {
 					setBit(targetId);
-					debug("Rebel2 Opcode2 (H%d): Disable target=%d (type %d killed, wave=0x%x)", _rebelHandler, targetId, value, _rebelWaveState);
+					debugC(DEBUG_INSANE, "Rebel2 Opcode2 (H%d): Disable target=%d (type %d killed, wave=0x%x)", _rebelHandler, targetId, value, _rebelWaveState);
 				}
 			}
 			return;
@@ -400,19 +400,19 @@ void InsaneRebel2::iactRebel2Opcode2(Common::SeekableReadStream &b, int16 par2,
 		if (value > 1 && value < 10) { // 1 < value < 10: random disable
 			if (_vm->_rnd.getRandomNumber(value) == 0) {
 				setBit(targetId);
-				debug("Rebel2 IACT Opcode2: Random DISABLE target=%d (value=%d)", targetId, value);
+				debugC(DEBUG_INSANE, "Rebel2 IACT Opcode2: Random DISABLE target=%d (value=%d)", targetId, value);
 			}
 		} else if (value > 10 && value < 20) { // 10 < value < 20: enable/disable with special value==11 = force enable
 			if (value == 11) {
 				clearBit(targetId);
-				debug("Rebel2 IACT Opcode2: FORCE ENABLE target=%d (value=11)", targetId);
+				debugC(DEBUG_INSANE, "Rebel2 IACT Opcode2: FORCE ENABLE target=%d (value=11)", targetId);
 			} else {
 				if (_vm->_rnd.getRandomNumber(value - 10) == 0) {
 					clearBit(targetId);
-					debug("Rebel2 IACT Opcode2: Random ENABLE target=%d (value=%d)", targetId, value);
+					debugC(DEBUG_INSANE, "Rebel2 IACT Opcode2: Random ENABLE target=%d (value=%d)", targetId, value);
 				} else {
 					setBit(targetId);
-					debug("Rebel2 IACT Opcode2: Random DISABLE target=%d (value=%d)", targetId, value);
+					debugC(DEBUG_INSANE, "Rebel2 IACT Opcode2: Random DISABLE target=%d (value=%d)", targetId, value);
 				}
 			}
 		} else if (value > 99 && value < 110) { // 99 < value < 110: increment value counter if target active
@@ -421,7 +421,7 @@ void InsaneRebel2::iactRebel2Opcode2(Common::SeekableReadStream &b, int16 par2,
 				if (idx >= 0 && idx < 10) {
 					_rebelValueCounters[idx]++;
 					_rebelLastCounter = _rebelValueCounters[idx];
-					debug("Rebel2 IACT Opcode2: Increment VAL counter[%d] -> %d (target=%d)", value, _rebelValueCounters[idx], targetId);
+					debugC(DEBUG_INSANE, "Rebel2 IACT Opcode2: Increment VAL counter[%d] -> %d (target=%d)", value, _rebelValueCounters[idx], targetId);
 				}
 			}
 
@@ -431,14 +431,14 @@ void InsaneRebel2::iactRebel2Opcode2(Common::SeekableReadStream &b, int16 par2,
 					if (!isBitSet(targetId)) {
 						_rebelMaskCounters[slot]++;
 						_rebelLastCounter = _rebelMaskCounters[slot];
-						debug("Rebel2 IACT Opcode2: Increment MASK counter[%d] -> %d (target=%d)", slot, _rebelMaskCounters[slot], targetId);
+						debugC(DEBUG_INSANE, "Rebel2 IACT Opcode2: Increment MASK counter[%d] -> %d (target=%d)", slot, _rebelMaskCounters[slot], targetId);
 					}
 				}
 			}
 		}
 
 		// Unknown sub-type: log and return
-		debug("Rebel2 IACT Opcode2: Unhandled par3=%d par4=%d", par3, par4);
+		debugC(DEBUG_INSANE, "Rebel2 IACT Opcode2: Unhandled par3=%d par4=%d", par3, par4);
 	}
 }
 
@@ -477,35 +477,35 @@ void InsaneRebel2::iactRebel2Opcode3(Common::SeekableReadStream &b, int16 par2,
 
 		if (par3 == 5) {
 			// Probabilistic damage with cover check (lines 81-92)
-			debug("Rebel2 Opcode3: H25 par3=5 srcId=%d isBitSet=%d damageLevel=%d",
+			debugC(DEBUG_INSANE, "Rebel2 Opcode3: H25 par3=5 srcId=%d isBitSet=%d damageLevel=%d",
 				srcIdBody1, isBitSet(srcIdBody1), _rebelDamageLevel);
 
 			if (_rebelDamageLevel < 2 && !isBitSet(srcIdBody1)) {
 				LevelDifficultyParams params = getDifficultyParams();
 				int probability = (params.shotAccuracy >= 0) ? params.shotAccuracy : 0;
 				int roll = _vm->_rnd.getRandomNumber(99);
-				debug("Rebel2 Opcode3: probability=%d roll=%d (need roll < prob)", probability, roll);
+				debugC(DEBUG_INSANE, "Rebel2 Opcode3: probability=%d roll=%d (need roll < prob)", probability, roll);
 
 				if (roll < probability) {
 					int damageAmount = (params.shotDamage >= 0) ? params.shotDamage : 0;
 					if (applyPlayerDamage(damageAmount)) {
-						debug("Rebel2: H25 PROBABILISTIC damage from %d. Damage=%d total=%d",
+						debugC(DEBUG_INSANE, "Rebel2: H25 PROBABILISTIC damage from %d. Damage=%d total=%d",
 							srcIdBody1, damageAmount, _playerDamage);
 					}
 					if (!_noDamage)
 						initDamageFlash();
 				}
 			} else {
-				debug("Rebel2 Opcode3: H25 par3=5 BLOCKED (damageLevel=%d isBitSet=%d)",
+				debugC(DEBUG_INSANE, "Rebel2 Opcode3: H25 par3=5 BLOCKED (damageLevel=%d isBitSet=%d)",
 					_rebelDamageLevel, isBitSet(srcIdBody1));
 			}
 		} else if (par3 == 1 && !isBitSet(srcIdBody0) && par4 != 4) {
 			// Hit counter only — NO damage (lines 94-98)
 			_rebelHitCounter++;
-			debug("Rebel2: H25 hit counter++ -> %d (par3=1 par4=%d, no damage)",
+			debugC(DEBUG_INSANE, "Rebel2: H25 hit counter++ -> %d (par3=1 par4=%d, no damage)",
 				_rebelHitCounter, par4);
 		} else {
-			debug("Rebel2 Opcode3: H25 par3=%d par4=%d (no action)", par3, par4);
+			debugC(DEBUG_INSANE, "Rebel2 Opcode3: H25 par3=%d par4=%d (no action)", par3, par4);
 		}
 
 		// Direct damage: par4==100, separate from par3 branches (lines 99-111)
@@ -513,7 +513,7 @@ void InsaneRebel2::iactRebel2Opcode3(Common::SeekableReadStream &b, int16 par2,
 			LevelDifficultyParams dparams = getDifficultyParams();
 			int directHitDamage = (dparams.missDamage >= 0) ? dparams.missDamage : 0;
 			if (applyPlayerDamage(directHitDamage)) {
-				debug("Rebel2: H25 DIRECT HIT par4=100 damage=%d total=%d",
+				debugC(DEBUG_INSANE, "Rebel2: H25 DIRECT HIT par4=100 damage=%d total=%d",
 					directHitDamage, _playerDamage);
 			}
 			if (!_noDamage)
@@ -523,12 +523,12 @@ void InsaneRebel2::iactRebel2Opcode3(Common::SeekableReadStream &b, int16 par2,
 		// Non-Handler-25 direct hit path — FUN_4092D9 lines 209-227
 		int16 srcId = b.readSint16LE(); // body[0] (offset +8): source enemy ID
 
-		debug("Rebel2 Opcode3: par3=%d par4=%d srcId=%d isBitSet=%d",
+		debugC(DEBUG_INSANE, "Rebel2 Opcode3: par3=%d par4=%d srcId=%d isBitSet=%d",
 			par3, par4, srcId, isBitSet(srcId));
 
 		if (!isBitSet(srcId)) {
 			_rebelHitCounter++;
-			debug("Rebel2: Incremented hit counter -> %d", _rebelHitCounter);
+			debugC(DEBUG_INSANE, "Rebel2: Incremented hit counter -> %d", _rebelHitCounter);
 
 			LevelDifficultyParams dparams = getDifficultyParams();
 			int directHitDamage = (dparams.missDamage >= 0) ? dparams.missDamage : 0;
@@ -546,7 +546,7 @@ void InsaneRebel2::iactRebel2Opcode3(Common::SeekableReadStream &b, int16 par2,
 
 				if (shouldDamage) {
 					if (applyPlayerDamage(directHitDamage)) {
-						debug("Rebel2: DIRECT HIT damage from enemy %d. par3=%d par4=%d damage=%d total=%d",
+						debugC(DEBUG_INSANE, "Rebel2: DIRECT HIT damage from enemy %d. par3=%d par4=%d damage=%d total=%d",
 							srcId, par3, par4, directHitDamage, _playerDamage);
 					}
 					if (!_noDamage)
@@ -559,19 +559,19 @@ void InsaneRebel2::iactRebel2Opcode3(Common::SeekableReadStream &b, int16 par2,
 		b.skip(2); // Skip body[0]
 		int16 srcId = b.readSint16LE(); // body[1] (offset +10)
 
-		debug("Rebel2 Opcode3: par3=5 srcId=%d isBitSet=%d", srcId, isBitSet(srcId));
+		debugC(DEBUG_INSANE, "Rebel2 Opcode3: par3=5 srcId=%d isBitSet=%d", srcId, isBitSet(srcId));
 
 		if (!isBitSet(srcId)) {
 			LevelDifficultyParams params = getDifficultyParams();
 			int probability = (params.shotAccuracy >= 0) ? params.shotAccuracy : 0;
 
 			int roll = _vm->_rnd.getRandomNumber(99);
-			debug("Rebel2 Opcode3: probability=%d roll=%d (need roll < prob)", probability, roll);
+			debugC(DEBUG_INSANE, "Rebel2 Opcode3: probability=%d roll=%d (need roll < prob)", probability, roll);
 
 			if (roll < probability) {
 				int damageAmount = (params.shotDamage >= 0) ? params.shotDamage : 0;
 				if (applyPlayerDamage(damageAmount)) {
-					debug("Rebel2: PROBABILISTIC damage from enemy %d. Damage=%d total=%d",
+					debugC(DEBUG_INSANE, "Rebel2: PROBABILISTIC damage from enemy %d. Damage=%d total=%d",
 						srcId, damageAmount, _playerDamage);
 				}
 				if (!_noDamage) {
@@ -584,7 +584,7 @@ void InsaneRebel2::iactRebel2Opcode3(Common::SeekableReadStream &b, int16 par2,
 			}
 		}
 	} else {
-		debug("Rebel2 Opcode3: UNHANDLED par3=%d par4=%d", par3, par4);
+		debugC(DEBUG_INSANE, "Rebel2 Opcode3: UNHANDLED par3=%d par4=%d", par3, par4);
 	}
 }
 
@@ -597,7 +597,7 @@ void InsaneRebel2::updateOpcode6Handler(int16 par2) {
 			_level2BackgroundLoaded = false;
 		}
 		_rebelHandler = par2;
-		debug("Rebel2 Opcode 6: Setting handler=%d", par2);
+		debugC(DEBUG_INSANE, "Rebel2 Opcode 6: Setting handler=%d", par2);
 	}
 }
 
@@ -634,7 +634,7 @@ void InsaneRebel2::handleOpcode6Handler8(Common::SeekableReadStream &b, int16 pa
 		}
 		_rebelWaveState = _rebelPhaseState;
 		_rebelOp6Initialized = true;
-		debug("Rebel2 Opcode 6 (Handler 8): Wave init, wave=0x%x", _rebelWaveState);
+		debugC(DEBUG_INSANE, "Rebel2 Opcode 6 (Handler 8): Wave init, wave=0x%x", _rebelWaveState);
 	}
 
 	// Skip position calculation for special modes 4 and 5
@@ -775,7 +775,7 @@ void InsaneRebel2::handleOpcode6Handler8(Common::SeekableReadStream &b, int16 pa
 			_vm->getActionState(kScummActionInsaneAttack);
 	}
 
-	debug("Rebel2 Opcode 6 (Handler 8): mode=%d bodyFlag=%d range=%d shipPos=(%d,%d) target=(%d,%d) firing=%d dir=(%d,%d,%d)",
+	debugC(DEBUG_INSANE, "Rebel2 Opcode 6 (Handler 8): mode=%d bodyFlag=%d range=%d shipPos=(%d,%d) target=(%d,%d) firing=%d dir=(%d,%d,%d)",
 		_shipLevelMode, bodyStatusFlag, _movementRangeLimit, _shipPosX, _shipPosY, _shipTargetX, _shipTargetY, _shipFiring,
 		_shipDirectionH, _shipDirectionV, _shipDirectionIndex);
 }
@@ -792,7 +792,7 @@ void InsaneRebel2::handleOpcode6Handler7(Common::SeekableReadStream &b, int16 pa
 	//   Mode 2: Combat mode - shooting ENABLED, SECONDARY zones
 	//   Mode 3: Tunnel flight - PRIMARY zones, per-edge push-back (hMargin=0x0f)
 	_flyControlMode = par4;
-	debug("Rebel2 Opcode 6 (Handler 7): Control mode set to %d (shooting %s)",
+	debugC(DEBUG_INSANE, "Rebel2 Opcode 6 (Handler 7): Control mode set to %d (shooting %s)",
 		par4, (par4 == 2) ? "ENABLED" : "DISABLED");
 
 	// Status bar: param_5[4] == 1 in original (first body word, 5th IACT word)
@@ -809,7 +809,7 @@ void InsaneRebel2::handleOpcode6Handler7(Common::SeekableReadStream &b, int16 pa
 		if (_smush_iconsNut && _smush_iconsNut->getNumChars() > 5) {
 			initLaserTexture(_smush_iconsNut, 5);
 		}
-		debug("Rebel2 Opcode 6 (Handler 7): Status bar enabled (body flag=%d)", bodyStatusFlag);
+		debugC(DEBUG_INSANE, "Rebel2 Opcode 6 (Handler 7): Status bar enabled (body flag=%d)", bodyStatusFlag);
 	}
 
 	// Ship position update - FUN_40C3CC case 4, lines 49-327.
@@ -1125,7 +1125,7 @@ void InsaneRebel2::handleOpcode6Handler25(byte *renderBitmap, Common::SeekableRe
 			}
 			_rebelWaveState = _rebelPhaseState;
 			_rebelOp6Initialized = true;
-			debug("Rebel2 Opcode 6 (Handler 25): Wave init, wave=0x%x autopilot=%d damageLevel=%d",
+			debugC(DEBUG_INSANE, "Rebel2 Opcode 6 (Handler 25): Wave init, wave=0x%x autopilot=%d damageLevel=%d",
 				_rebelWaveState, _rebelAutopilot, _rebelDamageLevel);
 		}
 	}
@@ -1139,7 +1139,7 @@ void InsaneRebel2::handleOpcode6Handler25(byte *renderBitmap, Common::SeekableRe
 	// Mode 4: Alternative uncovered position - sprite on right
 	_grdSpriteMode = par4;  // local_14[3] maps to par4 (offset 6-7)
 
-	debug("Rebel2 Handler25 Opcode6: par2=%d par3=%d par4=%d(mode) par5=%d(reset) autopilot=%d damageLevel=%d controlMode=%d",
+	debugC(DEBUG_INSANE, "Rebel2 Handler25 Opcode6: par2=%d par3=%d par4=%d(mode) par5=%d(reset) autopilot=%d damageLevel=%d controlMode=%d",
 		par2, par3, par4, par5, _rebelAutopilot, _rebelDamageLevel, _rebelControlMode);
 
 	// Autopilot logic (lines 123-146).
@@ -1150,13 +1150,13 @@ void InsaneRebel2::handleOpcode6Handler25(byte *renderBitmap, Common::SeekableRe
 			// Uncovered: RIGHT button enters cover.
 			if ((_rebelControlMode & 2) != 0) {
 				_rebelAutopilot = 1;
-				debug("Rebel2 Handler25: Entering cover (right click), controlMode=%d", _rebelControlMode);
+				debugC(DEBUG_INSANE, "Rebel2 Handler25: Entering cover (right click), controlMode=%d", _rebelControlMode);
 			}
 		} else {
 			// Covered: ANY button exits cover.
 			if (_rebelControlMode != 0) {
 				_rebelAutopilot = 0;
-				debug("Rebel2 Handler25: Exiting cover (button click), controlMode=%d", _rebelControlMode);
+				debugC(DEBUG_INSANE, "Rebel2 Handler25: Exiting cover (button click), controlMode=%d", _rebelControlMode);
 			}
 		}
 
@@ -1191,7 +1191,7 @@ void InsaneRebel2::handleOpcode6Handler25(byte *renderBitmap, Common::SeekableRe
 		}
 	}
 	if (_rebelDamageLevel != prevDamageLevel) {
-		debug("Rebel2 Handler25: damageLevel transition %d -> %d (autopilot=%d)",
+		debugC(DEBUG_INSANE, "Rebel2 Handler25: damageLevel transition %d -> %d (autopilot=%d)",
 			prevDamageLevel, _rebelDamageLevel, _rebelAutopilot);
 	}
 
@@ -1263,10 +1263,10 @@ void InsaneRebel2::handleOpcode6Handler25(byte *renderBitmap, Common::SeekableRe
 		_rebelViewOffset2X = _rebelDamageLevel * -22;
 		_rebelViewOffsetY = 0;
 		_rebelViewOffset2Y = 0;
-		debug("Rebel2 Opcode 6 (Handler 25): Unknown mode %d, using Mode 1 fallback", _grdSpriteMode);
+		debugC(DEBUG_INSANE, "Rebel2 Opcode 6 (Handler 25): Unknown mode %d, using Mode 1 fallback", _grdSpriteMode);
 	}
 
-	debug("Rebel2 Opcode 6 (Handler 25): mode=%d damage=%d dir=%d autopilot=%d viewOff=(%d,%d) spritePos=(%d,%d)",
+	debugC(DEBUG_INSANE, "Rebel2 Opcode 6 (Handler 25): mode=%d damage=%d dir=%d autopilot=%d viewOff=(%d,%d) spritePos=(%d,%d)",
 		_grdSpriteMode, _rebelDamageLevel, _rebelFlightDir, _rebelAutopilot,
 		_rebelViewOffsetX, _rebelViewOffsetY, _rebelViewOffset2X, _rebelViewOffset2Y);
 
@@ -1314,7 +1314,7 @@ void InsaneRebel2::handleOpcode6Turret(Common::SeekableReadStream &b, int16 par4
 			_rebelWaveState = _rebelPhaseState;
 			_rebelHitCounter = 0;
 			_rebelOp6Initialized = true;
-			debug("Rebel2 Opcode 6 (Handler 0x26): Wave init, levelType=%d waveState=0x%x",
+			debugC(DEBUG_INSANE, "Rebel2 Opcode 6 (Handler 0x26): Wave init, levelType=%d waveState=0x%x",
 				_rebelLevelType, _rebelWaveState);
 		}
 	}
@@ -1339,7 +1339,7 @@ void InsaneRebel2::handleOpcode6GenericInit(int16 par4) {
 			_rebelWaveState = _rebelPhaseState;
 			_rebelHitCounter = 0;
 			_rebelOp6Initialized = true;
-			debug("Rebel2 Opcode 6: Wave init - cleared bits/links, waveState=0x%x", _rebelWaveState);
+			debugC(DEBUG_INSANE, "Rebel2 Opcode 6: Wave init - cleared bits/links, waveState=0x%x", _rebelWaveState);
 		}
 	}
 }
@@ -1458,7 +1458,7 @@ void InsaneRebel2::updateOpcode6GenericFlightState() {
 		break;
 	}
 
-	debug("Rebel2 Opcode 6: levelType=%d autopilot=%d damageLevel=%d viewOffset=(%d,%d)",
+	debugC(DEBUG_INSANE, "Rebel2 Opcode 6: levelType=%d autopilot=%d damageLevel=%d viewOffset=(%d,%d)",
 		_rebelLevelType, _rebelAutopilot, _rebelDamageLevel, _rebelViewOffsetX, _rebelViewOffsetY);
 }
 
@@ -1522,7 +1522,7 @@ void InsaneRebel2::iactRebel2Opcode6(byte *renderBitmap, Common::SeekableReadStr
 	// - Handler-specific status/reset word
 	// - Different view offset calculations
 
-	debug("Rebel2 IACT Opcode 6: par2=%d par3=%d par4=%d", par2, par3, par4);
+	debugC(DEBUG_INSANE, "Rebel2 IACT Opcode 6: par2=%d par3=%d par4=%d", par2, par3, par4);
 
 	updateOpcode6Handler(par2);
 
@@ -1610,7 +1610,7 @@ bool InsaneRebel2::loadOpcode8EdgeTable(Common::SeekableReadStream &b, int64 sta
 			b.read(edgeData, 8 + 32896);
 			initEdgeTable(edgeData);
 			free(edgeData);
-			debug("Rebel2 Opcode 8: Loaded per-level edge blend table (par4=1000)");
+			debugC(DEBUG_INSANE, "Rebel2 Opcode 8: Loaded per-level edge blend table (par4=1000)");
 		}
 		b.seek(startPos);
 		return true;
@@ -1651,11 +1651,11 @@ bool InsaneRebel2::loadOpcode8AuxSfx(Common::SeekableReadStream &b, int64 startP
 				b.read(soundData, dataSize);
 				loadAuxSfx(auxBuffer, soundData, dataSize);
 				free(soundData);
-				debug("Rebel2 Opcode 8: Loaded %u bytes into aux sound buffer %d (par4=%d)",
+				debugC(DEBUG_INSANE, "Rebel2 Opcode 8: Loaded %u bytes into aux sound buffer %d (par4=%d)",
 					dataSize, auxBuffer, par4);
 			}
 		} else {
-			debug("Rebel2 Opcode 8: Aux sound par4=%d dataSize=%u exceeds remaining=%lld",
+			debugC(DEBUG_INSANE, "Rebel2 Opcode 8: Aux sound par4=%d dataSize=%u exceeds remaining=%lld",
 				par4, dataSize, (long long)remaining);
 		}
 	}
@@ -1682,7 +1682,7 @@ bool InsaneRebel2::loadOpcode8ShotOriginTable(Common::SeekableReadStream &b, int
 // ScummVM refactor helper for opcode 8 embedded ANIM scanning, not a separate retail function.
 void InsaneRebel2::loadOpcode8EmbeddedAnim(byte *renderBitmap, Common::SeekableReadStream &b, int64 startPos, int64 remaining, int16 par3, int16 par4) {
 	// Remaining handlers require finding ANIM tag in the stream.
-	debug("Rebel2 Opcode 8: Scanning for ANIM tag (startPos=%lld remaining=%lld)",
+	debugC(DEBUG_INSANE, "Rebel2 Opcode 8: Scanning for ANIM tag (startPos=%lld remaining=%lld)",
 		(long long)startPos, (long long)remaining);
 
 	if (remaining <= 0) {
@@ -1696,19 +1696,19 @@ void InsaneRebel2::loadOpcode8EmbeddedAnim(byte *renderBitmap, Common::SeekableR
 	}
 
 	int bytesRead = b.read(scanBuf, scanSize);
-	debug("Rebel2 Opcode 8: Read %d bytes for ANIM scan", bytesRead);
+	debugC(DEBUG_INSANE, "Rebel2 Opcode 8: Read %d bytes for ANIM scan", bytesRead);
 
 	int animOffset = -1;
 	for (int i = 0; i + 8 <= bytesRead; ++i) {
 		if (READ_BE_UINT32(scanBuf + i) == MKTAG('A','N','I','M')) {
 			animOffset = i;
-			debug("Rebel2 Opcode 8: Found ANIM at offset %d", i);
+			debugC(DEBUG_INSANE, "Rebel2 Opcode 8: Found ANIM at offset %d", i);
 			break;
 		}
 	}
 
 	if (animOffset < 0) {
-		debug("Rebel2 Opcode 8: No ANIM tag found");
+		debugC(DEBUG_INSANE, "Rebel2 Opcode 8: No ANIM tag found");
 		free(scanBuf);
 		b.seek(startPos);
 		return;
@@ -1779,7 +1779,7 @@ bool InsaneRebel2::handleOpcode8EmbeddedAnim(byte *renderBitmap, byte *animData,
 		} else if (par4 == 5) {
 			handled = loadLevel2Background(animData, animDataSize, renderBitmap);
 		} else if (par4 == 4 || par4 == 6 || par4 == 7) {
-			debug("Rebel2 Opcode 8: Handler 25 overlay par4=%d - drawing to screen", par4);
+			debugC(DEBUG_INSANE, "Rebel2 Opcode 8: Handler 25 overlay par4=%d - drawing to screen", par4);
 			loadEmbeddedSan(par4, animData, animDataSize, renderBitmap);
 			handled = true;
 		}
@@ -1793,7 +1793,7 @@ bool InsaneRebel2::handleOpcode8EmbeddedAnim(byte *renderBitmap, byte *animData,
 		const bool lowResHud = (par3 == 1 || par3 == 3);
 
 		if ((!highRes && highResHud) || (highRes && lowResHud)) {
-			debug("Rebel2 Opcode 8: Skipping %s HUD par3=%d while running in %s mode",
+			debugC(DEBUG_INSANE, "Rebel2 Opcode 8: Skipping %s HUD par3=%d while running in %s mode",
 				highResHud ? "high-res" : "low-res", par3, highRes ? "high-res" : "low-res");
 			handled = true;
 		} else {
@@ -1807,7 +1807,7 @@ bool InsaneRebel2::handleOpcode8EmbeddedAnim(byte *renderBitmap, byte *animData,
 
 			// Skip audio tracks (userId >= 1000).
 			if (userId > 0 && userId < 1000) {
-				debug("Rebel2 Opcode 8: Loading embedded SAN HUD userId=%d (handler=%d par3=%d par4=%d)",
+				debugC(DEBUG_INSANE, "Rebel2 Opcode 8: Loading embedded SAN HUD userId=%d (handler=%d par3=%d par4=%d)",
 					userId, _rebelHandler, par3, par4);
 				loadEmbeddedSan(userId, animData, animDataSize, renderBitmap);
 				handled = true;
@@ -1816,14 +1816,14 @@ bool InsaneRebel2::handleOpcode8EmbeddedAnim(byte *renderBitmap, byte *animData,
 	}
 
 	if (!handled) {
-		debug("Rebel2 Opcode 8: Unhandled case - handler=%d par3=%d par4=%d", _rebelHandler, par3, par4);
+		debugC(DEBUG_INSANE, "Rebel2 Opcode 8: Unhandled case - handler=%d par3=%d par4=%d", _rebelHandler, par3, par4);
 	}
 
 	return handled;
 }
 
 void InsaneRebel2::iactRebel2Opcode8(byte *renderBitmap, Common::SeekableReadStream &b, int32 chunkSize, int16 par2, int16 par3, int16 par4) {
-	debug("Rebel2 IACT Opcode 8: handler=%d par2=%d par3=%d par4=%d (gameState=%d)",
+	debugC(DEBUG_INSANE, "Rebel2 IACT Opcode 8: handler=%d par2=%d par3=%d par4=%d (gameState=%d)",
 		_rebelHandler, par2, par3, par4, _gameState);
 
 	int64 startPos = b.pos();
@@ -1914,7 +1914,7 @@ bool InsaneRebel2::loadHandler25ShotOriginTable(Common::SeekableReadStream &b, i
 	b.seek(savedPos);
 
 	if (count < 20) {
-		debug("Rebel2 Opcode 8: Handler25 par4=8 parse failed (count=%d, expected up to 30)", count);
+		debugC(DEBUG_INSANE, "Rebel2 Opcode 8: Handler25 par4=8 parse failed (count=%d, expected up to 30)", count);
 		return false;
 	}
 
@@ -1930,7 +1930,7 @@ bool InsaneRebel2::loadHandler25ShotOriginTable(Common::SeekableReadStream &b, i
 	}
 	_grdShotOriginTableLoaded = true;
 
-	debug("Rebel2 Opcode 8: Loaded Handler25 shot-origin table (pairs=%d) idx5=(%d,%d) idx14=(%d,%d)",
+	debugC(DEBUG_INSANE, "Rebel2 Opcode 8: Loaded Handler25 shot-origin table (pairs=%d) idx5=(%d,%d) idx14=(%d,%d)",
 		count / 2, _grdShotOriginX[5], _grdShotOriginY[5], _grdShotOriginX[14], _grdShotOriginY[14]);
 	return true;
 }
@@ -1998,7 +1998,7 @@ bool InsaneRebel2::loadHandler7ShotTable(Common::SeekableReadStream &b, int64 st
 	b.seek(savedPos);
 
 	if (count < 70) {
-		debug("Rebel2 Opcode 8: Handler7 par4=%d shot table parse failed (count=%d)", par4, count);
+		debugC(DEBUG_INSANE, "Rebel2 Opcode 8: Handler7 par4=%d shot table parse failed (count=%d)", par4, count);
 		return false;
 	}
 
@@ -2014,7 +2014,7 @@ bool InsaneRebel2::loadHandler7ShotTable(Common::SeekableReadStream &b, int64 st
 	else
 		_flyRightGunTableLoaded = true;
 
-	debug("Rebel2 Opcode 8: Loaded Handler7 %s gun table idx0=(%d,%d) idx17=(%d,%d) idx34=(%d,%d)",
+	debugC(DEBUG_INSANE, "Rebel2 Opcode 8: Loaded Handler7 %s gun table idx0=(%d,%d) idx17=(%d,%d) idx34=(%d,%d)",
 		(par4 == 12) ? "left" : "right",
 		tableX[0], tableY[0], tableX[17], tableY[17], tableX[34], tableY[34]);
 	return true;
@@ -2050,13 +2050,13 @@ bool InsaneRebel2::loadHandler7FlySprites(Common::SeekableReadStream &b, int64 r
 		return false;
 	}
 
-	debug("Rebel2 loadHandler7FlySprites: header bytes: %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X",
+	debugC(DEBUG_INSANE, "Rebel2 loadHandler7FlySprites: header bytes: %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X",
 		header[0], header[1], header[2], header[3], header[4],
 		header[5], header[6], header[7], header[8], header[9]);
 
 	// Size is at offset 14 from IACT start = bytes 6-9 of our header buffer
 	uint32 nutSize = READ_LE_UINT32(header + 6);
-	debug("Rebel2 loadHandler7FlySprites: par4=%d nutSize=%u remaining=%lld",
+	debugC(DEBUG_INSANE, "Rebel2 loadHandler7FlySprites: par4=%d nutSize=%u remaining=%lld",
 		par4, nutSize, (long long)remaining);
 
 	if (nutSize == 0 || nutSize > (uint32)(remaining - 10)) {
@@ -2069,7 +2069,7 @@ bool InsaneRebel2::loadHandler7FlySprites(Common::SeekableReadStream &b, int64 r
 	}
 
 	int bytesRead = b.read(nutData, nutSize);
-	debug("Rebel2 loadHandler7FlySprites: Read %d/%u bytes, first 16: %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X",
+	debugC(DEBUG_INSANE, "Rebel2 loadHandler7FlySprites: Read %d/%u bytes, first 16: %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X",
 		bytesRead, nutSize,
 		bytesRead > 0 ? nutData[0] : 0, bytesRead > 1 ? nutData[1] : 0,
 		bytesRead > 2 ? nutData[2] : 0, bytesRead > 3 ? nutData[3] : 0,
@@ -2099,13 +2099,13 @@ bool InsaneRebel2::loadHandler7FlySprites(Common::SeekableReadStream &b, int64 r
 	// Load as a Rebel2 embedded sprite ANIM.
 	NutRenderer *newNut = makeRebel2SpriteFromData(_vm, nutData, bytesRead);
 	if (!newNut || newNut->getNumChars() <= 0) {
-		debug("Rebel2 loadHandler7FlySprites: NUT load failed for par4=%d", par4);
+		debugC(DEBUG_INSANE, "Rebel2 loadHandler7FlySprites: NUT load failed for par4=%d", par4);
 		delete newNut;
 		free(nutData);
 		return false;
 	}
 
-	debug("Rebel2 loadHandler7FlySprites: Loaded FLY NUT par4=%d with %d sprites",
+	debugC(DEBUG_INSANE, "Rebel2 loadHandler7FlySprites: Loaded FLY NUT par4=%d with %d sprites",
 		par4, newNut->getNumChars());
 
 	// Assign to appropriate slot based on par4 (matches FUN_0040c3cc case 6 switch)
@@ -2114,7 +2114,7 @@ bool InsaneRebel2::loadHandler7FlySprites(Common::SeekableReadStream &b, int64 r
 	case 1:  // FLY001 - Ship direction sprites (35 frames)
 		delete _flyShipSprite;
 		_flyShipSprite = newNut;
-		debug("Rebel2: _flyShipSprite set with %d sprites", newNut->getNumChars());
+		debugC(DEBUG_INSANE, "Rebel2: _flyShipSprite set with %d sprites", newNut->getNumChars());
 		break;
 	case 2:  // FLY003 - Targeting overlay
 		delete _flyTargetSprite;
@@ -2156,7 +2156,7 @@ bool InsaneRebel2::loadTurretHudOverlay(byte *animData, int32 size, int16 select
 	const int secondarySlot = highRes ? 4 : 3;
 
 	if (selector >= 1 && selector <= 4 && selector != primarySlot && selector != secondarySlot) {
-		debug("Rebel2 loadTurretHudOverlay: Skipping %s HUD selector=%d (running in %s mode)",
+		debugC(DEBUG_INSANE, "Rebel2 loadTurretHudOverlay: Skipping %s HUD selector=%d (running in %s mode)",
 			(selector == 2 || selector == 4) ? "high-res" : "low-res", selector,
 			highRes ? "high-res" : "low-res");
 		return true;
@@ -2168,12 +2168,12 @@ bool InsaneRebel2::loadTurretHudOverlay(byte *animData, int32 size, int16 select
 
 	NutRenderer *newNut = makeRebel2SpriteFromData(_vm, animData, size);
 	if (!newNut || newNut->getNumChars() <= 0) {
-		debug("Rebel2 loadTurretHudOverlay: NUT load failed for selector=%d", selector);
+		debugC(DEBUG_INSANE, "Rebel2 loadTurretHudOverlay: NUT load failed for selector=%d", selector);
 		delete newNut;
 		return false;
 	}
 
-	debug("Rebel2 loadTurretHudOverlay: Loaded turret HUD NUT selector=%d with %d sprites",
+	debugC(DEBUG_INSANE, "Rebel2 loadTurretHudOverlay: Loaded turret HUD NUT selector=%d with %d sprites",
 		selector, newNut->getNumChars());
 
 	if (selector == primarySlot) {
@@ -2207,12 +2207,12 @@ bool InsaneRebel2::loadHandler8ShipSprites(byte *animData, int32 size, int16 par
 
 	NutRenderer *newNut = makeRebel2SpriteFromData(_vm, animData, size);
 	if (!newNut || newNut->getNumChars() <= 0) {
-		debug("Rebel2 loadHandler8ShipSprites: NUT load failed for par4=%d", par4);
+		debugC(DEBUG_INSANE, "Rebel2 loadHandler8ShipSprites: NUT load failed for par4=%d", par4);
 		delete newNut;
 		return false;
 	}
 
-	debug("Rebel2 loadHandler8ShipSprites: Loaded ship NUT par4=%d with %d sprites",
+	debugC(DEBUG_INSANE, "Rebel2 loadHandler8ShipSprites: Loaded ship NUT par4=%d with %d sprites",
 		par4, newNut->getNumChars());
 
 	switch (par4) {
@@ -2259,29 +2259,29 @@ bool InsaneRebel2::loadHandler25GrdSprites(byte *animData, int32 size, int16 par
 
 	NutRenderer *newNut = makeRebel2SpriteFromData(_vm, animData, size);
 	if (!newNut || newNut->getNumChars() <= 0) {
-		debug("Rebel2 loadHandler25GrdSprites: NUT load failed for par4=%d", par4);
+		debugC(DEBUG_INSANE, "Rebel2 loadHandler25GrdSprites: NUT load failed for par4=%d", par4);
 		delete newNut;
 		return false;
 	}
 
-	debug("Rebel2 loadHandler25GrdSprites: Loaded GRD NUT par4=%d with %d sprites",
+	debugC(DEBUG_INSANE, "Rebel2 loadHandler25GrdSprites: Loaded GRD NUT par4=%d with %d sprites",
 		par4, newNut->getNumChars());
 
 	switch (par4) {
 	case 1:  // GRD001 - Primary ship sprite
 		delete _grd001Sprite;
 		_grd001Sprite = newNut;
-		debug("Rebel2: _grd001Sprite set with %d sprites", newNut->getNumChars());
+		debugC(DEBUG_INSANE, "Rebel2: _grd001Sprite set with %d sprites", newNut->getNumChars());
 		break;
 	case 2:  // GRD002 - Secondary ship sprite
 		delete _grd002Sprite;
 		_grd002Sprite = newNut;
-		debug("Rebel2: _grd002Sprite set with %d sprites", newNut->getNumChars());
+		debugC(DEBUG_INSANE, "Rebel2: _grd002Sprite set with %d sprites", newNut->getNumChars());
 		break;
 	case 10: // GRD005 - Mode 3 overlay sprite
 		delete _grd005Sprite;
 		_grd005Sprite = newNut;
-		debug("Rebel2: _grd005Sprite set with %d sprites", newNut->getNumChars());
+		debugC(DEBUG_INSANE, "Rebel2: _grd005Sprite set with %d sprites", newNut->getNumChars());
 		break;
 	default:
 		delete newNut;
@@ -2301,7 +2301,7 @@ bool InsaneRebel2::loadLevel2Background(byte *animData, int32 size, byte *render
 		return false;
 	}
 
-	debug("Rebel2 loadLevel2Background: Loading Level 2 background (animSize=%d)", size);
+	debugC(DEBUG_INSANE, "Rebel2 loadLevel2Background: Loading Level 2 background (animSize=%d)", size);
 
 	// Allocate background buffer if needed (320x200 = 64000 bytes)
 	if (_level2Background == nullptr) {
@@ -2317,7 +2317,7 @@ bool InsaneRebel2::loadLevel2Background(byte *animData, int32 size, byte *render
 
 	uint32 animTag = stream.readUint32BE();
 	if (animTag != MKTAG('A','N','I','M')) {
-		debug("Rebel2 loadLevel2Background: Missing ANIM tag, got 0x%08X", animTag);
+		debugC(DEBUG_INSANE, "Rebel2 loadLevel2Background: Missing ANIM tag, got 0x%08X", animTag);
 		return false;
 	}
 
@@ -2326,10 +2326,10 @@ bool InsaneRebel2::loadLevel2Background(byte *animData, int32 size, byte *render
 	if ((int64)animSize <= streamEnd - 8) {
 		animEnd = 8 + (int64)animSize;
 	} else {
-		debug("Rebel2 loadLevel2Background: ANIM truncated: reported size=%u, actual=%lld",
+		debugC(DEBUG_INSANE, "Rebel2 loadLevel2Background: ANIM truncated: reported size=%u, actual=%lld",
 			animSize, streamEnd - 8);
 	}
-	debug("Rebel2 loadLevel2Background: Found ANIM tag, size=%u", animSize);
+	debugC(DEBUG_INSANE, "Rebel2 loadLevel2Background: Found ANIM tag, size=%u", animSize);
 
 	bool foundBackground = false;
 	while (!stream.eos() && stream.pos() + 8 <= animEnd && !foundBackground) {
@@ -2345,7 +2345,7 @@ bool InsaneRebel2::loadLevel2Background(byte *animData, int32 size, byte *render
 			continue;
 		}
 
-		debug("Rebel2 loadLevel2Background: Found FRME at %lld, size=%u", stream.pos() - 8, chunkSize);
+		debugC(DEBUG_INSANE, "Rebel2 loadLevel2Background: Found FRME at %lld, size=%u", stream.pos() - 8, chunkSize);
 
 		while (stream.pos() + 8 <= chunkDataEnd && !stream.eos() && !foundBackground) {
 			uint32 subTag;
@@ -2361,7 +2361,7 @@ bool InsaneRebel2::loadLevel2Background(byte *animData, int32 size, byte *render
 			}
 
 			if (subSize < 14) {
-				debug("Rebel2 loadLevel2Background: FOBJ too small: size=%u", subSize);
+				debugC(DEBUG_INSANE, "Rebel2 loadLevel2Background: FOBJ too small: size=%u", subSize);
 				stream.seek(nextSubPos);
 				continue;
 			}
@@ -2375,7 +2375,7 @@ bool InsaneRebel2::loadLevel2Background(byte *animData, int32 size, byte *render
 			stream.readUint16LE();  // unknown
 			stream.readUint16LE();  // unknown
 
-			debug("Rebel2 loadLevel2Background: Found FOBJ: codec=%d pos=(%d,%d) size=%dx%d",
+			debugC(DEBUG_INSANE, "Rebel2 loadLevel2Background: Found FOBJ: codec=%d pos=(%d,%d) size=%dx%d",
 				codec, fobjX, fobjY, fobjW, fobjH);
 
 			// Decode codec 3 (RLE) into the original 320x200 background buffer.
@@ -2389,7 +2389,7 @@ bool InsaneRebel2::loadLevel2Background(byte *animData, int32 size, byte *render
 				smushDecodeRLEOpaque(_level2Background, rleData, fobjX, fobjY, drawW, drawH, 320,
 					(int)(subDataEnd - stream.pos()));
 
-				debug("Rebel2 loadLevel2Background: Decoded Level 2 background (%dx%d at %d,%d, clipped to %dx%d)",
+				debugC(DEBUG_INSANE, "Rebel2 loadLevel2Background: Decoded Level 2 background (%dx%d at %d,%d, clipped to %dx%d)",
 					fobjW, fobjH, fobjX, fobjY, drawW, drawH);
 				_level2BackgroundLoaded = true;
 				foundBackground = true;
@@ -2402,9 +2402,9 @@ bool InsaneRebel2::loadLevel2Background(byte *animData, int32 size, byte *render
 						for (int by = 0; by < 200; by++) {
 							memcpy(renderBitmap + by * 320, _level2Background + by * 320, 320);
 						}
-						debug("Rebel2 loadLevel2Background: Copied to renderBitmap (pitch=%d)", bufferPitch);
+						debugC(DEBUG_INSANE, "Rebel2 loadLevel2Background: Copied to renderBitmap (pitch=%d)", bufferPitch);
 					} else {
-						debug("Rebel2 loadLevel2Background: Skipping renderBitmap copy (pitch=%d != 320)", bufferPitch);
+						debugC(DEBUG_INSANE, "Rebel2 loadLevel2Background: Skipping renderBitmap copy (pitch=%d != 320)", bufferPitch);
 					}
 				}
 			}
@@ -2416,7 +2416,7 @@ bool InsaneRebel2::loadLevel2Background(byte *animData, int32 size, byte *render
 	}
 
 	if (!foundBackground) {
-		debug("Rebel2 loadLevel2Background: Failed to find/decode background FOBJ");
+		debugC(DEBUG_INSANE, "Rebel2 loadLevel2Background: Failed to find/decode background FOBJ");
 	}
 
 	return foundBackground;
@@ -2471,9 +2471,9 @@ void InsaneRebel2::iactRebel2Opcode9(byte *renderBitmap, Common::SeekableReadStr
 		// Try to get string from SMUSH player's string resource
 		if (_player && _player->getString(stringIndex)) {
 			textStr = _player->getString(stringIndex);
-			debug("Rebel2 Opcode 9: TRES string index=%d -> \"%s\"", stringIndex, textStr);
+			debugC(DEBUG_INSANE, "Rebel2 Opcode 9: TRES string index=%d -> \"%s\"", stringIndex, textStr);
 		} else {
-			debug("Rebel2 Opcode 9: TRES string index=%d not found", stringIndex);
+			debugC(DEBUG_INSANE, "Rebel2 Opcode 9: TRES string index=%d not found", stringIndex);
 			return;
 		}
 
@@ -2513,11 +2513,11 @@ void InsaneRebel2::iactRebel2Opcode9(byte *renderBitmap, Common::SeekableReadStr
 		textBuffer[textLen] = '\0';
 		textStr = textBuffer;
 
-		debug("Rebel2 Opcode 9: Inline text at (%d,%d) flags=0x%x -> \"%s\"", posX, posY, textFlags, textStr);
+		debugC(DEBUG_INSANE, "Rebel2 Opcode 9: Inline text at (%d,%d) flags=0x%x -> \"%s\"", posX, posY, textFlags, textStr);
 	}
 
 	if (!textStr || textStr[0] == '\0') {
-		debug("Rebel2 Opcode 9: Empty text string, skipping");
+		debugC(DEBUG_INSANE, "Rebel2 Opcode 9: Empty text string, skipping");
 		return;
 	}
 
@@ -2542,7 +2542,7 @@ void InsaneRebel2::iactRebel2Opcode9(byte *renderBitmap, Common::SeekableReadStr
 
 	// Use the message font loaded during initialization (DIHIFONT.NUT)
 	if (!_rebelMsgFont) {
-		debug("Rebel2 Opcode 9: No message font loaded (_rebelMsgFont is null)");
+		debugC(DEBUG_INSANE, "Rebel2 Opcode 9: No message font loaded (_rebelMsgFont is null)");
 		return;
 	}
 
@@ -2655,7 +2655,7 @@ void InsaneRebel2::iactRebel2Opcode9(byte *renderBitmap, Common::SeekableReadStr
 		}
 	}
 
-	debug("Rebel2 Opcode 9: Rendered subtitle at (%d,%d) flags=0x%x clip=(%d,%d,%d,%d)",
+	debugC(DEBUG_INSANE, "Rebel2 Opcode 9: Rendered subtitle at (%d,%d) flags=0x%x clip=(%d,%d,%d,%d)",
 		posX, posY, textFlags, clipX, clipY, clipW, clipH);
 }
 
@@ -2675,7 +2675,7 @@ void InsaneRebel2::enemyUpdate(byte *renderBitmap, Common::SeekableReadStream &b
 
 	// If disabled, stop processing this object
 	if (disabled) {
-		// debug("Rebel2: Skipping Opcode 4 for disabled enemy ID=%d", enemyId);
+		// debugC(DEBUG_INSANE, "Rebel2: Skipping Opcode 4 for disabled enemy ID=%d", enemyId);
 		return;
 	}
 
@@ -2691,7 +2691,7 @@ void InsaneRebel2::enemyUpdate(byte *renderBitmap, Common::SeekableReadStream &b
 	// In the original (FUN_004028C5/FUN_0041E7C2): sVar5/sVar2 = *(short *)(*local + 6)
 	// This maps to par4 (userId field). Used for DAT_0047ab98 wave state bitmask:
 	//   DAT_0047ab98 |= 1 << (type & 0x1f)
-	debug(5, "Rebel2 Opcode4: handler=%d enemyId=%d par2=%d par3=%d par4/type=%d pos=(%d,%d) size=(%d,%d)",
+	debugC(DEBUG_INSANE, "Rebel2 Opcode4: handler=%d enemyId=%d par2=%d par3=%d par4/type=%d pos=(%d,%d) size=(%d,%d)",
 		_rebelHandler, enemyId, par2, par3, par4, x, y, w, h);
 
 	bool found = false;
diff --git a/engines/scumm/insane/rebel2/levels.cpp b/engines/scumm/insane/rebel2/levels.cpp
index ebbdff25fd0..ea7e586e033 100644
--- a/engines/scumm/insane/rebel2/levels.cpp
+++ b/engines/scumm/insane/rebel2/levels.cpp
@@ -108,7 +108,7 @@ void InsaneRebel2::runGame() {
 			if (chapterResult == kChapterSelectPlay) {
 				// _selectedChapter is 0-based, runLevel expects 1-based
 				int selectedLevel = _selectedChapter + 1;
-				debug("InsaneRebel2: Starting chapter %d (level %d)", _selectedChapter + 1, selectedLevel);
+				debugC(DEBUG_INSANE, "InsaneRebel2: Starting chapter %d (level %d)", _selectedChapter + 1, selectedLevel);
 
 				// Ending selected directly from chapter select (FUN_0041bbe8, case 0xf)
 				if (selectedLevel == 16) {
@@ -154,7 +154,7 @@ void InsaneRebel2::runGame() {
 // We skip the easter eggs and play both O_OPEN_A + O_OPEN_B unconditionally.
 //
 void InsaneRebel2::playIntroSequence() {
-	debug("Rebel2: Playing intro sequence");
+	debugC(DEBUG_INSANE, "Rebel2: Playing intro sequence");
 
 	_gameState = kStateIntro;
 	_menuInputActive = false;
@@ -163,7 +163,7 @@ void InsaneRebel2::playIntroSequence() {
 
 	// Play main intro (OPEN/O_OPEN_A.SAN)
 	// Original: FUN_0041f4d0("OPEN/O_OPEN_A.SAN", 0x28, 0xffff, 0xffff, 0)
-	debug("Rebel2: Playing main intro (O_OPEN_A.SAN)");
+	debugC(DEBUG_INSANE, "Rebel2: Playing main intro (O_OPEN_A.SAN)");
 	splayer->setCurVideoFlags(0x28);
 	splayer->play("OPEN/O_OPEN_A.SAN", 15);
 
@@ -173,7 +173,7 @@ void InsaneRebel2::playIntroSequence() {
 	// Play additional intro (OPEN/O_OPEN_B.SAN)
 	// Original: conditional on DAT_0047ab45 || DAT_0047ab47
 	// We play unconditionally (matches "Continue Intro" menu behavior)
-	debug("Rebel2: Playing additional intro (O_OPEN_B.SAN)");
+	debugC(DEBUG_INSANE, "Rebel2: Playing additional intro (O_OPEN_B.SAN)");
 	splayer->setCurVideoFlags(0x28);
 	splayer->play("OPEN/O_OPEN_B.SAN", 15);
 }
@@ -181,7 +181,7 @@ void InsaneRebel2::playIntroSequence() {
 // playMissionBriefing -- Mission briefing screen (FUN_00415CF8).
 void InsaneRebel2::playMissionBriefing() {
 
-	debug("Rebel2: Playing mission briefing");
+	debugC(DEBUG_INSANE, "Rebel2: Playing mission briefing");
 
 	SmushPlayer *splayer = ((ScummEngine_v7 *)_vm)->_splayer;
 	splayer->setCurVideoFlags(0x08);  // Briefing mode flag
@@ -268,7 +268,7 @@ void InsaneRebel2::playLevelBegin(int levelId) {
 	Common::String prefix = getLevelPrefix(levelId);
 	Common::String filename = Common::String::format("%s/%sBEG.SAN", dir.c_str(), prefix.c_str());
 
-	debug("Rebel2: Playing level %d beginning: %s", levelId, filename.c_str());
+	debugC(DEBUG_INSANE, "Rebel2: Playing level %d beginning: %s", levelId, filename.c_str());
 
 	if (levelId >= 1 && levelId <= 15 && levelTextParams[levelId].textID >= 0) {
 		const TextOverlayParams &p = levelTextParams[levelId];
@@ -292,7 +292,7 @@ void InsaneRebel2::playLevelEnd(int levelId) {
 	Common::String prefix = getLevelPrefix(levelId);
 	Common::String filename = Common::String::format("%s/%sEND.SAN", dir.c_str(), prefix.c_str());
 
-	debug("Rebel2: Playing level %d end: %s", levelId, filename.c_str());
+	debugC(DEBUG_INSANE, "Rebel2: Playing level %d end: %s", levelId, filename.c_str());
 
 	SmushPlayer *splayer = ((ScummEngine_v7 *)_vm)->_splayer;
 	// Original: FUN_00417327 adds | 8, so flags = 0x20 | 0x08 = 0x28
@@ -313,7 +313,7 @@ void InsaneRebel2::playLevelRetry(int levelId) {
 	Common::String prefix = getLevelPrefix(levelId);
 	Common::String filename = Common::String::format("%s/%sRETRY.SAN", dir.c_str(), prefix.c_str());
 
-	debug("Rebel2: Playing level %d retry: %s", levelId, filename.c_str());
+	debugC(DEBUG_INSANE, "Rebel2: Playing level %d retry: %s", levelId, filename.c_str());
 
 	SmushPlayer *splayer = ((ScummEngine_v7 *)_vm)->_splayer;
 	// Original: FUN_00417168 adds | 8, so flags = 0x20 | 0x08 = 0x28
@@ -334,7 +334,7 @@ void InsaneRebel2::playLevelGameOver(int levelId) {
 	Common::String prefix = getLevelPrefix(levelId);
 	Common::String filename = Common::String::format("%s/%sOVER.SAN", dir.c_str(), prefix.c_str());
 
-	debug("Rebel2: Playing level %d game over: %s", levelId, filename.c_str());
+	debugC(DEBUG_INSANE, "Rebel2: Playing level %d game over: %s", levelId, filename.c_str());
 
 	SmushPlayer *splayer = ((ScummEngine_v7 *)_vm)->_splayer;
 	// Original: FUN_00417ab2 adds | 8, so flags = 0x20 | 0x08 = 0x28
@@ -355,7 +355,7 @@ void InsaneRebel2::playLevelGameOver(int levelId) {
 //
 void InsaneRebel2::playEndingSequence() {
 
-	debug("Rebel2: Playing ending sequence (difficulty=%d)", _difficulty);
+	debugC(DEBUG_INSANE, "Rebel2: Playing ending sequence (difficulty=%d)", _difficulty);
 
 	// Switch to gameplay state to stop menu overlay rendering
 	_gameState = kStateGameplay;
@@ -392,7 +392,7 @@ void InsaneRebel2::playEndingSequence() {
 // This is the credits accessible from the main menu, NOT the ending credits.
 void InsaneRebel2::playCreditsSequence() {
 
-	debug("Rebel2: Playing menu credits");
+	debugC(DEBUG_INSANE, "Rebel2: Playing menu credits");
 	resetVideoAudio();
 
 	SmushPlayer *splayer = ((ScummEngine_v7 *)_vm)->_splayer;
@@ -439,7 +439,7 @@ void InsaneRebel2::warpGameplayMouseNow(int x, int y) {
 // runLevel -- Main level dispatcher, calls per-level handlers.
 int InsaneRebel2::runLevel(int levelId) {
 
-	debug("Rebel2: Starting level %d", levelId);
+	debugC(DEBUG_INSANE, "Rebel2: Starting level %d", levelId);
 
 	// Validate level ID
 	if (levelId < 1 || levelId > 15) {
@@ -755,7 +755,7 @@ void InsaneRebel2::playLevelDeathVariant(int levelId, int phase, int frame) {
 		filename = Common::String::format("%s/%sDIE_%s.SAN", dir.c_str(), prefix.c_str(), variant.c_str());
 	}
 
-	debug("Rebel2: Playing death video: %s (phase=%d, frame=%d)", filename.c_str(), phase, frame);
+	debugC(DEBUG_INSANE, "Rebel2: Playing death video: %s (phase=%d, frame=%d)", filename.c_str(), phase, frame);
 
 	SmushPlayer *splayer = ((ScummEngine_v7 *)_vm)->_splayer;
 	// Original: FUN_00417168 adds | 8, so flags = 0x20 | 0x08 = 0x28
@@ -784,7 +784,7 @@ void InsaneRebel2::playLevelRetryVariant(int levelId, int phase) {
 		filename = Common::String::format("%s/%sRETRY.SAN", dir.c_str(), prefix.c_str());
 	}
 
-	debug("Rebel2: Playing retry video: %s (phase=%d)", filename.c_str(), phase);
+	debugC(DEBUG_INSANE, "Rebel2: Playing retry video: %s (phase=%d)", filename.c_str(), phase);
 
 	SmushPlayer *splayer = ((ScummEngine_v7 *)_vm)->_splayer;
 	// Original: FUN_00417168 adds | 8, so flags = 0x20 | 0x08 = 0x28
diff --git a/engines/scumm/insane/rebel2/menu.cpp b/engines/scumm/insane/rebel2/menu.cpp
index 2a17e4d0e4f..e40c088534d 100644
--- a/engines/scumm/insane/rebel2/menu.cpp
+++ b/engines/scumm/insane/rebel2/menu.cpp
@@ -84,7 +84,7 @@ void InsaneRebel2::updateMenuVirtualKeyboard() {
 
 // unlockAllChapters -- Debug mode unlock (FUN_00415CF8 lines 60-71, DAT_0047ab34=='d').
 void InsaneRebel2::unlockAllChapters() {
-	debug("Rebel2: Unlocking all chapters for testing");
+	debugC(DEBUG_INSANE, "Rebel2: Unlocking all chapters for testing");
 	for (int i = 0; i < 16; i++) {
 		_chapterUnlocked[i] = true;
 		_levelUnlocked[i] = true;
@@ -106,7 +106,7 @@ Common::String InsaneRebel2::getRandomMenuVideo() {
 
 	// Map 0-14 to A-O (case 0/default = A, 1 = B, etc.)
 	char letter = 'A' + variant;
-	debug("Rebel2: Selected menu variant %c", letter);
+	debugC(DEBUG_INSANE, "Rebel2: Selected menu variant %c", letter);
 	return Common::String::format("OPEN/O_MENU_%c.SAN", letter);
 }
 
@@ -145,7 +145,7 @@ int InsaneRebel2::processMenuInput() {
 				}
 				// Reset repeat delay counter (DAT_00459ce0)
 				_menuRepeatDelay = 3;
-				debug("Menu: Selection changed to %d (UP)", _menuSelection);
+				debugC(DEBUG_INSANE, "Menu: Selection changed to %d (UP)", _menuSelection);
 				break;
 
 			case Common::KEYCODE_DOWN:
@@ -155,7 +155,7 @@ int InsaneRebel2::processMenuInput() {
 					_menuSelection = 0;
 				}
 				_menuRepeatDelay = 3;
-				debug("Menu: Selection changed to %d (DOWN)", _menuSelection);
+				debugC(DEBUG_INSANE, "Menu: Selection changed to %d (DOWN)", _menuSelection);
 				break;
 
 			case Common::KEYCODE_RETURN:
@@ -163,14 +163,14 @@ int InsaneRebel2::processMenuInput() {
 				// Confirm selection - emulates key code 0x0d
 				if (_menuSelection >= 0 && _menuSelection < _menuItemCount) {
 					result = _menuSelection;
-					debug("Menu: Item %d selected (ENTER)", _menuSelection);
+					debugC(DEBUG_INSANE, "Menu: Item %d selected (ENTER)", _menuSelection);
 				}
 				break;
 
 			case Common::KEYCODE_ESCAPE:
 				// Synthetic custom back action - quit/back (last item)
 				result = _menuItemCount - 1;  // Select quit option
-				debug("Menu: Back action - selecting quit (item %d)", result);
+				debugC(DEBUG_INSANE, "Menu: Back action - selecting quit (item %d)", result);
 				break;
 
 			default:
@@ -187,7 +187,7 @@ int InsaneRebel2::processMenuInput() {
 				if (event.mouse.y >= itemY - itemHitTop && event.mouse.y < itemY - itemHitTop + itemHitHeight) {
 					_menuSelection = i;
 					result = _menuSelection;
-					debug("Menu: Item %d selected (mouse)", _menuSelection);
+					debugC(DEBUG_INSANE, "Menu: Item %d selected (mouse)", _menuSelection);
 					break;
 				}
 			}
@@ -202,7 +202,7 @@ int InsaneRebel2::processMenuInput() {
 							mouseY < itemY - itemHitTop + itemHitHeight - 3 * (highRes ? 2 : 1)) {
 						if (i != _menuSelection) {
 							_menuSelection = i;
-							debug(5, "Menu: Hover selection changed to %d (mouseY=%d)", _menuSelection, mouseY);
+							debugC(DEBUG_INSANE, "Menu: Hover selection changed to %d (mouseY=%d)", _menuSelection, mouseY);
 						}
 						break;
 					}
@@ -453,7 +453,7 @@ void InsaneRebel2::drawMenuOverlay(byte *renderBitmap, int pitch, int width, int
 
 	SmushPlayer *splayer = ((ScummEngine_v7 *)_vm)->_splayer;
 	if (!splayer) {
-		debug(1, "drawMenuOverlay: SmushPlayer not available for TRS strings!");
+		debugC(DEBUG_INSANE, "drawMenuOverlay: SmushPlayer not available for TRS strings!");
 		return;
 	}
 
@@ -462,7 +462,7 @@ void InsaneRebel2::drawMenuOverlay(byte *renderBitmap, int pitch, int width, int
 	for (int i = 0; i < 8; i++) {
 		menuItems[i] = splayer->getString(10 + i);
 		if (!menuItems[i] || !menuItems[i][0]) {
-			debug(1, "drawMenuOverlay: TRS string %d not found!", 10 + i);
+			debugC(DEBUG_INSANE, "drawMenuOverlay: TRS string %d not found!", 10 + i);
 			menuItems[i] = "";
 		}
 	}
@@ -595,7 +595,7 @@ void InsaneRebel2::showPauseOverlay() {
 // Returns kMenuNewGame, kMenuResumeDemo, or kMenuQuit.
 int InsaneRebel2::runMainMenu() {
 
-	debug("Rebel2: Entering main menu");
+	debugC(DEBUG_INSANE, "Rebel2: Entering main menu");
 
 	resetMenu();
 	_gameState = kStateMainMenu;
@@ -617,7 +617,7 @@ int InsaneRebel2::runMainMenu() {
 
 		// Select and play a random menu video
 		Common::String menuVideo = getRandomMenuVideo();
-		debug("Rebel2: Playing menu video: %s", menuVideo.c_str());
+		debugC(DEBUG_INSANE, "Rebel2: Playing menu video: %s", menuVideo.c_str());
 
 		// Set video flags for menu (0x20 = intro/menu flag)
 		// This tells procPostRendering we're in menu mode
@@ -635,7 +635,7 @@ int InsaneRebel2::runMainMenu() {
 		}
 
 		if (_menuInactivityTimedOut) {
-			debug("Rebel2: Main menu inactivity - resuming intro/demo loop");
+			debugC(DEBUG_INSANE, "Rebel2: Main menu inactivity - resuming intro/demo loop");
 			_menuInactivityTimedOut = false;
 			_menuInputActive = false;
 			return kMenuResumeDemo;
@@ -652,7 +652,7 @@ int InsaneRebel2::runMainMenu() {
 		_menuSelectionConfirmed = false;
 
 		// A selection was made - process it
-		debug("Rebel2: Menu video ended with selection=%d", _menuSelection);
+		debugC(DEBUG_INSANE, "Rebel2: Menu video ended with selection=%d", _menuSelection);
 
 		// Process the menu result based on current selection
 		// Menu items matching GAME.TRS indices 11-17 (FUN_004147B2):
@@ -665,34 +665,34 @@ int InsaneRebel2::runMainMenu() {
 		//   case 6 (TRS 17): Return to Launcher -> quit, returns 0
 		switch (_menuSelection) {
 		case 0:  // Start Game -> go to pilot selection
-			debug("Rebel2: Start Game selected - going to pilot selection");
+			debugC(DEBUG_INSANE, "Rebel2: Start Game selected - going to pilot selection");
 			_gameState = kStatePilotSelect;
 			_menuInputActive = false;
 			return kMenuNewGame;  // Return 2 (kMenuNewGame)
 
 		case 1:  // Options -> show options menu (FUN_00416787)
-			debug("Rebel2: Options selected");
+			debugC(DEBUG_INSANE, "Rebel2: Options selected");
 			showOptionsMenu();
 			break;
 
 		case 2:  // Calibrate Joystick
-			debug("Rebel2: Calibrate Joystick selected - no-op for modern joystick support");
+			debugC(DEBUG_INSANE, "Rebel2: Calibrate Joystick selected - no-op for modern joystick support");
 			// Modern controller support uses live keymapper actions; no explicit
 			// joystick calibration flow is required here.
 			break;
 
 		case 3:  // Continue Intro -> return to intro/demo loop
-			debug("Rebel2: Continue Intro selected - resuming intro/demo loop");
+			debugC(DEBUG_INSANE, "Rebel2: Continue Intro selected - resuming intro/demo loop");
 			_menuInputActive = false;
 			return kMenuResumeDemo;
 
 		case 4:  // Show Top Pilots -> high score display (FUN_00420116(-1))
-			debug("Rebel2: Show Top Pilots selected");
+			debugC(DEBUG_INSANE, "Rebel2: Show Top Pilots selected");
 			showTopPilots();
 			break;
 
 		case 5:  // Show Credits -> play credits video
-			debug("Rebel2: Show Credits selected - playing O_CREDIT.SAN");
+			debugC(DEBUG_INSANE, "Rebel2: Show Credits selected - playing O_CREDIT.SAN");
 			_gameState = kStateCredits;
 			_menuInputActive = false;
 			splayer->setCurVideoFlags(0x20);
@@ -703,12 +703,12 @@ int InsaneRebel2::runMainMenu() {
 			break;
 
 		case 6:  // Return to Launcher -> quit game
-			debug("Rebel2: Return to Launcher selected");
+			debugC(DEBUG_INSANE, "Rebel2: Return to Launcher selected");
 			_menuInputActive = false;
 			return kMenuQuit;
 
 		default:
-			debug("Rebel2: Unknown menu selection %d", _menuSelection);
+			debugC(DEBUG_INSANE, "Rebel2: Unknown menu selection %d", _menuSelection);
 			break;
 		}
 	}
@@ -725,7 +725,7 @@ int InsaneRebel2::runMainMenu() {
 // Returns kChapterSelectPlay, kChapterSelectBack, or kChapterSelectQuit.
 int InsaneRebel2::runChapterSelect() {
 
-	debug("Rebel2: Entering chapter selection (FUN_00415CF8)");
+	debugC(DEBUG_INSANE, "Rebel2: Entering chapter selection (FUN_00415CF8)");
 
 	// Enable menu input capture
 	_menuInputActive = true;
@@ -769,7 +769,7 @@ int InsaneRebel2::runChapterSelect() {
 	while (!_vm->shouldQuit()) {
 		_vm->_smushVideoShouldFinish = false;
 
-		debug("Rebel2: Playing chapter select background: OPEN/O_LEVEL.SAN");
+		debugC(DEBUG_INSANE, "Rebel2: Playing chapter select background: OPEN/O_LEVEL.SAN");
 
 		// Flags: 0x20 (overlay/menu rendering) | 0x08 (preserve buffer, suppress
 		// AHDR speed override). Matches original FUN_0041f4d0 parameter 8.
@@ -795,12 +795,12 @@ int InsaneRebel2::runChapterSelect() {
 		_vm->_smushVideoShouldFinish = false;
 		_menuSelectionConfirmed = false;
 
-		debug("Rebel2: Chapter selection made: %d", _chapterSelection);
+		debugC(DEBUG_INSANE, "Rebel2: Chapter selection made: %d", _chapterSelection);
 
 		// Process chapter selection (lines 134-236 of FUN_00415CF8)
 		if (_chapterSelection == 16) {
 			// BACK selected (index 16 = 17th item)
-			debug("Rebel2: BACK to main menu selected");
+			debugC(DEBUG_INSANE, "Rebel2: BACK to main menu selected");
 			setVirtualKeyboardVisible(false);
 			_menuInputActive = false;
 			return kChapterSelectBack;
@@ -810,7 +810,7 @@ int InsaneRebel2::runChapterSelect() {
 			if (_chapterUnlocked[_chapterSelection]) {
 				// Unlocked chapter — play it
 				_selectedChapter = _chapterSelection;
-				debug("Rebel2: Chapter %d selected (unlocked)", _selectedChapter + 1);
+				debugC(DEBUG_INSANE, "Rebel2: Chapter %d selected (unlocked)", _selectedChapter + 1);
 				setVirtualKeyboardVisible(false);
 				_menuInputActive = false;
 				return kChapterSelectPlay;
@@ -834,13 +834,13 @@ int InsaneRebel2::runChapterSelect() {
 					setBit(16 - _chapterSelection);
 					_passwordInput.clear();
 					updateMenuVirtualKeyboard();
-					debug("Rebel2: Chapter %d unlocked via password", _chapterSelection + 1);
+					debugC(DEBUG_INSANE, "Rebel2: Chapter %d unlocked via password", _chapterSelection + 1);
 					continue;  // Re-render with updated unlock state
 				}
 			}
 			// Wrong password or no password entered
 			_passwordInput.clear();
-			debug("Rebel2: Password rejected for chapter %d", _chapterSelection + 1);
+			debugC(DEBUG_INSANE, "Rebel2: Password rejected for chapter %d", _chapterSelection + 1);
 		}
 	}
 
@@ -873,7 +873,7 @@ int InsaneRebel2::processChapterSelectInput() {
 				// Update preview offset (FUN_00425170: Y = selected * -50 + 75)
 				_previewOffsetY = _chapterSelection * -50 + 75;
 				updateMenuVirtualKeyboard();
-				debug("ChapterSelect: Selection changed to %d (UP) offsetY=%d", _chapterSelection, _previewOffsetY);
+				debugC(DEBUG_INSANE, "ChapterSelect: Selection changed to %d (UP) offsetY=%d", _chapterSelection, _previewOffsetY);
 				break;
 
 			case Common::KEYCODE_DOWN:
@@ -886,14 +886,14 @@ int InsaneRebel2::processChapterSelectInput() {
 				// Update preview offset (FUN_00425170: Y = selected * -50 + 75)
 				_previewOffsetY = _chapterSelection * -50 + 75;
 				updateMenuVirtualKeyboard();
-				debug("ChapterSelect: Selection changed to %d (DOWN) offsetY=%d", _chapterSelection, _previewOffsetY);
+				debugC(DEBUG_INSANE, "ChapterSelect: Selection changed to %d (DOWN) offsetY=%d", _chapterSelection, _previewOffsetY);
 				break;
 
 			case Common::KEYCODE_RETURN:
 			case Common::KEYCODE_KP_ENTER:
 				if (_chapterSelection >= 0 && _chapterSelection < _chapterItemCount) {
 					result = _chapterSelection;
-					debug("ChapterSelect: Item %d selected (ENTER)", _chapterSelection);
+					debugC(DEBUG_INSANE, "ChapterSelect: Item %d selected (ENTER)", _chapterSelection);
 				}
 				break;
 
@@ -901,14 +901,14 @@ int InsaneRebel2::processChapterSelectInput() {
 				// Synthetic custom back action (same as selecting BACK)
 				setVirtualKeyboardVisible(false);
 				result = 16;  // BACK index
-				debug("ChapterSelect: Back action - back to menu");
+				debugC(DEBUG_INSANE, "ChapterSelect: Back action - back to menu");
 				break;
 
 			case Common::KEYCODE_BACKSPACE:
 				// Backspace for password input (line 107-112 of FUN_00415CF8)
 				if (!_passwordInput.empty()) {
 					_passwordInput.deleteLastChar();
-					debug("ChapterSelect: Password backspace, now: %s", _passwordInput.c_str());
+					debugC(DEBUG_INSANE, "ChapterSelect: Password backspace, now: %s", _passwordInput.c_str());
 				}
 				break;
 
@@ -917,7 +917,7 @@ int InsaneRebel2::processChapterSelectInput() {
 				if (event.kbd.ascii >= 0x20 && event.kbd.ascii <= 0x7E) {
 					if (_passwordInput.size() < 8) {
 						_passwordInput += (char)event.kbd.ascii;
-						debug("ChapterSelect: Password input: %s", _passwordInput.c_str());
+						debugC(DEBUG_INSANE, "ChapterSelect: Password input: %s", _passwordInput.c_str());
 					}
 				}
 				break;
@@ -940,7 +940,7 @@ int InsaneRebel2::processChapterSelectInput() {
 						_previewOffsetY = _chapterSelection * -50 + 75;
 						updateMenuVirtualKeyboard();
 						result = _chapterSelection;
-						debug("ChapterSelect: Item %d selected (mouse)", _chapterSelection);
+						debugC(DEBUG_INSANE, "ChapterSelect: Item %d selected (mouse)", _chapterSelection);
 						break;
 					}
 				}
@@ -966,7 +966,7 @@ int InsaneRebel2::processChapterSelectInput() {
 							_chapterSelection = i;
 							_previewOffsetY = _chapterSelection * -50 + 75;
 							updateMenuVirtualKeyboard();
-							debug(5, "ChapterSelect: Hover changed to %d", _chapterSelection);
+							debugC(DEBUG_INSANE, "ChapterSelect: Hover changed to %d", _chapterSelection);
 						}
 						break;
 					}
@@ -1222,7 +1222,7 @@ void InsaneRebel2::drawChapterSelectOverlay(byte *renderBitmap, int pitch, int w
 // Returns kLevelSelectPlay, kLevelSelectBack, or kLevelSelectQuit.
 int InsaneRebel2::runLevelSelect() {
 
-	debug("Rebel2: Entering pilot selection (FUN_00414A41), %d pilots loaded", _numPilots);
+	debugC(DEBUG_INSANE, "Rebel2: Entering pilot selection (FUN_00414A41), %d pilots loaded", _numPilots);
 
 	_menuInputActive = true;
 	while (!_menuEventQueue.empty())
@@ -1303,7 +1303,7 @@ int InsaneRebel2::runLevelSelect() {
 					copyPilot(pilotIndex);
 					savePilots();
 					_levelSelection = pilotIndex;
-					debug("Rebel2: Copied pilot %d, now %d pilots", pilotIndex, _numPilots);
+					debugC(DEBUG_INSANE, "Rebel2: Copied pilot %d, now %d pilots", pilotIndex, _numPilots);
 				} else {
 					deletePilot(pilotIndex);
 					savePilots();
@@ -1312,7 +1312,7 @@ int InsaneRebel2::runLevelSelect() {
 					} else {
 						_levelSelection = 0;
 					}
-					debug("Rebel2: Deleted pilot %d, %d remaining", pilotIndex, _numPilots);
+					debugC(DEBUG_INSANE, "Rebel2: Deleted pilot %d, %d remaining", pilotIndex, _numPilots);
 				}
 			}
 			_pilotMenuMode = kPilotModeSelect;
@@ -1322,7 +1322,7 @@ int InsaneRebel2::runLevelSelect() {
 		}
 
 		// --- Normal pilot menu selection ---
-		debug("Rebel2: Pilot selection: %d (numPilots=%d)", _levelSelection, _numPilots);
+		debugC(DEBUG_INSANE, "Rebel2: Pilot selection: %d (numPilots=%d)", _levelSelection, _numPilots);
 
 		if (_levelSelection < _numPilots) {
 			// Existing pilot selected — activate and go to chapter select
@@ -1334,7 +1334,7 @@ int InsaneRebel2::runLevelSelect() {
 				_chapterUnlocked[i] = _debugUnlockAll || (_pilots[_activePilot].damage[i] < 0xFF);
 			}
 
-			debug("Rebel2: Pilot '%s' selected (slot %d, difficulty %d)",
+			debugC(DEBUG_INSANE, "Rebel2: Pilot '%s' selected (slot %d, difficulty %d)",
 			      _pilots[_activePilot].name, _activePilot, _difficulty);
 			setVirtualKeyboardVisible(false);
 			_menuInputActive = false;
@@ -1349,7 +1349,7 @@ int InsaneRebel2::runLevelSelect() {
 				_pilotMenuMode = kPilotModeNameInput;
 				_levelItemCount = _numPilots + 4;
 				updateMenuVirtualKeyboard();
-				debug("Rebel2: NEW PILOT - entering name for slot %d", newIdx);
+				debugC(DEBUG_INSANE, "Rebel2: NEW PILOT - entering name for slot %d", newIdx);
 			}
 			continue;
 
@@ -1359,7 +1359,7 @@ int InsaneRebel2::runLevelSelect() {
 				_pilotMenuMode = kPilotModeCopySelect;
 				_levelSelection = 0;
 				_levelItemCount = _numPilots;
-				debug("Rebel2: COPY PILOT - selecting source");
+				debugC(DEBUG_INSANE, "Rebel2: COPY PILOT - selecting source");
 			}
 			continue;
 
@@ -1369,7 +1369,7 @@ int InsaneRebel2::runLevelSelect() {
 				_pilotMenuMode = kPilotModeDeleteSelect;
 				_levelSelection = 0;
 				_levelItemCount = _numPilots;
-				debug("Rebel2: DELETE PILOT - selecting target");
+				debugC(DEBUG_INSANE, "Rebel2: DELETE PILOT - selecting target");
 			}
 			continue;
 
@@ -1406,7 +1406,7 @@ int InsaneRebel2::processLevelSelectInput() {
 						setVirtualKeyboardVisible(false);
 						_menuSelectionConfirmed = true;
 						_vm->_smushVideoShouldFinish = true;
-						debug("PilotName: confirmed '%s'", _pilotNameInput.c_str());
+						debugC(DEBUG_INSANE, "PilotName: confirmed '%s'", _pilotNameInput.c_str());
 					}
 				} else if (event.kbd.keycode == Common::KEYCODE_ESCAPE) {
 					// Synthetic custom back action - cancel name entry
@@ -1416,7 +1416,7 @@ int InsaneRebel2::processLevelSelectInput() {
 					_pilotMenuMode = kPilotModeSelect;
 					_levelItemCount = _numPilots + 4;
 					updateMenuVirtualKeyboard();
-					debug("PilotName: cancelled");
+					debugC(DEBUG_INSANE, "PilotName: cancelled");
 				} else if (event.kbd.keycode == Common::KEYCODE_BACKSPACE) {
 					// Backspace — remove last character
 					if (_pilotNameInput.size() > 0) {
@@ -1561,7 +1561,7 @@ void InsaneRebel2::drawLevelSelectOverlay(byte *renderBitmap, int pitch, int wid
 
 	SmushPlayer *splayer = ((ScummEngine_v7 *)_vm)->_splayer;
 	if (!splayer) {
-		debug(1, "drawLevelSelectOverlay: SmushPlayer not available for TRS strings!");
+		debugC(DEBUG_INSANE, "drawLevelSelectOverlay: SmushPlayer not available for TRS strings!");
 		return;
 	}
 
@@ -1731,7 +1731,7 @@ void InsaneRebel2::insertRanking(const char *name, int32 score, int32 rating,
 }
 
 void InsaneRebel2::showTopPilots() {
-	debug("Rebel2: Showing Top Pilots screen (FUN_00420116)");
+	debugC(DEBUG_INSANE, "Rebel2: Showing Top Pilots screen (FUN_00420116)");
 
 	_menuInputActive = true;
 	while (!_menuEventQueue.empty())
@@ -1754,7 +1754,7 @@ void InsaneRebel2::showTopPilots() {
 	_gameState = kStateMainMenu;
 	_menuInputActive = true;
 
-	debug("Rebel2: Top Pilots screen finished");
+	debugC(DEBUG_INSANE, "Rebel2: Top Pilots screen finished");
 }
 
 void InsaneRebel2::drawTopPilotsOverlay(byte *renderBitmap, int pitch, int width, int height) {
@@ -1838,7 +1838,7 @@ void InsaneRebel2::drawTopPilotsOverlay(byte *renderBitmap, int pitch, int width
 
 // showOptionsMenu -- Options menu loop (FUN_00416787).
 void InsaneRebel2::showOptionsMenu() {
-	debug("Rebel2: Showing Options menu (FUN_00416787)");
+	debugC(DEBUG_INSANE, "Rebel2: Showing Options menu (FUN_00416787)");
 
 	_menuInputActive = true;
 	while (!_menuEventQueue.empty())
@@ -1864,7 +1864,7 @@ void InsaneRebel2::showOptionsMenu() {
 	_gameState = kStateMainMenu;
 	_menuInputActive = true;
 
-	debug("Rebel2: Options menu finished");
+	debugC(DEBUG_INSANE, "Rebel2: Options menu finished");
 }
 
 int InsaneRebel2::processOptionsInput() {
diff --git a/engines/scumm/insane/rebel2/rebel.cpp b/engines/scumm/insane/rebel2/rebel.cpp
index 25c7d9f7a23..3b98f147377 100644
--- a/engines/scumm/insane/rebel2/rebel.cpp
+++ b/engines/scumm/insane/rebel2/rebel.cpp
@@ -689,7 +689,7 @@ bool InsaneRebel2::notifyEvent(const Common::Event &event) {
 			// Retail DAT_0047ab60: Yoda-mode Movie Mode skips playable
 			// sections and keeps the story/cutscene sequence moving.
 			_rebelMovieMode = !_rebelMovieMode;
-			debug("Rebel2: Movie mode %s", _rebelMovieMode ? "enabled" : "disabled");
+			debugC(DEBUG_INSANE, "Rebel2: Movie mode %s", _rebelMovieMode ? "enabled" : "disabled");
 			if (_rebelMovieMode && splayer && _gameState == kStateGameplay && _rebelHandler != 0)
 				_vm->_smushVideoShouldFinish = true;
 			return true;
@@ -698,7 +698,7 @@ bool InsaneRebel2::notifyEvent(const Common::Event &event) {
 			// Retail DAT_0047ab64: Yoda-mode Auto Play makes gameplay
 			// computer controlled.
 			_rebelAutoPlay = !_rebelAutoPlay;
-			debug("Rebel2: Auto play %s", _rebelAutoPlay ? "enabled" : "disabled");
+			debugC(DEBUG_INSANE, "Rebel2: Auto play %s", _rebelAutoPlay ? "enabled" : "disabled");
 			return true;
 
 		default:
@@ -901,11 +901,11 @@ bool InsaneRebel2::notifyEvent(const Common::Event &event) {
 			}
 
 			if (_gameState == kStateGameplay && _rebelHandler != 0) {
-				debug("Rebel2: Skip/back action ignored during gameplay");
+				debugC(DEBUG_INSANE, "Rebel2: Skip/back action ignored during gameplay");
 				return true;
 			}
 
-			debug("Rebel2: Skip/back action - skipping video");
+			debugC(DEBUG_INSANE, "Rebel2: Skip/back action - skipping video");
 			_vm->_smushVideoShouldFinish = true;
 			return true;
 		}
@@ -915,7 +915,7 @@ bool InsaneRebel2::notifyEvent(const Common::Event &event) {
 				return true;
 
 			if (_menuInputActive && menuState) {
-				debug("Rebel2: Back/menu action in menu - opening ScummVM menu");
+				debugC(DEBUG_INSANE, "Rebel2: Back/menu action in menu - opening ScummVM menu");
 				openMenuMainMenu(splayer);
 				return true;
 			}
@@ -924,23 +924,23 @@ bool InsaneRebel2::notifyEvent(const Common::Event &event) {
 				if (_lastGameplayMenuCloseTime != 0) {
 					const uint32 elapsedSinceMenuClose = _vm->_system->getMillis() - _lastGameplayMenuCloseTime;
 					if (elapsedSinceMenuClose < 500) {
-						debug("Rebel2: Ignoring repeated gameplay menu action (%u ms)", elapsedSinceMenuClose);
+						debugC(DEBUG_INSANE, "Rebel2: Ignoring repeated gameplay menu action (%u ms)", elapsedSinceMenuClose);
 						return true;
 					}
 				}
 
-				debug("Rebel2: Back/menu action during gameplay - opening ScummVM menu");
+				debugC(DEBUG_INSANE, "Rebel2: Back/menu action during gameplay - opening ScummVM menu");
 				openGameplayMainMenu(splayer);
 				return true;
 			}
 
-			debug("Rebel2: Back/menu action - skipping video");
+			debugC(DEBUG_INSANE, "Rebel2: Back/menu action - skipping video");
 			_vm->_smushVideoShouldFinish = true;
 			return true;
 		}
 
 		if (pressed && splayer && splayer->_paused && _gameState == kStateGameplay) {
-			debug("Rebel2: Joystick action while paused - unpausing");
+			debugC(DEBUG_INSANE, "Rebel2: Joystick action while paused - unpausing");
 			if (_pauseOverlayActive) {
 				_vm->_system->getPaletteManager()->setPalette(_savedPausePalette, 0, 256);
 				_pauseOverlayActive = false;
@@ -1032,11 +1032,11 @@ bool InsaneRebel2::notifyEvent(const Common::Event &event) {
 			(event.type == Common::EVENT_MAINMENU ||
 			 (event.type == Common::EVENT_KEYDOWN && event.kbd.keycode == Common::KEYCODE_ESCAPE))) {
 		if (event.type == Common::EVENT_KEYDOWN && event.kbdRepeat) {
-			debug("Rebel2: Ignoring repeated ESC keydown in menu");
+			debugC(DEBUG_INSANE, "Rebel2: Ignoring repeated ESC keydown in menu");
 			return true;
 		}
 
-		debug("Rebel2: Opening ScummVM menu from menu state");
+		debugC(DEBUG_INSANE, "Rebel2: Opening ScummVM menu from menu state");
 		openMenuMainMenu(splayer);
 		return true;
 	}
@@ -1051,14 +1051,14 @@ bool InsaneRebel2::notifyEvent(const Common::Event &event) {
 	if (gameplayMenuTrigger && _gameState == kStateGameplay && _lastGameplayMenuCloseTime != 0) {
 		const uint32 elapsedSinceMenuClose = _vm->_system->getMillis() - _lastGameplayMenuCloseTime;
 		if (elapsedSinceMenuClose < 500) {
-			debug("Rebel2: Ignoring repeated gameplay menu trigger (%u ms)", elapsedSinceMenuClose);
+			debugC(DEBUG_INSANE, "Rebel2: Ignoring repeated gameplay menu trigger (%u ms)", elapsedSinceMenuClose);
 			return true;
 		}
 	}
 
 	if (event.type == Common::EVENT_MAINMENU && splayer &&
 			_gameState == kStateGameplay && _rebelHandler != 0) {
-		debug("Rebel2: Main menu action during gameplay - opening ScummVM menu");
+		debugC(DEBUG_INSANE, "Rebel2: Main menu action during gameplay - opening ScummVM menu");
 		openGameplayMainMenu(splayer);
 		return true;
 	}
@@ -1068,7 +1068,7 @@ bool InsaneRebel2::notifyEvent(const Common::Event &event) {
 		// leaving the key repeat source to synthesize another ESC immediately after
 		// returning to gameplay. Treat repeats as part of the original press.
 		if (event.kbd.keycode == Common::KEYCODE_ESCAPE && event.kbdRepeat) {
-			debug("Rebel2: Ignoring repeated ESC keydown");
+			debugC(DEBUG_INSANE, "Rebel2: Ignoring repeated ESC keydown");
 			return true;
 		}
 		if (_menuInputActive && event.kbdRepeat &&
@@ -1076,14 +1076,14 @@ bool InsaneRebel2::notifyEvent(const Common::Event &event) {
 				 event.kbd.keycode == Common::KEYCODE_DOWN ||
 				 event.kbd.keycode == Common::KEYCODE_LEFT ||
 				 event.kbd.keycode == Common::KEYCODE_RIGHT)) {
-			debug("Rebel2: Ignoring repeated menu direction keydown");
+			debugC(DEBUG_INSANE, "Rebel2: Ignoring repeated menu direction keydown");
 			return true;
 		}
 
 		// When paused during gameplay, ANY key unpauses (FUN_405A21 line 360-365).
 		// ESC additionally opens the ScummVM menu (original: quit key exits level).
 		if (splayer && splayer->_paused && _gameState == kStateGameplay) {
-			debug("Rebel2: Key pressed while paused - unpausing");
+			debugC(DEBUG_INSANE, "Rebel2: Key pressed while paused - unpausing");
 			// Restore the original palette saved by showPauseOverlay
 			if (_pauseOverlayActive) {
 				_vm->_system->getPaletteManager()->setPalette(_savedPausePalette, 0, 256);
@@ -1091,7 +1091,7 @@ bool InsaneRebel2::notifyEvent(const Common::Event &event) {
 			}
 			splayer->unpause();
 			if (event.kbd.keycode == Common::KEYCODE_ESCAPE && _rebelHandler != 0) {
-				debug("Rebel2: ESC during pause - opening ScummVM menu");
+				debugC(DEBUG_INSANE, "Rebel2: ESC during pause - opening ScummVM menu");
 				openGameplayMainMenu(splayer);
 			}
 			return true;
@@ -1106,11 +1106,11 @@ bool InsaneRebel2::notifyEvent(const Common::Event &event) {
 			if (splayer) {
 				if (_gameState == kStateGameplay && _rebelHandler != 0) {
 					// During active gameplay (handler != 0): pause and open ScummVM menu.
-					debug("Rebel2: ESC pressed during gameplay - opening ScummVM menu");
+					debugC(DEBUG_INSANE, "Rebel2: ESC pressed during gameplay - opening ScummVM menu");
 					openGameplayMainMenu(splayer);
 				} else {
 					// During cutscenes/intros/mission briefings: skip video
-					debug("Rebel2: ESC pressed - skipping video");
+					debugC(DEBUG_INSANE, "Rebel2: ESC pressed - skipping video");
 					_vm->_smushVideoShouldFinish = true;
 				}
 				return true;  // Consume the event
@@ -1121,7 +1121,7 @@ bool InsaneRebel2::notifyEvent(const Common::Event &event) {
 			// SPACE pauses during gameplay (FUN_405A21).
 			// Unpausing is handled above (any key while paused).
 			if (splayer && _gameState == kStateGameplay && !splayer->_paused) {
-				debug("Rebel2: SPACE pressed - pausing");
+				debugC(DEBUG_INSANE, "Rebel2: SPACE pressed - pausing");
 				splayer->pause();
 				showPauseOverlay();
 				return true;
@@ -1135,7 +1135,7 @@ bool InsaneRebel2::notifyEvent(const Common::Event &event) {
 			    _rebelHandler != 0 &&
 			    event.kbd.hasFlags(Common::KBD_SHIFT)) {
 				_skipSectionRequested = true;
-				debug("Rebel2: Shift+S pressed - requesting gameplay section skip");
+				debugC(DEBUG_INSANE, "Rebel2: Shift+S pressed - requesting gameplay section skip");
 				_vm->_smushVideoShouldFinish = true;
 				return true;  // Consume the event
 			}
@@ -1150,10 +1150,10 @@ bool InsaneRebel2::notifyEvent(const Common::Event &event) {
 				if (!_noDamage) {
 					_playerDamage = 255;
 					_playerShield = 0;
-					debug("Rebel2: Shift+D pressed - forcing player death");
+					debugC(DEBUG_INSANE, "Rebel2: Shift+D pressed - forcing player death");
 					_vm->_smushVideoShouldFinish = true;
 				} else {
-					debug("Rebel2: Shift+D pressed - no damage mode prevents forced death");
+					debugC(DEBUG_INSANE, "Rebel2: Shift+D pressed - no damage mode prevents forced death");
 				}
 				return true;  // Consume the event
 			}
@@ -1385,13 +1385,13 @@ void InsaneRebel2::addScore(int points) {
 			// Award bonus life
 			_playerLives++;
 			// TODO: Play bonus life sound (FUN_0041189e(5, 0, 0x7f, 0, 0))
-			debug("Rebel2: BONUS LIFE! Score crossed %d threshold. Lives=%d", threshold, _playerLives);
+			debugC(DEBUG_INSANE, "Rebel2: BONUS LIFE! Score crossed %d threshold. Lives=%d", threshold, _playerLives);
 		}
 	}
 
 	// Add points to score
 	_playerScore += points;
-	debug("Rebel2: Score +%d = %d", points, _playerScore);
+	debugC(DEBUG_INSANE, "Rebel2: Score +%d = %d", points, _playerScore);
 }
 
 // Render score text to HUD (part of FUN_0041c012)
@@ -1478,7 +1478,7 @@ bool InsaneRebel2::loadPilots() {
 		_numPilots = i + 1;
 	}
 
-	debug("Rebel2: Loaded %d pilot(s)", _numPilots);
+	debugC(DEBUG_INSANE, "Rebel2: Loaded %d pilot(s)", _numPilots);
 	return _numPilots > 0;
 }
 
@@ -1520,7 +1520,7 @@ bool InsaneRebel2::savePilots() {
 		_vm->_saveFileMan->removeSavefile(filename);
 	}
 
-	debug("Rebel2: Saved %d pilot(s)", _numPilots);
+	debugC(DEBUG_INSANE, "Rebel2: Saved %d pilot(s)", _numPilots);
 	return ok;
 }
 
@@ -1671,7 +1671,7 @@ int32 InsaneRebel2::processMouse() {
 			mousePos = getGameplayAimPoint();
 		}
 		Common::Point gameplayAim = getGameplayAimPoint();
-		debug("Rebel2 Click: Mouse=(%d,%d) Target=(%d,%d) Enemies=%d",
+		debugC(DEBUG_INSANE, "Rebel2 Click: Mouse=(%d,%d) Target=(%d,%d) Enemies=%d",
 			gameplayAim.x, gameplayAim.y, mousePos.x, mousePos.y, _enemies.size());
 
 		// Spawn visual shot immediately
@@ -1690,7 +1690,7 @@ int32 InsaneRebel2::processMouse() {
 		// Check for hit on any active enemy
 		Common::List<enemy>::iterator it;
 		for (it = _enemies.begin(); it != _enemies.end(); ++it) {
-			debug("  Enemy ID=%d active=%d destroyed=%d rect=(%d,%d)-(%d,%d) contains=%d",
+			debugC(DEBUG_INSANE, "  Enemy ID=%d active=%d destroyed=%d rect=(%d,%d)-(%d,%d) contains=%d",
 				it->id, it->active, it->destroyed,
 				it->rect.left, it->rect.top, it->rect.right, it->rect.bottom,
 				it->rect.contains(worldMousePos));
@@ -1699,7 +1699,7 @@ int32 InsaneRebel2::processMouse() {
 				// Enemy hit!
 				it->active = false;
 				it->destroyed = true;  // Mark as destroyed so IACT won't re-activate
-				debug("Rebel2: HIT enemy ID=%d type=%d at (%d,%d) - Rect: (%d,%d)-(%d,%d)",
+				debugC(DEBUG_INSANE, "Rebel2: HIT enemy ID=%d type=%d at (%d,%d) - Rect: (%d,%d)-(%d,%d)",
 					it->id, it->type, mousePos.x, mousePos.y,
 					it->rect.left, it->rect.top, it->rect.right, it->rect.bottom);
 
@@ -1749,7 +1749,7 @@ int32 InsaneRebel2::processMouse() {
 				// This tracks which enemy GROUPS have been killed in this wave
 				if (it->type > 0 && it->type < 32) {
 					_rebelWaveState |= (1 << it->type);
-					debug("Rebel2: Wave state updated: 0x%x (set bit %d)", _rebelWaveState, it->type);
+					debugC(DEBUG_INSANE, "Rebel2: Wave state updated: 0x%x (set bit %d)", _rebelWaveState, it->type);
 				}
 
 				// Increment kill counter (DAT_0047ab88)
@@ -1766,17 +1766,17 @@ int32 InsaneRebel2::processMouse() {
 					// Slot 2: Enable (Explosion?)
 					if (_rebelLinks[id][2] != 0) {
 						clearBit(_rebelLinks[id][2]);
-						debug("Rebel2: Enabled dependency Slot 2 (ID=%d) for Parent %d", _rebelLinks[id][2], id);
+						debugC(DEBUG_INSANE, "Rebel2: Enabled dependency Slot 2 (ID=%d) for Parent %d", _rebelLinks[id][2], id);
 					}
 					// Slot 1: Enable (Explosion?)
 					if (_rebelLinks[id][1] != 0) {
 						clearBit(_rebelLinks[id][1]);
-						debug("Rebel2: Enabled dependency Slot 1 (ID=%d) for Parent %d", _rebelLinks[id][1], id);
+						debugC(DEBUG_INSANE, "Rebel2: Enabled dependency Slot 1 (ID=%d) for Parent %d", _rebelLinks[id][1], id);
 					}
 					// Slot 0: Disable (Shots?)
 					if (_rebelLinks[id][0] != 0) {
 						setBit(_rebelLinks[id][0]);
-						debug("Rebel2: Disabled dependency Slot 0 (ID=%d) for Parent %d", _rebelLinks[id][0], id);
+						debugC(DEBUG_INSANE, "Rebel2: Disabled dependency Slot 0 (ID=%d) for Parent %d", _rebelLinks[id][0], id);
 					}
 				}
 
@@ -2061,7 +2061,7 @@ void InsaneRebel2::procSKIP(int32 subSize, Common::SeekableReadStream &b) {
 		if (bit1) {
 			_player->_skipNext = true;
 		}
-		debug("Rebel2 SKIP: single ID=%d bit=%d skip=%d frame=%d", par1, bit1 ? 1 : 0, _player->_skipNext ? 1 : 0, _player->_frame);
+		debugC(DEBUG_INSANE, "Rebel2 SKIP: single ID=%d bit=%d skip=%d frame=%d", par1, bit1 ? 1 : 0, _player->_skipNext ? 1 : 0, _player->_frame);
 	} else {
 		// Dual ID mode: skip if bits are different (XOR logic)
 		bool bit1 = isBitSet(par1);
@@ -2069,7 +2069,7 @@ void InsaneRebel2::procSKIP(int32 subSize, Common::SeekableReadStream &b) {
 		if (bit1 != bit2) {
 			_player->_skipNext = true;
 		}
-		debug("Rebel2 SKIP: dual ID1=%d(bit=%d) ID2=%d(bit=%d) skip=%d frame=%d", par1, bit1 ? 1 : 0, par2, bit2 ? 1 : 0, _player->_skipNext ? 1 : 0, _player->_frame);
+		debugC(DEBUG_INSANE, "Rebel2 SKIP: dual ID1=%d(bit=%d) ID2=%d(bit=%d) skip=%d frame=%d", par1, bit1 ? 1 : 0, par2, bit2 ? 1 : 0, _player->_skipNext ? 1 : 0, _player->_frame);
 	}
 }
 
diff --git a/engines/scumm/insane/rebel2/render.cpp b/engines/scumm/insane/rebel2/render.cpp
index 31088a4d446..a33ef1aa849 100644
--- a/engines/scumm/insane/rebel2/render.cpp
+++ b/engines/scumm/insane/rebel2/render.cpp
@@ -168,7 +168,7 @@ static bool readEmbeddedSanChunkHeader(Common::SeekableReadStream &stream, int64
 
 	const int64 dataStart = stream.pos();
 	if ((int64)chunkSize > containerEnd - dataStart) {
-		debug("Rebel2: Truncated embedded SAN %s chunk 0x%08X at %lld: size=%u, remaining=%lld",
+		debugC(DEBUG_INSANE, "Rebel2: Truncated embedded SAN %s chunk 0x%08X at %lld: size=%u, remaining=%lld",
 			context, tag, headerPos, chunkSize, containerEnd - dataStart);
 		return false;
 	}
@@ -204,12 +204,12 @@ void InsaneRebel2::renderEmbeddedFrame(byte *renderBitmap, const EmbeddedSanFram
 	}
 	if (_rebelHandler == 0x19 && (userId == 6 || userId == 7)) {
 		skipImmediateDraw = false;
-		debug("Rebel2: Handler 25 static overlay userId=%d - forcing immediate draw", userId);
+		debugC(DEBUG_INSANE, "Rebel2: Handler 25 static overlay userId=%d - forcing immediate draw", userId);
 	}
 
 	if (!frame.valid || !renderBitmap || skipImmediateDraw) {
 		if (skipImmediateDraw && frame.valid) {
-			debug("Rebel2: Skipped immediate draw for Handler %d HUD %d (will render during post-processing)",
+			debugC(DEBUG_INSANE, "Rebel2: Skipped immediate draw for Handler %d HUD %d (will render during post-processing)",
 				_rebelHandler, userId);
 		}
 		return;
@@ -220,7 +220,7 @@ void InsaneRebel2::renderEmbeddedFrame(byte *renderBitmap, const EmbeddedSanFram
 
 	blitEmbeddedFrameRegion(renderBitmap, pitch, pitch, bufHeight, frame,
 		frame.renderX, frame.renderY, 0, 0, frame.width, frame.height);
-	debug("Rebel2: Rendered embedded HUD %d at (%d,%d)", userId, frame.renderX, frame.renderY);
+	debugC(DEBUG_INSANE, "Rebel2: Rendered embedded HUD %d at (%d,%d)", userId, frame.renderX, frame.renderY);
 }
 
 void InsaneRebel2::drawHandler25CorridorOverlay(byte *renderBitmap) {
@@ -269,7 +269,7 @@ void InsaneRebel2::drawHandler25CorridorOverlay(byte *renderBitmap) {
 			   drawWidth);
 	}
 
-	debug("Rebel2 Handler25: Corridor overlay drawn at (%d,%d) size(%d,%d)",
+	debugC(DEBUG_INSANE, "Rebel2 Handler25: Corridor overlay drawn at (%d,%d) size(%d,%d)",
 		_rebelViewOffsetX, _rebelViewOffsetY, corridorOverlay.width, corridorOverlay.height);
 }
 
@@ -282,7 +282,7 @@ void InsaneRebel2::drawHandler25CorridorOverlay(byte *renderBitmap) {
 void InsaneRebel2::loadEmbeddedSan(int userId, byte *animData, int32 size, byte *renderBitmap) {
 	// Validate userId - Level 3 uses slots 0-11, allow up to 15 for safety
 	if (userId < 0 || userId > 15 || !animData || size < 8) {
-		debug("Rebel2: Invalid embedded SAN: userId=%d, size=%d", userId, size);
+		debugC(DEBUG_INSANE, "Rebel2: Invalid embedded SAN: userId=%d, size=%d", userId, size);
 		return;
 	}
 
@@ -292,7 +292,7 @@ void InsaneRebel2::loadEmbeddedSan(int userId, byte *animData, int32 size, byte
 	// Read ANIM header
 	uint32 animTag = stream.readUint32BE();
 	if (animTag != MKTAG('A','N','I','M')) {
-		debug("Rebel2: Embedded SAN missing ANIM tag, got 0x%08X", animTag);
+		debugC(DEBUG_INSANE, "Rebel2: Embedded SAN missing ANIM tag, got 0x%08X", animTag);
 		return;
 	}
 	uint32 animSize = stream.readUint32BE();
@@ -300,9 +300,9 @@ void InsaneRebel2::loadEmbeddedSan(int userId, byte *animData, int32 size, byte
 	if ((int64)animSize <= streamEnd - 8) {
 		animEnd = 8 + (int64)animSize;
 	} else {
-		debug("Rebel2: Embedded ANIM truncated: reported size=%u, actual=%lld", animSize, streamEnd - 8);
+		debugC(DEBUG_INSANE, "Rebel2: Embedded ANIM truncated: reported size=%u, actual=%lld", animSize, streamEnd - 8);
 	}
-	debug("Rebel2: Parsing embedded ANIM: userId=%d, reported size=%u, actual=%lld", userId, animSize, streamEnd - 8);
+	debugC(DEBUG_INSANE, "Rebel2: Parsing embedded ANIM: userId=%d, reported size=%u, actual=%lld", userId, animSize, streamEnd - 8);
 
 	// Iterate through chunks to find FRME -> FOBJ
 	while (!stream.eos() && stream.pos() + 8 <= animEnd) {
@@ -325,7 +325,7 @@ void InsaneRebel2::loadEmbeddedSan(int userId, byte *animData, int32 size, byte
 
 				if (subTag == MKTAG('F','O','B','J')) {
 					if (subSize < 14) {
-						debug("Rebel2: Embedded FOBJ too small: userId=%d, size=%u", userId, subSize);
+						debugC(DEBUG_INSANE, "Rebel2: Embedded FOBJ too small: userId=%d, size=%u", userId, subSize);
 						stream.seek(nextSubPos);
 						continue;
 					}
@@ -339,13 +339,13 @@ void InsaneRebel2::loadEmbeddedSan(int userId, byte *animData, int32 size, byte
 					stream.readUint16LE();  // unknown
 					stream.readUint16LE();  // unknown
 
-					debug("Rebel2: Embedded HUD frame: userId=%d, %dx%d at (%d,%d), codec=%d",
+					debugC(DEBUG_INSANE, "Rebel2: Embedded HUD frame: userId=%d, %dx%d at (%d,%d), codec=%d",
 						userId, width, height, left, top, codec);
 
 					// High-resolution HUD frames are used when the RA2 high-res option
 					// selects a 640x400 virtual screen. Keep skipping them in low-res mode.
 					if (!isHiRes() && (width > 400 || height > 250)) {
-						debug("Rebel2: SKIPPING high-res embedded frame: userId=%d, %dx%d (exceeds 400x250)",
+						debugC(DEBUG_INSANE, "Rebel2: SKIPPING high-res embedded frame: userId=%d, %dx%d (exceeds 400x250)",
 							userId, width, height);
 						stream.seek(nextSubPos);
 						continue;
@@ -383,7 +383,7 @@ void InsaneRebel2::loadEmbeddedSan(int userId, byte *animData, int32 size, byte
 							}
 							uint32 bytesRead = stream.read(fobjData, dataSize);
 							if (bytesRead != (uint32)dataSize) {
-								debug("Rebel2: Short embedded FOBJ read: got %u of %d bytes", bytesRead, dataSize);
+								debugC(DEBUG_INSANE, "Rebel2: Short embedded FOBJ read: got %u of %d bytes", bytesRead, dataSize);
 								free(fobjData);
 								return;
 							}
@@ -393,17 +393,17 @@ void InsaneRebel2::loadEmbeddedSan(int userId, byte *animData, int32 size, byte
 								// Codec 1/3: RLE - use existing decoder (FUN_0042C590)
 								smushDecodeRLE(frame.pixels, fobjData, 0, 0, width, height, width);
 								frame.valid = true;
-								debug("Rebel2: Decoded embedded HUD (codec %d/RLE): %dx%d", codec, width, height);
+								debugC(DEBUG_INSANE, "Rebel2: Decoded embedded HUD (codec %d/RLE): %dx%d", codec, width, height);
 							} else if (codec == 20) {
 								// Codec 20: Uncompressed (FUN_0042C400)
 								smushDecodeUncompressed(frame.pixels, fobjData, 0, 0, width, height, width);
 								frame.valid = true;
-								debug("Rebel2: Decoded embedded HUD (codec 20/raw): %dx%d", width, height);
+								debugC(DEBUG_INSANE, "Rebel2: Decoded embedded HUD (codec 20/raw): %dx%d", width, height);
 							} else if (codec == 21 || codec == 44) {
 								// Codec 21/44: Line update (FUN_0042BD60)
 								smushDecodeLineUpdate(frame.pixels, fobjData, 0, 0, width, height, width, dataSize);
 								frame.valid = true;
-								debug("Rebel2: Decoded embedded HUD (codec %d/line update): %dx%d", codec, width, height);
+								debugC(DEBUG_INSANE, "Rebel2: Decoded embedded HUD (codec %d/line update): %dx%d", codec, width, height);
 							} else if (codec == 45) {
 								// Codec 45: blur/wipe mask (FUN_0042B460 -> FUN_0042B530 -> FUN_0042DDF0)
 								smushDecodeRA2Blur(frame.pixels, fobjData, 0, 0, width, height, width, dataSize,
@@ -413,16 +413,16 @@ void InsaneRebel2::loadEmbeddedSan(int userId, byte *animData, int32 size, byte
 								// Codec 23: Skip/copy with embedded RLE (FUN_0042BBF0)
 								smushDecodeSkipRLE(frame.pixels, fobjData, 0, 0, width, height, width, dataSize);
 								frame.valid = true;
-								debug("Rebel2: Decoded embedded HUD (codec 23/skip-RLE): %dx%d", width, height);
+								debugC(DEBUG_INSANE, "Rebel2: Decoded embedded HUD (codec 23/skip-RLE): %dx%d", width, height);
 							} else {
-								debug("Rebel2: Unsupported embedded HUD codec %d", codec);
+								debugC(DEBUG_INSANE, "Rebel2: Unsupported embedded HUD codec %d", codec);
 								frame.valid = false;
 							}
 
 							// Count non-zero pixels to verify frame has content
 							if (frame.valid) {
 								int nonZeroPixels = countEmbeddedFramePixels(frame);
-								debug("Rebel2: Frame userId=%d has %d non-zero pixels (%d%%)",
+								debugC(DEBUG_INSANE, "Rebel2: Frame userId=%d has %d non-zero pixels (%d%%)",
 									userId, nonZeroPixels, (nonZeroPixels * 100) / (width * height));
 							}
 
@@ -447,7 +447,7 @@ void InsaneRebel2::loadEmbeddedSan(int userId, byte *animData, int32 size, byte
 		}
 	}
 
-	debug("Rebel2: No FOBJ found in embedded SAN userId=%d", userId);
+	debugC(DEBUG_INSANE, "Rebel2: No FOBJ found in embedded SAN userId=%d", userId);
 }
 
 // Spawn explosion into the shared 5-slot system.
@@ -611,7 +611,7 @@ void InsaneRebel2::spawnHandler25Shot(int x, int y) {
 				_turretShots[i].gunY = _rebelViewOffset2Y + 140 + _viewY;
 			}
 
-			debug("Rebel2 Handler25: Spawned shot %d target (%d,%d) gun (%d,%d)",
+			debugC(DEBUG_INSANE, "Rebel2 Handler25: Spawned shot %d target (%d,%d) gun (%d,%d)",
 				i, _turretShots[i].targetX, _turretShots[i].targetY,
 				_turretShots[i].gunX, _turretShots[i].gunY);
 			break;
@@ -1147,7 +1147,7 @@ void InsaneRebel2::initLaserTexture(NutRenderer *nut, int spriteIdx) {
 		}
 	}
 
-	debug("Rebel2: Initialized laser texture %dx%d from sprite %d (xoff=%d yoff=%d src=%dx%d)",
+	debugC(DEBUG_INSANE, "Rebel2: Initialized laser texture %dx%d from sprite %d (xoff=%d yoff=%d src=%dx%d)",
 	      texWidth, texHeight, spriteIdx, srcXOff, srcYOff, srcWidth, srcHeight);
 }
 
@@ -1514,7 +1514,7 @@ void InsaneRebel2::drawLaserBeam(byte *dst, int pitch, int width, int height,
 	int edgeClipRight = CLIP<int>(clipRight - 1, 1, width - 2);
 	int edgeClipBottom = CLIP<int>(clipBottom - 1, 1, height - 2);
 
-	debug(5, "Rebel2: drawLaserBeam gun(%d,%d) tgt(%d,%d) start(%d,%d) end(%d,%d) anim=%d/%d ws=%d hs=%d th=%d",
+	debugC(DEBUG_INSANE, "Rebel2: drawLaserBeam gun(%d,%d) tgt(%d,%d) start(%d,%d) end(%d,%d) anim=%d/%d ws=%d hs=%d th=%d",
 		gunX, gunY, targetX, targetY, startX, startY, endX, endY,
 		animFrame, maxFrames, widthScale, heightScale, thickness);
 
@@ -1660,16 +1660,16 @@ void InsaneRebel2::registerCollisionZone(Common::SeekableReadStream &b, int16 su
 	// Register zone into appropriate table based on sub-opcode
 	if (subOpcode == 0x0D && _primaryZoneCount < kMaxCollisionZones) {
 		_primaryZones[_primaryZoneCount++] = zone;
-		debug("Rebel2: Registered PRIMARY zone %d: filter=%d fields=[%d,%d] quad=(%d,%d)-(%d,%d)-(%d,%d)-(%d,%d)",
+		debugC(DEBUG_INSANE, "Rebel2: Registered PRIMARY zone %d: filter=%d fields=[%d,%d] quad=(%d,%d)-(%d,%d)-(%d,%d)-(%d,%d)",
 			_primaryZoneCount - 1, par4, field1, field2,
 			x1, y1, x2, y2, x3, y3, x4, y4);
 	} else if (subOpcode == 0x0E && _secondaryZoneCount < kMaxCollisionZones) {
 		_secondaryZones[_secondaryZoneCount++] = zone;
-		debug("Rebel2: Registered SECONDARY zone %d: filter=%d fields=[%d,%d] quad=(%d,%d)-(%d,%d)-(%d,%d)-(%d,%d)",
+		debugC(DEBUG_INSANE, "Rebel2: Registered SECONDARY zone %d: filter=%d fields=[%d,%d] quad=(%d,%d)-(%d,%d)-(%d,%d)-(%d,%d)",
 			_secondaryZoneCount - 1, par4, field1, field2,
 			x1, y1, x2, y2, x3, y3, x4, y4);
 	} else {
-		debug("Rebel2: WARNING - Could not register zone (subOpcode=%d, primary=%d, secondary=%d)",
+		debugC(DEBUG_INSANE, "Rebel2: WARNING - Could not register zone (subOpcode=%d, primary=%d, secondary=%d)",
 			subOpcode, _primaryZoneCount, _secondaryZoneCount);
 	}
 }
@@ -1793,7 +1793,7 @@ void InsaneRebel2::checkCollisionZones(byte *renderBitmap, int pitch, int width,
 				int collisionDamage = (dparams.dodgeDamage >= 0) ? dparams.dodgeDamage : 0;
 
 				if (applyPlayerDamage(collisionDamage)) {
-					debug("Rebel2: COLLISION damage! zone=%d aim=(%d,%d) damage=%d total=%d",
+					debugC(DEBUG_INSANE, "Rebel2: COLLISION damage! zone=%d aim=(%d,%d) damage=%d total=%d",
 						i, aimX, aimY, collisionDamage, _playerDamage);
 				}
 				// Visual effect — FUN_00420515 (palette flash)
@@ -1899,7 +1899,7 @@ void InsaneRebel2::applyHandler7ObstacleHit(const InsaneRebel2::CollisionZone &z
 		initDamageFlash();
 	// Pan based on ship X position relative to screen center.
 	playSfx(1, 127, CLIP((_flyShipScreenX - 212) * 127 / 160, -127, 127));
-	debug("Rebel2: Handler7 Mode0/2 OBSTACLE HIT zone=%d ship=(%d,%d) damage=%d",
+	debugC(DEBUG_INSANE, "Rebel2: Handler7 Mode0/2 OBSTACLE HIT zone=%d ship=(%d,%d) damage=%d",
 		zoneIndex, _flyShipScreenX, _flyShipScreenY, collisionDamage);
 }
 
@@ -1978,7 +1978,7 @@ void InsaneRebel2::checkHandler7TopBoundary(const InsaneRebel2::CollisionZone &z
 			// Ship above top wall - push down.
 			const bool damageApplied = applyHandler7WallDamage(wallDamage);
 			if (damageApplied) {
-				debug("Rebel2: Handler7 Mode1/3 TOP WALL ship=(%d,%d) edgeY=%d damage=%d",
+				debugC(DEBUG_INSANE, "Rebel2: Handler7 Mode1/3 TOP WALL ship=(%d,%d) edgeY=%d damage=%d",
 					_flyShipScreenX, _flyShipScreenY, edgeY, wallDamage);
 			}
 			_spaceShotDirection = 2;  // Direction: pushed down
@@ -2004,7 +2004,7 @@ void InsaneRebel2::checkHandler7BottomBoundary(const InsaneRebel2::CollisionZone
 			// Ship below bottom wall - push up.
 			const bool damageApplied = applyHandler7WallDamage(wallDamage);
 			if (damageApplied) {
-				debug("Rebel2: Handler7 Mode1/3 BOTTOM WALL ship=(%d,%d) edgeY=%d damage=%d",
+				debugC(DEBUG_INSANE, "Rebel2: Handler7 Mode1/3 BOTTOM WALL ship=(%d,%d) edgeY=%d damage=%d",
 					_flyShipScreenX, _flyShipScreenY, edgeY, wallDamage);
 			}
 			_spaceShotDirection = 3;  // Direction: pushed up
@@ -2034,7 +2034,7 @@ void InsaneRebel2::checkHandler7LeftBoundary(const InsaneRebel2::CollisionZone &
 
 			const bool damageApplied = applyHandler7WallDamage(wallDamage);
 			if (damageApplied) {
-				debug("Rebel2: Handler7 Mode1/3 LEFT WALL ship=(%d,%d) edgeX=%d damage=%d",
+				debugC(DEBUG_INSANE, "Rebel2: Handler7 Mode1/3 LEFT WALL ship=(%d,%d) edgeX=%d damage=%d",
 					_flyShipScreenX, _flyShipScreenY, edgeX, wallDamage);
 			}
 			_spaceShotDirection = 0;  // Direction: pushed right
@@ -2061,7 +2061,7 @@ void InsaneRebel2::checkHandler7RightBoundary(const InsaneRebel2::CollisionZone
 
 			const bool damageApplied = applyHandler7WallDamage(wallDamage);
 			if (damageApplied) {
-				debug("Rebel2: Handler7 Mode1/3 RIGHT WALL ship=(%d,%d) edgeX=%d damage=%d",
+				debugC(DEBUG_INSANE, "Rebel2: Handler7 Mode1/3 RIGHT WALL ship=(%d,%d) edgeX=%d damage=%d",
 					_flyShipScreenX, _flyShipScreenY, edgeX, wallDamage);
 			}
 			_spaceShotDirection = 1;  // Direction: pushed left
@@ -2454,7 +2454,7 @@ bool InsaneRebel2::handlePostRenderMenuModes(byte *renderBitmap, int pitch, int
 
 		// If a selection was confirmed, signal video to stop.
 		if (selection >= 0) {
-			debug("Rebel2: Pilot selection confirmed: %d", selection);
+			debugC(DEBUG_INSANE, "Rebel2: Pilot selection confirmed: %d", selection);
 			_menuSelectionConfirmed = true;
 			_vm->_smushVideoShouldFinish = true;
 		}
@@ -2479,7 +2479,7 @@ bool InsaneRebel2::handlePostRenderMenuModes(byte *renderBitmap, int pitch, int
 
 		// If a selection was confirmed, signal video to stop.
 		if (selection >= 0) {
-			debug("Rebel2: Chapter selection confirmed: %d", selection);
+			debugC(DEBUG_INSANE, "Rebel2: Chapter selection confirmed: %d", selection);
 			_menuSelectionConfirmed = true;
 			_vm->_smushVideoShouldFinish = true;
 		}
@@ -2515,7 +2515,7 @@ bool InsaneRebel2::handlePostRenderMenuModes(byte *renderBitmap, int pitch, int
 		// At 12fps video rate, 300 frames = ~25 seconds of inactivity.
 		// The original checks: if (local_8 > 299) return 0.
 		if (_menuInactivityTimer > 300) {
-			debug("Rebel2: Menu inactivity timeout - resuming intro/demo loop");
+			debugC(DEBUG_INSANE, "Rebel2: Menu inactivity timeout - resuming intro/demo loop");
 			_menuInactivityTimer = 0;
 			_menuInactivityTimedOut = true;
 			_menuSelectionConfirmed = false;
@@ -2528,7 +2528,7 @@ bool InsaneRebel2::handlePostRenderMenuModes(byte *renderBitmap, int pitch, int
 
 		// If a selection was confirmed, signal video to stop.
 		if (selection >= 0) {
-			debug("Rebel2: Menu selection confirmed: %d", selection);
+			debugC(DEBUG_INSANE, "Rebel2: Menu selection confirmed: %d", selection);
 			_menuSelectionConfirmed = true;
 			_vm->_smushVideoShouldFinish = true;
 		}
@@ -2559,7 +2559,7 @@ bool InsaneRebel2::handlePostRenderIntro(byte *renderBitmap, int pitch, int widt
 		// Track state transition for debugging.
 		if (!_introCursorPushed) {
 			_introCursorPushed = true;
-			debug("Rebel2: Intro/cinematic mode (handler=0, flags=0x%x, state=%d) - HUD disabled, mouse hidden",
+			debugC(DEBUG_INSANE, "Rebel2: Intro/cinematic mode (handler=0, flags=0x%x, state=%d) - HUD disabled, mouse hidden",
 				  _player->_curVideoFlags, _gameState);
 		}
 
@@ -2574,7 +2574,7 @@ bool InsaneRebel2::handlePostRenderIntro(byte *renderBitmap, int pitch, int widt
 	// Gameplay mode - handler was set by IACT opcode 6.
 	if (_introCursorPushed) {
 		_introCursorPushed = false;
-		debug("Rebel2: Gameplay mode (handler=%d, flags=0x%x, state=%d) - HUD enabled",
+		debugC(DEBUG_INSANE, "Rebel2: Gameplay mode (handler=%d, flags=0x%x, state=%d) - HUD enabled",
 			  _rebelHandler, _player->_curVideoFlags, _gameState);
 	}
 
@@ -2694,7 +2694,7 @@ void InsaneRebel2::renderGameplayPostFrame(byte *renderBitmap, int pitch, int wi
 	renderStatusBarBackground(renderBitmap, pitch, width, height, videoWidth, videoHeight, statusBarY);
 
 	// Ship rendering (FUN_00401ccf for Handler 8, FUN_0040d836 for Handler 7).
-	debug("Rebel2 Ship Check: handler=%d shipSprite=%p flyShipSprite=%p shipLevelMode=%d numSprites=%d/%d",
+	debugC(DEBUG_INSANE, "Rebel2 Ship Check: handler=%d shipSprite=%p flyShipSprite=%p shipLevelMode=%d numSprites=%d/%d",
 		_rebelHandler, (void*)_shipSprite, (void*)_flyShipSprite, _shipLevelMode,
 		_shipSprite ? _shipSprite->getNumChars() : 0,
 		_flyShipSprite ? _flyShipSprite->getNumChars() : 0);
@@ -2974,7 +2974,7 @@ void InsaneRebel2::renderTextOverlay(byte *renderBitmap, int pitch, int width, i
 
 	SmushPlayer *splayer = ((ScummEngine_v7 *)_vm)->_splayer;
 	const char *text = splayer->getString(_textOverlayID);
-	debug(5, "Rebel2: Text overlay frame %d/%d-%d textID=0x%x text='%s'",
+	debugC(DEBUG_INSANE, "Rebel2: Text overlay frame %d/%d-%d textID=0x%x text='%s'",
 	      curFrame, _textOverlayFadeIn, _textOverlayFadeOut, _textOverlayID,
 	      text ? text : "(null)");
 	if (!text)
@@ -3171,7 +3171,7 @@ void InsaneRebel2::renderTurretHudOverlays(byte *renderBitmap, int pitch, int wi
 			_hudOverlayNut, animFrame);
 	}
 
-	debug(5, "Rebel2 HUD: Drawing NUT overlay frame %d/%d at (%d,%d) mouseOffset=(%d,%d)",
+	debugC(DEBUG_INSANE, "Rebel2 HUD: Drawing NUT overlay frame %d/%d at (%d,%d) mouseOffset=(%d,%d)",
 		  animFrame, numSprites, hudX, hudY, mouseOffsetX, mouseOffsetY);
 
 	// Draw secondary HUD overlay if present (DAT_0047fe80)
@@ -3204,7 +3204,7 @@ void InsaneRebel2::renderEmbeddedHudOverlays(byte *renderBitmap, int pitch, int
 
 		// Skip small frames at (0,0) - likely animation patches
 		if (frame.renderX == 0 && frame.renderY == 0 && frame.width < 50 && frame.height < 60) {
-			debug(3, "Rebel2: Skipping small embedded frame at (0,0): slot=%d size=%dx%d",
+			debugC(DEBUG_INSANE, "Rebel2: Skipping small embedded frame at (0,0): slot=%d size=%dx%d",
 				hudSlot, frame.width, frame.height);
 			continue;
 		}
@@ -3268,7 +3268,7 @@ void InsaneRebel2::renderEmbeddedHudOverlays(byte *renderBitmap, int pitch, int
 		destX += _viewX;
 		destY += _viewY;
 
-		debug(3, "Rebel2: Rendering embedded HUD slot=%d size=%dx%d at (%d,%d)",
+		debugC(DEBUG_INSANE, "Rebel2: Rendering embedded HUD slot=%d size=%dx%d at (%d,%d)",
 			hudSlot, frame.width, frame.height, destX, destY);
 
 		blitEmbeddedFrameRegion(renderBitmap, pitch, pitch, height, frame,
@@ -3560,7 +3560,7 @@ void InsaneRebel2::renderHandler7Ship(byte *renderBitmap, int pitch, int width,
 			shipDraw.x, shipDraw.y, _flyTargetSprite, spriteIndex);
 	}
 
-	debug("Rebel2 Handler7Ship: draw=(%d,%d) sprite=%d/%d shipPos=(%d,%d) persp=(%d,%d) smoothVel=%d vertIn=%d fxCtr=%d fxRep=%d",
+	debugC(DEBUG_INSANE, "Rebel2 Handler7Ship: draw=(%d,%d) sprite=%d/%d shipPos=(%d,%d) persp=(%d,%d) smoothVel=%d vertIn=%d fxCtr=%d fxRep=%d",
 		drawX, drawY, spriteIndex, numSprites, _flyShipScreenX, _flyShipScreenY,
 		_perspectiveX, _perspectiveY, _smoothedVelocity, _verticalInput, _flyEffectAnimCounter, _flyOverlayRepeatCount);
 }
@@ -3618,7 +3618,7 @@ void InsaneRebel2::renderHandler8Ship(byte *renderBitmap, int pitch, int width,
 
 	int sprW = _shipSprite->getCharWidth(spriteIndex);
 	int sprH = _shipSprite->getCharHeight(spriteIndex);
-	debug("Rebel2 Handler8: Ship at (%d,%d) raw(%d,%d) offset(%d,%d) nutOff(%d,%d) size(%d,%d) bottom=%d view(%d,%d) sprite=%d/%d",
+	debugC(DEBUG_INSANE, "Rebel2 Handler8: Ship at (%d,%d) raw(%d,%d) offset(%d,%d) nutOff(%d,%d) size(%d,%d) bottom=%d view(%d,%d) sprite=%d/%d",
 		drawX, drawY, _shipPosX, _shipPosY, displayOffsetX, displayOffsetY,
 		spriteXOffset, spriteYOffset, sprW, sprH, drawY + sprH,
 		_viewX, _viewY, spriteIndex, numSprites);
@@ -3749,7 +3749,7 @@ void InsaneRebel2::renderHandler25ShipPre(byte *renderBitmap, int pitch, int wid
 			scaledClipLeft, 0, scaledClipRight, renderHeight,
 			drawX, drawY, _grd001Sprite, 0, false, renderScale, false);
 
-		debug("Rebel2 Handler25 PRE: GRD001 at (%d,%d) nutOff(%d,%d) viewOff(%d,%d) size(%d,%d) mode=%d dmg=%d halfW=%d rightHalf=%d clip=[%d,%d) scale=%d",
+		debugC(DEBUG_INSANE, "Rebel2 Handler25 PRE: GRD001 at (%d,%d) nutOff(%d,%d) viewOff(%d,%d) size(%d,%d) mode=%d dmg=%d halfW=%d rightHalf=%d clip=[%d,%d) scale=%d",
 			drawX, drawY, spriteXOffset, spriteYOffset, _rebelViewOffset2X, _rebelViewOffset2Y,
 			spriteW, spriteH, _grdSpriteMode, _rebelDamageLevel, useHalfWidth ? 1 : 0, useRightHalf ? 1 : 0, scaledClipLeft, scaledClipRight, renderScale);
 
@@ -3769,7 +3769,7 @@ void InsaneRebel2::renderHandler25ShipPre(byte *renderBitmap, int pitch, int wid
 				0, 0, width, renderHeight,
 				overlayDrawX, overlayDrawY, _grd005Sprite, overlayIdx, false, renderScale, false);
 
-			debug("Rebel2 Handler25 PRE: GRD005 at (%d,%d) nutOff(%d,%d) viewOff(%d,%d) size(%d,%d) mode=%d scale=%d",
+			debugC(DEBUG_INSANE, "Rebel2 Handler25 PRE: GRD005 at (%d,%d) nutOff(%d,%d) viewOff(%d,%d) size(%d,%d) mode=%d scale=%d",
 				overlayDrawX, overlayDrawY, overlayXOffset, overlayYOffset,
 				_rebelViewOffset2X, _rebelViewOffset2Y, overlayW, overlayH, _grdSpriteMode, renderScale);
 		}
@@ -3924,7 +3924,7 @@ void InsaneRebel2::renderHandler25Ship(byte *renderBitmap, int pitch, int width,
 			0, 0, width, renderHeight,
 			drawX, drawY, _grd002Sprite, spriteIdx, shouldMirror, renderScale, true);
 
-		debug("Rebel2 Handler25: GRD002 at (%d,%d) nutOffset(%d,%d) viewOffset(%d,%d) size(%d,%d) spriteIdx=%d damage=%d dir=%d mirror=%d scale=%d",
+		debugC(DEBUG_INSANE, "Rebel2 Handler25: GRD002 at (%d,%d) nutOffset(%d,%d) viewOffset(%d,%d) size(%d,%d) spriteIdx=%d damage=%d dir=%d mirror=%d scale=%d",
 			drawX, drawY, spriteXOffset, spriteYOffset, _rebelViewOffset2X, _rebelViewOffset2Y, spriteW, spriteH, spriteIdx, _rebelDamageLevel, _rebelFlightDir, shouldMirror ? 1 : 0, renderScale);
 	}
 }
@@ -3979,7 +3979,7 @@ void InsaneRebel2::renderFallbackShip(byte *renderBitmap, int pitch, int width,
 	blitEmbeddedFrameRegion(renderBitmap, pitch, width, height, shipFrame,
 		drawX, drawY, srcX, srcY, spriteW, spriteH);
 
-	debug("Rebel2: Ship (fallback) at (%d,%d) strip=(%d,%d) of (%dx%d) dir=(%d,%d)",
+	debugC(DEBUG_INSANE, "Rebel2: Ship (fallback) at (%d,%d) strip=(%d,%d) of (%dx%d) dir=(%d,%d)",
 		drawX, drawY, srcX, srcY, numHorizontal, numVertical, _shipDirectionH, _shipDirectionV);
 }
 
@@ -4277,7 +4277,7 @@ void InsaneRebel2::renderSpaceExplosions(byte *renderBitmap, int pitch, int widt
 					drawX - ew / 2, drawY - eh / 2, _smush_iconsNut, spriteIndex);
 			}
 
-			debug("Rebel2 H7 corridor explosion: dir=%d frame=%d pos=(%d,%d) cooldown=%d",
+			debugC(DEBUG_INSANE, "Rebel2 H7 corridor explosion: dir=%d frame=%d pos=(%d,%d) cooldown=%d",
 				_spaceShotDirection, spriteIndex, drawX, drawY, _hitCooldown);
 		}
 	}
@@ -4573,7 +4573,7 @@ void InsaneRebel2::renderHandler25LaserShots(byte *renderBitmap, int pitch, int
 
 		_turretShots[i].counter--;
 
-		debug("Rebel2 Handler25: Laser shot %d from (%d,%d) to (%d,%d) progress=%d/%d",
+		debugC(DEBUG_INSANE, "Rebel2 Handler25: Laser shot %d from (%d,%d) to (%d,%d) progress=%d/%d",
 			i, gunX, gunY, targetX, targetY, progress, maxDuration);
 	}
 }
diff --git a/engines/scumm/insane/rebel2/runlevels.cpp b/engines/scumm/insane/rebel2/runlevels.cpp
index d09d5bb4b4c..c81b5626fc7 100644
--- a/engines/scumm/insane/rebel2/runlevels.cpp
+++ b/engines/scumm/insane/rebel2/runlevels.cpp
@@ -57,14 +57,14 @@ int InsaneRebel2::runLevel1() {
 
 		if (_playerShield > 0) {
 			// Level completed!
-			debug("Rebel2: Level 1 completed!");
+			debugC(DEBUG_INSANE, "Rebel2: Level 1 completed!");
 			playLevelEnd(1);
 			_levelUnlocked[1] = true;  // Unlock level 2
 			return kLevelNextLevel;
 		}
 
 		// Player died - play death video with random A/B variant
-		debug("Rebel2: Level 1 death at frame %d, lives=%d", _deathFrame, _playerLives - 1);
+		debugC(DEBUG_INSANE, "Rebel2: Level 1 death at frame %d, lives=%d", _deathFrame, _playerLives - 1);
 		playLevelDeathVariant(1, 1, _deathFrame);
 
 		if (_vm->shouldQuit())
@@ -104,7 +104,7 @@ InsaneRebel2::WaveEndResult InsaneRebel2::processWaveEnd(int16 mask, int16 *budg
 		_skipSectionRequested = false;
 		_rebelPhaseState = mask;
 		_rebelWaveState = mask;
-		debug("Rebel2 processWaveEnd: movie mode completed gameplay wave (mask=0x%x)", (uint16)mask);
+		debugC(DEBUG_INSANE, "Rebel2 processWaveEnd: movie mode completed gameplay wave (mask=0x%x)", (uint16)mask);
 		result.completed = true;
 		result.skipped = true;
 		return result;
@@ -115,7 +115,7 @@ InsaneRebel2::WaveEndResult InsaneRebel2::processWaveEnd(int16 mask, int16 *budg
 		_skipSectionRequested = false;
 		_rebelPhaseState = mask;
 		_rebelWaveState = mask;
-		debug("Rebel2 processWaveEnd: Shift+S skip consumed (mask=0x%x)", (uint16)mask);
+		debugC(DEBUG_INSANE, "Rebel2 processWaveEnd: Shift+S skip consumed (mask=0x%x)", (uint16)mask);
 		result.completed = true;
 		result.skipped = true;
 		return result;
@@ -133,7 +133,7 @@ InsaneRebel2::WaveEndResult InsaneRebel2::processWaveEnd(int16 mask, int16 *budg
 	// Step 2: Copy wave state to phase state (line 33)
 	// DAT_0047ab9c = DAT_0047ab98
 	_rebelPhaseState = _rebelWaveState;
-	debug("Rebel2 processWaveEnd: waveState=0x%x -> phaseState=0x%x mask=0x%x budget=%d threshold=%d flags=%d",
+	debugC(DEBUG_INSANE, "Rebel2 processWaveEnd: waveState=0x%x -> phaseState=0x%x mask=0x%x budget=%d threshold=%d flags=%d",
 		_rebelWaveState, _rebelPhaseState, mask, budget ? *budget : -1, threshold, flags);
 
 	// Step 3: Kill redistribution - add random unkilled types (lines 34-47)
@@ -187,7 +187,7 @@ InsaneRebel2::WaveEndResult InsaneRebel2::processWaveEnd(int16 mask, int16 *budg
 		creditCount++;
 	}
 
-	debug("Rebel2 processWaveEnd: result=0x%x phaseState=0x%x (after redistribution) budget=%d",
+	debugC(DEBUG_INSANE, "Rebel2 processWaveEnd: result=0x%x phaseState=0x%x (after redistribution) budget=%d",
 		result.creditedBits, _rebelPhaseState, budget ? *budget : -1);
 
 	// Step 5: Stop conditions (lines 74-78)
@@ -203,7 +203,7 @@ bool InsaneRebel2::playLevelSegment(const char *filename, uint16 flags, bool rec
 
 	const bool isRecordedGameplay = recordFrame && (flags & 0x08) != 0;
 	if (isRecordedGameplay && _rebelMovieMode) {
-		debug("Rebel2: Movie mode skipping gameplay segment: %s", filename);
+		debugC(DEBUG_INSANE, "Rebel2: Movie mode skipping gameplay segment: %s", filename);
 		_gameplaySectionActive = false;
 		restoreIOSGamepadController();
 		if (recordFrame)
@@ -245,7 +245,7 @@ int InsaneRebel2::calculateAccuracy(int kills, int misses) const {
 
 bool InsaneRebel2::handleLevelDeath(int levelId, int phase,
 		const char *deathVideo, const char *retryVideo, int &levelResult) {
-	debug("Rebel2: Level %d Phase %d death", levelId, phase);
+	debugC(DEBUG_INSANE, "Rebel2: Level %d Phase %d death", levelId, phase);
 	playCinematic(deathVideo);
 	if (_vm->shouldQuit()) {
 		levelResult = kLevelQuit;
@@ -426,7 +426,7 @@ int InsaneRebel2::runLevel2() {
 		int16 budget = kLevel2BudgetBase[0] + _vm->_rnd.getRandomNumber(2);
 
 		// Play A.SAN (background loader) — flags 0x28 (preserve buffer, gameplay mode)
-		debug("Rebel2: Level 2 Phase 1 - playing 02P01_A.SAN (background) budget=%d", budget);
+		debugC(DEBUG_INSANE, "Rebel2: Level 2 Phase 1 - playing 02P01_A.SAN (background) budget=%d", budget);
 		if (!playLevelSegment("LEV02/P1/02P01_A.SAN", 0x28))
 			return kLevelQuit;
 
@@ -446,14 +446,14 @@ int InsaneRebel2::runLevel2() {
 				"LEV02/P1/02P01_C.SAN",
 				"LEV02/P1/02P01_D.SAN"
 			};
-			debug("Rebel2: Phase 1 wave - playing %s (state=0x%x budget=%d)", variants[variant], _rebelPhaseState, budget);
+			debugC(DEBUG_INSANE, "Rebel2: Phase 1 wave - playing %s (state=0x%x budget=%d)", variants[variant], _rebelPhaseState, budget);
 			// Wave videos use flags 0x428 (original: FUN_0041f4d0 param_2=0x428)
 			if (!playLevelSegment(variants[variant], 0x428))
 				return kLevelQuit;
 
 			// processWaveEnd with threshold=0x14 (20) — enables early exit when enemies killed
 			processWaveEnd(0x36, &budget, 0x14, 0);
-			debug("Rebel2: Phase 1 wave done - state=0x%x (need 0x06) budget=%d", _rebelPhaseState, budget);
+			debugC(DEBUG_INSANE, "Rebel2: Phase 1 wave done - state=0x%x (need 0x06) budget=%d", _rebelPhaseState, budget);
 		}
 
 		// Check for bonus (bit 4 = 0x10)
@@ -492,7 +492,7 @@ int InsaneRebel2::runLevel2() {
 		_rebelHandler = 8;
 
 		// Play A.SAN (background loader)
-		debug("Rebel2: Level 2 Phase 2 - playing 02P02_A.SAN (background) budget=%d", budget);
+		debugC(DEBUG_INSANE, "Rebel2: Level 2 Phase 2 - playing 02P02_A.SAN (background) budget=%d", budget);
 		if (!playLevelSegment("LEV02/P2/02P02_A.SAN", 0x28))
 			return kLevelQuit;
 
@@ -529,7 +529,7 @@ int InsaneRebel2::runLevel2() {
 				filename = "LEV02/P2/02P02_D.SAN"; break;
 			}
 
-			debug("Rebel2: Phase 2 wave - playing %s (state=0x%x sel=0x%x budget=%d)", filename, _rebelPhaseState, waveSelect, budget);
+			debugC(DEBUG_INSANE, "Rebel2: Phase 2 wave - playing %s (state=0x%x sel=0x%x budget=%d)", filename, _rebelPhaseState, waveSelect, budget);
 			if (!playLevelSegment(filename, 0x428))
 				return kLevelQuit;
 		}
@@ -569,7 +569,7 @@ int InsaneRebel2::runLevel2() {
 		_rebelHandler = 8;
 
 		// Play A.SAN (background loader)
-		debug("Rebel2: Level 2 Phase 3 - playing 02P03_A.SAN (background) budget=%d", budget);
+		debugC(DEBUG_INSANE, "Rebel2: Level 2 Phase 3 - playing 02P03_A.SAN (background) budget=%d", budget);
 		if (!playLevelSegment("LEV02/P3/02P03_A.SAN", 0x28))
 			return kLevelQuit;
 
@@ -614,13 +614,13 @@ int InsaneRebel2::runLevel2() {
 					filename = "LEV02/P3/02P03_I.SAN"; break;
 				}
 
-				debug("Rebel2: Phase 3 wave - playing %s (state=0x%x sel=0x%x budget=%d)", filename, _rebelPhaseState, waveSelect, budget);
+				debugC(DEBUG_INSANE, "Rebel2: Phase 3 wave - playing %s (state=0x%x sel=0x%x budget=%d)", filename, _rebelPhaseState, waveSelect, budget);
 				if (!playLevelSegment(filename, 0x428))
 					return kLevelQuit;
 
 				// processWaveEnd at BOTTOM with threshold=0x14
 				waveEnd = processWaveEnd(0x3e, &budget, 0x14, 0);
-				debug("Rebel2: Phase 3 wave done - state=0x%x (need 0x0e) budget=%d", _rebelPhaseState, budget);
+				debugC(DEBUG_INSANE, "Rebel2: Phase 3 wave done - state=0x%x (need 0x0e) budget=%d", _rebelPhaseState, budget);
 			}
 		}
 
@@ -643,7 +643,7 @@ int InsaneRebel2::runLevel2() {
 		{
 			totalMisses += _rebelHitCounter;
 			int accuracy = calculateAccuracy(totalKills, totalMisses);
-			debug("Rebel2: Level 2 completed! kills=%d misses=%d accuracy=%d%% bonus=%d",
+			debugC(DEBUG_INSANE, "Rebel2: Level 2 completed! kills=%d misses=%d accuracy=%d%% bonus=%d",
 				totalKills, totalMisses, accuracy, bonusCount);
 		}
 
@@ -682,7 +682,7 @@ int InsaneRebel2::runLevel3() {
 		resetHandler7FlightState();
 
 		// Play phase 1 gameplay (03PLAY1.SAN)
-		debug("Rebel2: Level 3 Phase 1");
+		debugC(DEBUG_INSANE, "Rebel2: Level 3 Phase 1");
 		if (!playLevelSegment("LEV03/03PLAY1.SAN", 0x28))
 			return kLevelQuit;
 
@@ -693,7 +693,7 @@ int InsaneRebel2::runLevel3() {
 		}
 
 		// Died in phase 1 - frame-based death video
-		debug("Rebel2: Level 3 Phase 1 death at frame %d", _deathFrame);
+		debugC(DEBUG_INSANE, "Rebel2: Level 3 Phase 1 death at frame %d", _deathFrame);
 		playLevelDeathVariant(3, 1, _deathFrame);
 		if (_vm->shouldQuit())
 			return kLevelQuit;
@@ -736,20 +736,20 @@ int InsaneRebel2::runLevel3() {
 		resetHandler7FlightState();
 
 		// Play phase 2 gameplay (03PLAY2.SAN)
-		debug("Rebel2: Level 3 Phase 2");
+		debugC(DEBUG_INSANE, "Rebel2: Level 3 Phase 2");
 		if (!playLevelSegment("LEV03/03PLAY2.SAN", 0x28))
 			return kLevelQuit;
 
 		if (_playerShield > 0) {
 			// Level completed!
-			debug("Rebel2: Level 3 completed!");
+			debugC(DEBUG_INSANE, "Rebel2: Level 3 completed!");
 			playLevelEnd(3);
 			_levelUnlocked[3] = true;  // Unlock level 4
 			return kLevelNextLevel;
 		}
 
 		// Died in phase 2 - frame-based death video
-		debug("Rebel2: Level 3 Phase 2 death at frame %d", _deathFrame);
+		debugC(DEBUG_INSANE, "Rebel2: Level 3 Phase 2 death at frame %d", _deathFrame);
 		playLevelDeathVariant(3, 2, _deathFrame);
 		if (_vm->shouldQuit())
 			return kLevelQuit;
@@ -796,20 +796,20 @@ int InsaneRebel2::runLevel4() {
 		clearBit(0);
 
 		// Play gameplay (04PLAY.SAN)
-		debug("Rebel2: Level 4 gameplay");
+		debugC(DEBUG_INSANE, "Rebel2: Level 4 gameplay");
 		if (!playLevelSegment("LEV04/04PLAY.SAN", 0x28))
 			return kLevelQuit;
 
 		if (_playerShield > 0) {
 			// Level completed!
-			debug("Rebel2: Level 4 completed!");
+			debugC(DEBUG_INSANE, "Rebel2: Level 4 completed!");
 			playLevelEnd(4);
 			_levelUnlocked[4] = true;  // Unlock level 5
 			return kLevelNextLevel;
 		}
 
 		// Died - play death video (04DIE.SAN, no variants)
-		debug("Rebel2: Level 4 death");
+		debugC(DEBUG_INSANE, "Rebel2: Level 4 death");
 		playLevelDeathVariant(4, 1, _deathFrame);
 		if (_vm->shouldQuit())
 			return kLevelQuit;
@@ -851,20 +851,20 @@ int InsaneRebel2::runLevel5() {
 
 		// Play gameplay (05PLAY.SAN)
 		// Original: FUN_0041f4d0("05PLAY.SAN", 8, -1, -1, 0)
-		debug("Rebel2: Level 5 gameplay");
+		debugC(DEBUG_INSANE, "Rebel2: Level 5 gameplay");
 		if (!playLevelSegment("LEV05/05PLAY.SAN", 0x08))
 			return kLevelQuit;
 
 		if (_playerShield > 0) {
 			// Level completed!
-			debug("Rebel2: Level 5 completed!");
+			debugC(DEBUG_INSANE, "Rebel2: Level 5 completed!");
 			playLevelEnd(5);
 			_levelUnlocked[5] = true;  // Unlock level 6
 			return kLevelNextLevel;
 		}
 
 		// Died - play death video with random A/B variant
-		debug("Rebel2: Level 5 death at frame %d", _deathFrame);
+		debugC(DEBUG_INSANE, "Rebel2: Level 5 death at frame %d", _deathFrame);
 		playLevelDeathVariant(5, 1, _deathFrame);
 		if (_vm->shouldQuit())
 			return kLevelQuit;
@@ -918,7 +918,7 @@ int InsaneRebel2::runLevel6() {
 		_rebelLevelType = 5;  // DAT_0047a7f8 = 5
 		_currentPhase = 1;
 
-		debug("Rebel2: Level 6 Phase 1");
+		debugC(DEBUG_INSANE, "Rebel2: Level 6 Phase 1");
 		if (!playLevelSegment("LEV06/06PLAY1.SAN", 0x28))
 			return kLevelQuit;
 		// TODO: Mid-level switch at frame 0x2a8 to 06PLAY1B.SAN (flags 0x468)
@@ -926,7 +926,7 @@ int InsaneRebel2::runLevel6() {
 
 		if (_playerShield <= 0) {
 			// Died in phase 1
-			debug("Rebel2: Level 6 Phase 1 death at frame %d", _deathFrame);
+			debugC(DEBUG_INSANE, "Rebel2: Level 6 Phase 1 death at frame %d", _deathFrame);
 			playLevelDeathVariant(6, 1, _deathFrame);
 			if (_vm->shouldQuit())
 				return kLevelQuit;
@@ -959,20 +959,20 @@ int InsaneRebel2::runLevel6() {
 			_playerScore = phase1Score;
 			clearBit(0);  // FUN_00407d10
 
-			debug("Rebel2: Level 6 Phase 2");
+			debugC(DEBUG_INSANE, "Rebel2: Level 6 Phase 2");
 			if (!playLevelSegment("LEV06/06PLAY2.SAN", 0x28))
 				return kLevelQuit;
 
 			if (_playerShield > 0) {
 				// Level completed!
-				debug("Rebel2: Level 6 completed!");
+				debugC(DEBUG_INSANE, "Rebel2: Level 6 completed!");
 				playLevelEnd(6);
 				_levelUnlocked[6] = true;
 				return kLevelNextLevel;
 			}
 
 			// Died in phase 2
-			debug("Rebel2: Level 6 Phase 2 death at frame %d", _deathFrame);
+			debugC(DEBUG_INSANE, "Rebel2: Level 6 Phase 2 death at frame %d", _deathFrame);
 			playLevelDeathVariant(6, 2, _deathFrame);
 			if (_vm->shouldQuit())
 				return kLevelQuit;
@@ -1036,7 +1036,7 @@ int InsaneRebel2::runLevel7() {
 			return kLevelQuit;
 
 		if (_playerShield > 0) {
-			debug("Rebel2: Level 7 completed!");
+			debugC(DEBUG_INSANE, "Rebel2: Level 7 completed!");
 			playLevelEnd(7);
 			_levelUnlocked[7] = true;
 			return kLevelNextLevel;
@@ -1044,7 +1044,7 @@ int InsaneRebel2::runLevel7() {
 
 		// Death video: DIE_B if fork reached, DIE_A if not
 		// Original: s_LEV07_07DIE_B + ((DAT_0047ab8c != 0) - 1 & 0x14)
-		debug("Rebel2: Level 7 death at frame %d, fork=%d", _deathFrame, reachedFork);
+		debugC(DEBUG_INSANE, "Rebel2: Level 7 death at frame %d, fork=%d", _deathFrame, reachedFork);
 		if (reachedFork) {
 			playCinematic("LEV07/07DIE_B.SAN");
 		} else {
@@ -1098,7 +1098,7 @@ int InsaneRebel2::runLevel8() {
 
 		if (_playerShield > 0) {
 			int accuracy = calculateAccuracy(_rebelKillCounter, _rebelHitCounter);
-			debug("Rebel2: Level 8 completed! accuracy=%d%%", accuracy);
+			debugC(DEBUG_INSANE, "Rebel2: Level 8 completed! accuracy=%d%%", accuracy);
 			playLevelEnd(8);
 			_levelUnlocked[8] = true;
 			return kLevelNextLevel;
@@ -1106,7 +1106,7 @@ int InsaneRebel2::runLevel8() {
 
 		// Death: random A or B
 		// Original: random(2) → A or B via string pointer arithmetic
-		debug("Rebel2: Level 8 death at frame %d", _deathFrame);
+		debugC(DEBUG_INSANE, "Rebel2: Level 8 death at frame %d", _deathFrame);
 		playLevelDeathVariant(8, 1, _deathFrame);
 		if (_vm->shouldQuit())
 			return kLevelQuit;
@@ -1162,7 +1162,7 @@ int InsaneRebel2::runLevel9() {
 
 		if (_playerShield > 0) {
 			int accuracy = calculateAccuracy(_rebelKillCounter, _rebelHitCounter);
-			debug("Rebel2: Level 9 completed! accuracy=%d%%", accuracy);
+			debugC(DEBUG_INSANE, "Rebel2: Level 9 completed! accuracy=%d%%", accuracy);
 			playLevelEnd(9);
 			_levelUnlocked[9] = true;
 			return kLevelNextLevel;
@@ -1170,7 +1170,7 @@ int InsaneRebel2::runLevel9() {
 
 		// Death: based on DAT_0047ab94 (death cause tracking)
 		// Original: 0→DIE_A, 1→DIE_C, else→DIE_B
-		debug("Rebel2: Level 9 death at frame %d", _deathFrame);
+		debugC(DEBUG_INSANE, "Rebel2: Level 9 death at frame %d", _deathFrame);
 		playLevelDeathVariant(9, 1, _deathFrame);
 		if (_vm->shouldQuit())
 			return kLevelQuit;
@@ -1225,7 +1225,7 @@ int InsaneRebel2::runLevel10() {
 
 		if (_playerShield > 0) {
 			int accuracy = calculateAccuracy(_rebelKillCounter, _rebelHitCounter);
-			debug("Rebel2: Level 10 completed! accuracy=%d%%", accuracy);
+			debugC(DEBUG_INSANE, "Rebel2: Level 10 completed! accuracy=%d%%", accuracy);
 			playLevelEnd(10);
 			_levelUnlocked[10] = true;
 			return kLevelNextLevel;
@@ -1233,7 +1233,7 @@ int InsaneRebel2::runLevel10() {
 
 		// Death + Retry: original plays both in sequence
 		// Original: lives--, if 0 break to game over, else DIE+RETRY
-		debug("Rebel2: Level 10 death at frame %d", _deathFrame);
+		debugC(DEBUG_INSANE, "Rebel2: Level 10 death at frame %d", _deathFrame);
 		_playerLives--;
 		if (_playerLives <= 0) {
 			playLevelGameOver(10);
@@ -1297,7 +1297,7 @@ int InsaneRebel2::runLevel11() {
 		int16 budget = kLevel11BudgetBase[0] + _vm->_rnd.getRandomNumber(2);
 
 		// Play A.SAN (background loader)
-		debug("Rebel2: Level 11 Phase 1 - playing 11P01_A.SAN budget=%d", budget);
+		debugC(DEBUG_INSANE, "Rebel2: Level 11 Phase 1 - playing 11P01_A.SAN budget=%d", budget);
 		if (!playLevelSegment("LEV11/P1/11P01_A.SAN", 0x28))
 			return kLevelQuit;
 
@@ -1327,7 +1327,7 @@ int InsaneRebel2::runLevel11() {
 				default: filename = "LEV11/P1/11P01_D.SAN"; break;  // sel == 0
 				}
 
-				debug("Rebel2: Level 11 Phase 1 wave - %s (state=0x%x sel=%d)", filename, _rebelPhaseState, sel);
+				debugC(DEBUG_INSANE, "Rebel2: Level 11 Phase 1 wave - %s (state=0x%x sel=%d)", filename, _rebelPhaseState, sel);
 				if (!playLevelSegment(filename, 0x428))
 					return kLevelQuit;
 
@@ -1361,7 +1361,7 @@ int InsaneRebel2::runLevel11() {
 		_rebelHandler = 8;
 
 		// Play A.SAN (background loader)
-		debug("Rebel2: Level 11 Phase 2 - playing 11P02_A.SAN budget=%d", budget);
+		debugC(DEBUG_INSANE, "Rebel2: Level 11 Phase 2 - playing 11P02_A.SAN budget=%d", budget);
 		if (!playLevelSegment("LEV11/P2/11P02_A.SAN", 0x28))
 			return kLevelQuit;
 
@@ -1383,7 +1383,7 @@ int InsaneRebel2::runLevel11() {
 				default: filename = "LEV11/P2/11P02_D.SAN"; break;
 				}
 
-				debug("Rebel2: Level 11 Phase 2 wave - %s (state=0x%x)", filename, _rebelPhaseState);
+				debugC(DEBUG_INSANE, "Rebel2: Level 11 Phase 2 wave - %s (state=0x%x)", filename, _rebelPhaseState);
 				if (!playLevelSegment(filename, 0x428))
 					return kLevelQuit;
 
@@ -1418,7 +1418,7 @@ int InsaneRebel2::runLevel11() {
 		budget = kLevel11BudgetBase[2] + _vm->_rnd.getRandomNumber(2);
 		_rebelHandler = 8;
 
-		debug("Rebel2: Level 11 Phase 3 first half - playing 11P03_A.SAN budget=%d", budget);
+		debugC(DEBUG_INSANE, "Rebel2: Level 11 Phase 3 first half - playing 11P03_A.SAN budget=%d", budget);
 		if (!playLevelSegment("LEV11/P3/11P03_A.SAN", 0x28))
 			return kLevelQuit;
 
@@ -1456,7 +1456,7 @@ int InsaneRebel2::runLevel11() {
 				default: filename = "LEV11/P3/11P03_E.SAN"; break;  // duplicate E
 				}
 
-				debug("Rebel2: Level 11 Phase 3a wave - %s (state=0x%x variantIdx=%d)", filename, _rebelPhaseState, variantIdx);
+				debugC(DEBUG_INSANE, "Rebel2: Level 11 Phase 3a wave - %s (state=0x%x variantIdx=%d)", filename, _rebelPhaseState, variantIdx);
 				if (!playLevelSegment(filename, 0x428))
 					return kLevelQuit;
 
@@ -1508,7 +1508,7 @@ int InsaneRebel2::runLevel11() {
 		budget = kLevel11BudgetBase[3] + _vm->_rnd.getRandomNumber(2);
 
 		// Play G.SAN (background loader for second half)
-		debug("Rebel2: Level 11 Phase 3 second half - playing 11P03_G.SAN budget=%d", budget);
+		debugC(DEBUG_INSANE, "Rebel2: Level 11 Phase 3 second half - playing 11P03_G.SAN budget=%d", budget);
 		if (!playLevelSegment("LEV11/P3/11P03_G.SAN", 0x28))
 			return kLevelQuit;
 
@@ -1541,7 +1541,7 @@ int InsaneRebel2::runLevel11() {
 				default: filename = "LEV11/P3/11P03_L.SAN"; break;
 				}
 
-				debug("Rebel2: Level 11 Phase 3b wave - %s (state=0x%x variantIdx=%d)", filename, _rebelPhaseState, variantIdx);
+				debugC(DEBUG_INSANE, "Rebel2: Level 11 Phase 3b wave - %s (state=0x%x variantIdx=%d)", filename, _rebelPhaseState, variantIdx);
 				if (!playLevelSegment(filename, 0x428))
 					return kLevelQuit;
 
@@ -1565,7 +1565,7 @@ int InsaneRebel2::runLevel11() {
 		{
 			totalMisses += _rebelHitCounter;
 			int accuracy = calculateAccuracy(totalKills, totalMisses);
-			debug("Rebel2: Level 11 completed! kills=%d misses=%d accuracy=%d%%",
+			debugC(DEBUG_INSANE, "Rebel2: Level 11 completed! kills=%d misses=%d accuracy=%d%%",
 				totalKills, totalMisses, accuracy);
 		}
 
@@ -1617,7 +1617,7 @@ int InsaneRebel2::runLevel12() {
 		int16 budget = kLevel12BudgetBase[0] + _vm->_rnd.getRandomNumber(2);
 
 		// Initialization video (12P05.SAN)
-		debug("Rebel2: Level 12 Phase 1 - init 12P05.SAN budget=%d", budget);
+		debugC(DEBUG_INSANE, "Rebel2: Level 12 Phase 1 - init 12P05.SAN budget=%d", budget);
 		if (!playLevelSegment("LEV12/12P05.SAN", 0x28, false))
 			return kLevelQuit;
 		processWaveEnd(1, &budget, 0, 0);
@@ -1644,7 +1644,7 @@ int InsaneRebel2::runLevel12() {
 				default: filename = "LEV12/P1/12P01_B.SAN"; break;
 				}
 
-				debug("Rebel2: Level 12 Phase 1 wave - %s (state=0x%x sel=%d)", filename, _rebelPhaseState, sel);
+				debugC(DEBUG_INSANE, "Rebel2: Level 12 Phase 1 wave - %s (state=0x%x sel=%d)", filename, _rebelPhaseState, sel);
 				if (!playLevelSegment(filename, 0x428))
 					return kLevelQuit;
 
@@ -1668,7 +1668,7 @@ int InsaneRebel2::runLevel12() {
 		budget = kLevel12BudgetBase[1] + _vm->_rnd.getRandomNumber(3);
 
 		// Initialization video (12P06.SAN)
-		debug("Rebel2: Level 12 Phase 2 - init 12P06.SAN budget=%d", budget);
+		debugC(DEBUG_INSANE, "Rebel2: Level 12 Phase 2 - init 12P06.SAN budget=%d", budget);
 		if (!playLevelSegment("LEV12/12P06.SAN", 0x428, false))
 			return kLevelQuit;
 		processWaveEnd(1, &budget, 0, 0);
@@ -1704,7 +1704,7 @@ int InsaneRebel2::runLevel12() {
 				default: filename = "LEV12/P2/12P02_F.SAN"; break;
 				}
 
-				debug("Rebel2: Level 12 Phase 2 wave - %s (state=0x%x variantIdx=%d)", filename, _rebelPhaseState, variantIdx);
+				debugC(DEBUG_INSANE, "Rebel2: Level 12 Phase 2 wave - %s (state=0x%x variantIdx=%d)", filename, _rebelPhaseState, variantIdx);
 				if (!playLevelSegment(filename, 0x428))
 					return kLevelQuit;
 
@@ -1730,7 +1730,7 @@ int InsaneRebel2::runLevel12() {
 		budget = kLevel12BudgetBase[2] + _vm->_rnd.getRandomNumber(3);
 
 		// Initialization video (12P07.SAN)
-		debug("Rebel2: Level 12 Phase 3 - init 12P07.SAN budget=%d", budget);
+		debugC(DEBUG_INSANE, "Rebel2: Level 12 Phase 3 - init 12P07.SAN budget=%d", budget);
 		if (!playLevelSegment("LEV12/12P07.SAN", 0x428, false))
 			return kLevelQuit;
 		processWaveEnd(1, &budget, 0, 0);
@@ -1764,7 +1764,7 @@ int InsaneRebel2::runLevel12() {
 				default: filename = "LEV12/P3/12P03_F.SAN"; break;  // duplicate F
 				}
 
-				debug("Rebel2: Level 12 Phase 3 wave - %s (state=0x%x variantIdx=%d)", filename, _rebelPhaseState, variantIdx);
+				debugC(DEBUG_INSANE, "Rebel2: Level 12 Phase 3 wave - %s (state=0x%x variantIdx=%d)", filename, _rebelPhaseState, variantIdx);
 				if (!playLevelSegment(filename, 0x428))
 					return kLevelQuit;
 
@@ -1788,7 +1788,7 @@ int InsaneRebel2::runLevel12() {
 		budget = kLevel12BudgetBase[3] + _vm->_rnd.getRandomNumber(3);
 
 		// Initialization video (12P08.SAN)
-		debug("Rebel2: Level 12 Phase 4 - init 12P08.SAN budget=%d", budget);
+		debugC(DEBUG_INSANE, "Rebel2: Level 12 Phase 4 - init 12P08.SAN budget=%d", budget);
 		if (!playLevelSegment("LEV12/12P08.SAN", 0x428, false))
 			return kLevelQuit;
 		processWaveEnd(1, &budget, 0, 0);
@@ -1821,7 +1821,7 @@ int InsaneRebel2::runLevel12() {
 				default: filename = "LEV12/P4/12P04_F.SAN"; break;
 				}
 
-				debug("Rebel2: Level 12 Phase 4 wave - %s (state=0x%x variantIdx=%d)", filename, _rebelPhaseState, variantIdx);
+				debugC(DEBUG_INSANE, "Rebel2: Level 12 Phase 4 wave - %s (state=0x%x variantIdx=%d)", filename, _rebelPhaseState, variantIdx);
 				if (!playLevelSegment(filename, 0x428))
 					return kLevelQuit;
 
@@ -1846,7 +1846,7 @@ int InsaneRebel2::runLevel12() {
 		// ----- LEVEL COMPLETED -----
 		{
 			int accuracy = calculateAccuracy(_rebelKillCounter, _rebelHitCounter);
-			debug("Rebel2: Level 12 completed! kills=%d misses=%d accuracy=%d%%",
+			debugC(DEBUG_INSANE, "Rebel2: Level 12 completed! kills=%d misses=%d accuracy=%d%%",
 				_rebelKillCounter, _rebelHitCounter, accuracy);
 		}
 
@@ -1908,14 +1908,14 @@ int InsaneRebel2::runLevel13() {
 
 		if (_playerShield > 0) {
 			int accuracy = calculateAccuracy(_rebelKillCounter, _rebelHitCounter);
-			debug("Rebel2: Level 13 completed! accuracy=%d%%", accuracy);
+			debugC(DEBUG_INSANE, "Rebel2: Level 13 completed! accuracy=%d%%", accuracy);
 			playLevelEnd(13);
 			_levelUnlocked[13] = true;
 			return kLevelNextLevel;
 		}
 
 		// Death: frame-based variant selection (FUN_0041B3E1 lines 47-61)
-		debug("Rebel2: Level 13 death at frame %d", _deathFrame);
+		debugC(DEBUG_INSANE, "Rebel2: Level 13 death at frame %d", _deathFrame);
 		playLevelDeathVariant(13, 1, _deathFrame);
 		if (_vm->shouldQuit())
 			return kLevelQuit;
@@ -1964,14 +1964,14 @@ int InsaneRebel2::runLevel14() {
 
 		if (_playerShield > 0) {
 			int accuracy = calculateAccuracy(_rebelKillCounter, _rebelHitCounter);
-			debug("Rebel2: Level 14 completed! accuracy=%d%%", accuracy);
+			debugC(DEBUG_INSANE, "Rebel2: Level 14 completed! accuracy=%d%%", accuracy);
 			playLevelEnd(14);
 			_levelUnlocked[14] = true;
 			return kLevelNextLevel;
 		}
 
 		// Death: single video (14DIE.SAN)
-		debug("Rebel2: Level 14 death at frame %d", _deathFrame);
+		debugC(DEBUG_INSANE, "Rebel2: Level 14 death at frame %d", _deathFrame);
 		playCinematic("LEV14/14DIE.SAN");
 		if (_vm->shouldQuit())
 			return kLevelQuit;
@@ -2036,7 +2036,7 @@ int InsaneRebel2::runLevel15() {
 
 		if (_playerShield > 0) {
 			int accuracy = calculateAccuracy(_rebelKillCounter, _rebelHitCounter);
-			debug("Rebel2: Level 15 completed! accuracy=%d%%", accuracy);
+			debugC(DEBUG_INSANE, "Rebel2: Level 15 completed! accuracy=%d%%", accuracy);
 			playLevelEnd(15);
 			_levelUnlocked[15] = true;
 			// Level 15 completion leads to credits (FUN_0041BBE8)
@@ -2044,7 +2044,7 @@ int InsaneRebel2::runLevel15() {
 		}
 
 		// Death: frame-based variant selection (FUN_0041B8D7 lines 46-65)
-		debug("Rebel2: Level 15 death at frame %d", _deathFrame);
+		debugC(DEBUG_INSANE, "Rebel2: Level 15 death at frame %d", _deathFrame);
 		playLevelDeathVariant(15, 1, _deathFrame);
 		if (_vm->shouldQuit())
 			return kLevelQuit;
diff --git a/engines/scumm/smush/rebel/font_rebel2.cpp b/engines/scumm/smush/rebel/font_rebel2.cpp
index a9f69d0cbdb..df5179f7332 100644
--- a/engines/scumm/smush/rebel/font_rebel2.cpp
+++ b/engines/scumm/smush/rebel/font_rebel2.cpp
@@ -154,7 +154,7 @@ void Rebel2NutRenderer::loadRebel2Font(const char *filename) {
 	if (_numChars <= 0 || decodedLength == 0)
 		error("Rebel2NutRenderer::loadRebel2Font(%s) no decodable characters", filename);
 
-	debug(1, "Rebel2NutRenderer::loadRebel2Font('%s') - decodedLength = %d", filename, decodedLength);
+	debugC(DEBUG_SMUSH, "Rebel2NutRenderer::loadRebel2Font('%s') - decodedLength = %d", filename, decodedLength);
 
 	_decodedData = new byte[decodedLength];
 	byte *decodedPtr = _decodedData;
@@ -370,7 +370,7 @@ void Rebel2NutRenderer::loadRebel2SpriteFromData(const byte *data, int32 dataSiz
 		decodeRebel2Frame(_chars[i].src, frame, codec45Palette, codec45Lookup);
 	}
 
-	debug(1, "Rebel2NutRenderer::loadRebel2SpriteFromData() - numChars=%d decodedLength=%u", _numChars, (uint32)decodedLength);
+	debugC(DEBUG_SMUSH, "Rebel2NutRenderer::loadRebel2SpriteFromData() - numChars=%d decodedLength=%u", _numChars, (uint32)decodedLength);
 }
 
 NutRenderer *makeRebel2Font(ScummEngine *vm, const char *filename) {
diff --git a/engines/scumm/smush/rebel/smush_player_ra1.cpp b/engines/scumm/smush/rebel/smush_player_ra1.cpp
index 55667d15056..e882c9788cb 100644
--- a/engines/scumm/smush/rebel/smush_player_ra1.cpp
+++ b/engines/scumm/smush/rebel/smush_player_ra1.cpp
@@ -856,7 +856,7 @@ bool SmushPlayerRebel1::ra1HandleUnknownFrameChunk(uint32 subType, int32 subSize
 	byte tb2 = (subType >> 8) & 0xFF, tb3 = subType & 0xFF;
 	if (tb0 > 0x40 && tb0 < 0x5B && tb1 > 0x40 && tb1 < 0x5B &&
 	    tb2 > 0x40 && tb2 < 0x5B && tb3 > 0x40 && tb3 < 0x5B) {
-		debug(5, "RA1: unknown uppercase tag %s at frame %d, stopping frame parse", tag2str(subType), _frame);
+		debugC(DEBUG_SMUSH, "RA1: unknown uppercase tag %s at frame %d, stopping frame parse", tag2str(subType), _frame);
 		return true;
 	}
 


Commit: 9ef0dfae2debdd325736ea2556dff658ef9293a3
    https://github.com/scummvm/scummvm/commit/9ef0dfae2debdd325736ea2556dff658ef9293a3
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2026-06-09T21:14:12+02:00

Commit Message:
SCUMM: RA: removed redundant tags from debug messages

Changed paths:
    engines/scumm/insane/rebel1/iact.cpp
    engines/scumm/insane/rebel1/menu.cpp
    engines/scumm/insane/rebel1/rebel.cpp
    engines/scumm/insane/rebel1/render.cpp
    engines/scumm/insane/rebel1/runlevels.cpp
    engines/scumm/insane/rebel1/saveload.cpp
    engines/scumm/insane/rebel2/iact.cpp
    engines/scumm/insane/rebel2/levels.cpp
    engines/scumm/insane/rebel2/menu.cpp
    engines/scumm/insane/rebel2/rebel.cpp
    engines/scumm/insane/rebel2/render.cpp
    engines/scumm/insane/rebel2/runlevels.cpp
    engines/scumm/smush/rebel/smush_player_ra1.cpp


diff --git a/engines/scumm/insane/rebel1/iact.cpp b/engines/scumm/insane/rebel1/iact.cpp
index dada01703ef..16fb90cce40 100644
--- a/engines/scumm/insane/rebel1/iact.cpp
+++ b/engines/scumm/insane/rebel1/iact.cpp
@@ -636,7 +636,7 @@ bool InsaneRebel1::handleFrameObjectTarget(int16 objectId, int16 left, int16 top
 		// replacement/death frame. This is used heavily by Level 9 troopers.
 		_frameObjectState[byteIndex] &= ~bit;
 		_frameObjectHitRevealPending = false;
-		debugC(DEBUG_INSANE, "RA1 FOBJ reveal: object=%d frameObjectByte=%d bit=0x%02x",
+		debugC(DEBUG_INSANE, "FOBJ reveal: object=%d frameObjectByte=%d bit=0x%02x",
 			objectId, byteIndex, bit);
 	}
 
@@ -717,7 +717,7 @@ void InsaneRebel1::checkDynamicLevelBranch(int32 curFrame) {
 			_vm->_smushVideoShouldFinish = true;
 			const int32 resumeFrame = (_currentLevel == 6 && _pendingRouteStartFrame < 0) ?
 				0 : _pendingRouteStartFrame;
-			debugC(DEBUG_INSANE, "RA1 L%d cutover: route=%d -> %d at %s=%u (resumeFrame=%d)",
+			debugC(DEBUG_INSANE, "L%d cutover: route=%d -> %d at %s=%u (resumeFrame=%d)",
 				_currentLevel + 1, _levelRouteIndex, _pendingRouteIndex,
 				_currentLevel == 6 ? "localFrame" : "frame",
 				(unsigned)routeFrame, (int)resumeFrame);
@@ -759,7 +759,7 @@ void InsaneRebel1::checkDynamicLevelBranch(int32 curFrame) {
 				: (branchX < kLevel7BranchThreshold[nextRoute]);
 			if (!takeBranch) {
 				if (routeFrame == decisionFrame)
-					debugC(DEBUG_INSANE, "RA1 L7 branch miss: route=%d candidate=%d localFrame=%u gameFrame=%d shipX=%d dir=%d threshold=%d",
+					debugC(DEBUG_INSANE, "L7 branch miss: route=%d candidate=%d localFrame=%u gameFrame=%d shipX=%d dir=%d threshold=%d",
 						route, nextRoute, (unsigned)routeFrame, (int)_gameCounter, branchX,
 						kLevel7BranchDir[nextRoute], kLevel7BranchThreshold[nextRoute]);
 				continue;
@@ -770,7 +770,7 @@ void InsaneRebel1::checkDynamicLevelBranch(int32 curFrame) {
 			_pendingRouteStartFrame = (int32)routeFrame;
 			_pendingRouteVideoStartFrame = 1 + (_pendingRouteCutoverFrame - _pendingRouteStartFrame);
 			_level7WarningFrames = 0;
-			debugC(DEBUG_INSANE, "RA1 L7 branch: route=%d -> %d at localFrame=%u gameFrame=%d decisionFrame=%u shipX=%d resumeSourceFrame=%d cutoverFrame=%d destFrame=%d",
+			debugC(DEBUG_INSANE, "L7 branch: route=%d -> %d at localFrame=%u gameFrame=%d decisionFrame=%u shipX=%d resumeSourceFrame=%d cutoverFrame=%d destFrame=%d",
 				route, nextRoute, (unsigned)routeFrame, (int)_gameCounter, (unsigned)decisionFrame, branchX,
 				(int)_pendingRouteStartFrame, (int)_pendingRouteCutoverFrame,
 				(int)_pendingRouteVideoStartFrame);
@@ -868,7 +868,7 @@ void InsaneRebel1::updateFlightVariantCursor() {
 	_flightAimY = CLIP<int32>(shipBaseY + ((liftTerm * kRA1Op09AimYScale[bucket]) >> 8),
 		kRA1MinY, kRA1MaxY);
 
-	debugC(DEBUG_INSANE, "RA1 op09 cursor: frame=%d shipBase=(%d,%d) shipPos=(%d,%d) aim=(%d,%d) roll=%d lift=%d bucket=%d dir=%d persp=(%d,%d)",
+	debugC(DEBUG_INSANE, "op09 cursor: frame=%d shipBase=(%d,%d) shipPos=(%d,%d) aim=(%d,%d) roll=%d lift=%d bucket=%d dir=%d persp=(%d,%d)",
 		_gameCounter, shipBaseX, shipBaseY, _shipPosX, _shipPosY, _flightAimX, _flightAimY,
 		_rollAccum, _liftSmooth, bucket, _shipDirIndex, _perspectiveX, _perspectiveY);
 }
@@ -1199,7 +1199,7 @@ void InsaneRebel1::updateShipPhysics() {
 	if (_shipBank.numSprites > 0)
 		_shipDirIndex = CLIP<int16>((int16)(vComponent + hComponent), 0, _shipBank.numSprites - 1);
 
-	debugC(DEBUG_INSANE, "RA1 ship input: frame=%d source=%s controls=%s turbulence=%d usedJoystick=%d raw=(%d,%d) clipped=(%d,%d) storedAxis=(%d,%d) actionState(L,R,U,D)=(%d,%d,%d,%d) roll=%d lift=%d pos=(%d,%d) view=(%d,%d) dir=%d level=%d mode=%d opcode=0x%X",
+	debugC(DEBUG_INSANE, "ship input: frame=%d source=%s controls=%s turbulence=%d usedJoystick=%d raw=(%d,%d) clipped=(%d,%d) storedAxis=(%d,%d) actionState(L,R,U,D)=(%d,%d,%d,%d) roll=%d lift=%d pos=(%d,%d) view=(%d,%d) dir=%d level=%d mode=%d opcode=0x%X",
 		_gameCounter, inputSourceName,
 		"enhanced", 0, usedJoystick,
 		rawInputX, rawInputY, inputX, inputY,
@@ -1283,9 +1283,9 @@ void InsaneRebel1::updateShipPhysics() {
 			_rightPathSelected = true;
 			preserveInteractiveVideoAudioState();
 			_vm->_smushVideoShouldFinish = true;
-			debugC(DEBUG_INSANE, "RA1: Right path selected (counter=%d, shipX=%d)", _gameCounter, _shipPosX);
+			debugC(DEBUG_INSANE, "Right path selected (counter=%d, shipX=%d)", _gameCounter, _shipPosX);
 		} else {
-			debugC(DEBUG_INSANE, "RA1: Left path retained (counter=%d, shipX=%d)", _gameCounter, _shipPosX);
+			debugC(DEBUG_INSANE, "Left path retained (counter=%d, shipX=%d)", _gameCounter, _shipPosX);
 		}
 		_pathBranchEnabled = false;
 	}
@@ -1293,7 +1293,7 @@ void InsaneRebel1::updateShipPhysics() {
 	if (_currentLevel != 6)
 		checkDynamicLevelBranch();
 
-	debugC(DEBUG_INSANE, "RA1 ship: pos=(%d,%d) roll=%d lift=%d accX=%d accY=%d dir=%d health=%d corridor=[%d,%d]-[%d,%d]",
+	debugC(DEBUG_INSANE, "ship: pos=(%d,%d) roll=%d lift=%d accX=%d accY=%d dir=%d health=%d corridor=[%d,%d]-[%d,%d]",
 		_shipPosX, _shipPosY, _rollAccum, _liftSmooth,
 		_posAccumX, _posAccumY, _shipDirIndex, _health,
 		_corridorLeftX, _corridorTopY, _corridorRightX, _corridorBottomY);
@@ -1441,7 +1441,7 @@ void InsaneRebel1::updateTurretPhysics() {
 			inputY /= 2;
 		}
 
-		debugC(DEBUG_INSANE, "RA1 turret input: source=%s controls=%s mouse=(%d,%d) actions(L,R,U,D)=(%d,%d,%d,%d) raw=(%d,%d) final=(%d,%d) level=%d mode=%d opcode=0x%X",
+		debugC(DEBUG_INSANE, "turret input: source=%s controls=%s mouse=(%d,%d) actions(L,R,U,D)=(%d,%d,%d,%d) raw=(%d,%d) final=(%d,%d) level=%d mode=%d opcode=0x%X",
 			usedJoystick ? "joystick-actions" : "mouse-path",
 			"enhanced",
 			_vm->_mouse.x, _vm->_mouse.y,
@@ -1623,13 +1623,13 @@ void InsaneRebel1::updateGameOp0BPhysics() {
 		// FUN_1CDA7 dispatches g_sfxDamageHit, initialized from SYS/BOOM.SAD.
 		playSfx(kSfxBoom, 127, 0);
 		if (_currentLevel == 1) {
-			debugC(DEBUG_INSANE, "RA1 L2 player hit: frame=%u view=(%d,%d) latch=%u asteroid=%d flags=0x%02x health=%d->%d",
+			debugC(DEBUG_INSANE, "L2 player hit: frame=%u view=(%d,%d) latch=%u asteroid=%d flags=0x%02x health=%d->%d",
 				(unsigned)(uint16)_gameCounter, _perspectiveX, _perspectiveY,
 				(unsigned)_gameLatch5D, level2AsteroidHit ? 1 : 0,
 				appliedDamageFlags, oldHealth, _health);
 		}
 		if (level8WalkerPlayerHit) {
-			debugC(DEBUG_INSANE, "RA1 L8 player hit by walker: route=%d frame=%u view=(%d,%d) flags=0x%02x health=%d->%d",
+			debugC(DEBUG_INSANE, "L8 player hit by walker: route=%d frame=%u view=(%d,%d) flags=0x%02x health=%d->%d",
 				CLIP<int>(_levelRouteIndex, 0, 2), (unsigned)(uint16)_gameCounter,
 				_perspectiveX, _perspectiveY, appliedDamageFlags, oldHealth, _health);
 		}
@@ -1701,7 +1701,7 @@ void InsaneRebel1::updateGameOp0BPhysics() {
 	}
 	_inputAxisDeltaX = inputX;
 
-	debugC(DEBUG_INSANE, "RA1 GAME 0x0B input: frame=%d source=%s controls=%s window=%d precisionPad=%d view=(%d,%d) health=%d prevFlags=0x%02x axis=(%d,%d) mouse=(%d,%d) actions(L,R,U,D)=(%d,%d,%d,%d) raw=(%d,%d) final=(%d,%d) level=%d opcode=0x%X",
+	debugC(DEBUG_INSANE, "GAME 0x0B input: frame=%d source=%s controls=%s window=%d precisionPad=%d view=(%d,%d) health=%d prevFlags=0x%02x axis=(%d,%d) mouse=(%d,%d) actions(L,R,U,D)=(%d,%d,%d,%d) raw=(%d,%d) final=(%d,%d) level=%d opcode=0x%X",
 		_gameCounter,
 		inputSourceName,
 		"enhanced",
@@ -1774,7 +1774,7 @@ void InsaneRebel1::updateGameOp0BPhysics() {
 			const bool target215Destroyed = isFrameObjectPrimarySet(215);
 			if (!target211Destroyed || !target213Destroyed || !target215Destroyed) {
 				_levelGameplayPhase = 1;
-				debugC(DEBUG_INSANE, "RA1 L12 retry armed: frame=0x%04x targets=(%d,%d,%d)",
+				debugC(DEBUG_INSANE, "L12 retry armed: frame=0x%04x targets=(%d,%d,%d)",
 					_frameCounter,
 					target211Destroyed ? 1 : 0,
 					target213Destroyed ? 1 : 0,
@@ -1858,7 +1858,7 @@ void InsaneRebel1::updateGameOp0BPhysics() {
 
 	checkDynamicLevelBranch();
 
-	debugC(DEBUG_INSANE, "RA1 GAME 0x0B: pos=(%d,%d) avg=(%d,%d) view=(%d,%d) health=%d flash=%d",
+	debugC(DEBUG_INSANE, "GAME 0x0B: pos=(%d,%d) avg=(%d,%d) view=(%d,%d) health=%d flash=%d",
 		_shipPosX, _shipPosY, _avgInputX, _avgInputY,
 		_perspectiveX, _perspectiveY, _health, _screenFlash);
 }
@@ -2046,7 +2046,7 @@ void InsaneRebel1::updateOnFootSequence() {
 		_damageCooldown = 3;
 		playSfx(kSfxBoom, 127, 0);
 		_screenFlash = 5;
-		debugC(DEBUG_INSANE, "RA1 on-foot player hit: frame=%u latch=%u flags=0x%02x health=%d->%d",
+		debugC(DEBUG_INSANE, "on-foot player hit: frame=%u latch=%u flags=0x%02x health=%d->%d",
 			(unsigned)(uint16)_gameCounter, (unsigned)_gameLatch5D, _damageFlags, oldHealth, _health);
 	}
 }
@@ -2103,7 +2103,7 @@ void InsaneRebel1::handleGameOpcode5EReset(uint32 param1) {
 	// RA1 dispatcher inline reset/init path (FUN_1BE1B case 0x5E).
 	// This is not a pure control-mode assignment.
 	if (_frameDispatchFlags & 0x40) {
-		debugC(DEBUG_INSANE, "RA1 GAME 0x5E: reset suppressed by dispatch flags=0x%02x",
+		debugC(DEBUG_INSANE, "GAME 0x5E: reset suppressed by dispatch flags=0x%02x",
 			_frameDispatchFlags);
 		return;
 	}
@@ -2177,7 +2177,7 @@ void InsaneRebel1::handleGameOpcode5EReset(uint32 param1) {
 	if (_currentLevel == 7)
 		memset(_frameObjectState + 150, 0xFF, 150);
 
-	debugC(DEBUG_INSANE, "RA1 GAME 0x5E: reset state field1=%d mode=%d", (int32)param1, (int)_flyControlMode);
+	debugC(DEBUG_INSANE, "GAME 0x5E: reset state field1=%d mode=%d", (int32)param1, (int)_flyControlMode);
 }
 
 void InsaneRebel1::handleGameOpcode5DLinkLatch(uint32 param1) {
@@ -2192,7 +2192,7 @@ void InsaneRebel1::handleGameOpcode5DLinkLatch(uint32 param1) {
 		}
 	}
 
-	debugC(DEBUG_INSANE, "RA1 GAME 0x5D (link/event latch) param=%u", _gameLatch5D);
+	debugC(DEBUG_INSANE, "GAME 0x5D (link/event latch) param=%u", _gameLatch5D);
 }
 
 void InsaneRebel1::handleGameOpcode5FRandomHitLatch(uint32 param1) {
@@ -2205,7 +2205,7 @@ void InsaneRebel1::handleGameOpcode5FRandomHitLatch(uint32 param1) {
 		}
 	}
 
-	debugC(DEBUG_INSANE, "RA1 GAME 0x5F (random-hit latch) param=%u", _gameLatch5F);
+	debugC(DEBUG_INSANE, "GAME 0x5F (random-hit latch) param=%u", _gameLatch5F);
 }
 
 void InsaneRebel1::handleGameOpcode07ShipFlight(int32 subSize, Common::SeekableReadStream &b, uint32 param1) {
@@ -2219,7 +2219,7 @@ void InsaneRebel1::handleGameOpcode07ShipFlight(int32 subSize, Common::SeekableR
 		b.readUint32BE(); // f2 (max frames, unused in physics)
 		_driftParam = (int16)(int32)b.readUint32BE();
 		b.readUint32BE(); // f4 (unused in original assembly)
-		debugC(DEBUG_INSANE, "RA1 GAME 0x07: counter=%d driftParam=%d", _gameCounter, _driftParam);
+		debugC(DEBUG_INSANE, "GAME 0x07: counter=%d driftParam=%d", _gameCounter, _driftParam);
 	}
 }
 
@@ -2285,13 +2285,13 @@ void InsaneRebel1::handleGameOpcode0DCorridor(int32 subSize, Common::SeekableRea
 		}
 	}
 	if ((_damageFlags & 0x0F) != oldDirectionalFlags) {
-		debugC(DEBUG_INSANE, "RA1 0x0D hit: ship=(%d,%d) corridor=[%d,%d]-[%d,%d] flags=0x%02x zoneSuppressed=%d",
+		debugC(DEBUG_INSANE, "0x0D hit: ship=(%d,%d) corridor=[%d,%d]-[%d,%d] flags=0x%02x zoneSuppressed=%d",
 			collisionShipX, collisionShipY,
 			_corridorLeftX, _corridorTopY, _corridorRightX, _corridorBottomY,
 			_damageFlags, suppressDirectionalDamage ? 1 : 0);
 	}
 
-	debugC(DEBUG_INSANE, "RA1 GAME 0x0D: raw=[%d,%d]+(%d,%d) cam=(%d,%d) transformed=[%d,%d]-[%d,%d]",
+	debugC(DEBUG_INSANE, "GAME 0x0D: raw=[%d,%d]+(%d,%d) cam=(%d,%d) transformed=[%d,%d]-[%d,%d]",
 		corridorLeft, corridorTop, corridorWidth, corridorHeight,
 		_perspectiveX, _perspectiveY,
 		_corridorLeftX, _corridorTopY, _corridorRightX, _corridorBottomY);
@@ -2327,12 +2327,12 @@ void InsaneRebel1::handleGameOpcode0EZone(int32 subSize, Common::SeekableReadStr
 		collisionShipX > zoneLeft && collisionShipX < zoneRight &&
 		collisionShipY > zoneTop && collisionShipY < zoneBottom) {
 		_damageFlags |= 0x10;
-		debugC(DEBUG_INSANE, "RA1 0x0E hit: ship=(%d,%d) zone=[%d,%d]-[%d,%d] raw=[%d,%d]+(%d,%d) cam=(%d,%d) flags=0x%02x",
+		debugC(DEBUG_INSANE, "0x0E hit: ship=(%d,%d) zone=[%d,%d]-[%d,%d] raw=[%d,%d]+(%d,%d) cam=(%d,%d) flags=0x%02x",
 			collisionShipX, collisionShipY, zoneLeft, zoneTop, zoneRight, zoneBottom,
 			rawZoneLeft, rawZoneTop, zoneWidth, zoneHeight,
 			_perspectiveX, _perspectiveY, _damageFlags);
 	}
-	debugC(DEBUG_INSANE, "RA1 GAME 0x0E: ship=(%d,%d) zone=[%d,%d]-[%d,%d] cam=(%d,%d) flags=0x%02x",
+	debugC(DEBUG_INSANE, "GAME 0x0E: ship=(%d,%d) zone=[%d,%d]-[%d,%d] cam=(%d,%d) flags=0x%02x",
 		collisionShipX, collisionShipY, zoneLeft, zoneTop, zoneRight, zoneBottom,
 		_perspectiveX, _perspectiveY, _damageFlags);
 }
@@ -2353,10 +2353,10 @@ void InsaneRebel1::handleGameOpcode0BFirstPerson(int32 subSize, Common::Seekable
 		if (_interactiveVideoActive && maxFrames > 0 &&
 			_gameCounter >= (int32)maxFrames - 1) {
 			_vm->_smushVideoShouldFinish = true;
-			debugC(DEBUG_INSANE, "RA1: finishing 0x0B interactive video at counter=%d/%u", _gameCounter, maxFrames);
+			debugC(DEBUG_INSANE, "finishing 0x0B interactive video at counter=%d/%u", _gameCounter, maxFrames);
 		}
 	}
-	debugC(DEBUG_INSANE, "RA1 GAME 0x0B: counter=%d", _gameCounter);
+	debugC(DEBUG_INSANE, "GAME 0x0B: counter=%d", _gameCounter);
 	if (!_gameOp0BPhysicsUpdatedThisFrame) {
 		updateGameOp0BPhysics();
 		_gameOp0BPhysicsUpdatedThisFrame = true;
@@ -2396,7 +2396,7 @@ void InsaneRebel1::handleGameOpcode5ATarget(int32 subSize, Common::SeekableReadS
 			checkTargetHit(targetIdx, left, top, right, bottom);
 		}
 	}
-	debugC(DEBUG_INSANE, "RA1 GAME 0x5A: target=%d rect=[%d,%d]-[%d,%d] prox=%d",
+	debugC(DEBUG_INSANE, "GAME 0x5A: target=%d rect=[%d,%d]-[%d,%d] prox=%d",
 		targetIdx, left, top, right, bottom, _targetProximity);
 }
 
@@ -2409,10 +2409,10 @@ void InsaneRebel1::handleGameCounterOpcode(uint32 opcode, int32 subSize, Common:
 		uint32 param3 = b.readUint32BE();
 		uint32 param4 = b.readUint32BE();
 		if (opcode == 0x09) {
-			debugC(DEBUG_INSANE, "RA1 GAME 0x09: counter=%d params=(%d,%d,%d) opcodeMask=0x%08x",
+			debugC(DEBUG_INSANE, "GAME 0x09: counter=%d params=(%d,%d,%d) opcodeMask=0x%08x",
 				_gameCounter, param2, param3, param4, _frameGameOpcodeMask);
 		} else {
-			debugC(DEBUG_INSANE, "RA1 GAME 0x%02x: counter=%d params=(%d,%d,%d)",
+			debugC(DEBUG_INSANE, "GAME 0x%02x: counter=%d params=(%d,%d,%d)",
 				opcode, _gameCounter, param2, param3, param4);
 		}
 	}
@@ -2433,14 +2433,14 @@ void InsaneRebel1::handleGameChunk(int32 subSize, Common::SeekableReadStream &b,
 	// g_combatModeFlags skips gameplay dispatch entirely; bit 5 of g_hudDisableFlags
 	// suppresses the handlers while still requesting HUD refresh for a few opcodes.
 	if (_gameplayFlags75ff & 1) {
-		debugC(DEBUG_INSANE, "RA1 GAME 0x%02x: skipped by combat mode flags=0x%02x",
+		debugC(DEBUG_INSANE, "GAME 0x%02x: skipped by combat mode flags=0x%02x",
 			opcode, _gameplayFlags75ff);
 		return;
 	}
 	if (_gameplayFlags75fe & 0x20) {
 		if (ra1DispatcherHudOnlyWhenDisabled(opcode))
 			_hudRenderFlag = 0xFF;
-		debugC(DEBUG_INSANE, "RA1 GAME 0x%02x: skipped by HUD disable flags=0x%02x",
+		debugC(DEBUG_INSANE, "GAME 0x%02x: skipped by HUD disable flags=0x%02x",
 			opcode, _gameplayFlags75fe);
 		return;
 	}
@@ -2488,7 +2488,7 @@ void InsaneRebel1::handleGameChunk(int32 subSize, Common::SeekableReadStream &b,
 		break;
 
 	default:
-		debugC(DEBUG_INSANE, "RA1 GAME unknown 0x%02x size=%d", opcode, subSize);
+		debugC(DEBUG_INSANE, "GAME unknown 0x%02x size=%d", opcode, subSize);
 		break;
 	}
 }
@@ -2562,11 +2562,11 @@ void InsaneRebel1::processShot() {
 	playSfx(torpedoMode ? kSfxAlert : kSfxLaserShot, 127, 0);
 
 	if (effectiveOpcode == 0x09 || _currentLevel == 4) {
-		debugC(DEBUG_INSANE, "RA1 shot: opcode=0x%02x frame=%d slot=%d cursor=(%d,%d) origin=(%d,%d) dir=%d mode=%d",
+		debugC(DEBUG_INSANE, "shot: opcode=0x%02x frame=%d slot=%d cursor=(%d,%d) origin=(%d,%d) dir=%d mode=%d",
 			effectiveOpcode, _gameCounter, slot, cursorX, cursorY, originX, originY,
 			_shipDirIndex, _flyControlMode);
 	} else {
-		debugC(DEBUG_INSANE, "RA1 shot: slot=%d pos=(%d,%d) origin=(%d,%d)", slot,
+		debugC(DEBUG_INSANE, "shot: slot=%d pos=(%d,%d) origin=(%d,%d)", slot,
 			cursorX, cursorY, originX, originY);
 	}
 }
@@ -2610,7 +2610,7 @@ void InsaneRebel1::checkTargetHit(int16 targetIdx, int16 left, int16 top, int16
 		if (slot < kMaxTargetBoxes)
 			_targetBoxVariant[slot] = CLIP<int16>((int16)(_targetBoxVariant[slot] + 3), 0, 5);
 
-		debugC(DEBUG_INSANE, "RA1 target near: opcode=0x%02x target=%d raw=[%d,%d]-[%d,%d] cursorScreen=(%d,%d) cursorTest=(%d,%d) snap=%d prox=%d view=(%d,%d)",
+		debugC(DEBUG_INSANE, "target near: opcode=0x%02x target=%d raw=[%d,%d]-[%d,%d] cursorScreen=(%d,%d) cursorTest=(%d,%d) snap=%d prox=%d view=(%d,%d)",
 			effectiveOpcode, targetIdx, left, top, right, bottom,
 			screenCursorX, screenCursorY, curX, curY, snap, _targetProximity,
 			_perspectiveX, _perspectiveY);
@@ -2667,7 +2667,7 @@ void InsaneRebel1::checkTargetHit(int16 targetIdx, int16 left, int16 top, int16
 									damagedState += Common::String::format("%d,", objectId);
 							}
 
-							debugC(DEBUG_INSANE, "RA1 L8 armor: hitObject=%d damaged=[%s] hidden=[%s]",
+							debugC(DEBUG_INSANE, "L8 armor: hitObject=%d damaged=[%s] hidden=[%s]",
 								targetIdx + 1, damagedState.c_str(), hiddenState.c_str());
 						}
 
@@ -2678,7 +2678,7 @@ void InsaneRebel1::checkTargetHit(int16 targetIdx, int16 left, int16 top, int16
 						if ((_gameplayFlags75fe & 0x10) == 0)
 							playSfx(kSfxExplode, 127, sfxPan);
 
-						debugC(DEBUG_INSANE, "RA1 HIT: target=%d gost=%d pos=(%d,%d) score=%d kills=%d bangSprites=%d",
+						debugC(DEBUG_INSANE, "HIT: target=%d gost=%d pos=(%d,%d) score=%d kills=%d bangSprites=%d",
 							targetIdx, gi, _gostSlots[gi].posX, _gostSlots[gi].posY,
 							_score, _killCount, _bangBank.numSprites);
 						return;
diff --git a/engines/scumm/insane/rebel1/menu.cpp b/engines/scumm/insane/rebel1/menu.cpp
index f0613e5c408..6a02456d482 100644
--- a/engines/scumm/insane/rebel1/menu.cpp
+++ b/engines/scumm/insane/rebel1/menu.cpp
@@ -714,7 +714,7 @@ bool InsaneRebel1::notifyEvent(const Common::Event &event) {
 				_gameplayMouseSettleUntil = now + kRA1GameplayMouseSettleExtendMs;
 				warpGameplayMouseNow(recenterX, recenterY);
 
-				debugC(DEBUG_INSANE, "RA1 mouse settle: suppress pos=(%d,%d) rel=(%d,%d) current=(%d,%d) until=%u opcode=0x%X",
+				debugC(DEBUG_INSANE, "mouse settle: suppress pos=(%d,%d) rel=(%d,%d) current=(%d,%d) until=%u opcode=0x%X",
 					event.mouse.x, event.mouse.y, event.relMouse.x, event.relMouse.y,
 					_vm->_mouse.x, _vm->_mouse.y, _gameplayMouseSettleUntil,
 					getEffectiveGameOpcode());
@@ -745,14 +745,14 @@ bool InsaneRebel1::notifyEvent(const Common::Event &event) {
 
 	if (event.type == Common::EVENT_JOYAXIS_MOTION) {
 		_lastJoystickAxisEventTime = _vm->_system->getMillis();
-		debugC(DEBUG_INSANE, "RA1 input raw-joy-axis: axis=%d pos=%d menu=%d gameplay=%d storedAxis=(%d,%d)",
+		debugC(DEBUG_INSANE, "input raw-joy-axis: axis=%d pos=%d menu=%d gameplay=%d storedAxis=(%d,%d)",
 			event.joystick.axis, event.joystick.position,
 			_menuActive, _interactiveVideoActive && !_menuActive,
 			_joystickAxisX, _joystickAxisY);
 	}
 
 	if (event.type == Common::EVENT_JOYBUTTON_DOWN || event.type == Common::EVENT_JOYBUTTON_UP) {
-		debugC(DEBUG_INSANE, "RA1 input raw-joy-button: button=%d pressed=%d menu=%d gameplay=%d storedAxis=(%d,%d)",
+		debugC(DEBUG_INSANE, "input raw-joy-button: button=%d pressed=%d menu=%d gameplay=%d storedAxis=(%d,%d)",
 			event.joystick.button, event.type == Common::EVENT_JOYBUTTON_DOWN,
 			_menuActive, _interactiveVideoActive && !_menuActive,
 			_joystickAxisX, _joystickAxisY);
@@ -768,12 +768,12 @@ bool InsaneRebel1::notifyEvent(const Common::Event &event) {
 		switch (event.customType) {
 		case kScummBackendActionRebel1AxisUp:
 			if (event.joystick.position == 0 && _joystickAxisY > 0) {
-				debugC(DEBUG_INSANE, "RA1 input mapped-axis ignored-reset: %s pos=0 current=(%d,%d)",
+				debugC(DEBUG_INSANE, "input mapped-axis ignored-reset: %s pos=0 current=(%d,%d)",
 					getRebel1BackendAxisName(event.customType), _joystickAxisX, _joystickAxisY);
 				return true;
 			}
 			_joystickAxisY = -axisPosition;
-			debugC(DEBUG_INSANE, "RA1 input mapped-axis: %s pos=%d rawPos=%d old=(%d,%d) new=(%d,%d) menu=%d gameplay=%d",
+			debugC(DEBUG_INSANE, "input mapped-axis: %s pos=%d rawPos=%d old=(%d,%d) new=(%d,%d) menu=%d gameplay=%d",
 				getRebel1BackendAxisName(event.customType), axisPosition, event.joystick.position,
 				oldAxisX, oldAxisY, _joystickAxisX, _joystickAxisY,
 				_menuActive, _interactiveVideoActive && !_menuActive);
@@ -782,12 +782,12 @@ bool InsaneRebel1::notifyEvent(const Common::Event &event) {
 			return true;
 		case kScummBackendActionRebel1AxisDown:
 			if (event.joystick.position == 0 && _joystickAxisY < 0) {
-				debugC(DEBUG_INSANE, "RA1 input mapped-axis ignored-reset: %s pos=0 current=(%d,%d)",
+				debugC(DEBUG_INSANE, "input mapped-axis ignored-reset: %s pos=0 current=(%d,%d)",
 					getRebel1BackendAxisName(event.customType), _joystickAxisX, _joystickAxisY);
 				return true;
 			}
 			_joystickAxisY = axisPosition;
-			debugC(DEBUG_INSANE, "RA1 input mapped-axis: %s pos=%d rawPos=%d old=(%d,%d) new=(%d,%d) menu=%d gameplay=%d",
+			debugC(DEBUG_INSANE, "input mapped-axis: %s pos=%d rawPos=%d old=(%d,%d) new=(%d,%d) menu=%d gameplay=%d",
 				getRebel1BackendAxisName(event.customType), axisPosition, event.joystick.position,
 				oldAxisX, oldAxisY, _joystickAxisX, _joystickAxisY,
 				_menuActive, _interactiveVideoActive && !_menuActive);
@@ -796,12 +796,12 @@ bool InsaneRebel1::notifyEvent(const Common::Event &event) {
 			return true;
 		case kScummBackendActionRebel1AxisLeft:
 			if (event.joystick.position == 0 && _joystickAxisX > 0) {
-				debugC(DEBUG_INSANE, "RA1 input mapped-axis ignored-reset: %s pos=0 current=(%d,%d)",
+				debugC(DEBUG_INSANE, "input mapped-axis ignored-reset: %s pos=0 current=(%d,%d)",
 					getRebel1BackendAxisName(event.customType), _joystickAxisX, _joystickAxisY);
 				return true;
 			}
 			_joystickAxisX = -axisPosition;
-			debugC(DEBUG_INSANE, "RA1 input mapped-axis: %s pos=%d rawPos=%d old=(%d,%d) new=(%d,%d) menu=%d gameplay=%d",
+			debugC(DEBUG_INSANE, "input mapped-axis: %s pos=%d rawPos=%d old=(%d,%d) new=(%d,%d) menu=%d gameplay=%d",
 				getRebel1BackendAxisName(event.customType), axisPosition, event.joystick.position,
 				oldAxisX, oldAxisY, _joystickAxisX, _joystickAxisY,
 				_menuActive, _interactiveVideoActive && !_menuActive);
@@ -810,12 +810,12 @@ bool InsaneRebel1::notifyEvent(const Common::Event &event) {
 			return true;
 		case kScummBackendActionRebel1AxisRight:
 			if (event.joystick.position == 0 && _joystickAxisX < 0) {
-				debugC(DEBUG_INSANE, "RA1 input mapped-axis ignored-reset: %s pos=0 current=(%d,%d)",
+				debugC(DEBUG_INSANE, "input mapped-axis ignored-reset: %s pos=0 current=(%d,%d)",
 					getRebel1BackendAxisName(event.customType), _joystickAxisX, _joystickAxisY);
 				return true;
 			}
 			_joystickAxisX = axisPosition;
-			debugC(DEBUG_INSANE, "RA1 input mapped-axis: %s pos=%d rawPos=%d old=(%d,%d) new=(%d,%d) menu=%d gameplay=%d",
+			debugC(DEBUG_INSANE, "input mapped-axis: %s pos=%d rawPos=%d old=(%d,%d) new=(%d,%d) menu=%d gameplay=%d",
 				getRebel1BackendAxisName(event.customType), axisPosition, event.joystick.position,
 				oldAxisX, oldAxisY, _joystickAxisX, _joystickAxisY,
 				_menuActive, _interactiveVideoActive && !_menuActive);
@@ -831,7 +831,7 @@ bool InsaneRebel1::notifyEvent(const Common::Event &event) {
 		event.type == Common::EVENT_CUSTOM_ENGINE_ACTION_END) {
 		const bool pressed = (event.type == Common::EVENT_CUSTOM_ENGINE_ACTION_START);
 
-		debugC(DEBUG_INSANE, "RA1 input mapped-action: action=%s custom=%u pressed=%d menu=%d gameplay=%d storedAxis=(%d,%d) actionState(L,R,U,D)=(%d,%d,%d,%d)",
+		debugC(DEBUG_INSANE, "input mapped-action: action=%s custom=%u pressed=%d menu=%d gameplay=%d storedAxis=(%d,%d) actionState(L,R,U,D)=(%d,%d,%d,%d)",
 			getRebel1ActionName(event.customType), event.customType, pressed,
 			_menuActive, _interactiveVideoActive && !_menuActive,
 			_joystickAxisX, _joystickAxisY,
@@ -947,10 +947,10 @@ bool InsaneRebel1::notifyEvent(const Common::Event &event) {
 		const uint32 elapsedSinceAxis = _lastJoystickAxisEventTime ? now - _lastJoystickAxisEventTime : 0xffffffffu;
 
 		if (_interactiveVideoActive && !_menuActive) {
-			debugC(DEBUG_INSANE, "RA1 input mainmenu-event: gameplay=1 elapsedSinceAxis=%u storedAxis=(%d,%d)",
+			debugC(DEBUG_INSANE, "input mainmenu-event: gameplay=1 elapsedSinceAxis=%u storedAxis=(%d,%d)",
 				elapsedSinceAxis, _joystickAxisX, _joystickAxisY);
 			if (elapsedSinceAxis <= kRA1JoystickAxisEscGuardMs) {
-				debugC(DEBUG_INSANE, "RA1 input ignored mainmenu event after recent joystick axis movement (%u ms)", elapsedSinceAxis);
+				debugC(DEBUG_INSANE, "input ignored mainmenu event after recent joystick axis movement (%u ms)", elapsedSinceAxis);
 				return true;
 			}
 
@@ -966,11 +966,11 @@ bool InsaneRebel1::notifyEvent(const Common::Event &event) {
 			event.kbd.keycode == Common::KEYCODE_ESCAPE) {
 			const uint32 now = _vm->_system->getMillis();
 			const uint32 elapsedSinceAxis = _lastJoystickAxisEventTime ? now - _lastJoystickAxisEventTime : 0xffffffffu;
-			debugC(DEBUG_INSANE, "RA1 input keydown-escape: gameplay=1 ascii=%d flags=0x%x repeat=%d elapsedSinceAxis=%u storedAxis=(%d,%d)",
+			debugC(DEBUG_INSANE, "input keydown-escape: gameplay=1 ascii=%d flags=0x%x repeat=%d elapsedSinceAxis=%u storedAxis=(%d,%d)",
 				event.kbd.ascii, event.kbd.flags, event.kbdRepeat,
 				elapsedSinceAxis, _joystickAxisX, _joystickAxisY);
 			if (elapsedSinceAxis <= kRA1JoystickAxisEscGuardMs) {
-				debugC(DEBUG_INSANE, "RA1 input ignored ESC after recent joystick axis movement (%u ms)", elapsedSinceAxis);
+				debugC(DEBUG_INSANE, "input ignored ESC after recent joystick axis movement (%u ms)", elapsedSinceAxis);
 				return true;
 			}
 
@@ -1282,7 +1282,7 @@ int InsaneRebel1::runPasscodeEntryDialog() {
 			_maxChapterUnlocked = MAX<int16>(_maxChapterUnlocked, i);
 			if (targetLevel <= kRA1NumLevels)
 				_startLevel = targetLevel;
-			debugC(DEBUG_INSANE, "RA1 passcode accepted: slot=%d password=%s difficulty=%d target=%d",
+			debugC(DEBUG_INSANE, "passcode accepted: slot=%d password=%s difficulty=%d target=%d",
 				i, password, _difficulty, targetLevel);
 			return targetLevel;
 		}
@@ -1298,13 +1298,13 @@ int InsaneRebel1::runPasscodeEntryDialog() {
 			_difficulty = getRebel1ThreeDOPasscodeDifficulty(i);
 			if (targetLevel <= kRA1NumLevels)
 				_startLevel = targetLevel;
-			debugC(DEBUG_INSANE, "RA1 3DO passcode accepted: slot=%d password=%s difficulty=%d target=%d",
+			debugC(DEBUG_INSANE, "3DO passcode accepted: slot=%d password=%s difficulty=%d target=%d",
 				i, password, _difficulty, targetLevel);
 			return targetLevel;
 		}
 	}
 
-	debugC(DEBUG_INSANE, "RA1 passcode rejected: '%s'", _textEntryBuffer);
+	debugC(DEBUG_INSANE, "passcode rejected: '%s'", _textEntryBuffer);
 	return 0;
 }
 
@@ -1331,7 +1331,7 @@ bool InsaneRebel1::runHighScoreNameEntry() {
 	Common::strlcpy(_highScores[slot].name, storedName.c_str(), sizeof(_highScores[slot].name));
 	_highScores[slot].difficulty = _difficulty;
 	_highScoreEntryIndex = -1;
-	debugC(DEBUG_INSANE, "RA1 high score inserted: slot=%d name=%s score=%ld difficulty=%d",
+	debugC(DEBUG_INSANE, "high score inserted: slot=%d name=%s score=%ld difficulty=%d",
 		slot, _highScores[slot].name, (long)_highScores[slot].score, _highScores[slot].difficulty);
 	return true;
 }
diff --git a/engines/scumm/insane/rebel1/rebel.cpp b/engines/scumm/insane/rebel1/rebel.cpp
index e4bfb41ef65..b1e67bafc9c 100644
--- a/engines/scumm/insane/rebel1/rebel.cpp
+++ b/engines/scumm/insane/rebel1/rebel.cpp
@@ -193,7 +193,7 @@ void InsaneRebel1::loadTuningForLevel(int level) {
 	_protectedTargetA = 0;
 	_protectedTargetB = 0;
 
-	debugC(DEBUG_INSANE, "RA1: Loaded tuning level=%d diff=%d: roll=%d lift=%d slide=%d drift=%d snap=%d "
+	debugC(DEBUG_INSANE, "Loaded tuning level=%d diff=%d: roll=%d lift=%d slide=%d drift=%d snap=%d "
 		"miss=%d wham=%d shot=%d kill=%d time=%d levelPts=%d bonus=%d flags=0x%x",
 		level, d, _tuning.roll, _tuning.lift, _tuning.slide, _tuning.drift, _tuning.snap,
 		_tuning.miss, _tuning.wham, _tuning.shot, _tuning.kill,
diff --git a/engines/scumm/insane/rebel1/render.cpp b/engines/scumm/insane/rebel1/render.cpp
index aafe827bde7..a485368963a 100644
--- a/engines/scumm/insane/rebel1/render.cpp
+++ b/engines/scumm/insane/rebel1/render.cpp
@@ -1355,7 +1355,7 @@ void InsaneRebel1::renderLaserShots(byte *dst, int pitch, int width, int height)
 				const int start1Y = shipBaseY + emit.y1;
 				const int start2X = shipBaseX + emit.x2;
 				const int start2Y = shipBaseY + emit.y2;
-				debugC(DEBUG_INSANE, "RA1 op09 shotRender: frame=%d timer=%d shipBase=(%d,%d) target=(%d,%d) emit1=(%d,%d) emit2=(%d,%d) dir=%d variant=%d mode=%d",
+				debugC(DEBUG_INSANE, "op09 shotRender: frame=%d timer=%d shipBase=(%d,%d) target=(%d,%d) emit1=(%d,%d) emit2=(%d,%d) dir=%d variant=%d mode=%d",
 					_gameCounter, timer, shipBaseX, shipBaseY, targetX, targetY,
 					start1X, start1Y, start2X, start2Y, _shipDirIndex,
 					_shotSlots[i].variant, _flyControlMode);
@@ -2006,7 +2006,7 @@ void InsaneRebel1::updateLevel8WalkerState() {
 			_pendingRouteIndex = newRoute;
 			_pendingRouteCutoverFrame = _gameCounter + 7;
 			_pendingRouteStartFrame = _pendingRouteCutoverFrame;
-			debugC(DEBUG_INSANE, "RA1 L8 branch: route=%d -> %d at frame=%u shipX=%d resumeTimelineFrame=%d cutoverFrame=%d",
+			debugC(DEBUG_INSANE, "L8 branch: route=%d -> %d at frame=%u shipX=%d resumeTimelineFrame=%d cutoverFrame=%d",
 				route, newRoute, (unsigned)_gameCounter, _shipPosX,
 				(int)_pendingRouteStartFrame, (int)_pendingRouteCutoverFrame);
 		}
diff --git a/engines/scumm/insane/rebel1/runlevels.cpp b/engines/scumm/insane/rebel1/runlevels.cpp
index 02b741f8a74..b4bc7849507 100644
--- a/engines/scumm/insane/rebel1/runlevels.cpp
+++ b/engines/scumm/insane/rebel1/runlevels.cpp
@@ -576,7 +576,7 @@ bool InsaneRebel1::runLevel4() {
 			if (shieldGeneratorsDestroyed)
 				break;
 
-			debugC(DEBUG_INSANE, "RA1 L4 replaying shield-generator phase: hits=(%d,%d) protected=(%d,%d)",
+			debugC(DEBUG_INSANE, "L4 replaying shield-generator phase: hits=(%d,%d) protected=(%d,%d)",
 				(int)_shieldGenHitsA, (int)_shieldGenHitsB,
 				(int)_protectedTargetA, (int)_protectedTargetB);
 			replayingShieldGeneratorPhase = true;
@@ -892,7 +892,7 @@ bool InsaneRebel1::runLevel8() {
 			// shield register is nonzero. ScummVM's blocking SMUSH play returns
 			// when one route pass ends, so explicitly replay that route and
 			// preserve the accumulated walker damage.
-			debugC(DEBUG_INSANE, "RA1 L8 replaying route=%d walkerHealth=%d killCount=%d",
+			debugC(DEBUG_INSANE, "L8 replaying route=%d walkerHealth=%d killCount=%d",
 				route, (int)_walkerHealth, (int)_killCount);
 			routeStartFrame = 0;
 			_walkerTimer = 0;
@@ -958,7 +958,7 @@ bool InsaneRebel1::runLevel9() {
 			if (_killCount > 0)
 				return (_shipPosX < kRA1CenterX) ? 0 : 1;
 
-			debugC(DEBUG_INSANE, "RA1 L9 selector '%s' ended without target hit; replaying", filename);
+			debugC(DEBUG_INSANE, "L9 selector '%s' ended without target hit; replaying", filename);
 		}
 		return -1;
 	};
@@ -1342,7 +1342,7 @@ bool InsaneRebel1::runLevel14() {
 			if (level14Phase1Complete)
 				break;
 
-			debugC(DEBUG_INSANE, "RA1 L14 replaying phase 1: successFrames=%d targetsDestroyed=%d",
+			debugC(DEBUG_INSANE, "L14 replaying phase 1: successFrames=%d targetsDestroyed=%d",
 				(int)_level14SuccessFrames, areLevel14Phase1TargetsDestroyed() ? 1 : 0);
 			replayingLevel14Phase1 = true;
 		}
@@ -1401,7 +1401,7 @@ bool InsaneRebel1::runLevel14() {
 				if (level14Phase2Complete)
 					break;
 
-				debugC(DEBUG_INSANE, "RA1 L14 replaying phase 2: video=%s successFrames=%d targetsDestroyed=%d",
+				debugC(DEBUG_INSANE, "L14 replaying phase 2: video=%s successFrames=%d targetsDestroyed=%d",
 					level14Phase2Video, (int)_level14SuccessFrames,
 					areLevel14Phase2TargetsDestroyed() ? 1 : 0);
 				replayingLevel14Phase2 = true;
@@ -1735,30 +1735,30 @@ void InsaneRebel1::resolveSeek(const char *filename, int32 startFrame, int32 &vi
 			_pendingRouteVideoStartFrame : 1;
 		videoOffset = findAnimFrameChunkOffset(_vm, filename, videoStartFrame);
 		if (videoOffset < 0) {
-			debugC(DEBUG_INSANE, "RA1 L7 route switch: route=%d destinationFrame=%d offset lookup failed",
+			debugC(DEBUG_INSANE, "L7 route switch: route=%d destinationFrame=%d offset lookup failed",
 				_levelRouteIndex, (int)videoStartFrame);
 			videoStartFrame = 0;
 			videoOffset = 0;
 		} else {
-			debugC(DEBUG_INSANE, "RA1 L7 route switch: route=%d decisionLocalFrame=%d opens destination at localFrame=%d offset=0x%x",
+			debugC(DEBUG_INSANE, "L7 route switch: route=%d decisionLocalFrame=%d opens destination at localFrame=%d offset=0x%x",
 				_levelRouteIndex, (int)_pendingRouteStartFrame,
 				(int)videoStartFrame, (unsigned)videoOffset);
 		}
 	} else if (_currentLevel == 7 && resumingRoute) {
 		videoOffset = findAnimFrameChunkOffsetByGameCounter(_vm, filename, startFrame, videoStartFrame);
 		if (videoOffset < 0) {
-			debugC(DEBUG_INSANE, "RA1 L8 resume: route=%d timelineFrame=%d GAME counter lookup failed",
+			debugC(DEBUG_INSANE, "L8 resume: route=%d timelineFrame=%d GAME counter lookup failed",
 				_levelRouteIndex, (int)startFrame);
 			videoStartFrame = startFrame;
 			videoOffset = findAnimFrameChunkOffset(_vm, filename, videoStartFrame);
 		}
 		if (videoOffset < 0) {
-			debugC(DEBUG_INSANE, "RA1 L8 resume: route=%d timelineFrame=%d localFrame=%d offset lookup failed",
+			debugC(DEBUG_INSANE, "L8 resume: route=%d timelineFrame=%d localFrame=%d offset lookup failed",
 				_levelRouteIndex, (int)startFrame, (int)videoStartFrame);
 			videoStartFrame = 0;
 			videoOffset = 0;
 		} else {
-			debugC(DEBUG_INSANE, "RA1 L8 resume: route=%d timelineFrame=%d -> localFrame=%d offset=0x%x",
+			debugC(DEBUG_INSANE, "L8 resume: route=%d timelineFrame=%d -> localFrame=%d offset=0x%x",
 				_levelRouteIndex, (int)startFrame, (int)videoStartFrame, (unsigned)videoOffset);
 		}
 	} else if (_currentLevel == 13 && resumingRoute) {
@@ -1766,7 +1766,7 @@ void InsaneRebel1::resolveSeek(const char *filename, int32 startFrame, int32 &vi
 		// oldMaxFrame-0x0F, 1, -1). That frame number belongs to L14PLAY2's
 		// timeline; L14PLY2B is already the continuation clip and starts at its
 		// matching lead-in frame. Preserve the current state, but do not seek.
-		debugC(DEBUG_INSANE, "RA1 L14 splice: L14PLAY2 timelineFrame=%d -> L14PLY2B frame 0",
+		debugC(DEBUG_INSANE, "L14 splice: L14PLAY2 timelineFrame=%d -> L14PLY2B frame 0",
 			(int)startFrame);
 	}
 }
@@ -1796,7 +1796,7 @@ void InsaneRebel1::captureInteractiveVideoInput() {
 	if (!isTouchscreenActive())
 		g_system->lockMouse(true);
 
-	debugC(DEBUG_INSANE, "RA1 centerGameplayAim: mouse=(%d,%d) joystick=(%d,%d) gamepadAim=%d settleUntil=%u preserve=%d",
+	debugC(DEBUG_INSANE, "centerGameplayAim: mouse=(%d,%d) joystick=(%d,%d) gamepadAim=%d settleUntil=%u preserve=%d",
 		_vm->_mouse.x, _vm->_mouse.y, _joystickAxisX, _joystickAxisY,
 		_gamepadAimActive ? 1 : 0, _gameplayMouseSettleUntil,
 		preserveInputState ? 1 : 0);
diff --git a/engines/scumm/insane/rebel1/saveload.cpp b/engines/scumm/insane/rebel1/saveload.cpp
index 09335106b4d..61d7ab8bef5 100644
--- a/engines/scumm/insane/rebel1/saveload.cpp
+++ b/engines/scumm/insane/rebel1/saveload.cpp
@@ -115,7 +115,7 @@ Common::Error InsaneRebel1::writeSaveState(int slot, const Common::String &desc,
 		return Common::kWritingFailed;
 	}
 
-	debugC(DEBUG_INSANE, "RA1: saved slot=%d level=%d lives=%d score=%d desc='%s'",
+	debugC(DEBUG_INSANE, "saved slot=%d level=%d lives=%d score=%d desc='%s'",
 		slot, state.resumeLevel, state.lives, state.score, desc.c_str());
 	return Common::kNoError;
 }
@@ -219,7 +219,7 @@ Common::Error InsaneRebel1::loadGameState(int slot, bool startupLoad) {
 		_vm->_smushVideoShouldFinish = true;
 	}
 
-	debugC(DEBUG_INSANE, "RA1: loaded slot=%d level=%d lives=%d score=%d", slot, _resumeLevel, _lives, _score);
+	debugC(DEBUG_INSANE, "loaded slot=%d level=%d lives=%d score=%d", slot, _resumeLevel, _lives, _score);
 	return Common::kNoError;
 }
 
@@ -238,7 +238,7 @@ void InsaneRebel1::autosaveProgress() {
 	if (readSaveState(slot, oldState, &oldDesc)) {
 		if (oldState.resumeLevel > state.resumeLevel ||
 				(oldState.resumeLevel == state.resumeLevel && oldState.lives >= state.lives)) {
-			debugC(DEBUG_INSANE, "RA1: skipping autosave slot=%d level=%d lives=%d; existing level=%d lives=%d",
+			debugC(DEBUG_INSANE, "skipping autosave slot=%d level=%d lives=%d; existing level=%d lives=%d",
 				slot, state.resumeLevel, state.lives, oldState.resumeLevel, oldState.lives);
 			return;
 		}
diff --git a/engines/scumm/insane/rebel2/iact.cpp b/engines/scumm/insane/rebel2/iact.cpp
index d1e34b8355a..b640ad26023 100644
--- a/engines/scumm/insane/rebel2/iact.cpp
+++ b/engines/scumm/insane/rebel2/iact.cpp
@@ -49,7 +49,7 @@ static bool readLevel2BackgroundChunkHeader(Common::SeekableReadStream &stream,
 
 	const int64 dataStart = stream.pos();
 	if ((int64)chunkSize > containerEnd - dataStart) {
-		debugC(DEBUG_INSANE, "Rebel2 loadLevel2Background: Truncated %s chunk 0x%08X at %lld: size=%u, remaining=%lld",
+		debugC(DEBUG_INSANE, "loadLevel2Background: Truncated %s chunk 0x%08X at %lld: size=%u, remaining=%lld",
 			context, tag, headerPos, chunkSize, containerEnd - dataStart);
 		return false;
 	}
@@ -136,7 +136,7 @@ void InsaneRebel2::procPreRendering(byte *renderBitmap) {
 void InsaneRebel2::procIACT(byte *renderBitmap, int32 codecparam, int32 setupsan12,
 					  int32 setupsan13, Common::SeekableReadStream &b, int32 size, int32 flags,
 					  int16 par1, int16 par2, int16 par3, int16 par4) {
-	debugC(DEBUG_INSANE, "Rebel2 IACT: opcode=%d par2=%d par3=%d par4=%d gameState=%d sceneId=%d",
+	debugC(DEBUG_INSANE, "IACT: opcode=%d par2=%d par3=%d par4=%d gameState=%d sceneId=%d",
 		par1, par2, par3, par4, _gameState, _currSceneId);
 
 	if (_keyboardDisable)
@@ -146,12 +146,12 @@ void InsaneRebel2::procIACT(byte *renderBitmap, int32 codecparam, int32 setupsan
 	// Menu IACTs have par1=8 (code), par2=46 (flags), par4>=1000 (userId)
 	// The embedded ANIM contains the full menu frame
 	if (_gameState == kStateMainMenu && par1 == 8 && par4 >= 1000) {
-		debugC(DEBUG_INSANE, "Rebel2 IACT: Menu mode - processing embedded ANIM (userId=%d)", par4);
+		debugC(DEBUG_INSANE, "IACT: Menu mode - processing embedded ANIM (userId=%d)", par4);
 
 		// Scan for embedded ANIM tag in the IACT data
 		int64 startPos = b.pos();
 		int64 totalSize = b.size();
-		debugC(DEBUG_INSANE, "Rebel2 IACT: stream pos=%d, size=%d, remaining=%d",
+		debugC(DEBUG_INSANE, "IACT: stream pos=%d, size=%d, remaining=%d",
 			(int)startPos, (int)totalSize, (int)(totalSize - startPos));
 
 		if (totalSize > startPos) {
@@ -160,7 +160,7 @@ void InsaneRebel2::procIACT(byte *renderBitmap, int32 codecparam, int32 setupsan
 			byte *scanBuf = (byte *)malloc(scanSize);
 			if (scanBuf) {
 				int bytesRead = b.read(scanBuf, scanSize);
-				debugC(DEBUG_INSANE, "Rebel2 IACT: Read %d bytes, first 16: %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X",
+				debugC(DEBUG_INSANE, "IACT: Read %d bytes, first 16: %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X",
 					bytesRead, scanBuf[0], scanBuf[1], scanBuf[2], scanBuf[3],
 					scanBuf[4], scanBuf[5], scanBuf[6], scanBuf[7],
 					scanBuf[8], scanBuf[9], scanBuf[10], scanBuf[11],
@@ -172,7 +172,7 @@ void InsaneRebel2::procIACT(byte *renderBitmap, int32 codecparam, int32 setupsan
 						int64 animStreamPos = startPos + i;
 						uint32 animReportedSize = READ_BE_UINT32(scanBuf + i + 4);
 						int32 toCopy = (int)MIN<int64>((int64)animReportedSize + 8, totalSize - animStreamPos);
-						debugC(DEBUG_INSANE, "Rebel2 IACT: Found embedded ANIM at offset %d, size %d", (int)i, (int)animReportedSize);
+						debugC(DEBUG_INSANE, "IACT: Found embedded ANIM at offset %d, size %d", (int)i, (int)animReportedSize);
 						if (toCopy > 0) {
 							byte *animData = (byte *)malloc(toCopy);
 							if (animData) {
@@ -189,7 +189,7 @@ void InsaneRebel2::procIACT(byte *renderBitmap, int32 codecparam, int32 setupsan
 					}
 				}
 
-				debugC(DEBUG_INSANE, "Rebel2 IACT: No ANIM tag found in menu IACT data");
+				debugC(DEBUG_INSANE, "IACT: No ANIM tag found in menu IACT data");
 				b.seek(startPos);
 				free(scanBuf);
 			}
@@ -243,7 +243,7 @@ void InsaneRebel2::iactRebel2Scene1(byte *renderBitmap, int32 codecparam, int32
 		// Sub-opcode 0x0D (13) = Primary collision zones (obstacles)
 		// Sub-opcode 0x0E (14) = Secondary collision zones (boundaries)
 		// par2 is the sub-opcode that determines which zone table to use
-		debugC(DEBUG_INSANE, "Rebel2 IACT Opcode 5: par2=%d par3=%d par4=%d", par2, par3, par4);
+		debugC(DEBUG_INSANE, "IACT Opcode 5: par2=%d par3=%d par4=%d", par2, par3, par4);
 
 		if (par2 == 0x0D || par2 == 0x0E) {
 			// Register the collision zone from the remaining IACT data
@@ -275,7 +275,7 @@ void InsaneRebel2::iactRebel2Scene1(byte *renderBitmap, int32 codecparam, int32
 			// DAT_00443b12 = horizontal wind, DAT_00443b14 = vertical wind
 			_windParamX = body0;
 			_windParamY = body1;
-			debugC(DEBUG_INSANE, "Rebel2 Opcode 7 par4=0: wind=(%d,%d)", body0, body1);
+			debugC(DEBUG_INSANE, "Opcode 7 par4=0: wind=(%d,%d)", body0, body1);
 			break;
 		case 1:
 			// Set LEFT X boundary and TOP Y boundary
@@ -287,7 +287,7 @@ void InsaneRebel2::iactRebel2Scene1(byte *renderBitmap, int32 codecparam, int32
 			} else if (_flyControlMode == 0) {
 				_corridorLeftX += 20;
 			}
-			debugC(DEBUG_INSANE, "Rebel2 Opcode 7 par4=1: corridor left=%d top=%d (adjusted left=%d)",
+			debugC(DEBUG_INSANE, "Opcode 7 par4=1: corridor left=%d top=%d (adjusted left=%d)",
 				body0, body1, _corridorLeftX);
 			break;
 		case 2:
@@ -300,16 +300,16 @@ void InsaneRebel2::iactRebel2Scene1(byte *renderBitmap, int32 codecparam, int32
 			} else if (_flyControlMode == 0) {
 				_corridorRightX -= 20;
 			}
-			debugC(DEBUG_INSANE, "Rebel2 Opcode 7 par4=2: corridor right=%d bottom=%d (adjusted right=%d)",
+			debugC(DEBUG_INSANE, "Opcode 7 par4=2: corridor right=%d bottom=%d (adjusted right=%d)",
 				body0, body1, _corridorRightX);
 			break;
 		case 5:
 			// DAT_00443b52: repeats FLY002 ship overlay in FUN_40D836.
 			_flyOverlayRepeatCount = body0;
-			debugC(DEBUG_INSANE, "Rebel2 Opcode 7 par4=5: flyOverlayRepeat=%d", _flyOverlayRepeatCount);
+			debugC(DEBUG_INSANE, "Opcode 7 par4=5: flyOverlayRepeat=%d", _flyOverlayRepeatCount);
 			break;
 		default:
-			debugC(DEBUG_INSANE, "Rebel2 Opcode 7 par4=%d: body=(%d,%d) — unknown sub-opcode", par4, body0, body1);
+			debugC(DEBUG_INSANE, "Opcode 7 par4=%d: body=(%d,%d) — unknown sub-opcode", par4, body0, body1);
 			break;
 		}
 
@@ -324,9 +324,9 @@ void InsaneRebel2::iactRebel2Scene1(byte *renderBitmap, int32 codecparam, int32
 		iactRebel2Opcode9(renderBitmap, b, par2, par3, par4);
 	} else if (par1 == 0 || par1 == 1) {
 		// Low Opcodes seen in logs
-		debugC(DEBUG_INSANE, "Rebel2 IACT: Low Opcode %d (par2=%d par3=%d par4=%d)", par1, par2, par3, par4);
+		debugC(DEBUG_INSANE, "IACT: Low Opcode %d (par2=%d par3=%d par4=%d)", par1, par2, par3, par4);
 	} else {
-		debugC(DEBUG_INSANE, "Rebel2 IACT: Unknown Opcode %d (par2=%d par3=%d par4=%d)", par1, par2, par3, par4);
+		debugC(DEBUG_INSANE, "IACT: Unknown Opcode %d (par2=%d par3=%d par4=%d)", par1, par2, par3, par4);
 	}
 }
 
@@ -359,13 +359,13 @@ void InsaneRebel2::iactRebel2Opcode2(Common::SeekableReadStream &b, int16 par2,
 			// while the parent is alive, and revealed when the parent is destroyed.
 			if (!isBitSet(parentId)) {
 				setBit(childId);
-				debugC(DEBUG_INSANE, "Rebel2: Linked ID=%d to Parent=%d (Slot 0) - child DISABLED (parent alive)", childId, parentId);
+				debugC(DEBUG_INSANE, "Linked ID=%d to Parent=%d (Slot 0) - child DISABLED (parent alive)", childId, parentId);
 			} else {
 				clearBit(childId);
-				debugC(DEBUG_INSANE, "Rebel2: Linked ID=%d to Parent=%d (Slot 0) - child ENABLED (parent dead)", childId, parentId);
+				debugC(DEBUG_INSANE, "Linked ID=%d to Parent=%d (Slot 0) - child ENABLED (parent dead)", childId, parentId);
 			}
 		} else {
-			debugC(DEBUG_INSANE, "Rebel2: Skipping link with invalid IDs childId=%d parentId=%d", childId, parentId);
+			debugC(DEBUG_INSANE, "Skipping link with invalid IDs childId=%d parentId=%d", childId, parentId);
 		}
 		return;
 	} else if (par3 == 1) { // Probabilistic / counter cases: par3 == 1
@@ -385,13 +385,13 @@ void InsaneRebel2::iactRebel2Opcode2(Common::SeekableReadStream &b, int16 par2,
 			if (value == 100) {
 				// par4==100: Force enable the target (original: FUN_00423a00)
 				clearBit(targetId);
-				debugC(DEBUG_INSANE, "Rebel2 Opcode2 (H%d): Force ENABLE target=%d (par4=100)", _rebelHandler, targetId);
+				debugC(DEBUG_INSANE, "Opcode2 (H%d): Force ENABLE target=%d (par4=100)", _rebelHandler, targetId);
 			} else {
 				// Check wave state: if enemy type has been killed, disable target
 				int bitMask = 1 << (value & 0x1f);
 				if ((_rebelWaveState & bitMask) != 0) {
 					setBit(targetId);
-					debugC(DEBUG_INSANE, "Rebel2 Opcode2 (H%d): Disable target=%d (type %d killed, wave=0x%x)", _rebelHandler, targetId, value, _rebelWaveState);
+					debugC(DEBUG_INSANE, "Opcode2 (H%d): Disable target=%d (type %d killed, wave=0x%x)", _rebelHandler, targetId, value, _rebelWaveState);
 				}
 			}
 			return;
@@ -400,19 +400,19 @@ void InsaneRebel2::iactRebel2Opcode2(Common::SeekableReadStream &b, int16 par2,
 		if (value > 1 && value < 10) { // 1 < value < 10: random disable
 			if (_vm->_rnd.getRandomNumber(value) == 0) {
 				setBit(targetId);
-				debugC(DEBUG_INSANE, "Rebel2 IACT Opcode2: Random DISABLE target=%d (value=%d)", targetId, value);
+				debugC(DEBUG_INSANE, "IACT Opcode2: Random DISABLE target=%d (value=%d)", targetId, value);
 			}
 		} else if (value > 10 && value < 20) { // 10 < value < 20: enable/disable with special value==11 = force enable
 			if (value == 11) {
 				clearBit(targetId);
-				debugC(DEBUG_INSANE, "Rebel2 IACT Opcode2: FORCE ENABLE target=%d (value=11)", targetId);
+				debugC(DEBUG_INSANE, "IACT Opcode2: FORCE ENABLE target=%d (value=11)", targetId);
 			} else {
 				if (_vm->_rnd.getRandomNumber(value - 10) == 0) {
 					clearBit(targetId);
-					debugC(DEBUG_INSANE, "Rebel2 IACT Opcode2: Random ENABLE target=%d (value=%d)", targetId, value);
+					debugC(DEBUG_INSANE, "IACT Opcode2: Random ENABLE target=%d (value=%d)", targetId, value);
 				} else {
 					setBit(targetId);
-					debugC(DEBUG_INSANE, "Rebel2 IACT Opcode2: Random DISABLE target=%d (value=%d)", targetId, value);
+					debugC(DEBUG_INSANE, "IACT Opcode2: Random DISABLE target=%d (value=%d)", targetId, value);
 				}
 			}
 		} else if (value > 99 && value < 110) { // 99 < value < 110: increment value counter if target active
@@ -421,7 +421,7 @@ void InsaneRebel2::iactRebel2Opcode2(Common::SeekableReadStream &b, int16 par2,
 				if (idx >= 0 && idx < 10) {
 					_rebelValueCounters[idx]++;
 					_rebelLastCounter = _rebelValueCounters[idx];
-					debugC(DEBUG_INSANE, "Rebel2 IACT Opcode2: Increment VAL counter[%d] -> %d (target=%d)", value, _rebelValueCounters[idx], targetId);
+					debugC(DEBUG_INSANE, "IACT Opcode2: Increment VAL counter[%d] -> %d (target=%d)", value, _rebelValueCounters[idx], targetId);
 				}
 			}
 
@@ -431,14 +431,14 @@ void InsaneRebel2::iactRebel2Opcode2(Common::SeekableReadStream &b, int16 par2,
 					if (!isBitSet(targetId)) {
 						_rebelMaskCounters[slot]++;
 						_rebelLastCounter = _rebelMaskCounters[slot];
-						debugC(DEBUG_INSANE, "Rebel2 IACT Opcode2: Increment MASK counter[%d] -> %d (target=%d)", slot, _rebelMaskCounters[slot], targetId);
+						debugC(DEBUG_INSANE, "IACT Opcode2: Increment MASK counter[%d] -> %d (target=%d)", slot, _rebelMaskCounters[slot], targetId);
 					}
 				}
 			}
 		}
 
 		// Unknown sub-type: log and return
-		debugC(DEBUG_INSANE, "Rebel2 IACT Opcode2: Unhandled par3=%d par4=%d", par3, par4);
+		debugC(DEBUG_INSANE, "IACT Opcode2: Unhandled par3=%d par4=%d", par3, par4);
 	}
 }
 
@@ -477,35 +477,35 @@ void InsaneRebel2::iactRebel2Opcode3(Common::SeekableReadStream &b, int16 par2,
 
 		if (par3 == 5) {
 			// Probabilistic damage with cover check (lines 81-92)
-			debugC(DEBUG_INSANE, "Rebel2 Opcode3: H25 par3=5 srcId=%d isBitSet=%d damageLevel=%d",
+			debugC(DEBUG_INSANE, "Opcode3: H25 par3=5 srcId=%d isBitSet=%d damageLevel=%d",
 				srcIdBody1, isBitSet(srcIdBody1), _rebelDamageLevel);
 
 			if (_rebelDamageLevel < 2 && !isBitSet(srcIdBody1)) {
 				LevelDifficultyParams params = getDifficultyParams();
 				int probability = (params.shotAccuracy >= 0) ? params.shotAccuracy : 0;
 				int roll = _vm->_rnd.getRandomNumber(99);
-				debugC(DEBUG_INSANE, "Rebel2 Opcode3: probability=%d roll=%d (need roll < prob)", probability, roll);
+				debugC(DEBUG_INSANE, "Opcode3: probability=%d roll=%d (need roll < prob)", probability, roll);
 
 				if (roll < probability) {
 					int damageAmount = (params.shotDamage >= 0) ? params.shotDamage : 0;
 					if (applyPlayerDamage(damageAmount)) {
-						debugC(DEBUG_INSANE, "Rebel2: H25 PROBABILISTIC damage from %d. Damage=%d total=%d",
+						debugC(DEBUG_INSANE, "H25 PROBABILISTIC damage from %d. Damage=%d total=%d",
 							srcIdBody1, damageAmount, _playerDamage);
 					}
 					if (!_noDamage)
 						initDamageFlash();
 				}
 			} else {
-				debugC(DEBUG_INSANE, "Rebel2 Opcode3: H25 par3=5 BLOCKED (damageLevel=%d isBitSet=%d)",
+				debugC(DEBUG_INSANE, "Opcode3: H25 par3=5 BLOCKED (damageLevel=%d isBitSet=%d)",
 					_rebelDamageLevel, isBitSet(srcIdBody1));
 			}
 		} else if (par3 == 1 && !isBitSet(srcIdBody0) && par4 != 4) {
 			// Hit counter only — NO damage (lines 94-98)
 			_rebelHitCounter++;
-			debugC(DEBUG_INSANE, "Rebel2: H25 hit counter++ -> %d (par3=1 par4=%d, no damage)",
+			debugC(DEBUG_INSANE, "H25 hit counter++ -> %d (par3=1 par4=%d, no damage)",
 				_rebelHitCounter, par4);
 		} else {
-			debugC(DEBUG_INSANE, "Rebel2 Opcode3: H25 par3=%d par4=%d (no action)", par3, par4);
+			debugC(DEBUG_INSANE, "Opcode3: H25 par3=%d par4=%d (no action)", par3, par4);
 		}
 
 		// Direct damage: par4==100, separate from par3 branches (lines 99-111)
@@ -513,7 +513,7 @@ void InsaneRebel2::iactRebel2Opcode3(Common::SeekableReadStream &b, int16 par2,
 			LevelDifficultyParams dparams = getDifficultyParams();
 			int directHitDamage = (dparams.missDamage >= 0) ? dparams.missDamage : 0;
 			if (applyPlayerDamage(directHitDamage)) {
-				debugC(DEBUG_INSANE, "Rebel2: H25 DIRECT HIT par4=100 damage=%d total=%d",
+				debugC(DEBUG_INSANE, "H25 DIRECT HIT par4=100 damage=%d total=%d",
 					directHitDamage, _playerDamage);
 			}
 			if (!_noDamage)
@@ -523,12 +523,12 @@ void InsaneRebel2::iactRebel2Opcode3(Common::SeekableReadStream &b, int16 par2,
 		// Non-Handler-25 direct hit path — FUN_4092D9 lines 209-227
 		int16 srcId = b.readSint16LE(); // body[0] (offset +8): source enemy ID
 
-		debugC(DEBUG_INSANE, "Rebel2 Opcode3: par3=%d par4=%d srcId=%d isBitSet=%d",
+		debugC(DEBUG_INSANE, "Opcode3: par3=%d par4=%d srcId=%d isBitSet=%d",
 			par3, par4, srcId, isBitSet(srcId));
 
 		if (!isBitSet(srcId)) {
 			_rebelHitCounter++;
-			debugC(DEBUG_INSANE, "Rebel2: Incremented hit counter -> %d", _rebelHitCounter);
+			debugC(DEBUG_INSANE, "Incremented hit counter -> %d", _rebelHitCounter);
 
 			LevelDifficultyParams dparams = getDifficultyParams();
 			int directHitDamage = (dparams.missDamage >= 0) ? dparams.missDamage : 0;
@@ -546,7 +546,7 @@ void InsaneRebel2::iactRebel2Opcode3(Common::SeekableReadStream &b, int16 par2,
 
 				if (shouldDamage) {
 					if (applyPlayerDamage(directHitDamage)) {
-						debugC(DEBUG_INSANE, "Rebel2: DIRECT HIT damage from enemy %d. par3=%d par4=%d damage=%d total=%d",
+						debugC(DEBUG_INSANE, "DIRECT HIT damage from enemy %d. par3=%d par4=%d damage=%d total=%d",
 							srcId, par3, par4, directHitDamage, _playerDamage);
 					}
 					if (!_noDamage)
@@ -559,19 +559,19 @@ void InsaneRebel2::iactRebel2Opcode3(Common::SeekableReadStream &b, int16 par2,
 		b.skip(2); // Skip body[0]
 		int16 srcId = b.readSint16LE(); // body[1] (offset +10)
 
-		debugC(DEBUG_INSANE, "Rebel2 Opcode3: par3=5 srcId=%d isBitSet=%d", srcId, isBitSet(srcId));
+		debugC(DEBUG_INSANE, "Opcode3: par3=5 srcId=%d isBitSet=%d", srcId, isBitSet(srcId));
 
 		if (!isBitSet(srcId)) {
 			LevelDifficultyParams params = getDifficultyParams();
 			int probability = (params.shotAccuracy >= 0) ? params.shotAccuracy : 0;
 
 			int roll = _vm->_rnd.getRandomNumber(99);
-			debugC(DEBUG_INSANE, "Rebel2 Opcode3: probability=%d roll=%d (need roll < prob)", probability, roll);
+			debugC(DEBUG_INSANE, "Opcode3: probability=%d roll=%d (need roll < prob)", probability, roll);
 
 			if (roll < probability) {
 				int damageAmount = (params.shotDamage >= 0) ? params.shotDamage : 0;
 				if (applyPlayerDamage(damageAmount)) {
-					debugC(DEBUG_INSANE, "Rebel2: PROBABILISTIC damage from enemy %d. Damage=%d total=%d",
+					debugC(DEBUG_INSANE, "PROBABILISTIC damage from enemy %d. Damage=%d total=%d",
 						srcId, damageAmount, _playerDamage);
 				}
 				if (!_noDamage) {
@@ -584,7 +584,7 @@ void InsaneRebel2::iactRebel2Opcode3(Common::SeekableReadStream &b, int16 par2,
 			}
 		}
 	} else {
-		debugC(DEBUG_INSANE, "Rebel2 Opcode3: UNHANDLED par3=%d par4=%d", par3, par4);
+		debugC(DEBUG_INSANE, "Opcode3: UNHANDLED par3=%d par4=%d", par3, par4);
 	}
 }
 
@@ -597,7 +597,7 @@ void InsaneRebel2::updateOpcode6Handler(int16 par2) {
 			_level2BackgroundLoaded = false;
 		}
 		_rebelHandler = par2;
-		debugC(DEBUG_INSANE, "Rebel2 Opcode 6: Setting handler=%d", par2);
+		debugC(DEBUG_INSANE, "Opcode 6: Setting handler=%d", par2);
 	}
 }
 
@@ -634,7 +634,7 @@ void InsaneRebel2::handleOpcode6Handler8(Common::SeekableReadStream &b, int16 pa
 		}
 		_rebelWaveState = _rebelPhaseState;
 		_rebelOp6Initialized = true;
-		debugC(DEBUG_INSANE, "Rebel2 Opcode 6 (Handler 8): Wave init, wave=0x%x", _rebelWaveState);
+		debugC(DEBUG_INSANE, "Opcode 6 (Handler 8): Wave init, wave=0x%x", _rebelWaveState);
 	}
 
 	// Skip position calculation for special modes 4 and 5
@@ -775,7 +775,7 @@ void InsaneRebel2::handleOpcode6Handler8(Common::SeekableReadStream &b, int16 pa
 			_vm->getActionState(kScummActionInsaneAttack);
 	}
 
-	debugC(DEBUG_INSANE, "Rebel2 Opcode 6 (Handler 8): mode=%d bodyFlag=%d range=%d shipPos=(%d,%d) target=(%d,%d) firing=%d dir=(%d,%d,%d)",
+	debugC(DEBUG_INSANE, "Opcode 6 (Handler 8): mode=%d bodyFlag=%d range=%d shipPos=(%d,%d) target=(%d,%d) firing=%d dir=(%d,%d,%d)",
 		_shipLevelMode, bodyStatusFlag, _movementRangeLimit, _shipPosX, _shipPosY, _shipTargetX, _shipTargetY, _shipFiring,
 		_shipDirectionH, _shipDirectionV, _shipDirectionIndex);
 }
@@ -792,7 +792,7 @@ void InsaneRebel2::handleOpcode6Handler7(Common::SeekableReadStream &b, int16 pa
 	//   Mode 2: Combat mode - shooting ENABLED, SECONDARY zones
 	//   Mode 3: Tunnel flight - PRIMARY zones, per-edge push-back (hMargin=0x0f)
 	_flyControlMode = par4;
-	debugC(DEBUG_INSANE, "Rebel2 Opcode 6 (Handler 7): Control mode set to %d (shooting %s)",
+	debugC(DEBUG_INSANE, "Opcode 6 (Handler 7): Control mode set to %d (shooting %s)",
 		par4, (par4 == 2) ? "ENABLED" : "DISABLED");
 
 	// Status bar: param_5[4] == 1 in original (first body word, 5th IACT word)
@@ -809,7 +809,7 @@ void InsaneRebel2::handleOpcode6Handler7(Common::SeekableReadStream &b, int16 pa
 		if (_smush_iconsNut && _smush_iconsNut->getNumChars() > 5) {
 			initLaserTexture(_smush_iconsNut, 5);
 		}
-		debugC(DEBUG_INSANE, "Rebel2 Opcode 6 (Handler 7): Status bar enabled (body flag=%d)", bodyStatusFlag);
+		debugC(DEBUG_INSANE, "Opcode 6 (Handler 7): Status bar enabled (body flag=%d)", bodyStatusFlag);
 	}
 
 	// Ship position update - FUN_40C3CC case 4, lines 49-327.
@@ -1084,7 +1084,7 @@ void InsaneRebel2::handleOpcode6Handler7(Common::SeekableReadStream &b, int16 pa
 		((_vm->VAR(_vm->VAR_LEFTBTN_HOLD) != 0) ||
 		 _vm->getActionState(kScummActionInsaneAttack));
 
-	debugC(DEBUG_INSANE, "Rebel2 H7: mouse=(%d,%d) raw=(%d,%d) scaled=(%d,%d) targetX=%d pos=(%d,%d) "
+	debugC(DEBUG_INSANE, "H7: mouse=(%d,%d) raw=(%d,%d) scaled=(%d,%d) targetX=%d pos=(%d,%d) "
 		"vel=%d vIn=%d dx=%d dir=%d mode=%d mouseTarget=%d",
 		mouseX, mouseY, inputX, inputY, scaledInputX, scaledInputY,
 		mouseFlightTargetX, _flyShipScreenX, _flyShipScreenY, _smoothedVelocity,
@@ -1125,7 +1125,7 @@ void InsaneRebel2::handleOpcode6Handler25(byte *renderBitmap, Common::SeekableRe
 			}
 			_rebelWaveState = _rebelPhaseState;
 			_rebelOp6Initialized = true;
-			debugC(DEBUG_INSANE, "Rebel2 Opcode 6 (Handler 25): Wave init, wave=0x%x autopilot=%d damageLevel=%d",
+			debugC(DEBUG_INSANE, "Opcode 6 (Handler 25): Wave init, wave=0x%x autopilot=%d damageLevel=%d",
 				_rebelWaveState, _rebelAutopilot, _rebelDamageLevel);
 		}
 	}
@@ -1139,7 +1139,7 @@ void InsaneRebel2::handleOpcode6Handler25(byte *renderBitmap, Common::SeekableRe
 	// Mode 4: Alternative uncovered position - sprite on right
 	_grdSpriteMode = par4;  // local_14[3] maps to par4 (offset 6-7)
 
-	debugC(DEBUG_INSANE, "Rebel2 Handler25 Opcode6: par2=%d par3=%d par4=%d(mode) par5=%d(reset) autopilot=%d damageLevel=%d controlMode=%d",
+	debugC(DEBUG_INSANE, "Handler25 Opcode6: par2=%d par3=%d par4=%d(mode) par5=%d(reset) autopilot=%d damageLevel=%d controlMode=%d",
 		par2, par3, par4, par5, _rebelAutopilot, _rebelDamageLevel, _rebelControlMode);
 
 	// Autopilot logic (lines 123-146).
@@ -1150,13 +1150,13 @@ void InsaneRebel2::handleOpcode6Handler25(byte *renderBitmap, Common::SeekableRe
 			// Uncovered: RIGHT button enters cover.
 			if ((_rebelControlMode & 2) != 0) {
 				_rebelAutopilot = 1;
-				debugC(DEBUG_INSANE, "Rebel2 Handler25: Entering cover (right click), controlMode=%d", _rebelControlMode);
+				debugC(DEBUG_INSANE, "Handler25: Entering cover (right click), controlMode=%d", _rebelControlMode);
 			}
 		} else {
 			// Covered: ANY button exits cover.
 			if (_rebelControlMode != 0) {
 				_rebelAutopilot = 0;
-				debugC(DEBUG_INSANE, "Rebel2 Handler25: Exiting cover (button click), controlMode=%d", _rebelControlMode);
+				debugC(DEBUG_INSANE, "Handler25: Exiting cover (button click), controlMode=%d", _rebelControlMode);
 			}
 		}
 
@@ -1191,7 +1191,7 @@ void InsaneRebel2::handleOpcode6Handler25(byte *renderBitmap, Common::SeekableRe
 		}
 	}
 	if (_rebelDamageLevel != prevDamageLevel) {
-		debugC(DEBUG_INSANE, "Rebel2 Handler25: damageLevel transition %d -> %d (autopilot=%d)",
+		debugC(DEBUG_INSANE, "Handler25: damageLevel transition %d -> %d (autopilot=%d)",
 			prevDamageLevel, _rebelDamageLevel, _rebelAutopilot);
 	}
 
@@ -1263,10 +1263,10 @@ void InsaneRebel2::handleOpcode6Handler25(byte *renderBitmap, Common::SeekableRe
 		_rebelViewOffset2X = _rebelDamageLevel * -22;
 		_rebelViewOffsetY = 0;
 		_rebelViewOffset2Y = 0;
-		debugC(DEBUG_INSANE, "Rebel2 Opcode 6 (Handler 25): Unknown mode %d, using Mode 1 fallback", _grdSpriteMode);
+		debugC(DEBUG_INSANE, "Opcode 6 (Handler 25): Unknown mode %d, using Mode 1 fallback", _grdSpriteMode);
 	}
 
-	debugC(DEBUG_INSANE, "Rebel2 Opcode 6 (Handler 25): mode=%d damage=%d dir=%d autopilot=%d viewOff=(%d,%d) spritePos=(%d,%d)",
+	debugC(DEBUG_INSANE, "Opcode 6 (Handler 25): mode=%d damage=%d dir=%d autopilot=%d viewOff=(%d,%d) spritePos=(%d,%d)",
 		_grdSpriteMode, _rebelDamageLevel, _rebelFlightDir, _rebelAutopilot,
 		_rebelViewOffsetX, _rebelViewOffsetY, _rebelViewOffset2X, _rebelViewOffset2Y);
 
@@ -1314,7 +1314,7 @@ void InsaneRebel2::handleOpcode6Turret(Common::SeekableReadStream &b, int16 par4
 			_rebelWaveState = _rebelPhaseState;
 			_rebelHitCounter = 0;
 			_rebelOp6Initialized = true;
-			debugC(DEBUG_INSANE, "Rebel2 Opcode 6 (Handler 0x26): Wave init, levelType=%d waveState=0x%x",
+			debugC(DEBUG_INSANE, "Opcode 6 (Handler 0x26): Wave init, levelType=%d waveState=0x%x",
 				_rebelLevelType, _rebelWaveState);
 		}
 	}
@@ -1339,7 +1339,7 @@ void InsaneRebel2::handleOpcode6GenericInit(int16 par4) {
 			_rebelWaveState = _rebelPhaseState;
 			_rebelHitCounter = 0;
 			_rebelOp6Initialized = true;
-			debugC(DEBUG_INSANE, "Rebel2 Opcode 6: Wave init - cleared bits/links, waveState=0x%x", _rebelWaveState);
+			debugC(DEBUG_INSANE, "Opcode 6: Wave init - cleared bits/links, waveState=0x%x", _rebelWaveState);
 		}
 	}
 }
@@ -1458,7 +1458,7 @@ void InsaneRebel2::updateOpcode6GenericFlightState() {
 		break;
 	}
 
-	debugC(DEBUG_INSANE, "Rebel2 Opcode 6: levelType=%d autopilot=%d damageLevel=%d viewOffset=(%d,%d)",
+	debugC(DEBUG_INSANE, "Opcode 6: levelType=%d autopilot=%d damageLevel=%d viewOffset=(%d,%d)",
 		_rebelLevelType, _rebelAutopilot, _rebelDamageLevel, _rebelViewOffsetX, _rebelViewOffsetY);
 }
 
@@ -1522,7 +1522,7 @@ void InsaneRebel2::iactRebel2Opcode6(byte *renderBitmap, Common::SeekableReadStr
 	// - Handler-specific status/reset word
 	// - Different view offset calculations
 
-	debugC(DEBUG_INSANE, "Rebel2 IACT Opcode 6: par2=%d par3=%d par4=%d", par2, par3, par4);
+	debugC(DEBUG_INSANE, "IACT Opcode 6: par2=%d par3=%d par4=%d", par2, par3, par4);
 
 	updateOpcode6Handler(par2);
 
@@ -1610,7 +1610,7 @@ bool InsaneRebel2::loadOpcode8EdgeTable(Common::SeekableReadStream &b, int64 sta
 			b.read(edgeData, 8 + 32896);
 			initEdgeTable(edgeData);
 			free(edgeData);
-			debugC(DEBUG_INSANE, "Rebel2 Opcode 8: Loaded per-level edge blend table (par4=1000)");
+			debugC(DEBUG_INSANE, "Opcode 8: Loaded per-level edge blend table (par4=1000)");
 		}
 		b.seek(startPos);
 		return true;
@@ -1651,11 +1651,11 @@ bool InsaneRebel2::loadOpcode8AuxSfx(Common::SeekableReadStream &b, int64 startP
 				b.read(soundData, dataSize);
 				loadAuxSfx(auxBuffer, soundData, dataSize);
 				free(soundData);
-				debugC(DEBUG_INSANE, "Rebel2 Opcode 8: Loaded %u bytes into aux sound buffer %d (par4=%d)",
+				debugC(DEBUG_INSANE, "Opcode 8: Loaded %u bytes into aux sound buffer %d (par4=%d)",
 					dataSize, auxBuffer, par4);
 			}
 		} else {
-			debugC(DEBUG_INSANE, "Rebel2 Opcode 8: Aux sound par4=%d dataSize=%u exceeds remaining=%lld",
+			debugC(DEBUG_INSANE, "Opcode 8: Aux sound par4=%d dataSize=%u exceeds remaining=%lld",
 				par4, dataSize, (long long)remaining);
 		}
 	}
@@ -1682,7 +1682,7 @@ bool InsaneRebel2::loadOpcode8ShotOriginTable(Common::SeekableReadStream &b, int
 // ScummVM refactor helper for opcode 8 embedded ANIM scanning, not a separate retail function.
 void InsaneRebel2::loadOpcode8EmbeddedAnim(byte *renderBitmap, Common::SeekableReadStream &b, int64 startPos, int64 remaining, int16 par3, int16 par4) {
 	// Remaining handlers require finding ANIM tag in the stream.
-	debugC(DEBUG_INSANE, "Rebel2 Opcode 8: Scanning for ANIM tag (startPos=%lld remaining=%lld)",
+	debugC(DEBUG_INSANE, "Opcode 8: Scanning for ANIM tag (startPos=%lld remaining=%lld)",
 		(long long)startPos, (long long)remaining);
 
 	if (remaining <= 0) {
@@ -1696,19 +1696,19 @@ void InsaneRebel2::loadOpcode8EmbeddedAnim(byte *renderBitmap, Common::SeekableR
 	}
 
 	int bytesRead = b.read(scanBuf, scanSize);
-	debugC(DEBUG_INSANE, "Rebel2 Opcode 8: Read %d bytes for ANIM scan", bytesRead);
+	debugC(DEBUG_INSANE, "Opcode 8: Read %d bytes for ANIM scan", bytesRead);
 
 	int animOffset = -1;
 	for (int i = 0; i + 8 <= bytesRead; ++i) {
 		if (READ_BE_UINT32(scanBuf + i) == MKTAG('A','N','I','M')) {
 			animOffset = i;
-			debugC(DEBUG_INSANE, "Rebel2 Opcode 8: Found ANIM at offset %d", i);
+			debugC(DEBUG_INSANE, "Opcode 8: Found ANIM at offset %d", i);
 			break;
 		}
 	}
 
 	if (animOffset < 0) {
-		debugC(DEBUG_INSANE, "Rebel2 Opcode 8: No ANIM tag found");
+		debugC(DEBUG_INSANE, "Opcode 8: No ANIM tag found");
 		free(scanBuf);
 		b.seek(startPos);
 		return;
@@ -1779,7 +1779,7 @@ bool InsaneRebel2::handleOpcode8EmbeddedAnim(byte *renderBitmap, byte *animData,
 		} else if (par4 == 5) {
 			handled = loadLevel2Background(animData, animDataSize, renderBitmap);
 		} else if (par4 == 4 || par4 == 6 || par4 == 7) {
-			debugC(DEBUG_INSANE, "Rebel2 Opcode 8: Handler 25 overlay par4=%d - drawing to screen", par4);
+			debugC(DEBUG_INSANE, "Opcode 8: Handler 25 overlay par4=%d - drawing to screen", par4);
 			loadEmbeddedSan(par4, animData, animDataSize, renderBitmap);
 			handled = true;
 		}
@@ -1793,7 +1793,7 @@ bool InsaneRebel2::handleOpcode8EmbeddedAnim(byte *renderBitmap, byte *animData,
 		const bool lowResHud = (par3 == 1 || par3 == 3);
 
 		if ((!highRes && highResHud) || (highRes && lowResHud)) {
-			debugC(DEBUG_INSANE, "Rebel2 Opcode 8: Skipping %s HUD par3=%d while running in %s mode",
+			debugC(DEBUG_INSANE, "Opcode 8: Skipping %s HUD par3=%d while running in %s mode",
 				highResHud ? "high-res" : "low-res", par3, highRes ? "high-res" : "low-res");
 			handled = true;
 		} else {
@@ -1807,7 +1807,7 @@ bool InsaneRebel2::handleOpcode8EmbeddedAnim(byte *renderBitmap, byte *animData,
 
 			// Skip audio tracks (userId >= 1000).
 			if (userId > 0 && userId < 1000) {
-				debugC(DEBUG_INSANE, "Rebel2 Opcode 8: Loading embedded SAN HUD userId=%d (handler=%d par3=%d par4=%d)",
+				debugC(DEBUG_INSANE, "Opcode 8: Loading embedded SAN HUD userId=%d (handler=%d par3=%d par4=%d)",
 					userId, _rebelHandler, par3, par4);
 				loadEmbeddedSan(userId, animData, animDataSize, renderBitmap);
 				handled = true;
@@ -1816,14 +1816,14 @@ bool InsaneRebel2::handleOpcode8EmbeddedAnim(byte *renderBitmap, byte *animData,
 	}
 
 	if (!handled) {
-		debugC(DEBUG_INSANE, "Rebel2 Opcode 8: Unhandled case - handler=%d par3=%d par4=%d", _rebelHandler, par3, par4);
+		debugC(DEBUG_INSANE, "Opcode 8: Unhandled case - handler=%d par3=%d par4=%d", _rebelHandler, par3, par4);
 	}
 
 	return handled;
 }
 
 void InsaneRebel2::iactRebel2Opcode8(byte *renderBitmap, Common::SeekableReadStream &b, int32 chunkSize, int16 par2, int16 par3, int16 par4) {
-	debugC(DEBUG_INSANE, "Rebel2 IACT Opcode 8: handler=%d par2=%d par3=%d par4=%d (gameState=%d)",
+	debugC(DEBUG_INSANE, "IACT Opcode 8: handler=%d par2=%d par3=%d par4=%d (gameState=%d)",
 		_rebelHandler, par2, par3, par4, _gameState);
 
 	int64 startPos = b.pos();
@@ -1914,7 +1914,7 @@ bool InsaneRebel2::loadHandler25ShotOriginTable(Common::SeekableReadStream &b, i
 	b.seek(savedPos);
 
 	if (count < 20) {
-		debugC(DEBUG_INSANE, "Rebel2 Opcode 8: Handler25 par4=8 parse failed (count=%d, expected up to 30)", count);
+		debugC(DEBUG_INSANE, "Opcode 8: Handler25 par4=8 parse failed (count=%d, expected up to 30)", count);
 		return false;
 	}
 
@@ -1930,7 +1930,7 @@ bool InsaneRebel2::loadHandler25ShotOriginTable(Common::SeekableReadStream &b, i
 	}
 	_grdShotOriginTableLoaded = true;
 
-	debugC(DEBUG_INSANE, "Rebel2 Opcode 8: Loaded Handler25 shot-origin table (pairs=%d) idx5=(%d,%d) idx14=(%d,%d)",
+	debugC(DEBUG_INSANE, "Opcode 8: Loaded Handler25 shot-origin table (pairs=%d) idx5=(%d,%d) idx14=(%d,%d)",
 		count / 2, _grdShotOriginX[5], _grdShotOriginY[5], _grdShotOriginX[14], _grdShotOriginY[14]);
 	return true;
 }
@@ -1998,7 +1998,7 @@ bool InsaneRebel2::loadHandler7ShotTable(Common::SeekableReadStream &b, int64 st
 	b.seek(savedPos);
 
 	if (count < 70) {
-		debugC(DEBUG_INSANE, "Rebel2 Opcode 8: Handler7 par4=%d shot table parse failed (count=%d)", par4, count);
+		debugC(DEBUG_INSANE, "Opcode 8: Handler7 par4=%d shot table parse failed (count=%d)", par4, count);
 		return false;
 	}
 
@@ -2014,7 +2014,7 @@ bool InsaneRebel2::loadHandler7ShotTable(Common::SeekableReadStream &b, int64 st
 	else
 		_flyRightGunTableLoaded = true;
 
-	debugC(DEBUG_INSANE, "Rebel2 Opcode 8: Loaded Handler7 %s gun table idx0=(%d,%d) idx17=(%d,%d) idx34=(%d,%d)",
+	debugC(DEBUG_INSANE, "Opcode 8: Loaded Handler7 %s gun table idx0=(%d,%d) idx17=(%d,%d) idx34=(%d,%d)",
 		(par4 == 12) ? "left" : "right",
 		tableX[0], tableY[0], tableX[17], tableY[17], tableX[34], tableY[34]);
 	return true;
@@ -2050,13 +2050,13 @@ bool InsaneRebel2::loadHandler7FlySprites(Common::SeekableReadStream &b, int64 r
 		return false;
 	}
 
-	debugC(DEBUG_INSANE, "Rebel2 loadHandler7FlySprites: header bytes: %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X",
+	debugC(DEBUG_INSANE, "loadHandler7FlySprites: header bytes: %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X",
 		header[0], header[1], header[2], header[3], header[4],
 		header[5], header[6], header[7], header[8], header[9]);
 
 	// Size is at offset 14 from IACT start = bytes 6-9 of our header buffer
 	uint32 nutSize = READ_LE_UINT32(header + 6);
-	debugC(DEBUG_INSANE, "Rebel2 loadHandler7FlySprites: par4=%d nutSize=%u remaining=%lld",
+	debugC(DEBUG_INSANE, "loadHandler7FlySprites: par4=%d nutSize=%u remaining=%lld",
 		par4, nutSize, (long long)remaining);
 
 	if (nutSize == 0 || nutSize > (uint32)(remaining - 10)) {
@@ -2069,7 +2069,7 @@ bool InsaneRebel2::loadHandler7FlySprites(Common::SeekableReadStream &b, int64 r
 	}
 
 	int bytesRead = b.read(nutData, nutSize);
-	debugC(DEBUG_INSANE, "Rebel2 loadHandler7FlySprites: Read %d/%u bytes, first 16: %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X",
+	debugC(DEBUG_INSANE, "loadHandler7FlySprites: Read %d/%u bytes, first 16: %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X",
 		bytesRead, nutSize,
 		bytesRead > 0 ? nutData[0] : 0, bytesRead > 1 ? nutData[1] : 0,
 		bytesRead > 2 ? nutData[2] : 0, bytesRead > 3 ? nutData[3] : 0,
@@ -2099,13 +2099,13 @@ bool InsaneRebel2::loadHandler7FlySprites(Common::SeekableReadStream &b, int64 r
 	// Load as a Rebel2 embedded sprite ANIM.
 	NutRenderer *newNut = makeRebel2SpriteFromData(_vm, nutData, bytesRead);
 	if (!newNut || newNut->getNumChars() <= 0) {
-		debugC(DEBUG_INSANE, "Rebel2 loadHandler7FlySprites: NUT load failed for par4=%d", par4);
+		debugC(DEBUG_INSANE, "loadHandler7FlySprites: NUT load failed for par4=%d", par4);
 		delete newNut;
 		free(nutData);
 		return false;
 	}
 
-	debugC(DEBUG_INSANE, "Rebel2 loadHandler7FlySprites: Loaded FLY NUT par4=%d with %d sprites",
+	debugC(DEBUG_INSANE, "loadHandler7FlySprites: Loaded FLY NUT par4=%d with %d sprites",
 		par4, newNut->getNumChars());
 
 	// Assign to appropriate slot based on par4 (matches FUN_0040c3cc case 6 switch)
@@ -2114,7 +2114,7 @@ bool InsaneRebel2::loadHandler7FlySprites(Common::SeekableReadStream &b, int64 r
 	case 1:  // FLY001 - Ship direction sprites (35 frames)
 		delete _flyShipSprite;
 		_flyShipSprite = newNut;
-		debugC(DEBUG_INSANE, "Rebel2: _flyShipSprite set with %d sprites", newNut->getNumChars());
+		debugC(DEBUG_INSANE, "_flyShipSprite set with %d sprites", newNut->getNumChars());
 		break;
 	case 2:  // FLY003 - Targeting overlay
 		delete _flyTargetSprite;
@@ -2156,7 +2156,7 @@ bool InsaneRebel2::loadTurretHudOverlay(byte *animData, int32 size, int16 select
 	const int secondarySlot = highRes ? 4 : 3;
 
 	if (selector >= 1 && selector <= 4 && selector != primarySlot && selector != secondarySlot) {
-		debugC(DEBUG_INSANE, "Rebel2 loadTurretHudOverlay: Skipping %s HUD selector=%d (running in %s mode)",
+		debugC(DEBUG_INSANE, "loadTurretHudOverlay: Skipping %s HUD selector=%d (running in %s mode)",
 			(selector == 2 || selector == 4) ? "high-res" : "low-res", selector,
 			highRes ? "high-res" : "low-res");
 		return true;
@@ -2168,12 +2168,12 @@ bool InsaneRebel2::loadTurretHudOverlay(byte *animData, int32 size, int16 select
 
 	NutRenderer *newNut = makeRebel2SpriteFromData(_vm, animData, size);
 	if (!newNut || newNut->getNumChars() <= 0) {
-		debugC(DEBUG_INSANE, "Rebel2 loadTurretHudOverlay: NUT load failed for selector=%d", selector);
+		debugC(DEBUG_INSANE, "loadTurretHudOverlay: NUT load failed for selector=%d", selector);
 		delete newNut;
 		return false;
 	}
 
-	debugC(DEBUG_INSANE, "Rebel2 loadTurretHudOverlay: Loaded turret HUD NUT selector=%d with %d sprites",
+	debugC(DEBUG_INSANE, "loadTurretHudOverlay: Loaded turret HUD NUT selector=%d with %d sprites",
 		selector, newNut->getNumChars());
 
 	if (selector == primarySlot) {
@@ -2207,12 +2207,12 @@ bool InsaneRebel2::loadHandler8ShipSprites(byte *animData, int32 size, int16 par
 
 	NutRenderer *newNut = makeRebel2SpriteFromData(_vm, animData, size);
 	if (!newNut || newNut->getNumChars() <= 0) {
-		debugC(DEBUG_INSANE, "Rebel2 loadHandler8ShipSprites: NUT load failed for par4=%d", par4);
+		debugC(DEBUG_INSANE, "loadHandler8ShipSprites: NUT load failed for par4=%d", par4);
 		delete newNut;
 		return false;
 	}
 
-	debugC(DEBUG_INSANE, "Rebel2 loadHandler8ShipSprites: Loaded ship NUT par4=%d with %d sprites",
+	debugC(DEBUG_INSANE, "loadHandler8ShipSprites: Loaded ship NUT par4=%d with %d sprites",
 		par4, newNut->getNumChars());
 
 	switch (par4) {
@@ -2259,29 +2259,29 @@ bool InsaneRebel2::loadHandler25GrdSprites(byte *animData, int32 size, int16 par
 
 	NutRenderer *newNut = makeRebel2SpriteFromData(_vm, animData, size);
 	if (!newNut || newNut->getNumChars() <= 0) {
-		debugC(DEBUG_INSANE, "Rebel2 loadHandler25GrdSprites: NUT load failed for par4=%d", par4);
+		debugC(DEBUG_INSANE, "loadHandler25GrdSprites: NUT load failed for par4=%d", par4);
 		delete newNut;
 		return false;
 	}
 
-	debugC(DEBUG_INSANE, "Rebel2 loadHandler25GrdSprites: Loaded GRD NUT par4=%d with %d sprites",
+	debugC(DEBUG_INSANE, "loadHandler25GrdSprites: Loaded GRD NUT par4=%d with %d sprites",
 		par4, newNut->getNumChars());
 
 	switch (par4) {
 	case 1:  // GRD001 - Primary ship sprite
 		delete _grd001Sprite;
 		_grd001Sprite = newNut;
-		debugC(DEBUG_INSANE, "Rebel2: _grd001Sprite set with %d sprites", newNut->getNumChars());
+		debugC(DEBUG_INSANE, "_grd001Sprite set with %d sprites", newNut->getNumChars());
 		break;
 	case 2:  // GRD002 - Secondary ship sprite
 		delete _grd002Sprite;
 		_grd002Sprite = newNut;
-		debugC(DEBUG_INSANE, "Rebel2: _grd002Sprite set with %d sprites", newNut->getNumChars());
+		debugC(DEBUG_INSANE, "_grd002Sprite set with %d sprites", newNut->getNumChars());
 		break;
 	case 10: // GRD005 - Mode 3 overlay sprite
 		delete _grd005Sprite;
 		_grd005Sprite = newNut;
-		debugC(DEBUG_INSANE, "Rebel2: _grd005Sprite set with %d sprites", newNut->getNumChars());
+		debugC(DEBUG_INSANE, "_grd005Sprite set with %d sprites", newNut->getNumChars());
 		break;
 	default:
 		delete newNut;
@@ -2301,7 +2301,7 @@ bool InsaneRebel2::loadLevel2Background(byte *animData, int32 size, byte *render
 		return false;
 	}
 
-	debugC(DEBUG_INSANE, "Rebel2 loadLevel2Background: Loading Level 2 background (animSize=%d)", size);
+	debugC(DEBUG_INSANE, "loadLevel2Background: Loading Level 2 background (animSize=%d)", size);
 
 	// Allocate background buffer if needed (320x200 = 64000 bytes)
 	if (_level2Background == nullptr) {
@@ -2317,7 +2317,7 @@ bool InsaneRebel2::loadLevel2Background(byte *animData, int32 size, byte *render
 
 	uint32 animTag = stream.readUint32BE();
 	if (animTag != MKTAG('A','N','I','M')) {
-		debugC(DEBUG_INSANE, "Rebel2 loadLevel2Background: Missing ANIM tag, got 0x%08X", animTag);
+		debugC(DEBUG_INSANE, "loadLevel2Background: Missing ANIM tag, got 0x%08X", animTag);
 		return false;
 	}
 
@@ -2326,10 +2326,10 @@ bool InsaneRebel2::loadLevel2Background(byte *animData, int32 size, byte *render
 	if ((int64)animSize <= streamEnd - 8) {
 		animEnd = 8 + (int64)animSize;
 	} else {
-		debugC(DEBUG_INSANE, "Rebel2 loadLevel2Background: ANIM truncated: reported size=%u, actual=%lld",
+		debugC(DEBUG_INSANE, "loadLevel2Background: ANIM truncated: reported size=%u, actual=%lld",
 			animSize, streamEnd - 8);
 	}
-	debugC(DEBUG_INSANE, "Rebel2 loadLevel2Background: Found ANIM tag, size=%u", animSize);
+	debugC(DEBUG_INSANE, "loadLevel2Background: Found ANIM tag, size=%u", animSize);
 
 	bool foundBackground = false;
 	while (!stream.eos() && stream.pos() + 8 <= animEnd && !foundBackground) {
@@ -2345,7 +2345,7 @@ bool InsaneRebel2::loadLevel2Background(byte *animData, int32 size, byte *render
 			continue;
 		}
 
-		debugC(DEBUG_INSANE, "Rebel2 loadLevel2Background: Found FRME at %lld, size=%u", stream.pos() - 8, chunkSize);
+		debugC(DEBUG_INSANE, "loadLevel2Background: Found FRME at %lld, size=%u", stream.pos() - 8, chunkSize);
 
 		while (stream.pos() + 8 <= chunkDataEnd && !stream.eos() && !foundBackground) {
 			uint32 subTag;
@@ -2361,7 +2361,7 @@ bool InsaneRebel2::loadLevel2Background(byte *animData, int32 size, byte *render
 			}
 
 			if (subSize < 14) {
-				debugC(DEBUG_INSANE, "Rebel2 loadLevel2Background: FOBJ too small: size=%u", subSize);
+				debugC(DEBUG_INSANE, "loadLevel2Background: FOBJ too small: size=%u", subSize);
 				stream.seek(nextSubPos);
 				continue;
 			}
@@ -2375,7 +2375,7 @@ bool InsaneRebel2::loadLevel2Background(byte *animData, int32 size, byte *render
 			stream.readUint16LE();  // unknown
 			stream.readUint16LE();  // unknown
 
-			debugC(DEBUG_INSANE, "Rebel2 loadLevel2Background: Found FOBJ: codec=%d pos=(%d,%d) size=%dx%d",
+			debugC(DEBUG_INSANE, "loadLevel2Background: Found FOBJ: codec=%d pos=(%d,%d) size=%dx%d",
 				codec, fobjX, fobjY, fobjW, fobjH);
 
 			// Decode codec 3 (RLE) into the original 320x200 background buffer.
@@ -2389,7 +2389,7 @@ bool InsaneRebel2::loadLevel2Background(byte *animData, int32 size, byte *render
 				smushDecodeRLEOpaque(_level2Background, rleData, fobjX, fobjY, drawW, drawH, 320,
 					(int)(subDataEnd - stream.pos()));
 
-				debugC(DEBUG_INSANE, "Rebel2 loadLevel2Background: Decoded Level 2 background (%dx%d at %d,%d, clipped to %dx%d)",
+				debugC(DEBUG_INSANE, "loadLevel2Background: Decoded Level 2 background (%dx%d at %d,%d, clipped to %dx%d)",
 					fobjW, fobjH, fobjX, fobjY, drawW, drawH);
 				_level2BackgroundLoaded = true;
 				foundBackground = true;
@@ -2402,9 +2402,9 @@ bool InsaneRebel2::loadLevel2Background(byte *animData, int32 size, byte *render
 						for (int by = 0; by < 200; by++) {
 							memcpy(renderBitmap + by * 320, _level2Background + by * 320, 320);
 						}
-						debugC(DEBUG_INSANE, "Rebel2 loadLevel2Background: Copied to renderBitmap (pitch=%d)", bufferPitch);
+						debugC(DEBUG_INSANE, "loadLevel2Background: Copied to renderBitmap (pitch=%d)", bufferPitch);
 					} else {
-						debugC(DEBUG_INSANE, "Rebel2 loadLevel2Background: Skipping renderBitmap copy (pitch=%d != 320)", bufferPitch);
+						debugC(DEBUG_INSANE, "loadLevel2Background: Skipping renderBitmap copy (pitch=%d != 320)", bufferPitch);
 					}
 				}
 			}
@@ -2416,7 +2416,7 @@ bool InsaneRebel2::loadLevel2Background(byte *animData, int32 size, byte *render
 	}
 
 	if (!foundBackground) {
-		debugC(DEBUG_INSANE, "Rebel2 loadLevel2Background: Failed to find/decode background FOBJ");
+		debugC(DEBUG_INSANE, "loadLevel2Background: Failed to find/decode background FOBJ");
 	}
 
 	return foundBackground;
@@ -2471,9 +2471,9 @@ void InsaneRebel2::iactRebel2Opcode9(byte *renderBitmap, Common::SeekableReadStr
 		// Try to get string from SMUSH player's string resource
 		if (_player && _player->getString(stringIndex)) {
 			textStr = _player->getString(stringIndex);
-			debugC(DEBUG_INSANE, "Rebel2 Opcode 9: TRES string index=%d -> \"%s\"", stringIndex, textStr);
+			debugC(DEBUG_INSANE, "Opcode 9: TRES string index=%d -> \"%s\"", stringIndex, textStr);
 		} else {
-			debugC(DEBUG_INSANE, "Rebel2 Opcode 9: TRES string index=%d not found", stringIndex);
+			debugC(DEBUG_INSANE, "Opcode 9: TRES string index=%d not found", stringIndex);
 			return;
 		}
 
@@ -2513,11 +2513,11 @@ void InsaneRebel2::iactRebel2Opcode9(byte *renderBitmap, Common::SeekableReadStr
 		textBuffer[textLen] = '\0';
 		textStr = textBuffer;
 
-		debugC(DEBUG_INSANE, "Rebel2 Opcode 9: Inline text at (%d,%d) flags=0x%x -> \"%s\"", posX, posY, textFlags, textStr);
+		debugC(DEBUG_INSANE, "Opcode 9: Inline text at (%d,%d) flags=0x%x -> \"%s\"", posX, posY, textFlags, textStr);
 	}
 
 	if (!textStr || textStr[0] == '\0') {
-		debugC(DEBUG_INSANE, "Rebel2 Opcode 9: Empty text string, skipping");
+		debugC(DEBUG_INSANE, "Opcode 9: Empty text string, skipping");
 		return;
 	}
 
@@ -2542,7 +2542,7 @@ void InsaneRebel2::iactRebel2Opcode9(byte *renderBitmap, Common::SeekableReadStr
 
 	// Use the message font loaded during initialization (DIHIFONT.NUT)
 	if (!_rebelMsgFont) {
-		debugC(DEBUG_INSANE, "Rebel2 Opcode 9: No message font loaded (_rebelMsgFont is null)");
+		debugC(DEBUG_INSANE, "Opcode 9: No message font loaded (_rebelMsgFont is null)");
 		return;
 	}
 
@@ -2655,7 +2655,7 @@ void InsaneRebel2::iactRebel2Opcode9(byte *renderBitmap, Common::SeekableReadStr
 		}
 	}
 
-	debugC(DEBUG_INSANE, "Rebel2 Opcode 9: Rendered subtitle at (%d,%d) flags=0x%x clip=(%d,%d,%d,%d)",
+	debugC(DEBUG_INSANE, "Opcode 9: Rendered subtitle at (%d,%d) flags=0x%x clip=(%d,%d,%d,%d)",
 		posX, posY, textFlags, clipX, clipY, clipW, clipH);
 }
 
@@ -2675,7 +2675,7 @@ void InsaneRebel2::enemyUpdate(byte *renderBitmap, Common::SeekableReadStream &b
 
 	// If disabled, stop processing this object
 	if (disabled) {
-		// debugC(DEBUG_INSANE, "Rebel2: Skipping Opcode 4 for disabled enemy ID=%d", enemyId);
+		// debugC(DEBUG_INSANE, "Skipping Opcode 4 for disabled enemy ID=%d", enemyId);
 		return;
 	}
 
@@ -2691,7 +2691,7 @@ void InsaneRebel2::enemyUpdate(byte *renderBitmap, Common::SeekableReadStream &b
 	// In the original (FUN_004028C5/FUN_0041E7C2): sVar5/sVar2 = *(short *)(*local + 6)
 	// This maps to par4 (userId field). Used for DAT_0047ab98 wave state bitmask:
 	//   DAT_0047ab98 |= 1 << (type & 0x1f)
-	debugC(DEBUG_INSANE, "Rebel2 Opcode4: handler=%d enemyId=%d par2=%d par3=%d par4/type=%d pos=(%d,%d) size=(%d,%d)",
+	debugC(DEBUG_INSANE, "Opcode4: handler=%d enemyId=%d par2=%d par3=%d par4/type=%d pos=(%d,%d) size=(%d,%d)",
 		_rebelHandler, enemyId, par2, par3, par4, x, y, w, h);
 
 	bool found = false;
diff --git a/engines/scumm/insane/rebel2/levels.cpp b/engines/scumm/insane/rebel2/levels.cpp
index ea7e586e033..57e786378cf 100644
--- a/engines/scumm/insane/rebel2/levels.cpp
+++ b/engines/scumm/insane/rebel2/levels.cpp
@@ -154,7 +154,7 @@ void InsaneRebel2::runGame() {
 // We skip the easter eggs and play both O_OPEN_A + O_OPEN_B unconditionally.
 //
 void InsaneRebel2::playIntroSequence() {
-	debugC(DEBUG_INSANE, "Rebel2: Playing intro sequence");
+	debugC(DEBUG_INSANE, "Playing intro sequence");
 
 	_gameState = kStateIntro;
 	_menuInputActive = false;
@@ -163,7 +163,7 @@ void InsaneRebel2::playIntroSequence() {
 
 	// Play main intro (OPEN/O_OPEN_A.SAN)
 	// Original: FUN_0041f4d0("OPEN/O_OPEN_A.SAN", 0x28, 0xffff, 0xffff, 0)
-	debugC(DEBUG_INSANE, "Rebel2: Playing main intro (O_OPEN_A.SAN)");
+	debugC(DEBUG_INSANE, "Playing main intro (O_OPEN_A.SAN)");
 	splayer->setCurVideoFlags(0x28);
 	splayer->play("OPEN/O_OPEN_A.SAN", 15);
 
@@ -173,7 +173,7 @@ void InsaneRebel2::playIntroSequence() {
 	// Play additional intro (OPEN/O_OPEN_B.SAN)
 	// Original: conditional on DAT_0047ab45 || DAT_0047ab47
 	// We play unconditionally (matches "Continue Intro" menu behavior)
-	debugC(DEBUG_INSANE, "Rebel2: Playing additional intro (O_OPEN_B.SAN)");
+	debugC(DEBUG_INSANE, "Playing additional intro (O_OPEN_B.SAN)");
 	splayer->setCurVideoFlags(0x28);
 	splayer->play("OPEN/O_OPEN_B.SAN", 15);
 }
@@ -181,7 +181,7 @@ void InsaneRebel2::playIntroSequence() {
 // playMissionBriefing -- Mission briefing screen (FUN_00415CF8).
 void InsaneRebel2::playMissionBriefing() {
 
-	debugC(DEBUG_INSANE, "Rebel2: Playing mission briefing");
+	debugC(DEBUG_INSANE, "Playing mission briefing");
 
 	SmushPlayer *splayer = ((ScummEngine_v7 *)_vm)->_splayer;
 	splayer->setCurVideoFlags(0x08);  // Briefing mode flag
@@ -268,7 +268,7 @@ void InsaneRebel2::playLevelBegin(int levelId) {
 	Common::String prefix = getLevelPrefix(levelId);
 	Common::String filename = Common::String::format("%s/%sBEG.SAN", dir.c_str(), prefix.c_str());
 
-	debugC(DEBUG_INSANE, "Rebel2: Playing level %d beginning: %s", levelId, filename.c_str());
+	debugC(DEBUG_INSANE, "Playing level %d beginning: %s", levelId, filename.c_str());
 
 	if (levelId >= 1 && levelId <= 15 && levelTextParams[levelId].textID >= 0) {
 		const TextOverlayParams &p = levelTextParams[levelId];
@@ -292,7 +292,7 @@ void InsaneRebel2::playLevelEnd(int levelId) {
 	Common::String prefix = getLevelPrefix(levelId);
 	Common::String filename = Common::String::format("%s/%sEND.SAN", dir.c_str(), prefix.c_str());
 
-	debugC(DEBUG_INSANE, "Rebel2: Playing level %d end: %s", levelId, filename.c_str());
+	debugC(DEBUG_INSANE, "Playing level %d end: %s", levelId, filename.c_str());
 
 	SmushPlayer *splayer = ((ScummEngine_v7 *)_vm)->_splayer;
 	// Original: FUN_00417327 adds | 8, so flags = 0x20 | 0x08 = 0x28
@@ -313,7 +313,7 @@ void InsaneRebel2::playLevelRetry(int levelId) {
 	Common::String prefix = getLevelPrefix(levelId);
 	Common::String filename = Common::String::format("%s/%sRETRY.SAN", dir.c_str(), prefix.c_str());
 
-	debugC(DEBUG_INSANE, "Rebel2: Playing level %d retry: %s", levelId, filename.c_str());
+	debugC(DEBUG_INSANE, "Playing level %d retry: %s", levelId, filename.c_str());
 
 	SmushPlayer *splayer = ((ScummEngine_v7 *)_vm)->_splayer;
 	// Original: FUN_00417168 adds | 8, so flags = 0x20 | 0x08 = 0x28
@@ -334,7 +334,7 @@ void InsaneRebel2::playLevelGameOver(int levelId) {
 	Common::String prefix = getLevelPrefix(levelId);
 	Common::String filename = Common::String::format("%s/%sOVER.SAN", dir.c_str(), prefix.c_str());
 
-	debugC(DEBUG_INSANE, "Rebel2: Playing level %d game over: %s", levelId, filename.c_str());
+	debugC(DEBUG_INSANE, "Playing level %d game over: %s", levelId, filename.c_str());
 
 	SmushPlayer *splayer = ((ScummEngine_v7 *)_vm)->_splayer;
 	// Original: FUN_00417ab2 adds | 8, so flags = 0x20 | 0x08 = 0x28
@@ -355,7 +355,7 @@ void InsaneRebel2::playLevelGameOver(int levelId) {
 //
 void InsaneRebel2::playEndingSequence() {
 
-	debugC(DEBUG_INSANE, "Rebel2: Playing ending sequence (difficulty=%d)", _difficulty);
+	debugC(DEBUG_INSANE, "Playing ending sequence (difficulty=%d)", _difficulty);
 
 	// Switch to gameplay state to stop menu overlay rendering
 	_gameState = kStateGameplay;
@@ -392,7 +392,7 @@ void InsaneRebel2::playEndingSequence() {
 // This is the credits accessible from the main menu, NOT the ending credits.
 void InsaneRebel2::playCreditsSequence() {
 
-	debugC(DEBUG_INSANE, "Rebel2: Playing menu credits");
+	debugC(DEBUG_INSANE, "Playing menu credits");
 	resetVideoAudio();
 
 	SmushPlayer *splayer = ((ScummEngine_v7 *)_vm)->_splayer;
@@ -412,7 +412,7 @@ void InsaneRebel2::centerGameplayAim() {
 	purgeRebel2GameplayInputEvents(eventMan);
 	_gameplayMouseSettleUntil = _vm->_system->getMillis() + kRebel2GameplayMouseSettleMs;
 
-	debugC(DEBUG_INSANE, "Rebel2 centerGameplayAim: mouse=(%d,%d) joystick=(%d,%d) gamepadAim=%d settleUntil=%u",
+	debugC(DEBUG_INSANE, "centerGameplayAim: mouse=(%d,%d) joystick=(%d,%d) gamepadAim=%d settleUntil=%u",
 		_vm->_mouse.x, _vm->_mouse.y,
 		_joystickAxisX, _joystickAxisY, _gamepadAimActive ? 1 : 0,
 		_gameplayMouseSettleUntil);
@@ -439,7 +439,7 @@ void InsaneRebel2::warpGameplayMouseNow(int x, int y) {
 // runLevel -- Main level dispatcher, calls per-level handlers.
 int InsaneRebel2::runLevel(int levelId) {
 
-	debugC(DEBUG_INSANE, "Rebel2: Starting level %d", levelId);
+	debugC(DEBUG_INSANE, "Starting level %d", levelId);
 
 	// Validate level ID
 	if (levelId < 1 || levelId > 15) {
@@ -755,7 +755,7 @@ void InsaneRebel2::playLevelDeathVariant(int levelId, int phase, int frame) {
 		filename = Common::String::format("%s/%sDIE_%s.SAN", dir.c_str(), prefix.c_str(), variant.c_str());
 	}
 
-	debugC(DEBUG_INSANE, "Rebel2: Playing death video: %s (phase=%d, frame=%d)", filename.c_str(), phase, frame);
+	debugC(DEBUG_INSANE, "Playing death video: %s (phase=%d, frame=%d)", filename.c_str(), phase, frame);
 
 	SmushPlayer *splayer = ((ScummEngine_v7 *)_vm)->_splayer;
 	// Original: FUN_00417168 adds | 8, so flags = 0x20 | 0x08 = 0x28
@@ -784,7 +784,7 @@ void InsaneRebel2::playLevelRetryVariant(int levelId, int phase) {
 		filename = Common::String::format("%s/%sRETRY.SAN", dir.c_str(), prefix.c_str());
 	}
 
-	debugC(DEBUG_INSANE, "Rebel2: Playing retry video: %s (phase=%d)", filename.c_str(), phase);
+	debugC(DEBUG_INSANE, "Playing retry video: %s (phase=%d)", filename.c_str(), phase);
 
 	SmushPlayer *splayer = ((ScummEngine_v7 *)_vm)->_splayer;
 	// Original: FUN_00417168 adds | 8, so flags = 0x20 | 0x08 = 0x28
diff --git a/engines/scumm/insane/rebel2/menu.cpp b/engines/scumm/insane/rebel2/menu.cpp
index e40c088534d..ad27d5c391d 100644
--- a/engines/scumm/insane/rebel2/menu.cpp
+++ b/engines/scumm/insane/rebel2/menu.cpp
@@ -84,7 +84,7 @@ void InsaneRebel2::updateMenuVirtualKeyboard() {
 
 // unlockAllChapters -- Debug mode unlock (FUN_00415CF8 lines 60-71, DAT_0047ab34=='d').
 void InsaneRebel2::unlockAllChapters() {
-	debugC(DEBUG_INSANE, "Rebel2: Unlocking all chapters for testing");
+	debugC(DEBUG_INSANE, "Unlocking all chapters for testing");
 	for (int i = 0; i < 16; i++) {
 		_chapterUnlocked[i] = true;
 		_levelUnlocked[i] = true;
@@ -106,7 +106,7 @@ Common::String InsaneRebel2::getRandomMenuVideo() {
 
 	// Map 0-14 to A-O (case 0/default = A, 1 = B, etc.)
 	char letter = 'A' + variant;
-	debugC(DEBUG_INSANE, "Rebel2: Selected menu variant %c", letter);
+	debugC(DEBUG_INSANE, "Selected menu variant %c", letter);
 	return Common::String::format("OPEN/O_MENU_%c.SAN", letter);
 }
 
@@ -595,7 +595,7 @@ void InsaneRebel2::showPauseOverlay() {
 // Returns kMenuNewGame, kMenuResumeDemo, or kMenuQuit.
 int InsaneRebel2::runMainMenu() {
 
-	debugC(DEBUG_INSANE, "Rebel2: Entering main menu");
+	debugC(DEBUG_INSANE, "Entering main menu");
 
 	resetMenu();
 	_gameState = kStateMainMenu;
@@ -617,7 +617,7 @@ int InsaneRebel2::runMainMenu() {
 
 		// Select and play a random menu video
 		Common::String menuVideo = getRandomMenuVideo();
-		debugC(DEBUG_INSANE, "Rebel2: Playing menu video: %s", menuVideo.c_str());
+		debugC(DEBUG_INSANE, "Playing menu video: %s", menuVideo.c_str());
 
 		// Set video flags for menu (0x20 = intro/menu flag)
 		// This tells procPostRendering we're in menu mode
@@ -635,7 +635,7 @@ int InsaneRebel2::runMainMenu() {
 		}
 
 		if (_menuInactivityTimedOut) {
-			debugC(DEBUG_INSANE, "Rebel2: Main menu inactivity - resuming intro/demo loop");
+			debugC(DEBUG_INSANE, "Main menu inactivity - resuming intro/demo loop");
 			_menuInactivityTimedOut = false;
 			_menuInputActive = false;
 			return kMenuResumeDemo;
@@ -652,7 +652,7 @@ int InsaneRebel2::runMainMenu() {
 		_menuSelectionConfirmed = false;
 
 		// A selection was made - process it
-		debugC(DEBUG_INSANE, "Rebel2: Menu video ended with selection=%d", _menuSelection);
+		debugC(DEBUG_INSANE, "Menu video ended with selection=%d", _menuSelection);
 
 		// Process the menu result based on current selection
 		// Menu items matching GAME.TRS indices 11-17 (FUN_004147B2):
@@ -665,34 +665,34 @@ int InsaneRebel2::runMainMenu() {
 		//   case 6 (TRS 17): Return to Launcher -> quit, returns 0
 		switch (_menuSelection) {
 		case 0:  // Start Game -> go to pilot selection
-			debugC(DEBUG_INSANE, "Rebel2: Start Game selected - going to pilot selection");
+			debugC(DEBUG_INSANE, "Start Game selected - going to pilot selection");
 			_gameState = kStatePilotSelect;
 			_menuInputActive = false;
 			return kMenuNewGame;  // Return 2 (kMenuNewGame)
 
 		case 1:  // Options -> show options menu (FUN_00416787)
-			debugC(DEBUG_INSANE, "Rebel2: Options selected");
+			debugC(DEBUG_INSANE, "Options selected");
 			showOptionsMenu();
 			break;
 
 		case 2:  // Calibrate Joystick
-			debugC(DEBUG_INSANE, "Rebel2: Calibrate Joystick selected - no-op for modern joystick support");
+			debugC(DEBUG_INSANE, "Calibrate Joystick selected - no-op for modern joystick support");
 			// Modern controller support uses live keymapper actions; no explicit
 			// joystick calibration flow is required here.
 			break;
 
 		case 3:  // Continue Intro -> return to intro/demo loop
-			debugC(DEBUG_INSANE, "Rebel2: Continue Intro selected - resuming intro/demo loop");
+			debugC(DEBUG_INSANE, "Continue Intro selected - resuming intro/demo loop");
 			_menuInputActive = false;
 			return kMenuResumeDemo;
 
 		case 4:  // Show Top Pilots -> high score display (FUN_00420116(-1))
-			debugC(DEBUG_INSANE, "Rebel2: Show Top Pilots selected");
+			debugC(DEBUG_INSANE, "Show Top Pilots selected");
 			showTopPilots();
 			break;
 
 		case 5:  // Show Credits -> play credits video
-			debugC(DEBUG_INSANE, "Rebel2: Show Credits selected - playing O_CREDIT.SAN");
+			debugC(DEBUG_INSANE, "Show Credits selected - playing O_CREDIT.SAN");
 			_gameState = kStateCredits;
 			_menuInputActive = false;
 			splayer->setCurVideoFlags(0x20);
@@ -703,12 +703,12 @@ int InsaneRebel2::runMainMenu() {
 			break;
 
 		case 6:  // Return to Launcher -> quit game
-			debugC(DEBUG_INSANE, "Rebel2: Return to Launcher selected");
+			debugC(DEBUG_INSANE, "Return to Launcher selected");
 			_menuInputActive = false;
 			return kMenuQuit;
 
 		default:
-			debugC(DEBUG_INSANE, "Rebel2: Unknown menu selection %d", _menuSelection);
+			debugC(DEBUG_INSANE, "Unknown menu selection %d", _menuSelection);
 			break;
 		}
 	}
@@ -725,7 +725,7 @@ int InsaneRebel2::runMainMenu() {
 // Returns kChapterSelectPlay, kChapterSelectBack, or kChapterSelectQuit.
 int InsaneRebel2::runChapterSelect() {
 
-	debugC(DEBUG_INSANE, "Rebel2: Entering chapter selection (FUN_00415CF8)");
+	debugC(DEBUG_INSANE, "Entering chapter selection (FUN_00415CF8)");
 
 	// Enable menu input capture
 	_menuInputActive = true;
@@ -769,7 +769,7 @@ int InsaneRebel2::runChapterSelect() {
 	while (!_vm->shouldQuit()) {
 		_vm->_smushVideoShouldFinish = false;
 
-		debugC(DEBUG_INSANE, "Rebel2: Playing chapter select background: OPEN/O_LEVEL.SAN");
+		debugC(DEBUG_INSANE, "Playing chapter select background: OPEN/O_LEVEL.SAN");
 
 		// Flags: 0x20 (overlay/menu rendering) | 0x08 (preserve buffer, suppress
 		// AHDR speed override). Matches original FUN_0041f4d0 parameter 8.
@@ -795,12 +795,12 @@ int InsaneRebel2::runChapterSelect() {
 		_vm->_smushVideoShouldFinish = false;
 		_menuSelectionConfirmed = false;
 
-		debugC(DEBUG_INSANE, "Rebel2: Chapter selection made: %d", _chapterSelection);
+		debugC(DEBUG_INSANE, "Chapter selection made: %d", _chapterSelection);
 
 		// Process chapter selection (lines 134-236 of FUN_00415CF8)
 		if (_chapterSelection == 16) {
 			// BACK selected (index 16 = 17th item)
-			debugC(DEBUG_INSANE, "Rebel2: BACK to main menu selected");
+			debugC(DEBUG_INSANE, "BACK to main menu selected");
 			setVirtualKeyboardVisible(false);
 			_menuInputActive = false;
 			return kChapterSelectBack;
@@ -810,7 +810,7 @@ int InsaneRebel2::runChapterSelect() {
 			if (_chapterUnlocked[_chapterSelection]) {
 				// Unlocked chapter — play it
 				_selectedChapter = _chapterSelection;
-				debugC(DEBUG_INSANE, "Rebel2: Chapter %d selected (unlocked)", _selectedChapter + 1);
+				debugC(DEBUG_INSANE, "Chapter %d selected (unlocked)", _selectedChapter + 1);
 				setVirtualKeyboardVisible(false);
 				_menuInputActive = false;
 				return kChapterSelectPlay;
@@ -834,13 +834,13 @@ int InsaneRebel2::runChapterSelect() {
 					setBit(16 - _chapterSelection);
 					_passwordInput.clear();
 					updateMenuVirtualKeyboard();
-					debugC(DEBUG_INSANE, "Rebel2: Chapter %d unlocked via password", _chapterSelection + 1);
+					debugC(DEBUG_INSANE, "Chapter %d unlocked via password", _chapterSelection + 1);
 					continue;  // Re-render with updated unlock state
 				}
 			}
 			// Wrong password or no password entered
 			_passwordInput.clear();
-			debugC(DEBUG_INSANE, "Rebel2: Password rejected for chapter %d", _chapterSelection + 1);
+			debugC(DEBUG_INSANE, "Password rejected for chapter %d", _chapterSelection + 1);
 		}
 	}
 
@@ -1222,7 +1222,7 @@ void InsaneRebel2::drawChapterSelectOverlay(byte *renderBitmap, int pitch, int w
 // Returns kLevelSelectPlay, kLevelSelectBack, or kLevelSelectQuit.
 int InsaneRebel2::runLevelSelect() {
 
-	debugC(DEBUG_INSANE, "Rebel2: Entering pilot selection (FUN_00414A41), %d pilots loaded", _numPilots);
+	debugC(DEBUG_INSANE, "Entering pilot selection (FUN_00414A41), %d pilots loaded", _numPilots);
 
 	_menuInputActive = true;
 	while (!_menuEventQueue.empty())
@@ -1303,7 +1303,7 @@ int InsaneRebel2::runLevelSelect() {
 					copyPilot(pilotIndex);
 					savePilots();
 					_levelSelection = pilotIndex;
-					debugC(DEBUG_INSANE, "Rebel2: Copied pilot %d, now %d pilots", pilotIndex, _numPilots);
+					debugC(DEBUG_INSANE, "Copied pilot %d, now %d pilots", pilotIndex, _numPilots);
 				} else {
 					deletePilot(pilotIndex);
 					savePilots();
@@ -1312,7 +1312,7 @@ int InsaneRebel2::runLevelSelect() {
 					} else {
 						_levelSelection = 0;
 					}
-					debugC(DEBUG_INSANE, "Rebel2: Deleted pilot %d, %d remaining", pilotIndex, _numPilots);
+					debugC(DEBUG_INSANE, "Deleted pilot %d, %d remaining", pilotIndex, _numPilots);
 				}
 			}
 			_pilotMenuMode = kPilotModeSelect;
@@ -1322,7 +1322,7 @@ int InsaneRebel2::runLevelSelect() {
 		}
 
 		// --- Normal pilot menu selection ---
-		debugC(DEBUG_INSANE, "Rebel2: Pilot selection: %d (numPilots=%d)", _levelSelection, _numPilots);
+		debugC(DEBUG_INSANE, "Pilot selection: %d (numPilots=%d)", _levelSelection, _numPilots);
 
 		if (_levelSelection < _numPilots) {
 			// Existing pilot selected — activate and go to chapter select
@@ -1334,7 +1334,7 @@ int InsaneRebel2::runLevelSelect() {
 				_chapterUnlocked[i] = _debugUnlockAll || (_pilots[_activePilot].damage[i] < 0xFF);
 			}
 
-			debugC(DEBUG_INSANE, "Rebel2: Pilot '%s' selected (slot %d, difficulty %d)",
+			debugC(DEBUG_INSANE, "Pilot '%s' selected (slot %d, difficulty %d)",
 			      _pilots[_activePilot].name, _activePilot, _difficulty);
 			setVirtualKeyboardVisible(false);
 			_menuInputActive = false;
@@ -1349,7 +1349,7 @@ int InsaneRebel2::runLevelSelect() {
 				_pilotMenuMode = kPilotModeNameInput;
 				_levelItemCount = _numPilots + 4;
 				updateMenuVirtualKeyboard();
-				debugC(DEBUG_INSANE, "Rebel2: NEW PILOT - entering name for slot %d", newIdx);
+				debugC(DEBUG_INSANE, "NEW PILOT - entering name for slot %d", newIdx);
 			}
 			continue;
 
@@ -1359,7 +1359,7 @@ int InsaneRebel2::runLevelSelect() {
 				_pilotMenuMode = kPilotModeCopySelect;
 				_levelSelection = 0;
 				_levelItemCount = _numPilots;
-				debugC(DEBUG_INSANE, "Rebel2: COPY PILOT - selecting source");
+				debugC(DEBUG_INSANE, "COPY PILOT - selecting source");
 			}
 			continue;
 
@@ -1369,7 +1369,7 @@ int InsaneRebel2::runLevelSelect() {
 				_pilotMenuMode = kPilotModeDeleteSelect;
 				_levelSelection = 0;
 				_levelItemCount = _numPilots;
-				debugC(DEBUG_INSANE, "Rebel2: DELETE PILOT - selecting target");
+				debugC(DEBUG_INSANE, "DELETE PILOT - selecting target");
 			}
 			continue;
 
@@ -1731,7 +1731,7 @@ void InsaneRebel2::insertRanking(const char *name, int32 score, int32 rating,
 }
 
 void InsaneRebel2::showTopPilots() {
-	debugC(DEBUG_INSANE, "Rebel2: Showing Top Pilots screen (FUN_00420116)");
+	debugC(DEBUG_INSANE, "Showing Top Pilots screen (FUN_00420116)");
 
 	_menuInputActive = true;
 	while (!_menuEventQueue.empty())
@@ -1754,7 +1754,7 @@ void InsaneRebel2::showTopPilots() {
 	_gameState = kStateMainMenu;
 	_menuInputActive = true;
 
-	debugC(DEBUG_INSANE, "Rebel2: Top Pilots screen finished");
+	debugC(DEBUG_INSANE, "Top Pilots screen finished");
 }
 
 void InsaneRebel2::drawTopPilotsOverlay(byte *renderBitmap, int pitch, int width, int height) {
@@ -1838,7 +1838,7 @@ void InsaneRebel2::drawTopPilotsOverlay(byte *renderBitmap, int pitch, int width
 
 // showOptionsMenu -- Options menu loop (FUN_00416787).
 void InsaneRebel2::showOptionsMenu() {
-	debugC(DEBUG_INSANE, "Rebel2: Showing Options menu (FUN_00416787)");
+	debugC(DEBUG_INSANE, "Showing Options menu (FUN_00416787)");
 
 	_menuInputActive = true;
 	while (!_menuEventQueue.empty())
@@ -1864,7 +1864,7 @@ void InsaneRebel2::showOptionsMenu() {
 	_gameState = kStateMainMenu;
 	_menuInputActive = true;
 
-	debugC(DEBUG_INSANE, "Rebel2: Options menu finished");
+	debugC(DEBUG_INSANE, "Options menu finished");
 }
 
 int InsaneRebel2::processOptionsInput() {
diff --git a/engines/scumm/insane/rebel2/rebel.cpp b/engines/scumm/insane/rebel2/rebel.cpp
index 3b98f147377..df84162a961 100644
--- a/engines/scumm/insane/rebel2/rebel.cpp
+++ b/engines/scumm/insane/rebel2/rebel.cpp
@@ -689,7 +689,7 @@ bool InsaneRebel2::notifyEvent(const Common::Event &event) {
 			// Retail DAT_0047ab60: Yoda-mode Movie Mode skips playable
 			// sections and keeps the story/cutscene sequence moving.
 			_rebelMovieMode = !_rebelMovieMode;
-			debugC(DEBUG_INSANE, "Rebel2: Movie mode %s", _rebelMovieMode ? "enabled" : "disabled");
+			debugC(DEBUG_INSANE, "Movie mode %s", _rebelMovieMode ? "enabled" : "disabled");
 			if (_rebelMovieMode && splayer && _gameState == kStateGameplay && _rebelHandler != 0)
 				_vm->_smushVideoShouldFinish = true;
 			return true;
@@ -698,7 +698,7 @@ bool InsaneRebel2::notifyEvent(const Common::Event &event) {
 			// Retail DAT_0047ab64: Yoda-mode Auto Play makes gameplay
 			// computer controlled.
 			_rebelAutoPlay = !_rebelAutoPlay;
-			debugC(DEBUG_INSANE, "Rebel2: Auto play %s", _rebelAutoPlay ? "enabled" : "disabled");
+			debugC(DEBUG_INSANE, "Auto play %s", _rebelAutoPlay ? "enabled" : "disabled");
 			return true;
 
 		default:
@@ -731,7 +731,7 @@ bool InsaneRebel2::notifyEvent(const Common::Event &event) {
 					_gameplayMouseSettleUntil = now + kRA2Handler7MouseSettleExtendMs;
 					warpGameplayMouseNow(recenter.x, recenter.y);
 
-					debugC(DEBUG_INSANE, "Rebel2 H7 mouse settle: suppress pos=(%d,%d) rel=(%d,%d) current=(%d,%d) until=%u",
+					debugC(DEBUG_INSANE, "H7 mouse settle: suppress pos=(%d,%d) rel=(%d,%d) current=(%d,%d) until=%u",
 						event.mouse.x, event.mouse.y, event.relMouse.x, event.relMouse.y,
 						_vm->_mouse.x, _vm->_mouse.y, _gameplayMouseSettleUntil);
 					return true;
@@ -741,7 +741,7 @@ bool InsaneRebel2::notifyEvent(const Common::Event &event) {
 			_gameplayMouseSettleUntil = 0;
 		}
 
-		debugC(DEBUG_INSANE, "Rebel2 H7 mouse event: pos=(%d,%d) rel=(%d,%d) gamepadAim=%d menuInput=%d",
+		debugC(DEBUG_INSANE, "H7 mouse event: pos=(%d,%d) rel=(%d,%d) gamepadAim=%d menuInput=%d",
 			event.mouse.x, event.mouse.y, event.relMouse.x, event.relMouse.y,
 			_gamepadAimActive ? 1 : 0, _menuInputActive ? 1 : 0);
 	}
@@ -901,11 +901,11 @@ bool InsaneRebel2::notifyEvent(const Common::Event &event) {
 			}
 
 			if (_gameState == kStateGameplay && _rebelHandler != 0) {
-				debugC(DEBUG_INSANE, "Rebel2: Skip/back action ignored during gameplay");
+				debugC(DEBUG_INSANE, "Skip/back action ignored during gameplay");
 				return true;
 			}
 
-			debugC(DEBUG_INSANE, "Rebel2: Skip/back action - skipping video");
+			debugC(DEBUG_INSANE, "Skip/back action - skipping video");
 			_vm->_smushVideoShouldFinish = true;
 			return true;
 		}
@@ -915,7 +915,7 @@ bool InsaneRebel2::notifyEvent(const Common::Event &event) {
 				return true;
 
 			if (_menuInputActive && menuState) {
-				debugC(DEBUG_INSANE, "Rebel2: Back/menu action in menu - opening ScummVM menu");
+				debugC(DEBUG_INSANE, "Back/menu action in menu - opening ScummVM menu");
 				openMenuMainMenu(splayer);
 				return true;
 			}
@@ -924,23 +924,23 @@ bool InsaneRebel2::notifyEvent(const Common::Event &event) {
 				if (_lastGameplayMenuCloseTime != 0) {
 					const uint32 elapsedSinceMenuClose = _vm->_system->getMillis() - _lastGameplayMenuCloseTime;
 					if (elapsedSinceMenuClose < 500) {
-						debugC(DEBUG_INSANE, "Rebel2: Ignoring repeated gameplay menu action (%u ms)", elapsedSinceMenuClose);
+						debugC(DEBUG_INSANE, "Ignoring repeated gameplay menu action (%u ms)", elapsedSinceMenuClose);
 						return true;
 					}
 				}
 
-				debugC(DEBUG_INSANE, "Rebel2: Back/menu action during gameplay - opening ScummVM menu");
+				debugC(DEBUG_INSANE, "Back/menu action during gameplay - opening ScummVM menu");
 				openGameplayMainMenu(splayer);
 				return true;
 			}
 
-			debugC(DEBUG_INSANE, "Rebel2: Back/menu action - skipping video");
+			debugC(DEBUG_INSANE, "Back/menu action - skipping video");
 			_vm->_smushVideoShouldFinish = true;
 			return true;
 		}
 
 		if (pressed && splayer && splayer->_paused && _gameState == kStateGameplay) {
-			debugC(DEBUG_INSANE, "Rebel2: Joystick action while paused - unpausing");
+			debugC(DEBUG_INSANE, "Joystick action while paused - unpausing");
 			if (_pauseOverlayActive) {
 				_vm->_system->getPaletteManager()->setPalette(_savedPausePalette, 0, 256);
 				_pauseOverlayActive = false;
@@ -1032,11 +1032,11 @@ bool InsaneRebel2::notifyEvent(const Common::Event &event) {
 			(event.type == Common::EVENT_MAINMENU ||
 			 (event.type == Common::EVENT_KEYDOWN && event.kbd.keycode == Common::KEYCODE_ESCAPE))) {
 		if (event.type == Common::EVENT_KEYDOWN && event.kbdRepeat) {
-			debugC(DEBUG_INSANE, "Rebel2: Ignoring repeated ESC keydown in menu");
+			debugC(DEBUG_INSANE, "Ignoring repeated ESC keydown in menu");
 			return true;
 		}
 
-		debugC(DEBUG_INSANE, "Rebel2: Opening ScummVM menu from menu state");
+		debugC(DEBUG_INSANE, "Opening ScummVM menu from menu state");
 		openMenuMainMenu(splayer);
 		return true;
 	}
@@ -1051,14 +1051,14 @@ bool InsaneRebel2::notifyEvent(const Common::Event &event) {
 	if (gameplayMenuTrigger && _gameState == kStateGameplay && _lastGameplayMenuCloseTime != 0) {
 		const uint32 elapsedSinceMenuClose = _vm->_system->getMillis() - _lastGameplayMenuCloseTime;
 		if (elapsedSinceMenuClose < 500) {
-			debugC(DEBUG_INSANE, "Rebel2: Ignoring repeated gameplay menu trigger (%u ms)", elapsedSinceMenuClose);
+			debugC(DEBUG_INSANE, "Ignoring repeated gameplay menu trigger (%u ms)", elapsedSinceMenuClose);
 			return true;
 		}
 	}
 
 	if (event.type == Common::EVENT_MAINMENU && splayer &&
 			_gameState == kStateGameplay && _rebelHandler != 0) {
-		debugC(DEBUG_INSANE, "Rebel2: Main menu action during gameplay - opening ScummVM menu");
+		debugC(DEBUG_INSANE, "Main menu action during gameplay - opening ScummVM menu");
 		openGameplayMainMenu(splayer);
 		return true;
 	}
@@ -1068,7 +1068,7 @@ bool InsaneRebel2::notifyEvent(const Common::Event &event) {
 		// leaving the key repeat source to synthesize another ESC immediately after
 		// returning to gameplay. Treat repeats as part of the original press.
 		if (event.kbd.keycode == Common::KEYCODE_ESCAPE && event.kbdRepeat) {
-			debugC(DEBUG_INSANE, "Rebel2: Ignoring repeated ESC keydown");
+			debugC(DEBUG_INSANE, "Ignoring repeated ESC keydown");
 			return true;
 		}
 		if (_menuInputActive && event.kbdRepeat &&
@@ -1076,14 +1076,14 @@ bool InsaneRebel2::notifyEvent(const Common::Event &event) {
 				 event.kbd.keycode == Common::KEYCODE_DOWN ||
 				 event.kbd.keycode == Common::KEYCODE_LEFT ||
 				 event.kbd.keycode == Common::KEYCODE_RIGHT)) {
-			debugC(DEBUG_INSANE, "Rebel2: Ignoring repeated menu direction keydown");
+			debugC(DEBUG_INSANE, "Ignoring repeated menu direction keydown");
 			return true;
 		}
 
 		// When paused during gameplay, ANY key unpauses (FUN_405A21 line 360-365).
 		// ESC additionally opens the ScummVM menu (original: quit key exits level).
 		if (splayer && splayer->_paused && _gameState == kStateGameplay) {
-			debugC(DEBUG_INSANE, "Rebel2: Key pressed while paused - unpausing");
+			debugC(DEBUG_INSANE, "Key pressed while paused - unpausing");
 			// Restore the original palette saved by showPauseOverlay
 			if (_pauseOverlayActive) {
 				_vm->_system->getPaletteManager()->setPalette(_savedPausePalette, 0, 256);
@@ -1091,7 +1091,7 @@ bool InsaneRebel2::notifyEvent(const Common::Event &event) {
 			}
 			splayer->unpause();
 			if (event.kbd.keycode == Common::KEYCODE_ESCAPE && _rebelHandler != 0) {
-				debugC(DEBUG_INSANE, "Rebel2: ESC during pause - opening ScummVM menu");
+				debugC(DEBUG_INSANE, "ESC during pause - opening ScummVM menu");
 				openGameplayMainMenu(splayer);
 			}
 			return true;
@@ -1106,11 +1106,11 @@ bool InsaneRebel2::notifyEvent(const Common::Event &event) {
 			if (splayer) {
 				if (_gameState == kStateGameplay && _rebelHandler != 0) {
 					// During active gameplay (handler != 0): pause and open ScummVM menu.
-					debugC(DEBUG_INSANE, "Rebel2: ESC pressed during gameplay - opening ScummVM menu");
+					debugC(DEBUG_INSANE, "ESC pressed during gameplay - opening ScummVM menu");
 					openGameplayMainMenu(splayer);
 				} else {
 					// During cutscenes/intros/mission briefings: skip video
-					debugC(DEBUG_INSANE, "Rebel2: ESC pressed - skipping video");
+					debugC(DEBUG_INSANE, "ESC pressed - skipping video");
 					_vm->_smushVideoShouldFinish = true;
 				}
 				return true;  // Consume the event
@@ -1121,7 +1121,7 @@ bool InsaneRebel2::notifyEvent(const Common::Event &event) {
 			// SPACE pauses during gameplay (FUN_405A21).
 			// Unpausing is handled above (any key while paused).
 			if (splayer && _gameState == kStateGameplay && !splayer->_paused) {
-				debugC(DEBUG_INSANE, "Rebel2: SPACE pressed - pausing");
+				debugC(DEBUG_INSANE, "SPACE pressed - pausing");
 				splayer->pause();
 				showPauseOverlay();
 				return true;
@@ -1135,7 +1135,7 @@ bool InsaneRebel2::notifyEvent(const Common::Event &event) {
 			    _rebelHandler != 0 &&
 			    event.kbd.hasFlags(Common::KBD_SHIFT)) {
 				_skipSectionRequested = true;
-				debugC(DEBUG_INSANE, "Rebel2: Shift+S pressed - requesting gameplay section skip");
+				debugC(DEBUG_INSANE, "Shift+S pressed - requesting gameplay section skip");
 				_vm->_smushVideoShouldFinish = true;
 				return true;  // Consume the event
 			}
@@ -1150,10 +1150,10 @@ bool InsaneRebel2::notifyEvent(const Common::Event &event) {
 				if (!_noDamage) {
 					_playerDamage = 255;
 					_playerShield = 0;
-					debugC(DEBUG_INSANE, "Rebel2: Shift+D pressed - forcing player death");
+					debugC(DEBUG_INSANE, "Shift+D pressed - forcing player death");
 					_vm->_smushVideoShouldFinish = true;
 				} else {
-					debugC(DEBUG_INSANE, "Rebel2: Shift+D pressed - no damage mode prevents forced death");
+					debugC(DEBUG_INSANE, "Shift+D pressed - no damage mode prevents forced death");
 				}
 				return true;  // Consume the event
 			}
@@ -1385,13 +1385,13 @@ void InsaneRebel2::addScore(int points) {
 			// Award bonus life
 			_playerLives++;
 			// TODO: Play bonus life sound (FUN_0041189e(5, 0, 0x7f, 0, 0))
-			debugC(DEBUG_INSANE, "Rebel2: BONUS LIFE! Score crossed %d threshold. Lives=%d", threshold, _playerLives);
+			debugC(DEBUG_INSANE, "BONUS LIFE! Score crossed %d threshold. Lives=%d", threshold, _playerLives);
 		}
 	}
 
 	// Add points to score
 	_playerScore += points;
-	debugC(DEBUG_INSANE, "Rebel2: Score +%d = %d", points, _playerScore);
+	debugC(DEBUG_INSANE, "Score +%d = %d", points, _playerScore);
 }
 
 // Render score text to HUD (part of FUN_0041c012)
@@ -1478,7 +1478,7 @@ bool InsaneRebel2::loadPilots() {
 		_numPilots = i + 1;
 	}
 
-	debugC(DEBUG_INSANE, "Rebel2: Loaded %d pilot(s)", _numPilots);
+	debugC(DEBUG_INSANE, "Loaded %d pilot(s)", _numPilots);
 	return _numPilots > 0;
 }
 
@@ -1520,7 +1520,7 @@ bool InsaneRebel2::savePilots() {
 		_vm->_saveFileMan->removeSavefile(filename);
 	}
 
-	debugC(DEBUG_INSANE, "Rebel2: Saved %d pilot(s)", _numPilots);
+	debugC(DEBUG_INSANE, "Saved %d pilot(s)", _numPilots);
 	return ok;
 }
 
@@ -1671,7 +1671,7 @@ int32 InsaneRebel2::processMouse() {
 			mousePos = getGameplayAimPoint();
 		}
 		Common::Point gameplayAim = getGameplayAimPoint();
-		debugC(DEBUG_INSANE, "Rebel2 Click: Mouse=(%d,%d) Target=(%d,%d) Enemies=%d",
+		debugC(DEBUG_INSANE, "Click: Mouse=(%d,%d) Target=(%d,%d) Enemies=%d",
 			gameplayAim.x, gameplayAim.y, mousePos.x, mousePos.y, _enemies.size());
 
 		// Spawn visual shot immediately
@@ -1699,7 +1699,7 @@ int32 InsaneRebel2::processMouse() {
 				// Enemy hit!
 				it->active = false;
 				it->destroyed = true;  // Mark as destroyed so IACT won't re-activate
-				debugC(DEBUG_INSANE, "Rebel2: HIT enemy ID=%d type=%d at (%d,%d) - Rect: (%d,%d)-(%d,%d)",
+				debugC(DEBUG_INSANE, "HIT enemy ID=%d type=%d at (%d,%d) - Rect: (%d,%d)-(%d,%d)",
 					it->id, it->type, mousePos.x, mousePos.y,
 					it->rect.left, it->rect.top, it->rect.right, it->rect.bottom);
 
@@ -1749,7 +1749,7 @@ int32 InsaneRebel2::processMouse() {
 				// This tracks which enemy GROUPS have been killed in this wave
 				if (it->type > 0 && it->type < 32) {
 					_rebelWaveState |= (1 << it->type);
-					debugC(DEBUG_INSANE, "Rebel2: Wave state updated: 0x%x (set bit %d)", _rebelWaveState, it->type);
+					debugC(DEBUG_INSANE, "Wave state updated: 0x%x (set bit %d)", _rebelWaveState, it->type);
 				}
 
 				// Increment kill counter (DAT_0047ab88)
@@ -1766,17 +1766,17 @@ int32 InsaneRebel2::processMouse() {
 					// Slot 2: Enable (Explosion?)
 					if (_rebelLinks[id][2] != 0) {
 						clearBit(_rebelLinks[id][2]);
-						debugC(DEBUG_INSANE, "Rebel2: Enabled dependency Slot 2 (ID=%d) for Parent %d", _rebelLinks[id][2], id);
+						debugC(DEBUG_INSANE, "Enabled dependency Slot 2 (ID=%d) for Parent %d", _rebelLinks[id][2], id);
 					}
 					// Slot 1: Enable (Explosion?)
 					if (_rebelLinks[id][1] != 0) {
 						clearBit(_rebelLinks[id][1]);
-						debugC(DEBUG_INSANE, "Rebel2: Enabled dependency Slot 1 (ID=%d) for Parent %d", _rebelLinks[id][1], id);
+						debugC(DEBUG_INSANE, "Enabled dependency Slot 1 (ID=%d) for Parent %d", _rebelLinks[id][1], id);
 					}
 					// Slot 0: Disable (Shots?)
 					if (_rebelLinks[id][0] != 0) {
 						setBit(_rebelLinks[id][0]);
-						debugC(DEBUG_INSANE, "Rebel2: Disabled dependency Slot 0 (ID=%d) for Parent %d", _rebelLinks[id][0], id);
+						debugC(DEBUG_INSANE, "Disabled dependency Slot 0 (ID=%d) for Parent %d", _rebelLinks[id][0], id);
 					}
 				}
 
@@ -2061,7 +2061,7 @@ void InsaneRebel2::procSKIP(int32 subSize, Common::SeekableReadStream &b) {
 		if (bit1) {
 			_player->_skipNext = true;
 		}
-		debugC(DEBUG_INSANE, "Rebel2 SKIP: single ID=%d bit=%d skip=%d frame=%d", par1, bit1 ? 1 : 0, _player->_skipNext ? 1 : 0, _player->_frame);
+		debugC(DEBUG_INSANE, "SKIP: single ID=%d bit=%d skip=%d frame=%d", par1, bit1 ? 1 : 0, _player->_skipNext ? 1 : 0, _player->_frame);
 	} else {
 		// Dual ID mode: skip if bits are different (XOR logic)
 		bool bit1 = isBitSet(par1);
@@ -2069,7 +2069,7 @@ void InsaneRebel2::procSKIP(int32 subSize, Common::SeekableReadStream &b) {
 		if (bit1 != bit2) {
 			_player->_skipNext = true;
 		}
-		debugC(DEBUG_INSANE, "Rebel2 SKIP: dual ID1=%d(bit=%d) ID2=%d(bit=%d) skip=%d frame=%d", par1, bit1 ? 1 : 0, par2, bit2 ? 1 : 0, _player->_skipNext ? 1 : 0, _player->_frame);
+		debugC(DEBUG_INSANE, "SKIP: dual ID1=%d(bit=%d) ID2=%d(bit=%d) skip=%d frame=%d", par1, bit1 ? 1 : 0, par2, bit2 ? 1 : 0, _player->_skipNext ? 1 : 0, _player->_frame);
 	}
 }
 
diff --git a/engines/scumm/insane/rebel2/render.cpp b/engines/scumm/insane/rebel2/render.cpp
index a33ef1aa849..4256f4e6638 100644
--- a/engines/scumm/insane/rebel2/render.cpp
+++ b/engines/scumm/insane/rebel2/render.cpp
@@ -168,7 +168,7 @@ static bool readEmbeddedSanChunkHeader(Common::SeekableReadStream &stream, int64
 
 	const int64 dataStart = stream.pos();
 	if ((int64)chunkSize > containerEnd - dataStart) {
-		debugC(DEBUG_INSANE, "Rebel2: Truncated embedded SAN %s chunk 0x%08X at %lld: size=%u, remaining=%lld",
+		debugC(DEBUG_INSANE, "Truncated embedded SAN %s chunk 0x%08X at %lld: size=%u, remaining=%lld",
 			context, tag, headerPos, chunkSize, containerEnd - dataStart);
 		return false;
 	}
@@ -204,12 +204,12 @@ void InsaneRebel2::renderEmbeddedFrame(byte *renderBitmap, const EmbeddedSanFram
 	}
 	if (_rebelHandler == 0x19 && (userId == 6 || userId == 7)) {
 		skipImmediateDraw = false;
-		debugC(DEBUG_INSANE, "Rebel2: Handler 25 static overlay userId=%d - forcing immediate draw", userId);
+		debugC(DEBUG_INSANE, "Handler 25 static overlay userId=%d - forcing immediate draw", userId);
 	}
 
 	if (!frame.valid || !renderBitmap || skipImmediateDraw) {
 		if (skipImmediateDraw && frame.valid) {
-			debugC(DEBUG_INSANE, "Rebel2: Skipped immediate draw for Handler %d HUD %d (will render during post-processing)",
+			debugC(DEBUG_INSANE, "Skipped immediate draw for Handler %d HUD %d (will render during post-processing)",
 				_rebelHandler, userId);
 		}
 		return;
@@ -220,7 +220,7 @@ void InsaneRebel2::renderEmbeddedFrame(byte *renderBitmap, const EmbeddedSanFram
 
 	blitEmbeddedFrameRegion(renderBitmap, pitch, pitch, bufHeight, frame,
 		frame.renderX, frame.renderY, 0, 0, frame.width, frame.height);
-	debugC(DEBUG_INSANE, "Rebel2: Rendered embedded HUD %d at (%d,%d)", userId, frame.renderX, frame.renderY);
+	debugC(DEBUG_INSANE, "Rendered embedded HUD %d at (%d,%d)", userId, frame.renderX, frame.renderY);
 }
 
 void InsaneRebel2::drawHandler25CorridorOverlay(byte *renderBitmap) {
@@ -269,7 +269,7 @@ void InsaneRebel2::drawHandler25CorridorOverlay(byte *renderBitmap) {
 			   drawWidth);
 	}
 
-	debugC(DEBUG_INSANE, "Rebel2 Handler25: Corridor overlay drawn at (%d,%d) size(%d,%d)",
+	debugC(DEBUG_INSANE, "Handler25: Corridor overlay drawn at (%d,%d) size(%d,%d)",
 		_rebelViewOffsetX, _rebelViewOffsetY, corridorOverlay.width, corridorOverlay.height);
 }
 
@@ -282,7 +282,7 @@ void InsaneRebel2::drawHandler25CorridorOverlay(byte *renderBitmap) {
 void InsaneRebel2::loadEmbeddedSan(int userId, byte *animData, int32 size, byte *renderBitmap) {
 	// Validate userId - Level 3 uses slots 0-11, allow up to 15 for safety
 	if (userId < 0 || userId > 15 || !animData || size < 8) {
-		debugC(DEBUG_INSANE, "Rebel2: Invalid embedded SAN: userId=%d, size=%d", userId, size);
+		debugC(DEBUG_INSANE, "Invalid embedded SAN: userId=%d, size=%d", userId, size);
 		return;
 	}
 
@@ -292,7 +292,7 @@ void InsaneRebel2::loadEmbeddedSan(int userId, byte *animData, int32 size, byte
 	// Read ANIM header
 	uint32 animTag = stream.readUint32BE();
 	if (animTag != MKTAG('A','N','I','M')) {
-		debugC(DEBUG_INSANE, "Rebel2: Embedded SAN missing ANIM tag, got 0x%08X", animTag);
+		debugC(DEBUG_INSANE, "Embedded SAN missing ANIM tag, got 0x%08X", animTag);
 		return;
 	}
 	uint32 animSize = stream.readUint32BE();
@@ -300,9 +300,9 @@ void InsaneRebel2::loadEmbeddedSan(int userId, byte *animData, int32 size, byte
 	if ((int64)animSize <= streamEnd - 8) {
 		animEnd = 8 + (int64)animSize;
 	} else {
-		debugC(DEBUG_INSANE, "Rebel2: Embedded ANIM truncated: reported size=%u, actual=%lld", animSize, streamEnd - 8);
+		debugC(DEBUG_INSANE, "Embedded ANIM truncated: reported size=%u, actual=%lld", animSize, streamEnd - 8);
 	}
-	debugC(DEBUG_INSANE, "Rebel2: Parsing embedded ANIM: userId=%d, reported size=%u, actual=%lld", userId, animSize, streamEnd - 8);
+	debugC(DEBUG_INSANE, "Parsing embedded ANIM: userId=%d, reported size=%u, actual=%lld", userId, animSize, streamEnd - 8);
 
 	// Iterate through chunks to find FRME -> FOBJ
 	while (!stream.eos() && stream.pos() + 8 <= animEnd) {
@@ -325,7 +325,7 @@ void InsaneRebel2::loadEmbeddedSan(int userId, byte *animData, int32 size, byte
 
 				if (subTag == MKTAG('F','O','B','J')) {
 					if (subSize < 14) {
-						debugC(DEBUG_INSANE, "Rebel2: Embedded FOBJ too small: userId=%d, size=%u", userId, subSize);
+						debugC(DEBUG_INSANE, "Embedded FOBJ too small: userId=%d, size=%u", userId, subSize);
 						stream.seek(nextSubPos);
 						continue;
 					}
@@ -339,13 +339,13 @@ void InsaneRebel2::loadEmbeddedSan(int userId, byte *animData, int32 size, byte
 					stream.readUint16LE();  // unknown
 					stream.readUint16LE();  // unknown
 
-					debugC(DEBUG_INSANE, "Rebel2: Embedded HUD frame: userId=%d, %dx%d at (%d,%d), codec=%d",
+					debugC(DEBUG_INSANE, "Embedded HUD frame: userId=%d, %dx%d at (%d,%d), codec=%d",
 						userId, width, height, left, top, codec);
 
 					// High-resolution HUD frames are used when the RA2 high-res option
 					// selects a 640x400 virtual screen. Keep skipping them in low-res mode.
 					if (!isHiRes() && (width > 400 || height > 250)) {
-						debugC(DEBUG_INSANE, "Rebel2: SKIPPING high-res embedded frame: userId=%d, %dx%d (exceeds 400x250)",
+						debugC(DEBUG_INSANE, "SKIPPING high-res embedded frame: userId=%d, %dx%d (exceeds 400x250)",
 							userId, width, height);
 						stream.seek(nextSubPos);
 						continue;
@@ -383,7 +383,7 @@ void InsaneRebel2::loadEmbeddedSan(int userId, byte *animData, int32 size, byte
 							}
 							uint32 bytesRead = stream.read(fobjData, dataSize);
 							if (bytesRead != (uint32)dataSize) {
-								debugC(DEBUG_INSANE, "Rebel2: Short embedded FOBJ read: got %u of %d bytes", bytesRead, dataSize);
+								debugC(DEBUG_INSANE, "Short embedded FOBJ read: got %u of %d bytes", bytesRead, dataSize);
 								free(fobjData);
 								return;
 							}
@@ -393,17 +393,17 @@ void InsaneRebel2::loadEmbeddedSan(int userId, byte *animData, int32 size, byte
 								// Codec 1/3: RLE - use existing decoder (FUN_0042C590)
 								smushDecodeRLE(frame.pixels, fobjData, 0, 0, width, height, width);
 								frame.valid = true;
-								debugC(DEBUG_INSANE, "Rebel2: Decoded embedded HUD (codec %d/RLE): %dx%d", codec, width, height);
+								debugC(DEBUG_INSANE, "Decoded embedded HUD (codec %d/RLE): %dx%d", codec, width, height);
 							} else if (codec == 20) {
 								// Codec 20: Uncompressed (FUN_0042C400)
 								smushDecodeUncompressed(frame.pixels, fobjData, 0, 0, width, height, width);
 								frame.valid = true;
-								debugC(DEBUG_INSANE, "Rebel2: Decoded embedded HUD (codec 20/raw): %dx%d", width, height);
+								debugC(DEBUG_INSANE, "Decoded embedded HUD (codec 20/raw): %dx%d", width, height);
 							} else if (codec == 21 || codec == 44) {
 								// Codec 21/44: Line update (FUN_0042BD60)
 								smushDecodeLineUpdate(frame.pixels, fobjData, 0, 0, width, height, width, dataSize);
 								frame.valid = true;
-								debugC(DEBUG_INSANE, "Rebel2: Decoded embedded HUD (codec %d/line update): %dx%d", codec, width, height);
+								debugC(DEBUG_INSANE, "Decoded embedded HUD (codec %d/line update): %dx%d", codec, width, height);
 							} else if (codec == 45) {
 								// Codec 45: blur/wipe mask (FUN_0042B460 -> FUN_0042B530 -> FUN_0042DDF0)
 								smushDecodeRA2Blur(frame.pixels, fobjData, 0, 0, width, height, width, dataSize,
@@ -413,16 +413,16 @@ void InsaneRebel2::loadEmbeddedSan(int userId, byte *animData, int32 size, byte
 								// Codec 23: Skip/copy with embedded RLE (FUN_0042BBF0)
 								smushDecodeSkipRLE(frame.pixels, fobjData, 0, 0, width, height, width, dataSize);
 								frame.valid = true;
-								debugC(DEBUG_INSANE, "Rebel2: Decoded embedded HUD (codec 23/skip-RLE): %dx%d", width, height);
+								debugC(DEBUG_INSANE, "Decoded embedded HUD (codec 23/skip-RLE): %dx%d", width, height);
 							} else {
-								debugC(DEBUG_INSANE, "Rebel2: Unsupported embedded HUD codec %d", codec);
+								debugC(DEBUG_INSANE, "Unsupported embedded HUD codec %d", codec);
 								frame.valid = false;
 							}
 
 							// Count non-zero pixels to verify frame has content
 							if (frame.valid) {
 								int nonZeroPixels = countEmbeddedFramePixels(frame);
-								debugC(DEBUG_INSANE, "Rebel2: Frame userId=%d has %d non-zero pixels (%d%%)",
+								debugC(DEBUG_INSANE, "Frame userId=%d has %d non-zero pixels (%d%%)",
 									userId, nonZeroPixels, (nonZeroPixels * 100) / (width * height));
 							}
 
@@ -447,7 +447,7 @@ void InsaneRebel2::loadEmbeddedSan(int userId, byte *animData, int32 size, byte
 		}
 	}
 
-	debugC(DEBUG_INSANE, "Rebel2: No FOBJ found in embedded SAN userId=%d", userId);
+	debugC(DEBUG_INSANE, "No FOBJ found in embedded SAN userId=%d", userId);
 }
 
 // Spawn explosion into the shared 5-slot system.
@@ -611,7 +611,7 @@ void InsaneRebel2::spawnHandler25Shot(int x, int y) {
 				_turretShots[i].gunY = _rebelViewOffset2Y + 140 + _viewY;
 			}
 
-			debugC(DEBUG_INSANE, "Rebel2 Handler25: Spawned shot %d target (%d,%d) gun (%d,%d)",
+			debugC(DEBUG_INSANE, "Handler25: Spawned shot %d target (%d,%d) gun (%d,%d)",
 				i, _turretShots[i].targetX, _turretShots[i].targetY,
 				_turretShots[i].gunX, _turretShots[i].gunY);
 			break;
@@ -1147,7 +1147,7 @@ void InsaneRebel2::initLaserTexture(NutRenderer *nut, int spriteIdx) {
 		}
 	}
 
-	debugC(DEBUG_INSANE, "Rebel2: Initialized laser texture %dx%d from sprite %d (xoff=%d yoff=%d src=%dx%d)",
+	debugC(DEBUG_INSANE, "Initialized laser texture %dx%d from sprite %d (xoff=%d yoff=%d src=%dx%d)",
 	      texWidth, texHeight, spriteIdx, srcXOff, srcYOff, srcWidth, srcHeight);
 }
 
@@ -1514,7 +1514,7 @@ void InsaneRebel2::drawLaserBeam(byte *dst, int pitch, int width, int height,
 	int edgeClipRight = CLIP<int>(clipRight - 1, 1, width - 2);
 	int edgeClipBottom = CLIP<int>(clipBottom - 1, 1, height - 2);
 
-	debugC(DEBUG_INSANE, "Rebel2: drawLaserBeam gun(%d,%d) tgt(%d,%d) start(%d,%d) end(%d,%d) anim=%d/%d ws=%d hs=%d th=%d",
+	debugC(DEBUG_INSANE, "drawLaserBeam gun(%d,%d) tgt(%d,%d) start(%d,%d) end(%d,%d) anim=%d/%d ws=%d hs=%d th=%d",
 		gunX, gunY, targetX, targetY, startX, startY, endX, endY,
 		animFrame, maxFrames, widthScale, heightScale, thickness);
 
@@ -1660,16 +1660,16 @@ void InsaneRebel2::registerCollisionZone(Common::SeekableReadStream &b, int16 su
 	// Register zone into appropriate table based on sub-opcode
 	if (subOpcode == 0x0D && _primaryZoneCount < kMaxCollisionZones) {
 		_primaryZones[_primaryZoneCount++] = zone;
-		debugC(DEBUG_INSANE, "Rebel2: Registered PRIMARY zone %d: filter=%d fields=[%d,%d] quad=(%d,%d)-(%d,%d)-(%d,%d)-(%d,%d)",
+		debugC(DEBUG_INSANE, "Registered PRIMARY zone %d: filter=%d fields=[%d,%d] quad=(%d,%d)-(%d,%d)-(%d,%d)-(%d,%d)",
 			_primaryZoneCount - 1, par4, field1, field2,
 			x1, y1, x2, y2, x3, y3, x4, y4);
 	} else if (subOpcode == 0x0E && _secondaryZoneCount < kMaxCollisionZones) {
 		_secondaryZones[_secondaryZoneCount++] = zone;
-		debugC(DEBUG_INSANE, "Rebel2: Registered SECONDARY zone %d: filter=%d fields=[%d,%d] quad=(%d,%d)-(%d,%d)-(%d,%d)-(%d,%d)",
+		debugC(DEBUG_INSANE, "Registered SECONDARY zone %d: filter=%d fields=[%d,%d] quad=(%d,%d)-(%d,%d)-(%d,%d)-(%d,%d)",
 			_secondaryZoneCount - 1, par4, field1, field2,
 			x1, y1, x2, y2, x3, y3, x4, y4);
 	} else {
-		debugC(DEBUG_INSANE, "Rebel2: WARNING - Could not register zone (subOpcode=%d, primary=%d, secondary=%d)",
+		debugC(DEBUG_INSANE, "WARNING - Could not register zone (subOpcode=%d, primary=%d, secondary=%d)",
 			subOpcode, _primaryZoneCount, _secondaryZoneCount);
 	}
 }
@@ -1793,7 +1793,7 @@ void InsaneRebel2::checkCollisionZones(byte *renderBitmap, int pitch, int width,
 				int collisionDamage = (dparams.dodgeDamage >= 0) ? dparams.dodgeDamage : 0;
 
 				if (applyPlayerDamage(collisionDamage)) {
-					debugC(DEBUG_INSANE, "Rebel2: COLLISION damage! zone=%d aim=(%d,%d) damage=%d total=%d",
+					debugC(DEBUG_INSANE, "COLLISION damage! zone=%d aim=(%d,%d) damage=%d total=%d",
 						i, aimX, aimY, collisionDamage, _playerDamage);
 				}
 				// Visual effect — FUN_00420515 (palette flash)
@@ -1899,7 +1899,7 @@ void InsaneRebel2::applyHandler7ObstacleHit(const InsaneRebel2::CollisionZone &z
 		initDamageFlash();
 	// Pan based on ship X position relative to screen center.
 	playSfx(1, 127, CLIP((_flyShipScreenX - 212) * 127 / 160, -127, 127));
-	debugC(DEBUG_INSANE, "Rebel2: Handler7 Mode0/2 OBSTACLE HIT zone=%d ship=(%d,%d) damage=%d",
+	debugC(DEBUG_INSANE, "Handler7 Mode0/2 OBSTACLE HIT zone=%d ship=(%d,%d) damage=%d",
 		zoneIndex, _flyShipScreenX, _flyShipScreenY, collisionDamage);
 }
 
@@ -1978,7 +1978,7 @@ void InsaneRebel2::checkHandler7TopBoundary(const InsaneRebel2::CollisionZone &z
 			// Ship above top wall - push down.
 			const bool damageApplied = applyHandler7WallDamage(wallDamage);
 			if (damageApplied) {
-				debugC(DEBUG_INSANE, "Rebel2: Handler7 Mode1/3 TOP WALL ship=(%d,%d) edgeY=%d damage=%d",
+				debugC(DEBUG_INSANE, "Handler7 Mode1/3 TOP WALL ship=(%d,%d) edgeY=%d damage=%d",
 					_flyShipScreenX, _flyShipScreenY, edgeY, wallDamage);
 			}
 			_spaceShotDirection = 2;  // Direction: pushed down
@@ -2004,7 +2004,7 @@ void InsaneRebel2::checkHandler7BottomBoundary(const InsaneRebel2::CollisionZone
 			// Ship below bottom wall - push up.
 			const bool damageApplied = applyHandler7WallDamage(wallDamage);
 			if (damageApplied) {
-				debugC(DEBUG_INSANE, "Rebel2: Handler7 Mode1/3 BOTTOM WALL ship=(%d,%d) edgeY=%d damage=%d",
+				debugC(DEBUG_INSANE, "Handler7 Mode1/3 BOTTOM WALL ship=(%d,%d) edgeY=%d damage=%d",
 					_flyShipScreenX, _flyShipScreenY, edgeY, wallDamage);
 			}
 			_spaceShotDirection = 3;  // Direction: pushed up
@@ -2034,7 +2034,7 @@ void InsaneRebel2::checkHandler7LeftBoundary(const InsaneRebel2::CollisionZone &
 
 			const bool damageApplied = applyHandler7WallDamage(wallDamage);
 			if (damageApplied) {
-				debugC(DEBUG_INSANE, "Rebel2: Handler7 Mode1/3 LEFT WALL ship=(%d,%d) edgeX=%d damage=%d",
+				debugC(DEBUG_INSANE, "Handler7 Mode1/3 LEFT WALL ship=(%d,%d) edgeX=%d damage=%d",
 					_flyShipScreenX, _flyShipScreenY, edgeX, wallDamage);
 			}
 			_spaceShotDirection = 0;  // Direction: pushed right
@@ -2061,7 +2061,7 @@ void InsaneRebel2::checkHandler7RightBoundary(const InsaneRebel2::CollisionZone
 
 			const bool damageApplied = applyHandler7WallDamage(wallDamage);
 			if (damageApplied) {
-				debugC(DEBUG_INSANE, "Rebel2: Handler7 Mode1/3 RIGHT WALL ship=(%d,%d) edgeX=%d damage=%d",
+				debugC(DEBUG_INSANE, "Handler7 Mode1/3 RIGHT WALL ship=(%d,%d) edgeX=%d damage=%d",
 					_flyShipScreenX, _flyShipScreenY, edgeX, wallDamage);
 			}
 			_spaceShotDirection = 1;  // Direction: pushed left
@@ -2454,7 +2454,7 @@ bool InsaneRebel2::handlePostRenderMenuModes(byte *renderBitmap, int pitch, int
 
 		// If a selection was confirmed, signal video to stop.
 		if (selection >= 0) {
-			debugC(DEBUG_INSANE, "Rebel2: Pilot selection confirmed: %d", selection);
+			debugC(DEBUG_INSANE, "Pilot selection confirmed: %d", selection);
 			_menuSelectionConfirmed = true;
 			_vm->_smushVideoShouldFinish = true;
 		}
@@ -2479,7 +2479,7 @@ bool InsaneRebel2::handlePostRenderMenuModes(byte *renderBitmap, int pitch, int
 
 		// If a selection was confirmed, signal video to stop.
 		if (selection >= 0) {
-			debugC(DEBUG_INSANE, "Rebel2: Chapter selection confirmed: %d", selection);
+			debugC(DEBUG_INSANE, "Chapter selection confirmed: %d", selection);
 			_menuSelectionConfirmed = true;
 			_vm->_smushVideoShouldFinish = true;
 		}
@@ -2515,7 +2515,7 @@ bool InsaneRebel2::handlePostRenderMenuModes(byte *renderBitmap, int pitch, int
 		// At 12fps video rate, 300 frames = ~25 seconds of inactivity.
 		// The original checks: if (local_8 > 299) return 0.
 		if (_menuInactivityTimer > 300) {
-			debugC(DEBUG_INSANE, "Rebel2: Menu inactivity timeout - resuming intro/demo loop");
+			debugC(DEBUG_INSANE, "Menu inactivity timeout - resuming intro/demo loop");
 			_menuInactivityTimer = 0;
 			_menuInactivityTimedOut = true;
 			_menuSelectionConfirmed = false;
@@ -2528,7 +2528,7 @@ bool InsaneRebel2::handlePostRenderMenuModes(byte *renderBitmap, int pitch, int
 
 		// If a selection was confirmed, signal video to stop.
 		if (selection >= 0) {
-			debugC(DEBUG_INSANE, "Rebel2: Menu selection confirmed: %d", selection);
+			debugC(DEBUG_INSANE, "Menu selection confirmed: %d", selection);
 			_menuSelectionConfirmed = true;
 			_vm->_smushVideoShouldFinish = true;
 		}
@@ -2559,7 +2559,7 @@ bool InsaneRebel2::handlePostRenderIntro(byte *renderBitmap, int pitch, int widt
 		// Track state transition for debugging.
 		if (!_introCursorPushed) {
 			_introCursorPushed = true;
-			debugC(DEBUG_INSANE, "Rebel2: Intro/cinematic mode (handler=0, flags=0x%x, state=%d) - HUD disabled, mouse hidden",
+			debugC(DEBUG_INSANE, "Intro/cinematic mode (handler=0, flags=0x%x, state=%d) - HUD disabled, mouse hidden",
 				  _player->_curVideoFlags, _gameState);
 		}
 
@@ -2574,7 +2574,7 @@ bool InsaneRebel2::handlePostRenderIntro(byte *renderBitmap, int pitch, int widt
 	// Gameplay mode - handler was set by IACT opcode 6.
 	if (_introCursorPushed) {
 		_introCursorPushed = false;
-		debugC(DEBUG_INSANE, "Rebel2: Gameplay mode (handler=%d, flags=0x%x, state=%d) - HUD enabled",
+		debugC(DEBUG_INSANE, "Gameplay mode (handler=%d, flags=0x%x, state=%d) - HUD enabled",
 			  _rebelHandler, _player->_curVideoFlags, _gameState);
 	}
 
@@ -2694,7 +2694,7 @@ void InsaneRebel2::renderGameplayPostFrame(byte *renderBitmap, int pitch, int wi
 	renderStatusBarBackground(renderBitmap, pitch, width, height, videoWidth, videoHeight, statusBarY);
 
 	// Ship rendering (FUN_00401ccf for Handler 8, FUN_0040d836 for Handler 7).
-	debugC(DEBUG_INSANE, "Rebel2 Ship Check: handler=%d shipSprite=%p flyShipSprite=%p shipLevelMode=%d numSprites=%d/%d",
+	debugC(DEBUG_INSANE, "Ship Check: handler=%d shipSprite=%p flyShipSprite=%p shipLevelMode=%d numSprites=%d/%d",
 		_rebelHandler, (void*)_shipSprite, (void*)_flyShipSprite, _shipLevelMode,
 		_shipSprite ? _shipSprite->getNumChars() : 0,
 		_flyShipSprite ? _flyShipSprite->getNumChars() : 0);
@@ -2974,7 +2974,7 @@ void InsaneRebel2::renderTextOverlay(byte *renderBitmap, int pitch, int width, i
 
 	SmushPlayer *splayer = ((ScummEngine_v7 *)_vm)->_splayer;
 	const char *text = splayer->getString(_textOverlayID);
-	debugC(DEBUG_INSANE, "Rebel2: Text overlay frame %d/%d-%d textID=0x%x text='%s'",
+	debugC(DEBUG_INSANE, "Text overlay frame %d/%d-%d textID=0x%x text='%s'",
 	      curFrame, _textOverlayFadeIn, _textOverlayFadeOut, _textOverlayID,
 	      text ? text : "(null)");
 	if (!text)
@@ -3171,7 +3171,7 @@ void InsaneRebel2::renderTurretHudOverlays(byte *renderBitmap, int pitch, int wi
 			_hudOverlayNut, animFrame);
 	}
 
-	debugC(DEBUG_INSANE, "Rebel2 HUD: Drawing NUT overlay frame %d/%d at (%d,%d) mouseOffset=(%d,%d)",
+	debugC(DEBUG_INSANE, "HUD: Drawing NUT overlay frame %d/%d at (%d,%d) mouseOffset=(%d,%d)",
 		  animFrame, numSprites, hudX, hudY, mouseOffsetX, mouseOffsetY);
 
 	// Draw secondary HUD overlay if present (DAT_0047fe80)
@@ -3204,7 +3204,7 @@ void InsaneRebel2::renderEmbeddedHudOverlays(byte *renderBitmap, int pitch, int
 
 		// Skip small frames at (0,0) - likely animation patches
 		if (frame.renderX == 0 && frame.renderY == 0 && frame.width < 50 && frame.height < 60) {
-			debugC(DEBUG_INSANE, "Rebel2: Skipping small embedded frame at (0,0): slot=%d size=%dx%d",
+			debugC(DEBUG_INSANE, "Skipping small embedded frame at (0,0): slot=%d size=%dx%d",
 				hudSlot, frame.width, frame.height);
 			continue;
 		}
@@ -3268,7 +3268,7 @@ void InsaneRebel2::renderEmbeddedHudOverlays(byte *renderBitmap, int pitch, int
 		destX += _viewX;
 		destY += _viewY;
 
-		debugC(DEBUG_INSANE, "Rebel2: Rendering embedded HUD slot=%d size=%dx%d at (%d,%d)",
+		debugC(DEBUG_INSANE, "Rendering embedded HUD slot=%d size=%dx%d at (%d,%d)",
 			hudSlot, frame.width, frame.height, destX, destY);
 
 		blitEmbeddedFrameRegion(renderBitmap, pitch, pitch, height, frame,
@@ -3560,7 +3560,7 @@ void InsaneRebel2::renderHandler7Ship(byte *renderBitmap, int pitch, int width,
 			shipDraw.x, shipDraw.y, _flyTargetSprite, spriteIndex);
 	}
 
-	debugC(DEBUG_INSANE, "Rebel2 Handler7Ship: draw=(%d,%d) sprite=%d/%d shipPos=(%d,%d) persp=(%d,%d) smoothVel=%d vertIn=%d fxCtr=%d fxRep=%d",
+	debugC(DEBUG_INSANE, "Handler7Ship: draw=(%d,%d) sprite=%d/%d shipPos=(%d,%d) persp=(%d,%d) smoothVel=%d vertIn=%d fxCtr=%d fxRep=%d",
 		drawX, drawY, spriteIndex, numSprites, _flyShipScreenX, _flyShipScreenY,
 		_perspectiveX, _perspectiveY, _smoothedVelocity, _verticalInput, _flyEffectAnimCounter, _flyOverlayRepeatCount);
 }
@@ -3618,7 +3618,7 @@ void InsaneRebel2::renderHandler8Ship(byte *renderBitmap, int pitch, int width,
 
 	int sprW = _shipSprite->getCharWidth(spriteIndex);
 	int sprH = _shipSprite->getCharHeight(spriteIndex);
-	debugC(DEBUG_INSANE, "Rebel2 Handler8: Ship at (%d,%d) raw(%d,%d) offset(%d,%d) nutOff(%d,%d) size(%d,%d) bottom=%d view(%d,%d) sprite=%d/%d",
+	debugC(DEBUG_INSANE, "Handler8: Ship at (%d,%d) raw(%d,%d) offset(%d,%d) nutOff(%d,%d) size(%d,%d) bottom=%d view(%d,%d) sprite=%d/%d",
 		drawX, drawY, _shipPosX, _shipPosY, displayOffsetX, displayOffsetY,
 		spriteXOffset, spriteYOffset, sprW, sprH, drawY + sprH,
 		_viewX, _viewY, spriteIndex, numSprites);
@@ -3749,7 +3749,7 @@ void InsaneRebel2::renderHandler25ShipPre(byte *renderBitmap, int pitch, int wid
 			scaledClipLeft, 0, scaledClipRight, renderHeight,
 			drawX, drawY, _grd001Sprite, 0, false, renderScale, false);
 
-		debugC(DEBUG_INSANE, "Rebel2 Handler25 PRE: GRD001 at (%d,%d) nutOff(%d,%d) viewOff(%d,%d) size(%d,%d) mode=%d dmg=%d halfW=%d rightHalf=%d clip=[%d,%d) scale=%d",
+		debugC(DEBUG_INSANE, "Handler25 PRE: GRD001 at (%d,%d) nutOff(%d,%d) viewOff(%d,%d) size(%d,%d) mode=%d dmg=%d halfW=%d rightHalf=%d clip=[%d,%d) scale=%d",
 			drawX, drawY, spriteXOffset, spriteYOffset, _rebelViewOffset2X, _rebelViewOffset2Y,
 			spriteW, spriteH, _grdSpriteMode, _rebelDamageLevel, useHalfWidth ? 1 : 0, useRightHalf ? 1 : 0, scaledClipLeft, scaledClipRight, renderScale);
 
@@ -3769,7 +3769,7 @@ void InsaneRebel2::renderHandler25ShipPre(byte *renderBitmap, int pitch, int wid
 				0, 0, width, renderHeight,
 				overlayDrawX, overlayDrawY, _grd005Sprite, overlayIdx, false, renderScale, false);
 
-			debugC(DEBUG_INSANE, "Rebel2 Handler25 PRE: GRD005 at (%d,%d) nutOff(%d,%d) viewOff(%d,%d) size(%d,%d) mode=%d scale=%d",
+			debugC(DEBUG_INSANE, "Handler25 PRE: GRD005 at (%d,%d) nutOff(%d,%d) viewOff(%d,%d) size(%d,%d) mode=%d scale=%d",
 				overlayDrawX, overlayDrawY, overlayXOffset, overlayYOffset,
 				_rebelViewOffset2X, _rebelViewOffset2Y, overlayW, overlayH, _grdSpriteMode, renderScale);
 		}
@@ -3924,7 +3924,7 @@ void InsaneRebel2::renderHandler25Ship(byte *renderBitmap, int pitch, int width,
 			0, 0, width, renderHeight,
 			drawX, drawY, _grd002Sprite, spriteIdx, shouldMirror, renderScale, true);
 
-		debugC(DEBUG_INSANE, "Rebel2 Handler25: GRD002 at (%d,%d) nutOffset(%d,%d) viewOffset(%d,%d) size(%d,%d) spriteIdx=%d damage=%d dir=%d mirror=%d scale=%d",
+		debugC(DEBUG_INSANE, "Handler25: GRD002 at (%d,%d) nutOffset(%d,%d) viewOffset(%d,%d) size(%d,%d) spriteIdx=%d damage=%d dir=%d mirror=%d scale=%d",
 			drawX, drawY, spriteXOffset, spriteYOffset, _rebelViewOffset2X, _rebelViewOffset2Y, spriteW, spriteH, spriteIdx, _rebelDamageLevel, _rebelFlightDir, shouldMirror ? 1 : 0, renderScale);
 	}
 }
@@ -3979,7 +3979,7 @@ void InsaneRebel2::renderFallbackShip(byte *renderBitmap, int pitch, int width,
 	blitEmbeddedFrameRegion(renderBitmap, pitch, width, height, shipFrame,
 		drawX, drawY, srcX, srcY, spriteW, spriteH);
 
-	debugC(DEBUG_INSANE, "Rebel2: Ship (fallback) at (%d,%d) strip=(%d,%d) of (%dx%d) dir=(%d,%d)",
+	debugC(DEBUG_INSANE, "Ship (fallback) at (%d,%d) strip=(%d,%d) of (%dx%d) dir=(%d,%d)",
 		drawX, drawY, srcX, srcY, numHorizontal, numVertical, _shipDirectionH, _shipDirectionV);
 }
 
@@ -4277,7 +4277,7 @@ void InsaneRebel2::renderSpaceExplosions(byte *renderBitmap, int pitch, int widt
 					drawX - ew / 2, drawY - eh / 2, _smush_iconsNut, spriteIndex);
 			}
 
-			debugC(DEBUG_INSANE, "Rebel2 H7 corridor explosion: dir=%d frame=%d pos=(%d,%d) cooldown=%d",
+			debugC(DEBUG_INSANE, "H7 corridor explosion: dir=%d frame=%d pos=(%d,%d) cooldown=%d",
 				_spaceShotDirection, spriteIndex, drawX, drawY, _hitCooldown);
 		}
 	}
@@ -4573,7 +4573,7 @@ void InsaneRebel2::renderHandler25LaserShots(byte *renderBitmap, int pitch, int
 
 		_turretShots[i].counter--;
 
-		debugC(DEBUG_INSANE, "Rebel2 Handler25: Laser shot %d from (%d,%d) to (%d,%d) progress=%d/%d",
+		debugC(DEBUG_INSANE, "Handler25: Laser shot %d from (%d,%d) to (%d,%d) progress=%d/%d",
 			i, gunX, gunY, targetX, targetY, progress, maxDuration);
 	}
 }
diff --git a/engines/scumm/insane/rebel2/runlevels.cpp b/engines/scumm/insane/rebel2/runlevels.cpp
index c81b5626fc7..b0e9a677f18 100644
--- a/engines/scumm/insane/rebel2/runlevels.cpp
+++ b/engines/scumm/insane/rebel2/runlevels.cpp
@@ -57,14 +57,14 @@ int InsaneRebel2::runLevel1() {
 
 		if (_playerShield > 0) {
 			// Level completed!
-			debugC(DEBUG_INSANE, "Rebel2: Level 1 completed!");
+			debugC(DEBUG_INSANE, "Level 1 completed!");
 			playLevelEnd(1);
 			_levelUnlocked[1] = true;  // Unlock level 2
 			return kLevelNextLevel;
 		}
 
 		// Player died - play death video with random A/B variant
-		debugC(DEBUG_INSANE, "Rebel2: Level 1 death at frame %d, lives=%d", _deathFrame, _playerLives - 1);
+		debugC(DEBUG_INSANE, "Level 1 death at frame %d, lives=%d", _deathFrame, _playerLives - 1);
 		playLevelDeathVariant(1, 1, _deathFrame);
 
 		if (_vm->shouldQuit())
@@ -104,7 +104,7 @@ InsaneRebel2::WaveEndResult InsaneRebel2::processWaveEnd(int16 mask, int16 *budg
 		_skipSectionRequested = false;
 		_rebelPhaseState = mask;
 		_rebelWaveState = mask;
-		debugC(DEBUG_INSANE, "Rebel2 processWaveEnd: movie mode completed gameplay wave (mask=0x%x)", (uint16)mask);
+		debugC(DEBUG_INSANE, "processWaveEnd: movie mode completed gameplay wave (mask=0x%x)", (uint16)mask);
 		result.completed = true;
 		result.skipped = true;
 		return result;
@@ -115,7 +115,7 @@ InsaneRebel2::WaveEndResult InsaneRebel2::processWaveEnd(int16 mask, int16 *budg
 		_skipSectionRequested = false;
 		_rebelPhaseState = mask;
 		_rebelWaveState = mask;
-		debugC(DEBUG_INSANE, "Rebel2 processWaveEnd: Shift+S skip consumed (mask=0x%x)", (uint16)mask);
+		debugC(DEBUG_INSANE, "processWaveEnd: Shift+S skip consumed (mask=0x%x)", (uint16)mask);
 		result.completed = true;
 		result.skipped = true;
 		return result;
@@ -133,7 +133,7 @@ InsaneRebel2::WaveEndResult InsaneRebel2::processWaveEnd(int16 mask, int16 *budg
 	// Step 2: Copy wave state to phase state (line 33)
 	// DAT_0047ab9c = DAT_0047ab98
 	_rebelPhaseState = _rebelWaveState;
-	debugC(DEBUG_INSANE, "Rebel2 processWaveEnd: waveState=0x%x -> phaseState=0x%x mask=0x%x budget=%d threshold=%d flags=%d",
+	debugC(DEBUG_INSANE, "processWaveEnd: waveState=0x%x -> phaseState=0x%x mask=0x%x budget=%d threshold=%d flags=%d",
 		_rebelWaveState, _rebelPhaseState, mask, budget ? *budget : -1, threshold, flags);
 
 	// Step 3: Kill redistribution - add random unkilled types (lines 34-47)
@@ -187,7 +187,7 @@ InsaneRebel2::WaveEndResult InsaneRebel2::processWaveEnd(int16 mask, int16 *budg
 		creditCount++;
 	}
 
-	debugC(DEBUG_INSANE, "Rebel2 processWaveEnd: result=0x%x phaseState=0x%x (after redistribution) budget=%d",
+	debugC(DEBUG_INSANE, "processWaveEnd: result=0x%x phaseState=0x%x (after redistribution) budget=%d",
 		result.creditedBits, _rebelPhaseState, budget ? *budget : -1);
 
 	// Step 5: Stop conditions (lines 74-78)
@@ -203,7 +203,7 @@ bool InsaneRebel2::playLevelSegment(const char *filename, uint16 flags, bool rec
 
 	const bool isRecordedGameplay = recordFrame && (flags & 0x08) != 0;
 	if (isRecordedGameplay && _rebelMovieMode) {
-		debugC(DEBUG_INSANE, "Rebel2: Movie mode skipping gameplay segment: %s", filename);
+		debugC(DEBUG_INSANE, "Movie mode skipping gameplay segment: %s", filename);
 		_gameplaySectionActive = false;
 		restoreIOSGamepadController();
 		if (recordFrame)
@@ -245,7 +245,7 @@ int InsaneRebel2::calculateAccuracy(int kills, int misses) const {
 
 bool InsaneRebel2::handleLevelDeath(int levelId, int phase,
 		const char *deathVideo, const char *retryVideo, int &levelResult) {
-	debugC(DEBUG_INSANE, "Rebel2: Level %d Phase %d death", levelId, phase);
+	debugC(DEBUG_INSANE, "Level %d Phase %d death", levelId, phase);
 	playCinematic(deathVideo);
 	if (_vm->shouldQuit()) {
 		levelResult = kLevelQuit;
@@ -426,7 +426,7 @@ int InsaneRebel2::runLevel2() {
 		int16 budget = kLevel2BudgetBase[0] + _vm->_rnd.getRandomNumber(2);
 
 		// Play A.SAN (background loader) — flags 0x28 (preserve buffer, gameplay mode)
-		debugC(DEBUG_INSANE, "Rebel2: Level 2 Phase 1 - playing 02P01_A.SAN (background) budget=%d", budget);
+		debugC(DEBUG_INSANE, "Level 2 Phase 1 - playing 02P01_A.SAN (background) budget=%d", budget);
 		if (!playLevelSegment("LEV02/P1/02P01_A.SAN", 0x28))
 			return kLevelQuit;
 
@@ -446,14 +446,14 @@ int InsaneRebel2::runLevel2() {
 				"LEV02/P1/02P01_C.SAN",
 				"LEV02/P1/02P01_D.SAN"
 			};
-			debugC(DEBUG_INSANE, "Rebel2: Phase 1 wave - playing %s (state=0x%x budget=%d)", variants[variant], _rebelPhaseState, budget);
+			debugC(DEBUG_INSANE, "Phase 1 wave - playing %s (state=0x%x budget=%d)", variants[variant], _rebelPhaseState, budget);
 			// Wave videos use flags 0x428 (original: FUN_0041f4d0 param_2=0x428)
 			if (!playLevelSegment(variants[variant], 0x428))
 				return kLevelQuit;
 
 			// processWaveEnd with threshold=0x14 (20) — enables early exit when enemies killed
 			processWaveEnd(0x36, &budget, 0x14, 0);
-			debugC(DEBUG_INSANE, "Rebel2: Phase 1 wave done - state=0x%x (need 0x06) budget=%d", _rebelPhaseState, budget);
+			debugC(DEBUG_INSANE, "Phase 1 wave done - state=0x%x (need 0x06) budget=%d", _rebelPhaseState, budget);
 		}
 
 		// Check for bonus (bit 4 = 0x10)
@@ -492,7 +492,7 @@ int InsaneRebel2::runLevel2() {
 		_rebelHandler = 8;
 
 		// Play A.SAN (background loader)
-		debugC(DEBUG_INSANE, "Rebel2: Level 2 Phase 2 - playing 02P02_A.SAN (background) budget=%d", budget);
+		debugC(DEBUG_INSANE, "Level 2 Phase 2 - playing 02P02_A.SAN (background) budget=%d", budget);
 		if (!playLevelSegment("LEV02/P2/02P02_A.SAN", 0x28))
 			return kLevelQuit;
 
@@ -529,7 +529,7 @@ int InsaneRebel2::runLevel2() {
 				filename = "LEV02/P2/02P02_D.SAN"; break;
 			}
 
-			debugC(DEBUG_INSANE, "Rebel2: Phase 2 wave - playing %s (state=0x%x sel=0x%x budget=%d)", filename, _rebelPhaseState, waveSelect, budget);
+			debugC(DEBUG_INSANE, "Phase 2 wave - playing %s (state=0x%x sel=0x%x budget=%d)", filename, _rebelPhaseState, waveSelect, budget);
 			if (!playLevelSegment(filename, 0x428))
 				return kLevelQuit;
 		}
@@ -569,7 +569,7 @@ int InsaneRebel2::runLevel2() {
 		_rebelHandler = 8;
 
 		// Play A.SAN (background loader)
-		debugC(DEBUG_INSANE, "Rebel2: Level 2 Phase 3 - playing 02P03_A.SAN (background) budget=%d", budget);
+		debugC(DEBUG_INSANE, "Level 2 Phase 3 - playing 02P03_A.SAN (background) budget=%d", budget);
 		if (!playLevelSegment("LEV02/P3/02P03_A.SAN", 0x28))
 			return kLevelQuit;
 
@@ -614,13 +614,13 @@ int InsaneRebel2::runLevel2() {
 					filename = "LEV02/P3/02P03_I.SAN"; break;
 				}
 
-				debugC(DEBUG_INSANE, "Rebel2: Phase 3 wave - playing %s (state=0x%x sel=0x%x budget=%d)", filename, _rebelPhaseState, waveSelect, budget);
+				debugC(DEBUG_INSANE, "Phase 3 wave - playing %s (state=0x%x sel=0x%x budget=%d)", filename, _rebelPhaseState, waveSelect, budget);
 				if (!playLevelSegment(filename, 0x428))
 					return kLevelQuit;
 
 				// processWaveEnd at BOTTOM with threshold=0x14
 				waveEnd = processWaveEnd(0x3e, &budget, 0x14, 0);
-				debugC(DEBUG_INSANE, "Rebel2: Phase 3 wave done - state=0x%x (need 0x0e) budget=%d", _rebelPhaseState, budget);
+				debugC(DEBUG_INSANE, "Phase 3 wave done - state=0x%x (need 0x0e) budget=%d", _rebelPhaseState, budget);
 			}
 		}
 
@@ -643,7 +643,7 @@ int InsaneRebel2::runLevel2() {
 		{
 			totalMisses += _rebelHitCounter;
 			int accuracy = calculateAccuracy(totalKills, totalMisses);
-			debugC(DEBUG_INSANE, "Rebel2: Level 2 completed! kills=%d misses=%d accuracy=%d%% bonus=%d",
+			debugC(DEBUG_INSANE, "Level 2 completed! kills=%d misses=%d accuracy=%d%% bonus=%d",
 				totalKills, totalMisses, accuracy, bonusCount);
 		}
 
@@ -682,7 +682,7 @@ int InsaneRebel2::runLevel3() {
 		resetHandler7FlightState();
 
 		// Play phase 1 gameplay (03PLAY1.SAN)
-		debugC(DEBUG_INSANE, "Rebel2: Level 3 Phase 1");
+		debugC(DEBUG_INSANE, "Level 3 Phase 1");
 		if (!playLevelSegment("LEV03/03PLAY1.SAN", 0x28))
 			return kLevelQuit;
 
@@ -693,7 +693,7 @@ int InsaneRebel2::runLevel3() {
 		}
 
 		// Died in phase 1 - frame-based death video
-		debugC(DEBUG_INSANE, "Rebel2: Level 3 Phase 1 death at frame %d", _deathFrame);
+		debugC(DEBUG_INSANE, "Level 3 Phase 1 death at frame %d", _deathFrame);
 		playLevelDeathVariant(3, 1, _deathFrame);
 		if (_vm->shouldQuit())
 			return kLevelQuit;
@@ -736,20 +736,20 @@ int InsaneRebel2::runLevel3() {
 		resetHandler7FlightState();
 
 		// Play phase 2 gameplay (03PLAY2.SAN)
-		debugC(DEBUG_INSANE, "Rebel2: Level 3 Phase 2");
+		debugC(DEBUG_INSANE, "Level 3 Phase 2");
 		if (!playLevelSegment("LEV03/03PLAY2.SAN", 0x28))
 			return kLevelQuit;
 
 		if (_playerShield > 0) {
 			// Level completed!
-			debugC(DEBUG_INSANE, "Rebel2: Level 3 completed!");
+			debugC(DEBUG_INSANE, "Level 3 completed!");
 			playLevelEnd(3);
 			_levelUnlocked[3] = true;  // Unlock level 4
 			return kLevelNextLevel;
 		}
 
 		// Died in phase 2 - frame-based death video
-		debugC(DEBUG_INSANE, "Rebel2: Level 3 Phase 2 death at frame %d", _deathFrame);
+		debugC(DEBUG_INSANE, "Level 3 Phase 2 death at frame %d", _deathFrame);
 		playLevelDeathVariant(3, 2, _deathFrame);
 		if (_vm->shouldQuit())
 			return kLevelQuit;
@@ -796,20 +796,20 @@ int InsaneRebel2::runLevel4() {
 		clearBit(0);
 
 		// Play gameplay (04PLAY.SAN)
-		debugC(DEBUG_INSANE, "Rebel2: Level 4 gameplay");
+		debugC(DEBUG_INSANE, "Level 4 gameplay");
 		if (!playLevelSegment("LEV04/04PLAY.SAN", 0x28))
 			return kLevelQuit;
 
 		if (_playerShield > 0) {
 			// Level completed!
-			debugC(DEBUG_INSANE, "Rebel2: Level 4 completed!");
+			debugC(DEBUG_INSANE, "Level 4 completed!");
 			playLevelEnd(4);
 			_levelUnlocked[4] = true;  // Unlock level 5
 			return kLevelNextLevel;
 		}
 
 		// Died - play death video (04DIE.SAN, no variants)
-		debugC(DEBUG_INSANE, "Rebel2: Level 4 death");
+		debugC(DEBUG_INSANE, "Level 4 death");
 		playLevelDeathVariant(4, 1, _deathFrame);
 		if (_vm->shouldQuit())
 			return kLevelQuit;
@@ -851,20 +851,20 @@ int InsaneRebel2::runLevel5() {
 
 		// Play gameplay (05PLAY.SAN)
 		// Original: FUN_0041f4d0("05PLAY.SAN", 8, -1, -1, 0)
-		debugC(DEBUG_INSANE, "Rebel2: Level 5 gameplay");
+		debugC(DEBUG_INSANE, "Level 5 gameplay");
 		if (!playLevelSegment("LEV05/05PLAY.SAN", 0x08))
 			return kLevelQuit;
 
 		if (_playerShield > 0) {
 			// Level completed!
-			debugC(DEBUG_INSANE, "Rebel2: Level 5 completed!");
+			debugC(DEBUG_INSANE, "Level 5 completed!");
 			playLevelEnd(5);
 			_levelUnlocked[5] = true;  // Unlock level 6
 			return kLevelNextLevel;
 		}
 
 		// Died - play death video with random A/B variant
-		debugC(DEBUG_INSANE, "Rebel2: Level 5 death at frame %d", _deathFrame);
+		debugC(DEBUG_INSANE, "Level 5 death at frame %d", _deathFrame);
 		playLevelDeathVariant(5, 1, _deathFrame);
 		if (_vm->shouldQuit())
 			return kLevelQuit;
@@ -918,7 +918,7 @@ int InsaneRebel2::runLevel6() {
 		_rebelLevelType = 5;  // DAT_0047a7f8 = 5
 		_currentPhase = 1;
 
-		debugC(DEBUG_INSANE, "Rebel2: Level 6 Phase 1");
+		debugC(DEBUG_INSANE, "Level 6 Phase 1");
 		if (!playLevelSegment("LEV06/06PLAY1.SAN", 0x28))
 			return kLevelQuit;
 		// TODO: Mid-level switch at frame 0x2a8 to 06PLAY1B.SAN (flags 0x468)
@@ -926,7 +926,7 @@ int InsaneRebel2::runLevel6() {
 
 		if (_playerShield <= 0) {
 			// Died in phase 1
-			debugC(DEBUG_INSANE, "Rebel2: Level 6 Phase 1 death at frame %d", _deathFrame);
+			debugC(DEBUG_INSANE, "Level 6 Phase 1 death at frame %d", _deathFrame);
 			playLevelDeathVariant(6, 1, _deathFrame);
 			if (_vm->shouldQuit())
 				return kLevelQuit;
@@ -959,20 +959,20 @@ int InsaneRebel2::runLevel6() {
 			_playerScore = phase1Score;
 			clearBit(0);  // FUN_00407d10
 
-			debugC(DEBUG_INSANE, "Rebel2: Level 6 Phase 2");
+			debugC(DEBUG_INSANE, "Level 6 Phase 2");
 			if (!playLevelSegment("LEV06/06PLAY2.SAN", 0x28))
 				return kLevelQuit;
 
 			if (_playerShield > 0) {
 				// Level completed!
-				debugC(DEBUG_INSANE, "Rebel2: Level 6 completed!");
+				debugC(DEBUG_INSANE, "Level 6 completed!");
 				playLevelEnd(6);
 				_levelUnlocked[6] = true;
 				return kLevelNextLevel;
 			}
 
 			// Died in phase 2
-			debugC(DEBUG_INSANE, "Rebel2: Level 6 Phase 2 death at frame %d", _deathFrame);
+			debugC(DEBUG_INSANE, "Level 6 Phase 2 death at frame %d", _deathFrame);
 			playLevelDeathVariant(6, 2, _deathFrame);
 			if (_vm->shouldQuit())
 				return kLevelQuit;
@@ -1036,7 +1036,7 @@ int InsaneRebel2::runLevel7() {
 			return kLevelQuit;
 
 		if (_playerShield > 0) {
-			debugC(DEBUG_INSANE, "Rebel2: Level 7 completed!");
+			debugC(DEBUG_INSANE, "Level 7 completed!");
 			playLevelEnd(7);
 			_levelUnlocked[7] = true;
 			return kLevelNextLevel;
@@ -1044,7 +1044,7 @@ int InsaneRebel2::runLevel7() {
 
 		// Death video: DIE_B if fork reached, DIE_A if not
 		// Original: s_LEV07_07DIE_B + ((DAT_0047ab8c != 0) - 1 & 0x14)
-		debugC(DEBUG_INSANE, "Rebel2: Level 7 death at frame %d, fork=%d", _deathFrame, reachedFork);
+		debugC(DEBUG_INSANE, "Level 7 death at frame %d, fork=%d", _deathFrame, reachedFork);
 		if (reachedFork) {
 			playCinematic("LEV07/07DIE_B.SAN");
 		} else {
@@ -1098,7 +1098,7 @@ int InsaneRebel2::runLevel8() {
 
 		if (_playerShield > 0) {
 			int accuracy = calculateAccuracy(_rebelKillCounter, _rebelHitCounter);
-			debugC(DEBUG_INSANE, "Rebel2: Level 8 completed! accuracy=%d%%", accuracy);
+			debugC(DEBUG_INSANE, "Level 8 completed! accuracy=%d%%", accuracy);
 			playLevelEnd(8);
 			_levelUnlocked[8] = true;
 			return kLevelNextLevel;
@@ -1106,7 +1106,7 @@ int InsaneRebel2::runLevel8() {
 
 		// Death: random A or B
 		// Original: random(2) → A or B via string pointer arithmetic
-		debugC(DEBUG_INSANE, "Rebel2: Level 8 death at frame %d", _deathFrame);
+		debugC(DEBUG_INSANE, "Level 8 death at frame %d", _deathFrame);
 		playLevelDeathVariant(8, 1, _deathFrame);
 		if (_vm->shouldQuit())
 			return kLevelQuit;
@@ -1162,7 +1162,7 @@ int InsaneRebel2::runLevel9() {
 
 		if (_playerShield > 0) {
 			int accuracy = calculateAccuracy(_rebelKillCounter, _rebelHitCounter);
-			debugC(DEBUG_INSANE, "Rebel2: Level 9 completed! accuracy=%d%%", accuracy);
+			debugC(DEBUG_INSANE, "Level 9 completed! accuracy=%d%%", accuracy);
 			playLevelEnd(9);
 			_levelUnlocked[9] = true;
 			return kLevelNextLevel;
@@ -1170,7 +1170,7 @@ int InsaneRebel2::runLevel9() {
 
 		// Death: based on DAT_0047ab94 (death cause tracking)
 		// Original: 0→DIE_A, 1→DIE_C, else→DIE_B
-		debugC(DEBUG_INSANE, "Rebel2: Level 9 death at frame %d", _deathFrame);
+		debugC(DEBUG_INSANE, "Level 9 death at frame %d", _deathFrame);
 		playLevelDeathVariant(9, 1, _deathFrame);
 		if (_vm->shouldQuit())
 			return kLevelQuit;
@@ -1225,7 +1225,7 @@ int InsaneRebel2::runLevel10() {
 
 		if (_playerShield > 0) {
 			int accuracy = calculateAccuracy(_rebelKillCounter, _rebelHitCounter);
-			debugC(DEBUG_INSANE, "Rebel2: Level 10 completed! accuracy=%d%%", accuracy);
+			debugC(DEBUG_INSANE, "Level 10 completed! accuracy=%d%%", accuracy);
 			playLevelEnd(10);
 			_levelUnlocked[10] = true;
 			return kLevelNextLevel;
@@ -1233,7 +1233,7 @@ int InsaneRebel2::runLevel10() {
 
 		// Death + Retry: original plays both in sequence
 		// Original: lives--, if 0 break to game over, else DIE+RETRY
-		debugC(DEBUG_INSANE, "Rebel2: Level 10 death at frame %d", _deathFrame);
+		debugC(DEBUG_INSANE, "Level 10 death at frame %d", _deathFrame);
 		_playerLives--;
 		if (_playerLives <= 0) {
 			playLevelGameOver(10);
@@ -1297,7 +1297,7 @@ int InsaneRebel2::runLevel11() {
 		int16 budget = kLevel11BudgetBase[0] + _vm->_rnd.getRandomNumber(2);
 
 		// Play A.SAN (background loader)
-		debugC(DEBUG_INSANE, "Rebel2: Level 11 Phase 1 - playing 11P01_A.SAN budget=%d", budget);
+		debugC(DEBUG_INSANE, "Level 11 Phase 1 - playing 11P01_A.SAN budget=%d", budget);
 		if (!playLevelSegment("LEV11/P1/11P01_A.SAN", 0x28))
 			return kLevelQuit;
 
@@ -1327,7 +1327,7 @@ int InsaneRebel2::runLevel11() {
 				default: filename = "LEV11/P1/11P01_D.SAN"; break;  // sel == 0
 				}
 
-				debugC(DEBUG_INSANE, "Rebel2: Level 11 Phase 1 wave - %s (state=0x%x sel=%d)", filename, _rebelPhaseState, sel);
+				debugC(DEBUG_INSANE, "Level 11 Phase 1 wave - %s (state=0x%x sel=%d)", filename, _rebelPhaseState, sel);
 				if (!playLevelSegment(filename, 0x428))
 					return kLevelQuit;
 
@@ -1361,7 +1361,7 @@ int InsaneRebel2::runLevel11() {
 		_rebelHandler = 8;
 
 		// Play A.SAN (background loader)
-		debugC(DEBUG_INSANE, "Rebel2: Level 11 Phase 2 - playing 11P02_A.SAN budget=%d", budget);
+		debugC(DEBUG_INSANE, "Level 11 Phase 2 - playing 11P02_A.SAN budget=%d", budget);
 		if (!playLevelSegment("LEV11/P2/11P02_A.SAN", 0x28))
 			return kLevelQuit;
 
@@ -1383,7 +1383,7 @@ int InsaneRebel2::runLevel11() {
 				default: filename = "LEV11/P2/11P02_D.SAN"; break;
 				}
 
-				debugC(DEBUG_INSANE, "Rebel2: Level 11 Phase 2 wave - %s (state=0x%x)", filename, _rebelPhaseState);
+				debugC(DEBUG_INSANE, "Level 11 Phase 2 wave - %s (state=0x%x)", filename, _rebelPhaseState);
 				if (!playLevelSegment(filename, 0x428))
 					return kLevelQuit;
 
@@ -1418,7 +1418,7 @@ int InsaneRebel2::runLevel11() {
 		budget = kLevel11BudgetBase[2] + _vm->_rnd.getRandomNumber(2);
 		_rebelHandler = 8;
 
-		debugC(DEBUG_INSANE, "Rebel2: Level 11 Phase 3 first half - playing 11P03_A.SAN budget=%d", budget);
+		debugC(DEBUG_INSANE, "Level 11 Phase 3 first half - playing 11P03_A.SAN budget=%d", budget);
 		if (!playLevelSegment("LEV11/P3/11P03_A.SAN", 0x28))
 			return kLevelQuit;
 
@@ -1456,7 +1456,7 @@ int InsaneRebel2::runLevel11() {
 				default: filename = "LEV11/P3/11P03_E.SAN"; break;  // duplicate E
 				}
 
-				debugC(DEBUG_INSANE, "Rebel2: Level 11 Phase 3a wave - %s (state=0x%x variantIdx=%d)", filename, _rebelPhaseState, variantIdx);
+				debugC(DEBUG_INSANE, "Level 11 Phase 3a wave - %s (state=0x%x variantIdx=%d)", filename, _rebelPhaseState, variantIdx);
 				if (!playLevelSegment(filename, 0x428))
 					return kLevelQuit;
 
@@ -1508,7 +1508,7 @@ int InsaneRebel2::runLevel11() {
 		budget = kLevel11BudgetBase[3] + _vm->_rnd.getRandomNumber(2);
 
 		// Play G.SAN (background loader for second half)
-		debugC(DEBUG_INSANE, "Rebel2: Level 11 Phase 3 second half - playing 11P03_G.SAN budget=%d", budget);
+		debugC(DEBUG_INSANE, "Level 11 Phase 3 second half - playing 11P03_G.SAN budget=%d", budget);
 		if (!playLevelSegment("LEV11/P3/11P03_G.SAN", 0x28))
 			return kLevelQuit;
 
@@ -1541,7 +1541,7 @@ int InsaneRebel2::runLevel11() {
 				default: filename = "LEV11/P3/11P03_L.SAN"; break;
 				}
 
-				debugC(DEBUG_INSANE, "Rebel2: Level 11 Phase 3b wave - %s (state=0x%x variantIdx=%d)", filename, _rebelPhaseState, variantIdx);
+				debugC(DEBUG_INSANE, "Level 11 Phase 3b wave - %s (state=0x%x variantIdx=%d)", filename, _rebelPhaseState, variantIdx);
 				if (!playLevelSegment(filename, 0x428))
 					return kLevelQuit;
 
@@ -1565,7 +1565,7 @@ int InsaneRebel2::runLevel11() {
 		{
 			totalMisses += _rebelHitCounter;
 			int accuracy = calculateAccuracy(totalKills, totalMisses);
-			debugC(DEBUG_INSANE, "Rebel2: Level 11 completed! kills=%d misses=%d accuracy=%d%%",
+			debugC(DEBUG_INSANE, "Level 11 completed! kills=%d misses=%d accuracy=%d%%",
 				totalKills, totalMisses, accuracy);
 		}
 
@@ -1617,7 +1617,7 @@ int InsaneRebel2::runLevel12() {
 		int16 budget = kLevel12BudgetBase[0] + _vm->_rnd.getRandomNumber(2);
 
 		// Initialization video (12P05.SAN)
-		debugC(DEBUG_INSANE, "Rebel2: Level 12 Phase 1 - init 12P05.SAN budget=%d", budget);
+		debugC(DEBUG_INSANE, "Level 12 Phase 1 - init 12P05.SAN budget=%d", budget);
 		if (!playLevelSegment("LEV12/12P05.SAN", 0x28, false))
 			return kLevelQuit;
 		processWaveEnd(1, &budget, 0, 0);
@@ -1644,7 +1644,7 @@ int InsaneRebel2::runLevel12() {
 				default: filename = "LEV12/P1/12P01_B.SAN"; break;
 				}
 
-				debugC(DEBUG_INSANE, "Rebel2: Level 12 Phase 1 wave - %s (state=0x%x sel=%d)", filename, _rebelPhaseState, sel);
+				debugC(DEBUG_INSANE, "Level 12 Phase 1 wave - %s (state=0x%x sel=%d)", filename, _rebelPhaseState, sel);
 				if (!playLevelSegment(filename, 0x428))
 					return kLevelQuit;
 
@@ -1668,7 +1668,7 @@ int InsaneRebel2::runLevel12() {
 		budget = kLevel12BudgetBase[1] + _vm->_rnd.getRandomNumber(3);
 
 		// Initialization video (12P06.SAN)
-		debugC(DEBUG_INSANE, "Rebel2: Level 12 Phase 2 - init 12P06.SAN budget=%d", budget);
+		debugC(DEBUG_INSANE, "Level 12 Phase 2 - init 12P06.SAN budget=%d", budget);
 		if (!playLevelSegment("LEV12/12P06.SAN", 0x428, false))
 			return kLevelQuit;
 		processWaveEnd(1, &budget, 0, 0);
@@ -1704,7 +1704,7 @@ int InsaneRebel2::runLevel12() {
 				default: filename = "LEV12/P2/12P02_F.SAN"; break;
 				}
 
-				debugC(DEBUG_INSANE, "Rebel2: Level 12 Phase 2 wave - %s (state=0x%x variantIdx=%d)", filename, _rebelPhaseState, variantIdx);
+				debugC(DEBUG_INSANE, "Level 12 Phase 2 wave - %s (state=0x%x variantIdx=%d)", filename, _rebelPhaseState, variantIdx);
 				if (!playLevelSegment(filename, 0x428))
 					return kLevelQuit;
 
@@ -1730,7 +1730,7 @@ int InsaneRebel2::runLevel12() {
 		budget = kLevel12BudgetBase[2] + _vm->_rnd.getRandomNumber(3);
 
 		// Initialization video (12P07.SAN)
-		debugC(DEBUG_INSANE, "Rebel2: Level 12 Phase 3 - init 12P07.SAN budget=%d", budget);
+		debugC(DEBUG_INSANE, "Level 12 Phase 3 - init 12P07.SAN budget=%d", budget);
 		if (!playLevelSegment("LEV12/12P07.SAN", 0x428, false))
 			return kLevelQuit;
 		processWaveEnd(1, &budget, 0, 0);
@@ -1764,7 +1764,7 @@ int InsaneRebel2::runLevel12() {
 				default: filename = "LEV12/P3/12P03_F.SAN"; break;  // duplicate F
 				}
 
-				debugC(DEBUG_INSANE, "Rebel2: Level 12 Phase 3 wave - %s (state=0x%x variantIdx=%d)", filename, _rebelPhaseState, variantIdx);
+				debugC(DEBUG_INSANE, "Level 12 Phase 3 wave - %s (state=0x%x variantIdx=%d)", filename, _rebelPhaseState, variantIdx);
 				if (!playLevelSegment(filename, 0x428))
 					return kLevelQuit;
 
@@ -1788,7 +1788,7 @@ int InsaneRebel2::runLevel12() {
 		budget = kLevel12BudgetBase[3] + _vm->_rnd.getRandomNumber(3);
 
 		// Initialization video (12P08.SAN)
-		debugC(DEBUG_INSANE, "Rebel2: Level 12 Phase 4 - init 12P08.SAN budget=%d", budget);
+		debugC(DEBUG_INSANE, "Level 12 Phase 4 - init 12P08.SAN budget=%d", budget);
 		if (!playLevelSegment("LEV12/12P08.SAN", 0x428, false))
 			return kLevelQuit;
 		processWaveEnd(1, &budget, 0, 0);
@@ -1821,7 +1821,7 @@ int InsaneRebel2::runLevel12() {
 				default: filename = "LEV12/P4/12P04_F.SAN"; break;
 				}
 
-				debugC(DEBUG_INSANE, "Rebel2: Level 12 Phase 4 wave - %s (state=0x%x variantIdx=%d)", filename, _rebelPhaseState, variantIdx);
+				debugC(DEBUG_INSANE, "Level 12 Phase 4 wave - %s (state=0x%x variantIdx=%d)", filename, _rebelPhaseState, variantIdx);
 				if (!playLevelSegment(filename, 0x428))
 					return kLevelQuit;
 
@@ -1846,7 +1846,7 @@ int InsaneRebel2::runLevel12() {
 		// ----- LEVEL COMPLETED -----
 		{
 			int accuracy = calculateAccuracy(_rebelKillCounter, _rebelHitCounter);
-			debugC(DEBUG_INSANE, "Rebel2: Level 12 completed! kills=%d misses=%d accuracy=%d%%",
+			debugC(DEBUG_INSANE, "Level 12 completed! kills=%d misses=%d accuracy=%d%%",
 				_rebelKillCounter, _rebelHitCounter, accuracy);
 		}
 
@@ -1908,14 +1908,14 @@ int InsaneRebel2::runLevel13() {
 
 		if (_playerShield > 0) {
 			int accuracy = calculateAccuracy(_rebelKillCounter, _rebelHitCounter);
-			debugC(DEBUG_INSANE, "Rebel2: Level 13 completed! accuracy=%d%%", accuracy);
+			debugC(DEBUG_INSANE, "Level 13 completed! accuracy=%d%%", accuracy);
 			playLevelEnd(13);
 			_levelUnlocked[13] = true;
 			return kLevelNextLevel;
 		}
 
 		// Death: frame-based variant selection (FUN_0041B3E1 lines 47-61)
-		debugC(DEBUG_INSANE, "Rebel2: Level 13 death at frame %d", _deathFrame);
+		debugC(DEBUG_INSANE, "Level 13 death at frame %d", _deathFrame);
 		playLevelDeathVariant(13, 1, _deathFrame);
 		if (_vm->shouldQuit())
 			return kLevelQuit;
@@ -1964,14 +1964,14 @@ int InsaneRebel2::runLevel14() {
 
 		if (_playerShield > 0) {
 			int accuracy = calculateAccuracy(_rebelKillCounter, _rebelHitCounter);
-			debugC(DEBUG_INSANE, "Rebel2: Level 14 completed! accuracy=%d%%", accuracy);
+			debugC(DEBUG_INSANE, "Level 14 completed! accuracy=%d%%", accuracy);
 			playLevelEnd(14);
 			_levelUnlocked[14] = true;
 			return kLevelNextLevel;
 		}
 
 		// Death: single video (14DIE.SAN)
-		debugC(DEBUG_INSANE, "Rebel2: Level 14 death at frame %d", _deathFrame);
+		debugC(DEBUG_INSANE, "Level 14 death at frame %d", _deathFrame);
 		playCinematic("LEV14/14DIE.SAN");
 		if (_vm->shouldQuit())
 			return kLevelQuit;
@@ -2036,7 +2036,7 @@ int InsaneRebel2::runLevel15() {
 
 		if (_playerShield > 0) {
 			int accuracy = calculateAccuracy(_rebelKillCounter, _rebelHitCounter);
-			debugC(DEBUG_INSANE, "Rebel2: Level 15 completed! accuracy=%d%%", accuracy);
+			debugC(DEBUG_INSANE, "Level 15 completed! accuracy=%d%%", accuracy);
 			playLevelEnd(15);
 			_levelUnlocked[15] = true;
 			// Level 15 completion leads to credits (FUN_0041BBE8)
@@ -2044,7 +2044,7 @@ int InsaneRebel2::runLevel15() {
 		}
 
 		// Death: frame-based variant selection (FUN_0041B8D7 lines 46-65)
-		debugC(DEBUG_INSANE, "Rebel2: Level 15 death at frame %d", _deathFrame);
+		debugC(DEBUG_INSANE, "Level 15 death at frame %d", _deathFrame);
 		playLevelDeathVariant(15, 1, _deathFrame);
 		if (_vm->shouldQuit())
 			return kLevelQuit;
diff --git a/engines/scumm/smush/rebel/smush_player_ra1.cpp b/engines/scumm/smush/rebel/smush_player_ra1.cpp
index e882c9788cb..8a9fc94d781 100644
--- a/engines/scumm/smush/rebel/smush_player_ra1.cpp
+++ b/engines/scumm/smush/rebel/smush_player_ra1.cpp
@@ -296,13 +296,13 @@ bool SmushPlayerRebel1::handleGameFetch(int32 subSize, Common::SeekableReadStrea
 			}
 		}
 
-		debugC(DEBUG_SMUSH, "RA1 FTCH: frame=%d id=0x%08x pos=(%d,%d) using stored FOBJ codec=%d size=%dx%d",
+		debugC(DEBUG_SMUSH, "FTCH: frame=%d id=0x%08x pos=(%d,%d) using stored FOBJ codec=%d size=%dx%d",
 			_frame, fetchId, left, top, storedCodec, _storedFobjWidth, _storedFobjHeight);
 		decodeFrameObject(storedCodec, _storedFobjData, left, top,
 			_storedFobjWidth, _storedFobjHeight, _storedFobjDataSize,
 			storedParam, _storedFobjParm2);
 	} else {
-		debugC(DEBUG_SMUSH, "RA1 FTCH: frame=%d id=0x%08x with no stored FOBJ data", _frame, fetchId);
+		debugC(DEBUG_SMUSH, "FTCH: frame=%d id=0x%08x with no stored FOBJ data", _frame, fetchId);
 	}
 
 	return true;
@@ -319,7 +319,7 @@ void SmushPlayerRebel1::ra1HandleGost(int32 subSize, Common::SeekableReadStream
 	const int32 ghostY = b.readSint32BE();
 
 	if (!_hasFrameFobjForGost || _lastFobjData == nullptr || _lastFobjDataSize <= 0) {
-		debugC(DEBUG_SMUSH, "RA1 GOST: frame=%d ignored type=0x%08x pos=(%d,%d) (no current-frame FOBJ cached)",
+		debugC(DEBUG_SMUSH, "GOST: frame=%d ignored type=0x%08x pos=(%d,%d) (no current-frame FOBJ cached)",
 			_frame, ghostType, ghostX, ghostY);
 		return;
 	}
@@ -336,12 +336,12 @@ void SmushPlayerRebel1::ra1HandleGost(int32 subSize, Common::SeekableReadStream
 		priorityFlags = 0x6000;
 		break;
 	default:
-		debugC(DEBUG_SMUSH, "RA1 GOST: frame=%d ignored unknown type=0x%08x pos=(%d,%d)",
+		debugC(DEBUG_SMUSH, "GOST: frame=%d ignored unknown type=0x%08x pos=(%d,%d)",
 			_frame, ghostType, ghostX, ghostY);
 		return;
 	}
 
-	debugC(DEBUG_SMUSH, "RA1 GOST: frame=%d type=0x%08x flags=0x%04x pos=(%d,%d) size=%dx%d codec=%d",
+	debugC(DEBUG_SMUSH, "GOST: frame=%d type=0x%08x flags=0x%04x pos=(%d,%d) size=%dx%d codec=%d",
 		_frame, ghostType, priorityFlags, ghostX, ghostY,
 		_lastFobjWidth, _lastFobjHeight, _lastFobjCodec);
 
@@ -638,7 +638,7 @@ bool SmushPlayerRebel1::handleGameStoreFrame() {
 }
 
 void SmushPlayerRebel1::handleGameFrameObjectPre(int codec, int left, int top, int width, int height, int dataSize) {
-	debugC(DEBUG_SMUSH, "RA1 FOBJ: frame=%d codec=%d pos=(%d,%d) size=%dx%d dataSize=%d storeFrame=%d",
+	debugC(DEBUG_SMUSH, "FOBJ: frame=%d codec=%d pos=(%d,%d) size=%dx%d dataSize=%d storeFrame=%d",
 		_frame, codec, left, top, width, height, dataSize, _storeFrame);
 }
 
@@ -856,7 +856,7 @@ bool SmushPlayerRebel1::ra1HandleUnknownFrameChunk(uint32 subType, int32 subSize
 	byte tb2 = (subType >> 8) & 0xFF, tb3 = subType & 0xFF;
 	if (tb0 > 0x40 && tb0 < 0x5B && tb1 > 0x40 && tb1 < 0x5B &&
 	    tb2 > 0x40 && tb2 < 0x5B && tb3 > 0x40 && tb3 < 0x5B) {
-		debugC(DEBUG_SMUSH, "RA1: unknown uppercase tag %s at frame %d, stopping frame parse", tag2str(subType), _frame);
+		debugC(DEBUG_SMUSH, "unknown uppercase tag %s at frame %d, stopping frame parse", tag2str(subType), _frame);
 		return true;
 	}
 




More information about the Scummvm-git-logs mailing list