Only in sys: .DS_Store
diff -ur sys 2/conf/files sys/conf/files
--- sys 2/conf/files	2020-07-20 02:15:59.000000000 +0200
+++ sys/conf/files	2021-04-22 19:43:35.000000000 +0200
@@ -770,6 +770,7 @@
 file kern/vfs_vnops.c
 file kern/vfs_getcwd.c
 file kern/spec_vnops.c
+file kern/start_game_mode.c
 file miscfs/deadfs/dead_vnops.c
 file miscfs/fifofs/fifo_vnops.c		fifo
 file msdosfs/msdosfs_conv.c		msdosfs
diff -ur sys 2/kern/kern_exit.c sys/kern/kern_exit.c
--- sys 2/kern/kern_exit.c	2020-03-18 16:48:21.000000000 +0100
+++ sys/kern/kern_exit.c	2021-04-22 03:54:10.000000000 +0200
@@ -125,6 +125,13 @@
 	struct process *pr, *qr, *nqr;
 	struct rusage *rup;
 
+extern struct proc *game_mode_proc;
+extern int game_mode_on;
+void stop_game_mode(void);
+	if(game_mode_on && game_mode_proc && (p->p_p->ps_pid==game_mode_proc->p_p->ps_pid)) {
+		stop_game_mode();
+	}
+
 	atomic_setbits_int(&p->p_flag, P_WEXIT);
 
 	pr = p->p_p;
diff -ur sys 2/kern/kern_sched.c sys/kern/kern_sched.c
--- sys 2/kern/kern_sched.c	2020-06-11 02:00:01.000000000 +0200
+++ sys/kern/kern_sched.c	2021-04-22 05:36:16.000000000 +0200
@@ -186,6 +186,13 @@
 				SCHED_UNLOCK(s);
 				wakeup(spc);
 			}
+else if(!CPU_IS_PRIMARY(curcpu())) {
+extern int game_mode_on;
+void game_mode_exec(void);
+	if(game_mode_on) {
+		game_mode_exec();
+	}
+}
 #endif
 			cpu_idle_cycle();
 		}
Only in sys/kern: start_game_mode.c
Only in sys/kern: start_game_mode_shared_memory.c
diff -ur sys 2/kern/syscalls.master sys/kern/syscalls.master
--- sys 2/kern/syscalls.master	2020-03-18 20:33:36.000000000 +0100
+++ sys/kern/syscalls.master	2021-04-23 00:05:16.000000000 +0200
@@ -566,3 +566,5 @@
 328	OBSOL		__tfork51
 329	STD NOLOCK	{ void sys___set_tcb(void *tcb); }
 330	STD NOLOCK	{ void *sys___get_tcb(void); }
+
+331 STD 	{ void *sys_start_game_mode(size_t memory_size); }
