diff --git a/xtrn/mc/mc.js b/xtrn/mc/mc.js
index f4557ebac4985aed93a7bca5b25ea4fb6241efa0..a0a5694ff87a263c28bae6ab302d4de656f788e9 100644
--- a/xtrn/mc/mc.js
+++ b/xtrn/mc/mc.js
@@ -173,7 +173,7 @@ function find_player()
 	var found=false;
 	var i;
 
-	if(messagefile.length==0) {
+	if((!messagefile.exists) || messagefile.length==0) {
 		messagefile.open('a');
 		messagefile.writeln('Current file begins on '+system.datestr()+'.');
 		messagefile.writeln('');
@@ -306,7 +306,7 @@ function check_played(i)
 function logon(a)
 {
 	var j='               ';
-	ansic(5);
+	ansic(4);
 	console.print(j);
 	console.print('赏屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯突\r\n');
 	ansic(4);
@@ -404,6 +404,7 @@ function logon(a)
 		ansic(2);
 		console.print('!\r\n');
 	}
+	ansic(0);
 }
 
 function general_instructions()
@@ -490,6 +491,7 @@ function mc_main()
 	setcol(1);
 	console.print("Do you wish to see what's\r\n");
 	console.print("happened to the others in the game? ");
+	setcol(0);
 	if(yn()) {
 		console.printfile(messagefile.name);
 		console.pause();
@@ -497,7 +499,6 @@ function mc_main()
 	done=false;
 	slot=roul=twenty=bacc=false;
 	do {
-		ansic(7);
 		tleft();
 		checkhangup();
 		if(hangup)
diff --git a/xtrn/mc/shared.js b/xtrn/mc/shared.js
index 43b99cf336493346ab6f10b712cf0e57510c60e9..3889da4b49cbfc103296e48441b427c888c9b315 100644
--- a/xtrn/mc/shared.js
+++ b/xtrn/mc/shared.js
@@ -161,8 +161,50 @@ function tleft() {}
 function sysoplog() {}
 
 function ansic(x) {
-	// TODO: This needs a proper mapping...
-	console.attributes=x;
+	if(x==1 || x==0)
+		x=0;
+	else {
+		if(x==2)
+			x=7;
+		else
+			x-=2;
+	}
+	
+	switch(x) {
+		case 0:
+			console.attributes=7;
+			break;
+		case 1:
+			console.attributes=LIGHTCYAN;
+			break;
+		case 2:
+			console.attributes=YELLOW;
+			break;
+		case 3:
+			console.attributes=MAGENTA;
+			break;
+		case 4:
+			console.attributes=WHITE|BG_BLUE;
+			break;
+		case 5:
+			console.attributes=GREEN;
+			break;
+		case 6:
+			console.attributes=LIGHTRED|BLINK;
+			break;
+		case 7:
+			console.attributes=LIGHTBLUE;
+			break;
+		case 8:
+			console.attributes=BLUE;
+			break;
+		case 9:
+			console.attributes=CYAN;
+			break;
+		default:
+			console.attributes=7;
+			break;
+	}
 }
 
 function checkhangup() 
@@ -1079,6 +1121,7 @@ function date_kathy()
 				console.crlf();
 			ansic(8);
 			console.print("FOOLED YOU DIDN'T I!"+'\r\n');
+			ansic(0);
 			console.crlf();
 			console.print("This is a family program, so leaving out the details, let's just say"+'\r\n');
 			console.print('that you leave the suite 12 hours later, with a smile on your face and'+'\r\n');
diff --git a/xtrn/mc/slots.js b/xtrn/mc/slots.js
index 390f581ff4b5f5d2f9eac4f60501b4fa310effc1..5cb1623dbe2d9faddb12c1cf96b891a8403d6c7b 100644
--- a/xtrn/mc/slots.js
+++ b/xtrn/mc/slots.js
@@ -69,6 +69,7 @@ function slots_process_bets()
 					ansic(4); console.print('*** ');
 					ansic(8); console.print('JACKPOT');
 					ansic(4); console.print(' ***\r\n');
+					ansic(0);
 					sysoplog(player.name+'WON THE JACKPOT!!!');
 					console.crlf();
 					break;