diff --git a/README.md b/README.md
index 002f442..5605ac1 100644
--- a/README.md
+++ b/README.md
@@ -32,10 +32,14 @@ The files in this repro try to handle these steps for you.
* make
* openmsx
* sdcc
-* hex2bin
+* hex2bin-2.5 (see [https://hex2bin.sourceforge.net/](https://hex2bin.sourceforge.net/))
* wget
* unix2dos
+For debian use;
+
+ apt-get install make openmsx wget dos2unix sdcc
+
## Usage
Include the `lib/make/msxbuild.mk` file from your Makefile.
diff --git a/lib/emuctl/mouse.bat b/lib/emuctl/mouse.bat
deleted file mode 100644
index 189bcd1..0000000
--- a/lib/emuctl/mouse.bat
+++ /dev/null
@@ -1,3 +0,0 @@
-rem Add mouse to openMSX
-omsxctl plug joyporta mouse
-omsxctl plug
\ No newline at end of file
diff --git a/lib/emuctl/z80.bat b/lib/emuctl/z80.bat
index 3edc069..273d2a8 100644
--- a/lib/emuctl/z80.bat
+++ b/lib/emuctl/z80.bat
@@ -1,2 +1,19 @@
-rem Goto normal z80 speed
-omsxctl set speed 100
\ No newline at end of file
+rem Select z80 speed
+IFF 3 == %1
+ echo 'Select 3.51 Mhz'
+ omsxctl set speed 100 > NUL
+ exit 0
+ENDIFF
+IFF 7 == %1
+ echo 'Select 7 Mhz'
+ omsxctl set speed 200 > NUL
+ exit 0
+ENDIFF
+IFF 11 == %1
+ echo 'Select 11 Mhz'
+ omsxctl set speed 333 > NUL
+ exit 0
+ENDIFF
+echo 'Select openMSX Z80 emulation speed'
+echo 'Usage: z80 <3/7/11>'
+exit 1
diff --git a/lib/make/mb_autoexec.mk b/lib/make/mb_autoexec.mk
index 52494ba..29bf0c2 100644
--- a/lib/make/mb_autoexec.mk
+++ b/lib/make/mb_autoexec.mk
@@ -36,7 +36,7 @@ endef
define mb_autoexec_write_default
echo -n "" > $(1)/autoexec.bat
$(if $(filter true,$(MB_AUTOEXEC_BYSELF)),$(call mb_autoexec_append_rem,$(1),$(MB_AUTOEXEC_BYSELF_MSG)))
- $(call mb_autoexec_append_cmd,$(1),omsxctl fail_after $(MB_AUTOEXEC_STARTUP_TIMEOUT) seconds fail_after_init $(MB_AUTOEXEC_STARTUP_EXITCODE))
+ $(call mb_autoexec_append_cmd,$(1),omsxctl fail_after $(MB_AUTOEXEC_STARTUP_TIMEOUT) seconds failed_autoexec $(MB_AUTOEXEC_STARTUP_EXITCODE))
$(if $(filter 40,$(MB_AUTOEXEC_TEXTMODE)),$(call mb_autoexec_append_cmd,$(1),mode 40))
$(if $(filter 40,$(MB_AUTOEXEC_TEXTMODE)),$(call mb_autoexec_append_echo,$(1),Enabled mode 40.))
$(if $(filter 80,$(MB_AUTOEXEC_TEXTMODE)),$(call mb_autoexec_append_cmd,$(1),mode 80))
@@ -60,7 +60,7 @@ endef
define mb_autoexec_cmd
@echo === Generating autoexec.bat for command
$(call mb_autoexec_write_default,$(1))
- $(call mb_autoexec_append_cmd,$(1),omsxctl fail_after $(MB_AUTOEXEC_CMD_TIMEOUT) seconds fail_after_cmd $(MB_AUTOEXEC_CMD_EXITCODE))
+ $(call mb_autoexec_append_cmd,$(1),omsxctl fail_after $(MB_AUTOEXEC_CMD_TIMEOUT) seconds failed_cmd $(MB_AUTOEXEC_CMD_EXITCODE))
$(call mb_autoexec_append_echo,$(1),Running command '$(2)')
$(call mb_autoexec_append_cmd,$(1),$(2))
$(call mb_autoexec_append_exit,$(1))
@@ -68,7 +68,7 @@ endef
define mb_autoexec_cmd_test
@echo === Generating autoexec.bat for command test
$(call mb_autoexec_write_default,$(1))
- $(call mb_autoexec_append_cmd,$(1),omsxctl fail_after $(MB_AUTOEXEC_TEST_TIMEOUT) seconds fail_after_test $(MB_AUTOEXEC_TEST_EXITCODE))
+ $(call mb_autoexec_append_cmd,$(1),omsxctl fail_after $(MB_AUTOEXEC_TEST_TIMEOUT) seconds failed_test $(MB_AUTOEXEC_TEST_EXITCODE))
$(call mb_autoexec_append_echo,$(1),Running test '$(2)')
$(call mb_autoexec_append_cmd,$(1),$(2))
$(call mb_autoexec_append_exit,$(1))
diff --git a/lib/make/mb_openmsx.mk b/lib/make/mb_openmsx.mk
index 0812739..c214f95 100644
--- a/lib/make/mb_openmsx.mk
+++ b/lib/make/mb_openmsx.mk
@@ -26,6 +26,8 @@ define _mb_openmsx_run
JOYPORTB=$(MB_OPENMSX_JOYPORTB) \
SCALE_FACTOR=$(MB_OPENMSX_SCALE_FACTOR) \
SPEED=$(MB_OPENMSX_SPEED) \
+ SAVE_SETTINGS_ON_EXIT=off \
+ THROTTLE=off \
$(PATH_OPENMSX)/openmsx $(MB_OPENMSX_ARGS) -control stdio < $(PATH_MSXBUILD_REAL)/lib/openmsx/boot_stdio.xml
endef
diff --git a/lib/make/mb_packages.mk b/lib/make/mb_packages.mk
index 69bc8c0..8518285 100644
--- a/lib/make/mb_packages.mk
+++ b/lib/make/mb_packages.mk
@@ -1,6 +1,5 @@
# MSXHUB fetch package files functions
define mb_package_emuctl
- $(call mb_copy,$(PATH_MSXBUILD)/lib/emuctl/mouse.bat,$(1))
$(call mb_copy,$(PATH_MSXBUILD)/lib/emuctl/shutdown.bat,$(1))
$(call mb_copy,$(PATH_MSXBUILD)/lib/emuctl/z80.bat,$(1))
endef
diff --git a/lib/openmsx/boot_env.tcl b/lib/openmsx/boot_env.tcl
index e44a32d..70edb9b 100644
--- a/lib/openmsx/boot_env.tcl
+++ b/lib/openmsx/boot_env.tcl
@@ -3,7 +3,7 @@
# Typically used in automation tools which run openMSX without human interaction.
# Supported environment variables by this script;
#
-# SAVE_SETTINGS_ON_EXIT=false
+# SAVE_SETTINGS_ON_EXIT=off
# Disables automatic settings saving.
#
# RENDERER=SDL
diff --git a/lib/openmsx/boot_stdio.xml b/lib/openmsx/boot_stdio.xml
index 04e88f5..6cfb7ca 100644
--- a/lib/openmsx/boot_stdio.xml
+++ b/lib/openmsx/boot_stdio.xml
@@ -4,6 +4,4 @@ When booting 'openmsx -control stdio < boot_stdio.xml'
It starts then in power off mode and without renderer for fast booting.
-->
set power on
- set throttle off
- set save_settings_on_exit off
diff --git a/lib/openmsx/fail_after.tcl b/lib/openmsx/fail_after.tcl
index e2e1563..8e590d9 100644
--- a/lib/openmsx/fail_after.tcl
+++ b/lib/openmsx/fail_after.tcl
@@ -73,5 +73,5 @@ if {[info exists ::env(FAIL_AFTER_PATH)] && ([string trim $::env(FAIL_AFTER_PATH
# Enables boot watch dog timer when FAIL_AFTER_BOOT env has a value. (124 see `man timeout`)
if {[info exists ::env(FAIL_AFTER_BOOT)] && ([string trim $::env(FAIL_AFTER_BOOT)] != "")} {
- fail_after [string trim $::env(FAIL_AFTER_BOOT)] realtime fail_after_boot 124
+ fail_after [string trim $::env(FAIL_AFTER_BOOT)] realtime failed_boot 124
}