msxbuild/lib/make/mb_openmsx.mk

77 lines
4.2 KiB
Makefile
Raw Normal View History

2020-12-23 17:14:13 +00:00
2024-06-28 17:04:15 +00:00
MB_OPENMSX_BOOT_TIMEOUT ?= 25
MB_OPENMSX_BOOT_OS ?= nextor
2024-06-28 17:04:15 +00:00
MB_OPENMSX_MACHINE ?= Philips_NMS_8250
MB_OPENMSX_SPEED ?= $(if $(findstring turboR,$(MB_OPENMSX_MACHINE)),100,333)
MB_OPENMSX_EXTS ?=
MB_OPENMSX_EXTRA_SLOT ?= -ext slotexpander
MB_OPENMSX_EXTRA_MEM ?= -ext ram4mb
MB_OPENMSX_EXTRA_HDD ?= -ext ide-nextor
MB_OPENMSX_HDD_SIZE ?= 4m
MB_OPENMSX_SCALE_FACTOR ?= 3
MB_OPENMSX_THROTTLE ?= off
2024-06-29 03:07:15 +00:00
MB_OPENMSX_HEADLESS ?= on
MB_OPENMSX_RENDERER ?= SDL
2024-06-28 17:04:15 +00:00
MB_OPENMSX_CTLCACHE ?= $(MB_CACHE)/msxbuild/omsxctl
define mb_openmsx_setup
2024-06-25 13:46:31 +00:00
$(if $(wildcard $(MB_OPENMSX_CTLCACHE)),,$(call mb_mkdir,$(MB_OPENMSX_CTLCACHE)))
$(call mb_msxhub_file,$(MB_OPENMSX_CTLCACHE),OMSXCTL/1.0-1/get/OMSXCTL/omsxctl.tcl)
$(call mb_msxhub_file,$(MB_OPENMSX_CTLCACHE),OMSXCTL/1.0-1/get/OMSXCTL/omsxctl.com)
$(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/boot_hdd.tcl),,$(call mb_copy,$(PATH_MSXBUILD_REAL)/lib/openmsx/share/scripts/boot_hdd.tcl,$(1)-omsx/share/scripts))
$(if $(wildcard $(1)-omsx/share/scripts/boot_mode.tcl),,$(call mb_copy,$(PATH_MSXBUILD_REAL)/lib/openmsx/share/scripts/boot_mode.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/save_flight.tcl),,$(call mb_copy,$(PATH_MSXBUILD_REAL)/lib/openmsx/share/scripts/save_flight.tcl,$(1)-omsx/share/scripts))
$(if $(wildcard $(1)-omsx/share/scripts/omsxctl.tcl),,$(call mb_copy,$(MB_OPENMSX_CTLCACHE)/omsxctl.tcl,$(1)-omsx/share/scripts))
$(if $(wildcard $(1)-omsx/share/extensions),,$(call mb_mkdir,$(1)-omsx/share/extensions))
$(if $(wildcard $(1)-omsx/share/extensions/ide-nextor.xml),,$(call mb_copy,$(PATH_MSXBUILD_REAL)/lib/openmsx/share/extensions/ide-nextor.xml,$(1)-omsx/share/extensions))
$(call mb_msxrom_setup,$(1))
$(call mb_msxrom_extension_ide_nextor,$(1))
$(call mb_msxrom_machine_$(2),$(1))
endef
2020-12-23 17:14:13 +00:00
define _mb_openmsx_run
2024-06-29 22:12:21 +00:00
@echo === openMSX Start for $@
BOOT_WATCHDOG=$(MB_OPENMSX_BOOT_TIMEOUT) \
2020-12-23 17:14:13 +00:00
BOOT_HDD_PATH="$(1)" \
2024-06-25 11:08:46 +00:00
BOOT_HDD_SIZE=$(MB_OPENMSX_HDD_SIZE) \
BOOT_HDD_IMAGE="$(1)-omsx/persistent/ide-nextor/untitled1/hd.dsk" \
SCALE_FACTOR=$(MB_OPENMSX_SCALE_FACTOR) \
2024-06-21 19:07:00 +00:00
SPEED=$(MB_OPENMSX_SPEED) \
2024-06-29 03:07:15 +00:00
HEADLESS=$(MB_OPENMSX_HEADLESS) \
2024-06-24 18:41:06 +00:00
RENDERER=$(MB_OPENMSX_RENDERER) \
THROTTLE=$(MB_OPENMSX_THROTTLE) \
SAVE_FLIGHT_PREFIX=$(MB_FLIGHT_PREFIX) \
SAVE_FLIGHT_SEPERATOR=$(MB_FLIGHT_SEPERATOR) \
SAVE_FLIGHT_RECORD_FLAG=$(MB_FLIGHT_RECORD_FLAG) \
OPENMSX_HOME="$(1)-omsx" \
2024-06-25 12:52:08 +00:00
$(PATH_OPENMSX)/openmsx \
-machine $(2) \
2024-06-25 12:52:08 +00:00
$(MB_OPENMSX_EXTRA_SLOT) \
$(MB_OPENMSX_EXTRA_HDD) \
$(MB_OPENMSX_EXTRA_MEM) \
$(MB_OPENMSX_EXTS) \
2024-06-27 17:16:26 +00:00
-control stdio < $(1)-omsx/stdio.xml
2024-06-29 22:12:21 +00:00
@echo === openMSX Done for $@
2020-12-23 17:14:13 +00:00
endef
2021-07-06 02:28:45 +00:00
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)))
endef
define mb_openmsx_dosctl
$(call mb_openmsx_setup,$(1),$(if $(2),$(2),$(MB_OPENMSX_MACHINE)))
$(if $(wildcard $(1)/utils),$(call _mb_openmsx_dosctl_bat,$(1)/utils),$(call _mb_openmsx_dosctl_bat,$(1)))
2024-06-25 13:46:31 +00:00
$(if $(wildcard $(1)/omsxctl.com),,$(call mb_copy,$(MB_OPENMSX_CTLCACHE)/omsxctl.com,$(1)))
$(if $(wildcard $(1)/command.com),,$(if $(wildcard $(1)/command2.com),,$(call mb_msxhub_get_$(MB_OPENMSX_BOOT_OS)_boot,$(1))))
2024-06-27 17:09:38 +00:00
$(call _mb_openmsx_run,$(1),$(if $(2),$(2),$(MB_OPENMSX_MACHINE)))
2020-12-23 17:14:13 +00:00
endef