diff --git a/.forgejo/workflows/run-test-asserts.yaml b/.forgejo/workflows/run-test-asserts.yaml
index a3d4fcd..5b2458e 100644
--- a/.forgejo/workflows/run-test-asserts.yaml
+++ b/.forgejo/workflows/run-test-asserts.yaml
@@ -1,10 +1,6 @@
name: Run test asserts
run-name: Test assert-all by ${{github.actor}}
-on:
- push:
- branches:
- - master
- pull_request:
+on: [push,pull_request]
jobs:
Test-Asserts:
runs-on: self-hosted
diff --git a/README.md b/README.md
index 5605ac1..002f442 100644
--- a/README.md
+++ b/README.md
@@ -32,14 +32,10 @@ The files in this repro try to handle these steps for you.
* make
* openmsx
* sdcc
-* hex2bin-2.5 (see [https://hex2bin.sourceforge.net/](https://hex2bin.sourceforge.net/))
+* hex2bin
* 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
new file mode 100644
index 0000000..189bcd1
--- /dev/null
+++ b/lib/emuctl/mouse.bat
@@ -0,0 +1,3 @@
+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 273d2a8..3edc069 100644
--- a/lib/emuctl/z80.bat
+++ b/lib/emuctl/z80.bat
@@ -1,19 +1,2 @@
-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
+rem Goto normal z80 speed
+omsxctl set speed 100
\ No newline at end of file
diff --git a/lib/make/mb_autoexec.mk b/lib/make/mb_autoexec.mk
index 29bf0c2..52494ba 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 failed_autoexec $(MB_AUTOEXEC_STARTUP_EXITCODE))
+ $(call mb_autoexec_append_cmd,$(1),omsxctl fail_after $(MB_AUTOEXEC_STARTUP_TIMEOUT) seconds fail_after_init $(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 failed_cmd $(MB_AUTOEXEC_CMD_EXITCODE))
+ $(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_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 failed_test $(MB_AUTOEXEC_TEST_EXITCODE))
+ $(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_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 c214f95..2c8496b 100644
--- a/lib/make/mb_openmsx.mk
+++ b/lib/make/mb_openmsx.mk
@@ -15,6 +15,12 @@ MB_OPENMSX_ARGS = \
-script $(PATH_MSXBUILD_REAL)/lib/openmsx/fail_after.tcl \
-script $(PATH_MSXBUILD_REAL)/lib/openmsx/omsxctl.tcl
+# TODO: add run flag to disable xml output like "-control stdio-boot-only"
+ifeq ($(OS),Windows_NT)
+ MB_OPENMSX_CMD = $(PATH_OPENMSX)/openmsx $(MB_OPENMSX_ARGS) -control stdio < $(PATH_MSXBUILD_REAL)/lib/openmsx/boot_stdio.xml
+else
+ MB_OPENMSX_CMD = $(PATH_OPENMSX)/openmsx $(MB_OPENMSX_ARGS) -control stdio < $(PATH_MSXBUILD_REAL)/lib/openmsx/boot_stdio.xml | sed -n -e 's/.*>\(.*\)<.*/\1/p' | tail -n+3
+endif
define _mb_openmsx_run
@echo === Running openMSX
$(call mb_msxhub_file,$(PATH_MSXBUILD_REAL)/lib/openmsx,OMSXCTL/1.0-1/get/OMSXCTL/omsxctl.tcl)
@@ -26,9 +32,7 @@ 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
+ $(MB_OPENMSX_CMD)
endef
define mb_openmsx_dosctl
diff --git a/lib/make/mb_packages.mk b/lib/make/mb_packages.mk
index 8518285..69bc8c0 100644
--- a/lib/make/mb_packages.mk
+++ b/lib/make/mb_packages.mk
@@ -1,5 +1,6 @@
# 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 70edb9b..e44a32d 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=off
+# SAVE_SETTINGS_ON_EXIT=false
# Disables automatic settings saving.
#
# RENDERER=SDL
diff --git a/lib/openmsx/boot_stdio.xml b/lib/openmsx/boot_stdio.xml
index 6cfb7ca..04e88f5 100644
--- a/lib/openmsx/boot_stdio.xml
+++ b/lib/openmsx/boot_stdio.xml
@@ -4,4 +4,6 @@ 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 8e590d9..e2e1563 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 failed_boot 124
+ fail_after [string trim $::env(FAIL_AFTER_BOOT)] realtime fail_after_boot 124
}