MB_OPENMSX_BOOT_TIMEOUT ?= 25 MB_DOC_FIRE_VARIABLE += $(call mb_make_call,mb_doc_variable,MB_OPENMSX_BOOT_TIMEOUT,"Timeout in seconds to guard for boot failures.") MB_OPENMSX_BOOT_OS ?= nextor MB_DOC_FIRE_VARIABLE += $(call mb_make_call,mb_doc_variable,MB_OPENMSX_BOOT_OS,"The default OS to run$(MB_MAKE_COMMA) valid values are; nextor$(MB_MAKE_COMMA)msxdos1$(MB_MAKE_COMMA)msxdos2") MB_OPENMSX_MACHINE ?= Philips_NMS_8250 MB_DOC_FIRE_VARIABLE += $(call mb_make_call,mb_doc_variable,MB_OPENMSX_MACHINE,"The default MSX machine to use.",$(MB_OPENMSX_MACHINE)) MB_OPENMSX_MACHINE_RAM ?= ram1mb MB_DOC_FIRE_VARIABLE += $(call mb_make_call,mb_doc_variable,MB_OPENMSX_MACHINE_RAM,"Extra ram extension for machine allowed: off$(MB_MAKE_COMMA)ram16k$(MB_MAKE_COMMA)ram64k$(MB_MAKE_COMMA)ram512k$(MB_MAKE_COMMA)ram1mb$(MB_MAKE_COMMA)ram2mb$(MB_MAKE_COMMA)ram4mb") MB_OPENMSX_SPEED ?= $(if $(findstring turboR,$(MB_OPENMSX_MACHINE)),100,333) MB_DOC_FIRE_VARIABLE += $(call mb_make_call,mb_doc_variable,MB_OPENMSX_SPEED,"The throttled MSX emulation speed.") MB_OPENMSX_ARGS ?= MB_DOC_FIRE_VARIABLE += $(call mb_make_call,mb_doc_variable,MB_OPENMSX_ARGS,"Extra arguments to invoke openMSX with.") MB_OPENMSX_HDD_SIZE ?= 4m MB_DOC_FIRE_VARIABLE += $(call mb_make_call,mb_doc_variable,MB_OPENMSX_HDD_SIZE,"The default fire-hdd disk image size.") MB_OPENMSX_SCALE_FACTOR ?= 3 MB_DOC_FIRE_VARIABLE += $(call mb_make_call,mb_doc_variable,MB_OPENMSX_SCALE_FACTOR,"The gui scale factor to display the emulation.") MB_OPENMSX_THROTTLE ?= off MB_DOC_FIRE_VARIABLE += $(call mb_make_call,mb_doc_variable,MB_OPENMSX_THROTTLE,"An on/off flag to control throttling globally.") MB_OPENMSX_HEADLESS ?= on MB_DOC_FIRE_VARIABLE += $(call mb_make_call,mb_doc_variable,MB_OPENMSX_HEADLESS,"Controls if openMSX starts headless.") MB_OPENMSX_RENDERER ?= SDLGL-PP MB_DOC_FIRE_VARIABLE += $(call mb_make_call,mb_doc_variable,MB_OPENMSX_RENDERER,"The gui renderer used to display the window head with.") MB_OPENMSX_LOG_PREFIX ?= "Start openMSX! for " MB_DOC_FIRE_VARIABLE_DEEP += $(call mb_make_call,mb_doc_variable_deep,MB_OPENMSX_LOG_PREFIX,"Prefix of startup message of openMSX.") # Kills valuable info on build server, thus keep off until issues openMSX are solved, rm this variale ASP; MB_OPENMSX_STDOUT_NULL ?= off #MB_DOC_FIRE_VARIABLE_DEEP += $(call mb_make_call,mb_doc_variable_deep,MB_OPENMSX_STDOUT_NULL,"Pipes openMSX stdout to null for silence messages.") define mb_openmsx_setup $(if $(wildcard $(1)-omsx),,$(call mb_mkdir,$(1)-omsx)) $(if $(wildcard $(1)-omsx/stdio.xml),,$(call mb_copy,$(PATH_MSXBUILD_REAL)/lib/openmsx/stdio.xml,$(1)-omsx)) $(if $(wildcard $(1)-omsx/share),,$(call mb_mkdir,$(1)-omsx/share)) $(if $(wildcard $(1)-omsx/share/settings.xml),,$(call mb_copy,$(PATH_MSXBUILD_REAL)/lib/openmsx/share/settings.xml,$(1)-omsx/share)) $(if $(wildcard $(1)-omsx/share/scripts),,$(call mb_mkdir,$(1)-omsx/share/scripts)) $(if $(wildcard $(1)-omsx/share/scripts/boot_exec.tcl),,$(call mb_copy,$(PATH_MSXBUILD_REAL)/lib/openmsx/share/scripts/boot_exec.tcl,$(1)-omsx/share/scripts)) $(if $(wildcard $(1)-omsx/share/scripts/fail_after.tcl),,$(call mb_copy,$(PATH_MSXBUILD_REAL)/lib/openmsx/share/scripts/fail_after.tcl,$(1)-omsx/share/scripts)) $(if $(wildcard $(1)-omsx/share/scripts/fire_hdd.tcl),,$(call mb_copy,$(PATH_MSXBUILD_REAL)/lib/openmsx/share/scripts/fire_hdd.tcl,$(1)-omsx/share/scripts)) $(if $(wildcard $(1)-omsx/share/scripts/headless.tcl),,$(call mb_copy,$(PATH_MSXBUILD_REAL)/lib/openmsx/share/scripts/headless.tcl,$(1)-omsx/share/scripts)) $(if $(wildcard $(1)-omsx/share/scripts/night_flight.tcl),,$(call mb_copy,$(PATH_MSXBUILD_REAL)/lib/openmsx/share/scripts/night_flight.tcl,$(1)-omsx/share/scripts)) $(if $(wildcard $(1)-omsx/share/scripts/omsxctl.tcl),,$(call mb_msxhub_file,$(1)-omsx/share/scripts,OMSXCTL/1.0-1/get/OMSXCTL/omsxctl.tcl)) $(if $(wildcard $(1)-omsx/share/extensions),,$(call mb_mkdir,$(1)-omsx/share/extensions)) $(if $(wildcard $(1)-omsx/share/extensions/fire-hdd.xml),,$(call mb_copy,$(PATH_MSXBUILD_REAL)/lib/openmsx/share/extensions/fire-hdd.xml,$(1)-omsx/share/extensions)) $(call mb_make_call,mb_msxrom_setup,$(1)) $(call mb_make_call,mb_msxrom_extension_ide_nextor,$(1)) $(call mb_make_call,mb_msxrom_machine_$(2),$(1)) endef MB_DOC_FIRE_FUNCTION_DEEP += $(call mb_make_call,mb_doc_function_deep,mb_openmsx_setup,"Setup openMSX local build home folder for machine."," ") define _mb_openmsx_run $(call mb_make_call,mb_make_echo_command,$(MB_OPENMSX_LOG_PREFIX)$@ on $(2)) $(if $(wildcard $(1)-omsx/persistent/fire-hdd/untitled1/sync),,$(call mb_make_call,mb_mkdir,$(1)-omsx/persistent/fire-hdd/untitled1/sync)) BOOT_WATCHDOG=$(MB_OPENMSX_BOOT_TIMEOUT) \ FIRE_HDD_PATH="$(1)" \ FIRE_HDD_SIZE=$(MB_OPENMSX_HDD_SIZE) \ FIRE_HDD_IMAGE="$(1)-omsx/persistent/fire-hdd/untitled1/image-hda.dsk" \ FIRE_HDD_PATH_EXPORT="$(1)-omsx/persistent/fire-hdd/untitled1/sync" \ SCALE_FACTOR=$(MB_OPENMSX_SCALE_FACTOR) \ SPEED=$(MB_OPENMSX_SPEED) \ HEADLESS=$(MB_OPENMSX_HEADLESS) \ RENDERER=$(MB_OPENMSX_RENDERER) \ THROTTLE=$(MB_OPENMSX_THROTTLE) \ NF_PREFIX=$(MB_FLIGHT_PREFIX) \ NF_SEPERATOR=$(MB_FLIGHT_SEPERATOR) \ NF_RECORD_FLAG=$(MB_FLIGHT_RECORD_FLAG) \ OPENMSX_HOME="$(1)-omsx" \ $(PATH_OPENMSX)/openmsx \ -machine $(2) \ -ext slotexpander \ -ext fire-hdd \ $(if $(filter ram16k,$(3)),-ext ram16k) \ $(if $(filter ram64k,$(3)),-ext ram64k) \ $(if $(filter ram512k,$(3)),-ext ram512k) \ $(if $(filter ram1mb,$(3)),-ext ram1mb) \ $(if $(filter ram4mb,$(3)),-ext ram2mb) \ $(if $(filter ram4mb,$(3)),-ext ram4mb) \ $(MB_OPENMSX_ARGS) \ -control stdio < $(1)-omsx/stdio.xml $(if $(filter on,$(MB_OPENMSX_STDOUT_NULL)),$(MB_OS_ERRIGNORE) >/dev/null) rsync --checksum --recursive "$(1)-omsx/persistent/fire-hdd/untitled1/sync/" "$(1)/" endef define _mb_openmsx_dosctl_bat $(if $(wildcard $(1)/z80.bat),,$(call mb_copy,$(PATH_MSXBUILD_REAL)/lib/emuctl/z80.bat,$(1))) $(if $(wildcard $(1)/reboot.bat),,$(call mb_copy,$(PATH_MSXBUILD_REAL)/lib/emuctl/reboot.bat,$(1))) $(if $(wildcard $(1)/shutdown.bat),,$(call mb_copy,$(PATH_MSXBUILD_REAL)/lib/emuctl/shutdown.bat,$(1))) $(if $(wildcard $(1)/mbboot80.com),,$(call mb_copy,$(PATH_MSXBUILD_REAL)/lib/emuctl/mbboot80.com,$(1))) $(if $(wildcard $(1)/omsxctl.com),,$(call mb_msxhub_file,$(1),OMSXCTL/1.0-1/get/OMSXCTL/omsxctl.com)) endef define mb_openmsx_dosctl $(call mb_make_call,mb_openmsx_setup,$(1),$(if $(2),$(2),$(MB_OPENMSX_MACHINE))) $(if $(wildcard $(1)/utils),$(call mb_make_call,_mb_openmsx_dosctl_bat,$(1)/utils),$(call mb_make_call,_mb_openmsx_dosctl_bat,$(1))) $(if $(wildcard $(1)/command.com),,$(if $(wildcard $(1)/command2.com),,$(call mb_make_call,mb_msxhub_get_$(MB_OPENMSX_BOOT_OS)_boot,$(1)))) $(call mb_make_call,_mb_openmsx_run,$(1),$(if $(2),$(2),$(MB_OPENMSX_MACHINE)),$(if $(3),$(3),$(MB_OPENMSX_MACHINE_RAM))) endef MB_DOC_FIRE_FUNCTION += $(call mb_make_call,mb_doc_function,mb_openmsx_dosctl,"Starts openMSX with dos controller."," [machine] [mem-ext]")