diff --git a/xtrn/minesweeper/loser.bin b/xtrn/minesweeper/loser.bin
new file mode 100644
index 0000000000000000000000000000000000000000..b07b0cf6f77a71531f78eb76adfa0916f2ee64ee
Binary files /dev/null and b/xtrn/minesweeper/loser.bin differ
diff --git a/xtrn/minesweeper/minesweeper.js b/xtrn/minesweeper/minesweeper.js
index 29f28484b0bdfc27f940e76c394572ddba797625..03e1177009e7f43314e825f18997f1a8866a07c2 100644
--- a/xtrn/minesweeper/minesweeper.js
+++ b/xtrn/minesweeper/minesweeper.js
@@ -14,6 +14,9 @@ const header_height = 4;
 const winners_list = js.exec_dir + "winners.jsonl";
 const losers_list = js.exec_dir + "losers.jsonl";
 const help_file = js.exec_dir + "minesweeper.hlp";
+const welcome_image = js.exec_dir + "welcome.bin";
+const winner_image = js.exec_dir + "winner.bin";
+const loser_image = js.exec_dir + "loser.bin";
 const max_difficulty = 5;
 const min_mine_density = 0.10;
 const mine_density_multiplier = 0.025;
@@ -47,6 +50,8 @@ if(!options.selector)
 	options.selector = 0;
 if(!options.highlight)
 	options.highlight = true;
+if(!options.image_delay)
+	options.image_delay = 1500;
 if(!options.sub)
     options.sub = load({}, "syncdata.js").find();
 
@@ -68,6 +73,26 @@ var difficulty = userprops.get(ini_section, "difficulty", options.difficulty);
 
 log(LOG_DEBUG, title + " options: " + JSON.stringify(options));
 
+function show_image(filename, fx)
+{
+	var Graphic = load({}, "graphic.js");
+	var sauce_lib = load({}, "sauce_lib.js");
+	var sauce = sauce_lib.read(filename);
+	if(sauce && sauce.datatype == sauce_lib.defs.datatype.bin) {
+		try {
+			var graphic = new Graphic(sauce.cols, sauce.rows);
+			graphic.load(filename);
+			if(fx && graphic.revision >= 1.82)
+				graphic.drawfx('center', 'center');
+			else
+				graphic.draw('center', 'center');
+			sleep(options.image_delay);
+		} catch(e) { 
+			log(LOG_DEBUG, e);
+		}
+	}
+}
+
 function countmines(x, y)
 {
 	var count = 0;
@@ -143,6 +168,8 @@ function isgamewon()
 		}
 		gamewon = true;
 		gameover = true;
+		draw_board(false);
+		show_image(winner_image, true);
 		return true;
 	}
 	return false;
@@ -155,6 +182,8 @@ function lostgame(cause)
 	game.name = user.alias;
 	game.cause = cause;
 	json_lines.add(losers_list, game);
+	draw_board(true);
+	show_image(loser_image, true);
 }
 	
 function calc_difficulty(game)
@@ -189,6 +218,7 @@ function secondstr(t)
 function show_winners(level)
 {
 	console.clear();
+	console.aborted = false;
 	console.attributes = YELLOW|BG_BLUE|BG_HIGH;
 	console_center(" " + title + " Top " + options.winners + " Winners ");
 	console.attributes = LIGHTGRAY;
@@ -263,12 +293,12 @@ function show_winners(level)
 	var last_level = 0;
 	for(var i = 0; i < list.length && displayed < options.winners && !console.aborted; i++) {
 		var game = list[i];
-		var level = calc_difficulty(game);
-		if(Math.ceil(level) != Math.ceil(last_level)) {
-			last_level = level;
+		var difficulty = calc_difficulty(game);
+		if(Math.ceil(difficulty) != Math.ceil(last_level)) {
+			last_level = difficulty;
 			count = 0;
 		} else {
-			if(level > 1.0 && count >= options.winners / max_difficulty)
+			if(!level && difficulty > 1.0 && count >= options.winners / max_difficulty)
 				continue;
 		}
 		if(displayed&1)
@@ -279,7 +309,7 @@ function show_winners(level)
 			,count + 1
 			,game.name
 			,game.net_addr ? ('@'+game.net_addr) : ''
-			,level
+			,difficulty
 			,secondstr(game.end - game.start)
 			,game.width
 			,game.height
@@ -740,6 +770,8 @@ function change(x, y)
 
 function play()
 {
+	console.clear();
+	show_image(welcome_image);
 	init_game(difficulty);
 	draw_board(true);
 	var full_redraw = false;
diff --git a/xtrn/minesweeper/welcome.bin b/xtrn/minesweeper/welcome.bin
new file mode 100644
index 0000000000000000000000000000000000000000..bd3635d266c09d962dd5655d430d91b58b44d95a
Binary files /dev/null and b/xtrn/minesweeper/welcome.bin differ
diff --git a/xtrn/minesweeper/winner.bin b/xtrn/minesweeper/winner.bin
new file mode 100644
index 0000000000000000000000000000000000000000..1de7d66932ae43de68f546ece8632dbf7abe31dd
Binary files /dev/null and b/xtrn/minesweeper/winner.bin differ