Updated readme.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -10s
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -10s
This commit is contained in:
parent
12c019c9d6
commit
43c9649712
188
README.md
188
README.md
|
@ -2,22 +2,8 @@
|
|||
|
||||
Utils to use openMSX in build pipelines.
|
||||
|
||||
You can use these scripts as-is. But as always, feel free to extend it
|
||||
for your specific needs or contribute a fix or feature.
|
||||
|
||||
## OpenMSX missing automation documentation
|
||||
|
||||
* Don't use DirAsDisk, it is slow
|
||||
* Wrap all TCL commands in catch+stderr+exit1
|
||||
* Use TCL script for auto HD import/export
|
||||
* Use stdio mode for headless and/or fast boot
|
||||
* Disable throttling for automation steps
|
||||
* Use fail_after TCL script to run openMSX safely
|
||||
* Control openMSX from inside with TCL+command
|
||||
* Enable SDL just before command is addictive fast
|
||||
* TODO: Use TCL for BASIC/ASM/C lcov (Cobertura) code coverage
|
||||
|
||||
The files in this repro try to handle these steps for you.
|
||||
You can use these scripts as-is. the files in the `lib` are all you need.
|
||||
But as always, feel free to extend it for your specific needs or contribute a fix or feature.
|
||||
|
||||
## Features
|
||||
|
||||
|
@ -27,26 +13,32 @@ The files in this repro try to handle these steps for you.
|
|||
* Downloads and caches resources from msxhub.com
|
||||
* Auto magic openMSX extensions and machine rom's setup
|
||||
* SDCC msx build steps
|
||||
* Screenshot and/or video output of full build
|
||||
|
||||
## Dependencies
|
||||
|
||||
* make + wget + tar + dos2unix
|
||||
* sdcc
|
||||
* openmsx
|
||||
* ffmpeg (optional, see `srv/assert-all/0module.mk` howto merge videos)
|
||||
* ffmpeg
|
||||
|
||||
For debian use;
|
||||
|
||||
apt-get install make wget tar dos2unix sdcc openmsx ffmpeg
|
||||
|
||||
## Usage
|
||||
## Usage Classic
|
||||
|
||||
Include the `lib/make/msxbuild.mk` file from your Makefile.
|
||||
And override the paths if needed;
|
||||
Have access or copy the `lib` folder in your project and start writing make files.
|
||||
|
||||
Include the `lib/make/msxbuild.mk` and override the paths if needed;
|
||||
* PATH_SDCC=/usr/bin
|
||||
* PATH_OPENMSX=/usr/bin
|
||||
|
||||
Then build result based compile rules see an example in; `src/ahello-m80/0module.mk`
|
||||
## Usage Docker
|
||||
|
||||
TODO
|
||||
|
||||
## Example Project
|
||||
|
||||
When you want to see whats happening do a debug run;
|
||||
|
||||
|
@ -99,83 +91,97 @@ Current set is WIP.
|
|||
* mb_autoexec_show_gui80_mouse `<dir> [cmd]`
|
||||
* mb_autoexec_safe_cmd `<dir> <cmd> [text-mode]`
|
||||
* mb_autoexec_safe_test `<dir> <cmd> [text-mode]`
|
||||
* mb_msxhub_file
|
||||
* mb_msxhub_get_dos1_boot
|
||||
* mb_msxhub_get_dos2_boot
|
||||
* mb_msxhub_get_dos2_utils
|
||||
* mb_msxhub_get_nextor_boot
|
||||
* mb_msxhub_get_nextor_utils
|
||||
* mb_msxhub_get_macro80
|
||||
* mb_msxhub_get_z80asmuk
|
||||
* mb_msxhub_get_wbass2
|
||||
* mb_msxhub_get_konpass
|
||||
* mb_msxhub_get_pmarc
|
||||
* mb_msxhub_get_lhpack
|
||||
* mb_msxhub_get_lhext
|
||||
* mb_msxhub_get_gunzip
|
||||
* mb_msxhub_get_tunzip
|
||||
* mb_msxhub_get_popcom
|
||||
* mb_msxhub_get_make
|
||||
* mb_msxhub_get_adir
|
||||
* mb_msxhub_get_turbo
|
||||
* mb_msxhub_get_baskom
|
||||
* mb_msxhub_get_binldr
|
||||
* mb_msxhub_get_dmphex
|
||||
* mb_msxhub_get_zd
|
||||
* mb_msxhub_get_msxdos2t
|
||||
* mb_msxhub_get_gfxage
|
||||
* mb_msxrom_file
|
||||
* mb_msxrom_setup
|
||||
* mb_msxrom_extension_ide
|
||||
* mb_msxrom_extension_ide_nextor
|
||||
* mb_msxrom_extension_scsi_novaxis
|
||||
* mb_msxrom_extension_msxdos22
|
||||
* mb_msxrom_extension_rs232
|
||||
* mb_msxrom_extension_fmpac
|
||||
* mb_msxrom_extension_fmpac_en
|
||||
* mb_msxrom_extension_moonsound
|
||||
* mb_msxrom_extension_basickun
|
||||
* mb_msxrom_machine_Canon_V-20
|
||||
* mb_msxrom_machine_Mitsubishi_ML-F80
|
||||
* mb_msxrom_machine_Mitsubishi_ML-FX1
|
||||
* mb_msxrom_machine_Mitsubishi_ML-G3_ES
|
||||
* mb_msxrom_machine_Philips_VG_8000
|
||||
* mb_msxrom_machine_Philips_VG_8230
|
||||
* mb_msxrom_machine_Philips_NMS_8250
|
||||
* mb_msxrom_machine_Toshiba_HX-21.xml
|
||||
* mb_msxrom_machine_Yamaha_AX200
|
||||
* mb_msxrom_machine_Yamaha_YIS-503IIIR
|
||||
* mb_msxrom_machine_Panasonic_FS-A1WSX
|
||||
* mb_msxrom_machine_Boosted_MSX2_EN
|
||||
* mb_msxrom_machine_Boosted_MSX2+_JP
|
||||
* mb_msxhub_file `<dir> <msxhub-slug>`
|
||||
* mb_msxhub_get_dos1_boot `<dir>`
|
||||
* mb_msxhub_get_dos2_boot `<dir>`
|
||||
* mb_msxhub_get_dos2_utils `<dir>`
|
||||
* mb_msxhub_get_nextor_boot `<dir>`
|
||||
* mb_msxhub_get_nextor_utils `<dir>`
|
||||
* mb_msxhub_get_macro80 `<dir>`
|
||||
* mb_msxhub_get_z80asmuk `<dir>`
|
||||
* mb_msxhub_get_wbass2 `<dir>`
|
||||
* mb_msxhub_get_konpass `<dir>`
|
||||
* mb_msxhub_get_pmarc `<dir>`
|
||||
* mb_msxhub_get_lhpack `<dir>`
|
||||
* mb_msxhub_get_lhext `<dir>`
|
||||
* mb_msxhub_get_gunzip `<dir>`
|
||||
* mb_msxhub_get_tunzip `<dir>`
|
||||
* mb_msxhub_get_popcom `<dir>`
|
||||
* mb_msxhub_get_make `<dir>`
|
||||
* mb_msxhub_get_adir `<dir>`
|
||||
* mb_msxhub_get_turbo `<dir>`
|
||||
* mb_msxhub_get_baskom `<dir>`
|
||||
* mb_msxhub_get_binldr `<dir>`
|
||||
* mb_msxhub_get_dmphex `<dir>`
|
||||
* mb_msxhub_get_zd `<dir>`
|
||||
* mb_msxhub_get_msxdos2t `<dir>`
|
||||
* mb_msxhub_get_gfxage `<dir>`
|
||||
* mb_msxrom_file `<dir> <msxrom-slug>`
|
||||
* mb_msxrom_setup `<dir>`
|
||||
* mb_msxrom_extension_ide `<dir>`
|
||||
* mb_msxrom_extension_ide_nextor `<dir>`
|
||||
* mb_msxrom_extension_scsi_novaxis `<dir>`
|
||||
* mb_msxrom_extension_msxdos22 `<dir>`
|
||||
* mb_msxrom_extension_rs232 `<dir>`
|
||||
* mb_msxrom_extension_fmpac `<dir>`
|
||||
* mb_msxrom_extension_fmpac_en `<dir>`
|
||||
* mb_msxrom_extension_moonsound `<dir>`
|
||||
* mb_msxrom_extension_basickun `<dir>`
|
||||
* mb_msxrom_machine_Canon_V-20 `<dir>`
|
||||
* mb_msxrom_machine_Mitsubishi_ML-F80 `<dir>`
|
||||
* mb_msxrom_machine_Mitsubishi_ML-FX1 `<dir>`
|
||||
* mb_msxrom_machine_Mitsubishi_ML-G3_ES `<dir>`
|
||||
* mb_msxrom_machine_Philips_VG_8000 `<dir>`
|
||||
* mb_msxrom_machine_Philips_VG_8230 `<dir>`
|
||||
* mb_msxrom_machine_Philips_NMS_8250 `<dir>`
|
||||
* mb_msxrom_machine_Toshiba_HX-21 `<dir>`
|
||||
* mb_msxrom_machine_Yamaha_AX200 `<dir>`
|
||||
* mb_msxrom_machine_Yamaha_YIS-503IIIR `<dir>`
|
||||
* mb_msxrom_machine_Panasonic_FS-A1WSX `<dir>`
|
||||
* mb_msxrom_machine_Boosted_MSX2_EN `<dir>`
|
||||
* mb_msxrom_machine_Boosted_MSX2+_JP `<dir>`
|
||||
* mb_openmsx_setup `<dir> <machine>`
|
||||
* mb_openmsx_dosctl `<dir> [machine] [mem-argu]`
|
||||
* mb_sdcc_compile_asm
|
||||
* mb_sdcc_link_asm_lib
|
||||
* mb_sdcc_link_asm
|
||||
* mb_sdcc_link_asm_0000 = calls mb_sdcc_link_asm,$(1),$(2),0x0000
|
||||
* mb_sdcc_link_asm_0100
|
||||
* mb_sdcc_link_asm_1000
|
||||
* mb_sdcc_link_asm_4000
|
||||
* mb_sdcc_link_asm_8000
|
||||
* mb_sdcc_link_asm_C000
|
||||
* mb_sdcc_link_asm_dos = calls mb_sdcc_link_asm_0100
|
||||
* mb_sdcc_compile_asm `<in> <out>`
|
||||
* mb_sdcc_link_asm_lib `<in> <out>`
|
||||
* mb_sdcc_link_asm `<in> <out> <addr>`
|
||||
* mb_sdcc_link_asm_0000 `<in> <out>`
|
||||
* mb_sdcc_link_asm_0100 `<in> <out>`
|
||||
* mb_sdcc_link_asm_1000 `<in> <out>`
|
||||
* mb_sdcc_link_asm_4000 `<in> <out>`
|
||||
* mb_sdcc_link_asm_8000 `<in> <out>`
|
||||
* mb_sdcc_link_asm_C000 `<in> <out>`
|
||||
* mb_sdcc_link_asm_dos `<in> <out>`
|
||||
* mb_sdcc_hex2bin `<in> <out>`
|
||||
* mb_clean `<dir>`
|
||||
* mb_mkdir `<dir>`
|
||||
* mb_delete
|
||||
* mb_copy
|
||||
* mb_unix2dos
|
||||
* mb_dos2unix
|
||||
* mb_create_dist
|
||||
* mb_create_flight_video
|
||||
* mb_delete `<file>`
|
||||
* mb_copy `<in> <out>`
|
||||
* mb_unix2dos `<in> <out>`
|
||||
* mb_dos2unix `<in> <out>`
|
||||
* mb_create_dist `<dir> <archive>`
|
||||
* mb_create_flight_video `<dir>`
|
||||
|
||||
## Errata
|
||||
|
||||
* Imported folders in openMSX; `cd utils;cd ..;dir` breaks, use `cd utils:cd a:\;dir` as workaround
|
||||
* Saving screenshots sometimes lets openMSX segfaults if using SDL
|
||||
* Doesn't work on windows
|
||||
* Missing C and mixed support
|
||||
* If no SDL or SDLGL-PP than screenshots or videos don't work
|
||||
* boot_exec_color_vdp does not work on MSX1 vdp
|
||||
* TODO: Missing C and mixed support
|
||||
* TODO: Use TCL for BASIC/ASM/C lcov (Cobertura) code coverage
|
||||
|
||||
## OpenMSX backlog issues
|
||||
|
||||
* Bug: screenshots sometimes segfaults when using SDL renderer
|
||||
* Bug: screenshots don't work without throttle
|
||||
* Bug: Imported folders in openMSX; `cd utils;cd ..;dir` breaks, use `cd utils:cd a:\;dir` as workaround
|
||||
* Audio+midi device init option + warning messages on computer without sound card
|
||||
* Enhancing the IDE CD-ROM support
|
||||
* Command setcolor does not work on MSX1 vdp TMS9918
|
||||
* Diskmanipulator export fully non-cased filename compare (duplicates)
|
||||
* Diskmanipulator reuse the device defined filename
|
||||
* run instance-id or run/process-label to replace hardcoded "untitled1" path
|
||||
* Remove msg or add ignore sram-fully or blank setting: SRAM file nms8250.cmos not found, assuming blank SRAM content.
|
||||
* Video record append mode + optional multiple previds to glue videos as one
|
||||
* SDL-NULL as window less renderer so that screenshot and/or video works headless
|
||||
* DocUpdate: Add speed note because it is slow + add example "after quit {export hdd}"
|
||||
* DocUpdate: Wrap all TCL commands in catch+stderr+exit1
|
||||
* DocUpdate: Add 'headless' example via stdio+new + link to control omsxctl
|
||||
|
|
|
@ -12,7 +12,6 @@ endef
|
|||
define mb_msxhub_file
|
||||
$(if $(wildcard $(MB_MSXHUB_CACHE)/$(2)),,$(call _mb_msxhub_file_fetch,$(MB_MSXHUB_API)/$(2)))
|
||||
$(if $(wildcard $(1)/$(call _mb_lowercase,$(notdir $(2)))),,$(call mb_copy,$(MB_MSXHUB_CACHE)/$(2),$(1)/$(call _mb_lowercase,$(notdir $(2)))))
|
||||
$(if $(filter true,$(3)),$(call mb_copy,$(MB_MSXHUB_CACHE)/$(2),$(1)/$(call _mb_lowercase,$(notdir $(2)))))
|
||||
endef
|
||||
|
||||
#
|
||||
|
|
|
@ -12,7 +12,6 @@ endef
|
|||
define mb_msxrom_file
|
||||
$(if $(wildcard $(MB_MSXROM_CACHE)/$(2)),,$(call _mb_msxrom_file_fetch,$(MB_MSXROM_API)/$(2)))
|
||||
$(if $(wildcard $(1)/$(notdir $(2))),,$(call mb_copy,$(MB_MSXROM_CACHE)/$(2),$(1)/$(notdir $(2))))
|
||||
$(if $(filter true,$(3)),$(call mb_copy,$(MB_MSXROM_CACHE)/$(2),$(1)/$(notdir $(2))))
|
||||
endef
|
||||
|
||||
define mb_msxrom_setup
|
||||
|
|
|
@ -47,7 +47,7 @@ $(subst A,a,$(subst B,b,$(subst C,c,$(subst D,d,$(subst E,e,$(subst F,f,$(subst
|
|||
endef
|
||||
|
||||
define mb_clean
|
||||
@echo === Cleaning build folder.
|
||||
@echo === Cleaning build folder
|
||||
$(if $(wildcard $(1)),$(MB_RMDIR) $(1))
|
||||
endef
|
||||
define mb_mkdir
|
||||
|
|
Loading…
Reference in a new issue